@1money/component-ui 0.0.42-alpha.4 → 0.0.42

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 (901) hide show
  1. package/es/components/Accordion/Accordion.js +1 -1
  2. package/es/components/Accordion/constants.js +1 -1
  3. package/es/components/Accordion/index.js +1 -1
  4. package/es/components/Accordion/interface.js +1 -1
  5. package/es/components/Accordion/style/css.js +1 -1
  6. package/es/components/Accordion/style/index.js +1 -1
  7. package/es/components/Alert/Alert.js +1 -1
  8. package/es/components/Alert/index.js +1 -1
  9. package/es/components/Alert/interface.js +1 -1
  10. package/es/components/Alert/style/css.js +1 -1
  11. package/es/components/Alert/style/index.js +1 -1
  12. package/es/components/Button/Button.js +1 -1
  13. package/es/components/Button/constants.js +1 -1
  14. package/es/components/Button/index.js +1 -1
  15. package/es/components/Button/interface.js +1 -1
  16. package/es/components/Button/style/css.js +1 -1
  17. package/es/components/Button/style/index.js +1 -1
  18. package/es/components/Calendar/Calendar.js +1 -1
  19. package/es/components/Calendar/index.js +1 -1
  20. package/es/components/Calendar/interface.js +1 -1
  21. package/es/components/Calendar/style/css.js +1 -1
  22. package/es/components/Calendar/style/index.js +1 -1
  23. package/es/components/Carousel/Carousel.js +1 -1
  24. package/es/components/Carousel/index.js +1 -1
  25. package/es/components/Carousel/interface.js +1 -1
  26. package/es/components/Carousel/style/css.js +1 -1
  27. package/es/components/Carousel/style/index.js +1 -1
  28. package/es/components/Cell/Cell.js +1 -1
  29. package/es/components/Cell/index.js +1 -1
  30. package/es/components/Cell/interface.js +1 -1
  31. package/es/components/Cell/style/css.js +1 -1
  32. package/es/components/Cell/style/index.js +1 -1
  33. package/es/components/Checkbox/BaseCheckbox.js +1 -1
  34. package/es/components/Checkbox/Checkbox.js +1 -1
  35. package/es/components/Checkbox/CheckboxGroup.js +1 -1
  36. package/es/components/Checkbox/CheckboxGroupContext.js +1 -1
  37. package/es/components/Checkbox/constants.js +1 -1
  38. package/es/components/Checkbox/index.js +1 -1
  39. package/es/components/Checkbox/interface.js +1 -1
  40. package/es/components/Checkbox/style/css.js +1 -1
  41. package/es/components/Checkbox/style/index.js +1 -1
  42. package/es/components/CoachMark/CoachMark.js +1 -1
  43. package/es/components/CoachMark/index.js +1 -1
  44. package/es/components/CoachMark/interface.js +1 -1
  45. package/es/components/CoachMark/style/css.js +1 -1
  46. package/es/components/CoachMark/style/index.js +1 -1
  47. package/es/components/Copy/Clipboard.js +1 -1
  48. package/es/components/Copy/Copy.js +1 -1
  49. package/es/components/Copy/index.js +1 -1
  50. package/es/components/Copy/interface.js +1 -1
  51. package/es/components/Copy/style/css.js +1 -1
  52. package/es/components/Copy/style/index.js +1 -1
  53. package/es/components/Dialog/Dialog.js +1 -1
  54. package/es/components/Dialog/constants.js +1 -1
  55. package/es/components/Dialog/index.js +1 -1
  56. package/es/components/Dialog/interface.js +1 -1
  57. package/es/components/Dialog/style/css.js +1 -1
  58. package/es/components/Dialog/style/index.js +1 -1
  59. package/es/components/Divider/Divider.js +1 -1
  60. package/es/components/Divider/constants.js +1 -1
  61. package/es/components/Divider/index.js +1 -1
  62. package/es/components/Divider/interface.js +1 -1
  63. package/es/components/Divider/style/css.js +1 -1
  64. package/es/components/Divider/style/index.js +1 -1
  65. package/es/components/Drawer/Drawer.js +1 -1
  66. package/es/components/Drawer/constants.js +1 -1
  67. package/es/components/Drawer/hooks/index.js +1 -1
  68. package/es/components/Drawer/hooks/useBodyScrollLock.js +1 -1
  69. package/es/components/Drawer/hooks/useDialogFocus.js +1 -1
  70. package/es/components/Drawer/hooks/useDrawerTransition.js +1 -1
  71. package/es/components/Drawer/hooks/useEscapeClose.js +1 -1
  72. package/es/components/Drawer/index.js +1 -1
  73. package/es/components/Drawer/interface.js +1 -1
  74. package/es/components/Drawer/style/css.js +1 -1
  75. package/es/components/Drawer/style/index.js +1 -1
  76. package/es/components/Dropdown/Dropdown.js +3 -11
  77. package/es/components/Dropdown/index.js +1 -1
  78. package/es/components/Dropdown/interface.js +1 -1
  79. package/es/components/Dropdown/style/css.js +1 -1
  80. package/es/components/Dropdown/style/index.js +1 -1
  81. package/es/components/Empty/Empty.js +1 -1
  82. package/es/components/Empty/index.js +1 -1
  83. package/es/components/Empty/interface.js +1 -1
  84. package/es/components/Empty/style/css.js +1 -1
  85. package/es/components/Empty/style/index.js +1 -1
  86. package/es/components/Flex/Flex.js +1 -1
  87. package/es/components/Flex/constants.js +1 -1
  88. package/es/components/Flex/index.js +1 -1
  89. package/es/components/Flex/interface.js +1 -1
  90. package/es/components/Flex/style/css.js +1 -1
  91. package/es/components/Flex/style/index.js +1 -1
  92. package/es/components/Grid/Col.js +1 -1
  93. package/es/components/Grid/Grid.js +1 -1
  94. package/es/components/Grid/Row.js +1 -1
  95. package/es/components/Grid/constants.js +1 -1
  96. package/es/components/Grid/helper.js +1 -1
  97. package/es/components/Grid/index.js +1 -1
  98. package/es/components/Grid/interface.js +1 -1
  99. package/es/components/Grid/style/css.js +1 -1
  100. package/es/components/Grid/style/index.js +1 -1
  101. package/es/components/Icons/Icons.js +1 -1
  102. package/es/components/Icons/Illustrations.js +1 -1
  103. package/es/components/Icons/Logo.js +1 -1
  104. package/es/components/Icons/SVGs.js +1 -1
  105. package/es/components/Icons/Wrapper.js +1 -1
  106. package/es/components/Icons/index.js +1 -1
  107. package/es/components/Icons/interface.js +1 -1
  108. package/es/components/Icons/style/css.js +1 -1
  109. package/es/components/Icons/style/index.js +1 -1
  110. package/es/components/Input/Amount/Amount.js +1 -1
  111. package/es/components/Input/Amount/helper.js +1 -1
  112. package/es/components/Input/Amount/index.js +1 -1
  113. package/es/components/Input/Amount/style/css.js +1 -1
  114. package/es/components/Input/Amount/style/index.js +1 -1
  115. package/es/components/Input/FieldShell/FieldShell.js +1 -1
  116. package/es/components/Input/FieldShell/index.js +1 -1
  117. package/es/components/Input/Input/Input.js +1 -1
  118. package/es/components/Input/Input/index.js +1 -1
  119. package/es/components/Input/Mask/Mask.js +1 -1
  120. package/es/components/Input/Mask/index.js +1 -1
  121. package/es/components/Input/OTP/OTP.js +1 -1
  122. package/es/components/Input/OTP/index.js +1 -1
  123. package/es/components/Input/Password/Password.js +1 -1
  124. package/es/components/Input/Password/index.js +1 -1
  125. package/es/components/Input/Search/Search.js +1 -1
  126. package/es/components/Input/Search/index.js +1 -1
  127. package/es/components/Input/TextArea/TextArea.js +1 -1
  128. package/es/components/Input/TextArea/index.js +1 -1
  129. package/es/components/Input/Trade/Trade.js +1 -1
  130. package/es/components/Input/Trade/index.js +1 -1
  131. package/es/components/Input/constants.js +1 -1
  132. package/es/components/Input/index.js +1 -1
  133. package/es/components/Input/interface.js +1 -1
  134. package/es/components/Input/style/css.js +1 -1
  135. package/es/components/Input/style/index.js +1 -1
  136. package/es/components/Input/useAmountInput.js +1 -1
  137. package/es/components/Input/useSyncRef.js +1 -1
  138. package/es/components/Link/Link.js +1 -1
  139. package/es/components/Link/constants.js +1 -1
  140. package/es/components/Link/index.js +1 -1
  141. package/es/components/Link/interface.js +1 -1
  142. package/es/components/Link/style/css.js +1 -1
  143. package/es/components/Link/style/index.js +1 -1
  144. package/es/components/Navigation/Nav.js +1 -1
  145. package/es/components/Navigation/Navigation.js +1 -1
  146. package/es/components/Navigation/NavigationLogo.js +1 -1
  147. package/es/components/Navigation/NavigationStepper.js +1 -1
  148. package/es/components/Navigation/index.js +1 -1
  149. package/es/components/Navigation/interface.js +1 -1
  150. package/es/components/Navigation/style/css.js +1 -1
  151. package/es/components/Navigation/style/index.js +1 -1
  152. package/es/components/Notification/Notification.js +1 -1
  153. package/es/components/Notification/NotificationStatic.js +1 -1
  154. package/es/components/Notification/constants.js +1 -1
  155. package/es/components/Notification/index.js +1 -1
  156. package/es/components/Notification/interface.js +1 -1
  157. package/es/components/Notification/style/css.js +1 -1
  158. package/es/components/Notification/style/index.js +1 -1
  159. package/es/components/Pagination/Pagination.js +1 -1
  160. package/es/components/Pagination/constants.js +1 -1
  161. package/es/components/Pagination/index.js +1 -1
  162. package/es/components/Pagination/interface.js +1 -1
  163. package/es/components/Pagination/style/css.js +1 -1
  164. package/es/components/Pagination/style/index.js +1 -1
  165. package/es/components/Pagination/usePagination.js +1 -1
  166. package/es/components/Popconfirm/Popconfirm.js +1 -1
  167. package/es/components/Popconfirm/constants.js +1 -1
  168. package/es/components/Popconfirm/index.js +1 -1
  169. package/es/components/Popconfirm/interface.js +1 -1
  170. package/es/components/Popconfirm/style/css.js +1 -1
  171. package/es/components/Popconfirm/style/index.js +1 -1
  172. package/es/components/Portal/Portal.js +1 -1
  173. package/es/components/Portal/index.js +1 -1
  174. package/es/components/Portal/interface.js +1 -1
  175. package/es/components/ProForm/ProForm.js +1 -1
  176. package/es/components/ProForm/ProFormDependency.js +1 -1
  177. package/es/components/ProForm/ProFormGroup.js +1 -1
  178. package/es/components/ProForm/ProFormItem.js +1 -1
  179. package/es/components/ProForm/ProFormList.js +1 -1
  180. package/es/components/ProForm/Submitter.js +1 -1
  181. package/es/components/ProForm/constants.js +1 -1
  182. package/es/components/ProForm/context.js +1 -1
  183. package/es/components/ProForm/core/constants.js +1 -1
  184. package/es/components/ProForm/core/hooks/useForm.js +1 -1
  185. package/es/components/ProForm/core/hooks/useFormCore.js +1 -1
  186. package/es/components/ProForm/core/index.js +1 -1
  187. package/es/components/ProForm/core/interface.js +1 -1
  188. package/es/components/ProForm/core/useFormItem.js +1 -1
  189. package/es/components/ProForm/fields/ProFormCheckbox.js +1 -1
  190. package/es/components/ProForm/fields/ProFormCheckboxGroup.js +1 -1
  191. package/es/components/ProForm/fields/ProFormDatePicker.js +1 -1
  192. package/es/components/ProForm/fields/ProFormFieldSet.js +1 -1
  193. package/es/components/ProForm/fields/ProFormPassword.js +1 -1
  194. package/es/components/ProForm/fields/ProFormRadioGroup.js +1 -1
  195. package/es/components/ProForm/fields/ProFormSelect.js +1 -1
  196. package/es/components/ProForm/fields/ProFormSlider.js +1 -1
  197. package/es/components/ProForm/fields/ProFormSwitch.js +1 -1
  198. package/es/components/ProForm/fields/ProFormText.js +1 -1
  199. package/es/components/ProForm/fields/ProFormTextArea.js +1 -1
  200. package/es/components/ProForm/fields/ProFormUpload.js +1 -1
  201. package/es/components/ProForm/fields/createProFormField.js +1 -1
  202. package/es/components/ProForm/fields/index.js +1 -1
  203. package/es/components/ProForm/hooks/useFieldRequest.js +1 -1
  204. package/es/components/ProForm/index.js +1 -1
  205. package/es/components/ProForm/interface.js +1 -1
  206. package/es/components/ProForm/layouts/DialogForm.js +1 -1
  207. package/es/components/ProForm/layouts/DrawerForm.js +1 -1
  208. package/es/components/ProForm/layouts/QueryFilter.js +1 -1
  209. package/es/components/ProForm/layouts/index.js +1 -1
  210. package/es/components/ProForm/layouts/useOverlayForm.js +1 -1
  211. package/es/components/ProForm/style/css.js +1 -1
  212. package/es/components/ProForm/style/index.js +1 -1
  213. package/es/components/ProForm/utils.js +1 -1
  214. package/es/components/Progress/Progress.js +1 -1
  215. package/es/components/Progress/constants.js +1 -1
  216. package/es/components/Progress/index.js +1 -1
  217. package/es/components/Progress/interface.js +1 -1
  218. package/es/components/Progress/style/css.js +1 -1
  219. package/es/components/Progress/style/index.js +1 -1
  220. package/es/components/Radio/BaseRadio.js +1 -1
  221. package/es/components/Radio/Radio.js +1 -1
  222. package/es/components/Radio/RadioGroup.js +1 -1
  223. package/es/components/Radio/RadioGroupContext.js +1 -1
  224. package/es/components/Radio/constants.js +1 -1
  225. package/es/components/Radio/index.js +1 -1
  226. package/es/components/Radio/interface.js +1 -1
  227. package/es/components/Radio/style/css.js +1 -1
  228. package/es/components/Radio/style/index.js +1 -1
  229. package/es/components/ResizeObserver/Collection.js +1 -1
  230. package/es/components/ResizeObserver/ResizeObserver.js +1 -1
  231. package/es/components/ResizeObserver/SingleObserver/index.js +1 -1
  232. package/es/components/ResizeObserver/index.js +1 -1
  233. package/es/components/ResizeObserver/interface.js +1 -1
  234. package/es/components/ResizeObserver/useResizeObserver.js +1 -1
  235. package/es/components/ResizeObserver/utils/observerUtil.js +1 -1
  236. package/es/components/ResizeObserver/utils/reactUtil.js +1 -1
  237. package/es/components/Segment/Segment.js +1 -1
  238. package/es/components/Segment/index.js +1 -1
  239. package/es/components/Segment/interface.js +1 -1
  240. package/es/components/Segment/style/css.js +1 -1
  241. package/es/components/Segment/style/index.js +1 -1
  242. package/es/components/Select/Select.js +59 -61
  243. package/es/components/Select/SelectFieldShell.d.ts +0 -1
  244. package/es/components/Select/SelectFieldShell.js +3 -9
  245. package/es/components/Select/SelectOptionContent.js +1 -1
  246. package/es/components/Select/SelectSearchControl.js +1 -1
  247. package/es/components/Select/SelectValueContent.js +1 -1
  248. package/es/components/Select/constants.js +1 -1
  249. package/es/components/Select/index.d.ts +0 -1
  250. package/es/components/Select/index.js +1 -2
  251. package/es/components/Select/interface.d.ts +0 -80
  252. package/es/components/Select/interface.js +1 -1
  253. package/es/components/Select/style/css.js +1 -1
  254. package/es/components/Select/style/index.js +1 -1
  255. package/es/components/Select/utils.js +1 -1
  256. package/es/components/Skeleton/Skeleton.js +1 -1
  257. package/es/components/Skeleton/index.js +1 -1
  258. package/es/components/Skeleton/interface.js +1 -1
  259. package/es/components/Skeleton/style/css.js +1 -1
  260. package/es/components/Skeleton/style/index.js +1 -1
  261. package/es/components/Slider/Slider.js +1 -1
  262. package/es/components/Slider/index.js +1 -1
  263. package/es/components/Slider/interface.js +1 -1
  264. package/es/components/Slider/style/css.js +1 -1
  265. package/es/components/Slider/style/index.js +1 -1
  266. package/es/components/Space/Space.js +1 -1
  267. package/es/components/Space/constants.js +1 -1
  268. package/es/components/Space/index.js +1 -1
  269. package/es/components/Space/interface.js +1 -1
  270. package/es/components/Space/style/css.js +1 -1
  271. package/es/components/Space/style/index.js +1 -1
  272. package/es/components/Spinner/Spinner.js +1 -1
  273. package/es/components/Spinner/index.js +1 -1
  274. package/es/components/Spinner/interface.js +1 -1
  275. package/es/components/Spinner/style/css.js +1 -1
  276. package/es/components/Spinner/style/index.js +1 -1
  277. package/es/components/Step/Step.js +1 -1
  278. package/es/components/Step/constants.js +1 -1
  279. package/es/components/Step/index.js +1 -1
  280. package/es/components/Step/interface.js +1 -1
  281. package/es/components/Step/style/css.js +1 -1
  282. package/es/components/Step/style/index.js +1 -1
  283. package/es/components/Switch/Switch.js +1 -1
  284. package/es/components/Switch/constants.js +1 -1
  285. package/es/components/Switch/index.js +1 -1
  286. package/es/components/Switch/interface.js +1 -1
  287. package/es/components/Switch/style/css.js +1 -1
  288. package/es/components/Switch/style/index.js +1 -1
  289. package/es/components/Table/Table.js +1 -1
  290. package/es/components/Table/VirtualTable.js +1 -1
  291. package/es/components/Table/constants.js +1 -1
  292. package/es/components/Table/core/useTableColumns.js +1 -1
  293. package/es/components/Table/core/useTableDataPipeline.js +1 -1
  294. package/es/components/Table/core/useTableExpand.js +1 -1
  295. package/es/components/Table/core/useTableSelection.js +1 -1
  296. package/es/components/Table/features/ExpandTrigger.js +1 -1
  297. package/es/components/Table/features/SelectionColumn.js +1 -1
  298. package/es/components/Table/features/SortTrigger.js +1 -1
  299. package/es/components/Table/index.js +1 -1
  300. package/es/components/Table/interface.js +1 -1
  301. package/es/components/Table/internal/index.js +1 -1
  302. package/es/components/Table/internal/kernel/Body/BodyRow.js +1 -1
  303. package/es/components/Table/internal/kernel/Body/ExpandedRow.js +1 -1
  304. package/es/components/Table/internal/kernel/Body/MeasureCell.js +1 -1
  305. package/es/components/Table/internal/kernel/Body/MeasureRow.js +1 -1
  306. package/es/components/Table/internal/kernel/Body/index.js +1 -1
  307. package/es/components/Table/internal/kernel/Cell/index.js +1 -1
  308. package/es/components/Table/internal/kernel/Cell/useCellRender.js +1 -1
  309. package/es/components/Table/internal/kernel/Cell/useHoverState.js +1 -1
  310. package/es/components/Table/internal/kernel/ColGroup.js +1 -1
  311. package/es/components/Table/internal/kernel/FixedHolder/index.js +1 -1
  312. package/es/components/Table/internal/kernel/Footer/Cell.js +1 -1
  313. package/es/components/Table/internal/kernel/Footer/Row.js +1 -1
  314. package/es/components/Table/internal/kernel/Footer/Summary.js +1 -1
  315. package/es/components/Table/internal/kernel/Footer/SummaryContext.js +1 -1
  316. package/es/components/Table/internal/kernel/Footer/index.js +1 -1
  317. package/es/components/Table/internal/kernel/Header/Header.js +1 -1
  318. package/es/components/Table/internal/kernel/Header/HeaderRow.js +1 -1
  319. package/es/components/Table/internal/kernel/Panel/index.js +1 -1
  320. package/es/components/Table/internal/kernel/Table.js +1 -1
  321. package/es/components/Table/internal/kernel/VirtualTable/BodyGrid.js +1 -1
  322. package/es/components/Table/internal/kernel/VirtualTable/BodyLine.js +1 -1
  323. package/es/components/Table/internal/kernel/VirtualTable/VirtualCell.js +1 -1
  324. package/es/components/Table/internal/kernel/VirtualTable/context.js +1 -1
  325. package/es/components/Table/internal/kernel/VirtualTable/index.js +1 -1
  326. package/es/components/Table/internal/kernel/constant.js +1 -1
  327. package/es/components/Table/internal/kernel/context/PerfContext.js +1 -1
  328. package/es/components/Table/internal/kernel/context/TableContext.js +1 -1
  329. package/es/components/Table/internal/kernel/hooks/useColumns/index.js +1 -1
  330. package/es/components/Table/internal/kernel/hooks/useColumns/useWidthColumns.js +1 -1
  331. package/es/components/Table/internal/kernel/hooks/useExpand.js +1 -1
  332. package/es/components/Table/internal/kernel/hooks/useFixedInfo.js +1 -1
  333. package/es/components/Table/internal/kernel/hooks/useFlattenRecords.js +1 -1
  334. package/es/components/Table/internal/kernel/hooks/useFrame.js +1 -1
  335. package/es/components/Table/internal/kernel/hooks/useHover.js +1 -1
  336. package/es/components/Table/internal/kernel/hooks/useRenderTimes.js +1 -1
  337. package/es/components/Table/internal/kernel/hooks/useRowInfo.js +1 -1
  338. package/es/components/Table/internal/kernel/hooks/useSticky.js +1 -1
  339. package/es/components/Table/internal/kernel/hooks/useStickyOffsets.js +1 -1
  340. package/es/components/Table/internal/kernel/index.js +1 -1
  341. package/es/components/Table/internal/kernel/interface.js +1 -1
  342. package/es/components/Table/internal/kernel/namePathType.js +1 -1
  343. package/es/components/Table/internal/kernel/selector-context/Immutable.js +1 -1
  344. package/es/components/Table/internal/kernel/selector-context/context.js +1 -1
  345. package/es/components/Table/internal/kernel/selector-context/index.js +1 -1
  346. package/es/components/Table/internal/kernel/selector-context/isEqual.js +1 -1
  347. package/es/components/Table/internal/kernel/stickyScrollBar.js +1 -1
  348. package/es/components/Table/internal/kernel/sugar/Column.js +1 -1
  349. package/es/components/Table/internal/kernel/sugar/ColumnGroup.js +1 -1
  350. package/es/components/Table/internal/kernel/utils/dom/canUseDom.js +1 -1
  351. package/es/components/Table/internal/kernel/utils/dom/isVisible.js +1 -1
  352. package/es/components/Table/internal/kernel/utils/expandUtil.js +1 -1
  353. package/es/components/Table/internal/kernel/utils/fixUtil.js +1 -1
  354. package/es/components/Table/internal/kernel/utils/get.js +1 -1
  355. package/es/components/Table/internal/kernel/utils/getScrollBarSize.js +1 -1
  356. package/es/components/Table/internal/kernel/utils/legacyUtil.js +1 -1
  357. package/es/components/Table/internal/kernel/utils/offsetUtil.js +1 -1
  358. package/es/components/Table/internal/kernel/utils/pickAttrs.js +1 -1
  359. package/es/components/Table/internal/kernel/utils/useMemo.js +1 -1
  360. package/es/components/Table/internal/kernel/utils/valueUtil.js +1 -1
  361. package/es/components/Table/internal/kernel/utils/warning.js +1 -1
  362. package/es/components/Table/renderers/BodyCell.js +1 -1
  363. package/es/components/Table/renderers/CellContent.js +1 -1
  364. package/es/components/Table/renderers/EmptyState.js +1 -1
  365. package/es/components/Table/renderers/ExpandedRowContainer.js +1 -1
  366. package/es/components/Table/renderers/HeaderCell.js +1 -1
  367. package/es/components/Table/style/css.js +1 -1
  368. package/es/components/Table/style/index.js +1 -1
  369. package/es/components/Tabs/Tabs.js +1 -1
  370. package/es/components/Tabs/index.js +1 -1
  371. package/es/components/Tabs/interface.js +1 -1
  372. package/es/components/Tabs/style/css.js +1 -1
  373. package/es/components/Tabs/style/index.js +1 -1
  374. package/es/components/Tag/Tag.js +1 -1
  375. package/es/components/Tag/constants.js +1 -1
  376. package/es/components/Tag/index.js +1 -1
  377. package/es/components/Tag/interface.js +1 -1
  378. package/es/components/Tag/style/css.js +1 -1
  379. package/es/components/Tag/style/index.js +1 -1
  380. package/es/components/Tooltip/Tooltip.js +7 -3
  381. package/es/components/Tooltip/index.js +1 -1
  382. package/es/components/Tooltip/interface.js +1 -1
  383. package/es/components/Tooltip/style/css.js +1 -1
  384. package/es/components/Tooltip/style/index.js +1 -1
  385. package/es/components/Tour/Tour.js +1 -1
  386. package/es/components/Tour/index.js +1 -1
  387. package/es/components/Tour/interface.js +1 -1
  388. package/es/components/Trigger/Trigger.js +8 -33
  389. package/es/components/Trigger/index.js +1 -1
  390. package/es/components/Trigger/interface.d.ts +2 -25
  391. package/es/components/Trigger/interface.js +1 -1
  392. package/es/components/Trigger/style/css.js +1 -1
  393. package/es/components/Trigger/style/index.js +1 -1
  394. package/es/components/Typography/Typography.js +1 -1
  395. package/es/components/Typography/constants.js +1 -1
  396. package/es/components/Typography/index.js +1 -1
  397. package/es/components/Typography/interface.js +1 -1
  398. package/es/components/Typography/render.js +1 -1
  399. package/es/components/Typography/style/css.js +1 -1
  400. package/es/components/Typography/style/index.js +1 -1
  401. package/es/components/Typography/useTypographyEnhancements.js +1 -1
  402. package/es/components/Typography/utils.js +1 -1
  403. package/es/components/Upload/Upload.js +1 -1
  404. package/es/components/Upload/UploadFileBar.js +1 -1
  405. package/es/components/Upload/index.js +1 -1
  406. package/es/components/Upload/interface.js +1 -1
  407. package/es/components/Upload/style/css.js +1 -1
  408. package/es/components/Upload/style/index.js +1 -1
  409. package/es/components/VirtualList/Filler.js +1 -1
  410. package/es/components/VirtualList/Item.js +1 -1
  411. package/es/components/VirtualList/ScrollBar.js +1 -1
  412. package/es/components/VirtualList/VirtualList.js +1 -1
  413. package/es/components/VirtualList/constants.js +1 -1
  414. package/es/components/VirtualList/hooks/useChildren.js +1 -1
  415. package/es/components/VirtualList/hooks/useDiffItem.js +1 -1
  416. package/es/components/VirtualList/hooks/useFrameWheel.js +1 -1
  417. package/es/components/VirtualList/hooks/useGetSize.js +1 -1
  418. package/es/components/VirtualList/hooks/useHeights.js +1 -1
  419. package/es/components/VirtualList/hooks/useMobileTouchMove.js +1 -1
  420. package/es/components/VirtualList/hooks/useOriginScroll.js +1 -1
  421. package/es/components/VirtualList/hooks/useScrollDrag.js +1 -1
  422. package/es/components/VirtualList/hooks/useScrollTo.js +1 -1
  423. package/es/components/VirtualList/index.js +1 -1
  424. package/es/components/VirtualList/interface.js +1 -1
  425. package/es/components/VirtualList/style/css.js +1 -1
  426. package/es/components/VirtualList/style/index.js +1 -1
  427. package/es/components/VirtualList/utils/CacheMap.js +1 -1
  428. package/es/components/VirtualList/utils/algorithmUtil.js +1 -1
  429. package/es/components/VirtualList/utils/isFirefox.js +1 -1
  430. package/es/components/VirtualList/utils/raf.js +1 -1
  431. package/es/components/VirtualList/utils/scrollbarUtil.js +1 -1
  432. package/es/index.css +1 -1
  433. package/es/index.d.ts +2 -2
  434. package/es/index.js +2 -2
  435. package/es/stories/docs/ComponentDocsPage.js +1 -1
  436. package/es/stories/docs/componentDocMeta.js +1 -1
  437. package/es/stories/docs/storybook-docs.css +1 -323
  438. package/es/utils/classnames.js +1 -1
  439. package/es/utils/clipboard.js +1 -1
  440. package/es/utils/ref.js +1 -1
  441. package/es/utils/uuid.js +1 -1
  442. package/lib/components/Accordion/Accordion.js +1 -1
  443. package/lib/components/Accordion/constants.js +1 -1
  444. package/lib/components/Accordion/index.js +1 -1
  445. package/lib/components/Accordion/interface.js +1 -1
  446. package/lib/components/Accordion/style/css.js +1 -1
  447. package/lib/components/Accordion/style/index.js +1 -1
  448. package/lib/components/Alert/Alert.js +1 -1
  449. package/lib/components/Alert/index.js +1 -1
  450. package/lib/components/Alert/interface.js +1 -1
  451. package/lib/components/Alert/style/css.js +1 -1
  452. package/lib/components/Alert/style/index.js +1 -1
  453. package/lib/components/Button/Button.js +1 -1
  454. package/lib/components/Button/constants.js +1 -1
  455. package/lib/components/Button/index.js +1 -1
  456. package/lib/components/Button/interface.js +1 -1
  457. package/lib/components/Button/style/css.js +1 -1
  458. package/lib/components/Button/style/index.js +1 -1
  459. package/lib/components/Calendar/Calendar.js +1 -1
  460. package/lib/components/Calendar/index.js +1 -1
  461. package/lib/components/Calendar/interface.js +1 -1
  462. package/lib/components/Calendar/style/css.js +1 -1
  463. package/lib/components/Calendar/style/index.js +1 -1
  464. package/lib/components/Carousel/Carousel.js +1 -1
  465. package/lib/components/Carousel/index.js +1 -1
  466. package/lib/components/Carousel/interface.js +1 -1
  467. package/lib/components/Carousel/style/css.js +1 -1
  468. package/lib/components/Carousel/style/index.js +1 -1
  469. package/lib/components/Cell/Cell.js +1 -1
  470. package/lib/components/Cell/index.js +1 -1
  471. package/lib/components/Cell/interface.js +1 -1
  472. package/lib/components/Cell/style/css.js +1 -1
  473. package/lib/components/Cell/style/index.js +1 -1
  474. package/lib/components/Checkbox/BaseCheckbox.js +1 -1
  475. package/lib/components/Checkbox/Checkbox.js +1 -1
  476. package/lib/components/Checkbox/CheckboxGroup.js +1 -1
  477. package/lib/components/Checkbox/CheckboxGroupContext.js +1 -1
  478. package/lib/components/Checkbox/constants.js +1 -1
  479. package/lib/components/Checkbox/index.js +1 -1
  480. package/lib/components/Checkbox/interface.js +1 -1
  481. package/lib/components/Checkbox/style/css.js +1 -1
  482. package/lib/components/Checkbox/style/index.js +1 -1
  483. package/lib/components/CoachMark/CoachMark.js +1 -1
  484. package/lib/components/CoachMark/index.js +1 -1
  485. package/lib/components/CoachMark/interface.js +1 -1
  486. package/lib/components/CoachMark/style/css.js +1 -1
  487. package/lib/components/CoachMark/style/index.js +1 -1
  488. package/lib/components/Copy/Clipboard.js +1 -1
  489. package/lib/components/Copy/Copy.js +1 -1
  490. package/lib/components/Copy/index.js +1 -1
  491. package/lib/components/Copy/interface.js +1 -1
  492. package/lib/components/Copy/style/css.js +1 -1
  493. package/lib/components/Copy/style/index.js +1 -1
  494. package/lib/components/Dialog/Dialog.js +1 -1
  495. package/lib/components/Dialog/constants.js +1 -1
  496. package/lib/components/Dialog/index.js +1 -1
  497. package/lib/components/Dialog/interface.js +1 -1
  498. package/lib/components/Dialog/style/css.js +1 -1
  499. package/lib/components/Dialog/style/index.js +1 -1
  500. package/lib/components/Divider/Divider.js +1 -1
  501. package/lib/components/Divider/constants.js +1 -1
  502. package/lib/components/Divider/index.js +1 -1
  503. package/lib/components/Divider/interface.js +1 -1
  504. package/lib/components/Divider/style/css.js +1 -1
  505. package/lib/components/Divider/style/index.js +1 -1
  506. package/lib/components/Drawer/Drawer.js +1 -1
  507. package/lib/components/Drawer/constants.js +1 -1
  508. package/lib/components/Drawer/hooks/index.js +1 -1
  509. package/lib/components/Drawer/hooks/useBodyScrollLock.js +1 -1
  510. package/lib/components/Drawer/hooks/useDialogFocus.js +1 -1
  511. package/lib/components/Drawer/hooks/useDrawerTransition.js +1 -1
  512. package/lib/components/Drawer/hooks/useEscapeClose.js +1 -1
  513. package/lib/components/Drawer/index.js +1 -1
  514. package/lib/components/Drawer/interface.js +1 -1
  515. package/lib/components/Drawer/style/css.js +1 -1
  516. package/lib/components/Drawer/style/index.js +1 -1
  517. package/lib/components/Dropdown/Dropdown.js +3 -11
  518. package/lib/components/Dropdown/index.js +1 -1
  519. package/lib/components/Dropdown/interface.js +1 -1
  520. package/lib/components/Dropdown/style/css.js +1 -1
  521. package/lib/components/Dropdown/style/index.js +1 -1
  522. package/lib/components/Empty/Empty.js +1 -1
  523. package/lib/components/Empty/index.js +1 -1
  524. package/lib/components/Empty/interface.js +1 -1
  525. package/lib/components/Empty/style/css.js +1 -1
  526. package/lib/components/Empty/style/index.js +1 -1
  527. package/lib/components/Flex/Flex.js +1 -1
  528. package/lib/components/Flex/constants.js +1 -1
  529. package/lib/components/Flex/index.js +1 -1
  530. package/lib/components/Flex/interface.js +1 -1
  531. package/lib/components/Flex/style/css.js +1 -1
  532. package/lib/components/Flex/style/index.js +1 -1
  533. package/lib/components/Grid/Col.js +1 -1
  534. package/lib/components/Grid/Grid.js +1 -1
  535. package/lib/components/Grid/Row.js +1 -1
  536. package/lib/components/Grid/constants.js +1 -1
  537. package/lib/components/Grid/helper.js +1 -1
  538. package/lib/components/Grid/index.js +1 -1
  539. package/lib/components/Grid/interface.js +1 -1
  540. package/lib/components/Grid/style/css.js +1 -1
  541. package/lib/components/Grid/style/index.js +1 -1
  542. package/lib/components/Icons/Icons.js +1 -1
  543. package/lib/components/Icons/Illustrations.js +1 -1
  544. package/lib/components/Icons/Logo.js +1 -1
  545. package/lib/components/Icons/SVGs.js +1 -1
  546. package/lib/components/Icons/Wrapper.js +1 -1
  547. package/lib/components/Icons/index.js +1 -1
  548. package/lib/components/Icons/interface.js +1 -1
  549. package/lib/components/Icons/style/css.js +1 -1
  550. package/lib/components/Icons/style/index.js +1 -1
  551. package/lib/components/Input/Amount/Amount.js +1 -1
  552. package/lib/components/Input/Amount/helper.js +1 -1
  553. package/lib/components/Input/Amount/index.js +1 -1
  554. package/lib/components/Input/Amount/style/css.js +1 -1
  555. package/lib/components/Input/Amount/style/index.js +1 -1
  556. package/lib/components/Input/FieldShell/FieldShell.js +1 -1
  557. package/lib/components/Input/FieldShell/index.js +1 -1
  558. package/lib/components/Input/Input/Input.js +1 -1
  559. package/lib/components/Input/Input/index.js +1 -1
  560. package/lib/components/Input/Mask/Mask.js +1 -1
  561. package/lib/components/Input/Mask/index.js +1 -1
  562. package/lib/components/Input/OTP/OTP.js +1 -1
  563. package/lib/components/Input/OTP/index.js +1 -1
  564. package/lib/components/Input/Password/Password.js +1 -1
  565. package/lib/components/Input/Password/index.js +1 -1
  566. package/lib/components/Input/Search/Search.js +1 -1
  567. package/lib/components/Input/Search/index.js +1 -1
  568. package/lib/components/Input/TextArea/TextArea.js +1 -1
  569. package/lib/components/Input/TextArea/index.js +1 -1
  570. package/lib/components/Input/Trade/Trade.js +1 -1
  571. package/lib/components/Input/Trade/index.js +1 -1
  572. package/lib/components/Input/constants.js +1 -1
  573. package/lib/components/Input/index.js +1 -1
  574. package/lib/components/Input/interface.js +1 -1
  575. package/lib/components/Input/style/css.js +1 -1
  576. package/lib/components/Input/style/index.js +1 -1
  577. package/lib/components/Input/useAmountInput.js +1 -1
  578. package/lib/components/Input/useSyncRef.js +1 -1
  579. package/lib/components/Link/Link.js +1 -1
  580. package/lib/components/Link/constants.js +1 -1
  581. package/lib/components/Link/index.js +1 -1
  582. package/lib/components/Link/interface.js +1 -1
  583. package/lib/components/Link/style/css.js +1 -1
  584. package/lib/components/Link/style/index.js +1 -1
  585. package/lib/components/Navigation/Nav.js +1 -1
  586. package/lib/components/Navigation/Navigation.js +1 -1
  587. package/lib/components/Navigation/NavigationLogo.js +1 -1
  588. package/lib/components/Navigation/NavigationStepper.js +1 -1
  589. package/lib/components/Navigation/index.js +1 -1
  590. package/lib/components/Navigation/interface.js +1 -1
  591. package/lib/components/Navigation/style/css.js +1 -1
  592. package/lib/components/Navigation/style/index.js +1 -1
  593. package/lib/components/Notification/Notification.js +1 -1
  594. package/lib/components/Notification/NotificationStatic.js +1 -1
  595. package/lib/components/Notification/constants.js +1 -1
  596. package/lib/components/Notification/index.js +1 -1
  597. package/lib/components/Notification/interface.js +1 -1
  598. package/lib/components/Notification/style/css.js +1 -1
  599. package/lib/components/Notification/style/index.js +1 -1
  600. package/lib/components/Pagination/Pagination.js +1 -1
  601. package/lib/components/Pagination/constants.js +1 -1
  602. package/lib/components/Pagination/index.js +1 -1
  603. package/lib/components/Pagination/interface.js +1 -1
  604. package/lib/components/Pagination/style/css.js +1 -1
  605. package/lib/components/Pagination/style/index.js +1 -1
  606. package/lib/components/Pagination/usePagination.js +1 -1
  607. package/lib/components/Popconfirm/Popconfirm.js +1 -1
  608. package/lib/components/Popconfirm/constants.js +1 -1
  609. package/lib/components/Popconfirm/index.js +1 -1
  610. package/lib/components/Popconfirm/interface.js +1 -1
  611. package/lib/components/Popconfirm/style/css.js +1 -1
  612. package/lib/components/Popconfirm/style/index.js +1 -1
  613. package/lib/components/Portal/Portal.js +1 -1
  614. package/lib/components/Portal/index.js +1 -1
  615. package/lib/components/Portal/interface.js +1 -1
  616. package/lib/components/ProForm/ProForm.js +1 -1
  617. package/lib/components/ProForm/ProFormDependency.js +1 -1
  618. package/lib/components/ProForm/ProFormGroup.js +1 -1
  619. package/lib/components/ProForm/ProFormItem.js +1 -1
  620. package/lib/components/ProForm/ProFormList.js +1 -1
  621. package/lib/components/ProForm/Submitter.js +1 -1
  622. package/lib/components/ProForm/constants.js +1 -1
  623. package/lib/components/ProForm/context.js +1 -1
  624. package/lib/components/ProForm/core/constants.js +1 -1
  625. package/lib/components/ProForm/core/hooks/useForm.js +1 -1
  626. package/lib/components/ProForm/core/hooks/useFormCore.js +1 -1
  627. package/lib/components/ProForm/core/index.js +1 -1
  628. package/lib/components/ProForm/core/interface.js +1 -1
  629. package/lib/components/ProForm/core/useFormItem.js +1 -1
  630. package/lib/components/ProForm/fields/ProFormCheckbox.js +1 -1
  631. package/lib/components/ProForm/fields/ProFormCheckboxGroup.js +1 -1
  632. package/lib/components/ProForm/fields/ProFormDatePicker.js +1 -1
  633. package/lib/components/ProForm/fields/ProFormFieldSet.js +1 -1
  634. package/lib/components/ProForm/fields/ProFormPassword.js +1 -1
  635. package/lib/components/ProForm/fields/ProFormRadioGroup.js +1 -1
  636. package/lib/components/ProForm/fields/ProFormSelect.js +1 -1
  637. package/lib/components/ProForm/fields/ProFormSlider.js +1 -1
  638. package/lib/components/ProForm/fields/ProFormSwitch.js +1 -1
  639. package/lib/components/ProForm/fields/ProFormText.js +1 -1
  640. package/lib/components/ProForm/fields/ProFormTextArea.js +1 -1
  641. package/lib/components/ProForm/fields/ProFormUpload.js +1 -1
  642. package/lib/components/ProForm/fields/createProFormField.js +1 -1
  643. package/lib/components/ProForm/fields/index.js +1 -1
  644. package/lib/components/ProForm/hooks/useFieldRequest.js +1 -1
  645. package/lib/components/ProForm/index.js +1 -1
  646. package/lib/components/ProForm/interface.js +1 -1
  647. package/lib/components/ProForm/layouts/DialogForm.js +1 -1
  648. package/lib/components/ProForm/layouts/DrawerForm.js +1 -1
  649. package/lib/components/ProForm/layouts/QueryFilter.js +1 -1
  650. package/lib/components/ProForm/layouts/index.js +1 -1
  651. package/lib/components/ProForm/layouts/useOverlayForm.js +1 -1
  652. package/lib/components/ProForm/style/css.js +1 -1
  653. package/lib/components/ProForm/style/index.js +1 -1
  654. package/lib/components/ProForm/utils.js +1 -1
  655. package/lib/components/Progress/Progress.js +1 -1
  656. package/lib/components/Progress/constants.js +1 -1
  657. package/lib/components/Progress/index.js +1 -1
  658. package/lib/components/Progress/interface.js +1 -1
  659. package/lib/components/Progress/style/css.js +1 -1
  660. package/lib/components/Progress/style/index.js +1 -1
  661. package/lib/components/Radio/BaseRadio.js +1 -1
  662. package/lib/components/Radio/Radio.js +1 -1
  663. package/lib/components/Radio/RadioGroup.js +1 -1
  664. package/lib/components/Radio/RadioGroupContext.js +1 -1
  665. package/lib/components/Radio/constants.js +1 -1
  666. package/lib/components/Radio/index.js +1 -1
  667. package/lib/components/Radio/interface.js +1 -1
  668. package/lib/components/Radio/style/css.js +1 -1
  669. package/lib/components/Radio/style/index.js +1 -1
  670. package/lib/components/ResizeObserver/Collection.js +1 -1
  671. package/lib/components/ResizeObserver/ResizeObserver.js +1 -1
  672. package/lib/components/ResizeObserver/SingleObserver/index.js +1 -1
  673. package/lib/components/ResizeObserver/index.js +1 -1
  674. package/lib/components/ResizeObserver/interface.js +1 -1
  675. package/lib/components/ResizeObserver/useResizeObserver.js +1 -1
  676. package/lib/components/ResizeObserver/utils/observerUtil.js +1 -1
  677. package/lib/components/ResizeObserver/utils/reactUtil.js +1 -1
  678. package/lib/components/Segment/Segment.js +1 -1
  679. package/lib/components/Segment/index.js +1 -1
  680. package/lib/components/Segment/interface.js +1 -1
  681. package/lib/components/Segment/style/css.js +1 -1
  682. package/lib/components/Segment/style/index.js +1 -1
  683. package/lib/components/Select/Select.js +58 -60
  684. package/lib/components/Select/SelectFieldShell.d.ts +0 -1
  685. package/lib/components/Select/SelectFieldShell.js +3 -9
  686. package/lib/components/Select/SelectOptionContent.js +1 -1
  687. package/lib/components/Select/SelectSearchControl.js +1 -1
  688. package/lib/components/Select/SelectValueContent.js +1 -1
  689. package/lib/components/Select/constants.js +1 -1
  690. package/lib/components/Select/index.d.ts +0 -1
  691. package/lib/components/Select/index.js +2 -11
  692. package/lib/components/Select/interface.d.ts +0 -80
  693. package/lib/components/Select/interface.js +1 -1
  694. package/lib/components/Select/style/css.js +1 -1
  695. package/lib/components/Select/style/index.js +1 -1
  696. package/lib/components/Select/utils.js +1 -1
  697. package/lib/components/Skeleton/Skeleton.js +1 -1
  698. package/lib/components/Skeleton/index.js +1 -1
  699. package/lib/components/Skeleton/interface.js +1 -1
  700. package/lib/components/Skeleton/style/css.js +1 -1
  701. package/lib/components/Skeleton/style/index.js +1 -1
  702. package/lib/components/Slider/Slider.js +1 -1
  703. package/lib/components/Slider/index.js +1 -1
  704. package/lib/components/Slider/interface.js +1 -1
  705. package/lib/components/Slider/style/css.js +1 -1
  706. package/lib/components/Slider/style/index.js +1 -1
  707. package/lib/components/Space/Space.js +1 -1
  708. package/lib/components/Space/constants.js +1 -1
  709. package/lib/components/Space/index.js +1 -1
  710. package/lib/components/Space/interface.js +1 -1
  711. package/lib/components/Space/style/css.js +1 -1
  712. package/lib/components/Space/style/index.js +1 -1
  713. package/lib/components/Spinner/Spinner.js +1 -1
  714. package/lib/components/Spinner/index.js +1 -1
  715. package/lib/components/Spinner/interface.js +1 -1
  716. package/lib/components/Spinner/style/css.js +1 -1
  717. package/lib/components/Spinner/style/index.js +1 -1
  718. package/lib/components/Step/Step.js +1 -1
  719. package/lib/components/Step/constants.js +1 -1
  720. package/lib/components/Step/index.js +1 -1
  721. package/lib/components/Step/interface.js +1 -1
  722. package/lib/components/Step/style/css.js +1 -1
  723. package/lib/components/Step/style/index.js +1 -1
  724. package/lib/components/Switch/Switch.js +1 -1
  725. package/lib/components/Switch/constants.js +1 -1
  726. package/lib/components/Switch/index.js +1 -1
  727. package/lib/components/Switch/interface.js +1 -1
  728. package/lib/components/Switch/style/css.js +1 -1
  729. package/lib/components/Switch/style/index.js +1 -1
  730. package/lib/components/Table/Table.js +1 -1
  731. package/lib/components/Table/VirtualTable.js +1 -1
  732. package/lib/components/Table/constants.js +1 -1
  733. package/lib/components/Table/core/useTableColumns.js +1 -1
  734. package/lib/components/Table/core/useTableDataPipeline.js +1 -1
  735. package/lib/components/Table/core/useTableExpand.js +1 -1
  736. package/lib/components/Table/core/useTableSelection.js +1 -1
  737. package/lib/components/Table/features/ExpandTrigger.js +1 -1
  738. package/lib/components/Table/features/SelectionColumn.js +1 -1
  739. package/lib/components/Table/features/SortTrigger.js +1 -1
  740. package/lib/components/Table/index.js +1 -1
  741. package/lib/components/Table/interface.js +1 -1
  742. package/lib/components/Table/internal/index.js +1 -1
  743. package/lib/components/Table/internal/kernel/Body/BodyRow.js +1 -1
  744. package/lib/components/Table/internal/kernel/Body/ExpandedRow.js +1 -1
  745. package/lib/components/Table/internal/kernel/Body/MeasureCell.js +1 -1
  746. package/lib/components/Table/internal/kernel/Body/MeasureRow.js +1 -1
  747. package/lib/components/Table/internal/kernel/Body/index.js +1 -1
  748. package/lib/components/Table/internal/kernel/Cell/index.js +1 -1
  749. package/lib/components/Table/internal/kernel/Cell/useCellRender.js +1 -1
  750. package/lib/components/Table/internal/kernel/Cell/useHoverState.js +1 -1
  751. package/lib/components/Table/internal/kernel/ColGroup.js +1 -1
  752. package/lib/components/Table/internal/kernel/FixedHolder/index.js +1 -1
  753. package/lib/components/Table/internal/kernel/Footer/Cell.js +1 -1
  754. package/lib/components/Table/internal/kernel/Footer/Row.js +1 -1
  755. package/lib/components/Table/internal/kernel/Footer/Summary.js +1 -1
  756. package/lib/components/Table/internal/kernel/Footer/SummaryContext.js +1 -1
  757. package/lib/components/Table/internal/kernel/Footer/index.js +1 -1
  758. package/lib/components/Table/internal/kernel/Header/Header.js +1 -1
  759. package/lib/components/Table/internal/kernel/Header/HeaderRow.js +1 -1
  760. package/lib/components/Table/internal/kernel/Panel/index.js +1 -1
  761. package/lib/components/Table/internal/kernel/Table.js +1 -1
  762. package/lib/components/Table/internal/kernel/VirtualTable/BodyGrid.js +1 -1
  763. package/lib/components/Table/internal/kernel/VirtualTable/BodyLine.js +1 -1
  764. package/lib/components/Table/internal/kernel/VirtualTable/VirtualCell.js +1 -1
  765. package/lib/components/Table/internal/kernel/VirtualTable/context.js +1 -1
  766. package/lib/components/Table/internal/kernel/VirtualTable/index.js +1 -1
  767. package/lib/components/Table/internal/kernel/constant.js +1 -1
  768. package/lib/components/Table/internal/kernel/context/PerfContext.js +1 -1
  769. package/lib/components/Table/internal/kernel/context/TableContext.js +1 -1
  770. package/lib/components/Table/internal/kernel/hooks/useColumns/index.js +1 -1
  771. package/lib/components/Table/internal/kernel/hooks/useColumns/useWidthColumns.js +1 -1
  772. package/lib/components/Table/internal/kernel/hooks/useExpand.js +1 -1
  773. package/lib/components/Table/internal/kernel/hooks/useFixedInfo.js +1 -1
  774. package/lib/components/Table/internal/kernel/hooks/useFlattenRecords.js +1 -1
  775. package/lib/components/Table/internal/kernel/hooks/useFrame.js +1 -1
  776. package/lib/components/Table/internal/kernel/hooks/useHover.js +1 -1
  777. package/lib/components/Table/internal/kernel/hooks/useRenderTimes.js +1 -1
  778. package/lib/components/Table/internal/kernel/hooks/useRowInfo.js +1 -1
  779. package/lib/components/Table/internal/kernel/hooks/useSticky.js +1 -1
  780. package/lib/components/Table/internal/kernel/hooks/useStickyOffsets.js +1 -1
  781. package/lib/components/Table/internal/kernel/index.js +1 -1
  782. package/lib/components/Table/internal/kernel/interface.js +1 -1
  783. package/lib/components/Table/internal/kernel/namePathType.js +1 -1
  784. package/lib/components/Table/internal/kernel/selector-context/Immutable.js +1 -1
  785. package/lib/components/Table/internal/kernel/selector-context/context.js +1 -1
  786. package/lib/components/Table/internal/kernel/selector-context/index.js +1 -1
  787. package/lib/components/Table/internal/kernel/selector-context/isEqual.js +1 -1
  788. package/lib/components/Table/internal/kernel/stickyScrollBar.js +1 -1
  789. package/lib/components/Table/internal/kernel/sugar/Column.js +1 -1
  790. package/lib/components/Table/internal/kernel/sugar/ColumnGroup.js +1 -1
  791. package/lib/components/Table/internal/kernel/utils/dom/canUseDom.js +1 -1
  792. package/lib/components/Table/internal/kernel/utils/dom/isVisible.js +1 -1
  793. package/lib/components/Table/internal/kernel/utils/expandUtil.js +1 -1
  794. package/lib/components/Table/internal/kernel/utils/fixUtil.js +1 -1
  795. package/lib/components/Table/internal/kernel/utils/get.js +1 -1
  796. package/lib/components/Table/internal/kernel/utils/getScrollBarSize.js +1 -1
  797. package/lib/components/Table/internal/kernel/utils/legacyUtil.js +1 -1
  798. package/lib/components/Table/internal/kernel/utils/offsetUtil.js +1 -1
  799. package/lib/components/Table/internal/kernel/utils/pickAttrs.js +1 -1
  800. package/lib/components/Table/internal/kernel/utils/useMemo.js +1 -1
  801. package/lib/components/Table/internal/kernel/utils/valueUtil.js +1 -1
  802. package/lib/components/Table/internal/kernel/utils/warning.js +1 -1
  803. package/lib/components/Table/renderers/BodyCell.js +1 -1
  804. package/lib/components/Table/renderers/CellContent.js +1 -1
  805. package/lib/components/Table/renderers/EmptyState.js +1 -1
  806. package/lib/components/Table/renderers/ExpandedRowContainer.js +1 -1
  807. package/lib/components/Table/renderers/HeaderCell.js +1 -1
  808. package/lib/components/Table/style/css.js +1 -1
  809. package/lib/components/Table/style/index.js +1 -1
  810. package/lib/components/Tabs/Tabs.js +1 -1
  811. package/lib/components/Tabs/index.js +1 -1
  812. package/lib/components/Tabs/interface.js +1 -1
  813. package/lib/components/Tabs/style/css.js +1 -1
  814. package/lib/components/Tabs/style/index.js +1 -1
  815. package/lib/components/Tag/Tag.js +1 -1
  816. package/lib/components/Tag/constants.js +1 -1
  817. package/lib/components/Tag/index.js +1 -1
  818. package/lib/components/Tag/interface.js +1 -1
  819. package/lib/components/Tag/style/css.js +1 -1
  820. package/lib/components/Tag/style/index.js +1 -1
  821. package/lib/components/Tooltip/Tooltip.js +7 -3
  822. package/lib/components/Tooltip/index.js +1 -1
  823. package/lib/components/Tooltip/interface.js +1 -1
  824. package/lib/components/Tooltip/style/css.js +1 -1
  825. package/lib/components/Tooltip/style/index.js +1 -1
  826. package/lib/components/Tour/Tour.js +1 -1
  827. package/lib/components/Tour/index.js +1 -1
  828. package/lib/components/Tour/interface.js +1 -1
  829. package/lib/components/Trigger/Trigger.js +7 -32
  830. package/lib/components/Trigger/index.js +1 -1
  831. package/lib/components/Trigger/interface.d.ts +2 -25
  832. package/lib/components/Trigger/interface.js +1 -1
  833. package/lib/components/Trigger/style/css.js +1 -1
  834. package/lib/components/Trigger/style/index.js +1 -1
  835. package/lib/components/Typography/Typography.js +1 -1
  836. package/lib/components/Typography/constants.js +1 -1
  837. package/lib/components/Typography/index.js +1 -1
  838. package/lib/components/Typography/interface.js +1 -1
  839. package/lib/components/Typography/render.js +1 -1
  840. package/lib/components/Typography/style/css.js +1 -1
  841. package/lib/components/Typography/style/index.js +1 -1
  842. package/lib/components/Typography/useTypographyEnhancements.js +1 -1
  843. package/lib/components/Typography/utils.js +1 -1
  844. package/lib/components/Upload/Upload.js +1 -1
  845. package/lib/components/Upload/UploadFileBar.js +1 -1
  846. package/lib/components/Upload/index.js +1 -1
  847. package/lib/components/Upload/interface.js +1 -1
  848. package/lib/components/Upload/style/css.js +1 -1
  849. package/lib/components/Upload/style/index.js +1 -1
  850. package/lib/components/VirtualList/Filler.js +1 -1
  851. package/lib/components/VirtualList/Item.js +1 -1
  852. package/lib/components/VirtualList/ScrollBar.js +1 -1
  853. package/lib/components/VirtualList/VirtualList.js +1 -1
  854. package/lib/components/VirtualList/constants.js +1 -1
  855. package/lib/components/VirtualList/hooks/useChildren.js +1 -1
  856. package/lib/components/VirtualList/hooks/useDiffItem.js +1 -1
  857. package/lib/components/VirtualList/hooks/useFrameWheel.js +1 -1
  858. package/lib/components/VirtualList/hooks/useGetSize.js +1 -1
  859. package/lib/components/VirtualList/hooks/useHeights.js +1 -1
  860. package/lib/components/VirtualList/hooks/useMobileTouchMove.js +1 -1
  861. package/lib/components/VirtualList/hooks/useOriginScroll.js +1 -1
  862. package/lib/components/VirtualList/hooks/useScrollDrag.js +1 -1
  863. package/lib/components/VirtualList/hooks/useScrollTo.js +1 -1
  864. package/lib/components/VirtualList/index.js +1 -1
  865. package/lib/components/VirtualList/interface.js +1 -1
  866. package/lib/components/VirtualList/style/css.js +1 -1
  867. package/lib/components/VirtualList/style/index.js +1 -1
  868. package/lib/components/VirtualList/utils/CacheMap.js +1 -1
  869. package/lib/components/VirtualList/utils/algorithmUtil.js +1 -1
  870. package/lib/components/VirtualList/utils/isFirefox.js +1 -1
  871. package/lib/components/VirtualList/utils/raf.js +1 -1
  872. package/lib/components/VirtualList/utils/scrollbarUtil.js +1 -1
  873. package/lib/index.css +1 -1
  874. package/lib/index.d.ts +2 -2
  875. package/lib/index.js +1 -7
  876. package/lib/stories/docs/ComponentDocsPage.js +1 -1
  877. package/lib/stories/docs/componentDocMeta.js +1 -1
  878. package/lib/stories/docs/storybook-docs.css +1 -323
  879. package/lib/utils/classnames.js +1 -1
  880. package/lib/utils/clipboard.js +1 -1
  881. package/lib/utils/ref.js +1 -1
  882. package/lib/utils/uuid.js +1 -1
  883. package/package.json +1 -1
  884. package/scripts/mcp-server/examples.generated.json +0 -18
  885. package/scripts/mcp-server/index.generated.json +0 -232
  886. package/es/components/Select/SelectCustom.d.ts +0 -6
  887. package/es/components/Select/SelectCustom.js +0 -219
  888. package/es/components/Select/useSelectShell.d.ts +0 -26
  889. package/es/components/Select/useSelectShell.js +0 -90
  890. package/es/hooks/index.d.ts +0 -2
  891. package/es/hooks/index.js +0 -2
  892. package/es/hooks/useFloatingAnimation.d.ts +0 -24
  893. package/es/hooks/useFloatingAnimation.js +0 -45
  894. package/lib/components/Select/SelectCustom.d.ts +0 -6
  895. package/lib/components/Select/SelectCustom.js +0 -229
  896. package/lib/components/Select/useSelectShell.d.ts +0 -26
  897. package/lib/components/Select/useSelectShell.js +0 -98
  898. package/lib/hooks/index.d.ts +0 -2
  899. package/lib/hooks/index.js +0 -13
  900. package/lib/hooks/useFloatingAnimation.d.ts +0 -24
  901. package/lib/hooks/useFloatingAnimation.js +0 -51
@@ -6,21 +6,18 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports["default"] = exports.Select = void 0;
9
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
10
  var _jsxRuntime = require("react/jsx-runtime");
12
11
  var _react = require("@floating-ui/react");
13
12
  var _react2 = require("react");
14
13
  var _hooks = require("@1money/hooks");
15
14
  var _Icons = require("../Icons");
16
- var _Spinner = require("../Spinner");
17
15
  var _Typography = require("../Typography");
18
16
  var _classnames = _interopRequireWildcard(require("../../utils/classnames"));
19
17
  var _SelectFieldShell = _interopRequireDefault(require("./SelectFieldShell"));
20
18
  var _SelectOptionContent = _interopRequireDefault(require("./SelectOptionContent"));
21
19
  var _SelectSearchControl = _interopRequireDefault(require("./SelectSearchControl"));
22
20
  var _SelectValueContent = _interopRequireDefault(require("./SelectValueContent"));
23
- var _useSelectShell2 = require("./useSelectShell");
24
21
  var _constants = require("./constants");
25
22
  var _utils = require("./utils");
26
23
  require("./style");
@@ -50,9 +47,7 @@ var Select = exports.Select = function Select(props) {
50
47
  _props$variant = props.variant,
51
48
  variant = _props$variant === void 0 ? 'fill' : _props$variant,
52
49
  _props$disabled = props.disabled,
53
- disabledProp = _props$disabled === void 0 ? false : _props$disabled,
54
- _props$loading = props.loading,
55
- loading = _props$loading === void 0 ? false : _props$loading,
50
+ disabled = _props$disabled === void 0 ? false : _props$disabled,
56
51
  _props$multiple = props.multiple,
57
52
  multiple = _props$multiple === void 0 ? false : _props$multiple,
58
53
  maxVisibleValues = props.maxVisibleValues,
@@ -76,15 +71,8 @@ var Select = exports.Select = function Select(props) {
76
71
  open = props.open,
77
72
  _props$defaultOpen = props.defaultOpen,
78
73
  defaultOpen = _props$defaultOpen === void 0 ? false : _props$defaultOpen,
79
- _props$portal = props.portal,
80
- portal = _props$portal === void 0 ? true : _props$portal,
81
- _props$allowDeselect = props.allowDeselect,
82
- allowDeselect = _props$allowDeselect === void 0 ? false : _props$allowDeselect,
83
- panelClassName = props.panelClassName,
84
- optionClassName = props.optionClassName,
85
74
  _props$listMaxHeight = props.listMaxHeight,
86
75
  listMaxHeight = _props$listMaxHeight === void 0 ? DEFAULT_MAX_HEIGHT : _props$listMaxHeight,
87
- animation = props.animation,
88
76
  onChange = props.onChange,
89
77
  onOpenChange = props.onOpenChange,
90
78
  onSearchChange = props.onSearchChange,
@@ -93,7 +81,6 @@ var Select = exports.Select = function Select(props) {
93
81
  renderOption = props.renderOption,
94
82
  renderValue = props.renderValue,
95
83
  ref = props.ref;
96
- var disabled = disabledProp || loading;
97
84
  var classes = (0, _classnames["default"])(prefixCls);
98
85
  var autoId = (0, _react2.useId)();
99
86
  var triggerId = id !== null && id !== void 0 ? id : autoId;
@@ -104,10 +91,14 @@ var Select = exports.Select = function Select(props) {
104
91
  _useControlledState2 = (0, _slicedToArray2["default"])(_useControlledState, 2),
105
92
  innerValue = _useControlledState2[0],
106
93
  setInnerValue = _useControlledState2[1];
107
- var _useControlledState3 = (0, _hooks.useControlledState)(defaultSearchValue, searchValue),
94
+ var _useControlledState3 = (0, _hooks.useControlledState)(defaultOpen, open),
108
95
  _useControlledState4 = (0, _slicedToArray2["default"])(_useControlledState3, 2),
109
- innerSearchValue = _useControlledState4[0],
110
- setInnerSearchValue = _useControlledState4[1];
96
+ innerOpen = _useControlledState4[0],
97
+ setInnerOpen = _useControlledState4[1];
98
+ var _useControlledState5 = (0, _hooks.useControlledState)(defaultSearchValue, searchValue),
99
+ _useControlledState6 = (0, _slicedToArray2["default"])(_useControlledState5, 2),
100
+ innerSearchValue = _useControlledState6[0],
101
+ setInnerSearchValue = _useControlledState6[1];
111
102
  var _useState = (0, _react2.useState)(null),
112
103
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
113
104
  activeIndex = _useState2[0],
@@ -149,22 +140,35 @@ var Select = exports.Select = function Select(props) {
149
140
  ref.current = node;
150
141
  }
151
142
  });
152
- var _useSelectShell = (0, _useSelectShell2.useSelectShell)({
153
- open: open,
154
- defaultOpen: defaultOpen,
155
- onOpenChange: onOpenChange,
156
- disabled: disabled,
157
- listMaxHeight: listMaxHeight,
158
- animation: animation
143
+ var handleOpenChange = (0, _hooks.useEventCallback)(function (nextOpen) {
144
+ setInnerOpen(nextOpen);
145
+ onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(nextOpen);
146
+ });
147
+ var _useFloating = (0, _react.useFloating)({
148
+ open: innerOpen,
149
+ onOpenChange: handleOpenChange,
150
+ placement: 'bottom-start',
151
+ whileElementsMounted: _react.autoUpdate,
152
+ middleware: [(0, _react.offset)(0), (0, _react.flip)({
153
+ padding: 8
154
+ }), (0, _react.shift)({
155
+ padding: 8
156
+ }), (0, _react.size)({
157
+ apply: function apply(_ref) {
158
+ var rects = _ref.rects,
159
+ elements = _ref.elements,
160
+ availableHeight = _ref.availableHeight;
161
+ var nextMaxHeight = Math.max(120, Math.min(listMaxHeight, availableHeight));
162
+ Object.assign(elements.floating.style, {
163
+ width: "".concat(rects.reference.width, "px"),
164
+ maxHeight: "".concat(nextMaxHeight, "px")
165
+ });
166
+ }
167
+ })]
159
168
  }),
160
- innerOpen = _useSelectShell.isOpen,
161
- handleOpenChange = _useSelectShell.setOpen,
162
- refs = _useSelectShell.refs,
163
- context = _useSelectShell.context,
164
- floatingStyles = _useSelectShell.floatingStyles,
165
- transitionStyles = _useSelectShell.transitionStyles,
166
- isMounted = _useSelectShell.isMounted,
167
- baseInteractions = _useSelectShell.baseInteractions;
169
+ refs = _useFloating.refs,
170
+ floatingStyles = _useFloating.floatingStyles,
171
+ context = _useFloating.context;
168
172
  var setReference = (0, _hooks.useEventCallback)(function (node) {
169
173
  refs.setReference(node);
170
174
  handleTriggerRef(node);
@@ -173,6 +177,16 @@ var Select = exports.Select = function Select(props) {
173
177
  refs.setFloating(node);
174
178
  floatingRef.current = node;
175
179
  });
180
+ var click = (0, _react.useClick)(context, {
181
+ enabled: !disabled
182
+ });
183
+ var dismiss = (0, _react.useDismiss)(context, {
184
+ enabled: !disabled,
185
+ outsidePressEvent: 'mousedown'
186
+ });
187
+ var role = (0, _react.useRole)(context, {
188
+ role: 'select'
189
+ });
176
190
  var listNavigation = (0, _react.useListNavigation)(context, {
177
191
  listRef: listRef,
178
192
  activeIndex: activeIndex,
@@ -188,7 +202,7 @@ var Select = exports.Select = function Select(props) {
188
202
  enabled: innerOpen && !searchable,
189
203
  onMatch: setActiveIndex
190
204
  });
191
- var _useInteractions = (0, _react.useInteractions)([].concat((0, _toConsumableArray2["default"])(baseInteractions), [listNavigation, typeahead])),
205
+ var _useInteractions = (0, _react.useInteractions)([click, dismiss, role, listNavigation, typeahead]),
192
206
  getReferenceProps = _useInteractions.getReferenceProps,
193
207
  getFloatingProps = _useInteractions.getFloatingProps,
194
208
  getItemProps = _useInteractions.getItemProps;
@@ -262,7 +276,7 @@ var Select = exports.Select = function Select(props) {
262
276
  onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, nextOption);
263
277
  });
264
278
  var handleSelectOption = (0, _hooks.useEventCallback)(function (option) {
265
- var _a, _b;
279
+ var _a;
266
280
  if (option.disabled) {
267
281
  return;
268
282
  }
@@ -272,19 +286,10 @@ var Select = exports.Select = function Select(props) {
272
286
  commitChange(nextValue, nextOptions);
273
287
  return;
274
288
  }
275
- if (allowDeselect && innerValue === option.value) {
276
- commitChange(undefined, undefined);
277
- handleOpenChange(false);
278
- onBlur === null || onBlur === void 0 ? void 0 : onBlur();
279
- (_a = triggerRef.current) === null || _a === void 0 ? void 0 : _a.focus({
280
- preventScroll: true
281
- });
282
- return;
283
- }
284
289
  commitChange(option.value, option);
285
290
  handleOpenChange(false);
286
291
  onBlur === null || onBlur === void 0 ? void 0 : onBlur();
287
- (_b = triggerRef.current) === null || _b === void 0 ? void 0 : _b.focus({
292
+ (_a = triggerRef.current) === null || _a === void 0 ? void 0 : _a.focus({
288
293
  preventScroll: true
289
294
  });
290
295
  });
@@ -383,7 +388,6 @@ var Select = exports.Select = function Select(props) {
383
388
  variant: variant,
384
389
  status: status,
385
390
  disabled: disabled,
386
- loading: loading,
387
391
  label: label,
388
392
  info: info,
389
393
  description: description,
@@ -428,25 +432,22 @@ var Select = exports.Select = function Select(props) {
428
432
  })]
429
433
  }), (0, _jsxRuntime.jsx)("span", {
430
434
  className: classes('icon'),
431
- children: loading ? (0, _jsxRuntime.jsx)(_Spinner.Spinner, {
432
- size: iconSize,
433
- strokeWidth: 2
434
- }) : (0, _jsxRuntime.jsx)(_Icons.Icons, {
435
+ children: (0, _jsxRuntime.jsx)(_Icons.Icons, {
435
436
  name: innerOpen ? 'chevronUp' : 'chevronDown',
436
437
  size: iconSize,
437
438
  color: "currentColor"
438
439
  })
439
440
  })]
440
- })), isMounted && !disabled && function () {
441
- var panelNode = (0, _jsxRuntime.jsx)(_react.FloatingFocusManager, {
441
+ })), innerOpen && !disabled && (0, _jsxRuntime.jsx)(_react.FloatingPortal, {
442
+ children: (0, _jsxRuntime.jsx)(_react.FloatingFocusManager, {
442
443
  context: context,
443
444
  modal: false,
444
445
  initialFocus: -1,
445
446
  returnFocus: false,
446
447
  children: (0, _jsxRuntime.jsxs)("div", Object.assign({}, getFloatingProps({
447
448
  ref: setFloating,
448
- className: (0, _classnames.joinCls)(classes('panel'), panelClassName),
449
- style: Object.assign(Object.assign({}, floatingStyles), transitionStyles)
449
+ className: classes('panel'),
450
+ style: floatingStyles
450
451
  }), {
451
452
  children: [searchable && (0, _jsxRuntime.jsx)(_SelectSearchControl["default"], {
452
453
  ref: searchInputRef,
@@ -497,7 +498,7 @@ var Select = exports.Select = function Select(props) {
497
498
  },
498
499
  type: 'button',
499
500
  role: 'option',
500
- className: classes('option', (0, _classnames.joinCls)(active && classes('option-active'), selected && classes('option-selected'), option.disabled && classes('option-disabled'), optionClassName)),
501
+ className: classes('option', (0, _classnames.joinCls)(active && classes('option-active'), selected && classes('option-selected'), option.disabled && classes('option-disabled'))),
501
502
  disabled: option.disabled,
502
503
  'aria-selected': selected,
503
504
  onClick: function onClick(event) {
@@ -524,13 +525,10 @@ var Select = exports.Select = function Select(props) {
524
525
  children: panelFooter
525
526
  })]
526
527
  }))
527
- });
528
- return portal ? (0, _jsxRuntime.jsx)(_react.FloatingPortal, {
529
- children: panelNode
530
- }) : panelNode;
531
- }()]
528
+ })
529
+ })]
532
530
  });
533
531
  };
534
532
  Select.displayName = 'Select';
535
533
  var _default = exports["default"] = /*#__PURE__*/(0, _react2.memo)(Select);
536
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JlYWN0MiIsIl9ob29rcyIsIl9JY29ucyIsIl9TcGlubmVyIiwiX1R5cG9ncmFwaHkiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX1NlbGVjdEZpZWxkU2hlbGwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1NlbGVjdE9wdGlvbkNvbnRlbnQiLCJfU2VsZWN0U2VhcmNoQ29udHJvbCIsIl9TZWxlY3RWYWx1ZUNvbnRlbnQiLCJfdXNlU2VsZWN0U2hlbGwyIiwiX2NvbnN0YW50cyIsIl91dGlscyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIkRFRkFVTFRfTUFYX0hFSUdIVCIsIlNlbGVjdCIsImV4cG9ydHMiLCJwcm9wcyIsIl9wcm9wcyRjbGFzc05hbWUiLCJjbGFzc05hbWUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwic3R5bGUiLCJpZCIsIm5hbWUiLCJhcmlhTGFiZWwiLCJhcmlhTGFiZWxsZWRCeSIsIl9wcm9wcyRwbGFjZWhvbGRlciIsInBsYWNlaG9sZGVyIiwiX3Byb3BzJG9wdGlvbnMiLCJvcHRpb25zIiwidmFsdWUiLCJkZWZhdWx0VmFsdWUiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJfcHJvcHMkc3RhdHVzIiwic3RhdHVzIiwiX3Byb3BzJHZhcmlhbnQiLCJ2YXJpYW50IiwiX3Byb3BzJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJkaXNhYmxlZFByb3AiLCJfcHJvcHMkbG9hZGluZyIsImxvYWRpbmciLCJfcHJvcHMkbXVsdGlwbGUiLCJtdWx0aXBsZSIsIm1heFZpc2libGVWYWx1ZXMiLCJfcHJvcHMkc2VhcmNoYWJsZSIsInNlYXJjaGFibGUiLCJfcHJvcHMkc2VhcmNoUGxhY2Vob2wiLCJzZWFyY2hQbGFjZWhvbGRlciIsInNlYXJjaFZhbHVlIiwiX3Byb3BzJGRlZmF1bHRTZWFyY2hWIiwiZGVmYXVsdFNlYXJjaFZhbHVlIiwibGFiZWwiLCJpbmZvIiwiZGVzY3JpcHRpb24iLCJmZWVkYmFjayIsIl9wcm9wcyRyZXF1aXJlZCIsInJlcXVpcmVkIiwicHJlZml4IiwiX3Byb3BzJGVtcHR5Q29udGVudCIsImVtcHR5Q29udGVudCIsInBhbmVsRm9vdGVyIiwib3BlbiIsIl9wcm9wcyRkZWZhdWx0T3BlbiIsImRlZmF1bHRPcGVuIiwiX3Byb3BzJHBvcnRhbCIsInBvcnRhbCIsIl9wcm9wcyRhbGxvd0Rlc2VsZWN0IiwiYWxsb3dEZXNlbGVjdCIsInBhbmVsQ2xhc3NOYW1lIiwib3B0aW9uQ2xhc3NOYW1lIiwiX3Byb3BzJGxpc3RNYXhIZWlnaHQiLCJsaXN0TWF4SGVpZ2h0IiwiYW5pbWF0aW9uIiwib25DaGFuZ2UiLCJvbk9wZW5DaGFuZ2UiLCJvblNlYXJjaENoYW5nZSIsIm9uQmx1ciIsImZpbHRlck9wdGlvbiIsInJlbmRlck9wdGlvbiIsInJlbmRlclZhbHVlIiwicmVmIiwiY2xhc3NlcyIsInJvb3RDbGFzc25hbWVzIiwiYXV0b0lkIiwidXNlSWQiLCJ0cmlnZ2VySWQiLCJsYWJlbElkIiwiZGVzY3JpcHRpb25JZCIsImZlZWRiYWNrSWQiLCJfdXNlQ29udHJvbGxlZFN0YXRlIiwidXNlQ29udHJvbGxlZFN0YXRlIiwidW5kZWZpbmVkIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJpbm5lclZhbHVlIiwic2V0SW5uZXJWYWx1ZSIsIl91c2VDb250cm9sbGVkU3RhdGUzIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTQiLCJpbm5lclNlYXJjaFZhbHVlIiwic2V0SW5uZXJTZWFyY2hWYWx1ZSIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsImFjdGl2ZUluZGV4Iiwic2V0QWN0aXZlSW5kZXgiLCJub3JtYWxpemVkU2l6ZSIsIm5vcm1hbGl6ZVNpemUiLCJhbGxPcHRpb25Hcm91cHMiLCJ1c2VNZW1vIiwibm9ybWFsaXplT3B0aW9uR3JvdXBzIiwiYWxsRmxhdE9wdGlvbnMiLCJmbGF0dGVuT3B0aW9uR3JvdXBzIiwidmlzaWJsZU9wdGlvbkdyb3VwcyIsImZpbHRlck9wdGlvbkdyb3VwcyIsInZpc2libGVGbGF0T3B0aW9ucyIsInNlbGVjdGVkT3B0aW9ucyIsImdldFNlbGVjdGVkT3B0aW9ucyIsInNlbGVjdGVkSW5kZXgiLCJsZW5ndGgiLCJtYXRjaGVkSW5kZXgiLCJmaW5kSW5kZXgiLCJvcHRpb24iLCJoYXNTZWxlY3Rpb24iLCJsaXN0UmVmIiwidXNlUmVmIiwibGlzdENvbnRlbnRSZWYiLCJmbG9hdGluZ1JlZiIsInRyaWdnZXJSZWYiLCJzZWFyY2hJbnB1dFJlZiIsImhhbmRsZVRyaWdnZXJSZWYiLCJ1c2VFdmVudENhbGxiYWNrIiwibm9kZSIsImN1cnJlbnQiLCJfdXNlU2VsZWN0U2hlbGwiLCJ1c2VTZWxlY3RTaGVsbCIsImlubmVyT3BlbiIsImlzT3BlbiIsImhhbmRsZU9wZW5DaGFuZ2UiLCJzZXRPcGVuIiwicmVmcyIsImNvbnRleHQiLCJmbG9hdGluZ1N0eWxlcyIsInRyYW5zaXRpb25TdHlsZXMiLCJpc01vdW50ZWQiLCJiYXNlSW50ZXJhY3Rpb25zIiwic2V0UmVmZXJlbmNlIiwic2V0RmxvYXRpbmciLCJsaXN0TmF2aWdhdGlvbiIsInVzZUxpc3ROYXZpZ2F0aW9uIiwib25OYXZpZ2F0ZSIsImVuYWJsZWQiLCJsb29wIiwidHlwZWFoZWFkIiwidXNlVHlwZWFoZWFkIiwib25NYXRjaCIsIl91c2VJbnRlcmFjdGlvbnMiLCJ1c2VJbnRlcmFjdGlvbnMiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiZ2V0UmVmZXJlbmNlUHJvcHMiLCJnZXRGbG9hdGluZ1Byb3BzIiwiZ2V0SXRlbVByb3BzIiwiZmlyc3RFbmFibGVkSW5kZXgiLCJsYXN0RW5hYmxlZEluZGV4IiwiX2EiLCJpbmRleCIsInVzZUVmZmVjdCIsInByZXYiLCJmb2N1cyIsInByZXZlbnRTY3JvbGwiLCJzbGljZSIsIm5vdGlmeUJsdXJJZk91dHNpZGUiLCJyZWxhdGVkVGFyZ2V0IiwiZXZlbnQiLCJfYiIsIm5leHRUYXJnZXQiLCJ3aXRoaW5UcmlnZ2VyIiwiY29udGFpbnMiLCJ3aXRoaW5GbG9hdGluZyIsImhhbmRsZVRyaWdnZXJCbHVyIiwiaGFuZGxlT3B0aW9uQmx1ciIsImNvbW1pdENoYW5nZSIsIm5leHRWYWx1ZSIsIm5leHRPcHRpb24iLCJoYW5kbGVTZWxlY3RPcHRpb24iLCJ0b2dnbGVNdWx0aXBsZVZhbHVlIiwibmV4dE9wdGlvbnMiLCJnZXRPcHRpb25zQnlWYWx1ZXMiLCJoYW5kbGVSZW1vdmVTZWxlY3RlZFZhbHVlIiwib3B0aW9uVmFsdWUiLCJnZXRNdWx0aXBsZVZhbHVlIiwiaW5jbHVkZXMiLCJyZW1vdmVNdWx0aXBsZVZhbHVlIiwiaGFuZGxlVHJpZ2dlcktleURvd24iLCJrZXkiLCJLRVlCT0FSRCIsIkVOVEVSIiwiU1BBQ0UiLCJwcmV2ZW50RGVmYXVsdCIsIkFSUk9XX0RPV04iLCJBUlJPV19VUCIsImhhbmRsZUl0ZW1Nb3VzZUVudGVyIiwiaGFuZGxlVGFnUmVtb3ZlTW91c2VEb3duIiwic3RvcFByb3BhZ2F0aW9uIiwiaGFuZGxlVGFnUmVtb3ZlQ2xpY2siLCJoYW5kbGVTZWFyY2hCbHVyIiwiaGFuZGxlU2VhcmNoQ2hhbmdlIiwiX2V2ZW50IiwiaGFuZGxlU2VhcmNoS2V5RG93biIsIl9jIiwiRVNDQVBFIiwicmVuZGVyVmFsdWVNZXRhIiwidmFsdWVMYWJlbENsYXNzIiwiaXNNdWx0aXBsZVZhbHVlRmlsbGVkIiwidHJpZ2dlckNsYXNzTmFtZSIsImpvaW5DbHMiLCJpY29uU2l6ZSIsImZsb2F0aW5nQXJpYUxhYmVsbGVkQnkiLCJkZXNjcmliZWRCeUlkcyIsImZpbHRlciIsIkJvb2xlYW4iLCJqb2luIiwiX2pzeHMiLCJTZWxlY3RGaWVsZFNoZWxsIiwiY2hpbGRyZW4iLCJhc3NpZ24iLCJ0eXBlIiwib25LZXlEb3duIiwiX2pzeCIsIlNlbGVjdFZhbHVlQ29udGVudCIsIm9uUmVtb3ZlIiwib25SZW1vdmVDbGljayIsIm9uUmVtb3ZlTW91c2VEb3duIiwiU3Bpbm5lciIsInN0cm9rZVdpZHRoIiwiSWNvbnMiLCJjb2xvciIsInBhbmVsTm9kZSIsIkZsb2F0aW5nRm9jdXNNYW5hZ2VyIiwibW9kYWwiLCJpbml0aWFsRm9jdXMiLCJyZXR1cm5Gb2N1cyIsIlNlbGVjdFNlYXJjaENvbnRyb2wiLCJUeXBvZ3JhcGh5Qm9keSIsIlNFTEVDVF9UWVBPR1JBUEhZIiwiZW1wdHkiLCJmbGF0SW5kZXgiLCJtYXAiLCJncm91cCIsIlR5cG9ncmFwaHlMYWJlbCIsImdyb3VwTGFiZWwiLCJzdHJvbmciLCJvcHRpb25GbGF0SW5kZXgiLCJzZWxlY3RlZCIsImlzT3B0aW9uU2VsZWN0ZWQiLCJhY3RpdmUiLCJvcHRpb25NZXRhIiwiZXh0cmFjdE9wdGlvblRleHQiLCJyb2xlIiwib25DbGljayIsIm9uTW91c2VFbnRlciIsIlNlbGVjdE9wdGlvbkNvbnRlbnQiLCJGbG9hdGluZ1BvcnRhbCIsImRpc3BsYXlOYW1lIiwiX2RlZmF1bHQiLCJtZW1vIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDQUEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBT0EsSUFBQUUsT0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssUUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sV0FBQSxH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QUE7d0JBQ2xCcEwsT0FBTyxFQUFFQSxPQUFPO3dCQUNoQndDLE1BQU0sRUFBRUEsTUFBTTt3QkFDZG9JLFFBQVEsRUFBRUE7c0JBQVEsQ0FBQTtvQkFFckIsQ0FBQSxDQUFBLEtBQUFoRyxNQUFBLENBbENPMkYsS0FBSyxDQUFDdEQsR0FBRyxPQUFBckMsTUFBQSxDQUFJcEMsTUFBTSxDQUFDN0YsS0FBSyxDQUFFLENBbUM1QjtrQkFFYixDQUFDLENBQUM7Z0JBQUEsQ0FBQSxFQTlETTROLEtBQUssQ0FBQ3RELEdBQUcsQ0ErRGI7Y0FBQSxDQUNQLENBQUM7WUFDSixDQUFDLENBQUM7VUFDSCxDQUFBLENBQ0csRUFDTHRJLFdBQVcsSUFBSSxJQUFJLElBQ2xCLElBQUF3SyxlQUFBLEVBQUEsS0FBQSxFQUFBO1lBQUtwTixTQUFTLEVBQUVpRSxPQUFPLENBQUMsY0FBYyxDQUFDO1lBQUErSSxRQUFBLEVBQUdwSztVQUFXLENBQUEsQ0FDdEQ7UUFBQSxDQUFBLENBQUE7TUFDRyxDQUFBLENBRVQ7TUFFRCxPQUFPSyxNQUFNLEdBQUcsSUFBQW1LLGVBQUEsRUFBQ2tDLHFCQUFjLEVBQUE7UUFBQXRDLFFBQUEsRUFBRWE7TUFBUyxDQUFBLENBQWtCLEdBQUdBLFNBQVM7SUFDMUUsQ0FBQyxDQUFDLENBQUU7RUFBQSxDQUFBLENBQ2E7QUFFdkIsQ0FBQztBQUVEak8sTUFBTSxDQUFDMlAsV0FBVyxHQUFHLFFBQVE7QUFBQyxJQUFBQyxRQUFBLEdBQUEzUCxPQUFBLDJCQUVmLElBQUE0UCxZQUFJLEVBQUM3UCxNQUFNLENBQUMiLCJmaWxlIjoiY29tcG9uZW50cy9TZWxlY3QvU2VsZWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IEZsb2F0aW5nRm9jdXNNYW5hZ2VyLCBGbG9hdGluZ1BvcnRhbCwgdXNlSW50ZXJhY3Rpb25zLCB1c2VMaXN0TmF2aWdhdGlvbiwgdXNlVHlwZWFoZWFkLCB9IGZyb20gJ0BmbG9hdGluZy11aS9yZWFjdCc7XG5pbXBvcnQgeyBtZW1vLCB1c2VFZmZlY3QsIHVzZUlkLCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxlZFN0YXRlLCB1c2VFdmVudENhbGxiYWNrIH0gZnJvbSAnQDFtb25leS9ob29rcyc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uL0ljb25zJztcbmltcG9ydCB7IFNwaW5uZXIgfSBmcm9tICcuLi9TcGlubmVyJztcbmltcG9ydCB7IFR5cG9ncmFwaHlCb2R5LCBUeXBvZ3JhcGh5TGFiZWwgfSBmcm9tICcuLi9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IGpvaW5DbHMsIGRlZmF1bHQgYXMgcm9vdENsYXNzbmFtZXMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCBTZWxlY3RGaWVsZFNoZWxsIGZyb20gJy4vU2VsZWN0RmllbGRTaGVsbCc7XG5pbXBvcnQgU2VsZWN0T3B0aW9uQ29udGVudCBmcm9tICcuL1NlbGVjdE9wdGlvbkNvbnRlbnQnO1xuaW1wb3J0IFNlbGVjdFNlYXJjaENvbnRyb2wgZnJvbSAnLi9TZWxlY3RTZWFyY2hDb250cm9sJztcbmltcG9ydCBTZWxlY3RWYWx1ZUNvbnRlbnQgZnJvbSAnLi9TZWxlY3RWYWx1ZUNvbnRlbnQnO1xuaW1wb3J0IHsgdXNlU2VsZWN0U2hlbGwgfSBmcm9tICcuL3VzZVNlbGVjdFNoZWxsJztcbmltcG9ydCB7IEtFWUJPQVJELCBTRUxFQ1RfVFlQT0dSQVBIWSB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IGV4dHJhY3RPcHRpb25UZXh0LCBmaWx0ZXJPcHRpb25Hcm91cHMsIGZsYXR0ZW5PcHRpb25Hcm91cHMsIGdldE11bHRpcGxlVmFsdWUsIGdldE9wdGlvbnNCeVZhbHVlcywgZ2V0U2VsZWN0ZWRPcHRpb25zLCBpc09wdGlvblNlbGVjdGVkLCBub3JtYWxpemVTaXplLCBub3JtYWxpemVPcHRpb25Hcm91cHMsIHJlbW92ZU11bHRpcGxlVmFsdWUsIHRvZ2dsZU11bHRpcGxlVmFsdWUsIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xuY29uc3QgREVGQVVMVF9NQVhfSEVJR0hUID0gMzIwO1xuZXhwb3J0IGNvbnN0IFNlbGVjdCA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgY2xhc3NOYW1lID0gJycsIHByZWZpeENscyA9ICdzZWxlY3QnLCBzdHlsZSwgaWQsIG5hbWUsICdhcmlhLWxhYmVsJzogYXJpYUxhYmVsLCAnYXJpYS1sYWJlbGxlZGJ5JzogYXJpYUxhYmVsbGVkQnksIHBsYWNlaG9sZGVyID0gJ1ZhbHVlJywgb3B0aW9ucyA9IFtdLCB2YWx1ZSwgZGVmYXVsdFZhbHVlLCBzaXplID0gJ2xhcmdlJywgc3RhdHVzID0gJ2RlZmF1bHQnLCB2YXJpYW50ID0gJ2ZpbGwnLCBkaXNhYmxlZDogZGlzYWJsZWRQcm9wID0gZmFsc2UsIGxvYWRpbmcgPSBmYWxzZSwgbXVsdGlwbGUgPSBmYWxzZSwgbWF4VmlzaWJsZVZhbHVlcywgc2VhcmNoYWJsZSA9IGZhbHNlLCBzZWFyY2hQbGFjZWhvbGRlciA9ICdTZWFyY2gnLCBzZWFyY2hWYWx1ZSwgZGVmYXVsdFNlYXJjaFZhbHVlID0gJycsIGxhYmVsLCBpbmZvLCBkZXNjcmlwdGlvbiwgZmVlZGJhY2ssIHJlcXVpcmVkID0gZmFsc2UsIHByZWZpeCwgZW1wdHlDb250ZW50ID0gJ05vIG9wdGlvbnMnLCBwYW5lbEZvb3Rlciwgb3BlbiwgZGVmYXVsdE9wZW4gPSBmYWxzZSwgcG9ydGFsID0gdHJ1ZSwgYWxsb3dEZXNlbGVjdCA9IGZhbHNlLCBwYW5lbENsYXNzTmFtZSwgb3B0aW9uQ2xhc3NOYW1lLCBsaXN0TWF4SGVpZ2h0ID0gREVGQVVMVF9NQVhfSEVJR0hULCBhbmltYXRpb24sIG9uQ2hhbmdlLCBvbk9wZW5DaGFuZ2UsIG9uU2VhcmNoQ2hhbmdlLCBvbkJsdXIsIGZpbHRlck9wdGlvbiwgcmVuZGVyT3B0aW9uLCByZW5kZXJWYWx1ZSwgcmVmLCB9ID0gcHJvcHM7XG4gICAgY29uc3QgZGlzYWJsZWQgPSBkaXNhYmxlZFByb3AgfHwgbG9hZGluZztcbiAgICBjb25zdCBjbGFzc2VzID0gcm9vdENsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICBjb25zdCBhdXRvSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IHRyaWdnZXJJZCA9IGlkICE9PSBudWxsICYmIGlkICE9PSB2b2lkIDAgPyBpZCA6IGF1dG9JZDtcbiAgICBjb25zdCBsYWJlbElkID0gdXNlSWQoKTtcbiAgICBjb25zdCBkZXNjcmlwdGlvbklkID0gdXNlSWQoKTtcbiAgICBjb25zdCBmZWVkYmFja0lkID0gdXNlSWQoKTtcbiAgICBjb25zdCBbaW5uZXJWYWx1ZSwgc2V0SW5uZXJWYWx1ZV0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdFZhbHVlICE9PSBudWxsICYmIGRlZmF1bHRWYWx1ZSAhPT0gdm9pZCAwID8gZGVmYXVsdFZhbHVlIDogKG11bHRpcGxlID8gW10gOiB1bmRlZmluZWQpLCB2YWx1ZSk7XG4gICAgY29uc3QgW2lubmVyU2VhcmNoVmFsdWUsIHNldElubmVyU2VhcmNoVmFsdWVdID0gdXNlQ29udHJvbGxlZFN0YXRlKGRlZmF1bHRTZWFyY2hWYWx1ZSwgc2VhcmNoVmFsdWUpO1xuICAgIGNvbnN0IFthY3RpdmVJbmRleCwgc2V0QWN0aXZlSW5kZXhdID0gdXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3Qgbm9ybWFsaXplZFNpemUgPSBub3JtYWxpemVTaXplKHNpemUpO1xuICAgIGNvbnN0IGFsbE9wdGlvbkdyb3VwcyA9IHVzZU1lbW8oKCkgPT4gbm9ybWFsaXplT3B0aW9uR3JvdXBzKG9wdGlvbnMpLCBbb3B0aW9uc10pO1xuICAgIGNvbnN0IGFsbEZsYXRPcHRpb25zID0gdXNlTWVtbygoKSA9PiBmbGF0dGVuT3B0aW9uR3JvdXBzKGFsbE9wdGlvbkdyb3VwcyksIFthbGxPcHRpb25Hcm91cHNdKTtcbiAgICBjb25zdCB2aXNpYmxlT3B0aW9uR3JvdXBzID0gdXNlTWVtbygoKSA9PiAoc2VhcmNoYWJsZVxuICAgICAgICA/IGZpbHRlck9wdGlvbkdyb3VwcyhhbGxPcHRpb25Hcm91cHMsIGlubmVyU2VhcmNoVmFsdWUsIGZpbHRlck9wdGlvbilcbiAgICAgICAgOiBhbGxPcHRpb25Hcm91cHMpLCBbYWxsT3B0aW9uR3JvdXBzLCBmaWx0ZXJPcHRpb24sIGlubmVyU2VhcmNoVmFsdWUsIHNlYXJjaGFibGVdKTtcbiAgICBjb25zdCB2aXNpYmxlRmxhdE9wdGlvbnMgPSB1c2VNZW1vKCgpID0+IGZsYXR0ZW5PcHRpb25Hcm91cHModmlzaWJsZU9wdGlvbkdyb3VwcyksIFt2aXNpYmxlT3B0aW9uR3JvdXBzXSk7XG4gICAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zID0gdXNlTWVtbygoKSA9PiBnZXRTZWxlY3RlZE9wdGlvbnMoYWxsRmxhdE9wdGlvbnMsIGlubmVyVmFsdWUsIG11bHRpcGxlKSwgW2FsbEZsYXRPcHRpb25zLCBpbm5lclZhbHVlLCBtdWx0aXBsZV0pO1xuICAgIGNvbnN0IHNlbGVjdGVkSW5kZXggPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKHNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1hdGNoZWRJbmRleCA9IHZpc2libGVGbGF0T3B0aW9ucy5maW5kSW5kZXgoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSBzZWxlY3RlZE9wdGlvbnNbMF0udmFsdWUpO1xuICAgICAgICByZXR1cm4gbWF0Y2hlZEluZGV4ID49IDAgPyBtYXRjaGVkSW5kZXggOiBudWxsO1xuICAgIH0sIFtzZWxlY3RlZE9wdGlvbnMsIHZpc2libGVGbGF0T3B0aW9uc10pO1xuICAgIGNvbnN0IGhhc1NlbGVjdGlvbiA9IHNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPiAwO1xuICAgIGNvbnN0IGxpc3RSZWYgPSB1c2VSZWYoW10pO1xuICAgIGNvbnN0IGxpc3RDb250ZW50UmVmID0gdXNlUmVmKFtdKTtcbiAgICBjb25zdCBmbG9hdGluZ1JlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCB0cmlnZ2VyUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHNlYXJjaElucHV0UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGhhbmRsZVRyaWdnZXJSZWYgPSB1c2VFdmVudENhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHRyaWdnZXJSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICAgIGlmIChyZWYpIHtcbiAgICAgICAgICAgIHJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHsgaXNPcGVuOiBpbm5lck9wZW4sIHNldE9wZW46IGhhbmRsZU9wZW5DaGFuZ2UsIHJlZnMsIGNvbnRleHQsIGZsb2F0aW5nU3R5bGVzLCB0cmFuc2l0aW9uU3R5bGVzLCBpc01vdW50ZWQsIGJhc2VJbnRlcmFjdGlvbnMsIH0gPSB1c2VTZWxlY3RTaGVsbCh7XG4gICAgICAgIG9wZW4sXG4gICAgICAgIGRlZmF1bHRPcGVuLFxuICAgICAgICBvbk9wZW5DaGFuZ2UsXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICBsaXN0TWF4SGVpZ2h0LFxuICAgICAgICBhbmltYXRpb24sXG4gICAgfSk7XG4gICAgY29uc3Qgc2V0UmVmZXJlbmNlID0gdXNlRXZlbnRDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICByZWZzLnNldFJlZmVyZW5jZShub2RlKTtcbiAgICAgICAgaGFuZGxlVHJpZ2dlclJlZihub2RlKTtcbiAgICB9KTtcbiAgICBjb25zdCBzZXRGbG9hdGluZyA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgcmVmcy5zZXRGbG9hdGluZyhub2RlKTtcbiAgICAgICAgZmxvYXRpbmdSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgfSk7XG4gICAgY29uc3QgbGlzdE5hdmlnYXRpb24gPSB1c2VMaXN0TmF2aWdhdGlvbihjb250ZXh0LCB7XG4gICAgICAgIGxpc3RSZWYsXG4gICAgICAgIGFjdGl2ZUluZGV4LFxuICAgICAgICBzZWxlY3RlZEluZGV4LFxuICAgICAgICBvbk5hdmlnYXRlOiBzZXRBY3RpdmVJbmRleCxcbiAgICAgICAgZW5hYmxlZDogaW5uZXJPcGVuLFxuICAgICAgICBsb29wOiB0cnVlLFxuICAgIH0pO1xuICAgIGNvbnN0IHR5cGVhaGVhZCA9IHVzZVR5cGVhaGVhZChjb250ZXh0LCB7XG4gICAgICAgIGxpc3RSZWY6IGxpc3RDb250ZW50UmVmLFxuICAgICAgICBhY3RpdmVJbmRleCxcbiAgICAgICAgc2VsZWN0ZWRJbmRleCxcbiAgICAgICAgZW5hYmxlZDogaW5uZXJPcGVuICYmICFzZWFyY2hhYmxlLFxuICAgICAgICBvbk1hdGNoOiBzZXRBY3RpdmVJbmRleCxcbiAgICB9KTtcbiAgICBjb25zdCB7IGdldFJlZmVyZW5jZVByb3BzLCBnZXRGbG9hdGluZ1Byb3BzLCBnZXRJdGVtUHJvcHMgfSA9IHVzZUludGVyYWN0aW9ucyhbXG4gICAgICAgIC4uLmJhc2VJbnRlcmFjdGlvbnMsXG4gICAgICAgIGxpc3ROYXZpZ2F0aW9uLFxuICAgICAgICB0eXBlYWhlYWQsXG4gICAgXSk7XG4gICAgY29uc3QgZmlyc3RFbmFibGVkSW5kZXggPSB1c2VNZW1vKCgpID0+IHZpc2libGVGbGF0T3B0aW9ucy5maW5kSW5kZXgoKG9wdGlvbikgPT4gIW9wdGlvbi5kaXNhYmxlZCksIFt2aXNpYmxlRmxhdE9wdGlvbnNdKTtcbiAgICBjb25zdCBsYXN0RW5hYmxlZEluZGV4ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSB2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoIC0gMTsgaW5kZXggPj0gMDsgaW5kZXggLT0gMSkge1xuICAgICAgICAgICAgaWYgKCEoKF9hID0gdmlzaWJsZUZsYXRPcHRpb25zW2luZGV4XSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmRpc2FibGVkKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9LCBbdmlzaWJsZUZsYXRPcHRpb25zXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFpbm5lck9wZW4pIHtcbiAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KHNlbGVjdGVkSW5kZXgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNldEFjdGl2ZUluZGV4KChwcmV2KSA9PiB7XG4gICAgICAgICAgICBpZiAocHJldiAhPT0gbnVsbCAmJiB2aXNpYmxlRmxhdE9wdGlvbnNbcHJldl0gJiYgIXZpc2libGVGbGF0T3B0aW9uc1twcmV2XS5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICB2aXNpYmxlRmxhdE9wdGlvbnNbc2VsZWN0ZWRJbmRleF0gJiZcbiAgICAgICAgICAgICAgICAhdmlzaWJsZUZsYXRPcHRpb25zW3NlbGVjdGVkSW5kZXhdLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGVjdGVkSW5kZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmlyc3RFbmFibGVkSW5kZXggPj0gMCA/IGZpcnN0RW5hYmxlZEluZGV4IDogbnVsbDtcbiAgICAgICAgfSk7XG4gICAgfSwgW2ZpcnN0RW5hYmxlZEluZGV4LCBpbm5lck9wZW4sIHNlbGVjdGVkSW5kZXgsIHZpc2libGVGbGF0T3B0aW9uc10pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCFpbm5lck9wZW4gfHwgYWN0aXZlSW5kZXggPT09IG51bGwgfHwgc2VhcmNoYWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIChfYSA9IGxpc3RSZWYuY3VycmVudFthY3RpdmVJbmRleF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgfSwgW2FjdGl2ZUluZGV4LCBpbm5lck9wZW4sIHNlYXJjaGFibGVdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBsaXN0UmVmLmN1cnJlbnQgPSBsaXN0UmVmLmN1cnJlbnQuc2xpY2UoMCwgdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aCk7XG4gICAgICAgIGxpc3RDb250ZW50UmVmLmN1cnJlbnQgPSBsaXN0Q29udGVudFJlZi5jdXJyZW50LnNsaWNlKDAsIHZpc2libGVGbGF0T3B0aW9ucy5sZW5ndGgpO1xuICAgIH0sIFt2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoaW5uZXJPcGVuICYmIHNlYXJjaGFibGUpIHtcbiAgICAgICAgICAgIChfYSA9IHNlYXJjaElucHV0UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICB9LCBbaW5uZXJPcGVuLCBzZWFyY2hhYmxlXSk7XG4gICAgY29uc3Qgbm90aWZ5Qmx1cklmT3V0c2lkZSA9IHVzZUV2ZW50Q2FsbGJhY2soKHJlbGF0ZWRUYXJnZXQsIGV2ZW50KSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGNvbnN0IG5leHRUYXJnZXQgPSByZWxhdGVkVGFyZ2V0O1xuICAgICAgICBjb25zdCB3aXRoaW5UcmlnZ2VyID0gISEobmV4dFRhcmdldCAmJiAoKF9hID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY29udGFpbnMobmV4dFRhcmdldCkpKTtcbiAgICAgICAgY29uc3Qgd2l0aGluRmxvYXRpbmcgPSAhIShuZXh0VGFyZ2V0ICYmICgoX2IgPSBmbG9hdGluZ1JlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY29udGFpbnMobmV4dFRhcmdldCkpKTtcbiAgICAgICAgaWYgKCF3aXRoaW5UcmlnZ2VyICYmICF3aXRoaW5GbG9hdGluZykge1xuICAgICAgICAgICAgb25CbHVyID09PSBudWxsIHx8IG9uQmx1ciA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25CbHVyKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRyaWdnZXJCbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgbm90aWZ5Qmx1cklmT3V0c2lkZShldmVudC5yZWxhdGVkVGFyZ2V0LCBldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlT3B0aW9uQmx1ciA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIG5vdGlmeUJsdXJJZk91dHNpZGUoZXZlbnQucmVsYXRlZFRhcmdldCwgZXZlbnQpO1xuICAgIH0pO1xuICAgIGNvbnN0IGNvbW1pdENoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5leHRWYWx1ZSwgbmV4dE9wdGlvbikgPT4ge1xuICAgICAgICBzZXRJbm5lclZhbHVlKG5leHRWYWx1ZSk7XG4gICAgICAgIG9uQ2hhbmdlID09PSBudWxsIHx8IG9uQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNoYW5nZShuZXh0VmFsdWUsIG5leHRPcHRpb24pO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlbGVjdE9wdGlvbiA9IHVzZUV2ZW50Q2FsbGJhY2soKG9wdGlvbikgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAob3B0aW9uLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG11bHRpcGxlKSB7XG4gICAgICAgICAgICBjb25zdCBuZXh0VmFsdWUgPSB0b2dnbGVNdWx0aXBsZVZhbHVlKGlubmVyVmFsdWUsIG9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICBjb25zdCBuZXh0T3B0aW9ucyA9IGdldE9wdGlvbnNCeVZhbHVlcyhhbGxGbGF0T3B0aW9ucywgbmV4dFZhbHVlKTtcbiAgICAgICAgICAgIGNvbW1pdENoYW5nZShuZXh0VmFsdWUsIG5leHRPcHRpb25zKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWxsb3dEZXNlbGVjdCAmJiBpbm5lclZhbHVlID09PSBvcHRpb24udmFsdWUpIHtcbiAgICAgICAgICAgIGNvbW1pdENoYW5nZSh1bmRlZmluZWQsIHVuZGVmaW5lZCk7XG4gICAgICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKGZhbHNlKTtcbiAgICAgICAgICAgIG9uQmx1ciA9PT0gbnVsbCB8fCBvbkJsdXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmx1cigpO1xuICAgICAgICAgICAgKF9hID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbW1pdENoYW5nZShvcHRpb24udmFsdWUsIG9wdGlvbik7XG4gICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UoZmFsc2UpO1xuICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoKTtcbiAgICAgICAgKF9iID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVJlbW92ZVNlbGVjdGVkVmFsdWUgPSB1c2VFdmVudENhbGxiYWNrKChvcHRpb25WYWx1ZSkgPT4ge1xuICAgICAgICBpZiAoIW11bHRpcGxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFnZXRNdWx0aXBsZVZhbHVlKGlubmVyVmFsdWUpLmluY2x1ZGVzKG9wdGlvblZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5leHRWYWx1ZSA9IHJlbW92ZU11bHRpcGxlVmFsdWUoaW5uZXJWYWx1ZSwgb3B0aW9uVmFsdWUpO1xuICAgICAgICBjb25zdCBuZXh0T3B0aW9ucyA9IGdldE9wdGlvbnNCeVZhbHVlcyhhbGxGbGF0T3B0aW9ucywgbmV4dFZhbHVlKTtcbiAgICAgICAgY29tbWl0Q2hhbmdlKG5leHRWYWx1ZSwgbmV4dE9wdGlvbnMpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRyaWdnZXJLZXlEb3duID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuRU5URVIgfHwgZXZlbnQua2V5ID09PSBLRVlCT0FSRC5TUEFDRSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UoIWlubmVyT3Blbik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuQVJST1dfRE9XTiB8fCBldmVudC5rZXkgPT09IEtFWUJPQVJELkFSUk9XX1VQKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKCFpbm5lck9wZW4pIHtcbiAgICAgICAgICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlSXRlbU1vdXNlRW50ZXIgPSB1c2VFdmVudENhbGxiYWNrKChpbmRleCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghKChfYSA9IHZpc2libGVGbGF0T3B0aW9uc1tpbmRleF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kaXNhYmxlZCkpIHtcbiAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KGluZGV4KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRhZ1JlbW92ZU1vdXNlRG93biA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRhZ1JlbW92ZUNsaWNrID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VhcmNoQmx1ciA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIG5vdGlmeUJsdXJJZk91dHNpZGUoZXZlbnQucmVsYXRlZFRhcmdldCwgZXZlbnQpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlYXJjaENoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5leHRWYWx1ZSwgX2V2ZW50KSA9PiB7XG4gICAgICAgIHNldElubmVyU2VhcmNoVmFsdWUobmV4dFZhbHVlKTtcbiAgICAgICAgb25TZWFyY2hDaGFuZ2UgPT09IG51bGwgfHwgb25TZWFyY2hDaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uU2VhcmNoQ2hhbmdlKG5leHRWYWx1ZSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VhcmNoS2V5RG93biA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5BUlJPV19ET1dOICYmIGZpcnN0RW5hYmxlZEluZGV4ID49IDApIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBzZXRBY3RpdmVJbmRleChmaXJzdEVuYWJsZWRJbmRleCk7XG4gICAgICAgICAgICAoX2EgPSBsaXN0UmVmLmN1cnJlbnRbZmlyc3RFbmFibGVkSW5kZXhdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkFSUk9XX1VQICYmIGxhc3RFbmFibGVkSW5kZXggIT09IG51bGwpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBzZXRBY3RpdmVJbmRleChsYXN0RW5hYmxlZEluZGV4KTtcbiAgICAgICAgICAgIChfYiA9IGxpc3RSZWYuY3VycmVudFtsYXN0RW5hYmxlZEluZGV4XSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5FU0NBUEUpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKGZhbHNlKTtcbiAgICAgICAgICAgIChfYyA9IHRyaWdnZXJSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHJlbmRlclZhbHVlTWV0YSA9IHtcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIG11bHRpcGxlLFxuICAgICAgICBtYXhWaXNpYmxlVmFsdWVzLFxuICAgICAgICBvcGVuOiBpbm5lck9wZW4sXG4gICAgICAgIHBsYWNlaG9sZGVyOiAhaGFzU2VsZWN0aW9uLFxuICAgICAgICBzZWxlY3RlZE9wdGlvbnMsXG4gICAgfTtcbiAgICBjb25zdCB2YWx1ZUxhYmVsQ2xhc3MgPSBoYXNTZWxlY3Rpb24gPyAndmFsdWUnIDogJ3BsYWNlaG9sZGVyJztcbiAgICBjb25zdCBpc011bHRpcGxlVmFsdWVGaWxsZWQgPSAobXVsdGlwbGUgJiZcbiAgICAgICAgaGFzU2VsZWN0aW9uICYmXG4gICAgICAgIG1heFZpc2libGVWYWx1ZXMgPT09IHVuZGVmaW5lZCk7XG4gICAgY29uc3QgdHJpZ2dlckNsYXNzTmFtZSA9IGNsYXNzZXMoJ3RyaWdnZXInLCBqb2luQ2xzKGNsYXNzZXMoYHRyaWdnZXItJHtub3JtYWxpemVkU2l6ZX1gKSwgY2xhc3NlcyhgdHJpZ2dlci0ke3ZhcmlhbnR9YCksIGlubmVyT3BlbiAmJiBjbGFzc2VzKCd0cmlnZ2VyLW9wZW4nKSwgaXNNdWx0aXBsZVZhbHVlRmlsbGVkICYmIGNsYXNzZXMoJ3RyaWdnZXItbXVsdGlwbGUtZmlsbGVkJyksIGhhc1NlbGVjdGlvbiA/IGNsYXNzZXMoJ3RyaWdnZXItZmlsbGVkJykgOiBjbGFzc2VzKCd0cmlnZ2VyLXBsYWNlaG9sZGVyJyksIHN0YXR1cyAhPT0gJ2RlZmF1bHQnICYmIGNsYXNzZXMoYHRyaWdnZXItJHtzdGF0dXN9YCksIGRpc2FibGVkICYmIGNsYXNzZXMoJ3RyaWdnZXItZGlzYWJsZWQnKSkpO1xuICAgIGNvbnN0IGljb25TaXplID0gbm9ybWFsaXplZFNpemUgPT09ICdzbWFsbCcgPyAxNiA6IDIwO1xuICAgIGNvbnN0IGZsb2F0aW5nQXJpYUxhYmVsbGVkQnkgPSBhcmlhTGFiZWxsZWRCeSAhPT0gbnVsbCAmJiBhcmlhTGFiZWxsZWRCeSAhPT0gdm9pZCAwID8gYXJpYUxhYmVsbGVkQnkgOiAobGFiZWwgPyBsYWJlbElkIDogdW5kZWZpbmVkKTtcbiAgICBjb25zdCBkZXNjcmliZWRCeUlkcyA9IFtcbiAgICAgICAgZGVzY3JpcHRpb24gPyBkZXNjcmlwdGlvbklkIDogbnVsbCxcbiAgICAgICAgZmVlZGJhY2sgPyBmZWVkYmFja0lkIDogbnVsbCxcbiAgICBdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJykgfHwgdW5kZWZpbmVkO1xuICAgIHJldHVybiAoX2pzeHMoU2VsZWN0RmllbGRTaGVsbCwgeyBjbGFzc2VzOiBjbGFzc2VzLCBjbGFzc05hbWU6IGNsYXNzTmFtZSwgc2l6ZTogbm9ybWFsaXplZFNpemUsIHZhcmlhbnQ6IHZhcmlhbnQsIHN0YXR1czogc3RhdHVzLCBkaXNhYmxlZDogZGlzYWJsZWQsIGxvYWRpbmc6IGxvYWRpbmcsIGxhYmVsOiBsYWJlbCwgaW5mbzogaW5mbywgZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uLCBmZWVkYmFjazogZmVlZGJhY2ssIHJlcXVpcmVkOiByZXF1aXJlZCwgbGFiZWxJZDogbGFiZWxJZCwgZGVzY3JpcHRpb25JZDogZGVzY3JpcHRpb25JZCwgZmVlZGJhY2tJZDogZmVlZGJhY2tJZCwgY2hpbGRyZW46IFtfanN4cyhcImJ1dHRvblwiLCBPYmplY3QuYXNzaWduKHt9LCBnZXRSZWZlcmVuY2VQcm9wcyh7XG4gICAgICAgICAgICAgICAgcmVmOiBzZXRSZWZlcmVuY2UsXG4gICAgICAgICAgICAgICAgaWQ6IHRyaWdnZXJJZCxcbiAgICAgICAgICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogdHJpZ2dlckNsYXNzTmFtZSxcbiAgICAgICAgICAgICAgICBvbktleURvd246IGhhbmRsZVRyaWdnZXJLZXlEb3duLFxuICAgICAgICAgICAgICAgIG9uQmx1cjogaGFuZGxlVHJpZ2dlckJsdXIsXG4gICAgICAgICAgICAgICAgJ2FyaWEtbGFiZWwnOiBhcmlhTGFiZWwsXG4gICAgICAgICAgICAgICAgJ2FyaWEtbGFiZWxsZWRieSc6IGZsb2F0aW5nQXJpYUxhYmVsbGVkQnksXG4gICAgICAgICAgICAgICAgJ2FyaWEtZGVzY3JpYmVkYnknOiBkZXNjcmliZWRCeUlkcyxcbiAgICAgICAgICAgIH0pLCB7IGNoaWxkcmVuOiBbX2pzeHMoXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjb250ZW50JyksIGNoaWxkcmVuOiBbcHJlZml4ICYmIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwcmVmaXgnKSwgY2hpbGRyZW46IHByZWZpeCB9KSwgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXModmFsdWVMYWJlbENsYXNzLCBqb2luQ2xzKGNsYXNzZXMoYCR7dmFsdWVMYWJlbENsYXNzfS0ke25vcm1hbGl6ZWRTaXplfWApLCBpc011bHRpcGxlVmFsdWVGaWxsZWQgJiYgY2xhc3NlcyhgJHt2YWx1ZUxhYmVsQ2xhc3N9LW11bHRpcGxlYCksIGRpc2FibGVkICYmIGNsYXNzZXMoYCR7dmFsdWVMYWJlbENsYXNzfS1kaXNhYmxlZGApKSksIGNoaWxkcmVuOiBfanN4KFNlbGVjdFZhbHVlQ29udGVudCwgeyBjbGFzc2VzOiBjbGFzc2VzLCBoYXNTZWxlY3Rpb246IGhhc1NlbGVjdGlvbiwgbXVsdGlwbGU6IG11bHRpcGxlLCBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsIHJlbmRlclZhbHVlOiByZW5kZXJWYWx1ZSwgcmVuZGVyVmFsdWVNZXRhOiByZW5kZXJWYWx1ZU1ldGEsIHNlbGVjdGVkT3B0aW9uczogc2VsZWN0ZWRPcHRpb25zLCBtYXhWaXNpYmxlVmFsdWVzOiBtYXhWaXNpYmxlVmFsdWVzLCBvblJlbW92ZTogaGFuZGxlUmVtb3ZlU2VsZWN0ZWRWYWx1ZSwgb25SZW1vdmVDbGljazogaGFuZGxlVGFnUmVtb3ZlQ2xpY2ssIG9uUmVtb3ZlTW91c2VEb3duOiBoYW5kbGVUYWdSZW1vdmVNb3VzZURvd24gfSkgfSldIH0pLCBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnaWNvbicpLCBjaGlsZHJlbjogbG9hZGluZyA/IChfanN4KFNwaW5uZXIsIHsgc2l6ZTogaWNvblNpemUsIHN0cm9rZVdpZHRoOiAyIH0pKSA6IChfanN4KEljb25zLCB7IG5hbWU6IGlubmVyT3BlbiA/ICdjaGV2cm9uVXAnIDogJ2NoZXZyb25Eb3duJywgc2l6ZTogaWNvblNpemUsIGNvbG9yOiBcImN1cnJlbnRDb2xvclwiIH0pKSB9KV0gfSkpLCBpc01vdW50ZWQgJiYgIWRpc2FibGVkICYmICgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFuZWxOb2RlID0gKF9qc3goRmxvYXRpbmdGb2N1c01hbmFnZXIsIHsgY29udGV4dDogY29udGV4dCwgbW9kYWw6IGZhbHNlLCBpbml0aWFsRm9jdXM6IC0xLCByZXR1cm5Gb2N1czogZmFsc2UsIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCBPYmplY3QuYXNzaWduKHt9LCBnZXRGbG9hdGluZ1Byb3BzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZjogc2V0RmxvYXRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGpvaW5DbHMoY2xhc3NlcygncGFuZWwnKSwgcGFuZWxDbGFzc05hbWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZmxvYXRpbmdTdHlsZXMpLCB0cmFuc2l0aW9uU3R5bGVzKSxcbiAgICAgICAgICAgICAgICAgICAgfSksIHsgY2hpbGRyZW46IFtzZWFyY2hhYmxlICYmIChfanN4KFNlbGVjdFNlYXJjaENvbnRyb2wsIHsgcmVmOiBzZWFyY2hJbnB1dFJlZiwgY2xhc3NlczogY2xhc3NlcywgcGxhY2Vob2xkZXI6IHNlYXJjaFBsYWNlaG9sZGVyLCB2YWx1ZTogaW5uZXJTZWFyY2hWYWx1ZSwgb25CbHVyOiBoYW5kbGVTZWFyY2hCbHVyLCBvbkNoYW5nZTogaGFuZGxlU2VhcmNoQ2hhbmdlLCBvbktleURvd246IGhhbmRsZVNlYXJjaEtleURvd24gfSkpLCBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwYW5lbC1ib2R5JyksIGNoaWxkcmVuOiB2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoID09PSAwID8gKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2VtcHR5JyksIGNoaWxkcmVuOiBfanN4KFR5cG9ncmFwaHlCb2R5LCB7IHNpemU6IFNFTEVDVF9UWVBPR1JBUEhZLmVtcHR5LnNpemUsIGNvbG9yOiBTRUxFQ1RfVFlQT0dSQVBIWS5lbXB0eS5jb2xvciwgY2hpbGRyZW46IGVtcHR5Q29udGVudCB9KSB9KSkgOiAoKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmbGF0SW5kZXggPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZpc2libGVPcHRpb25Hcm91cHMubWFwKChncm91cCkgPT4gKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdncm91cCcpLCBjaGlsZHJlbjogW2dyb3VwLmxhYmVsICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdncm91cC1sYWJlbCcpLCBjaGlsZHJlbjogX2pzeChUeXBvZ3JhcGh5TGFiZWwsIHsgc2l6ZTogU0VMRUNUX1RZUE9HUkFQSFkuZ3JvdXBMYWJlbC5zaXplLCBzdHJvbmc6IHRydWUsIGNoaWxkcmVuOiBncm91cC5sYWJlbCB9KSB9KSksIGdyb3VwLm9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbkZsYXRJbmRleCA9IGZsYXRJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYXRJbmRleCArPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSBpc09wdGlvblNlbGVjdGVkKGlubmVyVmFsdWUsIG11bHRpcGxlLCBvcHRpb24udmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlID0gYWN0aXZlSW5kZXggPT09IG9wdGlvbkZsYXRJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbk1ldGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiAhIW9wdGlvbi5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogb3B0aW9uRmxhdEluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZW46IGlubmVyT3BlbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0Q29udGVudFJlZi5jdXJyZW50W29wdGlvbkZsYXRJbmRleF0gPSBleHRyYWN0T3B0aW9uVGV4dChvcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChfanN4KFwiYnV0dG9uXCIsIE9iamVjdC5hc3NpZ24oe30sIGdldEl0ZW1Qcm9wcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmKG5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdFJlZi5jdXJyZW50W29wdGlvbkZsYXRJbmRleF0gPSBub2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZTogJ29wdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBjbGFzc2VzKCdvcHRpb24nLCBqb2luQ2xzKGFjdGl2ZSAmJiBjbGFzc2VzKCdvcHRpb24tYWN0aXZlJyksIHNlbGVjdGVkICYmIGNsYXNzZXMoJ29wdGlvbi1zZWxlY3RlZCcpLCBvcHRpb24uZGlzYWJsZWQgJiYgY2xhc3Nlcygnb3B0aW9uLWRpc2FibGVkJyksIG9wdGlvbkNsYXNzTmFtZSkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBvcHRpb24uZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FyaWEtc2VsZWN0ZWQnOiBzZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0T3B0aW9uKG9wdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI6ICgpID0+IGhhbmRsZUl0ZW1Nb3VzZUVudGVyKG9wdGlvbkZsYXRJbmRleCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25CbHVyOiBoYW5kbGVPcHRpb25CbHVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksIHsgY2hpbGRyZW46IHJlbmRlck9wdGlvbiA/IChyZW5kZXJPcHRpb24ob3B0aW9uLCBvcHRpb25NZXRhKSkgOiAoX2pzeChTZWxlY3RPcHRpb25Db250ZW50LCB7IGNsYXNzZXM6IGNsYXNzZXMsIG9wdGlvbjogb3B0aW9uLCBzZWxlY3RlZDogc2VsZWN0ZWQgfSkpIH0pLCBgJHtncm91cC5rZXl9LSR7b3B0aW9uLnZhbHVlfWApKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSldIH0sIGdyb3VwLmtleSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKSkgfSksIHBhbmVsRm9vdGVyICE9IG51bGwgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3BhbmVsLWZvb3RlcicpLCBjaGlsZHJlbjogcGFuZWxGb290ZXIgfSkpXSB9KSkgfSkpO1xuICAgICAgICAgICAgICAgIHJldHVybiBwb3J0YWwgPyBfanN4KEZsb2F0aW5nUG9ydGFsLCB7IGNoaWxkcmVuOiBwYW5lbE5vZGUgfSkgOiBwYW5lbE5vZGU7XG4gICAgICAgICAgICB9KSgpXSB9KSk7XG59O1xuU2VsZWN0LmRpc3BsYXlOYW1lID0gJ1NlbGVjdCc7XG5leHBvcnQgZGVmYXVsdCBtZW1vKFNlbGVjdCk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
534
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JlYWN0MiIsIl9ob29rcyIsIl9JY29ucyIsIl9UeXBvZ3JhcGh5IiwiX2NsYXNzbmFtZXMiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9TZWxlY3RGaWVsZFNoZWxsIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9TZWxlY3RPcHRpb25Db250ZW50IiwiX1NlbGVjdFNlYXJjaENvbnRyb2wiLCJfU2VsZWN0VmFsdWVDb250ZW50IiwiX2NvbnN0YW50cyIsIl91dGlscyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIkRFRkFVTFRfTUFYX0hFSUdIVCIsIlNlbGVjdCIsImV4cG9ydHMiLCJwcm9wcyIsIl9wcm9wcyRjbGFzc05hbWUiLCJjbGFzc05hbWUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwic3R5bGUiLCJpZCIsIm5hbWUiLCJhcmlhTGFiZWwiLCJhcmlhTGFiZWxsZWRCeSIsIl9wcm9wcyRwbGFjZWhvbGRlciIsInBsYWNlaG9sZGVyIiwiX3Byb3BzJG9wdGlvbnMiLCJvcHRpb25zIiwidmFsdWUiLCJkZWZhdWx0VmFsdWUiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJfcHJvcHMkc3RhdHVzIiwic3RhdHVzIiwiX3Byb3BzJHZhcmlhbnQiLCJ2YXJpYW50IiwiX3Byb3BzJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJfcHJvcHMkbXVsdGlwbGUiLCJtdWx0aXBsZSIsIm1heFZpc2libGVWYWx1ZXMiLCJfcHJvcHMkc2VhcmNoYWJsZSIsInNlYXJjaGFibGUiLCJfcHJvcHMkc2VhcmNoUGxhY2Vob2wiLCJzZWFyY2hQbGFjZWhvbGRlciIsInNlYXJjaFZhbHVlIiwiX3Byb3BzJGRlZmF1bHRTZWFyY2hWIiwiZGVmYXVsdFNlYXJjaFZhbHVlIiwibGFiZWwiLCJpbmZvIiwiZGVzY3JpcHRpb24iLCJmZWVkYmFjayIsIl9wcm9wcyRyZXF1aXJlZCIsInJlcXVpcmVkIiwicHJlZml4IiwiX3Byb3BzJGVtcHR5Q29udGVudCIsImVtcHR5Q29udGVudCIsInBhbmVsRm9vdGVyIiwib3BlbiIsIl9wcm9wcyRkZWZhdWx0T3BlbiIsImRlZmF1bHRPcGVuIiwiX3Byb3BzJGxpc3RNYXhIZWlnaHQiLCJsaXN0TWF4SGVpZ2h0Iiwib25DaGFuZ2UiLCJvbk9wZW5DaGFuZ2UiLCJvblNlYXJjaENoYW5nZSIsIm9uQmx1ciIsImZpbHRlck9wdGlvbiIsInJlbmRlck9wdGlvbiIsInJlbmRlclZhbHVlIiwicmVmIiwiY2xhc3NlcyIsInJvb3RDbGFzc25hbWVzIiwiYXV0b0lkIiwidXNlSWQiLCJ0cmlnZ2VySWQiLCJsYWJlbElkIiwiZGVzY3JpcHRpb25JZCIsImZlZWRiYWNrSWQiLCJfdXNlQ29udHJvbGxlZFN0YXRlIiwidXNlQ29udHJvbGxlZFN0YXRlIiwidW5kZWZpbmVkIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJpbm5lclZhbHVlIiwic2V0SW5uZXJWYWx1ZSIsIl91c2VDb250cm9sbGVkU3RhdGUzIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTQiLCJpbm5lck9wZW4iLCJzZXRJbm5lck9wZW4iLCJfdXNlQ29udHJvbGxlZFN0YXRlNSIsIl91c2VDb250cm9sbGVkU3RhdGU2IiwiaW5uZXJTZWFyY2hWYWx1ZSIsInNldElubmVyU2VhcmNoVmFsdWUiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJhY3RpdmVJbmRleCIsInNldEFjdGl2ZUluZGV4Iiwibm9ybWFsaXplZFNpemUiLCJub3JtYWxpemVTaXplIiwiYWxsT3B0aW9uR3JvdXBzIiwidXNlTWVtbyIsIm5vcm1hbGl6ZU9wdGlvbkdyb3VwcyIsImFsbEZsYXRPcHRpb25zIiwiZmxhdHRlbk9wdGlvbkdyb3VwcyIsInZpc2libGVPcHRpb25Hcm91cHMiLCJmaWx0ZXJPcHRpb25Hcm91cHMiLCJ2aXNpYmxlRmxhdE9wdGlvbnMiLCJzZWxlY3RlZE9wdGlvbnMiLCJnZXRTZWxlY3RlZE9wdGlvbnMiLCJzZWxlY3RlZEluZGV4IiwibGVuZ3RoIiwibWF0Y2hlZEluZGV4IiwiZmluZEluZGV4Iiwib3B0aW9uIiwiaGFzU2VsZWN0aW9uIiwibGlzdFJlZiIsInVzZVJlZiIsImxpc3RDb250ZW50UmVmIiwiZmxvYXRpbmdSZWYiLCJ0cmlnZ2VyUmVmIiwic2VhcmNoSW5wdXRSZWYiLCJoYW5kbGVUcmlnZ2VyUmVmIiwidXNlRXZlbnRDYWxsYmFjayIsIm5vZGUiLCJjdXJyZW50IiwiaGFuZGxlT3BlbkNoYW5nZSIsIm5leHRPcGVuIiwiX3VzZUZsb2F0aW5nIiwidXNlRmxvYXRpbmciLCJwbGFjZW1lbnQiLCJ3aGlsZUVsZW1lbnRzTW91bnRlZCIsImF1dG9VcGRhdGUiLCJtaWRkbGV3YXJlIiwib2Zmc2V0IiwiZmxpcCIsInBhZGRpbmciLCJzaGlmdCIsImZsb2F0aW5nU2l6ZSIsImFwcGx5IiwiX3JlZiIsInJlY3RzIiwiZWxlbWVudHMiLCJhdmFpbGFibGVIZWlnaHQiLCJuZXh0TWF4SGVpZ2h0IiwiTWF0aCIsIm1heCIsIm1pbiIsImFzc2lnbiIsImZsb2F0aW5nIiwid2lkdGgiLCJjb25jYXQiLCJyZWZlcmVuY2UiLCJtYXhIZWlnaHQiLCJyZWZzIiwiZmxvYXRpbmdTdHlsZXMiLCJjb250ZXh0Iiwic2V0UmVmZXJlbmNlIiwic2V0RmxvYXRpbmciLCJjbGljayIsInVzZUNsaWNrIiwiZW5hYmxlZCIsImRpc21pc3MiLCJ1c2VEaXNtaXNzIiwib3V0c2lkZVByZXNzRXZlbnQiLCJyb2xlIiwidXNlUm9sZSIsImxpc3ROYXZpZ2F0aW9uIiwidXNlTGlzdE5hdmlnYXRpb24iLCJvbk5hdmlnYXRlIiwibG9vcCIsInR5cGVhaGVhZCIsInVzZVR5cGVhaGVhZCIsIm9uTWF0Y2giLCJfdXNlSW50ZXJhY3Rpb25zIiwidXNlSW50ZXJhY3Rpb25zIiwiZ2V0UmVmZXJlbmNlUHJvcHMiLCJnZXRGbG9hdGluZ1Byb3BzIiwiZ2V0SXRlbVByb3BzIiwiZmlyc3RFbmFibGVkSW5kZXgiLCJsYXN0RW5hYmxlZEluZGV4IiwiX2EiLCJpbmRleCIsInVzZUVmZmVjdCIsInByZXYiLCJmb2N1cyIsInByZXZlbnRTY3JvbGwiLCJzbGljZSIsIm5vdGlmeUJsdXJJZk91dHNpZGUiLCJyZWxhdGVkVGFyZ2V0IiwiZXZlbnQiLCJfYiIsIm5leHRUYXJnZXQiLCJ3aXRoaW5UcmlnZ2VyIiwiY29udGFpbnMiLCJ3aXRoaW5GbG9hdGluZyIsImhhbmRsZVRyaWdnZXJCbHVyIiwiaGFuZGxlT3B0aW9uQmx1ciIsImNvbW1pdENoYW5nZSIsIm5leHRWYWx1ZSIsIm5leHRPcHRpb24iLCJoYW5kbGVTZWxlY3RPcHRpb24iLCJ0b2dnbGVNdWx0aXBsZVZhbHVlIiwibmV4dE9wdGlvbnMiLCJnZXRPcHRpb25zQnlWYWx1ZXMiLCJoYW5kbGVSZW1vdmVTZWxlY3RlZFZhbHVlIiwib3B0aW9uVmFsdWUiLCJnZXRNdWx0aXBsZVZhbHVlIiwiaW5jbHVkZXMiLCJyZW1vdmVNdWx0aXBsZVZhbHVlIiwiaGFuZGxlVHJpZ2dlcktleURvd24iLCJrZXkiLCJLRVlCT0FSRCIsIkVOVEVSIiwiU1BBQ0UiLCJwcmV2ZW50RGVmYXVsdCIsIkFSUk9XX0RPV04iLCJBUlJPV19VUCIsImhhbmRsZUl0ZW1Nb3VzZUVudGVyIiwiaGFuZGxlVGFnUmVtb3ZlTW91c2VEb3duIiwic3RvcFByb3BhZ2F0aW9uIiwiaGFuZGxlVGFnUmVtb3ZlQ2xpY2siLCJoYW5kbGVTZWFyY2hCbHVyIiwiaGFuZGxlU2VhcmNoQ2hhbmdlIiwiX2V2ZW50IiwiaGFuZGxlU2VhcmNoS2V5RG93biIsIl9jIiwiRVNDQVBFIiwicmVuZGVyVmFsdWVNZXRhIiwidmFsdWVMYWJlbENsYXNzIiwiaXNNdWx0aXBsZVZhbHVlRmlsbGVkIiwidHJpZ2dlckNsYXNzTmFtZSIsImpvaW5DbHMiLCJpY29uU2l6ZSIsImZsb2F0aW5nQXJpYUxhYmVsbGVkQnkiLCJkZXNjcmliZWRCeUlkcyIsImZpbHRlciIsIkJvb2xlYW4iLCJqb2luIiwiX2pzeHMiLCJTZWxlY3RGaWVsZFNoZWxsIiwiY2hpbGRyZW4iLCJ0eXBlIiwib25LZXlEb3duIiwiX2pzeCIsIlNlbGVjdFZhbHVlQ29udGVudCIsIm9uUmVtb3ZlIiwib25SZW1vdmVDbGljayIsIm9uUmVtb3ZlTW91c2VEb3duIiwiSWNvbnMiLCJjb2xvciIsIkZsb2F0aW5nUG9ydGFsIiwiRmxvYXRpbmdGb2N1c01hbmFnZXIiLCJtb2RhbCIsImluaXRpYWxGb2N1cyIsInJldHVybkZvY3VzIiwiU2VsZWN0U2VhcmNoQ29udHJvbCIsIlR5cG9ncmFwaHlCb2R5IiwiU0VMRUNUX1RZUE9HUkFQSFkiLCJlbXB0eSIsImZsYXRJbmRleCIsIm1hcCIsImdyb3VwIiwiVHlwb2dyYXBoeUxhYmVsIiwiZ3JvdXBMYWJlbCIsInN0cm9uZyIsIm9wdGlvbkZsYXRJbmRleCIsInNlbGVjdGVkIiwiaXNPcHRpb25TZWxlY3RlZCIsImFjdGl2ZSIsIm9wdGlvbk1ldGEiLCJleHRyYWN0T3B0aW9uVGV4dCIsIm9uQ2xpY2siLCJvbk1vdXNlRW50ZXIiLCJTZWxlY3RPcHRpb25Db250ZW50IiwiZGlzcGxheU5hbWUiLCJfZGVmYXVsdCIsIm1lbW8iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ0FBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQWdCQSxJQUFBRSxPQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxNQUFBLEdBQUFILE9BQUE7QUFD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QyxHQUVoQyxJQUFBMUIsZUFBQSxFQUFDOEIsK0JBQW1CLEVBQUE7d0JBQ2xCNU0sT0FBTyxFQUFFQSxPQUFPO3dCQUNoQjRDLE1BQU0sRUFBRUEsTUFBTTt3QkFDZHlKLFFBQVEsRUFBRUE7c0JBQVEsQ0FBQTtvQkFFckIsQ0FBQSxDQUFBLEtBQUFwSCxNQUFBLENBakNPK0csS0FBSyxDQUFDbkQsR0FBRyxPQUFBNUQsTUFBQSxDQUFJckMsTUFBTSxDQUFDdkYsS0FBSyxDQUFFLENBa0M1QjtrQkFFYixDQUFDLENBQUM7Z0JBQUEsQ0FBQSxFQTdETTJPLEtBQUssQ0FBQ25ELEdBQUcsQ0E4RGI7Y0FBQSxDQUNQLENBQUM7WUFDSixDQUFDLENBQUM7VUFDSCxDQUFBLENBQ0csRUFDTDNKLFdBQVcsSUFBSSxJQUFJLElBQ2xCLElBQUE0TCxlQUFBLEVBQUEsS0FBQSxFQUFBO1lBQUtyTyxTQUFTLEVBQUV1RCxPQUFPLENBQUMsY0FBYyxDQUFDO1lBQUEySyxRQUFBLEVBQUd6TDtVQUFXLENBQUEsQ0FDdEQ7UUFBQSxDQUFBLENBQUE7TUFDRyxDQUFBO0lBQ2UsQ0FBQSxDQUUxQjtFQUFBLENBQUEsQ0FDZ0I7QUFFdkIsQ0FBQztBQUVEN0MsTUFBTSxDQUFDd1EsV0FBVyxHQUFHLFFBQVE7QUFBQyxJQUFBQyxRQUFBLEdBQUF4USxPQUFBLDJCQUVmLElBQUF5USxZQUFJLEVBQUMxUSxNQUFNLENBQUMiLCJmaWxlIjoiY29tcG9uZW50cy9TZWxlY3QvU2VsZWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGF1dG9VcGRhdGUsIGZsaXAsIEZsb2F0aW5nRm9jdXNNYW5hZ2VyLCBGbG9hdGluZ1BvcnRhbCwgb2Zmc2V0LCBzaGlmdCwgc2l6ZSBhcyBmbG9hdGluZ1NpemUsIHVzZUNsaWNrLCB1c2VEaXNtaXNzLCB1c2VGbG9hdGluZywgdXNlSW50ZXJhY3Rpb25zLCB1c2VMaXN0TmF2aWdhdGlvbiwgdXNlUm9sZSwgdXNlVHlwZWFoZWFkLCB9IGZyb20gJ0BmbG9hdGluZy11aS9yZWFjdCc7XG5pbXBvcnQgeyBtZW1vLCB1c2VFZmZlY3QsIHVzZUlkLCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxlZFN0YXRlLCB1c2VFdmVudENhbGxiYWNrIH0gZnJvbSAnQDFtb25leS9ob29rcyc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uL0ljb25zJztcbmltcG9ydCB7IFR5cG9ncmFwaHlCb2R5LCBUeXBvZ3JhcGh5TGFiZWwgfSBmcm9tICcuLi9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IGpvaW5DbHMsIGRlZmF1bHQgYXMgcm9vdENsYXNzbmFtZXMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCBTZWxlY3RGaWVsZFNoZWxsIGZyb20gJy4vU2VsZWN0RmllbGRTaGVsbCc7XG5pbXBvcnQgU2VsZWN0T3B0aW9uQ29udGVudCBmcm9tICcuL1NlbGVjdE9wdGlvbkNvbnRlbnQnO1xuaW1wb3J0IFNlbGVjdFNlYXJjaENvbnRyb2wgZnJvbSAnLi9TZWxlY3RTZWFyY2hDb250cm9sJztcbmltcG9ydCBTZWxlY3RWYWx1ZUNvbnRlbnQgZnJvbSAnLi9TZWxlY3RWYWx1ZUNvbnRlbnQnO1xuaW1wb3J0IHsgS0VZQk9BUkQsIFNFTEVDVF9UWVBPR1JBUEhZIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZXh0cmFjdE9wdGlvblRleHQsIGZpbHRlck9wdGlvbkdyb3VwcywgZmxhdHRlbk9wdGlvbkdyb3VwcywgZ2V0TXVsdGlwbGVWYWx1ZSwgZ2V0T3B0aW9uc0J5VmFsdWVzLCBnZXRTZWxlY3RlZE9wdGlvbnMsIGlzT3B0aW9uU2VsZWN0ZWQsIG5vcm1hbGl6ZVNpemUsIG5vcm1hbGl6ZU9wdGlvbkdyb3VwcywgcmVtb3ZlTXVsdGlwbGVWYWx1ZSwgdG9nZ2xlTXVsdGlwbGVWYWx1ZSwgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCAnLi9zdHlsZSc7XG5jb25zdCBERUZBVUxUX01BWF9IRUlHSFQgPSAzMjA7XG5leHBvcnQgY29uc3QgU2VsZWN0ID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyBjbGFzc05hbWUgPSAnJywgcHJlZml4Q2xzID0gJ3NlbGVjdCcsIHN0eWxlLCBpZCwgbmFtZSwgJ2FyaWEtbGFiZWwnOiBhcmlhTGFiZWwsICdhcmlhLWxhYmVsbGVkYnknOiBhcmlhTGFiZWxsZWRCeSwgcGxhY2Vob2xkZXIgPSAnVmFsdWUnLCBvcHRpb25zID0gW10sIHZhbHVlLCBkZWZhdWx0VmFsdWUsIHNpemUgPSAnbGFyZ2UnLCBzdGF0dXMgPSAnZGVmYXVsdCcsIHZhcmlhbnQgPSAnZmlsbCcsIGRpc2FibGVkID0gZmFsc2UsIG11bHRpcGxlID0gZmFsc2UsIG1heFZpc2libGVWYWx1ZXMsIHNlYXJjaGFibGUgPSBmYWxzZSwgc2VhcmNoUGxhY2Vob2xkZXIgPSAnU2VhcmNoJywgc2VhcmNoVmFsdWUsIGRlZmF1bHRTZWFyY2hWYWx1ZSA9ICcnLCBsYWJlbCwgaW5mbywgZGVzY3JpcHRpb24sIGZlZWRiYWNrLCByZXF1aXJlZCA9IGZhbHNlLCBwcmVmaXgsIGVtcHR5Q29udGVudCA9ICdObyBvcHRpb25zJywgcGFuZWxGb290ZXIsIG9wZW4sIGRlZmF1bHRPcGVuID0gZmFsc2UsIGxpc3RNYXhIZWlnaHQgPSBERUZBVUxUX01BWF9IRUlHSFQsIG9uQ2hhbmdlLCBvbk9wZW5DaGFuZ2UsIG9uU2VhcmNoQ2hhbmdlLCBvbkJsdXIsIGZpbHRlck9wdGlvbiwgcmVuZGVyT3B0aW9uLCByZW5kZXJWYWx1ZSwgcmVmLCB9ID0gcHJvcHM7XG4gICAgY29uc3QgY2xhc3NlcyA9IHJvb3RDbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3QgYXV0b0lkID0gdXNlSWQoKTtcbiAgICBjb25zdCB0cmlnZ2VySWQgPSBpZCAhPT0gbnVsbCAmJiBpZCAhPT0gdm9pZCAwID8gaWQgOiBhdXRvSWQ7XG4gICAgY29uc3QgbGFiZWxJZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgZGVzY3JpcHRpb25JZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgZmVlZGJhY2tJZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgW2lubmVyVmFsdWUsIHNldElubmVyVmFsdWVdID0gdXNlQ29udHJvbGxlZFN0YXRlKGRlZmF1bHRWYWx1ZSAhPT0gbnVsbCAmJiBkZWZhdWx0VmFsdWUgIT09IHZvaWQgMCA/IGRlZmF1bHRWYWx1ZSA6IChtdWx0aXBsZSA/IFtdIDogdW5kZWZpbmVkKSwgdmFsdWUpO1xuICAgIGNvbnN0IFtpbm5lck9wZW4sIHNldElubmVyT3Blbl0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdE9wZW4sIG9wZW4pO1xuICAgIGNvbnN0IFtpbm5lclNlYXJjaFZhbHVlLCBzZXRJbm5lclNlYXJjaFZhbHVlXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShkZWZhdWx0U2VhcmNoVmFsdWUsIHNlYXJjaFZhbHVlKTtcbiAgICBjb25zdCBbYWN0aXZlSW5kZXgsIHNldEFjdGl2ZUluZGV4XSA9IHVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRTaXplID0gbm9ybWFsaXplU2l6ZShzaXplKTtcbiAgICBjb25zdCBhbGxPcHRpb25Hcm91cHMgPSB1c2VNZW1vKCgpID0+IG5vcm1hbGl6ZU9wdGlvbkdyb3VwcyhvcHRpb25zKSwgW29wdGlvbnNdKTtcbiAgICBjb25zdCBhbGxGbGF0T3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4gZmxhdHRlbk9wdGlvbkdyb3VwcyhhbGxPcHRpb25Hcm91cHMpLCBbYWxsT3B0aW9uR3JvdXBzXSk7XG4gICAgY29uc3QgdmlzaWJsZU9wdGlvbkdyb3VwcyA9IHVzZU1lbW8oKCkgPT4gKHNlYXJjaGFibGVcbiAgICAgICAgPyBmaWx0ZXJPcHRpb25Hcm91cHMoYWxsT3B0aW9uR3JvdXBzLCBpbm5lclNlYXJjaFZhbHVlLCBmaWx0ZXJPcHRpb24pXG4gICAgICAgIDogYWxsT3B0aW9uR3JvdXBzKSwgW2FsbE9wdGlvbkdyb3VwcywgZmlsdGVyT3B0aW9uLCBpbm5lclNlYXJjaFZhbHVlLCBzZWFyY2hhYmxlXSk7XG4gICAgY29uc3QgdmlzaWJsZUZsYXRPcHRpb25zID0gdXNlTWVtbygoKSA9PiBmbGF0dGVuT3B0aW9uR3JvdXBzKHZpc2libGVPcHRpb25Hcm91cHMpLCBbdmlzaWJsZU9wdGlvbkdyb3Vwc10pO1xuICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4gZ2V0U2VsZWN0ZWRPcHRpb25zKGFsbEZsYXRPcHRpb25zLCBpbm5lclZhbHVlLCBtdWx0aXBsZSksIFthbGxGbGF0T3B0aW9ucywgaW5uZXJWYWx1ZSwgbXVsdGlwbGVdKTtcbiAgICBjb25zdCBzZWxlY3RlZEluZGV4ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGlmIChzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtYXRjaGVkSW5kZXggPSB2aXNpYmxlRmxhdE9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gc2VsZWN0ZWRPcHRpb25zWzBdLnZhbHVlKTtcbiAgICAgICAgcmV0dXJuIG1hdGNoZWRJbmRleCA+PSAwID8gbWF0Y2hlZEluZGV4IDogbnVsbDtcbiAgICB9LCBbc2VsZWN0ZWRPcHRpb25zLCB2aXNpYmxlRmxhdE9wdGlvbnNdKTtcbiAgICBjb25zdCBoYXNTZWxlY3Rpb24gPSBzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID4gMDtcbiAgICBjb25zdCBsaXN0UmVmID0gdXNlUmVmKFtdKTtcbiAgICBjb25zdCBsaXN0Q29udGVudFJlZiA9IHVzZVJlZihbXSk7XG4gICAgY29uc3QgZmxvYXRpbmdSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgdHJpZ2dlclJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBzZWFyY2hJbnB1dFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBoYW5kbGVUcmlnZ2VyUmVmID0gdXNlRXZlbnRDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICB0cmlnZ2VyUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgICBpZiAocmVmKSB7XG4gICAgICAgICAgICByZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVPcGVuQ2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygobmV4dE9wZW4pID0+IHtcbiAgICAgICAgc2V0SW5uZXJPcGVuKG5leHRPcGVuKTtcbiAgICAgICAgb25PcGVuQ2hhbmdlID09PSBudWxsIHx8IG9uT3BlbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25PcGVuQ2hhbmdlKG5leHRPcGVuKTtcbiAgICB9KTtcbiAgICBjb25zdCB7IHJlZnMsIGZsb2F0aW5nU3R5bGVzLCBjb250ZXh0LCB9ID0gdXNlRmxvYXRpbmcoe1xuICAgICAgICBvcGVuOiBpbm5lck9wZW4sXG4gICAgICAgIG9uT3BlbkNoYW5nZTogaGFuZGxlT3BlbkNoYW5nZSxcbiAgICAgICAgcGxhY2VtZW50OiAnYm90dG9tLXN0YXJ0JyxcbiAgICAgICAgd2hpbGVFbGVtZW50c01vdW50ZWQ6IGF1dG9VcGRhdGUsXG4gICAgICAgIG1pZGRsZXdhcmU6IFtcbiAgICAgICAgICAgIG9mZnNldCgwKSxcbiAgICAgICAgICAgIGZsaXAoeyBwYWRkaW5nOiA4IH0pLFxuICAgICAgICAgICAgc2hpZnQoeyBwYWRkaW5nOiA4IH0pLFxuICAgICAgICAgICAgZmxvYXRpbmdTaXplKHtcbiAgICAgICAgICAgICAgICBhcHBseSh7IHJlY3RzLCBlbGVtZW50cywgYXZhaWxhYmxlSGVpZ2h0IH0pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV4dE1heEhlaWdodCA9IE1hdGgubWF4KDEyMCwgTWF0aC5taW4obGlzdE1heEhlaWdodCwgYXZhaWxhYmxlSGVpZ2h0KSk7XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oZWxlbWVudHMuZmxvYXRpbmcuc3R5bGUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBgJHtyZWN0cy5yZWZlcmVuY2Uud2lkdGh9cHhgLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4SGVpZ2h0OiBgJHtuZXh0TWF4SGVpZ2h0fXB4YCxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICBdLFxuICAgIH0pO1xuICAgIGNvbnN0IHNldFJlZmVyZW5jZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgcmVmcy5zZXRSZWZlcmVuY2Uobm9kZSk7XG4gICAgICAgIGhhbmRsZVRyaWdnZXJSZWYobm9kZSk7XG4gICAgfSk7XG4gICAgY29uc3Qgc2V0RmxvYXRpbmcgPSB1c2VFdmVudENhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHJlZnMuc2V0RmxvYXRpbmcobm9kZSk7XG4gICAgICAgIGZsb2F0aW5nUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgIH0pO1xuICAgIGNvbnN0IGNsaWNrID0gdXNlQ2xpY2soY29udGV4dCwgeyBlbmFibGVkOiAhZGlzYWJsZWQgfSk7XG4gICAgY29uc3QgZGlzbWlzcyA9IHVzZURpc21pc3MoY29udGV4dCwgeyBlbmFibGVkOiAhZGlzYWJsZWQsIG91dHNpZGVQcmVzc0V2ZW50OiAnbW91c2Vkb3duJyB9KTtcbiAgICBjb25zdCByb2xlID0gdXNlUm9sZShjb250ZXh0LCB7IHJvbGU6ICdzZWxlY3QnIH0pO1xuICAgIGNvbnN0IGxpc3ROYXZpZ2F0aW9uID0gdXNlTGlzdE5hdmlnYXRpb24oY29udGV4dCwge1xuICAgICAgICBsaXN0UmVmLFxuICAgICAgICBhY3RpdmVJbmRleCxcbiAgICAgICAgc2VsZWN0ZWRJbmRleCxcbiAgICAgICAgb25OYXZpZ2F0ZTogc2V0QWN0aXZlSW5kZXgsXG4gICAgICAgIGVuYWJsZWQ6IGlubmVyT3BlbixcbiAgICAgICAgbG9vcDogdHJ1ZSxcbiAgICB9KTtcbiAgICBjb25zdCB0eXBlYWhlYWQgPSB1c2VUeXBlYWhlYWQoY29udGV4dCwge1xuICAgICAgICBsaXN0UmVmOiBsaXN0Q29udGVudFJlZixcbiAgICAgICAgYWN0aXZlSW5kZXgsXG4gICAgICAgIHNlbGVjdGVkSW5kZXgsXG4gICAgICAgIGVuYWJsZWQ6IGlubmVyT3BlbiAmJiAhc2VhcmNoYWJsZSxcbiAgICAgICAgb25NYXRjaDogc2V0QWN0aXZlSW5kZXgsXG4gICAgfSk7XG4gICAgY29uc3QgeyBnZXRSZWZlcmVuY2VQcm9wcywgZ2V0RmxvYXRpbmdQcm9wcywgZ2V0SXRlbVByb3BzIH0gPSB1c2VJbnRlcmFjdGlvbnMoW1xuICAgICAgICBjbGljayxcbiAgICAgICAgZGlzbWlzcyxcbiAgICAgICAgcm9sZSxcbiAgICAgICAgbGlzdE5hdmlnYXRpb24sXG4gICAgICAgIHR5cGVhaGVhZCxcbiAgICBdKTtcbiAgICBjb25zdCBmaXJzdEVuYWJsZWRJbmRleCA9IHVzZU1lbW8oKCkgPT4gdmlzaWJsZUZsYXRPcHRpb25zLmZpbmRJbmRleCgob3B0aW9uKSA9PiAhb3B0aW9uLmRpc2FibGVkKSwgW3Zpc2libGVGbGF0T3B0aW9uc10pO1xuICAgIGNvbnN0IGxhc3RFbmFibGVkSW5kZXggPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBmb3IgKGxldCBpbmRleCA9IHZpc2libGVGbGF0T3B0aW9ucy5sZW5ndGggLSAxOyBpbmRleCA+PSAwOyBpbmRleCAtPSAxKSB7XG4gICAgICAgICAgICBpZiAoISgoX2EgPSB2aXNpYmxlRmxhdE9wdGlvbnNbaW5kZXhdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGlzYWJsZWQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH0sIFt2aXNpYmxlRmxhdE9wdGlvbnNdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWlubmVyT3Blbikge1xuICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgoc2VsZWN0ZWRJbmRleCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc2V0QWN0aXZlSW5kZXgoKHByZXYpID0+IHtcbiAgICAgICAgICAgIGlmIChwcmV2ICE9PSBudWxsICYmIHZpc2libGVGbGF0T3B0aW9uc1twcmV2XSAmJiAhdmlzaWJsZUZsYXRPcHRpb25zW3ByZXZdLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgIHZpc2libGVGbGF0T3B0aW9uc1tzZWxlY3RlZEluZGV4XSAmJlxuICAgICAgICAgICAgICAgICF2aXNpYmxlRmxhdE9wdGlvbnNbc2VsZWN0ZWRJbmRleF0uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZWN0ZWRJbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmaXJzdEVuYWJsZWRJbmRleCA+PSAwID8gZmlyc3RFbmFibGVkSW5kZXggOiBudWxsO1xuICAgICAgICB9KTtcbiAgICB9LCBbZmlyc3RFbmFibGVkSW5kZXgsIGlubmVyT3Blbiwgc2VsZWN0ZWRJbmRleCwgdmlzaWJsZUZsYXRPcHRpb25zXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoIWlubmVyT3BlbiB8fCBhY3RpdmVJbmRleCA9PT0gbnVsbCB8fCBzZWFyY2hhYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgKF9hID0gbGlzdFJlZi5jdXJyZW50W2FjdGl2ZUluZGV4XSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICB9LCBbYWN0aXZlSW5kZXgsIGlubmVyT3Blbiwgc2VhcmNoYWJsZV0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGxpc3RSZWYuY3VycmVudCA9IGxpc3RSZWYuY3VycmVudC5zbGljZSgwLCB2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoKTtcbiAgICAgICAgbGlzdENvbnRlbnRSZWYuY3VycmVudCA9IGxpc3RDb250ZW50UmVmLmN1cnJlbnQuc2xpY2UoMCwgdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aCk7XG4gICAgfSwgW3Zpc2libGVGbGF0T3B0aW9ucy5sZW5ndGhdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChpbm5lck9wZW4gJiYgc2VhcmNoYWJsZSkge1xuICAgICAgICAgICAgKF9hID0gc2VhcmNoSW5wdXRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgIH0sIFtpbm5lck9wZW4sIHNlYXJjaGFibGVdKTtcbiAgICBjb25zdCBub3RpZnlCbHVySWZPdXRzaWRlID0gdXNlRXZlbnRDYWxsYmFjaygocmVsYXRlZFRhcmdldCwgZXZlbnQpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgY29uc3QgbmV4dFRhcmdldCA9IHJlbGF0ZWRUYXJnZXQ7XG4gICAgICAgIGNvbnN0IHdpdGhpblRyaWdnZXIgPSAhIShuZXh0VGFyZ2V0ICYmICgoX2EgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jb250YWlucyhuZXh0VGFyZ2V0KSkpO1xuICAgICAgICBjb25zdCB3aXRoaW5GbG9hdGluZyA9ICEhKG5leHRUYXJnZXQgJiYgKChfYiA9IGZsb2F0aW5nUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jb250YWlucyhuZXh0VGFyZ2V0KSkpO1xuICAgICAgICBpZiAoIXdpdGhpblRyaWdnZXIgJiYgIXdpdGhpbkZsb2F0aW5nKSB7XG4gICAgICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVHJpZ2dlckJsdXIgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBub3RpZnlCbHVySWZPdXRzaWRlKGV2ZW50LnJlbGF0ZWRUYXJnZXQsIGV2ZW50KTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVPcHRpb25CbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgbm90aWZ5Qmx1cklmT3V0c2lkZShldmVudC5yZWxhdGVkVGFyZ2V0LCBldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgY29tbWl0Q2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygobmV4dFZhbHVlLCBuZXh0T3B0aW9uKSA9PiB7XG4gICAgICAgIHNldElubmVyVmFsdWUobmV4dFZhbHVlKTtcbiAgICAgICAgb25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2hhbmdlKG5leHRWYWx1ZSwgbmV4dE9wdGlvbik7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VsZWN0T3B0aW9uID0gdXNlRXZlbnRDYWxsYmFjaygob3B0aW9uKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKG9wdGlvbi5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtdWx0aXBsZSkge1xuICAgICAgICAgICAgY29uc3QgbmV4dFZhbHVlID0gdG9nZ2xlTXVsdGlwbGVWYWx1ZShpbm5lclZhbHVlLCBvcHRpb24udmFsdWUpO1xuICAgICAgICAgICAgY29uc3QgbmV4dE9wdGlvbnMgPSBnZXRPcHRpb25zQnlWYWx1ZXMoYWxsRmxhdE9wdGlvbnMsIG5leHRWYWx1ZSk7XG4gICAgICAgICAgICBjb21taXRDaGFuZ2UobmV4dFZhbHVlLCBuZXh0T3B0aW9ucyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29tbWl0Q2hhbmdlKG9wdGlvbi52YWx1ZSwgb3B0aW9uKTtcbiAgICAgICAgaGFuZGxlT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgICAgIG9uQmx1ciA9PT0gbnVsbCB8fCBvbkJsdXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmx1cigpO1xuICAgICAgICAoX2EgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlUmVtb3ZlU2VsZWN0ZWRWYWx1ZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG9wdGlvblZhbHVlKSA9PiB7XG4gICAgICAgIGlmICghbXVsdGlwbGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWdldE11bHRpcGxlVmFsdWUoaW5uZXJWYWx1ZSkuaW5jbHVkZXMob3B0aW9uVmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV4dFZhbHVlID0gcmVtb3ZlTXVsdGlwbGVWYWx1ZShpbm5lclZhbHVlLCBvcHRpb25WYWx1ZSk7XG4gICAgICAgIGNvbnN0IG5leHRPcHRpb25zID0gZ2V0T3B0aW9uc0J5VmFsdWVzKGFsbEZsYXRPcHRpb25zLCBuZXh0VmFsdWUpO1xuICAgICAgICBjb21taXRDaGFuZ2UobmV4dFZhbHVlLCBuZXh0T3B0aW9ucyk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVHJpZ2dlcktleURvd24gPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5FTlRFUiB8fCBldmVudC5rZXkgPT09IEtFWUJPQVJELlNQQUNFKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaGFuZGxlT3BlbkNoYW5nZSghaW5uZXJPcGVuKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5BUlJPV19ET1dOIHx8IGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuQVJST1dfVVApIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoIWlubmVyT3Blbikge1xuICAgICAgICAgICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVJdGVtTW91c2VFbnRlciA9IHVzZUV2ZW50Q2FsbGJhY2soKGluZGV4KSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCEoKF9hID0gdmlzaWJsZUZsYXRPcHRpb25zW2luZGV4XSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmRpc2FibGVkKSkge1xuICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgoaW5kZXgpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVGFnUmVtb3ZlTW91c2VEb3duID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVGFnUmVtb3ZlQ2xpY2sgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVTZWFyY2hCbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgbm90aWZ5Qmx1cklmT3V0c2lkZShldmVudC5yZWxhdGVkVGFyZ2V0LCBldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VhcmNoQ2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygobmV4dFZhbHVlLCBfZXZlbnQpID0+IHtcbiAgICAgICAgc2V0SW5uZXJTZWFyY2hWYWx1ZShuZXh0VmFsdWUpO1xuICAgICAgICBvblNlYXJjaENoYW5nZSA9PT0gbnVsbCB8fCBvblNlYXJjaENoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25TZWFyY2hDaGFuZ2UobmV4dFZhbHVlKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVTZWFyY2hLZXlEb3duID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkFSUk9XX0RPV04gJiYgZmlyc3RFbmFibGVkSW5kZXggPj0gMCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KGZpcnN0RW5hYmxlZEluZGV4KTtcbiAgICAgICAgICAgIChfYSA9IGxpc3RSZWYuY3VycmVudFtmaXJzdEVuYWJsZWRJbmRleF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuQVJST1dfVVAgJiYgbGFzdEVuYWJsZWRJbmRleCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KGxhc3RFbmFibGVkSW5kZXgpO1xuICAgICAgICAgICAgKF9iID0gbGlzdFJlZi5jdXJyZW50W2xhc3RFbmFibGVkSW5kZXhdKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkVTQ0FQRSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UoZmFsc2UpO1xuICAgICAgICAgICAgKF9jID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgcmVuZGVyVmFsdWVNZXRhID0ge1xuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgbXVsdGlwbGUsXG4gICAgICAgIG1heFZpc2libGVWYWx1ZXMsXG4gICAgICAgIG9wZW46IGlubmVyT3BlbixcbiAgICAgICAgcGxhY2Vob2xkZXI6ICFoYXNTZWxlY3Rpb24sXG4gICAgICAgIHNlbGVjdGVkT3B0aW9ucyxcbiAgICB9O1xuICAgIGNvbnN0IHZhbHVlTGFiZWxDbGFzcyA9IGhhc1NlbGVjdGlvbiA/ICd2YWx1ZScgOiAncGxhY2Vob2xkZXInO1xuICAgIGNvbnN0IGlzTXVsdGlwbGVWYWx1ZUZpbGxlZCA9IChtdWx0aXBsZSAmJlxuICAgICAgICBoYXNTZWxlY3Rpb24gJiZcbiAgICAgICAgbWF4VmlzaWJsZVZhbHVlcyA9PT0gdW5kZWZpbmVkKTtcbiAgICBjb25zdCB0cmlnZ2VyQ2xhc3NOYW1lID0gY2xhc3NlcygndHJpZ2dlcicsIGpvaW5DbHMoY2xhc3NlcyhgdHJpZ2dlci0ke25vcm1hbGl6ZWRTaXplfWApLCBjbGFzc2VzKGB0cmlnZ2VyLSR7dmFyaWFudH1gKSwgaW5uZXJPcGVuICYmIGNsYXNzZXMoJ3RyaWdnZXItb3BlbicpLCBpc011bHRpcGxlVmFsdWVGaWxsZWQgJiYgY2xhc3NlcygndHJpZ2dlci1tdWx0aXBsZS1maWxsZWQnKSwgaGFzU2VsZWN0aW9uID8gY2xhc3NlcygndHJpZ2dlci1maWxsZWQnKSA6IGNsYXNzZXMoJ3RyaWdnZXItcGxhY2Vob2xkZXInKSwgc3RhdHVzICE9PSAnZGVmYXVsdCcgJiYgY2xhc3NlcyhgdHJpZ2dlci0ke3N0YXR1c31gKSwgZGlzYWJsZWQgJiYgY2xhc3NlcygndHJpZ2dlci1kaXNhYmxlZCcpKSk7XG4gICAgY29uc3QgaWNvblNpemUgPSBub3JtYWxpemVkU2l6ZSA9PT0gJ3NtYWxsJyA/IDE2IDogMjA7XG4gICAgY29uc3QgZmxvYXRpbmdBcmlhTGFiZWxsZWRCeSA9IGFyaWFMYWJlbGxlZEJ5ICE9PSBudWxsICYmIGFyaWFMYWJlbGxlZEJ5ICE9PSB2b2lkIDAgPyBhcmlhTGFiZWxsZWRCeSA6IChsYWJlbCA/IGxhYmVsSWQgOiB1bmRlZmluZWQpO1xuICAgIGNvbnN0IGRlc2NyaWJlZEJ5SWRzID0gW1xuICAgICAgICBkZXNjcmlwdGlvbiA/IGRlc2NyaXB0aW9uSWQgOiBudWxsLFxuICAgICAgICBmZWVkYmFjayA/IGZlZWRiYWNrSWQgOiBudWxsLFxuICAgIF0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJyAnKSB8fCB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIChfanN4cyhTZWxlY3RGaWVsZFNoZWxsLCB7IGNsYXNzZXM6IGNsYXNzZXMsIGNsYXNzTmFtZTogY2xhc3NOYW1lLCBzaXplOiBub3JtYWxpemVkU2l6ZSwgdmFyaWFudDogdmFyaWFudCwgc3RhdHVzOiBzdGF0dXMsIGRpc2FibGVkOiBkaXNhYmxlZCwgbGFiZWw6IGxhYmVsLCBpbmZvOiBpbmZvLCBkZXNjcmlwdGlvbjogZGVzY3JpcHRpb24sIGZlZWRiYWNrOiBmZWVkYmFjaywgcmVxdWlyZWQ6IHJlcXVpcmVkLCBsYWJlbElkOiBsYWJlbElkLCBkZXNjcmlwdGlvbklkOiBkZXNjcmlwdGlvbklkLCBmZWVkYmFja0lkOiBmZWVkYmFja0lkLCBjaGlsZHJlbjogW19qc3hzKFwiYnV0dG9uXCIsIE9iamVjdC5hc3NpZ24oe30sIGdldFJlZmVyZW5jZVByb3BzKHtcbiAgICAgICAgICAgICAgICByZWY6IHNldFJlZmVyZW5jZSxcbiAgICAgICAgICAgICAgICBpZDogdHJpZ2dlcklkLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiB0cmlnZ2VyQ2xhc3NOYW1lLFxuICAgICAgICAgICAgICAgIG9uS2V5RG93bjogaGFuZGxlVHJpZ2dlcktleURvd24sXG4gICAgICAgICAgICAgICAgb25CbHVyOiBoYW5kbGVUcmlnZ2VyQmx1cixcbiAgICAgICAgICAgICAgICAnYXJpYS1sYWJlbCc6IGFyaWFMYWJlbCxcbiAgICAgICAgICAgICAgICAnYXJpYS1sYWJlbGxlZGJ5JzogZmxvYXRpbmdBcmlhTGFiZWxsZWRCeSxcbiAgICAgICAgICAgICAgICAnYXJpYS1kZXNjcmliZWRieSc6IGRlc2NyaWJlZEJ5SWRzLFxuICAgICAgICAgICAgfSksIHsgY2hpbGRyZW46IFtfanN4cyhcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbnRlbnQnKSwgY2hpbGRyZW46IFtwcmVmaXggJiYgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3ByZWZpeCcpLCBjaGlsZHJlbjogcHJlZml4IH0pLCBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcyh2YWx1ZUxhYmVsQ2xhc3MsIGpvaW5DbHMoY2xhc3NlcyhgJHt2YWx1ZUxhYmVsQ2xhc3N9LSR7bm9ybWFsaXplZFNpemV9YCksIGlzTXVsdGlwbGVWYWx1ZUZpbGxlZCAmJiBjbGFzc2VzKGAke3ZhbHVlTGFiZWxDbGFzc30tbXVsdGlwbGVgKSwgZGlzYWJsZWQgJiYgY2xhc3NlcyhgJHt2YWx1ZUxhYmVsQ2xhc3N9LWRpc2FibGVkYCkpKSwgY2hpbGRyZW46IF9qc3goU2VsZWN0VmFsdWVDb250ZW50LCB7IGNsYXNzZXM6IGNsYXNzZXMsIGhhc1NlbGVjdGlvbjogaGFzU2VsZWN0aW9uLCBtdWx0aXBsZTogbXVsdGlwbGUsIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlciwgcmVuZGVyVmFsdWU6IHJlbmRlclZhbHVlLCByZW5kZXJWYWx1ZU1ldGE6IHJlbmRlclZhbHVlTWV0YSwgc2VsZWN0ZWRPcHRpb25zOiBzZWxlY3RlZE9wdGlvbnMsIG1heFZpc2libGVWYWx1ZXM6IG1heFZpc2libGVWYWx1ZXMsIG9uUmVtb3ZlOiBoYW5kbGVSZW1vdmVTZWxlY3RlZFZhbHVlLCBvblJlbW92ZUNsaWNrOiBoYW5kbGVUYWdSZW1vdmVDbGljaywgb25SZW1vdmVNb3VzZURvd246IGhhbmRsZVRhZ1JlbW92ZU1vdXNlRG93biB9KSB9KV0gfSksIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdpY29uJyksIGNoaWxkcmVuOiBfanN4KEljb25zLCB7IG5hbWU6IGlubmVyT3BlbiA/ICdjaGV2cm9uVXAnIDogJ2NoZXZyb25Eb3duJywgc2l6ZTogaWNvblNpemUsIGNvbG9yOiBcImN1cnJlbnRDb2xvclwiIH0pIH0pXSB9KSksIGlubmVyT3BlbiAmJiAhZGlzYWJsZWQgJiYgKF9qc3goRmxvYXRpbmdQb3J0YWwsIHsgY2hpbGRyZW46IF9qc3goRmxvYXRpbmdGb2N1c01hbmFnZXIsIHsgY29udGV4dDogY29udGV4dCwgbW9kYWw6IGZhbHNlLCBpbml0aWFsRm9jdXM6IC0xLCByZXR1cm5Gb2N1czogZmFsc2UsIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCBPYmplY3QuYXNzaWduKHt9LCBnZXRGbG9hdGluZ1Byb3BzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZjogc2V0RmxvYXRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGNsYXNzZXMoJ3BhbmVsJyksXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogZmxvYXRpbmdTdHlsZXMsXG4gICAgICAgICAgICAgICAgICAgIH0pLCB7IGNoaWxkcmVuOiBbc2VhcmNoYWJsZSAmJiAoX2pzeChTZWxlY3RTZWFyY2hDb250cm9sLCB7IHJlZjogc2VhcmNoSW5wdXRSZWYsIGNsYXNzZXM6IGNsYXNzZXMsIHBsYWNlaG9sZGVyOiBzZWFyY2hQbGFjZWhvbGRlciwgdmFsdWU6IGlubmVyU2VhcmNoVmFsdWUsIG9uQmx1cjogaGFuZGxlU2VhcmNoQmx1ciwgb25DaGFuZ2U6IGhhbmRsZVNlYXJjaENoYW5nZSwgb25LZXlEb3duOiBoYW5kbGVTZWFyY2hLZXlEb3duIH0pKSwgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFuZWwtYm9keScpLCBjaGlsZHJlbjogdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aCA9PT0gMCA/IChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdlbXB0eScpLCBjaGlsZHJlbjogX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiBTRUxFQ1RfVFlQT0dSQVBIWS5lbXB0eS5zaXplLCBjb2xvcjogU0VMRUNUX1RZUE9HUkFQSFkuZW1wdHkuY29sb3IsIGNoaWxkcmVuOiBlbXB0eUNvbnRlbnQgfSkgfSkpIDogKCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZmxhdEluZGV4ID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2aXNpYmxlT3B0aW9uR3JvdXBzLm1hcCgoZ3JvdXApID0+IChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZ3JvdXAnKSwgY2hpbGRyZW46IFtncm91cC5sYWJlbCAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZ3JvdXAtbGFiZWwnKSwgY2hpbGRyZW46IF9qc3goVHlwb2dyYXBoeUxhYmVsLCB7IHNpemU6IFNFTEVDVF9UWVBPR1JBUEhZLmdyb3VwTGFiZWwuc2l6ZSwgc3Ryb25nOiB0cnVlLCBjaGlsZHJlbjogZ3JvdXAubGFiZWwgfSkgfSkpLCBncm91cC5vcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25GbGF0SW5kZXggPSBmbGF0SW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGF0SW5kZXggKz0gMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkID0gaXNPcHRpb25TZWxlY3RlZChpbm5lclZhbHVlLCBtdWx0aXBsZSwgb3B0aW9uLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGFjdGl2ZSA9IGFjdGl2ZUluZGV4ID09PSBvcHRpb25GbGF0SW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25NZXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogISFvcHRpb24uZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IG9wdGlvbkZsYXRJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuOiBpbm5lck9wZW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdENvbnRlbnRSZWYuY3VycmVudFtvcHRpb25GbGF0SW5kZXhdID0gZXh0cmFjdE9wdGlvblRleHQob3B0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoX2pzeChcImJ1dHRvblwiLCBPYmplY3QuYXNzaWduKHt9LCBnZXRJdGVtUHJvcHMoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZihub2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RSZWYuY3VycmVudFtvcHRpb25GbGF0SW5kZXhdID0gbm9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU6ICdvcHRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3Nlcygnb3B0aW9uJywgam9pbkNscyhhY3RpdmUgJiYgY2xhc3Nlcygnb3B0aW9uLWFjdGl2ZScpLCBzZWxlY3RlZCAmJiBjbGFzc2VzKCdvcHRpb24tc2VsZWN0ZWQnKSwgb3B0aW9uLmRpc2FibGVkICYmIGNsYXNzZXMoJ29wdGlvbi1kaXNhYmxlZCcpKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IG9wdGlvbi5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXJpYS1zZWxlY3RlZCc6IHNlbGVjdGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb24ob3B0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uTW91c2VFbnRlcjogKCkgPT4gaGFuZGxlSXRlbU1vdXNlRW50ZXIob3B0aW9uRmxhdEluZGV4KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI6IGhhbmRsZU9wdGlvbkJsdXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwgeyBjaGlsZHJlbjogcmVuZGVyT3B0aW9uID8gKHJlbmRlck9wdGlvbihvcHRpb24sIG9wdGlvbk1ldGEpKSA6IChfanN4KFNlbGVjdE9wdGlvbkNvbnRlbnQsIHsgY2xhc3NlczogY2xhc3Nlcywgb3B0aW9uOiBvcHRpb24sIHNlbGVjdGVkOiBzZWxlY3RlZCB9KSkgfSksIGAke2dyb3VwLmtleX0tJHtvcHRpb24udmFsdWV9YCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KV0gfSwgZ3JvdXAua2V5KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpKSB9KSwgcGFuZWxGb290ZXIgIT0gbnVsbCAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFuZWwtZm9vdGVyJyksIGNoaWxkcmVuOiBwYW5lbEZvb3RlciB9KSldIH0pKSB9KSB9KSldIH0pKTtcbn07XG5TZWxlY3QuZGlzcGxheU5hbWUgPSAnU2VsZWN0JztcbmV4cG9ydCBkZWZhdWx0IG1lbW8oU2VsZWN0KTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -9,7 +9,6 @@ interface SelectFieldShellProps {
9
9
  variant: SelectVariant;
10
10
  status: SelectStatus;
11
11
  disabled: boolean;
12
- loading?: boolean;
13
12
  label?: ReactNode;
14
13
  info?: ReactNode;
15
14
  description?: ReactNode;
@@ -7,7 +7,6 @@ exports["default"] = exports.SelectFieldShell = void 0;
7
7
  var _jsxRuntime = require("react/jsx-runtime");
8
8
  var _react = require("react");
9
9
  var _Icons = require("../Icons");
10
- var _Skeleton = require("../Skeleton");
11
10
  var _Typography = require("../Typography");
12
11
  var _classnames = require("../../utils/classnames");
13
12
  var _constants = require("./constants");
@@ -20,8 +19,6 @@ var SelectFieldShellBase = function SelectFieldShellBase(_ref) {
20
19
  variant = _ref.variant,
21
20
  status = _ref.status,
22
21
  disabled = _ref.disabled,
23
- _ref$loading = _ref.loading,
24
- loading = _ref$loading === void 0 ? false : _ref$loading,
25
22
  label = _ref.label,
26
23
  info = _ref.info,
27
24
  description = _ref.description,
@@ -38,10 +35,7 @@ var SelectFieldShellBase = function SelectFieldShellBase(_ref) {
38
35
  className: classes(undefined, (0, _classnames.joinCls)(classes(size), classes(variant), status !== 'default' && classes(status), disabled && classes('disabled'), className)),
39
36
  children: [(label || info) && (0, _jsxRuntime.jsxs)("div", {
40
37
  className: classes('label-row'),
41
- children: [label && (loading ? (0, _jsxRuntime.jsx)(_Skeleton.Skeleton, {
42
- width: "72px",
43
- height: "18px"
44
- }) : (0, _jsxRuntime.jsxs)(_Typography.TypographyLabel, {
38
+ children: [label && (0, _jsxRuntime.jsxs)(_Typography.TypographyLabel, {
45
39
  id: labelId,
46
40
  className: classes('label-text'),
47
41
  size: _constants.SELECT_TYPOGRAPHY.label.size,
@@ -51,7 +45,7 @@ var SelectFieldShellBase = function SelectFieldShellBase(_ref) {
51
45
  className: classes('required'),
52
46
  children: "*"
53
47
  })]
54
- })), info && !loading && (0, _jsxRuntime.jsx)("span", {
48
+ }), info && (0, _jsxRuntime.jsx)("span", {
55
49
  className: classes('info'),
56
50
  children: info
57
51
  })]
@@ -82,4 +76,4 @@ var SelectFieldShellBase = function SelectFieldShellBase(_ref) {
82
76
  };
83
77
  var SelectFieldShell = exports.SelectFieldShell = /*#__PURE__*/(0, _react.memo)(SelectFieldShellBase);
84
78
  var _default = exports["default"] = SelectFieldShell;
85
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdEZpZWxkU2hlbGwuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1NlbGVjdC9TZWxlY3RGaWVsZFNoZWxsLnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfcmVhY3QiLCJfSWNvbnMiLCJfU2tlbGV0b24iLCJfVHlwb2dyYXBoeSIsIl9jbGFzc25hbWVzIiwiX2NvbnN0YW50cyIsIlNlbGVjdEZpZWxkU2hlbGxCYXNlIiwiX3JlZiIsImNoaWxkcmVuIiwiY2xhc3NlcyIsIl9yZWYkY2xhc3NOYW1lIiwiY2xhc3NOYW1lIiwic2l6ZSIsInZhcmlhbnQiLCJzdGF0dXMiLCJkaXNhYmxlZCIsIl9yZWYkbG9hZGluZyIsImxvYWRpbmciLCJsYWJlbCIsImluZm8iLCJkZXNjcmlwdGlvbiIsImZlZWRiYWNrIiwiX3JlZiRyZXF1aXJlZCIsInJlcXVpcmVkIiwibGFiZWxJZCIsImRlc2NyaXB0aW9uSWQiLCJmZWVkYmFja0lkIiwibGFiZWxDb2xvciIsIlNFTEVDVF9UWVBPR1JBUEhZIiwiY29sb3IiLCJkZXNjcmlwdGlvbkNvbG9yIiwiZmVlZGJhY2tDbGFzcyIsImpvaW5DbHMiLCJjb25jYXQiLCJfanN4cyIsInVuZGVmaW5lZCIsIl9qc3giLCJTa2VsZXRvbiIsIndpZHRoIiwiaGVpZ2h0IiwiVHlwb2dyYXBoeUxhYmVsIiwiaWQiLCJzdHJvbmciLCJUeXBvZ3JhcGh5Qm9keSIsImFzIiwicm9sZSIsIkljb25zIiwibmFtZSIsIlNlbGVjdEZpZWxkU2hlbGwiLCJleHBvcnRzIiwibWVtbyIsIl9kZWZhdWx0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNBQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxTQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxXQUFBLEdBQUFKLE9BQUE7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QUEsRUFDdkMsSUFBQTRCLGVBQUEsRUFBQ1UsWUFBSyxFQUFBO1VBQUNDLElBQUksRUFBQyxPQUFPO1VBQUNuQyxJQUFJLEVBQUUsRUFBRTtVQUFFaUIsS0FBSyxFQUFDO1FBQWMsQ0FBQTtNQUFHLENBQUEsQ0FFeEQsRUFDRCxJQUFBTyxlQUFBLEVBQUNPLDBCQUFjLEVBQUE7UUFBQy9CLElBQUksRUFBRWdCLDRCQUFpQixDQUFDUCxRQUFRLENBQUNULElBQUk7UUFBQUosUUFBQSxFQUFHYTtNQUFRLENBQUEsQ0FBa0I7SUFBQSxDQUFBLENBRXJGO0VBQUEsQ0FBQSxDQUNHO0FBRVYsQ0FBQztBQUVNLElBQU0yQixnQkFBZ0IsR0FBQUMsT0FBQSxDQUFBRCxnQkFBQSxnQkFBRyxJQUFBRSxXQUFJLEVBQUM1QyxvQkFBb0IsQ0FBQztBQUFDLElBQUE2QyxRQUFBLEdBQUFGLE9BQUEsY0FFNUNELGdCQUFnQiIsImZpbGUiOiJjb21wb25lbnRzL1NlbGVjdC9TZWxlY3RGaWVsZFNoZWxsLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uL0ljb25zJztcbmltcG9ydCB7IFNrZWxldG9uIH0gZnJvbSAnLi4vU2tlbGV0b24nO1xuaW1wb3J0IHsgVHlwb2dyYXBoeUJvZHksIFR5cG9ncmFwaHlMYWJlbCB9IGZyb20gJy4uL1R5cG9ncmFwaHknO1xuaW1wb3J0IHsgam9pbkNscyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgU0VMRUNUX1RZUE9HUkFQSFkgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5jb25zdCBTZWxlY3RGaWVsZFNoZWxsQmFzZSA9ICh7IGNoaWxkcmVuLCBjbGFzc2VzLCBjbGFzc05hbWUgPSAnJywgc2l6ZSwgdmFyaWFudCwgc3RhdHVzLCBkaXNhYmxlZCwgbG9hZGluZyA9IGZhbHNlLCBsYWJlbCwgaW5mbywgZGVzY3JpcHRpb24sIGZlZWRiYWNrLCByZXF1aXJlZCA9IGZhbHNlLCBsYWJlbElkLCBkZXNjcmlwdGlvbklkLCBmZWVkYmFja0lkLCB9KSA9PiB7XG4gICAgY29uc3QgbGFiZWxDb2xvciA9IGRpc2FibGVkID8gU0VMRUNUX1RZUE9HUkFQSFkubGFiZWwuY29sb3IuZGlzYWJsZWQgOiBTRUxFQ1RfVFlQT0dSQVBIWS5sYWJlbC5jb2xvci5kZWZhdWx0O1xuICAgIGNvbnN0IGRlc2NyaXB0aW9uQ29sb3IgPSBkaXNhYmxlZCA/IFNFTEVDVF9UWVBPR1JBUEhZLmRlc2NyaXB0aW9uLmNvbG9yLmRpc2FibGVkIDogU0VMRUNUX1RZUE9HUkFQSFkuZGVzY3JpcHRpb24uY29sb3IuZGVmYXVsdDtcbiAgICBjb25zdCBmZWVkYmFja0NsYXNzID0gY2xhc3NlcygnZmVlZGJhY2snLCBqb2luQ2xzKHN0YXR1cyAhPT0gJ2RlZmF1bHQnICYmIGNsYXNzZXMoYGZlZWRiYWNrLSR7c3RhdHVzfWApLCBkaXNhYmxlZCAmJiBjbGFzc2VzKCdmZWVkYmFjay1kaXNhYmxlZCcpKSk7XG4gICAgcmV0dXJuIChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcyh1bmRlZmluZWQsIGpvaW5DbHMoY2xhc3NlcyhzaXplKSwgY2xhc3Nlcyh2YXJpYW50KSwgc3RhdHVzICE9PSAnZGVmYXVsdCcgJiYgY2xhc3NlcyhzdGF0dXMpLCBkaXNhYmxlZCAmJiBjbGFzc2VzKCdkaXNhYmxlZCcpLCBjbGFzc05hbWUpKSwgY2hpbGRyZW46IFsobGFiZWwgfHwgaW5mbykgJiYgKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdsYWJlbC1yb3cnKSwgY2hpbGRyZW46IFtsYWJlbCAmJiAobG9hZGluZyA/IChfanN4KFNrZWxldG9uLCB7IHdpZHRoOiBcIjcycHhcIiwgaGVpZ2h0OiBcIjE4cHhcIiB9KSkgOiAoX2pzeHMoVHlwb2dyYXBoeUxhYmVsLCB7IGlkOiBsYWJlbElkLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2xhYmVsLXRleHQnKSwgc2l6ZTogU0VMRUNUX1RZUE9HUkFQSFkubGFiZWwuc2l6ZSwgc3Ryb25nOiB0cnVlLCBjb2xvcjogbGFiZWxDb2xvciwgY2hpbGRyZW46IFtsYWJlbCwgcmVxdWlyZWQgJiYgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3JlcXVpcmVkJyksIGNoaWxkcmVuOiBcIipcIiB9KV0gfSkpKSwgaW5mbyAmJiAhbG9hZGluZyAmJiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnaW5mbycpLCBjaGlsZHJlbjogaW5mbyB9KV0gfSkpLCBkZXNjcmlwdGlvbiAmJiAoX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBpZDogZGVzY3JpcHRpb25JZCwgY2xhc3NOYW1lOiBjbGFzc2VzKCdkZXNjcmlwdGlvbi10ZXh0JyksIGFzOiBcImRpdlwiLCBzaXplOiBTRUxFQ1RfVFlQT0dSQVBIWS5kZXNjcmlwdGlvbi5zaXplLCBjb2xvcjogZGVzY3JpcHRpb25Db2xvciwgY2hpbGRyZW46IGRlc2NyaXB0aW9uIH0pKSwgY2hpbGRyZW4sIGZlZWRiYWNrICYmIChfanN4cyhcImRpdlwiLCB7IGlkOiBmZWVkYmFja0lkLCBjbGFzc05hbWU6IGZlZWRiYWNrQ2xhc3MsIHJvbGU6IHN0YXR1cyA9PT0gJ2Vycm9yJyB8fCBzdGF0dXMgPT09ICd3YXJuaW5nJyA/ICdhbGVydCcgOiAnc3RhdHVzJywgY2hpbGRyZW46IFtzdGF0dXMgPT09ICdlcnJvcicgJiYgKF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdmZWVkYmFjay1pY29uJyksIGNoaWxkcmVuOiBfanN4KEljb25zLCB7IG5hbWU6IFwiZXJyb3JcIiwgc2l6ZTogMTYsIGNvbG9yOiBcImN1cnJlbnRDb2xvclwiIH0pIH0pKSwgX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiBTRUxFQ1RfVFlQT0dSQVBIWS5mZWVkYmFjay5zaXplLCBjaGlsZHJlbjogZmVlZGJhY2sgfSldIH0pKV0gfSkpO1xufTtcbmV4cG9ydCBjb25zdCBTZWxlY3RGaWVsZFNoZWxsID0gbWVtbyhTZWxlY3RGaWVsZFNoZWxsQmFzZSk7XG5leHBvcnQgZGVmYXVsdCBTZWxlY3RGaWVsZFNoZWxsOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
79
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdEZpZWxkU2hlbGwuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1NlbGVjdC9TZWxlY3RGaWVsZFNoZWxsLnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfcmVhY3QiLCJfSWNvbnMiLCJfVHlwb2dyYXBoeSIsIl9jbGFzc25hbWVzIiwiX2NvbnN0YW50cyIsIlNlbGVjdEZpZWxkU2hlbGxCYXNlIiwiX3JlZiIsImNoaWxkcmVuIiwiY2xhc3NlcyIsIl9yZWYkY2xhc3NOYW1lIiwiY2xhc3NOYW1lIiwic2l6ZSIsInZhcmlhbnQiLCJzdGF0dXMiLCJkaXNhYmxlZCIsImxhYmVsIiwiaW5mbyIsImRlc2NyaXB0aW9uIiwiZmVlZGJhY2siLCJfcmVmJHJlcXVpcmVkIiwicmVxdWlyZWQiLCJsYWJlbElkIiwiZGVzY3JpcHRpb25JZCIsImZlZWRiYWNrSWQiLCJsYWJlbENvbG9yIiwiU0VMRUNUX1RZUE9HUkFQSFkiLCJjb2xvciIsImRlc2NyaXB0aW9uQ29sb3IiLCJmZWVkYmFja0NsYXNzIiwiam9pbkNscyIsImNvbmNhdCIsIl9qc3hzIiwidW5kZWZpbmVkIiwiVHlwb2dyYXBoeUxhYmVsIiwiaWQiLCJzdHJvbmciLCJfanN4IiwiVHlwb2dyYXBoeUJvZHkiLCJhcyIsInJvbGUiLCJJY29ucyIsIm5hbWUiLCJTZWxlY3RGaWVsZFNoZWxsIiwiZXhwb3J0cyIsIm1lbW8iLCJfZGVmYXVsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDQUEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsTUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsV0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksV0FBQSxHQUFBSixPQUFBO0FBSUEsSUFBQUssVUFBQSxHQUFBTCxPQUFBO0FBb0JBLElBQU1NLG9CQUFvQixHQUE4QixTQUFsREEsb0JBQW9CQSxDQUFBQyxJQUFBLEVBZ0JyQjtFQUFBLElBZkhDLFFBQVEsR0FBQUQsSUFBQSxDQUFSQyxRQUFRO0lBQ1JDLE9BQU8sR0FBQUYsSUFBQSxDQUFQRSxPQUFPO0lBQUFDLGNBQUEsR0FBQUgsSUFBQSxDQUNQSSxTQUFTO0lBQVRBLFNBQVMsR0FBQUQsY0FBQSxjQUFHLEVBQUUsR0FBQUEsY0FBQTtJQUNkRSxJQUFJLEdBQUFMLElBQUEsQ0FBSkssSUFBSTtJQUNKQyxPQUFPLEdBQUFOLElBQUEsQ0FBUE0sT0FBTztJQUNQQyxNQUFNLEdBQUFQLElBQUEsQ0FBTk8sTUFBTTtJQUNOQyxRQUFRLEdBQUFSLElBQUEsQ0FBUlEsUUFBUTtJQUNSQyxLQUFLLEdBQUFULElBQUEsQ0FBTFMsS0FBSztJQUNMQyxJQUFJLEdBQUFWLElBQUEsQ0FBSlUsSUFBSTtJQUNKQyxXQUFXLEdBQUFYLElBQUEsQ0FBWFcsV0FBVztJQUNYQyxRQUFRLEdBQUFaLElBQUEsQ0FBUlksUUFBUTtJQUFBQyxhQUFBLEdBQUFiLElBQUEsQ0FDUmMsUUFBUTtJQUFSQSxRQUFRLEdBQUFELGFBQUEsY0FBRyxLQUFLLEdBQUFBLGFBQUE7SUFDaEJFLE9BQU8sR0FBQWYsSUFBQSxDQUFQZSxPQUFPO0lBQ1BDLGFBQWEsR0FBQWhCLElBQUEsQ0FBYmdCLGFBQWE7SUFDYkMsVUFBVSxHQUFBakIsSUFBQSxDQUFWaUIsVUFBVTtFQUVWLElBQU1DLFVBQVUsR0FBR1YsUUFBUSxHQUFHVyw0QkFBaUIsQ0FBQ1YsS0FBSyxDQUFDVyxLQUFLLENBQUNaLFFBQVEsR0FBR1csNEJBQWlCLENBQUNWLEtBQUssQ0FBQ1csS0FBSyxXQUFRO0VBQzVHLElBQU1DLGdCQUFnQixHQUFHYixRQUFRLEdBQUdXLDRCQUFpQixDQUFDUixXQUFXLENBQUNTLEtBQUssQ0FBQ1osUUFBUSxHQUFHVyw0QkFBaUIsQ0FBQ1IsV0FBVyxDQUFDUyxLQUFLLFdBQVE7RUFDOUgsSUFBTUUsYUFBYSxHQUFHcEIsT0FBTyxDQUMzQixVQUFVLEVBQ1YsSUFBQXFCLG1CQUFPLEVBQ0xoQixNQUFNLEtBQUssU0FBUyxJQUFJTCxPQUFPLGFBQUFzQixNQUFBLENBQWFqQixNQUFNLENBQUUsQ0FBQyxFQUNyREMsUUFBUSxJQUFJTixPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FDekMsQ0FDRjtFQUVELE9BQ0UsSUFBQXVCLGdCQUFBLEVBQUEsS0FBQSxFQUFBO0lBQ0VyQixTQUFTLEVBQUVGLE9BQU8sQ0FDaEJ3QixTQUFTLEVBQ1QsSUFBQUgsbUJBQU8sRUFDTHJCLE9BQU8sQ0FBQ0csSUFBSSxDQUFDLEVBQ2JILE9BQU8sQ0FBQ0ksT0FBTyxDQUFDLEVBQ2hCQyxNQUFNLEtBQUssU0FBUyxJQUFJTCxPQUFPLENBQUNLLE1BQU0sQ0FBQyxFQUN2Q0MsUUFBUSxJQUFJTixPQUFPLENBQUMsVUFBVSxDQUFDLEVBQy9CRSxTQUFTLENBQ1YsQ0FDRjtJQUFBSCxRQUFBLEVBQUEsQ0FFQSxDQUFDUSxLQUFLLElBQUlDLElBQUksS0FDYixJQUFBZSxnQkFBQSxFQUFBLEtBQUEsRUFBQTtNQUFLckIsU0FBUyxFQUFFRixPQUFPLENBQUMsV0FBVyxDQUFDO01BQUFELFFBQUEsRUFBQSxDQUNqQ1EsS0FBSyxJQUNKLElBQUFnQixnQkFBQSxFQUFDRSwyQkFBZSxFQUFBO1FBQUNDLEVBQUUsRUFBRWIsT0FBTztRQUFFWCxTQUFTLEVBQUVGLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFBRUcsSUFBSSxFQUFFYyw0QkFBaUIsQ0FBQ1YsS0FBSyxDQUFDSixJQUFJO1FBQUV3QixNQUFNLEVBQUEsSUFBQTtRQUFDVCxLQUFLLEVBQUVGLFVBQVU7UUFBQWpCLFFBQUEsRUFBQSxDQUN6SFEsS0FBSyxFQUNMSyxRQUFRLElBQUksSUFBQWdCLGVBQUEsRUFBQSxNQUFBLEVBQUE7VUFBTTFCLFNBQVMsRUFBRUYsT0FBTyxDQUFDLFVBQVUsQ0FBQztVQUFBRCxRQUFBLEVBQUE7UUFBQSxDQUFBLENBQVU7TUFBQSxDQUFBLENBRTlELEVBQ0FTLElBQUksSUFBSSxJQUFBb0IsZUFBQSxFQUFBLE1BQUEsRUFBQTtRQUFNMUIsU0FBUyxFQUFFRixPQUFPLENBQUMsTUFBTSxDQUFDO1FBQUFELFFBQUEsRUFBR1M7TUFBSSxDQUFBLENBQVE7SUFBQSxDQUFBLENBRTNELEVBRUFDLFdBQVcsSUFDVixJQUFBbUIsZUFBQSxFQUFDQywwQkFBYyxFQUFBO01BQUNILEVBQUUsRUFBRVosYUFBYTtNQUFFWixTQUFTLEVBQUVGLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQztNQUFFOEIsRUFBRSxFQUFDLEtBQUs7TUFBQzNCLElBQUksRUFBRWMsNEJBQWlCLENBQUNSLFdBQVcsQ0FBQ04sSUFBSTtNQUFFZSxLQUFLLEVBQUVDLGdCQUFnQjtNQUFBcEIsUUFBQSxFQUNsSlU7SUFBVyxDQUFBLENBRWYsRUFFQVYsUUFBUSxFQUVSVyxRQUFRLElBQ1AsSUFBQWEsZ0JBQUEsRUFBQSxLQUFBLEVBQUE7TUFDRUcsRUFBRSxFQUFFWCxVQUFVO01BQ2RiLFNBQVMsRUFBRWtCLGFBQWE7TUFDeEJXLElBQUksRUFBRTFCLE1BQU0sS0FBSyxPQUFPLElBQUlBLE1BQU0sS0FBSyxTQUFTLEdBQUcsT0FBTyxHQUFHLFFBQVE7TUFBQU4sUUFBQSxFQUFBLENBRXBFTSxNQUFNLEtBQUssT0FBTyxJQUNqQixJQUFBdUIsZUFBQSxFQUFBLE1BQUEsRUFBQTtRQUFNMUIsU0FBUyxFQUFFRixPQUFPLENBQUMsZUFBZSxDQUFDO1FBQUFELFFBQUEsRUFDdkMsSUFBQTZCLGVBQUEsRUFBQ0ksWUFBSyxFQUFBO1VBQUNDLElBQUksRUFBQyxPQUFPO1VBQUM5QixJQUFJLEVBQUUsRUFBRTtVQUFFZSxLQUFLLEVBQUM7UUFBYyxDQUFBO01BQUcsQ0FBQSxDQUV4RCxFQUNELElBQUFVLGVBQUEsRUFBQ0MsMEJBQWMsRUFBQTtRQUFDMUIsSUFBSSxFQUFFYyw0QkFBaUIsQ0FBQ1AsUUFBUSxDQUFDUCxJQUFJO1FBQUFKLFFBQUEsRUFBR1c7TUFBUSxDQUFBLENBQWtCO0lBQUEsQ0FBQSxDQUVyRjtFQUFBLENBQUEsQ0FDRztBQUVWLENBQUM7QUFFTSxJQUFNd0IsZ0JBQWdCLEdBQUFDLE9BQUEsQ0FBQUQsZ0JBQUEsZ0JBQUcsSUFBQUUsV0FBSSxFQUFDdkMsb0JBQW9CLENBQUM7QUFBQyxJQUFBd0MsUUFBQSxHQUFBRixPQUFBLGNBRTVDRCxnQkFBZ0IiLCJmaWxlIjoiY29tcG9uZW50cy9TZWxlY3QvU2VsZWN0RmllbGRTaGVsbC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgSWNvbnMgfSBmcm9tICcuLi9JY29ucyc7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5Qm9keSwgVHlwb2dyYXBoeUxhYmVsIH0gZnJvbSAnLi4vVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBTRUxFQ1RfVFlQT0dSQVBIWSB9IGZyb20gJy4vY29uc3RhbnRzJztcbmNvbnN0IFNlbGVjdEZpZWxkU2hlbGxCYXNlID0gKHsgY2hpbGRyZW4sIGNsYXNzZXMsIGNsYXNzTmFtZSA9ICcnLCBzaXplLCB2YXJpYW50LCBzdGF0dXMsIGRpc2FibGVkLCBsYWJlbCwgaW5mbywgZGVzY3JpcHRpb24sIGZlZWRiYWNrLCByZXF1aXJlZCA9IGZhbHNlLCBsYWJlbElkLCBkZXNjcmlwdGlvbklkLCBmZWVkYmFja0lkLCB9KSA9PiB7XG4gICAgY29uc3QgbGFiZWxDb2xvciA9IGRpc2FibGVkID8gU0VMRUNUX1RZUE9HUkFQSFkubGFiZWwuY29sb3IuZGlzYWJsZWQgOiBTRUxFQ1RfVFlQT0dSQVBIWS5sYWJlbC5jb2xvci5kZWZhdWx0O1xuICAgIGNvbnN0IGRlc2NyaXB0aW9uQ29sb3IgPSBkaXNhYmxlZCA/IFNFTEVDVF9UWVBPR1JBUEhZLmRlc2NyaXB0aW9uLmNvbG9yLmRpc2FibGVkIDogU0VMRUNUX1RZUE9HUkFQSFkuZGVzY3JpcHRpb24uY29sb3IuZGVmYXVsdDtcbiAgICBjb25zdCBmZWVkYmFja0NsYXNzID0gY2xhc3NlcygnZmVlZGJhY2snLCBqb2luQ2xzKHN0YXR1cyAhPT0gJ2RlZmF1bHQnICYmIGNsYXNzZXMoYGZlZWRiYWNrLSR7c3RhdHVzfWApLCBkaXNhYmxlZCAmJiBjbGFzc2VzKCdmZWVkYmFjay1kaXNhYmxlZCcpKSk7XG4gICAgcmV0dXJuIChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcyh1bmRlZmluZWQsIGpvaW5DbHMoY2xhc3NlcyhzaXplKSwgY2xhc3Nlcyh2YXJpYW50KSwgc3RhdHVzICE9PSAnZGVmYXVsdCcgJiYgY2xhc3NlcyhzdGF0dXMpLCBkaXNhYmxlZCAmJiBjbGFzc2VzKCdkaXNhYmxlZCcpLCBjbGFzc05hbWUpKSwgY2hpbGRyZW46IFsobGFiZWwgfHwgaW5mbykgJiYgKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdsYWJlbC1yb3cnKSwgY2hpbGRyZW46IFtsYWJlbCAmJiAoX2pzeHMoVHlwb2dyYXBoeUxhYmVsLCB7IGlkOiBsYWJlbElkLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2xhYmVsLXRleHQnKSwgc2l6ZTogU0VMRUNUX1RZUE9HUkFQSFkubGFiZWwuc2l6ZSwgc3Ryb25nOiB0cnVlLCBjb2xvcjogbGFiZWxDb2xvciwgY2hpbGRyZW46IFtsYWJlbCwgcmVxdWlyZWQgJiYgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3JlcXVpcmVkJyksIGNoaWxkcmVuOiBcIipcIiB9KV0gfSkpLCBpbmZvICYmIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdpbmZvJyksIGNoaWxkcmVuOiBpbmZvIH0pXSB9KSksIGRlc2NyaXB0aW9uICYmIChfanN4KFR5cG9ncmFwaHlCb2R5LCB7IGlkOiBkZXNjcmlwdGlvbklkLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2Rlc2NyaXB0aW9uLXRleHQnKSwgYXM6IFwiZGl2XCIsIHNpemU6IFNFTEVDVF9UWVBPR1JBUEhZLmRlc2NyaXB0aW9uLnNpemUsIGNvbG9yOiBkZXNjcmlwdGlvbkNvbG9yLCBjaGlsZHJlbjogZGVzY3JpcHRpb24gfSkpLCBjaGlsZHJlbiwgZmVlZGJhY2sgJiYgKF9qc3hzKFwiZGl2XCIsIHsgaWQ6IGZlZWRiYWNrSWQsIGNsYXNzTmFtZTogZmVlZGJhY2tDbGFzcywgcm9sZTogc3RhdHVzID09PSAnZXJyb3InIHx8IHN0YXR1cyA9PT0gJ3dhcm5pbmcnID8gJ2FsZXJ0JyA6ICdzdGF0dXMnLCBjaGlsZHJlbjogW3N0YXR1cyA9PT0gJ2Vycm9yJyAmJiAoX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2ZlZWRiYWNrLWljb24nKSwgY2hpbGRyZW46IF9qc3goSWNvbnMsIHsgbmFtZTogXCJlcnJvclwiLCBzaXplOiAxNiwgY29sb3I6IFwiY3VycmVudENvbG9yXCIgfSkgfSkpLCBfanN4KFR5cG9ncmFwaHlCb2R5LCB7IHNpemU6IFNFTEVDVF9UWVBPR1JBUEhZLmZlZWRiYWNrLnNpemUsIGNoaWxkcmVuOiBmZWVkYmFjayB9KV0gfSkpXSB9KSk7XG59O1xuZXhwb3J0IGNvbnN0IFNlbGVjdEZpZWxkU2hlbGwgPSBtZW1vKFNlbGVjdEZpZWxkU2hlbGxCYXNlKTtcbmV4cG9ydCBkZWZhdWx0IFNlbGVjdEZpZWxkU2hlbGw7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9