@taiga-ui/core 2.52.0 → 2.54.1

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/bundles/taiga-ui-core-components-data-list.umd.js +1 -0
  2. package/bundles/taiga-ui-core-components-data-list.umd.js.map +1 -1
  3. package/bundles/taiga-ui-core-components-data-list.umd.min.js.map +1 -1
  4. package/bundles/taiga-ui-core-components-dialog.umd.js +3 -2
  5. package/bundles/taiga-ui-core-components-dialog.umd.js.map +1 -1
  6. package/bundles/taiga-ui-core-components-dialog.umd.min.js +1 -1
  7. package/bundles/taiga-ui-core-components-dialog.umd.min.js.map +1 -1
  8. package/bundles/taiga-ui-core-components-expand.umd.js +1 -1
  9. package/bundles/taiga-ui-core-components-expand.umd.js.map +1 -1
  10. package/bundles/taiga-ui-core-components-expand.umd.min.js +1 -1
  11. package/bundles/taiga-ui-core-components-expand.umd.min.js.map +1 -1
  12. package/bundles/taiga-ui-core-components-hints-host.umd.js +14 -20
  13. package/bundles/taiga-ui-core-components-hints-host.umd.js.map +1 -1
  14. package/bundles/taiga-ui-core-components-hints-host.umd.min.js +1 -1
  15. package/bundles/taiga-ui-core-components-hints-host.umd.min.js.map +1 -1
  16. package/bundles/taiga-ui-core-components-hosted-dropdown.umd.js +1 -1
  17. package/bundles/taiga-ui-core-components-hosted-dropdown.umd.js.map +1 -1
  18. package/bundles/taiga-ui-core-components-hosted-dropdown.umd.min.js +1 -1
  19. package/bundles/taiga-ui-core-components-hosted-dropdown.umd.min.js.map +1 -1
  20. package/bundles/taiga-ui-core-components-link.umd.js +1 -1
  21. package/bundles/taiga-ui-core-components-link.umd.min.js +1 -1
  22. package/bundles/taiga-ui-core-components-link.umd.min.js.map +1 -1
  23. package/bundles/taiga-ui-core-components-primitive-textfield.umd.js +3 -3
  24. package/bundles/taiga-ui-core-components-primitive-textfield.umd.js.map +1 -1
  25. package/bundles/taiga-ui-core-components-primitive-textfield.umd.min.js +1 -1
  26. package/bundles/taiga-ui-core-components-primitive-textfield.umd.min.js.map +1 -1
  27. package/bundles/taiga-ui-core-components-root.umd.js +1 -1
  28. package/bundles/taiga-ui-core-components-root.umd.min.js +1 -1
  29. package/bundles/taiga-ui-core-components-root.umd.min.js.map +1 -1
  30. package/bundles/taiga-ui-core-components-scrollbar.umd.js +1 -0
  31. package/bundles/taiga-ui-core-components-scrollbar.umd.js.map +1 -1
  32. package/bundles/taiga-ui-core-components-scrollbar.umd.min.js.map +1 -1
  33. package/bundles/taiga-ui-core-constants.umd.js +1 -1
  34. package/bundles/taiga-ui-core-constants.umd.js.map +1 -1
  35. package/bundles/taiga-ui-core-constants.umd.min.js +1 -1
  36. package/bundles/taiga-ui-core-constants.umd.min.js.map +1 -1
  37. package/bundles/taiga-ui-core-directives-described-by.umd.js +1 -0
  38. package/bundles/taiga-ui-core-directives-described-by.umd.js.map +1 -1
  39. package/bundles/taiga-ui-core-directives-described-by.umd.min.js.map +1 -1
  40. package/bundles/taiga-ui-core-directives-mask-accessor.umd.js +1 -0
  41. package/bundles/taiga-ui-core-directives-mask-accessor.umd.js.map +1 -1
  42. package/bundles/taiga-ui-core-directives-mask-accessor.umd.min.js.map +1 -1
  43. package/bundles/taiga-ui-core-directives-textfield-controller.umd.js +15 -0
  44. package/bundles/taiga-ui-core-directives-textfield-controller.umd.js.map +1 -1
  45. package/bundles/taiga-ui-core-directives-textfield-controller.umd.min.js +1 -1
  46. package/bundles/taiga-ui-core-directives-textfield-controller.umd.min.js.map +1 -1
  47. package/bundles/taiga-ui-core-observables.umd.js +9 -3
  48. package/bundles/taiga-ui-core-observables.umd.js.map +1 -1
  49. package/bundles/taiga-ui-core-observables.umd.min.js +1 -1
  50. package/bundles/taiga-ui-core-observables.umd.min.js.map +1 -1
  51. package/bundles/taiga-ui-core-providers.umd.js +18 -0
  52. package/bundles/taiga-ui-core-providers.umd.js.map +1 -1
  53. package/bundles/taiga-ui-core-providers.umd.min.js +1 -1
  54. package/bundles/taiga-ui-core-providers.umd.min.js.map +1 -1
  55. package/bundles/taiga-ui-core-utils-dom.umd.js +26 -0
  56. package/bundles/taiga-ui-core-utils-dom.umd.js.map +1 -1
  57. package/bundles/taiga-ui-core-utils-dom.umd.min.js +1 -1
  58. package/bundles/taiga-ui-core-utils-dom.umd.min.js.map +1 -1
  59. package/bundles/taiga-ui-core-utils-format.umd.js +33 -0
  60. package/bundles/taiga-ui-core-utils-format.umd.js.map +1 -1
  61. package/bundles/taiga-ui-core-utils-format.umd.min.js +1 -1
  62. package/bundles/taiga-ui-core-utils-format.umd.min.js.map +1 -1
  63. package/bundles/taiga-ui-core-utils-mask.umd.js +12 -0
  64. package/bundles/taiga-ui-core-utils-mask.umd.js.map +1 -1
  65. package/bundles/taiga-ui-core-utils-mask.umd.min.js +1 -1
  66. package/bundles/taiga-ui-core-utils-mask.umd.min.js.map +1 -1
  67. package/bundles/taiga-ui-core-utils-miscellaneous.umd.js +30 -1
  68. package/bundles/taiga-ui-core-utils-miscellaneous.umd.js.map +1 -1
  69. package/bundles/taiga-ui-core-utils-miscellaneous.umd.min.js +1 -1
  70. package/bundles/taiga-ui-core-utils-miscellaneous.umd.min.js.map +1 -1
  71. package/bundles/taiga-ui-core-utils-polyfills.umd.js +1 -0
  72. package/bundles/taiga-ui-core-utils-polyfills.umd.js.map +1 -1
  73. package/bundles/taiga-ui-core-utils-polyfills.umd.min.js.map +1 -1
  74. package/components/data-list/taiga-ui-core-components-data-list.metadata.json +1 -1
  75. package/components/dialog/taiga-ui-core-components-dialog.metadata.json +1 -1
  76. package/components/expand/taiga-ui-core-components-expand.metadata.json +1 -1
  77. package/components/hints-host/hint-box/hint-box.component.d.ts +1 -0
  78. package/components/hints-host/hints-host.component.d.ts +4 -5
  79. package/components/hints-host/taiga-ui-core-components-hints-host.metadata.json +1 -1
  80. package/components/hosted-dropdown/taiga-ui-core-components-hosted-dropdown.metadata.json +1 -1
  81. package/components/link/taiga-ui-core-components-link.metadata.json +1 -1
  82. package/components/primitive-textfield/taiga-ui-core-components-primitive-textfield.metadata.json +1 -1
  83. package/components/root/taiga-ui-core-components-root.metadata.json +1 -1
  84. package/components/scrollbar/taiga-ui-core-components-scrollbar.metadata.json +1 -1
  85. package/constants/taiga-ui-core-constants.metadata.json +1 -1
  86. package/constants/version.d.ts +1 -1
  87. package/directives/described-by/taiga-ui-core-directives-described-by.metadata.json +1 -1
  88. package/directives/mask-accessor/taiga-ui-core-directives-mask-accessor.metadata.json +1 -1
  89. package/directives/textfield-controller/taiga-ui-core-directives-textfield-controller.metadata.json +1 -1
  90. package/directives/textfield-controller/textfield-controller.provider.d.ts +4 -0
  91. package/esm2015/components/data-list/option/option.component.js +2 -1
  92. package/esm2015/components/dialog/dialog.component.js +3 -3
  93. package/esm2015/components/dialog/dialog.providers.js +2 -1
  94. package/esm2015/components/expand/expand.component.js +2 -2
  95. package/esm2015/components/hints-host/hint-box/hint-box.component.js +8 -2
  96. package/esm2015/components/hints-host/hint-box/hint-box.module.js +3 -2
  97. package/esm2015/components/hints-host/hints-host.component.js +4 -9
  98. package/esm2015/components/hints-host/hints-host.module.js +3 -9
  99. package/esm2015/components/hosted-dropdown/hosted-dropdown.component.js +2 -2
  100. package/esm2015/components/link/link.component.js +1 -1
  101. package/esm2015/components/primitive-textfield/primitive-textfield.component.js +2 -2
  102. package/esm2015/components/primitive-textfield/value-decoration/value-decoration.component.js +3 -3
  103. package/esm2015/components/root/root.component.js +1 -1
  104. package/esm2015/components/scrollbar/scrollbar.component.js +2 -1
  105. package/esm2015/constants/version.js +2 -2
  106. package/esm2015/directives/described-by/described-by.providers.js +2 -1
  107. package/esm2015/directives/mask-accessor/mask-accessor.directive.js +2 -1
  108. package/esm2015/directives/textfield-controller/textfield-autocomplete.directive.js +2 -1
  109. package/esm2015/directives/textfield-controller/textfield-cleaner.directive.js +2 -1
  110. package/esm2015/directives/textfield-controller/textfield-controller.provider.js +6 -1
  111. package/esm2015/directives/textfield-controller/textfield-custom-content.directive.js +2 -1
  112. package/esm2015/directives/textfield-controller/textfield-example-text.directive.js +2 -1
  113. package/esm2015/directives/textfield-controller/textfield-input-mode.directive.js +2 -1
  114. package/esm2015/directives/textfield-controller/textfield-label-outside.directive.js +2 -1
  115. package/esm2015/directives/textfield-controller/textfield-max-length.directive.js +2 -1
  116. package/esm2015/directives/textfield-controller/textfield-size.directive.js +2 -1
  117. package/esm2015/directives/textfield-controller/textfield-type.directive.js +2 -1
  118. package/esm2015/interfaces/hint.js +1 -0
  119. package/esm2015/interfaces/index.js +1 -1
  120. package/esm2015/observables/smart-search.js +8 -3
  121. package/esm2015/providers/is-mobile-resolution.provider.js +6 -1
  122. package/esm2015/providers/mode.provider.js +6 -1
  123. package/esm2015/providers/watched-controller-provider-factory.js +6 -1
  124. package/esm2015/utils/dom/are-css-vars-supported.js +4 -1
  125. package/esm2015/utils/dom/check-fixed-position.js +6 -1
  126. package/esm2015/utils/dom/get-safe-area-size.js +4 -1
  127. package/esm2015/utils/dom/get-screen-width.js +6 -1
  128. package/esm2015/utils/dom/process-icon.js +6 -1
  129. package/esm2015/utils/format/capitalize-first-letter.js +6 -1
  130. package/esm2015/utils/format/capitalize.js +4 -1
  131. package/esm2015/utils/format/format-number.js +4 -1
  132. package/esm2015/utils/format/format-phone.js +4 -1
  133. package/esm2015/utils/format/get-fractional-part-padded.js +4 -1
  134. package/esm2015/utils/format/number-to-string-without-exp.js +4 -1
  135. package/esm2015/utils/format/other-decimal-symbol.js +6 -1
  136. package/esm2015/utils/format/pluralize.js +2 -1
  137. package/esm2015/utils/mask/masked-money-value-is-empty.js +6 -1
  138. package/esm2015/utils/mask/masked-number-string-to-number.js +6 -1
  139. package/esm2015/utils/miscellaneous/color-fallback.js +5 -2
  140. package/esm2015/utils/miscellaneous/get-border.js +6 -1
  141. package/esm2015/utils/miscellaneous/icons-path-factory.js +6 -1
  142. package/esm2015/utils/miscellaneous/is-editing-key.js +4 -1
  143. package/esm2015/utils/miscellaneous/is-presumed-html-string.js +6 -1
  144. package/esm2015/utils/miscellaneous/size-bigger.js +4 -1
  145. package/esm2015/utils/polyfills/inner-html.js +2 -1
  146. package/esm5/components/data-list/option/option.component.js +2 -1
  147. package/esm5/components/dialog/dialog.component.js +3 -3
  148. package/esm5/components/dialog/dialog.providers.js +2 -1
  149. package/esm5/components/expand/expand.component.js +2 -2
  150. package/esm5/components/hints-host/hint-box/hint-box.component.js +8 -2
  151. package/esm5/components/hints-host/hint-box/hint-box.module.js +3 -2
  152. package/esm5/components/hints-host/hints-host.component.js +4 -9
  153. package/esm5/components/hints-host/hints-host.module.js +3 -9
  154. package/esm5/components/hosted-dropdown/hosted-dropdown.component.js +2 -2
  155. package/esm5/components/link/link.component.js +1 -1
  156. package/esm5/components/primitive-textfield/primitive-textfield.component.js +2 -2
  157. package/esm5/components/primitive-textfield/value-decoration/value-decoration.component.js +3 -3
  158. package/esm5/components/root/root.component.js +1 -1
  159. package/esm5/components/scrollbar/scrollbar.component.js +2 -1
  160. package/esm5/constants/version.js +2 -2
  161. package/esm5/directives/described-by/described-by.providers.js +2 -1
  162. package/esm5/directives/mask-accessor/mask-accessor.directive.js +2 -1
  163. package/esm5/directives/textfield-controller/textfield-autocomplete.directive.js +2 -1
  164. package/esm5/directives/textfield-controller/textfield-cleaner.directive.js +2 -1
  165. package/esm5/directives/textfield-controller/textfield-controller.provider.js +6 -1
  166. package/esm5/directives/textfield-controller/textfield-custom-content.directive.js +2 -1
  167. package/esm5/directives/textfield-controller/textfield-example-text.directive.js +2 -1
  168. package/esm5/directives/textfield-controller/textfield-input-mode.directive.js +2 -1
  169. package/esm5/directives/textfield-controller/textfield-label-outside.directive.js +2 -1
  170. package/esm5/directives/textfield-controller/textfield-max-length.directive.js +2 -1
  171. package/esm5/directives/textfield-controller/textfield-size.directive.js +2 -1
  172. package/esm5/directives/textfield-controller/textfield-type.directive.js +2 -1
  173. package/esm5/interfaces/hint.js +1 -0
  174. package/esm5/interfaces/index.js +1 -1
  175. package/esm5/observables/smart-search.js +9 -4
  176. package/esm5/providers/is-mobile-resolution.provider.js +6 -1
  177. package/esm5/providers/mode.provider.js +6 -1
  178. package/esm5/providers/watched-controller-provider-factory.js +6 -1
  179. package/esm5/utils/dom/are-css-vars-supported.js +4 -1
  180. package/esm5/utils/dom/check-fixed-position.js +6 -1
  181. package/esm5/utils/dom/get-safe-area-size.js +4 -1
  182. package/esm5/utils/dom/get-screen-width.js +6 -1
  183. package/esm5/utils/dom/process-icon.js +6 -1
  184. package/esm5/utils/format/capitalize-first-letter.js +6 -1
  185. package/esm5/utils/format/capitalize.js +4 -1
  186. package/esm5/utils/format/format-number.js +4 -1
  187. package/esm5/utils/format/format-phone.js +4 -1
  188. package/esm5/utils/format/get-fractional-part-padded.js +4 -1
  189. package/esm5/utils/format/number-to-string-without-exp.js +4 -1
  190. package/esm5/utils/format/other-decimal-symbol.js +6 -1
  191. package/esm5/utils/format/pluralize.js +2 -1
  192. package/esm5/utils/mask/masked-money-value-is-empty.js +6 -1
  193. package/esm5/utils/mask/masked-number-string-to-number.js +6 -1
  194. package/esm5/utils/miscellaneous/color-fallback.js +5 -2
  195. package/esm5/utils/miscellaneous/get-border.js +6 -1
  196. package/esm5/utils/miscellaneous/icons-path-factory.js +6 -1
  197. package/esm5/utils/miscellaneous/is-editing-key.js +4 -1
  198. package/esm5/utils/miscellaneous/is-presumed-html-string.js +6 -1
  199. package/esm5/utils/miscellaneous/size-bigger.js +4 -1
  200. package/esm5/utils/polyfills/inner-html.js +2 -1
  201. package/fesm2015/taiga-ui-core-components-data-list.js +1 -0
  202. package/fesm2015/taiga-ui-core-components-data-list.js.map +1 -1
  203. package/fesm2015/taiga-ui-core-components-dialog.js +3 -2
  204. package/fesm2015/taiga-ui-core-components-dialog.js.map +1 -1
  205. package/fesm2015/taiga-ui-core-components-expand.js +1 -1
  206. package/fesm2015/taiga-ui-core-components-expand.js.map +1 -1
  207. package/fesm2015/taiga-ui-core-components-hints-host.js +11 -17
  208. package/fesm2015/taiga-ui-core-components-hints-host.js.map +1 -1
  209. package/fesm2015/taiga-ui-core-components-hosted-dropdown.js +1 -1
  210. package/fesm2015/taiga-ui-core-components-hosted-dropdown.js.map +1 -1
  211. package/fesm2015/taiga-ui-core-components-link.js +1 -1
  212. package/fesm2015/taiga-ui-core-components-primitive-textfield.js +3 -3
  213. package/fesm2015/taiga-ui-core-components-primitive-textfield.js.map +1 -1
  214. package/fesm2015/taiga-ui-core-components-root.js +1 -1
  215. package/fesm2015/taiga-ui-core-components-scrollbar.js +1 -0
  216. package/fesm2015/taiga-ui-core-components-scrollbar.js.map +1 -1
  217. package/fesm2015/taiga-ui-core-constants.js +1 -1
  218. package/fesm2015/taiga-ui-core-constants.js.map +1 -1
  219. package/fesm2015/taiga-ui-core-directives-described-by.js +1 -0
  220. package/fesm2015/taiga-ui-core-directives-described-by.js.map +1 -1
  221. package/fesm2015/taiga-ui-core-directives-mask-accessor.js +1 -0
  222. package/fesm2015/taiga-ui-core-directives-mask-accessor.js.map +1 -1
  223. package/fesm2015/taiga-ui-core-directives-textfield-controller.js +15 -1
  224. package/fesm2015/taiga-ui-core-directives-textfield-controller.js.map +1 -1
  225. package/fesm2015/taiga-ui-core-observables.js +8 -3
  226. package/fesm2015/taiga-ui-core-observables.js.map +1 -1
  227. package/fesm2015/taiga-ui-core-providers.js +16 -1
  228. package/fesm2015/taiga-ui-core-providers.js.map +1 -1
  229. package/fesm2015/taiga-ui-core-utils-dom.js +22 -1
  230. package/fesm2015/taiga-ui-core-utils-dom.js.map +1 -1
  231. package/fesm2015/taiga-ui-core-utils-format.js +27 -1
  232. package/fesm2015/taiga-ui-core-utils-format.js.map +1 -1
  233. package/fesm2015/taiga-ui-core-utils-mask.js +11 -1
  234. package/fesm2015/taiga-ui-core-utils-mask.js.map +1 -1
  235. package/fesm2015/taiga-ui-core-utils-miscellaneous.js +26 -2
  236. package/fesm2015/taiga-ui-core-utils-miscellaneous.js.map +1 -1
  237. package/fesm2015/taiga-ui-core-utils-polyfills.js +1 -0
  238. package/fesm2015/taiga-ui-core-utils-polyfills.js.map +1 -1
  239. package/fesm5/taiga-ui-core-components-data-list.js +1 -0
  240. package/fesm5/taiga-ui-core-components-data-list.js.map +1 -1
  241. package/fesm5/taiga-ui-core-components-dialog.js +3 -2
  242. package/fesm5/taiga-ui-core-components-dialog.js.map +1 -1
  243. package/fesm5/taiga-ui-core-components-expand.js +1 -1
  244. package/fesm5/taiga-ui-core-components-expand.js.map +1 -1
  245. package/fesm5/taiga-ui-core-components-hints-host.js +11 -17
  246. package/fesm5/taiga-ui-core-components-hints-host.js.map +1 -1
  247. package/fesm5/taiga-ui-core-components-hosted-dropdown.js +1 -1
  248. package/fesm5/taiga-ui-core-components-hosted-dropdown.js.map +1 -1
  249. package/fesm5/taiga-ui-core-components-link.js +1 -1
  250. package/fesm5/taiga-ui-core-components-primitive-textfield.js +3 -3
  251. package/fesm5/taiga-ui-core-components-primitive-textfield.js.map +1 -1
  252. package/fesm5/taiga-ui-core-components-root.js +1 -1
  253. package/fesm5/taiga-ui-core-components-scrollbar.js +1 -0
  254. package/fesm5/taiga-ui-core-components-scrollbar.js.map +1 -1
  255. package/fesm5/taiga-ui-core-constants.js +1 -1
  256. package/fesm5/taiga-ui-core-constants.js.map +1 -1
  257. package/fesm5/taiga-ui-core-directives-described-by.js +1 -0
  258. package/fesm5/taiga-ui-core-directives-described-by.js.map +1 -1
  259. package/fesm5/taiga-ui-core-directives-mask-accessor.js +1 -0
  260. package/fesm5/taiga-ui-core-directives-mask-accessor.js.map +1 -1
  261. package/fesm5/taiga-ui-core-directives-textfield-controller.js +15 -1
  262. package/fesm5/taiga-ui-core-directives-textfield-controller.js.map +1 -1
  263. package/fesm5/taiga-ui-core-observables.js +9 -4
  264. package/fesm5/taiga-ui-core-observables.js.map +1 -1
  265. package/fesm5/taiga-ui-core-providers.js +16 -1
  266. package/fesm5/taiga-ui-core-providers.js.map +1 -1
  267. package/fesm5/taiga-ui-core-utils-dom.js +22 -1
  268. package/fesm5/taiga-ui-core-utils-dom.js.map +1 -1
  269. package/fesm5/taiga-ui-core-utils-format.js +27 -1
  270. package/fesm5/taiga-ui-core-utils-format.js.map +1 -1
  271. package/fesm5/taiga-ui-core-utils-mask.js +11 -1
  272. package/fesm5/taiga-ui-core-utils-mask.js.map +1 -1
  273. package/fesm5/taiga-ui-core-utils-miscellaneous.js +26 -2
  274. package/fesm5/taiga-ui-core-utils-miscellaneous.js.map +1 -1
  275. package/fesm5/taiga-ui-core-utils-polyfills.js +1 -0
  276. package/fesm5/taiga-ui-core-utils-polyfills.js.map +1 -1
  277. package/interfaces/hint.d.ts +7 -0
  278. package/interfaces/index.d.ts +1 -0
  279. package/interfaces/taiga-ui-core-interfaces.metadata.json +1 -1
  280. package/observables/smart-search.d.ts +5 -1
  281. package/observables/taiga-ui-core-observables.metadata.json +1 -1
  282. package/package.json +5 -5
  283. package/providers/is-mobile-resolution.provider.d.ts +4 -0
  284. package/providers/mode.provider.d.ts +4 -0
  285. package/providers/taiga-ui-core-providers.metadata.json +1 -1
  286. package/providers/watched-controller-provider-factory.d.ts +4 -0
  287. package/styles/mixins/wrapper.less +5 -3
  288. package/utils/dom/are-css-vars-supported.d.ts +2 -0
  289. package/utils/dom/check-fixed-position.d.ts +4 -0
  290. package/utils/dom/get-safe-area-size.d.ts +2 -0
  291. package/utils/dom/get-screen-width.d.ts +4 -0
  292. package/utils/dom/process-icon.d.ts +4 -0
  293. package/utils/dom/taiga-ui-core-utils-dom.metadata.json +1 -1
  294. package/utils/format/capitalize-first-letter.d.ts +4 -0
  295. package/utils/format/capitalize.d.ts +2 -0
  296. package/utils/format/format-number.d.ts +2 -0
  297. package/utils/format/format-phone.d.ts +2 -0
  298. package/utils/format/get-fractional-part-padded.d.ts +2 -0
  299. package/utils/format/number-to-string-without-exp.d.ts +2 -0
  300. package/utils/format/other-decimal-symbol.d.ts +4 -0
  301. package/utils/format/taiga-ui-core-utils-format.metadata.json +1 -1
  302. package/utils/mask/masked-money-value-is-empty.d.ts +4 -0
  303. package/utils/mask/masked-number-string-to-number.d.ts +4 -0
  304. package/utils/mask/taiga-ui-core-utils-mask.metadata.json +1 -1
  305. package/utils/miscellaneous/color-fallback.d.ts +3 -1
  306. package/utils/miscellaneous/get-border.d.ts +4 -0
  307. package/utils/miscellaneous/icons-path-factory.d.ts +4 -0
  308. package/utils/miscellaneous/is-editing-key.d.ts +2 -0
  309. package/utils/miscellaneous/is-presumed-html-string.d.ts +4 -0
  310. package/utils/miscellaneous/size-bigger.d.ts +2 -0
  311. package/utils/miscellaneous/taiga-ui-core-utils-miscellaneous.metadata.json +1 -1
@@ -3,6 +3,7 @@ import { ChangeDetectionStrategy, Component, ElementRef, forwardRef, HostBinding
3
3
  import { ANIMATION_FRAME, WINDOW } from '@ng-web-apis/common';
4
4
  import { px, TuiDestroyService, tuiPure, tuiZonefree, } from '@taiga-ui/cdk';
5
5
  import { tuiFadeIn } from '@taiga-ui/core/animations';
6
+ import { TuiHintDirective } from '@taiga-ui/core/directives';
6
7
  import { TuiPointerHintDirective } from '@taiga-ui/core/directives/pointer-hint';
7
8
  import { TUI_ANIMATION_OPTIONS, TUI_MEDIA } from '@taiga-ui/core/tokens';
8
9
  import { tuiIsMobile } from '@taiga-ui/core/utils';
@@ -82,6 +83,11 @@ var TuiHintBoxComponent = /** @class */ (function () {
82
83
  enumerable: true,
83
84
  configurable: true
84
85
  });
86
+ TuiHintBoxComponent.prototype.onHovered = function (hovered) {
87
+ if (this.hint instanceof TuiHintDirective) {
88
+ this.hint.componentHovered$.next(hovered);
89
+ }
90
+ };
85
91
  /**
86
92
  * Calculates wrapper position.
87
93
  * Styles are set directly to avoid visual shake of element
@@ -251,7 +257,7 @@ var TuiHintBoxComponent = /** @class */ (function () {
251
257
  TuiHintBoxComponent = __decorate([
252
258
  Component({
253
259
  selector: 'tui-hint-box[hint]',
254
- template: "<!-- @bad TODO: Refactor to use this arrow in all cases -->\n<div\n *ngIf=\"isMobile\"\n #arrow\n class=\"t-arrow\"\n></div>\n<div\n automation-id=\"tui-hint-box__tooltip\"\n polymorpheus-outlet\n class=\"t-tooltip\"\n [content]=\"hint.content\"\n>\n <ng-template let-text>\n <span class=\"t-text\">{{ text }}</span>\n </ng-template>\n</div>\n",
260
+ template: "<!-- @bad TODO: Refactor to use this arrow in all cases -->\n<div\n *ngIf=\"isMobile\"\n #arrow\n class=\"t-arrow\"\n></div>\n<div\n automation-id=\"tui-hint-box__tooltip\"\n polymorpheus-outlet\n class=\"t-tooltip\"\n [content]=\"hint.content\"\n (tuiHoveredChange)=\"onHovered($event)\"\n>\n <ng-template let-text>\n <span class=\"t-text\">{{ text }}</span>\n </ng-template>\n</div>\n",
255
261
  changeDetection: ChangeDetectionStrategy.OnPush,
256
262
  providers: [TuiDestroyService],
257
263
  animations: [tuiFadeIn],
@@ -270,4 +276,4 @@ var TuiHintBoxComponent = /** @class */ (function () {
270
276
  return TuiHintBoxComponent;
271
277
  }());
272
278
  export { TuiHintBoxComponent };
273
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGludC1ib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9oaW50cy1ob3N0LyIsInNvdXJjZXMiOlsiaGludC1ib3gvaGludC1ib3guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sTUFBTSxFQUNOLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZUFBZSxFQUFFLE1BQU0sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFDSCxFQUFFLEVBRUYsaUJBQWlCLEVBQ2pCLE9BQU8sRUFDUCxXQUFXLEdBQ2QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3BELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBRS9FLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxTQUFTLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUV2RSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDOUQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNoQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFekMsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsSUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0FBQ2hCLElBQU0sWUFBWSxHQUFHLENBQUMsQ0FBQztBQUN2QixJQUFNLFlBQVksR0FBRyxFQUFFLENBQUM7QUFDeEIsSUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO0FBQ3ZC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QTBCM0Q7UUFGQyxPQUFPO1FBQ1AsV0FBVyxDQUFDLG9CQUFvQixDQUFDOzREQUdqQztJQUdEO1FBREMsV0FBVyxDQUFDLGdCQUFnQixDQUFDO21EQUc3QjtJQXRDUSxtQkFBbUI7UUFSL0IsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLG9CQUFvQjtZQUM5QixxWUFBdUM7WUFFdkMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07WUFDL0MsU0FBUyxFQUFFLENBQUMsaUJBQWlCLENBQUM7WUFDOUIsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDOztTQUMxQixDQUFDO1FBU08sV0FBQSxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUE7UUFDdkIsV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUN6QixXQUFBLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNkLFdBQUEsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUE7UUFDN0IsV0FBQSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDbEIsV0FBQSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDZCxXQUFBLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUNqQixXQUFBLE1BQU0sQ0FBQyxVQUFVLENBQUMsY0FBTSxPQUFBLHFCQUFxQixFQUFyQixDQUFxQixDQUFDLENBQUMsQ0FBQTtRQUUvQyxXQUFBLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO09BakJ4QixtQkFBbUIsQ0F5Ti9CO0lBQUQsMEJBQUM7Q0FBQSxBQXpORCxJQXlOQztTQXpOWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FuaW1hdGlvbk9wdGlvbnN9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBOZ1pvbmUsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QU5JTUFUSU9OX0ZSQU1FLCBXSU5ET1d9IGZyb20gJ0BuZy13ZWItYXBpcy9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBweCxcbiAgICBUdWlDb250ZXh0V2l0aEltcGxpY2l0LFxuICAgIFR1aURlc3Ryb3lTZXJ2aWNlLFxuICAgIHR1aVB1cmUsXG4gICAgdHVpWm9uZWZyZWUsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtBYnN0cmFjdFR1aUhpbnR9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2Fic3RyYWN0JztcbmltcG9ydCB7dHVpRmFkZUlufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9hbmltYXRpb25zJztcbmltcG9ydCB7VHVpUG9pbnRlckhpbnREaXJlY3RpdmV9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvcG9pbnRlci1oaW50JztcbmltcG9ydCB7VHVpTWVkaWF9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtUVUlfQU5JTUFUSU9OX09QVElPTlMsIFRVSV9NRURJQX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdG9rZW5zJztcbmltcG9ydCB7VHVpRGlyZWN0aW9uLCBUdWlIaW50TW9kZVR9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3R5cGVzJztcbmltcG9ydCB7dHVpSXNNb2JpbGV9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3V0aWxzJztcbmltcG9ydCB7UE9MWU1PUlBIRVVTX0NPTlRFWFR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHt0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtUdWlIaW50c0hvc3RDb21wb25lbnR9IGZyb20gJy4uL2hpbnRzLWhvc3QuY29tcG9uZW50JztcblxuY29uc3QgU1BBQ0UgPSA4O1xuY29uc3QgQk9SREVSX1dJRFRIID0gMTtcbmNvbnN0IExFRlRfUEFERElORyA9IDE2O1xuY29uc3QgVE9QX1BBRERJTkcgPSAxMjtcbmNvbnN0IEFSUk9XX1NJWkUgPSA4O1xuY29uc3QgQVJST1dfT0ZGU0VUID0gMTY7XG5jb25zdCBBUlJPV0hFQURfT0ZGU0VUID0gQVJST1dfT0ZGU0VUICsgKEFSUk9XX1NJWkUgKiBNYXRoLnNxcnQoMikpIC8gMjtcbmNvbnN0IHJldmVyc2VEaXJlY3Rpb25zVmVydGljYWw6IHtba2V5IGluIFR1aURpcmVjdGlvbl06IFR1aURpcmVjdGlvbn0gPSB7XG4gICAgJ3RvcC1sZWZ0JzogJ2JvdHRvbS1sZWZ0JyxcbiAgICAndG9wLXJpZ2h0JzogJ2JvdHRvbS1yaWdodCcsXG4gICAgJ2JvdHRvbS1sZWZ0JzogJ3RvcC1sZWZ0JyxcbiAgICAnYm90dG9tLXJpZ2h0JzogJ3RvcC1yaWdodCcsXG4gICAgbGVmdDogJ3JpZ2h0JyxcbiAgICByaWdodDogJ2xlZnQnLFxuICAgICd0b3AtbWlkZGxlJzogJ2JvdHRvbS1taWRkbGUnLFxuICAgICdib3R0b20tbWlkZGxlJzogJ3RvcC1taWRkbGUnLFxufTtcbmNvbnN0IHJldmVyc2VEaXJlY3Rpb25zSG9yaXpvbnRhbDoge1trZXkgaW4gVHVpRGlyZWN0aW9uXTogVHVpRGlyZWN0aW9ufSA9IHtcbiAgICAndG9wLWxlZnQnOiAndG9wLXJpZ2h0JyxcbiAgICAndG9wLXJpZ2h0JzogJ3RvcC1sZWZ0JyxcbiAgICAnYm90dG9tLWxlZnQnOiAnYm90dG9tLXJpZ2h0JyxcbiAgICAnYm90dG9tLXJpZ2h0JzogJ2JvdHRvbS1sZWZ0JyxcbiAgICBsZWZ0OiAncmlnaHQnLFxuICAgIHJpZ2h0OiAnbGVmdCcsXG4gICAgJ3RvcC1taWRkbGUnOiAndG9wLW1pZGRsZScsXG4gICAgJ2JvdHRvbS1taWRkbGUnOiAnYm90dG9tLW1pZGRsZScsXG59O1xuXG4vLyBUT0RPOiBjb25zaWRlciBhYnN0cmFjdGluZyBVSSBhbmQgbW92ZSB0byBDREssIHNwbGl0IGhpbnQgYW5kIG92ZXJmbG93XG4vLyBBbWJpZW50IHR5cGUgY2Fubm90IGJlIHVzZWQgd2l0aG91dCBkeW5hbWljIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzIzMzk1XG4vLyBAZHluYW1pY1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktaGludC1ib3hbaGludF0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9oaW50LWJveC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9oaW50LWJveC5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbVHVpRGVzdHJveVNlcnZpY2VdLFxuICAgIGFuaW1hdGlvbnM6IFt0dWlGYWRlSW5dLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlIaW50Qm94Q29tcG9uZW50IHtcbiAgICBAVmlld0NoaWxkKCdhcnJvdycpXG4gICAgcHJpdmF0ZSByZWFkb25seSBhcnJvdz86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQEhvc3RCaW5kaW5nKCdAdHVpRmFkZUluJylcbiAgICByZWFkb25seSBhbmltYXRpb24gPSB7dmFsdWU6ICcnLCAuLi50aGlzLm9wdGlvbnN9IGFzIGNvbnN0O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoQU5JTUFUSU9OX0ZSQU1FKSBhbmltYXRpb25GcmFtZSQ6IE9ic2VydmFibGU8bnVtYmVyPixcbiAgICAgICAgQEluamVjdChUdWlEZXN0cm95U2VydmljZSkgZGVzdHJveSQ6IE9ic2VydmFibGU8dm9pZD4sXG4gICAgICAgIEBJbmplY3QoTmdab25lKSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgQEluamVjdChUVUlfQU5JTUFUSU9OX09QVElPTlMpIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogQW5pbWF0aW9uT3B0aW9ucyxcbiAgICAgICAgQEluamVjdChFbGVtZW50UmVmKSBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KFdJTkRPVykgcHJpdmF0ZSByZWFkb25seSB3aW5kb3dSZWY6IFdpbmRvdyxcbiAgICAgICAgQEluamVjdChUVUlfTUVESUEpIHByaXZhdGUgcmVhZG9ubHkgbWVkaWE6IFR1aU1lZGlhLFxuICAgICAgICBASW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gVHVpSGludHNIb3N0Q29tcG9uZW50KSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBoaW50c0hvc3Q6IFR1aUhpbnRzSG9zdENvbXBvbmVudCxcbiAgICAgICAgQEluamVjdChQT0xZTU9SUEhFVVNfQ09OVEVYVClcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjb250ZXh0OiBUdWlDb250ZXh0V2l0aEltcGxpY2l0PEFic3RyYWN0VHVpSGludD4sXG4gICAgKSB7XG4gICAgICAgIGFuaW1hdGlvbkZyYW1lJFxuICAgICAgICAgICAgLnBpcGUodHVpWm9uZWZyZWUobmdab25lKSwgdGFrZVVudGlsKGRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jYWxjdWxhdGVQb3NpdGlvbigpKTtcbiAgICB9XG5cbiAgICBnZXQgaGludCgpOiBBYnN0cmFjdFR1aUhpbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZXh0LiRpbXBsaWNpdDtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX3VudG91Y2hhYmxlJylcbiAgICBnZXQgaXNVbnRvdWNoYWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGludCBpbnN0YW5jZW9mIFR1aVBvaW50ZXJIaW50RGlyZWN0aXZlO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLW1vZGUnKVxuICAgIGdldCBtb2RlKCk6IFR1aUhpbnRNb2RlVCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5oaW50Lm1vZGU7XG4gICAgfVxuXG4gICAgZ2V0IGlzTW9iaWxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHVpSXNNb2JpbGUodGhpcy53aW5kb3dSZWYsIHRoaXMubWVkaWEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgd3JhcHBlciBwb3NpdGlvbi5cbiAgICAgKiBTdHlsZXMgYXJlIHNldCBkaXJlY3RseSB0byBhdm9pZCB2aXN1YWwgc2hha2Ugb2YgZWxlbWVudFxuICAgICAqL1xuICAgIHByaXZhdGUgY2FsY3VsYXRlUG9zaXRpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm1vZGUgIT09ICdvdmVyZmxvdycpIHtcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlQ29vcmRpbmF0ZXMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2V0T3ZlcmZsb3dTdHlsZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlQ29vcmRpbmF0ZXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzTW9iaWxlKSB7XG4gICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZU1vYmlsZUNvb3JkaW5hdGVzKCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGhvc3RSZWN0ID0gdGhpcy5oaW50LmdldEVsZW1lbnRDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IHBvcnRhbFJlY3QgPSB0aGlzLmhpbnRzSG9zdC5jbGllbnRSZWN0O1xuICAgICAgICBjb25zdCB0b29sdGlwID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHtzdHlsZX0gPSB0b29sdGlwO1xuICAgICAgICBjb25zdCB0b29sdGlwUmVjdCA9IHRvb2x0aXAuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IGlzSG9zdExvbmcgPSBob3N0UmVjdC53aWR0aCA+IEFSUk9XSEVBRF9PRkZTRVQgKiAyO1xuICAgICAgICBjb25zdCBkaXJlY3Rpb25zOiBUdWlEaXJlY3Rpb25bXSA9IFtcbiAgICAgICAgICAgICdsZWZ0JyxcbiAgICAgICAgICAgICdyaWdodCcsXG4gICAgICAgICAgICAnYm90dG9tLWxlZnQnLFxuICAgICAgICAgICAgJ2JvdHRvbS1yaWdodCcsXG4gICAgICAgICAgICAnYm90dG9tLW1pZGRsZScsXG4gICAgICAgICAgICAndG9wLWxlZnQnLFxuICAgICAgICAgICAgJ3RvcC1yaWdodCcsXG4gICAgICAgICAgICAndG9wLW1pZGRsZScsXG4gICAgICAgIF07XG5cbiAgICAgICAgbGV0IHRvcCA9IDA7XG4gICAgICAgIGxldCBsZWZ0ID0gMDtcbiAgICAgICAgbGV0IHtkaXJlY3Rpb259ID0gdGhpcy5oaW50O1xuXG4gICAgICAgIGNvbnN0IGhvcml6b250YWxUb3AgPVxuICAgICAgICAgICAgaG9zdFJlY3QudG9wICsgaG9zdFJlY3QuaGVpZ2h0IC8gMiAtIHRvb2x0aXBSZWN0LmhlaWdodCAvIDIgLSBwb3J0YWxSZWN0LnRvcDtcbiAgICAgICAgY29uc3QgaG9yaXpvbnRhbExlZnQgPVxuICAgICAgICAgICAgaG9zdFJlY3QubGVmdCAtIHRvb2x0aXBSZWN0LndpZHRoIC0gU1BBQ0UgLSBwb3J0YWxSZWN0LmxlZnQ7XG4gICAgICAgIGNvbnN0IGhvcml6b250YWxSaWdodCA9IGhvc3RSZWN0LmxlZnQgKyBob3N0UmVjdC53aWR0aCArIFNQQUNFIC0gcG9ydGFsUmVjdC5sZWZ0O1xuICAgICAgICBjb25zdCB2ZXJ0aWNhbEJvdHRvbSA9IGhvc3RSZWN0LmJvdHRvbSArIFNQQUNFIC0gcG9ydGFsUmVjdC50b3A7XG4gICAgICAgIGNvbnN0IHZlcnRpY2FsVG9wID0gaG9zdFJlY3QudG9wIC0gdG9vbHRpcFJlY3QuaGVpZ2h0IC0gU1BBQ0UgLSBwb3J0YWxSZWN0LnRvcDtcbiAgICAgICAgY29uc3QgdmVydGljYWxSaWdodCA9IGlzSG9zdExvbmdcbiAgICAgICAgICAgID8gaG9zdFJlY3QubGVmdCAtIHBvcnRhbFJlY3QubGVmdFxuICAgICAgICAgICAgOiBob3N0UmVjdC5sZWZ0ICsgaG9zdFJlY3Qud2lkdGggLyAyIC0gQVJST1dIRUFEX09GRlNFVCAtIHBvcnRhbFJlY3QubGVmdDtcbiAgICAgICAgY29uc3QgdmVydGljYWxMZWZ0ID0gaXNIb3N0TG9uZ1xuICAgICAgICAgICAgPyBob3N0UmVjdC5sZWZ0IC0gdG9vbHRpcFJlY3Qud2lkdGggKyBob3N0UmVjdC53aWR0aCAtIHBvcnRhbFJlY3QubGVmdFxuICAgICAgICAgICAgOiBob3N0UmVjdC5sZWZ0IC1cbiAgICAgICAgICAgICAgdG9vbHRpcFJlY3Qud2lkdGggK1xuICAgICAgICAgICAgICBob3N0UmVjdC53aWR0aCAvIDIgK1xuICAgICAgICAgICAgICBBUlJPV0hFQURfT0ZGU0VUIC1cbiAgICAgICAgICAgICAgcG9ydGFsUmVjdC5sZWZ0O1xuICAgICAgICBjb25zdCB2ZXJ0aWNhbE1pZGRsZSA9XG4gICAgICAgICAgICBob3N0UmVjdC5sZWZ0IC0gdG9vbHRpcFJlY3Qud2lkdGggLyAyICsgaG9zdFJlY3Qud2lkdGggLyAyIC0gcG9ydGFsUmVjdC5sZWZ0O1xuXG4gICAgICAgIGRpcmVjdGlvbnMuc3BsaWNlKGRpcmVjdGlvbnMuaW5kZXhPZihkaXJlY3Rpb24pLCAxKTtcblxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc3RhbnQtY29uZGl0aW9uXG4gICAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGRpcmVjdGlvbikge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgICAgICAgICAgICB0b3AgPSBob3Jpem9udGFsVG9wO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0ID0gaG9yaXpvbnRhbExlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgICAgICAgICAgICAgdG9wID0gaG9yaXpvbnRhbFRvcDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdCA9IGhvcml6b250YWxSaWdodDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAndG9wLXJpZ2h0JzpcbiAgICAgICAgICAgICAgICAgICAgdG9wID0gdmVydGljYWxUb3A7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQgPSB2ZXJ0aWNhbFJpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICd0b3AtbGVmdCc6XG4gICAgICAgICAgICAgICAgICAgIHRvcCA9IHZlcnRpY2FsVG9wO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0ID0gdmVydGljYWxMZWZ0O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdib3R0b20tcmlnaHQnOlxuICAgICAgICAgICAgICAgICAgICB0b3AgPSB2ZXJ0aWNhbEJvdHRvbTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdCA9IHZlcnRpY2FsUmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2JvdHRvbS1sZWZ0JzpcbiAgICAgICAgICAgICAgICAgICAgdG9wID0gdmVydGljYWxCb3R0b207XG4gICAgICAgICAgICAgICAgICAgIGxlZnQgPSB2ZXJ0aWNhbExlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2JvdHRvbS1taWRkbGUnOlxuICAgICAgICAgICAgICAgICAgICB0b3AgPSB2ZXJ0aWNhbEJvdHRvbTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdCA9IHZlcnRpY2FsTWlkZGxlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICd0b3AtbWlkZGxlJzpcbiAgICAgICAgICAgICAgICAgICAgdG9wID0gdmVydGljYWxUb3A7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQgPSB2ZXJ0aWNhbE1pZGRsZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHZlcnRpY2FsRml0ID1cbiAgICAgICAgICAgICAgICB0b3AgKyBwb3J0YWxSZWN0LnRvcCA+IFNQQUNFICYmXG4gICAgICAgICAgICAgICAgdG9wICsgdG9vbHRpcFJlY3QuaGVpZ2h0ICsgU1BBQ0UgKyBwb3J0YWxSZWN0LnRvcCA8XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud2luZG93UmVmLmlubmVySGVpZ2h0O1xuICAgICAgICAgICAgY29uc3QgaG9yaXpvbnRhbEZpdCA9XG4gICAgICAgICAgICAgICAgbGVmdCA+IFNQQUNFICYmXG4gICAgICAgICAgICAgICAgbGVmdCArIHRvb2x0aXBSZWN0LndpZHRoICsgU1BBQ0UgKyBwb3J0YWxSZWN0LmxlZnQgPCBwb3J0YWxSZWN0LndpZHRoO1xuXG4gICAgICAgICAgICBpZiAoZGlyZWN0aW9ucy5sZW5ndGggPT09IDAgfHwgKHZlcnRpY2FsRml0ICYmIGhvcml6b250YWxGaXQpKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGRpcmVjdGlvbiA9IHZlcnRpY2FsRml0XG4gICAgICAgICAgICAgICAgPyByZXZlcnNlRGlyZWN0aW9uc0hvcml6b250YWxbZGlyZWN0aW9uXVxuICAgICAgICAgICAgICAgIDogcmV2ZXJzZURpcmVjdGlvbnNWZXJ0aWNhbFtkaXJlY3Rpb25dO1xuICAgICAgICAgICAgZGlyZWN0aW9uID1cbiAgICAgICAgICAgICAgICBkaXJlY3Rpb25zLnNwbGljZShkaXJlY3Rpb25zLmluZGV4T2YoZGlyZWN0aW9uKSwgMSlbMF0gfHwgZGlyZWN0aW9uO1xuICAgICAgICB9XG5cbiAgICAgICAgc3R5bGUudG9wID0gcHgodG9wKTtcbiAgICAgICAgc3R5bGUubGVmdCA9IHB4KGxlZnQpO1xuXG4gICAgICAgIHRvb2x0aXAuc2V0QXR0cmlidXRlKCdkYXRhLXR1aS1ob3N0LWRpcmVjdGlvbicsIGRpcmVjdGlvbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVNb2JpbGVDb29yZGluYXRlcygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaG9zdFJlY3QgPSB0aGlzLmhpbnQuZ2V0RWxlbWVudENsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgcG9ydGFsUmVjdCA9IHRoaXMuaGludHNIb3N0LmNsaWVudFJlY3Q7XG4gICAgICAgIGNvbnN0IHRvb2x0aXAgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3Qge3N0eWxlfSA9IHRvb2x0aXA7XG4gICAgICAgIGNvbnN0IHRvb2x0aXBSZWN0ID0gdG9vbHRpcC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgdmVydGljYWxUb3AgPSBob3N0UmVjdC50b3AgLSB0b29sdGlwUmVjdC5oZWlnaHQgLSBTUEFDRSAtIHBvcnRhbFJlY3QudG9wO1xuICAgICAgICBjb25zdCB2ZXJ0aWNhbEJvdHRvbSA9IGhvc3RSZWN0LmJvdHRvbSArIFNQQUNFIC0gcG9ydGFsUmVjdC50b3A7XG4gICAgICAgIGNvbnN0IHZlcnRpY2FsVG9wRml0ID1cbiAgICAgICAgICAgIHZlcnRpY2FsVG9wICsgcG9ydGFsUmVjdC50b3AgPiBTUEFDRSAmJlxuICAgICAgICAgICAgaG9zdFJlY3QudG9wIDwgdGhpcy53aW5kb3dSZWYuaW5uZXJIZWlnaHQ7XG4gICAgICAgIGNvbnN0IHZlcnRpY2FsQm90dG9tRml0ID1cbiAgICAgICAgICAgIGhvc3RSZWN0LmJvdHRvbSA+IDAgJiZcbiAgICAgICAgICAgIGhvc3RSZWN0LmJvdHRvbSArIDIgKiBTUEFDRSArIHRvb2x0aXBSZWN0LmhlaWdodCA8IHRoaXMud2luZG93UmVmLmlubmVySGVpZ2h0O1xuICAgICAgICBjb25zdCBkaXJlY3Rpb24gPVxuICAgICAgICAgICAgKHRoaXMuaGludC5kaXJlY3Rpb24uaW5jbHVkZXMoJ3RvcCcpICYmIHZlcnRpY2FsVG9wRml0KSB8fCAhdmVydGljYWxCb3R0b21GaXRcbiAgICAgICAgICAgICAgICA/ICd0b3AnXG4gICAgICAgICAgICAgICAgOiAnYm90dG9tJztcbiAgICAgICAgY29uc3QgYXR0ZW1wdGVkTGVmdCA9XG4gICAgICAgICAgICBwb3J0YWxSZWN0LmxlZnQgKyBob3N0UmVjdC5sZWZ0ICsgaG9zdFJlY3Qud2lkdGggLyAyIC0gdG9vbHRpcFJlY3Qud2lkdGggLyAyO1xuICAgICAgICBjb25zdCBsZWZ0ID0gTWF0aC5tYXgoXG4gICAgICAgICAgICBhdHRlbXB0ZWRMZWZ0ICsgdG9vbHRpcFJlY3Qud2lkdGggKyBTUEFDRSA+IHBvcnRhbFJlY3QucmlnaHRcbiAgICAgICAgICAgICAgICA/IHBvcnRhbFJlY3QucmlnaHQgLSBTUEFDRSAtIHRvb2x0aXBSZWN0LndpZHRoXG4gICAgICAgICAgICAgICAgOiBhdHRlbXB0ZWRMZWZ0LFxuICAgICAgICAgICAgU1BBQ0UgKiAyLFxuICAgICAgICApO1xuXG4gICAgICAgIHN0eWxlLmxlZnQgPSBweChsZWZ0KTtcbiAgICAgICAgc3R5bGUudG9wID0gZGlyZWN0aW9uID09PSAndG9wJyA/IHB4KHZlcnRpY2FsVG9wKSA6IHB4KHZlcnRpY2FsQm90dG9tKTtcblxuICAgICAgICBpZiAodGhpcy5hcnJvdykge1xuICAgICAgICAgICAgdGhpcy5hcnJvdy5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSBweChcbiAgICAgICAgICAgICAgICBob3N0UmVjdC5sZWZ0IDw9IFNQQUNFICogMiAmJiBob3N0UmVjdC53aWR0aCA+IEFSUk9XX09GRlNFVCAqIDJcbiAgICAgICAgICAgICAgICAgICAgPyBBUlJPV19PRkZTRVRcbiAgICAgICAgICAgICAgICAgICAgOiBob3N0UmVjdC5sZWZ0ICsgaG9zdFJlY3Qud2lkdGggLyAyIC0gbGVmdCAtIEFSUk9XX1NJWkUgLyAyLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRvb2x0aXAuc2V0QXR0cmlidXRlKCdkYXRhLXR1aS1ob3N0LWRpcmVjdGlvbicsIGRpcmVjdGlvbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRPdmVyZmxvd1N0eWxlcygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaG9zdFJlY3QgPSB0aGlzLmhpbnQuZ2V0RWxlbWVudENsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3Qge3N0eWxlfSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgIHN0eWxlLnRvcCA9IHB4KGhvc3RSZWN0LnRvcCAtIHdpbmRvdy5pbm5lckhlaWdodCAtIFRPUF9QQURESU5HIC0gQk9SREVSX1dJRFRIKTtcbiAgICAgICAgc3R5bGUubGVmdCA9IHB4KGhvc3RSZWN0LmxlZnQgLSBMRUZUX1BBRERJTkcgLSBCT1JERVJfV0lEVEgpO1xuICAgICAgICBzdHlsZS53aWR0aCA9IHB4KGhvc3RSZWN0LndpZHRoICsgTEVGVF9QQURESU5HICogMiArIEJPUkRFUl9XSURUSCAqIDIpO1xuICAgIH1cbn1cbiJdfQ==
279
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGludC1ib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9oaW50cy1ob3N0LyIsInNvdXJjZXMiOlsiaGludC1ib3gvaGludC1ib3guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sTUFBTSxFQUNOLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZUFBZSxFQUFFLE1BQU0sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFDSCxFQUFFLEVBRUYsaUJBQWlCLEVBQ2pCLE9BQU8sRUFDUCxXQUFXLEdBQ2QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBRS9FLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxTQUFTLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUV2RSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDOUQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNoQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFekMsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsSUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0FBQ2hCLElBQU0sWUFBWSxHQUFHLENBQUMsQ0FBQztBQUN2QixJQUFNLFlBQVksR0FBRyxF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IjpbImltcG9ydCB7QW5pbWF0aW9uT3B0aW9uc30gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5qZWN0LFxuICAgIE5nWm9uZSxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBTklNQVRJT05fRlJBTUUsIFdJTkRPV30gZnJvbSAnQG5nLXdlYi1hcGlzL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIHB4LFxuICAgIFR1aUNvbnRleHRXaXRoSW1wbGljaXQsXG4gICAgVHVpRGVzdHJveVNlcnZpY2UsXG4gICAgdHVpUHVyZSxcbiAgICB0dWlab25lZnJlZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge0Fic3RyYWN0VHVpSGludH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvYWJzdHJhY3QnO1xuaW1wb3J0IHt0dWlGYWRlSW59IGZyb20gJ0B0YWlnYS11aS9jb3JlL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtUdWlIaW50RGlyZWN0aXZlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzJztcbmltcG9ydCB7VHVpUG9pbnRlckhpbnREaXJlY3RpdmV9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvcG9pbnRlci1oaW50JztcbmltcG9ydCB7VHVpTWVkaWF9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtUVUlfQU5JTUFUSU9OX09QVElPTlMsIFRVSV9NRURJQX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdG9rZW5zJztcbmltcG9ydCB7VHVpRGlyZWN0aW9uLCBUdWlIaW50TW9kZVR9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3R5cGVzJztcbmltcG9ydCB7dHVpSXNNb2JpbGV9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3V0aWxzJztcbmltcG9ydCB7UE9MWU1PUlBIRVVTX0NPTlRFWFR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHt0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtUdWlIaW50c0hvc3RDb21wb25lbnR9IGZyb20gJy4uL2hpbnRzLWhvc3QuY29tcG9uZW50JztcblxuY29uc3QgU1BBQ0UgPSA4O1xuY29uc3QgQk9SREVSX1dJRFRIID0gMTtcbmNvbnN0IExFRlRfUEFERElORyA9IDE2O1xuY29uc3QgVE9QX1BBRERJTkcgPSAxMjtcbmNvbnN0IEFSUk9XX1NJWkUgPSA4O1xuY29uc3QgQVJST1dfT0ZGU0VUID0gMTY7XG5jb25zdCBBUlJPV0hFQURfT0ZGU0VUID0gQVJST1dfT0ZGU0VUICsgKEFSUk9XX1NJWkUgKiBNYXRoLnNxcnQoMikpIC8gMjtcbmNvbnN0IHJldmVyc2VEaXJlY3Rpb25zVmVydGljYWw6IHtba2V5IGluIFR1aURpcmVjdGlvbl06IFR1aURpcmVjdGlvbn0gPSB7XG4gICAgJ3RvcC1sZWZ0JzogJ2JvdHRvbS1sZWZ0JyxcbiAgICAndG9wLXJpZ2h0JzogJ2JvdHRvbS1yaWdodCcsXG4gICAgJ2JvdHRvbS1sZWZ0JzogJ3RvcC1sZWZ0JyxcbiAgICAnYm90dG9tLXJpZ2h0JzogJ3RvcC1yaWdodCcsXG4gICAgbGVmdDogJ3JpZ2h0JyxcbiAgICByaWdodDogJ2xlZnQnLFxuICAgICd0b3AtbWlkZGxlJzogJ2JvdHRvbS1taWRkbGUnLFxuICAgICdib3R0b20tbWlkZGxlJzogJ3RvcC1taWRkbGUnLFxufTtcbmNvbnN0IHJldmVyc2VEaXJlY3Rpb25zSG9yaXpvbnRhbDoge1trZXkgaW4gVHVpRGlyZWN0aW9uXTogVHVpRGlyZWN0aW9ufSA9IHtcbiAgICAndG9wLWxlZnQnOiAndG9wLXJpZ2h0JyxcbiAgICAndG9wLXJpZ2h0JzogJ3RvcC1sZWZ0JyxcbiAgICAnYm90dG9tLWxlZnQnOiAnYm90dG9tLXJpZ2h0JyxcbiAgICAnYm90dG9tLXJpZ2h0JzogJ2JvdHRvbS1sZWZ0JyxcbiAgICBsZWZ0OiAncmlnaHQnLFxuICAgIHJpZ2h0OiAnbGVmdCcsXG4gICAgJ3RvcC1taWRkbGUnOiAndG9wLW1pZGRsZScsXG4gICAgJ2JvdHRvbS1taWRkbGUnOiAnYm90dG9tLW1pZGRsZScsXG59O1xuXG4vLyBUT0RPOiBjb25zaWRlciBhYnN0cmFjdGluZyBVSSBhbmQgbW92ZSB0byBDREssIHNwbGl0IGhpbnQgYW5kIG92ZXJmbG93XG4vLyBBbWJpZW50IHR5cGUgY2Fubm90IGJlIHVzZWQgd2l0aG91dCBkeW5hbWljIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzIzMzk1XG4vLyBAZHluYW1pY1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktaGludC1ib3hbaGludF0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9oaW50LWJveC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9oaW50LWJveC5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbVHVpRGVzdHJveVNlcnZpY2VdLFxuICAgIGFuaW1hdGlvbnM6IFt0dWlGYWRlSW5dLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlIaW50Qm94Q29tcG9uZW50IHtcbiAgICBAVmlld0NoaWxkKCdhcnJvdycpXG4gICAgcHJpdmF0ZSByZWFkb25seSBhcnJvdz86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQEhvc3RCaW5kaW5nKCdAdHVpRmFkZUluJylcbiAgICByZWFkb25seSBhbmltYXRpb24gPSB7dmFsdWU6ICcnLCAuLi50aGlzLm9wdGlvbnN9IGFzIGNvbnN0O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoQU5JTUFUSU9OX0ZSQU1FKSBhbmltYXRpb25GcmFtZSQ6IE9ic2VydmFibGU8bnVtYmVyPixcbiAgICAgICAgQEluamVjdChUdWlEZXN0cm95U2VydmljZSkgZGVzdHJveSQ6IE9ic2VydmFibGU8dm9pZD4sXG4gICAgICAgIEBJbmplY3QoTmdab25lKSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgQEluamVjdChUVUlfQU5JTUFUSU9OX09QVElPTlMpIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogQW5pbWF0aW9uT3B0aW9ucyxcbiAgICAgICAgQEluamVjdChFbGVtZW50UmVmKSBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KFdJTkRPVykgcHJpdmF0ZSByZWFkb25seSB3aW5kb3dSZWY6IFdpbmRvdyxcbiAgICAgICAgQEluamVjdChUVUlfTUVESUEpIHByaXZhdGUgcmVhZG9ubHkgbWVkaWE6IFR1aU1lZGlhLFxuICAgICAgICBASW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gVHVpSGludHNIb3N0Q29tcG9uZW50KSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBoaW50c0hvc3Q6IFR1aUhpbnRzSG9zdENvbXBvbmVudCxcbiAgICAgICAgQEluamVjdChQT0xZTU9SUEhFVVNfQ09OVEVYVClcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjb250ZXh0OiBUdWlDb250ZXh0V2l0aEltcGxpY2l0PEFic3RyYWN0VHVpSGludD4sXG4gICAgKSB7XG4gICAgICAgIGFuaW1hdGlvbkZyYW1lJFxuICAgICAgICAgICAgLnBpcGUodHVpWm9uZWZyZWUobmdab25lKSwgdGFrZVVudGlsKGRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jYWxjdWxhdGVQb3NpdGlvbigpKTtcbiAgICB9XG5cbiAgICBnZXQgaGludCgpOiBBYnN0cmFjdFR1aUhpbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZXh0LiRpbXBsaWNpdDtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX3VudG91Y2hhYmxlJylcbiAgICBnZXQgaXNVbnRvdWNoYWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGludCBpbnN0YW5jZW9mIFR1aVBvaW50ZXJIaW50RGlyZWN0aXZlO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLW1vZGUnKVxuICAgIGdldCBtb2RlKCk6IFR1aUhpbnRNb2RlVCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5oaW50Lm1vZGU7XG4gICAgfVxuXG4gICAgZ2V0IGlzTW9iaWxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHVpSXNNb2JpbGUodGhpcy53aW5kb3dSZWYsIHRoaXMubWVkaWEpO1xuICAgIH1cblxuICAgIG9uSG92ZXJlZChob3ZlcmVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmhpbnQgaW5zdGFuY2VvZiBUdWlIaW50RGlyZWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLmhpbnQuY29tcG9uZW50SG92ZXJlZCQubmV4dChob3ZlcmVkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgd3JhcHBlciBwb3NpdGlvbi5cbiAgICAgKiBTdHlsZXMgYXJlIHNldCBkaXJlY3RseSB0byBhdm9pZCB2aXN1YWwgc2hha2Ugb2YgZWxlbWVudFxuICAgICAqL1xuICAgIHByaXZhdGUgY2FsY3VsYXRlUG9zaXRpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm1vZGUgIT09ICdvdmVyZmxvdycpIHtcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlQ29vcmRpbmF0ZXMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2V0T3ZlcmZsb3dTdHlsZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlQ29vcmRpbmF0ZXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzTW9iaWxlKSB7XG4gICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZU1vYmlsZUNvb3JkaW5hdGVzKCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGhvc3RSZWN0ID0gdGhpcy5oaW50LmdldEVsZW1lbnRDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IHBvcnRhbFJlY3QgPSB0aGlzLmhpbnRzSG9zdC5jbGllbnRSZWN0O1xuICAgICAgICBjb25zdCB0b29sdGlwID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHtzdHlsZX0gPSB0b29sdGlwO1xuICAgICAgICBjb25zdCB0b29sdGlwUmVjdCA9IHRvb2x0aXAuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IGlzSG9zdExvbmcgPSBob3N0UmVjdC53aWR0aCA+IEFSUk9XSEVBRF9PRkZTRVQgKiAyO1xuICAgICAgICBjb25zdCBkaXJlY3Rpb25zOiBUdWlEaXJlY3Rpb25bXSA9IFtcbiAgICAgICAgICAgICdsZWZ0JyxcbiAgICAgICAgICAgICdyaWdodCcsXG4gICAgICAgICAgICAnYm90dG9tLWxlZnQnLFxuICAgICAgICAgICAgJ2JvdHRvbS1yaWdodCcsXG4gICAgICAgICAgICAnYm90dG9tLW1pZGRsZScsXG4gICAgICAgICAgICAndG9wLWxlZnQnLFxuICAgICAgICAgICAgJ3RvcC1yaWdodCcsXG4gICAgICAgICAgICAndG9wLW1pZGRsZScsXG4gICAgICAgIF07XG5cbiAgICAgICAgbGV0IHRvcCA9IDA7XG4gICAgICAgIGxldCBsZWZ0ID0gMDtcbiAgICAgICAgbGV0IHtkaXJlY3Rpb259ID0gdGhpcy5oaW50O1xuXG4gICAgICAgIGNvbnN0IGhvcml6b250YWxUb3AgPVxuICAgICAgICAgICAgaG9zdFJlY3QudG9wICsgaG9zdFJlY3QuaGVpZ2h0IC8gMiAtIHRvb2x0aXBSZWN0LmhlaWdodCAvIDIgLSBwb3J0YWxSZWN0LnRvcDtcbiAgICAgICAgY29uc3QgaG9yaXpvbnRhbExlZnQgPVxuICAgICAgICAgICAgaG9zdFJlY3QubGVmdCAtIHRvb2x0aXBSZWN0LndpZHRoIC0gU1BBQ0UgLSBwb3J0YWxSZWN0LmxlZnQ7XG4gICAgICAgIGNvbnN0IGhvcml6b250YWxSaWdodCA9IGhvc3RSZWN0LmxlZnQgKyBob3N0UmVjdC53aWR0aCArIFNQQUNFIC0gcG9ydGFsUmVjdC5sZWZ0O1xuICAgICAgICBjb25zdCB2ZXJ0aWNhbEJvdHRvbSA9IGhvc3RSZWN0LmJvdHRvbSArIFNQQUNFIC0gcG9ydGFsUmVjdC50b3A7XG4gICAgICAgIGNvbnN0IHZlcnRpY2FsVG9wID0gaG9zdFJlY3QudG9wIC0gdG9vbHRpcFJlY3QuaGVpZ2h0IC0gU1BBQ0UgLSBwb3J0YWxSZWN0LnRvcDtcbiAgICAgICAgY29uc3QgdmVydGljYWxSaWdodCA9IGlzSG9zdExvbmdcbiAgICAgICAgICAgID8gaG9zdFJlY3QubGVmdCAtIHBvcnRhbFJlY3QubGVmdFxuICAgICAgICAgICAgOiBob3N0UmVjdC5sZWZ0ICsgaG9zdFJlY3Qud2lkdGggLyAyIC0gQVJST1dIRUFEX09GRlNFVCAtIHBvcnRhbFJlY3QubGVmdDtcbiAgICAgICAgY29uc3QgdmVydGljYWxMZWZ0ID0gaXNIb3N0TG9uZ1xuICAgICAgICAgICAgPyBob3N0UmVjdC5sZWZ0IC0gdG9vbHRpcFJlY3Qud2lkdGggKyBob3N0UmVjdC53aWR0aCAtIHBvcnRhbFJlY3QubGVmdFxuICAgICAgICAgICAgOiBob3N0UmVjdC5sZWZ0IC1cbiAgICAgICAgICAgICAgdG9vbHRpcFJlY3Qud2lkdGggK1xuICAgICAgICAgICAgICBob3N0UmVjdC53aWR0aCAvIDIgK1xuICAgICAgICAgICAgICBBUlJPV0hFQURfT0ZGU0VUIC1cbiAgICAgICAgICAgICAgcG9ydGFsUmVjdC5sZWZ0O1xuICAgICAgICBjb25zdCB2ZXJ0aWNhbE1pZGRsZSA9XG4gICAgICAgICAgICBob3N0UmVjdC5sZWZ0IC0gdG9vbHRpcFJlY3Qud2lkdGggLyAyICsgaG9zdFJlY3Qud2lkdGggLyAyIC0gcG9ydGFsUmVjdC5sZWZ0O1xuXG4gICAgICAgIGRpcmVjdGlvbnMuc3BsaWNlKGRpcmVjdGlvbnMuaW5kZXhPZihkaXJlY3Rpb24pLCAxKTtcblxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc3RhbnQtY29uZGl0aW9uXG4gICAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGRpcmVjdGlvbikge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgICAgICAgICAgICB0b3AgPSBob3Jpem9udGFsVG9wO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0ID0gaG9yaXpvbnRhbExlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgICAgICAgICAgICAgdG9wID0gaG9yaXpvbnRhbFRvcDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdCA9IGhvcml6b250YWxSaWdodDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAndG9wLXJpZ2h0JzpcbiAgICAgICAgICAgICAgICAgICAgdG9wID0gdmVydGljYWxUb3A7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQgPSB2ZXJ0aWNhbFJpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICd0b3AtbGVmdCc6XG4gICAgICAgICAgICAgICAgICAgIHRvcCA9IHZlcnRpY2FsVG9wO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0ID0gdmVydGljYWxMZWZ0O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdib3R0b20tcmlnaHQnOlxuICAgICAgICAgICAgICAgICAgICB0b3AgPSB2ZXJ0aWNhbEJvdHRvbTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdCA9IHZlcnRpY2FsUmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2JvdHRvbS1sZWZ0JzpcbiAgICAgICAgICAgICAgICAgICAgdG9wID0gdmVydGljYWxCb3R0b207XG4gICAgICAgICAgICAgICAgICAgIGxlZnQgPSB2ZXJ0aWNhbExlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2JvdHRvbS1taWRkbGUnOlxuICAgICAgICAgICAgICAgICAgICB0b3AgPSB2ZXJ0aWNhbEJvdHRvbTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdCA9IHZlcnRpY2FsTWlkZGxlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICd0b3AtbWlkZGxlJzpcbiAgICAgICAgICAgICAgICAgICAgdG9wID0gdmVydGljYWxUb3A7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQgPSB2ZXJ0aWNhbE1pZGRsZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHZlcnRpY2FsRml0ID1cbiAgICAgICAgICAgICAgICB0b3AgKyBwb3J0YWxSZWN0LnRvcCA+IFNQQUNFICYmXG4gICAgICAgICAgICAgICAgdG9wICsgdG9vbHRpcFJlY3QuaGVpZ2h0ICsgU1BBQ0UgKyBwb3J0YWxSZWN0LnRvcCA8XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud2luZG93UmVmLmlubmVySGVpZ2h0O1xuICAgICAgICAgICAgY29uc3QgaG9yaXpvbnRhbEZpdCA9XG4gICAgICAgICAgICAgICAgbGVmdCA+IFNQQUNFICYmXG4gICAgICAgICAgICAgICAgbGVmdCArIHRvb2x0aXBSZWN0LndpZHRoICsgU1BBQ0UgKyBwb3J0YWxSZWN0LmxlZnQgPCBwb3J0YWxSZWN0LndpZHRoO1xuXG4gICAgICAgICAgICBpZiAoZGlyZWN0aW9ucy5sZW5ndGggPT09IDAgfHwgKHZlcnRpY2FsRml0ICYmIGhvcml6b250YWxGaXQpKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGRpcmVjdGlvbiA9IHZlcnRpY2FsRml0XG4gICAgICAgICAgICAgICAgPyByZXZlcnNlRGlyZWN0aW9uc0hvcml6b250YWxbZGlyZWN0aW9uXVxuICAgICAgICAgICAgICAgIDogcmV2ZXJzZURpcmVjdGlvbnNWZXJ0aWNhbFtkaXJlY3Rpb25dO1xuICAgICAgICAgICAgZGlyZWN0aW9uID1cbiAgICAgICAgICAgICAgICBkaXJlY3Rpb25zLnNwbGljZShkaXJlY3Rpb25zLmluZGV4T2YoZGlyZWN0aW9uKSwgMSlbMF0gfHwgZGlyZWN0aW9uO1xuICAgICAgICB9XG5cbiAgICAgICAgc3R5bGUudG9wID0gcHgodG9wKTtcbiAgICAgICAgc3R5bGUubGVmdCA9IHB4KGxlZnQpO1xuXG4gICAgICAgIHRvb2x0aXAuc2V0QXR0cmlidXRlKCdkYXRhLXR1aS1ob3N0LWRpcmVjdGlvbicsIGRpcmVjdGlvbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVNb2JpbGVDb29yZGluYXRlcygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaG9zdFJlY3QgPSB0aGlzLmhpbnQuZ2V0RWxlbWVudENsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgcG9ydGFsUmVjdCA9IHRoaXMuaGludHNIb3N0LmNsaWVudFJlY3Q7XG4gICAgICAgIGNvbnN0IHRvb2x0aXAgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3Qge3N0eWxlfSA9IHRvb2x0aXA7XG4gICAgICAgIGNvbnN0IHRvb2x0aXBSZWN0ID0gdG9vbHRpcC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgdmVydGljYWxUb3AgPSBob3N0UmVjdC50b3AgLSB0b29sdGlwUmVjdC5oZWlnaHQgLSBTUEFDRSAtIHBvcnRhbFJlY3QudG9wO1xuICAgICAgICBjb25zdCB2ZXJ0aWNhbEJvdHRvbSA9IGhvc3RSZWN0LmJvdHRvbSArIFNQQUNFIC0gcG9ydGFsUmVjdC50b3A7XG4gICAgICAgIGNvbnN0IHZlcnRpY2FsVG9wRml0ID1cbiAgICAgICAgICAgIHZlcnRpY2FsVG9wICsgcG9ydGFsUmVjdC50b3AgPiBTUEFDRSAmJlxuICAgICAgICAgICAgaG9zdFJlY3QudG9wIDwgdGhpcy53aW5kb3dSZWYuaW5uZXJIZWlnaHQ7XG4gICAgICAgIGNvbnN0IHZlcnRpY2FsQm90dG9tRml0ID1cbiAgICAgICAgICAgIGhvc3RSZWN0LmJvdHRvbSA+IDAgJiZcbiAgICAgICAgICAgIGhvc3RSZWN0LmJvdHRvbSArIDIgKiBTUEFDRSArIHRvb2x0aXBSZWN0LmhlaWdodCA8IHRoaXMud2luZG93UmVmLmlubmVySGVpZ2h0O1xuICAgICAgICBjb25zdCBkaXJlY3Rpb24gPVxuICAgICAgICAgICAgKHRoaXMuaGludC5kaXJlY3Rpb24uaW5jbHVkZXMoJ3RvcCcpICYmIHZlcnRpY2FsVG9wRml0KSB8fCAhdmVydGljYWxCb3R0b21GaXRcbiAgICAgICAgICAgICAgICA/ICd0b3AnXG4gICAgICAgICAgICAgICAgOiAnYm90dG9tJztcbiAgICAgICAgY29uc3QgYXR0ZW1wdGVkTGVmdCA9XG4gICAgICAgICAgICBwb3J0YWxSZWN0LmxlZnQgKyBob3N0UmVjdC5sZWZ0ICsgaG9zdFJlY3Qud2lkdGggLyAyIC0gdG9vbHRpcFJlY3Qud2lkdGggLyAyO1xuICAgICAgICBjb25zdCBsZWZ0ID0gTWF0aC5tYXgoXG4gICAgICAgICAgICBhdHRlbXB0ZWRMZWZ0ICsgdG9vbHRpcFJlY3Qud2lkdGggKyBTUEFDRSA+IHBvcnRhbFJlY3QucmlnaHRcbiAgICAgICAgICAgICAgICA/IHBvcnRhbFJlY3QucmlnaHQgLSBTUEFDRSAtIHRvb2x0aXBSZWN0LndpZHRoXG4gICAgICAgICAgICAgICAgOiBhdHRlbXB0ZWRMZWZ0LFxuICAgICAgICAgICAgU1BBQ0UgKiAyLFxuICAgICAgICApO1xuXG4gICAgICAgIHN0eWxlLmxlZnQgPSBweChsZWZ0KTtcbiAgICAgICAgc3R5bGUudG9wID0gZGlyZWN0aW9uID09PSAndG9wJyA/IHB4KHZlcnRpY2FsVG9wKSA6IHB4KHZlcnRpY2FsQm90dG9tKTtcblxuICAgICAgICBpZiAodGhpcy5hcnJvdykge1xuICAgICAgICAgICAgdGhpcy5hcnJvdy5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSBweChcbiAgICAgICAgICAgICAgICBob3N0UmVjdC5sZWZ0IDw9IFNQQUNFICogMiAmJiBob3N0UmVjdC53aWR0aCA+IEFSUk9XX09GRlNFVCAqIDJcbiAgICAgICAgICAgICAgICAgICAgPyBBUlJPV19PRkZTRVRcbiAgICAgICAgICAgICAgICAgICAgOiBob3N0UmVjdC5sZWZ0ICsgaG9zdFJlY3Qud2lkdGggLyAyIC0gbGVmdCAtIEFSUk9XX1NJWkUgLyAyLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRvb2x0aXAuc2V0QXR0cmlidXRlKCdkYXRhLXR1aS1ob3N0LWRpcmVjdGlvbicsIGRpcmVjdGlvbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRPdmVyZmxvd1N0eWxlcygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaG9zdFJlY3QgPSB0aGlzLmhpbnQuZ2V0RWxlbWVudENsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3Qge3N0eWxlfSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgIHN0eWxlLnRvcCA9IHB4KGhvc3RSZWN0LnRvcCAtIHdpbmRvdy5pbm5lckhlaWdodCAtIFRPUF9QQURESU5HIC0gQk9SREVSX1dJRFRIKTtcbiAgICAgICAgc3R5bGUubGVmdCA9IHB4KGhvc3RSZWN0LmxlZnQgLSBMRUZUX1BBRERJTkcgLSBCT1JERVJfV0lEVEgpO1xuICAgICAgICBzdHlsZS53aWR0aCA9IHB4KGhvc3RSZWN0LndpZHRoICsgTEVGVF9QQURESU5HICogMiArIEJPUkRFUl9XSURUSCAqIDIpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,6 +1,7 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { NgModule } from '@angular/core';
4
+ import { TuiHoveredModule } from '@taiga-ui/cdk';
4
5
  import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
5
6
  import { TuiHintBoxComponent } from './hint-box.component';
6
7
  var TuiHintBoxModule = /** @class */ (function () {
@@ -8,7 +9,7 @@ var TuiHintBoxModule = /** @class */ (function () {
8
9
  }
9
10
  TuiHintBoxModule = __decorate([
10
11
  NgModule({
11
- imports: [CommonModule, PolymorpheusModule],
12
+ imports: [CommonModule, PolymorpheusModule, TuiHoveredModule],
12
13
  declarations: [TuiHintBoxComponent],
13
14
  exports: [TuiHintBoxComponent],
14
15
  entryComponents: [TuiHintBoxComponent],
@@ -17,4 +18,4 @@ var TuiHintBoxModule = /** @class */ (function () {
17
18
  return TuiHintBoxModule;
18
19
  }());
19
20
  export { TuiHintBoxModule };
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGludC1ib3gubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9oaW50cy1ob3N0LyIsInNvdXJjZXMiOlsiaGludC1ib3gvaGludC1ib3gubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUU1RCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQVF6RDtJQUFBO0lBQStCLENBQUM7SUFBbkIsZ0JBQWdCO1FBTjVCLFFBQVEsQ0FBQztZQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxrQkFBa0IsQ0FBQztZQUMzQyxZQUFZLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztZQUNuQyxPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztZQUM5QixlQUFlLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztTQUN6QyxDQUFDO09BQ1csZ0JBQWdCLENBQUc7SUFBRCx1QkFBQztDQUFBLEFBQWhDLElBQWdDO1NBQW5CLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1BvbHltb3JwaGV1c01vZHVsZX0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcblxuaW1wb3J0IHtUdWlIaW50Qm94Q29tcG9uZW50fSBmcm9tICcuL2hpbnQtYm94LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUG9seW1vcnBoZXVzTW9kdWxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtUdWlIaW50Qm94Q29tcG9uZW50XSxcbiAgICBleHBvcnRzOiBbVHVpSGludEJveENvbXBvbmVudF0sXG4gICAgZW50cnlDb21wb25lbnRzOiBbVHVpSGludEJveENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUhpbnRCb3hNb2R1bGUge31cbiJdfQ==
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGludC1ib3gubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9oaW50cy1ob3N0LyIsInNvdXJjZXMiOlsiaGludC1ib3gvaGludC1ib3gubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFNUQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFRekQ7SUFBQTtJQUErQixDQUFDO0lBQW5CLGdCQUFnQjtRQU41QixRQUFRLENBQUM7WUFDTixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLENBQUM7WUFDN0QsWUFBWSxFQUFFLENBQUMsbUJBQW1CLENBQUM7WUFDbkMsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUM7WUFDOUIsZUFBZSxFQUFFLENBQUMsbUJBQW1CLENBQUM7U0FDekMsQ0FBQztPQUNXLGdCQUFnQixDQUFHO0lBQUQsdUJBQUM7Q0FBQSxBQUFoQyxJQUFnQztTQUFuQixnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUdWlIb3ZlcmVkTW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7UG9seW1vcnBoZXVzTW9kdWxlfSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuXG5pbXBvcnQge1R1aUhpbnRCb3hDb21wb25lbnR9IGZyb20gJy4vaGludC1ib3guY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBQb2x5bW9ycGhldXNNb2R1bGUsIFR1aUhvdmVyZWRNb2R1bGVdLFxuICAgIGRlY2xhcmF0aW9uczogW1R1aUhpbnRCb3hDb21wb25lbnRdLFxuICAgIGV4cG9ydHM6IFtUdWlIaW50Qm94Q29tcG9uZW50XSxcbiAgICBlbnRyeUNvbXBvbmVudHM6IFtUdWlIaW50Qm94Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSGludEJveE1vZHVsZSB7fVxuIl19
@@ -1,9 +1,9 @@
1
1
  import { __decorate, __param } from "tslib";
2
2
  import { ChangeDetectionStrategy, Component, ElementRef, Inject } from '@angular/core';
3
3
  import { TUI_PARENT_ANIMATION } from '@taiga-ui/cdk';
4
- import { TuiHintDirective } from '@taiga-ui/core/directives/hint';
5
4
  import { TuiHintService } from '@taiga-ui/core/services';
6
5
  import { PolymorpheusComponent } from '@tinkoff/ng-polymorpheus';
6
+ import { Observable } from 'rxjs';
7
7
  import { TuiHintBoxComponent } from './hint-box/hint-box.component';
8
8
  var TuiHintsHostComponent = /** @class */ (function () {
9
9
  function TuiHintsHostComponent(elementRef, hints$) {
@@ -18,19 +18,14 @@ var TuiHintsHostComponent = /** @class */ (function () {
18
18
  enumerable: true,
19
19
  configurable: true
20
20
  });
21
- TuiHintsHostComponent.prototype.onHovered = function (hovered, directive) {
22
- if (directive instanceof TuiHintDirective) {
23
- directive.componentHovered$.next(hovered);
24
- }
25
- };
26
21
  TuiHintsHostComponent.ctorParameters = function () { return [
27
22
  { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
28
- { type: TuiHintService, decorators: [{ type: Inject, args: [TuiHintService,] }] }
23
+ { type: Observable, decorators: [{ type: Inject, args: [TuiHintService,] }] }
29
24
  ]; };
30
25
  TuiHintsHostComponent = __decorate([
31
26
  Component({
32
27
  selector: 'tui-hints-host',
33
- template: "<div\n *ngFor=\"let hint of hints$ | async\"\n role=\"tooltip\"\n polymorpheus-outlet\n @tuiParentAnimation\n [attr.id]=\"hint.id\"\n [content]=\"component\"\n [context]=\"{ $implicit: hint }\"\n [tuiActiveZoneParent]=\"hint.activeZone\"\n (tuiHoveredChange)=\"onHovered($event, hint)\"\n></div>\n",
28
+ template: "<div\n *ngFor=\"let hint of hints$ | async\"\n role=\"tooltip\"\n polymorpheus-outlet\n @tuiParentAnimation\n [attr.id]=\"hint.id\"\n [content]=\"hint.component || component\"\n [context]=\"{$implicit: hint}\"\n [tuiActiveZoneParent]=\"hint.activeZone\"\n></div>\n",
34
29
  changeDetection: ChangeDetectionStrategy.OnPush,
35
30
  animations: [TUI_PARENT_ANIMATION],
36
31
  host: {
@@ -44,4 +39,4 @@ var TuiHintsHostComponent = /** @class */ (function () {
44
39
  return TuiHintsHostComponent;
45
40
  }());
46
41
  export { TuiHintsHostComponent };
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGludHMtaG9zdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL2hpbnRzLWhvc3QvIiwic291cmNlcyI6WyJoaW50cy1ob3N0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFL0QsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFZbEU7SUFHSSwrQkFDeUMsVUFBbUMsRUFDdkMsTUFBc0I7UUFEbEIsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFDdkMsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFKbEQsY0FBUyxHQUFHLElBQUkscUJBQXFCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUtqRSxDQUFDO0lBRUosc0JBQUksNkNBQVU7YUFBZDtZQUNJLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUNqRSxDQUFDOzs7T0FBQTtJQUVELHlDQUFTLEdBQVQsVUFBVSxPQUFnQixFQUFFLFNBQTBCO1FBQ2xELElBQUksU0FBUyxZQUFZLGdCQUFnQixFQUFFO1lBQ3ZDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDN0M7SUFDTCxDQUFDOztnQkFab0QsVUFBVSx1QkFBMUQsTUFBTSxTQUFDLFVBQVU7Z0JBQ3VCLGNBQWMsdUJBQXRELE1BQU0sU0FBQyxjQUFjOztJQUxqQixxQkFBcUI7UUFWakMsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLGdCQUFnQjtZQUMxQixnVkFBeUM7WUFFekMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07WUFDL0MsVUFBVSxFQUFFLENBQUMsb0JBQW9CLENBQUM7WUFDbEMsSUFBSSxFQUFFO2dCQUNGLFdBQVcsRUFBRSxRQUFRO2FBQ3hCOztTQUNKLENBQUM7UUFLTyxXQUFBLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUNsQixXQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQTtPQUxsQixxQkFBcUIsQ0FpQmpDO0lBQUQsNEJBQUM7Q0FBQSxBQWpCRCxJQWlCQztTQWpCWSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RVSV9QQVJFTlRfQU5JTUFUSU9OfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7QWJzdHJhY3RUdWlIaW50fSBmcm9tICdAdGFpZ2EtdWkvY29yZS9hYnN0cmFjdCc7XG5pbXBvcnQge1R1aUhpbnREaXJlY3RpdmV9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvaGludCc7XG5pbXBvcnQge1R1aUhpbnRTZXJ2aWNlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9zZXJ2aWNlcyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbXBvbmVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcblxuaW1wb3J0IHtUdWlIaW50Qm94Q29tcG9uZW50fSBmcm9tICcuL2hpbnQtYm94L2hpbnQtYm94LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWhpbnRzLWhvc3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9oaW50cy1ob3N0LnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2hpbnRzLWhvc3Quc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGFuaW1hdGlvbnM6IFtUVUlfUEFSRU5UX0FOSU1BVElPTl0sXG4gICAgaG9zdDoge1xuICAgICAgICAnYXJpYS1saXZlJzogJ3BvbGl0ZScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSGludHNIb3N0Q29tcG9uZW50IHtcbiAgICByZWFkb25seSBjb21wb25lbnQgPSBuZXcgUG9seW1vcnBoZXVzQ29tcG9uZW50KFR1aUhpbnRCb3hDb21wb25lbnQpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZikgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgQEluamVjdChUdWlIaW50U2VydmljZSkgcmVhZG9ubHkgaGludHMkOiBUdWlIaW50U2VydmljZSxcbiAgICApIHt9XG5cbiAgICBnZXQgY2xpZW50UmVjdCgpOiBDbGllbnRSZWN0IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIH1cblxuICAgIG9uSG92ZXJlZChob3ZlcmVkOiBib29sZWFuLCBkaXJlY3RpdmU6IEFic3RyYWN0VHVpSGludCk6IHZvaWQge1xuICAgICAgICBpZiAoZGlyZWN0aXZlIGluc3RhbmNlb2YgVHVpSGludERpcmVjdGl2ZSkge1xuICAgICAgICAgICAgZGlyZWN0aXZlLmNvbXBvbmVudEhvdmVyZWQkLm5leHQoaG92ZXJlZCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGludHMtaG9zdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL2hpbnRzLWhvc3QvIiwic291cmNlcyI6WyJoaW50cy1ob3N0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVoQyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQVlsRTtJQUdJLCtCQUN5QyxVQUFtQyxFQUN2QyxNQUFzQztRQURsQyxlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUN2QyxXQUFNLEdBQU4sTUFBTSxDQUFnQztRQUpsRSxjQUFTLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBS2pFLENBQUM7SUFFSixzQkFBSSw2Q0FBVTthQUFkO1lBQ0ksT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ2pFLENBQUM7OztPQUFBOztnQkFOb0QsVUFBVSx1QkFBMUQsTUFBTSxTQUFDLFVBQVU7Z0JBQ3VCLFVBQVUsdUJBQWxELE1BQU0sU0FBQyxjQUFjOztJQUxqQixxQkFBcUI7UUFWakMsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLGdCQUFnQjtZQUMxQiw0U0FBeUM7WUFFekMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07WUFDL0MsVUFBVSxFQUFFLENBQUMsb0JBQW9CLENBQUM7WUFDbEMsSUFBSSxFQUFFO2dCQUNGLFdBQVcsRUFBRSxRQUFRO2FBQ3hCOztTQUNKLENBQUM7UUFLTyxXQUFBLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUNsQixXQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQTtPQUxsQixxQkFBcUIsQ0FXakM7SUFBRCw0QkFBQztDQUFBLEFBWEQsSUFXQztTQVhZLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VFVJX1BBUkVOVF9BTklNQVRJT059IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtUdWlIaW50fSBmcm9tICdAdGFpZ2EtdWkvY29yZS9pbnRlcmZhY2VzJztcbmltcG9ydCB7VHVpSGludFNlcnZpY2V9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3NlcnZpY2VzJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29tcG9uZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtUdWlIaW50Qm94Q29tcG9uZW50fSBmcm9tICcuL2hpbnQtYm94L2hpbnQtYm94LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWhpbnRzLWhvc3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9oaW50cy1ob3N0LnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2hpbnRzLWhvc3Quc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGFuaW1hdGlvbnM6IFtUVUlfUEFSRU5UX0FOSU1BVElPTl0sXG4gICAgaG9zdDoge1xuICAgICAgICAnYXJpYS1saXZlJzogJ3BvbGl0ZScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSGludHNIb3N0Q29tcG9uZW50IHtcbiAgICByZWFkb25seSBjb21wb25lbnQgPSBuZXcgUG9seW1vcnBoZXVzQ29tcG9uZW50KFR1aUhpbnRCb3hDb21wb25lbnQpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZikgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgQEluamVjdChUdWlIaW50U2VydmljZSkgcmVhZG9ubHkgaGludHMkOiBPYnNlcnZhYmxlPHJlYWRvbmx5IFR1aUhpbnRbXT4sXG4gICAgKSB7fVxuXG4gICAgZ2V0IGNsaWVudFJlY3QoKTogQ2xpZW50UmVjdCB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICB9XG59XG4iXX0=
@@ -1,7 +1,7 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { NgModule } from '@angular/core';
4
- import { TuiActiveZoneModule, TuiHoveredModule } from '@taiga-ui/cdk';
4
+ import { TuiActiveZoneModule } from '@taiga-ui/cdk';
5
5
  import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
6
6
  import { TuiHintBoxModule } from './hint-box/hint-box.module';
7
7
  import { TuiHintsHostComponent } from './hints-host.component';
@@ -10,13 +10,7 @@ var TuiHintsHostModule = /** @class */ (function () {
10
10
  }
11
11
  TuiHintsHostModule = __decorate([
12
12
  NgModule({
13
- imports: [
14
- CommonModule,
15
- PolymorpheusModule,
16
- TuiHoveredModule,
17
- TuiHintBoxModule,
18
- TuiActiveZoneModule,
19
- ],
13
+ imports: [CommonModule, PolymorpheusModule, TuiHintBoxModule, TuiActiveZoneModule],
20
14
  declarations: [TuiHintsHostComponent],
21
15
  exports: [TuiHintsHostComponent],
22
16
  })
@@ -24,4 +18,4 @@ var TuiHintsHostModule = /** @class */ (function () {
24
18
  return TuiHintsHostModule;
25
19
  }());
26
20
  export { TuiHintsHostModule };
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGludHMtaG9zdC5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL2hpbnRzLWhvc3QvIiwic291cmNlcyI6WyJoaW50cy1ob3N0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLG1CQUFtQixFQUFFLGdCQUFnQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRTVELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBYTdEO0lBQUE7SUFBaUMsQ0FBQztJQUFyQixrQkFBa0I7UUFYOUIsUUFBUSxDQUFDO1lBQ04sT0FBTyxFQUFFO2dCQUNMLFlBQVk7Z0JBQ1osa0JBQWtCO2dCQUNsQixnQkFBZ0I7Z0JBQ2hCLGdCQUFnQjtnQkFDaEIsbUJBQW1CO2FBQ3RCO1lBQ0QsWUFBWSxFQUFFLENBQUMscUJBQXFCLENBQUM7WUFDckMsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7U0FDbkMsQ0FBQztPQUNXLGtCQUFrQixDQUFHO0lBQUQseUJBQUM7Q0FBQSxBQUFsQyxJQUFrQztTQUFyQixrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUdWlBY3RpdmVab25lTW9kdWxlLCBUdWlIb3ZlcmVkTW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7UG9seW1vcnBoZXVzTW9kdWxlfSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuXG5pbXBvcnQge1R1aUhpbnRCb3hNb2R1bGV9IGZyb20gJy4vaGludC1ib3gvaGludC1ib3gubW9kdWxlJztcbmltcG9ydCB7VHVpSGludHNIb3N0Q29tcG9uZW50fSBmcm9tICcuL2hpbnRzLWhvc3QuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgUG9seW1vcnBoZXVzTW9kdWxlLFxuICAgICAgICBUdWlIb3ZlcmVkTW9kdWxlLFxuICAgICAgICBUdWlIaW50Qm94TW9kdWxlLFxuICAgICAgICBUdWlBY3RpdmVab25lTW9kdWxlLFxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbVHVpSGludHNIb3N0Q29tcG9uZW50XSxcbiAgICBleHBvcnRzOiBbVHVpSGludHNIb3N0Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSGludHNIb3N0TW9kdWxlIHt9XG4iXX0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGludHMtaG9zdC5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL2hpbnRzLWhvc3QvIiwic291cmNlcyI6WyJoaW50cy1ob3N0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRTVELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBTzdEO0lBQUE7SUFBaUMsQ0FBQztJQUFyQixrQkFBa0I7UUFMOUIsUUFBUSxDQUFDO1lBQ04sT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixDQUFDO1lBQ2xGLFlBQVksRUFBRSxDQUFDLHFCQUFxQixDQUFDO1lBQ3JDLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDO1NBQ25DLENBQUM7T0FDVyxrQkFBa0IsQ0FBRztJQUFELHlCQUFDO0NBQUEsQUFBbEMsSUFBa0M7U0FBckIsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHVpQWN0aXZlWm9uZU1vZHVsZX0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1BvbHltb3JwaGV1c01vZHVsZX0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcblxuaW1wb3J0IHtUdWlIaW50Qm94TW9kdWxlfSBmcm9tICcuL2hpbnQtYm94L2hpbnQtYm94Lm1vZHVsZSc7XG5pbXBvcnQge1R1aUhpbnRzSG9zdENvbXBvbmVudH0gZnJvbSAnLi9oaW50cy1ob3N0LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUG9seW1vcnBoZXVzTW9kdWxlLCBUdWlIaW50Qm94TW9kdWxlLCBUdWlBY3RpdmVab25lTW9kdWxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtUdWlIaW50c0hvc3RDb21wb25lbnRdLFxuICAgIGV4cG9ydHM6IFtUdWlIaW50c0hvc3RDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlIaW50c0hvc3RNb2R1bGUge31cbiJdfQ==
@@ -210,7 +210,7 @@ var TuiHostedDropdownComponent = /** @class */ (function () {
210
210
  TuiHostedDropdownComponent = TuiHostedDropdownComponent_1 = __decorate([
211
211
  Component({
212
212
  selector: 'tui-hosted-dropdown',
213
- template: "<div\n #activeZone=\"tuiActiveZone\"\n class=\"wrapper\"\n [tuiDropdownAlign]=\"controller.align\"\n [tuiDropdownDirection]=\"controller.direction\"\n [tuiDropdownHost]=\"nativeFocusableElement\"\n [tuiDropdownLimitWidth]=\"controller.limitWidth\"\n [tuiDropdownMinHeight]=\"controller.minHeight\"\n [tuiDropdownMaxHeight]=\"controller.maxHeight\"\n [tuiDropdownSided]=\"controller.sided\"\n [tuiDropdownContent]=\"dropdown\"\n [tuiDropdown]=\"open && canOpen\"\n [tuiObscuredEnabled]=\"open\"\n (tuiObscured)=\"onHostObscured($event)\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <ng-content></ng-content>\n <ng-template\n #dropdown=\"polymorpheus\"\n polymorpheus\n >\n <div\n #wrapper\n polymorpheus-outlet\n [content]=\"content\"\n [context]=\"{ $implicit: activeZone }\"\n (keydown.esc)=\"onKeyDownEsc($event)\"\n (keydown)=\"onKeydown($event)\"\n ></div>\n <!--This DIV is here to start backwards TreeWalker for focusing last focusable item on ArrowUp-->\n <div></div>\n </ng-template>\n</div>\n",
213
+ template: "<div\n #activeZone=\"tuiActiveZone\"\n class=\"wrapper\"\n [tuiDropdownAlign]=\"controller.align\"\n [tuiDropdownDirection]=\"controller.direction\"\n [tuiDropdownHost]=\"nativeFocusableElement\"\n [tuiDropdownLimitWidth]=\"controller.limitWidth\"\n [tuiDropdownMinHeight]=\"controller.minHeight\"\n [tuiDropdownMaxHeight]=\"controller.maxHeight\"\n [tuiDropdownSided]=\"controller.sided\"\n [tuiDropdownContent]=\"dropdown\"\n [tuiDropdown]=\"open && canOpen\"\n [tuiObscuredEnabled]=\"open\"\n (tuiObscured)=\"onHostObscured($event)\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <ng-content></ng-content>\n <ng-template\n #dropdown=\"polymorpheus\"\n polymorpheus\n >\n <div\n #wrapper\n polymorpheus-outlet\n [content]=\"content\"\n [context]=\"{$implicit: activeZone}\"\n (keydown.esc)=\"onKeyDownEsc($event)\"\n (keydown)=\"onKeydown($event)\"\n ></div>\n <!--This DIV is here to start backwards TreeWalker for focusing last focusable item on ArrowUp-->\n <div></div>\n </ng-template>\n</div>\n",
214
214
  changeDetection: ChangeDetectionStrategy.OnPush,
215
215
  providers: [
216
216
  {
@@ -227,4 +227,4 @@ var TuiHostedDropdownComponent = /** @class */ (function () {
227
227
  return TuiHostedDropdownComponent;
228
228
  }());
229
229
  export { TuiHostedDropdownComponent };
230
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdGVkLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvaG9zdGVkLWRyb3Bkb3duLyIsInNvdXJjZXMiOlsiaG9zdGVkLWRyb3Bkb3duLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQix5QkFBeUIsRUFDekIsZ0JBQWdCLEVBQ2hCLDJCQUEyQixFQUczQixjQUFjLEdBR2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFDSCw0QkFBNEIsRUFDNUIsK0JBQStCLEVBQy9CLDhCQUE4QixHQUNqQyxNQUFNLCtDQUErQyxDQUFDO0FBQ3ZELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUdoRSxPQUFPLEVBQUMsbUNBQW1DLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQWUxRjtJQTRCSSxvQ0FDeUMsVUFBc0IsRUFFbEQsVUFBMEM7UUFGZCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBRWxELGVBQVUsR0FBVixVQUFVLENBQWdDO1FBbkJ2RCxZQUFPLEdBQXdFLEVBQUUsQ0FBQztRQUlsRixZQUFPLEdBQUcsSUFBSSxDQUFDO1FBSWYsU0FBSSxHQUFHLEtBQUssQ0FBQztRQUdKLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBR3pDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztJ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QUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDckQsWUFBWSxDQUFDLGlCQUFpQixFQUFFLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDOzZEQUdwRDtJQS9GUSwwQkFBMEI7UUFidEMsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLHFCQUFxQjtZQUMvQixpcUNBQThDO1lBRTlDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO1lBQy9DLFNBQVMsRUFBRTtnQkFDUDtvQkFDSSxPQUFPLEVBQUUsMkJBQTJCO29CQUNwQyxXQUFXLEVBQUUsVUFBVSxDQUFDLGNBQU0sT0FBQSw0QkFBMEIsRUFBMUIsQ0FBMEIsQ0FBQztpQkFDNUQ7Z0JBQ0QsNEJBQTRCO2FBQy9COztTQUNKLENBQUM7UUE4Qk8sV0FBQSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDbEIsV0FBQSxNQUFNLENBQUMsK0JBQStCLENBQUMsQ0FBQTtPQTlCbkMsMEJBQTBCLENBNk10QztJQUFELGlDQUFDO0NBQUEsQUE3TUQsSUE2TUM7U0E3TVksMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgZ2V0Q2xvc2VzdEZvY3VzYWJsZSxcbiAgICBpc0VsZW1lbnRFZGl0YWJsZSxcbiAgICBpc05hdGl2ZUZvY3VzZWRJbixcbiAgICBpc05hdGl2ZUtleWJvYXJkRm9jdXNhYmxlLFxuICAgIHNldE5hdGl2ZUZvY3VzZWQsXG4gICAgVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgIFR1aUFjdGl2ZVpvbmVEaXJlY3RpdmUsXG4gICAgVHVpQ29udGV4dFdpdGhJbXBsaWNpdCxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1R1aURyb3Bkb3duRGlyZWN0aXZlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2Ryb3Bkb3duJztcbmltcG9ydCB7XG4gICAgRFJPUERPV05fQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICBUVUlfRFJPUERPV05fV0FUQ0hFRF9DT05UUk9MTEVSLFxuICAgIFR1aURyb3Bkb3duQ29udHJvbGxlckRpcmVjdGl2ZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9kcm9wZG93bi1jb250cm9sbGVyJztcbmltcG9ydCB7aXNFZGl0aW5nS2V5fSBmcm9tICdAdGFpZ2EtdWkvY29yZS91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcblxuaW1wb3J0IHtUdWlIb3N0ZWREcm9wZG93bkNvbm5lY3RvckRpcmVjdGl2ZX0gZnJvbSAnLi9ob3N0ZWQtZHJvcGRvd24tY29ubmVjdG9yLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWhvc3RlZC1kcm9wZG93bicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2hvc3RlZC1kcm9wZG93bi50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9ob3N0ZWQtZHJvcGRvd24uc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUdWlIb3N0ZWREcm9wZG93bkNvbXBvbmVudCksXG4gICAgICAgIH0sXG4gICAgICAgIERST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVIsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSG9zdGVkRHJvcGRvd25Db21wb25lbnQgaW1wbGVtZW50cyBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3Ige1xuICAgIEBDb250ZW50Q2hpbGQoVHVpSG9zdGVkRHJvcGRvd25Db25uZWN0b3JEaXJlY3RpdmUsIHtyZWFkOiBFbGVtZW50UmVmfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRyb3Bkb3duSG9zdD86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZCgnd3JhcHBlcicsIHtyZWFkOiBFbGVtZW50UmVmfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdyYXBwZXI/OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICAgIEBWaWV3Q2hpbGQoVHVpRHJvcGRvd25EaXJlY3RpdmUpXG4gICAgcHJpdmF0ZSByZWFkb25seSBkcm9wZG93bkRpcmVjdGl2ZT86IFR1aURyb3Bkb3duRGlyZWN0aXZlO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGNvbnRlbnQ6IFBvbHltb3JwaGV1c0NvbnRlbnQ8VHVpQ29udGV4dFdpdGhJbXBsaWNpdDxUdWlBY3RpdmVab25lRGlyZWN0aXZlPj4gPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBjYW5PcGVuID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBvcGVuID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBvcGVuQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgZm9jdXNlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgQEluamVjdChUVUlfRFJPUERPV05fV0FUQ0hFRF9DT05UUk9MTEVSKVxuICAgICAgICByZWFkb25seSBjb250cm9sbGVyOiBUdWlEcm9wZG93bkNvbnRyb2xsZXJEaXJlY3RpdmUsXG4gICAgKSB7fVxuXG4gICAgZ2V0IGhvc3QoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5kcm9wZG93bkhvc3RcbiAgICAgICAgICAgID8gdGhpcy5kcm9wZG93bkhvc3QubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgOiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBnZXQgZHJvcGRvd24oKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmRyb3Bkb3duRGlyZWN0aXZlIHx8IHRoaXMuZHJvcGRvd25EaXJlY3RpdmUuZHJvcGRvd25Cb3hSZWYgPT09IG51bGxcbiAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgOiB0aGlzLmRyb3Bkb3duRGlyZWN0aXZlLmRyb3Bkb3duQm94UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gaXNOYXRpdmVLZXlib2FyZEZvY3VzYWJsZSh0aGlzLmhvc3QpXG4gICAgICAgICAgICA/IHRoaXMuaG9zdFxuICAgICAgICAgICAgOiBnZXRDbG9zZXN0Rm9jdXNhYmxlKHRoaXMuaG9zdCwgZmFsc2UsIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9ob3N0ZWRfZHJvcGRvd25fZm9jdXNlZCcpXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBpc05hdGl2ZUZvY3VzZWRJbih0aGlzLmhvc3QpIHx8XG4gICAgICAgICAgICAodGhpcy5vcGVuICYmICEhdGhpcy53cmFwcGVyICYmIGlzTmF0aXZlRm9jdXNlZEluKHRoaXMud3JhcHBlci5uYXRpdmVFbGVtZW50KSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdmb2N1c2luJywgWyckZXZlbnQudGFyZ2V0J10pXG4gICAgb25Gb2N1c0luKHRhcmdldDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaG9zdCA9IHRoaXMuZHJvcGRvd25Ib3N0XG4gICAgICAgICAgICA/IHRoaXMuZHJvcGRvd25Ib3N0Lm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgIDogdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50IHx8IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgIGlmICghaG9zdC5jb250YWlucyh0YXJnZXQpKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU9wZW4oZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudC50YXJnZXQnXSlcbiAgICBvbkNsaWNrKHRhcmdldDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaG9zdCA9IHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8fCB0aGlzLmhvc3Q7XG4gICAgICAgIGNvbnN0IGRyb3Bkb3duSG9zdCA9IHRoaXMuZHJvcGRvd25Ib3N0ID8gdGhpcy5kcm9wZG93bkhvc3QubmF0aXZlRWxlbWVudCA6IGhvc3Q7XG5cbiAgICAgICAgaWYgKCF0aGlzLmhvc3RFZGl0YWJsZSAmJiBkcm9wZG93bkhvc3QuY29udGFpbnModGFyZ2V0KSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVPcGVuKCF0aGlzLm9wZW4pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5lc2MnLCBbJyRldmVudCddKVxuICAgIG9uS2V5RG93bkVzYyhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmNhbk9wZW4gfHwgIXRoaXMub3Blbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dEb3duJywgWyckZXZlbnQnLCAndHJ1ZSddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dVcCcsIFsnJGV2ZW50JywgJ2ZhbHNlJ10pXG4gICAgb25BcnJvdyhldmVudDogS2V5Ym9hcmRFdmVudCwgZG93bjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmZvY3VzRHJvcGRvd24oZXZlbnQsIGRvd24pO1xuICAgIH1cblxuICAgIG9uS2V5ZG93bih7a2V5LCB0YXJnZXQsIGRlZmF1bHRQcmV2ZW50ZWR9OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICFkZWZhdWx0UHJldmVudGVkICYmXG4gICAgICAgICAgICBpc0VkaXRpbmdLZXkoa2V5KSAmJlxuICAgICAgICAgICAgdGhpcy5ob3N0RWRpdGFibGUgJiZcbiAgICAgICAgICAgIC8vIFRPRE86IGlmcmFtZSB3YXJuaW5nXG4gICAgICAgICAgICB0YXJnZXQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCAmJlxuICAgICAgICAgICAgIWlzRWxlbWVudEVkaXRhYmxlKHRhcmdldClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzSG9zdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25BY3RpdmVab25lKGFjdGl2ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWQoYWN0aXZlKTtcblxuICAgICAgICBpZiAoIWFjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVPcGVuKGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uSG9zdE9ic2N1cmVkKG9ic2N1cmVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmIChvYnNjdXJlZCkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1cGRhdGVPcGVuKG9wZW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKG9wZW4gJiYgIXRoaXMuY2FuT3Blbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vcGVuID0gb3BlbjtcbiAgICAgICAgdGhpcy5vcGVuQ2hhbmdlLmVtaXQob3Blbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaG9zdEVkaXRhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBob3N0ID0gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50IHx8IHRoaXMuaG9zdDtcblxuICAgICAgICAvLyBUT0RPOiBpZnJhbWUgd2FybmluZ1xuICAgICAgICByZXR1cm4gaG9zdCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ICYmIGlzRWxlbWVudEVkaXRhYmxlKGhvc3QpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZm9jdXNEcm9wZG93bihldmVudDogS2V5Ym9hcmRFdmVudCwgZmlyc3Q6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaG9zdCA9IHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudDtcblxuICAgICAgICAvLyBUT0RPOiBpZnJhbWUgd2FybmluZ1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhaG9zdCB8fFxuICAgICAgICAgICAgIShob3N0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHx8XG4gICAgICAgICAgICAhKGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIE5vZGUpIHx8XG4gICAgICAgICAgICAhaG9zdC5jb250YWlucyhldmVudC50YXJnZXQpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgIXRoaXMud3JhcHBlciB8fFxuICAgICAgICAgICAgIXRoaXMub3BlbiB8fFxuICAgICAgICAgICAgdGhpcy5kcm9wZG93biA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgLy8gVE9ETzogaWZyYW1lIHdhcm5pbmdcbiAgICAgICAgICAgICEodGhpcy53cmFwcGVyLm5hdGl2ZUVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVPcGVuKHRydWUpO1xuXG4gICAgICAgICAgICBpZiAoIWlzRWxlbWVudEVkaXRhYmxlKGhvc3QpKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaW5pdGlhbCA9IGZpcnN0XG4gICAgICAgICAgICA/IHRoaXMud3JhcHBlci5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgICA6IHRoaXMud3JhcHBlci5uYXRpdmVFbGVtZW50Lm5leHRFbGVtZW50U2libGluZztcbiAgICAgICAgY29uc3QgZm9jdXNhYmxlID0gZ2V0Q2xvc2VzdEZvY3VzYWJsZShcbiAgICAgICAgICAgIGluaXRpYWwsXG4gICAgICAgICAgICAhZmlyc3QsXG4gICAgICAgICAgICB0aGlzLndyYXBwZXIubmF0aXZlRWxlbWVudCxcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoZm9jdXNhYmxlID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzZXROYXRpdmVGb2N1c2VkKGZvY3VzYWJsZSk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbG9zZURyb3Bkb3duKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5mb2N1c2VkKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzSG9zdCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVPcGVuKGZhbHNlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZvY3VzSG9zdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaG9zdCA9IHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudDtcblxuICAgICAgICBpZiAoaG9zdCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgc2V0TmF0aXZlRm9jdXNlZChob3N0LCB0cnVlLCB0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlRm9jdXNlZChmb2N1c2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9jdXNlZENoYW5nZS5lbWl0KGZvY3VzZWQpO1xuICAgIH1cbn1cbiJdfQ==
230
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdGVkLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvaG9zdGVkLWRyb3Bkb3duLyIsInNvdXJjZXMiOlsiaG9zdGVkLWRyb3Bkb3duLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQix5QkFBeUIsRUFDekIsZ0JBQWdCLEVBQ2hCLDJCQUEyQixFQUczQixjQUFjLEdBR2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFDSCw0QkFBNEIsRUFDNUIsK0JBQStCLEVBQy9CLDhCQUE4QixHQUNqQyxNQUFNLCtDQUErQyxDQUFDO0FBQ3ZELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUdoRSxPQUFPLEVBQUMsbUNBQW1DLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQWUxRjtJQTRCSSxvQ0FDeUMsVUFBc0IsRUFFbEQsVUFBMEM7UUFGZCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBRWxELGVBQVUsR0FBVixVQUFVLENBQWdDO1FBbkJ2RCxZQUFPLEdBQXdFLEVBQUUsQ0FBQztRQUlsRixZQUFPLEdBQUcsSUFBSSxDQUFDO1FBSWYsU0FBSSxHQUFHLEtBQUssQ0FBQztRQUdKLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBR3pDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztJ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QUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDckQsWUFBWSxDQUFDLGlCQUFpQixFQUFFLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDOzZEQUdwRDtJQS9GUSwwQkFBMEI7UUFidEMsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLHFCQUFxQjtZQUMvQiwrcENBQThDO1lBRTlDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO1lBQy9DLFNBQVMsRUFBRTtnQkFDUDtvQkFDSSxPQUFPLEVBQUUsMkJBQTJCO29CQUNwQyxXQUFXLEVBQUUsVUFBVSxDQUFDLGNBQU0sT0FBQSw0QkFBMEIsRUFBMUIsQ0FBMEIsQ0FBQztpQkFDNUQ7Z0JBQ0QsNEJBQTRCO2FBQy9COztTQUNKLENBQUM7UUE4Qk8sV0FBQSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDbEIsV0FBQSxNQUFNLENBQUMsK0JBQStCLENBQUMsQ0FBQTtPQTlCbkMsMEJBQTBCLENBNk10QztJQUFELGlDQUFDO0NBQUEsQUE3TUQsSUE2TUM7U0E3TVksMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgZ2V0Q2xvc2VzdEZvY3VzYWJsZSxcbiAgICBpc0VsZW1lbnRFZGl0YWJsZSxcbiAgICBpc05hdGl2ZUZvY3VzZWRJbixcbiAgICBpc05hdGl2ZUtleWJvYXJkRm9jdXNhYmxlLFxuICAgIHNldE5hdGl2ZUZvY3VzZWQsXG4gICAgVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgIFR1aUFjdGl2ZVpvbmVEaXJlY3RpdmUsXG4gICAgVHVpQ29udGV4dFdpdGhJbXBsaWNpdCxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1R1aURyb3Bkb3duRGlyZWN0aXZlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2Ryb3Bkb3duJztcbmltcG9ydCB7XG4gICAgRFJPUERPV05fQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICBUVUlfRFJPUERPV05fV0FUQ0hFRF9DT05UUk9MTEVSLFxuICAgIFR1aURyb3Bkb3duQ29udHJvbGxlckRpcmVjdGl2ZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9kcm9wZG93bi1jb250cm9sbGVyJztcbmltcG9ydCB7aXNFZGl0aW5nS2V5fSBmcm9tICdAdGFpZ2EtdWkvY29yZS91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcblxuaW1wb3J0IHtUdWlIb3N0ZWREcm9wZG93bkNvbm5lY3RvckRpcmVjdGl2ZX0gZnJvbSAnLi9ob3N0ZWQtZHJvcGRvd24tY29ubmVjdG9yLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWhvc3RlZC1kcm9wZG93bicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2hvc3RlZC1kcm9wZG93bi50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9ob3N0ZWQtZHJvcGRvd24uc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUdWlIb3N0ZWREcm9wZG93bkNvbXBvbmVudCksXG4gICAgICAgIH0sXG4gICAgICAgIERST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVIsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSG9zdGVkRHJvcGRvd25Db21wb25lbnQgaW1wbGVtZW50cyBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3Ige1xuICAgIEBDb250ZW50Q2hpbGQoVHVpSG9zdGVkRHJvcGRvd25Db25uZWN0b3JEaXJlY3RpdmUsIHtyZWFkOiBFbGVtZW50UmVmfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRyb3Bkb3duSG9zdD86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZCgnd3JhcHBlcicsIHtyZWFkOiBFbGVtZW50UmVmfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdyYXBwZXI/OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICAgIEBWaWV3Q2hpbGQoVHVpRHJvcGRvd25EaXJlY3RpdmUpXG4gICAgcHJpdmF0ZSByZWFkb25seSBkcm9wZG93bkRpcmVjdGl2ZT86IFR1aURyb3Bkb3duRGlyZWN0aXZlO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGNvbnRlbnQ6IFBvbHltb3JwaGV1c0NvbnRlbnQ8VHVpQ29udGV4dFdpdGhJbXBsaWNpdDxUdWlBY3RpdmVab25lRGlyZWN0aXZlPj4gPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBjYW5PcGVuID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBvcGVuID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBvcGVuQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgZm9jdXNlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgQEluamVjdChUVUlfRFJPUERPV05fV0FUQ0hFRF9DT05UUk9MTEVSKVxuICAgICAgICByZWFkb25seSBjb250cm9sbGVyOiBUdWlEcm9wZG93bkNvbnRyb2xsZXJEaXJlY3RpdmUsXG4gICAgKSB7fVxuXG4gICAgZ2V0IGhvc3QoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5kcm9wZG93bkhvc3RcbiAgICAgICAgICAgID8gdGhpcy5kcm9wZG93bkhvc3QubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgOiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBnZXQgZHJvcGRvd24oKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmRyb3Bkb3duRGlyZWN0aXZlIHx8IHRoaXMuZHJvcGRvd25EaXJlY3RpdmUuZHJvcGRvd25Cb3hSZWYgPT09IG51bGxcbiAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgOiB0aGlzLmRyb3Bkb3duRGlyZWN0aXZlLmRyb3Bkb3duQm94UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gaXNOYXRpdmVLZXlib2FyZEZvY3VzYWJsZSh0aGlzLmhvc3QpXG4gICAgICAgICAgICA/IHRoaXMuaG9zdFxuICAgICAgICAgICAgOiBnZXRDbG9zZXN0Rm9jdXNhYmxlKHRoaXMuaG9zdCwgZmFsc2UsIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9ob3N0ZWRfZHJvcGRvd25fZm9jdXNlZCcpXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBpc05hdGl2ZUZvY3VzZWRJbih0aGlzLmhvc3QpIHx8XG4gICAgICAgICAgICAodGhpcy5vcGVuICYmICEhdGhpcy53cmFwcGVyICYmIGlzTmF0aXZlRm9jdXNlZEluKHRoaXMud3JhcHBlci5uYXRpdmVFbGVtZW50KSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdmb2N1c2luJywgWyckZXZlbnQudGFyZ2V0J10pXG4gICAgb25Gb2N1c0luKHRhcmdldDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaG9zdCA9IHRoaXMuZHJvcGRvd25Ib3N0XG4gICAgICAgICAgICA/IHRoaXMuZHJvcGRvd25Ib3N0Lm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgIDogdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50IHx8IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgIGlmICghaG9zdC5jb250YWlucyh0YXJnZXQpKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU9wZW4oZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudC50YXJnZXQnXSlcbiAgICBvbkNsaWNrKHRhcmdldDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaG9zdCA9IHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8fCB0aGlzLmhvc3Q7XG4gICAgICAgIGNvbnN0IGRyb3Bkb3duSG9zdCA9IHRoaXMuZHJvcGRvd25Ib3N0ID8gdGhpcy5kcm9wZG93bkhvc3QubmF0aXZlRWxlbWVudCA6IGhvc3Q7XG5cbiAgICAgICAgaWYgKCF0aGlzLmhvc3RFZGl0YWJsZSAmJiBkcm9wZG93bkhvc3QuY29udGFpbnModGFyZ2V0KSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVPcGVuKCF0aGlzLm9wZW4pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5lc2MnLCBbJyRldmVudCddKVxuICAgIG9uS2V5RG93bkVzYyhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmNhbk9wZW4gfHwgIXRoaXMub3Blbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dEb3duJywgWyckZXZlbnQnLCAndHJ1ZSddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dVcCcsIFsnJGV2ZW50JywgJ2ZhbHNlJ10pXG4gICAgb25BcnJvdyhldmVudDogS2V5Ym9hcmRFdmVudCwgZG93bjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmZvY3VzRHJvcGRvd24oZXZlbnQsIGRvd24pO1xuICAgIH1cblxuICAgIG9uS2V5ZG93bih7a2V5LCB0YXJnZXQsIGRlZmF1bHRQcmV2ZW50ZWR9OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICFkZWZhdWx0UHJldmVudGVkICYmXG4gICAgICAgICAgICBpc0VkaXRpbmdLZXkoa2V5KSAmJlxuICAgICAgICAgICAgdGhpcy5ob3N0RWRpdGFibGUgJiZcbiAgICAgICAgICAgIC8vIFRPRE86IGlmcmFtZSB3YXJuaW5nXG4gICAgICAgICAgICB0YXJnZXQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCAmJlxuICAgICAgICAgICAgIWlzRWxlbWVudEVkaXRhYmxlKHRhcmdldClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzSG9zdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25BY3RpdmVab25lKGFjdGl2ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWQoYWN0aXZlKTtcblxuICAgICAgICBpZiAoIWFjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVPcGVuKGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uSG9zdE9ic2N1cmVkKG9ic2N1cmVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmIChvYnNjdXJlZCkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1cGRhdGVPcGVuKG9wZW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKG9wZW4gJiYgIXRoaXMuY2FuT3Blbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vcGVuID0gb3BlbjtcbiAgICAgICAgdGhpcy5vcGVuQ2hhbmdlLmVtaXQob3Blbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaG9zdEVkaXRhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBob3N0ID0gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50IHx8IHRoaXMuaG9zdDtcblxuICAgICAgICAvLyBUT0RPOiBpZnJhbWUgd2FybmluZ1xuICAgICAgICByZXR1cm4gaG9zdCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ICYmIGlzRWxlbWVudEVkaXRhYmxlKGhvc3QpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZm9jdXNEcm9wZG93bihldmVudDogS2V5Ym9hcmRFdmVudCwgZmlyc3Q6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaG9zdCA9IHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudDtcblxuICAgICAgICAvLyBUT0RPOiBpZnJhbWUgd2FybmluZ1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhaG9zdCB8fFxuICAgICAgICAgICAgIShob3N0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHx8XG4gICAgICAgICAgICAhKGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIE5vZGUpIHx8XG4gICAgICAgICAgICAhaG9zdC5jb250YWlucyhldmVudC50YXJnZXQpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgIXRoaXMud3JhcHBlciB8fFxuICAgICAgICAgICAgIXRoaXMub3BlbiB8fFxuICAgICAgICAgICAgdGhpcy5kcm9wZG93biA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgLy8gVE9ETzogaWZyYW1lIHdhcm5pbmdcbiAgICAgICAgICAgICEodGhpcy53cmFwcGVyLm5hdGl2ZUVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVPcGVuKHRydWUpO1xuXG4gICAgICAgICAgICBpZiAoIWlzRWxlbWVudEVkaXRhYmxlKGhvc3QpKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaW5pdGlhbCA9IGZpcnN0XG4gICAgICAgICAgICA/IHRoaXMud3JhcHBlci5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgICA6IHRoaXMud3JhcHBlci5uYXRpdmVFbGVtZW50Lm5leHRFbGVtZW50U2libGluZztcbiAgICAgICAgY29uc3QgZm9jdXNhYmxlID0gZ2V0Q2xvc2VzdEZvY3VzYWJsZShcbiAgICAgICAgICAgIGluaXRpYWwsXG4gICAgICAgICAgICAhZmlyc3QsXG4gICAgICAgICAgICB0aGlzLndyYXBwZXIubmF0aXZlRWxlbWVudCxcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoZm9jdXNhYmxlID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzZXROYXRpdmVGb2N1c2VkKGZvY3VzYWJsZSk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbG9zZURyb3Bkb3duKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5mb2N1c2VkKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzSG9zdCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVPcGVuKGZhbHNlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZvY3VzSG9zdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaG9zdCA9IHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudDtcblxuICAgICAgICBpZiAoaG9zdCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgc2V0TmF0aXZlRm9jdXNlZChob3N0LCB0cnVlLCB0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlRm9jdXNlZChmb2N1c2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9jdXNlZENoYW5nZS5lbWl0KGZvY3VzZWQpO1xuICAgIH1cbn1cbiJdfQ==
@@ -109,7 +109,7 @@ var TuiLinkComponent = /** @class */ (function () {
109
109
  host: {
110
110
  '($.data-mode.attr)': 'mode$',
111
111
  },
112
- styles: [":host{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;border:0;background:0 0;font-size:inherit;line-height:inherit;transition-property:color;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;color:var(--tui-link);text-decoration:none;text-align:left;text-transform:inherit;font-weight:inherit;cursor:pointer;outline:0}:host:hover{color:var(--tui-link-hover)}:host:disabled{opacity:var(--tui-disabled-opacity);cursor:default}:host[data-mode=onLight]{color:var(--tui-text-02)}:host[data-mode=onLight]._active,:host[data-mode=onLight]:hover{color:var(--tui-text-01)}:host[data-mode=onLight]._pseudo{color:var(--tui-text-01)}:host[data-mode=onLight]._pseudo .t-content{-webkit-text-decoration-color:rgba(0,0,0,.48);text-decoration-color:rgba(0,0,0,.48)}:host[data-mode=onLight]._pseudo._active,:host[data-mode=onLight]._pseudo:hover{color:var(--tui-text-03)}:host[data-mode=onLight][data-host-mode=negative]{color:var(--tui-negative-night)}:host[data-mode=onLight][data-host-mode=negative]._active,:host[data-mode=onLight][data-host-mode=negative]:active,:host[data-mode=onLight][data-host-mode=negative]:hover{color:var(--tui-negative-night-hover)}:host[data-mode=onDark]{color:var(--tui-text-03-night)}:host[data-mode=onDark]._active,:host[data-mode=onDark]:active,:host[data-mode=onDark]:hover{color:var(--tui-text-01-night)}:host[data-mode=onDark]._pseudo{color:var(--tui-text-01-night)}:host[data-mode=onDark]._pseudo .t-content{-webkit-text-decoration-color:rgba(255,255,255,.48);text-decoration-color:rgba(255,255,255,.48)}:host[data-mode=onDark]._pseudo._active,:host[data-mode=onDark]._pseudo:active,:host[data-mode=onDark]._pseudo:hover{color:var(--tui-text-03-night)}:host[data-mode=onDark][data-host-mode=positive]{color:var(--tui-positive-night)}:host[data-mode=onDark][data-host-mode=positive]._active,:host[data-mode=onDark][data-host-mode=positive]:active,:host[data-mode=onDark][data-host-mode=positive]:hover{color:var(--tui-positive-night-hover)}:host[data-host-mode=negative]{color:var(--tui-negative)}:host[data-host-mode=negative]:hover{color:var(--tui-negative-hover)}:host[data-host-mode=negative]._pseudo .t-content{-webkit-text-decoration-color:rgba(222,76,30,.48);text-decoration-color:rgba(222,76,30,.48)}:host[data-host-mode=positive]{color:var(--tui-positive)}:host[data-host-mode=positive]:hover{color:var(--tui-positive-hover)}:host[data-host-mode=positive]._pseudo .t-content{-webkit-text-decoration-color:rgba(58,169,129,.48);text-decoration-color:rgba(58,169,129,.48)}.t-content{display:inline-block}:host._focus-visible .t-content{background:var(--tui-selection)}:host[data-mode=onLight]._focus-visible .t-content{background:var(--tui-clear);color:var(--tui-text-01)}:host[data-mode=onDark]._focus-visible .t-content{background:var(--tui-clear-inverse);color:var(--tui-text-01-night)}:host[data-host-mode=positive]._focus-visible .t-content{background:var(--tui-success-bg)}:host[data-host-mode=negative]._focus-visible .t-content{background:var(--tui-error-bg)}:host._pseudo .t-content{padding-bottom:.15em;-webkit-text-decoration:underline dashed rgba(51,111,238,.48);text-decoration:underline dashed rgba(51,111,238,.48);text-underline-offset:.2em;text-decoration-thickness:.7px}.t-icon{transition-property:transform;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;margin-top:-.125rem;opacity:.8}.t-icon_left{margin-right:.25rem}.t-icon_right{margin-left:.25rem}:host:hover .t-icon{opacity:1}:host._icon-rotated .t-icon{transform:rotate(180deg)}"]
112
+ styles: [":host{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;border:0;background:0 0;font-size:inherit;line-height:inherit;transition-property:color;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;color:var(--tui-link);text-decoration:none;text-align:left;text-transform:inherit;font-weight:inherit;cursor:pointer;outline:0}:host:hover{color:var(--tui-link-hover)}:host:disabled{opacity:var(--tui-disabled-opacity);cursor:default}:host[data-mode=onLight]{color:var(--tui-text-02)}:host[data-mode=onLight]._active,:host[data-mode=onLight]:hover{color:var(--tui-text-01)}:host[data-mode=onLight]._pseudo{color:var(--tui-text-01)}:host[data-mode=onLight]._pseudo .t-content{-webkit-text-decoration-color:rgba(0,0,0,.48);text-decoration-color:rgba(0,0,0,.48)}:host[data-mode=onLight]._pseudo._active,:host[data-mode=onLight]._pseudo:hover{color:var(--tui-text-03)}:host[data-mode=onLight][data-host-mode=negative]{color:var(--tui-negative-night)}:host[data-mode=onLight][data-host-mode=negative]._active,:host[data-mode=onLight][data-host-mode=negative]:active,:host[data-mode=onLight][data-host-mode=negative]:hover{color:var(--tui-negative-night-hover)}:host[data-mode=onDark]{color:var(--tui-text-03-night)}:host[data-mode=onDark]._active,:host[data-mode=onDark]:active,:host[data-mode=onDark]:hover{color:var(--tui-text-01-night)}:host[data-mode=onDark]._pseudo{color:var(--tui-text-01-night)}:host[data-mode=onDark]._pseudo .t-content{-webkit-text-decoration-color:rgba(255,255,255,.48);text-decoration-color:rgba(255,255,255,.48)}:host[data-mode=onDark]._pseudo._active,:host[data-mode=onDark]._pseudo:active,:host[data-mode=onDark]._pseudo:hover{color:var(--tui-text-03-night)}:host[data-mode=onDark][data-host-mode=positive]{color:var(--tui-positive-night)}:host[data-mode=onDark][data-host-mode=positive]._active,:host[data-mode=onDark][data-host-mode=positive]:active,:host[data-mode=onDark][data-host-mode=positive]:hover{color:var(--tui-positive-night-hover)}:host[data-host-mode=negative]{color:var(--tui-negative)}:host[data-host-mode=negative]:hover{color:var(--tui-negative-hover)}:host[data-host-mode=negative]._pseudo .t-content{-webkit-text-decoration-color:rgba(222,76,30,.48);text-decoration-color:rgba(222,76,30,.48)}:host[data-host-mode=positive]{color:var(--tui-positive)}:host[data-host-mode=positive]:hover{color:var(--tui-positive-hover)}:host[data-host-mode=positive]._pseudo .t-content{-webkit-text-decoration-color:rgba(58,169,129,.48);text-decoration-color:rgba(58,169,129,.48)}:host._focus-visible .t-content{background:var(--tui-selection)}:host[data-mode=onLight]._focus-visible .t-content{background:var(--tui-clear);color:var(--tui-text-01)}:host[data-mode=onDark]._focus-visible .t-content{background:var(--tui-clear-inverse);color:var(--tui-text-01-night)}:host[data-host-mode=positive]._focus-visible .t-content{background:var(--tui-success-bg)}:host[data-host-mode=negative]._focus-visible .t-content{background:var(--tui-error-bg)}:host._pseudo .t-content{padding-bottom:.15em;-webkit-text-decoration:underline dashed rgba(51,111,238,.48);text-decoration:underline dashed rgba(51,111,238,.48);text-underline-offset:.2em;text-decoration-thickness:.7px}.t-icon{transition-property:transform;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;margin-top:-.125rem;opacity:.8}.t-icon_left{margin-right:.25rem}.t-icon_right{margin-left:.25rem}:host:hover .t-icon{opacity:1}:host._icon-rotated .t-icon{transform:rotate(180deg)}"]
113
113
  }),
114
114
  __param(0, Inject(ElementRef)),
115
115
  __param(1, Inject(TUI_MODE)),
@@ -347,7 +347,7 @@ var TuiPrimitiveTextfieldComponent = /** @class */ (function (_super) {
347
347
  TuiPrimitiveTextfieldComponent = __decorate([
348
348
  Component({
349
349
  selector: 'tui-primitive-textfield',
350
- template: "<ng-container *ngIf=\"content?.changes | async\"></ng-container>\n<tui-wrapper\n automation-id=\"tui-primitive-textfield__wrapper\"\n [appearance]=\"appearance\"\n [readOnly]=\"readOnly\"\n [disabled]=\"disabled\"\n [focused]=\"computedFocused\"\n [hovered]=\"computedHovered\"\n [pressed]=\"computedPressed\"\n [invalid]=\"computedInvalid\"\n [style.--text-indent.px]=\"decor.pre$ | async\"\n (mousedown)=\"onMouseDown($event)\"\n (click.prevent.silent)=\"0\"\n (tuiHoveredChange)=\"onHovered($event)\"\n (tuiAutofilledChange)=\"onAutofilled($event)\"\n>\n <ng-content select=\"input\"></ng-content>\n <input\n #focusableElement\n tuiMaskAccessor\n automation-id=\"tui-primitive-textfield__native-input\"\n class=\"t-input\"\n [attr.disabled]=\"computedDisabled || null\"\n [attr.maxLength]=\"controller.maxLength\"\n [attr.name]=\"name\"\n [attr.aria-placeholder]=\"controller.exampleText\"\n [attr.aria-invalid]=\"computedInvalid\"\n [autocomplete]=\"controller.autocomplete\"\n [type]=\"controller.type\"\n [id]=\"id\"\n [readOnly]=\"readOnly || !editable\"\n [tuiInputMode]=\"controller.inputMode\"\n [tuiFocusable]=\"computedFocusable\"\n [tuiDescribedBy]=\"id\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onModelChange($event)\"\n />\n <div\n *ngIf=\"inputHidden\"\n automation-id=\"tui-primitive-textfield__value\"\n class=\"t-input t-input_template\"\n >\n <ng-content select=\"[polymorpheus-outlet]\"></ng-content>\n </div>\n <div class=\"t-content\">\n <div\n *ngIf=\"iconAlignLeft\"\n polymorpheus-outlet\n class=\"t-icon t-icon_left\"\n [content]=\"iconContent\"\n [context]=\"{$implicit: size}\"\n >\n <ng-template let-iconSrc>\n <tui-svg [src]=\"iconSrc\"></tui-svg>\n </ng-template>\n </div>\n <div class=\"t-wrapper\">\n <label\n *ngIf=\"hasPlaceholder\"\n automation-id=\"tui-primitive-textfield__placeholder\"\n class=\"t-placeholder\"\n [class.t-placeholder_raised]=\"placeholderRaised\"\n [for]=\"computedId\"\n >\n <ng-content></ng-content>\n </label>\n <div class=\"t-wrapper-value-decoration\">\n <tui-value-decoration\n #decor\n automation-id=\"tui-primitive-textfield__value-decoration\"\n aria-hidden=\"true\"\n class=\"t-value-decoration\"\n [style.textIndent.px]=\"getIndent$(focusableElement) | async\"\n ></tui-value-decoration>\n </div>\n </div>\n <div\n *ngIf=\"hasCustomContent\"\n polymorpheus-outlet\n automation-id=\"tui-primitive-textfield__custom-content\"\n class=\"t-custom-content\"\n [content]=\"controller.customContent\"\n >\n <ng-template let-iconSrc>\n <tui-svg\n class=\"t-custom-icon\"\n [src]=\"iconSrc\"\n ></tui-svg>\n </ng-template>\n </div>\n <span\n *ngIf=\"hasCleaner\"\n polymorpheus-outlet\n automation-id=\"tui-primitive-textfield__cleaner\"\n class=\"t-cleaner\"\n [content]=\"iconCleaner\"\n (click.stop)=\"clear()\"\n >\n <ng-template let-icon>\n <tui-svg [src]=\"icon\"></tui-svg>\n </ng-template>\n </span>\n <tui-tooltip\n *ngIf=\"hasTooltip\"\n automation-id=\"tui-primitive-textfield__tooltip\"\n [describeId]=\"computedId\"\n [content]=\"hintController.content || ''\"\n [direction]=\"hintController.direction\"\n [mode]=\"hintController.mode\"\n [showDelay]=\"hintController.showDelay\"\n [hideDelay]=\"hintController.hideDelay\"\n ></tui-tooltip>\n <div\n *ngIf=\"iconAlignRight\"\n polymorpheus-outlet\n class=\"t-icon\"\n [content]=\"iconContent\"\n [context]=\"{$implicit: size}\"\n >\n <ng-template let-iconSrc>\n <tui-svg [src]=\"iconSrc\"></tui-svg>\n </ng-template>\n </div>\n </div>\n</tui-wrapper>\n",
350
+ template: "<ng-container *ngIf=\"content?.changes | async\"></ng-container>\n<tui-wrapper\n automation-id=\"tui-primitive-textfield__wrapper\"\n [appearance]=\"appearance\"\n [readOnly]=\"readOnly\"\n [disabled]=\"disabled\"\n [focused]=\"computedFocused\"\n [hovered]=\"computedHovered\"\n [pressed]=\"computedPressed\"\n [invalid]=\"computedInvalid\"\n [style.--text-indent.px]=\"decor.pre$ | async\"\n (mousedown)=\"onMouseDown($event)\"\n (click.prevent.silent)=\"(0)\"\n (tuiHoveredChange)=\"onHovered($event)\"\n (tuiAutofilledChange)=\"onAutofilled($event)\"\n>\n <ng-content select=\"input\"></ng-content>\n <input\n #focusableElement\n tuiMaskAccessor\n automation-id=\"tui-primitive-textfield__native-input\"\n class=\"t-input\"\n [attr.disabled]=\"computedDisabled || null\"\n [attr.maxLength]=\"controller.maxLength\"\n [attr.name]=\"name\"\n [attr.aria-placeholder]=\"controller.exampleText\"\n [attr.aria-invalid]=\"computedInvalid\"\n [autocomplete]=\"controller.autocomplete\"\n [type]=\"controller.type\"\n [id]=\"id\"\n [readOnly]=\"readOnly || !editable\"\n [tuiInputMode]=\"controller.inputMode\"\n [tuiFocusable]=\"computedFocusable\"\n [tuiDescribedBy]=\"id\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onModelChange($event)\"\n />\n <div\n *ngIf=\"inputHidden\"\n automation-id=\"tui-primitive-textfield__value\"\n class=\"t-input t-input_template\"\n >\n <ng-content select=\"[polymorpheus-outlet]\"></ng-content>\n </div>\n <div class=\"t-content\">\n <div\n *ngIf=\"iconAlignLeft\"\n polymorpheus-outlet\n class=\"t-icon t-icon_left\"\n [content]=\"iconContent\"\n [context]=\"{$implicit: size}\"\n >\n <ng-template let-iconSrc>\n <tui-svg [src]=\"iconSrc\"></tui-svg>\n </ng-template>\n </div>\n <div class=\"t-wrapper\">\n <label\n *ngIf=\"hasPlaceholder\"\n automation-id=\"tui-primitive-textfield__placeholder\"\n class=\"t-placeholder\"\n [class.t-placeholder_raised]=\"placeholderRaised\"\n [for]=\"computedId\"\n >\n <ng-content></ng-content>\n </label>\n <div class=\"t-wrapper-value-decoration\">\n <tui-value-decoration\n #decor\n automation-id=\"tui-primitive-textfield__value-decoration\"\n aria-hidden=\"true\"\n class=\"t-value-decoration\"\n [style.textIndent.px]=\"getIndent$(focusableElement) | async\"\n ></tui-value-decoration>\n </div>\n </div>\n <div\n *ngIf=\"hasCustomContent\"\n polymorpheus-outlet\n automation-id=\"tui-primitive-textfield__custom-content\"\n class=\"t-custom-content\"\n [content]=\"controller.customContent\"\n >\n <ng-template let-iconSrc>\n <tui-svg\n class=\"t-custom-icon\"\n [src]=\"iconSrc\"\n ></tui-svg>\n </ng-template>\n </div>\n <span\n *ngIf=\"hasCleaner\"\n polymorpheus-outlet\n automation-id=\"tui-primitive-textfield__cleaner\"\n class=\"t-cleaner\"\n [content]=\"iconCleaner\"\n (click.stop)=\"clear()\"\n >\n <ng-template let-icon>\n <tui-svg [src]=\"icon\"></tui-svg>\n </ng-template>\n </span>\n <tui-tooltip\n *ngIf=\"hasTooltip\"\n automation-id=\"tui-primitive-textfield__tooltip\"\n [describeId]=\"computedId\"\n [content]=\"hintController.content || ''\"\n [direction]=\"hintController.direction\"\n [mode]=\"hintController.mode\"\n [showDelay]=\"hintController.showDelay\"\n [hideDelay]=\"hintController.hideDelay\"\n ></tui-tooltip>\n <div\n *ngIf=\"iconAlignRight\"\n polymorpheus-outlet\n class=\"t-icon\"\n [content]=\"iconContent\"\n [context]=\"{$implicit: size}\"\n >\n <ng-template let-iconSrc>\n <tui-svg [src]=\"iconSrc\"></tui-svg>\n </ng-template>\n </div>\n </div>\n</tui-wrapper>\n",
351
351
  changeDetection: ChangeDetectionStrategy.OnPush,
352
352
  providers: TUI_PRIMITIVE_TEXTFIELD_PROVIDERS,
353
353
  host: {
@@ -367,4 +367,4 @@ var TuiPrimitiveTextfieldComponent = /** @class */ (function (_super) {
367
367
  return TuiPrimitiveTextfieldComponent;
368
368
  }(AbstractTuiInteractive));
369
369
  export { TuiPrimitiveTextfieldComponent };
370
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlLXRleHRmaWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3ByaW1pdGl2ZS10ZXh0ZmllbGQvIiwic291cmNlcyI6WyJwcmltaXRpdmUtdGV4dGZpZWxkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxzQkFBc0IsRUFDdEIsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUdoQixjQUFjLEVBRWQsT0FBTyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCwyQkFBMkIsRUFDM0IsMEJBQTBCLEdBQzdCLE1BQU0sMkNBQTJDLENBQUM7QUFDbkQsT0FBTyxFQUNILGdDQUFnQyxFQUNoQyxzQkFBc0IsR0FDekIsTUFBTSxnREFBZ0QsQ0FBQztBQUN4RCxPQUFPLEVBQUMsUUFBUSxFQUFFLHdCQUF3QixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFekUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQzdELE9BQU8sRUFBc0IsMkJBQTJCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRixPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkMsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDbEYsT0FBTyxFQUNILCtCQUErQixHQUVsQyxNQUFNLCtCQUErQixDQUFDO0FBRXZDLElBQU0sWUFBWSxH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LFFBQVEsQ0FBQyxDQUFBO1FBQ2hCLFdBQUEsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUE7UUFDaEMsV0FBQSxNQUFNLENBQUMsZ0NBQWdDLENBQUMsQ0FBQTtRQUV4QyxXQUFBLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxDQUFBO1FBRW5DLFdBQUEsTUFBTSxDQUFDLCtCQUErQixDQUFDLENBQUE7UUFFdkMsV0FBQSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7T0E3RWQsOEJBQThCLENBMFExQztJQUFELHFDQUFDO0NBQUEsQUExUUQsQ0FDWSxzQkFBc0IsR0F5UWpDO1NBMVFZLDhCQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlJbnRlcmFjdGl2ZSxcbiAgICBpc05hdGl2ZUZvY3VzZWRJbixcbiAgICBzZXROYXRpdmVGb2N1c2VkLFxuICAgIFR1aUNvbnRleHRXaXRoSW1wbGljaXQsXG4gICAgVHVpQ3JlZGl0Q2FyZEF1dG9maWxsTmFtZSxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgdHVpUHVyZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIFRVSV9ISU5UX1dBVENIRURfQ09OVFJPTExFUixcbiAgICBUdWlIaW50Q29udHJvbGxlckRpcmVjdGl2ZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9oaW50LWNvbnRyb2xsZXInO1xuaW1wb3J0IHtcbiAgICBUVUlfVEVYVEZJRUxEX1dBVENIRURfQ09OVFJPTExFUixcbiAgICBUdWlUZXh0ZmllbGRDb250cm9sbGVyLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL3RleHRmaWVsZC1jb250cm9sbGVyJztcbmltcG9ydCB7VFVJX01PREUsIFRVSV9URVhURklFTERfQVBQRUFSQU5DRX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdG9rZW5zJztcbmltcG9ydCB7VHVpQnJpZ2h0bmVzcywgVHVpU2l6ZUwsIFR1aVNpemVTfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90eXBlcyc7XG5pbXBvcnQge2dldEJvcmRlcn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnQsIFBvbHltb3JwaGV1c091dGxldENvbXBvbmVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7ZnJvbUV2ZW50LCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7VFVJX1BSSU1JVElWRV9URVhURklFTERfUFJPVklERVJTfSBmcm9tICcuL3ByaW1pdGl2ZS10ZXh0ZmllbGQucHJvdmlkZXJzJztcbmltcG9ydCB7XG4gICAgVFVJX1BSSU1JVElWRV9URVhURklFTERfT1BUSU9OUyxcbiAgICBUdWlQcmltaXRpdmVUZXh0ZmllbGRPcHRpb25zLFxufSBmcm9tICcuL3ByaW1pdGl2ZS10ZXh0ZmllbGQtb3B0aW9ucyc7XG5cbmNvbnN0IElDT05fUEFERElORyA9IDEuNzU7XG5jb25zdCBJQ09OX1BBRERJTkdfUyA9IDEuNTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktcHJpbWl0aXZlLXRleHRmaWVsZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3ByaW1pdGl2ZS10ZXh0ZmllbGQudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcHJpbWl0aXZlLXRleHRmaWVsZC5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBUVUlfUFJJTUlUSVZFX1RFWFRGSUVMRF9QUk9WSURFUlMsXG4gICAgaG9zdDoge1xuICAgICAgICAnKCQuZGF0YS1tb2RlLmF0dHIpJzogJ21vZGUkJyxcbiAgICAgICAgJ1tjbGFzcy5fYXV0b2ZpbGxlZF0nOiAnYXV0b2ZpbGxlZCcsXG4gICAgICAgICdbY2xhc3MuX2xhYmVsLW91dHNpZGVdJzogJ2NvbnRyb2xsZXIubGFiZWxPdXRzaWRlJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpSW50ZXJhY3RpdmVcbiAgICBpbXBsZW1lbnRzIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvclxue1xuICAgIEBWaWV3Q2hpbGQoJ2ZvY3VzYWJsZUVsZW1lbnQnKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9jdXNhYmxlRWxlbWVudD86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZWRpdGFibGUgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGZpbGxlciA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGljb25BbGlnbjogVHVpUHJpbWl0aXZlVGV4dGZpZWxkT3B0aW9uc1snaWNvbkFsaWduJ10gPSB0aGlzLm9wdGlvbnMuaWNvbkFsaWduO1xuXG4gICAgLy8gVE9ETzogMy4wIFJlbW92ZSBudWxsXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGljb25Db250ZW50OiBQb2x5bW9ycGhldXNDb250ZW50PFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8VHVpU2l6ZVMgfCBUdWlTaXplTD4+IHwgbnVsbCA9XG4gICAgICAgIG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaWNvbkNsZWFuZXI6IFR1aVByaW1pdGl2ZVRleHRmaWVsZE9wdGlvbnNbJ2ljb25DbGVhbmVyJ10gPSB0aGlzLm9wdGlvbnMuaWNvbkNsZWFuZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX3JlYWRvbmx5JylcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHJlYWRPbmx5ID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaW52YWxpZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgcHJlZml4ID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgcG9zdGZpeCA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHZhbHVlID0gJyc7XG5cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgVE9ETzogMy4wIHJlbW92ZVxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGF1dG9maWxsZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKFBvbHltb3JwaGV1c091dGxldENvbXBvbmVudClcbiAgICByZWFkb25seSBjb250ZW50PzogUXVlcnlMaXN0PHVua25vd24+O1xuXG4gICAgYXV0b2ZpbGxlZCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoVFVJX01PREUpIHJlYWRvbmx5IG1vZGUkOiBPYnNlcnZhYmxlPFR1aUJyaWdodG5lc3MgfCBudWxsPixcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX0FQUEVBUkFOQ0UpIHJlYWRvbmx5IGFwcGVhcmFuY2U6IHN0cmluZyxcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX1dBVENIRURfQ09OVFJPTExFUilcbiAgICAgICAgcmVhZG9ubHkgY29udHJvbGxlcjogVHVpVGV4dGZpZWxkQ29udHJvbGxlcixcbiAgICAgICAgQEluamVjdChUVUlfSElOVF9XQVRDSEVEX0NPTlRST0xMRVIpXG4gICAgICAgIHJlYWRvbmx5IGhpbnRDb250cm9sbGVyOiBUdWlIaW50Q29udHJvbGxlckRpcmVjdGl2ZSxcbiAgICAgICAgQEluamVjdChUVUlfUFJJTUlUSVZFX1RFWFRGSUVMRF9PUFRJT05TKVxuICAgICAgICByZWFkb25seSBvcHRpb25zOiBUdWlQcmltaXRpdmVUZXh0ZmllbGRPcHRpb25zLFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICBpZiAodGhpcy5jb21wdXRlZERpc2FibGVkIHx8ICF0aGlzLmZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVE9ETzogMy4wIFJlZmFjdG9yIHRoaXMgYWZ0ZXIgd2UgZHJvcCBidWlsdC1pbiBpbnB1dCBlbGVtZW50XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAodGhpcy5mb2N1c2FibGVFbGVtZW50Lm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgICAgICAucHJldmlvdXNFbGVtZW50U2libGluZyBhcyBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCkgfHxcbiAgICAgICAgICAgIHRoaXMuZm9jdXNhYmxlRWxlbWVudC5uYXRpdmVFbGVtZW50XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpc05hdGl2ZUZvY3VzZWRJbih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtc2l6ZScpXG4gICAgZ2V0IHNpemUoKTogVHVpU2l6ZVMgfCBUdWlTaXplTCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2xsZXIuc2l6ZTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9pbnZhbGlkJylcbiAgICBnZXQgY29tcHV0ZWRJbnZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMucmVhZE9ubHkgJiYgIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy5pbnZhbGlkO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX2hpZGRlbicpXG4gICAgZ2V0IGlucHV0SGlkZGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmNvbnRlbnQ/Lmxlbmd0aDtcbiAgICB9XG5cbiAgICBnZXQgaGFzVmFsdWUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0NsZWFuZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2xsZXIuY2xlYW5lciAmJiB0aGlzLmhhc1ZhbHVlICYmICF0aGlzLmRpc2FibGVkICYmICF0aGlzLnJlYWRPbmx5XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGhhc1Rvb2x0aXAoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuaGludENvbnRyb2xsZXI/LmNvbnRlbnQgJiYgIXRoaXMuZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0N1c3RvbUNvbnRlbnQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuY29udHJvbGxlci5jdXN0b21Db250ZW50O1xuICAgIH1cblxuICAgIGdldCBzaG93T25seVBsYWNlaG9sZGVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5mb2N1c2VkICYmXG4gICAgICAgICAgICB0aGlzLnBsYWNlaG9sZGVyVmlzaWJsZSAmJlxuICAgICAgICAgICAgKHRoaXMuc2l6ZSA9PT0gJ3MnIHx8ICh0aGlzLnNpemUgPT09ICdtJyAmJiAhdGhpcy5wbGFjZWhvbGRlclJhaXNhYmxlKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgcGxhY2Vob2xkZXJWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBoYXNEZWNvciA9XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2xsZXIuZXhhbXBsZVRleHQgfHxcbiAgICAgICAgICAgIHRoaXMucHJlZml4IHx8XG4gICAgICAgICAgICB0aGlzLnBvc3RmaXggfHxcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudD8ucGxhY2Vob2xkZXI7XG4gICAgICAgIGNvbnN0IHNob3dEZWNvciA9IGhhc0RlY29yICYmICF0aGlzLnJlYWRPbmx5ICYmIHRoaXMuY29tcHV0ZWRGb2N1c2VkO1xuXG4gICAgICAgIHJldHVybiAhdGhpcy5oYXNWYWx1ZSAmJiAhc2hvd0RlY29yO1xuICAgIH1cblxuICAgIGdldCBoYXNQbGFjZWhvbGRlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICF0aGlzLnNob3dPbmx5UGxhY2Vob2xkZXIgJiZcbiAgICAgICAgICAgICh0aGlzLnBsYWNlaG9sZGVyUmFpc2FibGUgfHwgdGhpcy5wbGFjZWhvbGRlclZpc2libGUpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IHBsYWNlaG9sZGVyUmFpc2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5wbGFjZWhvbGRlclJhaXNhYmxlICYmXG4gICAgICAgICAgICAoKHRoaXMuY29tcHV0ZWRGb2N1c2VkICYmICF0aGlzLnJlYWRPbmx5KSB8fCB0aGlzLmhhc1ZhbHVlIHx8IHRoaXMuYXV0b2ZpbGxlZClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLi0tYm9yZGVyLXN0YXJ0LnJlbScpXG4gICAgZ2V0IGJvcmRlclN0YXJ0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmljb25BbGlnbkxlZnQgPyB0aGlzLmljb25QYWRkaW5nTGVmdCA6IDA7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLWJvcmRlci1lbmQucmVtJylcbiAgICBnZXQgYm9yZGVyRW5kKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBnZXRCb3JkZXIoXG4gICAgICAgICAgICB0aGlzLmljb25BbGlnblJpZ2h0LFxuICAgICAgICAgICAgdGhpcy5oYXNDbGVhbmVyLFxuICAgICAgICAgICAgdGhpcy5oYXNUb29sdGlwLFxuICAgICAgICAgICAgdGhpcy5oYXNDdXN0b21Db250ZW50LFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBpY29uQWxpZ25MZWZ0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNJY29uICYmIHRoaXMuaWNvbkFsaWduID09PSAnbGVmdCc7XG4gICAgfVxuXG4gICAgZ2V0IGljb25BbGlnblJpZ2h0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNJY29uICYmIHRoaXMuaWNvbkFsaWduID09PSAncmlnaHQnO1xuICAgIH1cblxuICAgIC8vIFNhZmFyaSBleHBpcmF0aW9uIGRhdGUgYXV0b2ZpbGwgd29ya2Fyb3VuZFxuICAgIGdldCBuYW1lKCk6ICdjY2V4cGlyeXllYXInIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2xsZXIuYXV0b2NvbXBsZXRlID09PSBUdWlDcmVkaXRDYXJkQXV0b2ZpbGxOYW1lLkNjRXhwXG4gICAgICAgICAgICA/ICdjY2V4cGlyeXllYXInXG4gICAgICAgICAgICA6IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkSWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudD8uaWQgfHwgJyc7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXNpbicsIFsndHJ1ZSddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgWydmYWxzZSddKVxuICAgIG9uRm9jdXNlZChmb2N1c2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChmb2N1c2VkKTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIGdldEluZGVudCQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgICAgICByZXR1cm4gZnJvbUV2ZW50KGVsZW1lbnQsICdzY3JvbGwnKS5waXBlKG1hcCgoKSA9PiAtMSAqIGVsZW1lbnQuc2Nyb2xsTGVmdCkpO1xuICAgIH1cblxuICAgIGNsZWFyKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoJycpO1xuICAgIH1cblxuICAgIG9uTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHtuYXRpdmVGb2N1c2FibGVFbGVtZW50fSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKCFuYXRpdmVGb2N1c2FibGVFbGVtZW50IHx8IGV2ZW50LnRhcmdldCA9PT0gbmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgc2V0TmF0aXZlRm9jdXNlZChuYXRpdmVGb2N1c2FibGVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBvbk1vZGVsQ2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgb25Ib3ZlcmVkKGhvdmVyZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVIb3ZlcmVkKGhvdmVyZWQpO1xuICAgIH1cblxuICAgIG9uQXV0b2ZpbGxlZChhdXRvZmlsbGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlQXV0b2ZpbGxlZChhdXRvZmlsbGVkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpY29uUGFkZGluZ0xlZnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2l6ZSA9PT0gJ3MnID8gSUNPTl9QQURESU5HX1MgOiBJQ09OX1BBRERJTkc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgcGxhY2Vob2xkZXJSYWlzYWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2l6ZSAhPT0gJ3MnICYmICF0aGlzLmNvbnRyb2xsZXIubGFiZWxPdXRzaWRlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGhhc0ljb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuaWNvbkNvbnRlbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVBdXRvZmlsbGVkKGF1dG9maWxsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYXV0b2ZpbGxlZCA9PT0gYXV0b2ZpbGxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hdXRvZmlsbGVkID0gYXV0b2ZpbGxlZDtcbiAgICAgICAgdGhpcy5hdXRvZmlsbGVkQ2hhbmdlLmVtaXQoYXV0b2ZpbGxlZCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB9XG59XG4iXX0=
370
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlLXRleHRmaWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3ByaW1pdGl2ZS10ZXh0ZmllbGQvIiwic291cmNlcyI6WyJwcmltaXRpdmUtdGV4dGZpZWxkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxzQkFBc0IsRUFDdEIsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUdoQixjQUFjLEVBRWQsT0FBTyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCwyQkFBMkIsRUFDM0IsMEJBQTBCLEdBQzdCLE1BQU0sMkNBQTJDLENBQUM7QUFDbkQsT0FBTyxFQUNILGdDQUFnQyxFQUNoQyxzQkFBc0IsR0FDekIsTUFBTSxnREFBZ0QsQ0FBQztBQUN4RCxPQUFPLEVBQUMsUUFBUSxFQUFFLHdCQUF3QixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFekUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQzdELE9BQU8sRUFBc0IsMkJBQTJCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRixPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkMsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDbEYsT0FBTyxFQUNILCtCQUErQixHQUVsQyxNQUFNLCtCQUErQixDQUFDO0FBRXZDLElBQU0sWUFBWSxH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LFFBQVEsQ0FBQyxDQUFBO1FBQ2hCLFdBQUEsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUE7UUFDaEMsV0FBQSxNQUFNLENBQUMsZ0NBQWdDLENBQUMsQ0FBQTtRQUV4QyxXQUFBLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxDQUFBO1FBRW5DLFdBQUEsTUFBTSxDQUFDLCtCQUErQixDQUFDLENBQUE7UUFFdkMsV0FBQSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7T0E3RWQsOEJBQThCLENBMFExQztJQUFELHFDQUFDO0NBQUEsQUExUUQsQ0FDWSxzQkFBc0IsR0F5UWpDO1NBMVFZLDhCQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlJbnRlcmFjdGl2ZSxcbiAgICBpc05hdGl2ZUZvY3VzZWRJbixcbiAgICBzZXROYXRpdmVGb2N1c2VkLFxuICAgIFR1aUNvbnRleHRXaXRoSW1wbGljaXQsXG4gICAgVHVpQ3JlZGl0Q2FyZEF1dG9maWxsTmFtZSxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgdHVpUHVyZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIFRVSV9ISU5UX1dBVENIRURfQ09OVFJPTExFUixcbiAgICBUdWlIaW50Q29udHJvbGxlckRpcmVjdGl2ZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9oaW50LWNvbnRyb2xsZXInO1xuaW1wb3J0IHtcbiAgICBUVUlfVEVYVEZJRUxEX1dBVENIRURfQ09OVFJPTExFUixcbiAgICBUdWlUZXh0ZmllbGRDb250cm9sbGVyLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL3RleHRmaWVsZC1jb250cm9sbGVyJztcbmltcG9ydCB7VFVJX01PREUsIFRVSV9URVhURklFTERfQVBQRUFSQU5DRX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdG9rZW5zJztcbmltcG9ydCB7VHVpQnJpZ2h0bmVzcywgVHVpU2l6ZUwsIFR1aVNpemVTfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90eXBlcyc7XG5pbXBvcnQge2dldEJvcmRlcn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnQsIFBvbHltb3JwaGV1c091dGxldENvbXBvbmVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7ZnJvbUV2ZW50LCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7VFVJX1BSSU1JVElWRV9URVhURklFTERfUFJPVklERVJTfSBmcm9tICcuL3ByaW1pdGl2ZS10ZXh0ZmllbGQucHJvdmlkZXJzJztcbmltcG9ydCB7XG4gICAgVFVJX1BSSU1JVElWRV9URVhURklFTERfT1BUSU9OUyxcbiAgICBUdWlQcmltaXRpdmVUZXh0ZmllbGRPcHRpb25zLFxufSBmcm9tICcuL3ByaW1pdGl2ZS10ZXh0ZmllbGQtb3B0aW9ucyc7XG5cbmNvbnN0IElDT05fUEFERElORyA9IDEuNzU7XG5jb25zdCBJQ09OX1BBRERJTkdfUyA9IDEuNTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktcHJpbWl0aXZlLXRleHRmaWVsZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3ByaW1pdGl2ZS10ZXh0ZmllbGQudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcHJpbWl0aXZlLXRleHRmaWVsZC5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBUVUlfUFJJTUlUSVZFX1RFWFRGSUVMRF9QUk9WSURFUlMsXG4gICAgaG9zdDoge1xuICAgICAgICAnKCQuZGF0YS1tb2RlLmF0dHIpJzogJ21vZGUkJyxcbiAgICAgICAgJ1tjbGFzcy5fYXV0b2ZpbGxlZF0nOiAnYXV0b2ZpbGxlZCcsXG4gICAgICAgICdbY2xhc3MuX2xhYmVsLW91dHNpZGVdJzogJ2NvbnRyb2xsZXIubGFiZWxPdXRzaWRlJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpSW50ZXJhY3RpdmVcbiAgICBpbXBsZW1lbnRzIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvclxue1xuICAgIEBWaWV3Q2hpbGQoJ2ZvY3VzYWJsZUVsZW1lbnQnKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9jdXNhYmxlRWxlbWVudD86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZWRpdGFibGUgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGZpbGxlciA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGljb25BbGlnbjogVHVpUHJpbWl0aXZlVGV4dGZpZWxkT3B0aW9uc1snaWNvbkFsaWduJ10gPSB0aGlzLm9wdGlvbnMuaWNvbkFsaWduO1xuXG4gICAgLy8gVE9ETzogMy4wIFJlbW92ZSBudWxsXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGljb25Db250ZW50OiBQb2x5bW9ycGhldXNDb250ZW50PFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8VHVpU2l6ZVMgfCBUdWlTaXplTD4+IHwgbnVsbCA9XG4gICAgICAgIG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaWNvbkNsZWFuZXI6IFR1aVByaW1pdGl2ZVRleHRmaWVsZE9wdGlvbnNbJ2ljb25DbGVhbmVyJ10gPSB0aGlzLm9wdGlvbnMuaWNvbkNsZWFuZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX3JlYWRvbmx5JylcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHJlYWRPbmx5ID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaW52YWxpZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgcHJlZml4ID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgcG9zdGZpeCA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHZhbHVlID0gJyc7XG5cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgVE9ETzogMy4wIHJlbW92ZVxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGF1dG9maWxsZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKFBvbHltb3JwaGV1c091dGxldENvbXBvbmVudClcbiAgICByZWFkb25seSBjb250ZW50PzogUXVlcnlMaXN0PHVua25vd24+O1xuXG4gICAgYXV0b2ZpbGxlZCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoVFVJX01PREUpIHJlYWRvbmx5IG1vZGUkOiBPYnNlcnZhYmxlPFR1aUJyaWdodG5lc3MgfCBudWxsPixcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX0FQUEVBUkFOQ0UpIHJlYWRvbmx5IGFwcGVhcmFuY2U6IHN0cmluZyxcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX1dBVENIRURfQ09OVFJPTExFUilcbiAgICAgICAgcmVhZG9ubHkgY29udHJvbGxlcjogVHVpVGV4dGZpZWxkQ29udHJvbGxlcixcbiAgICAgICAgQEluamVjdChUVUlfSElOVF9XQVRDSEVEX0NPTlRST0xMRVIpXG4gICAgICAgIHJlYWRvbmx5IGhpbnRDb250cm9sbGVyOiBUdWlIaW50Q29udHJvbGxlckRpcmVjdGl2ZSxcbiAgICAgICAgQEluamVjdChUVUlfUFJJTUlUSVZFX1RFWFRGSUVMRF9PUFRJT05TKVxuICAgICAgICByZWFkb25seSBvcHRpb25zOiBUdWlQcmltaXRpdmVUZXh0ZmllbGRPcHRpb25zLFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICBpZiAodGhpcy5jb21wdXRlZERpc2FibGVkIHx8ICF0aGlzLmZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVE9ETzogMy4wIFJlZmFjdG9yIHRoaXMgYWZ0ZXIgd2UgZHJvcCBidWlsdC1pbiBpbnB1dCBlbGVtZW50XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAodGhpcy5mb2N1c2FibGVFbGVtZW50Lm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgICAgICAucHJldmlvdXNFbGVtZW50U2libGluZyBhcyBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCkgfHxcbiAgICAgICAgICAgIHRoaXMuZm9jdXNhYmxlRWxlbWVudC5uYXRpdmVFbGVtZW50XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpc05hdGl2ZUZvY3VzZWRJbih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtc2l6ZScpXG4gICAgZ2V0IHNpemUoKTogVHVpU2l6ZVMgfCBUdWlTaXplTCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2xsZXIuc2l6ZTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9pbnZhbGlkJylcbiAgICBnZXQgY29tcHV0ZWRJbnZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMucmVhZE9ubHkgJiYgIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy5pbnZhbGlkO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX2hpZGRlbicpXG4gICAgZ2V0IGlucHV0SGlkZGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmNvbnRlbnQ/Lmxlbmd0aDtcbiAgICB9XG5cbiAgICBnZXQgaGFzVmFsdWUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0NsZWFuZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2xsZXIuY2xlYW5lciAmJiB0aGlzLmhhc1ZhbHVlICYmICF0aGlzLmRpc2FibGVkICYmICF0aGlzLnJlYWRPbmx5XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGhhc1Rvb2x0aXAoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuaGludENvbnRyb2xsZXI/LmNvbnRlbnQgJiYgIXRoaXMuZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0N1c3RvbUNvbnRlbnQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuY29udHJvbGxlci5jdXN0b21Db250ZW50O1xuICAgIH1cblxuICAgIGdldCBzaG93T25seVBsYWNlaG9sZGVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5mb2N1c2VkICYmXG4gICAgICAgICAgICB0aGlzLnBsYWNlaG9sZGVyVmlzaWJsZSAmJlxuICAgICAgICAgICAgKHRoaXMuc2l6ZSA9PT0gJ3MnIHx8ICh0aGlzLnNpemUgPT09ICdtJyAmJiAhdGhpcy5wbGFjZWhvbGRlclJhaXNhYmxlKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgcGxhY2Vob2xkZXJWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBoYXNEZWNvciA9XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2xsZXIuZXhhbXBsZVRleHQgfHxcbiAgICAgICAgICAgIHRoaXMucHJlZml4IHx8XG4gICAgICAgICAgICB0aGlzLnBvc3RmaXggfHxcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudD8ucGxhY2Vob2xkZXI7XG4gICAgICAgIGNvbnN0IHNob3dEZWNvciA9IGhhc0RlY29yICYmICF0aGlzLnJlYWRPbmx5ICYmIHRoaXMuY29tcHV0ZWRGb2N1c2VkO1xuXG4gICAgICAgIHJldHVybiAhdGhpcy5oYXNWYWx1ZSAmJiAhc2hvd0RlY29yO1xuICAgIH1cblxuICAgIGdldCBoYXNQbGFjZWhvbGRlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICF0aGlzLnNob3dPbmx5UGxhY2Vob2xkZXIgJiZcbiAgICAgICAgICAgICh0aGlzLnBsYWNlaG9sZGVyUmFpc2FibGUgfHwgdGhpcy5wbGFjZWhvbGRlclZpc2libGUpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IHBsYWNlaG9sZGVyUmFpc2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5wbGFjZWhvbGRlclJhaXNhYmxlICYmXG4gICAgICAgICAgICAoKHRoaXMuY29tcHV0ZWRGb2N1c2VkICYmICF0aGlzLnJlYWRPbmx5KSB8fCB0aGlzLmhhc1ZhbHVlIHx8IHRoaXMuYXV0b2ZpbGxlZClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLi0tYm9yZGVyLXN0YXJ0LnJlbScpXG4gICAgZ2V0IGJvcmRlclN0YXJ0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmljb25BbGlnbkxlZnQgPyB0aGlzLmljb25QYWRkaW5nTGVmdCA6IDA7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLWJvcmRlci1lbmQucmVtJylcbiAgICBnZXQgYm9yZGVyRW5kKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBnZXRCb3JkZXIoXG4gICAgICAgICAgICB0aGlzLmljb25BbGlnblJpZ2h0LFxuICAgICAgICAgICAgdGhpcy5oYXNDbGVhbmVyLFxuICAgICAgICAgICAgdGhpcy5oYXNUb29sdGlwLFxuICAgICAgICAgICAgdGhpcy5oYXNDdXN0b21Db250ZW50LFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBpY29uQWxpZ25MZWZ0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNJY29uICYmIHRoaXMuaWNvbkFsaWduID09PSAnbGVmdCc7XG4gICAgfVxuXG4gICAgZ2V0IGljb25BbGlnblJpZ2h0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNJY29uICYmIHRoaXMuaWNvbkFsaWduID09PSAncmlnaHQnO1xuICAgIH1cblxuICAgIC8vIFNhZmFyaSBleHBpcmF0aW9uIGRhdGUgYXV0b2ZpbGwgd29ya2Fyb3VuZFxuICAgIGdldCBuYW1lKCk6ICdjY2V4cGlyeXllYXInIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2xsZXIuYXV0b2NvbXBsZXRlID09PSBUdWlDcmVkaXRDYXJkQXV0b2ZpbGxOYW1lLkNjRXhwXG4gICAgICAgICAgICA/ICdjY2V4cGlyeXllYXInXG4gICAgICAgICAgICA6IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkSWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudD8uaWQgfHwgJyc7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXNpbicsIFsndHJ1ZSddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgWydmYWxzZSddKVxuICAgIG9uRm9jdXNlZChmb2N1c2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChmb2N1c2VkKTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIGdldEluZGVudCQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgICAgICByZXR1cm4gZnJvbUV2ZW50KGVsZW1lbnQsICdzY3JvbGwnKS5waXBlKG1hcCgoKSA9PiAtMSAqIGVsZW1lbnQuc2Nyb2xsTGVmdCkpO1xuICAgIH1cblxuICAgIGNsZWFyKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoJycpO1xuICAgIH1cblxuICAgIG9uTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHtuYXRpdmVGb2N1c2FibGVFbGVtZW50fSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKCFuYXRpdmVGb2N1c2FibGVFbGVtZW50IHx8IGV2ZW50LnRhcmdldCA9PT0gbmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgc2V0TmF0aXZlRm9jdXNlZChuYXRpdmVGb2N1c2FibGVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBvbk1vZGVsQ2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgb25Ib3ZlcmVkKGhvdmVyZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVIb3ZlcmVkKGhvdmVyZWQpO1xuICAgIH1cblxuICAgIG9uQXV0b2ZpbGxlZChhdXRvZmlsbGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlQXV0b2ZpbGxlZChhdXRvZmlsbGVkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpY29uUGFkZGluZ0xlZnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2l6ZSA9PT0gJ3MnID8gSUNPTl9QQURESU5HX1MgOiBJQ09OX1BBRERJTkc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgcGxhY2Vob2xkZXJSYWlzYWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2l6ZSAhPT0gJ3MnICYmICF0aGlzLmNvbnRyb2xsZXIubGFiZWxPdXRzaWRlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGhhc0ljb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuaWNvbkNvbnRlbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVBdXRvZmlsbGVkKGF1dG9maWxsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYXV0b2ZpbGxlZCA9PT0gYXV0b2ZpbGxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hdXRvZmlsbGVkID0gYXV0b2ZpbGxlZDtcbiAgICAgICAgdGhpcy5hdXRvZmlsbGVkQ2hhbmdlLmVtaXQoYXV0b2ZpbGxlZCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB9XG59XG4iXX0=