@ethlete/cdk 3.16.1 → 3.18.0

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 (137) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/esm2022/lib/components/bracket/components/bracket/bracket.component.mjs +7 -7
  3. package/esm2022/lib/components/bracket/utils/bracket.utils.mjs +15 -11
  4. package/esm2022/lib/components/{filter-overlay → filter/filter-overlay}/components/filter-overlay-page-outlet/filter-overlay-page-outlet.component.mjs +1 -1
  5. package/esm2022/lib/components/filter/filter-overlay/components/filter-overlay-page-outlet/public-api.mjs +2 -0
  6. package/esm2022/lib/components/filter/filter-overlay/components/index.mjs +2 -0
  7. package/esm2022/lib/components/filter/filter-overlay/components/public-api.mjs +2 -0
  8. package/esm2022/lib/components/filter/filter-overlay/constants/filter-overlay.constants.mjs +3 -0
  9. package/esm2022/lib/components/filter/filter-overlay/constants/index.mjs +2 -0
  10. package/esm2022/lib/components/filter/filter-overlay/constants/public-api.mjs +2 -0
  11. package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-back-or-close/filter-overlay-back-or-close.directive.mjs +45 -0
  12. package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-back-or-close/public-api.mjs +2 -0
  13. package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-link/filter-overlay-link.directive.mjs +46 -0
  14. package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-link/public-api.mjs +2 -0
  15. package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-reset/filter-overlay-reset.directive.mjs +45 -0
  16. package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-reset/public-api.mjs +2 -0
  17. package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-submit/filter-overlay-submit.directive.mjs +45 -0
  18. package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-submit/public-api.mjs +2 -0
  19. package/esm2022/lib/components/filter/filter-overlay/directives/index.mjs +2 -0
  20. package/esm2022/lib/components/filter/filter-overlay/directives/public-api.mjs +5 -0
  21. package/esm2022/lib/components/filter/filter-overlay/filter-overlay.imports.mjs +14 -0
  22. package/esm2022/lib/components/filter/filter-overlay/public-api.mjs +8 -0
  23. package/esm2022/lib/components/filter/filter-overlay/services/filter-overlay.service.mjs +37 -0
  24. package/esm2022/lib/components/filter/filter-overlay/services/index.mjs +2 -0
  25. package/esm2022/lib/components/filter/filter-overlay/services/public-api.mjs +2 -0
  26. package/esm2022/lib/components/filter/filter-overlay/types/filter-overlay-config.types.mjs +2 -0
  27. package/esm2022/lib/components/filter/filter-overlay/types/index.mjs +2 -0
  28. package/esm2022/lib/components/filter/filter-overlay/types/public-api.mjs +2 -0
  29. package/esm2022/lib/components/filter/filter-overlay/utils/filter-overlay-ref.mjs +60 -0
  30. package/esm2022/lib/components/filter/filter-overlay/utils/index.mjs +2 -0
  31. package/esm2022/lib/components/filter/filter-overlay/utils/public-api.mjs +2 -0
  32. package/esm2022/lib/components/filter/public-api.mjs +3 -0
  33. package/esm2022/lib/components/filter/rich-filter/components/index.mjs +2 -0
  34. package/esm2022/lib/components/filter/rich-filter/components/public-api.mjs +2 -0
  35. package/esm2022/lib/components/filter/rich-filter/components/rich-filter-host/public-api.mjs +2 -0
  36. package/esm2022/lib/components/filter/rich-filter/components/rich-filter-host/rich-filter-host.component.mjs +66 -0
  37. package/esm2022/lib/components/filter/rich-filter/directives/index.mjs +2 -0
  38. package/esm2022/lib/components/filter/rich-filter/directives/public-api.mjs +5 -0
  39. package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-button/public-api.mjs +2 -0
  40. package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-button/rich-filter-button.directive.mjs +32 -0
  41. package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-button-slot/public-api.mjs +2 -0
  42. package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-button-slot/rich-filter-button-slot.directive.mjs +32 -0
  43. package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-content/public-api.mjs +2 -0
  44. package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-content/rich-filter-content.directive.mjs +32 -0
  45. package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-top/public-api.mjs +2 -0
  46. package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-top/rich-filter-top.directive.mjs +29 -0
  47. package/esm2022/lib/components/filter/rich-filter/public-api.mjs +4 -0
  48. package/esm2022/lib/components/filter/rich-filter/rich-filter.imports.mjs +10 -0
  49. package/esm2022/lib/components/forms/components/slider/components/slider/slider.component.mjs +3 -3
  50. package/esm2022/lib/components/masonry/components/masonry/masonry.component.mjs +10 -7
  51. package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet-base.service.mjs +2 -2
  52. package/esm2022/lib/components/overlay/components/dialog/services/dialog-base.service.mjs +3 -3
  53. package/esm2022/lib/components/overlay/components/menu/menu-aim.mjs +1 -1
  54. package/esm2022/lib/components/overlay/components/overlay/services/overlay.service.mjs +4 -4
  55. package/esm2022/lib/components/pagination/services/pagination-head.service.mjs +3 -3
  56. package/esm2022/lib/components/public-api.mjs +2 -2
  57. package/esm2022/lib/components/query-error/components/query-error/query-error.component.mjs +3 -3
  58. package/esm2022/lib/components/query-error/directives/query-error/query-error.directive.mjs +1 -1
  59. package/esm2022/lib/components/sort/partials/sort/sort.directive.mjs +1 -1
  60. package/esm2022/lib/services/swipe-handler.service.mjs +1 -1
  61. package/fesm2022/ethlete-cdk.mjs +225 -39
  62. package/fesm2022/ethlete-cdk.mjs.map +1 -1
  63. package/lib/components/bracket/utils/bracket.utils.d.ts +1 -1
  64. package/lib/components/{filter-overlay → filter/filter-overlay}/components/filter-overlay-page-outlet/filter-overlay-page-outlet.component.d.ts +1 -1
  65. package/lib/components/{filter-overlay → filter/filter-overlay}/constants/filter-overlay.constants.d.ts +1 -1
  66. package/lib/components/{filter-overlay → filter/filter-overlay}/directives/filter-overlay-back-or-close/filter-overlay-back-or-close.directive.d.ts +1 -1
  67. package/lib/components/{filter-overlay → filter/filter-overlay}/directives/filter-overlay-link/filter-overlay-link.directive.d.ts +1 -1
  68. package/lib/components/{filter-overlay → filter/filter-overlay}/directives/filter-overlay-reset/filter-overlay-reset.directive.d.ts +1 -1
  69. package/lib/components/{filter-overlay → filter/filter-overlay}/directives/filter-overlay-submit/filter-overlay-submit.directive.d.ts +1 -1
  70. package/lib/components/{filter-overlay → filter/filter-overlay}/services/filter-overlay.service.d.ts +2 -2
  71. package/lib/components/{filter-overlay → filter/filter-overlay}/types/filter-overlay-config.types.d.ts +4 -1
  72. package/lib/components/{filter-overlay → filter/filter-overlay}/utils/filter-overlay-ref.d.ts +5 -5
  73. package/lib/components/filter/public-api.d.ts +2 -0
  74. package/lib/components/filter/rich-filter/components/index.d.ts +1 -0
  75. package/lib/components/filter/rich-filter/components/public-api.d.ts +1 -0
  76. package/lib/components/filter/rich-filter/components/rich-filter-host/public-api.d.ts +1 -0
  77. package/lib/components/filter/rich-filter/components/rich-filter-host/rich-filter-host.component.d.ts +23 -0
  78. package/lib/components/filter/rich-filter/directives/index.d.ts +1 -0
  79. package/lib/components/filter/rich-filter/directives/public-api.d.ts +4 -0
  80. package/lib/components/filter/rich-filter/directives/rich-filter-button/public-api.d.ts +1 -0
  81. package/lib/components/filter/rich-filter/directives/rich-filter-button/rich-filter-button.directive.d.ts +8 -0
  82. package/lib/components/filter/rich-filter/directives/rich-filter-button-slot/public-api.d.ts +1 -0
  83. package/lib/components/filter/rich-filter/directives/rich-filter-button-slot/rich-filter-button-slot.directive.d.ts +10 -0
  84. package/lib/components/filter/rich-filter/directives/rich-filter-content/public-api.d.ts +1 -0
  85. package/lib/components/filter/rich-filter/directives/rich-filter-content/rich-filter-content.directive.d.ts +10 -0
  86. package/lib/components/filter/rich-filter/directives/rich-filter-top/public-api.d.ts +1 -0
  87. package/lib/components/filter/rich-filter/directives/rich-filter-top/rich-filter-top.directive.d.ts +8 -0
  88. package/lib/components/filter/rich-filter/public-api.d.ts +3 -0
  89. package/lib/components/filter/rich-filter/rich-filter.imports.d.ts +3 -0
  90. package/lib/components/public-api.d.ts +1 -1
  91. package/package.json +5 -3
  92. package/esm2022/lib/components/filter-overlay/components/filter-overlay-page-outlet/public-api.mjs +0 -2
  93. package/esm2022/lib/components/filter-overlay/components/index.mjs +0 -2
  94. package/esm2022/lib/components/filter-overlay/components/public-api.mjs +0 -2
  95. package/esm2022/lib/components/filter-overlay/constants/filter-overlay.constants.mjs +0 -3
  96. package/esm2022/lib/components/filter-overlay/constants/index.mjs +0 -2
  97. package/esm2022/lib/components/filter-overlay/constants/public-api.mjs +0 -2
  98. package/esm2022/lib/components/filter-overlay/directives/filter-overlay-back-or-close/filter-overlay-back-or-close.directive.mjs +0 -45
  99. package/esm2022/lib/components/filter-overlay/directives/filter-overlay-back-or-close/public-api.mjs +0 -2
  100. package/esm2022/lib/components/filter-overlay/directives/filter-overlay-link/filter-overlay-link.directive.mjs +0 -46
  101. package/esm2022/lib/components/filter-overlay/directives/filter-overlay-link/public-api.mjs +0 -2
  102. package/esm2022/lib/components/filter-overlay/directives/filter-overlay-reset/filter-overlay-reset.directive.mjs +0 -45
  103. package/esm2022/lib/components/filter-overlay/directives/filter-overlay-reset/public-api.mjs +0 -2
  104. package/esm2022/lib/components/filter-overlay/directives/filter-overlay-submit/filter-overlay-submit.directive.mjs +0 -45
  105. package/esm2022/lib/components/filter-overlay/directives/filter-overlay-submit/public-api.mjs +0 -2
  106. package/esm2022/lib/components/filter-overlay/directives/index.mjs +0 -2
  107. package/esm2022/lib/components/filter-overlay/directives/public-api.mjs +0 -5
  108. package/esm2022/lib/components/filter-overlay/filter-overlay.imports.mjs +0 -14
  109. package/esm2022/lib/components/filter-overlay/public-api.mjs +0 -8
  110. package/esm2022/lib/components/filter-overlay/services/filter-overlay.service.mjs +0 -37
  111. package/esm2022/lib/components/filter-overlay/services/index.mjs +0 -2
  112. package/esm2022/lib/components/filter-overlay/services/public-api.mjs +0 -2
  113. package/esm2022/lib/components/filter-overlay/types/filter-overlay-config.types.mjs +0 -2
  114. package/esm2022/lib/components/filter-overlay/types/index.mjs +0 -2
  115. package/esm2022/lib/components/filter-overlay/types/public-api.mjs +0 -2
  116. package/esm2022/lib/components/filter-overlay/utils/filter-overlay-ref.mjs +0 -61
  117. package/esm2022/lib/components/filter-overlay/utils/index.mjs +0 -2
  118. package/esm2022/lib/components/filter-overlay/utils/public-api.mjs +0 -2
  119. /package/lib/components/{filter-overlay → filter/filter-overlay}/components/filter-overlay-page-outlet/public-api.d.ts +0 -0
  120. /package/lib/components/{filter-overlay → filter/filter-overlay}/components/index.d.ts +0 -0
  121. /package/lib/components/{filter-overlay → filter/filter-overlay}/components/public-api.d.ts +0 -0
  122. /package/lib/components/{filter-overlay → filter/filter-overlay}/constants/index.d.ts +0 -0
  123. /package/lib/components/{filter-overlay → filter/filter-overlay}/constants/public-api.d.ts +0 -0
  124. /package/lib/components/{filter-overlay → filter/filter-overlay}/directives/filter-overlay-back-or-close/public-api.d.ts +0 -0
  125. /package/lib/components/{filter-overlay → filter/filter-overlay}/directives/filter-overlay-link/public-api.d.ts +0 -0
  126. /package/lib/components/{filter-overlay → filter/filter-overlay}/directives/filter-overlay-reset/public-api.d.ts +0 -0
  127. /package/lib/components/{filter-overlay → filter/filter-overlay}/directives/filter-overlay-submit/public-api.d.ts +0 -0
  128. /package/lib/components/{filter-overlay → filter/filter-overlay}/directives/index.d.ts +0 -0
  129. /package/lib/components/{filter-overlay → filter/filter-overlay}/directives/public-api.d.ts +0 -0
  130. /package/lib/components/{filter-overlay → filter/filter-overlay}/filter-overlay.imports.d.ts +0 -0
  131. /package/lib/components/{filter-overlay → filter/filter-overlay}/public-api.d.ts +0 -0
  132. /package/lib/components/{filter-overlay → filter/filter-overlay}/services/index.d.ts +0 -0
  133. /package/lib/components/{filter-overlay → filter/filter-overlay}/services/public-api.d.ts +0 -0
  134. /package/lib/components/{filter-overlay → filter/filter-overlay}/types/index.d.ts +0 -0
  135. /package/lib/components/{filter-overlay → filter/filter-overlay}/types/public-api.d.ts +0 -0
  136. /package/lib/components/{filter-overlay → filter/filter-overlay}/utils/index.d.ts +0 -0
  137. /package/lib/components/{filter-overlay → filter/filter-overlay}/utils/public-api.d.ts +0 -0
@@ -1,7 +1,7 @@
1
1
  import { Dialog as CdkDialog, DialogConfig as CdkDialogConfig } from '@angular/cdk/dialog';
2
2
  import { Overlay } from '@angular/cdk/overlay';
3
3
  import { Directive, InjectionToken, Injector, Type } from '@angular/core';
4
- import { defer, startWith, Subject } from 'rxjs';
4
+ import { Subject, defer, startWith } from 'rxjs';
5
5
  import { DIALOG_CONFIG } from '../constants';
6
6
  import { createDialogConfig } from '../utils';
7
7
  import * as i0 from "@angular/core";
@@ -97,7 +97,7 @@ export class DialogServiceBase {
97
97
  _closeDialogs(dialogs) {
98
98
  let i = dialogs.length;
99
99
  while (i--) {
100
- dialogs[i].close();
100
+ dialogs[i]?.close();
101
101
  }
102
102
  }
103
103
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: DialogServiceBase, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
@@ -106,4 +106,4 @@ export class DialogServiceBase {
106
106
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: DialogServiceBase, decorators: [{
107
107
  type: Directive
108
108
  }], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.Injector }, { type: undefined }, { type: undefined }, { type: undefined }, { type: i0.Type }, { type: i0.Type }, { type: i0.InjectionToken }]; } });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWJhc2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9vdmVybGF5L2NvbXBvbmVudHMvZGlhbG9nL3NlcnZpY2VzL2RpYWxvZy1iYXNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sSUFBSSxTQUFTLEVBQUUsWUFBWSxJQUFJLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNGLE9BQU8sRUFBaUIsT0FBTyxFQUFrQixNQUFNLHNCQUFzQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBMEIsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxLQUFLLEVBQWMsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRzdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBYSxNQUFNLFVBQVUsQ0FBQzs7O0FBRXpELElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztBQUdqQixNQUFNLE9BQWdCLGlCQUFpQjtJQVlyQyxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDO0lBQzFHLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDO0lBQzFHLENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsTUFBTSxNQUFNLEdB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QztnQkFFbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFO29CQUM1QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztpQkFDbEM7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxTQUFVLENBQUM7UUFFbEIsMkRBQTJEO0lBQzdELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELGFBQWEsQ0FBQyxFQUFVO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQywwQkFBMEIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMzQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVPLGFBQWEsQ0FBQyxPQUFvQjtRQUN4QyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBRXZCLE9BQU8sQ0FBQyxFQUFFLEVBQUU7WUFDVixPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDcEI7SUFDSCxDQUFDOzhHQXRJbUIsaUJBQWlCO2tHQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBRHRDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaWFsb2cgYXMgQ2RrRGlhbG9nLCBEaWFsb2dDb25maWcgYXMgQ2RrRGlhbG9nQ29uZmlnIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RpYWxvZyc7XG5pbXBvcnQgeyBDb21wb25lbnRUeXBlLCBPdmVybGF5LCBTY3JvbGxTdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IERpcmVjdGl2ZSwgSW5qZWN0aW9uVG9rZW4sIEluamVjdG9yLCBPbkRlc3Ryb3ksIFRlbXBsYXRlUmVmLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkZWZlciwgT2JzZXJ2YWJsZSwgc3RhcnRXaXRoLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBESUFMT0dfQ09ORklHIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IERpYWxvZ0NvbnRhaW5lckJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9wYXJ0aWFscyc7XG5pbXBvcnQgeyBEaWFsb2dDb25maWcgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBjcmVhdGVEaWFsb2dDb25maWcsIERpYWxvZ1JlZiB9IGZyb20gJy4uL3V0aWxzJztcblxubGV0IHVuaXF1ZUlkID0gMDtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGlhbG9nU2VydmljZUJhc2U8QyBleHRlbmRzIERpYWxvZ0NvbnRhaW5lckJhc2VDb21wb25lbnQ+IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfb3BlbkRpYWxvZ3NBdFRoaXNMZXZlbDogRGlhbG9nUmVmW10gPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYWZ0ZXJBbGxDbG9zZWRBdFRoaXNMZXZlbCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FmdGVyT3BlbmVkQXRUaGlzTGV2ZWwgPSBuZXcgU3ViamVjdDxEaWFsb2dSZWY+KCk7XG4gIHByaXZhdGUgX3Njcm9sbFN0cmF0ZWd5OiAoKSA9PiBTY3JvbGxTdHJhdGVneTtcbiAgcHJvdGVjdGVkIF9pZFByZWZpeCA9ICdldC1kaWFsb2ctJztcbiAgcHJpdmF0ZSBfZGlhbG9nOiBDZGtEaWFsb2c7XG5cbiAgcmVhZG9ubHkgYWZ0ZXJBbGxDbG9zZWQ6IE9ic2VydmFibGU8dm9pZD4gPSBkZWZlcigoKSA9PlxuICAgIHRoaXMub3BlbkRpYWxvZ3MubGVuZ3RoID8gdGhpcy5fZ2V0QWZ0ZXJBbGxDbG9zZWQoKSA6IHRoaXMuX2dldEFmdGVyQWxsQ2xvc2VkKCkucGlwZShzdGFydFdpdGgodW5kZWZpbmVkKSksXG4gICkgYXMgT2JzZXJ2YWJsZTx2b2lkPjtcblxuICBnZXQgb3BlbkRpYWxvZ3MoKTogRGlhbG9nUmVmW10ge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnREaWFsb2dTZXJ2aWNlID8gdGhpcy5fcGFyZW50RGlhbG9nU2VydmljZS5vcGVuRGlhbG9ncyA6IHRoaXMuX29wZW5EaWFsb2dzQXRUaGlzTGV2ZWw7XG4gIH1cblxuICBnZXQgYWZ0ZXJPcGVuZWQoKTogU3ViamVjdDxEaWFsb2dSZWY+IHtcbiAgICByZXR1cm4gdGhpcy5fcGFyZW50RGlhbG9nU2VydmljZSA/IHRoaXMuX3BhcmVudERpYWxvZ1NlcnZpY2UuYWZ0ZXJPcGVuZWQgOiB0aGlzLl9hZnRlck9wZW5lZEF0VGhpc0xldmVsO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0QWZ0ZXJBbGxDbG9zZWQoKTogU3ViamVjdDx2b2lkPiB7XG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5fcGFyZW50RGlhbG9nU2VydmljZTtcbiAgICByZXR1cm4gcGFyZW50ID8gcGFyZW50Ll9nZXRBZnRlckFsbENsb3NlZCgpIDogdGhpcy5fYWZ0ZXJBbGxDbG9zZWRBdFRoaXNMZXZlbDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX292ZXJsYXk6IE92ZXJsYXksXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgX2RlZmF1bHRPcHRpb25zOiBEaWFsb2dDb25maWcgfCB1bmRlZmluZWQsXG4gICAgcHJpdmF0ZSBfcGFyZW50RGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZUJhc2U8Qz4gfCB1bmRlZmluZWQsXG4gICAgc2Nyb2xsU3RyYXRlZ3k6ICgpID0+IFNjcm9sbFN0cmF0ZWd5LFxuICAgIHByaXZhdGUgX2RpYWxvZ1JlZkNvbnN0cnVjdG9yOiBUeXBlPERpYWxvZ1JlZj4sXG4gICAgcHJpdmF0ZSBfZGlhbG9nQ29udGFpbmVyVHlwZTogVHlwZTxDPixcbiAgICBwcml2YXRlIF9kaWFsb2dEYXRhVG9rZW46IEluamVjdGlvblRva2VuPHVua25vd24+LFxuICApIHtcbiAgICB0aGlzLl9zY3JvbGxTdHJhdGVneSA9IHNjcm9sbFN0cmF0ZWd5O1xuICAgIHRoaXMuX2RpYWxvZyA9IGluamVjdG9yLmdldChDZGtEaWFsb2cpO1xuICB9XG5cbiAgb3BlbjxULCBEID0gdW5rbm93biwgUiA9IHVua25vd24+KGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTxUPiwgY29uZmlnPzogRGlhbG9nQ29uZmlnPEQ+KTogRGlhbG9nUmVmPFQsIFI+O1xuXG4gIG9wZW48VCwgRCA9IHVua25vd24sIFIgPSB1bmtub3duPih0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8VD4sIGNvbmZpZz86IERpYWxvZ0NvbmZpZzxEPik6IERpYWxvZ1JlZjxULCBSPjtcblxuICBvcGVuPFQsIEQgPSB1bmtub3duLCBSID0gdW5rbm93bj4oXG4gICAgdGVtcGxhdGU6IENvbXBvbmVudFR5cGU8VD4gfCBUZW1wbGF0ZVJlZjxUPixcbiAgICBjb25maWc/OiBEaWFsb2dDb25maWc8RD4sXG4gICk6IERpYWxvZ1JlZjxULCBSPjtcblxuICBvcGVuPFQsIEQgPSB1bmtub3duLCBSID0gdW5rbm93bj4oXG4gICAgY29tcG9uZW50T3JUZW1wbGF0ZVJlZjogQ29tcG9uZW50VHlwZTxUPiB8IFRlbXBsYXRlUmVmPFQ+LFxuICAgIGNvbmZpZz86IERpYWxvZ0NvbmZpZzxEPixcbiAgKTogRGlhbG9nUmVmPFQsIFI+IHtcbiAgICBsZXQgZGlhbG9nUmVmOiBEaWFsb2dSZWY8VCwgUj47XG4gICAgY29uZmlnID0gY3JlYXRlRGlhbG9nQ29uZmlnPEQ+KHRoaXMuX2RlZmF1bHRPcHRpb25zIGFzIERpYWxvZ0NvbmZpZzxEPiwgY29uZmlnKTtcbiAgICBjb25maWcuaWQgPSBjb25maWcuaWQgfHwgYCR7dGhpcy5faWRQcmVmaXh9JHt1bmlxdWVJZCsrfWA7XG4gICAgY29uZmlnLnNjcm9sbFN0cmF0ZWd5ID0gY29uZmlnLnNjcm9sbFN0cmF0ZWd5IHx8IHRoaXMuX3Njcm9sbFN0cmF0ZWd5KCk7XG5cbiAgICBjb25zdCBjZGtSZWYgPSB0aGlzLl9kaWFsb2cub3BlbjxSLCBELCBUPihjb21wb25lbnRPclRlbXBsYXRlUmVmLCB7XG4gICAgICAuLi5jb25maWcsXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OlxuICAgICAgICBjb25maWcucG9zaXRpb25TdHJhdGVneSA/PyB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkuY2VudGVySG9yaXpvbnRhbGx5KCkuY2VudGVyVmVydGljYWxseSgpLFxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxuICAgICAgY2xvc2VPbkRlc3Ryb3k6IGZhbHNlLFxuICAgICAgY29udGFpbmVyOiB7XG4gICAgICAgIHR5cGU6IHRoaXMuX2RpYWxvZ0NvbnRhaW5lclR5cGUsXG4gICAgICAgIHByb3ZpZGVyczogKCkgPT4gW1xuICAgICAgICAgIHsgcHJvdmlkZTogRElBTE9HX0NPTkZJRywgdXNlVmFsdWU6IGNvbmZpZyB9LFxuICAgICAgICAgIHsgcHJvdmlkZTogQ2RrRGlhbG9nQ29uZmlnLCB1c2VWYWx1ZTogY29uZmlnIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAgdGVtcGxhdGVDb250ZXh0OiAoKSA9PiAoeyBkaWFsb2dSZWYgfSksXG4gICAgICBwcm92aWRlcnM6IChyZWYsIGNka0NvbmZpZywgZGlhbG9nQ29udGFpbmVyKSA9PiB7XG4gICAgICAgIGlmIChjb25maWc/Lm92ZXJsYXlDbGFzcykge1xuICAgICAgICAgIGNvbnN0IG92ZXJsYXlSZWZDbGFzc2VzID0gQXJyYXkuaXNBcnJheShjb25maWcub3ZlcmxheUNsYXNzKVxuICAgICAgICAgICAgPyBjb25maWcub3ZlcmxheUNsYXNzLmpvaW4oJyAnKVxuICAgICAgICAgICAgOiBjb25maWcub3ZlcmxheUNsYXNzO1xuXG4gICAgICAgICAgcmVmLm92ZXJsYXlSZWYuaG9zdEVsZW1lbnQuY2xhc3NMaXN0LmFkZChvdmVybGF5UmVmQ2xhc3Nlcyk7XG4gICAgICAgIH1cblxuICAgICAgICBkaWFsb2dSZWYgPSBuZXcgdGhpcy5fZGlhbG9nUmVmQ29uc3RydWN0b3IocmVmLCBjb25maWcsIGRpYWxvZ0NvbnRhaW5lcik7XG4gICAgICAgIGRpYWxvZ1JlZi51cGRhdGVQb3NpdGlvbihjb25maWc/LnBvc2l0aW9uKTtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICB7IHByb3ZpZGU6IHRoaXMuX2RpYWxvZ0NvbnRhaW5lclR5cGUsIHVzZVZhbHVlOiBkaWFsb2dDb250YWluZXIgfSxcbiAgICAgICAgICB7IHByb3ZpZGU6IHRoaXMuX2RpYWxvZ0RhdGFUb2tlbiwgdXNlVmFsdWU6IGNka0NvbmZpZy5kYXRhIH0sXG4gICAgICAgICAgeyBwcm92aWRlOiB0aGlzLl9kaWFsb2dSZWZDb25zdHJ1Y3RvciwgdXNlVmFsdWU6IGRpYWxvZ1JlZiB9LFxuICAgICAgICBdO1xuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb24qL1xuXG4gICAgZGlhbG9nUmVmIS5jb21wb25lbnRJbnN0YW5jZSA9IGNka1JlZi5jb21wb25lbnRJbnN0YW5jZSE7XG5cbiAgICB0aGlzLm9wZW5EaWFsb2dzLnB1c2goZGlhbG9nUmVmISk7XG4gICAgdGhpcy5hZnRlck9wZW5lZC5uZXh0KGRpYWxvZ1JlZiEpO1xuXG4gICAgZGlhbG9nUmVmIS5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMub3BlbkRpYWxvZ3MuaW5kZXhPZihkaWFsb2dSZWYpO1xuXG4gICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICB0aGlzLm9wZW5EaWFsb2dzLnNwbGljZShpbmRleCwgMSk7XG5cbiAgICAgICAgaWYgKCF0aGlzLm9wZW5EaWFsb2dzLmxlbmd0aCkge1xuICAgICAgICAgIHRoaXMuX2dldEFmdGVyQWxsQ2xvc2VkKCkubmV4dCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGlhbG9nUmVmITtcblxuICAgIC8qIGVzbGludC1lbmFibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvbiovXG4gIH1cblxuICBjbG9zZUFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLl9jbG9zZURpYWxvZ3ModGhpcy5vcGVuRGlhbG9ncyk7XG4gIH1cblxuICBnZXREaWFsb2dCeUlkKGlkOiBzdHJpbmcpOiBEaWFsb2dSZWYgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLm9wZW5EaWFsb2dzLmZpbmQoKGRpYWxvZykgPT4gZGlhbG9nLmlkID09PSBpZCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9jbG9zZURpYWxvZ3ModGhpcy5fb3BlbkRpYWxvZ3NBdFRoaXNMZXZlbCk7XG4gICAgdGhpcy5fYWZ0ZXJBbGxDbG9zZWRBdFRoaXNMZXZlbC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2FmdGVyT3BlbmVkQXRUaGlzTGV2ZWwuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2Nsb3NlRGlhbG9ncyhkaWFsb2dzOiBEaWFsb2dSZWZbXSkge1xuICAgIGxldCBpID0gZGlhbG9ncy5sZW5ndGg7XG5cbiAgICB3aGlsZSAoaS0tKSB7XG4gICAgICBkaWFsb2dzW2ldLmNsb3NlKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWJhc2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9vdmVybGF5L2NvbXBvbmVudHMvZGlhbG9nL3NlcnZpY2VzL2RpYWxvZy1iYXNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sSUFBSSxTQUFTLEVBQUUsWUFBWSxJQUFJLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNGLE9BQU8sRUFBaUIsT0FBTyxFQUFrQixNQUFNLHNCQUFzQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBMEIsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xHLE9BQU8sRUFBYyxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRzdDLE9BQU8sRUFBYSxrQkFBa0IsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7O0FBRXpELElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztBQUdqQixNQUFNLE9BQWdCLGlCQUFpQjtJQVlyQyxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDO0lBQzFHLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDO0lBQzFHLENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsTUFBTSxNQUFNLEdB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QztnQkFFbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFO29CQUM1QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztpQkFDbEM7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxTQUFVLENBQUM7UUFFbEIsMkRBQTJEO0lBQzdELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELGFBQWEsQ0FBQyxFQUFVO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQywwQkFBMEIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMzQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVPLGFBQWEsQ0FBQyxPQUFvQjtRQUN4QyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBRXZCLE9BQU8sQ0FBQyxFQUFFLEVBQUU7WUFDVixPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7U0FDckI7SUFDSCxDQUFDOzhHQXRJbUIsaUJBQWlCO2tHQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBRHRDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaWFsb2cgYXMgQ2RrRGlhbG9nLCBEaWFsb2dDb25maWcgYXMgQ2RrRGlhbG9nQ29uZmlnIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RpYWxvZyc7XG5pbXBvcnQgeyBDb21wb25lbnRUeXBlLCBPdmVybGF5LCBTY3JvbGxTdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IERpcmVjdGl2ZSwgSW5qZWN0aW9uVG9rZW4sIEluamVjdG9yLCBPbkRlc3Ryb3ksIFRlbXBsYXRlUmVmLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBkZWZlciwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBESUFMT0dfQ09ORklHIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IERpYWxvZ0NvbnRhaW5lckJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9wYXJ0aWFscyc7XG5pbXBvcnQgeyBEaWFsb2dDb25maWcgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBEaWFsb2dSZWYsIGNyZWF0ZURpYWxvZ0NvbmZpZyB9IGZyb20gJy4uL3V0aWxzJztcblxubGV0IHVuaXF1ZUlkID0gMDtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGlhbG9nU2VydmljZUJhc2U8QyBleHRlbmRzIERpYWxvZ0NvbnRhaW5lckJhc2VDb21wb25lbnQ+IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfb3BlbkRpYWxvZ3NBdFRoaXNMZXZlbDogRGlhbG9nUmVmW10gPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYWZ0ZXJBbGxDbG9zZWRBdFRoaXNMZXZlbCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FmdGVyT3BlbmVkQXRUaGlzTGV2ZWwgPSBuZXcgU3ViamVjdDxEaWFsb2dSZWY+KCk7XG4gIHByaXZhdGUgX3Njcm9sbFN0cmF0ZWd5OiAoKSA9PiBTY3JvbGxTdHJhdGVneTtcbiAgcHJvdGVjdGVkIF9pZFByZWZpeCA9ICdldC1kaWFsb2ctJztcbiAgcHJpdmF0ZSBfZGlhbG9nOiBDZGtEaWFsb2c7XG5cbiAgcmVhZG9ubHkgYWZ0ZXJBbGxDbG9zZWQ6IE9ic2VydmFibGU8dm9pZD4gPSBkZWZlcigoKSA9PlxuICAgIHRoaXMub3BlbkRpYWxvZ3MubGVuZ3RoID8gdGhpcy5fZ2V0QWZ0ZXJBbGxDbG9zZWQoKSA6IHRoaXMuX2dldEFmdGVyQWxsQ2xvc2VkKCkucGlwZShzdGFydFdpdGgodW5kZWZpbmVkKSksXG4gICkgYXMgT2JzZXJ2YWJsZTx2b2lkPjtcblxuICBnZXQgb3BlbkRpYWxvZ3MoKTogRGlhbG9nUmVmW10ge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnREaWFsb2dTZXJ2aWNlID8gdGhpcy5fcGFyZW50RGlhbG9nU2VydmljZS5vcGVuRGlhbG9ncyA6IHRoaXMuX29wZW5EaWFsb2dzQXRUaGlzTGV2ZWw7XG4gIH1cblxuICBnZXQgYWZ0ZXJPcGVuZWQoKTogU3ViamVjdDxEaWFsb2dSZWY+IHtcbiAgICByZXR1cm4gdGhpcy5fcGFyZW50RGlhbG9nU2VydmljZSA/IHRoaXMuX3BhcmVudERpYWxvZ1NlcnZpY2UuYWZ0ZXJPcGVuZWQgOiB0aGlzLl9hZnRlck9wZW5lZEF0VGhpc0xldmVsO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0QWZ0ZXJBbGxDbG9zZWQoKTogU3ViamVjdDx2b2lkPiB7XG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5fcGFyZW50RGlhbG9nU2VydmljZTtcbiAgICByZXR1cm4gcGFyZW50ID8gcGFyZW50Ll9nZXRBZnRlckFsbENsb3NlZCgpIDogdGhpcy5fYWZ0ZXJBbGxDbG9zZWRBdFRoaXNMZXZlbDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX292ZXJsYXk6IE92ZXJsYXksXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgX2RlZmF1bHRPcHRpb25zOiBEaWFsb2dDb25maWcgfCB1bmRlZmluZWQsXG4gICAgcHJpdmF0ZSBfcGFyZW50RGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZUJhc2U8Qz4gfCB1bmRlZmluZWQsXG4gICAgc2Nyb2xsU3RyYXRlZ3k6ICgpID0+IFNjcm9sbFN0cmF0ZWd5LFxuICAgIHByaXZhdGUgX2RpYWxvZ1JlZkNvbnN0cnVjdG9yOiBUeXBlPERpYWxvZ1JlZj4sXG4gICAgcHJpdmF0ZSBfZGlhbG9nQ29udGFpbmVyVHlwZTogVHlwZTxDPixcbiAgICBwcml2YXRlIF9kaWFsb2dEYXRhVG9rZW46IEluamVjdGlvblRva2VuPHVua25vd24+LFxuICApIHtcbiAgICB0aGlzLl9zY3JvbGxTdHJhdGVneSA9IHNjcm9sbFN0cmF0ZWd5O1xuICAgIHRoaXMuX2RpYWxvZyA9IGluamVjdG9yLmdldChDZGtEaWFsb2cpO1xuICB9XG5cbiAgb3BlbjxULCBEID0gdW5rbm93biwgUiA9IHVua25vd24+KGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTxUPiwgY29uZmlnPzogRGlhbG9nQ29uZmlnPEQ+KTogRGlhbG9nUmVmPFQsIFI+O1xuXG4gIG9wZW48VCwgRCA9IHVua25vd24sIFIgPSB1bmtub3duPih0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8VD4sIGNvbmZpZz86IERpYWxvZ0NvbmZpZzxEPik6IERpYWxvZ1JlZjxULCBSPjtcblxuICBvcGVuPFQsIEQgPSB1bmtub3duLCBSID0gdW5rbm93bj4oXG4gICAgdGVtcGxhdGU6IENvbXBvbmVudFR5cGU8VD4gfCBUZW1wbGF0ZVJlZjxUPixcbiAgICBjb25maWc/OiBEaWFsb2dDb25maWc8RD4sXG4gICk6IERpYWxvZ1JlZjxULCBSPjtcblxuICBvcGVuPFQsIEQgPSB1bmtub3duLCBSID0gdW5rbm93bj4oXG4gICAgY29tcG9uZW50T3JUZW1wbGF0ZVJlZjogQ29tcG9uZW50VHlwZTxUPiB8IFRlbXBsYXRlUmVmPFQ+LFxuICAgIGNvbmZpZz86IERpYWxvZ0NvbmZpZzxEPixcbiAgKTogRGlhbG9nUmVmPFQsIFI+IHtcbiAgICBsZXQgZGlhbG9nUmVmOiBEaWFsb2dSZWY8VCwgUj47XG4gICAgY29uZmlnID0gY3JlYXRlRGlhbG9nQ29uZmlnPEQ+KHRoaXMuX2RlZmF1bHRPcHRpb25zIGFzIERpYWxvZ0NvbmZpZzxEPiwgY29uZmlnKTtcbiAgICBjb25maWcuaWQgPSBjb25maWcuaWQgfHwgYCR7dGhpcy5faWRQcmVmaXh9JHt1bmlxdWVJZCsrfWA7XG4gICAgY29uZmlnLnNjcm9sbFN0cmF0ZWd5ID0gY29uZmlnLnNjcm9sbFN0cmF0ZWd5IHx8IHRoaXMuX3Njcm9sbFN0cmF0ZWd5KCk7XG5cbiAgICBjb25zdCBjZGtSZWYgPSB0aGlzLl9kaWFsb2cub3BlbjxSLCBELCBUPihjb21wb25lbnRPclRlbXBsYXRlUmVmLCB7XG4gICAgICAuLi5jb25maWcsXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OlxuICAgICAgICBjb25maWcucG9zaXRpb25TdHJhdGVneSA/PyB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkuY2VudGVySG9yaXpvbnRhbGx5KCkuY2VudGVyVmVydGljYWxseSgpLFxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxuICAgICAgY2xvc2VPbkRlc3Ryb3k6IGZhbHNlLFxuICAgICAgY29udGFpbmVyOiB7XG4gICAgICAgIHR5cGU6IHRoaXMuX2RpYWxvZ0NvbnRhaW5lclR5cGUsXG4gICAgICAgIHByb3ZpZGVyczogKCkgPT4gW1xuICAgICAgICAgIHsgcHJvdmlkZTogRElBTE9HX0NPTkZJRywgdXNlVmFsdWU6IGNvbmZpZyB9LFxuICAgICAgICAgIHsgcHJvdmlkZTogQ2RrRGlhbG9nQ29uZmlnLCB1c2VWYWx1ZTogY29uZmlnIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAgdGVtcGxhdGVDb250ZXh0OiAoKSA9PiAoeyBkaWFsb2dSZWYgfSksXG4gICAgICBwcm92aWRlcnM6IChyZWYsIGNka0NvbmZpZywgZGlhbG9nQ29udGFpbmVyKSA9PiB7XG4gICAgICAgIGlmIChjb25maWc/Lm92ZXJsYXlDbGFzcykge1xuICAgICAgICAgIGNvbnN0IG92ZXJsYXlSZWZDbGFzc2VzID0gQXJyYXkuaXNBcnJheShjb25maWcub3ZlcmxheUNsYXNzKVxuICAgICAgICAgICAgPyBjb25maWcub3ZlcmxheUNsYXNzLmpvaW4oJyAnKVxuICAgICAgICAgICAgOiBjb25maWcub3ZlcmxheUNsYXNzO1xuXG4gICAgICAgICAgcmVmLm92ZXJsYXlSZWYuaG9zdEVsZW1lbnQuY2xhc3NMaXN0LmFkZChvdmVybGF5UmVmQ2xhc3Nlcyk7XG4gICAgICAgIH1cblxuICAgICAgICBkaWFsb2dSZWYgPSBuZXcgdGhpcy5fZGlhbG9nUmVmQ29uc3RydWN0b3IocmVmLCBjb25maWcsIGRpYWxvZ0NvbnRhaW5lcik7XG4gICAgICAgIGRpYWxvZ1JlZi51cGRhdGVQb3NpdGlvbihjb25maWc/LnBvc2l0aW9uKTtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICB7IHByb3ZpZGU6IHRoaXMuX2RpYWxvZ0NvbnRhaW5lclR5cGUsIHVzZVZhbHVlOiBkaWFsb2dDb250YWluZXIgfSxcbiAgICAgICAgICB7IHByb3ZpZGU6IHRoaXMuX2RpYWxvZ0RhdGFUb2tlbiwgdXNlVmFsdWU6IGNka0NvbmZpZy5kYXRhIH0sXG4gICAgICAgICAgeyBwcm92aWRlOiB0aGlzLl9kaWFsb2dSZWZDb25zdHJ1Y3RvciwgdXNlVmFsdWU6IGRpYWxvZ1JlZiB9LFxuICAgICAgICBdO1xuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb24qL1xuXG4gICAgZGlhbG9nUmVmIS5jb21wb25lbnRJbnN0YW5jZSA9IGNka1JlZi5jb21wb25lbnRJbnN0YW5jZSE7XG5cbiAgICB0aGlzLm9wZW5EaWFsb2dzLnB1c2goZGlhbG9nUmVmISk7XG4gICAgdGhpcy5hZnRlck9wZW5lZC5uZXh0KGRpYWxvZ1JlZiEpO1xuXG4gICAgZGlhbG9nUmVmIS5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMub3BlbkRpYWxvZ3MuaW5kZXhPZihkaWFsb2dSZWYpO1xuXG4gICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICB0aGlzLm9wZW5EaWFsb2dzLnNwbGljZShpbmRleCwgMSk7XG5cbiAgICAgICAgaWYgKCF0aGlzLm9wZW5EaWFsb2dzLmxlbmd0aCkge1xuICAgICAgICAgIHRoaXMuX2dldEFmdGVyQWxsQ2xvc2VkKCkubmV4dCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGlhbG9nUmVmITtcblxuICAgIC8qIGVzbGludC1lbmFibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvbiovXG4gIH1cblxuICBjbG9zZUFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLl9jbG9zZURpYWxvZ3ModGhpcy5vcGVuRGlhbG9ncyk7XG4gIH1cblxuICBnZXREaWFsb2dCeUlkKGlkOiBzdHJpbmcpOiBEaWFsb2dSZWYgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLm9wZW5EaWFsb2dzLmZpbmQoKGRpYWxvZykgPT4gZGlhbG9nLmlkID09PSBpZCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9jbG9zZURpYWxvZ3ModGhpcy5fb3BlbkRpYWxvZ3NBdFRoaXNMZXZlbCk7XG4gICAgdGhpcy5fYWZ0ZXJBbGxDbG9zZWRBdFRoaXNMZXZlbC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2FmdGVyT3BlbmVkQXRUaGlzTGV2ZWwuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2Nsb3NlRGlhbG9ncyhkaWFsb2dzOiBEaWFsb2dSZWZbXSkge1xuICAgIGxldCBpID0gZGlhbG9ncy5sZW5ndGg7XG5cbiAgICB3aGlsZSAoaS0tKSB7XG4gICAgICBkaWFsb2dzW2ldPy5jbG9zZSgpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -137,4 +137,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
137
137
  providers: [{ provide: MENU_AIM, useClass: TargetMenuAim }],
138
138
  }]
139
139
  }] });
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1haW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvb3ZlcmxheS9jb21wb25lbnRzL21lbnUvbWVudS1haW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkRBQTJEO0FBQzNELHFEQUFxRDtBQUNyRCxpRUFBaUU7QUFDakUsb0RBQW9EO0FBQ3BELGdFQUFnRTtBQUVoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBVTNGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxJQUFJLGNBQWMsQ0FBVSxjQUFjLENBQUMsQ0FBQztBQUVwRSxNQUFNLDJCQUEyQixHQUFHLENBQUMsQ0FBQztBQUV0QyxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUM7QUFFckIsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDO0FBTXhCLFNBQVMsUUFBUSxDQUFDLENBQVEsRUFBRSxDQUFRO0lBQ2xDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25DLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxLQUFZLEVBQUUsS0FBYTtJQUNoRCxPQUFPLEtBQUssQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENB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QUM5QixRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsQ0FBQztpQkFDNUQiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLWNsYXNzLXN1ZmZpeCAqL1xuLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1yZW5hbWUgKi9cbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXRzLW1ldGFkYXRhLXByb3BlcnR5ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5ICovXG5cbmltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgaXNEZXZNb2RlLCBOZ1pvbmUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHRocm93TWlzc2luZ01lbnVSZWZlcmVuY2UsIHRocm93TWlzc2luZ1BvaW50ZXJGb2N1c1RyYWNrZXIgfSBmcm9tICcuL21lbnUtZXJyb3JzJztcbmltcG9ydCB7IE1lbnUgfSBmcm9tICcuL21lbnUtaW50ZXJmYWNlJztcbmltcG9ydCB7IEZvY3VzYWJsZUVsZW1lbnQsIFBvaW50ZXJGb2N1c1RyYWNrZXIgfSBmcm9tICcuL3BvaW50ZXItZm9jdXMtdHJhY2tlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVudUFpbSB7XG4gIGluaXRpYWxpemUobWVudTogTWVudSwgcG9pbnRlclRyYWNrZXI6IFBvaW50ZXJGb2N1c1RyYWNrZXI8Rm9jdXNhYmxlRWxlbWVudCAmIFRvZ2dsZXI+KTogdm9pZDtcblxuICB0b2dnbGUoZG9Ub2dnbGU6ICgpID0+IHZvaWQpOiB2b2lkO1xufVxuXG5leHBvcnQgY29uc3QgTUVOVV9BSU0gPSBuZXcgSW5qZWN0aW9uVG9rZW48TWVudUFpbT4oJ2Nkay1tZW51LWFpbScpO1xuXG5jb25zdCBNT1VTRV9NT1ZFX1NBTVBMRV9GUkVRVUVOQ1kgPSAzO1xuXG5jb25zdCBOVU1fUE9JTlRTID0gNTtcblxuY29uc3QgQ0xPU0VfREVMQVkgPSAzMDA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9nZ2xlciB7XG4gIGdldE1lbnUoKTogTWVudSB8IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gZ2V0U2xvcGUoYTogUG9pbnQsIGI6IFBvaW50KSB7XG4gIHJldHVybiAoYi55IC0gYS55KSAvIChiLnggLSBhLngpO1xufVxuXG5mdW5jdGlvbiBnZXRZSW50ZXJjZXB0KHBvaW50OiBQb2ludCwgc2xvcGU6IG51bWJlcikge1xuICByZXR1cm4gcG9pbnQueSAtIHNsb3BlICogcG9pbnQueDtcbn1cblxudHlwZSBQb2ludCA9IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfTtcblxuZnVuY3Rpb24gaXNXaXRoaW5TdWJtZW51KHN1Ym1lbnVQb2ludHM6IERPTVJlY3QsIG06IG51bWJlciwgYjogbnVtYmVyKSB7XG4gIGNvbnN0IHsgbGVmdCwgcmlnaHQsIHRvcCwgYm90dG9tIH0gPSBzdWJtZW51UG9pbnRzO1xuXG4gIHJldHVybiAoXG4gICAgKG0gKiBsZWZ0ICsgYiA+PSB0b3AgJiYgbSAqIGxlZnQgKyBiIDw9IGJvdHRvbSkgfHxcbiAgICAobSAqIHJpZ2h0ICsgYiA+PSB0b3AgJiYgbSAqIHJpZ2h0ICsgYiA8PSBib3R0b20pIHx8XG4gICAgKCh0b3AgLSBiKSAvIG0gPj0gbGVmdCAmJiAodG9wIC0gYikgLyBtIDw9IHJpZ2h0KSB8fFxuICAgICgoYm90dG9tIC0gYikgLyBtID49IGxlZnQgJiYgKGJvdHRvbSAtIGIpIC8gbSA8PSByaWdodClcbiAgKTtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRhcmdldE1lbnVBaW0gaW1wbGVtZW50cyBNZW51QWltLCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IF9uZ1pvbmUgPSBpbmplY3QoTmdab25lKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9wb2ludHM6IFBvaW50W10gPSBbXTtcblxuICBwcml2YXRlIF9tZW51OiBNZW51IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfcG9pbnRlclRyYWNrZXI6IFBvaW50ZXJGb2N1c1RyYWNrZXI8VG9nZ2xlciAmIEZvY3VzYWJsZUVsZW1lbnQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfdGltZW91dElkOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2Rlc3Ryb3llZC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveWVkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBpbml0aWFsaXplKG1lbnU6IE1lbnUsIHBvaW50ZXJUcmFja2VyOiBQb2ludGVyRm9jdXNUcmFja2VyPEZvY3VzYWJsZUVsZW1lbnQgJiBUb2dnbGVyPikge1xuICAgIHRoaXMuX21lbnUgPSBtZW51O1xuICAgIHRoaXMuX3BvaW50ZXJUcmFja2VyID0gcG9pbnRlclRyYWNrZXI7XG4gICAgdGhpcy5fc3Vic2NyaWJlVG9Nb3VzZU1vdmVzKCk7XG4gIH1cblxuICB0b2dnbGUoZG9Ub2dnbGU6ICgpID0+IHZvaWQpIHtcbiAgICBpZiAoIXRoaXMuX21lbnUpIHJldHVybjtcblxuICAgIGlmICh0aGlzLl9tZW51Lm9yaWVudGF0aW9uID09PSAnaG9yaXpvbnRhbCcpIHtcbiAgICAgIGRvVG9nZ2xlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5fY2hlY2tDb25maWd1cmVkKCk7XG5cbiAgICBjb25zdCBzaWJsaW5nSXRlbUlzV2FpdGluZyA9ICEhdGhpcy5fdGltZW91dElkO1xuICAgIGNvbnN0IGhhc1BvaW50cyA9IHRoaXMuX3BvaW50cy5sZW5ndGggPiAxO1xuXG4gICAgaWYgKGhhc1BvaW50cyAmJiAhc2libGluZ0l0ZW1Jc1dhaXRpbmcpIHtcbiAgICAgIGlmICh0aGlzLl9pc01vdmluZ1RvU3VibWVudSgpKSB7XG4gICAgICAgIHRoaXMuX3N0YXJ0VGltZW91dChkb1RvZ2dsZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkb1RvZ2dsZSgpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoIXNpYmxpbmdJdGVtSXNXYWl0aW5nKSB7XG4gICAgICBkb1RvZ2dsZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3N0YXJ0VGltZW91dChkb1RvZ2dsZTogKCkgPT4gdm9pZCkge1xuICAgIGNvbnN0IHRpbWVvdXRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5fcG9pbnRlclRyYWNrZXIpIHJldHVybjtcblxuICAgICAgaWYgKHRoaXMuX3BvaW50ZXJUcmFja2VyLmFjdGl2ZUVsZW1lbnQgJiYgdGltZW91dElkID09PSB0aGlzLl90aW1lb3V0SWQpIHtcbiAgICAgICAgZG9Ub2dnbGUoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX3RpbWVvdXRJZCA9IG51bGw7XG4gICAgfSwgQ0xPU0VfREVMQVkpO1xuXG4gICAgdGhpcy5fdGltZW91dElkID0gdGltZW91dElkO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNNb3ZpbmdUb1N1Ym1lbnUoKSB7XG4gICAgY29uc3Qgc3VibWVudVBvaW50cyA9IHRoaXMuX2dldFN1Ym1lbnVCb3VuZHMoKTtcbiAgICBpZiAoIXN1Ym1lbnVQb2ludHMpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBsZXQgbnVtTW92aW5nID0gMDtcbiAgICBjb25zdCBjdXJyUG9pbnQgPSB0aGlzLl9wb2ludHNbdGhpcy5fcG9pbnRzLmxlbmd0aCAtIDFdO1xuXG4gICAgZm9yIChsZXQgaSA9IHRoaXMuX3BvaW50cy5sZW5ndGggLSAyOyBpID49IDA7IGktLSkge1xuICAgICAgY29uc3QgcHJldmlvdXMgPSB0aGlzLl9wb2ludHNbaV07XG4gICAgICBjb25zdCBzbG9wZSA9IGdldFNsb3BlKGN1cnJQb2ludCwgcHJldmlvdXMpO1xuICAgICAgaWYgKGlzV2l0aGluU3VibWVudShzdWJtZW51UG9pbnRzLCBzbG9wZSwgZ2V0WUludGVyY2VwdChjdXJyUG9pbnQsIHNsb3BlKSkpIHtcbiAgICAgICAgbnVtTW92aW5nKys7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudW1Nb3ZpbmcgPj0gTWF0aC5mbG9vcihOVU1fUE9JTlRTIC8gMik7XG4gIH1cblxuICBwcml2YXRlIF9nZXRTdWJtZW51Qm91bmRzKCk6IERPTVJlY3QgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9wb2ludGVyVHJhY2tlcj8ucHJldmlvdXNFbGVtZW50Py5nZXRNZW51KCk/Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIH1cblxuICBwcml2YXRlIF9jaGVja0NvbmZpZ3VyZWQoKSB7XG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICBpZiAoIXRoaXMuX3BvaW50ZXJUcmFja2VyKSB7XG4gICAgICAgIHRocm93TWlzc2luZ1BvaW50ZXJGb2N1c1RyYWNrZXIoKTtcbiAgICAgIH1cbiAgICAgIGlmICghdGhpcy5fbWVudSkge1xuICAgICAgICB0aHJvd01pc3NpbmdNZW51UmVmZXJlbmNlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc3Vic2NyaWJlVG9Nb3VzZU1vdmVzKCkge1xuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuX21lbnUpIHJldHVybjtcblxuICAgICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuX21lbnUubmF0aXZlRWxlbWVudCwgJ21vdXNlbW92ZScpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGZpbHRlcigoXzogTW91c2VFdmVudCwgaW5kZXg6IG51bWJlcikgPT4gaW5kZXggJSBNT1VTRV9NT1ZFX1NBTVBMRV9GUkVRVUVOQ1kgPT09IDApLFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy5fcG9pbnRzLnB1c2goeyB4OiBldmVudC5jbGllbnRYLCB5OiBldmVudC5jbGllbnRZIH0pO1xuICAgICAgICAgIGlmICh0aGlzLl9wb2ludHMubGVuZ3RoID4gTlVNX1BPSU5UUykge1xuICAgICAgICAgICAgdGhpcy5fcG9pbnRzLnNoaWZ0KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbY2RrVGFyZ2V0TWVudUFpbV0nLFxuICBleHBvcnRBczogJ2Nka1RhcmdldE1lbnVBaW0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE1FTlVfQUlNLCB1c2VDbGFzczogVGFyZ2V0TWVudUFpbSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgQ2RrVGFyZ2V0TWVudUFpbSB7fVxuIl19
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1haW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvb3ZlcmxheS9jb21wb25lbnRzL21lbnUvbWVudS1haW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkRBQTJEO0FBQzNELHFEQUFxRDtBQUNyRCxpRUFBaUU7QUFDakUsb0RBQW9EO0FBQ3BELGdFQUFnRTtBQUVoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBVTNGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxJQUFJLGNBQWMsQ0FBVSxjQUFjLENBQUMsQ0FBQztBQUVwRSxNQUFNLDJCQUEyQixHQUFHLENBQUMsQ0FBQztBQUV0QyxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUM7QUFFckIsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDO0FBTXhCLFNBQVMsUUFBUSxDQUFDLENBQVEsRUFBRSxDQUFRO0lBQ2xDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25DLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxLQUFZLEVBQUUsS0FBYTtJQUNoRCxPQUFPLEtBQUssQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENB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QUM5QixRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsQ0FBQztpQkFDNUQiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLWNsYXNzLXN1ZmZpeCAqL1xuLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1yZW5hbWUgKi9cbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXRzLW1ldGFkYXRhLXByb3BlcnR5ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5ICovXG5cbmltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgaXNEZXZNb2RlLCBOZ1pvbmUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHRocm93TWlzc2luZ01lbnVSZWZlcmVuY2UsIHRocm93TWlzc2luZ1BvaW50ZXJGb2N1c1RyYWNrZXIgfSBmcm9tICcuL21lbnUtZXJyb3JzJztcbmltcG9ydCB7IE1lbnUgfSBmcm9tICcuL21lbnUtaW50ZXJmYWNlJztcbmltcG9ydCB7IEZvY3VzYWJsZUVsZW1lbnQsIFBvaW50ZXJGb2N1c1RyYWNrZXIgfSBmcm9tICcuL3BvaW50ZXItZm9jdXMtdHJhY2tlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVudUFpbSB7XG4gIGluaXRpYWxpemUobWVudTogTWVudSwgcG9pbnRlclRyYWNrZXI6IFBvaW50ZXJGb2N1c1RyYWNrZXI8Rm9jdXNhYmxlRWxlbWVudCAmIFRvZ2dsZXI+KTogdm9pZDtcblxuICB0b2dnbGUoZG9Ub2dnbGU6ICgpID0+IHZvaWQpOiB2b2lkO1xufVxuXG5leHBvcnQgY29uc3QgTUVOVV9BSU0gPSBuZXcgSW5qZWN0aW9uVG9rZW48TWVudUFpbT4oJ2Nkay1tZW51LWFpbScpO1xuXG5jb25zdCBNT1VTRV9NT1ZFX1NBTVBMRV9GUkVRVUVOQ1kgPSAzO1xuXG5jb25zdCBOVU1fUE9JTlRTID0gNTtcblxuY29uc3QgQ0xPU0VfREVMQVkgPSAzMDA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9nZ2xlciB7XG4gIGdldE1lbnUoKTogTWVudSB8IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gZ2V0U2xvcGUoYTogUG9pbnQsIGI6IFBvaW50KSB7XG4gIHJldHVybiAoYi55IC0gYS55KSAvIChiLnggLSBhLngpO1xufVxuXG5mdW5jdGlvbiBnZXRZSW50ZXJjZXB0KHBvaW50OiBQb2ludCwgc2xvcGU6IG51bWJlcikge1xuICByZXR1cm4gcG9pbnQueSAtIHNsb3BlICogcG9pbnQueDtcbn1cblxudHlwZSBQb2ludCA9IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfTtcblxuZnVuY3Rpb24gaXNXaXRoaW5TdWJtZW51KHN1Ym1lbnVQb2ludHM6IERPTVJlY3QsIG06IG51bWJlciwgYjogbnVtYmVyKSB7XG4gIGNvbnN0IHsgbGVmdCwgcmlnaHQsIHRvcCwgYm90dG9tIH0gPSBzdWJtZW51UG9pbnRzO1xuXG4gIHJldHVybiAoXG4gICAgKG0gKiBsZWZ0ICsgYiA+PSB0b3AgJiYgbSAqIGxlZnQgKyBiIDw9IGJvdHRvbSkgfHxcbiAgICAobSAqIHJpZ2h0ICsgYiA+PSB0b3AgJiYgbSAqIHJpZ2h0ICsgYiA8PSBib3R0b20pIHx8XG4gICAgKCh0b3AgLSBiKSAvIG0gPj0gbGVmdCAmJiAodG9wIC0gYikgLyBtIDw9IHJpZ2h0KSB8fFxuICAgICgoYm90dG9tIC0gYikgLyBtID49IGxlZnQgJiYgKGJvdHRvbSAtIGIpIC8gbSA8PSByaWdodClcbiAgKTtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRhcmdldE1lbnVBaW0gaW1wbGVtZW50cyBNZW51QWltLCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IF9uZ1pvbmUgPSBpbmplY3QoTmdab25lKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9wb2ludHM6IFBvaW50W10gPSBbXTtcblxuICBwcml2YXRlIF9tZW51OiBNZW51IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfcG9pbnRlclRyYWNrZXI6IFBvaW50ZXJGb2N1c1RyYWNrZXI8VG9nZ2xlciAmIEZvY3VzYWJsZUVsZW1lbnQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfdGltZW91dElkOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2Rlc3Ryb3llZC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveWVkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBpbml0aWFsaXplKG1lbnU6IE1lbnUsIHBvaW50ZXJUcmFja2VyOiBQb2ludGVyRm9jdXNUcmFja2VyPEZvY3VzYWJsZUVsZW1lbnQgJiBUb2dnbGVyPikge1xuICAgIHRoaXMuX21lbnUgPSBtZW51O1xuICAgIHRoaXMuX3BvaW50ZXJUcmFja2VyID0gcG9pbnRlclRyYWNrZXI7XG4gICAgdGhpcy5fc3Vic2NyaWJlVG9Nb3VzZU1vdmVzKCk7XG4gIH1cblxuICB0b2dnbGUoZG9Ub2dnbGU6ICgpID0+IHZvaWQpIHtcbiAgICBpZiAoIXRoaXMuX21lbnUpIHJldHVybjtcblxuICAgIGlmICh0aGlzLl9tZW51Lm9yaWVudGF0aW9uID09PSAnaG9yaXpvbnRhbCcpIHtcbiAgICAgIGRvVG9nZ2xlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5fY2hlY2tDb25maWd1cmVkKCk7XG5cbiAgICBjb25zdCBzaWJsaW5nSXRlbUlzV2FpdGluZyA9ICEhdGhpcy5fdGltZW91dElkO1xuICAgIGNvbnN0IGhhc1BvaW50cyA9IHRoaXMuX3BvaW50cy5sZW5ndGggPiAxO1xuXG4gICAgaWYgKGhhc1BvaW50cyAmJiAhc2libGluZ0l0ZW1Jc1dhaXRpbmcpIHtcbiAgICAgIGlmICh0aGlzLl9pc01vdmluZ1RvU3VibWVudSgpKSB7XG4gICAgICAgIHRoaXMuX3N0YXJ0VGltZW91dChkb1RvZ2dsZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkb1RvZ2dsZSgpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoIXNpYmxpbmdJdGVtSXNXYWl0aW5nKSB7XG4gICAgICBkb1RvZ2dsZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3N0YXJ0VGltZW91dChkb1RvZ2dsZTogKCkgPT4gdm9pZCkge1xuICAgIGNvbnN0IHRpbWVvdXRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5fcG9pbnRlclRyYWNrZXIpIHJldHVybjtcblxuICAgICAgaWYgKHRoaXMuX3BvaW50ZXJUcmFja2VyLmFjdGl2ZUVsZW1lbnQgJiYgdGltZW91dElkID09PSB0aGlzLl90aW1lb3V0SWQpIHtcbiAgICAgICAgZG9Ub2dnbGUoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX3RpbWVvdXRJZCA9IG51bGw7XG4gICAgfSwgQ0xPU0VfREVMQVkpO1xuXG4gICAgdGhpcy5fdGltZW91dElkID0gdGltZW91dElkO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNNb3ZpbmdUb1N1Ym1lbnUoKSB7XG4gICAgY29uc3Qgc3VibWVudVBvaW50cyA9IHRoaXMuX2dldFN1Ym1lbnVCb3VuZHMoKTtcbiAgICBpZiAoIXN1Ym1lbnVQb2ludHMpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBsZXQgbnVtTW92aW5nID0gMDtcbiAgICBjb25zdCBjdXJyUG9pbnQgPSB0aGlzLl9wb2ludHNbdGhpcy5fcG9pbnRzLmxlbmd0aCAtIDFdO1xuXG4gICAgZm9yIChsZXQgaSA9IHRoaXMuX3BvaW50cy5sZW5ndGggLSAyOyBpID49IDA7IGktLSkge1xuICAgICAgY29uc3QgcHJldmlvdXMgPSB0aGlzLl9wb2ludHNbaV07XG4gICAgICBjb25zdCBzbG9wZSA9IGdldFNsb3BlKGN1cnJQb2ludCEsIHByZXZpb3VzISk7XG4gICAgICBpZiAoaXNXaXRoaW5TdWJtZW51KHN1Ym1lbnVQb2ludHMsIHNsb3BlLCBnZXRZSW50ZXJjZXB0KGN1cnJQb2ludCEsIHNsb3BlKSkpIHtcbiAgICAgICAgbnVtTW92aW5nKys7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudW1Nb3ZpbmcgPj0gTWF0aC5mbG9vcihOVU1fUE9JTlRTIC8gMik7XG4gIH1cblxuICBwcml2YXRlIF9nZXRTdWJtZW51Qm91bmRzKCk6IERPTVJlY3QgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9wb2ludGVyVHJhY2tlcj8ucHJldmlvdXNFbGVtZW50Py5nZXRNZW51KCk/Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIH1cblxuICBwcml2YXRlIF9jaGVja0NvbmZpZ3VyZWQoKSB7XG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICBpZiAoIXRoaXMuX3BvaW50ZXJUcmFja2VyKSB7XG4gICAgICAgIHRocm93TWlzc2luZ1BvaW50ZXJGb2N1c1RyYWNrZXIoKTtcbiAgICAgIH1cbiAgICAgIGlmICghdGhpcy5fbWVudSkge1xuICAgICAgICB0aHJvd01pc3NpbmdNZW51UmVmZXJlbmNlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc3Vic2NyaWJlVG9Nb3VzZU1vdmVzKCkge1xuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuX21lbnUpIHJldHVybjtcblxuICAgICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuX21lbnUubmF0aXZlRWxlbWVudCwgJ21vdXNlbW92ZScpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGZpbHRlcigoXzogTW91c2VFdmVudCwgaW5kZXg6IG51bWJlcikgPT4gaW5kZXggJSBNT1VTRV9NT1ZFX1NBTVBMRV9GUkVRVUVOQ1kgPT09IDApLFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy5fcG9pbnRzLnB1c2goeyB4OiBldmVudC5jbGllbnRYLCB5OiBldmVudC5jbGllbnRZIH0pO1xuICAgICAgICAgIGlmICh0aGlzLl9wb2ludHMubGVuZ3RoID4gTlVNX1BPSU5UUykge1xuICAgICAgICAgICAgdGhpcy5fcG9pbnRzLnNoaWZ0KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbY2RrVGFyZ2V0TWVudUFpbV0nLFxuICBleHBvcnRBczogJ2Nka1RhcmdldE1lbnVBaW0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE1FTlVfQUlNLCB1c2VDbGFzczogVGFyZ2V0TWVudUFpbSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgQ2RrVGFyZ2V0TWVudUFpbSB7fVxuIl19
@@ -147,7 +147,7 @@ export class OverlayService {
147
147
  const originX = isHtmlElement(origin)
148
148
  ? origin.getBoundingClientRect().left
149
149
  : isTouchEvent(origin)
150
- ? origin.changedTouches[0].clientX
150
+ ? origin.targetTouches[0].clientX
151
151
  : isPointerEvent(origin)
152
152
  ? origin.clientX !== 0
153
153
  ? origin.clientX
@@ -156,7 +156,7 @@ export class OverlayService {
156
156
  const originY = isHtmlElement(origin)
157
157
  ? origin.getBoundingClientRect().top
158
158
  : isTouchEvent(origin)
159
- ? origin.changedTouches[0].clientY
159
+ ? origin.targetTouches[0].clientY
160
160
  : isPointerEvent(origin)
161
161
  ? origin.clientY !== 0
162
162
  ? origin.clientY
@@ -265,7 +265,7 @@ export class OverlayService {
265
265
  _closeOverlays(overlays) {
266
266
  let i = overlays.length;
267
267
  while (i--) {
268
- overlays[i].close();
268
+ overlays[i]?.close();
269
269
  }
270
270
  }
271
271
  _getAfterAllClosed() {
@@ -278,4 +278,4 @@ export class OverlayService {
278
278
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: OverlayService, decorators: [{
279
279
  type: Injectable
280
280
  }] });
281
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL292ZXJsYXkvY29tcG9uZW50cy9vdmVybGF5L3NlcnZpY2VzL292ZXJsYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsTUFBTSxJQUFJLFNBQVMsRUFBRSxZQUFZLElBQUksZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFM0YsT0FBTyxFQUFnQixVQUFVLEVBQTBCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFjLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9HLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSx1QkFBdUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5RyxPQUFPLEVBQ0wsNkJBQTZCLEVBQzdCLDJCQUEyQixFQUMzQiw0QkFBNEIsRUFDNUIsMEJBQTBCLEVBQzFCLHNCQUFzQixFQUN0QixVQUFVLEVBQ1YsbUJBQW1CLEdBQ3BCLE1BQU0sVUFBVSxDQUFDOztBQUVsQixJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFDakIsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDO0FBRWhDLE1BQU0sUUFBUSxHQUFHLENBQUMsRUFBZSxFQUFFLEtBQWEs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RUFBRSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVPLGNBQWMsQ0FBQyxRQUFzQjtRQUMzQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBRXhCLE9BQU8sQ0FBQyxFQUFFLEVBQUU7WUFDVixRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDckI7SUFDSCxDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztRQUMxQyxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQztJQUNoRixDQUFDOzhHQXhTVSxjQUFjO2tIQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VDc3NQaXhlbFZhbHVlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IERpYWxvZyBhcyBDZGtEaWFsb2csIERpYWxvZ0NvbmZpZyBhcyBDZGtEaWFsb2dDb25maWcgfSBmcm9tICdAYW5ndWxhci9jZGsvZGlhbG9nJztcbmltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWYsIEluamVjdGFibGUsIE9uRGVzdHJveSwgVGVtcGxhdGVSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmlld3BvcnRTZXJ2aWNlLCBjcmVhdGVEZXN0cm95LCBlcXVhbCB9IGZyb20gJ0BldGhsZXRlL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZGVmZXIsIG1hcCwgb2YsIHBhaXJ3aXNlLCBzdGFydFdpdGgsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPdmVybGF5Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBPVkVSTEFZX0NPTkZJRywgT1ZFUkxBWV9EQVRBLCBPVkVSTEFZX0RFRkFVTFRfT1BUSU9OUywgT1ZFUkxBWV9TQ1JPTExfU1RSQVRFR1kgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgT3ZlcmxheUNvbmZpZyB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7XG4gIEVUX09WRVJMQVlfQk9UVE9NX1NIRUVUX0NMQVNTLFxuICBFVF9PVkVSTEFZX0xFRlRfU0hFRVRfQ0xBU1MsXG4gIEVUX09WRVJMQVlfUklHSFRfU0hFRVRfQ0xBU1MsXG4gIEVUX09WRVJMQVlfVE9QX1NIRUVUX0NMQVNTLFxuICBPdmVybGF5UG9zaXRpb25CdWlsZGVyLFxuICBPdmVybGF5UmVmLFxuICBjcmVhdGVPdmVybGF5Q29uZmlnLFxufSBmcm9tICcuLi91dGlscyc7XG5cbmxldCB1bmlxdWVJZCA9IDA7XG5jb25zdCBJRF9QUkVGSVggPSAnZXQtb3ZlcmxheS0nO1xuXG5jb25zdCBzZXRTdHlsZSA9IChlbDogSFRNTEVsZW1lbnQsIHN0eWxlOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkKSA9PiB7XG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZWwuc3R5bGUucmVtb3ZlUHJvcGVydHkoc3R5bGUpO1xuICB9IGVsc2Uge1xuICAgIGVsLnN0eWxlLnNldFByb3BlcnR5KHN0eWxlLCBjb2VyY2VDc3NQaXhlbFZhbHVlKHZhbHVlKSk7XG4gIH1cbn07XG5cbmNvbnN0IHNldENsYXNzID0gKGVsOiBIVE1MRWxlbWVudCwgcHJldkNsYXNzPzogc3RyaW5nIHwgc3RyaW5nW10sIGN1cnJDbGFzcz86IHN0cmluZyB8IHN0cmluZ1tdKSA9PiB7XG4gIGlmICghZXF1YWwocHJldkNsYXNzLCBjdXJyQ2xhc3MpKSB7XG4gICAgaWYgKHByZXZDbGFzcykge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkocHJldkNsYXNzKSkge1xuICAgICAgICBlbC5jbGFzc0xpc3QucmVtb3ZlKC4uLnByZXZDbGFzcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbC5jbGFzc0xpc3QucmVtb3ZlKHByZXZDbGFzcyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGN1cnJDbGFzcykge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY3VyckNsYXNzKSkge1xuICAgICAgICBlbC5jbGFzc0xpc3QuYWRkKC4uLmN1cnJDbGFzcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbC5jbGFzc0xpc3QuYWRkKGN1cnJDbGFzcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuXG5jb25zdCBpc0h0bWxFbGVtZW50ID0gKGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgdW5rbm93bik6IGVsZW1lbnQgaXMgSFRNTEVsZW1lbnQgPT4ge1xuICByZXR1cm4gZWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50O1xufTtcblxuY29uc3QgaXNUb3VjaEV2ZW50ID0gKGV2ZW50OiBFdmVudCk6IGV2ZW50IGlzIFRvdWNoRXZlbnQgPT4ge1xuICByZXR1cm4gZXZlbnQudHlwZVswXSA9PT0gJ3QnO1xufTtcblxuY29uc3QgaXNQb2ludGVyRXZlbnQgPSAoZXZlbnQ6IEV2ZW50KTogZXZlbnQgaXMgUG9pbnRlckV2ZW50ID0+IHtcbiAgcmV0dXJuIGV2ZW50LnR5cGVbMF0gPT09ICdjJztcbn07XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPdmVybGF5U2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kkID0gY3JlYXRlRGVzdHJveSgpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZWZhdWx0T3B0aW9ucyA9IGluamVjdChPVkVSTEFZX0RFRkFVTFRfT1BUSU9OUywgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc2Nyb2xsU3RyYXRlZ3kgPSBpbmplY3QoT1ZFUkxBWV9TQ1JPTExfU1RSQVRFR1kpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9wYXJlbnRPdmVybGF5U2VydmljZSA9IGluamVjdChPdmVybGF5U2VydmljZSwgeyBvcHRpb25hbDogdHJ1ZSwgc2tpcFNlbGY6IHRydWUgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RpYWxvZyA9IGluamVjdChDZGtEaWFsb2cpO1xuICBwcml2YXRlIHJlYWRvbmx5IF92aWV3cG9ydFNlcnZpY2UgPSBpbmplY3QoVmlld3BvcnRTZXJ2aWNlKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9vcGVuT3ZlcmxheXNBdFRoaXNMZXZlbDogT3ZlcmxheVJlZltdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FmdGVyQWxsQ2xvc2VkQXRUaGlzTGV2ZWwgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9hZnRlck9wZW5lZEF0VGhpc0xldmVsID0gbmV3IFN1YmplY3Q8T3ZlcmxheVJlZj4oKTtcblxuICByZWFkb25seSBwb3NpdGlvbnMgPSBuZXcgT3ZlcmxheVBvc2l0aW9uQnVpbGRlcigpO1xuXG4gIHJlYWRvbmx5IGFmdGVyQWxsQ2xvc2VkID0gZGVmZXIoKCkgPT5cbiAgICB0aGlzLm9wZW5PdmVybGF5cy5sZW5ndGggPyB0aGlzLl9nZXRBZnRlckFsbENsb3NlZCgpIDogdGhpcy5fZ2V0QWZ0ZXJBbGxDbG9zZWQoKS5waXBlKHN0YXJ0V2l0aCh1bmRlZmluZWQpKSxcbiAgKSBhcyBPYnNlcnZhYmxlPHZvaWQ+O1xuXG4gIGdldCBvcGVuT3ZlcmxheXMoKTogT3ZlcmxheVJlZltdIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyZW50T3ZlcmxheVNlcnZpY2UgPyB0aGlzLl9wYXJlbnRPdmVybGF5U2VydmljZS5vcGVuT3ZlcmxheXMgOiB0aGlzLl9vcGVuT3ZlcmxheXNBdFRoaXNMZXZlbDtcbiAgfVxuXG4gIGdldCBhZnRlck9wZW5lZCgpOiBTdWJqZWN0PE92ZXJsYXlSZWY+IHtcbiAgICByZXR1cm4gdGhpcy5fcGFyZW50T3ZlcmxheVNlcnZpY2UgPyB0aGlzLl9wYXJlbnRPdmVybGF5U2VydmljZS5hZnRlck9wZW5lZCA6IHRoaXMuX2FmdGVyT3BlbmVkQXRUaGlzTGV2ZWw7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9jbG9zZU92ZXJsYXlzKHRoaXMuX29wZW5PdmVybGF5c0F0VGhpc0xldmVsKTtcbiAgICB0aGlzLl9hZnRlckFsbENsb3NlZEF0VGhpc0xldmVsLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fYWZ0ZXJPcGVuZWRBdFRoaXNMZXZlbC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgb3BlbjxULCBEID0gdW5rbm93biwgUiA9IHVua25vd24+KGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTxUPiwgY29uZmlnOiBPdmVybGF5Q29uZmlnPEQ+KTogT3ZlcmxheVJlZjxULCBSPjtcbiAgb3BlbjxULCBEID0gdW5rbm93biwgUiA9IHVua25vd24+KHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxUPiwgY29uZmlnOiBPdmVybGF5Q29uZmlnPEQ+KTogT3ZlcmxheVJlZjxULCBSPjtcbiAgb3BlbjxULCBEID0gdW5rbm93biwgUiA9IHVua25vd24+KFxuICAgIHRlbXBsYXRlOiBDb21wb25lbnRUeXBlPFQ+IHwgVGVtcGxhdGVSZWY8VD4sXG4gICAgY29uZmlnOiBPdmVybGF5Q29uZmlnPEQ+LFxuICApOiBPdmVybGF5UmVmPFQsIFI+O1xuICBvcGVuPFQsIEQgPSB1bmtub3duLCBSID0gdW5rbm93bj4oXG4gICAgY29tcG9uZW50T3JUZW1wbGF0ZVJlZjogQ29tcG9uZW50VHlwZTxUPiB8IFRlbXBsYXRlUmVmPFQ+LFxuICAgIGNvbmZpZzogT3ZlcmxheUNvbmZpZzxEPixcbiAgKTogT3ZlcmxheVJlZjxULCBSPiB7XG4gICAgbGV0IG92ZXJsYXlSZWY6IE92ZXJsYXlSZWY8VCwgUj47XG5cbiAgICBjb25zdCBjb21wb3NlZENvbmZpZyA9IGNyZWF0ZU92ZXJsYXlDb25maWc8RD4odGhpcy5fZGVmYXVsdE9wdGlvbnMgYXMgT3ZlcmxheUNvbmZpZzxEPiwgY29uZmlnKTtcbiAgICBjb21wb3NlZENvbmZpZy5pZCA9IGNvbXBvc2VkQ29uZmlnLmlkIHx8IGAke0lEX1BSRUZJWH0ke3VuaXF1ZUlkKyt9YDtcbiAgICBjb21wb3NlZENvbmZpZy5zY3JvbGxTdHJhdGVneSA9IGNvbXBvc2VkQ29uZmlnLnNjcm9sbFN0cmF0ZWd5IHx8IHRoaXMuX3Njcm9sbFN0cmF0ZWd5KCk7XG5cbiAgICBjb25zdCBjZGtSZWYgPSB0aGlzLl9kaWFsb2cub3BlbjxSLCBELCBUPihjb21wb25lbnRPclRlbXBsYXRlUmVmLCB7XG4gICAgICAuLi5jb21wb3NlZENvbmZpZyxcbiAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcbiAgICAgIGNsb3NlT25EZXN0cm95OiBmYWxzZSxcbiAgICAgIHBhbmVsQ2xhc3M6ICdldC1vdmVybGF5LXBhbmUnLFxuICAgICAgY29udGFpbmVyOiB7XG4gICAgICAgIHR5cGU6IE92ZXJsYXlDb250YWluZXJDb21wb25lbnQsXG4gICAgICAgIHByb3ZpZGVyczogKCkgPT4gW1xuICAgICAgICAgIHsgcHJvdmlkZTogT1ZFUkxBWV9DT05GSUcsIHVzZVZhbHVlOiBjb21wb3NlZENvbmZpZyB9LFxuICAgICAgICAgIHsgcHJvdmlkZTogQ2RrRGlhbG9nQ29uZmlnLCB1c2VWYWx1ZTogY29tcG9zZWRDb25maWcgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICB0ZW1wbGF0ZUNvbnRleHQ6ICgpID0+ICh7IGRpYWxvZ1JlZjogb3ZlcmxheVJlZiB9KSxcbiAgICAgIHByb3ZpZGVyczogKHJlZiwgY2RrQ29uZmlnLCBvdmVybGF5Q29udGFpbmVyKSA9PiB7XG4gICAgICAgIG92ZXJsYXlSZWYgPSBuZXcgT3ZlcmxheVJlZihyZWYsIGNvbXBvc2VkQ29uZmlnLCBvdmVybGF5Q29udGFpbmVyIGFzIE92ZXJsYXlDb250YWluZXJDb21wb25lbnQpO1xuXG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgeyBwcm92aWRlOiBPdmVybGF5Q29udGFpbmVyQ29tcG9uZW50LCB1c2VWYWx1ZTogb3ZlcmxheUNvbnRhaW5lciB9LFxuICAgICAgICAgIHsgcHJvdmlkZTogT1ZFUkxBWV9EQVRBLCB1c2VWYWx1ZTogY2RrQ29uZmlnLmRhdGEgfSxcbiAgICAgICAgICB7IHByb3ZpZGU6IE92ZXJsYXlSZWYsIHVzZVZhbHVlOiBvdmVybGF5UmVmIH0sXG4gICAgICAgICAgLi4uKGNvbXBvc2VkQ29uZmlnLnByb3ZpZGVycyA/PyBbXSksXG4gICAgICAgIF07XG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvbiovXG4gICAgKG92ZXJsYXlSZWYhIGFzIHsgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8VD4gfSkuY29tcG9uZW50UmVmID0gY2RrUmVmLmNvbXBvbmVudFJlZiE7XG4gICAgb3ZlcmxheVJlZiEuY29tcG9uZW50SW5zdGFuY2UgPSBjZGtSZWYuY29tcG9uZW50SW5zdGFuY2UhO1xuXG4gICAgKGNka1JlZi5jb250YWluZXJJbnN0YW5jZSBhcyBPdmVybGF5Q29udGFpbmVyQ29tcG9uZW50KS5vdmVybGF5UmVmID0gb3ZlcmxheVJlZiE7XG5cbiAgICBjb25zdCBjb250YWluZXJFbCA9IG92ZXJsYXlSZWYhLl9jb250YWluZXJJbnN0YW5jZS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc3Qgb3ZlcmxheVBhbmVFbCA9IGNka1JlZi5vdmVybGF5UmVmLm92ZXJsYXlFbGVtZW50O1xuICAgIGNvbnN0IGJhY2tkcm9wRWwgPSBjZGtSZWYub3ZlcmxheVJlZi5iYWNrZHJvcEVsZW1lbnQ7XG4gICAgY29uc3Qgb3ZlcmxheVdyYXBwZXIgPSBjZGtSZWYub3ZlcmxheVJlZi5ob3N0RWxlbWVudDtcbiAgICBjb25zdCBkZWZhdWx0QW5pbWF0aW9uQnVmZmVyID0gNTA7IC8vIDUwcHggc2luY2UgdGhlIGRlZmF1bHQgYW5pbWF0aW9uIHVzZXMgc3ByaW5nIHBoeXNpY3MgYW5kIHRodXMgd2lsbCBvdmVyc2hvb3QuXG4gICAgY29uc3QgdXNlRGVmYXVsdEFuaW1hdGlvbiA9IGNvbXBvc2VkQ29uZmlnLmN1c3RvbUFuaW1hdGVkICE9PSB0cnVlO1xuICAgIGNvbnN0IG9yaWdpbiA9IGNvbXBvc2VkQ29uZmlnLm9yaWdpbjtcblxuICAgIGNvbWJpbmVMYXRlc3QoXG4gICAgICBjb21wb3NlZENvbmZpZy5wb3NpdGlvbnMubWFwKChicmVha3BvaW50KSA9PlxuICAgICAgICAoYnJlYWtwb2ludC5icmVha3BvaW50ID8gdGhpcy5fdmlld3BvcnRTZXJ2aWNlLm9ic2VydmUoeyBtaW46IGJyZWFrcG9pbnQuYnJlYWtwb2ludCB9KSA6IG9mKHRydWUpKS5waXBlKFxuICAgICAgICAgIG1hcCgoaXNBY3RpdmUpID0+ICh7XG4gICAgICAgICAgICBpc0FjdGl2ZSxcbiAgICAgICAgICAgIGNvbmZpZzogYnJlYWtwb2ludC5jb25maWcsXG4gICAgICAgICAgICBzaXplOlxuICAgICAgICAgICAgICB0eXBlb2YgYnJlYWtwb2ludC5icmVha3BvaW50ID09PSAnbnVtYmVyJ1xuICAgICAgICAgICAgICAgID8gYnJlYWtwb2ludC5icmVha3BvaW50XG4gICAgICAgICAgICAgICAgOiBicmVha3BvaW50LmJyZWFrcG9pbnQgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgID8gMFxuICAgICAgICAgICAgICAgIDogdGhpcy5fdmlld3BvcnRTZXJ2aWNlLmdldEJyZWFrcG9pbnRTaXplKGJyZWFrcG9pbnQuYnJlYWtwb2ludCwgJ21pbicpLFxuICAgICAgICAgIH0pKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbChvdmVybGF5UmVmIS5hZnRlckNsb3NlZCgpKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgbWFwKChlbnRyaWVzKSA9PiB7XG4gICAgICAgICAgY29uc3QgYWN0aXZlQnJlYWtwb2ludHMgPSBlbnRyaWVzLmZpbHRlcigoZW50cnkpID0+IGVudHJ5LmlzQWN0aXZlKTtcbiAgICAgICAgICBjb25zdCBoaWdoZXN0QnJlYWtwb2ludCA9IGFjdGl2ZUJyZWFrcG9pbnRzLnJlZHVjZSgocHJldiwgY3VycikgPT4gKHByZXYuc2l6ZSA+IGN1cnIuc2l6ZSA/IHByZXYgOiBjdXJyKSk7XG5cbiAgICAgICAgICByZXR1cm4gaGlnaGVzdEJyZWFrcG9pbnQuY29uZmlnO1xuICAgICAgICB9KSxcbiAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgICBwYWlyd2lzZSgpLFxuICAgICAgICB0YXAoKFtwcmV2Q29uZmlnLCBjdXJyQ29uZmlnXSkgPT4ge1xuICAgICAgICAgIGlmICghY3VyckNvbmZpZykgcmV0dXJuO1xuXG4gICAgICAgICAgY29uc3QgY29udGFpbmVyQ2xhc3MgPSBjdXJyQ29uZmlnLmNvbnRhaW5lckNsYXNzO1xuXG4gICAgICAgICAgY29uc3QgYXBwbHlEZWZhdWx0TWF4V2lkdGhzID0gKCkgPT4ge1xuICAgICAgICAgICAgc2V0U3R5bGUob3ZlcmxheVBhbmVFbCwgJ21heC13aWR0aCcsIGN1cnJDb25maWcubWF4V2lkdGgpO1xuICAgICAgICAgICAgc2V0U3R5bGUob3ZlcmxheVBhbmVFbCwgJ21heC1oZWlnaHQnLCBjdXJyQ29uZmlnLm1heEhlaWdodCk7XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGNvbnN0IGNvbWJpbmVPck1ha2VDYWxjID0gKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLCBhcHBlbmQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgaWYgKCF2YWx1ZSkgcmV0dXJuIGFwcGVuZDtcblxuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGBjYWxjKCR7dmFsdWV9cHggKyAke2FwcGVuZH0pYDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUuc3RhcnRzV2l0aCgnY2FsYygnKSkge1xuICAgICAgICAgICAgICByZXR1cm4gYCR7dmFsdWUuc2xpY2UoMCwgdmFsdWUubGVuZ3RoIC0gMSl9ICsgJHthcHBlbmR9KWA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBgY2FsYygke3ZhbHVlfSArICR7YXBwZW5kfSlgO1xuICAgICAgICAgIH07XG5cbiAgICAgICAgICBpZiAob3JpZ2luKSB7XG4gICAgICAgICAgICAvLyBUT0RPOiBJZiBnZXRCb3VuZGluZ0NsaWVudFJlY3QgaXMgdXNlZCBpdCBzaG91bGQgdXNlIHRoZSBjZW50ZXIgb2YgdGhlIGVsZW1lbnQuXG4gICAgICAgICAgICBjb25zdCBvcmlnaW5YID0gaXNIdG1sRWxlbWVudChvcmlnaW4pXG4gICAgICAgICAgICAgID8gb3JpZ2luLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnRcbiAgICAgICAgICAgICAgOiBpc1RvdWNoRXZlbnQob3JpZ2luKVxuICAgICAgICAgICAgICA/IG9yaWdpbi5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRYXG4gICAgICAgICAgICAgIDogaXNQb2ludGVyRXZlbnQob3JpZ2luKVxuICAgICAgICAgICAgICA/IG9yaWdpbi5jbGllbnRYICE9PSAwXG4gICAgICAgICAgICAgICAgPyBvcmlnaW4uY2xpZW50WFxuICAgICAgICAgICAgICAgIDogKG9yaWdpbi50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnRcbiAgICAgICAgICAgICAgOiAtMTtcbiAgICAgICAgICAgIGNvbnN0IG9yaWdpblkgPSBpc0h0bWxFbGVtZW50KG9yaWdpbilcbiAgICAgICAgICAgICAgPyBvcmlnaW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wXG4gICAgICAgICAgICAgIDogaXNUb3VjaEV2ZW50KG9yaWdpbilcbiAgICAgICAgICAgICAgPyBvcmlnaW4uY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WVxuICAgICAgICAgICAgICA6IGlzUG9pbnRlckV2ZW50KG9yaWdpbilcbiAgICAgICAgICAgICAgPyBvcmlnaW4uY2xpZW50WSAhPT0gMFxuICAgICAgICAgICAgICAgID8gb3JpZ2luLmNsaWVudFlcbiAgICAgICAgICAgICAgICA6IChvcmlnaW4udGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3BcbiAgICAgICAgICAgICAgOiAtMTtcblxuICAgICAgICAgICAgaWYgKG9yaWdpblggIT09IC0xICYmIG9yaWdpblkgIT09IC0xICYmIGN1cnJDb25maWcuYXBwbHlUcmFuc2Zvcm1PcmlnaW4pIHtcbiAgICAgICAgICAgICAgc2V0U3R5bGUoY29udGFpbmVyRWwsICd0cmFuc2Zvcm0tb3JpZ2luJywgYCR7b3JpZ2luWH1weCAke29yaWdpbll9cHhgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHNldFN0eWxlKGNvbnRhaW5lckVsLCAndHJhbnNmb3JtLW9yaWdpbicsIG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh1c2VEZWZhdWx0QW5pbWF0aW9uICYmIGNvbnRhaW5lckNsYXNzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgY29udGFpbmVyQ2xhc3M/LmluY2x1ZGVzKEVUX09WRVJMQVlfTEVGVF9TSEVFVF9DTEFTUykgfHxcbiAgICAgICAgICAgICAgY29udGFpbmVyQ2xhc3M/LmluY2x1ZGVzKEVUX09WRVJMQVlfUklHSFRfU0hFRVRfQ0xBU1MpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgc2V0U3R5bGUoXG4gICAgICAgICAgICAgICAgb3ZlcmxheVBhbmVFbCxcbiAgICAgICAgICAgICAgICAnbWF4LXdpZHRoJyxcbiAgICAgICAgICAgICAgICBjb21iaW5lT3JNYWtlQ2FsYyhjdXJyQ29uZmlnLm1heFdpZHRoLCBgJHtkZWZhdWx0QW5pbWF0aW9uQnVmZmVyfXB4YCksXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHNldFN0eWxlKG92ZXJsYXlQYW5lRWwsICdtYXgtaGVpZ2h0JywgY3VyckNvbmZpZy5tYXhIZWlnaHQpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgY29udGFpbmVyQ2xhc3M/LmluY2x1ZGVzKEVUX09WRVJMQVlfVE9QX1NIRUVUX0NMQVNTKSB8fFxuICAgICAgICAgICAgICBjb250YWluZXJDbGFzcz8uaW5jbHVkZXMoRVRfT1ZFUkxBWV9CT1RUT01fU0hFRVRfQ0xBU1MpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgc2V0U3R5bGUoXG4gICAgICAgICAgICAgICAgb3ZlcmxheVBhbmVFbCxcbiAgICAgICAgICAgICAgICAnbWF4LWhlaWdodCcsXG4gICAgICAgICAgICAgICAgY29tYmluZU9yTWFrZUNhbGMoY3VyckNvbmZpZy5tYXhIZWlnaHQsIGAke2RlZmF1bHRBbmltYXRpb25CdWZmZXJ9cHhgKSxcbiAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICBzZXRTdHlsZShvdmVybGF5UGFuZUVsLCAnbWF4LXdpZHRoJywgY3VyckNvbmZpZy5tYXhXaWR0aCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBhcHBseURlZmF1bHRNYXhXaWR0aHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYXBwbHlEZWZhdWx0TWF4V2lkdGhzKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc2V0U3R5bGUob3ZlcmxheVBhbmVFbCwgJ21pbi13aWR0aCcsIGN1cnJDb25maWcubWluV2lkdGgpO1xuICAgICAgICAgIHNldFN0eWxlKG92ZXJsYXlQYW5lRWwsICdtaW4taGVpZ2h0JywgY3VyckNvbmZpZy5taW5IZWlnaHQpO1xuXG4gICAgICAgICAgc2V0U3R5bGUob3ZlcmxheVBhbmVFbCwgJ3dpZHRoJywgY3VyckNvbmZpZy53aWR0aCk7XG4gICAgICAgICAgc2V0U3R5bGUob3ZlcmxheVBhbmVFbCwgJ2hlaWdodCcsIGN1cnJDb25maWcuaGVpZ2h0KTtcblxuICAgICAgICAgIHNldENsYXNzKGNvbnRhaW5lckVsLCBwcmV2Q29uZmlnPy5jb250YWluZXJDbGFzcywgY3VyckNvbmZpZz8uY29udGFpbmVyQ2xhc3MpO1xuICAgICAgICAgIHNldENsYXNzKG92ZXJsYXlQYW5lRWwsIHByZXZDb25maWc/LnBhbmVDbGFzcywgY3VyckNvbmZpZz8ucGFuZUNsYXNzKTtcbiAgICAgICAgICBzZXRDbGFzcyhvdmVybGF5V3JhcHBlciwgcHJldkNvbmZpZz8ub3ZlcmxheUNsYXNzLCBjdXJyQ29uZmlnPy5vdmVybGF5Q2xhc3MpO1xuXG4gICAgICAgICAgLy8gRklYTUU6IFRoZXNlIGNsYXNzZXMgc2hvdWxkIG9ubHkgYmUgcmVtb3ZlZCBpZiBubyBvcGVuIG92ZXJsYXlzIHJlcXVpcmUgdGhlbSBpbnNpZGUgdGhlaXIgY29uZmlnLlxuICAgICAgICAgIHNldENsYXNzKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgcHJldkNvbmZpZz8uZG9jdW1lbnRDbGFzcywgY3VyckNvbmZpZz8uZG9jdW1lbnRDbGFzcyk7XG4gICAgICAgICAgc2V0Q2xhc3MoZG9jdW1lbnQuYm9keSwgcHJldkNvbmZpZz8uYm9keUNsYXNzLCBjdXJyQ29uZmlnPy5ib2R5Q2xhc3MpO1xuXG4gICAgICAgICAgaWYgKGJhY2tkcm9wRWwpIHtcbiAgICAgICAgICAgIHNldENsYXNzKGJhY2tkcm9wRWwsIHByZXZDb25maWc/LmJhY2tkcm9wQ2xhc3MsIGN1cnJDb25maWc/LmJhY2tkcm9wQ2xhc3MpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICghZXF1YWwocHJldkNvbmZpZz8ucG9zaXRpb24sIGN1cnJDb25maWc/LnBvc2l0aW9uKSkge1xuICAgICAgICAgICAgb3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvbihjdXJyQ29uZmlnLnBvc2l0aW9uKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoY3VyckNvbmZpZy5wb3NpdGlvblN0cmF0ZWd5KSB7XG4gICAgICAgICAgICBjZGtSZWYub3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvblN0cmF0ZWd5KGN1cnJDb25maWcucG9zaXRpb25TdHJhdGVneSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNka1JlZi5vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGN1cnJDb25maWcuZHJhZ1RvRGlzbWlzcykge1xuICAgICAgICAgICAgb3ZlcmxheVJlZi5fY29udGFpbmVySW5zdGFuY2UuX2VuYWJsZURyYWdUb0Rpc21pc3MoY3VyckNvbmZpZy5kcmFnVG9EaXNtaXNzKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb3ZlcmxheVJlZi5fY29udGFpbmVySW5zdGFuY2UuX2Rpc2FibGVEcmFnVG9EaXNtaXNzKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMub3Blbk92ZXJsYXlzLnB1c2gob3ZlcmxheVJlZiEpO1xuICAgIHRoaXMuYWZ0ZXJPcGVuZWQubmV4dChvdmVybGF5UmVmISk7XG5cbiAgICBvdmVybGF5UmVmIS5iZWZvcmVDbG9zZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgLy8gRklYTUU6IFRoZXNlIGNsYXNzZXMgc2hvdWxkIG9ubHkgYmUgcmVtb3ZlZCBpZiBubyBvcGVuIG92ZXJsYXlzIHJlcXVpcmUgdGhlbSBpbnNpZGUgdGhlaXIgY29uZmlnLlxuICAgICAgY29uc3QgZG9jdW1lbnRDbGFzc2VzID0gY29tcG9zZWRDb25maWcucG9zaXRpb25zLm1hcCgocG9zaXRpb24pID0+IHBvc2l0aW9uLmNvbmZpZy5kb2N1bWVudENsYXNzKTtcblxuICAgICAgZm9yIChjb25zdCBrbGFzcyBvZiBkb2N1bWVudENsYXNzZXMpIHtcbiAgICAgICAgaWYgKCFrbGFzcykgY29udGludWU7XG5cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoa2xhc3MpKSB7XG4gICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoLi4ua2xhc3MpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKGtsYXNzKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBib2R5Q2xhc3NlcyA9IGNvbXBvc2VkQ29uZmlnLnBvc2l0aW9ucy5tYXAoKHBvc2l0aW9uKSA9PiBwb3NpdGlvbi5jb25maWcuYm9keUNsYXNzKTtcblxuICAgICAgZm9yIChjb25zdCBrbGFzcyBvZiBib2R5Q2xhc3Nlcykge1xuICAgICAgICBpZiAoIWtsYXNzKSBjb250aW51ZTtcblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShrbGFzcykpIHtcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoLi4ua2xhc3MpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZShrbGFzcyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIG92ZXJsYXlSZWYhLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5vcGVuT3ZlcmxheXMuaW5kZXhPZihvdmVybGF5UmVmKTtcblxuICAgICAgaWYgKGluZGV4ID09PSAtMSkgcmV0dXJuO1xuXG4gICAgICB0aGlzLm9wZW5PdmVybGF5cy5zcGxpY2UoaW5kZXgsIDEpO1xuXG4gICAgICBpZiAoIXRoaXMub3Blbk92ZXJsYXlzLmxlbmd0aCkge1xuICAgICAgICB0aGlzLl9nZXRBZnRlckFsbENsb3NlZCgpLm5leHQoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBvdmVybGF5UmVmITtcblxuICAgIC8qIGVzbGludC1lbmFibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvbiovXG4gIH1cblxuICBjbG9zZUFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLl9jbG9zZU92ZXJsYXlzKHRoaXMub3Blbk92ZXJsYXlzKTtcbiAgfVxuXG4gIGdldE92ZXJsYXlCeUlkKGlkOiBzdHJpbmcpOiBPdmVybGF5UmVmIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5vcGVuT3ZlcmxheXMuZmluZCgob3ZlcmxheSkgPT4gb3ZlcmxheS5pZCA9PT0gaWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xvc2VPdmVybGF5cyhvdmVybGF5czogT3ZlcmxheVJlZltdKSB7XG4gICAgbGV0IGkgPSBvdmVybGF5cy5sZW5ndGg7XG5cbiAgICB3aGlsZSAoaS0tKSB7XG4gICAgICBvdmVybGF5c1tpXS5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2dldEFmdGVyQWxsQ2xvc2VkKCk6IFN1YmplY3Q8dm9pZD4ge1xuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuX3BhcmVudE92ZXJsYXlTZXJ2aWNlO1xuICAgIHJldHVybiBwYXJlbnQgPyBwYXJlbnQuX2dldEFmdGVyQWxsQ2xvc2VkKCkgOiB0aGlzLl9hZnRlckFsbENsb3NlZEF0VGhpc0xldmVsO1xuICB9XG59XG4iXX0=
281
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL292ZXJsYXkvY29tcG9uZW50cy9vdmVybGF5L3NlcnZpY2VzL292ZXJsYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsTUFBTSxJQUFJLFNBQVMsRUFBRSxZQUFZLElBQUksZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFM0YsT0FBTyxFQUFnQixVQUFVLEVBQTBCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFjLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9HLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSx1QkFBdUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5RyxPQUFPLEVBQ0wsNkJBQTZCLEVBQzdCLDJCQUEyQixFQUMzQiw0QkFBNEIsRUFDNUIsMEJBQTBCLEVBQzFCLHNCQUFzQixFQUN0QixVQUFVLEVBQ1YsbUJBQW1CLEdBQ3BCLE1BQU0sVUFBVSxDQUFDOztBQUVsQixJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFDakIsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDO0FBRWhDLE1BQU0sUUFBUSxHQUFHLENBQUMsRUFBZSxFQUFFLEtBQWEs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RUFBRSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVPLGNBQWMsQ0FBQyxRQUFzQjtRQUMzQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBRXhCLE9BQU8sQ0FBQyxFQUFFLEVBQUU7WUFDVixRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztRQUMxQyxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQztJQUNoRixDQUFDOzhHQXhTVSxjQUFjO2tIQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VDc3NQaXhlbFZhbHVlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IERpYWxvZyBhcyBDZGtEaWFsb2csIERpYWxvZ0NvbmZpZyBhcyBDZGtEaWFsb2dDb25maWcgfSBmcm9tICdAYW5ndWxhci9jZGsvZGlhbG9nJztcbmltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWYsIEluamVjdGFibGUsIE9uRGVzdHJveSwgVGVtcGxhdGVSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmlld3BvcnRTZXJ2aWNlLCBjcmVhdGVEZXN0cm95LCBlcXVhbCB9IGZyb20gJ0BldGhsZXRlL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZGVmZXIsIG1hcCwgb2YsIHBhaXJ3aXNlLCBzdGFydFdpdGgsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPdmVybGF5Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBPVkVSTEFZX0NPTkZJRywgT1ZFUkxBWV9EQVRBLCBPVkVSTEFZX0RFRkFVTFRfT1BUSU9OUywgT1ZFUkxBWV9TQ1JPTExfU1RSQVRFR1kgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgT3ZlcmxheUNvbmZpZyB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7XG4gIEVUX09WRVJMQVlfQk9UVE9NX1NIRUVUX0NMQVNTLFxuICBFVF9PVkVSTEFZX0xFRlRfU0hFRVRfQ0xBU1MsXG4gIEVUX09WRVJMQVlfUklHSFRfU0hFRVRfQ0xBU1MsXG4gIEVUX09WRVJMQVlfVE9QX1NIRUVUX0NMQVNTLFxuICBPdmVybGF5UG9zaXRpb25CdWlsZGVyLFxuICBPdmVybGF5UmVmLFxuICBjcmVhdGVPdmVybGF5Q29uZmlnLFxufSBmcm9tICcuLi91dGlscyc7XG5cbmxldCB1bmlxdWVJZCA9IDA7XG5jb25zdCBJRF9QUkVGSVggPSAnZXQtb3ZlcmxheS0nO1xuXG5jb25zdCBzZXRTdHlsZSA9IChlbDogSFRNTEVsZW1lbnQsIHN0eWxlOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkKSA9PiB7XG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZWwuc3R5bGUucmVtb3ZlUHJvcGVydHkoc3R5bGUpO1xuICB9IGVsc2Uge1xuICAgIGVsLnN0eWxlLnNldFByb3BlcnR5KHN0eWxlLCBjb2VyY2VDc3NQaXhlbFZhbHVlKHZhbHVlKSk7XG4gIH1cbn07XG5cbmNvbnN0IHNldENsYXNzID0gKGVsOiBIVE1MRWxlbWVudCwgcHJldkNsYXNzPzogc3RyaW5nIHwgc3RyaW5nW10sIGN1cnJDbGFzcz86IHN0cmluZyB8IHN0cmluZ1tdKSA9PiB7XG4gIGlmICghZXF1YWwocHJldkNsYXNzLCBjdXJyQ2xhc3MpKSB7XG4gICAgaWYgKHByZXZDbGFzcykge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkocHJldkNsYXNzKSkge1xuICAgICAgICBlbC5jbGFzc0xpc3QucmVtb3ZlKC4uLnByZXZDbGFzcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbC5jbGFzc0xpc3QucmVtb3ZlKHByZXZDbGFzcyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGN1cnJDbGFzcykge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY3VyckNsYXNzKSkge1xuICAgICAgICBlbC5jbGFzc0xpc3QuYWRkKC4uLmN1cnJDbGFzcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbC5jbGFzc0xpc3QuYWRkKGN1cnJDbGFzcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuXG5jb25zdCBpc0h0bWxFbGVtZW50ID0gKGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgdW5rbm93bik6IGVsZW1lbnQgaXMgSFRNTEVsZW1lbnQgPT4ge1xuICByZXR1cm4gZWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50O1xufTtcblxuY29uc3QgaXNUb3VjaEV2ZW50ID0gKGV2ZW50OiBFdmVudCk6IGV2ZW50IGlzIFRvdWNoRXZlbnQgPT4ge1xuICByZXR1cm4gZXZlbnQudHlwZVswXSA9PT0gJ3QnO1xufTtcblxuY29uc3QgaXNQb2ludGVyRXZlbnQgPSAoZXZlbnQ6IEV2ZW50KTogZXZlbnQgaXMgUG9pbnRlckV2ZW50ID0+IHtcbiAgcmV0dXJuIGV2ZW50LnR5cGVbMF0gPT09ICdjJztcbn07XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPdmVybGF5U2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kkID0gY3JlYXRlRGVzdHJveSgpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZWZhdWx0T3B0aW9ucyA9IGluamVjdChPVkVSTEFZX0RFRkFVTFRfT1BUSU9OUywgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc2Nyb2xsU3RyYXRlZ3kgPSBpbmplY3QoT1ZFUkxBWV9TQ1JPTExfU1RSQVRFR1kpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9wYXJlbnRPdmVybGF5U2VydmljZSA9IGluamVjdChPdmVybGF5U2VydmljZSwgeyBvcHRpb25hbDogdHJ1ZSwgc2tpcFNlbGY6IHRydWUgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RpYWxvZyA9IGluamVjdChDZGtEaWFsb2cpO1xuICBwcml2YXRlIHJlYWRvbmx5IF92aWV3cG9ydFNlcnZpY2UgPSBpbmplY3QoVmlld3BvcnRTZXJ2aWNlKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9vcGVuT3ZlcmxheXNBdFRoaXNMZXZlbDogT3ZlcmxheVJlZltdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FmdGVyQWxsQ2xvc2VkQXRUaGlzTGV2ZWwgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9hZnRlck9wZW5lZEF0VGhpc0xldmVsID0gbmV3IFN1YmplY3Q8T3ZlcmxheVJlZj4oKTtcblxuICByZWFkb25seSBwb3NpdGlvbnMgPSBuZXcgT3ZlcmxheVBvc2l0aW9uQnVpbGRlcigpO1xuXG4gIHJlYWRvbmx5IGFmdGVyQWxsQ2xvc2VkID0gZGVmZXIoKCkgPT5cbiAgICB0aGlzLm9wZW5PdmVybGF5cy5sZW5ndGggPyB0aGlzLl9nZXRBZnRlckFsbENsb3NlZCgpIDogdGhpcy5fZ2V0QWZ0ZXJBbGxDbG9zZWQoKS5waXBlKHN0YXJ0V2l0aCh1bmRlZmluZWQpKSxcbiAgKSBhcyBPYnNlcnZhYmxlPHZvaWQ+O1xuXG4gIGdldCBvcGVuT3ZlcmxheXMoKTogT3ZlcmxheVJlZltdIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyZW50T3ZlcmxheVNlcnZpY2UgPyB0aGlzLl9wYXJlbnRPdmVybGF5U2VydmljZS5vcGVuT3ZlcmxheXMgOiB0aGlzLl9vcGVuT3ZlcmxheXNBdFRoaXNMZXZlbDtcbiAgfVxuXG4gIGdldCBhZnRlck9wZW5lZCgpOiBTdWJqZWN0PE92ZXJsYXlSZWY+IHtcbiAgICByZXR1cm4gdGhpcy5fcGFyZW50T3ZlcmxheVNlcnZpY2UgPyB0aGlzLl9wYXJlbnRPdmVybGF5U2VydmljZS5hZnRlck9wZW5lZCA6IHRoaXMuX2FmdGVyT3BlbmVkQXRUaGlzTGV2ZWw7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9jbG9zZU92ZXJsYXlzKHRoaXMuX29wZW5PdmVybGF5c0F0VGhpc0xldmVsKTtcbiAgICB0aGlzLl9hZnRlckFsbENsb3NlZEF0VGhpc0xldmVsLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fYWZ0ZXJPcGVuZWRBdFRoaXNMZXZlbC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgb3BlbjxULCBEID0gdW5rbm93biwgUiA9IHVua25vd24+KGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTxUPiwgY29uZmlnOiBPdmVybGF5Q29uZmlnPEQ+KTogT3ZlcmxheVJlZjxULCBSPjtcbiAgb3BlbjxULCBEID0gdW5rbm93biwgUiA9IHVua25vd24+KHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxUPiwgY29uZmlnOiBPdmVybGF5Q29uZmlnPEQ+KTogT3ZlcmxheVJlZjxULCBSPjtcbiAgb3BlbjxULCBEID0gdW5rbm93biwgUiA9IHVua25vd24+KFxuICAgIHRlbXBsYXRlOiBDb21wb25lbnRUeXBlPFQ+IHwgVGVtcGxhdGVSZWY8VD4sXG4gICAgY29uZmlnOiBPdmVybGF5Q29uZmlnPEQ+LFxuICApOiBPdmVybGF5UmVmPFQsIFI+O1xuICBvcGVuPFQsIEQgPSB1bmtub3duLCBSID0gdW5rbm93bj4oXG4gICAgY29tcG9uZW50T3JUZW1wbGF0ZVJlZjogQ29tcG9uZW50VHlwZTxUPiB8IFRlbXBsYXRlUmVmPFQ+LFxuICAgIGNvbmZpZzogT3ZlcmxheUNvbmZpZzxEPixcbiAgKTogT3ZlcmxheVJlZjxULCBSPiB7XG4gICAgbGV0IG92ZXJsYXlSZWY6IE92ZXJsYXlSZWY8VCwgUj47XG5cbiAgICBjb25zdCBjb21wb3NlZENvbmZpZyA9IGNyZWF0ZU92ZXJsYXlDb25maWc8RD4odGhpcy5fZGVmYXVsdE9wdGlvbnMgYXMgT3ZlcmxheUNvbmZpZzxEPiwgY29uZmlnKTtcbiAgICBjb21wb3NlZENvbmZpZy5pZCA9IGNvbXBvc2VkQ29uZmlnLmlkIHx8IGAke0lEX1BSRUZJWH0ke3VuaXF1ZUlkKyt9YDtcbiAgICBjb21wb3NlZENvbmZpZy5zY3JvbGxTdHJhdGVneSA9IGNvbXBvc2VkQ29uZmlnLnNjcm9sbFN0cmF0ZWd5IHx8IHRoaXMuX3Njcm9sbFN0cmF0ZWd5KCk7XG5cbiAgICBjb25zdCBjZGtSZWYgPSB0aGlzLl9kaWFsb2cub3BlbjxSLCBELCBUPihjb21wb25lbnRPclRlbXBsYXRlUmVmLCB7XG4gICAgICAuLi5jb21wb3NlZENvbmZpZyxcbiAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcbiAgICAgIGNsb3NlT25EZXN0cm95OiBmYWxzZSxcbiAgICAgIHBhbmVsQ2xhc3M6ICdldC1vdmVybGF5LXBhbmUnLFxuICAgICAgY29udGFpbmVyOiB7XG4gICAgICAgIHR5cGU6IE92ZXJsYXlDb250YWluZXJDb21wb25lbnQsXG4gICAgICAgIHByb3ZpZGVyczogKCkgPT4gW1xuICAgICAgICAgIHsgcHJvdmlkZTogT1ZFUkxBWV9DT05GSUcsIHVzZVZhbHVlOiBjb21wb3NlZENvbmZpZyB9LFxuICAgICAgICAgIHsgcHJvdmlkZTogQ2RrRGlhbG9nQ29uZmlnLCB1c2VWYWx1ZTogY29tcG9zZWRDb25maWcgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICB0ZW1wbGF0ZUNvbnRleHQ6ICgpID0+ICh7IGRpYWxvZ1JlZjogb3ZlcmxheVJlZiB9KSxcbiAgICAgIHByb3ZpZGVyczogKHJlZiwgY2RrQ29uZmlnLCBvdmVybGF5Q29udGFpbmVyKSA9PiB7XG4gICAgICAgIG92ZXJsYXlSZWYgPSBuZXcgT3ZlcmxheVJlZihyZWYsIGNvbXBvc2VkQ29uZmlnLCBvdmVybGF5Q29udGFpbmVyIGFzIE92ZXJsYXlDb250YWluZXJDb21wb25lbnQpO1xuXG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgeyBwcm92aWRlOiBPdmVybGF5Q29udGFpbmVyQ29tcG9uZW50LCB1c2VWYWx1ZTogb3ZlcmxheUNvbnRhaW5lciB9LFxuICAgICAgICAgIHsgcHJvdmlkZTogT1ZFUkxBWV9EQVRBLCB1c2VWYWx1ZTogY2RrQ29uZmlnLmRhdGEgfSxcbiAgICAgICAgICB7IHByb3ZpZGU6IE92ZXJsYXlSZWYsIHVzZVZhbHVlOiBvdmVybGF5UmVmIH0sXG4gICAgICAgICAgLi4uKGNvbXBvc2VkQ29uZmlnLnByb3ZpZGVycyA/PyBbXSksXG4gICAgICAgIF07XG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvbiovXG4gICAgKG92ZXJsYXlSZWYhIGFzIHsgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8VD4gfSkuY29tcG9uZW50UmVmID0gY2RrUmVmLmNvbXBvbmVudFJlZiE7XG4gICAgb3ZlcmxheVJlZiEuY29tcG9uZW50SW5zdGFuY2UgPSBjZGtSZWYuY29tcG9uZW50SW5zdGFuY2UhO1xuXG4gICAgKGNka1JlZi5jb250YWluZXJJbnN0YW5jZSBhcyBPdmVybGF5Q29udGFpbmVyQ29tcG9uZW50KS5vdmVybGF5UmVmID0gb3ZlcmxheVJlZiE7XG5cbiAgICBjb25zdCBjb250YWluZXJFbCA9IG92ZXJsYXlSZWYhLl9jb250YWluZXJJbnN0YW5jZS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc3Qgb3ZlcmxheVBhbmVFbCA9IGNka1JlZi5vdmVybGF5UmVmLm92ZXJsYXlFbGVtZW50O1xuICAgIGNvbnN0IGJhY2tkcm9wRWwgPSBjZGtSZWYub3ZlcmxheVJlZi5iYWNrZHJvcEVsZW1lbnQ7XG4gICAgY29uc3Qgb3ZlcmxheVdyYXBwZXIgPSBjZGtSZWYub3ZlcmxheVJlZi5ob3N0RWxlbWVudDtcbiAgICBjb25zdCBkZWZhdWx0QW5pbWF0aW9uQnVmZmVyID0gNTA7IC8vIDUwcHggc2luY2UgdGhlIGRlZmF1bHQgYW5pbWF0aW9uIHVzZXMgc3ByaW5nIHBoeXNpY3MgYW5kIHRodXMgd2lsbCBvdmVyc2hvb3QuXG4gICAgY29uc3QgdXNlRGVmYXVsdEFuaW1hdGlvbiA9IGNvbXBvc2VkQ29uZmlnLmN1c3RvbUFuaW1hdGVkICE9PSB0cnVlO1xuICAgIGNvbnN0IG9yaWdpbiA9IGNvbXBvc2VkQ29uZmlnLm9yaWdpbjtcblxuICAgIGNvbWJpbmVMYXRlc3QoXG4gICAgICBjb21wb3NlZENvbmZpZy5wb3NpdGlvbnMubWFwKChicmVha3BvaW50KSA9PlxuICAgICAgICAoYnJlYWtwb2ludC5icmVha3BvaW50ID8gdGhpcy5fdmlld3BvcnRTZXJ2aWNlLm9ic2VydmUoeyBtaW46IGJyZWFrcG9pbnQuYnJlYWtwb2ludCB9KSA6IG9mKHRydWUpKS5waXBlKFxuICAgICAgICAgIG1hcCgoaXNBY3RpdmUpID0+ICh7XG4gICAgICAgICAgICBpc0FjdGl2ZSxcbiAgICAgICAgICAgIGNvbmZpZzogYnJlYWtwb2ludC5jb25maWcsXG4gICAgICAgICAgICBzaXplOlxuICAgICAgICAgICAgICB0eXBlb2YgYnJlYWtwb2ludC5icmVha3BvaW50ID09PSAnbnVtYmVyJ1xuICAgICAgICAgICAgICAgID8gYnJlYWtwb2ludC5icmVha3BvaW50XG4gICAgICAgICAgICAgICAgOiBicmVha3BvaW50LmJyZWFrcG9pbnQgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgID8gMFxuICAgICAgICAgICAgICAgIDogdGhpcy5fdmlld3BvcnRTZXJ2aWNlLmdldEJyZWFrcG9pbnRTaXplKGJyZWFrcG9pbnQuYnJlYWtwb2ludCwgJ21pbicpLFxuICAgICAgICAgIH0pKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbChvdmVybGF5UmVmIS5hZnRlckNsb3NlZCgpKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgbWFwKChlbnRyaWVzKSA9PiB7XG4gICAgICAgICAgY29uc3QgYWN0aXZlQnJlYWtwb2ludHMgPSBlbnRyaWVzLmZpbHRlcigoZW50cnkpID0+IGVudHJ5LmlzQWN0aXZlKTtcbiAgICAgICAgICBjb25zdCBoaWdoZXN0QnJlYWtwb2ludCA9IGFjdGl2ZUJyZWFrcG9pbnRzLnJlZHVjZSgocHJldiwgY3VycikgPT4gKHByZXYuc2l6ZSA+IGN1cnIuc2l6ZSA/IHByZXYgOiBjdXJyKSk7XG5cbiAgICAgICAgICByZXR1cm4gaGlnaGVzdEJyZWFrcG9pbnQuY29uZmlnO1xuICAgICAgICB9KSxcbiAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgICBwYWlyd2lzZSgpLFxuICAgICAgICB0YXAoKFtwcmV2Q29uZmlnLCBjdXJyQ29uZmlnXSkgPT4ge1xuICAgICAgICAgIGlmICghY3VyckNvbmZpZykgcmV0dXJuO1xuXG4gICAgICAgICAgY29uc3QgY29udGFpbmVyQ2xhc3MgPSBjdXJyQ29uZmlnLmNvbnRhaW5lckNsYXNzO1xuXG4gICAgICAgICAgY29uc3QgYXBwbHlEZWZhdWx0TWF4V2lkdGhzID0gKCkgPT4ge1xuICAgICAgICAgICAgc2V0U3R5bGUob3ZlcmxheVBhbmVFbCwgJ21heC13aWR0aCcsIGN1cnJDb25maWcubWF4V2lkdGgpO1xuICAgICAgICAgICAgc2V0U3R5bGUob3ZlcmxheVBhbmVFbCwgJ21heC1oZWlnaHQnLCBjdXJyQ29uZmlnLm1heEhlaWdodCk7XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGNvbnN0IGNvbWJpbmVPck1ha2VDYWxjID0gKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLCBhcHBlbmQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgaWYgKCF2YWx1ZSkgcmV0dXJuIGFwcGVuZDtcblxuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGBjYWxjKCR7dmFsdWV9cHggKyAke2FwcGVuZH0pYDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUuc3RhcnRzV2l0aCgnY2FsYygnKSkge1xuICAgICAgICAgICAgICByZXR1cm4gYCR7dmFsdWUuc2xpY2UoMCwgdmFsdWUubGVuZ3RoIC0gMSl9ICsgJHthcHBlbmR9KWA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBgY2FsYygke3ZhbHVlfSArICR7YXBwZW5kfSlgO1xuICAgICAgICAgIH07XG5cbiAgICAgICAgICBpZiAob3JpZ2luKSB7XG4gICAgICAgICAgICAvLyBUT0RPOiBJZiBnZXRCb3VuZGluZ0NsaWVudFJlY3QgaXMgdXNlZCBpdCBzaG91bGQgdXNlIHRoZSBjZW50ZXIgb2YgdGhlIGVsZW1lbnQuXG4gICAgICAgICAgICBjb25zdCBvcmlnaW5YID0gaXNIdG1sRWxlbWVudChvcmlnaW4pXG4gICAgICAgICAgICAgID8gb3JpZ2luLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnRcbiAgICAgICAgICAgICAgOiBpc1RvdWNoRXZlbnQob3JpZ2luKVxuICAgICAgICAgICAgICA/IG9yaWdpbi50YXJnZXRUb3VjaGVzWzBdIS5jbGllbnRYXG4gICAgICAgICAgICAgIDogaXNQb2ludGVyRXZlbnQob3JpZ2luKVxuICAgICAgICAgICAgICA/IG9yaWdpbi5jbGllbnRYICE9PSAwXG4gICAgICAgICAgICAgICAgPyBvcmlnaW4uY2xpZW50WFxuICAgICAgICAgICAgICAgIDogKG9yaWdpbi50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnRcbiAgICAgICAgICAgICAgOiAtMTtcbiAgICAgICAgICAgIGNvbnN0IG9yaWdpblkgPSBpc0h0bWxFbGVtZW50KG9yaWdpbilcbiAgICAgICAgICAgICAgPyBvcmlnaW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wXG4gICAgICAgICAgICAgIDogaXNUb3VjaEV2ZW50KG9yaWdpbilcbiAgICAgICAgICAgICAgPyBvcmlnaW4udGFyZ2V0VG91Y2hlc1swXSEuY2xpZW50WVxuICAgICAgICAgICAgICA6IGlzUG9pbnRlckV2ZW50KG9yaWdpbilcbiAgICAgICAgICAgICAgPyBvcmlnaW4uY2xpZW50WSAhPT0gMFxuICAgICAgICAgICAgICAgID8gb3JpZ2luLmNsaWVudFlcbiAgICAgICAgICAgICAgICA6IChvcmlnaW4udGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3BcbiAgICAgICAgICAgICAgOiAtMTtcblxuICAgICAgICAgICAgaWYgKG9yaWdpblggIT09IC0xICYmIG9yaWdpblkgIT09IC0xICYmIGN1cnJDb25maWcuYXBwbHlUcmFuc2Zvcm1PcmlnaW4pIHtcbiAgICAgICAgICAgICAgc2V0U3R5bGUoY29udGFpbmVyRWwsICd0cmFuc2Zvcm0tb3JpZ2luJywgYCR7b3JpZ2luWH1weCAke29yaWdpbll9cHhgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHNldFN0eWxlKGNvbnRhaW5lckVsLCAndHJhbnNmb3JtLW9yaWdpbicsIG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh1c2VEZWZhdWx0QW5pbWF0aW9uICYmIGNvbnRhaW5lckNsYXNzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgY29udGFpbmVyQ2xhc3M/LmluY2x1ZGVzKEVUX09WRVJMQVlfTEVGVF9TSEVFVF9DTEFTUykgfHxcbiAgICAgICAgICAgICAgY29udGFpbmVyQ2xhc3M/LmluY2x1ZGVzKEVUX09WRVJMQVlfUklHSFRfU0hFRVRfQ0xBU1MpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgc2V0U3R5bGUoXG4gICAgICAgICAgICAgICAgb3ZlcmxheVBhbmVFbCxcbiAgICAgICAgICAgICAgICAnbWF4LXdpZHRoJyxcbiAgICAgICAgICAgICAgICBjb21iaW5lT3JNYWtlQ2FsYyhjdXJyQ29uZmlnLm1heFdpZHRoLCBgJHtkZWZhdWx0QW5pbWF0aW9uQnVmZmVyfXB4YCksXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHNldFN0eWxlKG92ZXJsYXlQYW5lRWwsICdtYXgtaGVpZ2h0JywgY3VyckNvbmZpZy5tYXhIZWlnaHQpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgY29udGFpbmVyQ2xhc3M/LmluY2x1ZGVzKEVUX09WRVJMQVlfVE9QX1NIRUVUX0NMQVNTKSB8fFxuICAgICAgICAgICAgICBjb250YWluZXJDbGFzcz8uaW5jbHVkZXMoRVRfT1ZFUkxBWV9CT1RUT01fU0hFRVRfQ0xBU1MpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgc2V0U3R5bGUoXG4gICAgICAgICAgICAgICAgb3ZlcmxheVBhbmVFbCxcbiAgICAgICAgICAgICAgICAnbWF4LWhlaWdodCcsXG4gICAgICAgICAgICAgICAgY29tYmluZU9yTWFrZUNhbGMoY3VyckNvbmZpZy5tYXhIZWlnaHQsIGAke2RlZmF1bHRBbmltYXRpb25CdWZmZXJ9cHhgKSxcbiAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICBzZXRTdHlsZShvdmVybGF5UGFuZUVsLCAnbWF4LXdpZHRoJywgY3VyckNvbmZpZy5tYXhXaWR0aCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBhcHBseURlZmF1bHRNYXhXaWR0aHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYXBwbHlEZWZhdWx0TWF4V2lkdGhzKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc2V0U3R5bGUob3ZlcmxheVBhbmVFbCwgJ21pbi13aWR0aCcsIGN1cnJDb25maWcubWluV2lkdGgpO1xuICAgICAgICAgIHNldFN0eWxlKG92ZXJsYXlQYW5lRWwsICdtaW4taGVpZ2h0JywgY3VyckNvbmZpZy5taW5IZWlnaHQpO1xuXG4gICAgICAgICAgc2V0U3R5bGUob3ZlcmxheVBhbmVFbCwgJ3dpZHRoJywgY3VyckNvbmZpZy53aWR0aCk7XG4gICAgICAgICAgc2V0U3R5bGUob3ZlcmxheVBhbmVFbCwgJ2hlaWdodCcsIGN1cnJDb25maWcuaGVpZ2h0KTtcblxuICAgICAgICAgIHNldENsYXNzKGNvbnRhaW5lckVsLCBwcmV2Q29uZmlnPy5jb250YWluZXJDbGFzcywgY3VyckNvbmZpZz8uY29udGFpbmVyQ2xhc3MpO1xuICAgICAgICAgIHNldENsYXNzKG92ZXJsYXlQYW5lRWwsIHByZXZDb25maWc/LnBhbmVDbGFzcywgY3VyckNvbmZpZz8ucGFuZUNsYXNzKTtcbiAgICAgICAgICBzZXRDbGFzcyhvdmVybGF5V3JhcHBlciwgcHJldkNvbmZpZz8ub3ZlcmxheUNsYXNzLCBjdXJyQ29uZmlnPy5vdmVybGF5Q2xhc3MpO1xuXG4gICAgICAgICAgLy8gRklYTUU6IFRoZXNlIGNsYXNzZXMgc2hvdWxkIG9ubHkgYmUgcmVtb3ZlZCBpZiBubyBvcGVuIG92ZXJsYXlzIHJlcXVpcmUgdGhlbSBpbnNpZGUgdGhlaXIgY29uZmlnLlxuICAgICAgICAgIHNldENsYXNzKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgcHJldkNvbmZpZz8uZG9jdW1lbnRDbGFzcywgY3VyckNvbmZpZz8uZG9jdW1lbnRDbGFzcyk7XG4gICAgICAgICAgc2V0Q2xhc3MoZG9jdW1lbnQuYm9keSwgcHJldkNvbmZpZz8uYm9keUNsYXNzLCBjdXJyQ29uZmlnPy5ib2R5Q2xhc3MpO1xuXG4gICAgICAgICAgaWYgKGJhY2tkcm9wRWwpIHtcbiAgICAgICAgICAgIHNldENsYXNzKGJhY2tkcm9wRWwsIHByZXZDb25maWc/LmJhY2tkcm9wQ2xhc3MsIGN1cnJDb25maWc/LmJhY2tkcm9wQ2xhc3MpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICghZXF1YWwocHJldkNvbmZpZz8ucG9zaXRpb24sIGN1cnJDb25maWc/LnBvc2l0aW9uKSkge1xuICAgICAgICAgICAgb3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvbihjdXJyQ29uZmlnLnBvc2l0aW9uKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoY3VyckNvbmZpZy5wb3NpdGlvblN0cmF0ZWd5KSB7XG4gICAgICAgICAgICBjZGtSZWYub3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvblN0cmF0ZWd5KGN1cnJDb25maWcucG9zaXRpb25TdHJhdGVneSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNka1JlZi5vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGN1cnJDb25maWcuZHJhZ1RvRGlzbWlzcykge1xuICAgICAgICAgICAgb3ZlcmxheVJlZi5fY29udGFpbmVySW5zdGFuY2UuX2VuYWJsZURyYWdUb0Rpc21pc3MoY3VyckNvbmZpZy5kcmFnVG9EaXNtaXNzKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb3ZlcmxheVJlZi5fY29udGFpbmVySW5zdGFuY2UuX2Rpc2FibGVEcmFnVG9EaXNtaXNzKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMub3Blbk92ZXJsYXlzLnB1c2gob3ZlcmxheVJlZiEpO1xuICAgIHRoaXMuYWZ0ZXJPcGVuZWQubmV4dChvdmVybGF5UmVmISk7XG5cbiAgICBvdmVybGF5UmVmIS5iZWZvcmVDbG9zZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgLy8gRklYTUU6IFRoZXNlIGNsYXNzZXMgc2hvdWxkIG9ubHkgYmUgcmVtb3ZlZCBpZiBubyBvcGVuIG92ZXJsYXlzIHJlcXVpcmUgdGhlbSBpbnNpZGUgdGhlaXIgY29uZmlnLlxuICAgICAgY29uc3QgZG9jdW1lbnRDbGFzc2VzID0gY29tcG9zZWRDb25maWcucG9zaXRpb25zLm1hcCgocG9zaXRpb24pID0+IHBvc2l0aW9uLmNvbmZpZy5kb2N1bWVudENsYXNzKTtcblxuICAgICAgZm9yIChjb25zdCBrbGFzcyBvZiBkb2N1bWVudENsYXNzZXMpIHtcbiAgICAgICAgaWYgKCFrbGFzcykgY29udGludWU7XG5cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoa2xhc3MpKSB7XG4gICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoLi4ua2xhc3MpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKGtsYXNzKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBib2R5Q2xhc3NlcyA9IGNvbXBvc2VkQ29uZmlnLnBvc2l0aW9ucy5tYXAoKHBvc2l0aW9uKSA9PiBwb3NpdGlvbi5jb25maWcuYm9keUNsYXNzKTtcblxuICAgICAgZm9yIChjb25zdCBrbGFzcyBvZiBib2R5Q2xhc3Nlcykge1xuICAgICAgICBpZiAoIWtsYXNzKSBjb250aW51ZTtcblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShrbGFzcykpIHtcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoLi4ua2xhc3MpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZShrbGFzcyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIG92ZXJsYXlSZWYhLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5vcGVuT3ZlcmxheXMuaW5kZXhPZihvdmVybGF5UmVmKTtcblxuICAgICAgaWYgKGluZGV4ID09PSAtMSkgcmV0dXJuO1xuXG4gICAgICB0aGlzLm9wZW5PdmVybGF5cy5zcGxpY2UoaW5kZXgsIDEpO1xuXG4gICAgICBpZiAoIXRoaXMub3Blbk92ZXJsYXlzLmxlbmd0aCkge1xuICAgICAgICB0aGlzLl9nZXRBZnRlckFsbENsb3NlZCgpLm5leHQoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBvdmVybGF5UmVmITtcblxuICAgIC8qIGVzbGludC1lbmFibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvbiovXG4gIH1cblxuICBjbG9zZUFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLl9jbG9zZU92ZXJsYXlzKHRoaXMub3Blbk92ZXJsYXlzKTtcbiAgfVxuXG4gIGdldE92ZXJsYXlCeUlkKGlkOiBzdHJpbmcpOiBPdmVybGF5UmVmIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5vcGVuT3ZlcmxheXMuZmluZCgob3ZlcmxheSkgPT4gb3ZlcmxheS5pZCA9PT0gaWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xvc2VPdmVybGF5cyhvdmVybGF5czogT3ZlcmxheVJlZltdKSB7XG4gICAgbGV0IGkgPSBvdmVybGF5cy5sZW5ndGg7XG5cbiAgICB3aGlsZSAoaS0tKSB7XG4gICAgICBvdmVybGF5c1tpXT8uY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9nZXRBZnRlckFsbENsb3NlZCgpOiBTdWJqZWN0PHZvaWQ+IHtcbiAgICBjb25zdCBwYXJlbnQgPSB0aGlzLl9wYXJlbnRPdmVybGF5U2VydmljZTtcbiAgICByZXR1cm4gcGFyZW50ID8gcGFyZW50Ll9nZXRBZnRlckFsbENsb3NlZCgpIDogdGhpcy5fYWZ0ZXJBbGxDbG9zZWRBdFRoaXNMZXZlbDtcbiAgfVxufVxuIl19
@@ -52,7 +52,7 @@ export class PaginationHeadService {
52
52
  const element = this._getCanonicalElement(true);
53
53
  element.setAttribute('rel', 'canonical');
54
54
  element.setAttribute('href', canonicalUrl);
55
- this._head.appendChild(element);
55
+ this._head?.appendChild(element);
56
56
  }
57
57
  }
58
58
  _getCanonicalElement(createIfNotExisting) {
@@ -63,7 +63,7 @@ export class PaginationHeadService {
63
63
  return element;
64
64
  }
65
65
  _removeCanonicalElement(element) {
66
- this._head.removeChild(element);
66
+ this._head?.removeChild(element);
67
67
  }
68
68
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: PaginationHeadService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
69
69
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: PaginationHeadService }); }
@@ -71,4 +71,4 @@ export class PaginationHeadService {
71
71
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: PaginationHeadService, decorators: [{
72
72
  type: Injectable
73
73
  }] });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi1oZWFkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9zZXJ2aWNlcy9wYWdpbmF0aW9uLWhlYWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFJekMsTUFBTSxPQUFPLHFCQUFxQjtJQURsQztRQUVVLFlBQU8sR0FBdUMsSUFBSSxDQUFDO1FBQ25ELGNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0Isa0JBQWEsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsWUFBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QixVQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQXlFaEU7SUF2RUMsSUFBWSxNQUFNO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDL0YsQ0FBQztJQUVELElBQUksZUFBZSxDQUFDLENBQVU7UUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxlQUFlLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQUks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cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgUGFnaW5hdGlvbkhlYWRTZXJ2aWNlQ29uZmlnIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbkhlYWRTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfY29uZmlnOiBQYWdpbmF0aW9uSGVhZFNlcnZpY2VDb25maWcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICBwcml2YXRlIF90aXRsZVNlcnZpY2UgPSBpbmplY3QoVGl0bGUpO1xuICBwcml2YXRlIF9yb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgcHJpdmF0ZSBfaGVhZCA9IHRoaXMuX2RvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF07XG5cbiAgcHJpdmF0ZSBnZXQgY29uZmlnKCk6IFBhZ2luYXRpb25IZWFkU2VydmljZUNvbmZpZyB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZyA/PyB7IHRpdGxlVGVtcGxhdGU6IG51bGwsIGZpcnN0UGFnZVRpdGxlOiBudWxsLCBhZGRDYW5vbmljYWxUYWc6IGZhbHNlIH07XG4gIH1cblxuICBzZXQgYWRkQ2Fub25pY2FsVGFnKHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9jb25maWcgPSB7IC4uLnRoaXMuY29uZmlnLCBhZGRDYW5vbmljYWxUYWc6IHYgfTtcbiAgfVxuXG4gIHNldCB0aXRsZVRlbXBsYXRlKHY6IHN0cmluZyB8IG51bGwpIHtcbiAgICB0aGlzLl9jb25maWcgPSB7IC4uLnRoaXMuY29uZmlnLCB0aXRsZVRlbXBsYXRlOiB2IH07XG4gIH1cblxuICBzZXQgZmlyc3RQYWdlVGl0bGUodjogc3RyaW5nIHwgbnVsbCkge1xuICAgIHRoaXMuX2NvbmZpZyA9IHsgLi4udGhpcy5jb25maWcsIGZpcnN0UGFnZVRpdGxlOiB2IH07XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5fZ2V0Q2Fub25pY2FsRWxlbWVudChmYWxzZSk7XG5cbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgdGhpcy5fcmVtb3ZlQ2Fub25pY2FsRWxlbWVudChlbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICBfdXBkYXRlSGVhZChwYWdlOiBudW1iZXIpIHtcbiAgICBjb25zdCB7IHRpdGxlVGVtcGxhdGUsIGFkZENhbm9uaWNhbFRhZywgZmlyc3RQYWdlVGl0bGUgfSA9IHRoaXMuY29uZmlnO1xuXG4gICAgaWYgKHRpdGxlVGVtcGxhdGUgJiYgIXRpdGxlVGVtcGxhdGUuaW5jbHVkZXMoJyVzJykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGl0bGUgdGVtcGxhdGUgbXVzdCBjb250YWluIFwiJXNcIiBwbGFjZWhvbGRlcicpO1xuICAgIH1cblxuICAgIGNvbnN0IHRpdGxlID1cbiAgICAgIHBhZ2UgPT09IDEgJiYgZmlyc3RQYWdlVGl0bGVcbiAgICAgICAgPyBmaXJzdFBhZ2VUaXRsZVxuICAgICAgICA6IHRpdGxlVGVtcGxhdGVcbiAgICAgICAgPyB0aXRsZVRlbXBsYXRlLnJlcGxhY2UoJyVzJywgcGFnZS50b1N0cmluZygpKVxuICAgICAgICA6IG51bGw7XG5cbiAgICBpZiAodGl0bGUpIHtcbiAgICAgIHRoaXMuX3RpdGxlU2VydmljZS5zZXRUaXRsZSh0aXRsZSk7XG4gICAgfVxuXG4gICAgaWYgKGFkZENhbm9uaWNhbFRhZykge1xuICAgICAgY29uc3QgdXJsVHJlZSA9IHRoaXMuX3JvdXRlci5jcmVhdGVVcmxUcmVlKFtdLCB7XG4gICAgICAgIHF1ZXJ5UGFyYW1zOiB7IHBhZ2U6IHBhZ2UgPT09IDEgPyBudWxsIDogcGFnZSB9LFxuICAgICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHJlbGF0aXZlVXJsID0gdGhpcy5fcm91dGVyLnNlcmlhbGl6ZVVybCh1cmxUcmVlKTtcbiAgICAgIGNvbnN0IGNhbm9uaWNhbFVybCA9IGAke3dpbmRvdy5sb2NhdGlvbi5vcmlnaW59JHtyZWxhdGl2ZVVybH1gO1xuXG4gICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5fZ2V0Q2Fub25pY2FsRWxlbWVudCh0cnVlKTtcbiAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdyZWwnLCAnY2Fub25pY2FsJyk7XG4gICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnaHJlZicsIGNhbm9uaWNhbFVybCk7XG4gICAgICB0aGlzLl9oZWFkLmFwcGVuZENoaWxkKGVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2dldENhbm9uaWNhbEVsZW1lbnQ8VCBleHRlbmRzIGJvb2xlYW4sIFIgZXh0ZW5kcyBUIGV4dGVuZHMgdHJ1ZSA/IEhUTUxFbGVtZW50IDogSFRNTEVsZW1lbnQgfCBudWxsPihcbiAgICBjcmVhdGVJZk5vdEV4aXN0aW5nOiBULFxuICApIHtcbiAgICBsZXQgZWxlbWVudCA9IHRoaXMuX2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYGxpbmtbcmVsPSdjYW5vbmljYWwnXWApIHx8IG51bGw7XG4gICAgaWYgKGVsZW1lbnQgPT09IG51bGwgJiYgY3JlYXRlSWZOb3RFeGlzdGluZykge1xuICAgICAgZWxlbWVudCA9IHRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKSBhcyBIVE1MTGlua0VsZW1lbnQ7XG4gICAgfVxuICAgIHJldHVybiBlbGVtZW50IGFzIFI7XG4gIH1cblxuICBwcml2YXRlIF9yZW1vdmVDYW5vbmljYWxFbGVtZW50KGVsZW1lbnQ6IEVsZW1lbnQpIHtcbiAgICB0aGlzLl9oZWFkLnJlbW92ZUNoaWxkKGVsZW1lbnQpO1xuICB9XG59XG4iXX0=
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi1oZWFkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9zZXJ2aWNlcy9wYWdpbmF0aW9uLWhlYWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFJekMsTUFBTSxPQUFPLHFCQUFxQjtJQURsQztRQUVVLFlBQU8sR0FBdUMsSUFBSSxDQUFDO1FBQ25ELGNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0Isa0JBQWEsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsWUFBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QixVQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQXlFaEU7SUF2RUMsSUFBWSxNQUFNO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDL0YsQ0FBQztJQUVELElBQUksZUFBZSxDQUFDLENBQVU7UUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxlQUFlLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQUks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cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgUGFnaW5hdGlvbkhlYWRTZXJ2aWNlQ29uZmlnIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbkhlYWRTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfY29uZmlnOiBQYWdpbmF0aW9uSGVhZFNlcnZpY2VDb25maWcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICBwcml2YXRlIF90aXRsZVNlcnZpY2UgPSBpbmplY3QoVGl0bGUpO1xuICBwcml2YXRlIF9yb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgcHJpdmF0ZSBfaGVhZCA9IHRoaXMuX2RvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF07XG5cbiAgcHJpdmF0ZSBnZXQgY29uZmlnKCk6IFBhZ2luYXRpb25IZWFkU2VydmljZUNvbmZpZyB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZyA/PyB7IHRpdGxlVGVtcGxhdGU6IG51bGwsIGZpcnN0UGFnZVRpdGxlOiBudWxsLCBhZGRDYW5vbmljYWxUYWc6IGZhbHNlIH07XG4gIH1cblxuICBzZXQgYWRkQ2Fub25pY2FsVGFnKHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9jb25maWcgPSB7IC4uLnRoaXMuY29uZmlnLCBhZGRDYW5vbmljYWxUYWc6IHYgfTtcbiAgfVxuXG4gIHNldCB0aXRsZVRlbXBsYXRlKHY6IHN0cmluZyB8IG51bGwpIHtcbiAgICB0aGlzLl9jb25maWcgPSB7IC4uLnRoaXMuY29uZmlnLCB0aXRsZVRlbXBsYXRlOiB2IH07XG4gIH1cblxuICBzZXQgZmlyc3RQYWdlVGl0bGUodjogc3RyaW5nIHwgbnVsbCkge1xuICAgIHRoaXMuX2NvbmZpZyA9IHsgLi4udGhpcy5jb25maWcsIGZpcnN0UGFnZVRpdGxlOiB2IH07XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5fZ2V0Q2Fub25pY2FsRWxlbWVudChmYWxzZSk7XG5cbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgdGhpcy5fcmVtb3ZlQ2Fub25pY2FsRWxlbWVudChlbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICBfdXBkYXRlSGVhZChwYWdlOiBudW1iZXIpIHtcbiAgICBjb25zdCB7IHRpdGxlVGVtcGxhdGUsIGFkZENhbm9uaWNhbFRhZywgZmlyc3RQYWdlVGl0bGUgfSA9IHRoaXMuY29uZmlnO1xuXG4gICAgaWYgKHRpdGxlVGVtcGxhdGUgJiYgIXRpdGxlVGVtcGxhdGUuaW5jbHVkZXMoJyVzJykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGl0bGUgdGVtcGxhdGUgbXVzdCBjb250YWluIFwiJXNcIiBwbGFjZWhvbGRlcicpO1xuICAgIH1cblxuICAgIGNvbnN0IHRpdGxlID1cbiAgICAgIHBhZ2UgPT09IDEgJiYgZmlyc3RQYWdlVGl0bGVcbiAgICAgICAgPyBmaXJzdFBhZ2VUaXRsZVxuICAgICAgICA6IHRpdGxlVGVtcGxhdGVcbiAgICAgICAgPyB0aXRsZVRlbXBsYXRlLnJlcGxhY2UoJyVzJywgcGFnZS50b1N0cmluZygpKVxuICAgICAgICA6IG51bGw7XG5cbiAgICBpZiAodGl0bGUpIHtcbiAgICAgIHRoaXMuX3RpdGxlU2VydmljZS5zZXRUaXRsZSh0aXRsZSk7XG4gICAgfVxuXG4gICAgaWYgKGFkZENhbm9uaWNhbFRhZykge1xuICAgICAgY29uc3QgdXJsVHJlZSA9IHRoaXMuX3JvdXRlci5jcmVhdGVVcmxUcmVlKFtdLCB7XG4gICAgICAgIHF1ZXJ5UGFyYW1zOiB7IHBhZ2U6IHBhZ2UgPT09IDEgPyBudWxsIDogcGFnZSB9LFxuICAgICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHJlbGF0aXZlVXJsID0gdGhpcy5fcm91dGVyLnNlcmlhbGl6ZVVybCh1cmxUcmVlKTtcbiAgICAgIGNvbnN0IGNhbm9uaWNhbFVybCA9IGAke3dpbmRvdy5sb2NhdGlvbi5vcmlnaW59JHtyZWxhdGl2ZVVybH1gO1xuXG4gICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5fZ2V0Q2Fub25pY2FsRWxlbWVudCh0cnVlKTtcbiAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdyZWwnLCAnY2Fub25pY2FsJyk7XG4gICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnaHJlZicsIGNhbm9uaWNhbFVybCk7XG4gICAgICB0aGlzLl9oZWFkPy5hcHBlbmRDaGlsZChlbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9nZXRDYW5vbmljYWxFbGVtZW50PFQgZXh0ZW5kcyBib29sZWFuLCBSIGV4dGVuZHMgVCBleHRlbmRzIHRydWUgPyBIVE1MRWxlbWVudCA6IEhUTUxFbGVtZW50IHwgbnVsbD4oXG4gICAgY3JlYXRlSWZOb3RFeGlzdGluZzogVCxcbiAgKSB7XG4gICAgbGV0IGVsZW1lbnQgPSB0aGlzLl9kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBsaW5rW3JlbD0nY2Fub25pY2FsJ11gKSB8fCBudWxsO1xuICAgIGlmIChlbGVtZW50ID09PSBudWxsICYmIGNyZWF0ZUlmTm90RXhpc3RpbmcpIHtcbiAgICAgIGVsZW1lbnQgPSB0aGlzLl9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJykgYXMgSFRNTExpbmtFbGVtZW50O1xuICAgIH1cbiAgICByZXR1cm4gZWxlbWVudCBhcyBSO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVtb3ZlQ2Fub25pY2FsRWxlbWVudChlbGVtZW50OiBFbGVtZW50KSB7XG4gICAgdGhpcy5faGVhZD8ucmVtb3ZlQ2hpbGQoZWxlbWVudCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  export * from './accordion/public-api';
2
2
  export * from './bracket/public-api';
3
3
  export * from './button/public-api';
4
- export * from './filter-overlay/public-api';
4
+ export * from './filter/public-api';
5
5
  export * from './forms/public-api';
6
6
  export * from './icons/public-api';
7
7
  export * from './masonry/public-api';
@@ -15,4 +15,4 @@ export * from './skeleton/public-api';
15
15
  export * from './sort/public-api';
16
16
  export * from './table/public-api';
17
17
  export * from './tabs/public-api';
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWNjb3JkaW9uL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9icmFja2V0L3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9idXR0b24vcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbHRlci1vdmVybGF5L3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9mb3Jtcy9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vaWNvbnMvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL21hc29ucnkvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL292ZXJsYXkvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL3BhZ2luYXRpb24vcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL3BpY3R1cmUvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL3Byb2dyZXNzLXNwaW5uZXIvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL3F1ZXJ5LWVycm9yL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9zY3JvbGxhYmxlL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9za2VsZXRvbi9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vc29ydC9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL3RhYnMvcHVibGljLWFwaSc7XG4iXX0=
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWNjb3JkaW9uL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9icmFja2V0L3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9idXR0b24vcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbHRlci9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybXMvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2ljb25zL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9tYXNvbnJ5L3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9vdmVybGF5L3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9wYWdpbmF0aW9uL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9waWN0dXJlL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9ncmVzcy1zcGlubmVyL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9xdWVyeS1lcnJvci9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vc2Nyb2xsYWJsZS9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vc2tlbGV0b24vcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL3NvcnQvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL3RhYmxlL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi90YWJzL3B1YmxpYy1hcGknO1xuIl19
@@ -16,7 +16,7 @@ export class QueryErrorComponent {
16
16
  extractQuery(this.host.query)?.execute({ skipCache: true });
17
17
  }
18
18
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: QueryErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
19
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: QueryErrorComponent, isStandalone: true, selector: "et-query-error", host: { properties: { "class.et-query-error--can-be-retried": "canBeRetried()", "class.et-query-error--is-list": "isList()" }, classAttribute: "et-query-error" }, hostDirectives: [{ directive: i1.QueryErrorDirective, inputs: ["error", "error", "query", "query"] }], ngImport: i0, template: "<ng-container *ngIf=\"errorList() as errorList\">\n <h3 class=\"et-query-error-title\">{{ errorList.title }}</h3>\n\n <p *ngIf=\"!errorList.isList\" class=\"et-query-error-message\">{{ errorList.items[0].message }}</p>\n\n <ul *ngIf=\"errorList.isList\" class=\"et-query-error-list\">\n <li *ngFor=\"let item of errorList.items; trackBy: trackByFn\" class=\"et-query-error-list-item\">\n {{ item.message }}\n </li>\n </ul>\n\n <button *ngIf=\"errorList.canBeRetried\" (click)=\"retry()\" class=\"et-query-error-retry-button\">Retry</button>\n</ng-container>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
19
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: QueryErrorComponent, isStandalone: true, selector: "et-query-error", host: { properties: { "class.et-query-error--can-be-retried": "canBeRetried()", "class.et-query-error--is-list": "isList()" }, classAttribute: "et-query-error" }, hostDirectives: [{ directive: i1.QueryErrorDirective, inputs: ["error", "error", "query", "query"] }], ngImport: i0, template: "<ng-container *ngIf=\"errorList() as errorList\">\n <h3 class=\"et-query-error-title\">{{ errorList.title }}</h3>\n\n <p *ngIf=\"!errorList.isList\" class=\"et-query-error-message\">{{ errorList.items[0]!.message }}</p>\n\n <ul *ngIf=\"errorList.isList\" class=\"et-query-error-list\">\n <li *ngFor=\"let item of errorList.items; trackBy: trackByFn\" class=\"et-query-error-list-item\">\n {{ item.message }}\n </li>\n </ul>\n\n <button *ngIf=\"errorList.canBeRetried\" (click)=\"retry()\" class=\"et-query-error-retry-button\">Retry</button>\n</ng-container>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
20
20
  }
21
21
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: QueryErrorComponent, decorators: [{
22
22
  type: Component,
@@ -24,6 +24,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
24
24
  class: 'et-query-error',
25
25
  '[class.et-query-error--can-be-retried]': 'canBeRetried()',
26
26
  '[class.et-query-error--is-list]': 'isList()',
27
- }, imports: [NgIf, NgFor], hostDirectives: [{ directive: QueryErrorDirective, inputs: ['error', 'query'] }], template: "<ng-container *ngIf=\"errorList() as errorList\">\n <h3 class=\"et-query-error-title\">{{ errorList.title }}</h3>\n\n <p *ngIf=\"!errorList.isList\" class=\"et-query-error-message\">{{ errorList.items[0].message }}</p>\n\n <ul *ngIf=\"errorList.isList\" class=\"et-query-error-list\">\n <li *ngFor=\"let item of errorList.items; trackBy: trackByFn\" class=\"et-query-error-list-item\">\n {{ item.message }}\n </li>\n </ul>\n\n <button *ngIf=\"errorList.canBeRetried\" (click)=\"retry()\" class=\"et-query-error-retry-button\">Retry</button>\n</ng-container>\n" }]
27
+ }, imports: [NgIf, NgFor], hostDirectives: [{ directive: QueryErrorDirective, inputs: ['error', 'query'] }], template: "<ng-container *ngIf=\"errorList() as errorList\">\n <h3 class=\"et-query-error-title\">{{ errorList.title }}</h3>\n\n <p *ngIf=\"!errorList.isList\" class=\"et-query-error-message\">{{ errorList.items[0]!.message }}</p>\n\n <ul *ngIf=\"errorList.isList\" class=\"et-query-error-list\">\n <li *ngFor=\"let item of errorList.items; trackBy: trackByFn\" class=\"et-query-error-list-item\">\n {{ item.message }}\n </li>\n </ul>\n\n <button *ngIf=\"errorList.canBeRetried\" (click)=\"retry()\" class=\"et-query-error-retry-button\">Retry</button>\n</ng-container>\n" }]
28
28
  }] });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktZXJyb3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL3F1ZXJ5LWVycm9yL2NvbXBvbmVudHMvcXVlcnktZXJyb3IvcXVlcnktZXJyb3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL3F1ZXJ5LWVycm9yL2NvbXBvbmVudHMvcXVlcnktZXJyb3IvcXVlcnktZXJyb3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsUUFBUSxFQUNSLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQWlCMUUsTUFBTSxPQUFPLG1CQUFtQjtJQWRoQztRQWVxQixTQUFJLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDakMsY0FBUyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUVoRCxpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsWUFBWSxJQUFJLEtBQUssQ0FBQyxDQUFDO1FBQ3ZFLFdBQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsQ0FBQztRQUVwRSxjQUFTLEdBQW9DLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztLQUt0RjtJQUhXLEtBQUs7UUFDYixZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5RCxDQUFDOzhHQVhVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLG9WQzNCaEMsaWtCQWFBLDRDRFdZLElBQUksNkZBQUUsS0FBSzs7MkZBR1YsbUJBQW1CO2tCQWQvQixTQUFTOytCQUNFLGdCQUFnQixjQUVkLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSixLQUFLLEVBQUUsZ0JBQWdCO3dCQUN2Qix3Q0FBd0MsRUFBRSxnQkFBZ0I7d0JBQzFELGlDQUFpQyxFQUFFLFVBQVU7cUJBQzlDLFdBQ1EsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLGtCQUNOLENBQUMsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBUcmFja0J5RnVuY3Rpb24sXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBjb21wdXRlZCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGV4dHJhY3RRdWVyeSB9IGZyb20gJ0BldGhsZXRlL3F1ZXJ5JztcbmltcG9ydCB7IFFVRVJZX0VSUk9SX1RPS0VOLCBRdWVyeUVycm9yRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBRdWVyeUVycm9ySXRlbSB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZXQtcXVlcnktZXJyb3InLFxuICB0ZW1wbGF0ZVVybDogJy4vcXVlcnktZXJyb3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnZXQtcXVlcnktZXJyb3InLFxuICAgICdbY2xhc3MuZXQtcXVlcnktZXJyb3ItLWNhbi1iZS1yZXRyaWVkXSc6ICdjYW5CZVJldHJpZWQoKScsXG4gICAgJ1tjbGFzcy5ldC1xdWVyeS1lcnJvci0taXMtbGlzdF0nOiAnaXNMaXN0KCknLFxuICB9LFxuICBpbXBvcnRzOiBbTmdJZiwgTmdGb3JdLFxuICBob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBRdWVyeUVycm9yRGlyZWN0aXZlLCBpbnB1dHM6IFsnZXJyb3InLCAncXVlcnknXSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgUXVlcnlFcnJvckNvbXBvbmVudCB7XG4gIHByb3RlY3RlZCByZWFkb25seSBob3N0ID0gaW5qZWN0KFFVRVJZX0VSUk9SX1RPS0VOKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGVycm9yTGlzdCA9IGluamVjdChRVUVSWV9FUlJPUl9UT0tFTikuZXJyb3JMaXN0O1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjYW5CZVJldHJpZWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmVycm9yTGlzdCgpPy5jYW5CZVJldHJpZWQgPz8gZmFsc2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNMaXN0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5lcnJvckxpc3QoKT8uaXNMaXN0ID8/IGZhbHNlKTtcblxuICBwcm90ZWN0ZWQgdHJhY2tCeUZuOiBUcmFja0J5RnVuY3Rpb248UXVlcnlFcnJvckl0ZW0+ID0gKGluZGV4LCBpdGVtKSA9PiBpdGVtLm1lc3NhZ2U7XG5cbiAgcHJvdGVjdGVkIHJldHJ5KCkge1xuICAgIGV4dHJhY3RRdWVyeSh0aGlzLmhvc3QucXVlcnkpPy5leGVjdXRlKHsgc2tpcENhY2hlOiB0cnVlIH0pO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiZXJyb3JMaXN0KCkgYXMgZXJyb3JMaXN0XCI+XG4gIDxoMyBjbGFzcz1cImV0LXF1ZXJ5LWVycm9yLXRpdGxlXCI+e3sgZXJyb3JMaXN0LnRpdGxlIH19PC9oMz5cblxuICA8cCAqbmdJZj1cIiFlcnJvckxpc3QuaXNMaXN0XCIgY2xhc3M9XCJldC1xdWVyeS1lcnJvci1tZXNzYWdlXCI+e3sgZXJyb3JMaXN0Lml0ZW1zWzBdLm1lc3NhZ2UgfX08L3A+XG5cbiAgPHVsICpuZ0lmPVwiZXJyb3JMaXN0LmlzTGlzdFwiIGNsYXNzPVwiZXQtcXVlcnktZXJyb3ItbGlzdFwiPlxuICAgIDxsaSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBlcnJvckxpc3QuaXRlbXM7IHRyYWNrQnk6IHRyYWNrQnlGblwiIGNsYXNzPVwiZXQtcXVlcnktZXJyb3ItbGlzdC1pdGVtXCI+XG4gICAgICB7eyBpdGVtLm1lc3NhZ2UgfX1cbiAgICA8L2xpPlxuICA8L3VsPlxuXG4gIDxidXR0b24gKm5nSWY9XCJlcnJvckxpc3QuY2FuQmVSZXRyaWVkXCIgKGNsaWNrKT1cInJldHJ5KClcIiBjbGFzcz1cImV0LXF1ZXJ5LWVycm9yLXJldHJ5LWJ1dHRvblwiPlJldHJ5PC9idXR0b24+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktZXJyb3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL3F1ZXJ5LWVycm9yL2NvbXBvbmVudHMvcXVlcnktZXJyb3IvcXVlcnktZXJyb3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL3F1ZXJ5LWVycm9yL2NvbXBvbmVudHMvcXVlcnktZXJyb3IvcXVlcnktZXJyb3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsUUFBUSxFQUNSLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQWlCMUUsTUFBTSxPQUFPLG1CQUFtQjtJQWRoQztRQWVxQixTQUFJLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDakMsY0FBUyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUVoRCxpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsWUFBWSxJQUFJLEtBQUssQ0FBQyxDQUFDO1FBQ3ZFLFdBQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsQ0FBQztRQUVwRSxjQUFTLEdBQW9DLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztLQUt0RjtJQUhXLEtBQUs7UUFDYixZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5RCxDQUFDOzhHQVhVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLG9WQzNCaEMsa2tCQWFBLDRDRFdZLElBQUksNkZBQUUsS0FBSzs7MkZBR1YsbUJBQW1CO2tCQWQvQixTQUFTOytCQUNFLGdCQUFnQixjQUVkLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSixLQUFLLEVBQUUsZ0JBQWdCO3dCQUN2Qix3Q0FBd0MsRUFBRSxnQkFBZ0I7d0JBQzFELGlDQUFpQyxFQUFFLFVBQVU7cUJBQzlDLFdBQ1EsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLGtCQUNOLENBQUMsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBUcmFja0J5RnVuY3Rpb24sXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBjb21wdXRlZCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGV4dHJhY3RRdWVyeSB9IGZyb20gJ0BldGhsZXRlL3F1ZXJ5JztcbmltcG9ydCB7IFFVRVJZX0VSUk9SX1RPS0VOLCBRdWVyeUVycm9yRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBRdWVyeUVycm9ySXRlbSB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZXQtcXVlcnktZXJyb3InLFxuICB0ZW1wbGF0ZVVybDogJy4vcXVlcnktZXJyb3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnZXQtcXVlcnktZXJyb3InLFxuICAgICdbY2xhc3MuZXQtcXVlcnktZXJyb3ItLWNhbi1iZS1yZXRyaWVkXSc6ICdjYW5CZVJldHJpZWQoKScsXG4gICAgJ1tjbGFzcy5ldC1xdWVyeS1lcnJvci0taXMtbGlzdF0nOiAnaXNMaXN0KCknLFxuICB9LFxuICBpbXBvcnRzOiBbTmdJZiwgTmdGb3JdLFxuICBob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBRdWVyeUVycm9yRGlyZWN0aXZlLCBpbnB1dHM6IFsnZXJyb3InLCAncXVlcnknXSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgUXVlcnlFcnJvckNvbXBvbmVudCB7XG4gIHByb3RlY3RlZCByZWFkb25seSBob3N0ID0gaW5qZWN0KFFVRVJZX0VSUk9SX1RPS0VOKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGVycm9yTGlzdCA9IGluamVjdChRVUVSWV9FUlJPUl9UT0tFTikuZXJyb3JMaXN0O1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjYW5CZVJldHJpZWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmVycm9yTGlzdCgpPy5jYW5CZVJldHJpZWQgPz8gZmFsc2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNMaXN0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5lcnJvckxpc3QoKT8uaXNMaXN0ID8/IGZhbHNlKTtcblxuICBwcm90ZWN0ZWQgdHJhY2tCeUZuOiBUcmFja0J5RnVuY3Rpb248UXVlcnlFcnJvckl0ZW0+ID0gKGluZGV4LCBpdGVtKSA9PiBpdGVtLm1lc3NhZ2U7XG5cbiAgcHJvdGVjdGVkIHJldHJ5KCkge1xuICAgIGV4dHJhY3RRdWVyeSh0aGlzLmhvc3QucXVlcnkpPy5leGVjdXRlKHsgc2tpcENhY2hlOiB0cnVlIH0pO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiZXJyb3JMaXN0KCkgYXMgZXJyb3JMaXN0XCI+XG4gIDxoMyBjbGFzcz1cImV0LXF1ZXJ5LWVycm9yLXRpdGxlXCI+e3sgZXJyb3JMaXN0LnRpdGxlIH19PC9oMz5cblxuICA8cCAqbmdJZj1cIiFlcnJvckxpc3QuaXNMaXN0XCIgY2xhc3M9XCJldC1xdWVyeS1lcnJvci1tZXNzYWdlXCI+e3sgZXJyb3JMaXN0Lml0ZW1zWzBdIS5tZXNzYWdlIH19PC9wPlxuXG4gIDx1bCAqbmdJZj1cImVycm9yTGlzdC5pc0xpc3RcIiBjbGFzcz1cImV0LXF1ZXJ5LWVycm9yLWxpc3RcIj5cbiAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZXJyb3JMaXN0Lml0ZW1zOyB0cmFja0J5OiB0cmFja0J5Rm5cIiBjbGFzcz1cImV0LXF1ZXJ5LWVycm9yLWxpc3QtaXRlbVwiPlxuICAgICAge3sgaXRlbS5tZXNzYWdlIH19XG4gICAgPC9saT5cbiAgPC91bD5cblxuICA8YnV0dG9uICpuZ0lmPVwiZXJyb3JMaXN0LmNhbkJlUmV0cmllZFwiIChjbGljayk9XCJyZXRyeSgpXCIgY2xhc3M9XCJldC1xdWVyeS1lcnJvci1yZXRyeS1idXR0b25cIj5SZXRyeTwvYnV0dG9uPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -171,4 +171,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
171
171
  type: Input,
172
172
  args: [{ required: true }]
173
173
  }] } });
174
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktZXJyb3IuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL3F1ZXJ5LWVycm9yL2RpcmVjdGl2ZXMvcXVlcnktZXJyb3IvcXVlcnktZXJyb3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFLTCxxQkFBcUIsRUFDckIsK0JBQStCLEVBQy9CLGtCQUFrQixHQUNuQixNQUFNLGdCQUFnQixDQUFDOztBQUd4QixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FBc0IsNkJBQTZCLENBQUMsQ0FBQztBQUV4RyxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxDQUFDLFVBQTBCLEVBQUUsRUFBRTtJQUMzRSxRQUFRLFVBQVUsRUFBRTtRQUNsQjtZQUNFLE9BQU8sbUVBQW1FLENBQUM7UUFDN0U7WUFDRSxPQUFPLDJFQUEyRSxDQUFDO1FBQ3JGO1lBQ0UsT0FBTyw4Q0FBOEMsQ0FBQztRQUN4RDtZQUNFLE9BQU8sb0RBQW9ELENBQUM7UUFDOUQ7WUFDRSxPQUFPLHVDQUF1QyxDQUFDO1FBQ2pEO1lBQ0UsT0FBTyx3REFBd0QsQ0FBQztRQUNsRTtZQUNFLE9BQU8sd0dBQXdHLENBQUM7UUFDbEg7WUFDRSxPQUFPLDJEQUEyRCxDQUFDO1FBQ3JFO1lBQ0UsT0FBTywrQ0FBK0MsQ0FBQztRQUN6RDtZQUNFLE9BQU8sK0RBQStELENBQUM7UUFDekU7WUFDRSxPQUFPLGdGQUFnRixDQUFDO1FBQzFGO1lBQ0UsT0FBTyxxR0FBcUcsQ0FBQztRQUMvRztZQUNFLE9BQU8sMEZBQTBGLENBQUM7UUFDcEc7WUFDRSxPQUFPLHNFQUFzRSxDQUFD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QUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLG1CQUFtQixDQUFDO2lCQUNsRDthQUNGO1lBRUQsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7S0FDSjtJQTdEQyxJQUNJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsS0FBbUI7UUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQzs4R0FQVSxtQkFBbUI7a0dBQW5CLG1CQUFtQiw2RUFQbkI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsbUJBQW1CO2FBQ2pDO1NBQ0Y7OzJGQUVVLG1CQUFtQjtrQkFWL0IsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLHFCQUFxQjt5QkFDakM7cUJBQ0Y7aUJBQ0Y7OEJBR0ssS0FBSztzQkFEUixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFVekIsS0FBSztzQkFESixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5qZWN0aW9uVG9rZW4sIElucHV0LCBjb21wdXRlZCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBbnlRdWVyeSxcbiAgQW55UXVlcnlDb2xsZWN0aW9uLFxuICBIdHRwU3RhdHVzQ29kZSxcbiAgUmVxdWVzdEVycm9yLFxuICBpc0NsYXNzVmFsaWRhdG9yRXJyb3IsXG4gIGlzU3ltZm9ueUZvcm1WaW9sYXRpb25MaXN0RXJyb3IsXG4gIHNob3VsZFJldHJ5UmVxdWVzdCxcbn0gZnJvbSAnQGV0aGxldGUvcXVlcnknO1xuaW1wb3J0IHsgUXVlcnlFcnJvckxpc3QgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBRVUVSWV9FUlJPUl9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxRdWVyeUVycm9yRGlyZWN0aXZlPignUVVFUllfRVJST1JfRElSRUNUSVZFX1RPS0VOJyk7XG5cbmV4cG9ydCBjb25zdCBjb252ZXJ0SHR0cFN0YXR1c0NvZGVUb01lc3NhZ2UgPSAoc3RhdHVzQ29kZTogSHR0cFN0YXR1c0NvZGUpID0+IHtcbiAgc3dpdGNoIChzdGF0dXNDb2RlKSB7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5CYWRSZXF1ZXN0OlxuICAgICAgcmV0dXJuICdTb3JyeSwgd2UgY291bGQgbm90IHByb2Nlc3MgeW91ciByZXF1ZXN0LiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5VbmF1dGhvcml6ZWQ6XG4gICAgICByZXR1cm4gJ1lvdSBhcmUgbm90IGF1dGhvcml6ZWQgdG8gcGVyZm9ybSB0aGlzIGFjdGlvbi4gUGxlYXNlIGxvZyBpbiB0byBjb250aW51ZS4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuUGF5bWVudFJlcXVpcmVkOlxuICAgICAgcmV0dXJuICdQYXltZW50IGlzIHJlcXVpcmVkIHRvIGNvbXBsZXRlIHRoaXMgYWN0aW9uLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Gb3JiaWRkZW46XG4gICAgICByZXR1cm4gJ1lvdSBkbyBub3QgaGF2ZSBwZXJtaXNzaW9uIHRvIHBlcmZvcm0gdGhpcyBhY3Rpb24uJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLk5vdEZvdW5kOlxuICAgICAgcmV0dXJuICdUaGUgcmVxdWVzdGVkIHJlc291cmNlIHdhcyBub3QgZm91bmQuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLk1ldGhvZE5vdEFsbG93ZWQ6XG4gICAgICByZXR1cm4gJ1RoZSByZXF1ZXN0ZWQgbWV0aG9kIGlzIG5vdCBhbGxvd2VkIGZvciB0aGlzIHJlc291cmNlLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Ob3RBY2NlcHRhYmxlOlxuICAgICAgcmV0dXJuICdUaGUgcmVxdWVzdGVkIHJlc291cmNlIGlzIG5vdCBjYXBhYmxlIG9mIGdlbmVyYXRpbmcgYSByZXNwb25zZSBtYXRjaGluZyB0aGUgbGlzdCBvZiBhY2NlcHRhYmxlIHZhbHVlcy4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuUHJveHlBdXRoZW50aWNhdGlvblJlcXVpcmVkOlxuICAgICAgcmV0dXJuICdQcm94eSBhdXRoZW50aWNhdGlvbiBpcyByZXF1aXJlZCB0byBjb21wbGV0ZSB0aGlzIGFjdGlvbi4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuUmVxdWVzdFRpbWVvdXQ6XG4gICAgICByZXR1cm4gJ1RoZSBzZXJ2ZXIgdGltZWQgb3V0IHdhaXRpbmcgZm9yIHRoZSByZXF1ZXN0Lic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Db25mbGljdDpcbiAgICAgIHJldHVybiAnVGhlIHJlcXVlc3QgY29uZmxpY3RzIHdpdGggdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIHJlc291cmNlLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Hb25lOlxuICAgICAgcmV0dXJuICdUaGUgcmVxdWVzdGVkIHJlc291cmNlIGlzIG5vIGxvbmdlciBhdmFpbGFibGUgYW5kIHdpbGwgbm90IGJlIGF2YWlsYWJsZSBhZ2Fpbi4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTGVuZ3RoUmVxdWlyZWQ6XG4gICAgICByZXR1cm4gJ1RoZSByZXF1ZXN0IGRpZCBub3Qgc3BlY2lmeSB0aGUgbGVuZ3RoIG9mIGl0cyBjb250ZW50LCB3aGljaCBpcyByZXF1aXJlZCBieSB0aGUgcmVxdWVzdGVkIHJlc291cmNlLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5QcmVjb25kaXRpb25GYWlsZWQ6XG4gICAgICByZXR1cm4gJ1RoZSBzZXJ2ZXIgZG9lcyBub3QgbWVldCBvbmUgb2YgdGhlIHByZWNvbmRpdGlvbnMgdGhhdCB0aGUgcmVxdWVzdGVyIHB1dCBvbiB0aGUgcmVxdWVzdC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuUGF5bG9hZFRvb0xhcmdlOlxuICAgICAgcmV0dXJuICdUaGUgcmVxdWVzdCBpcyBsYXJnZXIgdGhhbiB0aGUgc2VydmVyIGlzIHdpbGxpbmcgb3IgYWJsZSB0byBwcm9jZXNzLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5VcmlUb29Mb25nOlxuICAgICAgcmV0dXJuICdUaGUgVVJMIHByb3ZpZGVkIHdhcyB0b28gbG9uZyBmb3IgdGhlIHNlcnZlciB0byBwcm9jZXNzLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5VbnN1cHBvcnRlZE1lZGlhVHlwZTpcbiAgICAgIHJldHVybiAnVGhlIHJlcXVlc3QgZW50aXR5IGhhcyBhIG1lZGlhIHR5cGUgd2hpY2ggdGhlIHNlcnZlciBvciByZXNvdXJjZSBkb2VzIG5vdCBzdXBwb3J0Lic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5SYW5nZU5vdFNhdGlzZmlhYmxlOlxuICAgICAgcmV0dXJuICdUaGUgY2xpZW50IGhhcyBhc2tlZCBmb3IgYSBwb3J0aW9uIG9mIHRoZSBmaWxlLCBidXQgdGhlIHNlcnZlciBjYW5ub3Qgc3VwcGx5IHRoYXQgcG9ydGlvbi4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuRXhwZWN0YXRpb25GYWlsZWQ6XG4gICAgICByZXR1cm4gJ1RoZSBzZXJ2ZXIgY2Fubm90IG1lZXQgdGhlIHJlcXVpcmVtZW50cyBvZiB0aGUgRXhwZWN0IHJlcXVlc3QtaGVhZGVyIGZpZWxkLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5JbUFUZWFwb3Q6XG4gICAgICByZXR1cm4gJ0kgYW0gYSB0ZWFwb3QuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLk1pc2RpcmVjdGVkUmVxdWVzdDpcbiAgICAgIHJldHVybiAnVGhlIHJlcXVlc3Qgd2FzIGRpcmVjdGVkIGF0IGEgc2VydmVyIHRoYXQgaXMgbm90IGFibGUgdG8gcHJvZHVjZSBhIHJlc3BvbnNlLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5VbnByb2Nlc3NhYmxlRW50aXR5OlxuICAgICAgcmV0dXJuICdUaGUgcmVxdWVzdCB3YXMgd2VsbC1mb3JtZWQgYnV0IHdhcyB1bmFibGUgdG8gYmUgZm9sbG93ZWQgZHVlIHRvIHNlbWFudGljIGVycm9ycy4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTG9ja2VkOlxuICAgICAgcmV0dXJuICdUaGUgcmVzb3VyY2UgdGhhdCBpcyBiZWluZyBhY2Nlc3NlZCBpcyBsb2NrZWQuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkZhaWxlZERlcGVuZGVuY3k6XG4gICAgICByZXR1cm4gJ1RoZSByZXF1ZXN0IGZhaWxlZCBkdWUgdG8gZmFpbHVyZSBvZiBhIHByZXZpb3VzIHJlcXVlc3QuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlRvb0Vhcmx5OlxuICAgICAgcmV0dXJuICdUaGUgc2VydmVyIGlzIHVud2lsbGluZyB0byBwcm9jZXNzIHRoZSByZXF1ZXN0IGJlY2F1c2UgdGhlIHVzZXIgaGFzIG5vdCBiZWVuIGF1dGhlbnRpY2F0ZWQuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlVwZ3JhZGVSZXF1aXJlZDpcbiAgICAgIHJldHVybiAnVGhlIGNsaWVudCBzaG91bGQgc3dpdGNoIHRvIGEgZGlmZmVyZW50IHByb3RvY29sIHN1Y2ggYXMgVExTLzEuMCwgZ2l2ZW4gaW4gdGhlIFVwZ3JhZGUgaGVhZGVyIGZpZWxkLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5QcmVjb25kaXRpb25SZXF1aXJlZDpcbiAgICAgIHJldHVybiAnVGhlIG9yaWdpbiBzZXJ2ZXIgcmVxdWlyZXMgdGhlIHJlcXVlc3QgdG8gYmUgY29uZGl0aW9uYWwuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlRvb01hbnlSZXF1ZXN0czpcbiAgICAgIHJldHVybiAnWW91IGhhdmUgc2VudCB0b28gbWFueSByZXF1ZXN0cyBpbiBhIGdpdmVuIGFtb3VudCBvZiB0aW1lLiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5SZXF1ZXN0SGVhZGVyRmllbGRzVG9vTGFyZ2U6XG4gICAgICByZXR1cm4gJ1RoZSBzZXJ2ZXIgaXMgdW53aWxsaW5nIHRvIHByb2Nlc3MgdGhlIHJlcXVlc3QgYmVjYXVzZSBpdHMgaGVhZGVyIGZpZWxkcyBhcmUgdG9vIGxhcmdlLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5VbmF2YWlsYWJsZUZvckxlZ2FsUmVhc29uczpcbiAgICAgIHJldHVybiAnVGhlIHJlc291cmNlIGlzIHVuYXZhaWxhYmxlIGR1ZSB0byBhIGxlZ2FsIGRlbWFuZC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuSW50ZXJuYWxTZXJ2ZXJFcnJvcjpcbiAgICAgIHJldHVybiAnU29tZXRoaW5nIHdlbnQgd3Jvbmcgb24gb3VyIGVuZC4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTm90SW1wbGVtZW50ZWQ6XG4gICAgICByZXR1cm4gJ1RoZSBzZXJ2ZXIgZG9lcyBub3Qgc3VwcG9ydCB0aGUgZnVuY3Rpb25hbGl0eSByZXF1aXJlZCB0byBmdWxmaWxsIHRoZSByZXF1ZXN0Lic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5CYWRHYXRld2F5OlxuICAgICAgcmV0dXJuICdTb21ldGhpbmcgd2VudCB3cm9uZyBvbiBvdXIgZW5kLiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5TZXJ2aWNlVW5hdmFpbGFibGU6XG4gICAgICByZXR1cm4gJ1RoZSBzZXJ2ZXIgaXMgY3VycmVudGx5IHVuYWJsZSB0byBoYW5kbGUgdGhlIHJlcXVlc3QgZHVlIHRvIGEgdGVtcG9yYXJ5IG92ZXJsb2FkIG9yIG1haW50ZW5hbmNlIG9mIHRoZSBzZXJ2ZXIuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkdhdGV3YXlUaW1lb3V0OlxuICAgICAgcmV0dXJuICdUaGUgc2VydmVyLCB3aGlsZSBhY3RpbmcgYXMgYSBnYXRld2F5IG9yIHByb3h5LCBkaWQgbm90IHJlY2VpdmUgYSB0aW1lbHkgcmVzcG9uc2UgZnJvbSB0aGUgdXBzdHJlYW0gc2VydmVyIHNwZWNpZmllZCBieSB0aGUgVVJMIG9yIHNvbWUgb3RoZXIgYXV4aWxpYXJ5IHNlcnZlciBpdCBuZWVkZWQgdG8gYWNjZXNzIGluIGF0dGVtcHRpbmcgdG8gY29tcGxldGUgdGhlIHJlcXVlc3QuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkh0dHBWZXJzaW9uTm90U3VwcG9ydGVkOlxuICAgICAgcmV0dXJuICdUaGUgc2VydmVyIGRvZXMgbm90IHN1cHBvcnQgdGhlIEhUVFAgcHJvdG9jb2wgdmVyc2lvbiB1c2VkIGluIHRoZSByZXF1ZXN0Lic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5WYXJpYW50QWxzb05lZ290aWF0ZXM6XG4gICAgICByZXR1cm4gJ1RoZSBzZXJ2ZXIgaGFzIGFuIGludGVybmFsIGNvbmZpZ3VyYXRpb24gZXJyb3I6IHRoZSBjaG9zZW4gdmFyaWFudCByZXNvdXJjZSBpcyBjb25maWd1cmVkIHRvIGVuZ2FnZSBpbiB0cmFuc3BhcmVudCBjb250ZW50IG5lZ290aWF0aW9uIGl0c2VsZiwgYW5kIGlzIHRoZXJlZm9yZSBub3QgYSBwcm9wZXIgZW5kIHBvaW50IGluIHRoZSBuZWdvdGlhdGlvbiBwcm9jZXNzLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5JbnN1ZmZpY2llbnRTdG9yYWdlOlxuICAgICAgcmV0dXJuICdUaGUgbWV0aG9kIGNvdWxkIG5vdCBiZSBwZXJmb3JtZWQgb24gdGhlIHJlc291cmNlIGJlY2F1c2UgdGhlIHNlcnZlciBpcyB1bmFibGUgdG8gc3RvcmUgdGhlIHJlcHJlc2VudGF0aW9uIG5lZWRlZCB0byBzdWNjZXNzZnVsbHkgY29tcGxldGUgdGhlIHJlcXVlc3QuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkxvb3BEZXRlY3RlZDpcbiAgICAgIHJldHVybiAnVGhlIHNlcnZlciBkZXRlY3RlZCBhbiBpbmZpbml0ZSBsb29wIHdoaWxlIHByb2Nlc3NpbmcgdGhlIHJlcXVlc3QuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLk5vdEV4dGVuZGVkOlxuICAgICAgcmV0dXJuICdGdXJ0aGVyIGV4dGVuc2lvbnMgdG8gdGhlIHJlcXVlc3QgYXJlIHJlcXVpcmVkIGZvciB0aGUgc2VydmVyIHRvIGZ1bGZpbGwgaXQuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLk5ldHdvcmtBdXRoZW50aWNhdGlvblJlcXVpcmVkOlxuICAgICAgcmV0dXJuICdZb3UgbmVlZCB0byBhdXRoZW50aWNhdGUgdG8gZ2FpbiBuZXR3b3JrIGFjY2Vzcy4nO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gJ1NvbWV0aGluZyB3ZW50IHdyb25nLiBDaGVjayB5b3VyIGludGVybmV0IGNvbm5lY3Rpb24gYW5kIHRyeSBhZ2FpbiBsYXRlci4nO1xuICB9XG59O1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgZXhwb3J0QXM6ICdldFF1ZXJ5RXJyb3InLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBRVUVSWV9FUlJPUl9UT0tFTixcbiAgICAgIHVzZUV4aXN0aW5nOiBRdWVyeUVycm9yRGlyZWN0aXZlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFF1ZXJ5RXJyb3JEaXJlY3RpdmUge1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBnZXQgZXJyb3IoKTogUmVxdWVzdEVycm9yIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2Vycm9yKCk7XG4gIH1cbiAgc2V0IGVycm9yKHZhbHVlOiBSZXF1ZXN0RXJyb3IpIHtcbiAgICB0aGlzLl9lcnJvci5zZXQodmFsdWUpO1xuICB9XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Vycm9yID0gc2lnbmFsPFJlcXVlc3RFcnJvciB8IG51bGw+KG51bGwpO1xuXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gIHF1ZXJ5OiBBbnlRdWVyeSB8IEFueVF1ZXJ5Q29sbGVjdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gIHJlYWRvbmx5IGVycm9yTGlzdCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAoIXRoaXMuZXJyb3IpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHJldHJ5UmVzdWx0ID0gc2hvdWxkUmV0cnlSZXF1ZXN0KHsgZXJyb3I6IHRoaXMuZXJyb3IsIGN1cnJlbnRSZXRyeUNvdW50OiAwLCBoZWFkZXJzOiB7fSB9KTtcblxuICAgIGNvbnN0IGVycm9yTGlzdDogUXVlcnlFcnJvckxpc3QgPSB7XG4gICAgICBjYW5CZVJldHJpZWQ6IHJldHJ5UmVzdWx0LnJldHJ5LFxuICAgICAgcmV0cnlEZWxheTogcmV0cnlSZXN1bHQuZGVsYXkgPz8gMCxcbiAgICAgIGlzTGlzdDogZmFsc2UsXG4gICAgICBpdGVtczogW10sXG4gICAgICB0aXRsZTogdGhpcy5lcnJvci5zdGF0dXNUZXh0LFxuICAgIH07XG5cbiAgICBjb25zdCBkZXRhaWwgPSB0aGlzLmVycm9yLmRldGFpbDtcbiAgICBjb25zdCBkZWZhdWx0RXJyb3JNZXNzYWdlID0gYCR7Y29udmVydEh0dHBTdGF0dXNDb2RlVG9NZXNzYWdlKHRoaXMuZXJyb3Iuc3RhdHVzKX0gKENvZGU6ICR7dGhpcy5lcnJvci5zdGF0dXN9KWA7XG5cbiAgICBpZiAoaXNDbGFzc1ZhbGlkYXRvckVycm9yKGRldGFpbCkpIHtcbiAgICAgIGZvciAoY29uc3QgZXJyb3Igb2YgZGV0YWlsLm1lc3NhZ2UpIHtcbiAgICAgICAgZXJyb3JMaXN0Lml0ZW1zLnB1c2goeyBtZXNzYWdlOiBlcnJvciB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGlzU3ltZm9ueUZvcm1WaW9sYXRpb25MaXN0RXJyb3IoZGV0YWlsKSkge1xuICAgICAgZm9yIChjb25zdCB2aW9sYXRpb24gb2YgZGV0YWlsLnZpb2xhdGlvbnMpIHtcbiAgICAgICAgZXJyb3JMaXN0Lml0ZW1zLnB1c2goeyBtZXNzYWdlOiB2aW9sYXRpb24ubWVzc2FnZSB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBkZXRhaWwgPT09ICdvYmplY3QnICYmICEhZGV0YWlsICYmICdtZXNzYWdlJyBpbiBkZXRhaWwgJiYgdHlwZW9mIGRldGFpbC5tZXNzYWdlID09PSAnc3RyaW5nJykge1xuICAgICAgZXJyb3JMaXN0Lml0ZW1zLnB1c2goeyBtZXNzYWdlOiBkZXRhaWwubWVzc2FnZSB9KTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBkZXRhaWwgPT09ICdvYmplY3QnICYmICEhZGV0YWlsICYmICdkZXRhaWwnIGluIGRldGFpbCAmJiB0eXBlb2YgZGV0YWlsLmRldGFpbCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vIFN5bWZvbnkgZXJyb3IgcmVzcG9uc2UgKGR1cmluZyBkZXZlbG9wbWVudClcbiAgICAgIGVycm9yTGlzdC5pdGVtcy5wdXNoKHsgbWVzc2FnZTogZGV0YWlsLmRldGFpbCB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZXJyb3JMaXN0Lml0ZW1zLnB1c2goeyBtZXNzYWdlOiBkZWZhdWx0RXJyb3JNZXNzYWdlIH0pO1xuICAgIH1cblxuICAgIGVycm9yTGlzdC5pc0xpc3QgPSBlcnJvckxpc3QuaXRlbXMubGVuZ3RoID4gMTtcblxuICAgIGlmIChlcnJvckxpc3QuaXRlbXMubGVuZ3RoID09PSAxKSB7XG4gICAgICBjb25zdCBjb21wYXJlU3RyaW5nID0gKHN0cjogc3RyaW5nKSA9PiBzdHIudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9cXHMvZywgJycpLnJlcGxhY2UoL1xcLnwsL2csICcnKTtcblxuICAgICAgaWYgKGNvbXBhcmVTdHJpbmcoZXJyb3JMaXN0Lml0ZW1zWzBdLm1lc3NhZ2UpID09PSBjb21wYXJlU3RyaW5nKGVycm9yTGlzdC50aXRsZSkpIHtcbiAgICAgICAgLy8gT2Z0ZW4gdGhlIGVycm9yIHRpdGxlIGlzIHRoZSBzYW1lIGFzIHRoZSBlcnJvciBtZXNzYWdlLiBJbiB0aGlzIGNhc2Ugd2Ugc2ltcGx5IHVzZSB0aGUgZGVmYXVsdCBlcnJvciBtZXNzYWdlIGFzIGEgbWVzc2FnZS5cbiAgICAgICAgLy8gVGhpcyB3YXkgdGhlIHNhbWUgdGV4dCBpcyBhdCBsZWFzdCBub3QgZGlzcGxheWVkIHR3aWNlLlxuICAgICAgICBlcnJvckxpc3QuaXRlbXNbMF0ubWVzc2FnZSA9IGRlZmF1bHRFcnJvck1lc3NhZ2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGVycm9yTGlzdDtcbiAgfSk7XG59XG4iXX0=
174
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktZXJyb3IuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL3F1ZXJ5LWVycm9yL2RpcmVjdGl2ZXMvcXVlcnktZXJyb3IvcXVlcnktZXJyb3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFLTCxxQkFBcUIsRUFDckIsK0JBQStCLEVBQy9CLGtCQUFrQixHQUNuQixNQUFNLGdCQUFnQixDQUFDOztBQUd4QixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FBc0IsNkJBQTZCLENBQUMsQ0FBQztBQUV4RyxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxDQUFDLFVBQTBCLEVBQUUsRUFBRTtJQUMzRSxRQUFRLFVBQVUsRUFBRTtRQUNsQjtZQUNFLE9BQU8sbUVBQW1FLENBQUM7UUFDN0U7WUFDRSxPQUFPLDJFQUEyRSxDQUFDO1FBQ3JGO1lBQ0UsT0FBTyw4Q0FBOEMsQ0FBQztRQUN4RDtZQUNFLE9BQU8sb0RBQW9ELENBQUM7UUFDOUQ7WUFDRSxPQUFPLHVDQUF1QyxDQUFDO1FBQ2pEO1lBQ0UsT0FBTyx3REFBd0QsQ0FBQztRQUNsRTtZQUNFLE9BQU8sd0dBQXdHLENBQUM7UUFDbEg7WUFDRSxPQUFPLDJEQUEyRCxDQUFDO1FBQ3JFO1lBQ0UsT0FBTywrQ0FBK0MsQ0FBQztRQUN6RDtZQUNFLE9BQU8sK0RBQStELENBQUM7UUFDekU7WUFDRSxPQUFPLGdGQUFnRixDQUFDO1FBQzFGO1lBQ0UsT0FBTyxxR0FBcUcsQ0FBQztRQUMvRztZQUNFLE9BQU8sMEZBQTBGLENBQUM7UUFDcEc7WUFDRSxPQUFPLHNFQUFzRSxDQUFDO1FBQ2hGO1lBQ0UsT0FBTywwREFBMEQsQ0FBQztRQUNwRTtZQUNFLE9BQU8sb0ZBQW9GLENBQUM7UUFDOUY7WUFDRSxPQUFPLDRGQUE0RixDQUFDO1FBQ3RHO1lBQ0UsT0FBTyw2RUFBNkUsQ0FBQztRQUN2RjtZQUNFLE9BQU8sZ0JBQWdCLENBQUM7UUFDMUI7WUFDRSxPQUFPLDhFQUE4RSxDQUFDO1FBQ3hGO1lBQ0UsT0FBTyxtRkFBbUYsQ0FBQztRQUM3RjtZQUNFLE9BQU8sZ0RBQWdELENBQUM7UUFDMUQ7WUFDRSxPQUFPLDBEQUEwRCxDQUFDO1FBQ3BFO1lBQ0UsT0FBTyw2RkFBNkYsQ0FBQztRQUN2RztZQUNFLE9BQU8sc0dBQXNHLENBQUM7UUFDaEg7WUFDRSxPQUFPLDJEQUEyRCxDQUFDO1FBQ3JFO1lBQ0UsT0FBTyxvRkFBb0YsQ0FBQztRQUM5RjtZQUNFLE9BQU8seUZBQXlGLENBQUM7UUFDbkc7WUFDRSxPQUFPLG9EQUFvRCxDQUFDO1FBQzlEO1lBQ0UsT0FBTywwREFBMEQsQ0FBQztRQUNwRTtZQUNFLE9BQU8sZ0ZBQWdGLENBQUM7UUFDMUY7WUFDRSxPQUFPLDBEQUEwRCxDQUFDO1FBQ3BFO1lBQ0UsT0FBTyxnSEFBZ0gsQ0FBQztRQUMxSDtZQUNFLE9BQU8sMk5BQTJOLENBQUM7UUFDck87WUFDRSxPQUFPLDRFQUE0RSxDQUFDO1FBQ3RGO1lBQ0UsT0FBTyxvTkFBb04sQ0FBQztRQUM5TjtZQUNFLE9BQU8seUpBQXlKLENBQUM7UUFDbks7WUFDRSxPQUFPLG9FQUFvRSxDQUFDO1FBQzlFO1lBQ0UsT0FBTyw4RUFBOEUsQ0FBQztRQUN4RjtZQUNFLE9BQU8sa0RBQWtELENBQUM7UUFDNUQ7WUFDRSxPQUFPLDJFQUEyRSxDQUFDO0tBQ3RGO0FBQ0gsQ0FBQyxDQUFDO0FBWUYsTUFBTSxPQUFPLG1CQUFtQjtJQVZoQztRQWtCbUIsV0FBTSxHQUFHLE1BQU0sQ0FBc0IsSUFBSSxDQUFDLENBQUM7UUFHNUQsVUFBSyxHQUF5QyxJQUFJLENBQUM7UUFFMUMsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ2YsT0FBTyxJQUFJLENBQUM7YUFDYjtZQUVELE1BQU0sV0FBVyxHQUFHLGtCQUFrQixDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBRWpHLE1BQU0sU0FBUyxHQUFtQjtnQkFDaEMsWUFBWSxFQUFFLFdBQVcsQ0FBQyxLQUFLO2dCQUMvQixVQUFVLEVBQUUsV0FBVyxDQUFDLEtBQUssSUFBSSxDQUFDO2dCQUNsQyxNQUFNLEVBQUUsS0FBSztnQkFDYixLQUFLLEVBQUUsRUFBRTtnQkFDVCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVO2FBQzdCLENBQUM7WUFFRixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNqQyxNQUFNLG1CQUFtQixHQUFHLEdBQUcsOEJBQThCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBRWhILElBQUkscUJBQXFCLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ2pDLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRTtvQkFDbEMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztpQkFDMUM7YUFDRjtpQkFBTSxJQUFJLCtCQUErQixDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNsRCxLQUFLLE1BQU0sU0FBUyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUU7b0JBQ3pDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO2lCQUN0RDthQUNGO2lCQUFNLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBQyxNQUFNLElBQUksU0FBUyxJQUFJLE1BQU0sSUFBSSxPQUFPLE1BQU0sQ0FBQyxPQUFPLEtBQUssUUFBUSxFQUFFO2dCQUM5RyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQzthQUNuRDtpQkFBTSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLFFBQVEsSUFBSSxNQUFNLElBQUksT0FBTyxNQUFNLENBQUMsTUFBTSxLQUFLLFFBQVEsRUFBRTtnQkFDNUcsOENBQThDO2dCQUM5QyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQzthQUNsRDtpQkFBTTtnQkFDTCxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUM7YUFDeEQ7WUFFRCxTQUFTLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUU5QyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDaEMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBRWpHLElBQUksYUFBYSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssYUFBYSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFDakYsNkhBQTZIO29CQUM3SCwwREFBMEQ7b0JBQzFELFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFFLENBQUMsT0FBTyxHQUFHLG1CQUFtQixDQUFDO2lCQUNuRDthQUNGO1lBRUQsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7S0FDSjtJQTdEQyxJQUNJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsS0FBbUI7UUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQzs4R0FQVSxtQkFBbUI7a0dBQW5CLG1CQUFtQiw2RUFQbkI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsbUJBQW1CO2FBQ2pDO1NBQ0Y7OzJGQUVVLG1CQUFtQjtrQkFWL0IsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLHFCQUFxQjt5QkFDakM7cUJBQ0Y7aUJBQ0Y7OEJBR0ssS0FBSztzQkFEUixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFVekIsS0FBSztzQkFESixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5qZWN0aW9uVG9rZW4sIElucHV0LCBjb21wdXRlZCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBbnlRdWVyeSxcbiAgQW55UXVlcnlDb2xsZWN0aW9uLFxuICBIdHRwU3RhdHVzQ29kZSxcbiAgUmVxdWVzdEVycm9yLFxuICBpc0NsYXNzVmFsaWRhdG9yRXJyb3IsXG4gIGlzU3ltZm9ueUZvcm1WaW9sYXRpb25MaXN0RXJyb3IsXG4gIHNob3VsZFJldHJ5UmVxdWVzdCxcbn0gZnJvbSAnQGV0aGxldGUvcXVlcnknO1xuaW1wb3J0IHsgUXVlcnlFcnJvckxpc3QgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBRVUVSWV9FUlJPUl9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxRdWVyeUVycm9yRGlyZWN0aXZlPignUVVFUllfRVJST1JfRElSRUNUSVZFX1RPS0VOJyk7XG5cbmV4cG9ydCBjb25zdCBjb252ZXJ0SHR0cFN0YXR1c0NvZGVUb01lc3NhZ2UgPSAoc3RhdHVzQ29kZTogSHR0cFN0YXR1c0NvZGUpID0+IHtcbiAgc3dpdGNoIChzdGF0dXNDb2RlKSB7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5CYWRSZXF1ZXN0OlxuICAgICAgcmV0dXJuICdTb3JyeSwgd2UgY291bGQgbm90IHByb2Nlc3MgeW91ciByZXF1ZXN0LiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5VbmF1dGhvcml6ZWQ6XG4gICAgICByZXR1cm4gJ1lvdSBhcmUgbm90IGF1dGhvcml6ZWQgdG8gcGVyZm9ybSB0aGlzIGFjdGlvbi4gUGxlYXNlIGxvZyBpbiB0byBjb250aW51ZS4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuUGF5bWVudFJlcXVpcmVkOlxuICAgICAgcmV0dXJuICdQYXltZW50IGlzIHJlcXVpcmVkIHRvIGNvbXBsZXRlIHRoaXMgYWN0aW9uLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Gb3JiaWRkZW46XG4gICAgICByZXR1cm4gJ1lvdSBkbyBub3QgaGF2ZSBwZXJtaXNzaW9uIHRvIHBlcmZvcm0gdGhpcyBhY3Rpb24uJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLk5vdEZvdW5kOlxuICAgICAgcmV0dXJuICdUaGUgcmVxdWVzdGVkIHJlc291cmNlIHdhcyBub3QgZm91bmQuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLk1ldGhvZE5vdEFsbG93ZWQ6XG4gICAgICByZXR1cm4gJ1RoZSByZXF1ZXN0ZWQgbWV0aG9kIGlzIG5vdCBhbGxvd2VkIGZvciB0aGlzIHJlc291cmNlLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Ob3RBY2NlcHRhYmxlOlxuICAgICAgcmV0dXJuICdUaGUgcmVxdWVzdGVkIHJlc291cmNlIGlzIG5vdCBjYXBhYmxlIG9mIGdlbmVyYXRpbmcgYSByZXNwb25zZSBtYXRjaGluZyB0aGUgbGlzdCBvZiBhY2NlcHRhYmxlIHZhbHVlcy4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuUHJveHlBdXRoZW50aWNhdGlvblJlcXVpcmVkOlxuICAgICAgcmV0dXJuICdQcm94eSBhdXRoZW50aWNhdGlvbiBpcyByZXF1aXJlZCB0byBjb21wbGV0ZSB0aGlzIGFjdGlvbi4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuUmVxdWVzdFRpbWVvdXQ6XG4gICAgICByZXR1cm4gJ1RoZSBzZXJ2ZXIgdGltZWQgb3V0IHdhaXRpbmcgZm9yIHRoZSByZXF1ZXN0Lic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Db25mbGljdDpcbiAgICAgIHJldHVybiAnVGhlIHJlcXVlc3QgY29uZmxpY3RzIHdpdGggdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIHJlc291cmNlLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Hb25lOlxuICAgICAgcmV0dXJuICdUaGUgcmVxdWVzdGVkIHJlc291cmNlIGlzIG5vIGxvbmdlciBhdmFpbGFibGUgYW5kIHdpbGwgbm90IGJlIGF2YWlsYWJsZSBhZ2Fpbi4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTGVuZ3RoUmVxdWlyZWQ6XG4gICAgICByZXR1cm4gJ1RoZSByZXF1ZXN0IGRpZCBub3Qgc3BlY2lmeSB0aGUgbGVuZ3RoIG9mIGl0cyBjb250ZW50LCB3aGljaCBpcyByZXF1aXJlZCBieSB0aGUgcmVxdWVzdGVkIHJlc291cmNlLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5QcmVjb25kaXRpb25GYWlsZWQ6XG4gICAgICByZXR1cm4gJ1RoZSBzZXJ2ZXIgZG9lcyBub3QgbWVldCBvbmUgb2YgdGhlIHByZWNvbmRpdGlvbnMgdGhhdCB0aGUgcmVxdWVzdGVyIHB1dCBvbiB0aGUgcmVxdWVzdC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuUGF5bG9hZFRvb0xhcmdlOlxuICAgICAgcmV0dXJuICdUaGUgcmVxdWVzdCBpcyBsYXJnZXIgdGhhbiB0aGUgc2VydmVyIGlzIHdpbGxpbmcgb3IgYWJsZSB0byBwcm9jZXNzLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5VcmlUb29Mb25nOlxuICAgICAgcmV0dXJuICdUaGUgVVJMIHByb3ZpZGVkIHdhcyB0b28gbG9uZyBmb3IgdGhlIHNlcnZlciB0byBwcm9jZXNzLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5VbnN1cHBvcnRlZE1lZGlhVHlwZTpcbiAgICAgIHJldHVybiAnVGhlIHJlcXVlc3QgZW50aXR5IGhhcyBhIG1lZGlhIHR5cGUgd2hpY2ggdGhlIHNlcnZlciBvciByZXNvdXJjZSBkb2VzIG5vdCBzdXBwb3J0Lic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5SYW5nZU5vdFNhdGlzZmlhYmxlOlxuICAgICAgcmV0dXJuICdUaGUgY2xpZW50IGhhcyBhc2tlZCBmb3IgYSBwb3J0aW9uIG9mIHRoZSBmaWxlLCBidXQgdGhlIHNlcnZlciBjYW5ub3Qgc3VwcGx5IHRoYXQgcG9ydGlvbi4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuRXhwZWN0YXRpb25GYWlsZWQ6XG4gICAgICByZXR1cm4gJ1RoZSBzZXJ2ZXIgY2Fubm90IG1lZXQgdGhlIHJlcXVpcmVtZW50cyBvZiB0aGUgRXhwZWN0IHJlcXVlc3QtaGVhZGVyIGZpZWxkLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5JbUFUZWFwb3Q6XG4gICAgICByZXR1cm4gJ0kgYW0gYSB0ZWFwb3QuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLk1pc2RpcmVjdGVkUmVxdWVzdDpcbiAgICAgIHJldHVybiAnVGhlIHJlcXVlc3Qgd2FzIGRpcmVjdGVkIGF0IGEgc2VydmVyIHRoYXQgaXMgbm90IGFibGUgdG8gcHJvZHVjZSBhIHJlc3BvbnNlLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5VbnByb2Nlc3NhYmxlRW50aXR5OlxuICAgICAgcmV0dXJuICdUaGUgcmVxdWVzdCB3YXMgd2VsbC1mb3JtZWQgYnV0IHdhcyB1bmFibGUgdG8gYmUgZm9sbG93ZWQgZHVlIHRvIHNlbWFudGljIGVycm9ycy4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTG9ja2VkOlxuICAgICAgcmV0dXJuICdUaGUgcmVzb3VyY2UgdGhhdCBpcyBiZWluZyBhY2Nlc3NlZCBpcyBsb2NrZWQuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkZhaWxlZERlcGVuZGVuY3k6XG4gICAgICByZXR1cm4gJ1RoZSByZXF1ZXN0IGZhaWxlZCBkdWUgdG8gZmFpbHVyZSBvZiBhIHByZXZpb3VzIHJlcXVlc3QuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlRvb0Vhcmx5OlxuICAgICAgcmV0dXJuICdUaGUgc2VydmVyIGlzIHVud2lsbGluZyB0byBwcm9jZXNzIHRoZSByZXF1ZXN0IGJlY2F1c2UgdGhlIHVzZXIgaGFzIG5vdCBiZWVuIGF1dGhlbnRpY2F0ZWQuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlVwZ3JhZGVSZXF1aXJlZDpcbiAgICAgIHJldHVybiAnVGhlIGNsaWVudCBzaG91bGQgc3dpdGNoIHRvIGEgZGlmZmVyZW50IHByb3RvY29sIHN1Y2ggYXMgVExTLzEuMCwgZ2l2ZW4gaW4gdGhlIFVwZ3JhZGUgaGVhZGVyIGZpZWxkLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5QcmVjb25kaXRpb25SZXF1aXJlZDpcbiAgICAgIHJldHVybiAnVGhlIG9yaWdpbiBzZXJ2ZXIgcmVxdWlyZXMgdGhlIHJlcXVlc3QgdG8gYmUgY29uZGl0aW9uYWwuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlRvb01hbnlSZXF1ZXN0czpcbiAgICAgIHJldHVybiAnWW91IGhhdmUgc2VudCB0b28gbWFueSByZXF1ZXN0cyBpbiBhIGdpdmVuIGFtb3VudCBvZiB0aW1lLiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5SZXF1ZXN0SGVhZGVyRmllbGRzVG9vTGFyZ2U6XG4gICAgICByZXR1cm4gJ1RoZSBzZXJ2ZXIgaXMgdW53aWxsaW5nIHRvIHByb2Nlc3MgdGhlIHJlcXVlc3QgYmVjYXVzZSBpdHMgaGVhZGVyIGZpZWxkcyBhcmUgdG9vIGxhcmdlLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5VbmF2YWlsYWJsZUZvckxlZ2FsUmVhc29uczpcbiAgICAgIHJldHVybiAnVGhlIHJlc291cmNlIGlzIHVuYXZhaWxhYmxlIGR1ZSB0byBhIGxlZ2FsIGRlbWFuZC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuSW50ZXJuYWxTZXJ2ZXJFcnJvcjpcbiAgICAgIHJldHVybiAnU29tZXRoaW5nIHdlbnQgd3Jvbmcgb24gb3VyIGVuZC4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTm90SW1wbGVtZW50ZWQ6XG4gICAgICByZXR1cm4gJ1RoZSBzZXJ2ZXIgZG9lcyBub3Qgc3VwcG9ydCB0aGUgZnVuY3Rpb25hbGl0eSByZXF1aXJlZCB0byBmdWxmaWxsIHRoZSByZXF1ZXN0Lic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5CYWRHYXRld2F5OlxuICAgICAgcmV0dXJuICdTb21ldGhpbmcgd2VudCB3cm9uZyBvbiBvdXIgZW5kLiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5TZXJ2aWNlVW5hdmFpbGFibGU6XG4gICAgICByZXR1cm4gJ1RoZSBzZXJ2ZXIgaXMgY3VycmVudGx5IHVuYWJsZSB0byBoYW5kbGUgdGhlIHJlcXVlc3QgZHVlIHRvIGEgdGVtcG9yYXJ5IG92ZXJsb2FkIG9yIG1haW50ZW5hbmNlIG9mIHRoZSBzZXJ2ZXIuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkdhdGV3YXlUaW1lb3V0OlxuICAgICAgcmV0dXJuICdUaGUgc2VydmVyLCB3aGlsZSBhY3RpbmcgYXMgYSBnYXRld2F5IG9yIHByb3h5LCBkaWQgbm90IHJlY2VpdmUgYSB0aW1lbHkgcmVzcG9uc2UgZnJvbSB0aGUgdXBzdHJlYW0gc2VydmVyIHNwZWNpZmllZCBieSB0aGUgVVJMIG9yIHNvbWUgb3RoZXIgYXV4aWxpYXJ5IHNlcnZlciBpdCBuZWVkZWQgdG8gYWNjZXNzIGluIGF0dGVtcHRpbmcgdG8gY29tcGxldGUgdGhlIHJlcXVlc3QuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkh0dHBWZXJzaW9uTm90U3VwcG9ydGVkOlxuICAgICAgcmV0dXJuICdUaGUgc2VydmVyIGRvZXMgbm90IHN1cHBvcnQgdGhlIEhUVFAgcHJvdG9jb2wgdmVyc2lvbiB1c2VkIGluIHRoZSByZXF1ZXN0Lic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5WYXJpYW50QWxzb05lZ290aWF0ZXM6XG4gICAgICByZXR1cm4gJ1RoZSBzZXJ2ZXIgaGFzIGFuIGludGVybmFsIGNvbmZpZ3VyYXRpb24gZXJyb3I6IHRoZSBjaG9zZW4gdmFyaWFudCByZXNvdXJjZSBpcyBjb25maWd1cmVkIHRvIGVuZ2FnZSBpbiB0cmFuc3BhcmVudCBjb250ZW50IG5lZ290aWF0aW9uIGl0c2VsZiwgYW5kIGlzIHRoZXJlZm9yZSBub3QgYSBwcm9wZXIgZW5kIHBvaW50IGluIHRoZSBuZWdvdGlhdGlvbiBwcm9jZXNzLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5JbnN1ZmZpY2llbnRTdG9yYWdlOlxuICAgICAgcmV0dXJuICdUaGUgbWV0aG9kIGNvdWxkIG5vdCBiZSBwZXJmb3JtZWQgb24gdGhlIHJlc291cmNlIGJlY2F1c2UgdGhlIHNlcnZlciBpcyB1bmFibGUgdG8gc3RvcmUgdGhlIHJlcHJlc2VudGF0aW9uIG5lZWRlZCB0byBzdWNjZXNzZnVsbHkgY29tcGxldGUgdGhlIHJlcXVlc3QuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkxvb3BEZXRlY3RlZDpcbiAgICAgIHJldHVybiAnVGhlIHNlcnZlciBkZXRlY3RlZCBhbiBpbmZpbml0ZSBsb29wIHdoaWxlIHByb2Nlc3NpbmcgdGhlIHJlcXVlc3QuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLk5vdEV4dGVuZGVkOlxuICAgICAgcmV0dXJuICdGdXJ0aGVyIGV4dGVuc2lvbnMgdG8gdGhlIHJlcXVlc3QgYXJlIHJlcXVpcmVkIGZvciB0aGUgc2VydmVyIHRvIGZ1bGZpbGwgaXQuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLk5ldHdvcmtBdXRoZW50aWNhdGlvblJlcXVpcmVkOlxuICAgICAgcmV0dXJuICdZb3UgbmVlZCB0byBhdXRoZW50aWNhdGUgdG8gZ2FpbiBuZXR3b3JrIGFjY2Vzcy4nO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gJ1NvbWV0aGluZyB3ZW50IHdyb25nLiBDaGVjayB5b3VyIGludGVybmV0IGNvbm5lY3Rpb24gYW5kIHRyeSBhZ2FpbiBsYXRlci4nO1xuICB9XG59O1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgZXhwb3J0QXM6ICdldFF1ZXJ5RXJyb3InLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBRVUVSWV9FUlJPUl9UT0tFTixcbiAgICAgIHVzZUV4aXN0aW5nOiBRdWVyeUVycm9yRGlyZWN0aXZlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFF1ZXJ5RXJyb3JEaXJlY3RpdmUge1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBnZXQgZXJyb3IoKTogUmVxdWVzdEVycm9yIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2Vycm9yKCk7XG4gIH1cbiAgc2V0IGVycm9yKHZhbHVlOiBSZXF1ZXN0RXJyb3IpIHtcbiAgICB0aGlzLl9lcnJvci5zZXQodmFsdWUpO1xuICB9XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Vycm9yID0gc2lnbmFsPFJlcXVlc3RFcnJvciB8IG51bGw+KG51bGwpO1xuXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gIHF1ZXJ5OiBBbnlRdWVyeSB8IEFueVF1ZXJ5Q29sbGVjdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gIHJlYWRvbmx5IGVycm9yTGlzdCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAoIXRoaXMuZXJyb3IpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHJldHJ5UmVzdWx0ID0gc2hvdWxkUmV0cnlSZXF1ZXN0KHsgZXJyb3I6IHRoaXMuZXJyb3IsIGN1cnJlbnRSZXRyeUNvdW50OiAwLCBoZWFkZXJzOiB7fSB9KTtcblxuICAgIGNvbnN0IGVycm9yTGlzdDogUXVlcnlFcnJvckxpc3QgPSB7XG4gICAgICBjYW5CZVJldHJpZWQ6IHJldHJ5UmVzdWx0LnJldHJ5LFxuICAgICAgcmV0cnlEZWxheTogcmV0cnlSZXN1bHQuZGVsYXkgPz8gMCxcbiAgICAgIGlzTGlzdDogZmFsc2UsXG4gICAgICBpdGVtczogW10sXG4gICAgICB0aXRsZTogdGhpcy5lcnJvci5zdGF0dXNUZXh0LFxuICAgIH07XG5cbiAgICBjb25zdCBkZXRhaWwgPSB0aGlzLmVycm9yLmRldGFpbDtcbiAgICBjb25zdCBkZWZhdWx0RXJyb3JNZXNzYWdlID0gYCR7Y29udmVydEh0dHBTdGF0dXNDb2RlVG9NZXNzYWdlKHRoaXMuZXJyb3Iuc3RhdHVzKX0gKENvZGU6ICR7dGhpcy5lcnJvci5zdGF0dXN9KWA7XG5cbiAgICBpZiAoaXNDbGFzc1ZhbGlkYXRvckVycm9yKGRldGFpbCkpIHtcbiAgICAgIGZvciAoY29uc3QgZXJyb3Igb2YgZGV0YWlsLm1lc3NhZ2UpIHtcbiAgICAgICAgZXJyb3JMaXN0Lml0ZW1zLnB1c2goeyBtZXNzYWdlOiBlcnJvciB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGlzU3ltZm9ueUZvcm1WaW9sYXRpb25MaXN0RXJyb3IoZGV0YWlsKSkge1xuICAgICAgZm9yIChjb25zdCB2aW9sYXRpb24gb2YgZGV0YWlsLnZpb2xhdGlvbnMpIHtcbiAgICAgICAgZXJyb3JMaXN0Lml0ZW1zLnB1c2goeyBtZXNzYWdlOiB2aW9sYXRpb24ubWVzc2FnZSB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBkZXRhaWwgPT09ICdvYmplY3QnICYmICEhZGV0YWlsICYmICdtZXNzYWdlJyBpbiBkZXRhaWwgJiYgdHlwZW9mIGRldGFpbC5tZXNzYWdlID09PSAnc3RyaW5nJykge1xuICAgICAgZXJyb3JMaXN0Lml0ZW1zLnB1c2goeyBtZXNzYWdlOiBkZXRhaWwubWVzc2FnZSB9KTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBkZXRhaWwgPT09ICdvYmplY3QnICYmICEhZGV0YWlsICYmICdkZXRhaWwnIGluIGRldGFpbCAmJiB0eXBlb2YgZGV0YWlsLmRldGFpbCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vIFN5bWZvbnkgZXJyb3IgcmVzcG9uc2UgKGR1cmluZyBkZXZlbG9wbWVudClcbiAgICAgIGVycm9yTGlzdC5pdGVtcy5wdXNoKHsgbWVzc2FnZTogZGV0YWlsLmRldGFpbCB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZXJyb3JMaXN0Lml0ZW1zLnB1c2goeyBtZXNzYWdlOiBkZWZhdWx0RXJyb3JNZXNzYWdlIH0pO1xuICAgIH1cblxuICAgIGVycm9yTGlzdC5pc0xpc3QgPSBlcnJvckxpc3QuaXRlbXMubGVuZ3RoID4gMTtcblxuICAgIGlmIChlcnJvckxpc3QuaXRlbXMubGVuZ3RoID09PSAxKSB7XG4gICAgICBjb25zdCBjb21wYXJlU3RyaW5nID0gKHN0cjogc3RyaW5nKSA9PiBzdHIudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9cXHMvZywgJycpLnJlcGxhY2UoL1xcLnwsL2csICcnKTtcblxuICAgICAgaWYgKGNvbXBhcmVTdHJpbmcoZXJyb3JMaXN0Lml0ZW1zWzBdIS5tZXNzYWdlKSA9PT0gY29tcGFyZVN0cmluZyhlcnJvckxpc3QudGl0bGUpKSB7XG4gICAgICAgIC8vIE9mdGVuIHRoZSBlcnJvciB0aXRsZSBpcyB0aGUgc2FtZSBhcyB0aGUgZXJyb3IgbWVzc2FnZS4gSW4gdGhpcyBjYXNlIHdlIHNpbXBseSB1c2UgdGhlIGRlZmF1bHQgZXJyb3IgbWVzc2FnZSBhcyBhIG1lc3NhZ2UuXG4gICAgICAgIC8vIFRoaXMgd2F5IHRoZSBzYW1lIHRleHQgaXMgYXQgbGVhc3Qgbm90IGRpc3BsYXllZCB0d2ljZS5cbiAgICAgICAgZXJyb3JMaXN0Lml0ZW1zWzBdIS5tZXNzYWdlID0gZGVmYXVsdEVycm9yTWVzc2FnZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZXJyb3JMaXN0O1xuICB9KTtcbn1cbiJdfQ==