@taiga-ui/kit 2.23.0 → 2.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (439) hide show
  1. package/README.md +7 -3
  2. package/bundles/taiga-ui-kit-components-accordion.umd.js +2 -2
  3. package/bundles/taiga-ui-kit-components-accordion.umd.min.js +1 -1
  4. package/bundles/taiga-ui-kit-components-action.umd.js +1 -1
  5. package/bundles/taiga-ui-kit-components-action.umd.min.js +1 -1
  6. package/bundles/taiga-ui-kit-components-avatar.umd.js +1 -1
  7. package/bundles/taiga-ui-kit-components-avatar.umd.js.map +1 -1
  8. package/bundles/taiga-ui-kit-components-avatar.umd.min.js +1 -1
  9. package/bundles/taiga-ui-kit-components-avatar.umd.min.js.map +1 -1
  10. package/bundles/taiga-ui-kit-components-badge.umd.js +1 -1
  11. package/bundles/taiga-ui-kit-components-badge.umd.js.map +1 -1
  12. package/bundles/taiga-ui-kit-components-badge.umd.min.js +1 -1
  13. package/bundles/taiga-ui-kit-components-badge.umd.min.js.map +1 -1
  14. package/bundles/taiga-ui-kit-components-badged-content.umd.js +1 -1
  15. package/bundles/taiga-ui-kit-components-badged-content.umd.min.js +1 -1
  16. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.js +2 -2
  17. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.js.map +1 -1
  18. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.min.js +1 -1
  19. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.min.js.map +1 -1
  20. package/bundles/taiga-ui-kit-components-calendar-month.umd.js +1 -1
  21. package/bundles/taiga-ui-kit-components-calendar-month.umd.js.map +1 -1
  22. package/bundles/taiga-ui-kit-components-calendar-month.umd.min.js +1 -1
  23. package/bundles/taiga-ui-kit-components-calendar-month.umd.min.js.map +1 -1
  24. package/bundles/taiga-ui-kit-components-calendar-range.umd.js +1 -1
  25. package/bundles/taiga-ui-kit-components-calendar-range.umd.js.map +1 -1
  26. package/bundles/taiga-ui-kit-components-calendar-range.umd.min.js +1 -1
  27. package/bundles/taiga-ui-kit-components-calendar-range.umd.min.js.map +1 -1
  28. package/bundles/taiga-ui-kit-components-combo-box.umd.js +1 -1
  29. package/bundles/taiga-ui-kit-components-combo-box.umd.min.js +1 -1
  30. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js +2 -2
  31. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js.map +1 -1
  32. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.min.js +1 -1
  33. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.min.js.map +1 -1
  34. package/bundles/taiga-ui-kit-components-filter.umd.js +1 -1
  35. package/bundles/taiga-ui-kit-components-filter.umd.min.js +1 -1
  36. package/bundles/taiga-ui-kit-components-input-copy.umd.js +1 -1
  37. package/bundles/taiga-ui-kit-components-input-copy.umd.min.js +1 -1
  38. package/bundles/taiga-ui-kit-components-input-count.umd.js +1 -1
  39. package/bundles/taiga-ui-kit-components-input-count.umd.min.js +1 -1
  40. package/bundles/taiga-ui-kit-components-input-date-range.umd.js +1 -1
  41. package/bundles/taiga-ui-kit-components-input-date-range.umd.min.js +1 -1
  42. package/bundles/taiga-ui-kit-components-input-date-time.umd.js +1 -1
  43. package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js +1 -1
  44. package/bundles/taiga-ui-kit-components-input-date.umd.js +1 -1
  45. package/bundles/taiga-ui-kit-components-input-date.umd.js.map +1 -1
  46. package/bundles/taiga-ui-kit-components-input-date.umd.min.js +1 -1
  47. package/bundles/taiga-ui-kit-components-input-date.umd.min.js.map +1 -1
  48. package/bundles/taiga-ui-kit-components-input-file.umd.js +2 -2
  49. package/bundles/taiga-ui-kit-components-input-file.umd.js.map +1 -1
  50. package/bundles/taiga-ui-kit-components-input-file.umd.min.js +1 -1
  51. package/bundles/taiga-ui-kit-components-input-file.umd.min.js.map +1 -1
  52. package/bundles/taiga-ui-kit-components-input-inline.umd.js +1 -1
  53. package/bundles/taiga-ui-kit-components-input-inline.umd.min.js +1 -1
  54. package/bundles/taiga-ui-kit-components-input-number.umd.js +1 -1
  55. package/bundles/taiga-ui-kit-components-input-number.umd.min.js +1 -1
  56. package/bundles/taiga-ui-kit-components-input-password.umd.js +1 -1
  57. package/bundles/taiga-ui-kit-components-input-password.umd.js.map +1 -1
  58. package/bundles/taiga-ui-kit-components-input-password.umd.min.js +1 -1
  59. package/bundles/taiga-ui-kit-components-input-password.umd.min.js.map +1 -1
  60. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js +1 -1
  61. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js.map +1 -1
  62. package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js +1 -1
  63. package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js.map +1 -1
  64. package/bundles/taiga-ui-kit-components-input-phone.umd.js +1 -1
  65. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js +1 -1
  66. package/bundles/taiga-ui-kit-components-input-range.umd.js +2 -2
  67. package/bundles/taiga-ui-kit-components-input-range.umd.js.map +1 -1
  68. package/bundles/taiga-ui-kit-components-input-range.umd.min.js +1 -1
  69. package/bundles/taiga-ui-kit-components-input-range.umd.min.js.map +1 -1
  70. package/bundles/taiga-ui-kit-components-input-slider.umd.js +1 -1
  71. package/bundles/taiga-ui-kit-components-input-slider.umd.js.map +1 -1
  72. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js +1 -1
  73. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js.map +1 -1
  74. package/bundles/taiga-ui-kit-components-input-tag.umd.js +2 -2
  75. package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
  76. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js +1 -1
  77. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js.map +1 -1
  78. package/bundles/taiga-ui-kit-components-input-time.umd.js +1 -1
  79. package/bundles/taiga-ui-kit-components-input-time.umd.js.map +1 -1
  80. package/bundles/taiga-ui-kit-components-input-time.umd.min.js +1 -1
  81. package/bundles/taiga-ui-kit-components-input-time.umd.min.js.map +1 -1
  82. package/bundles/taiga-ui-kit-components-line-clamp.umd.js +1 -1
  83. package/bundles/taiga-ui-kit-components-line-clamp.umd.min.js +1 -1
  84. package/bundles/taiga-ui-kit-components-multi-select-option.umd.js +16 -12
  85. package/bundles/taiga-ui-kit-components-multi-select-option.umd.js.map +1 -1
  86. package/bundles/taiga-ui-kit-components-multi-select-option.umd.min.js +2 -2
  87. package/bundles/taiga-ui-kit-components-multi-select-option.umd.min.js.map +1 -1
  88. package/bundles/taiga-ui-kit-components-multi-select.umd.js +3 -3
  89. package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
  90. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js +1 -1
  91. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js.map +1 -1
  92. package/bundles/taiga-ui-kit-components-pagination.umd.js +1 -1
  93. package/bundles/taiga-ui-kit-components-pagination.umd.min.js +1 -1
  94. package/bundles/taiga-ui-kit-components-progress.umd.js +51 -15
  95. package/bundles/taiga-ui-kit-components-progress.umd.js.map +1 -1
  96. package/bundles/taiga-ui-kit-components-progress.umd.min.js +2 -2
  97. package/bundles/taiga-ui-kit-components-progress.umd.min.js.map +1 -1
  98. package/bundles/taiga-ui-kit-components-range.umd.js +1 -1
  99. package/bundles/taiga-ui-kit-components-range.umd.js.map +1 -1
  100. package/bundles/taiga-ui-kit-components-range.umd.min.js +1 -1
  101. package/bundles/taiga-ui-kit-components-range.umd.min.js.map +1 -1
  102. package/bundles/taiga-ui-kit-components-select-option.umd.js +23 -14
  103. package/bundles/taiga-ui-kit-components-select-option.umd.js.map +1 -1
  104. package/bundles/taiga-ui-kit-components-select-option.umd.min.js +2 -2
  105. package/bundles/taiga-ui-kit-components-select-option.umd.min.js.map +1 -1
  106. package/bundles/taiga-ui-kit-components-select.umd.js +1 -1
  107. package/bundles/taiga-ui-kit-components-select.umd.min.js +1 -1
  108. package/bundles/taiga-ui-kit-components-slider.umd.js +1 -1
  109. package/bundles/taiga-ui-kit-components-slider.umd.js.map +1 -1
  110. package/bundles/taiga-ui-kit-components-slider.umd.min.js +1 -1
  111. package/bundles/taiga-ui-kit-components-slider.umd.min.js.map +1 -1
  112. package/bundles/taiga-ui-kit-components-stepper.umd.js +1 -1
  113. package/bundles/taiga-ui-kit-components-stepper.umd.min.js +1 -1
  114. package/bundles/taiga-ui-kit-components-tabs.umd.js +1 -1
  115. package/bundles/taiga-ui-kit-components-tabs.umd.js.map +1 -1
  116. package/bundles/taiga-ui-kit-components-tabs.umd.min.js +1 -1
  117. package/bundles/taiga-ui-kit-components-tabs.umd.min.js.map +1 -1
  118. package/bundles/taiga-ui-kit-components-tag.umd.js +1 -1
  119. package/bundles/taiga-ui-kit-components-tag.umd.js.map +1 -1
  120. package/bundles/taiga-ui-kit-components-tag.umd.min.js +1 -1
  121. package/bundles/taiga-ui-kit-components-tag.umd.min.js.map +1 -1
  122. package/bundles/taiga-ui-kit-components-text-area.umd.js +2 -2
  123. package/bundles/taiga-ui-kit-components-text-area.umd.js.map +1 -1
  124. package/bundles/taiga-ui-kit-components-text-area.umd.min.js +1 -1
  125. package/bundles/taiga-ui-kit-components-text-area.umd.min.js.map +1 -1
  126. package/bundles/taiga-ui-kit-components-toggle.umd.js +1 -1
  127. package/bundles/taiga-ui-kit-components-toggle.umd.js.map +1 -1
  128. package/bundles/taiga-ui-kit-components-toggle.umd.min.js +1 -1
  129. package/bundles/taiga-ui-kit-components-toggle.umd.min.js.map +1 -1
  130. package/bundles/taiga-ui-kit-components-tree.umd.js +2 -2
  131. package/bundles/taiga-ui-kit-components-tree.umd.js.map +1 -1
  132. package/bundles/taiga-ui-kit-components-tree.umd.min.js +1 -1
  133. package/bundles/taiga-ui-kit-components-tree.umd.min.js.map +1 -1
  134. package/bundles/taiga-ui-kit-internal-primitive-calendar-range.umd.js +1 -1
  135. package/bundles/taiga-ui-kit-internal-primitive-calendar-range.umd.js.map +1 -1
  136. package/bundles/taiga-ui-kit-internal-primitive-calendar-range.umd.min.js +1 -1
  137. package/bundles/taiga-ui-kit-internal-primitive-calendar-range.umd.min.js.map +1 -1
  138. package/bundles/taiga-ui-kit-utils-format.umd.js +0 -2
  139. package/bundles/taiga-ui-kit-utils-format.umd.js.map +1 -1
  140. package/bundles/taiga-ui-kit-utils-format.umd.min.js.map +1 -1
  141. package/components/accordion/taiga-ui-kit-components-accordion.metadata.json +1 -1
  142. package/components/action/taiga-ui-kit-components-action.metadata.json +1 -1
  143. package/components/avatar/taiga-ui-kit-components-avatar.metadata.json +1 -1
  144. package/components/badge/taiga-ui-kit-components-badge.metadata.json +1 -1
  145. package/components/badged-content/taiga-ui-kit-components-badged-content.metadata.json +1 -1
  146. package/components/breadcrumbs/taiga-ui-kit-components-breadcrumbs.metadata.json +1 -1
  147. package/components/calendar-month/taiga-ui-kit-components-calendar-month.metadata.json +1 -1
  148. package/components/calendar-range/taiga-ui-kit-components-calendar-range.metadata.json +1 -1
  149. package/components/combo-box/taiga-ui-kit-components-combo-box.metadata.json +1 -1
  150. package/components/data-list-wrapper/taiga-ui-kit-components-data-list-wrapper.metadata.json +1 -1
  151. package/components/filter/taiga-ui-kit-components-filter.metadata.json +1 -1
  152. package/components/input-copy/taiga-ui-kit-components-input-copy.metadata.json +1 -1
  153. package/components/input-count/taiga-ui-kit-components-input-count.metadata.json +1 -1
  154. package/components/input-date/taiga-ui-kit-components-input-date.metadata.json +1 -1
  155. package/components/input-date-range/taiga-ui-kit-components-input-date-range.metadata.json +1 -1
  156. package/components/input-date-time/taiga-ui-kit-components-input-date-time.metadata.json +1 -1
  157. package/components/input-file/taiga-ui-kit-components-input-file.metadata.json +1 -1
  158. package/components/input-inline/taiga-ui-kit-components-input-inline.metadata.json +1 -1
  159. package/components/input-number/taiga-ui-kit-components-input-number.metadata.json +1 -1
  160. package/components/input-password/taiga-ui-kit-components-input-password.metadata.json +1 -1
  161. package/components/input-phone/taiga-ui-kit-components-input-phone.metadata.json +1 -1
  162. package/components/input-phone-international/taiga-ui-kit-components-input-phone-international.metadata.json +1 -1
  163. package/components/input-range/taiga-ui-kit-components-input-range.metadata.json +1 -1
  164. package/components/input-slider/taiga-ui-kit-components-input-slider.metadata.json +1 -1
  165. package/components/input-tag/taiga-ui-kit-components-input-tag.metadata.json +1 -1
  166. package/components/input-time/taiga-ui-kit-components-input-time.metadata.json +1 -1
  167. package/components/line-clamp/taiga-ui-kit-components-line-clamp.metadata.json +1 -1
  168. package/components/multi-select/taiga-ui-kit-components-multi-select.metadata.json +1 -1
  169. package/components/multi-select-option/multi-select-option.component.d.ts +1 -1
  170. package/components/multi-select-option/taiga-ui-kit-components-multi-select-option.metadata.json +1 -1
  171. package/components/pagination/taiga-ui-kit-components-pagination.metadata.json +1 -1
  172. package/components/progress/index.d.ts +2 -0
  173. package/components/progress/pipes/abstract-color-segments.d.ts +9 -0
  174. package/components/progress/pipes/progress-color-segments-async.pipe.d.ts +5 -0
  175. package/components/progress/pipes/progress-color-segments.pipe.d.ts +7 -6
  176. package/components/progress/taiga-ui-kit-components-progress.metadata.json +1 -1
  177. package/components/range/taiga-ui-kit-components-range.metadata.json +1 -1
  178. package/components/select/taiga-ui-kit-components-select.metadata.json +1 -1
  179. package/components/select-option/select-option.component.d.ts +4 -2
  180. package/components/select-option/taiga-ui-kit-components-select-option.metadata.json +1 -1
  181. package/components/slider/taiga-ui-kit-components-slider.metadata.json +1 -1
  182. package/components/stepper/taiga-ui-kit-components-stepper.metadata.json +1 -1
  183. package/components/tabs/taiga-ui-kit-components-tabs.metadata.json +1 -1
  184. package/components/tag/taiga-ui-kit-components-tag.metadata.json +1 -1
  185. package/components/text-area/taiga-ui-kit-components-text-area.metadata.json +1 -1
  186. package/components/toggle/taiga-ui-kit-components-toggle.metadata.json +1 -1
  187. package/components/tree/taiga-ui-kit-components-tree.metadata.json +1 -1
  188. package/esm2015/components/accordion/accordion-item/accordion-item.component.js +1 -1
  189. package/esm2015/components/accordion/accordion.component.js +1 -1
  190. package/esm2015/components/action/action.component.js +1 -1
  191. package/esm2015/components/avatar/avatar.component.js +2 -2
  192. package/esm2015/components/badge/badge.component.js +2 -2
  193. package/esm2015/components/badged-content/badged-content.component.js +1 -1
  194. package/esm2015/components/breadcrumbs/breadcrumbs-wrapper.component.js +1 -1
  195. package/esm2015/components/breadcrumbs/breadcrumbs.component.js +2 -2
  196. package/esm2015/components/calendar-month/calendar-month.component.js +2 -2
  197. package/esm2015/components/calendar-range/calendar-range.component.js +2 -2
  198. package/esm2015/components/combo-box/combo-box.component.js +1 -1
  199. package/esm2015/components/data-list-wrapper/data-list-group-wrapper.component.js +2 -2
  200. package/esm2015/components/data-list-wrapper/data-list-wrapper.component.js +2 -2
  201. package/esm2015/components/filter/filter.component.js +1 -1
  202. package/esm2015/components/input-copy/input-copy.component.js +1 -1
  203. package/esm2015/components/input-count/input-count.component.js +1 -1
  204. package/esm2015/components/input-date/input-date.component.js +2 -2
  205. package/esm2015/components/input-date-range/input-date-range.component.js +1 -1
  206. package/esm2015/components/input-date-time/input-date-time.component.js +1 -1
  207. package/esm2015/components/input-file/file/file.component.js +2 -2
  208. package/esm2015/components/input-file/input-file.component.js +2 -2
  209. package/esm2015/components/input-inline/input-inline.component.js +1 -1
  210. package/esm2015/components/input-number/input-number.component.js +1 -1
  211. package/esm2015/components/input-password/input-password.component.js +2 -2
  212. package/esm2015/components/input-phone/input-phone.component.js +1 -1
  213. package/esm2015/components/input-phone-international/input-phone-international.component.js +2 -2
  214. package/esm2015/components/input-range/input-range.component.js +3 -3
  215. package/esm2015/components/input-slider/input-slider.component.js +2 -2
  216. package/esm2015/components/input-tag/input-tag.component.js +3 -3
  217. package/esm2015/components/input-time/input-time.component.js +2 -2
  218. package/esm2015/components/line-clamp/line-clamp.component.js +1 -1
  219. package/esm2015/components/multi-select/multi-select-group/multi-select-group.component.js +2 -2
  220. package/esm2015/components/multi-select/multi-select.component.js +3 -3
  221. package/esm2015/components/multi-select-option/multi-select-option.component.js +8 -10
  222. package/esm2015/components/pagination/pagination.component.js +1 -1
  223. package/esm2015/components/progress/index.js +3 -1
  224. package/esm2015/components/progress/pipes/abstract-color-segments.js +32 -0
  225. package/esm2015/components/progress/pipes/progress-color-segments-async.pipe.js +15 -0
  226. package/esm2015/components/progress/pipes/progress-color-segments.pipe.js +12 -28
  227. package/esm2015/components/progress/progress-circle/progress-circle.component.js +1 -1
  228. package/esm2015/components/progress/progress-segmented/progress-segmented.component.js +1 -1
  229. package/esm2015/components/progress/progress.module.js +4 -1
  230. package/esm2015/components/range/range.component.js +2 -2
  231. package/esm2015/components/select/select.component.js +1 -1
  232. package/esm2015/components/select-option/select-option.component.js +20 -12
  233. package/esm2015/components/slider/slider.component.js +2 -2
  234. package/esm2015/components/stepper/step/step.component.js +1 -1
  235. package/esm2015/components/tabs/tabs-with-more/tabs-with-more.component.js +2 -2
  236. package/esm2015/components/tag/tag.component.js +2 -2
  237. package/esm2015/components/text-area/text-area.component.js +3 -3
  238. package/esm2015/components/toggle/toggle.component.js +2 -2
  239. package/esm2015/components/tree/components/tree/tree.component.js +2 -2
  240. package/esm2015/components/tree/components/tree-item/tree-item.component.js +2 -2
  241. package/esm2015/internal/primitive-calendar-range/primitive-calendar-range.component.js +2 -2
  242. package/esm2015/utils/format/string-hash-to-hsl.js +1 -3
  243. package/esm5/components/accordion/accordion-item/accordion-item.component.js +1 -1
  244. package/esm5/components/accordion/accordion.component.js +1 -1
  245. package/esm5/components/action/action.component.js +1 -1
  246. package/esm5/components/avatar/avatar.component.js +2 -2
  247. package/esm5/components/badge/badge.component.js +2 -2
  248. package/esm5/components/badged-content/badged-content.component.js +1 -1
  249. package/esm5/components/breadcrumbs/breadcrumbs-wrapper.component.js +1 -1
  250. package/esm5/components/breadcrumbs/breadcrumbs.component.js +2 -2
  251. package/esm5/components/calendar-month/calendar-month.component.js +2 -2
  252. package/esm5/components/calendar-range/calendar-range.component.js +2 -2
  253. package/esm5/components/combo-box/combo-box.component.js +1 -1
  254. package/esm5/components/data-list-wrapper/data-list-group-wrapper.component.js +2 -2
  255. package/esm5/components/data-list-wrapper/data-list-wrapper.component.js +2 -2
  256. package/esm5/components/filter/filter.component.js +1 -1
  257. package/esm5/components/input-copy/input-copy.component.js +1 -1
  258. package/esm5/components/input-count/input-count.component.js +1 -1
  259. package/esm5/components/input-date/input-date.component.js +2 -2
  260. package/esm5/components/input-date-range/input-date-range.component.js +1 -1
  261. package/esm5/components/input-date-time/input-date-time.component.js +1 -1
  262. package/esm5/components/input-file/file/file.component.js +2 -2
  263. package/esm5/components/input-file/input-file.component.js +2 -2
  264. package/esm5/components/input-inline/input-inline.component.js +1 -1
  265. package/esm5/components/input-number/input-number.component.js +1 -1
  266. package/esm5/components/input-password/input-password.component.js +2 -2
  267. package/esm5/components/input-phone/input-phone.component.js +1 -1
  268. package/esm5/components/input-phone-international/input-phone-international.component.js +2 -2
  269. package/esm5/components/input-range/input-range.component.js +3 -3
  270. package/esm5/components/input-slider/input-slider.component.js +2 -2
  271. package/esm5/components/input-tag/input-tag.component.js +3 -3
  272. package/esm5/components/input-time/input-time.component.js +2 -2
  273. package/esm5/components/line-clamp/line-clamp.component.js +1 -1
  274. package/esm5/components/multi-select/multi-select-group/multi-select-group.component.js +2 -2
  275. package/esm5/components/multi-select/multi-select.component.js +3 -3
  276. package/esm5/components/multi-select-option/multi-select-option.component.js +14 -11
  277. package/esm5/components/pagination/pagination.component.js +1 -1
  278. package/esm5/components/progress/index.js +3 -1
  279. package/esm5/components/progress/pipes/abstract-color-segments.js +35 -0
  280. package/esm5/components/progress/pipes/progress-color-segments-async.pipe.js +21 -0
  281. package/esm5/components/progress/pipes/progress-color-segments.pipe.js +16 -30
  282. package/esm5/components/progress/progress-circle/progress-circle.component.js +1 -1
  283. package/esm5/components/progress/progress-segmented/progress-segmented.component.js +1 -1
  284. package/esm5/components/progress/progress.module.js +4 -1
  285. package/esm5/components/range/range.component.js +2 -2
  286. package/esm5/components/select/select.component.js +1 -1
  287. package/esm5/components/select-option/select-option.component.js +24 -14
  288. package/esm5/components/slider/slider.component.js +2 -2
  289. package/esm5/components/stepper/step/step.component.js +1 -1
  290. package/esm5/components/tabs/tabs-with-more/tabs-with-more.component.js +2 -2
  291. package/esm5/components/tag/tag.component.js +2 -2
  292. package/esm5/components/text-area/text-area.component.js +3 -3
  293. package/esm5/components/toggle/toggle.component.js +2 -2
  294. package/esm5/components/tree/components/tree/tree.component.js +2 -2
  295. package/esm5/components/tree/components/tree-item/tree-item.component.js +2 -2
  296. package/esm5/internal/primitive-calendar-range/primitive-calendar-range.component.js +2 -2
  297. package/esm5/utils/format/string-hash-to-hsl.js +1 -3
  298. package/fesm2015/taiga-ui-kit-components-accordion.js +2 -2
  299. package/fesm2015/taiga-ui-kit-components-action.js +1 -1
  300. package/fesm2015/taiga-ui-kit-components-avatar.js +1 -1
  301. package/fesm2015/taiga-ui-kit-components-avatar.js.map +1 -1
  302. package/fesm2015/taiga-ui-kit-components-badge.js +1 -1
  303. package/fesm2015/taiga-ui-kit-components-badge.js.map +1 -1
  304. package/fesm2015/taiga-ui-kit-components-badged-content.js +1 -1
  305. package/fesm2015/taiga-ui-kit-components-breadcrumbs.js +2 -2
  306. package/fesm2015/taiga-ui-kit-components-breadcrumbs.js.map +1 -1
  307. package/fesm2015/taiga-ui-kit-components-calendar-month.js +1 -1
  308. package/fesm2015/taiga-ui-kit-components-calendar-month.js.map +1 -1
  309. package/fesm2015/taiga-ui-kit-components-calendar-range.js +1 -1
  310. package/fesm2015/taiga-ui-kit-components-calendar-range.js.map +1 -1
  311. package/fesm2015/taiga-ui-kit-components-combo-box.js +1 -1
  312. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js +2 -2
  313. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  314. package/fesm2015/taiga-ui-kit-components-filter.js +1 -1
  315. package/fesm2015/taiga-ui-kit-components-input-copy.js +1 -1
  316. package/fesm2015/taiga-ui-kit-components-input-count.js +1 -1
  317. package/fesm2015/taiga-ui-kit-components-input-date-range.js +1 -1
  318. package/fesm2015/taiga-ui-kit-components-input-date-time.js +1 -1
  319. package/fesm2015/taiga-ui-kit-components-input-date.js +1 -1
  320. package/fesm2015/taiga-ui-kit-components-input-date.js.map +1 -1
  321. package/fesm2015/taiga-ui-kit-components-input-file.js +2 -2
  322. package/fesm2015/taiga-ui-kit-components-input-file.js.map +1 -1
  323. package/fesm2015/taiga-ui-kit-components-input-inline.js +1 -1
  324. package/fesm2015/taiga-ui-kit-components-input-number.js +1 -1
  325. package/fesm2015/taiga-ui-kit-components-input-password.js +1 -1
  326. package/fesm2015/taiga-ui-kit-components-input-password.js.map +1 -1
  327. package/fesm2015/taiga-ui-kit-components-input-phone-international.js +1 -1
  328. package/fesm2015/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  329. package/fesm2015/taiga-ui-kit-components-input-phone.js +1 -1
  330. package/fesm2015/taiga-ui-kit-components-input-range.js +2 -2
  331. package/fesm2015/taiga-ui-kit-components-input-range.js.map +1 -1
  332. package/fesm2015/taiga-ui-kit-components-input-slider.js +1 -1
  333. package/fesm2015/taiga-ui-kit-components-input-slider.js.map +1 -1
  334. package/fesm2015/taiga-ui-kit-components-input-tag.js +2 -2
  335. package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
  336. package/fesm2015/taiga-ui-kit-components-input-time.js +1 -1
  337. package/fesm2015/taiga-ui-kit-components-input-time.js.map +1 -1
  338. package/fesm2015/taiga-ui-kit-components-line-clamp.js +1 -1
  339. package/fesm2015/taiga-ui-kit-components-multi-select-option.js +7 -9
  340. package/fesm2015/taiga-ui-kit-components-multi-select-option.js.map +1 -1
  341. package/fesm2015/taiga-ui-kit-components-multi-select.js +3 -3
  342. package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
  343. package/fesm2015/taiga-ui-kit-components-pagination.js +1 -1
  344. package/fesm2015/taiga-ui-kit-components-progress.js +36 -11
  345. package/fesm2015/taiga-ui-kit-components-progress.js.map +1 -1
  346. package/fesm2015/taiga-ui-kit-components-range.js +1 -1
  347. package/fesm2015/taiga-ui-kit-components-range.js.map +1 -1
  348. package/fesm2015/taiga-ui-kit-components-select-option.js +19 -11
  349. package/fesm2015/taiga-ui-kit-components-select-option.js.map +1 -1
  350. package/fesm2015/taiga-ui-kit-components-select.js +1 -1
  351. package/fesm2015/taiga-ui-kit-components-slider.js +1 -1
  352. package/fesm2015/taiga-ui-kit-components-slider.js.map +1 -1
  353. package/fesm2015/taiga-ui-kit-components-stepper.js +1 -1
  354. package/fesm2015/taiga-ui-kit-components-tabs.js +1 -1
  355. package/fesm2015/taiga-ui-kit-components-tabs.js.map +1 -1
  356. package/fesm2015/taiga-ui-kit-components-tag.js +1 -1
  357. package/fesm2015/taiga-ui-kit-components-tag.js.map +1 -1
  358. package/fesm2015/taiga-ui-kit-components-text-area.js +2 -2
  359. package/fesm2015/taiga-ui-kit-components-text-area.js.map +1 -1
  360. package/fesm2015/taiga-ui-kit-components-toggle.js +1 -1
  361. package/fesm2015/taiga-ui-kit-components-toggle.js.map +1 -1
  362. package/fesm2015/taiga-ui-kit-components-tree.js +2 -2
  363. package/fesm2015/taiga-ui-kit-components-tree.js.map +1 -1
  364. package/fesm2015/taiga-ui-kit-internal-primitive-calendar-range.js +1 -1
  365. package/fesm2015/taiga-ui-kit-internal-primitive-calendar-range.js.map +1 -1
  366. package/fesm2015/taiga-ui-kit-utils-format.js +0 -2
  367. package/fesm2015/taiga-ui-kit-utils-format.js.map +1 -1
  368. package/fesm5/taiga-ui-kit-components-accordion.js +2 -2
  369. package/fesm5/taiga-ui-kit-components-action.js +1 -1
  370. package/fesm5/taiga-ui-kit-components-avatar.js +1 -1
  371. package/fesm5/taiga-ui-kit-components-avatar.js.map +1 -1
  372. package/fesm5/taiga-ui-kit-components-badge.js +1 -1
  373. package/fesm5/taiga-ui-kit-components-badge.js.map +1 -1
  374. package/fesm5/taiga-ui-kit-components-badged-content.js +1 -1
  375. package/fesm5/taiga-ui-kit-components-breadcrumbs.js +2 -2
  376. package/fesm5/taiga-ui-kit-components-breadcrumbs.js.map +1 -1
  377. package/fesm5/taiga-ui-kit-components-calendar-month.js +1 -1
  378. package/fesm5/taiga-ui-kit-components-calendar-month.js.map +1 -1
  379. package/fesm5/taiga-ui-kit-components-calendar-range.js +1 -1
  380. package/fesm5/taiga-ui-kit-components-calendar-range.js.map +1 -1
  381. package/fesm5/taiga-ui-kit-components-combo-box.js +1 -1
  382. package/fesm5/taiga-ui-kit-components-data-list-wrapper.js +2 -2
  383. package/fesm5/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  384. package/fesm5/taiga-ui-kit-components-filter.js +1 -1
  385. package/fesm5/taiga-ui-kit-components-input-copy.js +1 -1
  386. package/fesm5/taiga-ui-kit-components-input-count.js +1 -1
  387. package/fesm5/taiga-ui-kit-components-input-date-range.js +1 -1
  388. package/fesm5/taiga-ui-kit-components-input-date-time.js +1 -1
  389. package/fesm5/taiga-ui-kit-components-input-date.js +1 -1
  390. package/fesm5/taiga-ui-kit-components-input-date.js.map +1 -1
  391. package/fesm5/taiga-ui-kit-components-input-file.js +2 -2
  392. package/fesm5/taiga-ui-kit-components-input-file.js.map +1 -1
  393. package/fesm5/taiga-ui-kit-components-input-inline.js +1 -1
  394. package/fesm5/taiga-ui-kit-components-input-number.js +1 -1
  395. package/fesm5/taiga-ui-kit-components-input-password.js +1 -1
  396. package/fesm5/taiga-ui-kit-components-input-password.js.map +1 -1
  397. package/fesm5/taiga-ui-kit-components-input-phone-international.js +1 -1
  398. package/fesm5/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  399. package/fesm5/taiga-ui-kit-components-input-phone.js +1 -1
  400. package/fesm5/taiga-ui-kit-components-input-range.js +2 -2
  401. package/fesm5/taiga-ui-kit-components-input-range.js.map +1 -1
  402. package/fesm5/taiga-ui-kit-components-input-slider.js +1 -1
  403. package/fesm5/taiga-ui-kit-components-input-slider.js.map +1 -1
  404. package/fesm5/taiga-ui-kit-components-input-tag.js +2 -2
  405. package/fesm5/taiga-ui-kit-components-input-tag.js.map +1 -1
  406. package/fesm5/taiga-ui-kit-components-input-time.js +1 -1
  407. package/fesm5/taiga-ui-kit-components-input-time.js.map +1 -1
  408. package/fesm5/taiga-ui-kit-components-line-clamp.js +1 -1
  409. package/fesm5/taiga-ui-kit-components-multi-select-option.js +13 -10
  410. package/fesm5/taiga-ui-kit-components-multi-select-option.js.map +1 -1
  411. package/fesm5/taiga-ui-kit-components-multi-select.js +3 -3
  412. package/fesm5/taiga-ui-kit-components-multi-select.js.map +1 -1
  413. package/fesm5/taiga-ui-kit-components-pagination.js +1 -1
  414. package/fesm5/taiga-ui-kit-components-progress.js +50 -14
  415. package/fesm5/taiga-ui-kit-components-progress.js.map +1 -1
  416. package/fesm5/taiga-ui-kit-components-range.js +1 -1
  417. package/fesm5/taiga-ui-kit-components-range.js.map +1 -1
  418. package/fesm5/taiga-ui-kit-components-select-option.js +23 -13
  419. package/fesm5/taiga-ui-kit-components-select-option.js.map +1 -1
  420. package/fesm5/taiga-ui-kit-components-select.js +1 -1
  421. package/fesm5/taiga-ui-kit-components-slider.js +1 -1
  422. package/fesm5/taiga-ui-kit-components-slider.js.map +1 -1
  423. package/fesm5/taiga-ui-kit-components-stepper.js +1 -1
  424. package/fesm5/taiga-ui-kit-components-tabs.js +1 -1
  425. package/fesm5/taiga-ui-kit-components-tabs.js.map +1 -1
  426. package/fesm5/taiga-ui-kit-components-tag.js +1 -1
  427. package/fesm5/taiga-ui-kit-components-tag.js.map +1 -1
  428. package/fesm5/taiga-ui-kit-components-text-area.js +2 -2
  429. package/fesm5/taiga-ui-kit-components-text-area.js.map +1 -1
  430. package/fesm5/taiga-ui-kit-components-toggle.js +1 -1
  431. package/fesm5/taiga-ui-kit-components-toggle.js.map +1 -1
  432. package/fesm5/taiga-ui-kit-components-tree.js +2 -2
  433. package/fesm5/taiga-ui-kit-components-tree.js.map +1 -1
  434. package/fesm5/taiga-ui-kit-internal-primitive-calendar-range.js +1 -1
  435. package/fesm5/taiga-ui-kit-internal-primitive-calendar-range.js.map +1 -1
  436. package/fesm5/taiga-ui-kit-utils-format.js +0 -2
  437. package/fesm5/taiga-ui-kit-utils-format.js.map +1 -1
  438. package/internal/primitive-calendar-range/taiga-ui-kit-internal-primitive-calendar-range.metadata.json +1 -1
  439. package/package.json +5 -5
@@ -180,7 +180,7 @@ var TuiFileComponent = /** @class */ (function () {
180
180
  Component({
181
181
  selector: 'tui-file',
182
182
  changeDetection: ChangeDetectionStrategy.OnPush,
183
- template: "<ng-container *ngIf=\"!src; else withLink\">\n <ng-container *ngTemplateOutlet=\"fileInfoTemplate\"></ng-container>\n</ng-container>\n\n<ng-template #withLink>\n <a\n class=\"link\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n [href]=\"src\"\n (tuiFocusVisibleChange)=\"onFocusVisible($event)\"\n >\n <ng-container *ngTemplateOutlet=\"fileInfoTemplate\"></ng-container>\n </a>\n</ng-template>\n\n<ng-template #fileInfoTemplate>\n <div class=\"preview\" [class.preview_big]=\"isBig\">\n <img\n *ngIf=\"preview && (fileTexts$ | async) as texts; else loader\"\n automation-id=\"tui-file__preview\"\n class=\"image\"\n [alt]=\"texts.preview\"\n [src]=\"preview\"\n />\n <ng-template #loader>\n <tui-loader\n *ngIf=\"isLoading; else svg\"\n automation-id=\"tui-file__loader\"\n class=\"loader\"\n [inheritColor]=\"isBig\"\n ></tui-loader>\n </ng-template>\n <ng-template #svg>\n <tui-svg\n class=\"icon\"\n automation-id=\"tui-file__icon\"\n [class.icon_deleted]=\"isDeleted\"\n [class.icon_error]=\"isError\"\n [src]=\"icon\"\n ></tui-svg>\n </ng-template>\n </div>\n <div class=\"wrapper\">\n <div class=\"text\">\n <div automation-id=\"tui-file__name\" class=\"name\">{{name}}</div>\n <div automation-id=\"tui-file__type\" class=\"type\">{{type}}</div>\n <div\n *ngIf=\"showSize && (fileSize$ | async) as fileSize\"\n automation-id=\"tui-file__size\"\n class=\"size\"\n >\n {{fileSize}}\n </div>\n </div>\n <div\n polymorpheus-outlet\n *ngIf=\"content$ | async as content\"\n automation-id=\"tui-file__content\"\n class=\"content\"\n [content]=\"content\"\n ></div>\n </div>\n <button\n *ngIf=\"allowDelete && (fileTexts$ | async) as texts\"\n automation-id=\"tui-file__remove\"\n tuiIconButton\n type=\"button\"\n size=\"xs\"\n icon=\"tuiIconCloseLarge\"\n appearance=\"icon\"\n class=\"remove\"\n [title]=\"texts.remove\"\n [class.remove_mobile]=\"isMobile\"\n (click.prevent)=\"onRemoveClick()\"\n ></button>\n</ng-template>\n",
183
+ template: "<ng-container *ngIf=\"!src; else withLink\">\n <ng-container *ngTemplateOutlet=\"fileInfoTemplate\"></ng-container>\n</ng-container>\n\n<ng-template #withLink>\n <a\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"link\"\n [href]=\"src\"\n (tuiFocusVisibleChange)=\"onFocusVisible($event)\"\n >\n <ng-container *ngTemplateOutlet=\"fileInfoTemplate\"></ng-container>\n </a>\n</ng-template>\n\n<ng-template #fileInfoTemplate>\n <div class=\"preview\" [class.preview_big]=\"isBig\">\n <img\n *ngIf=\"preview && (fileTexts$ | async) as texts; else loader\"\n automation-id=\"tui-file__preview\"\n class=\"image\"\n [alt]=\"texts.preview\"\n [src]=\"preview\"\n />\n <ng-template #loader>\n <tui-loader\n *ngIf=\"isLoading; else svg\"\n automation-id=\"tui-file__loader\"\n class=\"loader\"\n [inheritColor]=\"isBig\"\n ></tui-loader>\n </ng-template>\n <ng-template #svg>\n <tui-svg\n automation-id=\"tui-file__icon\"\n class=\"icon\"\n [class.icon_deleted]=\"isDeleted\"\n [class.icon_error]=\"isError\"\n [src]=\"icon\"\n ></tui-svg>\n </ng-template>\n </div>\n <div class=\"wrapper\">\n <div class=\"text\">\n <div automation-id=\"tui-file__name\" class=\"name\">{{ name }}</div>\n <div automation-id=\"tui-file__type\" class=\"type\">{{ type }}</div>\n <div\n *ngIf=\"showSize && (fileSize$ | async) as fileSize\"\n automation-id=\"tui-file__size\"\n class=\"size\"\n >\n {{ fileSize }}\n </div>\n </div>\n <div\n *ngIf=\"content$ | async as content\"\n polymorpheus-outlet\n automation-id=\"tui-file__content\"\n class=\"content\"\n [content]=\"content\"\n ></div>\n </div>\n <button\n *ngIf=\"allowDelete && (fileTexts$ | async) as texts\"\n automation-id=\"tui-file__remove\"\n tuiIconButton\n type=\"button\"\n size=\"xs\"\n icon=\"tuiIconCloseLarge\"\n appearance=\"icon\"\n class=\"remove\"\n [title]=\"texts.remove\"\n [class.remove_mobile]=\"isMobile\"\n (click.prevent)=\"onRemoveClick()\"\n ></button>\n</ng-template>\n",
184
184
  styles: [":host{position:relative;display:flex;font:var(--tui-font-text-m);border:1px solid var(--tui-base-03);border-radius:var(--tui-radius-m)}:host[data-mode=onDark]{color:var(--tui-text-01-night)}:host:not(._link){padding:.5625rem 2.1875rem .5625rem .5625rem}:host:hover .remove{opacity:1}:host._focused{border-color:var(--tui-focus);box-shadow:0 0 0 1px inset var(--tui-focus)}.link{display:flex;flex:1;padding:.5625rem 2.1875rem .5625rem .5625rem;text-decoration:none;outline:0;cursor:pointer;color:var(--tui-text-01);max-width:calc(100% - 2.75rem)}.link:hover{background-color:var(--tui-base-02)}.preview{position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0;width:1.5rem;height:1.5rem;margin-right:.75rem;border-radius:var(--tui-radius-m);overflow:hidden;color:rgba(0,0,0,.24)}.preview_big{width:4rem;height:4rem;margin-right:1rem}.preview_big:before{position:absolute;top:0;left:0;width:100%;height:100%;content:'';background:#333;opacity:.08}.image{max-width:100%;max-height:100%}.loader{position:absolute;top:0;left:0;width:100%;height:100%}.icon{position:absolute;top:0;left:0;width:100%;height:100%;color:var(--tui-success-fill)}.icon_error{color:var(--tui-error-fill)}.icon_deleted{color:var(--tui-base-06)}.remove{transition-property:opacity;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;position:absolute;top:.625rem;right:.625rem;opacity:0}.remove:focus,.remove_mobile{opacity:1}.wrapper{display:flex;flex-direction:column;justify-content:center;overflow:hidden}.text{display:flex}.size{flex-shrink:0;opacity:var(--tui-disabled-opacity);margin-left:.5rem}.type{flex-shrink:0}.name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.content{font:var(--tui-font-text-s);color:var(--tui-error-fill)}"]
185
185
  }),
186
186
  __param(0, Inject(TUI_IS_MOBILE)),
@@ -191,4 +191,4 @@ var TuiFileComponent = /** @class */ (function () {
191
191
  return TuiFileComponent;
192
192
  }());
193
193
  export { TuiFileComponent };
194
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtZmlsZS8iLCJzb3VyY2VzIjpbImZpbGUvZmlsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFlBQVksRUFBRSxTQUFTLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUMsYUFBYSxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFJckUsT0FBTyxFQUFDLDZCQUE2QixFQUFFLGNBQWMsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25GLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUVyRCxPQUFPLEVBQUMsVUFBVSxFQUFFLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkMsV0FBVztBQU9YO0lBMkJJLDBCQUNvQyxRQUFpQixFQUNWLFNBQXVCLEVBRXJELFVBRVIsRUFFZ0IsTUFBNEM7UUFQN0IsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNWLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFFckQsZUFBVSxHQUFWLFVBQVUsQ0FFbEI7UUFFZ0IsV0FBTSxHQUFOLE1BQU0sQ0FBc0M7UUFoQ2pFLFNBQUksR0FBZ0IsRUFBQyxJQUFJLEVBQUUsRUFBRSxFQUFDLENBQUM7UUFJL0IsVUFBSyx5QkFBcUM7UUFJMUMsU0FBSSxHQUFhLEdBQUcsQ0FBQztRQUlyQixnQkFBVyxHQUFHLElBQUksQ0FBQztRQUluQixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBR1AsZ0JBQVcsR0FB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QUU7c0RBQ0Q7SUFHaEI7UUFEQyxNQUFNLEVBQUU7eURBQ3VDO0lBR2hEO1FBREMsV0FBVyxDQUFDLGdCQUFnQixDQUFDO3FEQUNkO0lBaURoQjtRQURDLFdBQVcsQ0FBQyxhQUFhLENBQUM7K0NBRzFCO0lBMkJEO1FBREMsT0FBTzs2REFTUDtJQUdEO1FBREMsT0FBTzs4REFNUDtJQUdEO1FBREMsT0FBTzt5REFZUDtJQXJJUSxnQkFBZ0I7UUFONUIsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLFVBQVU7WUFDcEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07WUFDL0MseWdGQUFtQzs7U0FFdEMsQ0FBQztRQTZCTyxXQUFBLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUNyQixXQUFBLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUNwQixXQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQTtRQUl0QixXQUFBLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFBO09BbENqQyxnQkFBZ0IsQ0FzSTVCO0lBQUQsdUJBQUM7Q0FBQSxBQXRJRCxJQXNJQztTQXRJWSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RvbVNhbml0aXplciwgU2FmZVZhbHVlfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7VFVJX0lTX01PQklMRSwgdHVpRGVmYXVsdFByb3AsIHR1aVB1cmV9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtUdWlTaXplTH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUdWlGaWxlU3RhdGV9IGZyb20gJ0B0YWlnYS11aS9raXQvZW51bXMnO1xuaW1wb3J0IHtUdWlGaWxlTGlrZX0gZnJvbSAnQHRhaWdhLXVpL2tpdC9pbnRlcmZhY2VzJztcbmltcG9ydCB7VFVJX0RJR0lUQUxfSU5GT1JNQVRJT05fVU5JVFMsIFRVSV9GSUxFX1RFWFRTfSBmcm9tICdAdGFpZ2EtdWkva2l0L3Rva2Vucyc7XG5pbXBvcnQge2Zvcm1hdFNpemV9IGZyb20gJ0B0YWlnYS11aS9raXQvdXRpbHMvZmlsZXMnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vLyBAZHluYW1pY1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktZmlsZScsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZmlsZS5zdHlsZS5sZXNzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUZpbGVDb21wb25lbnQge1xuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBmaWxlOiBUdWlGaWxlTGlrZSA9IHtuYW1lOiAnJ307XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc3RhdGU6IFR1aUZpbGVTdGF0ZSA9IFR1aUZpbGVTdGF0ZS5Ob3JtYWw7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc2l6ZTogVHVpU2l6ZUwgPSAnbSc7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgYWxsb3dEZWxldGUgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHNob3dTaXplID0gdHJ1ZTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGZpbGVSZW1vdmVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fZm9jdXNlZCcpXG4gICAgZm9jdXNlZCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoVFVJX0lTX01PQklMRSkgcmVhZG9ubHkgaXNNb2JpbGU6IGJvb2xlYW4sXG4gICAgICAgIEBJbmplY3QoRG9tU2FuaXRpemVyKSBwcml2YXRlIHJlYWRvbmx5IHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgICAgICBASW5qZWN0KFRVSV9GSUxFX1RFWFRTKVxuICAgICAgICByZWFkb25seSBmaWxlVGV4dHMkOiBPYnNlcnZhYmxlPFxuICAgICAgICAgICAgUmVjb3JkPCdsb2FkaW5nRXJyb3InIHwgJ3ByZXZpZXcnIHwgJ3JlbW92ZScsIHN0cmluZz5cbiAgICAgICAgPixcbiAgICAgICAgQEluamVjdChUVUlfRElHSVRBTF9JTkZPUk1BVElPTl9VTklUUylcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB1bml0cyQ6IE9ic2VydmFibGU8W3N0cmluZywgc3RyaW5nLCBzdHJpbmddPixcbiAgICApIHt9XG5cbiAgICBnZXQgcHJldmlldygpOiBTYWZlVmFsdWUge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0JpZyA/IHRoaXMuY3JlYXRlUHJldmlldyh0aGlzLmZpbGUsIHRoaXMuc2FuaXRpemVyKSA6ICcnO1xuICAgIH1cblxuICAgIGdldCBpc0JpZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2l6ZSA9PT0gJ2wnO1xuICAgIH1cblxuICAgIGdldCBpc0xvYWRpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlID09PSBUdWlGaWxlU3RhdGUuTG9hZGluZztcbiAgICB9XG5cbiAgICBnZXQgaXNFcnJvcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGUgPT09IFR1aUZpbGVTdGF0ZS5FcnJvcjtcbiAgICB9XG5cbiAgICBnZXQgaXNEZWxldGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZSA9PT0gVHVpRmlsZVN0YXRlLkRlbGV0ZWQ7XG4gICAgfVxuXG4gICAgZ2V0IGljb24oKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUgPT09IFR1aUZpbGVTdGF0ZS5Ob3JtYWwgJiYgdGhpcy5pc0JpZykge1xuICAgICAgICAgICAgcmV0dXJuICd0dWlJY29uRGVmYXVsdERvY0xhcmdlJztcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAodGhpcy5zdGF0ZSkge1xuICAgICAgICAgICAgY2FzZSBUdWlGaWxlU3RhdGUuRGVsZXRlZDpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3R1aUljb25UcmFzaExhcmdlJztcbiAgICAgICAgICAgIGNhc2UgVHVpRmlsZVN0YXRlLkVycm9yOlxuICAgICAgICAgICAgICAgIHJldHVybiAndHVpSWNvbkFsZXJ0Q2lyY2xlTGFyZ2UnO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3R1aUljb25DaGVja0NpcmNsZUxhcmdlJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX2xpbmsnKVxuICAgIGdldCBzcmMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsZS5zcmMgfHwgJyc7XG4gICAgfVxuXG4gICAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsZS5uYW1lLnNwbGl0KCcuJykuc2xpY2UoMCwgLTEpLmpvaW4oJy4nKTtcbiAgICB9XG5cbiAgICBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJy4nICsgdGhpcy5maWxlLm5hbWUuc3BsaXQoJy4nKS5wb3AoKSB8fCAnJztcbiAgICB9XG5cbiAgICBnZXQgY29udGVudCQoKTogT2JzZXJ2YWJsZTxQb2x5bW9ycGhldXNDb250ZW50PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbGN1bGF0ZUNvbnRlbnQkKHRoaXMuc3RhdGUsIHRoaXMuZmlsZSwgdGhpcy5maWxlVGV4dHMkKTtcbiAgICB9XG5cbiAgICBnZXQgZmlsZVNpemUkKCk6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVsbD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jYWxjdWxhdGVGaWxlU2l6ZSQodGhpcy5maWxlLCB0aGlzLnVuaXRzJCk7XG4gICAgfVxuXG4gICAgb25SZW1vdmVDbGljaygpIHtcbiAgICAgICAgdGhpcy5maWxlUmVtb3ZlZC5lbWl0KCk7XG4gICAgfVxuXG4gICAgb25Gb2N1c1Zpc2libGUoZm9jdXNWaXNpYmxlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZm9jdXNlZCA9IGZvY3VzVmlzaWJsZTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgY2FsY3VsYXRlQ29udGVudCQoXG4gICAgICAgIHN0YXRlOiBUdWlGaWxlU3RhdGUsXG4gICAgICAgIGZpbGU6IFR1aUZpbGVMaWtlLFxuICAgICAgICBmaWxlVGV4dHMkOiBPYnNlcnZhYmxlPFJlY29yZDwnbG9hZGluZ0Vycm9yJyB8ICdwcmV2aWV3JyB8ICdyZW1vdmUnLCBzdHJpbmc+PixcbiAgICApOiBPYnNlcnZhYmxlPFBvbHltb3JwaGV1c0NvbnRlbnQ+IHtcbiAgICAgICAgcmV0dXJuIHN0YXRlID09PSBUdWlGaWxlU3RhdGUuRXJyb3IgJiYgIWZpbGUuY29udGVudFxuICAgICAgICAgICAgPyBmaWxlVGV4dHMkLnBpcGUobWFwKHRleHRzID0+IHRleHRzLmxvYWRpbmdFcnJvcikpXG4gICAgICAgICAgICA6IG9mKHRoaXMuZmlsZS5jb250ZW50IHx8ICcnKTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgY2FsY3VsYXRlRmlsZVNpemUkKFxuICAgICAgICBmaWxlOiBUdWlGaWxlTGlrZSxcbiAgICAgICAgdW5pdHMkOiBPYnNlcnZhYmxlPFtzdHJpbmcsIHN0cmluZywgc3RyaW5nXT4sXG4gICAgKTogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgICAgIHJldHVybiB1bml0cyQucGlwZShtYXAodW5pdHMgPT4gZm9ybWF0U2l6ZSh1bml0cywgZmlsZS5zaXplKSkpO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBjcmVhdGVQcmV2aWV3KGZpbGU6IFR1aUZpbGVMaWtlLCBzYW5pdGl6ZXI6IERvbVNhbml0aXplcik6IFNhZmVWYWx1ZSB7XG4gICAgICAgIGlmIChmaWxlLnNyYykge1xuICAgICAgICAgICAgcmV0dXJuIGZpbGUuc3JjO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVE9ETzogaWZyYW1lIHdhcm5pbmdcbiAgICAgICAgaWYgKGZpbGUgaW5zdGFuY2VvZiBGaWxlICYmIGZpbGUudHlwZSAmJiBmaWxlLnR5cGUuc3RhcnRzV2l0aCgnaW1hZ2UvJykpIHtcbiAgICAgICAgICAgIHJldHVybiBzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFVybChVUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGUpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG59XG4iXX0=
194
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtZmlsZS8iLCJzb3VyY2VzIjpbImZpbGUvZmlsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFlBQVksRUFBRSxTQUFTLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUMsYUFBYSxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFJckUsT0FBTyxFQUFDLDZCQUE2QixFQUFFLGNBQWMsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25GLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUVyRCxPQUFPLEVBQUMsVUFBVSxFQUFFLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkMsV0FBVztBQU9YO0lBMkJJLDBCQUNvQyxRQUFpQixFQUNWLFNBQXVCLEVBRXJELFVBRVIsRUFFZ0IsTUFBNEM7UUFQN0IsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNWLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFFckQsZUFBVSxHQUFWLFVBQVUsQ0FFbEI7UUFFZ0IsV0FBTSxHQUFOLE1BQU0sQ0FBc0M7UUFoQ2pFLFNBQUksR0FBZ0IsRUFBQyxJQUFJLEVBQUUsRUFBRSxFQUFDLENBQUM7UUFJL0IsVUFBSyx5QkFBcUM7UUFJMUMsU0FBSSxHQUFhLEdBQUcsQ0FBQztRQUlyQixnQkFBVyxHQUFHLElBQUksQ0FBQztRQUluQixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBR1AsZ0JBQVcsR0FB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QUU7c0RBQ0Q7SUFHaEI7UUFEQyxNQUFNLEVBQUU7eURBQ3VDO0lBR2hEO1FBREMsV0FBVyxDQUFDLGdCQUFnQixDQUFDO3FEQUNkO0lBaURoQjtRQURDLFdBQVcsQ0FBQyxhQUFhLENBQUM7K0NBRzFCO0lBMkJEO1FBREMsT0FBTzs2REFTUDtJQUdEO1FBREMsT0FBTzs4REFNUDtJQUdEO1FBREMsT0FBTzt5REFZUDtJQXJJUSxnQkFBZ0I7UUFONUIsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLFVBQVU7WUFDcEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07WUFDL0MsK2dGQUFtQzs7U0FFdEMsQ0FBQztRQTZCTyxXQUFBLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUNyQixXQUFBLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUNwQixXQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQTtRQUl0QixXQUFBLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFBO09BbENqQyxnQkFBZ0IsQ0FzSTVCO0lBQUQsdUJBQUM7Q0FBQSxBQXRJRCxJQXNJQztTQXRJWSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RvbVNhbml0aXplciwgU2FmZVZhbHVlfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7VFVJX0lTX01PQklMRSwgdHVpRGVmYXVsdFByb3AsIHR1aVB1cmV9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtUdWlTaXplTH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUdWlGaWxlU3RhdGV9IGZyb20gJ0B0YWlnYS11aS9raXQvZW51bXMnO1xuaW1wb3J0IHtUdWlGaWxlTGlrZX0gZnJvbSAnQHRhaWdhLXVpL2tpdC9pbnRlcmZhY2VzJztcbmltcG9ydCB7VFVJX0RJR0lUQUxfSU5GT1JNQVRJT05fVU5JVFMsIFRVSV9GSUxFX1RFWFRTfSBmcm9tICdAdGFpZ2EtdWkva2l0L3Rva2Vucyc7XG5pbXBvcnQge2Zvcm1hdFNpemV9IGZyb20gJ0B0YWlnYS11aS9raXQvdXRpbHMvZmlsZXMnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vLyBAZHluYW1pY1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktZmlsZScsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZmlsZS5zdHlsZS5sZXNzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUZpbGVDb21wb25lbnQge1xuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBmaWxlOiBUdWlGaWxlTGlrZSA9IHtuYW1lOiAnJ307XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc3RhdGU6IFR1aUZpbGVTdGF0ZSA9IFR1aUZpbGVTdGF0ZS5Ob3JtYWw7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc2l6ZTogVHVpU2l6ZUwgPSAnbSc7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgYWxsb3dEZWxldGUgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHNob3dTaXplID0gdHJ1ZTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGZpbGVSZW1vdmVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fZm9jdXNlZCcpXG4gICAgZm9jdXNlZCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoVFVJX0lTX01PQklMRSkgcmVhZG9ubHkgaXNNb2JpbGU6IGJvb2xlYW4sXG4gICAgICAgIEBJbmplY3QoRG9tU2FuaXRpemVyKSBwcml2YXRlIHJlYWRvbmx5IHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgICAgICBASW5qZWN0KFRVSV9GSUxFX1RFWFRTKVxuICAgICAgICByZWFkb25seSBmaWxlVGV4dHMkOiBPYnNlcnZhYmxlPFxuICAgICAgICAgICAgUmVjb3JkPCdsb2FkaW5nRXJyb3InIHwgJ3ByZXZpZXcnIHwgJ3JlbW92ZScsIHN0cmluZz5cbiAgICAgICAgPixcbiAgICAgICAgQEluamVjdChUVUlfRElHSVRBTF9JTkZPUk1BVElPTl9VTklUUylcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB1bml0cyQ6IE9ic2VydmFibGU8W3N0cmluZywgc3RyaW5nLCBzdHJpbmddPixcbiAgICApIHt9XG5cbiAgICBnZXQgcHJldmlldygpOiBTYWZlVmFsdWUge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0JpZyA/IHRoaXMuY3JlYXRlUHJldmlldyh0aGlzLmZpbGUsIHRoaXMuc2FuaXRpemVyKSA6ICcnO1xuICAgIH1cblxuICAgIGdldCBpc0JpZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2l6ZSA9PT0gJ2wnO1xuICAgIH1cblxuICAgIGdldCBpc0xvYWRpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlID09PSBUdWlGaWxlU3RhdGUuTG9hZGluZztcbiAgICB9XG5cbiAgICBnZXQgaXNFcnJvcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGUgPT09IFR1aUZpbGVTdGF0ZS5FcnJvcjtcbiAgICB9XG5cbiAgICBnZXQgaXNEZWxldGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZSA9PT0gVHVpRmlsZVN0YXRlLkRlbGV0ZWQ7XG4gICAgfVxuXG4gICAgZ2V0IGljb24oKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUgPT09IFR1aUZpbGVTdGF0ZS5Ob3JtYWwgJiYgdGhpcy5pc0JpZykge1xuICAgICAgICAgICAgcmV0dXJuICd0dWlJY29uRGVmYXVsdERvY0xhcmdlJztcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAodGhpcy5zdGF0ZSkge1xuICAgICAgICAgICAgY2FzZSBUdWlGaWxlU3RhdGUuRGVsZXRlZDpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3R1aUljb25UcmFzaExhcmdlJztcbiAgICAgICAgICAgIGNhc2UgVHVpRmlsZVN0YXRlLkVycm9yOlxuICAgICAgICAgICAgICAgIHJldHVybiAndHVpSWNvbkFsZXJ0Q2lyY2xlTGFyZ2UnO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3R1aUljb25DaGVja0NpcmNsZUxhcmdlJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX2xpbmsnKVxuICAgIGdldCBzcmMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsZS5zcmMgfHwgJyc7XG4gICAgfVxuXG4gICAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsZS5uYW1lLnNwbGl0KCcuJykuc2xpY2UoMCwgLTEpLmpvaW4oJy4nKTtcbiAgICB9XG5cbiAgICBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJy4nICsgdGhpcy5maWxlLm5hbWUuc3BsaXQoJy4nKS5wb3AoKSB8fCAnJztcbiAgICB9XG5cbiAgICBnZXQgY29udGVudCQoKTogT2JzZXJ2YWJsZTxQb2x5bW9ycGhldXNDb250ZW50PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbGN1bGF0ZUNvbnRlbnQkKHRoaXMuc3RhdGUsIHRoaXMuZmlsZSwgdGhpcy5maWxlVGV4dHMkKTtcbiAgICB9XG5cbiAgICBnZXQgZmlsZVNpemUkKCk6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVsbD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jYWxjdWxhdGVGaWxlU2l6ZSQodGhpcy5maWxlLCB0aGlzLnVuaXRzJCk7XG4gICAgfVxuXG4gICAgb25SZW1vdmVDbGljaygpIHtcbiAgICAgICAgdGhpcy5maWxlUmVtb3ZlZC5lbWl0KCk7XG4gICAgfVxuXG4gICAgb25Gb2N1c1Zpc2libGUoZm9jdXNWaXNpYmxlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZm9jdXNlZCA9IGZvY3VzVmlzaWJsZTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgY2FsY3VsYXRlQ29udGVudCQoXG4gICAgICAgIHN0YXRlOiBUdWlGaWxlU3RhdGUsXG4gICAgICAgIGZpbGU6IFR1aUZpbGVMaWtlLFxuICAgICAgICBmaWxlVGV4dHMkOiBPYnNlcnZhYmxlPFJlY29yZDwnbG9hZGluZ0Vycm9yJyB8ICdwcmV2aWV3JyB8ICdyZW1vdmUnLCBzdHJpbmc+PixcbiAgICApOiBPYnNlcnZhYmxlPFBvbHltb3JwaGV1c0NvbnRlbnQ+IHtcbiAgICAgICAgcmV0dXJuIHN0YXRlID09PSBUdWlGaWxlU3RhdGUuRXJyb3IgJiYgIWZpbGUuY29udGVudFxuICAgICAgICAgICAgPyBmaWxlVGV4dHMkLnBpcGUobWFwKHRleHRzID0+IHRleHRzLmxvYWRpbmdFcnJvcikpXG4gICAgICAgICAgICA6IG9mKHRoaXMuZmlsZS5jb250ZW50IHx8ICcnKTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgY2FsY3VsYXRlRmlsZVNpemUkKFxuICAgICAgICBmaWxlOiBUdWlGaWxlTGlrZSxcbiAgICAgICAgdW5pdHMkOiBPYnNlcnZhYmxlPFtzdHJpbmcsIHN0cmluZywgc3RyaW5nXT4sXG4gICAgKTogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgICAgIHJldHVybiB1bml0cyQucGlwZShtYXAodW5pdHMgPT4gZm9ybWF0U2l6ZSh1bml0cywgZmlsZS5zaXplKSkpO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBjcmVhdGVQcmV2aWV3KGZpbGU6IFR1aUZpbGVMaWtlLCBzYW5pdGl6ZXI6IERvbVNhbml0aXplcik6IFNhZmVWYWx1ZSB7XG4gICAgICAgIGlmIChmaWxlLnNyYykge1xuICAgICAgICAgICAgcmV0dXJuIGZpbGUuc3JjO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVE9ETzogaWZyYW1lIHdhcm5pbmdcbiAgICAgICAgaWYgKGZpbGUgaW5zdGFuY2VvZiBGaWxlICYmIGZpbGUudHlwZSAmJiBmaWxlLnR5cGUuc3RhcnRzV2l0aCgnaW1hZ2UvJykpIHtcbiAgICAgICAgICAgIHJldHVybiBzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFVybChVUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGUpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG59XG4iXX0=
@@ -294,7 +294,7 @@ var TuiInputFileComponent = /** @class */ (function (_super) {
294
294
  TuiInputFileComponent = TuiInputFileComponent_1 = __decorate([
295
295
  Component({
296
296
  selector: 'tui-input-file',
297
- template: "<tui-wrapper\n *ngIf=\"multiple || !value\"\n class=\"wrapper\"\n [class.wrapper_mobile]=\"isMobile\"\n [class.wrapper_has-files]=\"hasFiles\"\n [appearance]=\"getAppearance(mode$ | async)\"\n [focused]=\"computedFocused\"\n [hovered]=\"computedHovered || fileDragged\"\n [pressed]=\"computedPressed\"\n [readOnly]=\"readOnly\"\n [disabled]=\"computedDisabled\"\n>\n <label\n *ngIf=\"(units$ | async) as units\"\n automation-id=\"tui-input-file__label\"\n >\n <a tuiLink>\n <span\n polymorpheus-outlet\n class=\"inline\"\n [content]=\"computedLink$ | async\"\n ></span>\n </a>\n <ng-container *ngIf=\"computedLabel$ | async as computedLabel\">\n <span>&nbsp;</span>\n <span\n polymorpheus-outlet\n class=\"inline\"\n [content]=\"computedLabel\"\n ></span>\n </ng-container>\n <input\n *ngIf=\"!readOnly && !computedDisabled && (inputFileTexts$ | async) as texts\"\n #input\n class=\"native\"\n type=\"file\"\n tuiPreventDefault=\"mousedown\"\n [id]=\"id\"\n [accept]=\"accept\"\n [multiple]=\"multiple\"\n [tuiFocusable]=\"focusable\"\n (change)=\"onFilesSelected(input, texts, units)\"\n (tuiHoveredChange)=\"onHovered($event)\"\n (tuiFocusedChange)=\"onFocused($event)\"\n (tuiPressedChange)=\"onPressed($event)\"\n (tuiDroppableDropped)=\"onDropped($event, texts, units)\"\n (tuiDroppableDragOverChange)=\"onDragOver($event)\"\n />\n </label>\n</tui-wrapper>\n\n<section\n *tuiLet=\"mode$ | async as mode\"\n tuiGroup\n class=\"files\"\n orientation=\"vertical\"\n [collapsed]=\"true\"\n>\n <tui-file\n *ngFor=\"let file of rejectedFiles\"\n automation-id=\"tui-input-file__error\"\n state=\"error\"\n [attr.data-mode]=\"mode\"\n [showSize]=\"showSize\"\n [allowDelete]=\"allowDelete\"\n [size]=\"size\"\n [file]=\"file\"\n (fileRemoved)=\"removeRejectedFile(file)\"\n ></tui-file>\n <tui-file\n *ngFor=\"let file of computedLoading\"\n automation-id=\"tui-input-file__loading\"\n state=\"loading\"\n [attr.data-mode]=\"mode\"\n [showSize]=\"showSize\"\n [allowDelete]=\"allowDelete\"\n [size]=\"size\"\n [file]=\"file\"\n (fileRemoved)=\"removeFile(file)\"\n ></tui-file>\n <tui-file\n *ngFor=\"let file of readyFiles\"\n automation-id=\"tui-input-file__file\"\n [attr.data-mode]=\"mode\"\n [showSize]=\"showSize\"\n [allowDelete]=\"allowDelete\"\n [size]=\"size\"\n [file]=\"file\"\n (fileRemoved)=\"removeFile(file)\"\n ></tui-file>\n</section>\n",
297
+ template: "<tui-wrapper\n *ngIf=\"multiple || !value\"\n class=\"wrapper\"\n [class.wrapper_mobile]=\"isMobile\"\n [class.wrapper_has-files]=\"hasFiles\"\n [appearance]=\"getAppearance(mode$ | async)\"\n [focused]=\"computedFocused\"\n [hovered]=\"computedHovered || fileDragged\"\n [pressed]=\"computedPressed\"\n [readOnly]=\"readOnly\"\n [disabled]=\"computedDisabled\"\n>\n <label\n *ngIf=\"units$ | async as units\"\n automation-id=\"tui-input-file__label\"\n >\n <a tuiLink>\n <span\n polymorpheus-outlet\n class=\"inline\"\n [content]=\"computedLink$ | async\"\n ></span>\n </a>\n <ng-container *ngIf=\"computedLabel$ | async as computedLabel\">\n <span>&nbsp;</span>\n <span\n polymorpheus-outlet\n class=\"inline\"\n [content]=\"computedLabel\"\n ></span>\n </ng-container>\n <input\n *ngIf=\"!readOnly && !computedDisabled && (inputFileTexts$ | async) as texts\"\n #input\n type=\"file\"\n tuiPreventDefault=\"mousedown\"\n class=\"native\"\n [id]=\"id\"\n [accept]=\"accept\"\n [multiple]=\"multiple\"\n [tuiFocusable]=\"focusable\"\n (change)=\"onFilesSelected(input, texts, units)\"\n (tuiHoveredChange)=\"onHovered($event)\"\n (tuiFocusedChange)=\"onFocused($event)\"\n (tuiPressedChange)=\"onPressed($event)\"\n (tuiDroppableDropped)=\"onDropped($event, texts, units)\"\n (tuiDroppableDragOverChange)=\"onDragOver($event)\"\n />\n </label>\n</tui-wrapper>\n\n<section\n *tuiLet=\"mode$ | async as mode\"\n tuiGroup\n orientation=\"vertical\"\n class=\"files\"\n [collapsed]=\"true\"\n>\n <tui-file\n *ngFor=\"let file of rejectedFiles\"\n automation-id=\"tui-input-file__error\"\n state=\"error\"\n [attr.data-mode]=\"mode\"\n [showSize]=\"showSize\"\n [allowDelete]=\"allowDelete\"\n [size]=\"size\"\n [file]=\"file\"\n (fileRemoved)=\"removeRejectedFile(file)\"\n ></tui-file>\n <tui-file\n *ngFor=\"let file of computedLoading\"\n automation-id=\"tui-input-file__loading\"\n state=\"loading\"\n [attr.data-mode]=\"mode\"\n [showSize]=\"showSize\"\n [allowDelete]=\"allowDelete\"\n [size]=\"size\"\n [file]=\"file\"\n (fileRemoved)=\"removeFile(file)\"\n ></tui-file>\n <tui-file\n *ngFor=\"let file of readyFiles\"\n automation-id=\"tui-input-file__file\"\n [attr.data-mode]=\"mode\"\n [showSize]=\"showSize\"\n [allowDelete]=\"allowDelete\"\n [size]=\"size\"\n [file]=\"file\"\n (fileRemoved)=\"removeFile(file)\"\n ></tui-file>\n</section>\n",
298
298
  changeDetection: ChangeDetectionStrategy.OnPush,
299
299
  providers: [
300
300
  MODE_PROVIDER,
@@ -317,4 +317,4 @@ var TuiInputFileComponent = /** @class */ (function (_super) {
317
317
  return TuiInputFileComponent;
318
318
  }(AbstractTuiNullableControl));
319
319
  export { TuiInputFileComponent };
320
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtZmlsZS8iLCJzb3VyY2VzIjpbImlucHV0LWZpbGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFDSixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCwwQkFBMEIsRUFDMUIsV0FBVyxFQUNYLGVBQWUsRUFDZiwyQkFBMkIsRUFDM0IsYUFBYSxFQUNiLGNBQWMsRUFHZCxPQUFPLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILGFBQWEsRUFDYixRQUFRLEdBSVgsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUMsNkJBQTZCLEVBQUUsb0JBQW9CLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFFckQsT0FBTyxFQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRW5DLElBQU0sZ0JBQWdCLEdBQUcsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxRQUFRO0FBRW5ELFdBQVc7QUFjWDtJQUNZLHlDQUFvRTtJQStDNUUsK0JBSUksT0FBeUIsRUFFekIsaUJBQW9DLEVBRTNCLFFBQWlCLEVBRWpCLGVBWVIsRUFDMEIsS0FBdUMsRUFFekQsTUFBNEM7UUF6QnpELFlBMkJJLGtCQUFNLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxTQUNwQztRQXBCWSxjQUFRLEdBQVIsUUFBUSxDQUFTO1FBRWpCLHFCQUFlLEdBQWYsZUFBZSxDQVl2QjtRQUMwQixXQUFLLEdBQUwsS0FBSyxDQUFrQztRQUV6RCxZQUFNLEdBQU4sTUFBTSxDQUFzQztRQW5FekQsVUFBSSxHQUF3QixFQUFFLENBQUM7UUFJL0IsV0FBSyxHQUF3QixFQUFFLENBQUM7UUFJaEMsWUFBTSxHQUFHLEVBQUUsQ0FBQztRQUlaLGNBQVEsR0FBRyxLQUFLLENBQUM7UUFJakIsVUFBSSxHQUFhLEdBQUcsQ0FBQztRQUlyQixjQUFRLEdBQUcsSUFBSSxDQUFDO1FBSWhCLGlCQUFXLEdBQUcsZ0JBQWdCLENBQUM7UUFJL0Isa0JBQVksR0FBK0IsRUFBRSxDQUFDO1FBSTlDLG1CQUFhLEdBQStCLEVBQUUsQ0FBQztRQUcvQyx5QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBOEIsQ0FBQztRQUs3RCxrQkFBWSxHQUF3QixJQUFJLENBQUM7O0lBOEJqRCxDQUFDOzhCQTVFUSxxQkFBcUI7SUE4RTlCLHNCQUFJLHlEQUFzQjthQUExQjtZQUNJLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN4RCxDQUFDOzs7T0FBQTtJQUVELHNCQUFJLDBDQUFPO2FBQVg7WUFDSSxPQUFPLGVBQWUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUN4RCxDQUFDOzs7T0FBQTtJQUVELHNCQUFJLDhDQUFXO2FBQWY7WUFDSSxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNwRCxDQUFDOzs7T0FBQTtJQUVELHNCQUFJLGdEQUFhO2FBQWpCO1lBQ0ksT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekUsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSxpREFBYzthQUFsQjtZQUNJLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FDckIsSUFBSSxDQUFDLFFBQVEsRUFDYixJQUFJLENBQUMsV0FBVyxFQUNoQixJQUFJLENBQUMsUUFBUSxFQUNiLElBQUksQ0FBQyxLQUFLLENBQ2IsQ0FBQztRQUNOLENBQUM7OztPQUFBO0lBR0Qsc0JBQUksOENBQVc7UUFEZiwwQ0FBMEM7YUFDMUM7WUFDSSxPQUFPLENBQ0gsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZO2dCQUNuQixLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ3hFLENBQUM7UUFDTixDQUFDOzs7T0FBQTtJQUVELHNCQUFJLDhDQUFXO2FBQWY7WUFDSSxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLENBQUM7OztPQUFBO0lBRUQsc0JBQUksNkNBQVU7YUFBZDtZQUNJLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUMsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSw2Q0FBVTthQUFkO1lBQ0ksT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2xFLENBQUM7OztPQUFBO0lBRUQsc0JBQUksa0RBQWU7YUFBbkI7WUFDSSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEUsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSwyQ0FBUTthQUFaO1lBQ0ksT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ25FLENBQUM7OztPQUFBO0lBRUQseUNBQVMsR0FBVCxVQUFVLE9BQWdCO1FBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELHlDQUFTLEdBQVQsVUFBVSxPQUFnQjtRQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCx5Q0FBUyxHQUFULFVBQVUsT0FBZ0I7UUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsK0JBQStCO0lBQy9CLCtDQUFlLEdBQWYsVUFDSSxLQUF1QixFQUN2QixLQUF5RSxFQUN6RSxLQUErQjtRQUUvQixJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckQsS0FBSyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELHlDQUFTLEdBQVQsVUFDSSxLQUFtQixFQUNuQixLQUF5RSxFQUN6RSxLQUErQjtRQUUvQixJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELDBDQUFVLEdBQVYsVUFBVyxZQUFpQztRQUN4QyxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztJQUNyQyxDQUFDO0lBRUQsMENBQVUsR0FBVixVQUFXLFdBQXdCO1FBQy9CLElBQUksQ0FBQyxXQUFXLENBQ1osSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxJQUFJLEtBQUssV0FBVyxFQUFwQixDQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDOUUsQ0FBQztJQUNOLENBQUM7SUFFRCxrREFBa0IsR0FBbEIsVUFBbUIsV0FBd0I7UUFDdkMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsSUFBSSxLQUFLLFdBQVcsRUFBcEIsQ0FBb0IsQ0FBQyxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVELDZDQUFhLEdBQWIsVUFBYyxJQUFvQjtRQUM5QixPQUFPLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLHdCQUFzQixDQUFDO0lBQ3RELENBQUM7SUFHTyw0Q0FBWSxHQUFwQixVQUNJLFdBQW9CLEVBQ3BCLFFBQWlCLEVBQ2pCLElBQXlCO1FBRXpCLElBQUksV0FBVyxFQUFFO1lBQ2IsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDakI7UUFFRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUM1QixHQUFHLENBQUMsVUFBQSxLQUFLO1lBQ0wsT0FBQSxRQUFRLElBQUksSUFBSSxLQUFLLEVBQUU7Z0JBQ25CLENBQUMsQ0FBQyxLQUFLLENBQUMsbUJBQW1CO2dCQUMzQixDQUFDLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxpQkFBaUI7UUFGckMsQ0FFcUMsQ0FDeEMsQ0FDSixDQUFDO0lBQ04sQ0FBQztJQUdPLDZDQUFhLEdBQXJCLFVBQ0ksUUFBaUIsRUFDakIsV0FBb0IsRUFDcEIsUUFBaUIsRUFDakIsS0FBMEI7UUFFMUIsSUFBSSxRQUFRLEVBQUU7WUFDVixPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNqQjtRQUVELElBQUksV0FBVyxFQUFFO1lBQ2IsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FDNUIsR0FBRyxDQUFDLFVBQUEsS0FBSyxJQUFJLE9BQUEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBNUMsQ0FBNEMsQ0FBQyxDQUM3RCxDQUFDO1NBQ0w7UUFFRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUM1QixHQUFHLENBQUMsVUFBQSxLQUFLO1lBQ0wsT0FBQSxRQUFRLElBQUksS0FBSyxLQUFLLEVBQUU7Z0JBQ3BCLENBQUMsQ0FBQyxLQUFLLENBQUMsb0JBQW9CO2dCQUM1QixDQUFDLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxrQkFBa0I7UUFGdkMsQ0FFdUMsQ0FDMUMsQ0FDSixDQUFDO0lBQ04sQ0FBQztJQUdPLDZDQUFhLEdBQXJCLFVBQ0ksS0FBc0Q7UUFFdEQsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNSLE9BQU8sV0FBVyxDQUFDO1NBQ3RCO1FBRUQsT0FBTyxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUdPLDZDQUFhLEdBQXJCLFVBQ0ksS0FBaUMsRUFDakMsT0FBbUM7UUFFbkMsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBNUIsQ0FBNEIsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFHTywrQ0FBZSxHQUF2QixVQUNJLEtBQWlDLEVBQ2pDLE9BQW1DO1FBRW5DLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFBLElBQUksSUFBSSxPQUFBLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQTFCLENBQTBCLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBR08sOENBQWMsR0FBdEIsVUFBdUIsTUFBYztRQUNqQyxPQUFPLE1BQU07YUFDUixXQUFXLEVBQUU7YUFDYixLQUFLLENBQUMsR0FBRyxDQUFDO2FBQ1YsR0FBRyxDQUFDLFVBQUEsTUFBTSxJQUFJLE9BQUEsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFiLENBQWEsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTyxvREFBb0IsR0FBNUIsVUFDSSxLQUFzQixFQUN0QixLQUF5RSxFQUN6RSxLQUErQjtRQUhuQyxpQkF3Q0M7UUFuQ0csMEdBQTBHO1FBQzFHLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN0QyxPQUFPO1NBQ1Y7UUFFRCxJQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLElBQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUksQ0FBQyxXQUFXLEVBQTVCLENBQTRCLENBQUMsQ0FBQztRQUMxRSxJQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQ3BDLFVBQUEsSUFBSSxJQUFJLE9BQUEsQ0FBQyxLQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBbEUsQ0FBa0UsQ0FDN0UsQ0FBQztRQUNGLElBQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQ2pDLFVBQUEsSUFBSTtZQUNBLE9BQUEsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQXpFLENBQXlFLENBQ2hGLENBQUM7UUFFRixJQUFJLENBQUMsbUJBQW1CLFVBQ2pCLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxDQUFDO1lBQ3hCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLE9BQU8sRUFDSCxLQUFLLENBQUMsc0JBQXNCLEdBQUcsVUFBVSxDQUFDLEtBQUssRUFBRSxLQUFJLENBQUMsV0FBVyxDQUFDO1NBQ3pFLENBQUMsRUFOeUIsQ0FNekIsQ0FBQyxFQUNBLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxVQUFBLElBQUksSUFBSSxPQUFBLENBQUM7WUFDN0IsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsT0FBTyxFQUFFLEtBQUssQ0FBQyxxQkFBcUI7U0FDdkMsQ0FBQyxFQUw4QixDQUs5QixDQUFDLEVBQ0wsQ0FBQztRQUNILElBQUksQ0FBQyxXQUFXLENBQ1osSUFBSSxDQUFDLFFBQVE7WUFDVCxDQUFDLFVBQUssSUFBSSxDQUFDLFVBQVUsRUFBSyxhQUFhLEVBQ3ZDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUNqQyxDQUFDO0lBQ04sQ0FBQztJQUVPLGtEQUFrQixHQUExQixVQUEyQixJQUFVO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2QsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUVELElBQU0sU0FBUyxHQUFHLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRXpFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQ3hCLFVBQUEsTUFBTTtZQUNGLE9BQUEsTUFBTSxLQUFLLFNBQVM7Z0JBQ3BCLE1BQU0sS0FBSyxJQUFJLENBQUMsSUFBSTtnQkFDcEIsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUc7b0JBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFIckQsQ0FHcUQsQ0FDNUQsQ0FBQztJQUNOLENBQUM7SUFFTyxtREFBbUIsR0FBM0IsVUFBNEIsYUFBeUM7UUFDakUsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDbkMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNqRCxDQUFDOzs7Z0JBNVFZLFNBQVMsdUJBSGpCLFFBQVEsWUFDUixJQUFJLFlBQ0osTUFBTSxTQUFDLFNBQVM7Z0JBR0UsaUJBQWlCLHVCQURuQyxNQUFNLFNBQUMsaUJBQWlCOzhDQUV4QixNQUFNLFNBQUMsYUFBYTtnQkFHSyxVQUFVLHVCQURuQyxNQUFNLFNBQUMsb0JBQW9CO2dCQWNNLFVBQVUsdUJBQTNDLE1BQU0sU0FBQyxRQUFRO2dCQUVDLFVBQVUsdUJBRDFCLE1BQU0sU0FBQyw2QkFBNkI7O0lBbEV6QztRQUZDLEtBQUssRUFBRTtRQUNQLGNBQWMsRUFBRTt1REFDYztJQUkvQjtRQUZDLEtBQUssRUFBRTtRQUNQLGNBQWMsRUFBRTt3REFDZTtJQUloQztRQUZDLEtBQUssRUFBRTtRQUNQLGNBQWMsRUFBRTt5REFDTDtJQUlaO1FBRkMsS0FBSyxFQUFFO1FBQ1AsY0FBYyxFQUFFOzJEQUNBO0lBSWpCO1FBRkMsS0FBSyxFQUFFO1FBQ1AsY0FBYyxFQUFFO3VEQUNJO0lBSXJCO1FBRkMsS0FBSyxFQUFFO1FBQ1AsY0FBYyxFQUFFOzJEQUNEO0lBSWhCO1FBRkMsS0FBSyxFQUFFO1FBQ1AsY0FBYyxFQUFFOzhEQUNjO0lBSS9CO1FBRkMsS0FBSyxFQUFFO1FBQ1AsY0FBYyxFQUFFOytEQUM2QjtJQUk5QztRQUZDLEtBQUssRUFBRTtRQUNQLGNBQWMsRUFBRTtnRUFDOEI7SUFHL0M7UUFEQyxNQUFNLEVBQUU7c0VBQzREO0lBR3JFO1FBREMsU0FBUyxDQUFDLE9BQU8sQ0FBQzt3REFDMkI7SUF3STlDO1FBREMsT0FBTzs2REFpQlA7SUFHRDtRQURDLE9BQU87OERBd0JQO0lBR0Q7UUFEQyxPQUFPOzhEQVNQO0lBR0Q7UUFEQyxPQUFPOzhEQU1QO0lBR0Q7UUFEQyxPQUFPO2dFQU1QO0lBR0Q7UUFEQyxPQUFPOytEQU1QO0lBalFRLHFCQUFxQjtRQWJqQyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLHc2RkFBeUM7WUFFekMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07WUFDL0MsU0FBUyxFQUFFO2dCQUNQLGFBQWE7Z0JBQ2I7b0JBQ0ksT0FBTyxFQUFFLDJCQUEyQjtvQkFDcEMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxjQUFNLE9BQUEsdUJBQXFCLEVBQXJCLENBQXFCLENBQUM7aUJBQ3ZEO2FBQ0o7O1NBQ0osQ0FBQztRQWtETyxXQUFBLFFBQVEsRUFBRSxDQUFBO1FBQ1YsV0FBQSxJQUFJLEVBQUUsQ0FBQTtRQUNOLFdBQUEsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBRWpCLFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFFekIsV0FBQSxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7UUFFckIsV0FBQSxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtRQWM1QixXQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNoQixXQUFBLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFBO09BeEVqQyxxQkFBcUIsQ0FpVWpDO0lBQUQsNEJBQUM7Q0FBQSxBQWpVRCxDQUNZLDBCQUEwQixHQWdVckM7U0FqVVkscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFNlbGYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sLFxuICAgIEVNUFRZX0FSUkFZLFxuICAgIGlzTmF0aXZlRm9jdXNlZCxcbiAgICBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgVFVJX0lTX01PQklMRSxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCxcbiAgICB0dWlQdXJlLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgTU9ERV9QUk9WSURFUixcbiAgICBUVUlfTU9ERSxcbiAgICBUdWlBcHBlYXJhbmNlLFxuICAgIFR1aUJyaWdodG5lc3MsXG4gICAgVHVpU2l6ZUwsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7VHVpRmlsZUxpa2V9IGZyb20gJ0B0YWlnYS11aS9raXQvaW50ZXJmYWNlcyc7XG5pbXBvcnQge1RVSV9ESUdJVEFMX0lORk9STUFUSU9OX1VOSVRTLCBUVUlfSU5QVVRfRklMRV9URVhUU30gZnJvbSAnQHRhaWdhLXVpL2tpdC90b2tlbnMnO1xuaW1wb3J0IHtmb3JtYXRTaXplfSBmcm9tICdAdGFpZ2EtdWkva2l0L3V0aWxzL2ZpbGVzJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgb2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuY29uc3QgREVGQVVMVF9NQVhfU0laRSA9IDMwICogMTAwMCAqIDEwMDA7IC8vIDMwIE1CXG5cbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1pbnB1dC1maWxlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtZmlsZS50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnB1dC1maWxlLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgTU9ERV9QUk9WSURFUixcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHVpSW5wdXRGaWxlQ29tcG9uZW50KSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dEZpbGVDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sPFR1aUZpbGVMaWtlIHwgUmVhZG9ubHlBcnJheTxUdWlGaWxlTGlrZT4+XG4gICAgaW1wbGVtZW50cyBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3JcbntcbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbGluazogUG9seW1vcnBoZXVzQ29udGVudCA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGxhYmVsOiBQb2x5bW9ycGhldXNDb250ZW50ID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgYWNjZXB0ID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbXVsdGlwbGUgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzaXplOiBUdWlTaXplTCA9ICdtJztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzaG93U2l6ZSA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWF4RmlsZVNpemUgPSBERUZBVUxUX01BWF9TSVpFO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGxvYWRpbmdGaWxlczogUmVhZG9ubHlBcnJheTxUdWlGaWxlTGlrZT4gPSBbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICByZWplY3RlZEZpbGVzOiBSZWFkb25seUFycmF5PFR1aUZpbGVMaWtlPiA9IFtdO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVqZWN0ZWRGaWxlc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8UmVhZG9ubHlBcnJheTxUdWlGaWxlTGlrZT4+KCk7XG5cbiAgICBAVmlld0NoaWxkKCdpbnB1dCcpXG4gICAgcmVhZG9ubHkgaW5wdXQ/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgcHJpdmF0ZSBkYXRhVHJhbnNmZXI6IERhdGFUcmFuc2ZlciB8IG51bGwgPSBudWxsO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpXG4gICAgICAgIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChUVUlfSVNfTU9CSUxFKVxuICAgICAgICByZWFkb25seSBpc01vYmlsZTogYm9vbGVhbixcbiAgICAgICAgQEluamVjdChUVUlfSU5QVVRfRklMRV9URVhUUylcbiAgICAgICAgcmVhZG9ubHkgaW5wdXRGaWxlVGV4dHMkOiBPYnNlcnZhYmxlPFxuICAgICAgICAgICAgUmVjb3JkPFxuICAgICAgICAgICAgICAgIHwgJ2RlZmF1bHRMYWJlbFNpbmdsZSdcbiAgICAgICAgICAgICAgICB8ICdkZWZhdWx0TGFiZWxNdWx0aXBsZSdcbiAgICAgICAgICAgICAgICB8ICdkZWZhdWx0TGlua1NpbmdsZSdcbiAgICAgICAgICAgICAgICB8ICdkZWZhdWx0TGlua011bHRpcGxlJ1xuICAgICAgICAgICAgICAgIHwgJ21heFNpemVSZWplY3Rpb25SZWFzb24nXG4gICAgICAgICAgICAgICAgfCAnZm9ybWF0UmVqZWN0aW9uUmVhc29uJ1xuICAgICAgICAgICAgICAgIHwgJ2Ryb3AnXG4gICAgICAgICAgICAgICAgfCAnZHJvcE11bHRpcGxlJyxcbiAgICAgICAgICAgICAgICBzdHJpbmdcbiAgICAgICAgICAgID5cbiAgICAgICAgPixcbiAgICAgICAgQEluamVjdChUVUlfTU9ERSkgcmVhZG9ubHkgbW9kZSQ6IE9ic2VydmFibGU8VHVpQnJpZ2h0bmVzcyB8IG51bGw+LFxuICAgICAgICBASW5qZWN0KFRVSV9ESUdJVEFMX0lORk9STUFUSU9OX1VOSVRTKVxuICAgICAgICByZWFkb25seSB1bml0cyQ6IE9ic2VydmFibGU8W3N0cmluZywgc3RyaW5nLCBzdHJpbmddPixcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IFR1aU5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXQgPyB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQgOiBudWxsO1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gaXNOYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgZ2V0IGFsbG93RGVsZXRlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuY29tcHV0ZWREaXNhYmxlZCAmJiAhdGhpcy5yZWFkT25seTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRMaW5rJCgpOiBPYnNlcnZhYmxlPFBvbHltb3JwaGV1c0NvbnRlbnQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcHV0ZUxpbmskKHRoaXMuZmlsZURyYWdnZWQsIHRoaXMubXVsdGlwbGUsIHRoaXMubGluayk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkTGFiZWwkKCk6IE9ic2VydmFibGU8UG9seW1vcnBoZXVzQ29udGVudD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wdXRlTGFiZWwkKFxuICAgICAgICAgICAgdGhpcy5pc01vYmlsZSxcbiAgICAgICAgICAgIHRoaXMuZmlsZURyYWdnZWQsXG4gICAgICAgICAgICB0aGlzLm11bHRpcGxlLFxuICAgICAgICAgICAgdGhpcy5sYWJlbCxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBAYmFkIFRPRE86IHJlZmFjdG9yIGFmdGVyIElFIGlzIGRyb3BwZWRcbiAgICBnZXQgZmlsZURyYWdnZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhIXRoaXMuZGF0YVRyYW5zZmVyICYmXG4gICAgICAgICAgICBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKHRoaXMuZGF0YVRyYW5zZmVyLnR5cGVzLCAnRmlsZXMnKSAhPT0gLTFcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgYWNjZXB0QXJyYXkoKTogcmVhZG9ubHkgc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRBY2NlcHRBcnJheSh0aGlzLmFjY2VwdCk7XG4gICAgfVxuXG4gICAgZ2V0IGFycmF5VmFsdWUoKTogUmVhZG9ubHlBcnJheTxUdWlGaWxlTGlrZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRWYWx1ZUFycmF5KHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIGdldCByZWFkeUZpbGVzKCk6IFJlYWRvbmx5QXJyYXk8VHVpRmlsZUxpa2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UmVhZHlGaWxlcyh0aGlzLmFycmF5VmFsdWUsIHRoaXMubG9hZGluZ0ZpbGVzKTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRMb2FkaW5nKCk6IFJlYWRvbmx5QXJyYXk8VHVpRmlsZUxpa2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TG9hZGluZ0ZpbGVzKHRoaXMuYXJyYXlWYWx1ZSwgdGhpcy5sb2FkaW5nRmlsZXMpO1xuICAgIH1cblxuICAgIGdldCBoYXNGaWxlcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5yZWplY3RlZEZpbGVzLmxlbmd0aCB8fCAhIXRoaXMuYXJyYXlWYWx1ZS5sZW5ndGg7XG4gICAgfVxuXG4gICAgb25Ib3ZlcmVkKGhvdmVyZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVIb3ZlcmVkKGhvdmVyZWQpO1xuICAgIH1cblxuICAgIG9uRm9jdXNlZChmb2N1c2VkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChmb2N1c2VkKTtcbiAgICB9XG5cbiAgICBvblByZXNzZWQocHJlc3NlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZVByZXNzZWQocHJlc3NlZCk7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogcmVmYWN0b3IgaTE4biBtZXNzYWdlc1xuICAgIG9uRmlsZXNTZWxlY3RlZChcbiAgICAgICAgaW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQsXG4gICAgICAgIHRleHRzOiBSZWNvcmQ8J21heFNpemVSZWplY3Rpb25SZWFzb24nIHwgJ2Zvcm1hdFJlamVjdGlvblJlYXNvbicsIHN0cmluZz4sXG4gICAgICAgIHVuaXRzOiBbc3RyaW5nLCBzdHJpbmcsIHN0cmluZ10sXG4gICAgKSB7XG4gICAgICAgIHRoaXMucHJvY2Vzc1NlbGVjdGVkRmlsZXMoaW5wdXQuZmlsZXMsIHRleHRzLCB1bml0cyk7XG4gICAgICAgIGlucHV0LnZhbHVlID0gJyc7XG4gICAgfVxuXG4gICAgb25Ecm9wcGVkKFxuICAgICAgICBldmVudDogRGF0YVRyYW5zZmVyLFxuICAgICAgICB0ZXh0czogUmVjb3JkPCdtYXhTaXplUmVqZWN0aW9uUmVhc29uJyB8ICdmb3JtYXRSZWplY3Rpb25SZWFzb24nLCBzdHJpbmc+LFxuICAgICAgICB1bml0czogW3N0cmluZywgc3RyaW5nLCBzdHJpbmddLFxuICAgICkge1xuICAgICAgICB0aGlzLnByb2Nlc3NTZWxlY3RlZEZpbGVzKGV2ZW50LmZpbGVzLCB0ZXh0cywgdW5pdHMpO1xuICAgIH1cblxuICAgIG9uRHJhZ092ZXIoZGF0YVRyYW5zZmVyOiBEYXRhVHJhbnNmZXIgfCBudWxsKSB7XG4gICAgICAgIHRoaXMuZGF0YVRyYW5zZmVyID0gZGF0YVRyYW5zZmVyO1xuICAgIH1cblxuICAgIHJlbW92ZUZpbGUocmVtb3ZlZEZpbGU6IFR1aUZpbGVMaWtlKSB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoXG4gICAgICAgICAgICB0aGlzLm11bHRpcGxlID8gdGhpcy5hcnJheVZhbHVlLmZpbHRlcihmaWxlID0+IGZpbGUgIT09IHJlbW92ZWRGaWxlKSA6IG51bGwsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmVtb3ZlUmVqZWN0ZWRGaWxlKHJlbW92ZWRGaWxlOiBUdWlGaWxlTGlrZSkge1xuICAgICAgICB0aGlzLnVwZGF0ZVJlamVjdGVkRmlsZXModGhpcy5yZWplY3RlZEZpbGVzLmZpbHRlcihmaWxlID0+IGZpbGUgIT09IHJlbW92ZWRGaWxlKSk7XG4gICAgfVxuXG4gICAgZ2V0QXBwZWFyYW5jZShtb2RlOiBudWxsIHwgdW5rbm93bik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBtb2RlID09PSBudWxsID8gJycgOiBUdWlBcHBlYXJhbmNlLk91dGxpbmU7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGNvbXB1dGVMaW5rJChcbiAgICAgICAgZmlsZURyYWdnZWQ6IGJvb2xlYW4sXG4gICAgICAgIG11bHRpcGxlOiBib29sZWFuLFxuICAgICAgICBsaW5rOiBQb2x5bW9ycGhldXNDb250ZW50LFxuICAgICk6IE9ic2VydmFibGU8UG9seW1vcnBoZXVzQ29udGVudD4ge1xuICAgICAgICBpZiAoZmlsZURyYWdnZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBvZignJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dEZpbGVUZXh0cyQucGlwZShcbiAgICAgICAgICAgIG1hcCh0ZXh0cyA9PlxuICAgICAgICAgICAgICAgIG11bHRpcGxlICYmIGxpbmsgPT09ICcnXG4gICAgICAgICAgICAgICAgICAgID8gdGV4dHMuZGVmYXVsdExpbmtNdWx0aXBsZVxuICAgICAgICAgICAgICAgICAgICA6IGxpbmsgfHwgdGV4dHMuZGVmYXVsdExpbmtTaW5nbGUsXG4gICAgICAgICAgICApLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBjb21wdXRlTGFiZWwkKFxuICAgICAgICBpc01vYmlsZTogYm9vbGVhbixcbiAgICAgICAgZmlsZURyYWdnZWQ6IGJvb2xlYW4sXG4gICAgICAgIG11bHRpcGxlOiBib29sZWFuLFxuICAgICAgICBsYWJlbDogUG9seW1vcnBoZXVzQ29udGVudCxcbiAgICApOiBPYnNlcnZhYmxlPFBvbHltb3JwaGV1c0NvbnRlbnQ+IHtcbiAgICAgICAgaWYgKGlzTW9iaWxlKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoJycpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZpbGVEcmFnZ2VkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pbnB1dEZpbGVUZXh0cyQucGlwZShcbiAgICAgICAgICAgICAgICBtYXAodGV4dHMgPT4gKG11bHRpcGxlID8gdGV4dHMuZHJvcE11bHRpcGxlIDogdGV4dHMuZHJvcCkpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0RmlsZVRleHRzJC5waXBlKFxuICAgICAgICAgICAgbWFwKHRleHRzID0+XG4gICAgICAgICAgICAgICAgbXVsdGlwbGUgJiYgbGFiZWwgPT09ICcnXG4gICAgICAgICAgICAgICAgICAgID8gdGV4dHMuZGVmYXVsdExhYmVsTXVsdGlwbGVcbiAgICAgICAgICAgICAgICAgICAgOiBsYWJlbCB8fCB0ZXh0cy5kZWZhdWx0TGFiZWxTaW5nbGUsXG4gICAgICAgICAgICApLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBnZXRWYWx1ZUFycmF5KFxuICAgICAgICB2YWx1ZTogVHVpRmlsZUxpa2UgfCBSZWFkb25seUFycmF5PFR1aUZpbGVMaWtlPiB8IG51bGwsXG4gICAgKTogUmVhZG9ubHlBcnJheTxUdWlGaWxlTGlrZT4ge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gRU1QVFlfQVJSQVk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBBcnJheSA/IHZhbHVlIDogW3ZhbHVlXTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgZ2V0UmVhZHlGaWxlcyhcbiAgICAgICAgdmFsdWU6IFJlYWRvbmx5QXJyYXk8VHVpRmlsZUxpa2U+LFxuICAgICAgICBsb2FkaW5nOiBSZWFkb25seUFycmF5PFR1aUZpbGVMaWtlPixcbiAgICApOiBSZWFkb25seUFycmF5PFR1aUZpbGVMaWtlPiB7XG4gICAgICAgIHJldHVybiB2YWx1ZS5maWx0ZXIoZmlsZSA9PiBsb2FkaW5nLmluZGV4T2YoZmlsZSkgPT09IC0xKTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgZ2V0TG9hZGluZ0ZpbGVzKFxuICAgICAgICB2YWx1ZTogUmVhZG9ubHlBcnJheTxUdWlGaWxlTGlrZT4sXG4gICAgICAgIGxvYWRpbmc6IFJlYWRvbmx5QXJyYXk8VHVpRmlsZUxpa2U+LFxuICAgICk6IFJlYWRvbmx5QXJyYXk8VHVpRmlsZUxpa2U+IHtcbiAgICAgICAgcmV0dXJuIGxvYWRpbmcuZmlsdGVyKGZpbGUgPT4gdmFsdWUuaW5kZXhPZihmaWxlKSAhPT0gLTEpO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBnZXRBY2NlcHRBcnJheShhY2NlcHQ6IHN0cmluZyk6IHJlYWRvbmx5IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIGFjY2VwdFxuICAgICAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAgICAgICAubWFwKGZvcm1hdCA9PiBmb3JtYXQudHJpbSgpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByb2Nlc3NTZWxlY3RlZEZpbGVzKFxuICAgICAgICBmaWxlczogRmlsZUxpc3QgfCBudWxsLFxuICAgICAgICB0ZXh0czogUmVjb3JkPCdtYXhTaXplUmVqZWN0aW9uUmVhc29uJyB8ICdmb3JtYXRSZWplY3Rpb25SZWFzb24nLCBzdHJpbmc+LFxuICAgICAgICB1bml0czogW3N0cmluZywgc3RyaW5nLCBzdHJpbmddLFxuICAgICkge1xuICAgICAgICAvLyBJRTExIGFmdGVyIHNlbGVjdGluZyBhIGZpbGUgdGhyb3VnaCB0aGUgb3BlbiBkaWFsb2cgZ2VuZXJhdGVzIGEgc2Vjb25kIGV2ZW50IHBhc3NpbmcgYW4gZW1wdHkgRmlsZUxpc3QuXG4gICAgICAgIGlmIChmaWxlcyA9PT0gbnVsbCB8fCBmaWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5ld0ZpbGVzID0gdGhpcy5tdWx0aXBsZSA/IEFycmF5LmZyb20oZmlsZXMpIDogW2ZpbGVzWzBdXTtcbiAgICAgICAgY29uc3QgdG9vQmlnRmlsZXMgPSBuZXdGaWxlcy5maWx0ZXIoZmlsZSA9PiBmaWxlLnNpemUgPiB0aGlzLm1heEZpbGVTaXplKTtcbiAgICAgICAgY29uc3Qgd3JvbmdGb3JtYXRGaWxlcyA9IG5ld0ZpbGVzLmZpbHRlcihcbiAgICAgICAgICAgIGZpbGUgPT4gIXRoaXMuaXNGb3JtYXRBY2NlcHRhYmxlKGZpbGUpICYmIHRvb0JpZ0ZpbGVzLmluZGV4T2YoZmlsZSkgPT09IC0xLFxuICAgICAgICApO1xuICAgICAgICBjb25zdCBhY2NlcHRlZEZpbGVzID0gbmV3RmlsZXMuZmlsdGVyKFxuICAgICAgICAgICAgZmlsZSA9PlxuICAgICAgICAgICAgICAgIHRvb0JpZ0ZpbGVzLmluZGV4T2YoZmlsZSkgPT09IC0xICYmIHdyb25nRm9ybWF0RmlsZXMuaW5kZXhPZihmaWxlKSA9PT0gLTEsXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVSZWplY3RlZEZpbGVzKFtcbiAgICAgICAgICAgIC4uLnRvb0JpZ0ZpbGVzLm1hcChmaWxlID0+ICh7XG4gICAgICAgICAgICAgICAgbmFtZTogZmlsZS5uYW1lLFxuICAgICAgICAgICAgICAgIHR5cGU6IGZpbGUudHlwZSxcbiAgICAgICAgICAgICAgICBzaXplOiBmaWxlLnNpemUsXG4gICAgICAgICAgICAgICAgY29udGVudDpcbiAgICAgICAgICAgICAgICAgICAgdGV4dHMubWF4U2l6ZVJlamVjdGlvblJlYXNvbiArIGZvcm1hdFNpemUodW5pdHMsIHRoaXMubWF4RmlsZVNpemUpLFxuICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgLi4ud3JvbmdGb3JtYXRGaWxlcy5tYXAoZmlsZSA9PiAoe1xuICAgICAgICAgICAgICAgIG5hbWU6IGZpbGUubmFtZSxcbiAgICAgICAgICAgICAgICB0eXBlOiBmaWxlLnR5cGUsXG4gICAgICAgICAgICAgICAgc2l6ZTogZmlsZS5zaXplLFxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHRleHRzLmZvcm1hdFJlamVjdGlvblJlYXNvbixcbiAgICAgICAgICAgIH0pKSxcbiAgICAgICAgXSk7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoXG4gICAgICAgICAgICB0aGlzLm11bHRpcGxlXG4gICAgICAgICAgICAgICAgPyBbLi4udGhpcy5hcnJheVZhbHVlLCAuLi5hY2NlcHRlZEZpbGVzXVxuICAgICAgICAgICAgICAgIDogYWNjZXB0ZWRGaWxlc1swXSB8fCBudWxsLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNGb3JtYXRBY2NlcHRhYmxlKGZpbGU6IEZpbGUpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLmFjY2VwdCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBleHRlbnNpb24gPSAnLicgKyAoZmlsZS5uYW1lLnNwbGl0KCcuJykucG9wKCkgfHwgJycpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYWNjZXB0QXJyYXkuc29tZShcbiAgICAgICAgICAgIGZvcm1hdCA9PlxuICAgICAgICAgICAgICAgIGZvcm1hdCA9PT0gZXh0ZW5zaW9uIHx8XG4gICAgICAgICAgICAgICAgZm9ybWF0ID09PSBmaWxlLnR5cGUgfHxcbiAgICAgICAgICAgICAgICAoZm9ybWF0LnNwbGl0KCcvJylbMV0gPT09ICcqJyAmJlxuICAgICAgICAgICAgICAgICAgICBmaWxlLnR5cGUuc3BsaXQoJy8nKVswXSA9PT0gZm9ybWF0LnNwbGl0KCcvJylbMF0pLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlUmVqZWN0ZWRGaWxlcyhyZWplY3RlZEZpbGVzOiBSZWFkb25seUFycmF5PFR1aUZpbGVMaWtlPikge1xuICAgICAgICB0aGlzLnJlamVjdGVkRmlsZXMgPSByZWplY3RlZEZpbGVzO1xuICAgICAgICB0aGlzLnJlamVjdGVkRmlsZXNDaGFuZ2UuZW1pdChyZWplY3RlZEZpbGVzKTtcbiAgICB9XG59XG4iXX0=
320
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtZmlsZS8iLCJzb3VyY2VzIjpbImlucHV0LWZpbGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFDSixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCwwQkFBMEIsRUFDMUIsV0FBVyxFQUNYLGVBQWUsRUFDZiwyQkFBMkIsRUFDM0IsYUFBYSxFQUNiLGNBQWMsRUFHZCxPQUFPLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILGFBQWEsRUFDYixRQUFRLEdBSVgsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUMsNkJBQTZCLEVBQUUsb0JBQW9CLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFFckQsT0FBTyxFQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRW5DLElBQU0sZ0JBQWdCLEdBQUcsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxRQUFRO0FBRW5ELFdBQVc7QUFjWDtJQUNZLHlDQUFvRTtJQStDNUUsK0JBSUksT0FBeUIsRUFFekIsaUJBQW9DLEVBRTNCLFFBQWlCLEVBRWpCLGVBWVIsRUFDMEIsS0FBdUMsRUFFekQsTUFBNEM7UUF6QnpELFlBMkJJ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QUFDLE9BQU8sQ0FBQzt3REFDMkI7SUF3STlDO1FBREMsT0FBTzs2REFpQlA7SUFHRDtRQURDLE9BQU87OERBd0JQO0lBR0Q7UUFEQyxPQUFPOzhEQVNQO0lBR0Q7UUFEQyxPQUFPOzhEQU1QO0lBR0Q7UUFEQyxPQUFPO2dFQU1QO0lBR0Q7UUFEQyxPQUFPOytEQU1QO0lBalFRLHFCQUFxQjtRQWJqQyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLHM2RkFBeUM7WUFFekMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07WUFDL0MsU0FBUyxFQUFFO2dCQUNQLGFBQWE7Z0JBQ2I7b0JBQ0ksT0FBTyxFQUFFLDJCQUEyQjtvQkFDcEMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxjQUFNLE9BQUEsdUJBQXFCLEVBQXJCLENBQXFCLENBQUM7aUJBQ3ZEO2FBQ0o7O1NBQ0osQ0FBQztRQWtETyxXQUFBLFFBQVEsRUFBRSxDQUFBO1FBQ1YsV0FBQSxJQUFJLEVBQUUsQ0FBQTtRQUNOLFdBQUEsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBRWpCLFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFFekIsV0FBQSxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7UUFFckIsV0FBQSxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtRQWM1QixXQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNoQixXQUFBLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFBO09BeEVqQyxxQkFBcUIsQ0FpVWpDO0lBQUQsNEJBQUM7Q0FBQSxBQWpVRCxDQUNZLDBCQUEwQixHQWdVckM7U0FqVVkscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFNlbGYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sLFxuICAgIEVNUFRZX0FSUkFZLFxuICAgIGlzTmF0aXZlRm9jdXNlZCxcbiAgICBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgVFVJX0lTX01PQklMRSxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCxcbiAgICB0dWlQdXJlLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgTU9ERV9QUk9WSURFUixcbiAgICBUVUlfTU9ERSxcbiAgICBUdWlBcHBlYXJhbmNlLFxuICAgIFR1aUJyaWdodG5lc3MsXG4gICAgVHVpU2l6ZUwsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7VHVpRmlsZUxpa2V9IGZyb20gJ0B0YWlnYS11aS9raXQvaW50ZXJmYWNlcyc7XG5pbXBvcnQge1RVSV9ESUdJVEFMX0lORk9STUFUSU9OX1VOSVRTLCBUVUlfSU5QVVRfRklMRV9URVhUU30gZnJvbSAnQHRhaWdhLXVpL2tpdC90b2tlbnMnO1xuaW1wb3J0IHtmb3JtYXRTaXplfSBmcm9tICdAdGFpZ2EtdWkva2l0L3V0aWxzL2ZpbGVzJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgb2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuY29uc3QgREVGQVVMVF9NQVhfU0laRSA9IDMwICogMTAwMCAqIDEwMDA7IC8vIDMwIE1CXG5cbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1pbnB1dC1maWxlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtZmlsZS50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnB1dC1maWxlLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgTU9ERV9QUk9WSURFUixcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHVpSW5wdXRGaWxlQ29tcG9uZW50KSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dEZpbGVDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sPFR1aUZpbGVMaWtlIHwgUmVhZG9ubHlBcnJheTxUdWlGaWxlTGlrZT4+XG4gICAgaW1wbGVtZW50cyBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3JcbntcbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbGluazogUG9seW1vcnBoZXVzQ29udGVudCA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGxhYmVsOiBQb2x5bW9ycGhldXNDb250ZW50ID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgYWNjZXB0ID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbXVsdGlwbGUgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzaXplOiBUdWlTaXplTCA9ICdtJztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzaG93U2l6ZSA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWF4RmlsZVNpemUgPSBERUZBVUxUX01BWF9TSVpFO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGxvYWRpbmdGaWxlczogUmVhZG9ubHlBcnJheTxUdWlGaWxlTGlrZT4gPSBbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICByZWplY3RlZEZpbGVzOiBSZWFkb25seUFycmF5PFR1aUZpbGVMaWtlPiA9IFtdO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVqZWN0ZWRGaWxlc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8UmVhZG9ubHlBcnJheTxUdWlGaWxlTGlrZT4+KCk7XG5cbiAgICBAVmlld0NoaWxkKCdpbnB1dCcpXG4gICAgcmVhZG9ubHkgaW5wdXQ/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgcHJpdmF0ZSBkYXRhVHJhbnNmZXI6IERhdGFUcmFuc2ZlciB8IG51bGwgPSBudWxsO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpXG4gICAgICAgIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChUVUlfSVNfTU9CSUxFKVxuICAgICAgICByZWFkb25seSBpc01vYmlsZTogYm9vbGVhbixcbiAgICAgICAgQEluamVjdChUVUlfSU5QVVRfRklMRV9URVhUUylcbiAgICAgICAgcmVhZG9ubHkgaW5wdXRGaWxlVGV4dHMkOiBPYnNlcnZhYmxlPFxuICAgICAgICAgICAgUmVjb3JkPFxuICAgICAgICAgICAgICAgIHwgJ2RlZmF1bHRMYWJlbFNpbmdsZSdcbiAgICAgICAgICAgICAgICB8ICdkZWZhdWx0TGFiZWxNdWx0aXBsZSdcbiAgICAgICAgICAgICAgICB8ICdkZWZhdWx0TGlua1NpbmdsZSdcbiAgICAgICAgICAgICAgICB8ICdkZWZhdWx0TGlua011bHRpcGxlJ1xuICAgICAgICAgICAgICAgIHwgJ21heFNpemVSZWplY3Rpb25SZWFzb24nXG4gICAgICAgICAgICAgICAgfCAnZm9ybWF0UmVqZWN0aW9uUmVhc29uJ1xuICAgICAgICAgICAgICAgIHwgJ2Ryb3AnXG4gICAgICAgICAgICAgICAgfCAnZHJvcE11bHRpcGxlJyxcbiAgICAgICAgICAgICAgICBzdHJpbmdcbiAgICAgICAgICAgID5cbiAgICAgICAgPixcbiAgICAgICAgQEluamVjdChUVUlfTU9ERSkgcmVhZG9ubHkgbW9kZSQ6IE9ic2VydmFibGU8VHVpQnJpZ2h0bmVzcyB8IG51bGw+LFxuICAgICAgICBASW5qZWN0KFRVSV9ESUdJVEFMX0lORk9STUFUSU9OX1VOSVRTKVxuICAgICAgICByZWFkb25seSB1bml0cyQ6IE9ic2VydmFibGU8W3N0cmluZywgc3RyaW5nLCBzdHJpbmddPixcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IFR1aU5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXQgPyB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQgOiBudWxsO1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gaXNOYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgZ2V0IGFsbG93RGVsZXRlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuY29tcHV0ZWREaXNhYmxlZCAmJiAhdGhpcy5yZWFkT25seTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRMaW5rJCgpOiBPYnNlcnZhYmxlPFBvbHltb3JwaGV1c0NvbnRlbnQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcHV0ZUxpbmskKHRoaXMuZmlsZURyYWdnZWQsIHRoaXMubXVsdGlwbGUsIHRoaXMubGluayk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkTGFiZWwkKCk6IE9ic2VydmFibGU8UG9seW1vcnBoZXVzQ29udGVudD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wdXRlTGFiZWwkKFxuICAgICAgICAgICAgdGhpcy5pc01vYmlsZSxcbiAgICAgICAgICAgIHRoaXMuZmlsZURyYWdnZWQsXG4gICAgICAgICAgICB0aGlzLm11bHRpcGxlLFxuICAgICAgICAgICAgdGhpcy5sYWJlbCxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBAYmFkIFRPRE86IHJlZmFjdG9yIGFmdGVyIElFIGlzIGRyb3BwZWRcbiAgICBnZXQgZmlsZURyYWdnZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhIXRoaXMuZGF0YVRyYW5zZmVyICYmXG4gICAgICAgICAgICBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKHRoaXMuZGF0YVRyYW5zZmVyLnR5cGVzLCAnRmlsZXMnKSAhPT0gLTFcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgYWNjZXB0QXJyYXkoKTogcmVhZG9ubHkgc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRBY2NlcHRBcnJheSh0aGlzLmFjY2VwdCk7XG4gICAgfVxuXG4gICAgZ2V0IGFycmF5VmFsdWUoKTogUmVhZG9ubHlBcnJheTxUdWlGaWxlTGlrZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRWYWx1ZUFycmF5KHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIGdldCByZWFkeUZpbGVzKCk6IFJlYWRvbmx5QXJyYXk8VHVpRmlsZUxpa2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UmVhZHlGaWxlcyh0aGlzLmFycmF5VmFsdWUsIHRoaXMubG9hZGluZ0ZpbGVzKTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRMb2FkaW5nKCk6IFJlYWRvbmx5QXJyYXk8VHVpRmlsZUxpa2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TG9hZGluZ0ZpbGVzKHRoaXMuYXJyYXlWYWx1ZSwgdGhpcy5sb2FkaW5nRmlsZXMpO1xuICAgIH1cblxuICAgIGdldCBoYXNGaWxlcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5yZWplY3RlZEZpbGVzLmxlbmd0aCB8fCAhIXRoaXMuYXJyYXlWYWx1ZS5sZW5ndGg7XG4gICAgfVxuXG4gICAgb25Ib3ZlcmVkKGhvdmVyZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVIb3ZlcmVkKGhvdmVyZWQpO1xuICAgIH1cblxuICAgIG9uRm9jdXNlZChmb2N1c2VkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChmb2N1c2VkKTtcbiAgICB9XG5cbiAgICBvblByZXNzZWQocHJlc3NlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZVByZXNzZWQocHJlc3NlZCk7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogcmVmYWN0b3IgaTE4biBtZXNzYWdlc1xuICAgIG9uRmlsZXNTZWxlY3RlZChcbiAgICAgICAgaW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQsXG4gICAgICAgIHRleHRzOiBSZWNvcmQ8J21heFNpemVSZWplY3Rpb25SZWFzb24nIHwgJ2Zvcm1hdFJlamVjdGlvblJlYXNvbicsIHN0cmluZz4sXG4gICAgICAgIHVuaXRzOiBbc3RyaW5nLCBzdHJpbmcsIHN0cmluZ10sXG4gICAgKSB7XG4gICAgICAgIHRoaXMucHJvY2Vzc1NlbGVjdGVkRmlsZXMoaW5wdXQuZmlsZXMsIHRleHRzLCB1bml0cyk7XG4gICAgICAgIGlucHV0LnZhbHVlID0gJyc7XG4gICAgfVxuXG4gICAgb25Ecm9wcGVkKFxuICAgICAgICBldmVudDogRGF0YVRyYW5zZmVyLFxuICAgICAgICB0ZXh0czogUmVjb3JkPCdtYXhTaXplUmVqZWN0aW9uUmVhc29uJyB8ICdmb3JtYXRSZWplY3Rpb25SZWFzb24nLCBzdHJpbmc+LFxuICAgICAgICB1bml0czogW3N0cmluZywgc3RyaW5nLCBzdHJpbmddLFxuICAgICkge1xuICAgICAgICB0aGlzLnByb2Nlc3NTZWxlY3RlZEZpbGVzKGV2ZW50LmZpbGVzLCB0ZXh0cywgdW5pdHMpO1xuICAgIH1cblxuICAgIG9uRHJhZ092ZXIoZGF0YVRyYW5zZmVyOiBEYXRhVHJhbnNmZXIgfCBudWxsKSB7XG4gICAgICAgIHRoaXMuZGF0YVRyYW5zZmVyID0gZGF0YVRyYW5zZmVyO1xuICAgIH1cblxuICAgIHJlbW92ZUZpbGUocmVtb3ZlZEZpbGU6IFR1aUZpbGVMaWtlKSB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoXG4gICAgICAgICAgICB0aGlzLm11bHRpcGxlID8gdGhpcy5hcnJheVZhbHVlLmZpbHRlcihmaWxlID0+IGZpbGUgIT09IHJlbW92ZWRGaWxlKSA6IG51bGwsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmVtb3ZlUmVqZWN0ZWRGaWxlKHJlbW92ZWRGaWxlOiBUdWlGaWxlTGlrZSkge1xuICAgICAgICB0aGlzLnVwZGF0ZVJlamVjdGVkRmlsZXModGhpcy5yZWplY3RlZEZpbGVzLmZpbHRlcihmaWxlID0+IGZpbGUgIT09IHJlbW92ZWRGaWxlKSk7XG4gICAgfVxuXG4gICAgZ2V0QXBwZWFyYW5jZShtb2RlOiBudWxsIHwgdW5rbm93bik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBtb2RlID09PSBudWxsID8gJycgOiBUdWlBcHBlYXJhbmNlLk91dGxpbmU7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGNvbXB1dGVMaW5rJChcbiAgICAgICAgZmlsZURyYWdnZWQ6IGJvb2xlYW4sXG4gICAgICAgIG11bHRpcGxlOiBib29sZWFuLFxuICAgICAgICBsaW5rOiBQb2x5bW9ycGhldXNDb250ZW50LFxuICAgICk6IE9ic2VydmFibGU8UG9seW1vcnBoZXVzQ29udGVudD4ge1xuICAgICAgICBpZiAoZmlsZURyYWdnZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBvZignJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dEZpbGVUZXh0cyQucGlwZShcbiAgICAgICAgICAgIG1hcCh0ZXh0cyA9PlxuICAgICAgICAgICAgICAgIG11bHRpcGxlICYmIGxpbmsgPT09ICcnXG4gICAgICAgICAgICAgICAgICAgID8gdGV4dHMuZGVmYXVsdExpbmtNdWx0aXBsZVxuICAgICAgICAgICAgICAgICAgICA6IGxpbmsgfHwgdGV4dHMuZGVmYXVsdExpbmtTaW5nbGUsXG4gICAgICAgICAgICApLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBjb21wdXRlTGFiZWwkKFxuICAgICAgICBpc01vYmlsZTogYm9vbGVhbixcbiAgICAgICAgZmlsZURyYWdnZWQ6IGJvb2xlYW4sXG4gICAgICAgIG11bHRpcGxlOiBib29sZWFuLFxuICAgICAgICBsYWJlbDogUG9seW1vcnBoZXVzQ29udGVudCxcbiAgICApOiBPYnNlcnZhYmxlPFBvbHltb3JwaGV1c0NvbnRlbnQ+IHtcbiAgICAgICAgaWYgKGlzTW9iaWxlKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoJycpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZpbGVEcmFnZ2VkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pbnB1dEZpbGVUZXh0cyQucGlwZShcbiAgICAgICAgICAgICAgICBtYXAodGV4dHMgPT4gKG11bHRpcGxlID8gdGV4dHMuZHJvcE11bHRpcGxlIDogdGV4dHMuZHJvcCkpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0RmlsZVRleHRzJC5waXBlKFxuICAgICAgICAgICAgbWFwKHRleHRzID0+XG4gICAgICAgICAgICAgICAgbXVsdGlwbGUgJiYgbGFiZWwgPT09ICcnXG4gICAgICAgICAgICAgICAgICAgID8gdGV4dHMuZGVmYXVsdExhYmVsTXVsdGlwbGVcbiAgICAgICAgICAgICAgICAgICAgOiBsYWJlbCB8fCB0ZXh0cy5kZWZhdWx0TGFiZWxTaW5nbGUsXG4gICAgICAgICAgICApLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBnZXRWYWx1ZUFycmF5KFxuICAgICAgICB2YWx1ZTogVHVpRmlsZUxpa2UgfCBSZWFkb25seUFycmF5PFR1aUZpbGVMaWtlPiB8IG51bGwsXG4gICAgKTogUmVhZG9ubHlBcnJheTxUdWlGaWxlTGlrZT4ge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gRU1QVFlfQVJSQVk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBBcnJheSA/IHZhbHVlIDogW3ZhbHVlXTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgZ2V0UmVhZHlGaWxlcyhcbiAgICAgICAgdmFsdWU6IFJlYWRvbmx5QXJyYXk8VHVpRmlsZUxpa2U+LFxuICAgICAgICBsb2FkaW5nOiBSZWFkb25seUFycmF5PFR1aUZpbGVMaWtlPixcbiAgICApOiBSZWFkb25seUFycmF5PFR1aUZpbGVMaWtlPiB7XG4gICAgICAgIHJldHVybiB2YWx1ZS5maWx0ZXIoZmlsZSA9PiBsb2FkaW5nLmluZGV4T2YoZmlsZSkgPT09IC0xKTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgZ2V0TG9hZGluZ0ZpbGVzKFxuICAgICAgICB2YWx1ZTogUmVhZG9ubHlBcnJheTxUdWlGaWxlTGlrZT4sXG4gICAgICAgIGxvYWRpbmc6IFJlYWRvbmx5QXJyYXk8VHVpRmlsZUxpa2U+LFxuICAgICk6IFJlYWRvbmx5QXJyYXk8VHVpRmlsZUxpa2U+IHtcbiAgICAgICAgcmV0dXJuIGxvYWRpbmcuZmlsdGVyKGZpbGUgPT4gdmFsdWUuaW5kZXhPZihmaWxlKSAhPT0gLTEpO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBnZXRBY2NlcHRBcnJheShhY2NlcHQ6IHN0cmluZyk6IHJlYWRvbmx5IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIGFjY2VwdFxuICAgICAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAgICAgICAubWFwKGZvcm1hdCA9PiBmb3JtYXQudHJpbSgpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByb2Nlc3NTZWxlY3RlZEZpbGVzKFxuICAgICAgICBmaWxlczogRmlsZUxpc3QgfCBudWxsLFxuICAgICAgICB0ZXh0czogUmVjb3JkPCdtYXhTaXplUmVqZWN0aW9uUmVhc29uJyB8ICdmb3JtYXRSZWplY3Rpb25SZWFzb24nLCBzdHJpbmc+LFxuICAgICAgICB1bml0czogW3N0cmluZywgc3RyaW5nLCBzdHJpbmddLFxuICAgICkge1xuICAgICAgICAvLyBJRTExIGFmdGVyIHNlbGVjdGluZyBhIGZpbGUgdGhyb3VnaCB0aGUgb3BlbiBkaWFsb2cgZ2VuZXJhdGVzIGEgc2Vjb25kIGV2ZW50IHBhc3NpbmcgYW4gZW1wdHkgRmlsZUxpc3QuXG4gICAgICAgIGlmIChmaWxlcyA9PT0gbnVsbCB8fCBmaWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5ld0ZpbGVzID0gdGhpcy5tdWx0aXBsZSA/IEFycmF5LmZyb20oZmlsZXMpIDogW2ZpbGVzWzBdXTtcbiAgICAgICAgY29uc3QgdG9vQmlnRmlsZXMgPSBuZXdGaWxlcy5maWx0ZXIoZmlsZSA9PiBmaWxlLnNpemUgPiB0aGlzLm1heEZpbGVTaXplKTtcbiAgICAgICAgY29uc3Qgd3JvbmdGb3JtYXRGaWxlcyA9IG5ld0ZpbGVzLmZpbHRlcihcbiAgICAgICAgICAgIGZpbGUgPT4gIXRoaXMuaXNGb3JtYXRBY2NlcHRhYmxlKGZpbGUpICYmIHRvb0JpZ0ZpbGVzLmluZGV4T2YoZmlsZSkgPT09IC0xLFxuICAgICAgICApO1xuICAgICAgICBjb25zdCBhY2NlcHRlZEZpbGVzID0gbmV3RmlsZXMuZmlsdGVyKFxuICAgICAgICAgICAgZmlsZSA9PlxuICAgICAgICAgICAgICAgIHRvb0JpZ0ZpbGVzLmluZGV4T2YoZmlsZSkgPT09IC0xICYmIHdyb25nRm9ybWF0RmlsZXMuaW5kZXhPZihmaWxlKSA9PT0gLTEsXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVSZWplY3RlZEZpbGVzKFtcbiAgICAgICAgICAgIC4uLnRvb0JpZ0ZpbGVzLm1hcChmaWxlID0+ICh7XG4gICAgICAgICAgICAgICAgbmFtZTogZmlsZS5uYW1lLFxuICAgICAgICAgICAgICAgIHR5cGU6IGZpbGUudHlwZSxcbiAgICAgICAgICAgICAgICBzaXplOiBmaWxlLnNpemUsXG4gICAgICAgICAgICAgICAgY29udGVudDpcbiAgICAgICAgICAgICAgICAgICAgdGV4dHMubWF4U2l6ZVJlamVjdGlvblJlYXNvbiArIGZvcm1hdFNpemUodW5pdHMsIHRoaXMubWF4RmlsZVNpemUpLFxuICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgLi4ud3JvbmdGb3JtYXRGaWxlcy5tYXAoZmlsZSA9PiAoe1xuICAgICAgICAgICAgICAgIG5hbWU6IGZpbGUubmFtZSxcbiAgICAgICAgICAgICAgICB0eXBlOiBmaWxlLnR5cGUsXG4gICAgICAgICAgICAgICAgc2l6ZTogZmlsZS5zaXplLFxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHRleHRzLmZvcm1hdFJlamVjdGlvblJlYXNvbixcbiAgICAgICAgICAgIH0pKSxcbiAgICAgICAgXSk7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoXG4gICAgICAgICAgICB0aGlzLm11bHRpcGxlXG4gICAgICAgICAgICAgICAgPyBbLi4udGhpcy5hcnJheVZhbHVlLCAuLi5hY2NlcHRlZEZpbGVzXVxuICAgICAgICAgICAgICAgIDogYWNjZXB0ZWRGaWxlc1swXSB8fCBudWxsLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNGb3JtYXRBY2NlcHRhYmxlKGZpbGU6IEZpbGUpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLmFjY2VwdCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBleHRlbnNpb24gPSAnLicgKyAoZmlsZS5uYW1lLnNwbGl0KCcuJykucG9wKCkgfHwgJycpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYWNjZXB0QXJyYXkuc29tZShcbiAgICAgICAgICAgIGZvcm1hdCA9PlxuICAgICAgICAgICAgICAgIGZvcm1hdCA9PT0gZXh0ZW5zaW9uIHx8XG4gICAgICAgICAgICAgICAgZm9ybWF0ID09PSBmaWxlLnR5cGUgfHxcbiAgICAgICAgICAgICAgICAoZm9ybWF0LnNwbGl0KCcvJylbMV0gPT09ICcqJyAmJlxuICAgICAgICAgICAgICAgICAgICBmaWxlLnR5cGUuc3BsaXQoJy8nKVswXSA9PT0gZm9ybWF0LnNwbGl0KCcvJylbMF0pLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlUmVqZWN0ZWRGaWxlcyhyZWplY3RlZEZpbGVzOiBSZWFkb25seUFycmF5PFR1aUZpbGVMaWtlPikge1xuICAgICAgICB0aGlzLnJlamVjdGVkRmlsZXMgPSByZWplY3RlZEZpbGVzO1xuICAgICAgICB0aGlzLnJlamVjdGVkRmlsZXNDaGFuZ2UuZW1pdChyZWplY3RlZEZpbGVzKTtcbiAgICB9XG59XG4iXX0=
@@ -68,7 +68,7 @@ var TuiInputInlineComponent = /** @class */ (function (_super) {
68
68
  TuiInputInlineComponent = TuiInputInlineComponent_1 = __decorate([
69
69
  Component({
70
70
  selector: 'tui-input-inline',
71
- template: "<span *ngIf=\"!hasValue\" automation-id=\"tui-input-inline__placeholder\">\n <ng-content></ng-content>\n</span>\n\n<input\n #native\n automation-id=\"tui-input-inline__native\"\n class=\"native\"\n type=\"text\"\n tuiMaskAccessor\n [attr.maxLength]=\"maxLength\"\n [id]=\"id\"\n [disabled]=\"computedDisabled\"\n [readOnly]=\"readOnly\"\n [tuiFocusable]=\"focusable\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n (tuiFocusedChange)=\"onFocused($event)\"\n/>\n",
71
+ template: "<span *ngIf=\"!hasValue\" automation-id=\"tui-input-inline__placeholder\">\n <ng-content></ng-content>\n</span>\n\n<input\n #native\n automation-id=\"tui-input-inline__native\"\n type=\"text\"\n tuiMaskAccessor\n class=\"native\"\n [attr.maxLength]=\"maxLength\"\n [id]=\"id\"\n [disabled]=\"computedDisabled\"\n [readOnly]=\"readOnly\"\n [tuiFocusable]=\"focusable\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n (tuiFocusedChange)=\"onFocused($event)\"\n/>\n",
72
72
  changeDetection: ChangeDetectionStrategy.OnPush,
73
73
  providers: [
74
74
  TUI_VALUE_ACCESSOR_PROVIDER,
@@ -264,7 +264,7 @@ var TuiInputNumberComponent = /** @class */ (function (_super) {
264
264
  TuiInputNumberComponent = TuiInputNumberComponent_1 = __decorate([
265
265
  Component({
266
266
  selector: 'tui-input-number',
267
- template: "<tui-primitive-textfield\n class=\"textfield\"\n tuiValueAccessor\n tuiTextfieldInputMode=\"decimal\"\n [pseudoHovered]=\"pseudoHovered\"\n [pseudoFocused]=\"computedFocused\"\n [invalid]=\"computedInvalid\"\n [tuiTextfieldMaxLength]=\"calculatedMaxLength\"\n [readOnly]=\"readOnly\"\n [disabled]=\"computedDisabled\"\n [textMask]=\"isNegativeAllowed | tuiMapper: mask:decimal:precision:nativeFocusableElement\"\n [value]=\"computedValue\"\n [prefix]=\"prefix\"\n [postfix]=\"postfix\"\n [focusable]=\"focusable\"\n (valueChange)=\"onValue($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (focusedChange)=\"onFocused($event)\"\n (pressedChange)=\"onPressed($event)\"\n (keydown)=\"onKeyDown($event)\"\n>\n <ng-content></ng-content>\n</tui-primitive-textfield>\n",
267
+ template: "<tui-primitive-textfield\n tuiValueAccessor\n tuiTextfieldInputMode=\"decimal\"\n class=\"textfield\"\n [pseudoHovered]=\"pseudoHovered\"\n [pseudoFocused]=\"computedFocused\"\n [invalid]=\"computedInvalid\"\n [tuiTextfieldMaxLength]=\"calculatedMaxLength\"\n [readOnly]=\"readOnly\"\n [disabled]=\"computedDisabled\"\n [textMask]=\"isNegativeAllowed | tuiMapper: mask:decimal:precision:nativeFocusableElement\"\n [value]=\"computedValue\"\n [prefix]=\"prefix\"\n [postfix]=\"postfix\"\n [focusable]=\"focusable\"\n (valueChange)=\"onValue($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (focusedChange)=\"onFocused($event)\"\n (pressedChange)=\"onPressed($event)\"\n (keydown)=\"onKeyDown($event)\"\n>\n <ng-content></ng-content>\n</tui-primitive-textfield>\n",
268
268
  changeDetection: ChangeDetectionStrategy.OnPush,
269
269
  providers: [
270
270
  {
@@ -112,7 +112,7 @@ var TuiInputPasswordComponent = /** @class */ (function (_super) {
112
112
  TuiInputPasswordComponent = TuiInputPasswordComponent_1 = __decorate([
113
113
  Component({
114
114
  selector: 'tui-input-password',
115
- template: "<tui-primitive-textfield\n class=\"textfield\"\n [pseudoFocused]=\"pseudoFocused\"\n [pseudoHovered]=\"pseudoHovered\"\n [pseudoPressed]=\"pseudoPressed\"\n [invalid]=\"computedInvalid\"\n [focusable]=\"focusable\"\n [nativeId]=\"nativeId\"\n [tuiTextfieldType]=\"inputType\"\n [disabled]=\"disabled\"\n [readOnly]=\"readOnly\"\n [iconContent]=\"hasEyeIcon ? iconContent : null\"\n [value]=\"value\"\n (valueChange)=\"onValueChange($event)\"\n (focusedChange)=\"onFocused($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (pressedChange)=\"onPressed($event)\"\n>\n <ng-content></ng-content>\n</tui-primitive-textfield>\n\n<ng-template #iconContent=\"polymorpheus\" polymorpheus>\n <span\n *tuiLet=\"passwordTexts$ | async as texts\"\n polymorpheus-outlet\n [content]=\"icon\"\n [context]=\"context\"\n >\n <ng-template let-icon>\n <tui-svg\n automation-id=\"tui-password__icon\"\n class=\"icon\"\n tuiHintId=\"not_required\"\n [tuiHint]=\"texts[0] && texts[1] && hintContent\"\n [tuiHintDirection]=\"hintController.direction\"\n [tuiHintMode]=\"computedMode$ | async\"\n [src]=\"icon\"\n (click)=\"togglePasswordVisibility()\"\n ></tui-svg>\n </ng-template>\n\n <ng-template #hintContent=\"polymorpheus\" polymorpheus>\n {{isPasswordHidden ? texts[0] : texts[1]}}\n </ng-template>\n </span>\n</ng-template>\n",
115
+ template: "<tui-primitive-textfield\n class=\"textfield\"\n [pseudoFocused]=\"pseudoFocused\"\n [pseudoHovered]=\"pseudoHovered\"\n [pseudoPressed]=\"pseudoPressed\"\n [invalid]=\"computedInvalid\"\n [focusable]=\"focusable\"\n [nativeId]=\"nativeId\"\n [tuiTextfieldType]=\"inputType\"\n [disabled]=\"disabled\"\n [readOnly]=\"readOnly\"\n [iconContent]=\"hasEyeIcon ? iconContent : null\"\n [value]=\"value\"\n (valueChange)=\"onValueChange($event)\"\n (focusedChange)=\"onFocused($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (pressedChange)=\"onPressed($event)\"\n>\n <ng-content></ng-content>\n</tui-primitive-textfield>\n\n<ng-template #iconContent=\"polymorpheus\" polymorpheus>\n <span\n *tuiLet=\"passwordTexts$ | async as texts\"\n polymorpheus-outlet\n [content]=\"icon\"\n [context]=\"context\"\n >\n <ng-template let-icon>\n <tui-svg\n automation-id=\"tui-password__icon\"\n tuiHintId=\"not_required\"\n class=\"icon\"\n [tuiHint]=\"texts[0] && texts[1] && hintContent\"\n [tuiHintDirection]=\"hintController.direction\"\n [tuiHintMode]=\"computedMode$ | async\"\n [src]=\"icon\"\n (click)=\"togglePasswordVisibility()\"\n ></tui-svg>\n </ng-template>\n\n <ng-template #hintContent=\"polymorpheus\" polymorpheus>\n {{ isPasswordHidden ? texts[0] : texts[1] }}\n </ng-template>\n </span>\n</ng-template>\n",
116
116
  changeDetection: ChangeDetectionStrategy.OnPush,
117
117
  providers: [
118
118
  {
@@ -137,4 +137,4 @@ var TuiInputPasswordComponent = /** @class */ (function (_super) {
137
137
  return TuiInputPasswordComponent;
138
138
  }(AbstractTuiControl));
139
139
  export { TuiInputPasswordComponent };
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcGFzc3dvcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LXBhc3N3b3JkLyIsInNvdXJjZXMiOlsiaW5wdXQtcGFzc3dvcmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBQ1IsSUFBSSxFQUNKLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUNILGtCQUFrQixFQUNsQiwyQkFBMkIsRUFJM0IsT0FBTyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCx3QkFBd0IsRUFDeEIsYUFBYSxFQUNiLDJCQUEyQixFQUMzQixRQUFRLEVBQ1Isa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYiwwQkFBMEIsRUFDMUIsWUFBWSxFQUNaLDhCQUE4QixFQUM5QixRQUFRLEVBQ1IsUUFBUSxFQUNSLHlCQUF5QixHQUM1QixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRXhELE9BQU8sRUFBQyxhQUFhLEVBQUUsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUF1QiwwQkFBMEIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRTFGLFdBQVc7QUFlWDtJQUNZLDZDQUEwQjtJQW9CbEMsbUNBSUksT0FBeUIsRUFDRSxpQkFBb0MsRUFFOUMsYUFBd0MsRUFFaEQsY0FBNEMsRUFFckMsT0FBNkIsRUFFcEMsY0FBMEMsRUFFbEMsS0FBdUM7UUFmNUQsWUFpQkks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QyxDQUFBO1FBRWxDLFdBQUEsTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUE7UUFFbkMsV0FBQSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7T0FuQ1oseUJBQXlCLENBaUdyQztJQUFELGdDQUFDO0NBQUEsQUFqR0QsQ0FDWSxrQkFBa0IsR0FnRzdCO1NBakdZLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5qZWN0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNlbGYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpQ29udHJvbCxcbiAgICBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgVHVpQ29udGV4dFdpdGhJbXBsaWNpdCxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCxcbiAgICB0dWlQdXJlLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgSElOVF9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgIE1PREVfUFJPVklERVIsXG4gICAgVFVJX0hJTlRfV0FUQ0hFRF9DT05UUk9MTEVSLFxuICAgIFRVSV9NT0RFLFxuICAgIFRVSV9URVhURklFTERfU0laRSxcbiAgICBUdWlCcmlnaHRuZXNzLFxuICAgIFR1aUhpbnRDb250cm9sbGVyRGlyZWN0aXZlLFxuICAgIFR1aUhpbnRNb2RlVCxcbiAgICBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQsXG4gICAgVHVpU2l6ZUwsXG4gICAgVHVpU2l6ZVMsXG4gICAgVHVpVGV4dGZpZWxkU2l6ZURpcmVjdGl2ZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUVUlfUEFTU1dPUkRfVEVYVFN9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7Y29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgc3RhcnRXaXRofSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0lucHV0UGFzc3dvcmRPcHRpb25zLCBUVUlfSU5QVVRfUEFTU1dPUkRfT1BUSU9OU30gZnJvbSAnLi9pbnB1dC1wYXNzd29yZC1vcHRpb25zJztcblxuLy8gQGR5bmFtaWNcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWlucHV0LXBhc3N3b3JkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtcGFzc3dvcmQudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtcGFzc3dvcmQuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUdWlJbnB1dFBhc3N3b3JkQ29tcG9uZW50KSxcbiAgICAgICAgfSxcbiAgICAgICAgSElOVF9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgICAgICBNT0RFX1BST1ZJREVSLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0UGFzc3dvcmRDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpQ29udHJvbDxzdHJpbmc+XG4gICAgaW1wbGVtZW50cyBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3JcbntcbiAgICBpc1Bhc3N3b3JkSGlkZGVuID0gdHJ1ZTtcblxuICAgIEBWaWV3Q2hpbGQoVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkPzogVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50O1xuXG4gICAgcmVhZG9ubHkgY29tcHV0ZWRNb2RlJDogT2JzZXJ2YWJsZTxUdWlCcmlnaHRuZXNzIHwgVHVpSGludE1vZGVUIHwgbnVsbD4gPVxuICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIHRoaXMubW9kZSQsXG4gICAgICAgICAgICB0aGlzLmhpbnRDb250cm9sbGVyLmNoYW5nZSQucGlwZShcbiAgICAgICAgICAgICAgICBzdGFydFdpdGgobnVsbCksXG4gICAgICAgICAgICAgICAgbWFwKCgpID0+IHRoaXMuaGludENvbnRyb2xsZXIubW9kZSksXG4gICAgICAgICAgICApLFxuICAgICAgICBdKS5waXBlKFxuICAgICAgICAgICAgbWFwKChbbW9kZSwgY29udHJvbGxlcl0pID0+IGNvbnRyb2xsZXIgfHwgbW9kZSksXG4gICAgICAgICAgICBzdGFydFdpdGgobnVsbCksXG4gICAgICAgICk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQFNlbGYoKVxuICAgICAgICBASW5qZWN0KE5nQ29udHJvbClcbiAgICAgICAgY29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KFRVSV9URVhURklFTERfU0laRSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGRTaXplOiBUdWlUZXh0ZmllbGRTaXplRGlyZWN0aXZlLFxuICAgICAgICBASW5qZWN0KFRVSV9QQVNTV09SRF9URVhUUylcbiAgICAgICAgcmVhZG9ubHkgcGFzc3dvcmRUZXh0cyQ6IE9ic2VydmFibGU8W3N0cmluZywgc3RyaW5nXT4sXG4gICAgICAgIEBJbmplY3QoVFVJX0lOUFVUX1BBU1NXT1JEX09QVElPTlMpXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBvcHRpb25zOiBJbnB1dFBhc3N3b3JkT3B0aW9ucyxcbiAgICAgICAgQEluamVjdChUVUlfSElOVF9XQVRDSEVEX0NPTlRST0xMRVIpXG4gICAgICAgIHJlYWRvbmx5IGhpbnRDb250cm9sbGVyOiBUdWlIaW50Q29udHJvbGxlckRpcmVjdGl2ZSxcbiAgICAgICAgQEluamVjdChUVUlfTU9ERSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBtb2RlJDogT2JzZXJ2YWJsZTxUdWlCcmlnaHRuZXNzIHwgbnVsbD4sXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNvbnRyb2wsIGNoYW5nZURldGVjdG9yUmVmKTtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBUdWlOYXRpdmVGb2N1c2FibGVFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXB1dGVkRGlzYWJsZWQgfHwgIXRoaXMudGV4dGZpZWxkXG4gICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgIDogdGhpcy50ZXh0ZmllbGQubmF0aXZlRm9jdXNhYmxlRWxlbWVudDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy50ZXh0ZmllbGQgJiYgdGhpcy50ZXh0ZmllbGQuZm9jdXNlZDtcbiAgICB9XG5cbiAgICBnZXQgaWNvbigpOiBQb2x5bW9ycGhldXNDb250ZW50PFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8VHVpU2l6ZVMgfCBUdWlTaXplTD4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNQYXNzd29yZEhpZGRlbiA/IHRoaXMub3B0aW9ucy5pY29ucy5oaWRlIDogdGhpcy5vcHRpb25zLmljb25zLnNob3c7XG4gICAgfVxuXG4gICAgZ2V0IGNvbnRleHQoKTogVHVpQ29udGV4dFdpdGhJbXBsaWNpdDxUdWlTaXplUyB8IFR1aVNpemVMPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENvbnRleHQodGhpcy50ZXh0ZmllbGRTaXplLnNpemUpO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBnZXRDb250ZXh0KFxuICAgICAgICAkaW1wbGljaXQ6IFR1aVNpemVTIHwgVHVpU2l6ZUwsXG4gICAgKTogVHVpQ29udGV4dFdpdGhJbXBsaWNpdDxUdWlTaXplUyB8IFR1aVNpemVMPiB7XG4gICAgICAgIHJldHVybiB7JGltcGxpY2l0fTtcbiAgICB9XG5cbiAgICBnZXQgaW5wdXRUeXBlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzUGFzc3dvcmRIaWRkZW4gfHwgIXRoaXMuaGFzRXllSWNvbiA/ICdwYXNzd29yZCcgOiAndGV4dCc7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0V5ZUljb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkT25seSk7XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZSh0ZXh0VmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHRleHRWYWx1ZSk7XG4gICAgfVxuXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuICAgIH1cblxuICAgIG9uSG92ZXJlZChob3ZlcmVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlSG92ZXJlZChob3ZlcmVkKTtcbiAgICB9XG5cbiAgICBvblByZXNzZWQocHJlc3NlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZVByZXNzZWQocHJlc3NlZCk7XG4gICAgfVxuXG4gICAgdG9nZ2xlUGFzc3dvcmRWaXNpYmlsaXR5KCkge1xuICAgICAgICB0aGlzLmlzUGFzc3dvcmRIaWRkZW4gPSAhdGhpcy5pc1Bhc3N3b3JkSGlkZGVuO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRGYWxsYmFja1ZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG59XG4iXX0=
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcGFzc3dvcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LXBhc3N3b3JkLyIsInNvdXJjZXMiOlsiaW5wdXQtcGFzc3dvcmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBQ1IsSUFBSSxFQUNKLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUNILGtCQUFrQixFQUNsQiwyQkFBMkIsRUFJM0IsT0FBTyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCx3QkFBd0IsRUFDeEIsYUFBYSxFQUNiLDJCQUEyQixFQUMzQixRQUFRLEVBQ1Isa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYiwwQkFBMEIsRUFDMUIsWUFBWSxFQUNaLDhCQUE4QixFQUM5QixRQUFRLEVBQ1IsUUFBUSxFQUNSLHlCQUF5QixHQUM1QixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRXhELE9BQU8sRUFBQyxhQUFhLEVBQUUsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUF1QiwwQkFBMEIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRTFGLFdBQVc7QUFlWDtJQUNZLDZDQUEwQjtJQW9CbEMsbUNBSUksT0FBeUIsRUFDRSxpQkFBb0MsRUFFOUMsYUFBd0MsRUFFaEQsY0FBNEMsRUFFckMsT0FBNkIsRUFFcEMsY0FBMEMsRUFFbEMsS0FBdUM7UUFmNUQsWUFpQkks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QyxDQUFBO1FBRWxDLFdBQUEsTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUE7UUFFbkMsV0FBQSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7T0FuQ1oseUJBQXlCLENBaUdyQztJQUFELGdDQUFDO0NBQUEsQUFqR0QsQ0FDWSxrQkFBa0IsR0FnRzdCO1NBakdZLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5qZWN0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNlbGYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpQ29udHJvbCxcbiAgICBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgVHVpQ29udGV4dFdpdGhJbXBsaWNpdCxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCxcbiAgICB0dWlQdXJlLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgSElOVF9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgIE1PREVfUFJPVklERVIsXG4gICAgVFVJX0hJTlRfV0FUQ0hFRF9DT05UUk9MTEVSLFxuICAgIFRVSV9NT0RFLFxuICAgIFRVSV9URVhURklFTERfU0laRSxcbiAgICBUdWlCcmlnaHRuZXNzLFxuICAgIFR1aUhpbnRDb250cm9sbGVyRGlyZWN0aXZlLFxuICAgIFR1aUhpbnRNb2RlVCxcbiAgICBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQsXG4gICAgVHVpU2l6ZUwsXG4gICAgVHVpU2l6ZVMsXG4gICAgVHVpVGV4dGZpZWxkU2l6ZURpcmVjdGl2ZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUVUlfUEFTU1dPUkRfVEVYVFN9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7Y29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgc3RhcnRXaXRofSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0lucHV0UGFzc3dvcmRPcHRpb25zLCBUVUlfSU5QVVRfUEFTU1dPUkRfT1BUSU9OU30gZnJvbSAnLi9pbnB1dC1wYXNzd29yZC1vcHRpb25zJztcblxuLy8gQGR5bmFtaWNcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWlucHV0LXBhc3N3b3JkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtcGFzc3dvcmQudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtcGFzc3dvcmQuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUdWlJbnB1dFBhc3N3b3JkQ29tcG9uZW50KSxcbiAgICAgICAgfSxcbiAgICAgICAgSElOVF9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgICAgICBNT0RFX1BST1ZJREVSLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0UGFzc3dvcmRDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpQ29udHJvbDxzdHJpbmc+XG4gICAgaW1wbGVtZW50cyBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3JcbntcbiAgICBpc1Bhc3N3b3JkSGlkZGVuID0gdHJ1ZTtcblxuICAgIEBWaWV3Q2hpbGQoVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkPzogVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50O1xuXG4gICAgcmVhZG9ubHkgY29tcHV0ZWRNb2RlJDogT2JzZXJ2YWJsZTxUdWlCcmlnaHRuZXNzIHwgVHVpSGludE1vZGVUIHwgbnVsbD4gPVxuICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIHRoaXMubW9kZSQsXG4gICAgICAgICAgICB0aGlzLmhpbnRDb250cm9sbGVyLmNoYW5nZSQucGlwZShcbiAgICAgICAgICAgICAgICBzdGFydFdpdGgobnVsbCksXG4gICAgICAgICAgICAgICAgbWFwKCgpID0+IHRoaXMuaGludENvbnRyb2xsZXIubW9kZSksXG4gICAgICAgICAgICApLFxuICAgICAgICBdKS5waXBlKFxuICAgICAgICAgICAgbWFwKChbbW9kZSwgY29udHJvbGxlcl0pID0+IGNvbnRyb2xsZXIgfHwgbW9kZSksXG4gICAgICAgICAgICBzdGFydFdpdGgobnVsbCksXG4gICAgICAgICk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQFNlbGYoKVxuICAgICAgICBASW5qZWN0KE5nQ29udHJvbClcbiAgICAgICAgY29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KFRVSV9URVhURklFTERfU0laRSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGRTaXplOiBUdWlUZXh0ZmllbGRTaXplRGlyZWN0aXZlLFxuICAgICAgICBASW5qZWN0KFRVSV9QQVNTV09SRF9URVhUUylcbiAgICAgICAgcmVhZG9ubHkgcGFzc3dvcmRUZXh0cyQ6IE9ic2VydmFibGU8W3N0cmluZywgc3RyaW5nXT4sXG4gICAgICAgIEBJbmplY3QoVFVJX0lOUFVUX1BBU1NXT1JEX09QVElPTlMpXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBvcHRpb25zOiBJbnB1dFBhc3N3b3JkT3B0aW9ucyxcbiAgICAgICAgQEluamVjdChUVUlfSElOVF9XQVRDSEVEX0NPTlRST0xMRVIpXG4gICAgICAgIHJlYWRvbmx5IGhpbnRDb250cm9sbGVyOiBUdWlIaW50Q29udHJvbGxlckRpcmVjdGl2ZSxcbiAgICAgICAgQEluamVjdChUVUlfTU9ERSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBtb2RlJDogT2JzZXJ2YWJsZTxUdWlCcmlnaHRuZXNzIHwgbnVsbD4sXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNvbnRyb2wsIGNoYW5nZURldGVjdG9yUmVmKTtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBUdWlOYXRpdmVGb2N1c2FibGVFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXB1dGVkRGlzYWJsZWQgfHwgIXRoaXMudGV4dGZpZWxkXG4gICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgIDogdGhpcy50ZXh0ZmllbGQubmF0aXZlRm9jdXNhYmxlRWxlbWVudDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy50ZXh0ZmllbGQgJiYgdGhpcy50ZXh0ZmllbGQuZm9jdXNlZDtcbiAgICB9XG5cbiAgICBnZXQgaWNvbigpOiBQb2x5bW9ycGhldXNDb250ZW50PFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8VHVpU2l6ZVMgfCBUdWlTaXplTD4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNQYXNzd29yZEhpZGRlbiA/IHRoaXMub3B0aW9ucy5pY29ucy5oaWRlIDogdGhpcy5vcHRpb25zLmljb25zLnNob3c7XG4gICAgfVxuXG4gICAgZ2V0IGNvbnRleHQoKTogVHVpQ29udGV4dFdpdGhJbXBsaWNpdDxUdWlTaXplUyB8IFR1aVNpemVMPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENvbnRleHQodGhpcy50ZXh0ZmllbGRTaXplLnNpemUpO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBnZXRDb250ZXh0KFxuICAgICAgICAkaW1wbGljaXQ6IFR1aVNpemVTIHwgVHVpU2l6ZUwsXG4gICAgKTogVHVpQ29udGV4dFdpdGhJbXBsaWNpdDxUdWlTaXplUyB8IFR1aVNpemVMPiB7XG4gICAgICAgIHJldHVybiB7JGltcGxpY2l0fTtcbiAgICB9XG5cbiAgICBnZXQgaW5wdXRUeXBlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzUGFzc3dvcmRIaWRkZW4gfHwgIXRoaXMuaGFzRXllSWNvbiA/ICdwYXNzd29yZCcgOiAndGV4dCc7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0V5ZUljb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkT25seSk7XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZSh0ZXh0VmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHRleHRWYWx1ZSk7XG4gICAgfVxuXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuICAgIH1cblxuICAgIG9uSG92ZXJlZChob3ZlcmVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlSG92ZXJlZChob3ZlcmVkKTtcbiAgICB9XG5cbiAgICBvblByZXNzZWQocHJlc3NlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZVByZXNzZWQocHJlc3NlZCk7XG4gICAgfVxuXG4gICAgdG9nZ2xlUGFzc3dvcmRWaXNpYmlsaXR5KCkge1xuICAgICAgICB0aGlzLmlzUGFzc3dvcmRIaWRkZW4gPSAhdGhpcy5pc1Bhc3N3b3JkSGlkZGVuO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRGYWxsYmFja1ZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG59XG4iXX0=
@@ -281,7 +281,7 @@ var TuiInputPhoneComponent = /** @class */ (function (_super) {
281
281
  TuiInputPhoneComponent = TuiInputPhoneComponent_1 = __decorate([
282
282
  Component({
283
283
  selector: 'tui-input-phone',
284
- template: "<tui-hosted-dropdown\n class=\"hosted\"\n [canOpen]=\"canOpen\"\n [content]=\"datalist || ''\"\n [(open)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n class=\"textfield\"\n tuiValueAccessor\n tuiTextfieldType=\"tel\"\n [tuiTextfieldInputMode]=\"inputMode\"\n [pseudoHovered]=\"pseudoHovered\"\n [pseudoFocused]=\"computedFocused\"\n [invalid]=\"computedInvalid\"\n [nativeId]=\"nativeId\"\n [readOnly]=\"readOnly\"\n [disabled]=\"computedDisabled\"\n [focusable]=\"focusable\"\n [textMask]=\"textMaskOptions\"\n [value]=\"nativeValue\"\n (valueChange)=\"onValueChange($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (drop)=\"onDrop($event)\"\n (keydown.backspace)=\"onBackspace($event)\"\n (paste.prevent)=\"onPaste($event)\"\n [tuiTextfieldCleaner]=\"canClean\"\n >\n <ng-content></ng-content>\n </tui-primitive-textfield>\n</tui-hosted-dropdown>\n",
284
+ template: "<tui-hosted-dropdown\n class=\"hosted\"\n [canOpen]=\"canOpen\"\n [content]=\"datalist || ''\"\n [(open)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n tuiValueAccessor\n tuiTextfieldType=\"tel\"\n class=\"textfield\"\n [tuiTextfieldInputMode]=\"inputMode\"\n [pseudoHovered]=\"pseudoHovered\"\n [pseudoFocused]=\"computedFocused\"\n [invalid]=\"computedInvalid\"\n [nativeId]=\"nativeId\"\n [readOnly]=\"readOnly\"\n [disabled]=\"computedDisabled\"\n [focusable]=\"focusable\"\n [textMask]=\"textMaskOptions\"\n [value]=\"nativeValue\"\n [tuiTextfieldCleaner]=\"canClean\"\n (valueChange)=\"onValueChange($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (drop)=\"onDrop($event)\"\n (keydown.backspace)=\"onBackspace($event)\"\n (paste.prevent)=\"onPaste($event)\"\n >\n <ng-content></ng-content>\n </tui-primitive-textfield>\n</tui-hosted-dropdown>\n",
285
285
  changeDetection: ChangeDetectionStrategy.OnPush,
286
286
  providers: [
287
287
  {
@@ -165,7 +165,7 @@ var TuiInputPhoneInternationalComponent = /** @class */ (function (_super) {
165
165
  TuiInputPhoneInternationalComponent = TuiInputPhoneInternationalComponent_1 = __decorate([
166
166
  Component({
167
167
  selector: 'tui-input-phone-international',
168
- template: "<tui-hosted-dropdown\n *tuiLet=\"countriesNames$ | async as countriesNames\"\n class=\"hosted-dropdown\"\n [content]=\"dropdown\"\n [canOpen]=\"!readOnly\"\n [(open)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <div tuiGroup>\n <tui-primitive-textfield\n tuiHostedDropdownHost\n class=\"country-select tui-group__auto-width-item\"\n [tuiTextfieldCustomContent]=\"countryValueContent\"\n [tuiTextfieldLabelOutside]=\"true\"\n [disabled]=\"disabled\"\n [focusable]=\"focusable\"\n [editable]=\"false\"\n [iconContent]=\"arrow\"\n [pseudoFocused]=\"open || null\"\n [readOnly]=\"readOnly\"\n [tuiHintContent]=\"null\"\n ></tui-primitive-textfield>\n <tui-input-phone\n class=\"input-phone tui-group__auto-width-item\"\n tuiTextfieldAutocomplete=\"off\"\n [ngModel]=\"value\"\n [disabled]=\"disabled\"\n [focusable]=\"focusable\"\n [countryCode]=\"inputPhoneCountryCode\"\n [phoneMaskAfterCountryCode]=\"phoneMaskAfterCountryCode\"\n [readOnly]=\"readOnly\"\n [pseudoInvalid]=\"computedInvalid\"\n [pseudoFocused]=\"pseudoFocused\"\n [pseudoHovered]=\"pseudoHovered\"\n (ngModelChange)=\"onModelChange($event)\"\n >\n <ng-content></ng-content>\n </tui-input-phone>\n </div>\n\n <ng-template #dropdown>\n <tui-data-list>\n <button\n *ngFor=\"let item of countries\"\n tuiOption\n (click)=\"onItemClick(item)\"\n >\n <img\n class=\"country-item-flag\"\n alt=\"\"\n [src]=\"getFlagPath(item)\"\n />\n <span class=\"country-item-name\">{{countriesNames[item]}}</span>\n <span class=\"country-item-code\"\n >{{item | tuiMapper : isoToCountryCodeMapper}}</span\n >\n </button>\n </tui-data-list>\n </ng-template>\n\n <ng-template #countryValueContent>\n <img\n class=\"flag\"\n [alt]=\"countriesNames[countryIsoCode]\"\n [src]=\"countryFlagPath\"\n />\n </ng-template>\n</tui-hosted-dropdown>\n",
168
+ template: "<tui-hosted-dropdown\n *tuiLet=\"countriesNames$ | async as countriesNames\"\n class=\"hosted-dropdown\"\n [content]=\"dropdown\"\n [canOpen]=\"!readOnly\"\n [(open)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <div tuiGroup>\n <tui-primitive-textfield\n tuiHostedDropdownHost\n class=\"country-select tui-group__auto-width-item\"\n [tuiTextfieldCustomContent]=\"countryValueContent\"\n [tuiTextfieldLabelOutside]=\"true\"\n [disabled]=\"disabled\"\n [focusable]=\"focusable\"\n [editable]=\"false\"\n [iconContent]=\"arrow\"\n [pseudoFocused]=\"open || null\"\n [readOnly]=\"readOnly\"\n [tuiHintContent]=\"null\"\n ></tui-primitive-textfield>\n <tui-input-phone\n tuiTextfieldAutocomplete=\"off\"\n class=\"input-phone tui-group__auto-width-item\"\n [ngModel]=\"value\"\n [disabled]=\"disabled\"\n [focusable]=\"focusable\"\n [countryCode]=\"inputPhoneCountryCode\"\n [phoneMaskAfterCountryCode]=\"phoneMaskAfterCountryCode\"\n [readOnly]=\"readOnly\"\n [pseudoInvalid]=\"computedInvalid\"\n [pseudoFocused]=\"pseudoFocused\"\n [pseudoHovered]=\"pseudoHovered\"\n (ngModelChange)=\"onModelChange($event)\"\n >\n <ng-content></ng-content>\n </tui-input-phone>\n </div>\n\n <ng-template #dropdown>\n <tui-data-list>\n <button\n *ngFor=\"let item of countries\"\n tuiOption\n (click)=\"onItemClick(item)\"\n >\n <img\n alt=\"\"\n class=\"country-item-flag\"\n [src]=\"getFlagPath(item)\"\n />\n <span class=\"country-item-name\">\n {{ countriesNames[item] }}\n </span>\n <span class=\"country-item-code\">\n {{ item | tuiMapper: isoToCountryCodeMapper }}\n </span>\n </button>\n </tui-data-list>\n </ng-template>\n\n <ng-template #countryValueContent>\n <img\n class=\"flag\"\n [alt]=\"countriesNames[countryIsoCode]\"\n [src]=\"countryFlagPath\"\n />\n </ng-template>\n</tui-hosted-dropdown>\n",
169
169
  changeDetection: ChangeDetectionStrategy.OnPush,
170
170
  providers: [
171
171
  {
@@ -186,4 +186,4 @@ var TuiInputPhoneInternationalComponent = /** @class */ (function (_super) {
186
186
  return TuiInputPhoneInternationalComponent;
187
187
  }(AbstractTuiControl));
188
188
  export { TuiInputPhoneInternationalComponent };
189
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbC8iLCJzb3VyY2VzIjpbImlucHV0LXBob25lLWludGVybmF0aW9uYWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFDSixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUNoQiwyQkFBMkIsRUFDM0IsY0FBYyxFQUdkLE9BQU8sR0FFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsY0FBYyxFQUNkLHFCQUFxQixFQUNyQiw4QkFBOEIsR0FDakMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDekQsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDNUUsT0FBTyxFQUFDLGtDQUFrQyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDM0UsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRW5ELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRWxELElBQU0sc0JB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QXNCLENBQUM7b0ZBQzRCO0lBRzlEO1FBREMsU0FBUyxDQUFDLDhCQUE4QixDQUFDO21GQUMyQjtJQUlyRTtRQUZDLFlBQVksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RELFlBQVksQ0FBQywyQkFBMkIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO3NFQVdyRDtJQStGRDtRQURDLE9BQU87NEZBR1A7SUExSVEsbUNBQW1DO1FBYi9DLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSwrQkFBK0I7WUFDekMsdzRFQUF3RDtZQUV4RCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtZQUMvQyxTQUFTLEVBQUU7Z0JBQ1A7b0JBQ0ksT0FBTyxFQUFFLDJCQUEyQjtvQkFDcEMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxjQUFNLE9BQUEscUNBQW1DLEVBQW5DLENBQW1DLENBQUM7aUJBQ3JFO2dCQUNELGtDQUFrQzthQUNyQzs7U0FDSixDQUFDO1FBNkNPLFdBQUEsUUFBUSxFQUFFLENBQUE7UUFDVixXQUFBLElBQUksRUFBRSxDQUFBO1FBQ04sV0FBQSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7UUFFakIsV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUN6QixXQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQTtRQUV0QixXQUFBLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtPQW5EakIsbUNBQW1DLENBMkovQztJQUFELDBDQUFDO0NBQUEsQUEzSkQsQ0FDWSxrQkFBa0IsR0EwSjdCO1NBM0pZLG1DQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFNlbGYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpQ29udHJvbCxcbiAgICBnZXRDbGlwYm9hcmREYXRhVGV4dCxcbiAgICBzZXROYXRpdmVGb2N1c2VkLFxuICAgIFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgVHVpTWFwcGVyLFxuICAgIHR1aVB1cmUsXG4gICAgVHVpU3RyaW5nSGFuZGxlcixcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIFRVSV9JQ09OU19QQVRILFxuICAgIFRVSV9OT05fRElHSVRTX1JFR0VYUCxcbiAgICBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7VHVpQ291bnRyeUlzb0NvZGV9IGZyb20gJ0B0YWlnYS11aS9pMThuJztcbmltcG9ydCB7VFVJX0FSUk9XfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvYXJyb3cnO1xuaW1wb3J0IHtUdWlJbnB1dFBob25lQ29tcG9uZW50fSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtcGhvbmUnO1xuaW1wb3J0IHtGSVhFRF9EUk9QRE9XTl9DT05UUk9MTEVSX1BST1ZJREVSfSBmcm9tICdAdGFpZ2EtdWkva2l0L3Byb3ZpZGVycyc7XG5pbXBvcnQge1RVSV9DT1VOVFJJRVN9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0NPVU5UUklFU19NQVNLU30gZnJvbSAnLi9jb25zdC9jb3VudHJpZXMnO1xuXG5jb25zdCBNQVNLX0FGVEVSX0NPREVfUkVHRVhQID0gL1xcKFtcXCNdK1xcKXxbI1xcLSBdL2c7XG5cbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1pbnB1dC1waG9uZS1pbnRlcm5hdGlvbmFsJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnB1dC1waG9uZS1pbnRlcm5hdGlvbmFsLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHVpSW5wdXRQaG9uZUludGVybmF0aW9uYWxDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgICAgICBGSVhFRF9EUk9QRE9XTl9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0UGhvbmVJbnRlcm5hdGlvbmFsQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aUNvbnRyb2w8c3RyaW5nPlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGNvdW50cnlJc29Db2RlOiBUdWlDb3VudHJ5SXNvQ29kZSA9IFR1aUNvdW50cnlJc29Db2RlLlJVO1xuXG4gICAgQElucHV0KClcbiAgICBjb3VudHJpZXM6IFJlYWRvbmx5QXJyYXk8VHVpQ291bnRyeUlzb0NvZGU+ID0gW107XG5cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBjb3VudHJ5SXNvQ29kZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VHVpQ291bnRyeUlzb0NvZGU+KCk7XG5cbiAgICBvcGVuID0gZmFsc2U7XG5cbiAgICByZWFkb25seSBpc29Ub0NvdW50cnlDb2RlTWFwcGVyOiBUdWlNYXBwZXI8VHVpQ291bnRyeUlzb0NvZGUsIHN0cmluZz4gPSBpdGVtID0+XG4gICAgICAgIHRoaXMuaXNvVG9Db3VudHJ5Q29kZShpdGVtKTtcblxuICAgIHJlYWRvbmx5IGFycm93OiBQb2x5bW9ycGhldXNDb250ZW50ID0gVFVJX0FSUk9XO1xuXG4gICAgcHJpdmF0ZSBzdGF0aWNQYXRoOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIEBWaWV3Q2hpbGQoVHVpSW5wdXRQaG9uZUNvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlucHV0UGhvbmVDb21wb25lbnQ/OiBUdWlJbnB1dFBob25lQ29tcG9uZW50O1xuXG4gICAgQFZpZXdDaGlsZChUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcmltaXRpdmVUZXh0ZmllbGQ/OiBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQ7XG5cbiAgICBASG9zdExpc3RlbmVyKCdwYXN0ZS5jYXB0dXJlLnByZXZlbnQuc3RvcCcsIFsnJGV2ZW50J10pXG4gICAgQEhvc3RMaXN0ZW5lcignZHJvcC5jYXB0dXJlLnByZXZlbnQuc3RvcCcsIFsnJGV2ZW50J10pXG4gICAgb25QYXN0ZShldmVudDogQ2xpcGJvYXJkRXZlbnQgfCBEcmFnRXZlbnQpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmV4dHJhY3RWYWx1ZShldmVudCk7XG4gICAgICAgIGNvbnN0IGNvdW50cnlJc29Db2RlID0gdGhpcy5jb3VudHJpZXMuZmluZChjb3VudHJ5SXNvQ29kZSA9PlxuICAgICAgICAgICAgdmFsdWUuc3RhcnRzV2l0aCh0aGlzLmlzb1RvQ291bnRyeUNvZGUoY291bnRyeUlzb0NvZGUpKSxcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoY291bnRyeUlzb0NvZGUpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ291bnRyeUlzb0NvZGUoY291bnRyeUlzb0NvZGUpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSgnKycgKyB2YWx1ZS5yZXBsYWNlKFRVSV9OT05fRElHSVRTX1JFR0VYUCwgJycpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoVFVJX0lDT05TX1BBVEgpXG4gICAgICAgIGljb25zUGF0aDogVHVpU3RyaW5nSGFuZGxlcjxzdHJpbmc+LFxuICAgICAgICBASW5qZWN0KFRVSV9DT1VOVFJJRVMpXG4gICAgICAgIHJlYWRvbmx5IGNvdW50cmllc05hbWVzJDogT2JzZXJ2YWJsZTxSZWNvcmQ8VHVpQ291bnRyeUlzb0NvZGUsIHN0cmluZz4+LFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICAgICAgdGhpcy5zdGF0aWNQYXRoID0gaWNvbnNQYXRoKCd0dWlJY29uJykucmVwbGFjZSgndHVpSWNvbi5zdmcjdHVpSWNvbicsICcnKTtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dFBob25lQ29tcG9uZW50ICYmICF0aGlzLmNvbXB1dGVkRGlzYWJsZWRcbiAgICAgICAgICAgID8gdGhpcy5pbnB1dFBob25lQ29tcG9uZW50Lm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnRcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICghIXRoaXMucHJpbWl0aXZlVGV4dGZpZWxkICYmIHRoaXMucHJpbWl0aXZlVGV4dGZpZWxkLmZvY3VzZWQpIHx8XG4gICAgICAgICAgICAoISF0aGlzLmlucHV0UGhvbmVDb21wb25lbnQgJiYgdGhpcy5pbnB1dFBob25lQ29tcG9uZW50LmZvY3VzZWQpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGlucHV0UGhvbmVDb3VudHJ5Q29kZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pc29Ub0NvdW50cnlDb2RlKHRoaXMuY291bnRyeUlzb0NvZGUpO1xuICAgIH1cblxuICAgIGdldCBwaG9uZU1hc2tBZnRlckNvdW50cnlDb2RlKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGNvdW50cnlDb2RlID0gdGhpcy5pc29Ub0NvdW50cnlDb2RlKHRoaXMuY291bnRyeUlzb0NvZGUpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmNhbGN1bGF0ZU1hc2tBZnRlckNvdW50cnlDb2RlKFxuICAgICAgICAgICAgQ09VTlRSSUVTX01BU0tTW3RoaXMuY291bnRyeUlzb0NvZGVdLFxuICAgICAgICAgICAgY291bnRyeUNvZGUsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGNvdW50cnlGbGFnUGF0aCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRGbGFnUGF0aCh0aGlzLmNvdW50cnlJc29Db2RlKTtcbiAgICB9XG5cbiAgICBnZXRGbGFnUGF0aChjb2RlOiBUdWlDb3VudHJ5SXNvQ29kZSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLnN0YXRpY1BhdGh9JHtjb2RlfS5wbmdgO1xuICAgIH1cblxuICAgIG9uSXRlbUNsaWNrKGlzb0NvZGU6IFR1aUNvdW50cnlJc29Db2RlKSB7XG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLnVwZGF0ZUNvdW50cnlJc29Db2RlKGlzb0NvZGUpO1xuICAgICAgICAvLyByZWNhbGN1bGF0ZXMgbWFzayBpbnNpZGUgaW5wdXRQaG9uZSB0byBwcmV2ZW50IGlzb0NvZGUgY29uZmxpY3RcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgY29uc3QgbWF4TGVuZ3RoID0gdGhpcy5nZXRNYXhBbGxvd2VkTGVuZ3RoKGlzb0NvZGUpO1xuXG4gICAgICAgIGlmICh0aGlzLnZhbHVlLmxlbmd0aCA+IG1heExlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh0aGlzLnZhbHVlLnNsaWNlKDAsIG1heExlbmd0aCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgc2V0TmF0aXZlRm9jdXNlZCh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZSgpIHtcbiAgICAgICAgc3VwZXIuc2V0RGlzYWJsZWRTdGF0ZSgpO1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgaXNvVG9Db3VudHJ5Q29kZShpc29Db2RlOiBUdWlDb3VudHJ5SXNvQ29kZSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBDT1VOVFJJRVNfTUFTS1NbaXNvQ29kZV0ucmVwbGFjZShNQVNLX0FGVEVSX0NPREVfUkVHRVhQLCAnJyk7XG4gICAgfVxuXG4gICAgb25Nb2RlbENoYW5nZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIG9uQWN0aXZlWm9uZShhY3RpdmU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGFjdGl2ZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEZhbGxiYWNrVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xvc2UoKSB7XG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVNYXNrQWZ0ZXJDb3VudHJ5Q29kZShtYXNrOiBzdHJpbmcsIGNvdW50cnlDb2RlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gbWFzay5yZXBsYWNlKGNvdW50cnlDb2RlLCAnJykudHJpbSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TWF4QWxsb3dlZExlbmd0aChpc29Db2RlOiBUdWlDb3VudHJ5SXNvQ29kZSk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBDT1VOVFJJRVNfTUFTS1NbaXNvQ29kZV0ucmVwbGFjZSgvWygpXFwtIF0vZywgJycpLmxlbmd0aDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGV4dHJhY3RWYWx1ZShldmVudDogRHJhZ0V2ZW50IHwgQ2xpcGJvYXJkRXZlbnQpOiBzdHJpbmcge1xuICAgICAgICAvLyBUT0RPOiBpZnJhbWUgd2FybmluZ1xuICAgICAgICByZXR1cm4gZXZlbnQgaW5zdGFuY2VvZiBEcmFnRXZlbnRcbiAgICAgICAgICAgID8gZXZlbnQuZGF0YVRyYW5zZmVyPy5nZXREYXRhKCd0ZXh0L3BsYWluJykgfHwgJydcbiAgICAgICAgICAgIDogZ2V0Q2xpcGJvYXJkRGF0YVRleHQoZXZlbnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlQ291bnRyeUlzb0NvZGUoY29kZTogVHVpQ291bnRyeUlzb0NvZGUpIHtcbiAgICAgICAgdGhpcy5jb3VudHJ5SXNvQ29kZSA9IGNvZGU7XG4gICAgICAgIHRoaXMuY291bnRyeUlzb0NvZGVDaGFuZ2UuZW1pdChjb2RlKTtcbiAgICB9XG59XG4iXX0=
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbC8iLCJzb3VyY2VzIjpbImlucHV0LXBob25lLWludGVybmF0aW9uYWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFDSixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUNoQiwyQkFBMkIsRUFDM0IsY0FBYyxFQUdkLE9BQU8sR0FFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsY0FBYyxFQUNkLHFCQUFxQixFQUNyQiw4QkFBOEIsR0FDakMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDekQsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDNUUsT0FBTyxFQUFDLGtDQUFrQyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDM0UsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRW5ELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRWxELElBQU0sc0JB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QXNCLENBQUM7b0ZBQzRCO0lBRzlEO1FBREMsU0FBUyxDQUFDLDhCQUE4QixDQUFDO21GQUMyQjtJQUlyRTtRQUZDLFlBQVksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RELFlBQVksQ0FBQywyQkFBMkIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO3NFQVdyRDtJQStGRDtRQURDLE9BQU87NEZBR1A7SUExSVEsbUNBQW1DO1FBYi9DLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSwrQkFBK0I7WUFDekMsbTdFQUF3RDtZQUV4RCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtZQUMvQyxTQUFTLEVBQUU7Z0JBQ1A7b0JBQ0ksT0FBTyxFQUFFLDJCQUEyQjtvQkFDcEMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxjQUFNLE9BQUEscUNBQW1DLEVBQW5DLENBQW1DLENBQUM7aUJBQ3JFO2dCQUNELGtDQUFrQzthQUNyQzs7U0FDSixDQUFDO1FBNkNPLFdBQUEsUUFBUSxFQUFFLENBQUE7UUFDVixXQUFBLElBQUksRUFBRSxDQUFBO1FBQ04sV0FBQSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7UUFFakIsV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUN6QixXQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQTtRQUV0QixXQUFBLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtPQW5EakIsbUNBQW1DLENBMkovQztJQUFELDBDQUFDO0NBQUEsQUEzSkQsQ0FDWSxrQkFBa0IsR0EwSjdCO1NBM0pZLG1DQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFNlbGYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpQ29udHJvbCxcbiAgICBnZXRDbGlwYm9hcmREYXRhVGV4dCxcbiAgICBzZXROYXRpdmVGb2N1c2VkLFxuICAgIFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgVHVpTWFwcGVyLFxuICAgIHR1aVB1cmUsXG4gICAgVHVpU3RyaW5nSGFuZGxlcixcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIFRVSV9JQ09OU19QQVRILFxuICAgIFRVSV9OT05fRElHSVRTX1JFR0VYUCxcbiAgICBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7VHVpQ291bnRyeUlzb0NvZGV9IGZyb20gJ0B0YWlnYS11aS9pMThuJztcbmltcG9ydCB7VFVJX0FSUk9XfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvYXJyb3cnO1xuaW1wb3J0IHtUdWlJbnB1dFBob25lQ29tcG9uZW50fSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtcGhvbmUnO1xuaW1wb3J0IHtGSVhFRF9EUk9QRE9XTl9DT05UUk9MTEVSX1BST1ZJREVSfSBmcm9tICdAdGFpZ2EtdWkva2l0L3Byb3ZpZGVycyc7XG5pbXBvcnQge1RVSV9DT1VOVFJJRVN9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0NPVU5UUklFU19NQVNLU30gZnJvbSAnLi9jb25zdC9jb3VudHJpZXMnO1xuXG5jb25zdCBNQVNLX0FGVEVSX0NPREVfUkVHRVhQID0gL1xcKFtcXCNdK1xcKXxbI1xcLSBdL2c7XG5cbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1pbnB1dC1waG9uZS1pbnRlcm5hdGlvbmFsJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnB1dC1waG9uZS1pbnRlcm5hdGlvbmFsLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHVpSW5wdXRQaG9uZUludGVybmF0aW9uYWxDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgICAgICBGSVhFRF9EUk9QRE9XTl9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0UGhvbmVJbnRlcm5hdGlvbmFsQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aUNvbnRyb2w8c3RyaW5nPlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGNvdW50cnlJc29Db2RlOiBUdWlDb3VudHJ5SXNvQ29kZSA9IFR1aUNvdW50cnlJc29Db2RlLlJVO1xuXG4gICAgQElucHV0KClcbiAgICBjb3VudHJpZXM6IFJlYWRvbmx5QXJyYXk8VHVpQ291bnRyeUlzb0NvZGU+ID0gW107XG5cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBjb3VudHJ5SXNvQ29kZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VHVpQ291bnRyeUlzb0NvZGU+KCk7XG5cbiAgICBvcGVuID0gZmFsc2U7XG5cbiAgICByZWFkb25seSBpc29Ub0NvdW50cnlDb2RlTWFwcGVyOiBUdWlNYXBwZXI8VHVpQ291bnRyeUlzb0NvZGUsIHN0cmluZz4gPSBpdGVtID0+XG4gICAgICAgIHRoaXMuaXNvVG9Db3VudHJ5Q29kZShpdGVtKTtcblxuICAgIHJlYWRvbmx5IGFycm93OiBQb2x5bW9ycGhldXNDb250ZW50ID0gVFVJX0FSUk9XO1xuXG4gICAgcHJpdmF0ZSBzdGF0aWNQYXRoOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIEBWaWV3Q2hpbGQoVHVpSW5wdXRQaG9uZUNvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlucHV0UGhvbmVDb21wb25lbnQ/OiBUdWlJbnB1dFBob25lQ29tcG9uZW50O1xuXG4gICAgQFZpZXdDaGlsZChUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcmltaXRpdmVUZXh0ZmllbGQ/OiBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQ7XG5cbiAgICBASG9zdExpc3RlbmVyKCdwYXN0ZS5jYXB0dXJlLnByZXZlbnQuc3RvcCcsIFsnJGV2ZW50J10pXG4gICAgQEhvc3RMaXN0ZW5lcignZHJvcC5jYXB0dXJlLnByZXZlbnQuc3RvcCcsIFsnJGV2ZW50J10pXG4gICAgb25QYXN0ZShldmVudDogQ2xpcGJvYXJkRXZlbnQgfCBEcmFnRXZlbnQpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmV4dHJhY3RWYWx1ZShldmVudCk7XG4gICAgICAgIGNvbnN0IGNvdW50cnlJc29Db2RlID0gdGhpcy5jb3VudHJpZXMuZmluZChjb3VudHJ5SXNvQ29kZSA9PlxuICAgICAgICAgICAgdmFsdWUuc3RhcnRzV2l0aCh0aGlzLmlzb1RvQ291bnRyeUNvZGUoY291bnRyeUlzb0NvZGUpKSxcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoY291bnRyeUlzb0NvZGUpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ291bnRyeUlzb0NvZGUoY291bnRyeUlzb0NvZGUpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSgnKycgKyB2YWx1ZS5yZXBsYWNlKFRVSV9OT05fRElHSVRTX1JFR0VYUCwgJycpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoVFVJX0lDT05TX1BBVEgpXG4gICAgICAgIGljb25zUGF0aDogVHVpU3RyaW5nSGFuZGxlcjxzdHJpbmc+LFxuICAgICAgICBASW5qZWN0KFRVSV9DT1VOVFJJRVMpXG4gICAgICAgIHJlYWRvbmx5IGNvdW50cmllc05hbWVzJDogT2JzZXJ2YWJsZTxSZWNvcmQ8VHVpQ291bnRyeUlzb0NvZGUsIHN0cmluZz4+LFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICAgICAgdGhpcy5zdGF0aWNQYXRoID0gaWNvbnNQYXRoKCd0dWlJY29uJykucmVwbGFjZSgndHVpSWNvbi5zdmcjdHVpSWNvbicsICcnKTtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dFBob25lQ29tcG9uZW50ICYmICF0aGlzLmNvbXB1dGVkRGlzYWJsZWRcbiAgICAgICAgICAgID8gdGhpcy5pbnB1dFBob25lQ29tcG9uZW50Lm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnRcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICghIXRoaXMucHJpbWl0aXZlVGV4dGZpZWxkICYmIHRoaXMucHJpbWl0aXZlVGV4dGZpZWxkLmZvY3VzZWQpIHx8XG4gICAgICAgICAgICAoISF0aGlzLmlucHV0UGhvbmVDb21wb25lbnQgJiYgdGhpcy5pbnB1dFBob25lQ29tcG9uZW50LmZvY3VzZWQpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGlucHV0UGhvbmVDb3VudHJ5Q29kZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pc29Ub0NvdW50cnlDb2RlKHRoaXMuY291bnRyeUlzb0NvZGUpO1xuICAgIH1cblxuICAgIGdldCBwaG9uZU1hc2tBZnRlckNvdW50cnlDb2RlKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGNvdW50cnlDb2RlID0gdGhpcy5pc29Ub0NvdW50cnlDb2RlKHRoaXMuY291bnRyeUlzb0NvZGUpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmNhbGN1bGF0ZU1hc2tBZnRlckNvdW50cnlDb2RlKFxuICAgICAgICAgICAgQ09VTlRSSUVTX01BU0tTW3RoaXMuY291bnRyeUlzb0NvZGVdLFxuICAgICAgICAgICAgY291bnRyeUNvZGUsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGNvdW50cnlGbGFnUGF0aCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRGbGFnUGF0aCh0aGlzLmNvdW50cnlJc29Db2RlKTtcbiAgICB9XG5cbiAgICBnZXRGbGFnUGF0aChjb2RlOiBUdWlDb3VudHJ5SXNvQ29kZSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLnN0YXRpY1BhdGh9JHtjb2RlfS5wbmdgO1xuICAgIH1cblxuICAgIG9uSXRlbUNsaWNrKGlzb0NvZGU6IFR1aUNvdW50cnlJc29Db2RlKSB7XG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLnVwZGF0ZUNvdW50cnlJc29Db2RlKGlzb0NvZGUpO1xuICAgICAgICAvLyByZWNhbGN1bGF0ZXMgbWFzayBpbnNpZGUgaW5wdXRQaG9uZSB0byBwcmV2ZW50IGlzb0NvZGUgY29uZmxpY3RcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgY29uc3QgbWF4TGVuZ3RoID0gdGhpcy5nZXRNYXhBbGxvd2VkTGVuZ3RoKGlzb0NvZGUpO1xuXG4gICAgICAgIGlmICh0aGlzLnZhbHVlLmxlbmd0aCA+IG1heExlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh0aGlzLnZhbHVlLnNsaWNlKDAsIG1heExlbmd0aCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgc2V0TmF0aXZlRm9jdXNlZCh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZSgpIHtcbiAgICAgICAgc3VwZXIuc2V0RGlzYWJsZWRTdGF0ZSgpO1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgaXNvVG9Db3VudHJ5Q29kZShpc29Db2RlOiBUdWlDb3VudHJ5SXNvQ29kZSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBDT1VOVFJJRVNfTUFTS1NbaXNvQ29kZV0ucmVwbGFjZShNQVNLX0FGVEVSX0NPREVfUkVHRVhQLCAnJyk7XG4gICAgfVxuXG4gICAgb25Nb2RlbENoYW5nZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIG9uQWN0aXZlWm9uZShhY3RpdmU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGFjdGl2ZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEZhbGxiYWNrVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xvc2UoKSB7XG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVNYXNrQWZ0ZXJDb3VudHJ5Q29kZShtYXNrOiBzdHJpbmcsIGNvdW50cnlDb2RlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gbWFzay5yZXBsYWNlKGNvdW50cnlDb2RlLCAnJykudHJpbSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TWF4QWxsb3dlZExlbmd0aChpc29Db2RlOiBUdWlDb3VudHJ5SXNvQ29kZSk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBDT1VOVFJJRVNfTUFTS1NbaXNvQ29kZV0ucmVwbGFjZSgvWygpXFwtIF0vZywgJycpLmxlbmd0aDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGV4dHJhY3RWYWx1ZShldmVudDogRHJhZ0V2ZW50IHwgQ2xpcGJvYXJkRXZlbnQpOiBzdHJpbmcge1xuICAgICAgICAvLyBUT0RPOiBpZnJhbWUgd2FybmluZ1xuICAgICAgICByZXR1cm4gZXZlbnQgaW5zdGFuY2VvZiBEcmFnRXZlbnRcbiAgICAgICAgICAgID8gZXZlbnQuZGF0YVRyYW5zZmVyPy5nZXREYXRhKCd0ZXh0L3BsYWluJykgfHwgJydcbiAgICAgICAgICAgIDogZ2V0Q2xpcGJvYXJkRGF0YVRleHQoZXZlbnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlQ291bnRyeUlzb0NvZGUoY29kZTogVHVpQ291bnRyeUlzb0NvZGUpIHtcbiAgICAgICAgdGhpcy5jb3VudHJ5SXNvQ29kZSA9IGNvZGU7XG4gICAgICAgIHRoaXMuY291bnRyeUlzb0NvZGVDaGFuZ2UuZW1pdChjb2RlKTtcbiAgICB9XG59XG4iXX0=