@koobiq/components 18.21.0 → 18.23.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 (311) hide show
  1. package/alert/_alert-theme.scss +4 -0
  2. package/alert/alert-tokens.scss +1 -1
  3. package/alert/alert.component.d.ts +8 -2
  4. package/badge/badge.component.d.ts +0 -1
  5. package/breadcrumbs/breadcrumbs.d.ts +19 -22
  6. package/breadcrumbs/breadcrumbs.scss +13 -4
  7. package/breadcrumbs/breadcrumbs.types.d.ts +22 -0
  8. package/breadcrumbs/public-api.d.ts +1 -0
  9. package/button/button.component.d.ts +11 -16
  10. package/checkbox/checkbox.d.ts +18 -23
  11. package/core/animation/animation.d.ts +5 -2
  12. package/core/common-behaviors/checkbox.d.ts +5 -0
  13. package/core/common-behaviors/color.d.ts +11 -0
  14. package/core/common-behaviors/index.d.ts +2 -1
  15. package/core/option/action.d.ts +5 -7
  16. package/core/option/optgroup.d.ts +6 -7
  17. package/core/pop-up/pop-up-trigger.d.ts +11 -3
  18. package/core/pop-up/pop-up.d.ts +8 -2
  19. package/core/selection/pseudo-checkbox/pseudo-checkbox.d.ts +3 -12
  20. package/core/utils/utils.d.ts +5 -0
  21. package/dropdown/dropdown-item.component.d.ts +6 -8
  22. package/empty-state/_empty-state-theme.scss +15 -5
  23. package/empty-state/empty-state-tokens.scss +12 -2
  24. package/empty-state/empty-state.component.d.ts +7 -2
  25. package/empty-state/empty-state.scss +29 -0
  26. package/esm2022/accordion/accordion-trigger.component.mjs +1 -1
  27. package/esm2022/actions-panel/actions-panel-container.mjs +2 -2
  28. package/esm2022/actions-panel/actions-panel.mjs +1 -1
  29. package/esm2022/alert/alert.component.mjs +11 -5
  30. package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +1 -1
  31. package/esm2022/badge/badge.component.mjs +2 -5
  32. package/esm2022/breadcrumbs/breadcrumbs.mjs +55 -22
  33. package/esm2022/breadcrumbs/breadcrumbs.types.mjs +2 -0
  34. package/esm2022/breadcrumbs/public-api.mjs +2 -1
  35. package/esm2022/button/button.component.mjs +23 -27
  36. package/esm2022/button-toggle/button-toggle.component.mjs +4 -3
  37. package/esm2022/checkbox/checkbox.mjs +27 -28
  38. package/esm2022/code-block/code-block-highlight.mjs +1 -1
  39. package/esm2022/code-block/code-block.mjs +2 -2
  40. package/esm2022/core/animation/animation.mjs +4 -1
  41. package/esm2022/core/common-behaviors/checkbox.mjs +2 -0
  42. package/esm2022/core/common-behaviors/color.mjs +35 -1
  43. package/esm2022/core/common-behaviors/disabled.mjs +2 -1
  44. package/esm2022/core/common-behaviors/error-state.mjs +2 -1
  45. package/esm2022/core/common-behaviors/index.mjs +3 -2
  46. package/esm2022/core/common-behaviors/tabindex.mjs +2 -1
  47. package/esm2022/core/formatters/number/formatter.mjs +1 -1
  48. package/esm2022/core/forms/validators.mjs +1 -1
  49. package/esm2022/core/line/line.mjs +1 -1
  50. package/esm2022/core/option/action.mjs +17 -12
  51. package/esm2022/core/option/optgroup.mjs +18 -12
  52. package/esm2022/core/option/option.mjs +1 -1
  53. package/esm2022/core/overlay/overlay-position-map.mjs +1 -1
  54. package/esm2022/core/pop-up/pop-up-trigger.mjs +27 -12
  55. package/esm2022/core/pop-up/pop-up.mjs +18 -5
  56. package/esm2022/core/select/common.mjs +1 -1
  57. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +10 -19
  58. package/esm2022/core/services/measure-scrollbar.service.mjs +1 -1
  59. package/esm2022/core/utils/utils.mjs +11 -1
  60. package/esm2022/core/version.mjs +2 -2
  61. package/esm2022/datepicker/calendar-header.component.mjs +2 -2
  62. package/esm2022/datepicker/datepicker-input.directive.mjs +1 -1
  63. package/esm2022/datepicker/datepicker-toggle.component.mjs +1 -1
  64. package/esm2022/datepicker/datepicker.component.mjs +1 -1
  65. package/esm2022/datepicker/month-view.component.mjs +1 -1
  66. package/esm2022/dropdown/dropdown-item.component.mjs +19 -14
  67. package/esm2022/dropdown/dropdown-trigger.directive.mjs +1 -1
  68. package/esm2022/dropdown/dropdown.component.mjs +1 -1
  69. package/esm2022/ellipsis-center/ellipsis-center.directive.mjs +1 -1
  70. package/esm2022/empty-state/empty-state.component.mjs +13 -8
  71. package/esm2022/file-upload/file-drop.mjs +1 -1
  72. package/esm2022/file-upload/file-upload.mjs +1 -1
  73. package/esm2022/file-upload/multiple-file-upload.component.mjs +2 -2
  74. package/esm2022/file-upload/single-file-upload.component.mjs +2 -2
  75. package/esm2022/filter-bar/filter-bar-button.mjs +2 -1
  76. package/esm2022/filter-bar/filter-bar.mjs +14 -1
  77. package/esm2022/filter-bar/filter-bar.module.mjs +5 -3
  78. package/esm2022/filter-bar/filter-bar.types.mjs +27 -2
  79. package/esm2022/filter-bar/filter-refresher.mjs +2 -2
  80. package/esm2022/filter-bar/filter-reset.mjs +16 -6
  81. package/esm2022/filter-bar/filter-search.mjs +19 -6
  82. package/esm2022/filter-bar/filters.mjs +22 -6
  83. package/esm2022/filter-bar/pipe-add.mjs +11 -2
  84. package/esm2022/filter-bar/pipe.directive.mjs +7 -25
  85. package/esm2022/filter-bar/pipes/base-pipe.mjs +23 -3
  86. package/esm2022/filter-bar/pipes/pipe-button.mjs +12 -6
  87. package/esm2022/filter-bar/pipes/pipe-date.mjs +26 -8
  88. package/esm2022/filter-bar/pipes/pipe-datetime.mjs +27 -8
  89. package/esm2022/filter-bar/pipes/pipe-multi-select.mjs +7 -2
  90. package/esm2022/filter-bar/pipes/pipe-select.mjs +7 -2
  91. package/esm2022/filter-bar/pipes/pipe-state.mjs +2 -1
  92. package/esm2022/filter-bar/pipes/pipe-text.mjs +7 -3
  93. package/esm2022/filter-bar/pipes/pipe-title.mjs +2 -1
  94. package/esm2022/form-field/cleaner.mjs +1 -1
  95. package/esm2022/form-field/form-field.mjs +13 -22
  96. package/esm2022/form-field/hint.mjs +10 -18
  97. package/esm2022/form-field/password-hint.mjs +7 -7
  98. package/esm2022/form-field/password-toggle.mjs +1 -1
  99. package/esm2022/form-field/stepper.mjs +1 -1
  100. package/esm2022/form-field/validate.directive.mjs +1 -1
  101. package/esm2022/icon/icon-button.component.mjs +13 -21
  102. package/esm2022/icon/icon-item.component.mjs +8 -15
  103. package/esm2022/icon/icon.component.mjs +15 -27
  104. package/esm2022/input/input-number.mjs +1 -1
  105. package/esm2022/input/input-password.mjs +20 -5
  106. package/esm2022/input/input.mjs +21 -22
  107. package/esm2022/link/link.component.mjs +46 -14
  108. package/esm2022/list/list-selection.component.mjs +19 -15
  109. package/esm2022/loader-overlay/loader-overlay.component.mjs +14 -9
  110. package/esm2022/markdown/markdown.component.mjs +2 -2
  111. package/esm2022/modal/modal.component.mjs +2 -2
  112. package/esm2022/modal/modal.directive.mjs +1 -1
  113. package/esm2022/modal/modal.service.mjs +1 -1
  114. package/esm2022/navbar/navbar-item.component.mjs +2 -2
  115. package/esm2022/navbar/navbar.component.mjs +9 -12
  116. package/esm2022/navbar/vertical-navbar.component.mjs +9 -13
  117. package/esm2022/overflow-items/overflow-items.mjs +1 -1
  118. package/esm2022/popover/popover-confirm.component.mjs +2 -2
  119. package/esm2022/popover/popover.component.mjs +5 -4
  120. package/esm2022/progress-bar/progress-bar.component.mjs +14 -21
  121. package/esm2022/progress-spinner/progress-spinner.component.mjs +17 -24
  122. package/esm2022/radio/radio.component.mjs +26 -36
  123. package/esm2022/scrollbar/scrollbar.component.mjs +1 -1
  124. package/esm2022/scrollbar/scrollbar.directive.mjs +1 -1
  125. package/esm2022/select/select.component.mjs +56 -37
  126. package/esm2022/sidepanel/sidepanel-directives.mjs +2 -2
  127. package/esm2022/sidepanel/sidepanel.service.mjs +1 -1
  128. package/esm2022/splitter/splitter.component.mjs +1 -1
  129. package/esm2022/tabs/paginated-tab-header.mjs +7 -4
  130. package/esm2022/tabs/tab-body.component.mjs +1 -1
  131. package/esm2022/tabs/tab-group.component.mjs +23 -19
  132. package/esm2022/tabs/tab-header.component.mjs +3 -3
  133. package/esm2022/tabs/tab-label-wrapper.directive.mjs +16 -13
  134. package/esm2022/tabs/tab-nav-bar.mjs +2 -2
  135. package/esm2022/tabs/tab.component.mjs +17 -12
  136. package/esm2022/tags/tag-input.mjs +1 -1
  137. package/esm2022/tags/tag-list.component.mjs +27 -22
  138. package/esm2022/tags/tag.component.mjs +7 -14
  139. package/esm2022/textarea/textarea.component.mjs +21 -22
  140. package/esm2022/timepicker/timepicker.directive.mjs +1 -1
  141. package/esm2022/timezone/timezone-select.component.mjs +3 -3
  142. package/esm2022/toast/toast.component.mjs +2 -2
  143. package/esm2022/toggle/toggle.component.mjs +111 -31
  144. package/esm2022/tree/control/base-tree-control.mjs +1 -1
  145. package/esm2022/tree/control/flat-tree-control.filters.mjs +1 -1
  146. package/esm2022/tree/control/nested-tree-control.mjs +1 -1
  147. package/esm2022/tree/data-source/flat-data-source.mjs +1 -1
  148. package/esm2022/tree/padding.directive.mjs +1 -1
  149. package/esm2022/tree/toggle.mjs +19 -14
  150. package/esm2022/tree/tree-base.mjs +1 -1
  151. package/esm2022/tree/tree-option.component.mjs +1 -1
  152. package/esm2022/tree/tree-selection.component.mjs +1 -1
  153. package/esm2022/tree-select/tree-select.component.mjs +58 -38
  154. package/fesm2022/koobiq-components-accordion.mjs +1 -1
  155. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  156. package/fesm2022/koobiq-components-actions-panel.mjs +1 -1
  157. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  158. package/fesm2022/koobiq-components-alert.mjs +10 -4
  159. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  160. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  161. package/fesm2022/koobiq-components-badge.mjs +2 -5
  162. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  163. package/fesm2022/koobiq-components-breadcrumbs.mjs +54 -21
  164. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  165. package/fesm2022/koobiq-components-button-toggle.mjs +3 -3
  166. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  167. package/fesm2022/koobiq-components-button.mjs +23 -27
  168. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  169. package/fesm2022/koobiq-components-checkbox.mjs +27 -28
  170. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  171. package/fesm2022/koobiq-components-code-block.mjs +1 -1
  172. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  173. package/fesm2022/koobiq-components-core.mjs +130 -51
  174. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  175. package/fesm2022/koobiq-components-datepicker.mjs +2 -2
  176. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  177. package/fesm2022/koobiq-components-dropdown.mjs +18 -13
  178. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  179. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  180. package/fesm2022/koobiq-components-empty-state.mjs +12 -7
  181. package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
  182. package/fesm2022/koobiq-components-file-upload.mjs +2 -2
  183. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  184. package/fesm2022/koobiq-components-filter-bar.mjs +1381 -1233
  185. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  186. package/fesm2022/koobiq-components-form-field.mjs +26 -43
  187. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  188. package/fesm2022/koobiq-components-icon.mjs +33 -57
  189. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  190. package/fesm2022/koobiq-components-input.mjs +40 -25
  191. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  192. package/fesm2022/koobiq-components-link.mjs +46 -14
  193. package/fesm2022/koobiq-components-link.mjs.map +1 -1
  194. package/fesm2022/koobiq-components-list.mjs +19 -15
  195. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  196. package/fesm2022/koobiq-components-loader-overlay.mjs +13 -8
  197. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  198. package/fesm2022/koobiq-components-markdown.mjs +2 -2
  199. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  200. package/fesm2022/koobiq-components-modal.mjs +2 -2
  201. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  202. package/fesm2022/koobiq-components-navbar.mjs +17 -24
  203. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  204. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
  205. package/fesm2022/koobiq-components-popover.mjs +5 -4
  206. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  207. package/fesm2022/koobiq-components-progress-bar.mjs +13 -20
  208. package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
  209. package/fesm2022/koobiq-components-progress-spinner.mjs +16 -23
  210. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  211. package/fesm2022/koobiq-components-radio.mjs +26 -36
  212. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  213. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  214. package/fesm2022/koobiq-components-select.mjs +56 -37
  215. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  216. package/fesm2022/koobiq-components-sidepanel.mjs +1 -1
  217. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  218. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  219. package/fesm2022/koobiq-components-tabs.mjs +60 -44
  220. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  221. package/fesm2022/koobiq-components-tags.mjs +32 -34
  222. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  223. package/fesm2022/koobiq-components-textarea.mjs +21 -22
  224. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  225. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  226. package/fesm2022/koobiq-components-timezone.mjs +2 -2
  227. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  228. package/fesm2022/koobiq-components-toast.mjs +1 -1
  229. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  230. package/fesm2022/koobiq-components-toggle.mjs +111 -31
  231. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  232. package/fesm2022/koobiq-components-tree-select.mjs +57 -37
  233. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  234. package/fesm2022/koobiq-components-tree.mjs +21 -15
  235. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  236. package/file-upload/multiple-file-upload.component.d.ts +2 -2
  237. package/file-upload/single-file-upload.component.d.ts +2 -2
  238. package/filter-bar/filter-bar-button.d.ts +1 -0
  239. package/filter-bar/filter-bar.d.ts +14 -0
  240. package/filter-bar/filter-bar.types.d.ts +13 -3
  241. package/filter-bar/filter-reset.d.ts +6 -2
  242. package/filter-bar/filter-search.d.ts +17 -10
  243. package/filter-bar/filters.d.ts +26 -11
  244. package/filter-bar/pipe-add.d.ts +10 -0
  245. package/filter-bar/pipe.directive.d.ts +5 -5
  246. package/filter-bar/pipes/base-pipe.d.ts +28 -2
  247. package/filter-bar/pipes/pipe-button.d.ts +6 -1
  248. package/filter-bar/pipes/pipe-date.d.ts +30 -10
  249. package/filter-bar/pipes/pipe-date.scss +29 -27
  250. package/filter-bar/pipes/pipe-datetime.d.ts +31 -10
  251. package/filter-bar/pipes/pipe-multi-select.d.ts +7 -0
  252. package/filter-bar/pipes/pipe-select.d.ts +7 -0
  253. package/filter-bar/pipes/pipe-state.d.ts +1 -0
  254. package/filter-bar/pipes/pipe-text.d.ts +5 -0
  255. package/form-field/form-field.d.ts +4 -12
  256. package/form-field/hint.d.ts +3 -12
  257. package/form-field/password-hint.d.ts +3 -3
  258. package/icon/icon-button.component.d.ts +5 -8
  259. package/icon/icon-item.component.d.ts +3 -7
  260. package/icon/icon.component.d.ts +7 -14
  261. package/input/input-password.d.ts +8 -2
  262. package/input/input.d.ts +9 -18
  263. package/link/_link-theme.scss +31 -8
  264. package/link/link.component.d.ts +13 -9
  265. package/list/list-selection.component.d.ts +8 -10
  266. package/loader-overlay/_loader-overlay-theme.scss +18 -8
  267. package/loader-overlay/loader-overlay-tokens.scss +6 -3
  268. package/loader-overlay/loader-overlay.component.d.ts +7 -2
  269. package/loader-overlay/loader-overlay.scss +19 -5
  270. package/markdown/markdown.scss +0 -4
  271. package/navbar/navbar.component.d.ts +2 -2
  272. package/navbar/vertical-navbar.component.d.ts +3 -3
  273. package/package.json +5 -5
  274. package/prebuilt-themes/dark-theme.css +1 -1
  275. package/prebuilt-themes/light-theme.css +1 -1
  276. package/prebuilt-themes/theme.css +1 -1
  277. package/progress-bar/progress-bar.component.d.ts +4 -12
  278. package/progress-spinner/progress-spinner.component.d.ts +4 -12
  279. package/radio/radio.component.d.ts +11 -25
  280. package/radio/radio.scss +0 -1
  281. package/schematics/collection.json +10 -0
  282. package/schematics/migrations/css-selectors/README.md +19 -0
  283. package/schematics/migrations/deprecated-icons/README.md +21 -0
  284. package/schematics/migrations/empty-state-size-attr/README.md +62 -0
  285. package/schematics/migrations/empty-state-size-attr/index.js +74 -0
  286. package/schematics/migrations/empty-state-size-attr/schema.json +15 -0
  287. package/schematics/migrations/loader-overlay-size-attr/README.md +62 -0
  288. package/schematics/migrations/loader-overlay-size-attr/index.js +74 -0
  289. package/schematics/migrations/loader-overlay-size-attr/schema.json +15 -0
  290. package/schematics/migrations/new-icons-pack/README.md +21 -0
  291. package/schematics/ng-add/index.js +3 -3
  292. package/schematics/utils/angular-parsing.js +153 -0
  293. package/schematics/utils/ast.js +28 -0
  294. package/schematics/utils/package-config.js +46 -0
  295. package/schematics/utils/typescript.js +171 -0
  296. package/select/select.component.d.ts +26 -25
  297. package/tabs/paginated-tab-header.d.ts +2 -1
  298. package/tabs/tab-group.component.d.ts +11 -13
  299. package/tabs/tab-header.component.d.ts +1 -1
  300. package/tabs/tab-label-wrapper.directive.d.ts +6 -8
  301. package/tabs/tab.component.d.ts +7 -8
  302. package/tags/tag-list.component.d.ts +15 -18
  303. package/tags/tag.component.d.ts +3 -10
  304. package/textarea/textarea.component.d.ts +8 -17
  305. package/toggle/_toggle-theme.scss +12 -3
  306. package/toggle/toggle-tokens.scss +2 -2
  307. package/toggle/toggle.component.d.ts +28 -14
  308. package/toggle/toggle.scss +37 -0
  309. package/tree/toggle.d.ts +7 -9
  310. package/tree/tree-selection.component.d.ts +2 -2
  311. package/tree-select/tree-select.component.d.ts +24 -26
@@ -91,7 +91,7 @@ export class KbqToastComponent {
91
91
  this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);
92
92
  }
93
93
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqToastComponent, deps: [{ token: i1.KbqToastData }, { token: forwardRef(() => KbqToastService) }, { token: i0.ElementRef }, { token: i2.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component }); }
94
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: KbqToastComponent, isStandalone: true, selector: "kbq-toast", host: { listeners: { "@state.start": "onAnimation($event)", "@state.done": "onAnimation($event)", "mouseenter": "hovered.next(true)", "mouseleave": "hovered.next(false)", "keydown.esc": "close()" }, properties: { "class": "toastStyle", "class.kbq-toast_dismissible": "data.closeButton", "@state": "animationState" }, classAttribute: "kbq-toast" }, ngImport: i0, template: "@if (data.icon) {\n <div class=\"kbq-toast__icon-container layout-row layout-align-start-start\">\n @if (data.icon === true) {\n @switch (data.style) {\n @case ('contrast') {\n <i\n kbq-icon=\"kbq-info-circle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n @case ('success') {\n <i\n kbq-icon=\"kbq-check-circle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n @case ('warning') {\n <i\n kbq-icon=\"kbq-exclamation-triangle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n @case ('error') {\n <i\n kbq-icon=\"kbq-exclamation-triangle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n }\n }\n @if (isTemplateRef(data.icon)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.icon)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n </div>\n}\n\n<div class=\"kbq-toast__container\">\n @if (data.title) {\n <div kbq-title class=\"kbq-toast__title\" [class.kbq-toast__title_with-content]=\"data.caption || data.content\">\n @if (isTemplateRef(data.title)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.title)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n @if (!isTemplateRef(data.title)) {\n <p>{{ data.title }}</p>\n }\n </div>\n }\n\n @if (data.caption) {\n <div kbq-title [class.kbq-toast__text]=\"data.title\" [class.kbq-toast__title]=\"!data.title\">\n @if (isTemplateRef(data.caption)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.caption)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n @if (!isTemplateRef(data.caption)) {\n {{ data.caption }}\n }\n </div>\n }\n\n @if (data.content) {\n <div class=\"kbq-toast__content\">\n @if (isTemplateRef(data.content)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.content)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n @if (!isTemplateRef(data.content)) {\n {{ data.content }}\n }\n </div>\n }\n\n @if (data.actions) {\n <div class=\"kbq-toast__actions\">\n @if (isTemplateRef(data.actions)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.actions)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n @if (!isTemplateRef(data.actions)) {\n {{ data.actions }}\n }\n </div>\n }\n</div>\n\n@if (data.closeButton) {\n <div>\n @if (data.closeButton === true) {\n <i kbq-icon-button=\"kbq-xmark-s_16\" kbq-toast-close-button (click)=\"close()\"></i>\n }\n @if (isTemplateRef(data.closeButton)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.closeButton)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n </div>\n}\n", styles: [".kbq-toast{display:flex;box-sizing:border-box;width:var(--kbq-toast-size-container-width);height:auto;border-radius:var(--kbq-toast-size-container-border-radius);padding-left:var(--kbq-toast-size-container-padding-left);padding-right:var(--kbq-toast-size-container-padding-right)}.kbq-toast__icon-container{flex-shrink:0;width:var(--kbq-toast-size-icon-width);max-width:var(--kbq-toast-size-icon-width);height:var(--kbq-toast-size-icon-height);max-height:var(--kbq-toast-size-icon-height);border-radius:var(--kbq-toast-size-container-border-radius);margin-right:var(--kbq-toast-size-icon-margin-right);padding-top:calc(var(--kbq-toast-size-content-padding-top) + (var(--kbq-typography-text-normal-line-height) - var(--kbq-toast-size-icon-height)) / 2)}.kbq-toast__container{display:flex;flex-direction:column;flex:1;padding-top:var(--kbq-toast-size-content-padding-top);padding-right:var(--kbq-size-s);padding-bottom:var(--kbq-toast-size-content-padding-bottom);overflow:hidden}.kbq-toast__title{overflow:hidden;text-overflow:ellipsis}.kbq-toast__title>p{margin:0;overflow:hidden;text-overflow:ellipsis}.kbq-toast__title_with-content{padding-bottom:var(--kbq-toast-size-caption-padding-bottom)}.kbq-toast__text{display:flex;flex:1;align-items:center}.kbq-toast__content{display:flex;flex-direction:column}.kbq-toast__actions{display:flex;padding-top:var(--kbq-toast-size-button-stack-padding-top);gap:var(--kbq-toast-size-button-stack-content-gap-horizontal)}.kbq-toast__close-button{margin-top:calc(var(--kbq-toast-size-content-padding-top) - (var(--kbq-icon-button-size-small-vertical-padding) * 2 + 16px - var(--kbq-typography-text-normal-line-height)) / 2);margin-right:var(--kbq-toast-size-close-button-margin-right)}.kbq-toast__close-button.kbq-icon-button{--kbq-icon-button-size-normal-horizontal-padding: 4px;--kbq-icon-button-size-normal-vertical-padding: 4px}.kbq-toast.kbq-toast_contrast{box-shadow:var(--kbq-toast-contrast-container-shadow);background:var(--kbq-toast-contrast-container-background)}.kbq-toast.kbq-toast_contrast .kbq-toast__title{color:var(--kbq-toast-contrast-container-title)}.kbq-toast.kbq-toast_contrast .kbq-toast__text{color:var(--kbq-toast-contrast-container-text)}.kbq-toast.kbq-toast_success{box-shadow:var(--kbq-toast-success-container-shadow);background:var(--kbq-toast-success-container-background)}.kbq-toast.kbq-toast_success .kbq-toast__title{color:var(--kbq-toast-success-container-title)}.kbq-toast.kbq-toast_success .kbq-toast__text{color:var(--kbq-toast-success-container-text)}.kbq-toast.kbq-toast_warning{box-shadow:var(--kbq-toast-warning-container-shadow);background:var(--kbq-toast-warning-container-background)}.kbq-toast.kbq-toast_warning .kbq-toast__title{color:var(--kbq-toast-warning-container-title)}.kbq-toast.kbq-toast_warning .kbq-toast__text{color:var(--kbq-toast-warning-container-text)}.kbq-toast.kbq-toast_error{box-shadow:var(--kbq-toast-error-container-shadow);background:var(--kbq-toast-error-container-background)}.kbq-toast.kbq-toast_error .kbq-toast__title{color:var(--kbq-toast-error-container-title)}.kbq-toast.kbq-toast_error .kbq-toast__text{color:var(--kbq-toast-error-container-text)}.kbq-toast,.kbq-toast__title{font-size:var(--kbq-typography-text-normal-font-size);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n", ".kbq-toast-container{--kbq-toast-stack-size-margin-top: var(--kbq-size-m);--kbq-toast-stack-size-margin-right: var(--kbq-size-m);--kbq-toast-stack-size-gap: var(--kbq-size-s);--kbq-toast-size-container-width: 360px;--kbq-toast-size-container-border-radius: var(--kbq-size-s);--kbq-toast-size-container-padding-left: var(--kbq-size-m);--kbq-toast-size-container-padding-right: var(--kbq-size-s);--kbq-toast-size-content-padding-top: var(--kbq-size-l);--kbq-toast-size-content-padding-bottom: var(--kbq-size-l);--kbq-toast-size-caption-padding-bottom: var(--kbq-size-xxs);--kbq-toast-size-icon-width: var(--kbq-size-l);--kbq-toast-size-icon-height: var(--kbq-size-l);--kbq-toast-size-icon-margin-right: var(--kbq-size-s);--kbq-toast-size-icon-border-radius: 50%;--kbq-toast-size-close-button-margin-top: var(--kbq-size-m);--kbq-toast-size-close-button-margin-right: var(--kbq-size-xxs);--kbq-toast-size-button-stack-padding-top: var(--kbq-size-s);--kbq-toast-size-button-stack-content-gap-horizontal: var(--kbq-size-m);--kbq-toast-contrast-container-background: var(--kbq-background-card);--kbq-toast-contrast-container-title: var(--kbq-foreground-contrast);--kbq-toast-contrast-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-contrast-container-shadow: var(--kbq-shadow-popup);--kbq-toast-error-container-background: var(--kbq-background-card);--kbq-toast-error-container-title: var(--kbq-foreground-contrast);--kbq-toast-error-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-error-container-shadow: var(--kbq-shadow-popup);--kbq-toast-warning-container-background: var(--kbq-background-card);--kbq-toast-warning-container-title: var(--kbq-foreground-contrast);--kbq-toast-warning-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-warning-container-shadow: var(--kbq-shadow-popup);--kbq-toast-success-container-background: var(--kbq-background-card);--kbq-toast-success-container-title: var(--kbq-foreground-contrast);--kbq-toast-success-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-success-container-shadow: var(--kbq-shadow-popup)}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i3.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor", "kbq-icon"] }, { kind: "component", type: i3.KbqIconButton, selector: "[kbq-icon-button]", inputs: ["color", "small", "kbq-icon-button", "tabindex", "disabled"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: i4.KbqTitleDirective, selector: "[kbq-title]", exportAs: ["kbqTitle"] }, { kind: "directive", type: KbqToastCloseButton, selector: "[kbq-toast-close-button]" }], animations: [kbqToastAnimations.toastState], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
94
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: KbqToastComponent, isStandalone: true, selector: "kbq-toast", host: { listeners: { "@state.start": "onAnimation($event)", "@state.done": "onAnimation($event)", "mouseenter": "hovered.next(true)", "mouseleave": "hovered.next(false)", "keydown.esc": "close()" }, properties: { "class": "toastStyle", "class.kbq-toast_dismissible": "data.closeButton", "@state": "animationState" }, classAttribute: "kbq-toast" }, ngImport: i0, template: "@if (data.icon) {\n <div class=\"kbq-toast__icon-container layout-row layout-align-start-start\">\n @if (data.icon === true) {\n @switch (data.style) {\n @case ('contrast') {\n <i\n kbq-icon=\"kbq-info-circle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n @case ('success') {\n <i\n kbq-icon=\"kbq-check-circle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n @case ('warning') {\n <i\n kbq-icon=\"kbq-exclamation-triangle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n @case ('error') {\n <i\n kbq-icon=\"kbq-exclamation-triangle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n }\n }\n @if (isTemplateRef(data.icon)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.icon)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n </div>\n}\n\n<div class=\"kbq-toast__container\">\n @if (data.title) {\n <div kbq-title class=\"kbq-toast__title\" [class.kbq-toast__title_with-content]=\"data.caption || data.content\">\n @if (isTemplateRef(data.title)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.title)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n @if (!isTemplateRef(data.title)) {\n <p>{{ data.title }}</p>\n }\n </div>\n }\n\n @if (data.caption) {\n <div kbq-title [class.kbq-toast__text]=\"data.title\" [class.kbq-toast__title]=\"!data.title\">\n @if (isTemplateRef(data.caption)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.caption)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n @if (!isTemplateRef(data.caption)) {\n {{ data.caption }}\n }\n </div>\n }\n\n @if (data.content) {\n <div class=\"kbq-toast__content\">\n @if (isTemplateRef(data.content)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.content)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n @if (!isTemplateRef(data.content)) {\n {{ data.content }}\n }\n </div>\n }\n\n @if (data.actions) {\n <div class=\"kbq-toast__actions\">\n @if (isTemplateRef(data.actions)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.actions)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n @if (!isTemplateRef(data.actions)) {\n {{ data.actions }}\n }\n </div>\n }\n</div>\n\n@if (data.closeButton) {\n <div>\n @if (data.closeButton === true) {\n <i kbq-icon-button=\"kbq-xmark-s_16\" kbq-toast-close-button (click)=\"close()\"></i>\n }\n @if (isTemplateRef(data.closeButton)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.closeButton)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n </div>\n}\n", styles: [".kbq-toast{display:flex;box-sizing:border-box;width:var(--kbq-toast-size-container-width);height:auto;border-radius:var(--kbq-toast-size-container-border-radius);padding-left:var(--kbq-toast-size-container-padding-left);padding-right:var(--kbq-toast-size-container-padding-right)}.kbq-toast__icon-container{flex-shrink:0;width:var(--kbq-toast-size-icon-width);max-width:var(--kbq-toast-size-icon-width);height:var(--kbq-toast-size-icon-height);max-height:var(--kbq-toast-size-icon-height);border-radius:var(--kbq-toast-size-container-border-radius);margin-right:var(--kbq-toast-size-icon-margin-right);padding-top:calc(var(--kbq-toast-size-content-padding-top) + (var(--kbq-typography-text-normal-line-height) - var(--kbq-toast-size-icon-height)) / 2)}.kbq-toast__container{display:flex;flex-direction:column;flex:1;padding-top:var(--kbq-toast-size-content-padding-top);padding-right:var(--kbq-size-s);padding-bottom:var(--kbq-toast-size-content-padding-bottom);overflow:hidden}.kbq-toast__title{overflow:hidden;text-overflow:ellipsis}.kbq-toast__title>p{margin:0;overflow:hidden;text-overflow:ellipsis}.kbq-toast__title_with-content{padding-bottom:var(--kbq-toast-size-caption-padding-bottom)}.kbq-toast__text{display:flex;flex:1;align-items:center}.kbq-toast__content{display:flex;flex-direction:column}.kbq-toast__actions{display:flex;padding-top:var(--kbq-toast-size-button-stack-padding-top);gap:var(--kbq-toast-size-button-stack-content-gap-horizontal)}.kbq-toast__close-button{margin-top:calc(var(--kbq-toast-size-content-padding-top) - (var(--kbq-icon-button-size-small-vertical-padding) * 2 + 16px - var(--kbq-typography-text-normal-line-height)) / 2);margin-right:var(--kbq-toast-size-close-button-margin-right)}.kbq-toast__close-button.kbq-icon-button{--kbq-icon-button-size-normal-horizontal-padding: 4px;--kbq-icon-button-size-normal-vertical-padding: 4px}.kbq-toast.kbq-toast_contrast{box-shadow:var(--kbq-toast-contrast-container-shadow);background:var(--kbq-toast-contrast-container-background)}.kbq-toast.kbq-toast_contrast .kbq-toast__title{color:var(--kbq-toast-contrast-container-title)}.kbq-toast.kbq-toast_contrast .kbq-toast__text{color:var(--kbq-toast-contrast-container-text)}.kbq-toast.kbq-toast_success{box-shadow:var(--kbq-toast-success-container-shadow);background:var(--kbq-toast-success-container-background)}.kbq-toast.kbq-toast_success .kbq-toast__title{color:var(--kbq-toast-success-container-title)}.kbq-toast.kbq-toast_success .kbq-toast__text{color:var(--kbq-toast-success-container-text)}.kbq-toast.kbq-toast_warning{box-shadow:var(--kbq-toast-warning-container-shadow);background:var(--kbq-toast-warning-container-background)}.kbq-toast.kbq-toast_warning .kbq-toast__title{color:var(--kbq-toast-warning-container-title)}.kbq-toast.kbq-toast_warning .kbq-toast__text{color:var(--kbq-toast-warning-container-text)}.kbq-toast.kbq-toast_error{box-shadow:var(--kbq-toast-error-container-shadow);background:var(--kbq-toast-error-container-background)}.kbq-toast.kbq-toast_error .kbq-toast__title{color:var(--kbq-toast-error-container-title)}.kbq-toast.kbq-toast_error .kbq-toast__text{color:var(--kbq-toast-error-container-text)}.kbq-toast,.kbq-toast__title{font-size:var(--kbq-typography-text-normal-font-size);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n", ".kbq-toast-container{--kbq-toast-stack-size-margin-top: var(--kbq-size-m);--kbq-toast-stack-size-margin-right: var(--kbq-size-m);--kbq-toast-stack-size-gap: var(--kbq-size-s);--kbq-toast-size-container-width: 360px;--kbq-toast-size-container-border-radius: var(--kbq-size-s);--kbq-toast-size-container-padding-left: var(--kbq-size-m);--kbq-toast-size-container-padding-right: var(--kbq-size-s);--kbq-toast-size-content-padding-top: var(--kbq-size-l);--kbq-toast-size-content-padding-bottom: var(--kbq-size-l);--kbq-toast-size-caption-padding-bottom: var(--kbq-size-xxs);--kbq-toast-size-icon-width: var(--kbq-size-l);--kbq-toast-size-icon-height: var(--kbq-size-l);--kbq-toast-size-icon-margin-right: var(--kbq-size-s);--kbq-toast-size-icon-border-radius: 50%;--kbq-toast-size-close-button-margin-top: var(--kbq-size-m);--kbq-toast-size-close-button-margin-right: var(--kbq-size-xxs);--kbq-toast-size-button-stack-padding-top: var(--kbq-size-s);--kbq-toast-size-button-stack-content-gap-horizontal: var(--kbq-size-m);--kbq-toast-contrast-container-background: var(--kbq-background-card);--kbq-toast-contrast-container-title: var(--kbq-foreground-contrast);--kbq-toast-contrast-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-contrast-container-shadow: var(--kbq-shadow-popup);--kbq-toast-error-container-background: var(--kbq-background-card);--kbq-toast-error-container-title: var(--kbq-foreground-contrast);--kbq-toast-error-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-error-container-shadow: var(--kbq-shadow-popup);--kbq-toast-warning-container-background: var(--kbq-background-card);--kbq-toast-warning-container-title: var(--kbq-foreground-contrast);--kbq-toast-warning-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-warning-container-shadow: var(--kbq-shadow-popup);--kbq-toast-success-container-background: var(--kbq-background-card);--kbq-toast-success-container-title: var(--kbq-foreground-contrast);--kbq-toast-success-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-success-container-shadow: var(--kbq-shadow-popup)}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i3.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "component", type: i3.KbqIconButton, selector: "[kbq-icon-button]", inputs: ["small", "kbq-icon-button", "tabindex", "disabled"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: i4.KbqTitleDirective, selector: "[kbq-title]", exportAs: ["kbqTitle"] }, { kind: "directive", type: KbqToastCloseButton, selector: "[kbq-toast-close-button]" }], animations: [kbqToastAnimations.toastState], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
95
95
  }
96
96
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqToastComponent, decorators: [{
97
97
  type: Component,
@@ -116,4 +116,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
116
116
  type: Inject,
117
117
  args: [forwardRef(() => KbqToastService)]
118
118
  }] }, { type: i0.ElementRef }, { type: i2.FocusMonitor }] });
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy90b2FzdC90b2FzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3RvYXN0L3RvYXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQWUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBRU4sV0FBVyxFQUNYLGlCQUFpQixFQUNqQixVQUFVLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7OztBQVMzRCxNQUFNLE9BQU8sbUJBQW1CO2lJQUFuQixtQkFBbUI7cUhBQW5CLG1CQUFtQjs7MkZBQW5CLG1C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V0FDUDt3QkFDTCxnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsT0FBTzt3QkFDUCxjQUFjO3dCQUNkLG1CQUFtQjtxQkFDdEIsWUFDUyxXQUFXLFFBR2Y7d0JBQ0YsS0FBSyxFQUFFLFdBQVc7d0JBQ2xCLFNBQVMsRUFBRSxZQUFZO3dCQUN2QiwrQkFBK0IsRUFBRSxrQkFBa0I7d0JBQ25ELFVBQVUsRUFBRSxnQkFBZ0I7d0JBQzVCLGdCQUFnQixFQUFFLHFCQUFxQjt3QkFDdkMsZUFBZSxFQUFFLHFCQUFxQjt3QkFFdEMsY0FBYyxFQUFFLG9CQUFvQjt3QkFDcEMsY0FBYyxFQUFFLHFCQUFxQjt3QkFFckMsZUFBZSxFQUFFLFNBQVM7cUJBQzdCLGNBQ1csQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsbUJBQzFCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUk7OzBCQTRCaEMsTUFBTTsyQkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5pbWF0aW9uRXZlbnQgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IEZvY3VzTW9uaXRvciwgRm9jdXNPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgZm9yd2FyZFJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IFRoZW1lUGFsZXR0ZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9jb3JlJztcbmltcG9ydCB7IEticUljb25Nb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBLYnFUaXRsZU1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy90aXRsZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBrYnFUb2FzdEFuaW1hdGlvbnMgfSBmcm9tICcuL3RvYXN0LWFuaW1hdGlvbnMnO1xuaW1wb3J0IHsgS2JxVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IEticVRvYXN0RGF0YSwgS2JxVG9hc3RTdHlsZSB9IGZyb20gJy4vdG9hc3QudHlwZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdba2JxLXRvYXN0LWNsb3NlLWJ1dHRvbl0nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdrYnEtdG9hc3RfX2Nsb3NlLWJ1dHRvbidcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEticVRvYXN0Q2xvc2VCdXR0b24ge31cblxubGV0IGlkID0gMDtcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIEticUljb25Nb2R1bGUsXG4gICAgICAgIE5nQ2xhc3MsXG4gICAgICAgIEticVRpdGxlTW9kdWxlLFxuICAgICAgICBLYnFUb2FzdENsb3NlQnV0dG9uXG4gICAgXSxcbiAgICBzZWxlY3RvcjogJ2ticS10b2FzdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RvYXN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90b2FzdC5jb21wb25lbnQuc2NzcycsICcuL3RvYXN0LXRva2Vucy5zY3NzJ10sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS10b2FzdCcsXG4gICAgICAgICdbY2xhc3NdJzogJ3RvYXN0U3R5bGUnLFxuICAgICAgICAnW2NsYXNzLmticS10b2FzdF9kaXNtaXNzaWJsZV0nOiAnZGF0YS5jbG9zZUJ1dHRvbicsXG4gICAgICAgICdbQHN0YXRlXSc6ICdhbmltYXRpb25TdGF0ZScsXG4gICAgICAgICcoQHN0YXRlLnN0YXJ0KSc6ICdvbkFuaW1hdGlvbigkZXZlbnQpJyxcbiAgICAgICAgJyhAc3RhdGUuZG9uZSknOiAnb25BbmltYXRpb24oJGV2ZW50KScsXG5cbiAgICAgICAgJyhtb3VzZWVudGVyKSc6ICdob3ZlcmVkLm5leHQodHJ1ZSknLFxuICAgICAgICAnKG1vdXNlbGVhdmUpJzogJ2hvdmVyZWQubmV4dChmYWxzZSknLFxuXG4gICAgICAgICcoa2V5ZG93bi5lc2MpJzogJ2Nsb3NlKCknXG4gICAgfSxcbiAgICBhbmltYXRpb25zOiBba2JxVG9hc3RBbmltYXRpb25zLnRvYXN0U3RhdGVdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgS2JxVG9hc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIHRoZW1lUGFsZXR0ZSA9IFRoZW1lUGFsZXR0ZTtcblxuICAgIGFuaW1hdGlvblN0YXRlID0gJ3ZvaWQnO1xuXG4gICAgcmVhZG9ubHkgaG92ZXJlZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHJlYWRvbmx5IGZvY3VzZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAgIGlkID0gaWQrKztcbiAgICB0dGw7XG4gICAgZGVsYXk7XG5cbiAgICAkaW1wbGljaXQ7XG5cbiAgICBnZXQgdG9hc3RTdHlsZSgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIFtga2JxLXRvYXN0XyR7dGhpcy5kYXRhLnN0eWxlfWBdOiB0cnVlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZ2V0IGlzRm9jdXNlZE9ySG92ZXJlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG92ZXJlZC5nZXRWYWx1ZSgpIHx8IHRoaXMuZm9jdXNlZC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICByZWFkb25seSBkYXRhOiBLYnFUb2FzdERhdGEsXG4gICAgICAgIEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBLYnFUb2FzdFNlcnZpY2UpKSByZWFkb25seSBzZXJ2aWNlOiBLYnFUb2FzdFNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIGZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yXG4gICAgKSB7XG4gICAgICAgIHRoaXMuJGltcGxpY2l0ID0gdGhpcztcblxuICAgICAgICB0aGlzLmRhdGEuc3R5bGUgPSB0aGlzLmRhdGEuc3R5bGUgfHwgS2JxVG9hc3RTdHlsZS5Db250cmFzdDtcbiAgICAgICAgdGhpcy5kYXRhLmljb24gPSB0aGlzLmRhdGEuaWNvbiAhPT0gdW5kZWZpbmVkID8gdGhpcy5kYXRhLmljb24gOiB0cnVlO1xuICAgICAgICB0aGlzLmRhdGEuaWNvbkNsYXNzID0gdGhpcy5kYXRhLmljb25DbGFzcyB8fCB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuZGF0YS5jbG9zZUJ1dHRvbiA9IHRoaXMuZGF0YS5jbG9zZUJ1dHRvbiAhPT0gdW5kZWZpbmVkID8gdGhpcy5kYXRhLmNsb3NlQnV0dG9uIDogdHJ1ZTtcblxuICAgICAgICB0aGlzLmFuaW1hdGlvblN0YXRlID0gJ3Zpc2libGUnO1xuXG4gICAgICAgIHRoaXMucnVuRm9jdXNNb25pdG9yKCk7XG5cbiAgICAgICAgdGhpcy5ob3ZlcmVkLnN1YnNjcmliZSh0aGlzLnNlcnZpY2UuaG92ZXJlZCk7XG4gICAgICAgIHRoaXMuZm9jdXNlZC5zdWJzY3JpYmUodGhpcy5zZXJ2aWNlLmZvY3VzZWQpO1xuXG4gICAgICAgIG1lcmdlKHRoaXMuaG92ZXJlZCwgdGhpcy5mb2N1c2VkKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCgpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50dGwgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMudHRsID0gdGhpcy50dGwgPCB0aGlzLmRlbGF5ID8gdGhpcy5kZWxheSA6IHRoaXMudHRsO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuc3RvcEZvY3VzTW9uaXRvcigpO1xuXG4gICAgICAgIHRoaXMuaG92ZXJlZC5uZXh0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5mb2N1c2VkLm5leHQoZmFsc2UpO1xuICAgIH1cblxuICAgIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlcnZpY2UuaGlkZSh0aGlzLmlkKTtcbiAgICB9XG5cbiAgICBpc1RlbXBsYXRlUmVmKHZhbHVlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmO1xuICAgIH1cblxuICAgIG9uQW5pbWF0aW9uKCRldmVudDogQW5pbWF0aW9uRXZlbnQpIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmFuaW1hdGlvbi5uZXh0KCRldmVudCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBydW5Gb2N1c01vbml0b3IoKSB7XG4gICAgICAgIHRoaXMuZm9jdXNNb25pdG9yXG4gICAgICAgICAgICAubW9uaXRvcih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdHJ1ZSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKG9yaWdpbjogRm9jdXNPcmlnaW4pID0+IHRoaXMuZm9jdXNlZC5uZXh0KCEhb3JpZ2luKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdG9wRm9jdXNNb25pdG9yKCkge1xuICAgICAgICB0aGlzLmZvY3VzTW9uaXRvci5zdG9wTW9uaXRvcmluZyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgfVxufVxuIiwiQGlmIChkYXRhLmljb24pIHtcbiAgICA8ZGl2IGNsYXNzPVwia2JxLXRvYXN0X19pY29uLWNvbnRhaW5lciBsYXlvdXQtcm93IGxheW91dC1hbGlnbi1zdGFydC1zdGFydFwiPlxuICAgICAgICBAaWYgKGRhdGEuaWNvbiA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgQHN3aXRjaCAoZGF0YS5zdHlsZSkge1xuICAgICAgICAgICAgICAgIEBjYXNlICgnY29udHJhc3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgICAgICBrYnEtaWNvbj1cImticS1pbmZvLWNpcmNsZV8xNlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImticS10b2FzdF9faWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiJGFueShkYXRhLnN0eWxlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJkYXRhLmljb25DbGFzc1wiXG4gICAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBjYXNlICgnc3VjY2VzcycpIHtcbiAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICAgIGticS1pY29uPVwia2JxLWNoZWNrLWNpcmNsZV8xNlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImticS10b2FzdF9faWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiJGFueShkYXRhLnN0eWxlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJkYXRhLmljb25DbGFzc1wiXG4gICAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBjYXNlICgnd2FybmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICAgIGticS1pY29uPVwia2JxLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlXzE2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwia2JxLXRvYXN0X19pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCIkYW55KGRhdGEuc3R5bGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImRhdGEuaWNvbkNsYXNzXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGNhc2UgKCdlcnJvcicpIHtcbiAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICAgIGticS1pY29uPVwia2JxLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlXzE2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwia2JxLXRvYXN0X19pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCIkYW55KGRhdGEuc3R5bGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImRhdGEuaWNvbkNsYXNzXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChpc1RlbXBsYXRlUmVmKGRhdGEuaWNvbikpIHtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiJGFueShkYXRhLmljb24pXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0IH1cIiAvPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG59XG5cbjxkaXYgY2xhc3M9XCJrYnEtdG9hc3RfX2NvbnRhaW5lclwiPlxuICAgIEBpZiAoZGF0YS50aXRsZSkge1xuICAgICAgICA8ZGl2IGticS10aXRsZSBjbGFzcz1cImticS10b2FzdF9fdGl0bGVcIiBbY2xhc3Mua2JxLXRvYXN0X190aXRsZV93aXRoLWNvbnRlbnRdPVwiZGF0YS5jYXB0aW9uIHx8IGRhdGEuY29udGVudFwiPlxuICAgICAgICAgICAgQGlmIChpc1RlbXBsYXRlUmVmKGRhdGEudGl0bGUpKSB7XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCIkYW55KGRhdGEudGl0bGUpXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0IH1cIiAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmICghaXNUZW1wbGF0ZVJlZihkYXRhLnRpdGxlKSkge1xuICAgICAgICAgICAgICAgIDxwPnt7IGRhdGEudGl0bGUgfX08L3A+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIEBpZiAoZGF0YS5jYXB0aW9uKSB7XG4gICAgICAgIDxkaXYga2JxLXRpdGxlIFtjbGFzcy5rYnEtdG9hc3RfX3RleHRdPVwiZGF0YS50aXRsZVwiIFtjbGFzcy5rYnEtdG9hc3RfX3RpdGxlXT1cIiFkYXRhLnRpdGxlXCI+XG4gICAgICAgICAgICBAaWYgKGlzVGVtcGxhdGVSZWYoZGF0YS5jYXB0aW9uKSkge1xuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiJGFueShkYXRhLmNhcHRpb24pXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0IH1cIiAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmICghaXNUZW1wbGF0ZVJlZihkYXRhLmNhcHRpb24pKSB7XG4gICAgICAgICAgICAgICAge3sgZGF0YS5jYXB0aW9uIH19XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIEBpZiAoZGF0YS5jb250ZW50KSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtdG9hc3RfX2NvbnRlbnRcIj5cbiAgICAgICAgICAgIEBpZiAoaXNUZW1wbGF0ZVJlZihkYXRhLmNvbnRlbnQpKSB7XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCIkYW55KGRhdGEuY29udGVudClcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQgfVwiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKCFpc1RlbXBsYXRlUmVmKGRhdGEuY29udGVudCkpIHtcbiAgICAgICAgICAgICAgICB7eyBkYXRhLmNvbnRlbnQgfX1cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgQGlmIChkYXRhLmFjdGlvbnMpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImticS10b2FzdF9fYWN0aW9uc1wiPlxuICAgICAgICAgICAgQGlmIChpc1RlbXBsYXRlUmVmKGRhdGEuYWN0aW9ucykpIHtcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRhbnkoZGF0YS5hY3Rpb25zKVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdCB9XCIgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoIWlzVGVtcGxhdGVSZWYoZGF0YS5hY3Rpb25zKSkge1xuICAgICAgICAgICAgICAgIHt7IGRhdGEuYWN0aW9ucyB9fVxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICB9XG48L2Rpdj5cblxuQGlmIChkYXRhLmNsb3NlQnV0dG9uKSB7XG4gICAgPGRpdj5cbiAgICAgICAgQGlmIChkYXRhLmNsb3NlQnV0dG9uID09PSB0cnVlKSB7XG4gICAgICAgICAgICA8aSBrYnEtaWNvbi1idXR0b249XCJrYnEteG1hcmstc18xNlwiIGticS10b2FzdC1jbG9zZS1idXR0b24gKGNsaWNrKT1cImNsb3NlKClcIj48L2k+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChpc1RlbXBsYXRlUmVmKGRhdGEuY2xvc2VCdXR0b24pKSB7XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRhbnkoZGF0YS5jbG9zZUJ1dHRvbilcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQgfVwiIC8+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbn1cbiJdfQ==
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy90b2FzdC90b2FzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3RvYXN0L3RvYXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQWUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBRU4sV0FBVyxFQUNYLGlCQUFpQixFQUNqQixVQUFVLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7OztBQVMzRCxNQUFNLE9BQU8sbUJBQW1CO2lJQUFuQixtQkFBbUI7cUhBQW5CLG1CQUFtQjs7MkZBQW5CLG1C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V0FDUDt3QkFDTCxnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsT0FBTzt3QkFDUCxjQUFjO3dCQUNkLG1CQUFtQjtxQkFDdEIsWUFDUyxXQUFXLFFBR2Y7d0JBQ0YsS0FBSyxFQUFFLFdBQVc7d0JBQ2xCLFNBQVMsRUFBRSxZQUFZO3dCQUN2QiwrQkFBK0IsRUFBRSxrQkFBa0I7d0JBQ25ELFVBQVUsRUFBRSxnQkFBZ0I7d0JBQzVCLGdCQUFnQixFQUFFLHFCQUFxQjt3QkFDdkMsZUFBZSxFQUFFLHFCQUFxQjt3QkFFdEMsY0FBYyxFQUFFLG9CQUFvQjt3QkFDcEMsY0FBYyxFQUFFLHFCQUFxQjt3QkFFckMsZUFBZSxFQUFFLFNBQVM7cUJBQzdCLGNBQ1csQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsbUJBQzFCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUk7OzBCQTRCaEMsTUFBTTsyQkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5pbWF0aW9uRXZlbnQgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IEZvY3VzTW9uaXRvciwgRm9jdXNPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgZm9yd2FyZFJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IFRoZW1lUGFsZXR0ZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9jb3JlJztcbmltcG9ydCB7IEticUljb25Nb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBLYnFUaXRsZU1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy90aXRsZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBrYnFUb2FzdEFuaW1hdGlvbnMgfSBmcm9tICcuL3RvYXN0LWFuaW1hdGlvbnMnO1xuaW1wb3J0IHsgS2JxVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IEticVRvYXN0RGF0YSwgS2JxVG9hc3RTdHlsZSB9IGZyb20gJy4vdG9hc3QudHlwZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdba2JxLXRvYXN0LWNsb3NlLWJ1dHRvbl0nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdrYnEtdG9hc3RfX2Nsb3NlLWJ1dHRvbidcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEticVRvYXN0Q2xvc2VCdXR0b24ge31cblxubGV0IGlkID0gMDtcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIEticUljb25Nb2R1bGUsXG4gICAgICAgIE5nQ2xhc3MsXG4gICAgICAgIEticVRpdGxlTW9kdWxlLFxuICAgICAgICBLYnFUb2FzdENsb3NlQnV0dG9uXG4gICAgXSxcbiAgICBzZWxlY3RvcjogJ2ticS10b2FzdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RvYXN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90b2FzdC5jb21wb25lbnQuc2NzcycsICcuL3RvYXN0LXRva2Vucy5zY3NzJ10sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS10b2FzdCcsXG4gICAgICAgICdbY2xhc3NdJzogJ3RvYXN0U3R5bGUnLFxuICAgICAgICAnW2NsYXNzLmticS10b2FzdF9kaXNtaXNzaWJsZV0nOiAnZGF0YS5jbG9zZUJ1dHRvbicsXG4gICAgICAgICdbQHN0YXRlXSc6ICdhbmltYXRpb25TdGF0ZScsXG4gICAgICAgICcoQHN0YXRlLnN0YXJ0KSc6ICdvbkFuaW1hdGlvbigkZXZlbnQpJyxcbiAgICAgICAgJyhAc3RhdGUuZG9uZSknOiAnb25BbmltYXRpb24oJGV2ZW50KScsXG5cbiAgICAgICAgJyhtb3VzZWVudGVyKSc6ICdob3ZlcmVkLm5leHQodHJ1ZSknLFxuICAgICAgICAnKG1vdXNlbGVhdmUpJzogJ2hvdmVyZWQubmV4dChmYWxzZSknLFxuXG4gICAgICAgICcoa2V5ZG93bi5lc2MpJzogJ2Nsb3NlKCknXG4gICAgfSxcbiAgICBhbmltYXRpb25zOiBba2JxVG9hc3RBbmltYXRpb25zLnRvYXN0U3RhdGVdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgS2JxVG9hc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIHRoZW1lUGFsZXR0ZSA9IFRoZW1lUGFsZXR0ZTtcblxuICAgIGFuaW1hdGlvblN0YXRlID0gJ3ZvaWQnO1xuXG4gICAgcmVhZG9ubHkgaG92ZXJlZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHJlYWRvbmx5IGZvY3VzZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAgIGlkID0gaWQrKztcbiAgICB0dGw7XG4gICAgZGVsYXk7XG5cbiAgICAkaW1wbGljaXQ7XG5cbiAgICBnZXQgdG9hc3RTdHlsZSgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIFtga2JxLXRvYXN0XyR7dGhpcy5kYXRhLnN0eWxlfWBdOiB0cnVlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZ2V0IGlzRm9jdXNlZE9ySG92ZXJlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG92ZXJlZC5nZXRWYWx1ZSgpIHx8IHRoaXMuZm9jdXNlZC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICByZWFkb25seSBkYXRhOiBLYnFUb2FzdERhdGEsXG4gICAgICAgIEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBLYnFUb2FzdFNlcnZpY2UpKSByZWFkb25seSBzZXJ2aWNlOiBLYnFUb2FzdFNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIGZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yXG4gICAgKSB7XG4gICAgICAgIHRoaXMuJGltcGxpY2l0ID0gdGhpcztcblxuICAgICAgICB0aGlzLmRhdGEuc3R5bGUgPSB0aGlzLmRhdGEuc3R5bGUgfHwgS2JxVG9hc3RTdHlsZS5Db250cmFzdDtcbiAgICAgICAgdGhpcy5kYXRhLmljb24gPSB0aGlzLmRhdGEuaWNvbiAhPT0gdW5kZWZpbmVkID8gdGhpcy5kYXRhLmljb24gOiB0cnVlO1xuICAgICAgICB0aGlzLmRhdGEuaWNvbkNsYXNzID0gdGhpcy5kYXRhLmljb25DbGFzcyB8fCB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuZGF0YS5jbG9zZUJ1dHRvbiA9IHRoaXMuZGF0YS5jbG9zZUJ1dHRvbiAhPT0gdW5kZWZpbmVkID8gdGhpcy5kYXRhLmNsb3NlQnV0dG9uIDogdHJ1ZTtcblxuICAgICAgICB0aGlzLmFuaW1hdGlvblN0YXRlID0gJ3Zpc2libGUnO1xuXG4gICAgICAgIHRoaXMucnVuRm9jdXNNb25pdG9yKCk7XG5cbiAgICAgICAgdGhpcy5ob3ZlcmVkLnN1YnNjcmliZSh0aGlzLnNlcnZpY2UuaG92ZXJlZCk7XG4gICAgICAgIHRoaXMuZm9jdXNlZC5zdWJzY3JpYmUodGhpcy5zZXJ2aWNlLmZvY3VzZWQpO1xuXG4gICAgICAgIG1lcmdlKHRoaXMuaG92ZXJlZCwgdGhpcy5mb2N1c2VkKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCgpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50dGwgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMudHRsID0gdGhpcy50dGwgPCB0aGlzLmRlbGF5ID8gdGhpcy5kZWxheSA6IHRoaXMudHRsO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuc3RvcEZvY3VzTW9uaXRvcigpO1xuXG4gICAgICAgIHRoaXMuaG92ZXJlZC5uZXh0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5mb2N1c2VkLm5leHQoZmFsc2UpO1xuICAgIH1cblxuICAgIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlcnZpY2UuaGlkZSh0aGlzLmlkKTtcbiAgICB9XG5cbiAgICBpc1RlbXBsYXRlUmVmKHZhbHVlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmO1xuICAgIH1cblxuICAgIG9uQW5pbWF0aW9uKCRldmVudDogQW5pbWF0aW9uRXZlbnQpIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmFuaW1hdGlvbi5uZXh0KCRldmVudCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBydW5Gb2N1c01vbml0b3IoKSB7XG4gICAgICAgIHRoaXMuZm9jdXNNb25pdG9yXG4gICAgICAgICAgICAubW9uaXRvcih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdHJ1ZSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKG9yaWdpbjogRm9jdXNPcmlnaW4pID0+IHRoaXMuZm9jdXNlZC5uZXh0KCEhb3JpZ2luKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdG9wRm9jdXNNb25pdG9yKCkge1xuICAgICAgICB0aGlzLmZvY3VzTW9uaXRvci5zdG9wTW9uaXRvcmluZyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgfVxufVxuIiwiQGlmIChkYXRhLmljb24pIHtcbiAgICA8ZGl2IGNsYXNzPVwia2JxLXRvYXN0X19pY29uLWNvbnRhaW5lciBsYXlvdXQtcm93IGxheW91dC1hbGlnbi1zdGFydC1zdGFydFwiPlxuICAgICAgICBAaWYgKGRhdGEuaWNvbiA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgQHN3aXRjaCAoZGF0YS5zdHlsZSkge1xuICAgICAgICAgICAgICAgIEBjYXNlICgnY29udHJhc3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgICAgICBrYnEtaWNvbj1cImticS1pbmZvLWNpcmNsZV8xNlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImticS10b2FzdF9faWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiJGFueShkYXRhLnN0eWxlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJkYXRhLmljb25DbGFzc1wiXG4gICAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBjYXNlICgnc3VjY2VzcycpIHtcbiAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICAgIGticS1pY29uPVwia2JxLWNoZWNrLWNpcmNsZV8xNlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImticS10b2FzdF9faWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiJGFueShkYXRhLnN0eWxlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJkYXRhLmljb25DbGFzc1wiXG4gICAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBjYXNlICgnd2FybmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICAgIGticS1pY29uPVwia2JxLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlXzE2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwia2JxLXRvYXN0X19pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCIkYW55KGRhdGEuc3R5bGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImRhdGEuaWNvbkNsYXNzXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGNhc2UgKCdlcnJvcicpIHtcbiAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICAgIGticS1pY29uPVwia2JxLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlXzE2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwia2JxLXRvYXN0X19pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCIkYW55KGRhdGEuc3R5bGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImRhdGEuaWNvbkNsYXNzXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChpc1RlbXBsYXRlUmVmKGRhdGEuaWNvbikpIHtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiJGFueShkYXRhLmljb24pXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0IH1cIiAvPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG59XG5cbjxkaXYgY2xhc3M9XCJrYnEtdG9hc3RfX2NvbnRhaW5lclwiPlxuICAgIEBpZiAoZGF0YS50aXRsZSkge1xuICAgICAgICA8ZGl2IGticS10aXRsZSBjbGFzcz1cImticS10b2FzdF9fdGl0bGVcIiBbY2xhc3Mua2JxLXRvYXN0X190aXRsZV93aXRoLWNvbnRlbnRdPVwiZGF0YS5jYXB0aW9uIHx8IGRhdGEuY29udGVudFwiPlxuICAgICAgICAgICAgQGlmIChpc1RlbXBsYXRlUmVmKGRhdGEudGl0bGUpKSB7XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCIkYW55KGRhdGEudGl0bGUpXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0IH1cIiAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmICghaXNUZW1wbGF0ZVJlZihkYXRhLnRpdGxlKSkge1xuICAgICAgICAgICAgICAgIDxwPnt7IGRhdGEudGl0bGUgfX08L3A+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIEBpZiAoZGF0YS5jYXB0aW9uKSB7XG4gICAgICAgIDxkaXYga2JxLXRpdGxlIFtjbGFzcy5rYnEtdG9hc3RfX3RleHRdPVwiZGF0YS50aXRsZVwiIFtjbGFzcy5rYnEtdG9hc3RfX3RpdGxlXT1cIiFkYXRhLnRpdGxlXCI+XG4gICAgICAgICAgICBAaWYgKGlzVGVtcGxhdGVSZWYoZGF0YS5jYXB0aW9uKSkge1xuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiJGFueShkYXRhLmNhcHRpb24pXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0IH1cIiAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmICghaXNUZW1wbGF0ZVJlZihkYXRhLmNhcHRpb24pKSB7XG4gICAgICAgICAgICAgICAge3sgZGF0YS5jYXB0aW9uIH19XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIEBpZiAoZGF0YS5jb250ZW50KSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtdG9hc3RfX2NvbnRlbnRcIj5cbiAgICAgICAgICAgIEBpZiAoaXNUZW1wbGF0ZVJlZihkYXRhLmNvbnRlbnQpKSB7XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCIkYW55KGRhdGEuY29udGVudClcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQgfVwiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKCFpc1RlbXBsYXRlUmVmKGRhdGEuY29udGVudCkpIHtcbiAgICAgICAgICAgICAgICB7eyBkYXRhLmNvbnRlbnQgfX1cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgQGlmIChkYXRhLmFjdGlvbnMpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImticS10b2FzdF9fYWN0aW9uc1wiPlxuICAgICAgICAgICAgQGlmIChpc1RlbXBsYXRlUmVmKGRhdGEuYWN0aW9ucykpIHtcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRhbnkoZGF0YS5hY3Rpb25zKVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdCB9XCIgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoIWlzVGVtcGxhdGVSZWYoZGF0YS5hY3Rpb25zKSkge1xuICAgICAgICAgICAgICAgIHt7IGRhdGEuYWN0aW9ucyB9fVxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICB9XG48L2Rpdj5cblxuQGlmIChkYXRhLmNsb3NlQnV0dG9uKSB7XG4gICAgPGRpdj5cbiAgICAgICAgQGlmIChkYXRhLmNsb3NlQnV0dG9uID09PSB0cnVlKSB7XG4gICAgICAgICAgICA8aSBrYnEtaWNvbi1idXR0b249XCJrYnEteG1hcmstc18xNlwiIGticS10b2FzdC1jbG9zZS1idXR0b24gKGNsaWNrKT1cImNsb3NlKClcIj48L2k+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChpc1RlbXBsYXRlUmVmKGRhdGEuY2xvc2VCdXR0b24pKSB7XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRhbnkoZGF0YS5jbG9zZUJ1dHRvbilcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQgfVwiIC8+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbn1cbiJdfQ==