@salutejs/plasma-new-hope 0.327.0-canary.1741.15743877104.0 → 0.327.0-canary.1741.15776056320.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 (356) hide show
  1. package/cjs/components/Autocomplete/Autocomplete.js +3 -3
  2. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  3. package/cjs/components/Autocomplete/FloatingPopover.js +2 -2
  4. package/cjs/components/Autocomplete/FloatingPopover.js.map +1 -1
  5. package/cjs/components/Calendar/CalendarBase/CalendarBase.js +12 -0
  6. package/cjs/components/Calendar/CalendarBase/CalendarBase.js.map +1 -1
  7. package/cjs/components/Calendar/CalendarDouble/CalendarDouble.js +12 -0
  8. package/cjs/components/Calendar/CalendarDouble/CalendarDouble.js.map +1 -1
  9. package/cjs/components/Calendar/ui/CalendarDays/CalendarDays.js +3 -0
  10. package/cjs/components/Calendar/ui/CalendarDays/CalendarDays.js.map +1 -1
  11. package/cjs/components/Calendar/ui/CalendarMonths/CalendarMonths.js +3 -0
  12. package/cjs/components/Calendar/ui/CalendarMonths/CalendarMonths.js.map +1 -1
  13. package/cjs/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +3 -0
  14. package/cjs/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js.map +1 -1
  15. package/cjs/components/Calendar/ui/CalendarYears/CalendarYears.js +3 -0
  16. package/cjs/components/Calendar/ui/CalendarYears/CalendarYears.js.map +1 -1
  17. package/cjs/components/Checkbox/Checkbox.js +2 -1
  18. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  19. package/cjs/components/Combobox/ComboboxNew/Combobox.js +2 -1
  20. package/cjs/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  21. package/cjs/components/Combobox/ComboboxNew/FloatingPopover.js +2 -2
  22. package/cjs/components/Combobox/ComboboxNew/FloatingPopover.js.map +1 -1
  23. package/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +2 -2
  24. package/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js.map +1 -1
  25. package/cjs/components/Combobox/ComboboxOld/Combobox.js +2 -1
  26. package/cjs/components/Combobox/ComboboxOld/Combobox.js.map +1 -1
  27. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +3 -3
  28. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js.map +1 -1
  29. package/cjs/components/Drawer/Drawer.js +4 -3
  30. package/cjs/components/Drawer/Drawer.js.map +1 -1
  31. package/cjs/components/Drawer/hooks/useDrawer.js +2 -2
  32. package/cjs/components/Drawer/hooks/useDrawer.js.map +1 -1
  33. package/cjs/components/Dropdown/Dropdown.js +2 -2
  34. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  35. package/cjs/components/Dropdown/FloatingPopover.js +2 -2
  36. package/cjs/components/Dropdown/FloatingPopover.js.map +1 -1
  37. package/cjs/components/Dropdown/ui/DropdownDivider/DropdownDivider.js.map +1 -1
  38. package/cjs/components/Dropdown/ui/DropdownFooter/DropdownFooter.js.map +1 -1
  39. package/cjs/components/Dropdown/ui/DropdownGroup/DropdownGroup.js.map +1 -1
  40. package/cjs/components/Dropdown/ui/DropdownHeader/DropdownHeader.js.map +1 -1
  41. package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +2 -2
  42. package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +1 -1
  43. package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +3 -3
  44. package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js.map +1 -1
  45. package/cjs/components/Dropdown/ui/DropdownOld/DropdownOld.js.map +1 -1
  46. package/cjs/components/Mask/Mask.js +3 -3
  47. package/cjs/components/Mask/Mask.js.map +1 -1
  48. package/cjs/components/Modal/Modal.js +3 -2
  49. package/cjs/components/Modal/Modal.js.map +1 -1
  50. package/cjs/components/Modal/hooks/useModal.js +1 -1
  51. package/cjs/components/Modal/hooks/useModal.js.map +1 -1
  52. package/cjs/components/Popup/Popup.js +2 -1
  53. package/cjs/components/Popup/Popup.js.map +1 -1
  54. package/cjs/components/Popup/PopupContext.js +13 -13
  55. package/cjs/components/Popup/PopupContext.js.map +1 -1
  56. package/cjs/components/Radiobox/Radiobox.js +3 -2
  57. package/cjs/components/Radiobox/Radiobox.js.map +1 -1
  58. package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +3 -3
  59. package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js.map +1 -1
  60. package/cjs/components/Segment/ui/SegmentItem/SegmentItem.js +2 -2
  61. package/cjs/components/Segment/ui/SegmentItem/SegmentItem.js.map +1 -1
  62. package/cjs/components/Select/FloatingPopover.js +2 -2
  63. package/cjs/components/Select/FloatingPopover.js.map +1 -1
  64. package/cjs/components/Select/Select.js +2 -2
  65. package/cjs/components/Select/Select.js.map +1 -1
  66. package/cjs/components/Select/ui/Inner/Inner.js +2 -2
  67. package/cjs/components/Select/ui/Inner/Inner.js.map +1 -1
  68. package/cjs/components/Spinner/Spinner.js +2 -2
  69. package/cjs/components/Spinner/Spinner.js.map +1 -1
  70. package/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +3 -3
  71. package/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js.map +1 -1
  72. package/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +3 -3
  73. package/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js.map +1 -1
  74. package/cjs/components/TextArea/ui/Hint/Hint.js.map +1 -1
  75. package/cjs/components/TextField/TextField.js +4 -3
  76. package/cjs/components/TextField/TextField.js.map +1 -1
  77. package/cjs/components/TextField/ui/Hint/Hint.js.map +1 -1
  78. package/emotion/cjs/components/Autocomplete/Autocomplete.js +3 -3
  79. package/emotion/cjs/components/Autocomplete/FloatingPopover.js +2 -2
  80. package/emotion/cjs/components/Calendar/CalendarBase/CalendarBase.js +14 -0
  81. package/emotion/cjs/components/Calendar/CalendarDouble/CalendarDouble.js +14 -0
  82. package/emotion/cjs/components/Calendar/ui/CalendarDays/CalendarDays.js +3 -0
  83. package/emotion/cjs/components/Calendar/ui/CalendarMonths/CalendarMonths.js +3 -0
  84. package/emotion/cjs/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +3 -0
  85. package/emotion/cjs/components/Calendar/ui/CalendarYears/CalendarYears.js +3 -0
  86. package/emotion/cjs/components/Checkbox/Checkbox.js +3 -2
  87. package/emotion/cjs/components/Combobox/ComboboxNew/Combobox.js +21 -20
  88. package/emotion/cjs/components/Combobox/ComboboxNew/FloatingPopover.js +2 -2
  89. package/emotion/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +4 -4
  90. package/emotion/cjs/components/Combobox/ComboboxOld/Combobox.js +9 -8
  91. package/emotion/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +7 -7
  92. package/emotion/cjs/components/Drawer/Drawer.js +8 -8
  93. package/emotion/cjs/components/Drawer/hooks/useDrawer.js +2 -2
  94. package/emotion/cjs/components/Dropdown/Dropdown.js +8 -8
  95. package/emotion/cjs/components/Dropdown/FloatingPopover.js +2 -2
  96. package/emotion/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +4 -4
  97. package/emotion/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +2 -3
  98. package/emotion/cjs/components/Dropdown/ui/DropdownOld/DropdownOld.js +1 -1
  99. package/emotion/cjs/components/Mask/Mask.js +4 -4
  100. package/emotion/cjs/components/Modal/Modal.js +6 -5
  101. package/emotion/cjs/components/Modal/hooks/useModal.js +1 -1
  102. package/emotion/cjs/components/Popup/Popup.js +1 -1
  103. package/emotion/cjs/components/Popup/PopupContext.js +14 -29
  104. package/emotion/cjs/components/Radiobox/Radiobox.js +2 -2
  105. package/emotion/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +2 -3
  106. package/emotion/cjs/components/Segment/ui/SegmentItem/SegmentItem.js +1 -2
  107. package/emotion/cjs/components/Select/FloatingPopover.js +5 -5
  108. package/emotion/cjs/components/Select/Select.js +1 -2
  109. package/emotion/cjs/components/Select/ui/Inner/Inner.js +1 -2
  110. package/emotion/cjs/components/Spinner/Spinner.js +2 -2
  111. package/emotion/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +2 -3
  112. package/emotion/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +2 -3
  113. package/emotion/cjs/components/TextArea/ui/Hint/Hint.js +1 -1
  114. package/emotion/cjs/components/TextField/TextField.js +4 -4
  115. package/emotion/cjs/components/TextField/ui/Hint/Hint.js +1 -1
  116. package/emotion/es/components/Autocomplete/Autocomplete.js +1 -1
  117. package/emotion/es/components/Autocomplete/FloatingPopover.js +1 -1
  118. package/emotion/es/components/Calendar/CalendarBase/CalendarBase.js +14 -0
  119. package/emotion/es/components/Calendar/CalendarDouble/CalendarDouble.js +14 -0
  120. package/emotion/es/components/Calendar/ui/CalendarDays/CalendarDays.js +3 -0
  121. package/emotion/es/components/Calendar/ui/CalendarMonths/CalendarMonths.js +3 -0
  122. package/emotion/es/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +3 -0
  123. package/emotion/es/components/Calendar/ui/CalendarYears/CalendarYears.js +3 -0
  124. package/emotion/es/components/Checkbox/Checkbox.js +2 -1
  125. package/emotion/es/components/Combobox/ComboboxNew/Combobox.js +2 -1
  126. package/emotion/es/components/Combobox/ComboboxNew/FloatingPopover.js +1 -1
  127. package/emotion/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
  128. package/emotion/es/components/Combobox/ComboboxOld/Combobox.js +2 -1
  129. package/emotion/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +1 -1
  130. package/emotion/es/components/Drawer/Drawer.js +3 -3
  131. package/emotion/es/components/Drawer/hooks/useDrawer.js +2 -2
  132. package/emotion/es/components/Dropdown/Dropdown.js +1 -1
  133. package/emotion/es/components/Dropdown/FloatingPopover.js +1 -1
  134. package/emotion/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +1 -1
  135. package/emotion/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +1 -2
  136. package/emotion/es/components/Dropdown/ui/DropdownOld/DropdownOld.js +1 -1
  137. package/emotion/es/components/Mask/Mask.js +4 -4
  138. package/emotion/es/components/Modal/Modal.js +4 -3
  139. package/emotion/es/components/Modal/hooks/useModal.js +1 -1
  140. package/emotion/es/components/Popup/Popup.js +2 -2
  141. package/emotion/es/components/Popup/PopupContext.js +14 -29
  142. package/emotion/es/components/Radiobox/Radiobox.js +2 -2
  143. package/emotion/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +1 -2
  144. package/emotion/es/components/Segment/ui/SegmentItem/SegmentItem.js +1 -2
  145. package/emotion/es/components/Select/FloatingPopover.js +1 -1
  146. package/emotion/es/components/Select/Select.js +1 -2
  147. package/emotion/es/components/Select/ui/Inner/Inner.js +1 -2
  148. package/emotion/es/components/Spinner/Spinner.js +1 -1
  149. package/emotion/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +1 -2
  150. package/emotion/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +1 -2
  151. package/emotion/es/components/TextArea/ui/Hint/Hint.js +1 -1
  152. package/emotion/es/components/TextField/TextField.js +3 -3
  153. package/emotion/es/components/TextField/ui/Hint/Hint.js +1 -1
  154. package/es/components/Autocomplete/Autocomplete.js +1 -1
  155. package/es/components/Autocomplete/Autocomplete.js.map +1 -1
  156. package/es/components/Autocomplete/FloatingPopover.js +1 -1
  157. package/es/components/Autocomplete/FloatingPopover.js.map +1 -1
  158. package/es/components/Calendar/CalendarBase/CalendarBase.js +12 -0
  159. package/es/components/Calendar/CalendarBase/CalendarBase.js.map +1 -1
  160. package/es/components/Calendar/CalendarDouble/CalendarDouble.js +12 -0
  161. package/es/components/Calendar/CalendarDouble/CalendarDouble.js.map +1 -1
  162. package/es/components/Calendar/ui/CalendarDays/CalendarDays.js +3 -0
  163. package/es/components/Calendar/ui/CalendarDays/CalendarDays.js.map +1 -1
  164. package/es/components/Calendar/ui/CalendarMonths/CalendarMonths.js +3 -0
  165. package/es/components/Calendar/ui/CalendarMonths/CalendarMonths.js.map +1 -1
  166. package/es/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +3 -0
  167. package/es/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js.map +1 -1
  168. package/es/components/Calendar/ui/CalendarYears/CalendarYears.js +3 -0
  169. package/es/components/Calendar/ui/CalendarYears/CalendarYears.js.map +1 -1
  170. package/es/components/Checkbox/Checkbox.js +2 -1
  171. package/es/components/Checkbox/Checkbox.js.map +1 -1
  172. package/es/components/Combobox/ComboboxNew/Combobox.js +2 -1
  173. package/es/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  174. package/es/components/Combobox/ComboboxNew/FloatingPopover.js +1 -1
  175. package/es/components/Combobox/ComboboxNew/FloatingPopover.js.map +1 -1
  176. package/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
  177. package/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js.map +1 -1
  178. package/es/components/Combobox/ComboboxOld/Combobox.js +2 -1
  179. package/es/components/Combobox/ComboboxOld/Combobox.js.map +1 -1
  180. package/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +2 -2
  181. package/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js.map +1 -1
  182. package/es/components/Drawer/Drawer.js +4 -3
  183. package/es/components/Drawer/Drawer.js.map +1 -1
  184. package/es/components/Drawer/hooks/useDrawer.js +2 -2
  185. package/es/components/Drawer/hooks/useDrawer.js.map +1 -1
  186. package/es/components/Dropdown/Dropdown.js +1 -1
  187. package/es/components/Dropdown/Dropdown.js.map +1 -1
  188. package/es/components/Dropdown/FloatingPopover.js +1 -1
  189. package/es/components/Dropdown/FloatingPopover.js.map +1 -1
  190. package/es/components/Dropdown/ui/DropdownDivider/DropdownDivider.js.map +1 -1
  191. package/es/components/Dropdown/ui/DropdownFooter/DropdownFooter.js.map +1 -1
  192. package/es/components/Dropdown/ui/DropdownGroup/DropdownGroup.js.map +1 -1
  193. package/es/components/Dropdown/ui/DropdownHeader/DropdownHeader.js.map +1 -1
  194. package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +1 -1
  195. package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +1 -1
  196. package/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +2 -2
  197. package/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js.map +1 -1
  198. package/es/components/Dropdown/ui/DropdownOld/DropdownOld.js.map +1 -1
  199. package/es/components/Mask/Mask.js +3 -3
  200. package/es/components/Mask/Mask.js.map +1 -1
  201. package/es/components/Modal/Modal.js +3 -2
  202. package/es/components/Modal/Modal.js.map +1 -1
  203. package/es/components/Modal/hooks/useModal.js +1 -1
  204. package/es/components/Modal/hooks/useModal.js.map +1 -1
  205. package/es/components/Popup/Popup.js +2 -1
  206. package/es/components/Popup/Popup.js.map +1 -1
  207. package/es/components/Popup/PopupContext.js +13 -13
  208. package/es/components/Popup/PopupContext.js.map +1 -1
  209. package/es/components/Radiobox/Radiobox.js +3 -2
  210. package/es/components/Radiobox/Radiobox.js.map +1 -1
  211. package/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +2 -2
  212. package/es/components/Segment/ui/SegmentGroup/SegmentGroup.js.map +1 -1
  213. package/es/components/Segment/ui/SegmentItem/SegmentItem.js +1 -1
  214. package/es/components/Segment/ui/SegmentItem/SegmentItem.js.map +1 -1
  215. package/es/components/Select/FloatingPopover.js +1 -1
  216. package/es/components/Select/FloatingPopover.js.map +1 -1
  217. package/es/components/Select/Select.js +1 -1
  218. package/es/components/Select/Select.js.map +1 -1
  219. package/es/components/Select/ui/Inner/Inner.js +1 -1
  220. package/es/components/Select/ui/Inner/Inner.js.map +1 -1
  221. package/es/components/Spinner/Spinner.js +1 -1
  222. package/es/components/Spinner/Spinner.js.map +1 -1
  223. package/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +2 -2
  224. package/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js.map +1 -1
  225. package/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +2 -2
  226. package/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js.map +1 -1
  227. package/es/components/TextArea/ui/Hint/Hint.js.map +1 -1
  228. package/es/components/TextField/TextField.js +2 -1
  229. package/es/components/TextField/TextField.js.map +1 -1
  230. package/es/components/TextField/ui/Hint/Hint.js.map +1 -1
  231. package/package.json +4 -4
  232. package/styled-components/cjs/components/Autocomplete/Autocomplete.js +3 -3
  233. package/styled-components/cjs/components/Autocomplete/FloatingPopover.js +2 -2
  234. package/styled-components/cjs/components/Calendar/CalendarBase/CalendarBase.js +14 -0
  235. package/styled-components/cjs/components/Calendar/CalendarDouble/CalendarDouble.js +14 -0
  236. package/styled-components/cjs/components/Calendar/ui/CalendarDays/CalendarDays.js +3 -0
  237. package/styled-components/cjs/components/Calendar/ui/CalendarMonths/CalendarMonths.js +3 -0
  238. package/styled-components/cjs/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +3 -0
  239. package/styled-components/cjs/components/Calendar/ui/CalendarYears/CalendarYears.js +3 -0
  240. package/styled-components/cjs/components/Checkbox/Checkbox.js +3 -2
  241. package/styled-components/cjs/components/Combobox/ComboboxNew/Combobox.js +21 -20
  242. package/styled-components/cjs/components/Combobox/ComboboxNew/FloatingPopover.js +2 -2
  243. package/styled-components/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +4 -4
  244. package/styled-components/cjs/components/Combobox/ComboboxOld/Combobox.js +9 -8
  245. package/styled-components/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +7 -7
  246. package/styled-components/cjs/components/Drawer/Drawer.js +8 -8
  247. package/styled-components/cjs/components/Drawer/hooks/useDrawer.js +2 -2
  248. package/styled-components/cjs/components/Dropdown/Dropdown.js +8 -8
  249. package/styled-components/cjs/components/Dropdown/FloatingPopover.js +2 -2
  250. package/styled-components/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +4 -4
  251. package/styled-components/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +2 -3
  252. package/styled-components/cjs/components/Dropdown/ui/DropdownOld/DropdownOld.js +1 -1
  253. package/styled-components/cjs/components/Mask/Mask.js +4 -4
  254. package/styled-components/cjs/components/Modal/Modal.js +6 -5
  255. package/styled-components/cjs/components/Modal/hooks/useModal.js +1 -1
  256. package/styled-components/cjs/components/Popup/Popup.js +1 -1
  257. package/styled-components/cjs/components/Popup/PopupContext.js +14 -29
  258. package/styled-components/cjs/components/Radiobox/Radiobox.js +2 -2
  259. package/styled-components/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +2 -3
  260. package/styled-components/cjs/components/Segment/ui/SegmentItem/SegmentItem.js +1 -2
  261. package/styled-components/cjs/components/Select/FloatingPopover.js +5 -5
  262. package/styled-components/cjs/components/Select/Select.js +1 -2
  263. package/styled-components/cjs/components/Select/ui/Inner/Inner.js +1 -2
  264. package/styled-components/cjs/components/Spinner/Spinner.js +2 -2
  265. package/styled-components/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +2 -3
  266. package/styled-components/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +2 -3
  267. package/styled-components/cjs/components/TextArea/ui/Hint/Hint.js +1 -1
  268. package/styled-components/cjs/components/TextField/TextField.js +3 -3
  269. package/styled-components/cjs/components/TextField/ui/Hint/Hint.js +1 -1
  270. package/styled-components/es/components/Autocomplete/Autocomplete.js +1 -1
  271. package/styled-components/es/components/Autocomplete/FloatingPopover.js +1 -1
  272. package/styled-components/es/components/Calendar/CalendarBase/CalendarBase.js +14 -0
  273. package/styled-components/es/components/Calendar/CalendarDouble/CalendarDouble.js +14 -0
  274. package/styled-components/es/components/Calendar/ui/CalendarDays/CalendarDays.js +3 -0
  275. package/styled-components/es/components/Calendar/ui/CalendarMonths/CalendarMonths.js +3 -0
  276. package/styled-components/es/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +3 -0
  277. package/styled-components/es/components/Calendar/ui/CalendarYears/CalendarYears.js +3 -0
  278. package/styled-components/es/components/Checkbox/Checkbox.js +2 -1
  279. package/styled-components/es/components/Combobox/ComboboxNew/Combobox.js +2 -1
  280. package/styled-components/es/components/Combobox/ComboboxNew/FloatingPopover.js +1 -1
  281. package/styled-components/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
  282. package/styled-components/es/components/Combobox/ComboboxOld/Combobox.js +2 -1
  283. package/styled-components/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +1 -1
  284. package/styled-components/es/components/Drawer/Drawer.js +3 -3
  285. package/styled-components/es/components/Drawer/hooks/useDrawer.js +2 -2
  286. package/styled-components/es/components/Dropdown/Dropdown.js +1 -1
  287. package/styled-components/es/components/Dropdown/FloatingPopover.js +1 -1
  288. package/styled-components/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +1 -1
  289. package/styled-components/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +1 -2
  290. package/styled-components/es/components/Dropdown/ui/DropdownOld/DropdownOld.js +1 -1
  291. package/styled-components/es/components/Mask/Mask.js +4 -4
  292. package/styled-components/es/components/Modal/Modal.js +4 -3
  293. package/styled-components/es/components/Modal/hooks/useModal.js +1 -1
  294. package/styled-components/es/components/Popup/Popup.js +2 -2
  295. package/styled-components/es/components/Popup/PopupContext.js +14 -29
  296. package/styled-components/es/components/Radiobox/Radiobox.js +2 -2
  297. package/styled-components/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +1 -2
  298. package/styled-components/es/components/Segment/ui/SegmentItem/SegmentItem.js +1 -2
  299. package/styled-components/es/components/Select/FloatingPopover.js +1 -1
  300. package/styled-components/es/components/Select/Select.js +1 -2
  301. package/styled-components/es/components/Select/ui/Inner/Inner.js +1 -2
  302. package/styled-components/es/components/Spinner/Spinner.js +1 -1
  303. package/styled-components/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +1 -2
  304. package/styled-components/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +1 -2
  305. package/styled-components/es/components/TextArea/ui/Hint/Hint.js +1 -1
  306. package/styled-components/es/components/TextField/TextField.js +2 -2
  307. package/styled-components/es/components/TextField/ui/Hint/Hint.js +1 -1
  308. package/types/components/Calendar/CalendarBase/CalendarBase.d.ts.map +1 -1
  309. package/types/components/Calendar/CalendarDouble/CalendarDouble.d.ts.map +1 -1
  310. package/types/components/Calendar/ui/CalendarDays/CalendarDays.d.ts.map +1 -1
  311. package/types/components/Calendar/ui/CalendarMonths/CalendarMonths.d.ts.map +1 -1
  312. package/types/components/Calendar/ui/CalendarQuarters/CalendarQuarters.d.ts.map +1 -1
  313. package/types/components/Calendar/ui/CalendarYears/CalendarYears.d.ts.map +1 -1
  314. package/types/components/Checkbox/Checkbox.d.ts.map +1 -1
  315. package/types/components/Combobox/ComboboxNew/Combobox.d.ts.map +1 -1
  316. package/types/components/Combobox/ComboboxOld/Combobox.d.ts.map +1 -1
  317. package/types/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.d.ts.map +1 -1
  318. package/types/components/Drawer/Drawer.d.ts +1 -1
  319. package/types/components/Drawer/Drawer.d.ts.map +1 -1
  320. package/types/components/Drawer/hooks/useDrawer.d.ts.map +1 -1
  321. package/types/components/Dropdown/Dropdown.d.ts.map +1 -1
  322. package/types/components/Dropdown/ui/DropdownDivider/DropdownDivider.d.ts +1 -1
  323. package/types/components/Dropdown/ui/DropdownDivider/DropdownDivider.d.ts.map +1 -1
  324. package/types/components/Dropdown/ui/DropdownFooter/DropdownFooter.d.ts +1 -1
  325. package/types/components/Dropdown/ui/DropdownFooter/DropdownFooter.d.ts.map +1 -1
  326. package/types/components/Dropdown/ui/DropdownGroup/DropdownGroup.d.ts +1 -1
  327. package/types/components/Dropdown/ui/DropdownGroup/DropdownGroup.d.ts.map +1 -1
  328. package/types/components/Dropdown/ui/DropdownHeader/DropdownHeader.d.ts +1 -1
  329. package/types/components/Dropdown/ui/DropdownHeader/DropdownHeader.d.ts.map +1 -1
  330. package/types/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.d.ts +1 -1
  331. package/types/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.d.ts.map +1 -1
  332. package/types/components/Dropdown/ui/DropdownOld/DropdownOld.d.ts +1 -1
  333. package/types/components/Dropdown/ui/DropdownOld/DropdownOld.d.ts.map +1 -1
  334. package/types/components/Modal/Modal.d.ts +1 -1
  335. package/types/components/Modal/Modal.d.ts.map +1 -1
  336. package/types/components/Popup/Popup.d.ts +1 -1
  337. package/types/components/Popup/Popup.d.ts.map +1 -1
  338. package/types/components/Popup/Popup.types.d.ts +1 -1
  339. package/types/components/Popup/Popup.types.d.ts.map +1 -1
  340. package/types/components/Popup/PopupContext.d.ts.map +1 -1
  341. package/types/components/Radiobox/Radiobox.d.ts +2 -2
  342. package/types/components/Radiobox/Radiobox.d.ts.map +1 -1
  343. package/types/components/Segment/ui/SegmentGroup/SegmentGroup.d.ts +1 -1
  344. package/types/components/Segment/ui/SegmentGroup/SegmentGroup.d.ts.map +1 -1
  345. package/types/components/Segment/ui/SegmentItem/SegmentItem.d.ts +1 -1
  346. package/types/components/Segment/ui/SegmentItem/SegmentItem.d.ts.map +1 -1
  347. package/types/components/Select/Select.d.ts.map +1 -1
  348. package/types/components/Select/ui/Inner/Inner.d.ts.map +1 -1
  349. package/types/components/Spinner/Spinner.d.ts +1 -1
  350. package/types/components/Spinner/Spinner.d.ts.map +1 -1
  351. package/types/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.d.ts +1 -1
  352. package/types/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.d.ts.map +1 -1
  353. package/types/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.d.ts +1 -1
  354. package/types/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.d.ts.map +1 -1
  355. package/types/components/TextField/TextField.d.ts +1 -1
  356. package/types/components/TextField/TextField.d.ts.map +1 -1
@@ -54,12 +54,13 @@ function _object_without_properties_loose(source, excluded) {
54
54
  return target;
55
55
  }
56
56
  import React, { forwardRef, useCallback, useMemo } from "react";
57
- import { useForkRef, safeUseId } from "@salutejs/plasma-core";
57
+ import { useForkRef } from "@salutejs/plasma-core";
58
+ import { safeUseId } from "../../utils";
58
59
  import { component } from "../../engines";
60
+ import { useFocusTrap } from "../../hooks";
59
61
  import { popupConfig, usePopupContext } from "../Popup";
60
62
  import { Overlay } from "../Overlay";
61
63
  import { DEFAULT_Z_INDEX } from "../Popup/utils";
62
- import { useFocusTrap } from "../../hooks";
63
64
  import { IconClose } from "../_Icon/Icons/IconClose";
64
65
  import { classes, tokens } from "./Modal.tokens";
65
66
  import { useModal } from "./hooks";
@@ -110,7 +111,7 @@ var Popup = component(popupConfig);
110
111
  popupInfo: popupInfo
111
112
  }).modalInfo;
112
113
  var transparent = useMemo(function() {
113
- return getIdLastModal(popupController.items) !== innerId;
114
+ return getIdLastModal(Array.from(popupController.items.values())) !== innerId;
114
115
  }, [
115
116
  innerId,
116
117
  popupController.items
@@ -38,7 +38,7 @@ export var useModal = function(param) {
38
38
  if (!closeOnEsc) {
39
39
  return;
40
40
  }
41
- if (event.keyCode === ESCAPE_KEYCODE && getIdLastModal(popupController.items) === id) {
41
+ if (event.keyCode === ESCAPE_KEYCODE && getIdLastModal(Array.from(popupController.items.values())) === id) {
42
42
  if (onEscKeyDown) {
43
43
  onEscKeyDown(event);
44
44
  return;
@@ -100,8 +100,8 @@ function _unsupported_iterable_to_array(o, minLen) {
100
100
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
101
101
  }
102
102
  import React, { forwardRef, useRef } from "react";
103
- import { useForkRef, safeUseId } from "@salutejs/plasma-core";
104
- import { canUseDOM, cx } from "../../utils";
103
+ import { useForkRef } from "@salutejs/plasma-core";
104
+ import { canUseDOM, cx, safeUseId } from "../../utils";
105
105
  import { Portal } from "../Portal";
106
106
  import { PopupRoot } from "./PopupRoot";
107
107
  import { usePopup } from "./hooks";
@@ -6,12 +6,6 @@ function _array_like_to_array(arr, len) {
6
6
  function _array_with_holes(arr) {
7
7
  if (Array.isArray(arr)) return arr;
8
8
  }
9
- function _array_without_holes(arr) {
10
- if (Array.isArray(arr)) return _array_like_to_array(arr);
11
- }
12
- function _iterable_to_array(iter) {
13
- if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
14
- }
15
9
  function _iterable_to_array_limit(arr, i) {
16
10
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
17
11
  if (_i == null) return;
@@ -39,15 +33,9 @@ function _iterable_to_array_limit(arr, i) {
39
33
  function _non_iterable_rest() {
40
34
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
41
35
  }
42
- function _non_iterable_spread() {
43
- throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
44
- }
45
36
  function _sliced_to_array(arr, i) {
46
37
  return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
47
38
  }
48
- function _to_consumable_array(arr) {
49
- return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
50
- }
51
39
  function _unsupported_iterable_to_array(o, minLen) {
52
40
  if (!o) return;
53
41
  if (typeof o === "string") return _array_like_to_array(o, minLen);
@@ -57,15 +45,15 @@ function _unsupported_iterable_to_array(o, minLen) {
57
45
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
58
46
  }
59
47
  import React, { createContext, useState, useContext, useRef } from "react";
48
+ import { canUseDOM, safeUseId } from "../../utils";
60
49
  import { Portal } from "../Portal";
61
50
  import { hasModals } from "../Modal/ModalContext";
62
- import { canUseDOM, safeUseId } from "../../utils";
63
51
  import { ClientOnlyPortal } from "./ClientOnlyPortal";
64
52
  import { StyledPortal } from "./Popup.styles";
65
53
  export var POPUP_PORTAL_ID = 'plasma-popup-root';
66
- var items = [];
54
+ var initialItems = new Map();
67
55
  var PopupContext = /*#__PURE__*/ createContext({
68
- items: items,
56
+ items: initialItems,
69
57
  rootId: POPUP_PORTAL_ID,
70
58
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
71
59
  register: function register(_info) {
@@ -83,7 +71,7 @@ export var usePopupContext = function() {
83
71
  export var PopupProvider = function(param) {
84
72
  var children = param.children, UNSAFE_SSR_ENABLED = param.UNSAFE_SSR_ENABLED;
85
73
  var prevBodyOverflowY = useRef(canUseDOM ? document.body.style.overflowY : '');
86
- var _useState = _sliced_to_array(useState([]), 2), items = _useState[0], setItems = _useState[1];
74
+ var _useState = _sliced_to_array(useState(initialItems), 2), items = _useState[0], setItems = _useState[1];
87
75
  var uuid = safeUseId();
88
76
  var rootId = "".concat(POPUP_PORTAL_ID, "-").concat(uuid);
89
77
  var register = function(info) {
@@ -92,13 +80,13 @@ export var PopupProvider = function(param) {
92
80
  }
93
81
  setItems(function(prevItems) {
94
82
  var _info_info;
95
- if (((_info_info = info.info) === null || _info_info === void 0 ? void 0 : _info_info.isModal) && !hasModals(prevItems)) {
83
+ var newItems = new Map(prevItems);
84
+ if (((_info_info = info.info) === null || _info_info === void 0 ? void 0 : _info_info.isModal) && !hasModals(Array.from(prevItems.values()))) {
96
85
  prevBodyOverflowY.current = document.body.style.overflowY;
97
86
  document.body.style.overflowY = 'hidden';
98
87
  }
99
- return _to_consumable_array(prevItems).concat([
100
- info
101
- ]);
88
+ newItems.set(info.id, info);
89
+ return newItems;
102
90
  });
103
91
  };
104
92
  var unregister = function(id) {
@@ -106,19 +94,16 @@ export var PopupProvider = function(param) {
106
94
  return;
107
95
  }
108
96
  setItems(function(prevItems) {
109
- var index = prevItems.findIndex(function(item) {
110
- return id === item.id;
111
- });
112
- if (index === -1) {
97
+ if (!prevItems.has(id)) {
113
98
  return prevItems;
114
99
  }
115
- var prevHasModals = hasModals(prevItems);
116
- prevItems.splice(index, 1);
117
- if (prevHasModals && !hasModals(prevItems)) {
100
+ var newItems = new Map(prevItems);
101
+ var prevHasModals = hasModals(Array.from(newItems.values()));
102
+ newItems.delete(id);
103
+ if (prevHasModals && !hasModals(Array.from(newItems.values()))) {
118
104
  document.body.style.overflowY = prevBodyOverflowY.current;
119
105
  }
120
- // при return prevItems не обновится контекст
121
- return _to_consumable_array(prevItems);
106
+ return newItems;
122
107
  });
123
108
  };
124
109
  var context = {
@@ -78,9 +78,9 @@ function _object_without_properties_loose(source, excluded) {
78
78
  return target;
79
79
  }
80
80
  import React, { forwardRef, useMemo } from "react";
81
- import { safeUseId, extractTextFrom } from "@salutejs/plasma-core";
81
+ import { extractTextFrom } from "@salutejs/plasma-core";
82
+ import { safeUseId, cx } from "../../utils";
82
83
  import { StyledContentWrapper, StyledDescription, StyledInput, StyledLabel, StyledContent, StyledTrigger, StyledTriggerWrapper } from "../Checkbox/Checkbox.styles";
83
- import { cx } from "../../utils";
84
84
  import { base as viewCSS } from "./variations/_view/base";
85
85
  import { base as sizeCSS } from "./variations/_size/base";
86
86
  import { base as disabledCSS } from "./variations/_disabled/base";
@@ -100,10 +100,9 @@ function _unsupported_iterable_to_array(o, minLen) {
100
100
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
101
101
  }
102
102
  import React, { forwardRef, useCallback, useMemo, useState, useEffect, useRef } from "react";
103
- import { safeUseId } from "@salutejs/plasma-core";
103
+ import { safeUseId, cx } from "../../../../utils";
104
104
  import { IconDisclosureLeftWithOffset, IconDisclosureRightWithOffset, IconDisclosureDownWithOffset, IconDisclosureUpWithOffset } from "../../../_Icon";
105
105
  import { classes, tokens } from "../../tokens";
106
- import { cx } from "../../../../utils";
107
106
  import { useSegmentInner } from "../../SegmentProvider/SegmentProvider";
108
107
  import { base as sizeCSS } from "./variations/_size/base";
109
108
  import { base as viewCSS } from "./variations/_view/base";
@@ -54,8 +54,7 @@ function _object_without_properties_loose(source, excluded) {
54
54
  return target;
55
55
  }
56
56
  import React, { forwardRef, useMemo } from "react";
57
- import { safeUseId } from "@salutejs/plasma-core";
58
- import { cx, extractTextFrom } from "../../../../utils";
57
+ import { cx, safeUseId, extractTextFrom } from "../../../../utils";
59
58
  import { classes } from "../../tokens";
60
59
  import { useSegmentInner } from "../../SegmentProvider/SegmentProvider";
61
60
  import { base as sizeCSS } from "./variations/_size/base";
@@ -52,7 +52,7 @@ function _object_spread_props(target, source) {
52
52
  }
53
53
  import { flip, shift, size, useFloating, FloatingPortal, offset as offsetMiddleware, autoUpdate } from "@floating-ui/react";
54
54
  import React, { forwardRef } from "react";
55
- import { safeUseId } from "@salutejs/plasma-core";
55
+ import { safeUseId } from "../../utils";
56
56
  import { getPlacement, getFallbackPlacements } from "./utils";
57
57
  // TODO: #2003
58
58
  var LIST_PADDING = 2;
@@ -104,8 +104,7 @@ function _unsupported_iterable_to_array(o, minLen) {
104
104
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
105
105
  }
106
106
  import React, { forwardRef, useState, useReducer, useMemo, useLayoutEffect, useRef } from "react";
107
- import { safeUseId } from "@salutejs/plasma-core";
108
- import { isEmpty } from "../../utils";
107
+ import { isEmpty, safeUseId } from "../../utils";
109
108
  import { useOutsideClick } from "../../hooks";
110
109
  import { useKeyNavigation, getItemByFocused } from "./hooks/useKeyboardNavigation";
111
110
  import { initialItemsTransform, updateAncestors, updateDescendants, updateSingleAncestors, getView } from "./utils";
@@ -1,6 +1,5 @@
1
1
  import React from "react";
2
- import { safeUseId } from "@salutejs/plasma-core";
3
- import { isEmpty } from "../../../../utils";
2
+ import { isEmpty, safeUseId } from "../../../../utils";
4
3
  import { Ul, ListWrapper } from "../../Select.styles";
5
4
  import { FloatingPopover } from "../../FloatingPopover";
6
5
  import { Item } from "./ui/Item/Item";
@@ -54,7 +54,7 @@ function _object_without_properties_loose(source, excluded) {
54
54
  return target;
55
55
  }
56
56
  import React, { forwardRef } from "react";
57
- import { safeUseId } from "@salutejs/plasma-core";
57
+ import { safeUseId } from "../../utils";
58
58
  import { base as viewCSS } from "./variations/_view/base";
59
59
  import { base as sizeCSS } from "./variations/_size/base";
60
60
  import { SpinnerSvg } from "./SpinnerSvg";
@@ -100,10 +100,9 @@ function _unsupported_iterable_to_array(o, minLen) {
100
100
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
101
101
  }
102
102
  import React, { forwardRef, useCallback, useMemo, useState, useRef, useLayoutEffect } from "react";
103
- import { safeUseId } from "@salutejs/plasma-core";
103
+ import { cx, safeUseId } from "../../../../../utils";
104
104
  import { IconDisclosureLeft, IconDisclosureRight } from "../../../../_Icon";
105
105
  import { classes } from "../../../tokens";
106
- import { cx } from "../../../../../utils";
107
106
  import { TabItemRefs, TabsContext } from "../../../TabsContext";
108
107
  import { getFirstOverflowingTab, getLastOverflowingTab } from "../../../utils";
109
108
  import { base as sizeCSS } from "./variations/_size/base";
@@ -100,9 +100,8 @@ function _unsupported_iterable_to_array(o, minLen) {
100
100
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
101
101
  }
102
102
  import React, { forwardRef, useCallback, useMemo, useState, useLayoutEffect, useRef } from "react";
103
- import { safeUseId } from "@salutejs/plasma-core";
103
+ import { cx, safeUseId } from "../../../../../utils";
104
104
  import { classes } from "../../../tokens";
105
- import { cx } from "../../../../../utils";
106
105
  import { TabItemRefs, TabsContext } from "../../../TabsContext";
107
106
  import { IconDisclosureLeft, IconDisclosureRight } from "../../../../_Icon";
108
107
  import { getFirstOverflowingTab, getLastOverflowingTab } from "../../../utils";
@@ -27,9 +27,9 @@ function _object_spread(target) {
27
27
  return target;
28
28
  }
29
29
  import React, { forwardRef } from "react";
30
+ import { safeUseId } from "../../../../utils";
30
31
  import { Hint, HintIconWrapper, HintTargetWrapper } from "../../TextArea.styles";
31
32
  import { IconInfoCircleOutline } from "../../../_Icon";
32
- import { safeUseId } from "../../../../utils";
33
33
  import { tokens } from "../../TextArea.tokens";
34
34
  export var HintComponent = /*#__PURE__*/ forwardRef(function(param, ref) {
35
35
  var hintText = param.hintText, isHintVisible = param.isHintVisible, hintTrigger = param.hintTrigger, hintTargetIcon = param.hintTargetIcon, hintPlacement = param.hintPlacement, hintHasArrow = param.hintHasArrow, hintOffset = param.hintOffset, hintWidth = param.hintWidth, hintContentLeft = param.hintContentLeft, isInnerLabel = param.isInnerLabel, size = param.size, handleHintShow = param.handleHintShow, handleHintHide = param.handleHintHide, handleHintClick = param.handleHintClick;
@@ -100,9 +100,9 @@ function _unsupported_iterable_to_array(o, minLen) {
100
100
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
101
101
  }
102
102
  import React, { forwardRef, useEffect, useRef, useState } from "react";
103
- import { safeUseId, useForkRef } from "@salutejs/plasma-core";
103
+ import { useForkRef } from "@salutejs/plasma-core";
104
104
  import { css } from "@emotion/react";
105
- import { cx } from "../../utils";
105
+ import { cx, safeUseId } from "../../utils";
106
106
  import { useOutsideClick } from "../../hooks";
107
107
  import { base as sizeCSS } from "./variations/_size/base";
108
108
  import { base as viewCSS } from "./variations/_view/base";
@@ -120,7 +120,7 @@ import { useKeyNavigation } from "./hooks";
120
120
  import { HintComponent } from "./ui/Hint/Hint";
121
121
  import { getInputWidth } from "./getInputWidth";
122
122
  var optionalText = 'optional';
123
- export var base = /*#__PURE__*/ css("display:block;", "base", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjLWVtb3Rpb24vY29tcG9uZW50cy9UZXh0RmllbGQvVGV4dEZpZWxkLnRzeCIsInNvdXJjZXMiOlsic3JjLWVtb3Rpb24vY29tcG9uZW50cy9UZXh0RmllbGQvVGV4dEZpZWxkLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgZm9yd2FyZFJlZiwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHR5cGUgeyBGb3JtRXZlbnRIYW5kbGVyLCBDaGFuZ2VFdmVudEhhbmRsZXIsIEtleWJvYXJkRXZlbnQsIENoYW5nZUV2ZW50LCBNb3VzZUV2ZW50SGFuZGxlciB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHNhZmVVc2VJZCwgdXNlRm9ya1JlZiB9IGZyb20gJ0BzYWx1dGVqcy9wbGFzbWEtY29yZSc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbmltcG9ydCB0eXBlIHsgUm9vdFByb3BzIH0gZnJvbSAnLi4vLi4vZW5naW5lcyc7XG5pbXBvcnQgeyBjeCB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IHVzZU91dHNpZGVDbGljayB9IGZyb20gJy4uLy4uL2hvb2tzJztcblxuaW1wb3J0IHR5cGUgeyBDaGlwVmFsdWVzLCBUZXh0RmllbGRQcmltaXRpdmVWYWx1ZSwgVGV4dEZpZWxkUHJvcHMsIFRleHRGaWVsZFJvb3RQcm9wcyB9IGZyb20gJy4vVGV4dEZpZWxkLnR5cGVzJztcbmltcG9ydCB7IGJhc2UgYXMgc2l6ZUNTUyB9IGZyb20gJy4vdmFyaWF0aW9ucy9fc2l6ZS9iYXNlJztcbmltcG9ydCB7IGJhc2UgYXMgdmlld0NTUyB9IGZyb20gJy4vdmFyaWF0aW9ucy9fdmlldy9iYXNlJztcbmltcG9ydCB7IGJhc2UgYXMgY2xlYXJDU1MgfSBmcm9tICcuL3ZhcmlhdGlvbnMvX2NsZWFyL2Jhc2UnO1xuaW1wb3J0IHsgYmFzZSBhcyBkaXNhYmxlZENTUyB9IGZyb20gJy4vdmFyaWF0aW9ucy9fZGlzYWJsZWQvYmFzZSc7XG5pbXBvcnQgeyBiYXNlIGFzIHJlYWRPbmx5Q1NTIH0gZnJvbSAnLi92YXJpYXRpb25zL19yZWFkLW9ubHkvYmFzZSc7XG5pbXBvcnQgeyBiYXNlIGFzIGxhYmVsUGxhY2VtZW50Q1NTIH0gZnJvbSAnLi92YXJpYXRpb25zL19sYWJlbC1wbGFjZW1lbnQvYmFzZSc7XG5pbXBvcnQgeyBiYXNlIGFzIGhpbnRWaWV3Q1NTIH0gZnJvbSAnLi92YXJpYXRpb25zL19oaW50LXZpZXcvYmFzZSc7XG5pbXBvcnQgeyBiYXNlIGFzIGhpbnRTaXplQ1NTIH0gZnJvbSAnLi92YXJpYXRpb25zL19oaW50LXNpemUvYmFzZSc7XG5pbXBvcnQgeyBiYXNlIGFzIGNoaXBWaWV3Q1NTIH0gZnJvbSAnLi92YXJpYXRpb25zL19jaGlwLXZpZXcvYmFzZSc7XG5pbXBvcnQge1xuICAgIElucHV0LFxuICAgIElucHV0Q29udGFpbmVyLFxuICAgIExlZnRIZWxwZXIsXG4gICAgTGFiZWwsXG4gICAgSW5wdXRXcmFwcGVyLFxuICAgIElucHV0TGFiZWxXcmFwcGVyLFxuICAgIFN0eWxlZENvbnRlbnRMZWZ0LFxuICAgIFN0eWxlZENvbnRlbnRSaWdodCxcbiAgICBTdHlsZWRDaGlwcyxcbiAgICBTdHlsZWRUZXh0QmVmb3JlLFxuICAgIFN0eWxlZFRleHRBZnRlcixcbiAgICBTdHlsZWRJbmRpY2F0b3IsXG4gICAgU3R5bGVkT3B0aW9uYWxUZXh0LFxuICAgIElucHV0UGxhY2Vob2xkZXIsXG4gICAgT3V0ZXJMYWJlbFdyYXBwZXIsXG4gICAgVGl0bGVDYXB0aW9uLFxuICAgIFN0eWxlZEhpbnRXcmFwcGVyLFxuICAgIFN0eWxlZEluZGljYXRvcldyYXBwZXIsXG4gICAgU3R5bGVkQ29udGVudFJpZ2h0V3JhcHBlcixcbn0gZnJvbSAnLi9UZXh0RmllbGQuc3R5bGVzJztcbmltcG9ydCB7IGNsYXNzZXMgfSBmcm9tICcuL1RleHRGaWVsZC50b2tlbnMnO1xuaW1wb3J0IHsgVGV4dEZpZWxkQ2hpcCB9IGZyb20gJy4vdWknO1xuaW1wb3J0IHsgdXNlS2V5TmF2aWdhdGlvbiB9IGZyb20gJy4vaG9va3MnO1xuaW1wb3J0IHsgSGludENvbXBvbmVudCB9IGZyb20gJy4vdWkvSGludC9IaW50JztcbmltcG9ydCB7IGdldElucHV0V2lkdGggfSBmcm9tICcuL2dldElucHV0V2lkdGgnO1xuXG5jb25zdCBvcHRpb25hbFRleHQgPSAnb3B0aW9uYWwnO1xuXG5leHBvcnQgY29uc3QgYmFzZSA9IGNzc2BcbiAgICAvKiBOT1RFOiBXZWJraXQg0L3QtSDQv9GA0LjQvNC10L3Rj9C10YIgb3BhY2l0eSDQuiBpbmxpbmUg0YLQtdCz0LDQvCAqL1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuYDtcblxuY29uc3QgSElOVF9ERUZBVUxUX09GRlNFVDogW251bWJlciwgbnVtYmVyXSA9IFswLCAwXTtcblxuZXhwb3J0IGNvbnN0IHRleHRGaWVsZFJvb3QgPSAoUm9vdDogUm9vdFByb3BzPEhUTUxEaXZFbGVtZW50LCBUZXh0RmllbGRSb290UHJvcHM+KSA9PlxuICAgIGZvcndhcmRSZWY8SFRNTElucHV0RWxlbWVudCwgVGV4dEZpZWxkUHJvcHM+KFxuICAgICAgICAoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICAgICAgICAgIHN0eWxlLFxuXG4gICAgICAgICAgICAgICAgLy8gbGF5b3V0XG4gICAgICAgICAgICAgICAgY29udGVudExlZnQsXG4gICAgICAgICAgICAgICAgY29udGVudFJpZ2h0LFxuICAgICAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgICAgIGxhYmVsUGxhY2VtZW50LFxuICAgICAgICAgICAgICAgIGtlZXBQbGFjZWhvbGRlcixcbiAgICAgICAgICAgICAgICB0ZXh0QmVmb3JlLFxuICAgICAgICAgICAgICAgIHRleHRBZnRlcixcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcixcbiAgICAgICAgICAgICAgICBsZWZ0SGVscGVyLFxuICAgICAgICAgICAgICAgIGVudW1lcmF0aW9uVHlwZSA9ICdwbGFpbicsXG4gICAgICAgICAgICAgICAgcmVxdWlyZWRQbGFjZW1lbnQgPSAncmlnaHQnLFxuICAgICAgICAgICAgICAgIGhhc1JlcXVpcmVkSW5kaWNhdG9yID0gdHJ1ZSxcbiAgICAgICAgICAgICAgICB0aXRsZUNhcHRpb24sXG4gICAgICAgICAgICAgICAgY2hpcFZpZXcgPSAnZGVmYXVsdCcsXG4gICAgICAgICAgICAgICAgY2hpcFZhbGlkYXRvcixcblxuICAgICAgICAgICAgICAgIC8vIGhpbnRcbiAgICAgICAgICAgICAgICBoaW50VHJpZ2dlciA9ICdob3ZlcicsXG4gICAgICAgICAgICAgICAgaGludFRleHQsXG4gICAgICAgICAgICAgICAgaGludFZpZXcgPSAnZGVmYXVsdCcsXG4gICAgICAgICAgICAgICAgaGludFNpemUgPSAnbScsXG4gICAgICAgICAgICAgICAgaGludFRhcmdldEljb24sXG4gICAgICAgICAgICAgICAgaGludFRhcmdldFBsYWNlbWVudCA9ICdvdXRlcicsXG4gICAgICAgICAgICAgICAgaGludFBsYWNlbWVudCA9ICdhdXRvJyxcbiAgICAgICAgICAgICAgICBoaW50SGFzQXJyb3csXG4gICAgICAgICAgICAgICAgaGludE9mZnNldCA9IEhJTlRfREVGQVVMVF9PRkZTRVQsXG4gICAgICAgICAgICAgICAgaGludFdpZHRoLFxuICAgICAgICAgICAgICAgIGhpbnRDb250ZW50TGVmdCxcblxuICAgICAgICAgICAgICAgIC8vIHZhcmlhdGlvbnNcbiAgICAgICAgICAgICAgICB2aWV3LFxuICAgICAgICAgICAgICAgIHNpemUsXG4gICAgICAgICAgICAgICAgcmVhZE9ubHkgPSBmYWxzZSxcbiAgICAgICAgICAgICAgICBkaXNhYmxlZCA9IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlcXVpcmVkID0gZmFsc2UsXG4gICAgICAgICAgICAgICAgY2xlYXIgPSBmYWxzZSxcbiAgICAgICAgICAgICAgICBvcHRpb25hbCxcbiAgICAgICAgICAgICAgICBoYXNEaXZpZGVyLFxuXG4gICAgICAgICAgICAgICAgLy8gY29udHJvbGxlZFxuICAgICAgICAgICAgICAgIHZhbHVlOiBvdXRlclZhbHVlLFxuICAgICAgICAgICAgICAgIGNoaXBzOiB2YWx1ZXMsXG4gICAgICAgICAgICAgICAgY2hpcFR5cGUgPSAnZGVmYXVsdCcsXG5cbiAgICAgICAgICAgICAgICAvLyBldmVudHNcbiAgICAgICAgICAgICAgICBvbkNoYW5nZSxcbiAgICAgICAgICAgICAgICBvbkNoYW5nZUNoaXBzLFxuICAgICAgICAgICAgICAgIG9uU2VhcmNoLFxuICAgICAgICAgICAgICAgIG9uS2V5RG93bixcbiAgICAgICAgICAgICAgICBvbkZvY3VzLFxuICAgICAgICAgICAgICAgIG9uQmx1cixcblxuICAgICAgICAgICAgICAgIC8vINCf0YDQvtC/0YHRiyDQtNC70Y8g0LLQvdGD0YLRgNC10L3QvdC10LPQviDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjRjywg0L3QtSDQvtGC0LTQsNC10YLRgdGPINC90LDRgNGD0LbRgy5cbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgX29uRW50ZXJEaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgX2ZvcmNlQ2hpcE1hbmlwdWxhdGlvbldpdGhSZWFkb25seSxcblxuICAgICAgICAgICAgICAgIC4uLnJlc3RcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZWYsXG4gICAgICAgICkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29udGVudFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgICAgICAgICBjb25zdCBpbnB1dENvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgICAgICAgICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgICAgICAgICAgIGNvbnN0IGlucHV0Rm9ya1JlZiA9IHVzZUZvcmtSZWYoaW5wdXRSZWYsIHJlZik7XG4gICAgICAgICAgICBjb25zdCBjaGlwc1JlZnMgPSB1c2VSZWY8QXJyYXk8SFRNTEJ1dHRvbkVsZW1lbnQ+PihbXSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGNvbnRyb2xsZWRSZWZzID0geyBjb250ZW50UmVmLCBpbnB1dFJlZiwgY2hpcHNSZWZzIH07XG5cbiAgICAgICAgICAgIGNvbnN0IFtoYXNWYWx1ZSwgc2V0SGFzVmFsdWVdID0gdXNlU3RhdGUoXG4gICAgICAgICAgICAgICAgQm9vbGVhbihvdXRlclZhbHVlKSB8fCBCb29sZWFuKGlucHV0UmVmPy5jdXJyZW50Py52YWx1ZSkgfHwgQm9vbGVhbihyZXN0Py5kZWZhdWx0VmFsdWUpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IFtoYXNGb2N1cywgc2V0SGFzRm9jdXNdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gICAgICAgICAgICBjb25zdCBbY2hpcHMsIHNldENoaXBzXSA9IHVzZVN0YXRlPEFycmF5PENoaXBWYWx1ZXM+PihbXSk7XG4gICAgICAgICAgICBjb25zdCBbaXNIaW50VmlzaWJsZSwgc2V0SXNIaW50VmlzaWJsZV0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgICAgICAgICAgIGNvbnN0IHVuaXFJZCA9IHNhZmVVc2VJZCgpO1xuICAgICAgICAgICAgY29uc3QgaW5uZXJJZCA9IGlkIHx8IHVuaXFJZDtcbiAgICAgICAgICAgIGNvbnN0IGxhYmVsSWQgPSBzYWZlVXNlSWQoKTtcbiAgICAgICAgICAgIGNvbnN0IGhlbHBlclRleHRJZCA9IHNhZmVVc2VJZCgpO1xuXG4gICAgICAgICAgICBjb25zdCBpc0RlZmF1bHRWaWV3ID0gdmlldyA9PT0gJ2RlZmF1bHQnIHx8IHJlYWRPbmx5IHx8IGRpc2FibGVkO1xuXG4gICAgICAgICAgICBjb25zdCBpc0NoaXBFbnVtZXJhdGlvbiA9IGVudW1lcmF0aW9uVHlwZSA9PT0gJ2NoaXAnO1xuICAgICAgICAgICAgY29uc3QgaXNDaGlwc1Zpc2libGUgPSBpc0NoaXBFbnVtZXJhdGlvbiAmJiBCb29sZWFuKGNoaXBzPy5sZW5ndGgpO1xuICAgICAgICAgICAgY29uc3Qgd2l0aEhhc0NoaXBzID0gaXNDaGlwc1Zpc2libGUgPyBjbGFzc2VzLmhhc0NoaXBzIDogdW5kZWZpbmVkO1xuXG4gICAgICAgICAgICBjb25zdCBoYXNMYWJlbFZhbHVlID0gQm9vbGVhbihsYWJlbCk7XG4gICAgICAgICAgICBjb25zdCBoYXNJbm5lckxhYmVsID0gc2l6ZSAhPT0gJ3hzJyAmJiBsYWJlbFBsYWNlbWVudCA9PT0gJ2lubmVyJyAmJiAhaXNDaGlwc1Zpc2libGUgJiYgaGFzTGFiZWxWYWx1ZTtcbiAgICAgICAgICAgIGNvbnN0IGhhc091dGVyTGFiZWwgPSBsYWJlbFBsYWNlbWVudCA9PT0gJ291dGVyJyAmJiBoYXNMYWJlbFZhbHVlO1xuICAgICAgICAgICAgY29uc3QgaW5uZXJLZWVwUGxhY2Vob2xkZXIgPSBrZWVwUGxhY2Vob2xkZXIgJiYgbGFiZWxQbGFjZW1lbnQgPT09ICdpbm5lcic7XG4gICAgICAgICAgICBjb25zdCBoYXNQbGFjZWhvbGRlciA9IEJvb2xlYW4ocGxhY2Vob2xkZXIpICYmIChpbm5lcktlZXBQbGFjZWhvbGRlciB8fCAhaGFzSW5uZXJMYWJlbCk7XG4gICAgICAgICAgICBsZXQgaGFzVGV4dEFmdGVyID0gQm9vbGVhbih0ZXh0QWZ0ZXIpO1xuICAgICAgICAgICAgbGV0IGhhc1RleHRCZWZvcmUgPSB0ZXh0QmVmb3JlICYmICFpc0NoaXBFbnVtZXJhdGlvbjtcbiAgICAgICAgICAgIGlmIChsYWJlbFBsYWNlbWVudCA9PT0gJ2lubmVyJykge1xuICAgICAgICAgICAgICAgIGlmICghaGFzVmFsdWUgJiYgIWhhc1BsYWNlaG9sZGVyICYmICFoYXNGb2N1cykge1xuICAgICAgICAgICAgICAgICAgICBoYXNUZXh0QWZ0ZXIgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgaGFzVGV4dEJlZm9yZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgaGFzUGxhY2Vob2xkZXJQYWRkaW5nID0gaGFzSW5uZXJMYWJlbCAmJiBrZWVwUGxhY2Vob2xkZXIgJiYgc2l6ZSAhPT0gJ3hzJztcblxuICAgICAgICAgICAgY29uc3QgaW5uZXJMYWJlbFZhbHVlID0gaGFzSW5uZXJMYWJlbCB8fCBoYXNPdXRlckxhYmVsID8gbGFiZWwgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBpbm5lckxhYmVsUGxhY2VtZW50VmFsdWUgPSBsYWJlbFBsYWNlbWVudCA9PT0gJ2lubmVyJyAmJiAhaGFzSW5uZXJMYWJlbCA/IHVuZGVmaW5lZCA6IGxhYmVsUGxhY2VtZW50O1xuXG4gICAgICAgICAgICBjb25zdCBpbm5lclBsYWNlaG9sZGVyVmFsdWUgPSBoYXNQbGFjZWhvbGRlciA/IHBsYWNlaG9sZGVyIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgcGxhY2Vob2xkZXJTaG93biA9IEJvb2xlYW4oaW5uZXJQbGFjZWhvbGRlclZhbHVlKSAmJiAhaGFzVmFsdWU7XG5cbiAgICAgICAgICAgIGNvbnN0IGNsZWFyQ2xhc3MgPSBjbGVhciA/IGNsYXNzZXMuY2xlYXIgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBoYXNEaXZpZGVyQ2xhc3MgPSBoYXNEaXZpZGVyID8gY2xhc3Nlcy5oYXNEaXZpZGVyIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgaGFzSW5uZXJIaW50Q2xhc3MgPSBoaW50VGV4dCAmJiBoaW50VGFyZ2V0UGxhY2VtZW50ID09PSAnb3V0ZXInID8gY2xhc3Nlcy5oYXNIaW50IDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgaGFzSGludENsYXNzID0gaGludFRleHQgPyBjbGFzc2VzLmhhc0hpbnQgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCByZXF1aXJlZFBsYWNlbWVudENsYXNzID0gcmVxdWlyZWRQbGFjZW1lbnQgPT09ICdyaWdodCcgPyBjbGFzc2VzLnJlcXVpcmVkQWxpZ25SaWdodCA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IGxhYmVsUGxhY2VtZW50Q2xhc3MgPSBpbm5lckxhYmVsUGxhY2VtZW50VmFsdWVcbiAgICAgICAgICAgICAgICA/IGNsYXNzZXNbYCR7aW5uZXJMYWJlbFBsYWNlbWVudFZhbHVlfUxhYmVsUGxhY2VtZW50YCBhcyBrZXlvZiB0eXBlb2YgY2xhc3Nlc11cbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IGhhc1ZhbHVlQ2xhc3MgPSBoYXNWYWx1ZSA/IGNsYXNzZXMuaGFzVmFsdWUgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBrZWVwUGxhY2Vob2xkZXJDbGFzcyA9IGhhc1BsYWNlaG9sZGVyICYmIHBsYWNlaG9sZGVyU2hvd24gJiYgY2xhc3Nlcy5rZWVwUGxhY2Vob2xkZXI7XG5cbiAgICAgICAgICAgIGNvbnN0IHdyYXBwZXJXaXRob3V0TGVmdENvbnRlbnQgPVxuICAgICAgICAgICAgICAgICFjb250ZW50TGVmdCAmJiBpc0NoaXBzVmlzaWJsZSAmJiBjaGlwVHlwZSA9PT0gJ2RlZmF1bHQnID8gY2xhc3Nlcy5oYXNFbXB0eUNvbnRlbnRMZWZ0IDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3Qgd3JhcHBlcldpdGhvdXRSaWdodENvbnRlbnQgPVxuICAgICAgICAgICAgICAgICFjb250ZW50UmlnaHQgJiYgaXNDaGlwc1Zpc2libGUgJiYgY2hpcFR5cGUgPT09ICdkZWZhdWx0JyA/IGNsYXNzZXMuaGFzRW1wdHlDb250ZW50UmlnaHQgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRSaWdodENvbXBlbnNhdGlvbk1hcmdpbiA9XG4gICAgICAgICAgICAgICAgIWhhc091dGVyTGFiZWwgJiYgaGludFRleHQgJiYgaGludFRhcmdldFBsYWNlbWVudCA9PT0gJ2lubmVyJ1xuICAgICAgICAgICAgICAgICAgICA/IGNsYXNzZXMuY29udGVudFJpZ2h0Q29tcGVuc2F0aW9uTWFyZ2luXG4gICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgICAgICAgICBjb25zdCBoaW50UmVmID0gdXNlT3V0c2lkZUNsaWNrPEhUTUxEaXZFbGVtZW50PigoKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0SXNIaW50VmlzaWJsZShmYWxzZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IGhpbnRJbm5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgICAgICAgICBjb25zdCBoaW50Rm9ya1JlZiA9IHVzZUZvcmtSZWYoaGludFJlZiwgaGludElubmVyUmVmKTtcblxuICAgICAgICAgICAgY29uc3QgaGFuZGxlSW5wdXQ6IEZvcm1FdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4gPSAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHZhbHVlIH0gPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcblxuICAgICAgICAgICAgICAgIHNldEhhc1ZhbHVlKEJvb2xlYW4odmFsdWUpKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGhhc1RleHRBZnRlciAmJiBpbnB1dFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRleHRXaWR0aCA9IGdldElucHV0V2lkdGgoaW5wdXRSZWYuY3VycmVudCwgaW5wdXRDb250YWluZXJSZWYuY3VycmVudCk7XG4gICAgICAgICAgICAgICAgICAgIGlucHV0UmVmLmN1cnJlbnQuc3R5bGUud2lkdGggPSBgJHt0ZXh0V2lkdGh9cHhgO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlucHV0UmVmLmN1cnJlbnQ/LnN0eWxlLnJlbW92ZVByb3BlcnR5KCd3aWR0aCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIFtoYXNUZXh0QWZ0ZXJdKTtcblxuICAgICAgICAgICAgY29uc3QgaGFuZGxlRm9jdXMgPSAoZXZlbnQ6IFJlYWN0LkZvY3VzRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICBzZXRIYXNGb2N1cyh0cnVlKTtcbiAgICAgICAgICAgICAgICBvbkZvY3VzPy4oZXZlbnQpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY29uc3QgaGFuZGxlQmx1ciA9IChldmVudDogUmVhY3QuRm9jdXNFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgIHNldEhhc0ZvY3VzKGZhbHNlKTtcbiAgICAgICAgICAgICAgICBvbkJsdXI/LihldmVudCk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCBoYW5kbGVIaW50U2hvdyA9ICgpID0+IHNldElzSGludFZpc2libGUodHJ1ZSk7XG4gICAgICAgICAgICBjb25zdCBoYW5kbGVIaW50SGlkZSA9ICgpID0+IHNldElzSGludFZpc2libGUoZmFsc2UpO1xuICAgICAgICAgICAgY29uc3QgaGFuZGxlSGludENsaWNrOiBNb3VzZUV2ZW50SGFuZGxlciA9IChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghaGludFRleHQgfHwgaGludFRyaWdnZXIgIT09ICdjbGljaycpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldElzUG9wb3ZlciA9IGV2ZW50LnRhcmdldCA9PT0gaGludElubmVyUmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICAgICAgY29uc3Qgcm9vdEhhc1RhcmdldCA9IGhpbnRJbm5lclJlZi5jdXJyZW50Py5jb250YWlucyhldmVudC50YXJnZXQgYXMgRWxlbWVudCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIXRhcmdldElzUG9wb3ZlciAmJiAhcm9vdEhhc1RhcmdldCkge1xuICAgICAgICAgICAgICAgICAgICBzZXRJc0hpbnRWaXNpYmxlKHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUNoYW5nZTogQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGRpc2FibGVkIHx8IHJlYWRPbmx5KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCB7IG1heExlbmd0aCwgdmFsdWUgfSA9IGV2ZW50LnRhcmdldDtcblxuICAgICAgICAgICAgICAgIGlmIChtYXhMZW5ndGggIT09IC0xICYmIHZhbHVlLmxlbmd0aCA+IG1heExlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgb25DaGFuZ2U/LihldmVudCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoaGFzVGV4dEFmdGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRleHRXaWR0aCA9IGdldElucHV0V2lkdGgoZXZlbnQuY3VycmVudFRhcmdldCwgaW5wdXRDb250YWluZXJSZWYuY3VycmVudCk7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUud2lkdGggPSBgJHt0ZXh0V2lkdGh9cHhgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZUNoaXBzID0gKG5ld0NoaXBzOiBBcnJheTxDaGlwVmFsdWVzPiwgbmV3VmFsdWVzOiBBcnJheTxUZXh0RmllbGRQcmltaXRpdmVWYWx1ZT4pID0+IHtcbiAgICAgICAgICAgICAgICBzZXRDaGlwcyhuZXdDaGlwcyk7XG4gICAgICAgICAgICAgICAgb25DaGFuZ2VDaGlwcz8uKG5ld1ZhbHVlcyk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCB7IGhhbmRsZUlucHV0S2V5ZG93biwgaGFuZGxlQ2hpcEtleURvd24sIG9uQ2hpcENsZWFyLCBoYW5kbGVDb250ZW50S2V5RG93biB9ID0gdXNlS2V5TmF2aWdhdGlvbih7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlZFJlZnMsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgcmVhZE9ubHksXG4gICAgICAgICAgICAgICAgY2hpcHMsXG4gICAgICAgICAgICAgICAgZW51bWVyYXRpb25UeXBlLFxuICAgICAgICAgICAgICAgIHVwZGF0ZUNoaXBzLFxuICAgICAgICAgICAgICAgIG9uU2VhcmNoLFxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlLFxuICAgICAgICAgICAgICAgIG9uRW50ZXJEaXNhYmxlZDogX29uRW50ZXJEaXNhYmxlZCxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBjb25zdCBvbkNoaXBDbGljayA9IChldmVudDogUmVhY3QuTW91c2VFdmVudDxIVE1MQnV0dG9uRWxlbWVudD4pID0+IGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICAgICBjb25zdCBoYW5kbGVJbnB1dEZvY3VzID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyZWFkT25seSB8fCBkaXNhYmxlZCB8fCAhaW5wdXRSZWY/LmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlucHV0UmVmLmN1cnJlbnQuc2Nyb2xsVG8oe1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDAsXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IGlucHV0UmVmLmN1cnJlbnQub2Zmc2V0TGVmdCxcbiAgICAgICAgICAgICAgICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnLFxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgaW5wdXRSZWYuY3VycmVudC5mb2N1cygpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY29uc3QgZ2V0UmVmID0gKGVsZW1lbnQ6IEhUTUxCdXR0b25FbGVtZW50IHwgbnVsbCwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ICYmIGNoaXBzUmVmcz8uY3VycmVudCkge1xuICAgICAgICAgICAgICAgICAgICBjaGlwc1JlZnMuY3VycmVudFtpbmRleF0gPSBlbGVtZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZU9uS2V5RG93biA9IChldmVudDogQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4gJiBLZXlib2FyZEV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgaGFuZGxlSW5wdXRLZXlkb3duKGV2ZW50KTtcblxuICAgICAgICAgICAgICAgIGlmIChvbktleURvd24pIHtcbiAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duKGV2ZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghaXNDaGlwRW51bWVyYXRpb24gJiYgIXZhbHVlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBuZXdDaGlwcyA9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlcz8ubWFwKCh2YWx1ZSwgaW5kZXgpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogYCR7aW5kZXh9XyR7dmFsdWV9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICB9KSkgfHwgW107XG5cbiAgICAgICAgICAgICAgICBzZXRDaGlwcyhuZXdDaGlwcyk7XG4gICAgICAgICAgICB9LCBbaXNDaGlwRW51bWVyYXRpb24sIHZhbHVlc10pO1xuXG4gICAgICAgICAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHNldEhhc1ZhbHVlKEJvb2xlYW4ocmVzdD8uZGVmYXVsdFZhbHVlKSk7XG4gICAgICAgICAgICB9LCBbcmVzdC5kZWZhdWx0VmFsdWVdKTtcblxuICAgICAgICAgICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRIYXNWYWx1ZShCb29sZWFuKG91dGVyVmFsdWUpIHx8IEJvb2xlYW4oaW5wdXRSZWY/LmN1cnJlbnQ/LnZhbHVlKSk7XG4gICAgICAgICAgICB9LCBbb3V0ZXJWYWx1ZSwgaW5wdXRSZWY/LmN1cnJlbnQ/LnZhbHVlXSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGlubmVyT3B0aW9uYWwgPSBCb29sZWFuKHJlcXVpcmVkID8gZmFsc2UgOiBvcHRpb25hbCk7XG4gICAgICAgICAgICBjb25zdCBoYXNQbGFjZWhvbGRlck9wdGlvbmFsID0gaW5uZXJPcHRpb25hbCAmJiAhaW5uZXJMYWJlbFZhbHVlICYmICFoYXNPdXRlckxhYmVsO1xuICAgICAgICAgICAgY29uc3Qgb3B0aW9uYWxUZXh0Tm9kZSA9IGlubmVyT3B0aW9uYWwgPyAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZE9wdGlvbmFsVGV4dD5cbiAgICAgICAgICAgICAgICAgICAge0Jvb2xlYW4oaGFzUGxhY2Vob2xkZXJPcHRpb25hbCA/IGlubmVyUGxhY2Vob2xkZXJWYWx1ZSA6IGlubmVyTGFiZWxWYWx1ZSkgJiYgJ1xceGEwJ31cbiAgICAgICAgICAgICAgICAgICAge29wdGlvbmFsVGV4dH1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZE9wdGlvbmFsVGV4dD5cbiAgICAgICAgICAgICkgOiBudWxsO1xuXG4gICAgICAgICAgICBjb25zdCBjbGFzc1RleHRFbGxpcHNpcyA9XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZXJzY29yZS1kYW5nbGVcbiAgICAgICAgICAgICAgICAhKHJlc3QgYXMgYW55KS5fdGV4dEVsbGlwc2lzRGlzYWJsZSAmJiAhdGV4dEFmdGVyID8gY2xhc3Nlcy5pbnB1dFRleHRFbGxpcHNpcyA6IHVuZGVmaW5lZDtcblxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8Um9vdFxuICAgICAgICAgICAgICAgICAgICB2aWV3PXt2aWV3fVxuICAgICAgICAgICAgICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgIHJlYWRPbmx5PXshZGlzYWJsZWQgJiYgcmVhZE9ubHl9XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsUGxhY2VtZW50PXtpbm5lckxhYmVsUGxhY2VtZW50VmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUlucHV0Rm9jdXN9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbFBsYWNlbWVudENsYXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJDbGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhc0RpdmlkZXJDbGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhc0lubmVySGludENsYXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy50ZXh0RmllbGRHcm91cEl0ZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgICAgICAgICAgICAgICAgey4uLihoaW50VGV4dCAmJiB7IGhpbnRWaWV3LCBoaW50U2l6ZSB9KX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHsoaGFzT3V0ZXJMYWJlbCB8fCB0aXRsZUNhcHRpb24pICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxPdXRlckxhYmVsV3JhcHBlciBpc0lubmVyTGFiZWw9e2xhYmVsUGxhY2VtZW50ID09PSAnaW5uZXInfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aGFzT3V0ZXJMYWJlbCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbmRpY2F0b3JXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPExhYmVsIGlkPXtsYWJlbElkfSBodG1sRm9yPXtpZH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lubmVyTGFiZWxWYWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTGFiZWw+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtoaW50VGV4dCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEhpbnRXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SGludENvbXBvbmVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtoaW50Rm9ya1JlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRUZXh0PXtoaW50VGV4dH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRUcmlnZ2VyPXtoaW50VHJpZ2dlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzSGludFZpc2libGU9e2lzSGludFZpc2libGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50VGFyZ2V0SWNvbj17aGludFRhcmdldEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50UGxhY2VtZW50PXtoaW50UGxhY2VtZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludEhhc0Fycm93PXtoaW50SGFzQXJyb3d9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50T2Zmc2V0PXtoaW50T2Zmc2V0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFdpZHRoPXtoaW50V2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50Q29udGVudExlZnQ9e2hpbnRDb250ZW50TGVmdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUhpbnRTaG93PXtoYW5kbGVIaW50U2hvd31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUhpbnRIaWRlPXtoYW5kbGVIaW50SGlkZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUhpbnRDbGljaz17aGFuZGxlSGludENsaWNrfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkSGludFdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3JlcXVpcmVkICYmIGhhc1JlcXVpcmVkSW5kaWNhdG9yICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSW5kaWNhdG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2VzLm91dGVyTGFiZWxQbGFjZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFBsYWNlbWVudENsYXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzSGludENsYXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge29wdGlvbmFsVGV4dE5vZGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkSW5kaWNhdG9yV3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0aXRsZUNhcHRpb24gJiYgPFRpdGxlQ2FwdGlvbj57dGl0bGVDYXB0aW9ufTwvVGl0bGVDYXB0aW9uPn1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvT3V0ZXJMYWJlbFdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIDxJbnB1dFdyYXBwZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlZiDQtNC70Y8g0LLQvdGD0YLRgNC10L3QvdC10LPQviDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjRjy4g0J3QtSDQvtGC0LTQsNC10YLRgdGPINC90LDRgNGD0LbRgy5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17KHJlc3QgYXMgYW55KS5pbnB1dFdyYXBwZXJSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiAjMTU0NCwg0Lgg0L/QvtGB0LvQtSDRg9Cx0YDQsNGC0YwgY2xhc3Nlcy5pbnB1dFdyYXBwZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aEhhc0NoaXBzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyYXBwZXJXaXRob3V0TGVmdENvbnRlbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JhcHBlcldpdGhvdXRSaWdodENvbnRlbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy5pbnB1dFdyYXBwZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7IWhhc091dGVyTGFiZWwgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyZXF1aXJlZCAmJiBoYXNSZXF1aXJlZEluZGljYXRvciAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSW5kaWNhdG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeChjbGFzc2VzLmlubmVyTGFiZWxQbGFjZW1lbnQsIHJlcXVpcmVkUGxhY2VtZW50Q2xhc3MpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2hpbnRUZXh0ICYmIGhpbnRUYXJnZXRQbGFjZW1lbnQgPT09ICdvdXRlcicgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEhpbnRXcmFwcGVyIGNsYXNzTmFtZT17Y2xhc3Nlcy5pbm5lckxhYmVsUGxhY2VtZW50fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SGludENvbXBvbmVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e2hpbnRGb3JrUmVmfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50VGV4dD17aGludFRleHR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRUcmlnZ2VyPXtoaW50VHJpZ2dlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNIaW50VmlzaWJsZT17aXNIaW50VmlzaWJsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFRhcmdldEljb249e2hpbnRUYXJnZXRJY29ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50UGxhY2VtZW50PXtoaW50UGxhY2VtZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50SGFzQXJyb3c9e2hpbnRIYXNBcnJvd31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludE9mZnNldD17aGludE9mZnNldH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFdpZHRoPXtoaW50V2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRDb250ZW50TGVmdD17aGludENvbnRlbnRMZWZ0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVIaW50U2hvdz17aGFuZGxlSGludFNob3d9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUhpbnRIaWRlPXtoYW5kbGVIaW50SGlkZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlSGludENsaWNrPXtoYW5kbGVIaW50Q2xpY2t9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzSW5uZXJMYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEhpbnRXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHtjb250ZW50TGVmdCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZENvbnRlbnRMZWZ0IGlzQ2xlYXI9e2NsZWFyfSBpc0RlZmF1bHRWaWV3PXtpc0RlZmF1bHRWaWV3fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2NvbnRlbnRMZWZ0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQ29udGVudExlZnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgPElucHV0TGFiZWxXcmFwcGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17Y29udGVudFJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZUNvbnRlbnRLZXlEb3dufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17d2l0aEhhc0NoaXBzfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtCb29sZWFuKHRleHRCZWZvcmUgJiYgaXNDaGlwRW51bWVyYXRpb24pICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZFRleHRCZWZvcmU+e3RleHRCZWZvcmV9PC9TdHlsZWRUZXh0QmVmb3JlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2lzQ2hpcEVudW1lcmF0aW9uICYmIEJvb2xlYW4oY2hpcHM/Lmxlbmd0aCkgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkQ2hpcHMgY2xhc3NOYW1lPXtjbGFzc2VzLmNoaXBzV3JhcHBlcn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2hpcHM/Lm1hcCgoeyBpZDogY2hpcElkLCB0ZXh0IH0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsaWRhdGlvblZpZXcgPSBjaGlwVmFsaWRhdG9yPy4oU3RyaW5nKHRleHQpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXNWaWV3ID0gdmFsaWRhdGlvblZpZXc/LnZpZXcgfHwgY2hpcFZpZXc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGV4dEZpZWxkQ2hpcFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9e2NoaXBJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17KGVsZW1lbnQpID0+IGdldFJlZihlbGVtZW50LCBpbmRleCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2Ake2NoaXBJZH1fJHtpbmRleH1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZE9ubHk9e3JlYWRPbmx5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3RleHR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0PXt0ZXh0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZlbnQpID0+IGhhbmRsZUNoaXBLZXlEb3duKGV2ZW50LCBjaGlwSWQsIGluZGV4KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xlYXI9eygpID0+IG9uQ2hpcENsZWFyKGNoaXBJZCwgaW5kZXgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17b25DaGlwQ2xpY2t9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlwVHlwZT17Y2hpcFR5cGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3PXtyZXNWaWV3fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9vdFdyYXBwZXI9e1Jvb3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiAjMTU0N1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2ZvcmNlQ2hpcE1hbmlwdWxhdGlvbldpdGhSZWFkb25seT17X2ZvcmNlQ2hpcE1hbmlwdWxhdGlvbldpdGhSZWFkb25seX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQ2hpcHM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5wdXRDb250YWluZXIgcmVmPXtpbnB1dENvbnRhaW5lclJlZn0gaGFzRHluYW1pY1dpZHRoPXtoYXNUZXh0QWZ0ZXJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aGFzVGV4dEJlZm9yZSAmJiA8U3R5bGVkVGV4dEJlZm9yZT57dGV4dEJlZm9yZX08L1N0eWxlZFRleHRCZWZvcmU+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17aW5wdXRGb3JrUmVmfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9e2lubmVySWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17b3V0ZXJWYWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXtlbnVtZXJhdGlvblR5cGUgPT09ICdjaGlwJyA/IGNoaXBzLmxlbmd0aCA9PT0gMCAmJiByZXF1aXJlZCA6IHJlcXVpcmVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PXtsYWJlbElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT17aGVscGVyVGV4dElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e2lubmVyUGxhY2Vob2xkZXJWYWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzVmFsdWVDbGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZWVwUGxhY2Vob2xkZXJDbGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc1RleHRFbGxpcHNpcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkT25seSAmJiBjbGFzc2VzLnJlYWRPbmx5SW5wdXQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZE9ubHk9eyFkaXNhYmxlZCAmJiByZWFkT25seX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uSW5wdXQ9e2hhbmRsZUlucHV0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlT25LZXlEb3dufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Gb2N1cz17aGFuZGxlRm9jdXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI9e2hhbmRsZUJsdXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2hhc0lubmVyTGFiZWwgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPExhYmVsIGlkPXtsYWJlbElkfSBodG1sRm9yPXtpbm5lcklkfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aW5uZXJMYWJlbFZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtvcHRpb25hbFRleHROb2RlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9MYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3BsYWNlaG9sZGVyU2hvd24gJiYgIWhhc1ZhbHVlICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbnB1dFBsYWNlaG9sZGVyIGhhc1BhZGRpbmc9e2hhc1BsYWNlaG9sZGVyUGFkZGluZ30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2hhc1RleHRCZWZvcmUgJiYgPFN0eWxlZFRleHRCZWZvcmUgaXNIaWRkZW4+e3RleHRCZWZvcmV9PC9TdHlsZWRUZXh0QmVmb3JlPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aW5uZXJQbGFjZWhvbGRlclZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtoYXNQbGFjZWhvbGRlck9wdGlvbmFsICYmIG9wdGlvbmFsVGV4dE5vZGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lucHV0UGxhY2Vob2xkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtoYXNUZXh0QWZ0ZXIgJiYgPFN0eWxlZFRleHRBZnRlcj57dGV4dEFmdGVyfTwvU3R5bGVkVGV4dEFmdGVyPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lucHV0Q29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9JbnB1dExhYmVsV3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRDb250ZW50UmlnaHRXcmFwcGVyIGNsYXNzTmFtZT17Y3goY29udGVudFJpZ2h0Q29tcGVuc2F0aW9uTWFyZ2luKX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2NvbnRlbnRSaWdodCAmJiA8U3R5bGVkQ29udGVudFJpZ2h0Pntjb250ZW50UmlnaHR9PC9TdHlsZWRDb250ZW50UmlnaHQ+fVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyFoYXNPdXRlckxhYmVsICYmIGhpbnRUZXh0ICYmIGhpbnRUYXJnZXRQbGFjZW1lbnQgPT09ICdpbm5lcicgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SGludENvbXBvbmVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtoaW50Rm9ya1JlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRUZXh0PXtoaW50VGV4dH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRUcmlnZ2VyPXtoaW50VHJpZ2dlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzSGludFZpc2libGU9e2lzSGludFZpc2libGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50VGFyZ2V0SWNvbj17aGludFRhcmdldEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50UGxhY2VtZW50PXtoaW50UGxhY2VtZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludEhhc0Fycm93PXtoaW50SGFzQXJyb3d9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50T2Zmc2V0PXtoaW50T2Zmc2V0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFdpZHRoPXtoaW50V2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50Q29udGVudExlZnQ9e2hpbnRDb250ZW50TGVmdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVIaW50U2hvdz17aGFuZGxlSGludFNob3d9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVIaW50SGlkZT17aGFuZGxlSGludEhpZGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVIaW50Q2xpY2s9e2hhbmRsZUhpbnRDbGlja31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzSW5uZXJMYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZENvbnRlbnRSaWdodFdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvSW5wdXRXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICB7bGVmdEhlbHBlciAmJiA8TGVmdEhlbHBlciBpZD17aGVscGVyVGV4dElkfT57bGVmdEhlbHBlcn08L0xlZnRIZWxwZXI+fVxuICAgICAgICAgICAgICAgIDwvUm9vdD5cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgKTtcblxuZXhwb3J0IGNvbnN0IHRleHRGaWVsZENvbmZpZyA9IHtcbiAgICBuYW1lOiAnVGV4dEZpZWxkJyxcbiAgICB0YWc6ICdkaXYnLFxuICAgIGxheW91dDogdGV4dEZpZWxkUm9vdCxcbiAgICBiYXNlLFxuICAgIHZhcmlhdGlvbnM6IHtcbiAgICAgICAgdmlldzoge1xuICAgICAgICAgICAgY3NzOiB2aWV3Q1NTLFxuICAgICAgICB9LFxuICAgICAgICBzaXplOiB7XG4gICAgICAgICAgICBjc3M6IHNpemVDU1MsXG4gICAgICAgIH0sXG4gICAgICAgIGNsZWFyOiB7XG4gICAgICAgICAgICBjc3M6IGNsZWFyQ1NTLFxuICAgICAgICAgICAgYXR0cnM6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGRpc2FibGVkOiB7XG4gICAgICAgICAgICBjc3M6IGRpc2FibGVkQ1NTLFxuICAgICAgICAgICAgYXR0cnM6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHJlYWRPbmx5OiB7XG4gICAgICAgICAgICBjc3M6IHJlYWRPbmx5Q1NTLFxuICAgICAgICAgICAgYXR0cnM6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGxhYmVsUGxhY2VtZW50OiB7XG4gICAgICAgICAgICBjc3M6IGxhYmVsUGxhY2VtZW50Q1NTLFxuICAgICAgICB9LFxuICAgICAgICBoaW50Vmlldzoge1xuICAgICAgICAgICAgY3NzOiBoaW50Vmlld0NTUyxcbiAgICAgICAgfSxcbiAgICAgICAgaGludFNpemU6IHtcbiAgICAgICAgICAgIGNzczogaGludFNpemVDU1MsXG4gICAgICAgIH0sXG4gICAgICAgIGNoaXBWaWV3OiB7XG4gICAgICAgICAgICBjc3M6IGNoaXBWaWV3Q1NTLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgZGVmYXVsdHM6IHtcbiAgICAgICAgc2l6ZTogJ20nLFxuICAgICAgICB2aWV3OiAnZGVmYXVsdCcsXG4gICAgfSxcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ0RvQiJ9 */");
123
+ export var base = /*#__PURE__*/ css("display:block;", "base", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjLWVtb3Rpb24vY29tcG9uZW50cy9UZXh0RmllbGQvVGV4dEZpZWxkLnRzeCIsInNvdXJjZXMiOlsic3JjLWVtb3Rpb24vY29tcG9uZW50cy9UZXh0RmllbGQvVGV4dEZpZWxkLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgZm9yd2FyZFJlZiwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHR5cGUgeyBGb3JtRXZlbnRIYW5kbGVyLCBDaGFuZ2VFdmVudEhhbmRsZXIsIEtleWJvYXJkRXZlbnQsIENoYW5nZUV2ZW50LCBNb3VzZUV2ZW50SGFuZGxlciB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUZvcmtSZWYgfSBmcm9tICdAc2FsdXRlanMvcGxhc21hLWNvcmUnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgY3gsIHNhZmVVc2VJZCB9IGZyb20gJ3NyYy91dGlscyc7XG5pbXBvcnQgdHlwZSB7IFJvb3RQcm9wcyB9IGZyb20gJ3NyYy9lbmdpbmVzJztcbmltcG9ydCB7IHVzZU91dHNpZGVDbGljayB9IGZyb20gJ3NyYy9ob29rcyc7XG5cbmltcG9ydCB0eXBlIHsgQ2hpcFZhbHVlcywgVGV4dEZpZWxkUHJpbWl0aXZlVmFsdWUsIFRleHRGaWVsZFByb3BzLCBUZXh0RmllbGRSb290UHJvcHMgfSBmcm9tICcuL1RleHRGaWVsZC50eXBlcyc7XG5pbXBvcnQgeyBiYXNlIGFzIHNpemVDU1MgfSBmcm9tICcuL3ZhcmlhdGlvbnMvX3NpemUvYmFzZSc7XG5pbXBvcnQgeyBiYXNlIGFzIHZpZXdDU1MgfSBmcm9tICcuL3ZhcmlhdGlvbnMvX3ZpZXcvYmFzZSc7XG5pbXBvcnQgeyBiYXNlIGFzIGNsZWFyQ1NTIH0gZnJvbSAnLi92YXJpYXRpb25zL19jbGVhci9iYXNlJztcbmltcG9ydCB7IGJhc2UgYXMgZGlzYWJsZWRDU1MgfSBmcm9tICcuL3ZhcmlhdGlvbnMvX2Rpc2FibGVkL2Jhc2UnO1xuaW1wb3J0IHsgYmFzZSBhcyByZWFkT25seUNTUyB9IGZyb20gJy4vdmFyaWF0aW9ucy9fcmVhZC1vbmx5L2Jhc2UnO1xuaW1wb3J0IHsgYmFzZSBhcyBsYWJlbFBsYWNlbWVudENTUyB9IGZyb20gJy4vdmFyaWF0aW9ucy9fbGFiZWwtcGxhY2VtZW50L2Jhc2UnO1xuaW1wb3J0IHsgYmFzZSBhcyBoaW50Vmlld0NTUyB9IGZyb20gJy4vdmFyaWF0aW9ucy9faGludC12aWV3L2Jhc2UnO1xuaW1wb3J0IHsgYmFzZSBhcyBoaW50U2l6ZUNTUyB9IGZyb20gJy4vdmFyaWF0aW9ucy9faGludC1zaXplL2Jhc2UnO1xuaW1wb3J0IHsgYmFzZSBhcyBjaGlwVmlld0NTUyB9IGZyb20gJy4vdmFyaWF0aW9ucy9fY2hpcC12aWV3L2Jhc2UnO1xuaW1wb3J0IHtcbiAgICBJbnB1dCxcbiAgICBJbnB1dENvbnRhaW5lcixcbiAgICBMZWZ0SGVscGVyLFxuICAgIExhYmVsLFxuICAgIElucHV0V3JhcHBlcixcbiAgICBJbnB1dExhYmVsV3JhcHBlcixcbiAgICBTdHlsZWRDb250ZW50TGVmdCxcbiAgICBTdHlsZWRDb250ZW50UmlnaHQsXG4gICAgU3R5bGVkQ2hpcHMsXG4gICAgU3R5bGVkVGV4dEJlZm9yZSxcbiAgICBTdHlsZWRUZXh0QWZ0ZXIsXG4gICAgU3R5bGVkSW5kaWNhdG9yLFxuICAgIFN0eWxlZE9wdGlvbmFsVGV4dCxcbiAgICBJbnB1dFBsYWNlaG9sZGVyLFxuICAgIE91dGVyTGFiZWxXcmFwcGVyLFxuICAgIFRpdGxlQ2FwdGlvbixcbiAgICBTdHlsZWRIaW50V3JhcHBlcixcbiAgICBTdHlsZWRJbmRpY2F0b3JXcmFwcGVyLFxuICAgIFN0eWxlZENvbnRlbnRSaWdodFdyYXBwZXIsXG59IGZyb20gJy4vVGV4dEZpZWxkLnN0eWxlcyc7XG5pbXBvcnQgeyBjbGFzc2VzIH0gZnJvbSAnLi9UZXh0RmllbGQudG9rZW5zJztcbmltcG9ydCB7IFRleHRGaWVsZENoaXAgfSBmcm9tICcuL3VpJztcbmltcG9ydCB7IHVzZUtleU5hdmlnYXRpb24gfSBmcm9tICcuL2hvb2tzJztcbmltcG9ydCB7IEhpbnRDb21wb25lbnQgfSBmcm9tICcuL3VpL0hpbnQvSGludCc7XG5pbXBvcnQgeyBnZXRJbnB1dFdpZHRoIH0gZnJvbSAnLi9nZXRJbnB1dFdpZHRoJztcblxuY29uc3Qgb3B0aW9uYWxUZXh0ID0gJ29wdGlvbmFsJztcblxuZXhwb3J0IGNvbnN0IGJhc2UgPSBjc3NgXG4gICAgLyogTk9URTogV2Via2l0INC90LUg0L/RgNC40LzQtdC90Y/QtdGCIG9wYWNpdHkg0LogaW5saW5lINGC0LXQs9Cw0LwgKi9cbiAgICBkaXNwbGF5OiBibG9jaztcbmA7XG5cbmNvbnN0IEhJTlRfREVGQVVMVF9PRkZTRVQ6IFtudW1iZXIsIG51bWJlcl0gPSBbMCwgMF07XG5cbmV4cG9ydCBjb25zdCB0ZXh0RmllbGRSb290ID0gKFJvb3Q6IFJvb3RQcm9wczxIVE1MRGl2RWxlbWVudCwgVGV4dEZpZWxkUm9vdFByb3BzPikgPT5cbiAgICBmb3J3YXJkUmVmPEhUTUxJbnB1dEVsZW1lbnQsIFRleHRGaWVsZFByb3BzPihcbiAgICAgICAgKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgICAgICAgICBzdHlsZSxcblxuICAgICAgICAgICAgICAgIC8vIGxheW91dFxuICAgICAgICAgICAgICAgIGNvbnRlbnRMZWZ0LFxuICAgICAgICAgICAgICAgIGNvbnRlbnRSaWdodCxcbiAgICAgICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgICAgICBsYWJlbFBsYWNlbWVudCxcbiAgICAgICAgICAgICAgICBrZWVwUGxhY2Vob2xkZXIsXG4gICAgICAgICAgICAgICAgdGV4dEJlZm9yZSxcbiAgICAgICAgICAgICAgICB0ZXh0QWZ0ZXIsXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXIsXG4gICAgICAgICAgICAgICAgbGVmdEhlbHBlcixcbiAgICAgICAgICAgICAgICBlbnVtZXJhdGlvblR5cGUgPSAncGxhaW4nLFxuICAgICAgICAgICAgICAgIHJlcXVpcmVkUGxhY2VtZW50ID0gJ3JpZ2h0JyxcbiAgICAgICAgICAgICAgICBoYXNSZXF1aXJlZEluZGljYXRvciA9IHRydWUsXG4gICAgICAgICAgICAgICAgdGl0bGVDYXB0aW9uLFxuICAgICAgICAgICAgICAgIGNoaXBWaWV3ID0gJ2RlZmF1bHQnLFxuICAgICAgICAgICAgICAgIGNoaXBWYWxpZGF0b3IsXG5cbiAgICAgICAgICAgICAgICAvLyBoaW50XG4gICAgICAgICAgICAgICAgaGludFRyaWdnZXIgPSAnaG92ZXInLFxuICAgICAgICAgICAgICAgIGhpbnRUZXh0LFxuICAgICAgICAgICAgICAgIGhpbnRWaWV3ID0gJ2RlZmF1bHQnLFxuICAgICAgICAgICAgICAgIGhpbnRTaXplID0gJ20nLFxuICAgICAgICAgICAgICAgIGhpbnRUYXJnZXRJY29uLFxuICAgICAgICAgICAgICAgIGhpbnRUYXJnZXRQbGFjZW1lbnQgPSAnb3V0ZXInLFxuICAgICAgICAgICAgICAgIGhpbnRQbGFjZW1lbnQgPSAnYXV0bycsXG4gICAgICAgICAgICAgICAgaGludEhhc0Fycm93LFxuICAgICAgICAgICAgICAgIGhpbnRPZmZzZXQgPSBISU5UX0RFRkFVTFRfT0ZGU0VULFxuICAgICAgICAgICAgICAgIGhpbnRXaWR0aCxcbiAgICAgICAgICAgICAgICBoaW50Q29udGVudExlZnQsXG5cbiAgICAgICAgICAgICAgICAvLyB2YXJpYXRpb25zXG4gICAgICAgICAgICAgICAgdmlldyxcbiAgICAgICAgICAgICAgICBzaXplLFxuICAgICAgICAgICAgICAgIHJlYWRPbmx5ID0gZmFsc2UsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQgPSBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXF1aXJlZCA9IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNsZWFyID0gZmFsc2UsXG4gICAgICAgICAgICAgICAgb3B0aW9uYWwsXG4gICAgICAgICAgICAgICAgaGFzRGl2aWRlcixcblxuICAgICAgICAgICAgICAgIC8vIGNvbnRyb2xsZWRcbiAgICAgICAgICAgICAgICB2YWx1ZTogb3V0ZXJWYWx1ZSxcbiAgICAgICAgICAgICAgICBjaGlwczogdmFsdWVzLFxuICAgICAgICAgICAgICAgIGNoaXBUeXBlID0gJ2RlZmF1bHQnLFxuXG4gICAgICAgICAgICAgICAgLy8gZXZlbnRzXG4gICAgICAgICAgICAgICAgb25DaGFuZ2UsXG4gICAgICAgICAgICAgICAgb25DaGFuZ2VDaGlwcyxcbiAgICAgICAgICAgICAgICBvblNlYXJjaCxcbiAgICAgICAgICAgICAgICBvbktleURvd24sXG4gICAgICAgICAgICAgICAgb25Gb2N1cyxcbiAgICAgICAgICAgICAgICBvbkJsdXIsXG5cbiAgICAgICAgICAgICAgICAvLyDQn9GA0L7Qv9GB0Ysg0LTQu9GPINCy0L3Rg9GC0YDQtdC90L3QtdCz0L4g0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40Y8sINC90LUg0L7RgtC00LDQtdGC0YHRjyDQvdCw0YDRg9C20YMuXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIF9vbkVudGVyRGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIF9mb3JjZUNoaXBNYW5pcHVsYXRpb25XaXRoUmVhZG9ubHksXG5cbiAgICAgICAgICAgICAgICAuLi5yZXN0XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVmLFxuICAgICAgICApID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgICAgICAgICAgY29uc3QgaW5wdXRDb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgICAgICAgICAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gICAgICAgICAgICBjb25zdCBpbnB1dEZvcmtSZWYgPSB1c2VGb3JrUmVmKGlucHV0UmVmLCByZWYpO1xuICAgICAgICAgICAgY29uc3QgY2hpcHNSZWZzID0gdXNlUmVmPEFycmF5PEhUTUxCdXR0b25FbGVtZW50Pj4oW10pO1xuXG4gICAgICAgICAgICBjb25zdCBjb250cm9sbGVkUmVmcyA9IHsgY29udGVudFJlZiwgaW5wdXRSZWYsIGNoaXBzUmVmcyB9O1xuXG4gICAgICAgICAgICBjb25zdCBbaGFzVmFsdWUsIHNldEhhc1ZhbHVlXSA9IHVzZVN0YXRlKFxuICAgICAgICAgICAgICAgIEJvb2xlYW4ob3V0ZXJWYWx1ZSkgfHwgQm9vbGVhbihpbnB1dFJlZj8uY3VycmVudD8udmFsdWUpIHx8IEJvb2xlYW4ocmVzdD8uZGVmYXVsdFZhbHVlKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb25zdCBbaGFzRm9jdXMsIHNldEhhc0ZvY3VzXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICAgICAgICAgICAgY29uc3QgW2NoaXBzLCBzZXRDaGlwc10gPSB1c2VTdGF0ZTxBcnJheTxDaGlwVmFsdWVzPj4oW10pO1xuICAgICAgICAgICAgY29uc3QgW2lzSGludFZpc2libGUsIHNldElzSGludFZpc2libGVdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gICAgICAgICAgICBjb25zdCB1bmlxSWQgPSBzYWZlVXNlSWQoKTtcbiAgICAgICAgICAgIGNvbnN0IGlubmVySWQgPSBpZCB8fCB1bmlxSWQ7XG4gICAgICAgICAgICBjb25zdCBsYWJlbElkID0gc2FmZVVzZUlkKCk7XG4gICAgICAgICAgICBjb25zdCBoZWxwZXJUZXh0SWQgPSBzYWZlVXNlSWQoKTtcblxuICAgICAgICAgICAgY29uc3QgaXNEZWZhdWx0VmlldyA9IHZpZXcgPT09ICdkZWZhdWx0JyB8fCByZWFkT25seSB8fCBkaXNhYmxlZDtcblxuICAgICAgICAgICAgY29uc3QgaXNDaGlwRW51bWVyYXRpb24gPSBlbnVtZXJhdGlvblR5cGUgPT09ICdjaGlwJztcbiAgICAgICAgICAgIGNvbnN0IGlzQ2hpcHNWaXNpYmxlID0gaXNDaGlwRW51bWVyYXRpb24gJiYgQm9vbGVhbihjaGlwcz8ubGVuZ3RoKTtcbiAgICAgICAgICAgIGNvbnN0IHdpdGhIYXNDaGlwcyA9IGlzQ2hpcHNWaXNpYmxlID8gY2xhc3Nlcy5oYXNDaGlwcyA6IHVuZGVmaW5lZDtcblxuICAgICAgICAgICAgY29uc3QgaGFzTGFiZWxWYWx1ZSA9IEJvb2xlYW4obGFiZWwpO1xuICAgICAgICAgICAgY29uc3QgaGFzSW5uZXJMYWJlbCA9IHNpemUgIT09ICd4cycgJiYgbGFiZWxQbGFjZW1lbnQgPT09ICdpbm5lcicgJiYgIWlzQ2hpcHNWaXNpYmxlICYmIGhhc0xhYmVsVmFsdWU7XG4gICAgICAgICAgICBjb25zdCBoYXNPdXRlckxhYmVsID0gbGFiZWxQbGFjZW1lbnQgPT09ICdvdXRlcicgJiYgaGFzTGFiZWxWYWx1ZTtcbiAgICAgICAgICAgIGNvbnN0IGlubmVyS2VlcFBsYWNlaG9sZGVyID0ga2VlcFBsYWNlaG9sZGVyICYmIGxhYmVsUGxhY2VtZW50ID09PSAnaW5uZXInO1xuICAgICAgICAgICAgY29uc3QgaGFzUGxhY2Vob2xkZXIgPSBCb29sZWFuKHBsYWNlaG9sZGVyKSAmJiAoaW5uZXJLZWVwUGxhY2Vob2xkZXIgfHwgIWhhc0lubmVyTGFiZWwpO1xuICAgICAgICAgICAgbGV0IGhhc1RleHRBZnRlciA9IEJvb2xlYW4odGV4dEFmdGVyKTtcbiAgICAgICAgICAgIGxldCBoYXNUZXh0QmVmb3JlID0gdGV4dEJlZm9yZSAmJiAhaXNDaGlwRW51bWVyYXRpb247XG4gICAgICAgICAgICBpZiAobGFiZWxQbGFjZW1lbnQgPT09ICdpbm5lcicpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWhhc1ZhbHVlICYmICFoYXNQbGFjZWhvbGRlciAmJiAhaGFzRm9jdXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaGFzVGV4dEFmdGVyID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGhhc1RleHRCZWZvcmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGhhc1BsYWNlaG9sZGVyUGFkZGluZyA9IGhhc0lubmVyTGFiZWwgJiYga2VlcFBsYWNlaG9sZGVyICYmIHNpemUgIT09ICd4cyc7XG5cbiAgICAgICAgICAgIGNvbnN0IGlubmVyTGFiZWxWYWx1ZSA9IGhhc0lubmVyTGFiZWwgfHwgaGFzT3V0ZXJMYWJlbCA/IGxhYmVsIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgaW5uZXJMYWJlbFBsYWNlbWVudFZhbHVlID0gbGFiZWxQbGFjZW1lbnQgPT09ICdpbm5lcicgJiYgIWhhc0lubmVyTGFiZWwgPyB1bmRlZmluZWQgOiBsYWJlbFBsYWNlbWVudDtcblxuICAgICAgICAgICAgY29uc3QgaW5uZXJQbGFjZWhvbGRlclZhbHVlID0gaGFzUGxhY2Vob2xkZXIgPyBwbGFjZWhvbGRlciA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IHBsYWNlaG9sZGVyU2hvd24gPSBCb29sZWFuKGlubmVyUGxhY2Vob2xkZXJWYWx1ZSkgJiYgIWhhc1ZhbHVlO1xuXG4gICAgICAgICAgICBjb25zdCBjbGVhckNsYXNzID0gY2xlYXIgPyBjbGFzc2VzLmNsZWFyIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgaGFzRGl2aWRlckNsYXNzID0gaGFzRGl2aWRlciA/IGNsYXNzZXMuaGFzRGl2aWRlciA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IGhhc0lubmVySGludENsYXNzID0gaGludFRleHQgJiYgaGludFRhcmdldFBsYWNlbWVudCA9PT0gJ291dGVyJyA/IGNsYXNzZXMuaGFzSGludCA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IGhhc0hpbnRDbGFzcyA9IGhpbnRUZXh0ID8gY2xhc3Nlcy5oYXNIaW50IDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgcmVxdWlyZWRQbGFjZW1lbnRDbGFzcyA9IHJlcXVpcmVkUGxhY2VtZW50ID09PSAncmlnaHQnID8gY2xhc3Nlcy5yZXF1aXJlZEFsaWduUmlnaHQgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBsYWJlbFBsYWNlbWVudENsYXNzID0gaW5uZXJMYWJlbFBsYWNlbWVudFZhbHVlXG4gICAgICAgICAgICAgICAgPyBjbGFzc2VzW2Ake2lubmVyTGFiZWxQbGFjZW1lbnRWYWx1ZX1MYWJlbFBsYWNlbWVudGAgYXMga2V5b2YgdHlwZW9mIGNsYXNzZXNdXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBoYXNWYWx1ZUNsYXNzID0gaGFzVmFsdWUgPyBjbGFzc2VzLmhhc1ZhbHVlIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3Qga2VlcFBsYWNlaG9sZGVyQ2xhc3MgPSBoYXNQbGFjZWhvbGRlciAmJiBwbGFjZWhvbGRlclNob3duICYmIGNsYXNzZXMua2VlcFBsYWNlaG9sZGVyO1xuXG4gICAgICAgICAgICBjb25zdCB3cmFwcGVyV2l0aG91dExlZnRDb250ZW50ID1cbiAgICAgICAgICAgICAgICAhY29udGVudExlZnQgJiYgaXNDaGlwc1Zpc2libGUgJiYgY2hpcFR5cGUgPT09ICdkZWZhdWx0JyA/IGNsYXNzZXMuaGFzRW1wdHlDb250ZW50TGVmdCA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IHdyYXBwZXJXaXRob3V0UmlnaHRDb250ZW50ID1cbiAgICAgICAgICAgICAgICAhY29udGVudFJpZ2h0ICYmIGlzQ2hpcHNWaXNpYmxlICYmIGNoaXBUeXBlID09PSAnZGVmYXVsdCcgPyBjbGFzc2VzLmhhc0VtcHR5Q29udGVudFJpZ2h0IDogdW5kZWZpbmVkO1xuXG4gICAgICAgICAgICBjb25zdCBjb250ZW50UmlnaHRDb21wZW5zYXRpb25NYXJnaW4gPVxuICAgICAgICAgICAgICAgICFoYXNPdXRlckxhYmVsICYmIGhpbnRUZXh0ICYmIGhpbnRUYXJnZXRQbGFjZW1lbnQgPT09ICdpbm5lcidcbiAgICAgICAgICAgICAgICAgICAgPyBjbGFzc2VzLmNvbnRlbnRSaWdodENvbXBlbnNhdGlvbk1hcmdpblxuICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgICAgICAgY29uc3QgaGludFJlZiA9IHVzZU91dHNpZGVDbGljazxIVE1MRGl2RWxlbWVudD4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHNldElzSGludFZpc2libGUoZmFsc2UpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBoaW50SW5uZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgICAgICAgICAgY29uc3QgaGludEZvcmtSZWYgPSB1c2VGb3JrUmVmKGhpbnRSZWYsIGhpbnRJbm5lclJlZik7XG5cbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUlucHV0OiBGb3JtRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG5cbiAgICAgICAgICAgICAgICBzZXRIYXNWYWx1ZShCb29sZWFuKHZhbHVlKSk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChoYXNUZXh0QWZ0ZXIgJiYgaW5wdXRSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXh0V2lkdGggPSBnZXRJbnB1dFdpZHRoKGlucHV0UmVmLmN1cnJlbnQsIGlucHV0Q29udGFpbmVyUmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgICAgICAgICBpbnB1dFJlZi5jdXJyZW50LnN0eWxlLndpZHRoID0gYCR7dGV4dFdpZHRofXB4YDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpbnB1dFJlZi5jdXJyZW50Py5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnd2lkdGgnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCBbaGFzVGV4dEFmdGVyXSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUZvY3VzID0gKGV2ZW50OiBSZWFjdC5Gb2N1c0V2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0SGFzRm9jdXModHJ1ZSk7XG4gICAgICAgICAgICAgICAgb25Gb2N1cz8uKGV2ZW50KTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUJsdXIgPSAoZXZlbnQ6IFJlYWN0LkZvY3VzRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICBzZXRIYXNGb2N1cyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgb25CbHVyPy4oZXZlbnQpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY29uc3QgaGFuZGxlSGludFNob3cgPSAoKSA9PiBzZXRJc0hpbnRWaXNpYmxlKHRydWUpO1xuICAgICAgICAgICAgY29uc3QgaGFuZGxlSGludEhpZGUgPSAoKSA9PiBzZXRJc0hpbnRWaXNpYmxlKGZhbHNlKTtcbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUhpbnRDbGljazogTW91c2VFdmVudEhhbmRsZXIgPSAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWhpbnRUZXh0IHx8IGhpbnRUcmlnZ2VyICE9PSAnY2xpY2snKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXRJc1BvcG92ZXIgPSBldmVudC50YXJnZXQgPT09IGhpbnRJbm5lclJlZi5jdXJyZW50O1xuICAgICAgICAgICAgICAgIGNvbnN0IHJvb3RIYXNUYXJnZXQgPSBoaW50SW5uZXJSZWYuY3VycmVudD8uY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCF0YXJnZXRJc1BvcG92ZXIgJiYgIXJvb3RIYXNUYXJnZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0SXNIaW50VmlzaWJsZSh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCBoYW5kbGVDaGFuZ2U6IENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PiA9IChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChkaXNhYmxlZCB8fCByZWFkT25seSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgeyBtYXhMZW5ndGgsIHZhbHVlIH0gPSBldmVudC50YXJnZXQ7XG5cbiAgICAgICAgICAgICAgICBpZiAobWF4TGVuZ3RoICE9PSAtMSAmJiB2YWx1ZS5sZW5ndGggPiBtYXhMZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPy4oZXZlbnQpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGhhc1RleHRBZnRlcikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXh0V2lkdGggPSBnZXRJbnB1dFdpZHRoKGV2ZW50LmN1cnJlbnRUYXJnZXQsIGlucHV0Q29udGFpbmVyUmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgICAgICAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLndpZHRoID0gYCR7dGV4dFdpZHRofXB4YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCB1cGRhdGVDaGlwcyA9IChuZXdDaGlwczogQXJyYXk8Q2hpcFZhbHVlcz4sIG5ld1ZhbHVlczogQXJyYXk8VGV4dEZpZWxkUHJpbWl0aXZlVmFsdWU+KSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0Q2hpcHMobmV3Q2hpcHMpO1xuICAgICAgICAgICAgICAgIG9uQ2hhbmdlQ2hpcHM/LihuZXdWYWx1ZXMpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY29uc3QgeyBoYW5kbGVJbnB1dEtleWRvd24sIGhhbmRsZUNoaXBLZXlEb3duLCBvbkNoaXBDbGVhciwgaGFuZGxlQ29udGVudEtleURvd24gfSA9IHVzZUtleU5hdmlnYXRpb24oe1xuICAgICAgICAgICAgICAgIGNvbnRyb2xsZWRSZWZzLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgICAgICAgIHJlYWRPbmx5LFxuICAgICAgICAgICAgICAgIGNoaXBzLFxuICAgICAgICAgICAgICAgIGVudW1lcmF0aW9uVHlwZSxcbiAgICAgICAgICAgICAgICB1cGRhdGVDaGlwcyxcbiAgICAgICAgICAgICAgICBvblNlYXJjaCxcbiAgICAgICAgICAgICAgICBvbkNoYW5nZSxcbiAgICAgICAgICAgICAgICBvbkVudGVyRGlzYWJsZWQ6IF9vbkVudGVyRGlzYWJsZWQsXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgY29uc3Qgb25DaGlwQ2xpY2sgPSAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICAgICAgY29uc3QgaGFuZGxlSW5wdXRGb2N1cyA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVhZE9ubHkgfHwgZGlzYWJsZWQgfHwgIWlucHV0UmVmPy5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpbnB1dFJlZi5jdXJyZW50LnNjcm9sbFRvKHtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwLFxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiBpbnB1dFJlZi5jdXJyZW50Lm9mZnNldExlZnQsXG4gICAgICAgICAgICAgICAgICAgIGJlaGF2aW9yOiAnc21vb3RoJyxcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGlucHV0UmVmLmN1cnJlbnQuZm9jdXMoKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IGdldFJlZiA9IChlbGVtZW50OiBIVE1MQnV0dG9uRWxlbWVudCB8IG51bGwsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCAmJiBjaGlwc1JlZnM/LmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hpcHNSZWZzLmN1cnJlbnRbaW5kZXhdID0gZWxlbWVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCBoYW5kbGVPbktleURvd24gPSAoZXZlbnQ6IENoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+ICYgS2V5Ym9hcmRFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgIGhhbmRsZUlucHV0S2V5ZG93bihldmVudCk7XG5cbiAgICAgICAgICAgICAgICBpZiAob25LZXlEb3duKSB7XG4gICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bihldmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWlzQ2hpcEVudW1lcmF0aW9uICYmICF2YWx1ZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgbmV3Q2hpcHMgPVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZXM/Lm1hcCgodmFsdWUsIGluZGV4KSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGAke2luZGV4fV8ke3ZhbHVlfWAsXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSkpIHx8IFtdO1xuXG4gICAgICAgICAgICAgICAgc2V0Q2hpcHMobmV3Q2hpcHMpO1xuICAgICAgICAgICAgfSwgW2lzQ2hpcEVudW1lcmF0aW9uLCB2YWx1ZXNdKTtcblxuICAgICAgICAgICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRIYXNWYWx1ZShCb29sZWFuKHJlc3Q/LmRlZmF1bHRWYWx1ZSkpO1xuICAgICAgICAgICAgfSwgW3Jlc3QuZGVmYXVsdFZhbHVlXSk7XG5cbiAgICAgICAgICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0SGFzVmFsdWUoQm9vbGVhbihvdXRlclZhbHVlKSB8fCBCb29sZWFuKGlucHV0UmVmPy5jdXJyZW50Py52YWx1ZSkpO1xuICAgICAgICAgICAgfSwgW291dGVyVmFsdWUsIGlucHV0UmVmPy5jdXJyZW50Py52YWx1ZV0pO1xuXG4gICAgICAgICAgICBjb25zdCBpbm5lck9wdGlvbmFsID0gQm9vbGVhbihyZXF1aXJlZCA/IGZhbHNlIDogb3B0aW9uYWwpO1xuICAgICAgICAgICAgY29uc3QgaGFzUGxhY2Vob2xkZXJPcHRpb25hbCA9IGlubmVyT3B0aW9uYWwgJiYgIWlubmVyTGFiZWxWYWx1ZSAmJiAhaGFzT3V0ZXJMYWJlbDtcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbmFsVGV4dE5vZGUgPSBpbm5lck9wdGlvbmFsID8gKFxuICAgICAgICAgICAgICAgIDxTdHlsZWRPcHRpb25hbFRleHQ+XG4gICAgICAgICAgICAgICAgICAgIHtCb29sZWFuKGhhc1BsYWNlaG9sZGVyT3B0aW9uYWwgPyBpbm5lclBsYWNlaG9sZGVyVmFsdWUgOiBpbm5lckxhYmVsVmFsdWUpICYmICdcXHhhMCd9XG4gICAgICAgICAgICAgICAgICAgIHtvcHRpb25hbFRleHR9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRPcHRpb25hbFRleHQ+XG4gICAgICAgICAgICApIDogbnVsbDtcblxuICAgICAgICAgICAgY29uc3QgY2xhc3NUZXh0RWxsaXBzaXMgPVxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVyc2NvcmUtZGFuZ2xlXG4gICAgICAgICAgICAgICAgIShyZXN0IGFzIGFueSkuX3RleHRFbGxpcHNpc0Rpc2FibGUgJiYgIXRleHRBZnRlciA/IGNsYXNzZXMuaW5wdXRUZXh0RWxsaXBzaXMgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPFJvb3RcbiAgICAgICAgICAgICAgICAgICAgdmlldz17dmlld31cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICByZWFkT25seT17IWRpc2FibGVkICYmIHJlYWRPbmx5fVxuICAgICAgICAgICAgICAgICAgICBsYWJlbFBsYWNlbWVudD17aW5uZXJMYWJlbFBsYWNlbWVudFZhbHVlfVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVJbnB1dEZvY3VzfVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxQbGFjZW1lbnRDbGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFyQ2xhc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNEaXZpZGVyQ2xhc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNJbm5lckhpbnRDbGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMudGV4dEZpZWxkR3JvdXBJdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17c3R5bGV9XG4gICAgICAgICAgICAgICAgICAgIHsuLi4oaGludFRleHQgJiYgeyBoaW50VmlldywgaGludFNpemUgfSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7KGhhc091dGVyTGFiZWwgfHwgdGl0bGVDYXB0aW9uKSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8T3V0ZXJMYWJlbFdyYXBwZXIgaXNJbm5lckxhYmVsPXtsYWJlbFBsYWNlbWVudCA9PT0gJ2lubmVyJ30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2hhc091dGVyTGFiZWwgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSW5kaWNhdG9yV3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMYWJlbCBpZD17bGFiZWxJZH0gaHRtbEZvcj17aWR9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpbm5lckxhYmVsVmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xhYmVsPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aGludFRleHQgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRIaW50V3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpbnRDb21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17aGludEZvcmtSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50VGV4dD17aGludFRleHR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50VHJpZ2dlcj17aGludFRyaWdnZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0hpbnRWaXNpYmxlPXtpc0hpbnRWaXNpYmxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFRhcmdldEljb249e2hpbnRUYXJnZXRJY29ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFBsYWNlbWVudD17aGludFBsYWNlbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRIYXNBcnJvdz17aGludEhhc0Fycm93fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludE9mZnNldD17aGludE9mZnNldH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRXaWR0aD17aGludFdpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludENvbnRlbnRMZWZ0PXtoaW50Q29udGVudExlZnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVIaW50U2hvdz17aGFuZGxlSGludFNob3d9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVIaW50SGlkZT17aGFuZGxlSGludEhpZGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVIaW50Q2xpY2s9e2hhbmRsZUhpbnRDbGlja31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEhpbnRXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyZXF1aXJlZCAmJiBoYXNSZXF1aXJlZEluZGljYXRvciAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEluZGljYXRvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy5vdXRlckxhYmVsUGxhY2VtZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRQbGFjZW1lbnRDbGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0hpbnRDbGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtvcHRpb25hbFRleHROb2RlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEluZGljYXRvcldyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dGl0bGVDYXB0aW9uICYmIDxUaXRsZUNhcHRpb24+e3RpdGxlQ2FwdGlvbn08L1RpdGxlQ2FwdGlvbj59XG4gICAgICAgICAgICAgICAgICAgICAgICA8L091dGVyTGFiZWxXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA8SW5wdXRXcmFwcGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBSZWYg0LTQu9GPINCy0L3Rg9GC0YDQtdC90L3QtdCz0L4g0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40Y8uINCd0LUg0L7RgtC00LDQtdGC0YHRjyDQvdCw0YDRg9C20YMuXG4gICAgICAgICAgICAgICAgICAgICAgICByZWY9eyhyZXN0IGFzIGFueSkuaW5wdXRXcmFwcGVyUmVmfVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogIzE1NDQsINC4INC/0L7RgdC70LUg0YPQsdGA0LDRgtGMIGNsYXNzZXMuaW5wdXRXcmFwcGVyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhIYXNDaGlwcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cmFwcGVyV2l0aG91dExlZnRDb250ZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyYXBwZXJXaXRob3V0UmlnaHRDb250ZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMuaW5wdXRXcmFwcGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgeyFoYXNPdXRlckxhYmVsICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cmVxdWlyZWQgJiYgaGFzUmVxdWlyZWRJbmRpY2F0b3IgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEluZGljYXRvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goY2xhc3Nlcy5pbm5lckxhYmVsUGxhY2VtZW50LCByZXF1aXJlZFBsYWNlbWVudENsYXNzKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtoaW50VGV4dCAmJiBoaW50VGFyZ2V0UGxhY2VtZW50ID09PSAnb3V0ZXInICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRIaW50V3JhcHBlciBjbGFzc05hbWU9e2NsYXNzZXMuaW5uZXJMYWJlbFBsYWNlbWVudH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpbnRDb21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtoaW50Rm9ya1JlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFRleHQ9e2hpbnRUZXh0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50VHJpZ2dlcj17aGludFRyaWdnZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzSGludFZpc2libGU9e2lzSGludFZpc2libGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRUYXJnZXRJY29uPXtoaW50VGFyZ2V0SWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFBsYWNlbWVudD17aGludFBsYWNlbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludEhhc0Fycm93PXtoaW50SGFzQXJyb3d9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRPZmZzZXQ9e2hpbnRPZmZzZXR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRXaWR0aD17aGludFdpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50Q29udGVudExlZnQ9e2hpbnRDb250ZW50TGVmdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlSGludFNob3c9e2hhbmRsZUhpbnRTaG93fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVIaW50SGlkZT17aGFuZGxlSGludEhpZGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUhpbnRDbGljaz17aGFuZGxlSGludENsaWNrfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0lubmVyTGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRIaW50V3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICB7Y29udGVudExlZnQgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRDb250ZW50TGVmdCBpc0NsZWFyPXtjbGVhcn0gaXNEZWZhdWx0Vmlldz17aXNEZWZhdWx0Vmlld30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjb250ZW50TGVmdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZENvbnRlbnRMZWZ0PlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxJbnB1dExhYmVsV3JhcHBlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e2NvbnRlbnRSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXtoYW5kbGVDb250ZW50S2V5RG93bn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e3dpdGhIYXNDaGlwc31cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Qm9vbGVhbih0ZXh0QmVmb3JlICYmIGlzQ2hpcEVudW1lcmF0aW9uKSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QmVmb3JlPnt0ZXh0QmVmb3JlfTwvU3R5bGVkVGV4dEJlZm9yZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpc0NoaXBFbnVtZXJhdGlvbiAmJiBCb29sZWFuKGNoaXBzPy5sZW5ndGgpICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZENoaXBzIGNsYXNzTmFtZT17Y2xhc3Nlcy5jaGlwc1dyYXBwZXJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2NoaXBzPy5tYXAoKHsgaWQ6IGNoaXBJZCwgdGV4dCB9LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRpb25WaWV3ID0gY2hpcFZhbGlkYXRvcj8uKFN0cmluZyh0ZXh0KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzVmlldyA9IHZhbGlkYXRpb25WaWV3Py52aWV3IHx8IGNoaXBWaWV3O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRleHRGaWVsZENoaXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPXtjaGlwSWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9eyhlbGVtZW50KSA9PiBnZXRSZWYoZWxlbWVudCwgaW5kZXgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtgJHtjaGlwSWR9XyR7aW5kZXh9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRPbmx5PXtyZWFkT25seX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXt0ZXh0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dD17dGV4dH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGV2ZW50KSA9PiBoYW5kbGVDaGlwS2V5RG93bihldmVudCwgY2hpcElkLCBpbmRleCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsZWFyPXsoKSA9PiBvbkNoaXBDbGVhcihjaGlwSWQsIGluZGV4KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uQ2hpcENsaWNrfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpcFR5cGU9e2NoaXBUeXBlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlldz17cmVzVmlld31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvb3RXcmFwcGVyPXtSb290fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogIzE1NDdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9mb3JjZUNoaXBNYW5pcHVsYXRpb25XaXRoUmVhZG9ubHk9e19mb3JjZUNoaXBNYW5pcHVsYXRpb25XaXRoUmVhZG9ubHl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZENoaXBzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPElucHV0Q29udGFpbmVyIHJlZj17aW5wdXRDb250YWluZXJSZWZ9IGhhc0R5bmFtaWNXaWR0aD17aGFzVGV4dEFmdGVyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2hhc1RleHRCZWZvcmUgJiYgPFN0eWxlZFRleHRCZWZvcmU+e3RleHRCZWZvcmV9PC9TdHlsZWRUZXh0QmVmb3JlPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e2lucHV0Rm9ya1JlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPXtpbm5lcklkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e291dGVyVmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD17ZW51bWVyYXRpb25UeXBlID09PSAnY2hpcCcgPyBjaGlwcy5sZW5ndGggPT09IDAgJiYgcmVxdWlyZWQgOiByZXF1aXJlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT17bGFiZWxJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9e2hlbHBlclRleHRJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtpbm5lclBsYWNlaG9sZGVyVmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc1ZhbHVlQ2xhc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2VlcFBsYWNlaG9sZGVyQ2xhc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NUZXh0RWxsaXBzaXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZE9ubHkgJiYgY2xhc3Nlcy5yZWFkT25seUlucHV0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRPbmx5PXshZGlzYWJsZWQgJiYgcmVhZE9ubHl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbklucHV0PXtoYW5kbGVJbnB1dH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZU9uS2V5RG93bn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRm9jdXM9e2hhbmRsZUZvY3VzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtoYXNJbm5lckxhYmVsICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMYWJlbCBpZD17bGFiZWxJZH0gaHRtbEZvcj17aW5uZXJJZH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lubmVyTGFiZWxWYWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7b3B0aW9uYWxUZXh0Tm9kZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwbGFjZWhvbGRlclNob3duICYmICFoYXNWYWx1ZSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5wdXRQbGFjZWhvbGRlciBoYXNQYWRkaW5nPXtoYXNQbGFjZWhvbGRlclBhZGRpbmd9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtoYXNUZXh0QmVmb3JlICYmIDxTdHlsZWRUZXh0QmVmb3JlIGlzSGlkZGVuPnt0ZXh0QmVmb3JlfTwvU3R5bGVkVGV4dEJlZm9yZT59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lubmVyUGxhY2Vob2xkZXJWYWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aGFzUGxhY2Vob2xkZXJPcHRpb25hbCAmJiBvcHRpb25hbFRleHROb2RlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbnB1dFBsYWNlaG9sZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aGFzVGV4dEFmdGVyICYmIDxTdHlsZWRUZXh0QWZ0ZXI+e3RleHRBZnRlcn08L1N0eWxlZFRleHRBZnRlcj59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbnB1dENvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5wdXRMYWJlbFdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkQ29udGVudFJpZ2h0V3JhcHBlciBjbGFzc05hbWU9e2N4KGNvbnRlbnRSaWdodENvbXBlbnNhdGlvbk1hcmdpbil9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjb250ZW50UmlnaHQgJiYgPFN0eWxlZENvbnRlbnRSaWdodD57Y29udGVudFJpZ2h0fTwvU3R5bGVkQ29udGVudFJpZ2h0Pn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHshaGFzT3V0ZXJMYWJlbCAmJiBoaW50VGV4dCAmJiBoaW50VGFyZ2V0UGxhY2VtZW50ID09PSAnaW5uZXInICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpbnRDb21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17aGludEZvcmtSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50VGV4dD17aGludFRleHR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50VHJpZ2dlcj17aGludFRyaWdnZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0hpbnRWaXNpYmxlPXtpc0hpbnRWaXNpYmxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFRhcmdldEljb249e2hpbnRUYXJnZXRJY29ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFBsYWNlbWVudD17aGludFBsYWNlbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRIYXNBcnJvdz17aGludEhhc0Fycm93fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludE9mZnNldD17aGludE9mZnNldH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRXaWR0aD17aGludFdpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludENvbnRlbnRMZWZ0PXtoaW50Q29udGVudExlZnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlSGludFNob3c9e2hhbmRsZUhpbnRTaG93fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlSGludEhpZGU9e2hhbmRsZUhpbnRIaWRlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlSGludENsaWNrPXtoYW5kbGVIaW50Q2xpY2t9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0lubmVyTGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRDb250ZW50UmlnaHRXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICA8L0lucHV0V3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAge2xlZnRIZWxwZXIgJiYgPExlZnRIZWxwZXIgaWQ9e2hlbHBlclRleHRJZH0+e2xlZnRIZWxwZXJ9PC9MZWZ0SGVscGVyPn1cbiAgICAgICAgICAgICAgICA8L1Jvb3Q+XG4gICAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICk7XG5cbmV4cG9ydCBjb25zdCB0ZXh0RmllbGRDb25maWcgPSB7XG4gICAgbmFtZTogJ1RleHRGaWVsZCcsXG4gICAgdGFnOiAnZGl2JyxcbiAgICBsYXlvdXQ6IHRleHRGaWVsZFJvb3QsXG4gICAgYmFzZSxcbiAgICB2YXJpYXRpb25zOiB7XG4gICAgICAgIHZpZXc6IHtcbiAgICAgICAgICAgIGNzczogdmlld0NTUyxcbiAgICAgICAgfSxcbiAgICAgICAgc2l6ZToge1xuICAgICAgICAgICAgY3NzOiBzaXplQ1NTLFxuICAgICAgICB9LFxuICAgICAgICBjbGVhcjoge1xuICAgICAgICAgICAgY3NzOiBjbGVhckNTUyxcbiAgICAgICAgICAgIGF0dHJzOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBkaXNhYmxlZDoge1xuICAgICAgICAgICAgY3NzOiBkaXNhYmxlZENTUyxcbiAgICAgICAgICAgIGF0dHJzOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICByZWFkT25seToge1xuICAgICAgICAgICAgY3NzOiByZWFkT25seUNTUyxcbiAgICAgICAgICAgIGF0dHJzOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBsYWJlbFBsYWNlbWVudDoge1xuICAgICAgICAgICAgY3NzOiBsYWJlbFBsYWNlbWVudENTUyxcbiAgICAgICAgfSxcbiAgICAgICAgaGludFZpZXc6IHtcbiAgICAgICAgICAgIGNzczogaGludFZpZXdDU1MsXG4gICAgICAgIH0sXG4gICAgICAgIGhpbnRTaXplOiB7XG4gICAgICAgICAgICBjc3M6IGhpbnRTaXplQ1NTLFxuICAgICAgICB9LFxuICAgICAgICBjaGlwVmlldzoge1xuICAgICAgICAgICAgY3NzOiBjaGlwVmlld0NTUyxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIGRlZmF1bHRzOiB7XG4gICAgICAgIHNpemU6ICdtJyxcbiAgICAgICAgdmlldzogJ2RlZmF1bHQnLFxuICAgIH0sXG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStDb0IifQ== */");
124
124
  var HINT_DEFAULT_OFFSET = [
125
125
  0,
126
126
  0
@@ -27,9 +27,9 @@ function _object_spread(target) {
27
27
  return target;
28
28
  }
29
29
  import React, { forwardRef } from "react";
30
+ import { safeUseId } from "../../../../utils";
30
31
  import { Hint, HintTargetWrapper, HintIconWrapper } from "../../TextField.styles";
31
32
  import { IconInfoCircleOutline } from "../../../_Icon";
32
- import { safeUseId } from "../../../../utils";
33
33
  import { tokens } from "../../TextField.tokens";
34
34
  export var HintComponent = /*#__PURE__*/ forwardRef(function(param, ref) {
35
35
  var hintText = param.hintText, isHintVisible = param.isHintVisible, hintTrigger = param.hintTrigger, hintTargetIcon = param.hintTargetIcon, hintPlacement = param.hintPlacement, hintHasArrow = param.hintHasArrow, hintOffset = param.hintOffset, hintWidth = param.hintWidth, hintContentLeft = param.hintContentLeft, isInnerLabel = param.isInnerLabel, size = param.size, handleHintShow = param.handleHintShow, handleHintHide = param.handleHintHide, handleHintClick = param.handleHintClick;
@@ -1,10 +1,10 @@
1
1
  import { extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
2
  import React, { forwardRef, useReducer, useState, useRef, useLayoutEffect } from 'react';
3
- import { safeUseId } from '@salutejs/plasma-core';
4
3
  import { FloatingPopover } from './FloatingPopover.js';
5
4
  import { focusedReducer } from './reducers/focusedReducer.js';
6
5
  import { ListWrapper, Ul, InfiniteLoaderWrapper, base, StyledLeftHelper } from './Autocomplete.styles.js';
7
6
  import { useKeyNavigation } from './hooks/useKeyboardNavigation.js';
7
+ import { safeUseId } from '../../utils/react.js';
8
8
  import { useOutsideClick } from '../../hooks/useOutsideClick.js';
9
9
  import { useDidMountEffect } from '../../hooks/useDidMountEffect.js';
10
10
  import { StyledTextField } from './ui/TextField/TextField.styles.js';
@@ -1 +1 @@
1
- {"version":3,"file":"Autocomplete.js","sources":["../../../src/components/Autocomplete/Autocomplete.tsx"],"sourcesContent":["import React, { forwardRef, useState, useReducer, useLayoutEffect, useRef } from 'react';\nimport { safeUseId } from '@salutejs/plasma-core';\nimport { useDidMountEffect, useOutsideClick } from 'src/hooks';\nimport { RootProps } from 'src/engines';\n\nimport { FloatingPopover } from './FloatingPopover';\nimport { focusedReducer } from './reducers/focusedReducer';\nimport { SuggestionItem, StyledTextField, VirtualList } from './ui';\nimport { Ul, InfiniteLoaderWrapper, base, StyledLeftHelper, ListWrapper } from './Autocomplete.styles';\nimport type { AutocompleteProps, SuggestionItemType } from './Autocomplete.types';\nimport { useKeyNavigation } from './hooks/useKeyboardNavigation';\n\n/**\n * Компонент Autocomplete. Поле ввода с подсказками в выпадающем списке.\n */\nexport const autocompleteRoot = (Root: RootProps<HTMLInputElement, Omit<AutocompleteProps, 'hintText'>>) =>\n forwardRef<HTMLInputElement, AutocompleteProps>(\n (\n {\n value: outerValue,\n defaultValue,\n onChange,\n suggestions,\n view,\n size,\n labelPlacement,\n keepPlaceholder,\n disabled,\n readOnly,\n label,\n leftHelper,\n contentLeft,\n contentRight,\n textBefore,\n textAfter,\n onScroll,\n listMaxHeight = '25rem',\n listWidth,\n portal,\n filter,\n onSuggestionSelect,\n threshold = 2,\n renderList,\n renderListEnd,\n renderItem,\n onSearch,\n hintText,\n hintView = 'default',\n hintSize = 'm',\n beforeList,\n afterList,\n virtual = false,\n ...rest\n },\n ref,\n ) => {\n const [focused, dispatchFocused] = useReducer(focusedReducer, null);\n const [innerValue, setInnerValue] = useState<string | number>('');\n const [isOpen, setIsOpen] = useState(false);\n\n const listId = safeUseId();\n const value = outerValue ?? innerValue;\n\n const helperTextId = safeUseId();\n const floatingPopoverRef = useRef<HTMLDivElement>(null);\n\n const targetRef = useOutsideClick<HTMLUListElement>(() => {\n setIsOpen(false);\n }, floatingPopoverRef);\n\n const handleFocus = () => {\n if (value.toString().length >= threshold) {\n setIsOpen(true);\n }\n };\n\n const handleItemClick = (e: SuggestionItemType) => {\n setInnerValue(e.label);\n\n if (onSuggestionSelect) {\n onSuggestionSelect(e);\n }\n\n setIsOpen(false);\n };\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const currentValue = e.target.value;\n\n setInnerValue(currentValue);\n\n if (onChange) {\n onChange(e);\n }\n\n if (currentValue.toString().length >= threshold) {\n setIsOpen(true);\n } else {\n setIsOpen(false);\n }\n };\n\n const defaultFilterCallback = ({ label }: { label: string }) => {\n return label.toLowerCase().includes(value.toString().toLowerCase());\n };\n\n const helperTextStopPropagation = (event: React.MouseEvent<HTMLDivElement>) => {\n event.stopPropagation();\n };\n\n const finalResults = suggestions?.filter(filter || defaultFilterCallback) || [];\n\n const { onKeyDown } = useKeyNavigation({\n isOpen,\n setIsOpen,\n focused,\n dispatchFocused,\n finalResults,\n handleItemClick,\n });\n\n useDidMountEffect(() => {\n dispatchFocused({ type: 'reset' });\n }, [value]);\n\n useLayoutEffect(() => {\n if (defaultValue) {\n setInnerValue(defaultValue);\n }\n }, [defaultValue]);\n\n return (\n <Root\n view={view}\n size={size}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n hintView={hintView}\n hintSize={hintSize}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isOpen}\n portal={portal}\n listWidth={listWidth}\n target={(referenceRef) => (\n <StyledTextField\n ref={ref}\n inputWrapperRef={referenceRef}\n value={value}\n onChange={handleChange}\n onSearch={focused === null ? onSearch : undefined}\n size={size}\n view={view}\n disabled={disabled}\n readOnly={readOnly}\n label={label}\n contentLeft={contentLeft}\n contentRight={contentRight}\n textBefore={textBefore}\n textAfter={textAfter}\n onFocus={handleFocus}\n onKeyDown={onKeyDown}\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-controls={listId}\n aria-expanded={isOpen}\n aria-activedescendant={`${listId}/${focused}`}\n aria-describedby={helperTextId}\n hintText={String(hintText || '')}\n labelPlacement={labelPlacement}\n keepPlaceholder={keepPlaceholder}\n leftHelper={\n leftHelper && (\n <StyledLeftHelper onClick={helperTextStopPropagation}>\n {leftHelper}\n </StyledLeftHelper>\n )\n }\n {...rest}\n />\n )}\n >\n {(renderList && renderList(finalResults)) ||\n (Boolean(finalResults.length) && (\n <Root\n view={view}\n size={size}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n >\n <ListWrapper>\n <Ul\n ref={targetRef}\n id={listId}\n role=\"listbox\"\n aria-label={label}\n onScroll={virtual ? undefined : onScroll}\n listMaxHeight={listMaxHeight}\n virtual={virtual}\n >\n {virtual ? (\n <VirtualList\n items={finalResults}\n onClick={handleItemClick}\n listId={listId}\n listMaxHeight={listMaxHeight}\n onScroll={onScroll}\n renderItem={renderItem}\n />\n ) : (\n <>\n {beforeList}\n\n {finalResults.map((suggestion, index) => (\n <SuggestionItem\n key={index}\n item={suggestion}\n onClick={handleItemClick}\n id={`${listId}/${index}`}\n focused={focused === index}\n renderItem={renderItem}\n />\n ))}\n\n {afterList}\n </>\n )}\n\n {renderListEnd && (\n <InfiniteLoaderWrapper>{renderListEnd()}</InfiniteLoaderWrapper>\n )}\n </Ul>\n </ListWrapper>\n </Root>\n ))}\n </FloatingPopover>\n </Root>\n );\n },\n );\n\nexport const autocompleteConfig = {\n name: 'Autocomplete',\n tag: 'div',\n layout: autocompleteRoot,\n base,\n defaults: {\n view: 'default',\n size: 'l',\n labelPlacement: 'outer',\n },\n variations: {\n view: {\n css: '',\n },\n },\n};\n"],"names":["autocompleteRoot","Root","forwardRef","value","outerValue","defaultValue","onChange","suggestions","view","size","labelPlacement","keepPlaceholder","disabled","readOnly","label","leftHelper","contentLeft","contentRight","textBefore","textAfter","onScroll","listMaxHeight","listWidth","portal","filter","onSuggestionSelect","threshold","renderList","renderListEnd","renderItem","onSearch","hintText","hintView","hintSize","beforeList","afterList","virtual","rest","ref","focused","dispatchFocused","useReducer","focusedReducer","innerValue","setInnerValue","useState","isOpen","setIsOpen","listId","safeUseId","helperTextId","floatingPopoverRef","useRef","targetRef","useOutsideClick","handleFocus","toString","length","handleItemClick","e","handleChange","currentValue","target","defaultFilterCallback","toLowerCase","includes","helperTextStopPropagation","event","stopPropagation","finalResults","onKeyDown","useKeyNavigation","useDidMountEffect","type","useLayoutEffect","React","createElement","FloatingPopover","opened","referenceRef","StyledTextField","_extends","inputWrapperRef","undefined","onFocus","role","String","StyledLeftHelper","onClick","Boolean","ListWrapper","Ul","id","VirtualList","items","Fragment","map","suggestion","index","SuggestionItem","key","item","InfiniteLoaderWrapper","autocompleteConfig","name","tag","layout","base","defaults","variations","css"],"mappings":"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"}
1
+ {"version":3,"file":"Autocomplete.js","sources":["../../../src/components/Autocomplete/Autocomplete.tsx"],"sourcesContent":["import React, { forwardRef, useState, useReducer, useLayoutEffect, useRef } from 'react';\nimport { safeUseId } from 'src/utils';\nimport { useDidMountEffect, useOutsideClick } from 'src/hooks';\nimport { RootProps } from 'src/engines';\n\nimport { FloatingPopover } from './FloatingPopover';\nimport { focusedReducer } from './reducers/focusedReducer';\nimport { SuggestionItem, StyledTextField, VirtualList } from './ui';\nimport { Ul, InfiniteLoaderWrapper, base, StyledLeftHelper, ListWrapper } from './Autocomplete.styles';\nimport type { AutocompleteProps, SuggestionItemType } from './Autocomplete.types';\nimport { useKeyNavigation } from './hooks/useKeyboardNavigation';\n\n/**\n * Компонент Autocomplete. Поле ввода с подсказками в выпадающем списке.\n */\nexport const autocompleteRoot = (Root: RootProps<HTMLInputElement, Omit<AutocompleteProps, 'hintText'>>) =>\n forwardRef<HTMLInputElement, AutocompleteProps>(\n (\n {\n value: outerValue,\n defaultValue,\n onChange,\n suggestions,\n view,\n size,\n labelPlacement,\n keepPlaceholder,\n disabled,\n readOnly,\n label,\n leftHelper,\n contentLeft,\n contentRight,\n textBefore,\n textAfter,\n onScroll,\n listMaxHeight = '25rem',\n listWidth,\n portal,\n filter,\n onSuggestionSelect,\n threshold = 2,\n renderList,\n renderListEnd,\n renderItem,\n onSearch,\n hintText,\n hintView = 'default',\n hintSize = 'm',\n beforeList,\n afterList,\n virtual = false,\n ...rest\n },\n ref,\n ) => {\n const [focused, dispatchFocused] = useReducer(focusedReducer, null);\n const [innerValue, setInnerValue] = useState<string | number>('');\n const [isOpen, setIsOpen] = useState(false);\n\n const listId = safeUseId();\n const value = outerValue ?? innerValue;\n\n const helperTextId = safeUseId();\n const floatingPopoverRef = useRef<HTMLDivElement>(null);\n\n const targetRef = useOutsideClick<HTMLUListElement>(() => {\n setIsOpen(false);\n }, floatingPopoverRef);\n\n const handleFocus = () => {\n if (value.toString().length >= threshold) {\n setIsOpen(true);\n }\n };\n\n const handleItemClick = (e: SuggestionItemType) => {\n setInnerValue(e.label);\n\n if (onSuggestionSelect) {\n onSuggestionSelect(e);\n }\n\n setIsOpen(false);\n };\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const currentValue = e.target.value;\n\n setInnerValue(currentValue);\n\n if (onChange) {\n onChange(e);\n }\n\n if (currentValue.toString().length >= threshold) {\n setIsOpen(true);\n } else {\n setIsOpen(false);\n }\n };\n\n const defaultFilterCallback = ({ label }: { label: string }) => {\n return label.toLowerCase().includes(value.toString().toLowerCase());\n };\n\n const helperTextStopPropagation = (event: React.MouseEvent<HTMLDivElement>) => {\n event.stopPropagation();\n };\n\n const finalResults = suggestions?.filter(filter || defaultFilterCallback) || [];\n\n const { onKeyDown } = useKeyNavigation({\n isOpen,\n setIsOpen,\n focused,\n dispatchFocused,\n finalResults,\n handleItemClick,\n });\n\n useDidMountEffect(() => {\n dispatchFocused({ type: 'reset' });\n }, [value]);\n\n useLayoutEffect(() => {\n if (defaultValue) {\n setInnerValue(defaultValue);\n }\n }, [defaultValue]);\n\n return (\n <Root\n view={view}\n size={size}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n hintView={hintView}\n hintSize={hintSize}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isOpen}\n portal={portal}\n listWidth={listWidth}\n target={(referenceRef) => (\n <StyledTextField\n ref={ref}\n inputWrapperRef={referenceRef}\n value={value}\n onChange={handleChange}\n onSearch={focused === null ? onSearch : undefined}\n size={size}\n view={view}\n disabled={disabled}\n readOnly={readOnly}\n label={label}\n contentLeft={contentLeft}\n contentRight={contentRight}\n textBefore={textBefore}\n textAfter={textAfter}\n onFocus={handleFocus}\n onKeyDown={onKeyDown}\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-controls={listId}\n aria-expanded={isOpen}\n aria-activedescendant={`${listId}/${focused}`}\n aria-describedby={helperTextId}\n hintText={String(hintText || '')}\n labelPlacement={labelPlacement}\n keepPlaceholder={keepPlaceholder}\n leftHelper={\n leftHelper && (\n <StyledLeftHelper onClick={helperTextStopPropagation}>\n {leftHelper}\n </StyledLeftHelper>\n )\n }\n {...rest}\n />\n )}\n >\n {(renderList && renderList(finalResults)) ||\n (Boolean(finalResults.length) && (\n <Root\n view={view}\n size={size}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n >\n <ListWrapper>\n <Ul\n ref={targetRef}\n id={listId}\n role=\"listbox\"\n aria-label={label}\n onScroll={virtual ? undefined : onScroll}\n listMaxHeight={listMaxHeight}\n virtual={virtual}\n >\n {virtual ? (\n <VirtualList\n items={finalResults}\n onClick={handleItemClick}\n listId={listId}\n listMaxHeight={listMaxHeight}\n onScroll={onScroll}\n renderItem={renderItem}\n />\n ) : (\n <>\n {beforeList}\n\n {finalResults.map((suggestion, index) => (\n <SuggestionItem\n key={index}\n item={suggestion}\n onClick={handleItemClick}\n id={`${listId}/${index}`}\n focused={focused === index}\n renderItem={renderItem}\n />\n ))}\n\n {afterList}\n </>\n )}\n\n {renderListEnd && (\n <InfiniteLoaderWrapper>{renderListEnd()}</InfiniteLoaderWrapper>\n )}\n </Ul>\n </ListWrapper>\n </Root>\n ))}\n </FloatingPopover>\n </Root>\n );\n },\n );\n\nexport const autocompleteConfig = {\n name: 'Autocomplete',\n tag: 'div',\n layout: autocompleteRoot,\n base,\n defaults: {\n view: 'default',\n size: 'l',\n labelPlacement: 'outer',\n },\n variations: {\n view: {\n css: '',\n },\n },\n};\n"],"names":["autocompleteRoot","Root","forwardRef","value","outerValue","defaultValue","onChange","suggestions","view","size","labelPlacement","keepPlaceholder","disabled","readOnly","label","leftHelper","contentLeft","contentRight","textBefore","textAfter","onScroll","listMaxHeight","listWidth","portal","filter","onSuggestionSelect","threshold","renderList","renderListEnd","renderItem","onSearch","hintText","hintView","hintSize","beforeList","afterList","virtual","rest","ref","focused","dispatchFocused","useReducer","focusedReducer","innerValue","setInnerValue","useState","isOpen","setIsOpen","listId","safeUseId","helperTextId","floatingPopoverRef","useRef","targetRef","useOutsideClick","handleFocus","toString","length","handleItemClick","e","handleChange","currentValue","target","defaultFilterCallback","toLowerCase","includes","helperTextStopPropagation","event","stopPropagation","finalResults","onKeyDown","useKeyNavigation","useDidMountEffect","type","useLayoutEffect","React","createElement","FloatingPopover","opened","referenceRef","StyledTextField","_extends","inputWrapperRef","undefined","onFocus","role","String","StyledLeftHelper","onClick","Boolean","ListWrapper","Ul","id","VirtualList","items","Fragment","map","suggestion","index","SuggestionItem","key","item","InfiniteLoaderWrapper","autocompleteConfig","name","tag","layout","base","defaults","variations","css"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { useFloating, autoUpdate, flip, shift, size, FloatingPortal } from '@floating-ui/react';
2
2
  import React, { forwardRef } from 'react';
3
- import { safeUseId } from '@salutejs/plasma-core';
3
+ import { safeUseId } from '../../utils/react.js';
4
4
 
5
5
  const FloatingPopover = /*#__PURE__*/forwardRef(({
6
6
  target,