@ethlete/cdk 4.44.0 → 4.46.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 (275) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/esm2022/lib/components/accordion/components/accordion/accordion.component.mjs +4 -4
  3. package/esm2022/lib/components/accordion/components/accordion-group/accordion-group.component.mjs +4 -4
  4. package/esm2022/lib/components/accordion/partials/accordion-hint/accordion-hint.directive.mjs +4 -4
  5. package/esm2022/lib/components/accordion/partials/accordion-hint-wrapper/accordion-hint-wrapper.directive.mjs +4 -4
  6. package/esm2022/lib/components/accordion/partials/accordion-label/accordion-label.directive.mjs +4 -4
  7. package/esm2022/lib/components/accordion/partials/accordion-label-wrapper/accordion-label-wrapper.directive.mjs +4 -4
  8. package/esm2022/lib/components/bracket/components/bracket/bracket.component.mjs +4 -4
  9. package/esm2022/lib/components/bracket/components/new-bracket/bracket-new.mjs +782 -0
  10. package/esm2022/lib/components/bracket/components/new-bracket/draw-man.mjs +66 -0
  11. package/esm2022/lib/components/bracket/components/new-bracket/grid-definitions.mjs +47 -0
  12. package/esm2022/lib/components/bracket/components/new-bracket/grid-placements.mjs +97 -0
  13. package/esm2022/lib/components/bracket/components/new-bracket/index.mjs +8 -0
  14. package/esm2022/lib/components/bracket/components/new-bracket/new-bracket-default-match.component.mjs +17 -0
  15. package/esm2022/lib/components/bracket/components/new-bracket/new-bracket-default-round-header.component.mjs +16 -0
  16. package/esm2022/lib/components/bracket/components/new-bracket/new-bracket.component.mjs +54 -0
  17. package/esm2022/lib/components/bracket/directives/bracket-match/bracket-match.directive.mjs +4 -4
  18. package/esm2022/lib/components/bracket/directives/bracket-round/bracket-round.directive.mjs +4 -4
  19. package/esm2022/lib/components/bracket/partials/bracket-match/bracket-match.component.mjs +4 -4
  20. package/esm2022/lib/components/bracket/partials/bracket-round-header/bracket-round-header.component.mjs +4 -4
  21. package/esm2022/lib/components/bracket/public-api/index.mjs +2 -1
  22. package/esm2022/lib/components/button/components/button/button.component.mjs +4 -4
  23. package/esm2022/lib/components/button/components/query-button/query-button.component.mjs +4 -4
  24. package/esm2022/lib/components/button/directives/button/button.directive.mjs +4 -4
  25. package/esm2022/lib/components/button/directives/query-button/query-button.directive.mjs +4 -4
  26. package/esm2022/lib/components/carousel/carousel.component.mjs +4 -4
  27. package/esm2022/lib/components/carousel/carousel.directive.mjs +4 -4
  28. package/esm2022/lib/components/carousel/controls/carousel-item-nav.component.mjs +4 -4
  29. package/esm2022/lib/components/carousel/controls/carousel-item-nav.directive.mjs +4 -4
  30. package/esm2022/lib/components/carousel/controls/carousel-next-button.directive.mjs +4 -4
  31. package/esm2022/lib/components/carousel/controls/carousel-previous-button.directive.mjs +4 -4
  32. package/esm2022/lib/components/carousel/controls/carousel-toggle-auto-play-button.directive.mjs +4 -4
  33. package/esm2022/lib/components/carousel/et-carousel-item.component.mjs +4 -4
  34. package/esm2022/lib/components/carousel/et-carousel-item.directive.mjs +4 -4
  35. package/esm2022/lib/components/filter/rich-filter/components/rich-filter-host/rich-filter-host.component.mjs +4 -4
  36. package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-button/rich-filter-button.directive.mjs +4 -4
  37. package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-button-slot/rich-filter-button-slot.directive.mjs +4 -4
  38. package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-content/rich-filter-content.directive.mjs +4 -4
  39. package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-top/rich-filter-top.directive.mjs +4 -4
  40. package/esm2022/lib/components/forms/components/checkbox/components/checkbox/checkbox.component.mjs +4 -4
  41. package/esm2022/lib/components/forms/components/checkbox/components/checkbox-field/checkbox-field.component.mjs +4 -4
  42. package/esm2022/lib/components/forms/components/checkbox/components/checkbox-group/checkbox-group.component.mjs +4 -4
  43. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox/checkbox.directive.mjs +4 -4
  44. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-field/checkbox-field.directive.mjs +4 -4
  45. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-group/checkbox-group.directive.mjs +4 -4
  46. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-group-control/checkbox-group-control.directive.mjs +4 -4
  47. package/esm2022/lib/components/forms/components/error/components/error/error.component.mjs +4 -4
  48. package/esm2022/lib/components/forms/components/input/components/color-input/color-input.component.mjs +4 -4
  49. package/esm2022/lib/components/forms/components/input/components/date-input/date-input.component.mjs +4 -4
  50. package/esm2022/lib/components/forms/components/input/components/date-time-input/date-time-input.component.mjs +4 -4
  51. package/esm2022/lib/components/forms/components/input/components/email-input/email-input.component.mjs +4 -4
  52. package/esm2022/lib/components/forms/components/input/components/input-field/input-field.component.mjs +4 -4
  53. package/esm2022/lib/components/forms/components/input/components/number-input/number-input.component.mjs +4 -4
  54. package/esm2022/lib/components/forms/components/input/components/password-input/password-input.component.mjs +4 -4
  55. package/esm2022/lib/components/forms/components/input/components/search-input/search-input.component.mjs +4 -4
  56. package/esm2022/lib/components/forms/components/input/components/tel-input/tel-input.component.mjs +4 -4
  57. package/esm2022/lib/components/forms/components/input/components/text-input/text-input.component.mjs +4 -4
  58. package/esm2022/lib/components/forms/components/input/components/textarea-input/textarea-input.component.mjs +4 -4
  59. package/esm2022/lib/components/forms/components/input/components/time-input/time-input.component.mjs +4 -4
  60. package/esm2022/lib/components/forms/components/input/directives/autosize-textarea/autosize-textarea.directive.mjs +4 -4
  61. package/esm2022/lib/components/forms/components/input/directives/color-input/color-input.directive.mjs +4 -4
  62. package/esm2022/lib/components/forms/components/input/directives/date-input/date-input.directive.mjs +4 -4
  63. package/esm2022/lib/components/forms/components/input/directives/date-time-input/date-time-input.directive.mjs +4 -4
  64. package/esm2022/lib/components/forms/components/input/directives/email-input/email-input.directive.mjs +4 -4
  65. package/esm2022/lib/components/forms/components/input/directives/if-supports-show-picker/if-supports-show-picker.directive.mjs +4 -4
  66. package/esm2022/lib/components/forms/components/input/directives/number-input/number-input.directive.mjs +4 -4
  67. package/esm2022/lib/components/forms/components/input/directives/password-input/password-input.directive.mjs +4 -4
  68. package/esm2022/lib/components/forms/components/input/directives/search-input/search-input.directive.mjs +4 -4
  69. package/esm2022/lib/components/forms/components/input/directives/show-picker-trigger/show-picker-trigger.directive.mjs +4 -4
  70. package/esm2022/lib/components/forms/components/input/directives/tel-input/tel-input.directive.mjs +4 -4
  71. package/esm2022/lib/components/forms/components/input/directives/text-input/text-input.directive.mjs +4 -4
  72. package/esm2022/lib/components/forms/components/input/directives/textarea-input/textarea-input.directive.mjs +4 -4
  73. package/esm2022/lib/components/forms/components/input/directives/time-input/time-input.directive.mjs +4 -4
  74. package/esm2022/lib/components/forms/components/input/partials/password-input-toggle/password-input-toggle.component.mjs +4 -4
  75. package/esm2022/lib/components/forms/components/input/partials/search-input-clear/search-input-clear.component.mjs +4 -4
  76. package/esm2022/lib/components/forms/components/label/components/label/label.component.mjs +4 -4
  77. package/esm2022/lib/components/forms/components/label/directives/label-suffix/label-suffix.directive.mjs +4 -4
  78. package/esm2022/lib/components/forms/components/radio/components/radio/radio.component.mjs +4 -4
  79. package/esm2022/lib/components/forms/components/radio/components/radio-field/radio-field.component.mjs +4 -4
  80. package/esm2022/lib/components/forms/components/radio/components/radio-group/radio-group.component.mjs +4 -4
  81. package/esm2022/lib/components/forms/components/radio/directives/radio/radio.directive.mjs +4 -4
  82. package/esm2022/lib/components/forms/components/radio/directives/radio-field/radio-field.directive.mjs +4 -4
  83. package/esm2022/lib/components/forms/components/radio/directives/radio-group/radio-group.directive.mjs +4 -4
  84. package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button/segmented-button.component.mjs +4 -4
  85. package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button-field/segmented-button-field.component.mjs +4 -4
  86. package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button-group/segmented-button-group.component.mjs +4 -4
  87. package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button/segmented-button.directive.mjs +4 -4
  88. package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button-field/segmented-button-field.directive.mjs +4 -4
  89. package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button-group/segmented-button-group.directive.mjs +4 -4
  90. package/esm2022/lib/components/forms/components/select/components/combobox/components/combobox/combobox.component.mjs +4 -5
  91. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox/combobox.directive.mjs +4 -4
  92. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-empty-template/combobox-body-empty-template.directive.mjs +4 -4
  93. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-error-template/combobox-body-error-template.directive.mjs +4 -4
  94. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-loading-template/combobox-body-loading-template.directive.mjs +4 -4
  95. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-more-items-hint-template/combobox-body-more-items-hint-template.directive.mjs +4 -4
  96. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-option-template/combobox-option-template.directive.mjs +4 -4
  97. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-selected-option-template/combobox-selected-option-template.directive.mjs +4 -4
  98. package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-body/combobox-body.component.mjs +4 -4
  99. package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-option/combobox-option.component.mjs +4 -4
  100. package/esm2022/lib/components/forms/components/select/components/native-select/components/native-select/native-select.component.mjs +4 -4
  101. package/esm2022/lib/components/forms/components/select/components/native-select/directives/native-select-input/native-select-input.directive.mjs +4 -4
  102. package/esm2022/lib/components/forms/components/select/components/native-select/directives/native-select-option/native-select-option.directive.mjs +4 -4
  103. package/esm2022/lib/components/forms/components/select/components/native-select/partials/native-select-option/native-select-option.component.mjs +4 -4
  104. package/esm2022/lib/components/forms/components/select/components/select/components/select/select.component.mjs +4 -4
  105. package/esm2022/lib/components/forms/components/select/components/select/directives/select/select.directive.mjs +4 -4
  106. package/esm2022/lib/components/forms/components/select/components/select/directives/select-body/select-body.directive.mjs +4 -4
  107. package/esm2022/lib/components/forms/components/select/components/select/directives/select-option/select-option.directive.mjs +4 -4
  108. package/esm2022/lib/components/forms/components/select/components/select/partials/select-body/select-body.component.mjs +4 -4
  109. package/esm2022/lib/components/forms/components/select/components/select/partials/select-option/select-option.component.mjs +4 -4
  110. package/esm2022/lib/components/forms/components/select/components/select-field/select-field.component.mjs +4 -4
  111. package/esm2022/lib/components/forms/components/select/directives/select-field/select-field.directive.mjs +4 -4
  112. package/esm2022/lib/components/forms/components/selection-list/components/selection-list-field/selection-list-field.component.mjs +4 -4
  113. package/esm2022/lib/components/forms/components/selection-list/components/selection-list-option/selection-list-option.component.mjs +4 -4
  114. package/esm2022/lib/components/forms/components/selection-list/directives/selection-list-field/selection-list-field.directive.mjs +4 -4
  115. package/esm2022/lib/components/forms/components/selection-list/directives/selection-list-option/selection-list-option.directive.mjs +4 -4
  116. package/esm2022/lib/components/forms/components/slide-toggle/components/slide-toggle/slide-toggle.component.mjs +4 -4
  117. package/esm2022/lib/components/forms/components/slide-toggle/components/slide-toggle-field/slide-toggle-field.component.mjs +4 -4
  118. package/esm2022/lib/components/forms/components/slide-toggle/directives/slide-toggle/slide-toggle.directive.mjs +4 -4
  119. package/esm2022/lib/components/forms/components/slider/components/slider/slider.component.mjs +4 -4
  120. package/esm2022/lib/components/forms/components/slider/components/slider-field/slider-field.component.mjs +4 -4
  121. package/esm2022/lib/components/forms/directives/dynamic-form-field/dynamic-form-field.directive.mjs +4 -4
  122. package/esm2022/lib/components/forms/directives/dynamic-form-group/dynamic-form-group.directive.mjs +4 -4
  123. package/esm2022/lib/components/forms/directives/expose-input-vars/expose-input-vars.directive.mjs +4 -4
  124. package/esm2022/lib/components/forms/directives/if-input-empty/if-input-empty.directive.mjs +4 -4
  125. package/esm2022/lib/components/forms/directives/if-input-filled/if-input-filled.directive.mjs +4 -4
  126. package/esm2022/lib/components/forms/directives/input/input.directive.mjs +4 -4
  127. package/esm2022/lib/components/forms/directives/input-prefix/input-prefix.directive.mjs +4 -4
  128. package/esm2022/lib/components/forms/directives/input-suffix/input-suffix.directive.mjs +4 -4
  129. package/esm2022/lib/components/forms/directives/native-input-ref/native-input-ref.directive.mjs +4 -4
  130. package/esm2022/lib/components/forms/directives/static-form-field/static-form-field.directive.mjs +4 -4
  131. package/esm2022/lib/components/forms/directives/static-form-group/static-form-group.directive.mjs +4 -4
  132. package/esm2022/lib/components/forms/directives/writeable-input/writeable-input.directive.mjs +4 -4
  133. package/esm2022/lib/components/forms/services/default-validator-errors.service.mjs +4 -4
  134. package/esm2022/lib/components/forms/services/form-field-state.service.mjs +4 -4
  135. package/esm2022/lib/components/forms/services/form-group-state.service.mjs +4 -4
  136. package/esm2022/lib/components/forms/services/input-state.service.mjs +4 -4
  137. package/esm2022/lib/components/forms/utils/decorated-form-field.base.mjs +4 -4
  138. package/esm2022/lib/components/forms/utils/decorated-input.base.mjs +4 -4
  139. package/esm2022/lib/components/forms/utils/input.base.mjs +4 -4
  140. package/esm2022/lib/components/icons/chevron-icon/chevron-icon.component.mjs +4 -4
  141. package/esm2022/lib/components/icons/times-icon/times-icon.component.mjs +4 -4
  142. package/esm2022/lib/components/masonry/components/masonry/masonry.component.mjs +4 -4
  143. package/esm2022/lib/components/masonry/partials/masonry-item/masonry-item.component.mjs +4 -4
  144. package/esm2022/lib/components/overlay/components/bottom-sheet/components/bottom-sheet-container/bottom-sheet-container.component.mjs +4 -4
  145. package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-container-base/bottom-sheet-container-base.component.mjs +4 -4
  146. package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-drag-handle/bottom-sheet-drag-handle.component.mjs +4 -4
  147. package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-title/bottom-sheet-title.directive.mjs +4 -4
  148. package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet-base.service.mjs +4 -4
  149. package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet-swipe-handler.service.mjs +4 -4
  150. package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet.service.mjs +4 -4
  151. package/esm2022/lib/components/overlay/components/dialog/components/dialog-container/dialog-container.component.mjs +4 -4
  152. package/esm2022/lib/components/overlay/components/dialog/partials/dialog-close/dialog-close.directive.mjs +4 -4
  153. package/esm2022/lib/components/overlay/components/dialog/partials/dialog-container-base/dialog-container-base.component.mjs +4 -4
  154. package/esm2022/lib/components/overlay/components/dialog/partials/dialog-title/dialog-title.directive.mjs +4 -4
  155. package/esm2022/lib/components/overlay/components/dialog/services/dialog-base.service.mjs +4 -4
  156. package/esm2022/lib/components/overlay/components/dialog/services/dialog.service.mjs +4 -4
  157. package/esm2022/lib/components/overlay/components/menu/components/menu/menu.component.mjs +4 -4
  158. package/esm2022/lib/components/overlay/components/menu/components/menu-checkbox-item/menu-checkbox-item.component.mjs +4 -4
  159. package/esm2022/lib/components/overlay/components/menu/components/menu-container/menu-container.component.mjs +4 -4
  160. package/esm2022/lib/components/overlay/components/menu/components/menu-radio-item/menu-radio-item.component.mjs +4 -4
  161. package/esm2022/lib/components/overlay/components/menu/directives/menu-checkbox-group/menu-checkbox-group.directive.mjs +4 -4
  162. package/esm2022/lib/components/overlay/components/menu/directives/menu-group/menu-group.directive.mjs +4 -4
  163. package/esm2022/lib/components/overlay/components/menu/directives/menu-group-title/menu-group-title.directive.mjs +4 -4
  164. package/esm2022/lib/components/overlay/components/menu/directives/menu-item/menu-item.directive.mjs +4 -4
  165. package/esm2022/lib/components/overlay/components/menu/directives/menu-radio-group/menu-radio-group.directive.mjs +4 -4
  166. package/esm2022/lib/components/overlay/components/menu/directives/menu-search-template/menu-search-template.directive.mjs +4 -4
  167. package/esm2022/lib/components/overlay/components/menu/directives/menu-trigger/menu-trigger.directive.mjs +4 -4
  168. package/esm2022/lib/components/overlay/components/menu-deprecated/context-menu-trigger.mjs +7 -8
  169. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-aim.mjs +7 -11
  170. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-bar.mjs +4 -8
  171. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-base.mjs +4 -9
  172. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-group.mjs +4 -8
  173. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-item-checkbox.mjs +4 -8
  174. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-item-radio.mjs +4 -8
  175. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-item-selectable.mjs +4 -4
  176. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-item.mjs +4 -8
  177. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-module.mjs +5 -5
  178. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-stack.mjs +4 -9
  179. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-trigger-base.mjs +4 -4
  180. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-trigger.mjs +4 -5
  181. package/esm2022/lib/components/overlay/components/menu-deprecated/menu.mjs +4 -8
  182. package/esm2022/lib/components/overlay/components/overlay/components/overlay-container/overlay-container.component.mjs +4 -4
  183. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-back-or-close/overlay-back-or-close.directive.mjs +4 -4
  184. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-body/overlay-body.component.mjs +4 -4
  185. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-close/overlay-close.directive.mjs +4 -4
  186. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-footer/overlay-footer.directive.mjs +4 -4
  187. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-header/overlay-header.directive.mjs +4 -4
  188. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-header-template/overlay-header-template.directive.mjs +4 -4
  189. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-main/overlay-main.directive.mjs +4 -4
  190. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-route-header-template-outlet/overlay-route-header-template-outlet.component.mjs +4 -4
  191. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-router-link/overlay-router-link.directive.mjs +4 -4
  192. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-router-outlet/overlay-router-outlet.component.mjs +4 -4
  193. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-router-outlet-disabled-template/overlay-router-outlet-disabled-template.directive.mjs +4 -4
  194. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-shared-route-template/overlay-shared-route-template.directive.mjs +4 -4
  195. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-shared-route-template-outlet/overlay-shared-route-template-outlet.component.mjs +4 -4
  196. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-sidebar/overlay-sidebar.component.mjs +4 -4
  197. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-sidebar-page/overlay-sidebar-page.component.mjs +4 -4
  198. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-title/overlay-title.directive.mjs +4 -4
  199. package/esm2022/lib/components/overlay/components/overlay/services/overlay.service.mjs +4 -4
  200. package/esm2022/lib/components/overlay/components/overlay/utils/filter-overlay.mjs +4 -4
  201. package/esm2022/lib/components/overlay/components/overlay/utils/overlay-handler-link.directive.mjs +4 -4
  202. package/esm2022/lib/components/overlay/components/overlay/utils/overlay-handler.mjs +1 -2
  203. package/esm2022/lib/components/overlay/components/toggletip/components/toggletip/toggletip.component.mjs +4 -4
  204. package/esm2022/lib/components/overlay/components/toggletip/directives/toggletip/toggletip.directive.mjs +4 -4
  205. package/esm2022/lib/components/overlay/components/toggletip/partials/toggletip-close/toggletip-close.directive.mjs +4 -4
  206. package/esm2022/lib/components/overlay/components/tooltip/components/tooltip/tooltip.component.mjs +4 -4
  207. package/esm2022/lib/components/overlay/components/tooltip/directives/tooltip/tooltip.directive.mjs +4 -4
  208. package/esm2022/lib/components/overlay/directives/dynamic-overlay-title/dynamic-overlay-title.directive.mjs +4 -5
  209. package/esm2022/lib/components/overlay/directives/overlay-close-auto-blocker/overlay-close-auto-blocker.directive.mjs +4 -4
  210. package/esm2022/lib/components/overlay/services/dynamic-overlay.service.mjs +4 -4
  211. package/esm2022/lib/components/pagination/components/pagination/pagination.component.mjs +4 -4
  212. package/esm2022/lib/components/pagination/partials/pagination-link/pagination-link.directive.mjs +4 -4
  213. package/esm2022/lib/components/pagination/services/pagination-head.service.mjs +4 -4
  214. package/esm2022/lib/components/picture/components/picture/picture.component.mjs +4 -4
  215. package/esm2022/lib/components/progress-spinner/progress-spinner.component.mjs +4 -4
  216. package/esm2022/lib/components/query-error/components/query-error/query-error.component.mjs +4 -4
  217. package/esm2022/lib/components/query-error/directives/query-error/query-error.directive.mjs +4 -4
  218. package/esm2022/lib/components/scrollable/components/scrollable/scrollable.component.mjs +4 -4
  219. package/esm2022/lib/components/scrollable/components/scrollable-placeholder/scrollable-placeholder.component.mjs +4 -4
  220. package/esm2022/lib/components/scrollable/directives/scrollable-ignore-child/scrollable-ignore-child.directive.mjs +4 -4
  221. package/esm2022/lib/components/scrollable/directives/scrollable-is-active-child/scrollable-is-active-child.directive.mjs +4 -4
  222. package/esm2022/lib/components/scrollable/directives/scrollable-loading-template/scrollable-loading-template.directive.mjs +4 -4
  223. package/esm2022/lib/components/scrollable/directives/scrollable-placeholder-item-template/scrollable-placeholder-item-template.directive.mjs +4 -4
  224. package/esm2022/lib/components/scrollable/directives/scrollable-placeholder-overlay-template/scrollable-placeholder-overlay-template.directive.mjs +4 -4
  225. package/esm2022/lib/components/skeleton/components/skeleton/skeleton.component.mjs +4 -4
  226. package/esm2022/lib/components/skeleton/partials/skeleton-item/skeleton-item.component.mjs +4 -4
  227. package/esm2022/lib/components/sort/components/sort-header/sort-header.component.mjs +4 -4
  228. package/esm2022/lib/components/sort/partials/sort/sort.directive.mjs +4 -4
  229. package/esm2022/lib/components/sort/services/sort-header-intl.mjs +4 -4
  230. package/esm2022/lib/components/table/components/table/table.component.mjs +8 -4
  231. package/esm2022/lib/components/table/partials/cells/cell/cell.directive.mjs +4 -4
  232. package/esm2022/lib/components/table/partials/cells/cell-def/cell-def.directive.mjs +4 -4
  233. package/esm2022/lib/components/table/partials/cells/column-def/column-def.directive.mjs +4 -4
  234. package/esm2022/lib/components/table/partials/cells/footer-cell/footer-cell.directive.mjs +4 -4
  235. package/esm2022/lib/components/table/partials/cells/footer-cell-def/footer-cell-def.directive.mjs +4 -4
  236. package/esm2022/lib/components/table/partials/cells/header-cell/header-cell.directive.mjs +4 -4
  237. package/esm2022/lib/components/table/partials/cells/header-cell-def/header-cell-def.directive.mjs +4 -4
  238. package/esm2022/lib/components/table/partials/cells/text-column/text-column.component.mjs +4 -6
  239. package/esm2022/lib/components/table/partials/rows/footer-row/footer-row.component.mjs +4 -4
  240. package/esm2022/lib/components/table/partials/rows/footer-row-def/footer-row-def.directive.mjs +4 -4
  241. package/esm2022/lib/components/table/partials/rows/header-row/header-row.component.mjs +4 -4
  242. package/esm2022/lib/components/table/partials/rows/header-row-def/header-row-def.directive.mjs +4 -4
  243. package/esm2022/lib/components/table/partials/rows/no-data-row/no-data-row.directive.mjs +4 -4
  244. package/esm2022/lib/components/table/partials/rows/recycle-rows/recycle-rows.directive.mjs +4 -4
  245. package/esm2022/lib/components/table/partials/rows/row/row.component.mjs +4 -4
  246. package/esm2022/lib/components/table/partials/rows/row-def/row-def.directive.mjs +4 -4
  247. package/esm2022/lib/components/table/partials/table-busy/table-busy.directive.mjs +4 -4
  248. package/esm2022/lib/components/table/partials/table-busy-outlet/table-busy-outlet.directive.mjs +4 -4
  249. package/esm2022/lib/components/tabs/components/inline-tabs/inline-tabs.component.mjs +4 -4
  250. package/esm2022/lib/components/tabs/components/nav-tabs/nav-tabs.component.mjs +5 -5
  251. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab/inline-tab.component.mjs +4 -5
  252. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-body/inline-tab-body.component.mjs +4 -4
  253. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-body-host/inline-tab-body-host.directive.mjs +4 -4
  254. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-content/inline-tab-content.directive.mjs +4 -4
  255. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-header/inline-tab-header.component.mjs +4 -4
  256. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-label/inline-tab-label.directive.mjs +4 -4
  257. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-label-wrapper/inline-tab-label-wrapper.directive.mjs +4 -4
  258. package/esm2022/lib/components/tabs/partials/nav-tabs/nav-tab-link/nav-tab-link.directive.mjs +6 -13
  259. package/esm2022/lib/components/tabs/partials/nav-tabs/nav-tabs-outlet/nav-tabs-outlet.component.mjs +5 -5
  260. package/esm2022/lib/components/tabs/utils/active-tab-underline.util.mjs +4 -4
  261. package/esm2022/lib/components/tabs/utils/paginated-tab-header.directive.mjs +4 -4
  262. package/esm2022/lib/services/swipe-handler.service.mjs +4 -4
  263. package/fesm2022/ethlete-cdk.mjs +1864 -820
  264. package/fesm2022/ethlete-cdk.mjs.map +1 -1
  265. package/lib/components/bracket/components/new-bracket/bracket-new.d.ts +238 -0
  266. package/lib/components/bracket/components/new-bracket/draw-man.d.ts +12 -0
  267. package/lib/components/bracket/components/new-bracket/grid-definitions.d.ts +9 -0
  268. package/lib/components/bracket/components/new-bracket/grid-placements.d.ts +56 -0
  269. package/lib/components/bracket/components/new-bracket/index.d.ts +7 -0
  270. package/lib/components/bracket/components/new-bracket/new-bracket-default-match.component.d.ts +8 -0
  271. package/lib/components/bracket/components/new-bracket/new-bracket-default-round-header.component.d.ts +7 -0
  272. package/lib/components/bracket/components/new-bracket/new-bracket.component.d.ts +26 -0
  273. package/lib/components/bracket/public-api/index.d.ts +1 -0
  274. package/lib/components/table/components/table/table.component.d.ts +3 -1
  275. package/package.json +1 -1
@@ -60,10 +60,10 @@ export class ProgressSpinnerComponent {
60
60
  _circleStrokeWidth() {
61
61
  return (this.strokeWidth / this.diameter) * 100;
62
62
  }
63
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProgressSpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
64
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.8", type: ProgressSpinnerComponent, isStandalone: true, selector: "et-progress-spinner, et-spinner", inputs: { multiColor: ["multiColor", "multiColor", booleanAttribute], mode: "mode", value: "value", diameter: ["diameter", "diameter", numberAttribute], strokeWidth: "strokeWidth" }, host: { attributes: { "role": "progressbar", "tabindex": "-1" }, properties: { "class.et-circular-progress--indeterminate": "mode === \"indeterminate\"", "class.et-progress-spinner--multi-color": "multiColor", "style.width.px": "diameter", "style.height.px": "diameter", "attr.aria-valuemin": "0", "attr.aria-valuemax": "100", "attr.aria-valuenow": "mode === \"determinate\" ? value : null", "attr.mode": "mode" }, classAttribute: "et-progress-spinner" }, ngImport: i0, template: "<ng-template #circle>\n <svg\n [attr.viewBox]=\"_viewBox()\"\n class=\"et-circular-progress__indeterminate-circle-graphic\"\n xmlns=\"http://www.w3.org/2000/svg\"\n focusable=\"false\"\n >\n <circle\n [attr.r]=\"_circleRadius()\"\n [style.stroke-dasharray.px]=\"_strokeCircumference()\"\n [style.stroke-dashoffset.px]=\"_strokeCircumference() / 2\"\n [style.stroke-width.%]=\"_circleStrokeWidth()\"\n cx=\"50%\"\n cy=\"50%\"\n />\n </svg>\n</ng-template>\n\n<ng-template #spinner>\n <div class=\"et-circular-progress__circle-clipper et-circular-progress__circle-left\">\n <ng-container [ngTemplateOutlet]=\"circle\" />\n </div>\n <div class=\"et-circular-progress__gap-patch\">\n <ng-container [ngTemplateOutlet]=\"circle\" />\n </div>\n <div class=\"et-circular-progress__circle-clipper et-circular-progress__circle-right\">\n <ng-container [ngTemplateOutlet]=\"circle\" />\n </div>\n</ng-template>\n\n<div class=\"et-circular-progress__determinate-container\" aria-hidden=\"true\">\n <svg\n [attr.viewBox]=\"_viewBox()\"\n class=\"et-circular-progress__determinate-circle-graphic\"\n xmlns=\"http://www.w3.org/2000/svg\"\n focusable=\"false\"\n >\n <circle\n [attr.r]=\"_circleRadius()\"\n [style.stroke-dasharray.px]=\"_strokeCircumference()\"\n [style.stroke-dashoffset.px]=\"_strokeDashOffset()\"\n [style.stroke-width.%]=\"_circleStrokeWidth()\"\n class=\"et-circular-progress__determinate-circle\"\n cx=\"50%\"\n cy=\"50%\"\n />\n </svg>\n</div>\n\n<div class=\"et-circular-progress__indeterminate-container\" aria-hidden=\"true\">\n <div [class.et-circular-progress__color-1]=\"multiColor\" class=\"et-circular-progress__spinner-layer\">\n <ng-container [ngTemplateOutlet]=\"spinner\" />\n </div>\n\n <div class=\"et-circular-progress__spinner-layer et-circular-progress__color-2\">\n <ng-container [ngTemplateOutlet]=\"spinner\" />\n </div>\n\n <div class=\"et-circular-progress__spinner-layer et-circular-progress__color-3\">\n <ng-container [ngTemplateOutlet]=\"spinner\" />\n </div>\n\n <div class=\"et-circular-progress__spinner-layer et-circular-progress__color-4\">\n <ng-container [ngTemplateOutlet]=\"spinner\" />\n </div>\n</div>\n", styles: [":where(.et-progress-spinner){--et-progress-spinner-edges: round;--et-progress-spinner-color: #1e88e5;--et-progress-spinner-color-1: var(--et-progress-spinner-color);--et-progress-spinner-color-2: #f44336;--et-progress-spinner-color-3: #ff9800;--et-progress-spinner-color-4: #4caf50}.et-progress-spinner{position:relative;direction:ltr;transition:opacity .25s 0ms cubic-bezier(.4,0,.6,1);display:block;overflow:hidden;line-height:0}.et-progress-spinner.et-progress-spinner--multi-color .et-circular-progress__color-2,.et-progress-spinner.et-progress-spinner--multi-color .et-circular-progress__color-3,.et-progress-spinner.et-progress-spinner--multi-color .et-circular-progress__color-4{visibility:visible}.et-progress-spinner.et-progress-spinner--multi-color .et-circular-progress__color-1 .et-circular-progress__indeterminate-circle-graphic{stroke:var(--et-progress-spinner-color-1)}.et-circular-progress__determinate-circle,.et-circular-progress__indeterminate-circle-graphic{stroke:var(--et-progress-spinner-color);stroke-linecap:var(--et-progress-spinner-edges)}.et-circular-progress__color-2 .et-circular-progress__indeterminate-circle-graphic{stroke:var(--et-progress-spinner-color-2)}.et-circular-progress__color-3 .et-circular-progress__indeterminate-circle-graphic{stroke:var(--et-progress-spinner-color-3)}.et-circular-progress__color-4 .et-circular-progress__indeterminate-circle-graphic{stroke:var(--et-progress-spinner-color-4)}.et-circular-progress__color-2,.et-circular-progress__color-3,.et-circular-progress__color-4{visibility:hidden}.et-circular-progress__determinate-container,.et-circular-progress__indeterminate-circle-graphic,.et-circular-progress__indeterminate-container,.et-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.et-circular-progress__determinate-container{transform:rotate(-90deg)}.et-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.et-circular-progress__determinate-circle-graphic,.et-circular-progress__indeterminate-circle-graphic{fill:#0000}.et-circular-progress__determinate-circle{transition:stroke-dashoffset .5s 0ms cubic-bezier(0,0,.2,1)}.et-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.et-circular-progress__gap-patch .et-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.et-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.et-circular-progress__circle-clipper .et-circular-progress__indeterminate-circle-graphic{width:200%}.et-circular-progress__circle-right .et-circular-progress__indeterminate-circle-graphic{left:-100%}.et-circular-progress--indeterminate .et-circular-progress__determinate-container{opacity:0}.et-circular-progress--indeterminate .et-circular-progress__indeterminate-container{opacity:1}.et-circular-progress--indeterminate .et-circular-progress__indeterminate-container{animation:et-circular-progress-container-rotate 1.5682352941176s linear infinite}.et-circular-progress--indeterminate .et-circular-progress__spinner-layer{animation:et-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both}.et-circular-progress--indeterminate .et-circular-progress__color-1{animation:et-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,et-circular-progress-color-1-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.et-circular-progress--indeterminate .et-circular-progress__color-2{animation:et-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,et-circular-progress-color-2-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.et-circular-progress--indeterminate .et-circular-progress__color-3{animation:et-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,et-circular-progress-color-3-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.et-circular-progress--indeterminate .et-circular-progress__color-4{animation:et-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,et-circular-progress-color-4-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.et-circular-progress--indeterminate .et-circular-progress__circle-left .et-circular-progress__indeterminate-circle-graphic{animation:et-circular-progress-left-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both}.et-circular-progress--indeterminate .et-circular-progress__circle-right .et-circular-progress__indeterminate-circle-graphic{animation:et-circular-progress-right-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both}@keyframes et-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes et-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}to{transform:rotate(1080deg)}}@keyframes et-circular-progress-color-1-fade-in-out{0%{opacity:.99}25%{opacity:.99}26%{opacity:0}50%{opacity:0}90%{opacity:.99}to{opacity:.99}}@keyframes et-circular-progress-color-2-fade-in-out{0%{opacity:0}15%{opacity:0}25%{opacity:.99}50%{opacity:.99}51%{opacity:0}to{opacity:0}}@keyframes et-circular-progress-color-3-fade-in-out{0%{opacity:0}40%{opacity:0}50%{opacity:.99}75%{opacity:.99}76%{opacity:0}to{opacity:0}}@keyframes et-circular-progress-color-4-fade-in-out{0%{opacity:0}65%{opacity:0}75%{opacity:.99}90%{opacity:.99}to{opacity:0}}@keyframes et-circular-progress-left-spin{0%{transform:rotate(260deg)}50%{transform:rotate(130deg)}to{transform:rotate(260deg)}}@keyframes et-circular-progress-right-spin{0%{transform:rotate(-260deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-260deg)}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
63
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ProgressSpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
64
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.11", type: ProgressSpinnerComponent, isStandalone: true, selector: "et-progress-spinner, et-spinner", inputs: { multiColor: ["multiColor", "multiColor", booleanAttribute], mode: "mode", value: "value", diameter: ["diameter", "diameter", numberAttribute], strokeWidth: "strokeWidth" }, host: { attributes: { "role": "progressbar", "tabindex": "-1" }, properties: { "class.et-circular-progress--indeterminate": "mode === \"indeterminate\"", "class.et-progress-spinner--multi-color": "multiColor", "style.width.px": "diameter", "style.height.px": "diameter", "attr.aria-valuemin": "0", "attr.aria-valuemax": "100", "attr.aria-valuenow": "mode === \"determinate\" ? value : null", "attr.mode": "mode" }, classAttribute: "et-progress-spinner" }, ngImport: i0, template: "<ng-template #circle>\n <svg\n [attr.viewBox]=\"_viewBox()\"\n class=\"et-circular-progress__indeterminate-circle-graphic\"\n xmlns=\"http://www.w3.org/2000/svg\"\n focusable=\"false\"\n >\n <circle\n [attr.r]=\"_circleRadius()\"\n [style.stroke-dasharray.px]=\"_strokeCircumference()\"\n [style.stroke-dashoffset.px]=\"_strokeCircumference() / 2\"\n [style.stroke-width.%]=\"_circleStrokeWidth()\"\n cx=\"50%\"\n cy=\"50%\"\n />\n </svg>\n</ng-template>\n\n<ng-template #spinner>\n <div class=\"et-circular-progress__circle-clipper et-circular-progress__circle-left\">\n <ng-container [ngTemplateOutlet]=\"circle\" />\n </div>\n <div class=\"et-circular-progress__gap-patch\">\n <ng-container [ngTemplateOutlet]=\"circle\" />\n </div>\n <div class=\"et-circular-progress__circle-clipper et-circular-progress__circle-right\">\n <ng-container [ngTemplateOutlet]=\"circle\" />\n </div>\n</ng-template>\n\n<div class=\"et-circular-progress__determinate-container\" aria-hidden=\"true\">\n <svg\n [attr.viewBox]=\"_viewBox()\"\n class=\"et-circular-progress__determinate-circle-graphic\"\n xmlns=\"http://www.w3.org/2000/svg\"\n focusable=\"false\"\n >\n <circle\n [attr.r]=\"_circleRadius()\"\n [style.stroke-dasharray.px]=\"_strokeCircumference()\"\n [style.stroke-dashoffset.px]=\"_strokeDashOffset()\"\n [style.stroke-width.%]=\"_circleStrokeWidth()\"\n class=\"et-circular-progress__determinate-circle\"\n cx=\"50%\"\n cy=\"50%\"\n />\n </svg>\n</div>\n\n<div class=\"et-circular-progress__indeterminate-container\" aria-hidden=\"true\">\n <div [class.et-circular-progress__color-1]=\"multiColor\" class=\"et-circular-progress__spinner-layer\">\n <ng-container [ngTemplateOutlet]=\"spinner\" />\n </div>\n\n <div class=\"et-circular-progress__spinner-layer et-circular-progress__color-2\">\n <ng-container [ngTemplateOutlet]=\"spinner\" />\n </div>\n\n <div class=\"et-circular-progress__spinner-layer et-circular-progress__color-3\">\n <ng-container [ngTemplateOutlet]=\"spinner\" />\n </div>\n\n <div class=\"et-circular-progress__spinner-layer et-circular-progress__color-4\">\n <ng-container [ngTemplateOutlet]=\"spinner\" />\n </div>\n</div>\n", styles: [":where(.et-progress-spinner){--et-progress-spinner-edges: round;--et-progress-spinner-color: #1e88e5;--et-progress-spinner-color-1: var(--et-progress-spinner-color);--et-progress-spinner-color-2: #f44336;--et-progress-spinner-color-3: #ff9800;--et-progress-spinner-color-4: #4caf50}.et-progress-spinner{position:relative;direction:ltr;transition:opacity .25s 0ms cubic-bezier(.4,0,.6,1);display:block;overflow:hidden;line-height:0}.et-progress-spinner.et-progress-spinner--multi-color .et-circular-progress__color-2,.et-progress-spinner.et-progress-spinner--multi-color .et-circular-progress__color-3,.et-progress-spinner.et-progress-spinner--multi-color .et-circular-progress__color-4{visibility:visible}.et-progress-spinner.et-progress-spinner--multi-color .et-circular-progress__color-1 .et-circular-progress__indeterminate-circle-graphic{stroke:var(--et-progress-spinner-color-1)}.et-circular-progress__determinate-circle,.et-circular-progress__indeterminate-circle-graphic{stroke:var(--et-progress-spinner-color);stroke-linecap:var(--et-progress-spinner-edges)}.et-circular-progress__color-2 .et-circular-progress__indeterminate-circle-graphic{stroke:var(--et-progress-spinner-color-2)}.et-circular-progress__color-3 .et-circular-progress__indeterminate-circle-graphic{stroke:var(--et-progress-spinner-color-3)}.et-circular-progress__color-4 .et-circular-progress__indeterminate-circle-graphic{stroke:var(--et-progress-spinner-color-4)}.et-circular-progress__color-2,.et-circular-progress__color-3,.et-circular-progress__color-4{visibility:hidden}.et-circular-progress__determinate-container,.et-circular-progress__indeterminate-circle-graphic,.et-circular-progress__indeterminate-container,.et-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.et-circular-progress__determinate-container{transform:rotate(-90deg)}.et-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.et-circular-progress__determinate-circle-graphic,.et-circular-progress__indeterminate-circle-graphic{fill:#0000}.et-circular-progress__determinate-circle{transition:stroke-dashoffset .5s 0ms cubic-bezier(0,0,.2,1)}.et-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.et-circular-progress__gap-patch .et-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.et-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.et-circular-progress__circle-clipper .et-circular-progress__indeterminate-circle-graphic{width:200%}.et-circular-progress__circle-right .et-circular-progress__indeterminate-circle-graphic{left:-100%}.et-circular-progress--indeterminate .et-circular-progress__determinate-container{opacity:0}.et-circular-progress--indeterminate .et-circular-progress__indeterminate-container{opacity:1}.et-circular-progress--indeterminate .et-circular-progress__indeterminate-container{animation:et-circular-progress-container-rotate 1.5682352941176s linear infinite}.et-circular-progress--indeterminate .et-circular-progress__spinner-layer{animation:et-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both}.et-circular-progress--indeterminate .et-circular-progress__color-1{animation:et-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,et-circular-progress-color-1-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.et-circular-progress--indeterminate .et-circular-progress__color-2{animation:et-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,et-circular-progress-color-2-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.et-circular-progress--indeterminate .et-circular-progress__color-3{animation:et-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,et-circular-progress-color-3-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.et-circular-progress--indeterminate .et-circular-progress__color-4{animation:et-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,et-circular-progress-color-4-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.et-circular-progress--indeterminate .et-circular-progress__circle-left .et-circular-progress__indeterminate-circle-graphic{animation:et-circular-progress-left-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both}.et-circular-progress--indeterminate .et-circular-progress__circle-right .et-circular-progress__indeterminate-circle-graphic{animation:et-circular-progress-right-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both}@keyframes et-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes et-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}to{transform:rotate(1080deg)}}@keyframes et-circular-progress-color-1-fade-in-out{0%{opacity:.99}25%{opacity:.99}26%{opacity:0}50%{opacity:0}90%{opacity:.99}to{opacity:.99}}@keyframes et-circular-progress-color-2-fade-in-out{0%{opacity:0}15%{opacity:0}25%{opacity:.99}50%{opacity:.99}51%{opacity:0}to{opacity:0}}@keyframes et-circular-progress-color-3-fade-in-out{0%{opacity:0}40%{opacity:0}50%{opacity:.99}75%{opacity:.99}76%{opacity:0}to{opacity:0}}@keyframes et-circular-progress-color-4-fade-in-out{0%{opacity:0}65%{opacity:0}75%{opacity:.99}90%{opacity:.99}to{opacity:0}}@keyframes et-circular-progress-left-spin{0%{transform:rotate(260deg)}50%{transform:rotate(130deg)}to{transform:rotate(260deg)}}@keyframes et-circular-progress-right-spin{0%{transform:rotate(-260deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-260deg)}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
65
65
  }
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProgressSpinnerComponent, decorators: [{
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ProgressSpinnerComponent, decorators: [{
67
67
  type: Component,
68
68
  args: [{ selector: 'et-progress-spinner, et-spinner', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
69
69
  class: 'et-progress-spinner',
@@ -91,4 +91,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
91
91
  }], strokeWidth: [{
92
92
  type: Input
93
93
  }] } });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3Mtc3Bpbm5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvcHJvZ3Jlc3Mtc3Bpbm5lci9wcm9ncmVzcy1zcGlubmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9wcm9ncmVzcy1zcGlubmVyL3Byb2dyZXNzLXNwaW5uZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLGNBQWMsRUFDZCxLQUFLLEVBQ0wsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sZUFBZSxHQUNoQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVN0QyxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxJQUFJLGNBQWMsQ0FDaEUsa0NBQWtDLEVBQ2xDO0lBQ0UsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLHdDQUF3QztDQUNsRCxDQUNGLENBQUM7QUFFRixNQUFNLFVBQVUsd0NBQXdDO0lBQ3RELE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxDQUFDO0FBQ2pFLENBQUM7QUFFRCxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUM7QUFDdEIsTUFBTSxpQkFBaUIsR0FBRyxFQUFFLENBQUM7QUF3QjdCLE1BQU0sT0FBTyx3QkFBd0I7SUFXbkMsSUFDSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxDQUFVO1FBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBTUQsSUFDSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFDRCxJQUFJLFdBQVcsQ0FBQyxLQUFjO1FBQzVCLElBQUksQ0FBQyxZQUFZLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFHRDtRQS9CaUIsZ0JBQVcsR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFDO1FBQzFELGNBQVMsR0FBRyxNQUFNLENBQWdDLGdDQUFnQyxDQUFDLENBQUM7UUFHckcsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUduQixTQUFJLEdBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFTbkcsV0FBTSxHQUFHLENBQUMsQ0FBQztRQUduQixhQUFRLEdBQUcsU0FBUyxDQUFDO1FBU2IsaUJBQVksR0FBa0IsSUFBSSxDQUFDO1FBR3pDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztZQUMxQyxDQUFDO1lBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUMvQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO1lBQ2hELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVTLGFBQWE7UUFDckIsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVTLFFBQVE7UUFDaEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQzVELE9BQU8sT0FBTyxPQUFPLElBQUksT0FBTyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVTLG9CQUFvQjtRQUM1QixPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRVMsaUJBQWlCO1FBQ3pCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxhQUFhLEVBQUUsQ0FBQztZQUNoQyxPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQ25FLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFUyxrQkFBa0I7UUFDMUIsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUNsRCxDQUFDOzhHQWxFVSx3QkFBd0I7a0dBQXhCLHdCQUF3QixzSEFJZixnQkFBZ0Isb0VBZ0JoQixlQUFlLGlnQkM5RXJDLHF2RUFrRUEsb3lMRFZZLGdCQUFnQjs7MkZBRWYsd0JBQXdCO2tCQXRCcEMsU0FBUzsrQkFDRSxpQ0FBaUMsY0FHL0IsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLEtBQUssRUFBRSxxQkFBcUI7d0JBQzVCLElBQUksRUFBRSxhQUFhO3dCQUNuQixRQUFRLEVBQUUsSUFBSTt3QkFDZCw2Q0FBNkMsRUFBRSwwQkFBMEI7d0JBQ3pFLDBDQUEwQyxFQUFFLFlBQVk7d0JBQ3hELGtCQUFrQixFQUFFLFVBQVU7d0JBQzlCLG1CQUFtQixFQUFFLFVBQVU7d0JBQy9CLHNCQUFzQixFQUFFLEdBQUc7d0JBQzNCLHNCQUFzQixFQUFFLEtBQUs7d0JBQzdCLHNCQUFzQixFQUFFLHVDQUF1Qzt3QkFDL0QsYUFBYSxFQUFFLE1BQU07cUJBQ3RCLFdBQ1EsQ0FBQyxnQkFBZ0IsQ0FBQzt3REFPM0IsVUFBVTtzQkFEVCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUl0QyxJQUFJO3NCQURILEtBQUs7Z0JBS0YsS0FBSztzQkFEUixLQUFLO2dCQVVOLFFBQVE7c0JBRFAsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBSWpDLFdBQVc7c0JBRGQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0aW9uVG9rZW4sXG4gIElucHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgaW5qZWN0LFxuICBudW1iZXJBdHRyaWJ1dGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2xhbXAgfSBmcm9tICdAZXRobGV0ZS9jb3JlJztcblxuZXhwb3J0IHR5cGUgUHJvZ3Jlc3NTcGlubmVyTW9kZSA9ICdkZXRlcm1pbmF0ZScgfCAnaW5kZXRlcm1pbmF0ZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZ3Jlc3NTcGlubmVyRGVmYXVsdE9wdGlvbnMge1xuICBkaWFtZXRlcj86IG51bWJlcjtcbiAgc3Ryb2tlV2lkdGg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjb25zdCBQUk9HUkVTU19TUElOTkVSX0RFRkFVTFRfT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxQcm9ncmVzc1NwaW5uZXJEZWZhdWx0T3B0aW9ucz4oXG4gICdQUk9HUkVTU19TUElOTkVSX0RFRkFVTFRfT1BUSU9OUycsXG4gIHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG4gICAgZmFjdG9yeTogUFJPR1JFU1NfU1BJTk5FUl9ERUZBVUxUX09QVElPTlNfRkFDVE9SWSxcbiAgfSxcbik7XG5cbmV4cG9ydCBmdW5jdGlvbiBQUk9HUkVTU19TUElOTkVSX0RFRkFVTFRfT1BUSU9OU19GQUNUT1JZKCk6IFByb2dyZXNzU3Bpbm5lckRlZmF1bHRPcHRpb25zIHtcbiAgcmV0dXJuIHsgZGlhbWV0ZXI6IEJBU0VfU0laRSwgc3Ryb2tlV2lkdGg6IEJBU0VfU1RST0tFX1dJRFRIIH07XG59XG5cbmNvbnN0IEJBU0VfU0laRSA9IDEwMDtcbmNvbnN0IEJBU0VfU1RST0tFX1dJRFRIID0gMTA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2V0LXByb2dyZXNzLXNwaW5uZXIsIGV0LXNwaW5uZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZ3Jlc3Mtc3Bpbm5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb2dyZXNzLXNwaW5uZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2V0LXByb2dyZXNzLXNwaW5uZXInLFxuICAgIHJvbGU6ICdwcm9ncmVzc2JhcicsXG4gICAgdGFiaW5kZXg6ICctMScsXG4gICAgJ1tjbGFzcy5ldC1jaXJjdWxhci1wcm9ncmVzcy0taW5kZXRlcm1pbmF0ZV0nOiAnbW9kZSA9PT0gXCJpbmRldGVybWluYXRlXCInLFxuICAgICdbY2xhc3MuZXQtcHJvZ3Jlc3Mtc3Bpbm5lci0tbXVsdGktY29sb3JdJzogJ211bHRpQ29sb3InLFxuICAgICdbc3R5bGUud2lkdGgucHhdJzogJ2RpYW1ldGVyJyxcbiAgICAnW3N0eWxlLmhlaWdodC5weF0nOiAnZGlhbWV0ZXInLFxuICAgICdbYXR0ci5hcmlhLXZhbHVlbWluXSc6ICcwJyxcbiAgICAnW2F0dHIuYXJpYS12YWx1ZW1heF0nOiAnMTAwJyxcbiAgICAnW2F0dHIuYXJpYS12YWx1ZW5vd10nOiAnbW9kZSA9PT0gXCJkZXRlcm1pbmF0ZVwiID8gdmFsdWUgOiBudWxsJyxcbiAgICAnW2F0dHIubW9kZV0nOiAnbW9kZScsXG4gIH0sXG4gIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0XSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvZ3Jlc3NTcGlubmVyQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RlZmF1bHRzID0gaW5qZWN0PFByb2dyZXNzU3Bpbm5lckRlZmF1bHRPcHRpb25zPihQUk9HUkVTU19TUElOTkVSX0RFRkFVTFRfT1BUSU9OUyk7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIG11bHRpQ29sb3IgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBtb2RlOiBQcm9ncmVzc1NwaW5uZXJNb2RlID1cbiAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ2V0LXNwaW5uZXInID8gJ2luZGV0ZXJtaW5hdGUnIDogJ2RldGVybWluYXRlJztcblxuICBASW5wdXQoKVxuICBnZXQgdmFsdWUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlID09PSAnZGV0ZXJtaW5hdGUnID8gdGhpcy5fdmFsdWUgOiAwO1xuICB9XG4gIHNldCB2YWx1ZSh2OiB1bmtub3duKSB7XG4gICAgdGhpcy5fdmFsdWUgPSBjbGFtcChudW1iZXJBdHRyaWJ1dGUodiwgMCkpO1xuICB9XG4gIHByaXZhdGUgX3ZhbHVlID0gMDtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICBkaWFtZXRlciA9IEJBU0VfU0laRTtcblxuICBASW5wdXQoKVxuICBnZXQgc3Ryb2tlV2lkdGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fc3Ryb2tlV2lkdGggPz8gdGhpcy5kaWFtZXRlciAvIDEwO1xuICB9XG4gIHNldCBzdHJva2VXaWR0aCh2YWx1ZTogdW5rbm93bikge1xuICAgIHRoaXMuX3N0cm9rZVdpZHRoID0gbnVtYmVyQXR0cmlidXRlKHZhbHVlKTtcbiAgfVxuICBwcml2YXRlIF9zdHJva2VXaWR0aDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgaWYgKHRoaXMuX2RlZmF1bHRzKSB7XG4gICAgICBpZiAodGhpcy5fZGVmYXVsdHMuZGlhbWV0ZXIpIHtcbiAgICAgICAgdGhpcy5kaWFtZXRlciA9IHRoaXMuX2RlZmF1bHRzLmRpYW1ldGVyO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5fZGVmYXVsdHMuc3Ryb2tlV2lkdGgpIHtcbiAgICAgICAgdGhpcy5zdHJva2VXaWR0aCA9IHRoaXMuX2RlZmF1bHRzLnN0cm9rZVdpZHRoO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBfY2lyY2xlUmFkaXVzKCkge1xuICAgIHJldHVybiAodGhpcy5kaWFtZXRlciAtIEJBU0VfU1RST0tFX1dJRFRIKSAvIDI7XG4gIH1cblxuICBwcm90ZWN0ZWQgX3ZpZXdCb3goKSB7XG4gICAgY29uc3Qgdmlld0JveCA9IHRoaXMuX2NpcmNsZVJhZGl1cygpICogMiArIHRoaXMuc3Ryb2tlV2lkdGg7XG4gICAgcmV0dXJuIGAwIDAgJHt2aWV3Qm94fSAke3ZpZXdCb3h9YDtcbiAgfVxuXG4gIHByb3RlY3RlZCBfc3Ryb2tlQ2lyY3VtZmVyZW5jZSgpIHtcbiAgICByZXR1cm4gMiAqIE1hdGguUEkgKiB0aGlzLl9jaXJjbGVSYWRpdXMoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfc3Ryb2tlRGFzaE9mZnNldCgpIHtcbiAgICBpZiAodGhpcy5tb2RlID09PSAnZGV0ZXJtaW5hdGUnKSB7XG4gICAgICByZXR1cm4gKHRoaXMuX3N0cm9rZUNpcmN1bWZlcmVuY2UoKSAqICgxMDAgLSB0aGlzLl92YWx1ZSkpIC8gMTAwO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBfY2lyY2xlU3Ryb2tlV2lkdGgoKSB7XG4gICAgcmV0dXJuICh0aGlzLnN0cm9rZVdpZHRoIC8gdGhpcy5kaWFtZXRlcikgKiAxMDA7XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjY2lyY2xlPlxuICA8c3ZnXG4gICAgW2F0dHIudmlld0JveF09XCJfdmlld0JveCgpXCJcbiAgICBjbGFzcz1cImV0LWNpcmN1bGFyLXByb2dyZXNzX19pbmRldGVybWluYXRlLWNpcmNsZS1ncmFwaGljXCJcbiAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gID5cbiAgICA8Y2lyY2xlXG4gICAgICBbYXR0ci5yXT1cIl9jaXJjbGVSYWRpdXMoKVwiXG4gICAgICBbc3R5bGUuc3Ryb2tlLWRhc2hhcnJheS5weF09XCJfc3Ryb2tlQ2lyY3VtZmVyZW5jZSgpXCJcbiAgICAgIFtzdHlsZS5zdHJva2UtZGFzaG9mZnNldC5weF09XCJfc3Ryb2tlQ2lyY3VtZmVyZW5jZSgpIC8gMlwiXG4gICAgICBbc3R5bGUuc3Ryb2tlLXdpZHRoLiVdPVwiX2NpcmNsZVN0cm9rZVdpZHRoKClcIlxuICAgICAgY3g9XCI1MCVcIlxuICAgICAgY3k9XCI1MCVcIlxuICAgIC8+XG4gIDwvc3ZnPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzcGlubmVyPlxuICA8ZGl2IGNsYXNzPVwiZXQtY2lyY3VsYXItcHJvZ3Jlc3NfX2NpcmNsZS1jbGlwcGVyIGV0LWNpcmN1bGFyLXByb2dyZXNzX19jaXJjbGUtbGVmdFwiPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2lyY2xlXCIgLz5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJldC1jaXJjdWxhci1wcm9ncmVzc19fZ2FwLXBhdGNoXCI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjaXJjbGVcIiAvPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImV0LWNpcmN1bGFyLXByb2dyZXNzX19jaXJjbGUtY2xpcHBlciBldC1jaXJjdWxhci1wcm9ncmVzc19fY2lyY2xlLXJpZ2h0XCI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjaXJjbGVcIiAvPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxkaXYgY2xhc3M9XCJldC1jaXJjdWxhci1wcm9ncmVzc19fZGV0ZXJtaW5hdGUtY29udGFpbmVyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gIDxzdmdcbiAgICBbYXR0ci52aWV3Qm94XT1cIl92aWV3Qm94KClcIlxuICAgIGNsYXNzPVwiZXQtY2lyY3VsYXItcHJvZ3Jlc3NfX2RldGVybWluYXRlLWNpcmNsZS1ncmFwaGljXCJcbiAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gID5cbiAgICA8Y2lyY2xlXG4gICAgICBbYXR0ci5yXT1cIl9jaXJjbGVSYWRpdXMoKVwiXG4gICAgICBbc3R5bGUuc3Ryb2tlLWRhc2hhcnJheS5weF09XCJfc3Ryb2tlQ2lyY3VtZmVyZW5jZSgpXCJcbiAgICAgIFtzdHlsZS5zdHJva2UtZGFzaG9mZnNldC5weF09XCJfc3Ryb2tlRGFzaE9mZnNldCgpXCJcbiAgICAgIFtzdHlsZS5zdHJva2Utd2lkdGguJV09XCJfY2lyY2xlU3Ryb2tlV2lkdGgoKVwiXG4gICAgICBjbGFzcz1cImV0LWNpcmN1bGFyLXByb2dyZXNzX19kZXRlcm1pbmF0ZS1jaXJjbGVcIlxuICAgICAgY3g9XCI1MCVcIlxuICAgICAgY3k9XCI1MCVcIlxuICAgIC8+XG4gIDwvc3ZnPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJldC1jaXJjdWxhci1wcm9ncmVzc19faW5kZXRlcm1pbmF0ZS1jb250YWluZXJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgPGRpdiBbY2xhc3MuZXQtY2lyY3VsYXItcHJvZ3Jlc3NfX2NvbG9yLTFdPVwibXVsdGlDb2xvclwiIGNsYXNzPVwiZXQtY2lyY3VsYXItcHJvZ3Jlc3NfX3NwaW5uZXItbGF5ZXJcIj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNwaW5uZXJcIiAvPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZXQtY2lyY3VsYXItcHJvZ3Jlc3NfX3NwaW5uZXItbGF5ZXIgZXQtY2lyY3VsYXItcHJvZ3Jlc3NfX2NvbG9yLTJcIj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNwaW5uZXJcIiAvPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZXQtY2lyY3VsYXItcHJvZ3Jlc3NfX3NwaW5uZXItbGF5ZXIgZXQtY2lyY3VsYXItcHJvZ3Jlc3NfX2NvbG9yLTNcIj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNwaW5uZXJcIiAvPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZXQtY2lyY3VsYXItcHJvZ3Jlc3NfX3NwaW5uZXItbGF5ZXIgZXQtY2lyY3VsYXItcHJvZ3Jlc3NfX2NvbG9yLTRcIj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNwaW5uZXJcIiAvPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3Mtc3Bpbm5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvcHJvZ3Jlc3Mtc3Bpbm5lci9wcm9ncmVzcy1zcGlubmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9wcm9ncmVzcy1zcGlubmVyL3Byb2dyZXNzLXNwaW5uZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLGNBQWMsRUFDZCxLQUFLLEVBQ0wsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sZUFBZSxHQUNoQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVN0QyxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxJQUFJLGNBQWMsQ0FDaEUsa0NBQWtDLEVBQ2xDO0lBQ0UsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLHdDQUF3QztDQUNsRCxDQUNGLENBQUM7QUFFRixNQUFNLFVBQVUsd0NBQXdDO0lBQ3RELE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxDQUFDO0FBQ2pFLENBQUM7QUFFRCxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUM7QUFDdEIsTUFBTSxpQkFBaUIsR0FBRyxFQUFFLENBQUM7QUF3QjdCLE1BQU0sT0FBTyx3QkFBd0I7SUFXbkMsSUFDSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1B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RSwwQkFBMEI7d0JBQ3pFLDBDQUEwQyxFQUFFLFlBQVk7d0JBQ3hELGtCQUFrQixFQUFFLFVBQVU7d0JBQzlCLG1CQUFtQixFQUFFLFVBQVU7d0JBQy9CLHNCQUFzQixFQUFFLEdBQUc7d0JBQzNCLHNCQUFzQixFQUFFLEtBQUs7d0JBQzdCLHNCQUFzQixFQUFFLHVDQUF1Qzt3QkFDL0QsYUFBYSxFQUFFLE1BQU07cUJBQ3RCLFdBQ1EsQ0FBQyxnQkFBZ0IsQ0FBQzt3REFPM0IsVUFBVTtzQkFEVCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUl0QyxJQUFJO3NCQURILEtBQUs7Z0JBS0YsS0FBSztzQkFEUixLQUFLO2dCQVVOLFFBQVE7c0JBRFAsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBSWpDLFdBQVc7c0JBRGQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0aW9uVG9rZW4sXG4gIElucHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgaW5qZWN0LFxuICBudW1iZXJBdHRyaWJ1dGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2xhbXAgfSBmcm9tICdAZXRobGV0ZS9jb3JlJztcblxuZXhwb3J0IHR5cGUgUHJvZ3Jlc3NTcGlubmVyTW9kZSA9ICdkZXRlcm1pbmF0ZScgfCAnaW5kZXRlcm1pbmF0ZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZ3Jlc3NTcGlubmVyRGVmYXVsdE9wdGlvbnMge1xuICBkaWFtZXRlcj86IG51bWJlcjtcbiAgc3Ryb2tlV2lkdGg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjb25zdCBQUk9HUkVTU19TUElOTkVSX0RFRkFVTFRfT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxQcm9ncmVzc1NwaW5uZXJEZWZhdWx0T3B0aW9ucz4oXG4gICdQUk9HUkVTU19TUElOTkVSX0RFRkFVTFRfT1BUSU9OUycsXG4gIHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG4gICAgZmFjdG9yeTogUFJPR1JFU1NfU1BJTk5FUl9ERUZBVUxUX09QVElPTlNfRkFDVE9SWSxcbiAgfSxcbik7XG5cbmV4cG9ydCBmdW5jdGlvbiBQUk9HUkVTU19TUElOTkVSX0RFRkFVTFRfT1BUSU9OU19GQUNUT1JZKCk6IFByb2dyZXNzU3Bpbm5lckRlZmF1bHRPcHRpb25zIHtcbiAgcmV0dXJuIHsgZGlhbWV0ZXI6IEJBU0VfU0laRSwgc3Ryb2tlV2lkdGg6IEJBU0VfU1RST0tFX1dJRFRIIH07XG59XG5cbmNvbnN0IEJBU0VfU0laRSA9IDEwMDtcbmNvbnN0IEJBU0VfU1RST0tFX1dJRFRIID0gMTA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2V0LXByb2dyZXNzLXNwaW5uZXIsIGV0LXNwaW5uZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZ3Jlc3Mtc3Bpbm5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb2dyZXNzLXNwaW5uZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2V0LXByb2dyZXNzLXNwaW5uZXInLFxuICAgIHJvbGU6ICdwcm9ncmVzc2JhcicsXG4gICAgdGFiaW5kZXg6ICctMScsXG4gICAgJ1tjbGFzcy5ldC1jaXJjdWxhci1wcm9ncmVzcy0taW5kZXRlcm1pbmF0ZV0nOiAnbW9kZSA9PT0gXCJpbmRldGVybWluYXRlXCInLFxuICAgICdbY2xhc3MuZXQtcHJvZ3Jlc3Mtc3Bpbm5lci0tbXVsdGktY29sb3JdJzogJ211bHRpQ29sb3InLFxuICAgICdbc3R5bGUud2lkdGgucHhdJzogJ2RpYW1ldGVyJyxcbiAgICAnW3N0eWxlLmhlaWdodC5weF0nOiAnZGlhbWV0ZXInLFxuICAgICdbYXR0ci5hcmlhLXZhbHVlbWluXSc6ICcwJyxcbiAgICAnW2F0dHIuYXJpYS12YWx1ZW1heF0nOiAnMTAwJyxcbiAgICAnW2F0dHIuYXJpYS12YWx1ZW5vd10nOiAnbW9kZSA9PT0gXCJkZXRlcm1pbmF0ZVwiID8gdmFsdWUgOiBudWxsJyxcbiAgICAnW2F0dHIubW9kZV0nOiAnbW9kZScsXG4gIH0sXG4gIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0XSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvZ3Jlc3NTcGlubmVyQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RlZmF1bHRzID0gaW5qZWN0PFByb2dyZXNzU3Bpbm5lckRlZmF1bHRPcHRpb25zPihQUk9HUkVTU19TUElOTkVSX0RFRkFVTFRfT1BUSU9OUyk7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIG11bHRpQ29sb3IgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBtb2RlOiBQcm9ncmVzc1NwaW5uZXJNb2RlID1cbiAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ2V0LXNwaW5uZXInID8gJ2luZGV0ZXJtaW5hdGUnIDogJ2RldGVybWluYXRlJztcblxuICBASW5wdXQoKVxuICBnZXQgdmFsdWUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlID09PSAnZGV0ZXJtaW5hdGUnID8gdGhpcy5fdmFsdWUgOiAwO1xuICB9XG4gIHNldCB2YWx1ZSh2OiB1bmtub3duKSB7XG4gICAgdGhpcy5fdmFsdWUgPSBjbGFtcChudW1iZXJBdHRyaWJ1dGUodiwgMCkpO1xuICB9XG4gIHByaXZhdGUgX3ZhbHVlID0gMDtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICBkaWFtZXRlciA9IEJBU0VfU0laRTtcblxuICBASW5wdXQoKVxuICBnZXQgc3Ryb2tlV2lkdGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fc3Ryb2tlV2lkdGggPz8gdGhpcy5kaWFtZXRlciAvIDEwO1xuICB9XG4gIHNldCBzdHJva2VXaWR0aCh2YWx1ZTogdW5rbm93bikge1xuICAgIHRoaXMuX3N0cm9rZVdpZHRoID0gbnVtYmVyQXR0cmlidXRlKHZhbHVlKTtcbiAgfVxuICBwcml2YXRlIF9zdHJva2VXaWR0aDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgaWYgKHRoaXMuX2RlZmF1bHRzKSB7XG4gICAgICBpZiAodGhpcy5fZGVmYXVsdHMuZGlhbWV0ZXIpIHtcbiAgICAgICAgdGhpcy5kaWFtZXRlciA9IHRoaXMuX2RlZmF1bHRzLmRpYW1ldGVyO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5fZGVmYXVsdHMuc3Ryb2tlV2lkdGgpIHtcbiAgICAgICAgdGhpcy5zdHJva2VXaWR0aCA9IHRoaXMuX2RlZmF1bHRzLnN0cm9rZVdpZHRoO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBfY2lyY2xlUmFkaXVzKCkge1xuICAgIHJldHVybiAodGhpcy5kaWFtZXRlciAtIEJBU0VfU1RST0tFX1dJRFRIKSAvIDI7XG4gIH1cblxuICBwcm90ZWN0ZWQgX3ZpZXdCb3goKSB7XG4gICAgY29uc3Qgdmlld0JveCA9IHRoaXMuX2NpcmNsZVJhZGl1cygpICogMiArIHRoaXMuc3Ryb2tlV2lkdGg7XG4gICAgcmV0dXJuIGAwIDAgJHt2aWV3Qm94fSAke3ZpZXdCb3h9YDtcbiAgfVxuXG4gIHByb3RlY3RlZCBfc3Ryb2tlQ2lyY3VtZmVyZW5jZSgpIHtcbiAgICByZXR1cm4gMiAqIE1hdGguUEkgKiB0aGlzLl9jaXJjbGVSYWRpdXMoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfc3Ryb2tlRGFzaE9mZnNldCgpIHtcbiAgICBpZiAodGhpcy5tb2RlID09PSAnZGV0ZXJtaW5hdGUnKSB7XG4gICAgICByZXR1cm4gKHRoaXMuX3N0cm9rZUNpcmN1bWZlcmVuY2UoKSAqICgxMDAgLSB0aGlzLl92YWx1ZSkpIC8gMTAwO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBfY2lyY2xlU3Ryb2tlV2lkdGgoKSB7XG4gICAgcmV0dXJuICh0aGlzLnN0cm9rZVdpZHRoIC8gdGhpcy5kaWFtZXRlcikgKiAxMDA7XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjY2lyY2xlPlxuICA8c3ZnXG4gICAgW2F0dHIudmlld0JveF09XCJfdmlld0JveCgpXCJcbiAgICBjbGFzcz1cImV0LWNpcmN1bGFyLXByb2dyZXNzX19pbmRldGVybWluYXRlLWNpcmNsZS1ncmFwaGljXCJcbiAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gID5cbiAgICA8Y2lyY2xlXG4gICAgICBbYXR0ci5yXT1cIl9jaXJjbGVSYWRpdXMoKVwiXG4gICAgICBbc3R5bGUuc3Ryb2tlLWRhc2hhcnJheS5weF09XCJfc3Ryb2tlQ2lyY3VtZmVyZW5jZSgpXCJcbiAgICAgIFtzdHlsZS5zdHJva2UtZGFzaG9mZnNldC5weF09XCJfc3Ryb2tlQ2lyY3VtZmVyZW5jZSgpIC8gMlwiXG4gICAgICBbc3R5bGUuc3Ryb2tlLXdpZHRoLiVdPVwiX2NpcmNsZVN0cm9rZVdpZHRoKClcIlxuICAgICAgY3g9XCI1MCVcIlxuICAgICAgY3k9XCI1MCVcIlxuICAgIC8+XG4gIDwvc3ZnPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzcGlubmVyPlxuICA8ZGl2IGNsYXNzPVwiZXQtY2lyY3VsYXItcHJvZ3Jlc3NfX2NpcmNsZS1jbGlwcGVyIGV0LWNpcmN1bGFyLXByb2dyZXNzX19jaXJjbGUtbGVmdFwiPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2lyY2xlXCIgLz5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJldC1jaXJjdWxhci1wcm9ncmVzc19fZ2FwLXBhdGNoXCI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjaXJjbGVcIiAvPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImV0LWNpcmN1bGFyLXByb2dyZXNzX19jaXJjbGUtY2xpcHBlciBldC1jaXJjdWxhci1wcm9ncmVzc19fY2lyY2xlLXJpZ2h0XCI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjaXJjbGVcIiAvPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxkaXYgY2xhc3M9XCJldC1jaXJjdWxhci1wcm9ncmVzc19fZGV0ZXJtaW5hdGUtY29udGFpbmVyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gIDxzdmdcbiAgICBbYXR0ci52aWV3Qm94XT1cIl92aWV3Qm94KClcIlxuICAgIGNsYXNzPVwiZXQtY2lyY3VsYXItcHJvZ3Jlc3NfX2RldGVybWluYXRlLWNpcmNsZS1ncmFwaGljXCJcbiAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gID5cbiAgICA8Y2lyY2xlXG4gICAgICBbYXR0ci5yXT1cIl9jaXJjbGVSYWRpdXMoKVwiXG4gICAgICBbc3R5bGUuc3Ryb2tlLWRhc2hhcnJheS5weF09XCJfc3Ryb2tlQ2lyY3VtZmVyZW5jZSgpXCJcbiAgICAgIFtzdHlsZS5zdHJva2UtZGFzaG9mZnNldC5weF09XCJfc3Ryb2tlRGFzaE9mZnNldCgpXCJcbiAgICAgIFtzdHlsZS5zdHJva2Utd2lkdGguJV09XCJfY2lyY2xlU3Ryb2tlV2lkdGgoKVwiXG4gICAgICBjbGFzcz1cImV0LWNpcmN1bGFyLXByb2dyZXNzX19kZXRlcm1pbmF0ZS1jaXJjbGVcIlxuICAgICAgY3g9XCI1MCVcIlxuICAgICAgY3k9XCI1MCVcIlxuICAgIC8+XG4gIDwvc3ZnPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJldC1jaXJjdWxhci1wcm9ncmVzc19faW5kZXRlcm1pbmF0ZS1jb250YWluZXJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgPGRpdiBbY2xhc3MuZXQtY2lyY3VsYXItcHJvZ3Jlc3NfX2NvbG9yLTFdPVwibXVsdGlDb2xvclwiIGNsYXNzPVwiZXQtY2lyY3VsYXItcHJvZ3Jlc3NfX3NwaW5uZXItbGF5ZXJcIj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNwaW5uZXJcIiAvPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZXQtY2lyY3VsYXItcHJvZ3Jlc3NfX3NwaW5uZXItbGF5ZXIgZXQtY2lyY3VsYXItcHJvZ3Jlc3NfX2NvbG9yLTJcIj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNwaW5uZXJcIiAvPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZXQtY2lyY3VsYXItcHJvZ3Jlc3NfX3NwaW5uZXItbGF5ZXIgZXQtY2lyY3VsYXItcHJvZ3Jlc3NfX2NvbG9yLTNcIj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNwaW5uZXJcIiAvPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZXQtY2lyY3VsYXItcHJvZ3Jlc3NfX3NwaW5uZXItbGF5ZXIgZXQtY2lyY3VsYXItcHJvZ3Jlc3NfX2NvbG9yLTRcIj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNwaW5uZXJcIiAvPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -15,13 +15,13 @@ export class QueryErrorComponent {
15
15
  retry() {
16
16
  extractQuery(this.host.query())?.execute({ skipCache: true });
17
17
  }
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: QueryErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
19
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: QueryErrorComponent, isStandalone: true, selector: "et-query-error", host: { classAttribute: "et-query-error-host" }, hostDirectives: [{ directive: i1.QueryErrorDirective, inputs: ["error", "error", "query", "query", "language", "language"] }], ngImport: i0, template: "<div\n [ngClass]=\"{ 'et-query-error--can-be-retried': canBeRetried(), 'et-query-error--is-list': isList() }\"\n class=\"et-query-error\"\n>\n @if (errorList(); as errorList) {\n <h3 class=\"et-query-error-title\">{{ errorList.title }}</h3>\n\n @if (!errorList.isList) {\n <p class=\"et-query-error-message\">{{ errorList.items[0]!.message }}</p>\n }\n\n @if (errorList.isList) {\n <ul class=\"et-query-error-list\">\n @for (item of errorList.items; track trackByFn($index, item)) {\n <li class=\"et-query-error-list-item\">\n {{ item.message }}\n </li>\n }\n </ul>\n }\n\n @if (errorList.canBeRetried) {\n <button (click)=\"retry()\" class=\"et-query-error-retry-button\">\n {{ host.language() === 'en' ? 'Retry' : 'Erneut versuchen' }}\n </button>\n }\n }\n</div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: QueryErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
19
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.11", type: QueryErrorComponent, isStandalone: true, selector: "et-query-error", host: { classAttribute: "et-query-error-host" }, hostDirectives: [{ directive: i1.QueryErrorDirective, inputs: ["error", "error", "query", "query", "language", "language"] }], ngImport: i0, template: "<div\n [ngClass]=\"{ 'et-query-error--can-be-retried': canBeRetried(), 'et-query-error--is-list': isList() }\"\n class=\"et-query-error\"\n>\n @if (errorList(); as errorList) {\n <h3 class=\"et-query-error-title\">{{ errorList.title }}</h3>\n\n @if (!errorList.isList) {\n <p class=\"et-query-error-message\">{{ errorList.items[0]!.message }}</p>\n }\n\n @if (errorList.isList) {\n <ul class=\"et-query-error-list\">\n @for (item of errorList.items; track trackByFn($index, item)) {\n <li class=\"et-query-error-list-item\">\n {{ item.message }}\n </li>\n }\n </ul>\n }\n\n @if (errorList.canBeRetried) {\n <button (click)=\"retry()\" class=\"et-query-error-retry-button\">\n {{ host.language() === 'en' ? 'Retry' : 'Erneut versuchen' }}\n </button>\n }\n }\n</div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
20
20
  }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: QueryErrorComponent, decorators: [{
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: QueryErrorComponent, decorators: [{
22
22
  type: Component,
23
23
  args: [{ selector: 'et-query-error', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
24
24
  class: 'et-query-error-host',
25
25
  }, imports: [NgClass], hostDirectives: [{ directive: QueryErrorDirective, inputs: ['error', 'query', 'language'] }], template: "<div\n [ngClass]=\"{ 'et-query-error--can-be-retried': canBeRetried(), 'et-query-error--is-list': isList() }\"\n class=\"et-query-error\"\n>\n @if (errorList(); as errorList) {\n <h3 class=\"et-query-error-title\">{{ errorList.title }}</h3>\n\n @if (!errorList.isList) {\n <p class=\"et-query-error-message\">{{ errorList.items[0]!.message }}</p>\n }\n\n @if (errorList.isList) {\n <ul class=\"et-query-error-list\">\n @for (item of errorList.items; track trackByFn($index, item)) {\n <li class=\"et-query-error-list-item\">\n {{ item.message }}\n </li>\n }\n </ul>\n }\n\n @if (errorList.canBeRetried) {\n <button (click)=\"retry()\" class=\"et-query-error-retry-button\">\n {{ host.language() === 'en' ? 'Retry' : 'Erneut versuchen' }}\n </button>\n }\n }\n</div>\n" }]
26
26
  }] });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktZXJyb3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL3F1ZXJ5LWVycm9yL2NvbXBvbmVudHMvcXVlcnktZXJyb3IvcXVlcnktZXJyb3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL3F1ZXJ5LWVycm9yL2NvbXBvbmVudHMvcXVlcnktZXJyb3IvcXVlcnktZXJyb3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBZXRGLE1BQU0sT0FBTyxtQkFBbUI7SUFaaEM7UUFhcUIsU0FBSSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2pDLGNBQVMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFaEQsaUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLFlBQVksSUFBSSxLQUFLLENBQUMsQ0FBQztRQUN2RSxXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLENBQUM7UUFFcEUsY0FBUyxHQUFvQyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7S0FLdEY7SUFIVyxLQUFLO1FBQ2IsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDOzhHQVhVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDBQQ3pCaEMscTJCQTRCQSw0Q0ROWSxPQUFPOzsyRkFHTixtQkFBbUI7a0JBWi9CLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBRWQsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLEtBQUssRUFBRSxxQkFBcUI7cUJBQzdCLFdBQ1EsQ0FBQyxPQUFPLENBQUMsa0JBQ0YsQ0FBQyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIFRyYWNrQnlGdW5jdGlvbixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGNvbXB1dGVkLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZXh0cmFjdFF1ZXJ5IH0gZnJvbSAnQGV0aGxldGUvcXVlcnknO1xuaW1wb3J0IHsgUVVFUllfRVJST1JfVE9LRU4sIFF1ZXJ5RXJyb3JEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3F1ZXJ5LWVycm9yJztcbmltcG9ydCB7IFF1ZXJ5RXJyb3JJdGVtIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdldC1xdWVyeS1lcnJvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWVyeS1lcnJvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdldC1xdWVyeS1lcnJvci1ob3N0JyxcbiAgfSxcbiAgaW1wb3J0czogW05nQ2xhc3NdLFxuICBob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBRdWVyeUVycm9yRGlyZWN0aXZlLCBpbnB1dHM6IFsnZXJyb3InLCAncXVlcnknLCAnbGFuZ3VhZ2UnXSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgUXVlcnlFcnJvckNvbXBvbmVudCB7XG4gIHByb3RlY3RlZCByZWFkb25seSBob3N0ID0gaW5qZWN0KFFVRVJZX0VSUk9SX1RPS0VOKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGVycm9yTGlzdCA9IGluamVjdChRVUVSWV9FUlJPUl9UT0tFTikuZXJyb3JMaXN0O1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjYW5CZVJldHJpZWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmVycm9yTGlzdCgpPy5jYW5CZVJldHJpZWQgPz8gZmFsc2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNMaXN0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5lcnJvckxpc3QoKT8uaXNMaXN0ID8/IGZhbHNlKTtcblxuICBwcm90ZWN0ZWQgdHJhY2tCeUZuOiBUcmFja0J5RnVuY3Rpb248UXVlcnlFcnJvckl0ZW0+ID0gKGluZGV4LCBpdGVtKSA9PiBpdGVtLm1lc3NhZ2U7XG5cbiAgcHJvdGVjdGVkIHJldHJ5KCkge1xuICAgIGV4dHJhY3RRdWVyeSh0aGlzLmhvc3QucXVlcnkoKSk/LmV4ZWN1dGUoeyBza2lwQ2FjaGU6IHRydWUgfSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgW25nQ2xhc3NdPVwieyAnZXQtcXVlcnktZXJyb3ItLWNhbi1iZS1yZXRyaWVkJzogY2FuQmVSZXRyaWVkKCksICdldC1xdWVyeS1lcnJvci0taXMtbGlzdCc6IGlzTGlzdCgpIH1cIlxuICBjbGFzcz1cImV0LXF1ZXJ5LWVycm9yXCJcbj5cbiAgQGlmIChlcnJvckxpc3QoKTsgYXMgZXJyb3JMaXN0KSB7XG4gICAgPGgzIGNsYXNzPVwiZXQtcXVlcnktZXJyb3ItdGl0bGVcIj57eyBlcnJvckxpc3QudGl0bGUgfX08L2gzPlxuXG4gICAgQGlmICghZXJyb3JMaXN0LmlzTGlzdCkge1xuICAgICAgPHAgY2xhc3M9XCJldC1xdWVyeS1lcnJvci1tZXNzYWdlXCI+e3sgZXJyb3JMaXN0Lml0ZW1zWzBdIS5tZXNzYWdlIH19PC9wPlxuICAgIH1cblxuICAgIEBpZiAoZXJyb3JMaXN0LmlzTGlzdCkge1xuICAgICAgPHVsIGNsYXNzPVwiZXQtcXVlcnktZXJyb3ItbGlzdFwiPlxuICAgICAgICBAZm9yIChpdGVtIG9mIGVycm9yTGlzdC5pdGVtczsgdHJhY2sgdHJhY2tCeUZuKCRpbmRleCwgaXRlbSkpIHtcbiAgICAgICAgICA8bGkgY2xhc3M9XCJldC1xdWVyeS1lcnJvci1saXN0LWl0ZW1cIj5cbiAgICAgICAgICAgIHt7IGl0ZW0ubWVzc2FnZSB9fVxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIH1cbiAgICAgIDwvdWw+XG4gICAgfVxuXG4gICAgQGlmIChlcnJvckxpc3QuY2FuQmVSZXRyaWVkKSB7XG4gICAgICA8YnV0dG9uIChjbGljayk9XCJyZXRyeSgpXCIgY2xhc3M9XCJldC1xdWVyeS1lcnJvci1yZXRyeS1idXR0b25cIj5cbiAgICAgICAge3sgaG9zdC5sYW5ndWFnZSgpID09PSAnZW4nID8gJ1JldHJ5JyA6ICdFcm5ldXQgdmVyc3VjaGVuJyB9fVxuICAgICAgPC9idXR0b24+XG4gICAgfVxuICB9XG48L2Rpdj5cbiJdfQ==
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktZXJyb3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL3F1ZXJ5LWVycm9yL2NvbXBvbmVudHMvcXVlcnktZXJyb3IvcXVlcnktZXJyb3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL3F1ZXJ5LWVycm9yL2NvbXBvbmVudHMvcXVlcnktZXJyb3IvcXVlcnktZXJyb3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBZXRGLE1BQU0sT0FBTyxtQkFBbUI7SUFaaEM7UUFhcUIsU0FBSSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2pDLGNBQVMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFaEQsaUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLFlBQVksSUFBSSxLQUFLLENBQUMsQ0FBQztRQUN2RSxXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLENBQUM7UUFFcEUsY0FBUyxHQUFvQyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7S0FLdEY7SUFIVyxLQUFLO1FBQ2IsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDOytHQVhVLG1CQUFtQjttR0FBbkIsbUJBQW1CLDBQQ3pCaEMscTJCQTRCQSw0Q0ROWSxPQUFPOzs0RkFHTixtQkFBbUI7a0JBWi9CLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBRWQsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLEtBQUssRUFBRSxxQkFBcUI7cUJBQzdCLFdBQ1EsQ0FBQyxPQUFPLENBQUMsa0JBQ0YsQ0FBQyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIFRyYWNrQnlGdW5jdGlvbixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGNvbXB1dGVkLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZXh0cmFjdFF1ZXJ5IH0gZnJvbSAnQGV0aGxldGUvcXVlcnknO1xuaW1wb3J0IHsgUVVFUllfRVJST1JfVE9LRU4sIFF1ZXJ5RXJyb3JEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3F1ZXJ5LWVycm9yJztcbmltcG9ydCB7IFF1ZXJ5RXJyb3JJdGVtIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdldC1xdWVyeS1lcnJvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWVyeS1lcnJvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdldC1xdWVyeS1lcnJvci1ob3N0JyxcbiAgfSxcbiAgaW1wb3J0czogW05nQ2xhc3NdLFxuICBob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBRdWVyeUVycm9yRGlyZWN0aXZlLCBpbnB1dHM6IFsnZXJyb3InLCAncXVlcnknLCAnbGFuZ3VhZ2UnXSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgUXVlcnlFcnJvckNvbXBvbmVudCB7XG4gIHByb3RlY3RlZCByZWFkb25seSBob3N0ID0gaW5qZWN0KFFVRVJZX0VSUk9SX1RPS0VOKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGVycm9yTGlzdCA9IGluamVjdChRVUVSWV9FUlJPUl9UT0tFTikuZXJyb3JMaXN0O1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjYW5CZVJldHJpZWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmVycm9yTGlzdCgpPy5jYW5CZVJldHJpZWQgPz8gZmFsc2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNMaXN0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5lcnJvckxpc3QoKT8uaXNMaXN0ID8/IGZhbHNlKTtcblxuICBwcm90ZWN0ZWQgdHJhY2tCeUZuOiBUcmFja0J5RnVuY3Rpb248UXVlcnlFcnJvckl0ZW0+ID0gKGluZGV4LCBpdGVtKSA9PiBpdGVtLm1lc3NhZ2U7XG5cbiAgcHJvdGVjdGVkIHJldHJ5KCkge1xuICAgIGV4dHJhY3RRdWVyeSh0aGlzLmhvc3QucXVlcnkoKSk/LmV4ZWN1dGUoeyBza2lwQ2FjaGU6IHRydWUgfSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgW25nQ2xhc3NdPVwieyAnZXQtcXVlcnktZXJyb3ItLWNhbi1iZS1yZXRyaWVkJzogY2FuQmVSZXRyaWVkKCksICdldC1xdWVyeS1lcnJvci0taXMtbGlzdCc6IGlzTGlzdCgpIH1cIlxuICBjbGFzcz1cImV0LXF1ZXJ5LWVycm9yXCJcbj5cbiAgQGlmIChlcnJvckxpc3QoKTsgYXMgZXJyb3JMaXN0KSB7XG4gICAgPGgzIGNsYXNzPVwiZXQtcXVlcnktZXJyb3ItdGl0bGVcIj57eyBlcnJvckxpc3QudGl0bGUgfX08L2gzPlxuXG4gICAgQGlmICghZXJyb3JMaXN0LmlzTGlzdCkge1xuICAgICAgPHAgY2xhc3M9XCJldC1xdWVyeS1lcnJvci1tZXNzYWdlXCI+e3sgZXJyb3JMaXN0Lml0ZW1zWzBdIS5tZXNzYWdlIH19PC9wPlxuICAgIH1cblxuICAgIEBpZiAoZXJyb3JMaXN0LmlzTGlzdCkge1xuICAgICAgPHVsIGNsYXNzPVwiZXQtcXVlcnktZXJyb3ItbGlzdFwiPlxuICAgICAgICBAZm9yIChpdGVtIG9mIGVycm9yTGlzdC5pdGVtczsgdHJhY2sgdHJhY2tCeUZuKCRpbmRleCwgaXRlbSkpIHtcbiAgICAgICAgICA8bGkgY2xhc3M9XCJldC1xdWVyeS1lcnJvci1saXN0LWl0ZW1cIj5cbiAgICAgICAgICAgIHt7IGl0ZW0ubWVzc2FnZSB9fVxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIH1cbiAgICAgIDwvdWw+XG4gICAgfVxuXG4gICAgQGlmIChlcnJvckxpc3QuY2FuQmVSZXRyaWVkKSB7XG4gICAgICA8YnV0dG9uIChjbGljayk9XCJyZXRyeSgpXCIgY2xhc3M9XCJldC1xdWVyeS1lcnJvci1yZXRyeS1idXR0b25cIj5cbiAgICAgICAge3sgaG9zdC5sYW5ndWFnZSgpID09PSAnZW4nID8gJ1JldHJ5JyA6ICdFcm5ldXQgdmVyc3VjaGVuJyB9fVxuICAgICAgPC9idXR0b24+XG4gICAgfVxuICB9XG48L2Rpdj5cbiJdfQ==
@@ -408,15 +408,15 @@ export class QueryErrorDirective {
408
408
  return errorList;
409
409
  });
410
410
  }
411
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: QueryErrorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
412
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.8", type: QueryErrorDirective, isStandalone: true, inputs: { error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: true, transformFunction: null }, query: { classPropertyName: "query", publicName: "query", isSignal: true, isRequired: true, transformFunction: null }, language: { classPropertyName: "language", publicName: "language", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
411
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: QueryErrorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
412
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.11", type: QueryErrorDirective, isStandalone: true, inputs: { error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: true, transformFunction: null }, query: { classPropertyName: "query", publicName: "query", isSignal: true, isRequired: true, transformFunction: null }, language: { classPropertyName: "language", publicName: "language", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
413
413
  {
414
414
  provide: QUERY_ERROR_TOKEN,
415
415
  useExisting: QueryErrorDirective,
416
416
  },
417
417
  ], exportAs: ["etQueryError"], ngImport: i0 }); }
418
418
  }
419
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: QueryErrorDirective, decorators: [{
419
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: QueryErrorDirective, decorators: [{
420
420
  type: Directive,
421
421
  args: [{
422
422
  standalone: true,
@@ -429,4 +429,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
429
429
  ],
430
430
  }]
431
431
  }] });
432
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktZXJyb3IuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL3F1ZXJ5LWVycm9yL2RpcmVjdGl2ZXMvcXVlcnktZXJyb3IvcXVlcnktZXJyb3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUtMLHFCQUFxQixFQUNyQiwrQkFBK0IsRUFDL0Isa0JBQWtCLEVBQ2xCLGtCQUFrQixHQUNuQixNQUFNLGdCQUFnQixDQUFDOztBQUd4QixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FBc0IsNkJBQTZCLENBQUMsQ0FBQztBQUV4RyxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxDQUFDLFVBQTBCLEVBQUUsRUFBRTtJQUM3RSxRQUFRLFVBQVUsRUFBRSxDQUFDO1FBQ25CO1lBQ0UsT0FBTyxtRUFBbUUsQ0FBQztRQUM3RTtZQUNFLE9BQU8sMkVBQTJFLENBQUM7UUFDckY7WUFDRSxPQUFPLDhDQUE4QyxDQUFDO1FBQ3hEO1lBQ0UsT0FBTyxvREFBb0QsQ0FBQztRQUM5RDtZQUNFLE9BQU8sdUNBQXVDLENBQUM7UUFDakQ7WUFDRSxPQUFPLHdEQUF3RCxDQUFDO1FBQ2xFO1lBQ0UsT0FBTyx3R0FBd0csQ0FBQztRQUNsSDtZQUNFLE9BQU8sMkRBQTJELENBQUM7UUFDckU7WUFDRSxPQUFPLCtDQUErQyxDQUFDO1FBQ3pEO1lBQ0UsT0FBTywrREFBK0QsQ0FBQztRQUN6RTtZQUNFLE9BQU8sZ0ZBQWdGLENBQUM7UUFDMUY7WUFDRSxPQUFPLHFHQUFxRyxDQUFDO1FBQy9HO1lBQ0UsT0FBTywwRkFBMEYsQ0FBQztRQUNwRztZQUNFLE9BQU8sc0VB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R0FBbkIsbUJBQW1CLDRaQVBuQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxtQkFBbUI7YUFDakM7U0FDRjs7MkZBRVUsbUJBQW1CO2tCQVYvQixTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsY0FBYztvQkFDeEIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcscUJBQXFCO3lCQUNqQztxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5qZWN0aW9uVG9rZW4sIGNvbXB1dGVkLCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQW55UXVlcnksXG4gIEFueVF1ZXJ5Q29sbGVjdGlvbixcbiAgSHR0cFN0YXR1c0NvZGUsXG4gIFJlcXVlc3RFcnJvcixcbiAgaXNDbGFzc1ZhbGlkYXRvckVycm9yLFxuICBpc1N5bWZvbnlGb3JtVmlvbGF0aW9uTGlzdEVycm9yLFxuICBpc1N5bWZvbnlMaXN0RXJyb3IsXG4gIHNob3VsZFJldHJ5UmVxdWVzdCxcbn0gZnJvbSAnQGV0aGxldGUvcXVlcnknO1xuaW1wb3J0IHsgUXVlcnlFcnJvckxpc3QgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBRVUVSWV9FUlJPUl9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxRdWVyeUVycm9yRGlyZWN0aXZlPignUVVFUllfRVJST1JfRElSRUNUSVZFX1RPS0VOJyk7XG5cbmV4cG9ydCBjb25zdCBjb252ZXJ0SHR0cFN0YXR1c0NvZGVUb01lc3NhZ2VFbiA9IChzdGF0dXNDb2RlOiBIdHRwU3RhdHVzQ29kZSkgPT4ge1xuICBzd2l0Y2ggKHN0YXR1c0NvZGUpIHtcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkJhZFJlcXVlc3Q6XG4gICAgICByZXR1cm4gJ1NvcnJ5LCB3ZSBjb3VsZCBub3QgcHJvY2VzcyB5b3VyIHJlcXVlc3QuIFBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlVuYXV0aG9yaXplZDpcbiAgICAgIHJldHVybiAnWW91IGFyZSBub3QgYXV0aG9yaXplZCB0byBwZXJmb3JtIHRoaXMgYWN0aW9uLiBQbGVhc2UgbG9nIGluIHRvIGNvbnRpbnVlLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5QYXltZW50UmVxdWlyZWQ6XG4gICAgICByZXR1cm4gJ1BheW1lbnQgaXMgcmVxdWlyZWQgdG8gY29tcGxldGUgdGhpcyBhY3Rpb24uJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkZvcmJpZGRlbjpcbiAgICAgIHJldHVybiAnWW91IGRvIG5vdCBoYXZlIHBlcm1pc3Npb24gdG8gcGVyZm9ybSB0aGlzIGFjdGlvbi4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTm90Rm91bmQ6XG4gICAgICByZXR1cm4gJ1RoZSByZXF1ZXN0ZWQgcmVzb3VyY2Ugd2FzIG5vdCBmb3VuZC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTWV0aG9kTm90QWxsb3dlZDpcbiAgICAgIHJldHVybiAnVGhlIHJlcXVlc3RlZCBtZXRob2QgaXMgbm90IGFsbG93ZWQgZm9yIHRoaXMgcmVzb3VyY2UuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLk5vdEFjY2VwdGFibGU6XG4gICAgICByZXR1cm4gJ1RoZSByZXF1ZXN0ZWQgcmVzb3VyY2UgaXMgbm90IGNhcGFibGUgb2YgZ2VuZXJhdGluZyBhIHJlc3BvbnNlIG1hdGNoaW5nIHRoZSBsaXN0IG9mIGFjY2VwdGFibGUgdmFsdWVzLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Qcm94eUF1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6XG4gICAgICByZXR1cm4gJ1Byb3h5IGF1dGhlbnRpY2F0aW9uIGlzIHJlcXVpcmVkIHRvIGNvbXBsZXRlIHRoaXMgYWN0aW9uLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5SZXF1ZXN0VGltZW91dDpcbiAgICAgIHJldHVybiAnVGhlIHNlcnZlciB0aW1lZCBvdXQgd2FpdGluZyBmb3IgdGhlIHJlcXVlc3QuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkNvbmZsaWN0OlxuICAgICAgcmV0dXJuICdUaGUgcmVxdWVzdCBjb25mbGljdHMgd2l0aCB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgcmVzb3VyY2UuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkdvbmU6XG4gICAgICByZXR1cm4gJ1RoZSByZXF1ZXN0ZWQgcmVzb3VyY2UgaXMgbm8gbG9uZ2VyIGF2YWlsYWJsZSBhbmQgd2lsbCBub3QgYmUgYXZhaWxhYmxlIGFnYWluLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5MZW5ndGhSZXF1aXJlZDpcbiAgICAgIHJldHVybiAnVGhlIHJlcXVlc3QgZGlkIG5vdCBzcGVjaWZ5IHRoZSBsZW5ndGggb2YgaXRzIGNvbnRlbnQsIHdoaWNoIGlzIHJlcXVpcmVkIGJ5IHRoZSByZXF1ZXN0ZWQgcmVzb3VyY2UuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlByZWNvbmRpdGlvbkZhaWxlZDpcbiAgICAgIHJldHVybiAnVGhlIHNlcnZlciBkb2VzIG5vdCBtZWV0IG9uZSBvZiB0aGUgcHJlY29uZGl0aW9ucyB0aGF0IHRoZSByZXF1ZXN0ZXIgcHV0IG9uIHRoZSByZXF1ZXN0Lic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5QYXlsb2FkVG9vTGFyZ2U6XG4gICAgICByZXR1cm4gJ1RoZSByZXF1ZXN0IGlzIGxhcmdlciB0aGFuIHRoZSBzZXJ2ZXIgaXMgd2lsbGluZyBvciBhYmxlIHRvIHByb2Nlc3MuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlVyaVRvb0xvbmc6XG4gICAgICByZXR1cm4gJ1RoZSBVUkwgcHJvdmlkZWQgd2FzIHRvbyBsb25nIGZvciB0aGUgc2VydmVyIHRvIHByb2Nlc3MuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlVuc3VwcG9ydGVkTWVkaWFUeXBlOlxuICAgICAgcmV0dXJuICdUaGUgcmVxdWVzdCBlbnRpdHkgaGFzIGEgbWVkaWEgdHlwZSB3aGljaCB0aGUgc2VydmVyIG9yIHJlc291cmNlIGRvZXMgbm90IHN1cHBvcnQuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlJhbmdlTm90U2F0aXNmaWFibGU6XG4gICAgICByZXR1cm4gJ1RoZSBjbGllbnQgaGFzIGFza2VkIGZvciBhIHBvcnRpb24gb2YgdGhlIGZpbGUsIGJ1dCB0aGUgc2VydmVyIGNhbm5vdCBzdXBwbHkgdGhhdCBwb3J0aW9uLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5FeHBlY3RhdGlvbkZhaWxlZDpcbiAgICAgIHJldHVybiAnVGhlIHNlcnZlciBjYW5ub3QgbWVldCB0aGUgcmVxdWlyZW1lbnRzIG9mIHRoZSBFeHBlY3QgcmVxdWVzdC1oZWFkZXIgZmllbGQuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkltQVRlYXBvdDpcbiAgICAgIHJldHVybiAnSSBhbSBhIHRlYXBvdC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTWlzZGlyZWN0ZWRSZXF1ZXN0OlxuICAgICAgcmV0dXJuICdUaGUgcmVxdWVzdCB3YXMgZGlyZWN0ZWQgYXQgYSBzZXJ2ZXIgdGhhdCBpcyBub3QgYWJsZSB0byBwcm9kdWNlIGEgcmVzcG9uc2UuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlVucHJvY2Vzc2FibGVFbnRpdHk6XG4gICAgICByZXR1cm4gJ1RoZSByZXF1ZXN0IHdhcyB3ZWxsLWZvcm1lZCBidXQgd2FzIHVuYWJsZSB0byBiZSBmb2xsb3dlZCBkdWUgdG8gc2VtYW50aWMgZXJyb3JzLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Mb2NrZWQ6XG4gICAgICByZXR1cm4gJ1RoZSByZXNvdXJjZSB0aGF0IGlzIGJlaW5nIGFjY2Vzc2VkIGlzIGxvY2tlZC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuRmFpbGVkRGVwZW5kZW5jeTpcbiAgICAgIHJldHVybiAnVGhlIHJlcXVlc3QgZmFpbGVkIGR1ZSB0byBmYWlsdXJlIG9mIGEgcHJldmlvdXMgcmVxdWVzdC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuVG9vRWFybHk6XG4gICAgICByZXR1cm4gJ1RoZSBzZXJ2ZXIgaXMgdW53aWxsaW5nIHRvIHByb2Nlc3MgdGhlIHJlcXVlc3QgYmVjYXVzZSB0aGUgdXNlciBoYXMgbm90IGJlZW4gYXV0aGVudGljYXRlZC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuVXBncmFkZVJlcXVpcmVkOlxuICAgICAgcmV0dXJuICdUaGUgY2xpZW50IHNob3VsZCBzd2l0Y2ggdG8gYSBkaWZmZXJlbnQgcHJvdG9jb2wgc3VjaCBhcyBUTFMvMS4wLCBnaXZlbiBpbiB0aGUgVXBncmFkZSBoZWFkZXIgZmllbGQuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlByZWNvbmRpdGlvblJlcXVpcmVkOlxuICAgICAgcmV0dXJuICdUaGUgb3JpZ2luIHNlcnZlciByZXF1aXJlcyB0aGUgcmVxdWVzdCB0byBiZSBjb25kaXRpb25hbC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuVG9vTWFueVJlcXVlc3RzOlxuICAgICAgcmV0dXJuICdZb3UgaGF2ZSBzZW50IHRvbyBtYW55IHJlcXVlc3RzIGluIGEgZ2l2ZW4gYW1vdW50IG9mIHRpbWUuIFBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlJlcXVlc3RIZWFkZXJGaWVsZHNUb29MYXJnZTpcbiAgICAgIHJldHVybiAnVGhlIHNlcnZlciBpcyB1bndpbGxpbmcgdG8gcHJvY2VzcyB0aGUgcmVxdWVzdCBiZWNhdXNlIGl0cyBoZWFkZXIgZmllbGRzIGFyZSB0b28gbGFyZ2UuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlVuYXZhaWxhYmxlRm9yTGVnYWxSZWFzb25zOlxuICAgICAgcmV0dXJuICdUaGUgcmVzb3VyY2UgaXMgdW5hdmFpbGFibGUgZHVlIHRvIGEgbGVnYWwgZGVtYW5kLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5JbnRlcm5hbFNlcnZlckVycm9yOlxuICAgICAgcmV0dXJuICdTb21ldGhpbmcgd2VudCB3cm9uZyBvbiBvdXIgZW5kLiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Ob3RJbXBsZW1lbnRlZDpcbiAgICAgIHJldHVybiAnVGhlIHNlcnZlciBkb2VzIG5vdCBzdXBwb3J0IHRoZSBmdW5jdGlvbmFsaXR5IHJlcXVpcmVkIHRvIGZ1bGZpbGwgdGhlIHJlcXVlc3QuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkJhZEdhdGV3YXk6XG4gICAgICByZXR1cm4gJ1NvbWV0aGluZyB3ZW50IHdyb25nIG9uIG91ciBlbmQuIFBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlNlcnZpY2VVbmF2YWlsYWJsZTpcbiAgICAgIHJldHVybiAnVGhlIHNlcnZlciBpcyBjdXJyZW50bHkgdW5hYmxlIHRvIGhhbmRsZSB0aGUgcmVxdWVzdCBkdWUgdG8gYSB0ZW1wb3Jhcnkgb3ZlcmxvYWQgb3IgbWFpbnRlbmFuY2Ugb2YgdGhlIHNlcnZlci4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuR2F0ZXdheVRpbWVvdXQ6XG4gICAgICByZXR1cm4gJ1RoZSBzZXJ2ZXIsIHdoaWxlIGFjdGluZyBhcyBhIGdhdGV3YXkgb3IgcHJveHksIGRpZCBub3QgcmVjZWl2ZSBhIHRpbWVseSByZXNwb25zZSBmcm9tIHRoZSB1cHN0cmVhbSBzZXJ2ZXIgc3BlY2lmaWVkIGJ5IHRoZSBVUkwgb3Igc29tZSBvdGhlciBhdXhpbGlhcnkgc2VydmVyIGl0IG5lZWRlZCB0byBhY2Nlc3MgaW4gYXR0ZW1wdGluZyB0byBjb21wbGV0ZSB0aGUgcmVxdWVzdC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuSHR0cFZlcnNpb25Ob3RTdXBwb3J0ZWQ6XG4gICAgICByZXR1cm4gJ1RoZSBzZXJ2ZXIgZG9lcyBub3Qgc3VwcG9ydCB0aGUgSFRUUCBwcm90b2NvbCB2ZXJzaW9uIHVzZWQgaW4gdGhlIHJlcXVlc3QuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlZhcmlhbnRBbHNvTmVnb3RpYXRlczpcbiAgICAgIHJldHVybiAnVGhlIHNlcnZlciBoYXMgYW4gaW50ZXJuYWwgY29uZmlndXJhdGlvbiBlcnJvcjogdGhlIGNob3NlbiB2YXJpYW50IHJlc291cmNlIGlzIGNvbmZpZ3VyZWQgdG8gZW5nYWdlIGluIHRyYW5zcGFyZW50IGNvbnRlbnQgbmVnb3RpYXRpb24gaXRzZWxmLCBhbmQgaXMgdGhlcmVmb3JlIG5vdCBhIHByb3BlciBlbmQgcG9pbnQgaW4gdGhlIG5lZ290aWF0aW9uIHByb2Nlc3MuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkluc3VmZmljaWVudFN0b3JhZ2U6XG4gICAgICByZXR1cm4gJ1RoZSBtZXRob2QgY291bGQgbm90IGJlIHBlcmZvcm1lZCBvbiB0aGUgcmVzb3VyY2UgYmVjYXVzZSB0aGUgc2VydmVyIGlzIHVuYWJsZSB0byBzdG9yZSB0aGUgcmVwcmVzZW50YXRpb24gbmVlZGVkIHRvIHN1Y2Nlc3NmdWxseSBjb21wbGV0ZSB0aGUgcmVxdWVzdC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTG9vcERldGVjdGVkOlxuICAgICAgcmV0dXJuICdUaGUgc2VydmVyIGRldGVjdGVkIGFuIGluZmluaXRlIGxvb3Agd2hpbGUgcHJvY2Vzc2luZyB0aGUgcmVxdWVzdC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTm90RXh0ZW5kZWQ6XG4gICAgICByZXR1cm4gJ0Z1cnRoZXIgZXh0ZW5zaW9ucyB0byB0aGUgcmVxdWVzdCBhcmUgcmVxdWlyZWQgZm9yIHRoZSBzZXJ2ZXIgdG8gZnVsZmlsbCBpdC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTmV0d29ya0F1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6XG4gICAgICByZXR1cm4gJ1lvdSBuZWVkIHRvIGF1dGhlbnRpY2F0ZSB0byBnYWluIG5ldHdvcmsgYWNjZXNzLic7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiAnU29tZXRoaW5nIHdlbnQgd3JvbmcuIENoZWNrIHlvdXIgaW50ZXJuZXQgY29ubmVjdGlvbiBhbmQgdHJ5IGFnYWluIGxhdGVyLic7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBjb252ZXJ0SHR0cFN0YXR1c0NvZGVUb01lc3NhZ2VEZSA9IChzdGF0dXNDb2RlOiBIdHRwU3RhdHVzQ29kZSkgPT4ge1xuICBzd2l0Y2ggKHN0YXR1c0NvZGUpIHtcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkJhZFJlcXVlc3Q6XG4gICAgICByZXR1cm4gJ0VudHNjaHVsZGlndW5nLCB3aXIga29ubnRlbiBJaHJlIEFuZnJhZ2UgbmljaHQgYmVhcmJlaXRlbi4gQml0dGUgdmVyc3VjaGVuIFNpZSBlcyBzcMOkdGVyIGVybmV1dC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuVW5hdXRob3JpemVkOlxuICAgICAgcmV0dXJuICdTaWUgc2luZCBuaWNodCBiZXJlY2h0aWd0LCBkaWVzZSBBa3Rpb24gYXVzenVmw7xocmVuLiBCaXR0ZSBtZWxkZW4gU2llIHNpY2ggYW4sIHVtIGZvcnR6dWZhaHJlbi4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuUGF5bWVudFJlcXVpcmVkOlxuICAgICAgcmV0dXJuICdadXIgQXVzZsO8aHJ1bmcgZGllc2VyIEFrdGlvbiBpc3QgZWluZSBaYWhsdW5nIGVyZm9yZGVybGljaC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuRm9yYmlkZGVuOlxuICAgICAgcmV0dXJuICdTaWUgaGFiZW4ga2VpbmUgQmVyZWNodGlndW5nLCBkaWVzZSBBa3Rpb24gYXVzenVmw7xocmVuLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Ob3RGb3VuZDpcbiAgICAgIHJldHVybiAnRGllIGFuZ2Vmb3JkZXJ0ZSBSZXNzb3VyY2Ugd3VyZGUgbmljaHQgZ2VmdW5kZW4uJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLk1ldGhvZE5vdEFsbG93ZWQ6XG4gICAgICByZXR1cm4gJ0RpZSBhbmdlZm9yZGVydGUgTWV0aG9kZSBpc3QgZsO8ciBkaWVzZSBSZXNzb3VyY2UgbmljaHQgenVsw6Rzc2lnLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Ob3RBY2NlcHRhYmxlOlxuICAgICAgcmV0dXJuICdEaWUgYW5nZWZvcmRlcnRlIFJlc3NvdXJjZSBpc3QgbmljaHQgaW4gZGVyIExhZ2UsIGVpbmUgQW50d29ydCB6dSBnZW5lcmllcmVuLCBkaWUgZGVyIExpc3RlIGRlciBha3plcHRhYmxlbiBXZXJ0ZSBlbnRzcHJpY2h0Lic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Qcm94eUF1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6XG4gICAgICByZXR1cm4gJ1p1ciBBdXNmw7xocnVuZyBkaWVzZXIgQWt0aW9uIGlzdCBlaW5lIFByb3h5LUF1dGhlbnRpZml6aWVydW5nIGVyZm9yZGVybGljaC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuUmVxdWVzdFRpbWVvdXQ6XG4gICAgICByZXR1cm4gJ0RlciBTZXJ2ZXIgaGF0IGF1ZiBkaWUgQW5mb3JkZXJ1bmcgZ2V3YXJ0ZXQuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkNvbmZsaWN0OlxuICAgICAgcmV0dXJuICdEaWUgQW5mb3JkZXJ1bmcgc3RlaHQgaW0gV2lkZXJzcHJ1Y2ggenVtIGFrdHVlbGxlbiBadXN0YW5kIGRlciBSZXNzb3VyY2UuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkdvbmU6XG4gICAgICByZXR1cm4gJ0RpZSBhbmdlZm9yZGVydGUgUmVzc291cmNlIGlzdCBuaWNodCBtZWhyIHZlcmbDvGdiYXIgdW5kIHdpcmQgYXVjaCBuaWNodCBtZWhyIHZlcmbDvGdiYXIgc2Vpbi4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTGVuZ3RoUmVxdWlyZWQ6XG4gICAgICByZXR1cm4gJ0RpZSBBbmZvcmRlcnVuZyBoYXQgZGllIEzDpG5nZSBpaHJlcyBJbmhhbHRzIG5pY2h0IGFuZ2VnZWJlbiwgZGllIHZvbiBkZXIgYW5nZWZvcmRlcnRlbiBSZXNzb3VyY2UgYmVuw7Z0aWd0IHdpcmQuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlByZWNvbmRpdGlvbkZhaWxlZDpcbiAgICAgIHJldHVybiAnRGVyIFNlcnZlciBlcmbDvGxsdCBlaW5lIGRlciBWb3JhdXNzZXR6dW5nZW4gbmljaHQsIGRpZSBkZXIgQW5mb3JkZXJlciBhbiBkaWUgQW5mb3JkZXJ1bmcgZ2VzdGVsbHQgaGF0Lic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5QYXlsb2FkVG9vTGFyZ2U6XG4gICAgICByZXR1cm4gJ0RpZSBBbmZvcmRlcnVuZyBpc3QgZ3LDtsOfZXIgYWxzIGRlciBTZXJ2ZXIgYmVyZWl0IG9kZXIgaW4gZGVyIExhZ2UgaXN0LCB6dSB2ZXJhcmJlaXRlbi4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuVXJpVG9vTG9uZzpcbiAgICAgIHJldHVybiAnRGllIGJlcmVpdGdlc3RlbGx0ZSBVUkwgd2FyIGbDvHIgZGVuIFNlcnZlciB6dSBsYW5nLCB1bSBzaWUgenUgdmVyYXJiZWl0ZW4uJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlVuc3VwcG9ydGVkTWVkaWFUeXBlOlxuICAgICAgcmV0dXJuICdEaWUgQW5mb3JkZXJ1bmdzZWluaGVpdCBoYXQgZWluZW4gTWVkaWVudHlwLCBkZW4gZGVyIFNlcnZlciBvZGVyIGRpZSBSZXNzb3VyY2UgbmljaHQgdW50ZXJzdMO8dHp0Lic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5SYW5nZU5vdFNhdGlzZmlhYmxlOlxuICAgICAgcmV0dXJuICdEZXIgQ2xpZW50IGhhdCBlaW5lbiBUZWlsIGRlciBEYXRlaSBhbmdlZm9yZGVydCwgYWJlciBkZXIgU2VydmVyIGthbm4gZGllc2VuIFRlaWwgbmljaHQgbGllZmVybi4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuRXhwZWN0YXRpb25GYWlsZWQ6XG4gICAgICByZXR1cm4gJ0RlciBTZXJ2ZXIga2FubiBkaWUgQW5mb3JkZXJ1bmdlbiBkZXMgRXJ3YXJ0dW5nLUFuZm9yZGVydW5nc2tvcGZmZWxkcyBuaWNodCBlcmbDvGxsZW4uJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkltQVRlYXBvdDpcbiAgICAgIHJldHVybiAnSWNoIGJpbiBlaW5lIFRlZWthbm5lLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5NaXNkaXJlY3RlZFJlcXVlc3Q6XG4gICAgICByZXR1cm4gJ0RpZSBBbmZvcmRlcnVuZyB3dXJkZSBhbiBlaW5lbiBTZXJ2ZXIgZ2VyaWNodGV0LCBkZXIgbmljaHQgaW4gZGVyIExhZ2UgaXN0LCBlaW5lIEFudHdvcnQgenUgZ2VuZXJpZXJlbi4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuVW5wcm9jZXNzYWJsZUVudGl0eTpcbiAgICAgIHJldHVybiAnRGllIEFuZm9yZGVydW5nIHdhciBndXQgZm9ybXVsaWVydCwga29ubnRlIGFiZXIgYXVmZ3J1bmQgc2VtYW50aXNjaGVyIEZlaGxlciBuaWNodCBiZWZvbGd0IHdlcmRlbi4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTG9ja2VkOlxuICAgICAgcmV0dXJuICdEaWUgUmVzc291cmNlLCBhdWYgZGllIHp1Z2VncmlmZmVuIHdpcmQsIGlzdCBnZXNwZXJydC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuRmFpbGVkRGVwZW5kZW5jeTpcbiAgICAgIHJldHVybiAnRGllIEFuZm9yZGVydW5nIGlzdCBhdWZncnVuZCBlaW5lcyBGZWhsZXJzIGVpbmVyIHZvcmhlcmlnZW4gQW5mb3JkZXJ1bmcgZmVobGdlc2NobGFnZW4uJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlRvb0Vhcmx5OlxuICAgICAgcmV0dXJuICdEZXIgU2VydmVyIGlzdCBuaWNodCBiZXJlaXQsIGRpZSBBbmZvcmRlcnVuZyB6dSB2ZXJhcmJlaXRlbiwgd2VpbCBkZXIgQmVudXR6ZXIgbmljaHQgYXV0aGVudGlmaXppZXJ0IHd1cmRlLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5VcGdyYWRlUmVxdWlyZWQ6XG4gICAgICByZXR1cm4gJ0RlciBDbGllbnQgc29sbHRlIHp1IGVpbmVtIGFuZGVyZW4gUHJvdG9rb2xsIHdpZSBUTFMvMS4wIHdlY2hzZWxuLCBkYXMgaW0gVXBncmFkZS1BbmZvcmRlcnVuZ3Nrb3BmZmVsZCBhbmdlZ2ViZW4gaXN0Lic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5QcmVjb25kaXRpb25SZXF1aXJlZDpcbiAgICAgIHJldHVybiAnRGVyIFVyc3BydW5nc3NlcnZlciBlcmZvcmRlcnQsIGRhc3MgZGllIEFuZm9yZGVydW5nIGJlZGluZ3QgaXN0Lic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Ub29NYW55UmVxdWVzdHM6XG4gICAgICByZXR1cm4gJ1NpZSBoYWJlbiBpbiBlaW5lciBiZXN0aW1tdGVuIFplaXQgenUgdmllbGUgQW5mcmFnZW4gZ2VzZW5kZXQuIEJpdHRlIHZlcnN1Y2hlbiBTaWUgZXMgc3DDpHRlciBlcm5ldXQuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlJlcXVlc3RIZWFkZXJGaWVsZHNUb29MYXJnZTpcbiAgICAgIHJldHVybiAnRGVyIFNlcnZlciBpc3QgbmljaHQgYmVyZWl0LCBkaWUgQW5mb3JkZXJ1bmcgenUgdmVyYXJiZWl0ZW4sIHdlaWwgc2VpbmUgS29wZmZlbGRlciB6dSBncm/DnyBzaW5kLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5VbmF2YWlsYWJsZUZvckxlZ2FsUmVhc29uczpcbiAgICAgIHJldHVybiAnRGllIFJlc3NvdXJjZSBpc3QgYXVmZ3J1bmQgZWluZXIgcmVjaHRsaWNoZW4gRm9yZGVydW5nIG5pY2h0IHZlcmbDvGdiYXIuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkludGVybmFsU2VydmVyRXJyb3I6XG4gICAgICByZXR1cm4gJ0V0d2FzIGlzdCBzY2hpZWYgZ2VsYXVmZW4uIEJpdHRlIHZlcnN1Y2hlbiBTaWUgZXMgc3DDpHRlciBlcm5ldXQuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLk5vdEltcGxlbWVudGVkOlxuICAgICAgcmV0dXJuICdEZXIgU2VydmVyIHVudGVyc3TDvHR6dCBkaWUgenVyIEVyZsO8bGx1bmcgZGVyIEFuZm9yZGVydW5nIGVyZm9yZGVybGljaGUgRnVua3Rpb25hbGl0w6R0IG5pY2h0Lic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5CYWRHYXRld2F5OlxuICAgICAgcmV0dXJuICdFdHdhcyBpc3Qgc2NoaWVmIGdlbGF1ZmVuLiBCaXR0ZSB2ZXJzdWNoZW4gU2llIGVzIHNww6R0ZXIgZXJuZXV0Lic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5TZXJ2aWNlVW5hdmFpbGFibGU6XG4gICAgICByZXR1cm4gJ0RlciBTZXJ2ZXIga2FubiBkaWUgQW5mb3JkZXJ1bmcgZGVyemVpdCBuaWNodCBiZWFyYmVpdGVuLCBkYSBlciB2b3LDvGJlcmdlaGVuZCDDvGJlcmxhc3RldCBvZGVyIGdld2FydGV0IHdpcmQuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkdhdGV3YXlUaW1lb3V0OlxuICAgICAgcmV0dXJuICdEZXIgU2VydmVyIGhhdCBiZWltIFZlcnN1Y2gsIGRpZSBBbmZvcmRlcnVuZyBhYnp1c2NobGllw59lbiwga2VpbmUgcmVjaHR6ZWl0aWdlIEFudHdvcnQgdm9tIFNlcnZlciBlcmhhbHRlbi4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuSHR0cFZlcnNpb25Ob3RTdXBwb3J0ZWQ6XG4gICAgICByZXR1cm4gJ0RlciBTZXJ2ZXIgdW50ZXJzdMO8dHp0IGRpZSBpbiBkZXIgQW5mb3JkZXJ1bmcgdmVyd2VuZGV0ZSBIVFRQLVByb3Rva29sbHZlcnNpb24gbmljaHQuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlZhcmlhbnRBbHNvTmVnb3RpYXRlczpcbiAgICAgIHJldHVybiAnRGVyIFNlcnZlciBoYXQgZWluZW4gaW50ZXJuZW4gS29uZmlndXJhdGlvbnNmZWhsZXI6IERpZSBhdXNnZXfDpGhsdGUgVmFyaWFudGVucmVzc291cmNlIGlzdCBzbyBrb25maWd1cmllcnQsIGRhc3Mgc2llIHNpY2ggc2VsYnN0IGluIGRpZSB0cmFuc3BhcmVudGUgSW5oYWx0c3ZlcmhhbmRsdW5nIGVpbmJpbmRldCwgdW5kIGlzdCBkYWhlciBrZWluIGdlZWlnbmV0ZXIgRW5kcHVua3QgaW0gVmVyaGFuZGx1bmdzcHJvemVzcy4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuSW5zdWZmaWNpZW50U3RvcmFnZTpcbiAgICAgIHJldHVybiAnRGllIE1ldGhvZGUga29ubnRlIGF1ZiBkaWUgUmVzc291cmNlIG5pY2h0IGFuZ2V3ZW5kZXQgd2VyZGVuLCB3ZWlsIGRlciBTZXJ2ZXIgbmljaHQgaW4gZGVyIExhZ2UgaXN0LCBkaWUgZsO8ciBkaWUgZXJmb2xncmVpY2hlIEF1c2bDvGhydW5nIGRlciBBbmZvcmRlcnVuZyBlcmZvcmRlcmxpY2hlIERhcnN0ZWxsdW5nIHp1IHNwZWljaGVybi4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTG9vcERldGVjdGVkOlxuICAgICAgcmV0dXJuICdEZXIgU2VydmVyIGhhdCBlaW5lIEVuZGxvc3NjaGxlaWZlIGVya2FubnQsIHfDpGhyZW5kIGVyIGRpZSBBbmZvcmRlcnVuZyB2ZXJhcmJlaXRldC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTm90RXh0ZW5kZWQ6XG4gICAgICByZXR1cm4gJ1dlaXRlcmUgRXJ3ZWl0ZXJ1bmdlbiBkZXIgQW5mb3JkZXJ1bmcgc2luZCBlcmZvcmRlcmxpY2gsIGRhbWl0IGRlciBTZXJ2ZXIgc2llIGVyZsO8bGxlbiBrYW5uLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5OZXR3b3JrQXV0aGVudGljYXRpb25SZXF1aXJlZDpcbiAgICAgIHJldHVybiAnU2llIG3DvHNzZW4gc2ljaCBhdXRoZW50aWZpemllcmVuLCB1bSBadWdhbmcgenVtIE5ldHp3ZXJrIHp1IGVyaGFsdGVuLic7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiAnRXR3YXMgaXN0IHNjaGllZiBnZWxhdWZlbi4gw5xiZXJwcsO8ZmVuIFNpZSBJaHJlIEludGVybmV0dmVyYmluZHVuZyB1bmQgdmVyc3VjaGVuIFNpZSBlcyBzcMOkdGVyIGVybmV1dC4nO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgY29udmVydEh0dHBTdGF0dXNDb2RlVG9UaXRsZUVuID0gKHN0YXR1c0NvZGU6IEh0dHBTdGF0dXNDb2RlKSA9PiB7XG4gIHN3aXRjaCAoc3RhdHVzQ29kZSkge1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuQmFkUmVxdWVzdDpcbiAgICAgIHJldHVybiAnQmFkIHJlcXVlc3QnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuVW5hdXRob3JpemVkOlxuICAgICAgcmV0dXJuICdVbmF1dGhvcml6ZWQnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuUGF5bWVudFJlcXVpcmVkOlxuICAgICAgcmV0dXJuICdQYXltZW50IHJlcXVpcmVkJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkZvcmJpZGRlbjpcbiAgICAgIHJldHVybiAnRm9yYmlkZGVuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLk5vdEZvdW5kOlxuICAgICAgcmV0dXJuICdOb3QgZm91bmQnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTWV0aG9kTm90QWxsb3dlZDpcbiAgICAgIHJldHVybiAnTWV0aG9kIG5vdCBhbGxvd2VkJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLk5vdEFjY2VwdGFibGU6XG4gICAgICByZXR1cm4gJ05vdCBhY2NlcHRhYmxlJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlByb3h5QXV0aGVudGljYXRpb25SZXF1aXJlZDpcbiAgICAgIHJldHVybiAnUHJveHkgYXV0aGVudGljYXRpb24gcmVxdWlyZWQnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuUmVxdWVzdFRpbWVvdXQ6XG4gICAgICByZXR1cm4gJ1JlcXVlc3QgdGltZW91dCc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Db25mbGljdDpcbiAgICAgIHJldHVybiAnQ29uZmxpY3QnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuR29uZTpcbiAgICAgIHJldHVybiAnR29uZSc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5MZW5ndGhSZXF1aXJlZDpcbiAgICAgIHJldHVybiAnTGVuZ3RoIHJlcXVpcmVkJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlByZWNvbmRpdGlvbkZhaWxlZDpcbiAgICAgIHJldHVybiAnUHJlY29uZGl0aW9uIGZhaWxlZCc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5QYXlsb2FkVG9vTGFyZ2U6XG4gICAgICByZXR1cm4gJ1BheWxvYWQgdG9vIGxhcmdlJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlVyaVRvb0xvbmc6XG4gICAgICByZXR1cm4gJ1VSSSB0b28gbG9uZyc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5VbnN1cHBvcnRlZE1lZGlhVHlwZTpcbiAgICAgIHJldHVybiAnVW5zdXBwb3J0ZWQgbWVkaWEgdHlwZSc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5SYW5nZU5vdFNhdGlzZmlhYmxlOlxuICAgICAgcmV0dXJuICdSYW5nZSBub3Qgc2F0aXNmaWFibGUnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuRXhwZWN0YXRpb25GYWlsZWQ6XG4gICAgICByZXR1cm4gJ0V4cGVjdGF0aW9uIGZhaWxlZCc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5JbUFUZWFwb3Q6XG4gICAgICByZXR1cm4gJ0kgYW0gYSB0ZWFwb3QnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTWlzZGlyZWN0ZWRSZXF1ZXN0OlxuICAgICAgcmV0dXJuICdNaXNkaXJlY3RlZCByZXF1ZXN0JztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlVucHJvY2Vzc2FibGVFbnRpdHk6XG4gICAgICByZXR1cm4gJ1VucHJvY2Vzc2FibGUgZW50aXR5JztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkxvY2tlZDpcbiAgICAgIHJldHVybiAnTG9ja2VkJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkZhaWxlZERlcGVuZGVuY3k6XG4gICAgICByZXR1cm4gJ0ZhaWxlZCBkZXBlbmRlbmN5JztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlRvb0Vhcmx5OlxuICAgICAgcmV0dXJuICdUb28gZWFybHknO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuVXBncmFkZVJlcXVpcmVkOlxuICAgICAgcmV0dXJuICdVcGdyYWRlIHJlcXVpcmVkJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlByZWNvbmRpdGlvblJlcXVpcmVkOlxuICAgICAgcmV0dXJuICdQcmVjb25kaXRpb24gcmVxdWlyZWQnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuVG9vTWFueVJlcXVlc3RzOlxuICAgICAgcmV0dXJuICdUb28gbWFueSByZXF1ZXN0cyc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5SZXF1ZXN0SGVhZGVyRmllbGRzVG9vTGFyZ2U6XG4gICAgICByZXR1cm4gJ1JlcXVlc3QgaGVhZGVyIGZpZWxkcyB0b28gbGFyZ2UnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuVW5hdmFpbGFibGVGb3JMZWdhbFJlYXNvbnM6XG4gICAgICByZXR1cm4gJ1VuYXZhaWxhYmxlIGZvciBsZWdhbCByZWFzb25zJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkludGVybmFsU2VydmVyRXJyb3I6XG4gICAgICByZXR1cm4gJ0ludGVybmFsIHNlcnZlciBlcnJvcic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Ob3RJbXBsZW1lbnRlZDpcbiAgICAgIHJldHVybiAnTm90IGltcGxlbWVudGVkJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkJhZEdhdGV3YXk6XG4gICAgICByZXR1cm4gJ0JhZCBnYXRld2F5JztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlNlcnZpY2VVbmF2YWlsYWJsZTpcbiAgICAgIHJldHVybiAnU2VydmljZSB1bmF2YWlsYWJsZSc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5HYXRld2F5VGltZW91dDpcbiAgICAgIHJldHVybiAnR2F0ZXdheSB0aW1lb3V0JztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkh0dHBWZXJzaW9uTm90U3VwcG9ydGVkOlxuICAgICAgcmV0dXJuICdIVFRQIHZlcnNpb24gbm90IHN1cHBvcnRlZCc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5WYXJpYW50QWxzb05lZ290aWF0ZXM6XG4gICAgICByZXR1cm4gJ1ZhcmlhbnQgYWxzbyBuZWdvdGlhdGVzJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkluc3VmZmljaWVudFN0b3JhZ2U6XG4gICAgICByZXR1cm4gJ0luc3VmZmljaWVudCBzdG9yYWdlJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkxvb3BEZXRlY3RlZDpcbiAgICAgIHJldHVybiAnTG9vcCBkZXRlY3RlZCc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Ob3RFeHRlbmRlZDpcbiAgICAgIHJldHVybiAnTm90IGV4dGVuZGVkJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLk5ldHdvcmtBdXRoZW50aWNhdGlvblJlcXVpcmVkOlxuICAgICAgcmV0dXJuICdOZXR3b3JrIGF1dGhlbnRpY2F0aW9uIHJlcXVpcmVkJztcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuICdTb21ldGhpbmcgd2VudCB3cm9uZyc7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBjb252ZXJ0SHR0cFN0YXR1c0NvZGVUb1RpdGxlRGUgPSAoc3RhdHVzQ29kZTogSHR0cFN0YXR1c0NvZGUpID0+IHtcbiAgc3dpdGNoIChzdGF0dXNDb2RlKSB7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5CYWRSZXF1ZXN0OlxuICAgICAgcmV0dXJuICdVbmfDvGx0aWdlIEFuZnJhZ2UnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuVW5hdXRob3JpemVkOlxuICAgICAgcmV0dXJuICdOaWNodCBhdXRvcmlzaWVydCc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5QYXltZW50UmVxdWlyZWQ6XG4gICAgICByZXR1cm4gJ1phaGx1bmcgZXJmb3JkZXJsaWNoJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkZvcmJpZGRlbjpcbiAgICAgIHJldHVybiAnVmVyYm90ZW4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTm90Rm91bmQ6XG4gICAgICByZXR1cm4gJ05pY2h0IGdlZnVuZGVuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLk1ldGhvZE5vdEFsbG93ZWQ6XG4gICAgICByZXR1cm4gJ01ldGhvZGUgbmljaHQgZXJsYXVidCc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Ob3RBY2NlcHRhYmxlOlxuICAgICAgcmV0dXJuICdOaWNodCBha3plcHRhYmVsJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlByb3h5QXV0aGVudGljYXRpb25SZXF1aXJlZDpcbiAgICAgIHJldHVybiAnUHJveHktQXV0aGVudGlmaXppZXJ1bmcgZXJmb3JkZXJsaWNoJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlJlcXVlc3RUaW1lb3V0OlxuICAgICAgcmV0dXJuICdBbmZvcmRlcnVuZ3N6ZWl0w7xiZXJzY2hyZWl0dW5nJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkNvbmZsaWN0OlxuICAgICAgcmV0dXJuICdLb25mbGlrdCc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Hb25lOlxuICAgICAgcmV0dXJuICdXZWcnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTGVuZ3RoUmVxdWlyZWQ6XG4gICAgICByZXR1cm4gJ0zDpG5nZSBlcmZvcmRlcmxpY2gnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuUHJlY29uZGl0aW9uRmFpbGVkOlxuICAgICAgcmV0dXJuICdWb3JiZWRpbmd1bmcgZmVobGdlc2NobGFnZW4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuUGF5bG9hZFRvb0xhcmdlOlxuICAgICAgcmV0dXJuICdOdXR6bGFzdCB6dSBncm/Dnyc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5VcmlUb29Mb25nOlxuICAgICAgcmV0dXJuICdVUkkgenUgbGFuZyc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5VbnN1cHBvcnRlZE1lZGlhVHlwZTpcbiAgICAgIHJldHVybiAnTmljaHQgdW50ZXJzdMO8dHp0ZXIgTWVkaWVudHlwJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlJhbmdlTm90U2F0aXNmaWFibGU6XG4gICAgICByZXR1cm4gJ0JlcmVpY2ggbmljaHQgenVmcmllZGVuc3RlbGxlbmQnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuRXhwZWN0YXRpb25GYWlsZWQ6XG4gICAgICByZXR1cm4gJ0Vyd2FydHVuZyBmZWhsZ2VzY2hsYWdlbic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5JbUFUZWFwb3Q6XG4gICAgICByZXR1cm4gJ0ljaCBiaW4gZWluZSBUZWVrYW5uZSc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5NaXNkaXJlY3RlZFJlcXVlc3Q6XG4gICAgICByZXR1cm4gJ0ZlaGxnZWxlaXRldGUgQW5mcmFnZSc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5VbnByb2Nlc3NhYmxlRW50aXR5OlxuICAgICAgcmV0dXJuICdVbnZlcmFyYmVpdGJhcmUgRW50aXTDpHQnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTG9ja2VkOlxuICAgICAgcmV0dXJuICdHZXNwZXJydCc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5GYWlsZWREZXBlbmRlbmN5OlxuICAgICAgcmV0dXJuICdGZWhsZ2VzY2hsYWdlbmUgQWJow6RuZ2lna2VpdCc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Ub29FYXJseTpcbiAgICAgIHJldHVybiAnWnUgZnLDvGgnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuVXBncmFkZVJlcXVpcmVkOlxuICAgICAgcmV0dXJuICdVcGdyYWRlIGVyZm9yZGVybGljaCc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5QcmVjb25kaXRpb25SZXF1aXJlZDpcbiAgICAgIHJldHVybiAnVm9yYmVkaW5ndW5nIGVyZm9yZGVybGljaCc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Ub29NYW55UmVxdWVzdHM6XG4gICAgICByZXR1cm4gJ1p1IHZpZWxlIEFuZnJhZ2VuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlJlcXVlc3RIZWFkZXJGaWVsZHNUb29MYXJnZTpcbiAgICAgIHJldHVybiAnQW5mb3JkZXJ1bmdza29wZmZlbGRlciB6dSBncm/Dnyc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5VbmF2YWlsYWJsZUZvckxlZ2FsUmVhc29uczpcbiAgICAgIHJldHVybiAnQXVzIHJlY2h0bGljaGVuIEdyw7xuZGVuIG5pY2h0IHZlcmbDvGdiYXInO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuSW50ZXJuYWxTZXJ2ZXJFcnJvcjpcbiAgICAgIHJldHVybiAnSW50ZXJuZXIgU2VydmVyZmVobGVyJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLk5vdEltcGxlbWVudGVkOlxuICAgICAgcmV0dXJuICdOaWNodCBpbXBsZW1lbnRpZXJ0JztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkJhZEdhdGV3YXk6XG4gICAgICByZXR1cm4gJ1NjaGxlY2h0ZXMgR2F0ZXdheSc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5TZXJ2aWNlVW5hdmFpbGFibGU6XG4gICAgICByZXR1cm4gJ0RpZW5zdCBuaWNodCB2ZXJmw7xnYmFyJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkdhdGV3YXlUaW1lb3V0OlxuICAgICAgcmV0dXJuICdHYXRld2F5LVplaXTDvGJlcnNjaHJlaXR1bmcnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuSHR0cFZlcnNpb25Ob3RTdXBwb3J0ZWQ6XG4gICAgICByZXR1cm4gJ0hUVFAtVmVyc2lvbiBuaWNodCB1bnRlcnN0w7x0enQnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuVmFyaWFudEFsc29OZWdvdGlhdGVzOlxuICAgICAgcmV0dXJuICdWYXJpYW50ZSB2ZXJoYW5kZWx0IGF1Y2gnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuSW5zdWZmaWNpZW50U3RvcmFnZTpcbiAgICAgIHJldHVybiAnVW56dXJlaWNoZW5kZXIgU3BlaWNoZXInO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTG9vcERldGVjdGVkOlxuICAgICAgcmV0dXJuICdTY2hsZWlmZW5lcmtlbm51bmcnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTm90RXh0ZW5kZWQ6XG4gICAgICByZXR1cm4gJ05pY2h0IGVyd2VpdGVydCc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5OZXR3b3JrQXV0aGVudGljYXRpb25SZXF1aXJlZDpcbiAgICAgIHJldHVybiAnTmV0endlcmthdXRoZW50aWZpemllcnVuZyBlcmZvcmRlcmxpY2gnO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gJ0V0d2FzIGlzdCBzY2hpZWYgZ2VsYXVmZW4nO1xuICB9XG59O1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgZXhwb3J0QXM6ICdldFF1ZXJ5RXJyb3InLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBRVUVSWV9FUlJPUl9UT0tFTixcbiAgICAgIHVzZUV4aXN0aW5nOiBRdWVyeUVycm9yRGlyZWN0aXZlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFF1ZXJ5RXJyb3JEaXJlY3RpdmUge1xuICBlcnJvciA9IGlucHV0LnJlcXVpcmVkPFJlcXVlc3RFcnJvciB8IG51bGw+KCk7XG4gIHF1ZXJ5ID0gaW5wdXQucmVxdWlyZWQ8QW55UXVlcnkgfCBBbnlRdWVyeUNvbGxlY3Rpb24gfCBudWxsPigpO1xuICBsYW5ndWFnZSA9IGlucHV0PCdlbicgfCAnZGUnPignZW4nKTtcblxuICByZWFkb25seSBlcnJvckxpc3QgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgZXJyb3IgPSB0aGlzLmVycm9yKCk7XG5cbiAgICBpZiAoIWVycm9yKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCByZXRyeVJlc3VsdCA9IHNob3VsZFJldHJ5UmVxdWVzdCh7IGVycm9yLCBjdXJyZW50UmV0cnlDb3VudDogMCwgaGVhZGVyczoge30gfSk7XG5cbiAgICBjb25zdCBlcnJvckxpc3Q6IFF1ZXJ5RXJyb3JMaXN0ID0ge1xuICAgICAgY2FuQmVSZXRyaWVkOiByZXRyeVJlc3VsdC5yZXRyeSxcbiAgICAgIHJldHJ5RGVsYXk6IHJldHJ5UmVzdWx0LmRlbGF5ID8/IDAsXG4gICAgICBpc0xpc3Q6IGZhbHNlLFxuICAgICAgaXRlbXM6IFtdLFxuICAgICAgdGl0bGU6XG4gICAgICAgIHRoaXMubGFuZ3VhZ2UoKSA9PT0gJ2VuJ1xuICAgICAgICAgID8gY29udmVydEh0dHBTdGF0dXNDb2RlVG9UaXRsZUVuKGVycm9yLnN0YXR1cylcbiAgICAgICAgICA6IGNvbnZlcnRIdHRwU3RhdHVzQ29kZVRvVGl0bGVEZShlcnJvci5zdGF0dXMpLFxuICAgIH07XG5cbiAgICBjb25zdCBkZXRhaWwgPSBlcnJvci5kZXRhaWw7XG4gICAgY29uc3QgZGVmYXVsdEVycm9yTWVzc2FnZSA9IGAke3RoaXMubGFuZ3VhZ2UoKSA9PT0gJ2VuJyA/IGNvbnZlcnRIdHRwU3RhdHVzQ29kZVRvTWVzc2FnZUVuKGVycm9yLnN0YXR1cykgOiBjb252ZXJ0SHR0cFN0YXR1c0NvZGVUb01lc3NhZ2VEZShlcnJvci5zdGF0dXMpfSAoQ29kZTogJHtlcnJvci5zdGF0dXN9KWA7XG5cbiAgICBpZiAoaXNDbGFzc1ZhbGlkYXRvckVycm9yKGRldGFpbCkpIHtcbiAgICAgIGZvciAoY29uc3QgZXJyb3Igb2YgZGV0YWlsLm1lc3NhZ2UpIHtcbiAgICAgICAgZXJyb3JMaXN0Lml0ZW1zLnB1c2goeyBtZXNzYWdlOiBlcnJvciB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGlzU3ltZm9ueUZvcm1WaW9sYXRpb25MaXN0RXJyb3IoZGV0YWlsKSkge1xuICAgICAgZm9yIChjb25zdCB2aW9sYXRpb24gb2YgZGV0YWlsLnZpb2xhdGlvbnMpIHtcbiAgICAgICAgZXJyb3JMaXN0Lml0ZW1zLnB1c2goeyBtZXNzYWdlOiB2aW9sYXRpb24ubWVzc2FnZSB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGlzU3ltZm9ueUxpc3RFcnJvcihkZXRhaWwpKSB7XG4gICAgICBmb3IgKGNvbnN0IGVycm9yIG9mIGRldGFpbCkge1xuICAgICAgICBlcnJvckxpc3QuaXRlbXMucHVzaCh7IG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgZGV0YWlsID09PSAnb2JqZWN0JyAmJiAhIWRldGFpbCAmJiAnbWVzc2FnZScgaW4gZGV0YWlsICYmIHR5cGVvZiBkZXRhaWwubWVzc2FnZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGVycm9yTGlzdC5pdGVtcy5wdXNoKHsgbWVzc2FnZTogZGV0YWlsLm1lc3NhZ2UgfSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgZGV0YWlsID09PSAnb2JqZWN0JyAmJiAhIWRldGFpbCAmJiAnZGV0YWlsJyBpbiBkZXRhaWwgJiYgdHlwZW9mIGRldGFpbC5kZXRhaWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICAvLyBTeW1mb255IGVycm9yIHJlc3BvbnNlIChkdXJpbmcgZGV2ZWxvcG1lbnQpXG4gICAgICBlcnJvckxpc3QuaXRlbXMucHVzaCh7IG1lc3NhZ2U6IGRldGFpbC5kZXRhaWwgfSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgZGV0YWlsID09PSAnc3RyaW5nJykge1xuICAgICAgZXJyb3JMaXN0Lml0ZW1zLnB1c2goeyBtZXNzYWdlOiBkZXRhaWwgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVycm9yTGlzdC5pdGVtcy5wdXNoKHsgbWVzc2FnZTogZGVmYXVsdEVycm9yTWVzc2FnZSB9KTtcbiAgICB9XG5cbiAgICBlcnJvckxpc3QuaXNMaXN0ID0gZXJyb3JMaXN0Lml0ZW1zLmxlbmd0aCA+IDE7XG5cbiAgICBpZiAoZXJyb3JMaXN0Lml0ZW1zLmxlbmd0aCA9PT0gMSkge1xuICAgICAgY29uc3QgY29tcGFyZVN0cmluZyA9IChzdHI6IHN0cmluZykgPT4gc3RyLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXFxzL2csICcnKS5yZXBsYWNlKC9cXC58LC9nLCAnJyk7XG5cbiAgICAgIGlmIChjb21wYXJlU3RyaW5nKGVycm9yTGlzdC5pdGVtc1swXSEubWVzc2FnZSkgPT09IGNvbXBhcmVTdHJpbmcoZXJyb3JMaXN0LnRpdGxlKSkge1xuICAgICAgICAvLyBPZnRlbiB0aGUgZXJyb3IgdGl0bGUgaXMgdGhlIHNhbWUgYXMgdGhlIGVycm9yIG1lc3NhZ2UuIEluIHRoaXMgY2FzZSB3ZSBzaW1wbHkgdXNlIHRoZSBkZWZhdWx0IGVycm9yIG1lc3NhZ2UgYXMgYSBtZXNzYWdlLlxuICAgICAgICAvLyBUaGlzIHdheSB0aGUgc2FtZSB0ZXh0IGlzIGF0IGxlYXN0IG5vdCBkaXNwbGF5ZWQgdHdpY2UuXG4gICAgICAgIGVycm9yTGlzdC5pdGVtc1swXSEubWVzc2FnZSA9IGRlZmF1bHRFcnJvck1lc3NhZ2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGVycm9yTGlzdDtcbiAgfSk7XG59XG4iXX0=
432
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktZXJyb3IuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL3F1ZXJ5LWVycm9yL2RpcmVjdGl2ZXMvcXVlcnktZXJyb3IvcXVlcnktZXJyb3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUtMLHFCQUFxQixFQUNyQiwrQkFBK0IsRUFDL0Isa0JBQWtCLEVBQ2xCLGtCQUFrQixHQUNuQixNQUFNLGdCQUFnQixDQUFDOztBQUd4QixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FBc0IsNkJBQTZCLENBQUMsQ0FBQztBQUV4RyxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxDQUFDLFVBQTBCLEVBQUUsRUFBRTtJQUM3RSxRQUFRLFVBQVUsRUFBRSxDQUFDO1FBQ25CO1lBQ0UsT0FBTyxtRUFBbUUsQ0FBQztRQUM3RTtZQUNFLE9BQU8sMkVBQTJFLENBQUM7UUFDckY7WUFDRSxPQUFPLDhDQUE4QyxDQUFDO1FBQ3hEO1lBQ0UsT0FBTyxvREFBb0QsQ0FBQztRQUM5RDtZQUNFLE9BQU8sdUNBQXVDLENBQUM7UUFDakQ7WUFDRSxPQUFPLHdEQUF3RCxDQUFDO1FBQ2xFO1lBQ0UsT0FBTyx3R0FBd0csQ0FBQztRQUNsSDtZQUNFLE9BQU8sMkRBQTJELENBQUM7UUFDckU7WUFDRSxPQUFPLCtDQUErQyxDQUFDO1FBQ3pEO1lBQ0UsT0FBTywrREFBK0QsQ0FBQztRQUN6RTtZQUNFLE9BQU8sZ0ZBQWdGLENBQUM7UUFDMUY7WUFDRSxPQUFPLHFHQUFxRyxDQUFDO1FBQy9HO1lBQ0UsT0FBTywwRkFBMEYsQ0FBQztRQUNwRztZQUNFLE9BQU8sc0VB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R0FBbkIsbUJBQW1CLDRaQVBuQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxtQkFBbUI7YUFDakM7U0FDRjs7NEZBRVUsbUJBQW1CO2tCQVYvQixTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsY0FBYztvQkFDeEIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcscUJBQXFCO3lCQUNqQztxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5qZWN0aW9uVG9rZW4sIGNvbXB1dGVkLCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQW55UXVlcnksXG4gIEFueVF1ZXJ5Q29sbGVjdGlvbixcbiAgSHR0cFN0YXR1c0NvZGUsXG4gIFJlcXVlc3RFcnJvcixcbiAgaXNDbGFzc1ZhbGlkYXRvckVycm9yLFxuICBpc1N5bWZvbnlGb3JtVmlvbGF0aW9uTGlzdEVycm9yLFxuICBpc1N5bWZvbnlMaXN0RXJyb3IsXG4gIHNob3VsZFJldHJ5UmVxdWVzdCxcbn0gZnJvbSAnQGV0aGxldGUvcXVlcnknO1xuaW1wb3J0IHsgUXVlcnlFcnJvckxpc3QgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBRVUVSWV9FUlJPUl9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxRdWVyeUVycm9yRGlyZWN0aXZlPignUVVFUllfRVJST1JfRElSRUNUSVZFX1RPS0VOJyk7XG5cbmV4cG9ydCBjb25zdCBjb252ZXJ0SHR0cFN0YXR1c0NvZGVUb01lc3NhZ2VFbiA9IChzdGF0dXNDb2RlOiBIdHRwU3RhdHVzQ29kZSkgPT4ge1xuICBzd2l0Y2ggKHN0YXR1c0NvZGUpIHtcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkJhZFJlcXVlc3Q6XG4gICAgICByZXR1cm4gJ1NvcnJ5LCB3ZSBjb3VsZCBub3QgcHJvY2VzcyB5b3VyIHJlcXVlc3QuIFBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlVuYXV0aG9yaXplZDpcbiAgICAgIHJldHVybiAnWW91IGFyZSBub3QgYXV0aG9yaXplZCB0byBwZXJmb3JtIHRoaXMgYWN0aW9uLiBQbGVhc2UgbG9nIGluIHRvIGNvbnRpbnVlLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5QYXltZW50UmVxdWlyZWQ6XG4gICAgICByZXR1cm4gJ1BheW1lbnQgaXMgcmVxdWlyZWQgdG8gY29tcGxldGUgdGhpcyBhY3Rpb24uJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkZvcmJpZGRlbjpcbiAgICAgIHJldHVybiAnWW91IGRvIG5vdCBoYXZlIHBlcm1pc3Npb24gdG8gcGVyZm9ybSB0aGlzIGFjdGlvbi4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTm90Rm91bmQ6XG4gICAgICByZXR1cm4gJ1RoZSByZXF1ZXN0ZWQgcmVzb3VyY2Ugd2FzIG5vdCBmb3VuZC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTWV0aG9kTm90QWxsb3dlZDpcbiAgICAgIHJldHVybiAnVGhlIHJlcXVlc3RlZCBtZXRob2QgaXMgbm90IGFsbG93ZWQgZm9yIHRoaXMgcmVzb3VyY2UuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLk5vdEFjY2VwdGFibGU6XG4gICAgICByZXR1cm4gJ1RoZSByZXF1ZXN0ZWQgcmVzb3VyY2UgaXMgbm90IGNhcGFibGUgb2YgZ2VuZXJhdGluZyBhIHJlc3BvbnNlIG1hdGNoaW5nIHRoZSBsaXN0IG9mIGFjY2VwdGFibGUgdmFsdWVzLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Qcm94eUF1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6XG4gICAgICByZXR1cm4gJ1Byb3h5IGF1dGhlbnRpY2F0aW9uIGlzIHJlcXVpcmVkIHRvIGNvbXBsZXRlIHRoaXMgYWN0aW9uLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5SZXF1ZXN0VGltZW91dDpcbiAgICAgIHJldHVybiAnVGhlIHNlcnZlciB0aW1lZCBvdXQgd2FpdGluZyBmb3IgdGhlIHJlcXVlc3QuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkNvbmZsaWN0OlxuICAgICAgcmV0dXJuICdUaGUgcmVxdWVzdCBjb25mbGljdHMgd2l0aCB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgcmVzb3VyY2UuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkdvbmU6XG4gICAgICByZXR1cm4gJ1RoZSByZXF1ZXN0ZWQgcmVzb3VyY2UgaXMgbm8gbG9uZ2VyIGF2YWlsYWJsZSBhbmQgd2lsbCBub3QgYmUgYXZhaWxhYmxlIGFnYWluLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5MZW5ndGhSZXF1aXJlZDpcbiAgICAgIHJldHVybiAnVGhlIHJlcXVlc3QgZGlkIG5vdCBzcGVjaWZ5IHRoZSBsZW5ndGggb2YgaXRzIGNvbnRlbnQsIHdoaWNoIGlzIHJlcXVpcmVkIGJ5IHRoZSByZXF1ZXN0ZWQgcmVzb3VyY2UuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlByZWNvbmRpdGlvbkZhaWxlZDpcbiAgICAgIHJldHVybiAnVGhlIHNlcnZlciBkb2VzIG5vdCBtZWV0IG9uZSBvZiB0aGUgcHJlY29uZGl0aW9ucyB0aGF0IHRoZSByZXF1ZXN0ZXIgcHV0IG9uIHRoZSByZXF1ZXN0Lic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5QYXlsb2FkVG9vTGFyZ2U6XG4gICAgICByZXR1cm4gJ1RoZSByZXF1ZXN0IGlzIGxhcmdlciB0aGFuIHRoZSBzZXJ2ZXIgaXMgd2lsbGluZyBvciBhYmxlIHRvIHByb2Nlc3MuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlVyaVRvb0xvbmc6XG4gICAgICByZXR1cm4gJ1RoZSBVUkwgcHJvdmlkZWQgd2FzIHRvbyBsb25nIGZvciB0aGUgc2VydmVyIHRvIHByb2Nlc3MuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlVuc3VwcG9ydGVkTWVkaWFUeXBlOlxuICAgICAgcmV0dXJuICdUaGUgcmVxdWVzdCBlbnRpdHkgaGFzIGEgbWVkaWEgdHlwZSB3aGljaCB0aGUgc2VydmVyIG9yIHJlc291cmNlIGRvZXMgbm90IHN1cHBvcnQuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlJhbmdlTm90U2F0aXNmaWFibGU6XG4gICAgICByZXR1cm4gJ1RoZSBjbGllbnQgaGFzIGFza2VkIGZvciBhIHBvcnRpb24gb2YgdGhlIGZpbGUsIGJ1dCB0aGUgc2VydmVyIGNhbm5vdCBzdXBwbHkgdGhhdCBwb3J0aW9uLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5FeHBlY3RhdGlvbkZhaWxlZDpcbiAgICAgIHJldHVybiAnVGhlIHNlcnZlciBjYW5ub3QgbWVldCB0aGUgcmVxdWlyZW1lbnRzIG9mIHRoZSBFeHBlY3QgcmVxdWVzdC1oZWFkZXIgZmllbGQuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkltQVRlYXBvdDpcbiAgICAgIHJldHVybiAnSSBhbSBhIHRlYXBvdC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTWlzZGlyZWN0ZWRSZXF1ZXN0OlxuICAgICAgcmV0dXJuICdUaGUgcmVxdWVzdCB3YXMgZGlyZWN0ZWQgYXQgYSBzZXJ2ZXIgdGhhdCBpcyBub3QgYWJsZSB0byBwcm9kdWNlIGEgcmVzcG9uc2UuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlVucHJvY2Vzc2FibGVFbnRpdHk6XG4gICAgICByZXR1cm4gJ1RoZSByZXF1ZXN0IHdhcyB3ZWxsLWZvcm1lZCBidXQgd2FzIHVuYWJsZSB0byBiZSBmb2xsb3dlZCBkdWUgdG8gc2VtYW50aWMgZXJyb3JzLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Mb2NrZWQ6XG4gICAgICByZXR1cm4gJ1RoZSByZXNvdXJjZSB0aGF0IGlzIGJlaW5nIGFjY2Vzc2VkIGlzIGxvY2tlZC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuRmFpbGVkRGVwZW5kZW5jeTpcbiAgICAgIHJldHVybiAnVGhlIHJlcXVlc3QgZmFpbGVkIGR1ZSB0byBmYWlsdXJlIG9mIGEgcHJldmlvdXMgcmVxdWVzdC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuVG9vRWFybHk6XG4gICAgICByZXR1cm4gJ1RoZSBzZXJ2ZXIgaXMgdW53aWxsaW5nIHRvIHByb2Nlc3MgdGhlIHJlcXVlc3QgYmVjYXVzZSB0aGUgdXNlciBoYXMgbm90IGJlZW4gYXV0aGVudGljYXRlZC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuVXBncmFkZVJlcXVpcmVkOlxuICAgICAgcmV0dXJuICdUaGUgY2xpZW50IHNob3VsZCBzd2l0Y2ggdG8gYSBkaWZmZXJlbnQgcHJvdG9jb2wgc3VjaCBhcyBUTFMvMS4wLCBnaXZlbiBpbiB0aGUgVXBncmFkZSBoZWFkZXIgZmllbGQuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlByZWNvbmRpdGlvblJlcXVpcmVkOlxuICAgICAgcmV0dXJuICdUaGUgb3JpZ2luIHNlcnZlciByZXF1aXJlcyB0aGUgcmVxdWVzdCB0byBiZSBjb25kaXRpb25hbC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuVG9vTWFueVJlcXVlc3RzOlxuICAgICAgcmV0dXJuICdZb3UgaGF2ZSBzZW50IHRvbyBtYW55IHJlcXVlc3RzIGluIGEgZ2l2ZW4gYW1vdW50IG9mIHRpbWUuIFBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlJlcXVlc3RIZWFkZXJGaWVsZHNUb29MYXJnZTpcbiAgICAgIHJldHVybiAnVGhlIHNlcnZlciBpcyB1bndpbGxpbmcgdG8gcHJvY2VzcyB0aGUgcmVxdWVzdCBiZWNhdXNlIGl0cyBoZWFkZXIgZmllbGRzIGFyZSB0b28gbGFyZ2UuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlVuYXZhaWxhYmxlRm9yTGVnYWxSZWFzb25zOlxuICAgICAgcmV0dXJuICdUaGUgcmVzb3VyY2UgaXMgdW5hdmFpbGFibGUgZHVlIHRvIGEgbGVnYWwgZGVtYW5kLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5JbnRlcm5hbFNlcnZlckVycm9yOlxuICAgICAgcmV0dXJuICdTb21ldGhpbmcgd2VudCB3cm9uZyBvbiBvdXIgZW5kLiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Ob3RJbXBsZW1lbnRlZDpcbiAgICAgIHJldHVybiAnVGhlIHNlcnZlciBkb2VzIG5vdCBzdXBwb3J0IHRoZSBmdW5jdGlvbmFsaXR5IHJlcXVpcmVkIHRvIGZ1bGZpbGwgdGhlIHJlcXVlc3QuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkJhZEdhdGV3YXk6XG4gICAgICByZXR1cm4gJ1NvbWV0aGluZyB3ZW50IHdyb25nIG9uIG91ciBlbmQuIFBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlNlcnZpY2VVbmF2YWlsYWJsZTpcbiAgICAgIHJldHVybiAnVGhlIHNlcnZlciBpcyBjdXJyZW50bHkgdW5hYmxlIHRvIGhhbmRsZSB0aGUgcmVxdWVzdCBkdWUgdG8gYSB0ZW1wb3Jhcnkgb3ZlcmxvYWQgb3IgbWFpbnRlbmFuY2Ugb2YgdGhlIHNlcnZlci4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuR2F0ZXdheVRpbWVvdXQ6XG4gICAgICByZXR1cm4gJ1RoZSBzZXJ2ZXIsIHdoaWxlIGFjdGluZyBhcyBhIGdhdGV3YXkgb3IgcHJveHksIGRpZCBub3QgcmVjZWl2ZSBhIHRpbWVseSByZXNwb25zZSBmcm9tIHRoZSB1cHN0cmVhbSBzZXJ2ZXIgc3BlY2lmaWVkIGJ5IHRoZSBVUkwgb3Igc29tZSBvdGhlciBhdXhpbGlhcnkgc2VydmVyIGl0IG5lZWRlZCB0byBhY2Nlc3MgaW4gYXR0ZW1wdGluZyB0byBjb21wbGV0ZSB0aGUgcmVxdWVzdC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuSHR0cFZlcnNpb25Ob3RTdXBwb3J0ZWQ6XG4gICAgICByZXR1cm4gJ1RoZSBzZXJ2ZXIgZG9lcyBub3Qgc3VwcG9ydCB0aGUgSFRUUCBwcm90b2NvbCB2ZXJzaW9uIHVzZWQgaW4gdGhlIHJlcXVlc3QuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlZhcmlhbnRBbHNvTmVnb3RpYXRlczpcbiAgICAgIHJldHVybiAnVGhlIHNlcnZlciBoYXMgYW4gaW50ZXJuYWwgY29uZmlndXJhdGlvbiBlcnJvcjogdGhlIGNob3NlbiB2YXJpYW50IHJlc291cmNlIGlzIGNvbmZpZ3VyZWQgdG8gZW5nYWdlIGluIHRyYW5zcGFyZW50IGNvbnRlbnQgbmVnb3RpYXRpb24gaXRzZWxmLCBhbmQgaXMgdGhlcmVmb3JlIG5vdCBhIHByb3BlciBlbmQgcG9pbnQgaW4gdGhlIG5lZ290aWF0aW9uIHByb2Nlc3MuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkluc3VmZmljaWVudFN0b3JhZ2U6XG4gICAgICByZXR1cm4gJ1RoZSBtZXRob2QgY291bGQgbm90IGJlIHBlcmZvcm1lZCBvbiB0aGUgcmVzb3VyY2UgYmVjYXVzZSB0aGUgc2VydmVyIGlzIHVuYWJsZSB0byBzdG9yZSB0aGUgcmVwcmVzZW50YXRpb24gbmVlZGVkIHRvIHN1Y2Nlc3NmdWxseSBjb21wbGV0ZSB0aGUgcmVxdWVzdC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTG9vcERldGVjdGVkOlxuICAgICAgcmV0dXJuICdUaGUgc2VydmVyIGRldGVjdGVkIGFuIGluZmluaXRlIGxvb3Agd2hpbGUgcHJvY2Vzc2luZyB0aGUgcmVxdWVzdC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTm90RXh0ZW5kZWQ6XG4gICAgICByZXR1cm4gJ0Z1cnRoZXIgZXh0ZW5zaW9ucyB0byB0aGUgcmVxdWVzdCBhcmUgcmVxdWlyZWQgZm9yIHRoZSBzZXJ2ZXIgdG8gZnVsZmlsbCBpdC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTmV0d29ya0F1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6XG4gICAgICByZXR1cm4gJ1lvdSBuZWVkIHRvIGF1dGhlbnRpY2F0ZSB0byBnYWluIG5ldHdvcmsgYWNjZXNzLic7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiAnU29tZXRoaW5nIHdlbnQgd3JvbmcuIENoZWNrIHlvdXIgaW50ZXJuZXQgY29ubmVjdGlvbiBhbmQgdHJ5IGFnYWluIGxhdGVyLic7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBjb252ZXJ0SHR0cFN0YXR1c0NvZGVUb01lc3NhZ2VEZSA9IChzdGF0dXNDb2RlOiBIdHRwU3RhdHVzQ29kZSkgPT4ge1xuICBzd2l0Y2ggKHN0YXR1c0NvZGUpIHtcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkJhZFJlcXVlc3Q6XG4gICAgICByZXR1cm4gJ0VudHNjaHVsZGlndW5nLCB3aXIga29ubnRlbiBJaHJlIEFuZnJhZ2UgbmljaHQgYmVhcmJlaXRlbi4gQml0dGUgdmVyc3VjaGVuIFNpZSBlcyBzcMOkdGVyIGVybmV1dC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuVW5hdXRob3JpemVkOlxuICAgICAgcmV0dXJuICdTaWUgc2luZCBuaWNodCBiZXJlY2h0aWd0LCBkaWVzZSBBa3Rpb24gYXVzenVmw7xocmVuLiBCaXR0ZSBtZWxkZW4gU2llIHNpY2ggYW4sIHVtIGZvcnR6dWZhaHJlbi4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuUGF5bWVudFJlcXVpcmVkOlxuICAgICAgcmV0dXJuICdadXIgQXVzZsO8aHJ1bmcgZGllc2VyIEFrdGlvbiBpc3QgZWluZSBaYWhsdW5nIGVyZm9yZGVybGljaC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuRm9yYmlkZGVuOlxuICAgICAgcmV0dXJuICdTaWUgaGFiZW4ga2VpbmUgQmVyZWNodGlndW5nLCBkaWVzZSBBa3Rpb24gYXVzenVmw7xocmVuLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Ob3RGb3VuZDpcbiAgICAgIHJldHVybiAnRGllIGFuZ2Vmb3JkZXJ0ZSBSZXNzb3VyY2Ugd3VyZGUgbmljaHQgZ2VmdW5kZW4uJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLk1ldGhvZE5vdEFsbG93ZWQ6XG4gICAgICByZXR1cm4gJ0RpZSBhbmdlZm9yZGVydGUgTWV0aG9kZSBpc3QgZsO8ciBkaWVzZSBSZXNzb3VyY2UgbmljaHQgenVsw6Rzc2lnLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Ob3RBY2NlcHRhYmxlOlxuICAgICAgcmV0dXJuICdEaWUgYW5nZWZvcmRlcnRlIFJlc3NvdXJjZSBpc3QgbmljaHQgaW4gZGVyIExhZ2UsIGVpbmUgQW50d29ydCB6dSBnZW5lcmllcmVuLCBkaWUgZGVyIExpc3RlIGRlciBha3plcHRhYmxlbiBXZXJ0ZSBlbnRzcHJpY2h0Lic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Qcm94eUF1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6XG4gICAgICByZXR1cm4gJ1p1ciBBdXNmw7xocnVuZyBkaWVzZXIgQWt0aW9uIGlzdCBlaW5lIFByb3h5LUF1dGhlbnRpZml6aWVydW5nIGVyZm9yZGVybGljaC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuUmVxdWVzdFRpbWVvdXQ6XG4gICAgICByZXR1cm4gJ0RlciBTZXJ2ZXIgaGF0IGF1ZiBkaWUgQW5mb3JkZXJ1bmcgZ2V3YXJ0ZXQuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkNvbmZsaWN0OlxuICAgICAgcmV0dXJuICdEaWUgQW5mb3JkZXJ1bmcgc3RlaHQgaW0gV2lkZXJzcHJ1Y2ggenVtIGFrdHVlbGxlbiBadXN0YW5kIGRlciBSZXNzb3VyY2UuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkdvbmU6XG4gICAgICByZXR1cm4gJ0RpZSBhbmdlZm9yZGVydGUgUmVzc291cmNlIGlzdCBuaWNodCBtZWhyIHZlcmbDvGdiYXIgdW5kIHdpcmQgYXVjaCBuaWNodCBtZWhyIHZlcmbDvGdiYXIgc2Vpbi4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTGVuZ3RoUmVxdWlyZWQ6XG4gICAgICByZXR1cm4gJ0RpZSBBbmZvcmRlcnVuZyBoYXQgZGllIEzDpG5nZSBpaHJlcyBJbmhhbHRzIG5pY2h0IGFuZ2VnZWJlbiwgZGllIHZvbiBkZXIgYW5nZWZvcmRlcnRlbiBSZXNzb3VyY2UgYmVuw7Z0aWd0IHdpcmQuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlByZWNvbmRpdGlvbkZhaWxlZDpcbiAgICAgIHJldHVybiAnRGVyIFNlcnZlciBlcmbDvGxsdCBlaW5lIGRlciBWb3JhdXNzZXR6dW5nZW4gbmljaHQsIGRpZSBkZXIgQW5mb3JkZXJlciBhbiBkaWUgQW5mb3JkZXJ1bmcgZ2VzdGVsbHQgaGF0Lic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5QYXlsb2FkVG9vTGFyZ2U6XG4gICAgICByZXR1cm4gJ0RpZSBBbmZvcmRlcnVuZyBpc3QgZ3LDtsOfZXIgYWxzIGRlciBTZXJ2ZXIgYmVyZWl0IG9kZXIgaW4gZGVyIExhZ2UgaXN0LCB6dSB2ZXJhcmJlaXRlbi4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuVXJpVG9vTG9uZzpcbiAgICAgIHJldHVybiAnRGllIGJlcmVpdGdlc3RlbGx0ZSBVUkwgd2FyIGbDvHIgZGVuIFNlcnZlciB6dSBsYW5nLCB1bSBzaWUgenUgdmVyYXJiZWl0ZW4uJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlVuc3VwcG9ydGVkTWVkaWFUeXBlOlxuICAgICAgcmV0dXJuICdEaWUgQW5mb3JkZXJ1bmdzZWluaGVpdCBoYXQgZWluZW4gTWVkaWVudHlwLCBkZW4gZGVyIFNlcnZlciBvZGVyIGRpZSBSZXNzb3VyY2UgbmljaHQgdW50ZXJzdMO8dHp0Lic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5SYW5nZU5vdFNhdGlzZmlhYmxlOlxuICAgICAgcmV0dXJuICdEZXIgQ2xpZW50IGhhdCBlaW5lbiBUZWlsIGRlciBEYXRlaSBhbmdlZm9yZGVydCwgYWJlciBkZXIgU2VydmVyIGthbm4gZGllc2VuIFRlaWwgbmljaHQgbGllZmVybi4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuRXhwZWN0YXRpb25GYWlsZWQ6XG4gICAgICByZXR1cm4gJ0RlciBTZXJ2ZXIga2FubiBkaWUgQW5mb3JkZXJ1bmdlbiBkZXMgRXJ3YXJ0dW5nLUFuZm9yZGVydW5nc2tvcGZmZWxkcyBuaWNodCBlcmbDvGxsZW4uJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkltQVRlYXBvdDpcbiAgICAgIHJldHVybiAnSWNoIGJpbiBlaW5lIFRlZWthbm5lLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5NaXNkaXJlY3RlZFJlcXVlc3Q6XG4gICAgICByZXR1cm4gJ0RpZSBBbmZvcmRlcnVuZyB3dXJkZSBhbiBlaW5lbiBTZXJ2ZXIgZ2VyaWNodGV0LCBkZXIgbmljaHQgaW4gZGVyIExhZ2UgaXN0LCBlaW5lIEFudHdvcnQgenUgZ2VuZXJpZXJlbi4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuVW5wcm9jZXNzYWJsZUVudGl0eTpcbiAgICAgIHJldHVybiAnRGllIEFuZm9yZGVydW5nIHdhciBndXQgZm9ybXVsaWVydCwga29ubnRlIGFiZXIgYXVmZ3J1bmQgc2VtYW50aXNjaGVyIEZlaGxlciBuaWNodCBiZWZvbGd0IHdlcmRlbi4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTG9ja2VkOlxuICAgICAgcmV0dXJuICdEaWUgUmVzc291cmNlLCBhdWYgZGllIHp1Z2VncmlmZmVuIHdpcmQsIGlzdCBnZXNwZXJydC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuRmFpbGVkRGVwZW5kZW5jeTpcbiAgICAgIHJldHVybiAnRGllIEFuZm9yZGVydW5nIGlzdCBhdWZncnVuZCBlaW5lcyBGZWhsZXJzIGVpbmVyIHZvcmhlcmlnZW4gQW5mb3JkZXJ1bmcgZmVobGdlc2NobGFnZW4uJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlRvb0Vhcmx5OlxuICAgICAgcmV0dXJuICdEZXIgU2VydmVyIGlzdCBuaWNodCBiZXJlaXQsIGRpZSBBbmZvcmRlcnVuZyB6dSB2ZXJhcmJlaXRlbiwgd2VpbCBkZXIgQmVudXR6ZXIgbmljaHQgYXV0aGVudGlmaXppZXJ0IHd1cmRlLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5VcGdyYWRlUmVxdWlyZWQ6XG4gICAgICByZXR1cm4gJ0RlciBDbGllbnQgc29sbHRlIHp1IGVpbmVtIGFuZGVyZW4gUHJvdG9rb2xsIHdpZSBUTFMvMS4wIHdlY2hzZWxuLCBkYXMgaW0gVXBncmFkZS1BbmZvcmRlcnVuZ3Nrb3BmZmVsZCBhbmdlZ2ViZW4gaXN0Lic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5QcmVjb25kaXRpb25SZXF1aXJlZDpcbiAgICAgIHJldHVybiAnRGVyIFVyc3BydW5nc3NlcnZlciBlcmZvcmRlcnQsIGRhc3MgZGllIEFuZm9yZGVydW5nIGJlZGluZ3QgaXN0Lic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Ub29NYW55UmVxdWVzdHM6XG4gICAgICByZXR1cm4gJ1NpZSBoYWJlbiBpbiBlaW5lciBiZXN0aW1tdGVuIFplaXQgenUgdmllbGUgQW5mcmFnZW4gZ2VzZW5kZXQuIEJpdHRlIHZlcnN1Y2hlbiBTaWUgZXMgc3DDpHRlciBlcm5ldXQuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlJlcXVlc3RIZWFkZXJGaWVsZHNUb29MYXJnZTpcbiAgICAgIHJldHVybiAnRGVyIFNlcnZlciBpc3QgbmljaHQgYmVyZWl0LCBkaWUgQW5mb3JkZXJ1bmcgenUgdmVyYXJiZWl0ZW4sIHdlaWwgc2VpbmUgS29wZmZlbGRlciB6dSBncm/DnyBzaW5kLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5VbmF2YWlsYWJsZUZvckxlZ2FsUmVhc29uczpcbiAgICAgIHJldHVybiAnRGllIFJlc3NvdXJjZSBpc3QgYXVmZ3J1bmQgZWluZXIgcmVjaHRsaWNoZW4gRm9yZGVydW5nIG5pY2h0IHZlcmbDvGdiYXIuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkludGVybmFsU2VydmVyRXJyb3I6XG4gICAgICByZXR1cm4gJ0V0d2FzIGlzdCBzY2hpZWYgZ2VsYXVmZW4uIEJpdHRlIHZlcnN1Y2hlbiBTaWUgZXMgc3DDpHRlciBlcm5ldXQuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLk5vdEltcGxlbWVudGVkOlxuICAgICAgcmV0dXJuICdEZXIgU2VydmVyIHVudGVyc3TDvHR6dCBkaWUgenVyIEVyZsO8bGx1bmcgZGVyIEFuZm9yZGVydW5nIGVyZm9yZGVybGljaGUgRnVua3Rpb25hbGl0w6R0IG5pY2h0Lic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5CYWRHYXRld2F5OlxuICAgICAgcmV0dXJuICdFdHdhcyBpc3Qgc2NoaWVmIGdlbGF1ZmVuLiBCaXR0ZSB2ZXJzdWNoZW4gU2llIGVzIHNww6R0ZXIgZXJuZXV0Lic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5TZXJ2aWNlVW5hdmFpbGFibGU6XG4gICAgICByZXR1cm4gJ0RlciBTZXJ2ZXIga2FubiBkaWUgQW5mb3JkZXJ1bmcgZGVyemVpdCBuaWNodCBiZWFyYmVpdGVuLCBkYSBlciB2b3LDvGJlcmdlaGVuZCDDvGJlcmxhc3RldCBvZGVyIGdld2FydGV0IHdpcmQuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkdhdGV3YXlUaW1lb3V0OlxuICAgICAgcmV0dXJuICdEZXIgU2VydmVyIGhhdCBiZWltIFZlcnN1Y2gsIGRpZSBBbmZvcmRlcnVuZyBhYnp1c2NobGllw59lbiwga2VpbmUgcmVjaHR6ZWl0aWdlIEFudHdvcnQgdm9tIFNlcnZlciBlcmhhbHRlbi4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuSHR0cFZlcnNpb25Ob3RTdXBwb3J0ZWQ6XG4gICAgICByZXR1cm4gJ0RlciBTZXJ2ZXIgdW50ZXJzdMO8dHp0IGRpZSBpbiBkZXIgQW5mb3JkZXJ1bmcgdmVyd2VuZGV0ZSBIVFRQLVByb3Rva29sbHZlcnNpb24gbmljaHQuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlZhcmlhbnRBbHNvTmVnb3RpYXRlczpcbiAgICAgIHJldHVybiAnRGVyIFNlcnZlciBoYXQgZWluZW4gaW50ZXJuZW4gS29uZmlndXJhdGlvbnNmZWhsZXI6IERpZSBhdXNnZXfDpGhsdGUgVmFyaWFudGVucmVzc291cmNlIGlzdCBzbyBrb25maWd1cmllcnQsIGRhc3Mgc2llIHNpY2ggc2VsYnN0IGluIGRpZSB0cmFuc3BhcmVudGUgSW5oYWx0c3ZlcmhhbmRsdW5nIGVpbmJpbmRldCwgdW5kIGlzdCBkYWhlciBrZWluIGdlZWlnbmV0ZXIgRW5kcHVua3QgaW0gVmVyaGFuZGx1bmdzcHJvemVzcy4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuSW5zdWZmaWNpZW50U3RvcmFnZTpcbiAgICAgIHJldHVybiAnRGllIE1ldGhvZGUga29ubnRlIGF1ZiBkaWUgUmVzc291cmNlIG5pY2h0IGFuZ2V3ZW5kZXQgd2VyZGVuLCB3ZWlsIGRlciBTZXJ2ZXIgbmljaHQgaW4gZGVyIExhZ2UgaXN0LCBkaWUgZsO8ciBkaWUgZXJmb2xncmVpY2hlIEF1c2bDvGhydW5nIGRlciBBbmZvcmRlcnVuZyBlcmZvcmRlcmxpY2hlIERhcnN0ZWxsdW5nIHp1IHNwZWljaGVybi4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTG9vcERldGVjdGVkOlxuICAgICAgcmV0dXJuICdEZXIgU2VydmVyIGhhdCBlaW5lIEVuZGxvc3NjaGxlaWZlIGVya2FubnQsIHfDpGhyZW5kIGVyIGRpZSBBbmZvcmRlcnVuZyB2ZXJhcmJlaXRldC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTm90RXh0ZW5kZWQ6XG4gICAgICByZXR1cm4gJ1dlaXRlcmUgRXJ3ZWl0ZXJ1bmdlbiBkZXIgQW5mb3JkZXJ1bmcgc2luZCBlcmZvcmRlcmxpY2gsIGRhbWl0IGRlciBTZXJ2ZXIgc2llIGVyZsO8bGxlbiBrYW5uLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5OZXR3b3JrQXV0aGVudGljYXRpb25SZXF1aXJlZDpcbiAgICAgIHJldHVybiAnU2llIG3DvHNzZW4gc2ljaCBhdXRoZW50aWZpemllcmVuLCB1bSBadWdhbmcgenVtIE5ldHp3ZXJrIHp1IGVyaGFsdGVuLic7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiAnRXR3YXMgaXN0IHNjaGllZiBnZWxhdWZlbi4gw5xiZXJwcsO8ZmVuIFNpZSBJaHJlIEludGVybmV0dmVyYmluZHVuZyB1bmQgdmVyc3VjaGVuIFNpZSBlcyBzcMOkdGVyIGVybmV1dC4nO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgY29udmVydEh0dHBTdGF0dXNDb2RlVG9UaXRsZUVuID0gKHN0YXR1c0NvZGU6IEh0dHBTdGF0dXNDb2RlKSA9PiB7XG4gIHN3aXRjaCAoc3RhdHVzQ29kZSkge1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuQmFkUmVxdWVzdDpcbiAgICAgIHJldHVybiAnQmFkIHJlcXVlc3QnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuVW5hdXRob3JpemVkOlxuICAgICAgcmV0dXJuICdVbmF1dGhvcml6ZWQnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuUGF5bWVudFJlcXVpcmVkOlxuICAgICAgcmV0dXJuICdQYXltZW50IHJlcXVpcmVkJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkZvcmJpZGRlbjpcbiAgICAgIHJldHVybiAnRm9yYmlkZGVuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLk5vdEZvdW5kOlxuICAgICAgcmV0dXJuICdOb3QgZm91bmQnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTWV0aG9kTm90QWxsb3dlZDpcbiAgICAgIHJldHVybiAnTWV0aG9kIG5vdCBhbGxvd2VkJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLk5vdEFjY2VwdGFibGU6XG4gICAgICByZXR1cm4gJ05vdCBhY2NlcHRhYmxlJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlByb3h5QXV0aGVudGljYXRpb25SZXF1aXJlZDpcbiAgICAgIHJldHVybiAnUHJveHkgYXV0aGVudGljYXRpb24gcmVxdWlyZWQnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuUmVxdWVzdFRpbWVvdXQ6XG4gICAgICByZXR1cm4gJ1JlcXVlc3QgdGltZW91dCc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Db25mbGljdDpcbiAgICAgIHJldHVybiAnQ29uZmxpY3QnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuR29uZTpcbiAgICAgIHJldHVybiAnR29uZSc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5MZW5ndGhSZXF1aXJlZDpcbiAgICAgIHJldHVybiAnTGVuZ3RoIHJlcXVpcmVkJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlByZWNvbmRpdGlvbkZhaWxlZDpcbiAgICAgIHJldHVybiAnUHJlY29uZGl0aW9uIGZhaWxlZCc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5QYXlsb2FkVG9vTGFyZ2U6XG4gICAgICByZXR1cm4gJ1BheWxvYWQgdG9vIGxhcmdlJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlVyaVRvb0xvbmc6XG4gICAgICByZXR1cm4gJ1VSSSB0b28gbG9uZyc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5VbnN1cHBvcnRlZE1lZGlhVHlwZTpcbiAgICAgIHJldHVybiAnVW5zdXBwb3J0ZWQgbWVkaWEgdHlwZSc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5SYW5nZU5vdFNhdGlzZmlhYmxlOlxuICAgICAgcmV0dXJuICdSYW5nZSBub3Qgc2F0aXNmaWFibGUnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuRXhwZWN0YXRpb25GYWlsZWQ6XG4gICAgICByZXR1cm4gJ0V4cGVjdGF0aW9uIGZhaWxlZCc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5JbUFUZWFwb3Q6XG4gICAgICByZXR1cm4gJ0kgYW0gYSB0ZWFwb3QnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTWlzZGlyZWN0ZWRSZXF1ZXN0OlxuICAgICAgcmV0dXJuICdNaXNkaXJlY3RlZCByZXF1ZXN0JztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlVucHJvY2Vzc2FibGVFbnRpdHk6XG4gICAgICByZXR1cm4gJ1VucHJvY2Vzc2FibGUgZW50aXR5JztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkxvY2tlZDpcbiAgICAgIHJldHVybiAnTG9ja2VkJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkZhaWxlZERlcGVuZGVuY3k6XG4gICAgICByZXR1cm4gJ0ZhaWxlZCBkZXBlbmRlbmN5JztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlRvb0Vhcmx5OlxuICAgICAgcmV0dXJuICdUb28gZWFybHknO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuVXBncmFkZVJlcXVpcmVkOlxuICAgICAgcmV0dXJuICdVcGdyYWRlIHJlcXVpcmVkJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlByZWNvbmRpdGlvblJlcXVpcmVkOlxuICAgICAgcmV0dXJuICdQcmVjb25kaXRpb24gcmVxdWlyZWQnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuVG9vTWFueVJlcXVlc3RzOlxuICAgICAgcmV0dXJuICdUb28gbWFueSByZXF1ZXN0cyc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5SZXF1ZXN0SGVhZGVyRmllbGRzVG9vTGFyZ2U6XG4gICAgICByZXR1cm4gJ1JlcXVlc3QgaGVhZGVyIGZpZWxkcyB0b28gbGFyZ2UnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuVW5hdmFpbGFibGVGb3JMZWdhbFJlYXNvbnM6XG4gICAgICByZXR1cm4gJ1VuYXZhaWxhYmxlIGZvciBsZWdhbCByZWFzb25zJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkludGVybmFsU2VydmVyRXJyb3I6XG4gICAgICByZXR1cm4gJ0ludGVybmFsIHNlcnZlciBlcnJvcic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Ob3RJbXBsZW1lbnRlZDpcbiAgICAgIHJldHVybiAnTm90IGltcGxlbWVudGVkJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkJhZEdhdGV3YXk6XG4gICAgICByZXR1cm4gJ0JhZCBnYXRld2F5JztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlNlcnZpY2VVbmF2YWlsYWJsZTpcbiAgICAgIHJldHVybiAnU2VydmljZSB1bmF2YWlsYWJsZSc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5HYXRld2F5VGltZW91dDpcbiAgICAgIHJldHVybiAnR2F0ZXdheSB0aW1lb3V0JztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkh0dHBWZXJzaW9uTm90U3VwcG9ydGVkOlxuICAgICAgcmV0dXJuICdIVFRQIHZlcnNpb24gbm90IHN1cHBvcnRlZCc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5WYXJpYW50QWxzb05lZ290aWF0ZXM6XG4gICAgICByZXR1cm4gJ1ZhcmlhbnQgYWxzbyBuZWdvdGlhdGVzJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkluc3VmZmljaWVudFN0b3JhZ2U6XG4gICAgICByZXR1cm4gJ0luc3VmZmljaWVudCBzdG9yYWdlJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkxvb3BEZXRlY3RlZDpcbiAgICAgIHJldHVybiAnTG9vcCBkZXRlY3RlZCc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Ob3RFeHRlbmRlZDpcbiAgICAgIHJldHVybiAnTm90IGV4dGVuZGVkJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLk5ldHdvcmtBdXRoZW50aWNhdGlvblJlcXVpcmVkOlxuICAgICAgcmV0dXJuICdOZXR3b3JrIGF1dGhlbnRpY2F0aW9uIHJlcXVpcmVkJztcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuICdTb21ldGhpbmcgd2VudCB3cm9uZyc7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBjb252ZXJ0SHR0cFN0YXR1c0NvZGVUb1RpdGxlRGUgPSAoc3RhdHVzQ29kZTogSHR0cFN0YXR1c0NvZGUpID0+IHtcbiAgc3dpdGNoIChzdGF0dXNDb2RlKSB7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5CYWRSZXF1ZXN0OlxuICAgICAgcmV0dXJuICdVbmfDvGx0aWdlIEFuZnJhZ2UnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuVW5hdXRob3JpemVkOlxuICAgICAgcmV0dXJuICdOaWNodCBhdXRvcmlzaWVydCc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5QYXltZW50UmVxdWlyZWQ6XG4gICAgICByZXR1cm4gJ1phaGx1bmcgZXJmb3JkZXJsaWNoJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkZvcmJpZGRlbjpcbiAgICAgIHJldHVybiAnVmVyYm90ZW4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTm90Rm91bmQ6XG4gICAgICByZXR1cm4gJ05pY2h0IGdlZnVuZGVuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLk1ldGhvZE5vdEFsbG93ZWQ6XG4gICAgICByZXR1cm4gJ01ldGhvZGUgbmljaHQgZXJsYXVidCc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Ob3RBY2NlcHRhYmxlOlxuICAgICAgcmV0dXJuICdOaWNodCBha3plcHRhYmVsJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlByb3h5QXV0aGVudGljYXRpb25SZXF1aXJlZDpcbiAgICAgIHJldHVybiAnUHJveHktQXV0aGVudGlmaXppZXJ1bmcgZXJmb3JkZXJsaWNoJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlJlcXVlc3RUaW1lb3V0OlxuICAgICAgcmV0dXJuICdBbmZvcmRlcnVuZ3N6ZWl0w7xiZXJzY2hyZWl0dW5nJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkNvbmZsaWN0OlxuICAgICAgcmV0dXJuICdLb25mbGlrdCc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Hb25lOlxuICAgICAgcmV0dXJuICdXZWcnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTGVuZ3RoUmVxdWlyZWQ6XG4gICAgICByZXR1cm4gJ0zDpG5nZSBlcmZvcmRlcmxpY2gnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuUHJlY29uZGl0aW9uRmFpbGVkOlxuICAgICAgcmV0dXJuICdWb3JiZWRpbmd1bmcgZmVobGdlc2NobGFnZW4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuUGF5bG9hZFRvb0xhcmdlOlxuICAgICAgcmV0dXJuICdOdXR6bGFzdCB6dSBncm/Dnyc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5VcmlUb29Mb25nOlxuICAgICAgcmV0dXJuICdVUkkgenUgbGFuZyc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5VbnN1cHBvcnRlZE1lZGlhVHlwZTpcbiAgICAgIHJldHVybiAnTmljaHQgdW50ZXJzdMO8dHp0ZXIgTWVkaWVudHlwJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlJhbmdlTm90U2F0aXNmaWFibGU6XG4gICAgICByZXR1cm4gJ0JlcmVpY2ggbmljaHQgenVmcmllZGVuc3RlbGxlbmQnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuRXhwZWN0YXRpb25GYWlsZWQ6XG4gICAgICByZXR1cm4gJ0Vyd2FydHVuZyBmZWhsZ2VzY2hsYWdlbic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5JbUFUZWFwb3Q6XG4gICAgICByZXR1cm4gJ0ljaCBiaW4gZWluZSBUZWVrYW5uZSc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5NaXNkaXJlY3RlZFJlcXVlc3Q6XG4gICAgICByZXR1cm4gJ0ZlaGxnZWxlaXRldGUgQW5mcmFnZSc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5VbnByb2Nlc3NhYmxlRW50aXR5OlxuICAgICAgcmV0dXJuICdVbnZlcmFyYmVpdGJhcmUgRW50aXTDpHQnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTG9ja2VkOlxuICAgICAgcmV0dXJuICdHZXNwZXJydCc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5GYWlsZWREZXBlbmRlbmN5OlxuICAgICAgcmV0dXJuICdGZWhsZ2VzY2hsYWdlbmUgQWJow6RuZ2lna2VpdCc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Ub29FYXJseTpcbiAgICAgIHJldHVybiAnWnUgZnLDvGgnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuVXBncmFkZVJlcXVpcmVkOlxuICAgICAgcmV0dXJuICdVcGdyYWRlIGVyZm9yZGVybGljaCc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5QcmVjb25kaXRpb25SZXF1aXJlZDpcbiAgICAgIHJldHVybiAnVm9yYmVkaW5ndW5nIGVyZm9yZGVybGljaCc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Ub29NYW55UmVxdWVzdHM6XG4gICAgICByZXR1cm4gJ1p1IHZpZWxlIEFuZnJhZ2VuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlJlcXVlc3RIZWFkZXJGaWVsZHNUb29MYXJnZTpcbiAgICAgIHJldHVybiAnQW5mb3JkZXJ1bmdza29wZmZlbGRlciB6dSBncm/Dnyc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5VbmF2YWlsYWJsZUZvckxlZ2FsUmVhc29uczpcbiAgICAgIHJldHVybiAnQXVzIHJlY2h0bGljaGVuIEdyw7xuZGVuIG5pY2h0IHZlcmbDvGdiYXInO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuSW50ZXJuYWxTZXJ2ZXJFcnJvcjpcbiAgICAgIHJldHVybiAnSW50ZXJuZXIgU2VydmVyZmVobGVyJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLk5vdEltcGxlbWVudGVkOlxuICAgICAgcmV0dXJuICdOaWNodCBpbXBsZW1lbnRpZXJ0JztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkJhZEdhdGV3YXk6XG4gICAgICByZXR1cm4gJ1NjaGxlY2h0ZXMgR2F0ZXdheSc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5TZXJ2aWNlVW5hdmFpbGFibGU6XG4gICAgICByZXR1cm4gJ0RpZW5zdCBuaWNodCB2ZXJmw7xnYmFyJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkdhdGV3YXlUaW1lb3V0OlxuICAgICAgcmV0dXJuICdHYXRld2F5LVplaXTDvGJlcnNjaHJlaXR1bmcnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuSHR0cFZlcnNpb25Ob3RTdXBwb3J0ZWQ6XG4gICAgICByZXR1cm4gJ0hUVFAtVmVyc2lvbiBuaWNodCB1bnRlcnN0w7x0enQnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuVmFyaWFudEFsc29OZWdvdGlhdGVzOlxuICAgICAgcmV0dXJuICdWYXJpYW50ZSB2ZXJoYW5kZWx0IGF1Y2gnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuSW5zdWZmaWNpZW50U3RvcmFnZTpcbiAgICAgIHJldHVybiAnVW56dXJlaWNoZW5kZXIgU3BlaWNoZXInO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTG9vcERldGVjdGVkOlxuICAgICAgcmV0dXJuICdTY2hsZWlmZW5lcmtlbm51bmcnO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTm90RXh0ZW5kZWQ6XG4gICAgICByZXR1cm4gJ05pY2h0IGVyd2VpdGVydCc7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5OZXR3b3JrQXV0aGVudGljYXRpb25SZXF1aXJlZDpcbiAgICAgIHJldHVybiAnTmV0endlcmthdXRoZW50aWZpemllcnVuZyBlcmZvcmRlcmxpY2gnO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gJ0V0d2FzIGlzdCBzY2hpZWYgZ2VsYXVmZW4nO1xuICB9XG59O1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgZXhwb3J0QXM6ICdldFF1ZXJ5RXJyb3InLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBRVUVSWV9FUlJPUl9UT0tFTixcbiAgICAgIHVzZUV4aXN0aW5nOiBRdWVyeUVycm9yRGlyZWN0aXZlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFF1ZXJ5RXJyb3JEaXJlY3RpdmUge1xuICBlcnJvciA9IGlucHV0LnJlcXVpcmVkPFJlcXVlc3RFcnJvciB8IG51bGw+KCk7XG4gIHF1ZXJ5ID0gaW5wdXQucmVxdWlyZWQ8QW55UXVlcnkgfCBBbnlRdWVyeUNvbGxlY3Rpb24gfCBudWxsPigpO1xuICBsYW5ndWFnZSA9IGlucHV0PCdlbicgfCAnZGUnPignZW4nKTtcblxuICByZWFkb25seSBlcnJvckxpc3QgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgZXJyb3IgPSB0aGlzLmVycm9yKCk7XG5cbiAgICBpZiAoIWVycm9yKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCByZXRyeVJlc3VsdCA9IHNob3VsZFJldHJ5UmVxdWVzdCh7IGVycm9yLCBjdXJyZW50UmV0cnlDb3VudDogMCwgaGVhZGVyczoge30gfSk7XG5cbiAgICBjb25zdCBlcnJvckxpc3Q6IFF1ZXJ5RXJyb3JMaXN0ID0ge1xuICAgICAgY2FuQmVSZXRyaWVkOiByZXRyeVJlc3VsdC5yZXRyeSxcbiAgICAgIHJldHJ5RGVsYXk6IHJldHJ5UmVzdWx0LmRlbGF5ID8/IDAsXG4gICAgICBpc0xpc3Q6IGZhbHNlLFxuICAgICAgaXRlbXM6IFtdLFxuICAgICAgdGl0bGU6XG4gICAgICAgIHRoaXMubGFuZ3VhZ2UoKSA9PT0gJ2VuJ1xuICAgICAgICAgID8gY29udmVydEh0dHBTdGF0dXNDb2RlVG9UaXRsZUVuKGVycm9yLnN0YXR1cylcbiAgICAgICAgICA6IGNvbnZlcnRIdHRwU3RhdHVzQ29kZVRvVGl0bGVEZShlcnJvci5zdGF0dXMpLFxuICAgIH07XG5cbiAgICBjb25zdCBkZXRhaWwgPSBlcnJvci5kZXRhaWw7XG4gICAgY29uc3QgZGVmYXVsdEVycm9yTWVzc2FnZSA9IGAke3RoaXMubGFuZ3VhZ2UoKSA9PT0gJ2VuJyA/IGNvbnZlcnRIdHRwU3RhdHVzQ29kZVRvTWVzc2FnZUVuKGVycm9yLnN0YXR1cykgOiBjb252ZXJ0SHR0cFN0YXR1c0NvZGVUb01lc3NhZ2VEZShlcnJvci5zdGF0dXMpfSAoQ29kZTogJHtlcnJvci5zdGF0dXN9KWA7XG5cbiAgICBpZiAoaXNDbGFzc1ZhbGlkYXRvckVycm9yKGRldGFpbCkpIHtcbiAgICAgIGZvciAoY29uc3QgZXJyb3Igb2YgZGV0YWlsLm1lc3NhZ2UpIHtcbiAgICAgICAgZXJyb3JMaXN0Lml0ZW1zLnB1c2goeyBtZXNzYWdlOiBlcnJvciB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGlzU3ltZm9ueUZvcm1WaW9sYXRpb25MaXN0RXJyb3IoZGV0YWlsKSkge1xuICAgICAgZm9yIChjb25zdCB2aW9sYXRpb24gb2YgZGV0YWlsLnZpb2xhdGlvbnMpIHtcbiAgICAgICAgZXJyb3JMaXN0Lml0ZW1zLnB1c2goeyBtZXNzYWdlOiB2aW9sYXRpb24ubWVzc2FnZSB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGlzU3ltZm9ueUxpc3RFcnJvcihkZXRhaWwpKSB7XG4gICAgICBmb3IgKGNvbnN0IGVycm9yIG9mIGRldGFpbCkge1xuICAgICAgICBlcnJvckxpc3QuaXRlbXMucHVzaCh7IG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgZGV0YWlsID09PSAnb2JqZWN0JyAmJiAhIWRldGFpbCAmJiAnbWVzc2FnZScgaW4gZGV0YWlsICYmIHR5cGVvZiBkZXRhaWwubWVzc2FnZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGVycm9yTGlzdC5pdGVtcy5wdXNoKHsgbWVzc2FnZTogZGV0YWlsLm1lc3NhZ2UgfSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgZGV0YWlsID09PSAnb2JqZWN0JyAmJiAhIWRldGFpbCAmJiAnZGV0YWlsJyBpbiBkZXRhaWwgJiYgdHlwZW9mIGRldGFpbC5kZXRhaWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICAvLyBTeW1mb255IGVycm9yIHJlc3BvbnNlIChkdXJpbmcgZGV2ZWxvcG1lbnQpXG4gICAgICBlcnJvckxpc3QuaXRlbXMucHVzaCh7IG1lc3NhZ2U6IGRldGFpbC5kZXRhaWwgfSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgZGV0YWlsID09PSAnc3RyaW5nJykge1xuICAgICAgZXJyb3JMaXN0Lml0ZW1zLnB1c2goeyBtZXNzYWdlOiBkZXRhaWwgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVycm9yTGlzdC5pdGVtcy5wdXNoKHsgbWVzc2FnZTogZGVmYXVsdEVycm9yTWVzc2FnZSB9KTtcbiAgICB9XG5cbiAgICBlcnJvckxpc3QuaXNMaXN0ID0gZXJyb3JMaXN0Lml0ZW1zLmxlbmd0aCA+IDE7XG5cbiAgICBpZiAoZXJyb3JMaXN0Lml0ZW1zLmxlbmd0aCA9PT0gMSkge1xuICAgICAgY29uc3QgY29tcGFyZVN0cmluZyA9IChzdHI6IHN0cmluZykgPT4gc3RyLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXFxzL2csICcnKS5yZXBsYWNlKC9cXC58LC9nLCAnJyk7XG5cbiAgICAgIGlmIChjb21wYXJlU3RyaW5nKGVycm9yTGlzdC5pdGVtc1swXSEubWVzc2FnZSkgPT09IGNvbXBhcmVTdHJpbmcoZXJyb3JMaXN0LnRpdGxlKSkge1xuICAgICAgICAvLyBPZnRlbiB0aGUgZXJyb3IgdGl0bGUgaXMgdGhlIHNhbWUgYXMgdGhlIGVycm9yIG1lc3NhZ2UuIEluIHRoaXMgY2FzZSB3ZSBzaW1wbHkgdXNlIHRoZSBkZWZhdWx0IGVycm9yIG1lc3NhZ2UgYXMgYSBtZXNzYWdlLlxuICAgICAgICAvLyBUaGlzIHdheSB0aGUgc2FtZSB0ZXh0IGlzIGF0IGxlYXN0IG5vdCBkaXNwbGF5ZWQgdHdpY2UuXG4gICAgICAgIGVycm9yTGlzdC5pdGVtc1swXSEubWVzc2FnZSA9IGRlZmF1bHRFcnJvck1lc3NhZ2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGVycm9yTGlzdDtcbiAgfSk7XG59XG4iXX0=