@ng-nest/ui 18.0.8 → 18.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/alert/alert.component.d.ts +3 -3
  2. package/auto-complete/auto-complete-portal.component.d.ts +6 -9
  3. package/auto-complete/auto-complete.component.d.ts +1 -0
  4. package/cascade/cascade-portal.component.d.ts +7 -9
  5. package/cascade/cascade.component.d.ts +1 -9
  6. package/cascade/cascade.property.d.ts +5 -2
  7. package/checkbox/checkbox.property.d.ts +10 -98
  8. package/color-picker/color-picker-portal.component.d.ts +6 -9
  9. package/core/functions/convert.d.ts +5 -0
  10. package/core/util/public-api.d.ts +1 -0
  11. package/core/util/sleep.d.ts +5 -0
  12. package/date-picker/date-picker-portal.component.d.ts +5 -6
  13. package/date-picker/date-picker.property.d.ts +1 -31
  14. package/date-picker/date-range-portal.component.d.ts +5 -6
  15. package/dialog/dialog.component.d.ts +4 -3
  16. package/dropdown/dropdown-portal.component.d.ts +5 -7
  17. package/esm2022/alert/alert.component.mjs +13 -10
  18. package/esm2022/auto-complete/auto-complete-portal.component.mjs +17 -10
  19. package/esm2022/auto-complete/auto-complete.component.mjs +7 -4
  20. package/esm2022/back-top/back-top.component.mjs +4 -2
  21. package/esm2022/cascade/cascade-portal.component.mjs +20 -11
  22. package/esm2022/cascade/cascade.component.mjs +5 -3
  23. package/esm2022/cascade/cascade.property.mjs +2 -2
  24. package/esm2022/checkbox/checkbox.property.mjs +3 -43
  25. package/esm2022/color-picker/color-picker-portal.component.mjs +17 -10
  26. package/esm2022/color-picker/color-picker.component.mjs +3 -3
  27. package/esm2022/color-picker/color-picker.property.mjs +3 -3
  28. package/esm2022/core/functions/convert.mjs +15 -1
  29. package/esm2022/core/util/public-api.mjs +2 -1
  30. package/esm2022/core/util/sleep.mjs +8 -0
  31. package/esm2022/date-picker/date-picker-portal.component.mjs +17 -6
  32. package/esm2022/date-picker/date-picker.component.mjs +3 -3
  33. package/esm2022/date-picker/date-picker.property.mjs +2 -17
  34. package/esm2022/date-picker/date-range-portal.component.mjs +17 -6
  35. package/esm2022/date-picker/date-range.component.mjs +3 -3
  36. package/esm2022/dialog/dialog.component.mjs +23 -18
  37. package/esm2022/dropdown/dropdown-portal.component.mjs +17 -8
  38. package/esm2022/dropdown/dropdown.component.mjs +3 -3
  39. package/esm2022/find/find.component.mjs +15 -8
  40. package/esm2022/find/find.property.mjs +7 -57
  41. package/esm2022/form/form.component.mjs +3 -3
  42. package/esm2022/form/form.property.mjs +1 -1
  43. package/esm2022/highlight/highlight.component.mjs +3 -3
  44. package/esm2022/icon/icon.component.mjs +2 -2
  45. package/esm2022/image/image.component.mjs +3 -3
  46. package/esm2022/input/input.component.mjs +3 -3
  47. package/esm2022/input-number/input-number.component.mjs +3 -3
  48. package/esm2022/input-number/input-number.property.mjs +3 -23
  49. package/esm2022/loading/loading.component.mjs +3 -3
  50. package/esm2022/loading/loading.property.mjs +5 -5
  51. package/esm2022/radio/radio.property.mjs +3 -53
  52. package/esm2022/rate/rate.property.mjs +3 -58
  53. package/esm2022/select/select-portal.component.mjs +17 -10
  54. package/esm2022/select/select.component.mjs +23 -5
  55. package/esm2022/select/select.property.mjs +2 -2
  56. package/esm2022/slider-select/slider-select.property.mjs +3 -58
  57. package/esm2022/switch/switch.property.mjs +3 -58
  58. package/esm2022/table/table-body.component.mjs +5 -4
  59. package/esm2022/table/table.component.mjs +3 -3
  60. package/esm2022/table/table.property.mjs +14 -4
  61. package/esm2022/textarea/textarea.property.mjs +3 -38
  62. package/esm2022/time-picker/time-picker-portal.component.mjs +17 -6
  63. package/esm2022/time-picker/time-picker.component.mjs +3 -3
  64. package/esm2022/time-picker/time-picker.property.mjs +3 -3
  65. package/esm2022/transfer/transfer.component.mjs +3 -3
  66. package/esm2022/tree/tree-node.component.mjs +10 -2
  67. package/esm2022/tree/tree.component.mjs +11 -9
  68. package/esm2022/tree/tree.property.mjs +1 -1
  69. package/esm2022/tree/tree.service.mjs +28 -4
  70. package/esm2022/tree-select/tree-select-portal.component.mjs +17 -6
  71. package/esm2022/tree-select/tree-select.component.mjs +20 -4
  72. package/fesm2022/ng-nest-ui-alert.mjs +12 -9
  73. package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
  74. package/fesm2022/ng-nest-ui-auto-complete.mjs +21 -11
  75. package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
  76. package/fesm2022/ng-nest-ui-back-top.mjs +3 -1
  77. package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
  78. package/fesm2022/ng-nest-ui-cascade.mjs +24 -13
  79. package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
  80. package/fesm2022/ng-nest-ui-checkbox.mjs +2 -42
  81. package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
  82. package/fesm2022/ng-nest-ui-color-picker.mjs +20 -13
  83. package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
  84. package/fesm2022/ng-nest-ui-core.mjs +23 -1
  85. package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
  86. package/fesm2022/ng-nest-ui-date-picker.mjs +36 -29
  87. package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
  88. package/fesm2022/ng-nest-ui-dialog.mjs +22 -17
  89. package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
  90. package/fesm2022/ng-nest-ui-dropdown.mjs +19 -10
  91. package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
  92. package/fesm2022/ng-nest-ui-find.mjs +20 -63
  93. package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
  94. package/fesm2022/ng-nest-ui-form.mjs +2 -2
  95. package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
  96. package/fesm2022/ng-nest-ui-highlight.mjs +2 -2
  97. package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
  98. package/fesm2022/ng-nest-ui-icon.mjs +1 -1
  99. package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
  100. package/fesm2022/ng-nest-ui-image.mjs +2 -2
  101. package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
  102. package/fesm2022/ng-nest-ui-input-number.mjs +4 -24
  103. package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
  104. package/fesm2022/ng-nest-ui-input.mjs +2 -2
  105. package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
  106. package/fesm2022/ng-nest-ui-loading.mjs +6 -6
  107. package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
  108. package/fesm2022/ng-nest-ui-radio.mjs +2 -52
  109. package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
  110. package/fesm2022/ng-nest-ui-rate.mjs +2 -57
  111. package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
  112. package/fesm2022/ng-nest-ui-select.mjs +39 -14
  113. package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
  114. package/fesm2022/ng-nest-ui-slider-select.mjs +2 -57
  115. package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
  116. package/fesm2022/ng-nest-ui-switch.mjs +2 -57
  117. package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
  118. package/fesm2022/ng-nest-ui-table.mjs +19 -8
  119. package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
  120. package/fesm2022/ng-nest-ui-textarea.mjs +2 -37
  121. package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
  122. package/fesm2022/ng-nest-ui-time-picker.mjs +20 -9
  123. package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
  124. package/fesm2022/ng-nest-ui-transfer.mjs +2 -2
  125. package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
  126. package/fesm2022/ng-nest-ui-tree-select.mjs +35 -8
  127. package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
  128. package/fesm2022/ng-nest-ui-tree.mjs +46 -12
  129. package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
  130. package/find/find.component.d.ts +2 -0
  131. package/find/find.property.d.ts +20 -97
  132. package/form/form.property.d.ts +13 -6
  133. package/input-number/input-number.property.d.ts +4 -56
  134. package/loading/loading.property.d.ts +4 -4
  135. package/package.json +124 -124
  136. package/radio/radio.property.d.ts +10 -118
  137. package/rate/rate.property.d.ts +16 -121
  138. package/select/select-portal.component.d.ts +6 -9
  139. package/select/select.component.d.ts +5 -1
  140. package/slider-select/slider-select.property.d.ts +6 -113
  141. package/switch/switch.property.d.ts +2 -117
  142. package/table/table-body.component.d.ts +1 -1
  143. package/table/table.property.d.ts +13 -3
  144. package/textarea/textarea.property.d.ts +10 -45
  145. package/time-picker/time-picker-portal.component.d.ts +5 -6
  146. package/time-picker/time-picker.property.d.ts +1 -2
  147. package/tree/tree.component.d.ts +2 -3
  148. package/tree/tree.property.d.ts +1 -1
  149. package/tree/tree.service.d.ts +1 -1
  150. package/tree-select/tree-select-portal.component.d.ts +5 -6
  151. package/tree-select/tree-select.component.d.ts +7 -4
@@ -1,4 +1,4 @@
1
- import { Component, ViewEncapsulation, ChangeDetectionStrategy, inject, PLATFORM_ID, computed, signal, effect } from '@angular/core';
1
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, inject, PLATFORM_ID, computed, signal, effect, DestroyRef } from '@angular/core';
2
2
  import { XAlertPrefix, XAlertProperty } from './alert.property';
3
3
  import { XFadeAnimation, XIsEmpty } from '@ng-nest/ui/core';
4
4
  import { of, Subject } from 'rxjs';
@@ -23,11 +23,14 @@ export class XAlertComponent extends XAlertProperty {
23
23
  }));
24
24
  this.unSubject = new Subject();
25
25
  this.isBrowser = isPlatformBrowser(inject(PLATFORM_ID));
26
+ this.destoryRef = inject(DestroyRef);
27
+ this.destory = signal(false);
26
28
  effect(() => this.setDuration());
27
- }
28
- ngOnDestroy() {
29
- this.unSubject.next();
30
- this.unSubject.complete();
29
+ this.destoryRef.onDestroy(() => {
30
+ this.destory.set(true);
31
+ this.unSubject.next();
32
+ this.unSubject.complete();
33
+ });
31
34
  }
32
35
  setDuration() {
33
36
  if (this.duration() && this.isBrowser) {
@@ -41,7 +44,7 @@ export class XAlertComponent extends XAlertProperty {
41
44
  }
42
45
  onClose() {
43
46
  if (this.manual()) {
44
- this.close.emit();
47
+ !this.destory() && this.close.emit();
45
48
  }
46
49
  else {
47
50
  this.styleHide.set(true);
@@ -49,11 +52,11 @@ export class XAlertComponent extends XAlertProperty {
49
52
  }
50
53
  onCloseAnimationDone() {
51
54
  if (this.hide()) {
52
- this.close.emit();
55
+ !this.destory() && this.close.emit();
53
56
  }
54
57
  }
55
58
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XAlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
56
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: XAlertComponent, isStandalone: true, selector: "x-alert", usesInheritance: true, ngImport: i0, template: "@if (!styleHide() && !hide()) {\r\n <div\r\n class=\"x-alert\"\r\n [class.x-alert-has-close]=\"!hideClose()\"\r\n [class.x-alert-icon-content]=\"showIcon() && content()\"\r\n cdkDrag\r\n (cdkDragEnded)=\"dragEnded.emit($event)\"\r\n [cdkDragFreeDragPosition]=\"dragFreeDragPosition()!\"\r\n [cdkDragDisabled]=\"!draggable()\"\r\n [cdkDragBoundary]=\"dragBoundary()!\"\r\n [ngClass]=\"classMap()\"\r\n @x-fade-animation\r\n [@.disabled]=\"disabledAnimation()\"\r\n (@x-fade-animation.done)=\"onCloseAnimationDone()\"\r\n [xResizable]=\"resizable()!\"\r\n (resizing)=\"resizing.emit($event)\"\r\n [offsetLeft]=\"offsetLeft()\"\r\n [offsetTop]=\"offsetTop()\"\r\n [style.minWidth]=\"minWidth()\"\r\n [style.minHeight]=\"minHeight()\"\r\n >\r\n @if (showIcon()) {\r\n <ng-container *ngTemplateOutlet=\"iconTpl\"></ng-container>\r\n }\r\n <ng-template #iconTpl>\r\n @switch (type()) {\r\n @case ('success') {\r\n <x-icon class=\"x-alert-icon\" type=\"adf-check-circle\"></x-icon>\r\n }\r\n @case ('info') {\r\n <x-icon class=\"x-alert-icon\" type=\"adf-info-circle\"></x-icon>\r\n }\r\n @case ('warning') {\r\n <x-icon class=\"x-alert-icon\" type=\"adf-exclamation-circle\"></x-icon>\r\n }\r\n @case ('error') {\r\n <x-icon class=\"x-alert-icon\" type=\"adf-close-circle\"></x-icon>\r\n }\r\n @case ('loading') {\r\n <x-icon class=\"x-alert-icon\" type=\"fto-loader\" [spin]=\"true\"></x-icon>\r\n }\r\n }\r\n </ng-template>\r\n <div class=\"x-alert-inner\">\r\n <span class=\"x-alert-title\" cdkDragHandle [class.x-bold]=\"title() && content()\">\r\n <ng-container *xOutlet=\"title(); context: { $iconTpl: iconTpl }\">{{ title() }}</ng-container>\r\n </span>\r\n @if (content()) {\r\n <div class=\"x-alert-content\">\r\n <ng-container *xOutlet=\"content(); context: { $iconTpl: iconTpl }\">{{ content() }}</ng-container>\r\n </div>\r\n }\r\n <div class=\"x-alert-close\">\r\n <div class=\"x-alert-operation\" *xOutlet=\"operationTpl()\">{{ operationTpl() }}</div>\r\n @if (!hideClose()) {\r\n <x-button size=\"small\" [icon]=\"!closeText() ? 'fto-x' : ''\" [type]=\"'text'\" (click)=\"onClose()\" closable>\r\n {{ closeText() }}\r\n </x-button>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n", styles: ["x-alert{display:block}.x-alert{margin:0;padding:0}.x-alert{background-color:var(--x-background);border:.0625rem solid var(--x-border-300);border-radius:var(--x-border-radius);padding:.5rem 1rem;position:relative;display:flex;align-items:center}.x-alert-close{position:absolute;top:.425rem;right:.425rem}.x-alert-inner{width:100%}.x-alert-title.x-bold{font-weight:600}.x-alert-has-close .x-alert-title{margin-right:1.425rem}.x-alert-content{font-size:calc(var(--x-font-size) - .0625rem);line-height:1.325rem;margin:.25rem 0 0}.x-alert-icon-content{align-items:flex-start}.x-alert-icon.x-icon{font-size:calc(var(--x-font-size) + .25rem);margin-right:.5rem}.x-alert-icon-medium>.x-icon{font-size:1.75rem}.x-alert-draggable .cdk-drag-handle{cursor:move}.x-alert-success.x-light{color:var(--x-success);background-color:var(--x-success-900);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-success.x-light x-button.x-alert-close .x-button{color:var(--x-success-400)}.x-alert-success.x-light x-button.x-alert-close .x-button:hover{color:var(--x-success)}.x-alert-success.x-dark{color:var(--x-success-900);background-color:var(--x-success);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-success.x-dark x-button.x-alert-close .x-button{color:var(--x-success-900)}.x-alert-success.x-dark x-button.x-alert-close .x-button:hover{color:var(--x-background-100)}.x-alert-success.x-white{color:var(--x-text-300);background-color:var(--x-background);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-success.x-white .x-alert-icon.x-icon{color:var(--x-success)}.x-alert-success.x-white x-button.x-alert-close .x-button{color:var(--x-text-400)}.x-alert-success.x-white x-button.x-alert-close .x-button:hover{color:var(--x-text-300)}.x-alert-info.x-light{color:var(--x-info);background-color:var(--x-info-900);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-info.x-light x-button.x-alert-close .x-button{color:var(--x-info-400)}.x-alert-info.x-light x-button.x-alert-close .x-button:hover{color:var(--x-info)}.x-alert-info.x-dark{color:var(--x-info-900);background-color:var(--x-info);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-info.x-dark x-button.x-alert-close .x-button{color:var(--x-info-900)}.x-alert-info.x-dark x-button.x-alert-close .x-button:hover{color:var(--x-background-100)}.x-alert-info.x-white{color:var(--x-text-300);background-color:var(--x-background);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-info.x-white .x-alert-icon.x-icon{color:var(--x-info)}.x-alert-info.x-white x-button.x-alert-close .x-button{color:var(--x-text-400)}.x-alert-info.x-white x-button.x-alert-close .x-button:hover{color:var(--x-text-300)}.x-alert-warning.x-light{color:var(--x-warning);background-color:var(--x-warning-900);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-warning.x-light x-button.x-alert-close .x-button{color:var(--x-warning-400)}.x-alert-warning.x-light x-button.x-alert-close .x-button:hover{color:var(--x-warning)}.x-alert-warning.x-dark{color:var(--x-warning-900);background-color:var(--x-warning);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-warning.x-dark x-button.x-alert-close .x-button{color:var(--x-warning-900)}.x-alert-warning.x-dark x-button.x-alert-close .x-button:hover{color:var(--x-background-100)}.x-alert-warning.x-white{color:var(--x-text-300);background-color:var(--x-background);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-warning.x-white .x-alert-icon.x-icon{color:var(--x-warning)}.x-alert-warning.x-white x-button.x-alert-close .x-button{color:var(--x-text-400)}.x-alert-warning.x-white x-button.x-alert-close .x-button:hover{color:var(--x-text-300)}.x-alert-error.x-light{color:var(--x-danger);background-color:var(--x-danger-900);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-error.x-light x-button.x-alert-close .x-button{color:var(--x-danger-400)}.x-alert-error.x-light x-button.x-alert-close .x-button:hover{color:var(--x-danger)}.x-alert-error.x-dark{color:var(--x-danger-900);background-color:var(--x-danger);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-error.x-dark x-button.x-alert-close .x-button{color:var(--x-danger-900)}.x-alert-error.x-dark x-button.x-alert-close .x-button:hover{color:var(--x-background-100)}.x-alert-error.x-white{color:var(--x-text-300);background-color:var(--x-background);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-error.x-white .x-alert-icon.x-icon{color:var(--x-danger)}.x-alert-error.x-white x-button.x-alert-close .x-button{color:var(--x-text-400)}.x-alert-error.x-white x-button.x-alert-close .x-button:hover{color:var(--x-text-300)}.x-alert-loading.x-light{color:var(--x-primary);background-color:var(--x-info-900);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-loading.x-light x-button.x-alert-close .x-button{color:var(--x-info-400)}.x-alert-loading.x-light x-button.x-alert-close .x-button:hover{color:var(--x-primary)}.x-alert-loading.x-dark{color:var(--x-info-900);background-color:var(--x-primary);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-loading.x-dark x-button.x-alert-close .x-button{color:var(--x-info-900)}.x-alert-loading.x-dark x-button.x-alert-close .x-button:hover{color:var(--x-background-100)}.x-alert-loading.x-white{color:var(--x-text-300);background-color:var(--x-background);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-loading.x-white .x-alert-icon.x-icon{color:var(--x-primary)}.x-alert-loading.x-white x-button.x-alert-close .x-button{color:var(--x-text-400)}.x-alert-loading.x-white x-button.x-alert-close .x-button:hover{color:var(--x-text-300)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i1.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i1.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: XIconComponent, selector: "x-icon" }, { kind: "component", type: XButtonComponent, selector: "x-button" }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "directive", type: XResizableDirective, selector: "[xResizable]" }], animations: [XFadeAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
59
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: XAlertComponent, isStandalone: true, selector: "x-alert", usesInheritance: true, ngImport: i0, template: "@if (!styleHide() && !hide()) {\r\n <div\r\n class=\"x-alert\"\r\n [class.x-alert-has-close]=\"!hideClose()\"\r\n [class.x-alert-icon-content]=\"showIcon() && content()\"\r\n cdkDrag\r\n (cdkDragEnded)=\"dragEnded.emit($event)\"\r\n [cdkDragFreeDragPosition]=\"dragFreeDragPosition()!\"\r\n [cdkDragDisabled]=\"!draggable()\"\r\n [cdkDragBoundary]=\"dragBoundary()!\"\r\n [ngClass]=\"classMap()\"\r\n @x-fade-animation\r\n [@.disabled]=\"disabledAnimation()\"\r\n (@x-fade-animation.done)=\"onCloseAnimationDone()\"\r\n [xResizable]=\"resizable()!\"\r\n (resizing)=\"resizing.emit($event)\"\r\n [offsetLeft]=\"offsetLeft()\"\r\n [offsetTop]=\"offsetTop()\"\r\n [style.minWidth]=\"minWidth()\"\r\n [style.minHeight]=\"minHeight()\"\r\n >\r\n @if (showIcon()) {\r\n <ng-container *ngTemplateOutlet=\"iconTpl\"></ng-container>\r\n }\r\n <ng-template #iconTpl>\r\n @switch (type()) {\r\n @case ('success') {\r\n <x-icon class=\"x-alert-icon\" type=\"adf-check-circle\"></x-icon>\r\n }\r\n @case ('info') {\r\n <x-icon class=\"x-alert-icon\" type=\"adf-info-circle\"></x-icon>\r\n }\r\n @case ('warning') {\r\n <x-icon class=\"x-alert-icon\" type=\"adf-exclamation-circle\"></x-icon>\r\n }\r\n @case ('error') {\r\n <x-icon class=\"x-alert-icon\" type=\"adf-close-circle\"></x-icon>\r\n }\r\n @case ('loading') {\r\n <x-icon class=\"x-alert-icon\" type=\"fto-loader\" [spin]=\"true\"></x-icon>\r\n }\r\n }\r\n </ng-template>\r\n <div class=\"x-alert-inner\">\r\n <span class=\"x-alert-title\" cdkDragHandle [class.x-bold]=\"title() && content()\">\r\n <ng-container *xOutlet=\"title(); context: { $iconTpl: iconTpl }\">{{ title() }}</ng-container>\r\n </span>\r\n @if (content()) {\r\n <div class=\"x-alert-content\">\r\n <ng-container *xOutlet=\"content(); context: { $iconTpl: iconTpl }\">{{ content() }}</ng-container>\r\n </div>\r\n }\r\n <div class=\"x-alert-close\">\r\n <div class=\"x-alert-operation\" *xOutlet=\"operationTpl()\">{{ operationTpl() }}</div>\r\n @if (!hideClose()) {\r\n <x-button class=\"x-alert-operation-close\" size=\"small\" [icon]=\"!closeText() ? 'fto-x' : ''\" [type]=\"'text'\" (click)=\"onClose()\" closable>\r\n {{ closeText() }}\r\n </x-button>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n", styles: ["x-alert{display:block}.x-alert{margin:0;padding:0}.x-alert{background-color:var(--x-background);border:.0625rem solid var(--x-border-300);border-radius:var(--x-border-radius);padding:.5rem 1rem;position:relative;display:flex;align-items:center}.x-alert-close{position:absolute;top:.425rem;right:.425rem}.x-alert-inner{width:100%}.x-alert-title.x-bold{font-weight:600}.x-alert-has-close .x-alert-title{margin-right:1.425rem}.x-alert-content{font-size:calc(var(--x-font-size) - .0625rem);line-height:1.325rem;margin:.25rem 0 0}.x-alert-icon-content{align-items:flex-start}.x-alert-icon.x-icon{font-size:calc(var(--x-font-size) + .25rem);margin-right:.5rem}.x-alert-icon-medium>.x-icon{font-size:1.75rem}.x-alert-draggable .cdk-drag-handle{cursor:move}.x-alert-success.x-light{color:var(--x-success);background-color:var(--x-success-900);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-success.x-light x-button.x-alert-close .x-button{color:var(--x-success-400)}.x-alert-success.x-light x-button.x-alert-close .x-button:hover{color:var(--x-success)}.x-alert-success.x-dark{color:var(--x-success-900);background-color:var(--x-success);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-success.x-dark x-button.x-alert-close .x-button{color:var(--x-success-900)}.x-alert-success.x-dark x-button.x-alert-close .x-button:hover{color:var(--x-background-100)}.x-alert-success.x-white{color:var(--x-text-300);background-color:var(--x-background);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-success.x-white .x-alert-icon.x-icon{color:var(--x-success)}.x-alert-success.x-white x-button.x-alert-close .x-button{color:var(--x-text-400)}.x-alert-success.x-white x-button.x-alert-close .x-button:hover{color:var(--x-text-300)}.x-alert-info.x-light{color:var(--x-info);background-color:var(--x-info-900);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-info.x-light x-button.x-alert-close .x-button{color:var(--x-info-400)}.x-alert-info.x-light x-button.x-alert-close .x-button:hover{color:var(--x-info)}.x-alert-info.x-dark{color:var(--x-info-900);background-color:var(--x-info);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-info.x-dark x-button.x-alert-close .x-button{color:var(--x-info-900)}.x-alert-info.x-dark x-button.x-alert-close .x-button:hover{color:var(--x-background-100)}.x-alert-info.x-white{color:var(--x-text-300);background-color:var(--x-background);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-info.x-white .x-alert-icon.x-icon{color:var(--x-info)}.x-alert-info.x-white x-button.x-alert-close .x-button{color:var(--x-text-400)}.x-alert-info.x-white x-button.x-alert-close .x-button:hover{color:var(--x-text-300)}.x-alert-warning.x-light{color:var(--x-warning);background-color:var(--x-warning-900);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-warning.x-light x-button.x-alert-close .x-button{color:var(--x-warning-400)}.x-alert-warning.x-light x-button.x-alert-close .x-button:hover{color:var(--x-warning)}.x-alert-warning.x-dark{color:var(--x-warning-900);background-color:var(--x-warning);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-warning.x-dark x-button.x-alert-close .x-button{color:var(--x-warning-900)}.x-alert-warning.x-dark x-button.x-alert-close .x-button:hover{color:var(--x-background-100)}.x-alert-warning.x-white{color:var(--x-text-300);background-color:var(--x-background);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-warning.x-white .x-alert-icon.x-icon{color:var(--x-warning)}.x-alert-warning.x-white x-button.x-alert-close .x-button{color:var(--x-text-400)}.x-alert-warning.x-white x-button.x-alert-close .x-button:hover{color:var(--x-text-300)}.x-alert-error.x-light{color:var(--x-danger);background-color:var(--x-danger-900);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-error.x-light x-button.x-alert-close .x-button{color:var(--x-danger-400)}.x-alert-error.x-light x-button.x-alert-close .x-button:hover{color:var(--x-danger)}.x-alert-error.x-dark{color:var(--x-danger-900);background-color:var(--x-danger);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-error.x-dark x-button.x-alert-close .x-button{color:var(--x-danger-900)}.x-alert-error.x-dark x-button.x-alert-close .x-button:hover{color:var(--x-background-100)}.x-alert-error.x-white{color:var(--x-text-300);background-color:var(--x-background);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-error.x-white .x-alert-icon.x-icon{color:var(--x-danger)}.x-alert-error.x-white x-button.x-alert-close .x-button{color:var(--x-text-400)}.x-alert-error.x-white x-button.x-alert-close .x-button:hover{color:var(--x-text-300)}.x-alert-loading.x-light{color:var(--x-primary);background-color:var(--x-info-900);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-loading.x-light x-button.x-alert-close .x-button{color:var(--x-info-400)}.x-alert-loading.x-light x-button.x-alert-close .x-button:hover{color:var(--x-primary)}.x-alert-loading.x-dark{color:var(--x-info-900);background-color:var(--x-primary);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-loading.x-dark x-button.x-alert-close .x-button{color:var(--x-info-900)}.x-alert-loading.x-dark x-button.x-alert-close .x-button:hover{color:var(--x-background-100)}.x-alert-loading.x-white{color:var(--x-text-300);background-color:var(--x-background);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-loading.x-white .x-alert-icon.x-icon{color:var(--x-primary)}.x-alert-loading.x-white x-button.x-alert-close .x-button{color:var(--x-text-400)}.x-alert-loading.x-white x-button.x-alert-close .x-button:hover{color:var(--x-text-300)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i1.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i1.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: XIconComponent, selector: "x-icon" }, { kind: "component", type: XButtonComponent, selector: "x-button" }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "directive", type: XResizableDirective, selector: "[xResizable]" }], animations: [XFadeAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
57
60
  }
58
61
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XAlertComponent, decorators: [{
59
62
  type: Component,
@@ -65,6 +68,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
65
68
  XButtonComponent,
66
69
  XOutletDirective,
67
70
  XResizableDirective
68
- ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [XFadeAnimation], template: "@if (!styleHide() && !hide()) {\r\n <div\r\n class=\"x-alert\"\r\n [class.x-alert-has-close]=\"!hideClose()\"\r\n [class.x-alert-icon-content]=\"showIcon() && content()\"\r\n cdkDrag\r\n (cdkDragEnded)=\"dragEnded.emit($event)\"\r\n [cdkDragFreeDragPosition]=\"dragFreeDragPosition()!\"\r\n [cdkDragDisabled]=\"!draggable()\"\r\n [cdkDragBoundary]=\"dragBoundary()!\"\r\n [ngClass]=\"classMap()\"\r\n @x-fade-animation\r\n [@.disabled]=\"disabledAnimation()\"\r\n (@x-fade-animation.done)=\"onCloseAnimationDone()\"\r\n [xResizable]=\"resizable()!\"\r\n (resizing)=\"resizing.emit($event)\"\r\n [offsetLeft]=\"offsetLeft()\"\r\n [offsetTop]=\"offsetTop()\"\r\n [style.minWidth]=\"minWidth()\"\r\n [style.minHeight]=\"minHeight()\"\r\n >\r\n @if (showIcon()) {\r\n <ng-container *ngTemplateOutlet=\"iconTpl\"></ng-container>\r\n }\r\n <ng-template #iconTpl>\r\n @switch (type()) {\r\n @case ('success') {\r\n <x-icon class=\"x-alert-icon\" type=\"adf-check-circle\"></x-icon>\r\n }\r\n @case ('info') {\r\n <x-icon class=\"x-alert-icon\" type=\"adf-info-circle\"></x-icon>\r\n }\r\n @case ('warning') {\r\n <x-icon class=\"x-alert-icon\" type=\"adf-exclamation-circle\"></x-icon>\r\n }\r\n @case ('error') {\r\n <x-icon class=\"x-alert-icon\" type=\"adf-close-circle\"></x-icon>\r\n }\r\n @case ('loading') {\r\n <x-icon class=\"x-alert-icon\" type=\"fto-loader\" [spin]=\"true\"></x-icon>\r\n }\r\n }\r\n </ng-template>\r\n <div class=\"x-alert-inner\">\r\n <span class=\"x-alert-title\" cdkDragHandle [class.x-bold]=\"title() && content()\">\r\n <ng-container *xOutlet=\"title(); context: { $iconTpl: iconTpl }\">{{ title() }}</ng-container>\r\n </span>\r\n @if (content()) {\r\n <div class=\"x-alert-content\">\r\n <ng-container *xOutlet=\"content(); context: { $iconTpl: iconTpl }\">{{ content() }}</ng-container>\r\n </div>\r\n }\r\n <div class=\"x-alert-close\">\r\n <div class=\"x-alert-operation\" *xOutlet=\"operationTpl()\">{{ operationTpl() }}</div>\r\n @if (!hideClose()) {\r\n <x-button size=\"small\" [icon]=\"!closeText() ? 'fto-x' : ''\" [type]=\"'text'\" (click)=\"onClose()\" closable>\r\n {{ closeText() }}\r\n </x-button>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n", styles: ["x-alert{display:block}.x-alert{margin:0;padding:0}.x-alert{background-color:var(--x-background);border:.0625rem solid var(--x-border-300);border-radius:var(--x-border-radius);padding:.5rem 1rem;position:relative;display:flex;align-items:center}.x-alert-close{position:absolute;top:.425rem;right:.425rem}.x-alert-inner{width:100%}.x-alert-title.x-bold{font-weight:600}.x-alert-has-close .x-alert-title{margin-right:1.425rem}.x-alert-content{font-size:calc(var(--x-font-size) - .0625rem);line-height:1.325rem;margin:.25rem 0 0}.x-alert-icon-content{align-items:flex-start}.x-alert-icon.x-icon{font-size:calc(var(--x-font-size) + .25rem);margin-right:.5rem}.x-alert-icon-medium>.x-icon{font-size:1.75rem}.x-alert-draggable .cdk-drag-handle{cursor:move}.x-alert-success.x-light{color:var(--x-success);background-color:var(--x-success-900);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-success.x-light x-button.x-alert-close .x-button{color:var(--x-success-400)}.x-alert-success.x-light x-button.x-alert-close .x-button:hover{color:var(--x-success)}.x-alert-success.x-dark{color:var(--x-success-900);background-color:var(--x-success);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-success.x-dark x-button.x-alert-close .x-button{color:var(--x-success-900)}.x-alert-success.x-dark x-button.x-alert-close .x-button:hover{color:var(--x-background-100)}.x-alert-success.x-white{color:var(--x-text-300);background-color:var(--x-background);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-success.x-white .x-alert-icon.x-icon{color:var(--x-success)}.x-alert-success.x-white x-button.x-alert-close .x-button{color:var(--x-text-400)}.x-alert-success.x-white x-button.x-alert-close .x-button:hover{color:var(--x-text-300)}.x-alert-info.x-light{color:var(--x-info);background-color:var(--x-info-900);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-info.x-light x-button.x-alert-close .x-button{color:var(--x-info-400)}.x-alert-info.x-light x-button.x-alert-close .x-button:hover{color:var(--x-info)}.x-alert-info.x-dark{color:var(--x-info-900);background-color:var(--x-info);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-info.x-dark x-button.x-alert-close .x-button{color:var(--x-info-900)}.x-alert-info.x-dark x-button.x-alert-close .x-button:hover{color:var(--x-background-100)}.x-alert-info.x-white{color:var(--x-text-300);background-color:var(--x-background);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-info.x-white .x-alert-icon.x-icon{color:var(--x-info)}.x-alert-info.x-white x-button.x-alert-close .x-button{color:var(--x-text-400)}.x-alert-info.x-white x-button.x-alert-close .x-button:hover{color:var(--x-text-300)}.x-alert-warning.x-light{color:var(--x-warning);background-color:var(--x-warning-900);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-warning.x-light x-button.x-alert-close .x-button{color:var(--x-warning-400)}.x-alert-warning.x-light x-button.x-alert-close .x-button:hover{color:var(--x-warning)}.x-alert-warning.x-dark{color:var(--x-warning-900);background-color:var(--x-warning);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-warning.x-dark x-button.x-alert-close .x-button{color:var(--x-warning-900)}.x-alert-warning.x-dark x-button.x-alert-close .x-button:hover{color:var(--x-background-100)}.x-alert-warning.x-white{color:var(--x-text-300);background-color:var(--x-background);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-warning.x-white .x-alert-icon.x-icon{color:var(--x-warning)}.x-alert-warning.x-white x-button.x-alert-close .x-button{color:var(--x-text-400)}.x-alert-warning.x-white x-button.x-alert-close .x-button:hover{color:var(--x-text-300)}.x-alert-error.x-light{color:var(--x-danger);background-color:var(--x-danger-900);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-error.x-light x-button.x-alert-close .x-button{color:var(--x-danger-400)}.x-alert-error.x-light x-button.x-alert-close .x-button:hover{color:var(--x-danger)}.x-alert-error.x-dark{color:var(--x-danger-900);background-color:var(--x-danger);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-error.x-dark x-button.x-alert-close .x-button{color:var(--x-danger-900)}.x-alert-error.x-dark x-button.x-alert-close .x-button:hover{color:var(--x-background-100)}.x-alert-error.x-white{color:var(--x-text-300);background-color:var(--x-background);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-error.x-white .x-alert-icon.x-icon{color:var(--x-danger)}.x-alert-error.x-white x-button.x-alert-close .x-button{color:var(--x-text-400)}.x-alert-error.x-white x-button.x-alert-close .x-button:hover{color:var(--x-text-300)}.x-alert-loading.x-light{color:var(--x-primary);background-color:var(--x-info-900);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-loading.x-light x-button.x-alert-close .x-button{color:var(--x-info-400)}.x-alert-loading.x-light x-button.x-alert-close .x-button:hover{color:var(--x-primary)}.x-alert-loading.x-dark{color:var(--x-info-900);background-color:var(--x-primary);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-loading.x-dark x-button.x-alert-close .x-button{color:var(--x-info-900)}.x-alert-loading.x-dark x-button.x-alert-close .x-button:hover{color:var(--x-background-100)}.x-alert-loading.x-white{color:var(--x-text-300);background-color:var(--x-background);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-loading.x-white .x-alert-icon.x-icon{color:var(--x-primary)}.x-alert-loading.x-white x-button.x-alert-close .x-button{color:var(--x-text-400)}.x-alert-loading.x-white x-button.x-alert-close .x-button:hover{color:var(--x-text-300)}\n"] }]
71
+ ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [XFadeAnimation], template: "@if (!styleHide() && !hide()) {\r\n <div\r\n class=\"x-alert\"\r\n [class.x-alert-has-close]=\"!hideClose()\"\r\n [class.x-alert-icon-content]=\"showIcon() && content()\"\r\n cdkDrag\r\n (cdkDragEnded)=\"dragEnded.emit($event)\"\r\n [cdkDragFreeDragPosition]=\"dragFreeDragPosition()!\"\r\n [cdkDragDisabled]=\"!draggable()\"\r\n [cdkDragBoundary]=\"dragBoundary()!\"\r\n [ngClass]=\"classMap()\"\r\n @x-fade-animation\r\n [@.disabled]=\"disabledAnimation()\"\r\n (@x-fade-animation.done)=\"onCloseAnimationDone()\"\r\n [xResizable]=\"resizable()!\"\r\n (resizing)=\"resizing.emit($event)\"\r\n [offsetLeft]=\"offsetLeft()\"\r\n [offsetTop]=\"offsetTop()\"\r\n [style.minWidth]=\"minWidth()\"\r\n [style.minHeight]=\"minHeight()\"\r\n >\r\n @if (showIcon()) {\r\n <ng-container *ngTemplateOutlet=\"iconTpl\"></ng-container>\r\n }\r\n <ng-template #iconTpl>\r\n @switch (type()) {\r\n @case ('success') {\r\n <x-icon class=\"x-alert-icon\" type=\"adf-check-circle\"></x-icon>\r\n }\r\n @case ('info') {\r\n <x-icon class=\"x-alert-icon\" type=\"adf-info-circle\"></x-icon>\r\n }\r\n @case ('warning') {\r\n <x-icon class=\"x-alert-icon\" type=\"adf-exclamation-circle\"></x-icon>\r\n }\r\n @case ('error') {\r\n <x-icon class=\"x-alert-icon\" type=\"adf-close-circle\"></x-icon>\r\n }\r\n @case ('loading') {\r\n <x-icon class=\"x-alert-icon\" type=\"fto-loader\" [spin]=\"true\"></x-icon>\r\n }\r\n }\r\n </ng-template>\r\n <div class=\"x-alert-inner\">\r\n <span class=\"x-alert-title\" cdkDragHandle [class.x-bold]=\"title() && content()\">\r\n <ng-container *xOutlet=\"title(); context: { $iconTpl: iconTpl }\">{{ title() }}</ng-container>\r\n </span>\r\n @if (content()) {\r\n <div class=\"x-alert-content\">\r\n <ng-container *xOutlet=\"content(); context: { $iconTpl: iconTpl }\">{{ content() }}</ng-container>\r\n </div>\r\n }\r\n <div class=\"x-alert-close\">\r\n <div class=\"x-alert-operation\" *xOutlet=\"operationTpl()\">{{ operationTpl() }}</div>\r\n @if (!hideClose()) {\r\n <x-button class=\"x-alert-operation-close\" size=\"small\" [icon]=\"!closeText() ? 'fto-x' : ''\" [type]=\"'text'\" (click)=\"onClose()\" closable>\r\n {{ closeText() }}\r\n </x-button>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n", styles: ["x-alert{display:block}.x-alert{margin:0;padding:0}.x-alert{background-color:var(--x-background);border:.0625rem solid var(--x-border-300);border-radius:var(--x-border-radius);padding:.5rem 1rem;position:relative;display:flex;align-items:center}.x-alert-close{position:absolute;top:.425rem;right:.425rem}.x-alert-inner{width:100%}.x-alert-title.x-bold{font-weight:600}.x-alert-has-close .x-alert-title{margin-right:1.425rem}.x-alert-content{font-size:calc(var(--x-font-size) - .0625rem);line-height:1.325rem;margin:.25rem 0 0}.x-alert-icon-content{align-items:flex-start}.x-alert-icon.x-icon{font-size:calc(var(--x-font-size) + .25rem);margin-right:.5rem}.x-alert-icon-medium>.x-icon{font-size:1.75rem}.x-alert-draggable .cdk-drag-handle{cursor:move}.x-alert-success.x-light{color:var(--x-success);background-color:var(--x-success-900);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-success.x-light x-button.x-alert-close .x-button{color:var(--x-success-400)}.x-alert-success.x-light x-button.x-alert-close .x-button:hover{color:var(--x-success)}.x-alert-success.x-dark{color:var(--x-success-900);background-color:var(--x-success);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-success.x-dark x-button.x-alert-close .x-button{color:var(--x-success-900)}.x-alert-success.x-dark x-button.x-alert-close .x-button:hover{color:var(--x-background-100)}.x-alert-success.x-white{color:var(--x-text-300);background-color:var(--x-background);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-success.x-white .x-alert-icon.x-icon{color:var(--x-success)}.x-alert-success.x-white x-button.x-alert-close .x-button{color:var(--x-text-400)}.x-alert-success.x-white x-button.x-alert-close .x-button:hover{color:var(--x-text-300)}.x-alert-info.x-light{color:var(--x-info);background-color:var(--x-info-900);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-info.x-light x-button.x-alert-close .x-button{color:var(--x-info-400)}.x-alert-info.x-light x-button.x-alert-close .x-button:hover{color:var(--x-info)}.x-alert-info.x-dark{color:var(--x-info-900);background-color:var(--x-info);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-info.x-dark x-button.x-alert-close .x-button{color:var(--x-info-900)}.x-alert-info.x-dark x-button.x-alert-close .x-button:hover{color:var(--x-background-100)}.x-alert-info.x-white{color:var(--x-text-300);background-color:var(--x-background);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-info.x-white .x-alert-icon.x-icon{color:var(--x-info)}.x-alert-info.x-white x-button.x-alert-close .x-button{color:var(--x-text-400)}.x-alert-info.x-white x-button.x-alert-close .x-button:hover{color:var(--x-text-300)}.x-alert-warning.x-light{color:var(--x-warning);background-color:var(--x-warning-900);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-warning.x-light x-button.x-alert-close .x-button{color:var(--x-warning-400)}.x-alert-warning.x-light x-button.x-alert-close .x-button:hover{color:var(--x-warning)}.x-alert-warning.x-dark{color:var(--x-warning-900);background-color:var(--x-warning);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-warning.x-dark x-button.x-alert-close .x-button{color:var(--x-warning-900)}.x-alert-warning.x-dark x-button.x-alert-close .x-button:hover{color:var(--x-background-100)}.x-alert-warning.x-white{color:var(--x-text-300);background-color:var(--x-background);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-warning.x-white .x-alert-icon.x-icon{color:var(--x-warning)}.x-alert-warning.x-white x-button.x-alert-close .x-button{color:var(--x-text-400)}.x-alert-warning.x-white x-button.x-alert-close .x-button:hover{color:var(--x-text-300)}.x-alert-error.x-light{color:var(--x-danger);background-color:var(--x-danger-900);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-error.x-light x-button.x-alert-close .x-button{color:var(--x-danger-400)}.x-alert-error.x-light x-button.x-alert-close .x-button:hover{color:var(--x-danger)}.x-alert-error.x-dark{color:var(--x-danger-900);background-color:var(--x-danger);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-error.x-dark x-button.x-alert-close .x-button{color:var(--x-danger-900)}.x-alert-error.x-dark x-button.x-alert-close .x-button:hover{color:var(--x-background-100)}.x-alert-error.x-white{color:var(--x-text-300);background-color:var(--x-background);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-error.x-white .x-alert-icon.x-icon{color:var(--x-danger)}.x-alert-error.x-white x-button.x-alert-close .x-button{color:var(--x-text-400)}.x-alert-error.x-white x-button.x-alert-close .x-button:hover{color:var(--x-text-300)}.x-alert-loading.x-light{color:var(--x-primary);background-color:var(--x-info-900);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-loading.x-light x-button.x-alert-close .x-button{color:var(--x-info-400)}.x-alert-loading.x-light x-button.x-alert-close .x-button:hover{color:var(--x-primary)}.x-alert-loading.x-dark{color:var(--x-info-900);background-color:var(--x-primary);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-loading.x-dark x-button.x-alert-close .x-button{color:var(--x-info-900)}.x-alert-loading.x-dark x-button.x-alert-close .x-button:hover{color:var(--x-background-100)}.x-alert-loading.x-white{color:var(--x-text-300);background-color:var(--x-background);border-color:transparent;box-shadow:var(--x-box-shadow)}.x-alert-loading.x-white .x-alert-icon.x-icon{color:var(--x-primary)}.x-alert-loading.x-white x-button.x-alert-close .x-button{color:var(--x-text-400)}.x-alert-loading.x-white x-button.x-alert-close .x-button:hover{color:var(--x-text-300)}\n"] }]
69
72
  }], ctorParameters: () => [] });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvYWxlcnQvYWxlcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvYWxlcnQvYWxlcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBRXZCLE1BQU0sRUFDTixXQUFXLEVBQ1gsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVELE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFvQi9FLE1BQU0sT0FBTyxlQUFnQixTQUFRLGNBQWM7SUFhakQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQWJWLGNBQVMsR0FBRyxN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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgT25EZXN0cm95LFxyXG4gIGluamVjdCxcclxuICBQTEFURk9STV9JRCxcclxuICBjb21wdXRlZCxcclxuICBzaWduYWwsXHJcbiAgZWZmZWN0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhBbGVydFByZWZpeCwgWEFsZXJ0UHJvcGVydHkgfSBmcm9tICcuL2FsZXJ0LnByb3BlcnR5JztcclxuaW1wb3J0IHsgWEZhZGVBbmltYXRpb24sIFhJc0VtcHR5IH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IG9mLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVsYXksIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgWEljb25Db21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9pY29uJztcclxuaW1wb3J0IHsgWE91dGxldERpcmVjdGl2ZSB9IGZyb20gJ0BuZy1uZXN0L3VpL291dGxldCc7XHJcbmltcG9ydCB7IFhCdXR0b25Db21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9idXR0b24nO1xyXG5pbXBvcnQgeyBEcmFnRHJvcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBYUmVzaXphYmxlRGlyZWN0aXZlIH0gZnJvbSAnQG5nLW5lc3QvdWkvcmVzaXphYmxlJztcclxuaW1wb3J0IHsgTmdDbGFzcywgTmdUZW1wbGF0ZU91dGxldCwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hBbGVydFByZWZpeH1gLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTmdDbGFzcyxcclxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXHJcbiAgICBEcmFnRHJvcE1vZHVsZSxcclxuICAgIFhJY29uQ29tcG9uZW50LFxyXG4gICAgWEJ1dHRvbkNvbXBvbmVudCxcclxuICAgIFhPdXRsZXREaXJlY3RpdmUsXHJcbiAgICBYUmVzaXphYmxlRGlyZWN0aXZlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWxlcnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2FsZXJ0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBhbmltYXRpb25zOiBbWEZhZGVBbmltYXRpb25dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYQWxlcnRDb21wb25lbnQgZXh0ZW5kcyBYQWxlcnRQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgc3R5bGVIaWRlID0gc2lnbmFsKGZhbHNlKTtcclxuICBjbGFzc01hcCA9IGNvbXB1dGVkKCgpID0+ICh7XHJcbiAgICBbYCR7WEFsZXJ0UHJlZml4fS0ke3RoaXMudHlwZSgpfWBdOiAhWElzRW1wdHkodGhpcy50eXBlKCkpLFxyXG4gICAgW2B4LSR7dGhpcy5lZmZlY3QoKX1gXTogIVhJc0VtcHR5KHRoaXMuZWZmZWN0KCkpLFxyXG4gICAgW2Ake1hBbGVydFByZWZpeH0taWNvbi1tZWRpdW1gXTogIVhJc0VtcHR5KHRoaXMudGl0bGUoKSkgJiYgIVhJc0VtcHR5KHRoaXMuY29udGVudCgpKSAmJiAhWElzRW1wdHkodGhpcy5zaG93SWNvbigpKSxcclxuICAgIFtgJHtYQWxlcnRQcmVmaXh9LWRyYWdnYWJsZWBdOiB0aGlzLmRyYWdnYWJsZSgpXHJcbiAgfSkpO1xyXG5cclxuICBwcml2YXRlIHVuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBkdXJhdGlvblN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIGlzQnJvd3NlciA9IGlzUGxhdGZvcm1Ccm93c2VyKGluamVjdChQTEFURk9STV9JRCkpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICBlZmZlY3QoKCkgPT4gdGhpcy5zZXREdXJhdGlvbigpKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy51blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy51blN1YmplY3QuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHNldER1cmF0aW9uKCkge1xyXG4gICAgaWYgKHRoaXMuZHVyYXRpb24oKSAmJiB0aGlzLmlzQnJvd3Nlcikge1xyXG4gICAgICB0aGlzLmR1cmF0aW9uU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgICB0aGlzLmR1cmF0aW9uU3Vic2NyaXB0aW9uID0gb2YodHJ1ZSlcclxuICAgICAgICAucGlwZShkZWxheSh0aGlzLmR1cmF0aW9uKCkpLCB0YWtlVW50aWwodGhpcy51blN1YmplY3QpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5vbkNsb3NlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNsb3NlKCkge1xyXG4gICAgaWYgKHRoaXMubWFudWFsKCkpIHtcclxuICAgICAgdGhpcy5jbG9zZS5lbWl0KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnN0eWxlSGlkZS5zZXQodHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNsb3NlQW5pbWF0aW9uRG9uZSgpIHtcclxuICAgIGlmICh0aGlzLmhpZGUoKSkge1xyXG4gICAgICB0aGlzLmNsb3NlLmVtaXQoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiQGlmICghc3R5bGVIaWRlKCkgJiYgIWhpZGUoKSkge1xyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwieC1hbGVydFwiXHJcbiAgICBbY2xhc3MueC1hbGVydC1oYXMtY2xvc2VdPVwiIWhpZGVDbG9zZSgpXCJcclxuICAgIFtjbGFzcy54LWFsZXJ0LWljb24tY29udGVudF09XCJzaG93SWNvbigpICYmIGNvbnRlbnQoKVwiXHJcbiAgICBjZGtEcmFnXHJcbiAgICAoY2RrRHJhZ0VuZGVkKT1cImRyYWdFbmRlZC5lbWl0KCRldmVudClcIlxyXG4gICAgW2Nka0RyYWdGcmVlRHJhZ1Bvc2l0aW9uXT1cImRyYWdGcmVlRHJhZ1Bvc2l0aW9uKCkhXCJcclxuICAgIFtjZGtEcmFnRGlzYWJsZWRdPVwiIWRyYWdnYWJsZSgpXCJcclxuICAgIFtjZGtEcmFnQm91bmRhcnldPVwiZHJhZ0JvdW5kYXJ5KCkhXCJcclxuICAgIFtuZ0NsYXNzXT1cImNsYXNzTWFwKClcIlxyXG4gICAgQHgtZmFkZS1hbmltYXRpb25cclxuICAgIFtALmRpc2FibGVkXT1cImRpc2FibGVkQW5pbWF0aW9uKClcIlxyXG4gICAgKEB4LWZhZGUtYW5pbWF0aW9uLmRvbmUpPVwib25DbG9zZUFuaW1hdGlvbkRvbmUoKVwiXHJcbiAgICBbeFJlc2l6YWJsZV09XCJyZXNpemFibGUoKSFcIlxyXG4gICAgKHJlc2l6aW5nKT1cInJlc2l6aW5nLmVtaXQoJGV2ZW50KVwiXHJcbiAgICBbb2Zmc2V0TGVmdF09XCJvZmZzZXRMZWZ0KClcIlxyXG4gICAgW29mZnNldFRvcF09XCJvZmZzZXRUb3AoKVwiXHJcbiAgICBbc3R5bGUubWluV2lkdGhdPVwibWluV2lkdGgoKVwiXHJcbiAgICBbc3R5bGUubWluSGVpZ2h0XT1cIm1pbkhlaWdodCgpXCJcclxuICA+XHJcbiAgICBAaWYgKHNob3dJY29uKCkpIHtcclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImljb25UcGxcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIH1cclxuICAgIDxuZy10ZW1wbGF0ZSAjaWNvblRwbD5cclxuICAgICAgQHN3aXRjaCAodHlwZSgpKSB7XHJcbiAgICAgICAgQGNhc2UgKCdzdWNjZXNzJykge1xyXG4gICAgICAgICAgPHgtaWNvbiBjbGFzcz1cIngtYWxlcnQtaWNvblwiIHR5cGU9XCJhZGYtY2hlY2stY2lyY2xlXCI+PC94LWljb24+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBjYXNlICgnaW5mbycpIHtcclxuICAgICAgICAgIDx4LWljb24gY2xhc3M9XCJ4LWFsZXJ0LWljb25cIiB0eXBlPVwiYWRmLWluZm8tY2lyY2xlXCI+PC94LWljb24+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBjYXNlICgnd2FybmluZycpIHtcclxuICAgICAgICAgIDx4LWljb24gY2xhc3M9XCJ4LWFsZXJ0LWljb25cIiB0eXBlPVwiYWRmLWV4Y2xhbWF0aW9uLWNpcmNsZVwiPjwveC1pY29uPlxyXG4gICAgICAgIH1cclxuICAgICAgICBAY2FzZSAoJ2Vycm9yJykge1xyXG4gICAgICAgICAgPHgtaWNvbiBjbGFzcz1cIngtYWxlcnQtaWNvblwiIHR5cGU9XCJhZGYtY2xvc2UtY2lyY2xlXCI+PC94LWljb24+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBjYXNlICgnbG9hZGluZycpIHtcclxuICAgICAgICAgIDx4LWljb24gY2xhc3M9XCJ4LWFsZXJ0LWljb25cIiB0eXBlPVwiZnRvLWxvYWRlclwiIFtzcGluXT1cInRydWVcIj48L3gtaWNvbj5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1hbGVydC1pbm5lclwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cIngtYWxlcnQtdGl0bGVcIiBjZGtEcmFnSGFuZGxlIFtjbGFzcy54LWJvbGRdPVwidGl0bGUoKSAmJiBjb250ZW50KClcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwidGl0bGUoKTsgY29udGV4dDogeyAkaWNvblRwbDogaWNvblRwbCB9XCI+e3sgdGl0bGUoKSB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIEBpZiAoY29udGVudCgpKSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIngtYWxlcnQtY29udGVudFwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cImNvbnRlbnQoKTsgY29udGV4dDogeyAkaWNvblRwbDogaWNvblRwbCB9XCI+e3sgY29udGVudCgpIH19PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgICAgPGRpdiBjbGFzcz1cIngtYWxlcnQtY2xvc2VcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwieC1hbGVydC1vcGVyYXRpb25cIiAqeE91dGxldD1cIm9wZXJhdGlvblRwbCgpXCI+e3sgb3BlcmF0aW9uVHBsKCkgfX08L2Rpdj5cclxuICAgICAgICBAaWYgKCFoaWRlQ2xvc2UoKSkge1xyXG4gICAgICAgICAgPHgtYnV0dG9uIHNpemU9XCJzbWFsbFwiIFtpY29uXT1cIiFjbG9zZVRleHQoKSA/ICdmdG8teCcgOiAnJ1wiIFt0eXBlXT1cIid0ZXh0J1wiIChjbGljayk9XCJvbkNsb3NlKClcIiBjbG9zYWJsZT5cclxuICAgICAgICAgICAge3sgY2xvc2VUZXh0KCkgfX1cclxuICAgICAgICAgIDwveC1idXR0b24+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG59XHJcbiJdfQ==
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvYWxlcnQvYWxlcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvYWxlcnQvYWxlcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLE1BQU0sRUFDTixXQUFXLEVBQ1gsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sVUFBVSxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBb0IvRSxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxjQUFjO0lBZWpEO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFmVixjQUFTLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLGFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUN6QixDQUFDLEdBQUcsWUFBWSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzFELENBQUMsS0FBSyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEdBQUcsWUFBWSxjQUFjLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkgsQ0FBQyxHQUFHLFlBQVksWUFBWSxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRTtTQUNoRCxDQUFDLENBQUMsQ0FBQztRQUVJLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRWhDLGNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNuRCxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hDLFlBQU8sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFJOUIsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM3QixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7aUJBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztpQkFDdkQsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1lBQ2xCLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ2hCLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkMsQ0FBQztJQUNILENBQUM7aUlBaERVLGVBQWU7cUhBQWYsZUFBZSwwRkN4QzVCLDIrRUErREEsb3BMRHJDSSxPQUFPLG9GQUNQLGdCQUFnQixtSkFDaEIsY0FBYyxnbUJBQ2QsY0FBYyxtREFDZCxnQkFBZ0IscURBQ2hCLGdCQUFnQiw2RkFDaEIsbUJBQW1CLDJDQU1ULENBQUMsY0FBYyxDQUFDOzsyRkFFakIsZUFBZTtrQkFsQjNCLFNBQVM7K0JBQ0UsR0FBRyxZQUFZLEVBQUUsY0FDZixJQUFJLFdBQ1A7d0JBQ1AsT0FBTzt3QkFDUCxnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2QsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3FCQUNwQixpQkFHYyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLENBQUMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgaW5qZWN0LFxyXG4gIFBMQVRGT1JNX0lELFxyXG4gIGNvbXB1dGVkLFxyXG4gIHNpZ25hbCxcclxuICBlZmZlY3QsXHJcbiAgRGVzdHJveVJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYQWxlcnRQcmVmaXgsIFhBbGVydFByb3BlcnR5IH0gZnJvbSAnLi9hbGVydC5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhGYWRlQW5pbWF0aW9uLCBYSXNFbXB0eSB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBvZiwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlbGF5LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFhJY29uQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvaWNvbic7XHJcbmltcG9ydCB7IFhPdXRsZXREaXJlY3RpdmUgfSBmcm9tICdAbmctbmVzdC91aS9vdXRsZXQnO1xyXG5pbXBvcnQgeyBYQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvYnV0dG9uJztcclxuaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgWFJlc2l6YWJsZURpcmVjdGl2ZSB9IGZyb20gJ0BuZy1uZXN0L3VpL3Jlc2l6YWJsZSc7XHJcbmltcG9ydCB7IE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYQWxlcnRQcmVmaXh9YCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE5nQ2xhc3MsXHJcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxyXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXHJcbiAgICBYSWNvbkNvbXBvbmVudCxcclxuICAgIFhCdXR0b25Db21wb25lbnQsXHJcbiAgICBYT3V0bGV0RGlyZWN0aXZlLFxyXG4gICAgWFJlc2l6YWJsZURpcmVjdGl2ZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FsZXJ0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hbGVydC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgYW5pbWF0aW9uczogW1hGYWRlQW5pbWF0aW9uXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWEFsZXJ0Q29tcG9uZW50IGV4dGVuZHMgWEFsZXJ0UHJvcGVydHkge1xyXG4gIHN0eWxlSGlkZSA9IHNpZ25hbChmYWxzZSk7XHJcbiAgY2xhc3NNYXAgPSBjb21wdXRlZCgoKSA9PiAoe1xyXG4gICAgW2Ake1hBbGVydFByZWZpeH0tJHt0aGlzLnR5cGUoKX1gXTogIVhJc0VtcHR5KHRoaXMudHlwZSgpKSxcclxuICAgIFtgeC0ke3RoaXMuZWZmZWN0KCl9YF06ICFYSXNFbXB0eSh0aGlzLmVmZmVjdCgpKSxcclxuICAgIFtgJHtYQWxlcnRQcmVmaXh9LWljb24tbWVkaXVtYF06ICFYSXNFbXB0eSh0aGlzLnRpdGxlKCkpICYmICFYSXNFbXB0eSh0aGlzLmNvbnRlbnQoKSkgJiYgIVhJc0VtcHR5KHRoaXMuc2hvd0ljb24oKSksXHJcbiAgICBbYCR7WEFsZXJ0UHJlZml4fS1kcmFnZ2FibGVgXTogdGhpcy5kcmFnZ2FibGUoKVxyXG4gIH0pKTtcclxuXHJcbiAgcHJpdmF0ZSB1blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgZHVyYXRpb25TdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBpc0Jyb3dzZXIgPSBpc1BsYXRmb3JtQnJvd3NlcihpbmplY3QoUExBVEZPUk1fSUQpKTtcclxuICBwcml2YXRlIGRlc3RvcnlSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XHJcbiAgcHJpdmF0ZSBkZXN0b3J5ID0gc2lnbmFsKGZhbHNlKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgZWZmZWN0KCgpID0+IHRoaXMuc2V0RHVyYXRpb24oKSk7XHJcbiAgICB0aGlzLmRlc3RvcnlSZWYub25EZXN0cm95KCgpID0+IHtcclxuICAgICAgdGhpcy5kZXN0b3J5LnNldCh0cnVlKTtcclxuICAgICAgdGhpcy51blN1YmplY3QubmV4dCgpO1xyXG4gICAgICB0aGlzLnVuU3ViamVjdC5jb21wbGV0ZSgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXREdXJhdGlvbigpIHtcclxuICAgIGlmICh0aGlzLmR1cmF0aW9uKCkgJiYgdGhpcy5pc0Jyb3dzZXIpIHtcclxuICAgICAgdGhpcy5kdXJhdGlvblN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICAgICAgdGhpcy5kdXJhdGlvblN1YnNjcmlwdGlvbiA9IG9mKHRydWUpXHJcbiAgICAgICAgLnBpcGUoZGVsYXkodGhpcy5kdXJhdGlvbigpKSwgdGFrZVVudGlsKHRoaXMudW5TdWJqZWN0KSlcclxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMub25DbG9zZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DbG9zZSgpIHtcclxuICAgIGlmICh0aGlzLm1hbnVhbCgpKSB7XHJcbiAgICAgICF0aGlzLmRlc3RvcnkoKSAmJiB0aGlzLmNsb3NlLmVtaXQoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc3R5bGVIaWRlLnNldCh0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2xvc2VBbmltYXRpb25Eb25lKCkge1xyXG4gICAgaWYgKHRoaXMuaGlkZSgpKSB7XHJcbiAgICAgICF0aGlzLmRlc3RvcnkoKSAmJiB0aGlzLmNsb3NlLmVtaXQoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiQGlmICghc3R5bGVIaWRlKCkgJiYgIWhpZGUoKSkge1xyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwieC1hbGVydFwiXHJcbiAgICBbY2xhc3MueC1hbGVydC1oYXMtY2xvc2VdPVwiIWhpZGVDbG9zZSgpXCJcclxuICAgIFtjbGFzcy54LWFsZXJ0LWljb24tY29udGVudF09XCJzaG93SWNvbigpICYmIGNvbnRlbnQoKVwiXHJcbiAgICBjZGtEcmFnXHJcbiAgICAoY2RrRHJhZ0VuZGVkKT1cImRyYWdFbmRlZC5lbWl0KCRldmVudClcIlxyXG4gICAgW2Nka0RyYWdGcmVlRHJhZ1Bvc2l0aW9uXT1cImRyYWdGcmVlRHJhZ1Bvc2l0aW9uKCkhXCJcclxuICAgIFtjZGtEcmFnRGlzYWJsZWRdPVwiIWRyYWdnYWJsZSgpXCJcclxuICAgIFtjZGtEcmFnQm91bmRhcnldPVwiZHJhZ0JvdW5kYXJ5KCkhXCJcclxuICAgIFtuZ0NsYXNzXT1cImNsYXNzTWFwKClcIlxyXG4gICAgQHgtZmFkZS1hbmltYXRpb25cclxuICAgIFtALmRpc2FibGVkXT1cImRpc2FibGVkQW5pbWF0aW9uKClcIlxyXG4gICAgKEB4LWZhZGUtYW5pbWF0aW9uLmRvbmUpPVwib25DbG9zZUFuaW1hdGlvbkRvbmUoKVwiXHJcbiAgICBbeFJlc2l6YWJsZV09XCJyZXNpemFibGUoKSFcIlxyXG4gICAgKHJlc2l6aW5nKT1cInJlc2l6aW5nLmVtaXQoJGV2ZW50KVwiXHJcbiAgICBbb2Zmc2V0TGVmdF09XCJvZmZzZXRMZWZ0KClcIlxyXG4gICAgW29mZnNldFRvcF09XCJvZmZzZXRUb3AoKVwiXHJcbiAgICBbc3R5bGUubWluV2lkdGhdPVwibWluV2lkdGgoKVwiXHJcbiAgICBbc3R5bGUubWluSGVpZ2h0XT1cIm1pbkhlaWdodCgpXCJcclxuICA+XHJcbiAgICBAaWYgKHNob3dJY29uKCkpIHtcclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImljb25UcGxcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIH1cclxuICAgIDxuZy10ZW1wbGF0ZSAjaWNvblRwbD5cclxuICAgICAgQHN3aXRjaCAodHlwZSgpKSB7XHJcbiAgICAgICAgQGNhc2UgKCdzdWNjZXNzJykge1xyXG4gICAgICAgICAgPHgtaWNvbiBjbGFzcz1cIngtYWxlcnQtaWNvblwiIHR5cGU9XCJhZGYtY2hlY2stY2lyY2xlXCI+PC94LWljb24+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBjYXNlICgnaW5mbycpIHtcclxuICAgICAgICAgIDx4LWljb24gY2xhc3M9XCJ4LWFsZXJ0LWljb25cIiB0eXBlPVwiYWRmLWluZm8tY2lyY2xlXCI+PC94LWljb24+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBjYXNlICgnd2FybmluZycpIHtcclxuICAgICAgICAgIDx4LWljb24gY2xhc3M9XCJ4LWFsZXJ0LWljb25cIiB0eXBlPVwiYWRmLWV4Y2xhbWF0aW9uLWNpcmNsZVwiPjwveC1pY29uPlxyXG4gICAgICAgIH1cclxuICAgICAgICBAY2FzZSAoJ2Vycm9yJykge1xyXG4gICAgICAgICAgPHgtaWNvbiBjbGFzcz1cIngtYWxlcnQtaWNvblwiIHR5cGU9XCJhZGYtY2xvc2UtY2lyY2xlXCI+PC94LWljb24+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBjYXNlICgnbG9hZGluZycpIHtcclxuICAgICAgICAgIDx4LWljb24gY2xhc3M9XCJ4LWFsZXJ0LWljb25cIiB0eXBlPVwiZnRvLWxvYWRlclwiIFtzcGluXT1cInRydWVcIj48L3gtaWNvbj5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1hbGVydC1pbm5lclwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cIngtYWxlcnQtdGl0bGVcIiBjZGtEcmFnSGFuZGxlIFtjbGFzcy54LWJvbGRdPVwidGl0bGUoKSAmJiBjb250ZW50KClcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwidGl0bGUoKTsgY29udGV4dDogeyAkaWNvblRwbDogaWNvblRwbCB9XCI+e3sgdGl0bGUoKSB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIEBpZiAoY29udGVudCgpKSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIngtYWxlcnQtY29udGVudFwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cImNvbnRlbnQoKTsgY29udGV4dDogeyAkaWNvblRwbDogaWNvblRwbCB9XCI+e3sgY29udGVudCgpIH19PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgICAgPGRpdiBjbGFzcz1cIngtYWxlcnQtY2xvc2VcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwieC1hbGVydC1vcGVyYXRpb25cIiAqeE91dGxldD1cIm9wZXJhdGlvblRwbCgpXCI+e3sgb3BlcmF0aW9uVHBsKCkgfX08L2Rpdj5cclxuICAgICAgICBAaWYgKCFoaWRlQ2xvc2UoKSkge1xyXG4gICAgICAgICAgPHgtYnV0dG9uIGNsYXNzPVwieC1hbGVydC1vcGVyYXRpb24tY2xvc2VcIiBzaXplPVwic21hbGxcIiBbaWNvbl09XCIhY2xvc2VUZXh0KCkgPyAnZnRvLXgnIDogJydcIiBbdHlwZV09XCIndGV4dCdcIiAoY2xpY2spPVwib25DbG9zZSgpXCIgY2xvc2FibGU+XHJcbiAgICAgICAgICAgIHt7IGNsb3NlVGV4dCgpIH19XHJcbiAgICAgICAgICA8L3gtYnV0dG9uPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxufVxyXG4iXX0=
@@ -1,4 +1,4 @@
1
- import { Component, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, HostListener, input, viewChild, signal, model, output } from '@angular/core';
1
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, HostListener, input, viewChild, signal, model, output, DestroyRef, inject } from '@angular/core';
2
2
  import { XAutoCompletePortalPrefix } from './auto-complete.property';
3
3
  import { Subject } from 'rxjs';
4
4
  import { XConnectBaseAnimation } from '@ng-nest/ui/core';
@@ -18,16 +18,22 @@ export class XAutoCompletePortalComponent {
18
18
  this.animating = output();
19
19
  this.nodeClick = output();
20
20
  this.active = signal(-1);
21
+ this.destroy = signal(false);
21
22
  this.unSubject = new Subject();
23
+ this.destroyRef = inject(DestroyRef);
22
24
  }
23
25
  get getPlacement() {
24
26
  return this.placement();
25
27
  }
26
- done(event) {
27
- event.toState !== 'void' && this.animating.emit(false);
28
+ done() {
29
+ if (this.destroy())
30
+ return;
31
+ this.animating.emit(false);
28
32
  }
29
- start(event) {
30
- event.toState !== 'void' && this.animating.emit(true);
33
+ start() {
34
+ if (this.destroy())
35
+ return;
36
+ this.animating.emit(true);
31
37
  }
32
38
  ngOnInit() {
33
39
  this.closeSubject.pipe(takeUntil(this.unSubject)).subscribe(() => {
@@ -36,10 +42,11 @@ export class XAutoCompletePortalComponent {
36
42
  this.keydownSubject.pipe(takeUntil(this.unSubject)).subscribe((x) => {
37
43
  this.list().keydown(x);
38
44
  });
39
- }
40
- ngOnDestroy() {
41
- this.unSubject.next();
42
- this.unSubject.complete();
45
+ this.destroyRef.onDestroy(() => {
46
+ this.destroy.set(true);
47
+ this.unSubject.next();
48
+ this.unSubject.complete();
49
+ });
43
50
  }
44
51
  stopPropagation(event) {
45
52
  event.stopPropagation();
@@ -70,4 +77,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
70
77
  type: HostListener,
71
78
  args: ['@x-connect-base-animation.start', ['$event']]
72
79
  }] } });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1jb21wbGV0ZS1wb3J0YWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvYXV0by1jb21wbGV0ZS9hdXRvLWNvbXBsZXRlLXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9hdXRvLWNvbXBsZXRlL2F1dG8tY29tcGxldGUtcG9ydGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUd2QixXQUFXLEVBQ1gsWUFBWSxFQUVaLEtBQUssRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFxQix5QkFBeUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLHFCQUFxQixFQUFzQixNQUFNLGtCQUFrQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBYWxELE1BQU0sT0FBTyw0QkFBNEI7SUFWekM7UUFvQkUsU0FBSSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUM7UUFFNUQsU0FBSSxHQUFHLEtBQUssRUFBdUIsQ0FBQztRQUNwQyxVQUFLLEdBQUcsS0FBSyxFQUFPLENBQUM7UUFDckIsY0FBUyxHQUFHLEtBQUssRUFBc0IsQ0FBQztRQUN4QyxZQUFPLEdBQUcsS0FBSyxFQUFvQixDQUFDO1FBQ3BDLGFBQVEsR0FBRyxLQUFLLEVBQW1CLENBQUM7UUFDcEMs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biAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgT25Jbml0LFxyXG4gIE9uRGVzdHJveSxcclxuICBIb3N0QmluZGluZyxcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgaW5wdXQsXHJcbiAgdmlld0NoaWxkLFxyXG4gIHNpZ25hbCxcclxuICBtb2RlbCxcclxuICBvdXRwdXRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWEF1dG9Db21wbGV0ZU5vZGUsIFhBdXRvQ29tcGxldGVQb3J0YWxQcmVmaXggfSBmcm9tICcuL2F1dG8tY29tcGxldGUucHJvcGVydHknO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFhDb25uZWN0QmFzZUFuaW1hdGlvbiwgWFBvc2l0aW9uVG9wQm90dG9tIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgWExpc3RDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9saXN0JztcclxuaW1wb3J0IHsgWElucHV0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvaW5wdXQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hBdXRvQ29tcGxldGVQb3J0YWxQcmVmaXh9YCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtYTGlzdENvbXBvbmVudF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dG8tY29tcGxldGUtcG9ydGFsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hdXRvLWNvbXBsZXRlLXBvcnRhbC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgYW5pbWF0aW9uczogW1hDb25uZWN0QmFzZUFuaW1hdGlvbl1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhBdXRvQ29tcGxldGVQb3J0YWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQEhvc3RCaW5kaW5nKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uJykgcHVibGljIGdldCBnZXRQbGFjZW1lbnQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wbGFjZW1lbnQoKTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbi5kb25lJywgWyckZXZlbnQnXSkgZG9uZShldmVudDogeyB0b1N0YXRlOiBhbnkgfSkge1xyXG4gICAgZXZlbnQudG9TdGF0ZSAhPT0gJ3ZvaWQnICYmIHRoaXMuYW5pbWF0aW5nLmVtaXQoZmFsc2UpO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uLnN0YXJ0JywgWyckZXZlbnQnXSkgc3RhcnQoZXZlbnQ6IHsgdG9TdGF0ZTogYW55IH0pIHtcclxuICAgIGV2ZW50LnRvU3RhdGUgIT09ICd2b2lkJyAmJiB0aGlzLmFuaW1hdGluZy5lbWl0KHRydWUpO1xyXG4gIH1cclxuICBsaXN0ID0gdmlld0NoaWxkLnJlcXVpcmVkKCdsaXN0JywgeyByZWFkOiBYTGlzdENvbXBvbmVudCB9KTtcclxuXHJcbiAgZGF0YSA9IGlucHV0PFhBdXRvQ29tcGxldGVOb2RlW10+KCk7XHJcbiAgdmFsdWUgPSBpbnB1dDxhbnk+KCk7XHJcbiAgcGxhY2VtZW50ID0gaW5wdXQ8WFBvc2l0aW9uVG9wQm90dG9tPigpO1xyXG4gIG5vZGVUcGwgPSBpbnB1dDxUZW1wbGF0ZVJlZjxhbnk+PigpO1xyXG4gIGlucHV0Q29tID0gaW5wdXQ8WElucHV0Q29tcG9uZW50PigpO1xyXG4gIGtleXdvcmRUZXh0ID0gbW9kZWw8c3RyaW5nPignJyk7XHJcbiAgY2FzZVNlbnNpdGl2ZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICBhbmltYXRpbmcgPSBvdXRwdXQ8Ym9vbGVhbj4oKTtcclxuICBub2RlQ2xpY2sgPSBvdXRwdXQ8WEF1dG9Db21wbGV0ZU5vZGU+KCk7XHJcbiAgY2xvc2VTdWJqZWN0ITogU3ViamVjdDx2b2lkPjtcclxuICBrZXlkb3duU3ViamVjdCE6IFN1YmplY3Q8S2V5Ym9hcmRFdmVudD47XHJcbiAgYWN0aXZlID0gc2lnbmFsKC0xKTtcclxuICBwcml2YXRlIHVuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jbG9zZVN1YmplY3QucGlwZSh0YWtlVW50aWwodGhpcy51blN1YmplY3QpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmxpc3QoKS5zZXRVbkFjdGl2ZSh0aGlzLmFjdGl2ZSgpKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5rZXlkb3duU3ViamVjdC5waXBlKHRha2VVbnRpbCh0aGlzLnVuU3ViamVjdCkpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICB0aGlzLmxpc3QoKS5rZXlkb3duKHgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMudW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMudW5TdWJqZWN0LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBzdG9wUHJvcGFnYXRpb24oZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIG9uTm9kZUNsaWNrKG5vZGU6IFhBdXRvQ29tcGxldGVOb2RlKSB7XHJcbiAgICB0aGlzLmtleXdvcmRUZXh0LnNldChub2RlLmxhYmVsKTtcclxuICAgIHRoaXMubm9kZUNsaWNrLmVtaXQobm9kZSk7XHJcbiAgfVxyXG5cclxuICBvbkFjdGl2ZShudW06IG51bWJlcikge1xyXG4gICAgdGhpcy5hY3RpdmUuc2V0KG51bSk7XHJcbiAgfVxyXG5cclxuICBvblRhYk91dCgpIHtcclxuICAgIHRoaXMuY2xvc2VTdWJqZWN0Lm5leHQoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gICNhdXRvQ29tcGxldGVQb3J0YWxcclxuICBjbGFzcz1cIngtYXV0by1jb21wbGV0ZS1wb3J0YWxcIlxyXG4gIHRhYmluZGV4PVwiLTFcIlxyXG4gIChjbGljayk9XCJpbnB1dENvbSgpPy5pbnB1dEZvY3VzKCdmb2N1cycpOyBzdG9wUHJvcGFnYXRpb24oJGV2ZW50KVwiXHJcbj5cclxuICA8eC1saXN0XHJcbiAgICAjbGlzdFxyXG4gICAgW2RhdGFdPVwiZGF0YSgpIVwiXHJcbiAgICAobm9kZUNsaWNrKT1cIm9uTm9kZUNsaWNrKCRldmVudClcIlxyXG4gICAgKGtleU1hbmFnZXJDaGFuZ2UpPVwib25BY3RpdmUoJGV2ZW50KVwiXHJcbiAgICAoa2V5TWFuYWdlclRhYk91dCk9XCJvblRhYk91dCgpXCJcclxuICAgIFtub2RlVHBsXT1cIm5vZGVUcGwoKVwiXHJcbiAgICBbc2Nyb2xsRWxlbWVudF09XCJhdXRvQ29tcGxldGVQb3J0YWxcIlxyXG4gICAgW2tleXdvcmRUZXh0XT1cImtleXdvcmRUZXh0KClcIlxyXG4gICAgW2Nhc2VTZW5zaXRpdmVdPVwiY2FzZVNlbnNpdGl2ZSgpXCJcclxuICAgIFtpblBvcnRhbF09XCJ0cnVlXCJcclxuICA+PC94LWxpc3Q+XHJcbjwvZGl2PlxyXG4iXX0=
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1jb21wbGV0ZS1wb3J0YWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvYXV0by1jb21wbGV0ZS9hdXRvLWNvbXBsZXRlLXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9hdXRvLWNvbXBsZXRlL2F1dG8tY29tcGxldGUtcG9ydGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUV2QixXQUFXLEVBQ1gsWUFBWSxFQUVaLEtBQUssRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXFCLHlCQUF5QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUscUJBQXFCLEVBQXNCLE1BQU0sa0JBQWtCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFhbEQsTUFBTSxPQUFPLDRCQUE0QjtJQVZ6QztRQXNCRSxTQUFJLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUU1RCxTQUFJLEdBQUcsS0FBSyxFQUF1QixDQUFDO1FBQ3BDLFVBQUssR0FBRyxLQUFLLEVBQU8sQ0FBQztRQUNyQixjQUFTLEdBQUcsS0FBSyxFQUFzQixDQUFDO1FBQ3hDLFlBQU8sR0FBRyxLQUFLLEVBQW9CLENBQUM7UUFDcEMsYUFBUSxHQUFHLEtB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QUM7OEJBR2tCLFlBQVk7c0JBQWhFLFdBQVc7dUJBQUMsMkJBQTJCO2dCQUdvQixJQUFJO3NCQUEvRCxZQUFZO3VCQUFDLGdDQUFnQyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUlHLEtBQUs7c0JBQWpFLFlBQVk7dUJBQUMsaUNBQWlDLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBPbkluaXQsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIGlucHV0LFxyXG4gIHZpZXdDaGlsZCxcclxuICBzaWduYWwsXHJcbiAgbW9kZWwsXHJcbiAgb3V0cHV0LFxyXG4gIERlc3Ryb3lSZWYsXHJcbiAgaW5qZWN0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhBdXRvQ29tcGxldGVOb2RlLCBYQXV0b0NvbXBsZXRlUG9ydGFsUHJlZml4IH0gZnJvbSAnLi9hdXRvLWNvbXBsZXRlLnByb3BlcnR5JztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBYQ29ubmVjdEJhc2VBbmltYXRpb24sIFhQb3NpdGlvblRvcEJvdHRvbSB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFhMaXN0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvbGlzdCc7XHJcbmltcG9ydCB7IFhJbnB1dENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2lucHV0JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYQXV0b0NvbXBsZXRlUG9ydGFsUHJlZml4fWAsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbWExpc3RDb21wb25lbnRdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRvLWNvbXBsZXRlLXBvcnRhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYXV0by1jb21wbGV0ZS1wb3J0YWwuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGFuaW1hdGlvbnM6IFtYQ29ubmVjdEJhc2VBbmltYXRpb25dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYQXV0b0NvbXBsZXRlUG9ydGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASG9zdEJpbmRpbmcoJ0B4LWNvbm5lY3QtYmFzZS1hbmltYXRpb24nKSBwdWJsaWMgZ2V0IGdldFBsYWNlbWVudCgpIHtcclxuICAgIHJldHVybiB0aGlzLnBsYWNlbWVudCgpO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uLmRvbmUnLCBbJyRldmVudCddKSBkb25lKCkge1xyXG4gICAgaWYgKHRoaXMuZGVzdHJveSgpKSByZXR1cm47XHJcbiAgICB0aGlzLmFuaW1hdGluZy5lbWl0KGZhbHNlKTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbi5zdGFydCcsIFsnJGV2ZW50J10pIHN0YXJ0KCkge1xyXG4gICAgaWYgKHRoaXMuZGVzdHJveSgpKSByZXR1cm47XHJcbiAgICB0aGlzLmFuaW1hdGluZy5lbWl0KHRydWUpO1xyXG4gIH1cclxuICBsaXN0ID0gdmlld0NoaWxkLnJlcXVpcmVkKCdsaXN0JywgeyByZWFkOiBYTGlzdENvbXBvbmVudCB9KTtcclxuXHJcbiAgZGF0YSA9IGlucHV0PFhBdXRvQ29tcGxldGVOb2RlW10+KCk7XHJcbiAgdmFsdWUgPSBpbnB1dDxhbnk+KCk7XHJcbiAgcGxhY2VtZW50ID0gaW5wdXQ8WFBvc2l0aW9uVG9wQm90dG9tPigpO1xyXG4gIG5vZGVUcGwgPSBpbnB1dDxUZW1wbGF0ZVJlZjxhbnk+PigpO1xyXG4gIGlucHV0Q29tID0gaW5wdXQ8WElucHV0Q29tcG9uZW50PigpO1xyXG4gIGtleXdvcmRUZXh0ID0gbW9kZWw8c3RyaW5nPignJyk7XHJcbiAgY2FzZVNlbnNpdGl2ZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICBhbmltYXRpbmcgPSBvdXRwdXQ8Ym9vbGVhbj4oKTtcclxuICBub2RlQ2xpY2sgPSBvdXRwdXQ8WEF1dG9Db21wbGV0ZU5vZGU+KCk7XHJcbiAgY2xvc2VTdWJqZWN0ITogU3ViamVjdDx2b2lkPjtcclxuICBrZXlkb3duU3ViamVjdCE6IFN1YmplY3Q8S2V5Ym9hcmRFdmVudD47XHJcbiAgYWN0aXZlID0gc2lnbmFsKC0xKTtcclxuICBkZXN0cm95ID0gc2lnbmFsKGZhbHNlKTtcclxuICBwcml2YXRlIHVuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2xvc2VTdWJqZWN0LnBpcGUodGFrZVVudGlsKHRoaXMudW5TdWJqZWN0KSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5saXN0KCkuc2V0VW5BY3RpdmUodGhpcy5hY3RpdmUoKSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMua2V5ZG93blN1YmplY3QucGlwZSh0YWtlVW50aWwodGhpcy51blN1YmplY3QpKS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgdGhpcy5saXN0KCkua2V5ZG93bih4KTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZGVzdHJveS5zZXQodHJ1ZSk7XHJcbiAgICAgIHRoaXMudW5TdWJqZWN0Lm5leHQoKTtcclxuICAgICAgdGhpcy51blN1YmplY3QuY29tcGxldGUoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc3RvcFByb3BhZ2F0aW9uKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBvbk5vZGVDbGljayhub2RlOiBYQXV0b0NvbXBsZXRlTm9kZSkge1xyXG4gICAgdGhpcy5rZXl3b3JkVGV4dC5zZXQobm9kZS5sYWJlbCk7XHJcbiAgICB0aGlzLm5vZGVDbGljay5lbWl0KG5vZGUpO1xyXG4gIH1cclxuXHJcbiAgb25BY3RpdmUobnVtOiBudW1iZXIpIHtcclxuICAgIHRoaXMuYWN0aXZlLnNldChudW0pO1xyXG4gIH1cclxuXHJcbiAgb25UYWJPdXQoKSB7XHJcbiAgICB0aGlzLmNsb3NlU3ViamVjdC5uZXh0KCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICAjYXV0b0NvbXBsZXRlUG9ydGFsXHJcbiAgY2xhc3M9XCJ4LWF1dG8tY29tcGxldGUtcG9ydGFsXCJcclxuICB0YWJpbmRleD1cIi0xXCJcclxuICAoY2xpY2spPVwiaW5wdXRDb20oKT8uaW5wdXRGb2N1cygnZm9jdXMnKTsgc3RvcFByb3BhZ2F0aW9uKCRldmVudClcIlxyXG4+XHJcbiAgPHgtbGlzdFxyXG4gICAgI2xpc3RcclxuICAgIFtkYXRhXT1cImRhdGEoKSFcIlxyXG4gICAgKG5vZGVDbGljayk9XCJvbk5vZGVDbGljaygkZXZlbnQpXCJcclxuICAgIChrZXlNYW5hZ2VyQ2hhbmdlKT1cIm9uQWN0aXZlKCRldmVudClcIlxyXG4gICAgKGtleU1hbmFnZXJUYWJPdXQpPVwib25UYWJPdXQoKVwiXHJcbiAgICBbbm9kZVRwbF09XCJub2RlVHBsKClcIlxyXG4gICAgW3Njcm9sbEVsZW1lbnRdPVwiYXV0b0NvbXBsZXRlUG9ydGFsXCJcclxuICAgIFtrZXl3b3JkVGV4dF09XCJrZXl3b3JkVGV4dCgpXCJcclxuICAgIFtjYXNlU2Vuc2l0aXZlXT1cImNhc2VTZW5zaXRpdmUoKVwiXHJcbiAgICBbaW5Qb3J0YWxdPVwidHJ1ZVwiXHJcbiAgPjwveC1saXN0PlxyXG48L2Rpdj5cclxuIl19
@@ -1,5 +1,5 @@
1
1
  import { BehaviorSubject, Subject, fromEvent } from 'rxjs';
2
- import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ViewContainerRef, inject, signal, viewChild, effect } from '@angular/core';
2
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ViewContainerRef, inject, signal, viewChild, effect, computed } from '@angular/core';
3
3
  import { XAutoCompleteProperty, XAutoCompletePrefix } from './auto-complete.property';
4
4
  import { XIsEmpty, XIsObservable, XIsChange, XSetData, XIsFunction, XParents } from '@ng-nest/ui/core';
5
5
  import { XPortalService, XPortalConnectedPosition } from '@ng-nest/ui/portal';
@@ -24,6 +24,9 @@ export class XAutoCompleteComponent extends XAutoCompleteProperty {
24
24
  this.iconSpin = signal(false);
25
25
  this.animating = signal(false);
26
26
  this.valueTplContextSignal = signal({ $node: null, $isValue: true });
27
+ this.valueTplContextComputed = computed(() => {
28
+ return this.valueTplContext() ? this.valueTplContext() : this.valueTplContextSignal();
29
+ });
27
30
  this.inputChange = new BehaviorSubject(null);
28
31
  this.closeSubject = new Subject();
29
32
  this.keydownSubject = new Subject();
@@ -294,10 +297,10 @@ export class XAutoCompleteComponent extends XAutoCompleteProperty {
294
297
  });
295
298
  }
296
299
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XAutoCompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
297
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.2", type: XAutoCompleteComponent, isStandalone: true, selector: "x-auto-complete", providers: [XValueAccessor(XAutoCompleteComponent)], viewQueries: [{ propertyName: "inputCom", first: true, predicate: ["inputCom"], descendants: true, read: XInputComponent, isSignal: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #autoComplete class=\"x-auto-complete\">\r\n <div class=\"x-auto-complete-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label()\"\r\n [labelWidth]=\"labelWidth()\"\r\n [labelAlign]=\"labelAlign()\"\r\n [justify]=\"justify()\"\r\n [align]=\"align()\"\r\n [direction]=\"direction()\"\r\n [disabled]=\"disabledComputed()\"\r\n [required]=\"requiredComputed()\"\r\n [validator]=\"validatorComputed()\"\r\n [icon]=\"icon()\"\r\n [iconSpin]=\"iconSpin()\"\r\n [placeholder]=\"placeholder()\"\r\n [readonly]=\"readonly()\"\r\n [clearable]=\"false\"\r\n [(ngModel)]=\"value\"\r\n [valueTpl]=\"valueTpl()\"\r\n [valueTplContext]=\"valueTplContextSignal()\"\r\n [size]=\"size()\"\r\n [bordered]=\"bordered()\"\r\n [before]=\"before()\"\r\n [after]=\"after()\"\r\n [pattern]=\"patternComputed()\"\r\n [message]=\"messageComputed()\"\r\n [pointer]=\"pointer()\"\r\n [(active)]=\"active\"\r\n (xInput)=\"onInput($event)\"\r\n (xKeydown)=\"onKeydown($event)\"\r\n (xClick)=\"showPortal()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-auto-complete{display:inline-block;width:12rem}.x-auto-complete{margin:0;padding:0}.x-auto-complete{width:100%}.x-auto-complete x-input{width:100%}.x-auto-complete-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);width:100%;border-radius:var(--x-border-small-radius);box-shadow:var(--x-box-shadow);position:relative;display:flex;background-color:var(--x-background-100);overflow-y:auto;max-height:calc(calc(var(--x-font-size) + .875rem) * 6 + var(--x-border-width) * 7)}.x-auto-complete-portal:focus{outline:none}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: XInputComponent, selector: "x-input" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
300
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.2", type: XAutoCompleteComponent, isStandalone: true, selector: "x-auto-complete", providers: [XValueAccessor(XAutoCompleteComponent)], viewQueries: [{ propertyName: "inputCom", first: true, predicate: ["inputCom"], descendants: true, read: XInputComponent, isSignal: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #autoComplete class=\"x-auto-complete\">\r\n <div class=\"x-auto-complete-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label()\"\r\n [labelWidth]=\"labelWidth()\"\r\n [labelAlign]=\"labelAlign()\"\r\n [justify]=\"justify()\"\r\n [align]=\"align()\"\r\n [direction]=\"direction()\"\r\n [disabled]=\"disabledComputed()\"\r\n [required]=\"requiredComputed()\"\r\n [validator]=\"validatorComputed()\"\r\n [inputValidator]=\"inputValidator()\"\r\n [icon]=\"icon()\"\r\n [iconSpin]=\"iconSpin()\"\r\n [placeholder]=\"placeholder()\"\r\n [readonly]=\"readonly()\"\r\n [clearable]=\"false\"\r\n [(ngModel)]=\"value\"\r\n [valueTpl]=\"valueTpl()\"\r\n [valueTplContext]=\"valueTplContextComputed()\"\r\n [size]=\"size()\"\r\n [bordered]=\"bordered()\"\r\n [before]=\"before()\"\r\n [after]=\"after()\"\r\n [pattern]=\"patternComputed()\"\r\n [message]=\"messageComputed()\"\r\n [pointer]=\"pointer()\"\r\n [(active)]=\"active\"\r\n (xInput)=\"onInput($event)\"\r\n (xKeydown)=\"onKeydown($event)\"\r\n (xClick)=\"showPortal()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-auto-complete{display:inline-block;width:12rem}.x-auto-complete{margin:0;padding:0}.x-auto-complete{width:100%}.x-auto-complete x-input{width:100%}.x-auto-complete-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);width:100%;border-radius:var(--x-border-small-radius);box-shadow:var(--x-box-shadow);position:relative;display:flex;background-color:var(--x-background-100);overflow-y:auto;max-height:calc(calc(var(--x-font-size) + .875rem) * 6 + var(--x-border-width) * 7)}.x-auto-complete-portal:focus{outline:none}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: XInputComponent, selector: "x-input" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
298
301
  }
299
302
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XAutoCompleteComponent, decorators: [{
300
303
  type: Component,
301
- args: [{ selector: `${XAutoCompletePrefix}`, standalone: true, imports: [NgClass, FormsModule, ReactiveFormsModule, XInputComponent, XAutoCompletePortalComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XAutoCompleteComponent)], template: "<div #autoComplete class=\"x-auto-complete\">\r\n <div class=\"x-auto-complete-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label()\"\r\n [labelWidth]=\"labelWidth()\"\r\n [labelAlign]=\"labelAlign()\"\r\n [justify]=\"justify()\"\r\n [align]=\"align()\"\r\n [direction]=\"direction()\"\r\n [disabled]=\"disabledComputed()\"\r\n [required]=\"requiredComputed()\"\r\n [validator]=\"validatorComputed()\"\r\n [icon]=\"icon()\"\r\n [iconSpin]=\"iconSpin()\"\r\n [placeholder]=\"placeholder()\"\r\n [readonly]=\"readonly()\"\r\n [clearable]=\"false\"\r\n [(ngModel)]=\"value\"\r\n [valueTpl]=\"valueTpl()\"\r\n [valueTplContext]=\"valueTplContextSignal()\"\r\n [size]=\"size()\"\r\n [bordered]=\"bordered()\"\r\n [before]=\"before()\"\r\n [after]=\"after()\"\r\n [pattern]=\"patternComputed()\"\r\n [message]=\"messageComputed()\"\r\n [pointer]=\"pointer()\"\r\n [(active)]=\"active\"\r\n (xInput)=\"onInput($event)\"\r\n (xKeydown)=\"onKeydown($event)\"\r\n (xClick)=\"showPortal()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-auto-complete{display:inline-block;width:12rem}.x-auto-complete{margin:0;padding:0}.x-auto-complete{width:100%}.x-auto-complete x-input{width:100%}.x-auto-complete-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);width:100%;border-radius:var(--x-border-small-radius);box-shadow:var(--x-box-shadow);position:relative;display:flex;background-color:var(--x-background-100);overflow-y:auto;max-height:calc(calc(var(--x-font-size) + .875rem) * 6 + var(--x-border-width) * 7)}.x-auto-complete-portal:focus{outline:none}\n"] }]
304
+ args: [{ selector: `${XAutoCompletePrefix}`, standalone: true, imports: [NgClass, FormsModule, ReactiveFormsModule, XInputComponent, XAutoCompletePortalComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XAutoCompleteComponent)], template: "<div #autoComplete class=\"x-auto-complete\">\r\n <div class=\"x-auto-complete-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label()\"\r\n [labelWidth]=\"labelWidth()\"\r\n [labelAlign]=\"labelAlign()\"\r\n [justify]=\"justify()\"\r\n [align]=\"align()\"\r\n [direction]=\"direction()\"\r\n [disabled]=\"disabledComputed()\"\r\n [required]=\"requiredComputed()\"\r\n [validator]=\"validatorComputed()\"\r\n [inputValidator]=\"inputValidator()\"\r\n [icon]=\"icon()\"\r\n [iconSpin]=\"iconSpin()\"\r\n [placeholder]=\"placeholder()\"\r\n [readonly]=\"readonly()\"\r\n [clearable]=\"false\"\r\n [(ngModel)]=\"value\"\r\n [valueTpl]=\"valueTpl()\"\r\n [valueTplContext]=\"valueTplContextComputed()\"\r\n [size]=\"size()\"\r\n [bordered]=\"bordered()\"\r\n [before]=\"before()\"\r\n [after]=\"after()\"\r\n [pattern]=\"patternComputed()\"\r\n [message]=\"messageComputed()\"\r\n [pointer]=\"pointer()\"\r\n [(active)]=\"active\"\r\n (xInput)=\"onInput($event)\"\r\n (xKeydown)=\"onKeydown($event)\"\r\n (xClick)=\"showPortal()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-auto-complete{display:inline-block;width:12rem}.x-auto-complete{margin:0;padding:0}.x-auto-complete{width:100%}.x-auto-complete x-input{width:100%}.x-auto-complete-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);width:100%;border-radius:var(--x-border-small-radius);box-shadow:var(--x-box-shadow);position:relative;display:flex;background-color:var(--x-background-100);overflow-y:auto;max-height:calc(calc(var(--x-font-size) + .875rem) * 6 + var(--x-border-width) * 7)}.x-auto-complete-portal:focus{outline:none}\n"] }]
302
305
  }], ctorParameters: () => [] });
303
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1jb21wbGV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9hdXRvLWNvbXBsZXRlL2F1dG8tY29tcGxldGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvYXV0by1jb21wbGV0ZS9hdXRvLWNvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzRCxPQUFPLEVBQ0wsU0FBUyxFQUVULGlCQUFpQixFQUNqQix1QkFBdUIsRUFDdkIsVUFBVSxFQUdWLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sTUFBTSxFQUNOLFNBQVMsRUFFVCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFxQixxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pHLE9BQU8sRUFDTCxRQUFRLEVBQ1IsYUFBYSxFQUNiLFNBQVMsRUFDVCxRQUFRLEVBRVIsV0FBVyxFQUNYLFFBQVEsRUFFVCxNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxjQUFjLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDaEYsT0FBTyxFQUNMLE9BQU8sRUFLUixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBWXRELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxxQkFBcUI7SUEwQi9EO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUExQlYsYUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7UUFFckUsVUFBSyxHQUFHLE1BQU0sQ0FBc0IsRUFBRSxDQUFDLENBQUM7UUFDeEMsZ0JBQVcsR0FBRyxNQUFNLENBQXNCLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLFNBQUksR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixjQUFTLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTFCLDBCQUFxQixHQUFHLE1BQU0sQ0FBb0MsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRW5HLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUM7UUFDN0MsaUJBQVksR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM1QyxtQkFBYyxHQUEyQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQy9DLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ2hDLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsa0JBQWEsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdkMscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDNUMsWUFBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQixlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWhDLGtCQUFhLEdBQUcsTUFBTSxDQUFvQixJQUFJLENBQUMsQ0FBQztRQUN4RCxvQkFBZSxHQUFHLE1BQU0sQ0FBb0QsSUFBSSxDQUFDLENBQUM7UUFDbEYscUJBQWdCLEdBQUcsTUFBTSxDQUFvQixJQUFJLENBQUMsQ0FBQztRQUNuRCxpQkFBWSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFJeEUsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxRQUFRLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdEUsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxRQUFRLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbEYsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDM0UsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxRQUFRLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDMUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxRQUFRLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdEYsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxRQUFRLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDNUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxRQUFRLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUN6QixTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUFFLE9BQU87UUFDbkUsUUFBUSxDQUFvQixJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3ZFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDL0QsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFdBQVc7YUFDYixJQUFJLENBQ0gsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLEVBQ3pCLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFZLENBQUMsRUFDM0Msb0JBQW9CLEVBQUUsRUFDdEIsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDMUI7YUFDQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNmLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUM7UUFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDbEUsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ3pGLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ3RDLENBQUM7WUFDRCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUN4RCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzNCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUMzQixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN4RCxJQUFJLFdBQVcsR0FBdUIsSUFBSSxDQUFDO1FBQzNDLEtBQUssSUFBSSxJQUFJLElBQUksT0FBTyxFQUFFLENBQUM7WUFDekIsSUFBSSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDMUMsV0FBVyxHQUFHLElBQUksQ0FBQztnQkFDbkIsTUFBTTtZQUNSLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxXQUFXLElBQUksV0FBVyxDQUFDLE9BQU8sS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUNsRCxTQUFTLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQztpQkFDN0IsSUFBSSxDQUNILE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFHLENBQUMsRUFDcEMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDMUI7aUJBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxjQUFjLEVBQUUsQ0FBQztnQkFDMUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztnQkFDcEUsTUFBTSxLQUFLLEdBQUcsV0FBWSxDQUFDLHFCQUFxQixFQUFFLENBQUM7Z0JBQ25ELElBQUksS0FBSyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUM1RSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUMzQixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0gsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ2hELENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2QixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO2dCQUN0QixJQUNFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtxQkFDVixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7cUJBQ25CLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsRUFDekIsQ0FBQztvQkFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDbkIsSUFBSSxJQUFJLENBQUMsUUFBUTt3QkFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO29CQUMvQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDdEMsQ0FBQztZQUNILENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUFFLE9BQU87UUFDckcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUN4RixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN4QixRQUFRLENBQW9CLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDM0YsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLEtBQUssRUFBRTthQUNULE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQzthQUN6QixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDckMsQ0FBQzthQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFDRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDN0UsTUFBTSxNQUFNLEdBQWtCO1lBQzVCLGFBQWEsRUFBRSxFQUFFO1lBQ2pCLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSztZQUNoQixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JDLGNBQWMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRTtTQUMzRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQztZQUN2QyxPQUFPLEVBQUUsNEJBQTRCO1lBQ3JDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsYUFBYSxFQUFFLE1BQU07U0FDdEIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFDMUMsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLFVBQVU7WUFBRSxPQUFPO1FBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDekMsVUFBVTtZQUNSLEVBQUUsb0JBQW9CLEVBQUU7YUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDL0IsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7UUFDTCxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUM7UUFDdkQsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQVksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMvRCxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBdUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRTtZQUNuQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDL0IsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO1NBQ3BDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBcUI7UUFDL0IsSUFBSSxRQUFRLEdBQUcsTUFBTSxDQUFDLGdCQUFxRCxDQUFDO1FBQzVFLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFtQyxFQUFFLEVBQUU7WUFDekcsTUFBTSxLQUFLLEdBQUcsd0JBQXdCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQXVCLENBQUM7WUFDckYsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM5QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxjQUFjLEVBQUUsQ0FBQztZQUM1QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQXVCO1FBQ2pDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3pCLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN0QyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNmLE9BQU8sRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzdCLElBQUksSUFBSSxDQUFDLFFBQVE7WUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO1lBQ3JDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO1lBQ3RDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQXdCLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsU0FBUyxDQUFDO1lBQ3pHLGlCQUFpQixFQUFFLHdCQUF3QjtTQUM1QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQXNCO1FBQ25DLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUNsQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBRSxDQUFDLENBQUMsS0FBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUUsS0FBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUM1RyxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsS0FBc0I7UUFDaEMsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDM0IsQ0FBQztxQkFBTSxDQUFDO29CQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO29CQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDeEIsUUFBUSxDQUFvQixJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBWSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7d0JBQzNGLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO3dCQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQ2xCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO29CQUNyQyxDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDO1lBQ0gsQ0FBQztZQUNELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hDLENBQUM7WUFDRCxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDO2dCQUMzQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzNCLENBQUM7cUJBQU0sQ0FBQztvQkFDTixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM3QixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFxQjtRQUM3QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsT0FBTyxDQUFDLE1BQWE7UUFDbkIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDNUIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztpSUE5U1Usc0JBQXNCO3FIQUF0QixzQkFBc0IsOERBRnRCLENBQUMsY0FBYyxDQUFDLHNCQUFzQixDQUFDLENBQUMsMkdBR0QsZUFBZSx5RkN2RG5FLGlyQ0FvQ0EsMG1CRFdxQixXQUFXLG90QkFBRSxtQkFBbUIsK0JBQUUsZUFBZTs7MkZBT3pELHNCQUFzQjtrQkFWbEMsU0FBUzsrQkFDRSxHQUFHLG1CQUFtQixFQUFFLGNBQ3RCLElBQUksV0FDUCxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLDRCQUE0QixDQUFDLGlCQUdwRixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBFbGVtZW50UmVmLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIFZpZXdDb250YWluZXJSZWYsXHJcbiAgaW5qZWN0LFxyXG4gIHNpZ25hbCxcclxuICB2aWV3Q2hpbGQsXHJcbiAgQ29tcG9uZW50UmVmLFxyXG4gIGVmZmVjdFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYQXV0b0NvbXBsZXRlTm9kZSwgWEF1dG9Db21wbGV0ZVByb3BlcnR5LCBYQXV0b0NvbXBsZXRlUHJlZml4IH0gZnJvbSAnLi9hdXRvLWNvbXBsZXRlLnByb3BlcnR5JztcclxuaW1wb3J0IHtcclxuICBYSXNFbXB0eSxcclxuICBYSXNPYnNlcnZhYmxlLFxyXG4gIFhJc0NoYW5nZSxcclxuICBYU2V0RGF0YSxcclxuICBYUG9zaXRpb25Ub3BCb3R0b20sXHJcbiAgWElzRnVuY3Rpb24sXHJcbiAgWFBhcmVudHMsXHJcbiAgWFBsYWNlbWVudFxyXG59IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBYUG9ydGFsU2VydmljZSwgWFBvcnRhbENvbm5lY3RlZFBvc2l0aW9uIH0gZnJvbSAnQG5nLW5lc3QvdWkvcG9ydGFsJztcclxuaW1wb3J0IHsgWElucHV0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvaW5wdXQnO1xyXG5pbXBvcnQgeyBYQXV0b0NvbXBsZXRlUG9ydGFsQ29tcG9uZW50IH0gZnJvbSAnLi9hdXRvLWNvbXBsZXRlLXBvcnRhbC5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIE92ZXJsYXksXHJcbiAgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5LFxyXG4gIENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSxcclxuICBPdmVybGF5Q29uZmlnLFxyXG4gIE92ZXJsYXlSZWZcclxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBET1dOX0FSUk9XLCBVUF9BUlJPVywgRU5URVIsIE1BQ19FTlRFUiwgRVNDQVBFIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcclxuaW1wb3J0IHsgWFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAbmctbmVzdC91aS9iYXNlLWZvcm0nO1xyXG5pbXBvcnQgeyBET0NVTUVOVCwgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYQXV0b0NvbXBsZXRlUHJlZml4fWAsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbTmdDbGFzcywgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFhJbnB1dENvbXBvbmVudCwgWEF1dG9Db21wbGV0ZVBvcnRhbENvbXBvbmVudF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dG8tY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2F1dG8tY29tcGxldGUuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW1hWYWx1ZUFjY2Vzc29yKFhBdXRvQ29tcGxldGVDb21wb25lbnQpXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWEF1dG9Db21wbGV0ZUNvbXBvbmVudCBleHRlbmRzIFhBdXRvQ29tcGxldGVQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBpbnB1dENvbSA9IHZpZXdDaGlsZC5yZXF1aXJlZCgnaW5wdXRDb20nLCB7IHJlYWQ6IFhJbnB1dENvbXBvbmVudCB9KTtcclxuXHJcbiAgbm9kZXMgPSBzaWduYWw8WEF1dG9Db21wbGV0ZU5vZGVbXT4oW10pO1xyXG4gIHNlYXJjaE5vZGVzID0gc2lnbmFsPFhBdXRvQ29tcGxldGVOb2RlW10+KFtdKTtcclxuICBpY29uID0gc2lnbmFsKCcnKTtcclxuICBpY29uU3BpbiA9IHNpZ25hbChmYWxzZSk7XHJcbiAgYW5pbWF0aW5nID0gc2lnbmFsKGZhbHNlKTtcclxuXHJcbiAgdmFsdWVUcGxDb250ZXh0U2lnbmFsID0gc2lnbmFsPHsgJG5vZGU6IGFueTsgJGlzVmFsdWU6IGJvb2xlYW4gfT4oeyAkbm9kZTogbnVsbCwgJGlzVmFsdWU6IHRydWUgfSk7XHJcblxyXG4gIGlucHV0Q2hhbmdlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xyXG4gIGNsb3NlU3ViamVjdDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAga2V5ZG93blN1YmplY3Q6IFN1YmplY3Q8S2V5Ym9hcmRFdmVudD4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIHByaXZhdGUgdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcclxuICBwcml2YXRlIHBvcnRhbFNlcnZpY2UgPSBpbmplY3QoWFBvcnRhbFNlcnZpY2UpO1xyXG4gIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcclxuICBwcml2YXRlIG92ZXJsYXkgPSBpbmplY3QoT3ZlcmxheSk7XHJcbiAgcHJpdmF0ZSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xyXG5cclxuICBwcml2YXRlIHJlYWxQbGFjZW1lbnQgPSBzaWduYWw8WFBsYWNlbWVudCB8IG51bGw+KG51bGwpO1xyXG4gIHBvcnRhbENvbXBvbmVudCA9IHNpZ25hbDxDb21wb25lbnRSZWY8WEF1dG9Db21wbGV0ZVBvcnRhbENvbXBvbmVudD4gfCBudWxsPihudWxsKTtcclxuICBwb3J0YWxPdmVybGF5UmVmID0gc2lnbmFsPE92ZXJsYXlSZWYgfCBudWxsPihudWxsKTtcclxuICBpbnB1dENoYW5nZWQgPSB0b1NpZ25hbCh0aGlzLmlucHV0Q2hhbmdlLnBpcGUoZmlsdGVyKCh4KSA9PiB4ICE9PSBudWxsKSkpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICBlZmZlY3QoKCkgPT4gdGhpcy5wb3J0YWxDb21wb25lbnQoKT8uc2V0SW5wdXQoJ3ZhbHVlJywgdGhpcy52YWx1ZSgpKSk7XHJcbiAgICBlZmZlY3QoKCkgPT4gdGhpcy5wb3J0YWxDb21wb25lbnQoKT8uc2V0SW5wdXQoJ3BsYWNlbWVudCcsIHRoaXMucmVhbFBsYWNlbWVudCgpKSk7XHJcbiAgICBlZmZlY3QoKCkgPT4gdGhpcy5wb3J0YWxDb21wb25lbnQoKT8uc2V0SW5wdXQoJ2RhdGEnLCB0aGlzLnNlYXJjaE5vZGVzKCkpKTtcclxuICAgIGVmZmVjdCgoKSA9PiB0aGlzLnBvcnRhbENvbXBvbmVudCgpPy5zZXRJbnB1dCgnbm9kZVRwbCcsIHRoaXMubm9kZVRwbCgpKSk7XHJcbiAgICBlZmZlY3QoKCkgPT4gdGhpcy5wb3J0YWxDb21wb25lbnQoKT8uc2V0SW5wdXQoJ2Nhc2VTZW5zaXRpdmUnLCB0aGlzLmNhc2VTZW5zaXRpdmUoKSkpO1xyXG4gICAgZWZmZWN0KCgpID0+IHRoaXMucG9ydGFsQ29tcG9uZW50KCk/LnNldElucHV0KCdpbnB1dENvbScsIHRoaXMuaW5wdXRDb20oKSkpO1xyXG4gICAgZWZmZWN0KCgpID0+IHRoaXMucG9ydGFsQ29tcG9uZW50KCk/LnNldElucHV0KCdrZXl3b3JkVGV4dCcsIHRoaXMuaW5wdXRDaGFuZ2VkKCkpKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zZXRTdWJqZWN0KCk7XHJcbiAgICB0aGlzLnNldFBhcmFudFNjcm9sbCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgY29uc3QgeyBkYXRhIH0gPSBjaGFuZ2VzO1xyXG4gICAgWElzQ2hhbmdlKGRhdGEpICYmIHRoaXMuc2V0RGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5zZXRQb3J0YWwoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy51blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy51blN1YmplY3QuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHNldERhdGEoKSB7XHJcbiAgICBpZiAoWElzT2JzZXJ2YWJsZSh0aGlzLmRhdGEoKSkgfHwgWElzRnVuY3Rpb24odGhpcy5kYXRhKCkpKSByZXR1cm47XHJcbiAgICBYU2V0RGF0YTxYQXV0b0NvbXBsZXRlTm9kZT4odGhpcy5kYXRhKCksIHRoaXMudW5TdWJqZWN0KS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgdGhpcy5ub2Rlcy5zZXQoeCk7XHJcbiAgICAgIHRoaXMuc2VhcmNoTm9kZXMuc2V0KHgpO1xyXG4gICAgICB0aGlzLnNldFBvcnRhbCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRTdWJqZWN0KCkge1xyXG4gICAgdGhpcy5jbG9zZVN1YmplY3QucGlwZSh0YWtlVW50aWwodGhpcy51blN1YmplY3QpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmNsb3NlUG9ydGFsKCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuaW5wdXRDaGFuZ2VcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKCh4KSA9PiB4ICE9PSBudWxsKSxcclxuICAgICAgICBkZWJvdW5jZVRpbWUodGhpcy5kZWJvdW5jZVRpbWUoKSBhcyBudW1iZXIpLFxyXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMudW5TdWJqZWN0KVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICB0aGlzLm1vZGVsQ2hhbmdlKHgpO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMua2V5ZG93blN1YmplY3QucGlwZSh0YWtlVW50aWwodGhpcy51blN1YmplY3QpKS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgY29uc3Qga2V5Q29kZSA9IHgua2V5Q29kZTtcclxuICAgICAgaWYgKCF0aGlzLnBvcnRhbEF0dGFjaGVkKCkgJiYgW0RPV05fQVJST1csIFVQX0FSUk9XLCBFTlRFUiwgTUFDX0VOVEVSXS5pbmNsdWRlcyhrZXlDb2RlKSkge1xyXG4gICAgICAgIHRoaXMuaW5wdXRDaGFuZ2UubmV4dCh0aGlzLnZhbHVlKCkpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnBvcnRhbEF0dGFjaGVkKCkgJiYgW0VTQ0FQRV0uaW5jbHVkZXMoa2V5Q29kZSkpIHtcclxuICAgICAgICB0aGlzLmNsb3NlU3ViamVjdC5uZXh0KCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0UGFyYW50U2Nyb2xsKCkge1xyXG4gICAgaWYgKCF0aGlzLmRvY3VtZW50KSByZXR1cm47XHJcbiAgICBjb25zdCBwYXJlbnRzID0gWFBhcmVudHModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgbGV0IGZpcnN0U2Nyb2xsOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xyXG4gICAgZm9yIChsZXQgaXRlbSBvZiBwYXJlbnRzKSB7XHJcbiAgICAgIGlmIChpdGVtLmNsaWVudEhlaWdodCA8IGl0ZW0uc2Nyb2xsSGVpZ2h0KSB7XHJcbiAgICAgICAgZmlyc3RTY3JvbGwgPSBpdGVtO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoZmlyc3RTY3JvbGwgJiYgZmlyc3RTY3JvbGwudGFnTmFtZSAhPT0gJ0JPRFknKSB7XHJcbiAgICAgIGZyb21FdmVudChmaXJzdFNjcm9sbCwgJ3Njcm9sbCcpXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5wb3J0YWxBdHRhY2hlZCgpISksXHJcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy51blN1YmplY3QpXHJcbiAgICAgICAgKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5wb3J0YWxPdmVybGF5UmVmKCk/LnVwZGF0ZVBvc2l0aW9uKCk7XHJcbiAgICAgICAgICBjb25zdCBlcmFjdCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgICAgY29uc3QgZnJlY3QgPSBmaXJzdFNjcm9sbCEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgICAgICBpZiAoZXJhY3QudG9wICsgZXJhY3QuaGVpZ2h0IC0gZnJlY3QudG9wIDwgMCB8fCBlcmFjdC5ib3R0b20gPiBmcmVjdC5ib3R0b20pIHtcclxuICAgICAgICAgICAgdGhpcy5jbG9zZVN1YmplY3QubmV4dCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcG9ydGFsQXR0YWNoZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wb3J0YWxPdmVybGF5UmVmKCk/Lmhhc0F0dGFjaGVkKCk7XHJcbiAgfVxyXG5cclxuICBjbG9zZVBvcnRhbCgpIHtcclxuICAgIGlmICh0aGlzLnBvcnRhbEF0dGFjaGVkKCkpIHtcclxuICAgICAgdGhpcy5wb3J0YWxPdmVybGF5UmVmKCk/LmRldGFjaCgpO1xyXG4gICAgICB0aGlzLmFjdGl2ZS5zZXQoZmFsc2UpO1xyXG4gICAgICBpZiAodGhpcy5vbmx5U2VsZWN0KCkpIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAhdGhpcy5ub2RlcygpXHJcbiAgICAgICAgICAgIC5tYXAoKHgpID0+IHgubGFiZWwpXHJcbiAgICAgICAgICAgIC5pbmNsdWRlcyh0aGlzLnZhbHVlKCkpXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlLnNldCgnJyk7XHJcbiAgICAgICAgICBpZiAodGhpcy5vbkNoYW5nZSkgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKCkpO1xyXG4gICAgICAgICAgdGhpcy5pbnB1dENoYW5nZS5uZXh0KHRoaXMudmFsdWUoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZGVzdHJveVBvcnRhbCgpIHtcclxuICAgIHRoaXMucG9ydGFsT3ZlcmxheVJlZigpPy5kaXNwb3NlKCk7XHJcbiAgfVxyXG5cclxuICBzaG93UG9ydGFsKCkge1xyXG4gICAgaWYgKFhJc0VtcHR5KHRoaXMudmFsdWUoKSkgfHwgdGhpcy5kaXNhYmxlZENvbXB1dGVkKCkgfHwgdGhpcy5pY29uU3BpbigpIHx8IHRoaXMuYW5pbWF0aW5nKCkpIHJldHVybjtcclxuICAgIHRoaXMuYWN0aXZlLnNldCh0cnVlKTtcclxuICAgIGlmICgoWElzT2JzZXJ2YWJsZSh0aGlzLmRhdGEoKSkgJiYgdGhpcy5ub2Rlcy5sZW5ndGggPT09IDApIHx8IFhJc0Z1bmN0aW9uKHRoaXMuZGF0YSgpKSkge1xyXG4gICAgICB0aGlzLmljb24uc2V0KCdmdG8tbG9hZGVyJyk7XHJcbiAgICAgIHRoaXMuaWNvblNwaW4uc2V0KHRydWUpO1xyXG4gICAgICBYU2V0RGF0YTxYQXV0b0NvbXBsZXRlTm9kZT4odGhpcy5kYXRhKCksIHRoaXMudW5TdWJqZWN0LCB0cnVlLCB0aGlzLnZhbHVlKCkpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaWNvbi5zZXQoJycpO1xyXG4gICAgICAgIHRoaXMuaWNvblNwaW4uc2V0KGZhbHNlKTtcclxuICAgICAgICB0aGlzLm5vZGVzLnNldCh4KTtcclxuICAgICAgICB0aGlzLmNyZWF0ZVBvcnRhbCgpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY3JlYXRlUG9ydGFsKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjcmVhdGVQb3J0YWwoKSB7XHJcbiAgICB0aGlzLm5vZGVzKClcclxuICAgICAgLmZpbHRlcigoeCkgPT4geC5zZWxlY3RlZClcclxuICAgICAgLm1hcCgoeCkgPT4gKHguc2VsZWN0ZWQgPSBmYWxzZSkpO1xyXG4gICAgaWYgKFhJc0Z1bmN0aW9uKHRoaXMuZGF0YSgpKSkge1xyXG4gICAgICB0aGlzLnNlYXJjaE5vZGVzLnNldCh0aGlzLm5vZGVzKCkpO1xyXG4gICAgfSBlbHNlIGlmICghWElzRW1wdHkodGhpcy52YWx1ZSgpKSkge1xyXG4gICAgICB0aGlzLnNldFNlYXJjaE5vZGVzKHRoaXMudmFsdWUoKSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBib3ggPSB0aGlzLmlucHV0Q29tKCkuaW5wdXRSZWYoKS5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgY29uc3QgY29uZmlnOiBPdmVybGF5Q29uZmlnID0ge1xyXG4gICAgICBiYWNrZHJvcENsYXNzOiAnJyxcclxuICAgICAgd2lkdGg6IGJveC53aWR0aCxcclxuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5zZXRQbGFjZW1lbnQoKSxcclxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKVxyXG4gICAgfTtcclxuICAgIHRoaXMuc2V0UG9zaXRpb24oY29uZmlnKTtcclxuICAgIGNvbnN0IHBvcnRhbCA9IHRoaXMucG9ydGFsU2VydmljZS5hdHRhY2goe1xyXG4gICAgICBjb250ZW50OiBYQXV0b0NvbXBsZXRlUG9ydGFsQ29tcG9uZW50LFxyXG4gICAgICB2aWV3Q29udGFpbmVyUmVmOiB0aGlzLnZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgIG92ZXJsYXlDb25maWc6IGNvbmZpZ1xyXG4gICAgfSk7XHJcbiAgICBsZXQgeyBjb21wb25lbnRSZWYsIG92ZXJsYXlSZWYgfSA9IHBvcnRhbDtcclxuICAgIGlmICghY29tcG9uZW50UmVmIHx8ICFvdmVybGF5UmVmKSByZXR1cm47XHJcbiAgICB0aGlzLnBvcnRhbENvbXBvbmVudC5zZXQoY29tcG9uZW50UmVmKTtcclxuICAgIHRoaXMucG9ydGFsT3ZlcmxheVJlZi5zZXQob3ZlcmxheVJlZik7XHJcbiAgICB0aGlzLnJlYWxQbGFjZW1lbnQuc2V0KHRoaXMucGxhY2VtZW50KCkpO1xyXG4gICAgb3ZlcmxheVJlZlxyXG4gICAgICA/Lm91dHNpZGVQb2ludGVyRXZlbnRzKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5TdWJqZWN0KSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jbG9zZVN1YmplY3QubmV4dCgpO1xyXG4gICAgICB9KTtcclxuICAgIGNvbnN0IHsgYW5pbWF0aW5nLCBub2RlQ2xpY2sgfSA9IGNvbXBvbmVudFJlZi5pbnN0YW5jZTtcclxuICAgIGFuaW1hdGluZy5zdWJzY3JpYmUoKGluZzogYm9vbGVhbikgPT4gdGhpcy5hbmltYXRpbmcuc2V0KGluZykpO1xyXG4gICAgbm9kZUNsaWNrLnN1YnNjcmliZSgobm9kZTogWEF1dG9Db21wbGV0ZU5vZGUpID0+IHRoaXMub25Ob2RlQ2xpY2sobm9kZSkpO1xyXG4gICAgT2JqZWN0LmFzc2lnbihjb21wb25lbnRSZWYuaW5zdGFuY2UsIHtcclxuICAgICAgY2xvc2VTdWJqZWN0OiB0aGlzLmNsb3NlU3ViamVjdCxcclxuICAgICAga2V5ZG93blN1YmplY3Q6IHRoaXMua2V5ZG93blN1YmplY3RcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0UG9zaXRpb24oY29uZmlnOiBPdmVybGF5Q29uZmlnKSB7XHJcbiAgICBsZXQgcG9zaXRpb24gPSBjb25maWcucG9zaXRpb25TdHJhdGVneSBhcyBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3k7XHJcbiAgICBwb3NpdGlvbi5wb3NpdGlvbkNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy51blN1YmplY3QpKS5zdWJzY3JpYmUoKHBvczogQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlKSA9PiB7XHJcbiAgICAgIGNvbnN0IHBsYWNlID0gWFBvcnRhbENvbm5lY3RlZFBvc2l0aW9uLmdldChwb3MuY29ubmVjdGlvblBhaXIpIGFzIFhQb3NpdGlvblRvcEJvdHRvbTtcclxuICAgICAgaWYgKHBsYWNlICE9PSB0aGlzLnJlYWxQbGFjZW1lbnQoKSkge1xyXG4gICAgICAgIHRoaXMucmVhbFBsYWNlbWVudC5zZXQocGxhY2UpO1xyXG4gICAgICAgIHRoaXMucG9ydGFsT3ZlcmxheVJlZigpPy51cGRhdGVQb3NpdGlvbigpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uTm9kZUNsaWNrKG5vZGU6IFhBdXRvQ29tcGxldGVOb2RlKSB7XHJcbiAgICBpZiAodGhpcy52YWx1ZSgpID09PSBub2RlLmxhYmVsKSB7XHJcbiAgICAgIHRoaXMubm9kZUVtaXQuZW1pdChub2RlKTtcclxuICAgICAgdGhpcy5jbG9zZVN1YmplY3QubmV4dCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnZhbHVlLnNldChub2RlLmxhYmVsKTtcclxuICAgIHRoaXMudmFsdWVUcGxDb250ZXh0U2lnbmFsLnVwZGF0ZSgoeCkgPT4ge1xyXG4gICAgICB4LiRub2RlID0gbm9kZTtcclxuICAgICAgcmV0dXJuIHsgLi4ueCB9O1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmlucHV0Q29tKCkuaW5wdXRGb2N1cygpO1xyXG4gICAgaWYgKHRoaXMub25DaGFuZ2UpIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSgpKTtcclxuICAgIHRoaXMubm9kZUVtaXQuZW1pdChub2RlKTtcclxuICAgIHRoaXMuY2xvc2VTdWJqZWN0Lm5leHQoKTtcclxuICB9XHJcblxyXG4gIHNldFBsYWNlbWVudCgpIHtcclxuICAgIHJldHVybiB0aGlzLnBvcnRhbFNlcnZpY2Uuc2V0UGxhY2VtZW50KHtcclxuICAgICAgZWxlbWVudFJlZjogdGhpcy5pbnB1dENvbSgpLmlucHV0UmVmKCksXHJcbiAgICAgIHBsYWNlbWVudDogW3RoaXMucGxhY2VtZW50KCkgYXMgWFBvc2l0aW9uVG9wQm90dG9tLCAnYm90dG9tLXN0YXJ0JywgJ2JvdHRvbS1lbmQnLCAndG9wLXN0YXJ0JywgJ3RvcC1lbmQnXSxcclxuICAgICAgdHJhbnNmb3JtT3JpZ2luT246ICd4LWF1dG8tY29tcGxldGUtcG9ydGFsJ1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRQb3J0YWwoKSB7XHJcbiAgICB0aGlzLnBvcnRhbEF0dGFjaGVkKCkgJiYgdGhpcy5wb3J0YWxPdmVybGF5UmVmKCk/LnVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3kodGhpcy5zZXRQbGFjZW1lbnQoKSk7XHJcbiAgfVxyXG5cclxuICBzZXRTZWFyY2hOb2Rlcyh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKSB7XHJcbiAgICBpZiAodGhpcy5jYXNlU2Vuc2l0aXZlKCkpIHtcclxuICAgICAgdGhpcy5zZWFyY2hOb2Rlcy5zZXQodGhpcy5ub2RlcygpLmZpbHRlcigoeCkgPT4geC5sYWJlbC5pbmRleE9mKHZhbHVlKSA+PSAwKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlYXJjaE5vZGVzLnNldChcclxuICAgICAgICB0aGlzLm5vZGVzKCkuZmlsdGVyKCh4KSA9PiAoeC5sYWJlbCBhcyBzdHJpbmcpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigodmFsdWUgYXMgc3RyaW5nKS50b0xvd2VyQ2FzZSgpKSA+PSAwKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbW9kZWxDaGFuZ2UodmFsdWU6IHN0cmluZyB8IG51bWJlcikge1xyXG4gICAgaWYgKFhJc0Z1bmN0aW9uKHRoaXMuZGF0YSgpKSkge1xyXG4gICAgICBpZiAoIXRoaXMucG9ydGFsQXR0YWNoZWQoKSkge1xyXG4gICAgICAgIHRoaXMuc2hvd1BvcnRhbCgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChYSXNFbXB0eSh2YWx1ZSkpIHtcclxuICAgICAgICAgIHRoaXMuY2xvc2VTdWJqZWN0Lm5leHQoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5pY29uLnNldCgnZnRvLWxvYWRlcicpO1xyXG4gICAgICAgICAgdGhpcy5pY29uU3Bpbi5zZXQodHJ1ZSk7XHJcbiAgICAgICAgICBYU2V0RGF0YTxYQXV0b0NvbXBsZXRlTm9kZT4odGhpcy5kYXRhKCksIHRoaXMudW5TdWJqZWN0LCB0cnVlLCB2YWx1ZSBhcyBhbnkpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmljb24uc2V0KCcnKTtcclxuICAgICAgICAgICAgdGhpcy5pY29uU3Bpbi5zZXQoZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGVzLnNldCh4KTtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hOb2Rlcy5zZXQodGhpcy5ub2RlcygpKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoIXRoaXMub25seVNlbGVjdCgpKSB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSAmJiB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5ub2RlcygpKSB7XHJcbiAgICAgIGlmICghdGhpcy5wb3J0YWxBdHRhY2hlZCgpKSB7XHJcbiAgICAgICAgdGhpcy5zaG93UG9ydGFsKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKFhJc0VtcHR5KHZhbHVlKSkge1xyXG4gICAgICAgICAgdGhpcy5jbG9zZVN1YmplY3QubmV4dCgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnNldFNlYXJjaE5vZGVzKHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICghdGhpcy5vbmx5U2VsZWN0KSB7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UgJiYgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbktleWRvd24oJGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICB0aGlzLmtleWRvd25TdWJqZWN0Lm5leHQoJGV2ZW50KTtcclxuICB9XHJcblxyXG4gIG9uSW5wdXQoX2V2ZW50OiBFdmVudCkge1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbFZhbGlkYXRvcigpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wdXRDaGFuZ2UubmV4dCh0aGlzLnZhbHVlKCkpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgI2F1dG9Db21wbGV0ZSBjbGFzcz1cIngtYXV0by1jb21wbGV0ZVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LWF1dG8tY29tcGxldGUtcm93XCI+XHJcbiAgICA8eC1pbnB1dFxyXG4gICAgICAjaW5wdXRDb21cclxuICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICBbbGFiZWxdPVwibGFiZWwoKVwiXHJcbiAgICAgIFtsYWJlbFdpZHRoXT1cImxhYmVsV2lkdGgoKVwiXHJcbiAgICAgIFtsYWJlbEFsaWduXT1cImxhYmVsQWxpZ24oKVwiXHJcbiAgICAgIFtqdXN0aWZ5XT1cImp1c3RpZnkoKVwiXHJcbiAgICAgIFthbGlnbl09XCJhbGlnbigpXCJcclxuICAgICAgW2RpcmVjdGlvbl09XCJkaXJlY3Rpb24oKVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZENvbXB1dGVkKClcIlxyXG4gICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRDb21wdXRlZCgpXCJcclxuICAgICAgW3ZhbGlkYXRvcl09XCJ2YWxpZGF0b3JDb21wdXRlZCgpXCJcclxuICAgICAgW2ljb25dPVwiaWNvbigpXCJcclxuICAgICAgW2ljb25TcGluXT1cImljb25TcGluKClcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIoKVwiXHJcbiAgICAgIFtyZWFkb25seV09XCJyZWFkb25seSgpXCJcclxuICAgICAgW2NsZWFyYWJsZV09XCJmYWxzZVwiXHJcbiAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxyXG4gICAgICBbdmFsdWVUcGxdPVwidmFsdWVUcGwoKVwiXHJcbiAgICAgIFt2YWx1ZVRwbENvbnRleHRdPVwidmFsdWVUcGxDb250ZXh0U2lnbmFsKClcIlxyXG4gICAgICBbc2l6ZV09XCJzaXplKClcIlxyXG4gICAgICBbYm9yZGVyZWRdPVwiYm9yZGVyZWQoKVwiXHJcbiAgICAgIFtiZWZvcmVdPVwiYmVmb3JlKClcIlxyXG4gICAgICBbYWZ0ZXJdPVwiYWZ0ZXIoKVwiXHJcbiAgICAgIFtwYXR0ZXJuXT1cInBhdHRlcm5Db21wdXRlZCgpXCJcclxuICAgICAgW21lc3NhZ2VdPVwibWVzc2FnZUNvbXB1dGVkKClcIlxyXG4gICAgICBbcG9pbnRlcl09XCJwb2ludGVyKClcIlxyXG4gICAgICBbKGFjdGl2ZSldPVwiYWN0aXZlXCJcclxuICAgICAgKHhJbnB1dCk9XCJvbklucHV0KCRldmVudClcIlxyXG4gICAgICAoeEtleWRvd24pPVwib25LZXlkb3duKCRldmVudClcIlxyXG4gICAgICAoeENsaWNrKT1cInNob3dQb3J0YWwoKVwiXHJcbiAgICA+PC94LWlucHV0PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
306
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1jb21wbGV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9hdXRvLWNvbXBsZXRlL2F1dG8tY29tcGxldGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvYXV0by1jb21wbGV0ZS9hdXRvLWNvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzRCxPQUFPLEVBQ0wsU0FBUyxFQUVULGlCQUFpQixFQUNqQix1QkFBdUIsRUFDdkIsVUFBVSxFQUdWLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sTUFBTSxFQUNOLFNBQVMsRUFFVCxNQUFNLEVBQ04sUUFBUSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBcUIscUJBQXFCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RyxPQUFPLEVBQ0wsUUFBUSxFQUNSLGFBQWEsRUFDYixTQUFTLEVBQ1QsUUFBUSxFQUVSLFdBQVcsRUFDWCxRQUFRLEVBRVQsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsY0FBYyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2hGLE9BQU8sRUFDTCxPQUFPLEVBS1IsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RixPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7OztBQVl0RCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEscUJBQXFCO0lBNkIvRDtRQUNFLEtBQUssRUFBRSxDQUFDO1FBN0JWLGFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBRXJFLFVBQUssR0FBRyxNQUFNLENBQXNCLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLGdCQUFXLEdBQUcsTUFBTSxDQUFzQixFQUFFLENBQUMsQ0FBQztRQUM5QyxTQUFJLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2xCLGFBQVEsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsY0FBUyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxQiwwQkFBcUIsR0FBRyxNQUFNLENBQW9DLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNuRyw0QkFBdUIsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3RDLE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3hGLENBQUMsQ0FBQyxDQUFDO1FBRUgsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsQ0FBQztRQUM3QyxpQkFBWSxHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzVDLG1CQUFjLEdBQTJCLElBQUksT0FBTyxFQUFFLENBQUM7UUFDL0MsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDaEMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN2QyxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM1QyxZQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFCLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFaEMsa0JBQWEsR0FBRyxNQUFNLENBQW9CLElBQUksQ0FBQyxDQUFDO1FBQ3hELG9CQUFlLEdBQUcsTUFBTSxDQUFvRCxJQUFJLENBQUMsQ0FBQztRQUNsRixxQkFBZ0IsR0FBRyxNQUFNLENBQW9CLElBQUksQ0FBQyxDQUFDO1FBQ25ELGlCQUFZLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUl4RSxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN0RSxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNsRixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzRSxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMxRSxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN0RixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1RSxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQ3pCLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQUUsT0FBTztRQUNuRSxRQUFRLENBQW9CLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDdkUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUMvRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVzthQUNiLElBQUksQ0FDSCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsRUFDekIsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQVksQ0FBQyxFQUMzQyxvQkFBb0IsRUFBRSxFQUN0QixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQjthQUNBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztRQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNsRSxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDekYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDdEMsQ0FBQztZQUNELElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ3hELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDM0IsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBQzNCLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3hELElBQUksV0FBVyxHQUF1QixJQUFJLENBQUM7UUFDM0MsS0FBSyxJQUFJLElBQUksSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUN6QixJQUFJLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUMxQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2dCQUNuQixNQUFNO1lBQ1IsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLFdBQVcsSUFBSSxXQUFXLENBQUMsT0FBTyxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ2xELFNBQVMsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDO2lCQUM3QixJQUFJLENBQ0gsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUcsQ0FBQyxFQUNwQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQjtpQkFDQSxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLGNBQWMsRUFBRSxDQUFDO2dCQUMxQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO2dCQUNwRSxNQUFNLEtBQUssR0FBRyxXQUFZLENBQUMscUJBQXFCLEVBQUUsQ0FBQztnQkFDbkQsSUFBSSxLQUFLLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQzVFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzNCLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7SUFDSCxDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7Z0JBQ3RCLElBQ0UsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO3FCQUNWLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztxQkFDbkIsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUN6QixDQUFDO29CQUNELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNuQixJQUFJLElBQUksQ0FBQyxRQUFRO3dCQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7b0JBQy9DLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUN0QyxDQUFDO1lBQ0gsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQUUsT0FBTztRQUNyRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ3hGLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hCLFFBQVEsQ0FBb0IsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUMzRixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNsQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsS0FBSyxFQUFFO2FBQ1QsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO2FBQ3pCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEMsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNyQyxDQUFDO2FBQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUNELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUM3RSxNQUFNLE1BQU0sR0FBa0I7WUFDNUIsYUFBYSxFQUFFLEVBQUU7WUFDakIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLO1lBQ2hCLGdCQUFnQixFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckMsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFO1NBQzNELENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO1lBQ3ZDLE9BQU8sRUFBRSw0QkFBNEI7WUFDckMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUN2QyxhQUFhLEVBQUUsTUFBTTtTQUN0QixDQUFDLENBQUM7UUFDSCxJQUFJLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUMxQyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsVUFBVTtZQUFFLE9BQU87UUFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUN6QyxVQUFVO1lBQ1IsRUFBRSxvQkFBb0IsRUFBRTthQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUMvQixTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztRQUNMLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQztRQUN2RCxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBWSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQy9ELFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUF1QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDekUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFO1lBQ25DLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtZQUMvQixjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7U0FDcEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFxQjtRQUMvQixJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUMsZ0JBQXFELENBQUM7UUFDNUUsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQW1DLEVBQUUsRUFBRTtZQUN6RyxNQUFNLEtBQUssR0FBRyx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBdUIsQ0FBQztZQUNyRixJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLGNBQWMsRUFBRSxDQUFDO1lBQzVDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsSUFBdUI7UUFDakMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDekIsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3RDLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ2YsT0FBTyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDN0IsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUM7WUFDckMsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7WUFDdEMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBd0IsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxTQUFTLENBQUM7WUFDekcsaUJBQWlCLEVBQUUsd0JBQXdCO1NBQzVDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLHNCQUFzQixDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBc0I7UUFDbkMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hGLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQ2xCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFFLENBQUMsQ0FBQyxLQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBRSxLQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQzVHLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFzQjtRQUNoQyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUMzQixDQUFDO3FCQUFNLENBQUM7b0JBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN4QixRQUFRLENBQW9CLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFZLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTt3QkFDM0YsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7d0JBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDbEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7b0JBQ3JDLENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUM7WUFDSCxDQUFDO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO2dCQUN2QixJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDeEMsQ0FBQztZQUNELE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDM0IsQ0FBQztxQkFBTSxDQUFDO29CQUNOLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzdCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQXFCO1FBQzdCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxPQUFPLENBQUMsTUFBYTtRQUNuQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1QixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO2lJQWpUVSxzQkFBc0I7cUhBQXRCLHNCQUFzQiw4REFGdEIsQ0FBQyxjQUFjLENBQUMsc0JBQXNCLENBQUMsQ0FBQywyR0FHRCxlQUFlLHlGQ3hEbkUsa3VDQXFDQSwwbUJEV3FCLFdBQVcsb3RCQUFFLG1CQUFtQiwrQkFBRSxlQUFlOzsyRkFPekQsc0JBQXNCO2tCQVZsQyxTQUFTOytCQUNFLEdBQUcsbUJBQW1CLEVBQUUsY0FDdEIsSUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsNEJBQTRCLENBQUMsaUJBR3BGLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBPbkNoYW5nZXMsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxuICBpbmplY3QsXHJcbiAgc2lnbmFsLFxyXG4gIHZpZXdDaGlsZCxcclxuICBDb21wb25lbnRSZWYsXHJcbiAgZWZmZWN0LFxyXG4gIGNvbXB1dGVkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhBdXRvQ29tcGxldGVOb2RlLCBYQXV0b0NvbXBsZXRlUHJvcGVydHksIFhBdXRvQ29tcGxldGVQcmVmaXggfSBmcm9tICcuL2F1dG8tY29tcGxldGUucHJvcGVydHknO1xyXG5pbXBvcnQge1xyXG4gIFhJc0VtcHR5LFxyXG4gIFhJc09ic2VydmFibGUsXHJcbiAgWElzQ2hhbmdlLFxyXG4gIFhTZXREYXRhLFxyXG4gIFhQb3NpdGlvblRvcEJvdHRvbSxcclxuICBYSXNGdW5jdGlvbixcclxuICBYUGFyZW50cyxcclxuICBYUGxhY2VtZW50XHJcbn0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IFhQb3J0YWxTZXJ2aWNlLCBYUG9ydGFsQ29ubmVjdGVkUG9zaXRpb24gfSBmcm9tICdAbmctbmVzdC91aS9wb3J0YWwnO1xyXG5pbXBvcnQgeyBYSW5wdXRDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9pbnB1dCc7XHJcbmltcG9ydCB7IFhBdXRvQ29tcGxldGVQb3J0YWxDb21wb25lbnQgfSBmcm9tICcuL2F1dG8tY29tcGxldGUtcG9ydGFsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgT3ZlcmxheSxcclxuICBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3ksXHJcbiAgQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlLFxyXG4gIE92ZXJsYXlDb25maWcsXHJcbiAgT3ZlcmxheVJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IERPV05fQVJST1csIFVQX0FSUk9XLCBFTlRFUiwgTUFDX0VOVEVSLCBFU0NBUEUgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xyXG5pbXBvcnQgeyBYVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0BuZy1uZXN0L3VpL2Jhc2UtZm9ybSc7XHJcbmltcG9ydCB7IERPQ1VNRU5ULCBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hBdXRvQ29tcGxldGVQcmVmaXh9YCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtOZ0NsYXNzLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgWElucHV0Q29tcG9uZW50LCBYQXV0b0NvbXBsZXRlUG9ydGFsQ29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vYXV0by1jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYXV0by1jb21wbGV0ZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbWFZhbHVlQWNjZXNzb3IoWEF1dG9Db21wbGV0ZUNvbXBvbmVudCldXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYQXV0b0NvbXBsZXRlQ29tcG9uZW50IGV4dGVuZHMgWEF1dG9Db21wbGV0ZVByb3BlcnR5IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIGlucHV0Q29tID0gdmlld0NoaWxkLnJlcXVpcmVkKCdpbnB1dENvbScsIHsgcmVhZDogWElucHV0Q29tcG9uZW50IH0pO1xyXG5cclxuICBub2RlcyA9IHNpZ25hbDxYQXV0b0NvbXBsZXRlTm9kZVtdPihbXSk7XHJcbiAgc2VhcmNoTm9kZXMgPSBzaWduYWw8WEF1dG9Db21wbGV0ZU5vZGVbXT4oW10pO1xyXG4gIGljb24gPSBzaWduYWwoJycpO1xyXG4gIGljb25TcGluID0gc2lnbmFsKGZhbHNlKTtcclxuICBhbmltYXRpbmcgPSBzaWduYWwoZmFsc2UpO1xyXG5cclxuICB2YWx1ZVRwbENvbnRleHRTaWduYWwgPSBzaWduYWw8eyAkbm9kZTogYW55OyAkaXNWYWx1ZTogYm9vbGVhbiB9Pih7ICRub2RlOiBudWxsLCAkaXNWYWx1ZTogdHJ1ZSB9KTtcclxuICB2YWx1ZVRwbENvbnRleHRDb21wdXRlZCA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIHJldHVybiB0aGlzLnZhbHVlVHBsQ29udGV4dCgpID8gdGhpcy52YWx1ZVRwbENvbnRleHQoKSA6IHRoaXMudmFsdWVUcGxDb250ZXh0U2lnbmFsKCk7XHJcbiAgfSk7XHJcblxyXG4gIGlucHV0Q2hhbmdlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xyXG4gIGNsb3NlU3ViamVjdDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAga2V5ZG93blN1YmplY3Q6IFN1YmplY3Q8S2V5Ym9hcmRFdmVudD4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIHByaXZhdGUgdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcclxuICBwcml2YXRlIHBvcnRhbFNlcnZpY2UgPSBpbmplY3QoWFBvcnRhbFNlcnZpY2UpO1xyXG4gIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcclxuICBwcml2YXRlIG92ZXJsYXkgPSBpbmplY3QoT3ZlcmxheSk7XHJcbiAgcHJpdmF0ZSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xyXG5cclxuICBwcml2YXRlIHJlYWxQbGFjZW1lbnQgPSBzaWduYWw8WFBsYWNlbWVudCB8IG51bGw+KG51bGwpO1xyXG4gIHBvcnRhbENvbXBvbmVudCA9IHNpZ25hbDxDb21wb25lbnRSZWY8WEF1dG9Db21wbGV0ZVBvcnRhbENvbXBvbmVudD4gfCBudWxsPihudWxsKTtcclxuICBwb3J0YWxPdmVybGF5UmVmID0gc2lnbmFsPE92ZXJsYXlSZWYgfCBudWxsPihudWxsKTtcclxuICBpbnB1dENoYW5nZWQgPSB0b1NpZ25hbCh0aGlzLmlucHV0Q2hhbmdlLnBpcGUoZmlsdGVyKCh4KSA9PiB4ICE9PSBudWxsKSkpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICBlZmZlY3QoKCkgPT4gdGhpcy5wb3J0YWxDb21wb25lbnQoKT8uc2V0SW5wdXQoJ3ZhbHVlJywgdGhpcy52YWx1ZSgpKSk7XHJcbiAgICBlZmZlY3QoKCkgPT4gdGhpcy5wb3J0YWxDb21wb25lbnQoKT8uc2V0SW5wdXQoJ3BsYWNlbWVudCcsIHRoaXMucmVhbFBsYWNlbWVudCgpKSk7XHJcbiAgICBlZmZlY3QoKCkgPT4gdGhpcy5wb3J0YWxDb21wb25lbnQoKT8uc2V0SW5wdXQoJ2RhdGEnLCB0aGlzLnNlYXJjaE5vZGVzKCkpKTtcclxuICAgIGVmZmVjdCgoKSA9PiB0aGlzLnBvcnRhbENvbXBvbmVudCgpPy5zZXRJbnB1dCgnbm9kZVRwbCcsIHRoaXMubm9kZVRwbCgpKSk7XHJcbiAgICBlZmZlY3QoKCkgPT4gdGhpcy5wb3J0YWxDb21wb25lbnQoKT8uc2V0SW5wdXQoJ2Nhc2VTZW5zaXRpdmUnLCB0aGlzLmNhc2VTZW5zaXRpdmUoKSkpO1xyXG4gICAgZWZmZWN0KCgpID0+IHRoaXMucG9ydGFsQ29tcG9uZW50KCk/LnNldElucHV0KCdpbnB1dENvbScsIHRoaXMuaW5wdXRDb20oKSkpO1xyXG4gICAgZWZmZWN0KCgpID0+IHRoaXMucG9ydGFsQ29tcG9uZW50KCk/LnNldElucHV0KCdrZXl3b3JkVGV4dCcsIHRoaXMuaW5wdXRDaGFuZ2VkKCkpKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zZXRTdWJqZWN0KCk7XHJcbiAgICB0aGlzLnNldFBhcmFudFNjcm9sbCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgY29uc3QgeyBkYXRhIH0gPSBjaGFuZ2VzO1xyXG4gICAgWElzQ2hhbmdlKGRhdGEpICYmIHRoaXMuc2V0RGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5zZXRQb3J0YWwoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy51blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy51blN1YmplY3QuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHNldERhdGEoKSB7XHJcbiAgICBpZiAoWElzT2JzZXJ2YWJsZSh0aGlzLmRhdGEoKSkgfHwgWElzRnVuY3Rpb24odGhpcy5kYXRhKCkpKSByZXR1cm47XHJcbiAgICBYU2V0RGF0YTxYQXV0b0NvbXBsZXRlTm9kZT4odGhpcy5kYXRhKCksIHRoaXMudW5TdWJqZWN0KS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgdGhpcy5ub2Rlcy5zZXQoeCk7XHJcbiAgICAgIHRoaXMuc2VhcmNoTm9kZXMuc2V0KHgpO1xyXG4gICAgICB0aGlzLnNldFBvcnRhbCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRTdWJqZWN0KCkge1xyXG4gICAgdGhpcy5jbG9zZVN1YmplY3QucGlwZSh0YWtlVW50aWwodGhpcy51blN1YmplY3QpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmNsb3NlUG9ydGFsKCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuaW5wdXRDaGFuZ2VcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKCh4KSA9PiB4ICE9PSBudWxsKSxcclxuICAgICAgICBkZWJvdW5jZVRpbWUodGhpcy5kZWJvdW5jZVRpbWUoKSBhcyBudW1iZXIpLFxyXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMudW5TdWJqZWN0KVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICB0aGlzLm1vZGVsQ2hhbmdlKHgpO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMua2V5ZG93blN1YmplY3QucGlwZSh0YWtlVW50aWwodGhpcy51blN1YmplY3QpKS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgY29uc3Qga2V5Q29kZSA9IHgua2V5Q29kZTtcclxuICAgICAgaWYgKCF0aGlzLnBvcnRhbEF0dGFjaGVkKCkgJiYgW0RPV05fQVJST1csIFVQX0FSUk9XLCBFTlRFUiwgTUFDX0VOVEVSXS5pbmNsdWRlcyhrZXlDb2RlKSkge1xyXG4gICAgICAgIHRoaXMuaW5wdXRDaGFuZ2UubmV4dCh0aGlzLnZhbHVlKCkpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnBvcnRhbEF0dGFjaGVkKCkgJiYgW0VTQ0FQRV0uaW5jbHVkZXMoa2V5Q29kZSkpIHtcclxuICAgICAgICB0aGlzLmNsb3NlU3ViamVjdC5uZXh0KCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0UGFyYW50U2Nyb2xsKCkge1xyXG4gICAgaWYgKCF0aGlzLmRvY3VtZW50KSByZXR1cm47XHJcbiAgICBjb25zdCBwYXJlbnRzID0gWFBhcmVudHModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgbGV0IGZpcnN0U2Nyb2xsOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xyXG4gICAgZm9yIChsZXQgaXRlbSBvZiBwYXJlbnRzKSB7XHJcbiAgICAgIGlmIChpdGVtLmNsaWVudEhlaWdodCA8IGl0ZW0uc2Nyb2xsSGVpZ2h0KSB7XHJcbiAgICAgICAgZmlyc3RTY3JvbGwgPSBpdGVtO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoZmlyc3RTY3JvbGwgJiYgZmlyc3RTY3JvbGwudGFnTmFtZSAhPT0gJ0JPRFknKSB7XHJcbiAgICAgIGZyb21FdmVudChmaXJzdFNjcm9sbCwgJ3Njcm9sbCcpXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5wb3J0YWxBdHRhY2hlZCgpISksXHJcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy51blN1YmplY3QpXHJcbiAgICAgICAgKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5wb3J0YWxPdmVybGF5UmVmKCk/LnVwZGF0ZVBvc2l0aW9uKCk7XHJcbiAgICAgICAgICBjb25zdCBlcmFjdCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgICAgY29uc3QgZnJlY3QgPSBmaXJzdFNjcm9sbCEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgICAgICBpZiAoZXJhY3QudG9wICsgZXJhY3QuaGVpZ2h0IC0gZnJlY3QudG9wIDwgMCB8fCBlcmFjdC5ib3R0b20gPiBmcmVjdC5ib3R0b20pIHtcclxuICAgICAgICAgICAgdGhpcy5jbG9zZVN1YmplY3QubmV4dCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcG9ydGFsQXR0YWNoZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wb3J0YWxPdmVybGF5UmVmKCk/Lmhhc0F0dGFjaGVkKCk7XHJcbiAgfVxyXG5cclxuICBjbG9zZVBvcnRhbCgpIHtcclxuICAgIGlmICh0aGlzLnBvcnRhbEF0dGFjaGVkKCkpIHtcclxuICAgICAgdGhpcy5wb3J0YWxPdmVybGF5UmVmKCk/LmRldGFjaCgpO1xyXG4gICAgICB0aGlzLmFjdGl2ZS5zZXQoZmFsc2UpO1xyXG4gICAgICBpZiAodGhpcy5vbmx5U2VsZWN0KCkpIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAhdGhpcy5ub2RlcygpXHJcbiAgICAgICAgICAgIC5tYXAoKHgpID0+IHgubGFiZWwpXHJcbiAgICAgICAgICAgIC5pbmNsdWRlcyh0aGlzLnZhbHVlKCkpXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlLnNldCgnJyk7XHJcbiAgICAgICAgICBpZiAodGhpcy5vbkNoYW5nZSkgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKCkpO1xyXG4gICAgICAgICAgdGhpcy5pbnB1dENoYW5nZS5uZXh0KHRoaXMudmFsdWUoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZGVzdHJveVBvcnRhbCgpIHtcclxuICAgIHRoaXMucG9ydGFsT3ZlcmxheVJlZigpPy5kaXNwb3NlKCk7XHJcbiAgfVxyXG5cclxuICBzaG93UG9ydGFsKCkge1xyXG4gICAgaWYgKFhJc0VtcHR5KHRoaXMudmFsdWUoKSkgfHwgdGhpcy5kaXNhYmxlZENvbXB1dGVkKCkgfHwgdGhpcy5pY29uU3BpbigpIHx8IHRoaXMuYW5pbWF0aW5nKCkpIHJldHVybjtcclxuICAgIHRoaXMuYWN0aXZlLnNldCh0cnVlKTtcclxuICAgIGlmICgoWElzT2JzZXJ2YWJsZSh0aGlzLmRhdGEoKSkgJiYgdGhpcy5ub2Rlcy5sZW5ndGggPT09IDApIHx8IFhJc0Z1bmN0aW9uKHRoaXMuZGF0YSgpKSkge1xyXG4gICAgICB0aGlzLmljb24uc2V0KCdmdG8tbG9hZGVyJyk7XHJcbiAgICAgIHRoaXMuaWNvblNwaW4uc2V0KHRydWUpO1xyXG4gICAgICBYU2V0RGF0YTxYQXV0b0NvbXBsZXRlTm9kZT4odGhpcy5kYXRhKCksIHRoaXMudW5TdWJqZWN0LCB0cnVlLCB0aGlzLnZhbHVlKCkpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaWNvbi5zZXQoJycpO1xyXG4gICAgICAgIHRoaXMuaWNvblNwaW4uc2V0KGZhbHNlKTtcclxuICAgICAgICB0aGlzLm5vZGVzLnNldCh4KTtcclxuICAgICAgICB0aGlzLmNyZWF0ZVBvcnRhbCgpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY3JlYXRlUG9ydGFsKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjcmVhdGVQb3J0YWwoKSB7XHJcbiAgICB0aGlzLm5vZGVzKClcclxuICAgICAgLmZpbHRlcigoeCkgPT4geC5zZWxlY3RlZClcclxuICAgICAgLm1hcCgoeCkgPT4gKHguc2VsZWN0ZWQgPSBmYWxzZSkpO1xyXG4gICAgaWYgKFhJc0Z1bmN0aW9uKHRoaXMuZGF0YSgpKSkge1xyXG4gICAgICB0aGlzLnNlYXJjaE5vZGVzLnNldCh0aGlzLm5vZGVzKCkpO1xyXG4gICAgfSBlbHNlIGlmICghWElzRW1wdHkodGhpcy52YWx1ZSgpKSkge1xyXG4gICAgICB0aGlzLnNldFNlYXJjaE5vZGVzKHRoaXMudmFsdWUoKSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBib3ggPSB0aGlzLmlucHV0Q29tKCkuaW5wdXRSZWYoKS5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgY29uc3QgY29uZmlnOiBPdmVybGF5Q29uZmlnID0ge1xyXG4gICAgICBiYWNrZHJvcENsYXNzOiAnJyxcclxuICAgICAgd2lkdGg6IGJveC53aWR0aCxcclxuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5zZXRQbGFjZW1lbnQoKSxcclxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKVxyXG4gICAgfTtcclxuICAgIHRoaXMuc2V0UG9zaXRpb24oY29uZmlnKTtcclxuICAgIGNvbnN0IHBvcnRhbCA9IHRoaXMucG9ydGFsU2VydmljZS5hdHRhY2goe1xyXG4gICAgICBjb250ZW50OiBYQXV0b0NvbXBsZXRlUG9ydGFsQ29tcG9uZW50LFxyXG4gICAgICB2aWV3Q29udGFpbmVyUmVmOiB0aGlzLnZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgIG92ZXJsYXlDb25maWc6IGNvbmZpZ1xyXG4gICAgfSk7XHJcbiAgICBsZXQgeyBjb21wb25lbnRSZWYsIG92ZXJsYXlSZWYgfSA9IHBvcnRhbDtcclxuICAgIGlmICghY29tcG9uZW50UmVmIHx8ICFvdmVybGF5UmVmKSByZXR1cm47XHJcbiAgICB0aGlzLnBvcnRhbENvbXBvbmVudC5zZXQoY29tcG9uZW50UmVmKTtcclxuICAgIHRoaXMucG9ydGFsT3ZlcmxheVJlZi5zZXQob3ZlcmxheVJlZik7XHJcbiAgICB0aGlzLnJlYWxQbGFjZW1lbnQuc2V0KHRoaXMucGxhY2VtZW50KCkpO1xyXG4gICAgb3ZlcmxheVJlZlxyXG4gICAgICA/Lm91dHNpZGVQb2ludGVyRXZlbnRzKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5TdWJqZWN0KSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jbG9zZVN1YmplY3QubmV4dCgpO1xyXG4gICAgICB9KTtcclxuICAgIGNvbnN0IHsgYW5pbWF0aW5nLCBub2RlQ2xpY2sgfSA9IGNvbXBvbmVudFJlZi5pbnN0YW5jZTtcclxuICAgIGFuaW1hdGluZy5zdWJzY3JpYmUoKGluZzogYm9vbGVhbikgPT4gdGhpcy5hbmltYXRpbmcuc2V0KGluZykpO1xyXG4gICAgbm9kZUNsaWNrLnN1YnNjcmliZSgobm9kZTogWEF1dG9Db21wbGV0ZU5vZGUpID0+IHRoaXMub25Ob2RlQ2xpY2sobm9kZSkpO1xyXG4gICAgT2JqZWN0LmFzc2lnbihjb21wb25lbnRSZWYuaW5zdGFuY2UsIHtcclxuICAgICAgY2xvc2VTdWJqZWN0OiB0aGlzLmNsb3NlU3ViamVjdCxcclxuICAgICAga2V5ZG93blN1YmplY3Q6IHRoaXMua2V5ZG93blN1YmplY3RcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0UG9zaXRpb24oY29uZmlnOiBPdmVybGF5Q29uZmlnKSB7XHJcbiAgICBsZXQgcG9zaXRpb24gPSBjb25maWcucG9zaXRpb25TdHJhdGVneSBhcyBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3k7XHJcbiAgICBwb3NpdGlvbi5wb3NpdGlvbkNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy51blN1YmplY3QpKS5zdWJzY3JpYmUoKHBvczogQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlKSA9PiB7XHJcbiAgICAgIGNvbnN0IHBsYWNlID0gWFBvcnRhbENvbm5lY3RlZFBvc2l0aW9uLmdldChwb3MuY29ubmVjdGlvblBhaXIpIGFzIFhQb3NpdGlvblRvcEJvdHRvbTtcclxuICAgICAgaWYgKHBsYWNlICE9PSB0aGlzLnJlYWxQbGFjZW1lbnQoKSkge1xyXG4gICAgICAgIHRoaXMucmVhbFBsYWNlbWVudC5zZXQocGxhY2UpO1xyXG4gICAgICAgIHRoaXMucG9ydGFsT3ZlcmxheVJlZigpPy51cGRhdGVQb3NpdGlvbigpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uTm9kZUNsaWNrKG5vZGU6IFhBdXRvQ29tcGxldGVOb2RlKSB7XHJcbiAgICBpZiAodGhpcy52YWx1ZSgpID09PSBub2RlLmxhYmVsKSB7XHJcbiAgICAgIHRoaXMubm9kZUVtaXQuZW1pdChub2RlKTtcclxuICAgICAgdGhpcy5jbG9zZVN1YmplY3QubmV4dCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnZhbHVlLnNldChub2RlLmxhYmVsKTtcclxuICAgIHRoaXMudmFsdWVUcGxDb250ZXh0U2lnbmFsLnVwZGF0ZSgoeCkgPT4ge1xyXG4gICAgICB4LiRub2RlID0gbm9kZTtcclxuICAgICAgcmV0dXJuIHsgLi4ueCB9O1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmlucHV0Q29tKCkuaW5wdXRGb2N1cygpO1xyXG4gICAgaWYgKHRoaXMub25DaGFuZ2UpIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSgpKTtcclxuICAgIHRoaXMubm9kZUVtaXQuZW1pdChub2RlKTtcclxuICAgIHRoaXMuY2xvc2VTdWJqZWN0Lm5leHQoKTtcclxuICB9XHJcblxyXG4gIHNldFBsYWNlbWVudCgpIHtcclxuICAgIHJldHVybiB0aGlzLnBvcnRhbFNlcnZpY2Uuc2V0UGxhY2VtZW50KHtcclxuICAgICAgZWxlbWVudFJlZjogdGhpcy5pbnB1dENvbSgpLmlucHV0UmVmKCksXHJcbiAgICAgIHBsYWNlbWVudDogW3RoaXMucGxhY2VtZW50KCkgYXMgWFBvc2l0aW9uVG9wQm90dG9tLCAnYm90dG9tLXN0YXJ0JywgJ2JvdHRvbS1lbmQnLCAndG9wLXN0YXJ0JywgJ3RvcC1lbmQnXSxcclxuICAgICAgdHJhbnNmb3JtT3JpZ2luT246ICd4LWF1dG8tY29tcGxldGUtcG9ydGFsJ1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRQb3J0YWwoKSB7XHJcbiAgICB0aGlzLnBvcnRhbEF0dGFjaGVkKCkgJiYgdGhpcy5wb3J0YWxPdmVybGF5UmVmKCk/LnVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3kodGhpcy5zZXRQbGFjZW1lbnQoKSk7XHJcbiAgfVxyXG5cclxuICBzZXRTZWFyY2hOb2Rlcyh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKSB7XHJcbiAgICBpZiAodGhpcy5jYXNlU2Vuc2l0aXZlKCkpIHtcclxuICAgICAgdGhpcy5zZWFyY2hOb2Rlcy5zZXQodGhpcy5ub2RlcygpLmZpbHRlcigoeCkgPT4geC5sYWJlbC5pbmRleE9mKHZhbHVlKSA+PSAwKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlYXJjaE5vZGVzLnNldChcclxuICAgICAgICB0aGlzLm5vZGVzKCkuZmlsdGVyKCh4KSA9PiAoeC5sYWJlbCBhcyBzdHJpbmcpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigodmFsdWUgYXMgc3RyaW5nKS50b0xvd2VyQ2FzZSgpKSA+PSAwKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbW9kZWxDaGFuZ2UodmFsdWU6IHN0cmluZyB8IG51bWJlcikge1xyXG4gICAgaWYgKFhJc0Z1bmN0aW9uKHRoaXMuZGF0YSgpKSkge1xyXG4gICAgICBpZiAoIXRoaXMucG9ydGFsQXR0YWNoZWQoKSkge1xyXG4gICAgICAgIHRoaXMuc2hvd1BvcnRhbCgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChYSXNFbXB0eSh2YWx1ZSkpIHtcclxuICAgICAgICAgIHRoaXMuY2xvc2VTdWJqZWN0Lm5leHQoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5pY29uLnNldCgnZnRvLWxvYWRlcicpO1xyXG4gICAgICAgICAgdGhpcy5pY29uU3Bpbi5zZXQodHJ1ZSk7XHJcbiAgICAgICAgICBYU2V0RGF0YTxYQXV0b0NvbXBsZXRlTm9kZT4odGhpcy5kYXRhKCksIHRoaXMudW5TdWJqZWN0LCB0cnVlLCB2YWx1ZSBhcyBhbnkpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmljb24uc2V0KCcnKTtcclxuICAgICAgICAgICAgdGhpcy5pY29uU3Bpbi5zZXQoZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGVzLnNldCh4KTtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hOb2Rlcy5zZXQodGhpcy5ub2RlcygpKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoIXRoaXMub25seVNlbGVjdCgpKSB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSAmJiB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5ub2RlcygpKSB7XHJcbiAgICAgIGlmICghdGhpcy5wb3J0YWxBdHRhY2hlZCgpKSB7XHJcbiAgICAgICAgdGhpcy5zaG93UG9ydGFsKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKFhJc0VtcHR5KHZhbHVlKSkge1xyXG4gICAgICAgICAgdGhpcy5jbG9zZVN1YmplY3QubmV4dCgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnNldFNlYXJjaE5vZGVzKHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICghdGhpcy5vbmx5U2VsZWN0KSB7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UgJiYgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbktleWRvd24oJGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICB0aGlzLmtleWRvd25TdWJqZWN0Lm5leHQoJGV2ZW50KTtcclxuICB9XHJcblxyXG4gIG9uSW5wdXQoX2V2ZW50OiBFdmVudCkge1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbFZhbGlkYXRvcigpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wdXRDaGFuZ2UubmV4dCh0aGlzLnZhbHVlKCkpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgI2F1dG9Db21wbGV0ZSBjbGFzcz1cIngtYXV0by1jb21wbGV0ZVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LWF1dG8tY29tcGxldGUtcm93XCI+XHJcbiAgICA8eC1pbnB1dFxyXG4gICAgICAjaW5wdXRDb21cclxuICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICBbbGFiZWxdPVwibGFiZWwoKVwiXHJcbiAgICAgIFtsYWJlbFdpZHRoXT1cImxhYmVsV2lkdGgoKVwiXHJcbiAgICAgIFtsYWJlbEFsaWduXT1cImxhYmVsQWxpZ24oKVwiXHJcbiAgICAgIFtqdXN0aWZ5XT1cImp1c3RpZnkoKVwiXHJcbiAgICAgIFthbGlnbl09XCJhbGlnbigpXCJcclxuICAgICAgW2RpcmVjdGlvbl09XCJkaXJlY3Rpb24oKVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZENvbXB1dGVkKClcIlxyXG4gICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRDb21wdXRlZCgpXCJcclxuICAgICAgW3ZhbGlkYXRvcl09XCJ2YWxpZGF0b3JDb21wdXRlZCgpXCJcclxuICAgICAgW2lucHV0VmFsaWRhdG9yXT1cImlucHV0VmFsaWRhdG9yKClcIlxyXG4gICAgICBbaWNvbl09XCJpY29uKClcIlxyXG4gICAgICBbaWNvblNwaW5dPVwiaWNvblNwaW4oKVwiXHJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpXCJcclxuICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5KClcIlxyXG4gICAgICBbY2xlYXJhYmxlXT1cImZhbHNlXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICAgIFt2YWx1ZVRwbF09XCJ2YWx1ZVRwbCgpXCJcclxuICAgICAgW3ZhbHVlVHBsQ29udGV4dF09XCJ2YWx1ZVRwbENvbnRleHRDb21wdXRlZCgpXCJcclxuICAgICAgW3NpemVdPVwic2l6ZSgpXCJcclxuICAgICAgW2JvcmRlcmVkXT1cImJvcmRlcmVkKClcIlxyXG4gICAgICBbYmVmb3JlXT1cImJlZm9yZSgpXCJcclxuICAgICAgW2FmdGVyXT1cImFmdGVyKClcIlxyXG4gICAgICBbcGF0dGVybl09XCJwYXR0ZXJuQ29tcHV0ZWQoKVwiXHJcbiAgICAgIFttZXNzYWdlXT1cIm1lc3NhZ2VDb21wdXRlZCgpXCJcclxuICAgICAgW3BvaW50ZXJdPVwicG9pbnRlcigpXCJcclxuICAgICAgWyhhY3RpdmUpXT1cImFjdGl2ZVwiXHJcbiAgICAgICh4SW5wdXQpPVwib25JbnB1dCgkZXZlbnQpXCJcclxuICAgICAgKHhLZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQpXCJcclxuICAgICAgKHhDbGljayk9XCJzaG93UG9ydGFsKClcIlxyXG4gICAgPjwveC1pbnB1dD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -19,7 +19,9 @@ export class XBackTopComponent extends XBackTopProperty {
19
19
  this.unSubject = new Subject();
20
20
  this.scroll = computed(() => {
21
21
  const tg = this.target();
22
- return XIsString(tg) ? this.doc.querySelector(tg) : tg || this.doc.defaultView;
22
+ if (!tg)
23
+ return this.doc.defaultView;
24
+ return XIsString(tg) ? this.doc?.querySelector(tg) : tg;
23
25
  });
24
26
  effect(() => this.addEvent());
25
27
  }
@@ -99,4 +101,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
99
101
  type: Component,
100
102
  args: [{ selector: `${XBackTopPrefix}`, standalone: true, imports: [NgClass, NgTemplateOutlet, XLinkComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #backTopTpl>\r\n <div class=\"x-back-top\" (click)=\"onBackTop()\">\r\n @if (!template()) {\r\n <x-link icon=\"fto-arrow-up\"> </x-link>\r\n }\r\n @if (template()) {\r\n <ng-container *ngTemplateOutlet=\"template()!\"></ng-container>\r\n }\r\n </div>\r\n</ng-template>\r\n", styles: [".x-back-top{margin:0;padding:0}.x-back-top{display:flex;align-items:center;justify-content:center}.x-back-top>x-link .x-link{width:2.5rem;height:2.5rem;border-radius:50%;background-color:var(--x-background-a100);font-size:1.25rem;border:var(--x-border-width) var(--x-border-style) var(--x-border)}\n"] }]
101
103
  }], ctorParameters: () => [] });
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFjay10b3AuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvYmFjay10b3AvYmFjay10b3AuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvYmFjay10b3AvYmFjay10b3AuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBR3ZCLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQXFCLE1BQU0sb0JBQW9CLENBQUM7QUFDdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQVdsRCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsZ0JBQWdCO0lBZXJEO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFmVixlQUFVLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBb0IsWUFBWSxDQUFDLENBQUM7UUFDakUsYUFBUSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FB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LENBQUMsR0FBVztRQUM5QixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZ0IsQ0FBQyxTQUFTLEdBQUcsR0FBSSxDQUFDO1FBQzdDLENBQUM7YUFBTSxDQUFDO1lBQ0wsSUFBSSxDQUFDLE1BQU0sRUFBa0IsQ0FBQyxTQUFTLEdBQUcsR0FBSSxDQUFDO1FBQ2xELENBQUM7SUFDSCxDQUFDO2lJQS9GVSxpQkFBaUI7cUhBQWpCLGlCQUFpQix1TkM5QjlCLHVUQVVBLHFXRGNxQixnQkFBZ0Isb0pBQUUsY0FBYzs7MkZBTXhDLGlCQUFpQjtrQkFUN0IsU0FBUzsrQkFDRSxHQUFHLGNBQWMsRUFBRSxjQUNqQixJQUFJLFdBQ1AsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDLGlCQUdyQyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgT25EZXN0cm95LFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIFZpZXdDb250YWluZXJSZWYsXHJcbiAgaW5qZWN0LFxyXG4gIHZpZXdDaGlsZCxcclxuICBjb21wdXRlZCxcclxuICBlZmZlY3QsXHJcbiAgc2lnbmFsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhCYWNrVG9wUHJlZml4LCBYQmFja1RvcFByb3BlcnR5IH0gZnJvbSAnLi9iYWNrLXRvcC5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhSZXF1ZXN0QW5pbWF0aW9uRnJhbWUsIFhJc051bWJlciwgWElzU3RyaW5nIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IERPQ1VNRU5ULCBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRocm90dGxlVGltZSwgdGFrZVVudGlsLCBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgWFBvcnRhbFNlcnZpY2UsIFhQb3J0YWxPdmVybGF5UmVmIH0gZnJvbSAnQG5nLW5lc3QvdWkvcG9ydGFsJztcclxuaW1wb3J0IHsgWExpbmtDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9saW5rJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYQmFja1RvcFByZWZpeH1gLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW05nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQsIFhMaW5rQ29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vYmFjay10b3AuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2JhY2stdG9wLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWEJhY2tUb3BDb21wb25lbnQgZXh0ZW5kcyBYQmFja1RvcFByb3BlcnR5IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBiYWNrVG9wVHBsID0gdmlld0NoaWxkLnJlcXVpcmVkPFRlbXBsYXRlUmVmPHZvaWQ+PignYmFja1RvcFRwbCcpO1xyXG4gIHZpc2lhYmxlID0gc2lnbmFsKGZhbHNlKTtcclxuICBzY3JvbGxpbmcgPSBzaWduYWwoZmFsc2UpO1xyXG4gIHBvcnRhbFJlZiE6IFhQb3J0YWxPdmVybGF5UmVmPGFueT47XHJcbiAgcHJpdmF0ZSBkb2MgPSBpbmplY3QoRE9DVU1FTlQpO1xyXG4gIHByaXZhdGUgcG9ydGFsID0gaW5qZWN0KFhQb3J0YWxTZXJ2aWNlKTtcclxuICBwcml2YXRlIHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XHJcbiAgcHJpdmF0ZSB1blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBzY3JvbGwgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICBjb25zdCB0ZyA9IHRoaXMudGFyZ2V0KCk7XHJcbiAgICByZXR1cm4gWElzU3RyaW5nKHRnKSA/IHRoaXMuZG9jLnF1ZXJ5U2VsZWN0b3IodGcpIDogdGcgfHwgdGhpcy5kb2MuZGVmYXVsdFZpZXc7XHJcbiAgfSk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIGVmZmVjdCgoKSA9PiB0aGlzLmFkZEV2ZW50KCkpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnVuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLnVuU3ViamVjdC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgb25CYWNrVG9wKCkge1xyXG4gICAgaWYgKCF0aGlzLnNjcm9sbGluZygpKSB7XHJcbiAgICAgIHRoaXMuc2Nyb2xsaW5nLnNldCh0cnVlKTtcclxuICAgICAgdGhpcy5zY3JvbGxUbygwLCAyMDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRFdmVudCgpIHtcclxuICAgIHRoaXMudW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIGZyb21FdmVudCh0aGlzLnNjcm9sbCgpISwgJ3Njcm9sbCcpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRocm90dGxlVGltZSgyMCksXHJcbiAgICAgICAgbWFwKCgpID0+IHRoaXMuc2Nyb2xsVG9wKCkpLFxyXG4gICAgICAgIHRhcCgoeCkgPT4gdGhpcy5zZXRWaXNpYmxlKHgpKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy51blN1YmplY3QpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzY3JvbGxUb3AoKSB7XHJcbiAgICBpZiAodGhpcy5zY3JvbGwoKSA9PT0gdGhpcy5kb2MuZGVmYXVsdFZpZXcpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZG9jLmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3A7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gKHRoaXMuc2Nyb2xsKCkgYXMgSFRNTEVsZW1lbnQpLnNjcm9sbFRvcDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VmlzaWJsZShzY3JvbGxUb3A6IG51bWJlcikge1xyXG4gICAgY29uc3QgdmlzaWJsZSA9IHNjcm9sbFRvcCA+PSAodGhpcy52aXNpYmlsaXR5SGVpZ2h0KCkgYXMgbnVtYmVyKTtcclxuICAgIGlmICh0aGlzLnZpc2lhYmxlKCkgIT09IHZpc2libGUpIHtcclxuICAgICAgdGhpcy52aXNpYWJsZS5zZXQodmlzaWJsZSk7XHJcbiAgICAgIGlmICh0aGlzLnZpc2lhYmxlKCkpIHtcclxuICAgICAgICB0aGlzLnBvcnRhbFJlZiA9IHRoaXMucG9ydGFsLmF0dGFjaCh7XHJcbiAgICAgICAgICBjb250ZW50OiB0aGlzLmJhY2tUb3BUcGwoKSxcclxuICAgICAgICAgIHZpZXdDb250YWluZXJSZWY6IHRoaXMudmlld0NvbnRhaW5lclJlZixcclxuICAgICAgICAgIG92ZXJsYXlDb25maWc6IHtcclxuICAgICAgICAgICAgd2lkdGg6ICcyLjVyZW0nLFxyXG4gICAgICAgICAgICBoZWlnaHQ6ICcyLjVyZW0nLFxyXG4gICAgICAgICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLnBvcnRhbC5zZXRQbGFjZSgnYm90dG9tLWVuZCcsIC4uLlsnMCcsIHRoaXMucmlnaHQoKSwgdGhpcy5ib3R0b20oKSwgJzAnXSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnBvcnRhbFJlZj8ub3ZlcmxheVJlZj8uaGFzQXR0YWNoZWQoKSAmJiB0aGlzLnBvcnRhbFJlZi5vdmVybGF5UmVmLmRldGFjaCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNjcm9sbFRvKHRvOiBudW1iZXIsIGR1cmF0aW9uOiBudW1iZXIpIHtcclxuICAgIGNvbnN0IGRpZmZlcmVuY2UgPSB0byAtIHRoaXMuc2Nyb2xsVG9wKCk7XHJcbiAgICBjb25zdCBwZXJUaWNrID0gKGRpZmZlcmVuY2UgLyBkdXJhdGlvbikgKiAxMDtcclxuICAgIFhSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xyXG4gICAgICBjb25zdCBudW0gPSB0aGlzLnNjcm9sbFRvcCgpICsgcGVyVGljaztcclxuICAgICAgaWYgKFhJc051bWJlcihudW0pICYmIG51bSAhPT0gSW5maW5pdHkpIHtcclxuICAgICAgICB0aGlzLnNldFNjcm9sbFRvcChudW0pO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnNjcm9sbFRvcCgpID09PSB0byB8fCBkdXJhdGlvbiA8PSAwKSB7XHJcbiAgICAgICAgdGhpcy5zY3JvbGxpbmcuc2V0KGZhbHNlKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zY3JvbGxUbyh0bywgZHVyYXRpb24gLSAxMCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRTY3JvbGxUb3AodG9wOiBudW1iZXIpIHtcclxuICAgIGlmICh0aGlzLnNjcm9sbCgpID09PSB0aGlzLmRvYy5kZWZhdWx0Vmlldykge1xyXG4gICAgICB0aGlzLmRvYy5kb2N1bWVudEVsZW1lbnQhLnNjcm9sbFRvcCA9IHRvcCE7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAodGhpcy5zY3JvbGwoKSBhcyBIVE1MRWxlbWVudCkuc2Nyb2xsVG9wID0gdG9wITtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPG5nLXRlbXBsYXRlICNiYWNrVG9wVHBsPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LWJhY2stdG9wXCIgKGNsaWNrKT1cIm9uQmFja1RvcCgpXCI+XHJcbiAgICBAaWYgKCF0ZW1wbGF0ZSgpKSB7XHJcbiAgICAgIDx4LWxpbmsgaWNvbj1cImZ0by1hcnJvdy11cFwiPiA8L3gtbGluaz5cclxuICAgIH1cclxuICAgIEBpZiAodGVtcGxhdGUoKSkge1xyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGUoKSFcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFjay10b3AuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvYmFjay10b3AvYmFjay10b3AuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvYmFjay10b3AvYmFjay10b3AuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBR3ZCLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQXFCLE1BQU0sb0JBQW9CLENBQUM7QUFDdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQVdsRCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsZ0JBQWdCO0lBZ0JyRDtRQUNFLEtBQUssRUFBRSxDQUFDO1FBaEJWLGVBQVUsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFvQixZQUFZLENBQUMsQ0FBQztRQUNqRSxhQUFRLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxD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Q0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sWUFBWSxDQUFDLEdBQVc7UUFDOUIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWdCLENBQUMsU0FBUyxHQUFHLEdBQUksQ0FBQztRQUM3QyxDQUFDO2FBQU0sQ0FBQztZQUNMLElBQUksQ0FBQyxNQUFNLEVBQWtCLENBQUMsU0FBUyxHQUFHLEdBQUksQ0FBQztRQUNsRCxDQUFDO0lBQ0gsQ0FBQztpSUFoR1UsaUJBQWlCO3FIQUFqQixpQkFBaUIsdU5DOUI5Qix1VEFVQSxxV0RjcUIsZ0JBQWdCLG9KQUFFLGNBQWM7OzJGQU14QyxpQkFBaUI7a0JBVDdCLFNBQVM7K0JBQ0UsR0FBRyxjQUFjLEVBQUUsY0FDakIsSUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGNBQWMsQ0FBQyxpQkFHckMsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIE9uRGVzdHJveSxcclxuICBUZW1wbGF0ZVJlZixcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG4gIGluamVjdCxcclxuICB2aWV3Q2hpbGQsXHJcbiAgY29tcHV0ZWQsXHJcbiAgZWZmZWN0LFxyXG4gIHNpZ25hbFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYQmFja1RvcFByZWZpeCwgWEJhY2tUb3BQcm9wZXJ0eSB9IGZyb20gJy4vYmFjay10b3AucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYUmVxdWVzdEFuaW1hdGlvbkZyYW1lLCBYSXNOdW1iZXIsIFhJc1N0cmluZyB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBET0NVTUVOVCwgTmdDbGFzcywgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IGZyb21FdmVudCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0aHJvdHRsZVRpbWUsIHRha2VVbnRpbCwgbWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFhQb3J0YWxTZXJ2aWNlLCBYUG9ydGFsT3ZlcmxheVJlZiB9IGZyb20gJ0BuZy1uZXN0L3VpL3BvcnRhbCc7XHJcbmltcG9ydCB7IFhMaW5rQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvbGluayc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WEJhY2tUb3BQcmVmaXh9YCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0LCBYTGlua0NvbXBvbmVudF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2JhY2stdG9wLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9iYWNrLXRvcC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFhCYWNrVG9wQ29tcG9uZW50IGV4dGVuZHMgWEJhY2tUb3BQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgYmFja1RvcFRwbCA9IHZpZXdDaGlsZC5yZXF1aXJlZDxUZW1wbGF0ZVJlZjx2b2lkPj4oJ2JhY2tUb3BUcGwnKTtcclxuICB2aXNpYWJsZSA9IHNpZ25hbChmYWxzZSk7XHJcbiAgc2Nyb2xsaW5nID0gc2lnbmFsKGZhbHNlKTtcclxuICBwb3J0YWxSZWYhOiBYUG9ydGFsT3ZlcmxheVJlZjxhbnk+O1xyXG4gIHByaXZhdGUgZG9jID0gaW5qZWN0KERPQ1VNRU5UKTtcclxuICBwcml2YXRlIHBvcnRhbCA9IGluamVjdChYUG9ydGFsU2VydmljZSk7XHJcbiAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xyXG4gIHByaXZhdGUgdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgc2Nyb2xsID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgY29uc3QgdGcgPSB0aGlzLnRhcmdldCgpO1xyXG4gICAgaWYgKCF0ZykgcmV0dXJuIHRoaXMuZG9jLmRlZmF1bHRWaWV3O1xyXG4gICAgcmV0dXJuIFhJc1N0cmluZyh0ZykgPyB0aGlzLmRvYz8ucXVlcnlTZWxlY3Rvcih0ZykgOiB0ZztcclxuICB9KTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgZWZmZWN0KCgpID0+IHRoaXMuYWRkRXZlbnQoKSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMudW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMudW5TdWJqZWN0LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBvbkJhY2tUb3AoKSB7XHJcbiAgICBpZiAoIXRoaXMuc2Nyb2xsaW5nKCkpIHtcclxuICAgICAgdGhpcy5zY3JvbGxpbmcuc2V0KHRydWUpO1xyXG4gICAgICB0aGlzLnNjcm9sbFRvKDAsIDIwMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZEV2ZW50KCkge1xyXG4gICAgdGhpcy51blN1YmplY3QubmV4dCgpO1xyXG4gICAgZnJvbUV2ZW50KHRoaXMuc2Nyb2xsKCkhLCAnc2Nyb2xsJylcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGhyb3R0bGVUaW1lKDIwKSxcclxuICAgICAgICBtYXAoKCkgPT4gdGhpcy5zY3JvbGxUb3AoKSksXHJcbiAgICAgICAgdGFwKCh4KSA9PiB0aGlzLnNldFZpc2libGUoeCkpLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLnVuU3ViamVjdClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNjcm9sbFRvcCgpIHtcclxuICAgIGlmICh0aGlzLnNjcm9sbCgpID09PSB0aGlzLmRvYy5kZWZhdWx0Vmlldykge1xyXG4gICAgICByZXR1cm4gdGhpcy5kb2MuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAodGhpcy5zY3JvbGwoKSBhcyBIVE1MRWxlbWVudCkuc2Nyb2xsVG9wO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRWaXNpYmxlKHNjcm9sbFRvcDogbnVtYmVyKSB7XHJcbiAgICBjb25zdCB2aXNpYmxlID0gc2Nyb2xsVG9wID49ICh0aGlzLnZpc2liaWxpdHlIZWlnaHQoKSBhcyBudW1iZXIpO1xyXG4gICAgaWYgKHRoaXMudmlzaWFibGUoKSAhPT0gdmlzaWJsZSkge1xyXG4gICAgICB0aGlzLnZpc2lhYmxlLnNldCh2aXNpYmxlKTtcclxuICAgICAgaWYgKHRoaXMudmlzaWFibGUoKSkge1xyXG4gICAgICAgIHRoaXMucG9ydGFsUmVmID0gdGhpcy5wb3J0YWwuYXR0YWNoKHtcclxuICAgICAgICAgIGNvbnRlbnQ6IHRoaXMuYmFja1RvcFRwbCgpLFxyXG4gICAgICAgICAgdmlld0NvbnRhaW5lclJlZjogdGhpcy52aWV3Q29udGFpbmVyUmVmLFxyXG4gICAgICAgICAgb3ZlcmxheUNvbmZpZzoge1xyXG4gICAgICAgICAgICB3aWR0aDogJzIuNXJlbScsXHJcbiAgICAgICAgICAgIGhlaWdodDogJzIuNXJlbScsXHJcbiAgICAgICAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMucG9ydGFsLnNldFBsYWNlKCdib3R0b20tZW5kJywgLi4uWycwJywgdGhpcy5yaWdodCgpLCB0aGlzLmJvdHRvbSgpLCAnMCddKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMucG9ydGFsUmVmPy5vdmVybGF5UmVmPy5oYXNBdHRhY2hlZCgpICYmIHRoaXMucG9ydGFsUmVmLm92ZXJsYXlSZWYuZGV0YWNoKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2Nyb2xsVG8odG86IG51bWJlciwgZHVyYXRpb246IG51bWJlcikge1xyXG4gICAgY29uc3QgZGlmZmVyZW5jZSA9IHRvIC0gdGhpcy5zY3JvbGxUb3AoKTtcclxuICAgIGNvbnN0IHBlclRpY2sgPSAoZGlmZmVyZW5jZSAvIGR1cmF0aW9uKSAqIDEwO1xyXG4gICAgWFJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IG51bSA9IHRoaXMuc2Nyb2xsVG9wKCkgKyBwZXJUaWNrO1xyXG4gICAgICBpZiAoWElzTnVtYmVyKG51bSkgJiYgbnVtICE9PSBJbmZpbml0eSkge1xyXG4gICAgICAgIHRoaXMuc2V0U2Nyb2xsVG9wKG51bSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuc2Nyb2xsVG9wKCkgPT09IHRvIHx8IGR1cmF0aW9uIDw9IDApIHtcclxuICAgICAgICB0aGlzLnNjcm9sbGluZy5zZXQoZmFsc2UpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNjcm9sbFRvKHRvLCBkdXJhdGlvbiAtIDEwKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFNjcm9sbFRvcCh0b3A6IG51bWJlcikge1xyXG4gICAgaWYgKHRoaXMuc2Nyb2xsKCkgPT09IHRoaXMuZG9jLmRlZmF1bHRWaWV3KSB7XHJcbiAgICAgIHRoaXMuZG9jLmRvY3VtZW50RWxlbWVudCEuc2Nyb2xsVG9wID0gdG9wITtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICh0aGlzLnNjcm9sbCgpIGFzIEhUTUxFbGVtZW50KS5zY3JvbGxUb3AgPSB0b3AhO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8bmctdGVtcGxhdGUgI2JhY2tUb3BUcGw+XHJcbiAgPGRpdiBjbGFzcz1cIngtYmFjay10b3BcIiAoY2xpY2spPVwib25CYWNrVG9wKClcIj5cclxuICAgIEBpZiAoIXRlbXBsYXRlKCkpIHtcclxuICAgICAgPHgtbGluayBpY29uPVwiZnRvLWFycm93LXVwXCI+IDwveC1saW5rPlxyXG4gICAgfVxyXG4gICAgQGlmICh0ZW1wbGF0ZSgpKSB7XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZSgpIVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=