@payloadcms/ui 3.0.0-alpha.2 → 3.0.0-alpha.21

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 (530) hide show
  1. package/dist/@types/assets.d.js +0 -1
  2. package/dist/config.js +2 -12
  3. package/dist/elements/ArrayAction/index.js +25 -81
  4. package/dist/elements/ArrayAction/types.js +2 -5
  5. package/dist/elements/Autosave/index.js +37 -92
  6. package/dist/elements/Autosave/types.js +2 -5
  7. package/dist/elements/Banner/index.js +10 -34
  8. package/dist/elements/Banner/types.js +2 -5
  9. package/dist/elements/Button/index.js +34 -93
  10. package/dist/elements/Button/types.js +2 -5
  11. package/dist/elements/Card/index.js +9 -24
  12. package/dist/elements/Card/types.js +2 -5
  13. package/dist/elements/CodeEditor/CodeEditor.js +10 -25
  14. package/dist/elements/CodeEditor/index.js +8 -59
  15. package/dist/elements/CodeEditor/types.js +2 -5
  16. package/dist/elements/Collapsible/index.js +26 -82
  17. package/dist/elements/Collapsible/provider.js +7 -66
  18. package/dist/elements/Collapsible/types.js +2 -5
  19. package/dist/elements/ColumnSelector/index.js +20 -76
  20. package/dist/elements/ColumnSelector/types.js +2 -5
  21. package/dist/elements/CopyToClipboard/index.js +14 -65
  22. package/dist/elements/CopyToClipboard/types.js +2 -5
  23. package/dist/elements/DatePicker/DatePicker.js +19 -75
  24. package/dist/elements/DatePicker/index.js +8 -59
  25. package/dist/elements/DatePicker/types.js +2 -5
  26. package/dist/elements/DeleteDocument/index.js +36 -86
  27. package/dist/elements/DeleteDocument/types.js +2 -5
  28. package/dist/elements/DeleteMany/index.js +38 -102
  29. package/dist/elements/DeleteMany/types.js +2 -5
  30. package/dist/elements/DocumentControls/index.js +46 -102
  31. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  32. package/dist/elements/DocumentDrawer/DrawerContent.js +62 -114
  33. package/dist/elements/DocumentDrawer/index.js +33 -98
  34. package/dist/elements/DocumentDrawer/types.js +2 -5
  35. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  36. package/dist/elements/DocumentFields/index.js +16 -31
  37. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js +4 -14
  38. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts.map +1 -1
  39. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +17 -26
  40. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +9 -68
  41. package/dist/elements/DocumentHeader/Tabs/getCustomViews.js +5 -15
  42. package/dist/elements/DocumentHeader/Tabs/getViewConfig.js +2 -12
  43. package/dist/elements/DocumentHeader/Tabs/index.js +18 -33
  44. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +8 -23
  45. package/dist/elements/DocumentHeader/Tabs/tabs/index.js +5 -23
  46. package/dist/elements/DocumentHeader/index.js +10 -66
  47. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js +7 -66
  48. package/dist/elements/DraggableSortable/DraggableSortableItem/types.js +2 -5
  49. package/dist/elements/DraggableSortable/index.js +15 -66
  50. package/dist/elements/DraggableSortable/types.js +2 -5
  51. package/dist/elements/DraggableSortable/useDraggableSortable/index.js +4 -14
  52. package/dist/elements/DraggableSortable/useDraggableSortable/types.js +2 -5
  53. package/dist/elements/Drawer/index.d.ts +1 -1
  54. package/dist/elements/Drawer/index.js +32 -94
  55. package/dist/elements/Drawer/types.js +2 -5
  56. package/dist/elements/Drawer/useDrawerSlug.js +8 -18
  57. package/dist/elements/Dropzone/index.js +20 -35
  58. package/dist/elements/DuplicateDocument/index.js +33 -83
  59. package/dist/elements/DuplicateDocument/types.js +2 -5
  60. package/dist/elements/EditMany/index.d.ts.map +1 -1
  61. package/dist/elements/EditMany/index.js +72 -125
  62. package/dist/elements/EditMany/types.js +2 -5
  63. package/dist/elements/EditUpload/index.js +66 -122
  64. package/dist/elements/ErrorPill/index.js +7 -22
  65. package/dist/elements/ErrorPill/types.js +2 -5
  66. package/dist/elements/FieldSelect/index.js +23 -79
  67. package/dist/elements/FileDetails/FileMeta/index.js +19 -75
  68. package/dist/elements/FileDetails/FileMeta/types.js +2 -5
  69. package/dist/elements/FileDetails/index.js +15 -30
  70. package/dist/elements/FileDetails/types.js +2 -5
  71. package/dist/elements/GenerateConfirmation/index.js +22 -37
  72. package/dist/elements/GenerateConfirmation/types.js +2 -5
  73. package/dist/elements/GetFilterOptions/index.js +18 -33
  74. package/dist/elements/Gutter/index.js +5 -56
  75. package/dist/elements/Hamburger/index.js +18 -33
  76. package/dist/elements/Header/index.js +39 -95
  77. package/dist/elements/HydrateClientUser/index.js +6 -16
  78. package/dist/elements/IDLabel/index.js +5 -20
  79. package/dist/elements/ListControls/getTextFieldsToBeSearched.js +6 -16
  80. package/dist/elements/ListControls/index.js +52 -104
  81. package/dist/elements/ListControls/types.js +2 -5
  82. package/dist/elements/ListDrawer/DrawerContent.js +72 -128
  83. package/dist/elements/ListDrawer/index.js +32 -100
  84. package/dist/elements/ListDrawer/types.js +2 -5
  85. package/dist/elements/ListSelection/index.js +11 -62
  86. package/dist/elements/Loading/index.js +25 -51
  87. package/dist/elements/LoadingOverlay/index.js +17 -79
  88. package/dist/elements/LoadingOverlay/reducer.js +3 -21
  89. package/dist/elements/LoadingOverlay/types.js +2 -5
  90. package/dist/elements/Localizer/LocalizerLabel/index.js +15 -30
  91. package/dist/elements/Localizer/index.d.ts.map +1 -1
  92. package/dist/elements/Localizer/index.js +37 -95
  93. package/dist/elements/Logout/index.js +13 -28
  94. package/dist/elements/Nav/NavHamburger/index.js +8 -23
  95. package/dist/elements/Nav/NavToggler/index.js +13 -28
  96. package/dist/elements/Nav/NavWrapper/index.js +8 -23
  97. package/dist/elements/Nav/context.js +20 -82
  98. package/dist/elements/Nav/index.js +36 -51
  99. package/dist/elements/NavGroup/index.js +21 -77
  100. package/dist/elements/Pagination/ClickableArrow/index.js +7 -22
  101. package/dist/elements/Pagination/ClickableArrow/types.js +2 -5
  102. package/dist/elements/Pagination/Page/index.js +4 -19
  103. package/dist/elements/Pagination/Page/types.js +2 -5
  104. package/dist/elements/Pagination/Separator/index.js +4 -19
  105. package/dist/elements/Pagination/index.js +20 -35
  106. package/dist/elements/Pagination/types.js +2 -5
  107. package/dist/elements/PerPage/index.js +28 -83
  108. package/dist/elements/Pill/index.js +16 -40
  109. package/dist/elements/Pill/types.js +2 -5
  110. package/dist/elements/Popup/PopupButtonList/index.js +10 -75
  111. package/dist/elements/Popup/PopupTrigger/index.js +6 -21
  112. package/dist/elements/Popup/PopupTrigger/types.js +2 -5
  113. package/dist/elements/Popup/index.js +29 -80
  114. package/dist/elements/Popup/types.js +2 -5
  115. package/dist/elements/PreviewButton/index.js +22 -73
  116. package/dist/elements/PreviewSizes/index.js +24 -80
  117. package/dist/elements/Publish/index.js +23 -79
  118. package/dist/elements/PublishMany/index.js +37 -93
  119. package/dist/elements/PublishMany/types.js +2 -5
  120. package/dist/elements/ReactSelect/ClearIndicator/index.js +7 -22
  121. package/dist/elements/ReactSelect/Control/index.js +5 -20
  122. package/dist/elements/ReactSelect/MultiValue/index.js +8 -23
  123. package/dist/elements/ReactSelect/MultiValueLabel/index.js +7 -22
  124. package/dist/elements/ReactSelect/MultiValueRemove/index.js +12 -27
  125. package/dist/elements/ReactSelect/SingleValue/index.js +5 -20
  126. package/dist/elements/ReactSelect/ValueContainer/index.js +7 -22
  127. package/dist/elements/ReactSelect/index.js +45 -60
  128. package/dist/elements/ReactSelect/types.js +2 -5
  129. package/dist/elements/RenderCustomComponent/index.js +5 -20
  130. package/dist/elements/RenderCustomComponent/types.js +2 -5
  131. package/dist/elements/RenderTitle/index.js +9 -24
  132. package/dist/elements/RenderTitle/types.js +2 -5
  133. package/dist/elements/Save/index.js +16 -72
  134. package/dist/elements/SaveDraft/index.js +24 -80
  135. package/dist/elements/SearchFilter/index.js +31 -86
  136. package/dist/elements/SearchFilter/types.js +2 -5
  137. package/dist/elements/SelectAll/index.d.ts.map +1 -1
  138. package/dist/elements/SelectAll/index.js +13 -26
  139. package/dist/elements/SelectRow/index.d.ts.map +1 -1
  140. package/dist/elements/SelectRow/index.js +10 -23
  141. package/dist/elements/ShimmerEffect/index.js +12 -71
  142. package/dist/elements/SortColumn/index.js +27 -90
  143. package/dist/elements/SortColumn/types.js +2 -5
  144. package/dist/elements/SortComplex/index.js +35 -90
  145. package/dist/elements/SortComplex/types.js +2 -5
  146. package/dist/elements/Status/index.js +38 -88
  147. package/dist/elements/StayLoggedIn/index.js +20 -34
  148. package/dist/elements/StayLoggedIn/types.js +2 -5
  149. package/dist/elements/StepNav/SetStepNav.js +6 -16
  150. package/dist/elements/StepNav/index.js +27 -93
  151. package/dist/elements/StepNav/types.js +2 -5
  152. package/dist/elements/Table/TableCellProvider/index.js +9 -32
  153. package/dist/elements/Table/index.js +15 -38
  154. package/dist/elements/Table/types.js +2 -5
  155. package/dist/elements/TableColumns/buildColumns.d.ts.map +1 -1
  156. package/dist/elements/TableColumns/buildColumns.js +7 -16
  157. package/dist/elements/TableColumns/columnReducer.js +2 -12
  158. package/dist/elements/TableColumns/index.js +24 -86
  159. package/dist/elements/Thumbnail/index.js +12 -68
  160. package/dist/elements/Thumbnail/types.js +2 -5
  161. package/dist/elements/ThumbnailCard/index.js +13 -28
  162. package/dist/elements/ThumbnailCard/types.js +2 -5
  163. package/dist/elements/Tooltip/index.js +14 -65
  164. package/dist/elements/Tooltip/types.js +2 -5
  165. package/dist/elements/Translation/index.js +7 -58
  166. package/dist/elements/UnpublishMany/index.js +37 -93
  167. package/dist/elements/UnpublishMany/types.js +2 -5
  168. package/dist/elements/Upload/index.js +57 -127
  169. package/dist/elements/Upload/types.d.ts +1 -2
  170. package/dist/elements/Upload/types.d.ts.map +1 -1
  171. package/dist/elements/Upload/types.js +2 -5
  172. package/dist/elements/ViewDescription/index.js +12 -27
  173. package/dist/elements/ViewDescription/types.js +4 -19
  174. package/dist/elements/WhereBuilder/Condition/Date/index.js +6 -21
  175. package/dist/elements/WhereBuilder/Condition/Date/types.js +2 -5
  176. package/dist/elements/WhereBuilder/Condition/Number/index.js +7 -22
  177. package/dist/elements/WhereBuilder/Condition/Number/types.js +2 -5
  178. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +28 -84
  179. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.js +5 -15
  180. package/dist/elements/WhereBuilder/Condition/Relationship/types.js +2 -5
  181. package/dist/elements/WhereBuilder/Condition/Select/index.js +15 -30
  182. package/dist/elements/WhereBuilder/Condition/Select/types.js +2 -5
  183. package/dist/elements/WhereBuilder/Condition/Text/index.js +7 -22
  184. package/dist/elements/WhereBuilder/Condition/Text/types.js +2 -5
  185. package/dist/elements/WhereBuilder/Condition/index.js +37 -93
  186. package/dist/elements/WhereBuilder/Condition/types.js +2 -5
  187. package/dist/elements/WhereBuilder/field-types.js +2 -12
  188. package/dist/elements/WhereBuilder/index.js +43 -98
  189. package/dist/elements/WhereBuilder/reducer.js +2 -12
  190. package/dist/elements/WhereBuilder/transformWhereQuery.js +6 -12
  191. package/dist/elements/WhereBuilder/types.js +2 -5
  192. package/dist/elements/WhereBuilder/validateWhereQuery.js +4 -14
  193. package/dist/exports/assets.js +3 -26
  194. package/dist/exports/elements.d.ts +6 -0
  195. package/dist/exports/elements.d.ts.map +1 -1
  196. package/dist/exports/elements.js +48 -225
  197. package/dist/exports/forms.d.ts +4 -1
  198. package/dist/exports/forms.d.ts.map +1 -1
  199. package/dist/exports/forms.js +38 -157
  200. package/dist/exports/graphics.js +3 -26
  201. package/dist/exports/hooks.js +10 -54
  202. package/dist/exports/icons.js +18 -81
  203. package/dist/exports/index.js +10 -27
  204. package/dist/exports/providers.d.ts +1 -0
  205. package/dist/exports/providers.d.ts.map +1 -1
  206. package/dist/exports/providers.js +24 -115
  207. package/dist/exports/templates.js +3 -21
  208. package/dist/exports/types.d.ts +1 -0
  209. package/dist/exports/types.d.ts.map +1 -1
  210. package/dist/exports/types.js +2 -5
  211. package/dist/exports/utilities.js +11 -61
  212. package/dist/forms/Error/index.js +11 -26
  213. package/dist/forms/FieldDescription/index.js +9 -24
  214. package/dist/forms/FieldDescription/types.js +2 -5
  215. package/dist/forms/FieldPathProvider/index.d.ts.map +1 -1
  216. package/dist/forms/FieldPathProvider/index.js +7 -30
  217. package/dist/forms/Form/buildFieldSchemaMap.js +14 -14
  218. package/dist/forms/Form/buildInitialState.js +2 -12
  219. package/dist/forms/Form/context.js +17 -67
  220. package/dist/forms/Form/createNestedFieldPath.js +5 -15
  221. package/dist/forms/Form/errorMessages.js +2 -12
  222. package/dist/forms/Form/fieldReducer.d.ts +2 -1
  223. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  224. package/dist/forms/Form/fieldReducer.js +25 -38
  225. package/dist/forms/Form/getDataByPath.d.ts +1 -1
  226. package/dist/forms/Form/getDataByPath.d.ts.map +1 -1
  227. package/dist/forms/Form/getDataByPath.js +4 -14
  228. package/dist/forms/Form/getSiblingData.d.ts +1 -2
  229. package/dist/forms/Form/getSiblingData.d.ts.map +1 -1
  230. package/dist/forms/Form/getSiblingData.js +6 -21
  231. package/dist/forms/Form/index.d.ts.map +1 -1
  232. package/dist/forms/Form/index.js +85 -141
  233. package/dist/forms/Form/initContextState.d.ts.map +1 -1
  234. package/dist/forms/Form/initContextState.js +2 -12
  235. package/dist/forms/Form/mergeServerFormState.d.ts +1 -1
  236. package/dist/forms/Form/mergeServerFormState.d.ts.map +1 -1
  237. package/dist/forms/Form/mergeServerFormState.js +5 -15
  238. package/dist/forms/Form/reduceFieldsToValues.d.ts +1 -2
  239. package/dist/forms/Form/reduceFieldsToValues.d.ts.map +1 -1
  240. package/dist/forms/Form/reduceFieldsToValues.js +4 -14
  241. package/dist/forms/Form/rows.d.ts +1 -1
  242. package/dist/forms/Form/rows.d.ts.map +1 -1
  243. package/dist/forms/Form/rows.js +3 -21
  244. package/dist/forms/Form/types.d.ts +2 -23
  245. package/dist/forms/Form/types.d.ts.map +1 -1
  246. package/dist/forms/Form/types.js +2 -5
  247. package/dist/forms/Label/index.js +9 -24
  248. package/dist/forms/NullifyField/index.d.ts.map +1 -1
  249. package/dist/forms/NullifyField/index.js +16 -72
  250. package/dist/forms/ReadOnlyProvider/index.d.ts +7 -0
  251. package/dist/forms/ReadOnlyProvider/index.d.ts.map +1 -0
  252. package/dist/forms/ReadOnlyProvider/index.js +15 -0
  253. package/dist/forms/RenderFields/RenderField.d.ts +3 -0
  254. package/dist/forms/RenderFields/RenderField.d.ts.map +1 -1
  255. package/dist/forms/RenderFields/RenderField.js +22 -23
  256. package/dist/forms/RenderFields/index.d.ts.map +1 -1
  257. package/dist/forms/RenderFields/index.js +16 -29
  258. package/dist/forms/RenderFields/types.d.ts +2 -0
  259. package/dist/forms/RenderFields/types.d.ts.map +1 -1
  260. package/dist/forms/RenderFields/types.js +2 -5
  261. package/dist/forms/RowLabel/index.js +13 -28
  262. package/dist/forms/RowLabel/types.d.ts +1 -2
  263. package/dist/forms/RowLabel/types.d.ts.map +1 -1
  264. package/dist/forms/RowLabel/types.js +4 -19
  265. package/dist/forms/Submit/index.js +11 -62
  266. package/dist/forms/WatchChildErrors/buildPathSegments.js +2 -12
  267. package/dist/forms/WatchChildErrors/getFieldStateFromPaths.d.ts +1 -1
  268. package/dist/forms/WatchChildErrors/getFieldStateFromPaths.js +2 -12
  269. package/dist/forms/WatchChildErrors/getNestedFieldState.d.ts +1 -2
  270. package/dist/forms/WatchChildErrors/getNestedFieldState.d.ts.map +1 -1
  271. package/dist/forms/WatchChildErrors/getNestedFieldState.js +5 -14
  272. package/dist/forms/WatchChildErrors/index.js +11 -26
  273. package/dist/forms/fields/Array/ArrayRow.d.ts +1 -2
  274. package/dist/forms/fields/Array/ArrayRow.d.ts.map +1 -1
  275. package/dist/forms/fields/Array/ArrayRow.js +24 -39
  276. package/dist/forms/fields/Array/index.js +59 -115
  277. package/dist/forms/fields/Array/types.js +2 -5
  278. package/dist/forms/fields/Blocks/BlockRow.d.ts +1 -2
  279. package/dist/forms/fields/Blocks/BlockRow.d.ts.map +1 -1
  280. package/dist/forms/fields/Blocks/BlockRow.js +27 -42
  281. package/dist/forms/fields/Blocks/BlocksDrawer/BlockSearch/index.js +10 -25
  282. package/dist/forms/fields/Blocks/BlocksDrawer/index.js +29 -85
  283. package/dist/forms/fields/Blocks/BlocksDrawer/types.js +2 -5
  284. package/dist/forms/fields/Blocks/RowActions.js +12 -27
  285. package/dist/forms/fields/Blocks/SectionTitle/index.js +10 -25
  286. package/dist/forms/fields/Blocks/SectionTitle/types.js +2 -5
  287. package/dist/forms/fields/Blocks/index.js +78 -133
  288. package/dist/forms/fields/Blocks/types.js +2 -5
  289. package/dist/forms/fields/Checkbox/Input.d.ts.map +1 -1
  290. package/dist/forms/fields/Checkbox/Input.js +11 -33
  291. package/dist/forms/fields/Checkbox/index.js +19 -75
  292. package/dist/forms/fields/Checkbox/types.js +2 -5
  293. package/dist/forms/fields/Code/index.js +15 -71
  294. package/dist/forms/fields/Code/types.js +2 -5
  295. package/dist/forms/fields/Collapsible/index.js +31 -87
  296. package/dist/forms/fields/Collapsible/types.js +2 -5
  297. package/dist/forms/fields/ConfirmPassword/index.d.ts.map +1 -1
  298. package/dist/forms/fields/ConfirmPassword/index.js +19 -75
  299. package/dist/forms/fields/ConfirmPassword/types.js +2 -5
  300. package/dist/forms/fields/DateTime/index.js +18 -74
  301. package/dist/forms/fields/DateTime/types.js +2 -5
  302. package/dist/forms/fields/Email/index.js +19 -83
  303. package/dist/forms/fields/Email/types.js +2 -5
  304. package/dist/forms/fields/Group/index.js +32 -88
  305. package/dist/forms/fields/Group/provider.js +7 -69
  306. package/dist/forms/fields/Group/types.js +2 -5
  307. package/dist/forms/fields/HiddenInput/index.js +8 -64
  308. package/dist/forms/fields/HiddenInput/types.js +2 -5
  309. package/dist/forms/fields/JSON/index.js +20 -76
  310. package/dist/forms/fields/JSON/types.js +2 -5
  311. package/dist/forms/fields/Number/index.js +26 -82
  312. package/dist/forms/fields/Number/types.js +2 -5
  313. package/dist/forms/fields/Password/index.js +15 -79
  314. package/dist/forms/fields/Password/types.js +2 -5
  315. package/dist/forms/fields/Point/index.js +24 -80
  316. package/dist/forms/fields/Point/types.js +2 -5
  317. package/dist/forms/fields/RadioGroup/Radio/index.js +13 -28
  318. package/dist/forms/fields/RadioGroup/index.js +23 -79
  319. package/dist/forms/fields/RadioGroup/types.js +2 -5
  320. package/dist/forms/fields/Relationship/AddNew/index.js +43 -99
  321. package/dist/forms/fields/Relationship/AddNew/types.js +2 -5
  322. package/dist/forms/fields/Relationship/AddNew/useRelatedCollections.js +6 -16
  323. package/dist/forms/fields/Relationship/createRelationMap.js +2 -12
  324. package/dist/forms/fields/Relationship/findOptionsByValue.js +2 -12
  325. package/dist/forms/fields/Relationship/index.js +64 -120
  326. package/dist/forms/fields/Relationship/optionsReducer.js +7 -17
  327. package/dist/forms/fields/Relationship/select-components/MultiValueLabel/index.js +21 -72
  328. package/dist/forms/fields/Relationship/select-components/SingleValue/index.js +22 -73
  329. package/dist/forms/fields/Relationship/types.js +2 -5
  330. package/dist/forms/fields/RichText/index.js +2 -12
  331. package/dist/forms/fields/RichText/types.js +2 -5
  332. package/dist/forms/fields/Row/index.js +11 -26
  333. package/dist/forms/fields/Row/provider.js +7 -69
  334. package/dist/forms/fields/Row/types.js +2 -5
  335. package/dist/forms/fields/Select/index.js +24 -88
  336. package/dist/forms/fields/Select/types.js +2 -5
  337. package/dist/forms/fields/Tabs/Tab/index.js +13 -64
  338. package/dist/forms/fields/Tabs/index.d.ts.map +1 -1
  339. package/dist/forms/fields/Tabs/index.js +35 -91
  340. package/dist/forms/fields/Tabs/provider.js +7 -69
  341. package/dist/forms/fields/Tabs/types.js +2 -5
  342. package/dist/forms/fields/Text/Input.d.ts +18 -0
  343. package/dist/forms/fields/Text/Input.d.ts.map +1 -0
  344. package/dist/forms/fields/Text/Input.js +62 -0
  345. package/dist/forms/fields/Text/index.d.ts.map +1 -1
  346. package/dist/forms/fields/Text/index.js +44 -129
  347. package/dist/forms/fields/Text/types.d.ts +2 -2
  348. package/dist/forms/fields/Text/types.d.ts.map +1 -1
  349. package/dist/forms/fields/Text/types.js +2 -5
  350. package/dist/forms/fields/Textarea/Input.d.ts +11 -0
  351. package/dist/forms/fields/Textarea/Input.d.ts.map +1 -0
  352. package/dist/forms/fields/Textarea/Input.js +43 -0
  353. package/dist/forms/fields/Textarea/index.d.ts.map +1 -1
  354. package/dist/forms/fields/Textarea/index.js +39 -104
  355. package/dist/forms/fields/Textarea/types.js +2 -5
  356. package/dist/forms/fields/UI/index.js +2 -12
  357. package/dist/forms/fields/Upload/Input.d.ts +15 -1
  358. package/dist/forms/fields/Upload/Input.d.ts.map +1 -1
  359. package/dist/forms/fields/Upload/Input.js +127 -2
  360. package/dist/forms/fields/Upload/index.d.ts.map +1 -1
  361. package/dist/forms/fields/Upload/index.js +32 -180
  362. package/dist/forms/fields/Upload/types.js +2 -5
  363. package/dist/forms/fields/getFilterOptionsQuery.js +2 -12
  364. package/dist/forms/fields/index.js +50 -65
  365. package/dist/forms/fields/shared.d.ts +3 -3
  366. package/dist/forms/fields/shared.d.ts.map +1 -1
  367. package/dist/forms/fields/shared.js +7 -21
  368. package/dist/forms/useField/index.d.ts.map +1 -1
  369. package/dist/forms/useField/index.js +30 -41
  370. package/dist/forms/useField/types.d.ts +2 -2
  371. package/dist/forms/useField/types.d.ts.map +1 -1
  372. package/dist/forms/useField/types.js +2 -5
  373. package/dist/forms/utilities/buildStateFromSchema/addFieldStatePromise.d.ts +1 -2
  374. package/dist/forms/utilities/buildStateFromSchema/addFieldStatePromise.d.ts.map +1 -1
  375. package/dist/forms/utilities/buildStateFromSchema/addFieldStatePromise.js +21 -33
  376. package/dist/forms/utilities/buildStateFromSchema/buildStateFromSchema.spec.js +5 -14
  377. package/dist/forms/utilities/buildStateFromSchema/index.d.ts +1 -2
  378. package/dist/forms/utilities/buildStateFromSchema/index.d.ts.map +1 -1
  379. package/dist/forms/utilities/buildStateFromSchema/index.js +4 -14
  380. package/dist/forms/utilities/buildStateFromSchema/iterateFields.d.ts +1 -2
  381. package/dist/forms/utilities/buildStateFromSchema/iterateFields.d.ts.map +1 -1
  382. package/dist/forms/utilities/buildStateFromSchema/iterateFields.js +8 -16
  383. package/dist/forms/withCondition/WatchCondition.js +7 -57
  384. package/dist/forms/withCondition/index.js +8 -23
  385. package/dist/graphics/Account/Default/index.js +7 -22
  386. package/dist/graphics/Account/Gravatar/index.js +10 -25
  387. package/dist/graphics/Account/index.js +15 -30
  388. package/dist/graphics/DefaultBlockImage/index.js +11 -62
  389. package/dist/graphics/ExternalLink/index.js +5 -20
  390. package/dist/graphics/File/index.js +7 -22
  391. package/dist/graphics/Icon/index.js +13 -28
  392. package/dist/graphics/Logo/index.js +15 -30
  393. package/dist/graphics/Search/index.js +6 -21
  394. package/dist/hooks/useAdminThumbnail.js +5 -15
  395. package/dist/hooks/useDebounce.js +6 -16
  396. package/dist/hooks/useDebouncedCallback.js +10 -15
  397. package/dist/hooks/useDebouncedEffect.js +6 -16
  398. package/dist/hooks/useDelay.js +7 -58
  399. package/dist/hooks/useDelayedRender.js +11 -62
  400. package/dist/hooks/useHotkey.js +10 -20
  401. package/dist/hooks/useIntersect.js +7 -17
  402. package/dist/hooks/usePayloadAPI.js +17 -32
  403. package/dist/hooks/useResize.js +5 -15
  404. package/dist/hooks/useThrottledEffect.js +5 -15
  405. package/dist/hooks/useThumbnail.js +8 -18
  406. package/dist/hooks/useUseAsTitle.js +6 -16
  407. package/dist/icons/Calendar/index.js +8 -23
  408. package/dist/icons/Check/index.js +6 -21
  409. package/dist/icons/Chevron/index.js +5 -20
  410. package/dist/icons/CloseMenu/index.js +6 -21
  411. package/dist/icons/CodeBlock/index.js +5 -20
  412. package/dist/icons/Copy/index.js +6 -21
  413. package/dist/icons/DragHandle/index.js +10 -25
  414. package/dist/icons/Edit/index.js +7 -22
  415. package/dist/icons/Line/index.js +5 -20
  416. package/dist/icons/Link/index.js +6 -21
  417. package/dist/icons/LogOut/index.js +7 -22
  418. package/dist/icons/Menu/index.js +7 -22
  419. package/dist/icons/MinimizeMaximize/index.js +12 -63
  420. package/dist/icons/More/index.js +7 -22
  421. package/dist/icons/Plus/index.js +6 -21
  422. package/dist/icons/Search/index.js +6 -21
  423. package/dist/icons/Swap/index.js +8 -23
  424. package/dist/icons/X/index.js +6 -21
  425. package/dist/index.js +2 -19
  426. package/dist/providers/ActionsProvider/SetViewActions/index.d.ts +6 -0
  427. package/dist/providers/ActionsProvider/SetViewActions/index.d.ts.map +1 -0
  428. package/dist/providers/ActionsProvider/SetViewActions/index.js +18 -0
  429. package/dist/providers/ActionsProvider/index.d.ts +3 -2
  430. package/dist/providers/ActionsProvider/index.d.ts.map +1 -1
  431. package/dist/providers/ActionsProvider/index.js +13 -72
  432. package/dist/providers/Auth/index.d.ts.map +1 -1
  433. package/dist/providers/Auth/index.js +56 -132
  434. package/dist/providers/Auth/types.js +2 -5
  435. package/dist/providers/ClientFunction/index.js +14 -40
  436. package/dist/providers/ComponentMapProvider/index.d.ts +4 -0
  437. package/dist/providers/ComponentMapProvider/index.d.ts.map +1 -1
  438. package/dist/providers/ComponentMapProvider/index.js +20 -67
  439. package/dist/providers/Config/index.js +6 -65
  440. package/dist/providers/CustomProvider/index.js +9 -24
  441. package/dist/providers/DocumentEvents/index.js +7 -66
  442. package/dist/providers/DocumentEvents/types.d.ts +1 -1
  443. package/dist/providers/DocumentEvents/types.d.ts.map +1 -1
  444. package/dist/providers/DocumentEvents/types.js +2 -5
  445. package/dist/providers/DocumentInfo/SetDocumentInfo/index.js +9 -19
  446. package/dist/providers/DocumentInfo/index.js +42 -100
  447. package/dist/providers/DocumentInfo/types.d.ts +1 -2
  448. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  449. package/dist/providers/DocumentInfo/types.js +2 -5
  450. package/dist/providers/EditDepth/index.js +5 -67
  451. package/dist/providers/FormQueryParams/index.js +7 -69
  452. package/dist/providers/ListInfo/index.js +9 -68
  453. package/dist/providers/ListInfo/types.d.ts +2 -2
  454. package/dist/providers/ListInfo/types.d.ts.map +1 -1
  455. package/dist/providers/ListInfo/types.js +2 -5
  456. package/dist/providers/Locale/index.d.ts.map +1 -1
  457. package/dist/providers/Locale/index.js +56 -97
  458. package/dist/providers/OperationProvider/index.js +5 -67
  459. package/dist/providers/Params/index.js +9 -67
  460. package/dist/providers/Portal/index.js +4 -19
  461. package/dist/providers/Preferences/index.js +25 -89
  462. package/dist/providers/Root/index.d.ts +2 -1
  463. package/dist/providers/Root/index.d.ts.map +1 -1
  464. package/dist/providers/Root/index.js +31 -82
  465. package/dist/providers/SearchParams/index.d.ts.map +1 -1
  466. package/dist/providers/SearchParams/index.js +14 -77
  467. package/dist/providers/SearchParams/types.js +2 -5
  468. package/dist/providers/SelectionProvider/index.js +23 -90
  469. package/dist/providers/Theme/index.d.ts +6 -3
  470. package/dist/providers/Theme/index.d.ts.map +1 -1
  471. package/dist/providers/Theme/index.js +42 -106
  472. package/dist/providers/Theme/types.d.ts +1 -0
  473. package/dist/providers/Theme/types.d.ts.map +1 -1
  474. package/dist/providers/Theme/types.js +2 -5
  475. package/dist/providers/Theme/utilities.js +3 -21
  476. package/dist/providers/Translation/index.d.ts +1 -6
  477. package/dist/providers/Translation/index.d.ts.map +1 -1
  478. package/dist/providers/Translation/index.js +12 -69
  479. package/dist/scss/toastify.scss +0 -1
  480. package/dist/templates/Default/NavHamburger/index.js +7 -22
  481. package/dist/templates/Default/Wrapper/index.js +7 -22
  482. package/dist/templates/Default/index.js +17 -68
  483. package/dist/templates/Default/types.js +2 -5
  484. package/dist/templates/Minimal/index.js +6 -21
  485. package/dist/templates/Minimal/types.js +2 -5
  486. package/dist/utilities/api.js +4 -19
  487. package/dist/utilities/arraysHaveSameStrings.js +2 -12
  488. package/dist/utilities/buildComponentMap/index.d.ts +3 -7
  489. package/dist/utilities/buildComponentMap/index.d.ts.map +1 -1
  490. package/dist/utilities/buildComponentMap/index.js +36 -45
  491. package/dist/utilities/buildComponentMap/mapActions.d.ts +7 -0
  492. package/dist/utilities/buildComponentMap/mapActions.d.ts.map +1 -0
  493. package/dist/utilities/buildComponentMap/mapActions.js +39 -0
  494. package/dist/utilities/buildComponentMap/mapFields.d.ts +2 -5
  495. package/dist/utilities/buildComponentMap/mapFields.d.ts.map +1 -1
  496. package/dist/utilities/buildComponentMap/mapFields.js +48 -114
  497. package/dist/utilities/buildComponentMap/types.d.ts +10 -0
  498. package/dist/utilities/buildComponentMap/types.d.ts.map +1 -1
  499. package/dist/utilities/buildComponentMap/types.js +2 -5
  500. package/dist/utilities/buildFieldSchemaMap/index.js +5 -15
  501. package/dist/utilities/buildFieldSchemaMap/traverseFields.js +9 -19
  502. package/dist/utilities/buildFieldSchemaMap/types.js +2 -5
  503. package/dist/utilities/canUseDOM.js +2 -12
  504. package/dist/utilities/findLocaleFromCode.js +4 -12
  505. package/dist/utilities/formatDate/getSupportedDateLocale.js +2 -12
  506. package/dist/utilities/formatDate/index.js +10 -69
  507. package/dist/utilities/formatDocTitle.d.ts +1 -2
  508. package/dist/utilities/formatDocTitle.d.ts.map +1 -1
  509. package/dist/utilities/formatDocTitle.js +6 -16
  510. package/dist/utilities/formatFields.js +3 -13
  511. package/dist/utilities/getFormState.d.ts +1 -2
  512. package/dist/utilities/getFormState.d.ts.map +1 -1
  513. package/dist/utilities/getFormState.js +2 -12
  514. package/dist/utilities/getOffsetTop.js +2 -12
  515. package/dist/utilities/getRequestLanguage.js +2 -12
  516. package/dist/utilities/getSupportedMonacoLocale.js +2 -12
  517. package/dist/utilities/groupNavItems.js +7 -25
  518. package/dist/utilities/scrollToID.js +2 -12
  519. package/dist/utilities/setsAreEqual.js +2 -12
  520. package/dist/utilities/withMergedProps/index.js +23 -21
  521. package/dist/views/Global/RenderCustomView.d.ts +0 -1
  522. package/dist/views/Global/RenderCustomView.js +0 -1
  523. package/package.json +7 -6
  524. package/dist/forms/FieldPathProvider/index.scss +0 -12
  525. package/dist/forms/FieldPathProvider/types.d.ts +0 -7
  526. package/dist/forms/FieldPathProvider/types.d.ts.map +0 -1
  527. package/dist/forms/FieldPathProvider/types.js +0 -6
  528. package/dist/providers/Auth/HydrateClientUser/index.d.ts +0 -7
  529. package/dist/providers/Auth/HydrateClientUser/index.d.ts.map +0 -1
  530. package/dist/providers/Auth/HydrateClientUser/index.js +0 -28
@@ -1,101 +1,45 @@
1
1
  'use client';
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "EditUpload", {
7
- enumerable: true,
8
- get: function() {
9
- return EditUpload;
10
- }
11
- });
12
- const _modal = require("@faceless-ui/modal");
13
- const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
14
- const _reactimagecrop = /*#__PURE__*/ _interop_require_default(require("react-image-crop"));
15
- require("react-image-crop/dist/ReactCrop.css");
16
- const _Upload = require("../../elements/Upload");
17
- const _Plus = require("../../icons/Plus");
18
- const _FormQueryParams = require("../../providers/FormQueryParams");
19
- const _Translation = require("../../providers/Translation");
20
- const _Button = require("../Button");
21
- require("./index.scss");
22
- function _interop_require_default(obj) {
23
- return obj && obj.__esModule ? obj : {
24
- default: obj
25
- };
26
- }
27
- function _getRequireWildcardCache(nodeInterop) {
28
- if (typeof WeakMap !== "function") return null;
29
- var cacheBabelInterop = new WeakMap();
30
- var cacheNodeInterop = new WeakMap();
31
- return (_getRequireWildcardCache = function(nodeInterop) {
32
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
33
- })(nodeInterop);
34
- }
35
- function _interop_require_wildcard(obj, nodeInterop) {
36
- if (!nodeInterop && obj && obj.__esModule) {
37
- return obj;
38
- }
39
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
40
- return {
41
- default: obj
42
- };
43
- }
44
- var cache = _getRequireWildcardCache(nodeInterop);
45
- if (cache && cache.has(obj)) {
46
- return cache.get(obj);
47
- }
48
- var newObj = {
49
- __proto__: null
50
- };
51
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
52
- for(var key in obj){
53
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
54
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
55
- if (desc && (desc.get || desc.set)) {
56
- Object.defineProperty(newObj, key, desc);
57
- } else {
58
- newObj[key] = obj[key];
59
- }
60
- }
61
- }
62
- newObj.default = obj;
63
- if (cache) {
64
- cache.set(obj, newObj);
65
- }
66
- return newObj;
67
- }
2
+ import { useModal } from '@faceless-ui/modal';
3
+ import React, { useRef, useState } from 'react';
4
+ import ReactCrop from 'react-image-crop';
5
+ import 'react-image-crop/dist/ReactCrop.css';
6
+ import { editDrawerSlug } from '../../elements/Upload';
7
+ import { Plus } from '../../icons/Plus';
8
+ import { useFormQueryParams } from '../../providers/FormQueryParams';
9
+ import { useTranslation } from '../../providers/Translation';
10
+ import { Button } from '../Button';
11
+ import './index.scss';
68
12
  const baseClass = 'edit-upload';
69
- const Input = ({ name, onChange, value })=>/*#__PURE__*/ _react.default.createElement("div", {
13
+ const Input = ({ name, onChange, value })=>/*#__PURE__*/ React.createElement("div", {
70
14
  className: `${baseClass}__input`
71
- }, name, /*#__PURE__*/ _react.default.createElement("input", {
15
+ }, name, /*#__PURE__*/ React.createElement("input", {
72
16
  name: name,
73
17
  onChange: (e)=>onChange(e.target.value),
74
18
  type: "number",
75
19
  value: value
76
20
  }));
77
- const EditUpload = ({ fileName, fileSrc, imageCacheTag, showCrop, showFocalPoint })=>{
78
- const { closeModal } = (0, _modal.useModal)();
79
- const { t } = (0, _Translation.useTranslation)();
80
- const { formQueryParams, setFormQueryParams } = (0, _FormQueryParams.useFormQueryParams)();
21
+ export const EditUpload = ({ fileName, fileSrc, imageCacheTag, showCrop, showFocalPoint })=>{
22
+ const { closeModal } = useModal();
23
+ const { t } = useTranslation();
24
+ const { formQueryParams, setFormQueryParams } = useFormQueryParams();
81
25
  const { uploadEdits } = formQueryParams || {};
82
- const [crop, setCrop] = (0, _react.useState)({
26
+ const [crop, setCrop] = useState({
83
27
  height: uploadEdits?.crop?.height || 100,
84
28
  unit: '%',
85
29
  width: uploadEdits?.crop?.width || 100,
86
30
  x: uploadEdits?.crop?.x || 0,
87
31
  y: uploadEdits?.crop?.y || 0
88
32
  });
89
- const [pointPosition, setPointPosition] = (0, _react.useState)({
33
+ const [pointPosition, setPointPosition] = useState({
90
34
  x: uploadEdits?.focalPoint?.x || 50,
91
35
  y: uploadEdits?.focalPoint?.y || 50
92
36
  });
93
- const [checkBounds, setCheckBounds] = (0, _react.useState)(false);
94
- const [originalHeight, setOriginalHeight] = (0, _react.useState)(0);
95
- const [originalWidth, setOriginalWidth] = (0, _react.useState)(0);
96
- const focalWrapRef = (0, _react.useRef)();
97
- const imageRef = (0, _react.useRef)();
98
- const cropRef = (0, _react.useRef)();
37
+ const [checkBounds, setCheckBounds] = useState(false);
38
+ const [originalHeight, setOriginalHeight] = useState(0);
39
+ const [originalWidth, setOriginalWidth] = useState(0);
40
+ const focalWrapRef = useRef();
41
+ const imageRef = useRef();
42
+ const cropRef = useRef();
99
43
  const fineTuneCrop = ({ dimension, value })=>{
100
44
  const intValue = parseInt(value);
101
45
  if (dimension === 'width' && intValue >= originalWidth) return null;
@@ -124,9 +68,9 @@ const EditUpload = ({ fileName, fileSrc, imageCacheTag, showCrop, showFocalPoint
124
68
  focalPoint: pointPosition ? pointPosition : undefined
125
69
  }
126
70
  });
127
- closeModal(_Upload.editDrawerSlug);
71
+ closeModal(editDrawerSlug);
128
72
  };
129
- const onDragEnd = _react.default.useCallback(({ x, y })=>{
73
+ const onDragEnd = React.useCallback(({ x, y })=>{
130
74
  setPointPosition({
131
75
  x,
132
76
  y
@@ -144,46 +88,46 @@ const EditUpload = ({ fileName, fileSrc, imageCacheTag, showCrop, showFocalPoint
144
88
  });
145
89
  };
146
90
  const fileSrcToUse = imageCacheTag ? `${fileSrc}?${imageCacheTag}` : fileSrc;
147
- return /*#__PURE__*/ _react.default.createElement("div", {
91
+ return /*#__PURE__*/ React.createElement("div", {
148
92
  className: baseClass
149
- }, /*#__PURE__*/ _react.default.createElement("div", {
93
+ }, /*#__PURE__*/ React.createElement("div", {
150
94
  className: `${baseClass}__header`
151
- }, /*#__PURE__*/ _react.default.createElement("h2", {
95
+ }, /*#__PURE__*/ React.createElement("h2", {
152
96
  title: `${t('general:editing')} ${fileName}`
153
- }, t('general:editing'), " ", fileName), /*#__PURE__*/ _react.default.createElement("div", {
97
+ }, t('general:editing'), " ", fileName), /*#__PURE__*/ React.createElement("div", {
154
98
  className: `${baseClass}__actions`
155
- }, /*#__PURE__*/ _react.default.createElement(_Button.Button, {
99
+ }, /*#__PURE__*/ React.createElement(Button, {
156
100
  "aria-label": t('general:cancel'),
157
101
  buttonStyle: "secondary",
158
102
  className: `${baseClass}__cancel`,
159
- onClick: ()=>closeModal(_Upload.editDrawerSlug)
160
- }, t('general:cancel')), /*#__PURE__*/ _react.default.createElement(_Button.Button, {
103
+ onClick: ()=>closeModal(editDrawerSlug)
104
+ }, t('general:cancel')), /*#__PURE__*/ React.createElement(Button, {
161
105
  "aria-label": t('general:applyChanges'),
162
106
  buttonStyle: "primary",
163
107
  className: `${baseClass}__save`,
164
108
  onClick: ()=>saveEdits()
165
- }, t('general:applyChanges')))), /*#__PURE__*/ _react.default.createElement("div", {
109
+ }, t('general:applyChanges')))), /*#__PURE__*/ React.createElement("div", {
166
110
  className: `${baseClass}__toolWrap`
167
- }, /*#__PURE__*/ _react.default.createElement("div", {
111
+ }, /*#__PURE__*/ React.createElement("div", {
168
112
  className: `${baseClass}__crop`
169
- }, /*#__PURE__*/ _react.default.createElement("div", {
113
+ }, /*#__PURE__*/ React.createElement("div", {
170
114
  className: `${baseClass}__focal-wrapper`,
171
115
  ref: focalWrapRef,
172
116
  style: {
173
117
  aspectRatio: `${originalWidth / originalHeight}`
174
118
  }
175
- }, showCrop ? /*#__PURE__*/ _react.default.createElement(_reactimagecrop.default, {
119
+ }, showCrop ? /*#__PURE__*/ React.createElement(ReactCrop, {
176
120
  className: `${baseClass}__reactCrop`,
177
121
  crop: crop,
178
122
  onChange: (_, c)=>setCrop(c),
179
123
  onComplete: ()=>setCheckBounds(true),
180
124
  renderSelectionAddon: ()=>{
181
- return /*#__PURE__*/ _react.default.createElement("div", {
125
+ return /*#__PURE__*/ React.createElement("div", {
182
126
  className: `${baseClass}__crop-window`,
183
127
  ref: cropRef
184
128
  });
185
129
  }
186
- }, /*#__PURE__*/ _react.default.createElement("img", {
130
+ }, /*#__PURE__*/ React.createElement("img", {
187
131
  alt: t('upload:setCropArea'),
188
132
  onLoad: (e)=>{
189
133
  setOriginalHeight(e.currentTarget.naturalHeight);
@@ -191,7 +135,7 @@ const EditUpload = ({ fileName, fileSrc, imageCacheTag, showCrop, showFocalPoint
191
135
  },
192
136
  ref: imageRef,
193
137
  src: fileSrcToUse
194
- })) : /*#__PURE__*/ _react.default.createElement("img", {
138
+ })) : /*#__PURE__*/ React.createElement("img", {
195
139
  alt: t('upload:setFocalPoint'),
196
140
  onLoad: (e)=>{
197
141
  setOriginalHeight(e.currentTarget.naturalHeight);
@@ -199,7 +143,7 @@ const EditUpload = ({ fileName, fileSrc, imageCacheTag, showCrop, showFocalPoint
199
143
  },
200
144
  ref: imageRef,
201
145
  src: fileSrcToUse
202
- }), showFocalPoint && /*#__PURE__*/ _react.default.createElement(DraggableElement, {
146
+ }), showFocalPoint && /*#__PURE__*/ React.createElement(DraggableElement, {
203
147
  boundsRef: showCrop ? cropRef : imageRef,
204
148
  checkBounds: showCrop ? checkBounds : false,
205
149
  className: `${baseClass}__focalPoint`,
@@ -207,13 +151,13 @@ const EditUpload = ({ fileName, fileSrc, imageCacheTag, showCrop, showFocalPoint
207
151
  initialPosition: pointPosition,
208
152
  onDragEnd: onDragEnd,
209
153
  setCheckBounds: showCrop ? setCheckBounds : false
210
- }, /*#__PURE__*/ _react.default.createElement(_Plus.Plus, null)))), (showCrop || showFocalPoint) && /*#__PURE__*/ _react.default.createElement("div", {
154
+ }, /*#__PURE__*/ React.createElement(Plus, null)))), (showCrop || showFocalPoint) && /*#__PURE__*/ React.createElement("div", {
211
155
  className: `${baseClass}__sidebar`
212
- }, showCrop && /*#__PURE__*/ _react.default.createElement("div", {
156
+ }, showCrop && /*#__PURE__*/ React.createElement("div", {
213
157
  className: `${baseClass}__groupWrap`
214
- }, /*#__PURE__*/ _react.default.createElement("div", null, /*#__PURE__*/ _react.default.createElement("div", {
158
+ }, /*#__PURE__*/ React.createElement("div", null, /*#__PURE__*/ React.createElement("div", {
215
159
  className: `${baseClass}__titleWrap`
216
- }, /*#__PURE__*/ _react.default.createElement("h3", null, t('upload:crop')), /*#__PURE__*/ _react.default.createElement(_Button.Button, {
160
+ }, /*#__PURE__*/ React.createElement("h3", null, t('upload:crop')), /*#__PURE__*/ React.createElement(Button, {
217
161
  buttonStyle: "none",
218
162
  className: `${baseClass}__reset`,
219
163
  onClick: ()=>setCrop({
@@ -223,44 +167,44 @@ const EditUpload = ({ fileName, fileSrc, imageCacheTag, showCrop, showFocalPoint
223
167
  x: 0,
224
168
  y: 0
225
169
  })
226
- }, t('general:reset')))), /*#__PURE__*/ _react.default.createElement("span", {
170
+ }, t('general:reset')))), /*#__PURE__*/ React.createElement("span", {
227
171
  className: `${baseClass}__description`
228
- }, t('upload:cropToolDescription')), /*#__PURE__*/ _react.default.createElement("div", {
172
+ }, t('upload:cropToolDescription')), /*#__PURE__*/ React.createElement("div", {
229
173
  className: `${baseClass}__inputsWrap`
230
- }, /*#__PURE__*/ _react.default.createElement(Input, {
174
+ }, /*#__PURE__*/ React.createElement(Input, {
231
175
  name: `${t('upload:width')} (px)`,
232
176
  onChange: (value)=>fineTuneCrop({
233
177
  dimension: 'width',
234
178
  value
235
179
  }),
236
180
  value: (crop.width / 100 * originalWidth).toFixed(0)
237
- }), /*#__PURE__*/ _react.default.createElement(Input, {
181
+ }), /*#__PURE__*/ React.createElement(Input, {
238
182
  name: `${t('upload:height')} (px)`,
239
183
  onChange: (value)=>fineTuneCrop({
240
184
  dimension: 'height',
241
185
  value
242
186
  }),
243
187
  value: (crop.height / 100 * originalHeight).toFixed(0)
244
- }))), showFocalPoint && /*#__PURE__*/ _react.default.createElement("div", {
188
+ }))), showFocalPoint && /*#__PURE__*/ React.createElement("div", {
245
189
  className: `${baseClass}__groupWrap`
246
- }, /*#__PURE__*/ _react.default.createElement("div", null, /*#__PURE__*/ _react.default.createElement("div", {
190
+ }, /*#__PURE__*/ React.createElement("div", null, /*#__PURE__*/ React.createElement("div", {
247
191
  className: `${baseClass}__titleWrap`
248
- }, /*#__PURE__*/ _react.default.createElement("h3", null, t('upload:focalPoint')), /*#__PURE__*/ _react.default.createElement(_Button.Button, {
192
+ }, /*#__PURE__*/ React.createElement("h3", null, t('upload:focalPoint')), /*#__PURE__*/ React.createElement(Button, {
249
193
  buttonStyle: "none",
250
194
  className: `${baseClass}__reset`,
251
195
  onClick: centerFocalPoint
252
- }, t('general:reset')))), /*#__PURE__*/ _react.default.createElement("span", {
196
+ }, t('general:reset')))), /*#__PURE__*/ React.createElement("span", {
253
197
  className: `${baseClass}__description`
254
- }, t('upload:focalPointDescription')), /*#__PURE__*/ _react.default.createElement("div", {
198
+ }, t('upload:focalPointDescription')), /*#__PURE__*/ React.createElement("div", {
255
199
  className: `${baseClass}__inputsWrap`
256
- }, /*#__PURE__*/ _react.default.createElement(Input, {
200
+ }, /*#__PURE__*/ React.createElement(Input, {
257
201
  name: "X %",
258
202
  onChange: (value)=>fineTuneFocalPoint({
259
203
  coordinate: 'x',
260
204
  value
261
205
  }),
262
206
  value: pointPosition.x.toFixed(0)
263
- }), /*#__PURE__*/ _react.default.createElement(Input, {
207
+ }), /*#__PURE__*/ React.createElement(Input, {
264
208
  name: "Y %",
265
209
  onChange: (value)=>fineTuneFocalPoint({
266
210
  coordinate: 'y',
@@ -273,13 +217,13 @@ const DraggableElement = ({ boundsRef, checkBounds, children, className, contain
273
217
  x: 50,
274
218
  y: 50
275
219
  }, onDragEnd, setCheckBounds })=>{
276
- const [position, setPosition] = (0, _react.useState)({
220
+ const [position, setPosition] = useState({
277
221
  x: initialPosition.x,
278
222
  y: initialPosition.y
279
223
  });
280
- const [isDragging, setIsDragging] = (0, _react.useState)(false);
281
- const dragRef = (0, _react.useRef)();
282
- const getCoordinates = _react.default.useCallback((mouseXArg, mouseYArg, recenter)=>{
224
+ const [isDragging, setIsDragging] = useState(false);
225
+ const dragRef = useRef();
226
+ const getCoordinates = React.useCallback((mouseXArg, mouseYArg, recenter)=>{
283
227
  const containerRect = containerRef.current.getBoundingClientRect();
284
228
  const boundsRect = boundsRef.current.getBoundingClientRect();
285
229
  const mouseX = mouseXArg ?? boundsRect.left;
@@ -331,7 +275,7 @@ const DraggableElement = ({ boundsRef, checkBounds, children, className, contain
331
275
  setIsDragging(false);
332
276
  onDragEnd(position);
333
277
  };
334
- _react.default.useEffect(()=>{
278
+ React.useEffect(()=>{
335
279
  if (isDragging || !dragRef.current) return;
336
280
  if (checkBounds) {
337
281
  const { height, left, top, width } = dragRef.current.getBoundingClientRect();
@@ -356,7 +300,7 @@ const DraggableElement = ({ boundsRef, checkBounds, children, className, contain
356
300
  position.y,
357
301
  onDragEnd
358
302
  ]);
359
- _react.default.useEffect(()=>{
303
+ React.useEffect(()=>{
360
304
  setPosition({
361
305
  x: initialPosition.x,
362
306
  y: initialPosition.y
@@ -365,13 +309,13 @@ const DraggableElement = ({ boundsRef, checkBounds, children, className, contain
365
309
  initialPosition.x,
366
310
  initialPosition.y
367
311
  ]);
368
- return /*#__PURE__*/ _react.default.createElement("div", {
312
+ return /*#__PURE__*/ React.createElement("div", {
369
313
  className: [
370
314
  `${baseClass}__draggable-container`,
371
315
  isDragging && `${baseClass}__draggable-container--dragging`
372
316
  ].filter(Boolean).join(' '),
373
317
  onMouseMove: handleMouseMove
374
- }, /*#__PURE__*/ _react.default.createElement("button", {
318
+ }, /*#__PURE__*/ React.createElement("button", {
375
319
  className: [
376
320
  `${baseClass}__draggable`,
377
321
  className
@@ -384,7 +328,7 @@ const DraggableElement = ({ boundsRef, checkBounds, children, className, contain
384
328
  top: `${position.y}%`
385
329
  },
386
330
  type: "button"
387
- }, children), /*#__PURE__*/ _react.default.createElement("div", null));
331
+ }, children), /*#__PURE__*/ React.createElement("div", null));
388
332
  };
389
333
 
390
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9FZGl0VXBsb2FkL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHsgRGF0YSB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IHVzZU1vZGFsIH0gZnJvbSAnQGZhY2VsZXNzLXVpL21vZGFsJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCBSZWFjdENyb3AsIHsgdHlwZSBDcm9wIGFzIENyb3BUeXBlIH0gZnJvbSAncmVhY3QtaW1hZ2UtY3JvcCdcbmltcG9ydCAncmVhY3QtaW1hZ2UtY3JvcC9kaXN0L1JlYWN0Q3JvcC5jc3MnXG5cbmltcG9ydCB7IGVkaXREcmF3ZXJTbHVnIH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvVXBsb2FkJ1xuaW1wb3J0IHsgUGx1cyB9IGZyb20gJy4uLy4uL2ljb25zL1BsdXMnXG5pbXBvcnQgeyB1c2VGb3JtUXVlcnlQYXJhbXMgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvRm9ybVF1ZXJ5UGFyYW1zJ1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvVHJhbnNsYXRpb24nXG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi9CdXR0b24nXG5pbXBvcnQgJy4vaW5kZXguc2NzcydcblxuY29uc3QgYmFzZUNsYXNzID0gJ2VkaXQtdXBsb2FkJ1xuXG5jb25zdCBJbnB1dDogUmVhY3QuRkM8eyBuYW1lOiBzdHJpbmc7IG9uQ2hhbmdlOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZDsgdmFsdWU6IHN0cmluZyB9PiA9ICh7XG4gIG5hbWUsXG4gIG9uQ2hhbmdlLFxuICB2YWx1ZSxcbn0pID0+IChcbiAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2lucHV0YH0+XG4gICAge25hbWV9XG4gICAgPGlucHV0IG5hbWU9e25hbWV9IG9uQ2hhbmdlPXsoZSkgPT4gb25DaGFuZ2UoZS50YXJnZXQudmFsdWUpfSB0eXBlPVwibnVtYmVyXCIgdmFsdWU9e3ZhbHVlfSAvPlxuICA8L2Rpdj5cbilcblxuZXhwb3J0IGNvbnN0IEVkaXRVcGxvYWQ6IFJlYWN0LkZDPHtcbiAgZG9jPzogRGF0YVxuICBmaWxlTmFtZTogc3RyaW5nXG4gIGZpbGVTcmM6IHN0cmluZ1xuICBpbWFnZUNhY2hlVGFnPzogc3RyaW5nXG4gIHNob3dDcm9wPzogYm9vbGVhblxuICBzaG93Rm9jYWxQb2ludD86IGJvb2xlYW5cbn0+ID0gKHsgZmlsZU5hbWUsIGZpbGVTcmMsIGltYWdlQ2FjaGVUYWcsIHNob3dDcm9wLCBzaG93Rm9jYWxQb2ludCB9KSA9PiB7XG4gIGNvbnN0IHsgY2xvc2VNb2RhbCB9ID0gdXNlTW9kYWwoKVxuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKClcbiAgY29uc3QgeyBmb3JtUXVlcnlQYXJhbXMsIHNldEZvcm1RdWVyeVBhcmFtcyB9ID0gdXNlRm9ybVF1ZXJ5UGFyYW1zKClcbiAgY29uc3QgeyB1cGxvYWRFZGl0cyB9ID0gZm9ybVF1ZXJ5UGFyYW1zIHx8IHt9XG4gIGNvbnN0IFtjcm9wLCBzZXRDcm9wXSA9IHVzZVN0YXRlPENyb3BUeXBlPih7XG4gICAgaGVpZ2h0OiB1cGxvYWRFZGl0cz8uY3JvcD8uaGVpZ2h0IHx8IDEwMCxcbiAgICB1bml0OiAnJScsXG4gICAgd2lkdGg6IHVwbG9hZEVkaXRzPy5jcm9wPy53aWR0aCB8fCAxMDAsXG4gICAgeDogdXBsb2FkRWRpdHM/LmNyb3A/LnggfHwgMCxcbiAgICB5OiB1cGxvYWRFZGl0cz8uY3JvcD8ueSB8fCAwLFxuICB9KVxuXG4gIGNvbnN0IFtwb2ludFBvc2l0aW9uLCBzZXRQb2ludFBvc2l0aW9uXSA9IHVzZVN0YXRlPHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfT4oe1xuICAgIHg6IHVwbG9hZEVkaXRzPy5mb2NhbFBvaW50Py54IHx8IDUwLFxuICAgIHk6IHVwbG9hZEVkaXRzPy5mb2NhbFBvaW50Py55IHx8IDUwLFxuICB9KVxuICBjb25zdCBbY2hlY2tCb3VuZHMsIHNldENoZWNrQm91bmRzXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKVxuICBjb25zdCBbb3JpZ2luYWxIZWlnaHQsIHNldE9yaWdpbmFsSGVpZ2h0XSA9IHVzZVN0YXRlPG51bWJlcj4oMClcbiAgY29uc3QgW29yaWdpbmFsV2lkdGgsIHNldE9yaWdpbmFsV2lkdGhdID0gdXNlU3RhdGU8bnVtYmVyPigwKVxuXG4gIGNvbnN0IGZvY2FsV3JhcFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudCB8IHVuZGVmaW5lZD4oKVxuICBjb25zdCBpbWFnZVJlZiA9IHVzZVJlZjxIVE1MSW1hZ2VFbGVtZW50IHwgdW5kZWZpbmVkPigpXG4gIGNvbnN0IGNyb3BSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCB1bmRlZmluZWQ+KClcblxuICBjb25zdCBmaW5lVHVuZUNyb3AgPSAoeyBkaW1lbnNpb24sIHZhbHVlIH06IHsgZGltZW5zaW9uOiAnaGVpZ2h0JyB8ICd3aWR0aCc7IHZhbHVlOiBzdHJpbmcgfSkgPT4ge1xuICAgIGNvbnN0IGludFZhbHVlID0gcGFyc2VJbnQodmFsdWUpXG4gICAgaWYgKGRpbWVuc2lvbiA9PT0gJ3dpZHRoJyAmJiBpbnRWYWx1ZSA+PSBvcmlnaW5hbFdpZHRoKSByZXR1cm4gbnVsbFxuICAgIGlmIChkaW1lbnNpb24gPT09ICdoZWlnaHQnICYmIGludFZhbHVlID49IG9yaWdpbmFsSGVpZ2h0KSByZXR1cm4gbnVsbFxuXG4gICAgY29uc3QgcGVyY2VudGFnZSA9IDEwMCAqIChpbnRWYWx1ZSAvIChkaW1lbnNpb24gPT09ICd3aWR0aCcgPyBvcmlnaW5hbFdpZHRoIDogb3JpZ2luYWxIZWlnaHQpKVxuXG4gICAgaWYgKHBlcmNlbnRhZ2UgPT09IDEwMCB8fCBwZXJjZW50YWdlID09PSAwKSByZXR1cm4gbnVsbFxuXG4gICAgc2V0Q3JvcCh7XG4gICAgICAuLi5jcm9wLFxuICAgICAgW2RpbWVuc2lvbl06IHBlcmNlbnRhZ2UsXG4gICAgfSlcbiAgfVxuXG4gIGNvbnN0IGZpbmVUdW5lRm9jYWxQb2ludCA9ICh7IGNvb3JkaW5hdGUsIHZhbHVlIH06IHsgY29vcmRpbmF0ZTogJ3gnIHwgJ3knOyB2YWx1ZTogc3RyaW5nIH0pID0+IHtcbiAgICBjb25zdCBpbnRWYWx1ZSA9IHBhcnNlSW50KHZhbHVlKVxuICAgIGlmIChpbnRWYWx1ZSA+PSAwICYmIGludFZhbHVlIDw9IDEwMCkge1xuICAgICAgc2V0UG9pbnRQb3NpdGlvbigocHJldlBvc2l0aW9uKSA9PiAoeyAuLi5wcmV2UG9zaXRpb24sIFtjb29yZGluYXRlXTogaW50VmFsdWUgfSkpXG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc2F2ZUVkaXRzID0gKCkgPT4ge1xuICAgIHNldEZvcm1RdWVyeVBhcmFtcyh7XG4gICAgICAuLi5mb3JtUXVlcnlQYXJhbXMsXG4gICAgICB1cGxvYWRFZGl0czoge1xuICAgICAgICBjcm9wOiBjcm9wIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgZm9jYWxQb2ludDogcG9pbnRQb3NpdGlvbiA/IHBvaW50UG9zaXRpb24gOiB1bmRlZmluZWQsXG4gICAgICB9LFxuICAgIH0pXG4gICAgY2xvc2VNb2RhbChlZGl0RHJhd2VyU2x1ZylcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ0VuZCA9IFJlYWN0LnVzZUNhbGxiYWNrKCh7IHgsIHkgfSkgPT4ge1xuICAgIHNldFBvaW50UG9zaXRpb24oeyB4LCB5IH0pXG4gICAgc2V0Q2hlY2tCb3VuZHMoZmFsc2UpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IGNlbnRlckZvY2FsUG9pbnQgPSAoKSA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyUmVjdCA9IGZvY2FsV3JhcFJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgY29uc3QgYm91bmRzUmVjdCA9IHNob3dDcm9wXG4gICAgICA/IGNyb3BSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgOiBpbWFnZVJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgY29uc3QgeENlbnRlciA9XG4gICAgICAoKGJvdW5kc1JlY3QubGVmdCAtIGNvbnRhaW5lclJlY3QubGVmdCArIGJvdW5kc1JlY3Qud2lkdGggLyAyKSAvIGNvbnRhaW5lclJlY3Qud2lkdGgpICogMTAwXG4gICAgY29uc3QgeUNlbnRlciA9XG4gICAgICAoKGJvdW5kc1JlY3QudG9wIC0gY29udGFpbmVyUmVjdC50b3AgKyBib3VuZHNSZWN0LmhlaWdodCAvIDIpIC8gY29udGFpbmVyUmVjdC5oZWlnaHQpICogMTAwXG4gICAgc2V0UG9pbnRQb3NpdGlvbih7IHg6IHhDZW50ZXIsIHk6IHlDZW50ZXIgfSlcbiAgfVxuXG4gIGNvbnN0IGZpbGVTcmNUb1VzZSA9IGltYWdlQ2FjaGVUYWcgPyBgJHtmaWxlU3JjfT8ke2ltYWdlQ2FjaGVUYWd9YCA6IGZpbGVTcmNcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtiYXNlQ2xhc3N9PlxuICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2hlYWRlcmB9PlxuICAgICAgICA8aDIgdGl0bGU9e2Ake3QoJ2dlbmVyYWw6ZWRpdGluZycpfSAke2ZpbGVOYW1lfWB9PlxuICAgICAgICAgIHt0KCdnZW5lcmFsOmVkaXRpbmcnKX0ge2ZpbGVOYW1lfVxuICAgICAgICA8L2gyPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fYWN0aW9uc2B9PlxuICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgIGFyaWEtbGFiZWw9e3QoJ2dlbmVyYWw6Y2FuY2VsJyl9XG4gICAgICAgICAgICBidXR0b25TdHlsZT1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2NhbmNlbGB9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBjbG9zZU1vZGFsKGVkaXREcmF3ZXJTbHVnKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7dCgnZ2VuZXJhbDpjYW5jZWwnKX1cbiAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICBhcmlhLWxhYmVsPXt0KCdnZW5lcmFsOmFwcGx5Q2hhbmdlcycpfVxuICAgICAgICAgICAgYnV0dG9uU3R5bGU9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fc2F2ZWB9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzYXZlRWRpdHMoKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7dCgnZ2VuZXJhbDphcHBseUNoYW5nZXMnKX1cbiAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X190b29sV3JhcGB9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fY3JvcGB9PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZm9jYWwtd3JhcHBlcmB9XG4gICAgICAgICAgICByZWY9e2ZvY2FsV3JhcFJlZn1cbiAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgIGFzcGVjdFJhdGlvOiBgJHtvcmlnaW5hbFdpZHRoIC8gb3JpZ2luYWxIZWlnaHR9YCxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3Nob3dDcm9wID8gKFxuICAgICAgICAgICAgICA8UmVhY3RDcm9wXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19yZWFjdENyb3BgfVxuICAgICAgICAgICAgICAgIGNyb3A9e2Nyb3B9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhfLCBjKSA9PiBzZXRDcm9wKGMpfVxuICAgICAgICAgICAgICAgIG9uQ29tcGxldGU9eygpID0+IHNldENoZWNrQm91bmRzKHRydWUpfVxuICAgICAgICAgICAgICAgIHJlbmRlclNlbGVjdGlvbkFkZG9uPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2Nyb3Atd2luZG93YH0gcmVmPXtjcm9wUmVmfSAvPlxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICBhbHQ9e3QoJ3VwbG9hZDpzZXRDcm9wQXJlYScpfVxuICAgICAgICAgICAgICAgICAgb25Mb2FkPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzZXRPcmlnaW5hbEhlaWdodChlLmN1cnJlbnRUYXJnZXQubmF0dXJhbEhlaWdodClcbiAgICAgICAgICAgICAgICAgICAgc2V0T3JpZ2luYWxXaWR0aChlLmN1cnJlbnRUYXJnZXQubmF0dXJhbFdpZHRoKVxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIHJlZj17aW1hZ2VSZWZ9XG4gICAgICAgICAgICAgICAgICBzcmM9e2ZpbGVTcmNUb1VzZX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1JlYWN0Q3JvcD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICBhbHQ9e3QoJ3VwbG9hZDpzZXRGb2NhbFBvaW50Jyl9XG4gICAgICAgICAgICAgICAgb25Mb2FkPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgc2V0T3JpZ2luYWxIZWlnaHQoZS5jdXJyZW50VGFyZ2V0Lm5hdHVyYWxIZWlnaHQpXG4gICAgICAgICAgICAgICAgICBzZXRPcmlnaW5hbFdpZHRoKGUuY3VycmVudFRhcmdldC5uYXR1cmFsV2lkdGgpXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICByZWY9e2ltYWdlUmVmfVxuICAgICAgICAgICAgICAgIHNyYz17ZmlsZVNyY1RvVXNlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHtzaG93Rm9jYWxQb2ludCAmJiAoXG4gICAgICAgICAgICAgIDxEcmFnZ2FibGVFbGVtZW50XG4gICAgICAgICAgICAgICAgYm91bmRzUmVmPXtzaG93Q3JvcCA/IGNyb3BSZWYgOiBpbWFnZVJlZn1cbiAgICAgICAgICAgICAgICBjaGVja0JvdW5kcz17c2hvd0Nyb3AgPyBjaGVja0JvdW5kcyA6IGZhbHNlfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZm9jYWxQb2ludGB9XG4gICAgICAgICAgICAgICAgY29udGFpbmVyUmVmPXtmb2NhbFdyYXBSZWZ9XG4gICAgICAgICAgICAgICAgaW5pdGlhbFBvc2l0aW9uPXtwb2ludFBvc2l0aW9ufVxuICAgICAgICAgICAgICAgIG9uRHJhZ0VuZD17b25EcmFnRW5kfVxuICAgICAgICAgICAgICAgIHNldENoZWNrQm91bmRzPXtzaG93Q3JvcCA/IHNldENoZWNrQm91bmRzIDogZmFsc2V9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UGx1cyAvPlxuICAgICAgICAgICAgICA8L0RyYWdnYWJsZUVsZW1lbnQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgeyhzaG93Q3JvcCB8fCBzaG93Rm9jYWxQb2ludCkgJiYgKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19zaWRlYmFyYH0+XG4gICAgICAgICAgICB7c2hvd0Nyb3AgJiYgKFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZ3JvdXBXcmFwYH0+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X190aXRsZVdyYXBgfT5cbiAgICAgICAgICAgICAgICAgICAgPGgzPnt0KCd1cGxvYWQ6Y3JvcCcpfTwvaDM+XG4gICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBidXR0b25TdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fcmVzZXRgfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRDcm9wKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXQ6ICclJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgeDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgeTogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge3QoJ2dlbmVyYWw6cmVzZXQnKX1cbiAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2Rlc2NyaXB0aW9uYH0+XG4gICAgICAgICAgICAgICAgICB7dCgndXBsb2FkOmNyb3BUb29sRGVzY3JpcHRpb24nKX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2lucHV0c1dyYXBgfT5cbiAgICAgICAgICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtgJHt0KCd1cGxvYWQ6d2lkdGgnKX0gKHB4KWB9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsodmFsdWUpID0+IGZpbmVUdW5lQ3JvcCh7IGRpbWVuc2lvbjogJ3dpZHRoJywgdmFsdWUgfSl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXsoKGNyb3Aud2lkdGggLyAxMDApICogb3JpZ2luYWxXaWR0aCkudG9GaXhlZCgwKX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgbmFtZT17YCR7dCgndXBsb2FkOmhlaWdodCcpfSAocHgpYH1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyh2YWx1ZSkgPT4gZmluZVR1bmVDcm9wKHsgZGltZW5zaW9uOiAnaGVpZ2h0JywgdmFsdWUgfSl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXsoKGNyb3AuaGVpZ2h0IC8gMTAwKSAqIG9yaWdpbmFsSGVpZ2h0KS50b0ZpeGVkKDApfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7c2hvd0ZvY2FsUG9pbnQgJiYgKFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZ3JvdXBXcmFwYH0+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X190aXRsZVdyYXBgfT5cbiAgICAgICAgICAgICAgICAgICAgPGgzPnt0KCd1cGxvYWQ6Zm9jYWxQb2ludCcpfTwvaDM+XG4gICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBidXR0b25TdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fcmVzZXRgfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2NlbnRlckZvY2FsUG9pbnR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7dCgnZ2VuZXJhbDpyZXNldCcpfVxuICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZGVzY3JpcHRpb25gfT5cbiAgICAgICAgICAgICAgICAgIHt0KCd1cGxvYWQ6Zm9jYWxQb2ludERlc2NyaXB0aW9uJyl9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19pbnB1dHNXcmFwYH0+XG4gICAgICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cIlggJVwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsodmFsdWUpID0+IGZpbmVUdW5lRm9jYWxQb2ludCh7IGNvb3JkaW5hdGU6ICd4JywgdmFsdWUgfSl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXtwb2ludFBvc2l0aW9uLngudG9GaXhlZCgwKX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cIlkgJVwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsodmFsdWUpID0+IGZpbmVUdW5lRm9jYWxQb2ludCh7IGNvb3JkaW5hdGU6ICd5JywgdmFsdWUgfSl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXtwb2ludFBvc2l0aW9uLnkudG9GaXhlZCgwKX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApXG59XG5cbmNvbnN0IERyYWdnYWJsZUVsZW1lbnQgPSAoe1xuICBib3VuZHNSZWYsXG4gIGNoZWNrQm91bmRzLFxuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxuICBjb250YWluZXJSZWYsXG4gIGluaXRpYWxQb3NpdGlvbiA9IHsgeDogNTAsIHk6IDUwIH0sXG4gIG9uRHJhZ0VuZCxcbiAgc2V0Q2hlY2tCb3VuZHMsXG59KSA9PiB7XG4gIGNvbnN0IFtwb3NpdGlvbiwgc2V0UG9zaXRpb25dID0gdXNlU3RhdGUoeyB4OiBpbml0aWFsUG9zaXRpb24ueCwgeTogaW5pdGlhbFBvc2l0aW9uLnkgfSlcbiAgY29uc3QgW2lzRHJhZ2dpbmcsIHNldElzRHJhZ2dpbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IGRyYWdSZWYgPSB1c2VSZWY8SFRNTEJ1dHRvbkVsZW1lbnQgfCB1bmRlZmluZWQ+KClcblxuICBjb25zdCBnZXRDb29yZGluYXRlcyA9IFJlYWN0LnVzZUNhbGxiYWNrKFxuICAgIChtb3VzZVhBcmc/OiBudW1iZXIsIG1vdXNlWUFyZz86IG51bWJlciwgcmVjZW50ZXI/OiBib29sZWFuKSA9PiB7XG4gICAgICBjb25zdCBjb250YWluZXJSZWN0ID0gY29udGFpbmVyUmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgIGNvbnN0IGJvdW5kc1JlY3QgPSBib3VuZHNSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgY29uc3QgbW91c2VYID0gbW91c2VYQXJnID8/IGJvdW5kc1JlY3QubGVmdFxuICAgICAgY29uc3QgbW91c2VZID0gbW91c2VZQXJnID8/IGJvdW5kc1JlY3QudG9wXG5cbiAgICAgIGNvbnN0IHhPdXRPZkJvdW5kcyA9IG1vdXNlWCA8IGJvdW5kc1JlY3QubGVmdCB8fCBtb3VzZVggPiBib3VuZHNSZWN0LnJpZ2h0XG4gICAgICBjb25zdCB5T3V0T2ZCb3VuZHMgPSBtb3VzZVkgPCBib3VuZHNSZWN0LnRvcCB8fCBtb3VzZVkgPiBib3VuZHNSZWN0LmJvdHRvbVxuXG4gICAgICBsZXQgeCA9ICgobW91c2VYIC0gY29udGFpbmVyUmVjdC5sZWZ0KSAvIGNvbnRhaW5lclJlY3Qud2lkdGgpICogMTAwXG4gICAgICBsZXQgeSA9ICgobW91c2VZIC0gY29udGFpbmVyUmVjdC50b3ApIC8gY29udGFpbmVyUmVjdC5oZWlnaHQpICogMTAwXG4gICAgICBjb25zdCB4Q2VudGVyID1cbiAgICAgICAgKChib3VuZHNSZWN0LmxlZnQgLSBjb250YWluZXJSZWN0LmxlZnQgKyBib3VuZHNSZWN0LndpZHRoIC8gMikgLyBjb250YWluZXJSZWN0LndpZHRoKSAqIDEwMFxuICAgICAgY29uc3QgeUNlbnRlciA9XG4gICAgICAgICgoYm91bmRzUmVjdC50b3AgLSBjb250YWluZXJSZWN0LnRvcCArIGJvdW5kc1JlY3QuaGVpZ2h0IC8gMikgLyBjb250YWluZXJSZWN0LmhlaWdodCkgKiAxMDBcbiAgICAgIGlmICh4T3V0T2ZCb3VuZHMgfHwgeU91dE9mQm91bmRzKSB7XG4gICAgICAgIHNldElzRHJhZ2dpbmcoZmFsc2UpXG4gICAgICAgIGlmIChtb3VzZVggPCBib3VuZHNSZWN0LmxlZnQpIHtcbiAgICAgICAgICB4ID0gKChib3VuZHNSZWN0LmxlZnQgLSBjb250YWluZXJSZWN0LmxlZnQpIC8gY29udGFpbmVyUmVjdC53aWR0aCkgKiAxMDBcbiAgICAgICAgfSBlbHNlIGlmIChtb3VzZVggPiBib3VuZHNSZWN0LnJpZ2h0KSB7XG4gICAgICAgICAgeCA9XG4gICAgICAgICAgICAoKGNvbnRhaW5lclJlY3Qud2lkdGggLSAoY29udGFpbmVyUmVjdC5yaWdodCAtIGJvdW5kc1JlY3QucmlnaHQpKSAvXG4gICAgICAgICAgICAgIGNvbnRhaW5lclJlY3Qud2lkdGgpICpcbiAgICAgICAgICAgIDEwMFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG1vdXNlWSA8IGJvdW5kc1JlY3QudG9wKSB7XG4gICAgICAgICAgeSA9ICgoYm91bmRzUmVjdC50b3AgLSBjb250YWluZXJSZWN0LnRvcCkgLyBjb250YWluZXJSZWN0LmhlaWdodCkgKiAxMDBcbiAgICAgICAgfSBlbHNlIGlmIChtb3VzZVkgPiBib3VuZHNSZWN0LmJvdHRvbSkge1xuICAgICAgICAgIHkgPVxuICAgICAgICAgICAgKChjb250YWluZXJSZWN0LmhlaWdodCAtIChjb250YWluZXJSZWN0LmJvdHRvbSAtIGJvdW5kc1JlY3QuYm90dG9tKSkgL1xuICAgICAgICAgICAgICBjb250YWluZXJSZWN0LmhlaWdodCkgKlxuICAgICAgICAgICAgMTAwXG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVjZW50ZXIpIHtcbiAgICAgICAgICB4ID0geE91dE9mQm91bmRzID8geENlbnRlciA6IHhcbiAgICAgICAgICB5ID0geU91dE9mQm91bmRzID8geUNlbnRlciA6IHlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4geyB4LCB5IH1cbiAgICB9LFxuICAgIFtib3VuZHNSZWYsIGNvbnRhaW5lclJlZl0sXG4gIClcblxuICBjb25zdCBoYW5kbGVNb3VzZURvd24gPSAoZXZlbnQpID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgc2V0SXNEcmFnZ2luZyh0cnVlKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlTW91c2VNb3ZlID0gKGV2ZW50KSA9PiB7XG4gICAgaWYgKCFpc0RyYWdnaW5nKSByZXR1cm4gbnVsbFxuICAgIGNvbnN0IHsgeCwgeSB9ID0gZ2V0Q29vcmRpbmF0ZXMoZXZlbnQuY2xpZW50WCwgZXZlbnQuY2xpZW50WSlcblxuICAgIHNldFBvc2l0aW9uKHsgeCwgeSB9KVxuICB9XG5cbiAgY29uc3Qgb25Ecm9wID0gKCkgPT4ge1xuICAgIHNldElzRHJhZ2dpbmcoZmFsc2UpXG4gICAgb25EcmFnRW5kKHBvc2l0aW9uKVxuICB9XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNEcmFnZ2luZyB8fCAhZHJhZ1JlZi5jdXJyZW50KSByZXR1cm5cbiAgICBpZiAoY2hlY2tCb3VuZHMpIHtcbiAgICAgIGNvbnN0IHsgaGVpZ2h0LCBsZWZ0LCB0b3AsIHdpZHRoIH0gPSBkcmFnUmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgIGNvbnN0IHsgeCwgeSB9ID0gZ2V0Q29vcmRpbmF0ZXMobGVmdCArIHdpZHRoIC8gMiwgdG9wICsgaGVpZ2h0IC8gMiwgdHJ1ZSlcbiAgICAgIG9uRHJhZ0VuZCh7IHgsIHkgfSlcbiAgICAgIHNldFBvc2l0aW9uKHsgeCwgeSB9KVxuICAgICAgc2V0Q2hlY2tCb3VuZHMoZmFsc2UpXG4gICAgICByZXR1cm5cbiAgICB9XG4gIH0sIFtnZXRDb29yZGluYXRlcywgaXNEcmFnZ2luZywgY2hlY2tCb3VuZHMsIHNldENoZWNrQm91bmRzLCBwb3NpdGlvbi54LCBwb3NpdGlvbi55LCBvbkRyYWdFbmRdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0UG9zaXRpb24oeyB4OiBpbml0aWFsUG9zaXRpb24ueCwgeTogaW5pdGlhbFBvc2l0aW9uLnkgfSlcbiAgfSwgW2luaXRpYWxQb3NpdGlvbi54LCBpbml0aWFsUG9zaXRpb24ueV0pXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9e1tcbiAgICAgICAgYCR7YmFzZUNsYXNzfV9fZHJhZ2dhYmxlLWNvbnRhaW5lcmAsXG4gICAgICAgIGlzRHJhZ2dpbmcgJiYgYCR7YmFzZUNsYXNzfV9fZHJhZ2dhYmxlLWNvbnRhaW5lci0tZHJhZ2dpbmdgLFxuICAgICAgXVxuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgIC5qb2luKCcgJyl9XG4gICAgICBvbk1vdXNlTW92ZT17aGFuZGxlTW91c2VNb3ZlfVxuICAgID5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3NOYW1lPXtbYCR7YmFzZUNsYXNzfV9fZHJhZ2dhYmxlYCwgY2xhc3NOYW1lXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpfVxuICAgICAgICBvbk1vdXNlRG93bj17aGFuZGxlTW91c2VEb3dufVxuICAgICAgICBvbk1vdXNlVXA9e29uRHJvcH1cbiAgICAgICAgcmVmPXtkcmFnUmVmfVxuICAgICAgICBzdHlsZT17eyBsZWZ0OiBgJHtwb3NpdGlvbi54fSVgLCB0b3A6IGAke3Bvc2l0aW9uLnl9JWAgfX1cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGRpdiAvPlxuICAgIDwvZGl2PlxuICApXG59XG4iXSwibmFtZXMiOlsiRWRpdFVwbG9hZCIsImJhc2VDbGFzcyIsIklucHV0IiwibmFtZSIsIm9uQ2hhbmdlIiwidmFsdWUiLCJkaXYiLCJjbGFzc05hbWUiLCJpbnB1dCIsImUiLCJ0YXJnZXQiLCJ0eXBlIiwiZmlsZU5hbWUiLCJmaWxlU3JjIiwiaW1hZ2VDYWNoZVRhZyIsInNob3dDcm9wIiwic2hvd0ZvY2FsUG9pbnQiLCJjbG9zZU1vZGFsIiwidXNlTW9kYWwiLCJ0IiwidXNlVHJhbnNsYXRpb24iLCJmb3JtUXVlcnlQYXJhbXMiLCJzZXRGb3JtUXVlcnlQYXJhbXMiLCJ1c2VGb3JtUXVlcnlQYXJhbXMiLCJ1cGxvYWRFZGl0cyIsImNyb3AiLCJzZXRDcm9wIiwidXNlU3RhdGUiLCJoZWlnaHQiLCJ1bml0Iiwid2lkdGgiLCJ4IiwieSIsInBvaW50UG9zaXRpb24iLCJzZXRQb2ludFBvc2l0aW9uIiwiZm9jYWxQb2ludCIsImNoZWNrQm91bmRzIiwic2V0Q2hlY2tCb3VuZHMiLCJvcmlnaW5hbEhlaWdodCIsInNldE9yaWdpbmFsSGVpZ2h0Iiwib3JpZ2luYWxXaWR0aCIsInNldE9yaWdpbmFsV2lkdGgiLCJmb2NhbFdyYXBSZWYiLCJ1c2VSZWYiLCJpbWFnZVJlZiIsImNyb3BSZWYiLCJmaW5lVHVuZUNyb3AiLCJkaW1lbnNpb24iLCJpbnRWYWx1ZSIsInBhcnNlSW50IiwicGVyY2VudGFnZSIsImZpbmVUdW5lRm9jYWxQb2ludCIsImNvb3JkaW5hdGUiLCJwcmV2UG9zaXRpb24iLCJzYXZlRWRpdHMiLCJ1bmRlZmluZWQiLCJlZGl0RHJhd2VyU2x1ZyIsIm9uRHJhZ0VuZCIsIlJlYWN0IiwidXNlQ2FsbGJhY2siLCJjZW50ZXJGb2NhbFBvaW50IiwiY29udGFpbmVyUmVjdCIsImN1cnJlbnQiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJib3VuZHNSZWN0IiwieENlbnRlciIsImxlZnQiLCJ5Q2VudGVyIiwidG9wIiwiZmlsZVNyY1RvVXNlIiwiaDIiLCJ0aXRsZSIsIkJ1dHRvbiIsImFyaWEtbGFiZWwiLCJidXR0b25TdHlsZSIsIm9uQ2xpY2siLCJyZWYiLCJzdHlsZSIsImFzcGVjdFJhdGlvIiwiUmVhY3RDcm9wIiwiXyIsImMiLCJvbkNvbXBsZXRlIiwicmVuZGVyU2VsZWN0aW9uQWRkb24iLCJpbWciLCJhbHQiLCJvbkxvYWQiLCJjdXJyZW50VGFyZ2V0IiwibmF0dXJhbEhlaWdodCIsIm5hdHVyYWxXaWR0aCIsInNyYyIsIkRyYWdnYWJsZUVsZW1lbnQiLCJib3VuZHNSZWYiLCJjb250YWluZXJSZWYiLCJpbml0aWFsUG9zaXRpb24iLCJQbHVzIiwiaDMiLCJzcGFuIiwidG9GaXhlZCIsImNoaWxkcmVuIiwicG9zaXRpb24iLCJzZXRQb3NpdGlvbiIsImlzRHJhZ2dpbmciLCJzZXRJc0RyYWdnaW5nIiwiZHJhZ1JlZiIsImdldENvb3JkaW5hdGVzIiwibW91c2VYQXJnIiwibW91c2VZQXJnIiwicmVjZW50ZXIiLCJtb3VzZVgiLCJtb3VzZVkiLCJ4T3V0T2ZCb3VuZHMiLCJyaWdodCIsInlPdXRPZkJvdW5kcyIsImJvdHRvbSIsImhhbmRsZU1vdXNlRG93biIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJoYW5kbGVNb3VzZU1vdmUiLCJjbGllbnRYIiwiY2xpZW50WSIsIm9uRHJvcCIsInVzZUVmZmVjdCIsImZpbHRlciIsIkJvb2xlYW4iLCJqb2luIiwib25Nb3VzZU1vdmUiLCJidXR0b24iLCJvbk1vdXNlRG93biIsIm9uTW91c2VVcCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OytCQTRCYUE7OztlQUFBQTs7O3VCQXpCWTsrREFDZTt1RUFDUztRQUMxQzt3QkFFd0I7c0JBQ1Y7aUNBQ2M7NkJBQ0o7d0JBQ1I7UUFDaEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRVAsTUFBTUMsWUFBWTtBQUVsQixNQUFNQyxRQUFzRixDQUFDLEVBQzNGQyxJQUFJLEVBQ0pDLFFBQVEsRUFDUkMsS0FBSyxFQUNOLGlCQUNDLDZCQUFDQztRQUFJQyxXQUFXLENBQUMsRUFBRU4sVUFBVSxPQUFPLENBQUM7T0FDbENFLG9CQUNELDZCQUFDSztRQUFNTCxNQUFNQTtRQUFNQyxVQUFVLENBQUNLLElBQU1MLFNBQVNLLEVBQUVDLE1BQU0sQ0FBQ0wsS0FBSztRQUFHTSxNQUFLO1FBQVNOLE9BQU9BOztBQUloRixNQUFNTCxhQU9SLENBQUMsRUFBRVksUUFBUSxFQUFFQyxPQUFPLEVBQUVDLGFBQWEsRUFBRUMsUUFBUSxFQUFFQyxjQUFjLEVBQUU7SUFDbEUsTUFBTSxFQUFFQyxVQUFVLEVBQUUsR0FBR0MsSUFBQUEsZUFBUTtJQUMvQixNQUFNLEVBQUVDLENBQUMsRUFBRSxHQUFHQyxJQUFBQSwyQkFBYztJQUM1QixNQUFNLEVBQUVDLGVBQWUsRUFBRUMsa0JBQWtCLEVBQUUsR0FBR0MsSUFBQUEsbUNBQWtCO0lBQ2xFLE1BQU0sRUFBRUMsV0FBVyxFQUFFLEdBQUdILG1CQUFtQixDQUFDO0lBQzVDLE1BQU0sQ0FBQ0ksTUFBTUMsUUFBUSxHQUFHQyxJQUFBQSxlQUFRLEVBQVc7UUFDekNDLFFBQVFKLGFBQWFDLE1BQU1HLFVBQVU7UUFDckNDLE1BQU07UUFDTkMsT0FBT04sYUFBYUMsTUFBTUssU0FBUztRQUNuQ0MsR0FBR1AsYUFBYUMsTUFBTU0sS0FBSztRQUMzQkMsR0FBR1IsYUFBYUMsTUFBTU8sS0FBSztJQUM3QjtJQUVBLE1BQU0sQ0FBQ0MsZUFBZUMsaUJBQWlCLEdBQUdQLElBQUFBLGVBQVEsRUFBMkI7UUFDM0VJLEdBQUdQLGFBQWFXLFlBQVlKLEtBQUs7UUFDakNDLEdBQUdSLGFBQWFXLFlBQVlILEtBQUs7SUFDbkM7SUFDQSxNQUFNLENBQUNJLGFBQWFDLGVBQWUsR0FBR1YsSUFBQUEsZUFBUSxFQUFVO0lBQ3hELE1BQU0sQ0FBQ1csZ0JBQWdCQyxrQkFBa0IsR0FBR1osSUFBQUEsZUFBUSxFQUFTO0lBQzdELE1BQU0sQ0FBQ2EsZUFBZUMsaUJBQWlCLEdBQUdkLElBQUFBLGVBQVEsRUFBUztJQUUzRCxNQUFNZSxlQUFlQyxJQUFBQSxhQUFNO0lBQzNCLE1BQU1DLFdBQVdELElBQUFBLGFBQU07SUFDdkIsTUFBTUUsVUFBVUYsSUFBQUEsYUFBTTtJQUV0QixNQUFNRyxlQUFlLENBQUMsRUFBRUMsU0FBUyxFQUFFMUMsS0FBSyxFQUFvRDtRQUMxRixNQUFNMkMsV0FBV0MsU0FBUzVDO1FBQzFCLElBQUkwQyxjQUFjLFdBQVdDLFlBQVlSLGVBQWUsT0FBTztRQUMvRCxJQUFJTyxjQUFjLFlBQVlDLFlBQVlWLGdCQUFnQixPQUFPO1FBRWpFLE1BQU1ZLGFBQWEsTUFBT0YsQ0FBQUEsV0FBWUQsQ0FBQUEsY0FBYyxVQUFVUCxnQkFBZ0JGLGNBQWEsQ0FBQztRQUU1RixJQUFJWSxlQUFlLE9BQU9BLGVBQWUsR0FBRyxPQUFPO1FBRW5EeEIsUUFBUTtZQUNOLEdBQUdELElBQUk7WUFDUCxDQUFDc0IsVUFBVSxFQUFFRztRQUNmO0lBQ0Y7SUFFQSxNQUFNQyxxQkFBcUIsQ0FBQyxFQUFFQyxVQUFVLEVBQUUvQyxLQUFLLEVBQTRDO1FBQ3pGLE1BQU0yQyxXQUFXQyxTQUFTNUM7UUFDMUIsSUFBSTJDLFlBQVksS0FBS0EsWUFBWSxLQUFLO1lBQ3BDZCxpQkFBaUIsQ0FBQ21CLGVBQWtCLENBQUE7b0JBQUUsR0FBR0EsWUFBWTtvQkFBRSxDQUFDRCxXQUFXLEVBQUVKO2dCQUFTLENBQUE7UUFDaEY7SUFDRjtJQUVBLE1BQU1NLFlBQVk7UUFDaEJoQyxtQkFBbUI7WUFDakIsR0FBR0QsZUFBZTtZQUNsQkcsYUFBYTtnQkFDWEMsTUFBTUEsUUFBUThCO2dCQUNkcEIsWUFBWUYsZ0JBQWdCQSxnQkFBZ0JzQjtZQUM5QztRQUNGO1FBQ0F0QyxXQUFXdUMsc0JBQWM7SUFDM0I7SUFFQSxNQUFNQyxZQUFZQyxjQUFLLENBQUNDLFdBQVcsQ0FBQyxDQUFDLEVBQUU1QixDQUFDLEVBQUVDLENBQUMsRUFBRTtRQUMzQ0UsaUJBQWlCO1lBQUVIO1lBQUdDO1FBQUU7UUFDeEJLLGVBQWU7SUFDakIsR0FBRyxFQUFFO0lBRUwsTUFBTXVCLG1CQUFtQjtRQUN2QixNQUFNQyxnQkFBZ0JuQixhQUFhb0IsT0FBTyxDQUFDQyxxQkFBcUI7UUFDaEUsTUFBTUMsYUFBYWpELFdBQ2Y4QixRQUFRaUIsT0FBTyxDQUFDQyxxQkFBcUIsS0FDckNuQixTQUFTa0IsT0FBTyxDQUFDQyxxQkFBcUI7UUFDMUMsTUFBTUUsVUFDSixBQUFFRCxDQUFBQSxXQUFXRSxJQUFJLEdBQUdMLGNBQWNLLElBQUksR0FBR0YsV0FBV2xDLEtBQUssR0FBRyxDQUFBLElBQUsrQixjQUFjL0IsS0FBSyxHQUFJO1FBQzFGLE1BQU1xQyxVQUNKLEFBQUVILENBQUFBLFdBQVdJLEdBQUcsR0FBR1AsY0FBY08sR0FBRyxHQUFHSixXQUFXcEMsTUFBTSxHQUFHLENBQUEsSUFBS2lDLGNBQWNqQyxNQUFNLEdBQUk7UUFDMUZNLGlCQUFpQjtZQUFFSCxHQUFHa0M7WUFBU2pDLEdBQUdtQztRQUFRO0lBQzVDO0lBRUEsTUFBTUUsZUFBZXZELGdCQUFnQixDQUFDLEVBQUVELFFBQVEsQ0FBQyxFQUFFQyxjQUFjLENBQUMsR0FBR0Q7SUFFckUscUJBQ0UsNkJBQUNQO1FBQUlDLFdBQVdOO3FCQUNkLDZCQUFDSztRQUFJQyxXQUFXLENBQUMsRUFBRU4sVUFBVSxRQUFRLENBQUM7cUJBQ3BDLDZCQUFDcUU7UUFBR0MsT0FBTyxDQUFDLEVBQUVwRCxFQUFFLG1CQUFtQixDQUFDLEVBQUVQLFNBQVMsQ0FBQztPQUM3Q08sRUFBRSxvQkFBbUIsS0FBRVAseUJBRTFCLDZCQUFDTjtRQUFJQyxXQUFXLENBQUMsRUFBRU4sVUFBVSxTQUFTLENBQUM7cUJBQ3JDLDZCQUFDdUUsY0FBTTtRQUNMQyxjQUFZdEQsRUFBRTtRQUNkdUQsYUFBWTtRQUNabkUsV0FBVyxDQUFDLEVBQUVOLFVBQVUsUUFBUSxDQUFDO1FBQ2pDMEUsU0FBUyxJQUFNMUQsV0FBV3VDLHNCQUFjO09BRXZDckMsRUFBRSxrQ0FFTCw2QkFBQ3FELGNBQU07UUFDTEMsY0FBWXRELEVBQUU7UUFDZHVELGFBQVk7UUFDWm5FLFdBQVcsQ0FBQyxFQUFFTixVQUFVLE1BQU0sQ0FBQztRQUMvQjBFLFNBQVMsSUFBTXJCO09BRWRuQyxFQUFFLDBDQUlULDZCQUFDYjtRQUFJQyxXQUFXLENBQUMsRUFBRU4sVUFBVSxVQUFVLENBQUM7cUJBQ3RDLDZCQUFDSztRQUFJQyxXQUFXLENBQUMsRUFBRU4sVUFBVSxNQUFNLENBQUM7cUJBQ2xDLDZCQUFDSztRQUNDQyxXQUFXLENBQUMsRUFBRU4sVUFBVSxlQUFlLENBQUM7UUFDeEMyRSxLQUFLbEM7UUFDTG1DLE9BQU87WUFDTEMsYUFBYSxDQUFDLEVBQUV0QyxnQkFBZ0JGLGVBQWUsQ0FBQztRQUNsRDtPQUVDdkIseUJBQ0MsNkJBQUNnRSx1QkFBUztRQUNSeEUsV0FBVyxDQUFDLEVBQUVOLFVBQVUsV0FBVyxDQUFDO1FBQ3BDd0IsTUFBTUE7UUFDTnJCLFVBQVUsQ0FBQzRFLEdBQUdDLElBQU12RCxRQUFRdUQ7UUFDNUJDLFlBQVksSUFBTTdDLGVBQWU7UUFDakM4QyxzQkFBc0I7WUFDcEIscUJBQU8sNkJBQUM3RTtnQkFBSUMsV0FBVyxDQUFDLEVBQUVOLFVBQVUsYUFBYSxDQUFDO2dCQUFFMkUsS0FBSy9COztRQUMzRDtxQkFFQSw2QkFBQ3VDO1FBQ0NDLEtBQUtsRSxFQUFFO1FBQ1BtRSxRQUFRLENBQUM3RTtZQUNQOEIsa0JBQWtCOUIsRUFBRThFLGFBQWEsQ0FBQ0MsYUFBYTtZQUMvQy9DLGlCQUFpQmhDLEVBQUU4RSxhQUFhLENBQUNFLFlBQVk7UUFDL0M7UUFDQWIsS0FBS2hDO1FBQ0w4QyxLQUFLckI7d0JBSVQsNkJBQUNlO1FBQ0NDLEtBQUtsRSxFQUFFO1FBQ1BtRSxRQUFRLENBQUM3RTtZQUNQOEIsa0JBQWtCOUIsRUFBRThFLGFBQWEsQ0FBQ0MsYUFBYTtZQUMvQy9DLGlCQUFpQmhDLEVBQUU4RSxhQUFhLENBQUNFLFlBQVk7UUFDL0M7UUFDQWIsS0FBS2hDO1FBQ0w4QyxLQUFLckI7UUFHUnJELGdDQUNDLDZCQUFDMkU7UUFDQ0MsV0FBVzdFLFdBQVc4QixVQUFVRDtRQUNoQ1IsYUFBYXJCLFdBQVdxQixjQUFjO1FBQ3RDN0IsV0FBVyxDQUFDLEVBQUVOLFVBQVUsWUFBWSxDQUFDO1FBQ3JDNEYsY0FBY25EO1FBQ2RvRCxpQkFBaUI3RDtRQUNqQndCLFdBQVdBO1FBQ1hwQixnQkFBZ0J0QixXQUFXc0IsaUJBQWlCO3FCQUU1Qyw2QkFBQzBELFVBQUksWUFLWixBQUFDaEYsQ0FBQUEsWUFBWUMsY0FBYSxtQkFDekIsNkJBQUNWO1FBQUlDLFdBQVcsQ0FBQyxFQUFFTixVQUFVLFNBQVMsQ0FBQztPQUNwQ2MsMEJBQ0MsNkJBQUNUO1FBQUlDLFdBQVcsQ0FBQyxFQUFFTixVQUFVLFdBQVcsQ0FBQztxQkFDdkMsNkJBQUNLLDJCQUNDLDZCQUFDQTtRQUFJQyxXQUFXLENBQUMsRUFBRU4sVUFBVSxXQUFXLENBQUM7cUJBQ3ZDLDZCQUFDK0YsWUFBSTdFLEVBQUUsK0JBQ1AsNkJBQUNxRCxjQUFNO1FBQ0xFLGFBQVk7UUFDWm5FLFdBQVcsQ0FBQyxFQUFFTixVQUFVLE9BQU8sQ0FBQztRQUNoQzBFLFNBQVMsSUFDUGpELFFBQVE7Z0JBQ05FLFFBQVE7Z0JBQ1JDLE1BQU07Z0JBQ05DLE9BQU87Z0JBQ1BDLEdBQUc7Z0JBQ0hDLEdBQUc7WUFDTDtPQUdEYixFQUFFLG1DQUlULDZCQUFDOEU7UUFBSzFGLFdBQVcsQ0FBQyxFQUFFTixVQUFVLGFBQWEsQ0FBQztPQUN6Q2tCLEVBQUUsOENBRUwsNkJBQUNiO1FBQUlDLFdBQVcsQ0FBQyxFQUFFTixVQUFVLFlBQVksQ0FBQztxQkFDeEMsNkJBQUNDO1FBQ0NDLE1BQU0sQ0FBQyxFQUFFZ0IsRUFBRSxnQkFBZ0IsS0FBSyxDQUFDO1FBQ2pDZixVQUFVLENBQUNDLFFBQVV5QyxhQUFhO2dCQUFFQyxXQUFXO2dCQUFTMUM7WUFBTTtRQUM5REEsT0FBTyxBQUFDLENBQUEsQUFBQ29CLEtBQUtLLEtBQUssR0FBRyxNQUFPVSxhQUFZLEVBQUcwRCxPQUFPLENBQUM7c0JBRXRELDZCQUFDaEc7UUFDQ0MsTUFBTSxDQUFDLEVBQUVnQixFQUFFLGlCQUFpQixLQUFLLENBQUM7UUFDbENmLFVBQVUsQ0FBQ0MsUUFBVXlDLGFBQWE7Z0JBQUVDLFdBQVc7Z0JBQVUxQztZQUFNO1FBQy9EQSxPQUFPLEFBQUMsQ0FBQSxBQUFDb0IsS0FBS0csTUFBTSxHQUFHLE1BQU9VLGNBQWEsRUFBRzRELE9BQU8sQ0FBQztVQU03RGxGLGdDQUNDLDZCQUFDVjtRQUFJQyxXQUFXLENBQUMsRUFBRU4sVUFBVSxXQUFXLENBQUM7cUJBQ3ZDLDZCQUFDSywyQkFDQyw2QkFBQ0E7UUFBSUMsV0FBVyxDQUFDLEVBQUVOLFVBQVUsV0FBVyxDQUFDO3FCQUN2Qyw2QkFBQytGLFlBQUk3RSxFQUFFLHFDQUNQLDZCQUFDcUQsY0FBTTtRQUNMRSxhQUFZO1FBQ1puRSxXQUFXLENBQUMsRUFBRU4sVUFBVSxPQUFPLENBQUM7UUFDaEMwRSxTQUFTZjtPQUVSekMsRUFBRSxtQ0FJVCw2QkFBQzhFO1FBQUsxRixXQUFXLENBQUMsRUFBRU4sVUFBVSxhQUFhLENBQUM7T0FDekNrQixFQUFFLGdEQUVMLDZCQUFDYjtRQUFJQyxXQUFXLENBQUMsRUFBRU4sVUFBVSxZQUFZLENBQUM7cUJBQ3hDLDZCQUFDQztRQUNDQyxNQUFLO1FBQ0xDLFVBQVUsQ0FBQ0MsUUFBVThDLG1CQUFtQjtnQkFBRUMsWUFBWTtnQkFBSy9DO1lBQU07UUFDakVBLE9BQU80QixjQUFjRixDQUFDLENBQUNtRSxPQUFPLENBQUM7c0JBRWpDLDZCQUFDaEc7UUFDQ0MsTUFBSztRQUNMQyxVQUFVLENBQUNDLFFBQVU4QyxtQkFBbUI7Z0JBQUVDLFlBQVk7Z0JBQUsvQztZQUFNO1FBQ2pFQSxPQUFPNEIsY0FBY0QsQ0FBQyxDQUFDa0UsT0FBTyxDQUFDOztBQVVuRDtBQUVBLE1BQU1QLG1CQUFtQixDQUFDLEVBQ3hCQyxTQUFTLEVBQ1R4RCxXQUFXLEVBQ1grRCxRQUFRLEVBQ1I1RixTQUFTLEVBQ1RzRixZQUFZLEVBQ1pDLGtCQUFrQjtJQUFFL0QsR0FBRztJQUFJQyxHQUFHO0FBQUcsQ0FBQyxFQUNsQ3lCLFNBQVMsRUFDVHBCLGNBQWMsRUFDZjtJQUNDLE1BQU0sQ0FBQytELFVBQVVDLFlBQVksR0FBRzFFLElBQUFBLGVBQVEsRUFBQztRQUFFSSxHQUFHK0QsZ0JBQWdCL0QsQ0FBQztRQUFFQyxHQUFHOEQsZ0JBQWdCOUQsQ0FBQztJQUFDO0lBQ3RGLE1BQU0sQ0FBQ3NFLFlBQVlDLGNBQWMsR0FBRzVFLElBQUFBLGVBQVEsRUFBQztJQUM3QyxNQUFNNkUsVUFBVTdELElBQUFBLGFBQU07SUFFdEIsTUFBTThELGlCQUFpQi9DLGNBQUssQ0FBQ0MsV0FBVyxDQUN0QyxDQUFDK0MsV0FBb0JDLFdBQW9CQztRQUN2QyxNQUFNL0MsZ0JBQWdCZ0MsYUFBYS9CLE9BQU8sQ0FBQ0MscUJBQXFCO1FBQ2hFLE1BQU1DLGFBQWE0QixVQUFVOUIsT0FBTyxDQUFDQyxxQkFBcUI7UUFDMUQsTUFBTThDLFNBQVNILGFBQWExQyxXQUFXRSxJQUFJO1FBQzNDLE1BQU00QyxTQUFTSCxhQUFhM0MsV0FBV0ksR0FBRztRQUUxQyxNQUFNMkMsZUFBZUYsU0FBUzdDLFdBQVdFLElBQUksSUFBSTJDLFNBQVM3QyxXQUFXZ0QsS0FBSztRQUMxRSxNQUFNQyxlQUFlSCxTQUFTOUMsV0FBV0ksR0FBRyxJQUFJMEMsU0FBUzlDLFdBQVdrRCxNQUFNO1FBRTFFLElBQUluRixJQUFJLEFBQUU4RSxDQUFBQSxTQUFTaEQsY0FBY0ssSUFBSSxBQUFELElBQUtMLGNBQWMvQixLQUFLLEdBQUk7UUFDaEUsSUFBSUUsSUFBSSxBQUFFOEUsQ0FBQUEsU0FBU2pELGNBQWNPLEdBQUcsQUFBRCxJQUFLUCxjQUFjakMsTUFBTSxHQUFJO1FBQ2hFLE1BQU1xQyxVQUNKLEFBQUVELENBQUFBLFdBQVdFLElBQUksR0FBR0wsY0FBY0ssSUFBSSxHQUFHRixXQUFXbEMsS0FBSyxHQUFHLENBQUEsSUFBSytCLGNBQWMvQixLQUFLLEdBQUk7UUFDMUYsTUFBTXFDLFVBQ0osQUFBRUgsQ0FBQUEsV0FBV0ksR0FBRyxHQUFHUCxjQUFjTyxHQUFHLEdBQUdKLFdBQVdwQyxNQUFNLEdBQUcsQ0FBQSxJQUFLaUMsY0FBY2pDLE1BQU0sR0FBSTtRQUMxRixJQUFJbUYsZ0JBQWdCRSxjQUFjO1lBQ2hDVixjQUFjO1lBQ2QsSUFBSU0sU0FBUzdDLFdBQVdFLElBQUksRUFBRTtnQkFDNUJuQyxJQUFJLEFBQUVpQyxDQUFBQSxXQUFXRSxJQUFJLEdBQUdMLGNBQWNLLElBQUksQUFBRCxJQUFLTCxjQUFjL0IsS0FBSyxHQUFJO1lBQ3ZFLE9BQU8sSUFBSStFLFNBQVM3QyxXQUFXZ0QsS0FBSyxFQUFFO2dCQUNwQ2pGLElBQ0UsQUFBRThCLENBQUFBLGNBQWMvQixLQUFLLEdBQUkrQixDQUFBQSxjQUFjbUQsS0FBSyxHQUFHaEQsV0FBV2dELEtBQUssQUFBRCxDQUFDLElBQzdEbkQsY0FBYy9CLEtBQUssR0FDckI7WUFDSjtZQUVBLElBQUlnRixTQUFTOUMsV0FBV0ksR0FBRyxFQUFFO2dCQUMzQnBDLElBQUksQUFBRWdDLENBQUFBLFdBQVdJLEdBQUcsR0FBR1AsY0FBY08sR0FBRyxBQUFELElBQUtQLGNBQWNqQyxNQUFNLEdBQUk7WUFDdEUsT0FBTyxJQUFJa0YsU0FBUzlDLFdBQVdrRCxNQUFNLEVBQUU7Z0JBQ3JDbEYsSUFDRSxBQUFFNkIsQ0FBQUEsY0FBY2pDLE1BQU0sR0FBSWlDLENBQUFBLGNBQWNxRCxNQUFNLEdBQUdsRCxXQUFXa0QsTUFBTSxBQUFELENBQUMsSUFDaEVyRCxjQUFjakMsTUFBTSxHQUN0QjtZQUNKO1lBRUEsSUFBSWdGLFVBQVU7Z0JBQ1o3RSxJQUFJZ0YsZUFBZTlDLFVBQVVsQztnQkFDN0JDLElBQUlpRixlQUFlOUMsVUFBVW5DO1lBQy9CO1FBQ0Y7UUFFQSxPQUFPO1lBQUVEO1lBQUdDO1FBQUU7SUFDaEIsR0FDQTtRQUFDNEQ7UUFBV0M7S0FBYTtJQUczQixNQUFNc0Isa0JBQWtCLENBQUNDO1FBQ3ZCQSxNQUFNQyxjQUFjO1FBQ3BCZCxjQUFjO0lBQ2hCO0lBRUEsTUFBTWUsa0JBQWtCLENBQUNGO1FBQ3ZCLElBQUksQ0FBQ2QsWUFBWSxPQUFPO1FBQ3hCLE1BQU0sRUFBRXZFLENBQUMsRUFBRUMsQ0FBQyxFQUFFLEdBQUd5RSxlQUFlVyxNQUFNRyxPQUFPLEVBQUVILE1BQU1JLE9BQU87UUFFNURuQixZQUFZO1lBQUV0RTtZQUFHQztRQUFFO0lBQ3JCO0lBRUEsTUFBTXlGLFNBQVM7UUFDYmxCLGNBQWM7UUFDZDlDLFVBQVUyQztJQUNaO0lBRUExQyxjQUFLLENBQUNnRSxTQUFTLENBQUM7UUFDZCxJQUFJcEIsY0FBYyxDQUFDRSxRQUFRMUMsT0FBTyxFQUFFO1FBQ3BDLElBQUkxQixhQUFhO1lBQ2YsTUFBTSxFQUFFUixNQUFNLEVBQUVzQyxJQUFJLEVBQUVFLEdBQUcsRUFBRXRDLEtBQUssRUFBRSxHQUFHMEUsUUFBUTFDLE9BQU8sQ0FBQ0MscUJBQXFCO1lBQzFFLE1BQU0sRUFBRWhDLENBQUMsRUFBRUMsQ0FBQyxFQUFFLEdBQUd5RSxlQUFldkMsT0FBT3BDLFFBQVEsR0FBR3NDLE1BQU14QyxTQUFTLEdBQUc7WUFDcEU2QixVQUFVO2dCQUFFMUI7Z0JBQUdDO1lBQUU7WUFDakJxRSxZQUFZO2dCQUFFdEU7Z0JBQUdDO1lBQUU7WUFDbkJLLGVBQWU7WUFDZjtRQUNGO0lBQ0YsR0FBRztRQUFDb0U7UUFBZ0JIO1FBQVlsRTtRQUFhQztRQUFnQitELFNBQVNyRSxDQUFDO1FBQUVxRSxTQUFTcEUsQ0FBQztRQUFFeUI7S0FBVTtJQUUvRkMsY0FBSyxDQUFDZ0UsU0FBUyxDQUFDO1FBQ2RyQixZQUFZO1lBQUV0RSxHQUFHK0QsZ0JBQWdCL0QsQ0FBQztZQUFFQyxHQUFHOEQsZ0JBQWdCOUQsQ0FBQztRQUFDO0lBQzNELEdBQUc7UUFBQzhELGdCQUFnQi9ELENBQUM7UUFBRStELGdCQUFnQjlELENBQUM7S0FBQztJQUV6QyxxQkFDRSw2QkFBQzFCO1FBQ0NDLFdBQVc7WUFDVCxDQUFDLEVBQUVOLFVBQVUscUJBQXFCLENBQUM7WUFDbkNxRyxjQUFjLENBQUMsRUFBRXJHLFVBQVUsK0JBQStCLENBQUM7U0FDNUQsQ0FDRTBILE1BQU0sQ0FBQ0MsU0FDUEMsSUFBSSxDQUFDO1FBQ1JDLGFBQWFSO3FCQUViLDZCQUFDUztRQUNDeEgsV0FBVztZQUFDLENBQUMsRUFBRU4sVUFBVSxXQUFXLENBQUM7WUFBRU07U0FBVSxDQUFDb0gsTUFBTSxDQUFDQyxTQUFTQyxJQUFJLENBQUM7UUFDdkVHLGFBQWFiO1FBQ2JjLFdBQVdSO1FBQ1g3QyxLQUFLNEI7UUFDTDNCLE9BQU87WUFBRVgsTUFBTSxDQUFDLEVBQUVrQyxTQUFTckUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUFFcUMsS0FBSyxDQUFDLEVBQUVnQyxTQUFTcEUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUFDO1FBQ3ZEckIsTUFBSztPQUVKd0YseUJBRUgsNkJBQUM3RjtBQUdQIn0=
334
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9FZGl0VXBsb2FkL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHsgRGF0YSB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IHVzZU1vZGFsIH0gZnJvbSAnQGZhY2VsZXNzLXVpL21vZGFsJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCBSZWFjdENyb3AsIHsgdHlwZSBDcm9wIGFzIENyb3BUeXBlIH0gZnJvbSAncmVhY3QtaW1hZ2UtY3JvcCdcbmltcG9ydCAncmVhY3QtaW1hZ2UtY3JvcC9kaXN0L1JlYWN0Q3JvcC5jc3MnXG5cbmltcG9ydCB7IGVkaXREcmF3ZXJTbHVnIH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvVXBsb2FkJ1xuaW1wb3J0IHsgUGx1cyB9IGZyb20gJy4uLy4uL2ljb25zL1BsdXMnXG5pbXBvcnQgeyB1c2VGb3JtUXVlcnlQYXJhbXMgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvRm9ybVF1ZXJ5UGFyYW1zJ1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvVHJhbnNsYXRpb24nXG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi9CdXR0b24nXG5pbXBvcnQgJy4vaW5kZXguc2NzcydcblxuY29uc3QgYmFzZUNsYXNzID0gJ2VkaXQtdXBsb2FkJ1xuXG5jb25zdCBJbnB1dDogUmVhY3QuRkM8eyBuYW1lOiBzdHJpbmc7IG9uQ2hhbmdlOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZDsgdmFsdWU6IHN0cmluZyB9PiA9ICh7XG4gIG5hbWUsXG4gIG9uQ2hhbmdlLFxuICB2YWx1ZSxcbn0pID0+IChcbiAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2lucHV0YH0+XG4gICAge25hbWV9XG4gICAgPGlucHV0IG5hbWU9e25hbWV9IG9uQ2hhbmdlPXsoZSkgPT4gb25DaGFuZ2UoZS50YXJnZXQudmFsdWUpfSB0eXBlPVwibnVtYmVyXCIgdmFsdWU9e3ZhbHVlfSAvPlxuICA8L2Rpdj5cbilcblxuZXhwb3J0IGNvbnN0IEVkaXRVcGxvYWQ6IFJlYWN0LkZDPHtcbiAgZG9jPzogRGF0YVxuICBmaWxlTmFtZTogc3RyaW5nXG4gIGZpbGVTcmM6IHN0cmluZ1xuICBpbWFnZUNhY2hlVGFnPzogc3RyaW5nXG4gIHNob3dDcm9wPzogYm9vbGVhblxuICBzaG93Rm9jYWxQb2ludD86IGJvb2xlYW5cbn0+ID0gKHsgZmlsZU5hbWUsIGZpbGVTcmMsIGltYWdlQ2FjaGVUYWcsIHNob3dDcm9wLCBzaG93Rm9jYWxQb2ludCB9KSA9PiB7XG4gIGNvbnN0IHsgY2xvc2VNb2RhbCB9ID0gdXNlTW9kYWwoKVxuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKClcbiAgY29uc3QgeyBmb3JtUXVlcnlQYXJhbXMsIHNldEZvcm1RdWVyeVBhcmFtcyB9ID0gdXNlRm9ybVF1ZXJ5UGFyYW1zKClcbiAgY29uc3QgeyB1cGxvYWRFZGl0cyB9ID0gZm9ybVF1ZXJ5UGFyYW1zIHx8IHt9XG4gIGNvbnN0IFtjcm9wLCBzZXRDcm9wXSA9IHVzZVN0YXRlPENyb3BUeXBlPih7XG4gICAgaGVpZ2h0OiB1cGxvYWRFZGl0cz8uY3JvcD8uaGVpZ2h0IHx8IDEwMCxcbiAgICB1bml0OiAnJScsXG4gICAgd2lkdGg6IHVwbG9hZEVkaXRzPy5jcm9wPy53aWR0aCB8fCAxMDAsXG4gICAgeDogdXBsb2FkRWRpdHM/LmNyb3A/LnggfHwgMCxcbiAgICB5OiB1cGxvYWRFZGl0cz8uY3JvcD8ueSB8fCAwLFxuICB9KVxuXG4gIGNvbnN0IFtwb2ludFBvc2l0aW9uLCBzZXRQb2ludFBvc2l0aW9uXSA9IHVzZVN0YXRlPHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfT4oe1xuICAgIHg6IHVwbG9hZEVkaXRzPy5mb2NhbFBvaW50Py54IHx8IDUwLFxuICAgIHk6IHVwbG9hZEVkaXRzPy5mb2NhbFBvaW50Py55IHx8IDUwLFxuICB9KVxuICBjb25zdCBbY2hlY2tCb3VuZHMsIHNldENoZWNrQm91bmRzXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKVxuICBjb25zdCBbb3JpZ2luYWxIZWlnaHQsIHNldE9yaWdpbmFsSGVpZ2h0XSA9IHVzZVN0YXRlPG51bWJlcj4oMClcbiAgY29uc3QgW29yaWdpbmFsV2lkdGgsIHNldE9yaWdpbmFsV2lkdGhdID0gdXNlU3RhdGU8bnVtYmVyPigwKVxuXG4gIGNvbnN0IGZvY2FsV3JhcFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudCB8IHVuZGVmaW5lZD4oKVxuICBjb25zdCBpbWFnZVJlZiA9IHVzZVJlZjxIVE1MSW1hZ2VFbGVtZW50IHwgdW5kZWZpbmVkPigpXG4gIGNvbnN0IGNyb3BSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCB1bmRlZmluZWQ+KClcblxuICBjb25zdCBmaW5lVHVuZUNyb3AgPSAoeyBkaW1lbnNpb24sIHZhbHVlIH06IHsgZGltZW5zaW9uOiAnaGVpZ2h0JyB8ICd3aWR0aCc7IHZhbHVlOiBzdHJpbmcgfSkgPT4ge1xuICAgIGNvbnN0IGludFZhbHVlID0gcGFyc2VJbnQodmFsdWUpXG4gICAgaWYgKGRpbWVuc2lvbiA9PT0gJ3dpZHRoJyAmJiBpbnRWYWx1ZSA+PSBvcmlnaW5hbFdpZHRoKSByZXR1cm4gbnVsbFxuICAgIGlmIChkaW1lbnNpb24gPT09ICdoZWlnaHQnICYmIGludFZhbHVlID49IG9yaWdpbmFsSGVpZ2h0KSByZXR1cm4gbnVsbFxuXG4gICAgY29uc3QgcGVyY2VudGFnZSA9IDEwMCAqIChpbnRWYWx1ZSAvIChkaW1lbnNpb24gPT09ICd3aWR0aCcgPyBvcmlnaW5hbFdpZHRoIDogb3JpZ2luYWxIZWlnaHQpKVxuXG4gICAgaWYgKHBlcmNlbnRhZ2UgPT09IDEwMCB8fCBwZXJjZW50YWdlID09PSAwKSByZXR1cm4gbnVsbFxuXG4gICAgc2V0Q3JvcCh7XG4gICAgICAuLi5jcm9wLFxuICAgICAgW2RpbWVuc2lvbl06IHBlcmNlbnRhZ2UsXG4gICAgfSlcbiAgfVxuXG4gIGNvbnN0IGZpbmVUdW5lRm9jYWxQb2ludCA9ICh7IGNvb3JkaW5hdGUsIHZhbHVlIH06IHsgY29vcmRpbmF0ZTogJ3gnIHwgJ3knOyB2YWx1ZTogc3RyaW5nIH0pID0+IHtcbiAgICBjb25zdCBpbnRWYWx1ZSA9IHBhcnNlSW50KHZhbHVlKVxuICAgIGlmIChpbnRWYWx1ZSA+PSAwICYmIGludFZhbHVlIDw9IDEwMCkge1xuICAgICAgc2V0UG9pbnRQb3NpdGlvbigocHJldlBvc2l0aW9uKSA9PiAoeyAuLi5wcmV2UG9zaXRpb24sIFtjb29yZGluYXRlXTogaW50VmFsdWUgfSkpXG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc2F2ZUVkaXRzID0gKCkgPT4ge1xuICAgIHNldEZvcm1RdWVyeVBhcmFtcyh7XG4gICAgICAuLi5mb3JtUXVlcnlQYXJhbXMsXG4gICAgICB1cGxvYWRFZGl0czoge1xuICAgICAgICBjcm9wOiBjcm9wIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgZm9jYWxQb2ludDogcG9pbnRQb3NpdGlvbiA/IHBvaW50UG9zaXRpb24gOiB1bmRlZmluZWQsXG4gICAgICB9LFxuICAgIH0pXG4gICAgY2xvc2VNb2RhbChlZGl0RHJhd2VyU2x1ZylcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ0VuZCA9IFJlYWN0LnVzZUNhbGxiYWNrKCh7IHgsIHkgfSkgPT4ge1xuICAgIHNldFBvaW50UG9zaXRpb24oeyB4LCB5IH0pXG4gICAgc2V0Q2hlY2tCb3VuZHMoZmFsc2UpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IGNlbnRlckZvY2FsUG9pbnQgPSAoKSA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyUmVjdCA9IGZvY2FsV3JhcFJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgY29uc3QgYm91bmRzUmVjdCA9IHNob3dDcm9wXG4gICAgICA/IGNyb3BSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgOiBpbWFnZVJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgY29uc3QgeENlbnRlciA9XG4gICAgICAoKGJvdW5kc1JlY3QubGVmdCAtIGNvbnRhaW5lclJlY3QubGVmdCArIGJvdW5kc1JlY3Qud2lkdGggLyAyKSAvIGNvbnRhaW5lclJlY3Qud2lkdGgpICogMTAwXG4gICAgY29uc3QgeUNlbnRlciA9XG4gICAgICAoKGJvdW5kc1JlY3QudG9wIC0gY29udGFpbmVyUmVjdC50b3AgKyBib3VuZHNSZWN0LmhlaWdodCAvIDIpIC8gY29udGFpbmVyUmVjdC5oZWlnaHQpICogMTAwXG4gICAgc2V0UG9pbnRQb3NpdGlvbih7IHg6IHhDZW50ZXIsIHk6IHlDZW50ZXIgfSlcbiAgfVxuXG4gIGNvbnN0IGZpbGVTcmNUb1VzZSA9IGltYWdlQ2FjaGVUYWcgPyBgJHtmaWxlU3JjfT8ke2ltYWdlQ2FjaGVUYWd9YCA6IGZpbGVTcmNcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtiYXNlQ2xhc3N9PlxuICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2hlYWRlcmB9PlxuICAgICAgICA8aDIgdGl0bGU9e2Ake3QoJ2dlbmVyYWw6ZWRpdGluZycpfSAke2ZpbGVOYW1lfWB9PlxuICAgICAgICAgIHt0KCdnZW5lcmFsOmVkaXRpbmcnKX0ge2ZpbGVOYW1lfVxuICAgICAgICA8L2gyPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fYWN0aW9uc2B9PlxuICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgIGFyaWEtbGFiZWw9e3QoJ2dlbmVyYWw6Y2FuY2VsJyl9XG4gICAgICAgICAgICBidXR0b25TdHlsZT1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2NhbmNlbGB9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBjbG9zZU1vZGFsKGVkaXREcmF3ZXJTbHVnKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7dCgnZ2VuZXJhbDpjYW5jZWwnKX1cbiAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICBhcmlhLWxhYmVsPXt0KCdnZW5lcmFsOmFwcGx5Q2hhbmdlcycpfVxuICAgICAgICAgICAgYnV0dG9uU3R5bGU9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fc2F2ZWB9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzYXZlRWRpdHMoKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7dCgnZ2VuZXJhbDphcHBseUNoYW5nZXMnKX1cbiAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X190b29sV3JhcGB9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fY3JvcGB9PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZm9jYWwtd3JhcHBlcmB9XG4gICAgICAgICAgICByZWY9e2ZvY2FsV3JhcFJlZn1cbiAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgIGFzcGVjdFJhdGlvOiBgJHtvcmlnaW5hbFdpZHRoIC8gb3JpZ2luYWxIZWlnaHR9YCxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3Nob3dDcm9wID8gKFxuICAgICAgICAgICAgICA8UmVhY3RDcm9wXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19yZWFjdENyb3BgfVxuICAgICAgICAgICAgICAgIGNyb3A9e2Nyb3B9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhfLCBjKSA9PiBzZXRDcm9wKGMpfVxuICAgICAgICAgICAgICAgIG9uQ29tcGxldGU9eygpID0+IHNldENoZWNrQm91bmRzKHRydWUpfVxuICAgICAgICAgICAgICAgIHJlbmRlclNlbGVjdGlvbkFkZG9uPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2Nyb3Atd2luZG93YH0gcmVmPXtjcm9wUmVmfSAvPlxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICBhbHQ9e3QoJ3VwbG9hZDpzZXRDcm9wQXJlYScpfVxuICAgICAgICAgICAgICAgICAgb25Mb2FkPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzZXRPcmlnaW5hbEhlaWdodChlLmN1cnJlbnRUYXJnZXQubmF0dXJhbEhlaWdodClcbiAgICAgICAgICAgICAgICAgICAgc2V0T3JpZ2luYWxXaWR0aChlLmN1cnJlbnRUYXJnZXQubmF0dXJhbFdpZHRoKVxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIHJlZj17aW1hZ2VSZWZ9XG4gICAgICAgICAgICAgICAgICBzcmM9e2ZpbGVTcmNUb1VzZX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1JlYWN0Q3JvcD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICBhbHQ9e3QoJ3VwbG9hZDpzZXRGb2NhbFBvaW50Jyl9XG4gICAgICAgICAgICAgICAgb25Mb2FkPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgc2V0T3JpZ2luYWxIZWlnaHQoZS5jdXJyZW50VGFyZ2V0Lm5hdHVyYWxIZWlnaHQpXG4gICAgICAgICAgICAgICAgICBzZXRPcmlnaW5hbFdpZHRoKGUuY3VycmVudFRhcmdldC5uYXR1cmFsV2lkdGgpXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICByZWY9e2ltYWdlUmVmfVxuICAgICAgICAgICAgICAgIHNyYz17ZmlsZVNyY1RvVXNlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHtzaG93Rm9jYWxQb2ludCAmJiAoXG4gICAgICAgICAgICAgIDxEcmFnZ2FibGVFbGVtZW50XG4gICAgICAgICAgICAgICAgYm91bmRzUmVmPXtzaG93Q3JvcCA/IGNyb3BSZWYgOiBpbWFnZVJlZn1cbiAgICAgICAgICAgICAgICBjaGVja0JvdW5kcz17c2hvd0Nyb3AgPyBjaGVja0JvdW5kcyA6IGZhbHNlfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZm9jYWxQb2ludGB9XG4gICAgICAgICAgICAgICAgY29udGFpbmVyUmVmPXtmb2NhbFdyYXBSZWZ9XG4gICAgICAgICAgICAgICAgaW5pdGlhbFBvc2l0aW9uPXtwb2ludFBvc2l0aW9ufVxuICAgICAgICAgICAgICAgIG9uRHJhZ0VuZD17b25EcmFnRW5kfVxuICAgICAgICAgICAgICAgIHNldENoZWNrQm91bmRzPXtzaG93Q3JvcCA/IHNldENoZWNrQm91bmRzIDogZmFsc2V9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UGx1cyAvPlxuICAgICAgICAgICAgICA8L0RyYWdnYWJsZUVsZW1lbnQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgeyhzaG93Q3JvcCB8fCBzaG93Rm9jYWxQb2ludCkgJiYgKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19zaWRlYmFyYH0+XG4gICAgICAgICAgICB7c2hvd0Nyb3AgJiYgKFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZ3JvdXBXcmFwYH0+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X190aXRsZVdyYXBgfT5cbiAgICAgICAgICAgICAgICAgICAgPGgzPnt0KCd1cGxvYWQ6Y3JvcCcpfTwvaDM+XG4gICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBidXR0b25TdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fcmVzZXRgfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRDcm9wKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXQ6ICclJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgeDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgeTogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge3QoJ2dlbmVyYWw6cmVzZXQnKX1cbiAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2Rlc2NyaXB0aW9uYH0+XG4gICAgICAgICAgICAgICAgICB7dCgndXBsb2FkOmNyb3BUb29sRGVzY3JpcHRpb24nKX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2lucHV0c1dyYXBgfT5cbiAgICAgICAgICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtgJHt0KCd1cGxvYWQ6d2lkdGgnKX0gKHB4KWB9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsodmFsdWUpID0+IGZpbmVUdW5lQ3JvcCh7IGRpbWVuc2lvbjogJ3dpZHRoJywgdmFsdWUgfSl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXsoKGNyb3Aud2lkdGggLyAxMDApICogb3JpZ2luYWxXaWR0aCkudG9GaXhlZCgwKX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgbmFtZT17YCR7dCgndXBsb2FkOmhlaWdodCcpfSAocHgpYH1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyh2YWx1ZSkgPT4gZmluZVR1bmVDcm9wKHsgZGltZW5zaW9uOiAnaGVpZ2h0JywgdmFsdWUgfSl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXsoKGNyb3AuaGVpZ2h0IC8gMTAwKSAqIG9yaWdpbmFsSGVpZ2h0KS50b0ZpeGVkKDApfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7c2hvd0ZvY2FsUG9pbnQgJiYgKFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZ3JvdXBXcmFwYH0+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X190aXRsZVdyYXBgfT5cbiAgICAgICAgICAgICAgICAgICAgPGgzPnt0KCd1cGxvYWQ6Zm9jYWxQb2ludCcpfTwvaDM+XG4gICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBidXR0b25TdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fcmVzZXRgfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2NlbnRlckZvY2FsUG9pbnR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7dCgnZ2VuZXJhbDpyZXNldCcpfVxuICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZGVzY3JpcHRpb25gfT5cbiAgICAgICAgICAgICAgICAgIHt0KCd1cGxvYWQ6Zm9jYWxQb2ludERlc2NyaXB0aW9uJyl9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19pbnB1dHNXcmFwYH0+XG4gICAgICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cIlggJVwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsodmFsdWUpID0+IGZpbmVUdW5lRm9jYWxQb2ludCh7IGNvb3JkaW5hdGU6ICd4JywgdmFsdWUgfSl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXtwb2ludFBvc2l0aW9uLngudG9GaXhlZCgwKX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cIlkgJVwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsodmFsdWUpID0+IGZpbmVUdW5lRm9jYWxQb2ludCh7IGNvb3JkaW5hdGU6ICd5JywgdmFsdWUgfSl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXtwb2ludFBvc2l0aW9uLnkudG9GaXhlZCgwKX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApXG59XG5cbmNvbnN0IERyYWdnYWJsZUVsZW1lbnQgPSAoe1xuICBib3VuZHNSZWYsXG4gIGNoZWNrQm91bmRzLFxuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxuICBjb250YWluZXJSZWYsXG4gIGluaXRpYWxQb3NpdGlvbiA9IHsgeDogNTAsIHk6IDUwIH0sXG4gIG9uRHJhZ0VuZCxcbiAgc2V0Q2hlY2tCb3VuZHMsXG59KSA9PiB7XG4gIGNvbnN0IFtwb3NpdGlvbiwgc2V0UG9zaXRpb25dID0gdXNlU3RhdGUoeyB4OiBpbml0aWFsUG9zaXRpb24ueCwgeTogaW5pdGlhbFBvc2l0aW9uLnkgfSlcbiAgY29uc3QgW2lzRHJhZ2dpbmcsIHNldElzRHJhZ2dpbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IGRyYWdSZWYgPSB1c2VSZWY8SFRNTEJ1dHRvbkVsZW1lbnQgfCB1bmRlZmluZWQ+KClcblxuICBjb25zdCBnZXRDb29yZGluYXRlcyA9IFJlYWN0LnVzZUNhbGxiYWNrKFxuICAgIChtb3VzZVhBcmc/OiBudW1iZXIsIG1vdXNlWUFyZz86IG51bWJlciwgcmVjZW50ZXI/OiBib29sZWFuKSA9PiB7XG4gICAgICBjb25zdCBjb250YWluZXJSZWN0ID0gY29udGFpbmVyUmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgIGNvbnN0IGJvdW5kc1JlY3QgPSBib3VuZHNSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgY29uc3QgbW91c2VYID0gbW91c2VYQXJnID8/IGJvdW5kc1JlY3QubGVmdFxuICAgICAgY29uc3QgbW91c2VZID0gbW91c2VZQXJnID8/IGJvdW5kc1JlY3QudG9wXG5cbiAgICAgIGNvbnN0IHhPdXRPZkJvdW5kcyA9IG1vdXNlWCA8IGJvdW5kc1JlY3QubGVmdCB8fCBtb3VzZVggPiBib3VuZHNSZWN0LnJpZ2h0XG4gICAgICBjb25zdCB5T3V0T2ZCb3VuZHMgPSBtb3VzZVkgPCBib3VuZHNSZWN0LnRvcCB8fCBtb3VzZVkgPiBib3VuZHNSZWN0LmJvdHRvbVxuXG4gICAgICBsZXQgeCA9ICgobW91c2VYIC0gY29udGFpbmVyUmVjdC5sZWZ0KSAvIGNvbnRhaW5lclJlY3Qud2lkdGgpICogMTAwXG4gICAgICBsZXQgeSA9ICgobW91c2VZIC0gY29udGFpbmVyUmVjdC50b3ApIC8gY29udGFpbmVyUmVjdC5oZWlnaHQpICogMTAwXG4gICAgICBjb25zdCB4Q2VudGVyID1cbiAgICAgICAgKChib3VuZHNSZWN0LmxlZnQgLSBjb250YWluZXJSZWN0LmxlZnQgKyBib3VuZHNSZWN0LndpZHRoIC8gMikgLyBjb250YWluZXJSZWN0LndpZHRoKSAqIDEwMFxuICAgICAgY29uc3QgeUNlbnRlciA9XG4gICAgICAgICgoYm91bmRzUmVjdC50b3AgLSBjb250YWluZXJSZWN0LnRvcCArIGJvdW5kc1JlY3QuaGVpZ2h0IC8gMikgLyBjb250YWluZXJSZWN0LmhlaWdodCkgKiAxMDBcbiAgICAgIGlmICh4T3V0T2ZCb3VuZHMgfHwgeU91dE9mQm91bmRzKSB7XG4gICAgICAgIHNldElzRHJhZ2dpbmcoZmFsc2UpXG4gICAgICAgIGlmIChtb3VzZVggPCBib3VuZHNSZWN0LmxlZnQpIHtcbiAgICAgICAgICB4ID0gKChib3VuZHNSZWN0LmxlZnQgLSBjb250YWluZXJSZWN0LmxlZnQpIC8gY29udGFpbmVyUmVjdC53aWR0aCkgKiAxMDBcbiAgICAgICAgfSBlbHNlIGlmIChtb3VzZVggPiBib3VuZHNSZWN0LnJpZ2h0KSB7XG4gICAgICAgICAgeCA9XG4gICAgICAgICAgICAoKGNvbnRhaW5lclJlY3Qud2lkdGggLSAoY29udGFpbmVyUmVjdC5yaWdodCAtIGJvdW5kc1JlY3QucmlnaHQpKSAvXG4gICAgICAgICAgICAgIGNvbnRhaW5lclJlY3Qud2lkdGgpICpcbiAgICAgICAgICAgIDEwMFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG1vdXNlWSA8IGJvdW5kc1JlY3QudG9wKSB7XG4gICAgICAgICAgeSA9ICgoYm91bmRzUmVjdC50b3AgLSBjb250YWluZXJSZWN0LnRvcCkgLyBjb250YWluZXJSZWN0LmhlaWdodCkgKiAxMDBcbiAgICAgICAgfSBlbHNlIGlmIChtb3VzZVkgPiBib3VuZHNSZWN0LmJvdHRvbSkge1xuICAgICAgICAgIHkgPVxuICAgICAgICAgICAgKChjb250YWluZXJSZWN0LmhlaWdodCAtIChjb250YWluZXJSZWN0LmJvdHRvbSAtIGJvdW5kc1JlY3QuYm90dG9tKSkgL1xuICAgICAgICAgICAgICBjb250YWluZXJSZWN0LmhlaWdodCkgKlxuICAgICAgICAgICAgMTAwXG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVjZW50ZXIpIHtcbiAgICAgICAgICB4ID0geE91dE9mQm91bmRzID8geENlbnRlciA6IHhcbiAgICAgICAgICB5ID0geU91dE9mQm91bmRzID8geUNlbnRlciA6IHlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4geyB4LCB5IH1cbiAgICB9LFxuICAgIFtib3VuZHNSZWYsIGNvbnRhaW5lclJlZl0sXG4gIClcblxuICBjb25zdCBoYW5kbGVNb3VzZURvd24gPSAoZXZlbnQpID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgc2V0SXNEcmFnZ2luZyh0cnVlKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlTW91c2VNb3ZlID0gKGV2ZW50KSA9PiB7XG4gICAgaWYgKCFpc0RyYWdnaW5nKSByZXR1cm4gbnVsbFxuICAgIGNvbnN0IHsgeCwgeSB9ID0gZ2V0Q29vcmRpbmF0ZXMoZXZlbnQuY2xpZW50WCwgZXZlbnQuY2xpZW50WSlcblxuICAgIHNldFBvc2l0aW9uKHsgeCwgeSB9KVxuICB9XG5cbiAgY29uc3Qgb25Ecm9wID0gKCkgPT4ge1xuICAgIHNldElzRHJhZ2dpbmcoZmFsc2UpXG4gICAgb25EcmFnRW5kKHBvc2l0aW9uKVxuICB9XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNEcmFnZ2luZyB8fCAhZHJhZ1JlZi5jdXJyZW50KSByZXR1cm5cbiAgICBpZiAoY2hlY2tCb3VuZHMpIHtcbiAgICAgIGNvbnN0IHsgaGVpZ2h0LCBsZWZ0LCB0b3AsIHdpZHRoIH0gPSBkcmFnUmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgIGNvbnN0IHsgeCwgeSB9ID0gZ2V0Q29vcmRpbmF0ZXMobGVmdCArIHdpZHRoIC8gMiwgdG9wICsgaGVpZ2h0IC8gMiwgdHJ1ZSlcbiAgICAgIG9uRHJhZ0VuZCh7IHgsIHkgfSlcbiAgICAgIHNldFBvc2l0aW9uKHsgeCwgeSB9KVxuICAgICAgc2V0Q2hlY2tCb3VuZHMoZmFsc2UpXG4gICAgICByZXR1cm5cbiAgICB9XG4gIH0sIFtnZXRDb29yZGluYXRlcywgaXNEcmFnZ2luZywgY2hlY2tCb3VuZHMsIHNldENoZWNrQm91bmRzLCBwb3NpdGlvbi54LCBwb3NpdGlvbi55LCBvbkRyYWdFbmRdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0UG9zaXRpb24oeyB4OiBpbml0aWFsUG9zaXRpb24ueCwgeTogaW5pdGlhbFBvc2l0aW9uLnkgfSlcbiAgfSwgW2luaXRpYWxQb3NpdGlvbi54LCBpbml0aWFsUG9zaXRpb24ueV0pXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9e1tcbiAgICAgICAgYCR7YmFzZUNsYXNzfV9fZHJhZ2dhYmxlLWNvbnRhaW5lcmAsXG4gICAgICAgIGlzRHJhZ2dpbmcgJiYgYCR7YmFzZUNsYXNzfV9fZHJhZ2dhYmxlLWNvbnRhaW5lci0tZHJhZ2dpbmdgLFxuICAgICAgXVxuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgIC5qb2luKCcgJyl9XG4gICAgICBvbk1vdXNlTW92ZT17aGFuZGxlTW91c2VNb3ZlfVxuICAgID5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3NOYW1lPXtbYCR7YmFzZUNsYXNzfV9fZHJhZ2dhYmxlYCwgY2xhc3NOYW1lXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpfVxuICAgICAgICBvbk1vdXNlRG93bj17aGFuZGxlTW91c2VEb3dufVxuICAgICAgICBvbk1vdXNlVXA9e29uRHJvcH1cbiAgICAgICAgcmVmPXtkcmFnUmVmfVxuICAgICAgICBzdHlsZT17eyBsZWZ0OiBgJHtwb3NpdGlvbi54fSVgLCB0b3A6IGAke3Bvc2l0aW9uLnl9JWAgfX1cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGRpdiAvPlxuICAgIDwvZGl2PlxuICApXG59XG4iXSwibmFtZXMiOlsidXNlTW9kYWwiLCJSZWFjdCIsInVzZVJlZiIsInVzZVN0YXRlIiwiUmVhY3RDcm9wIiwiZWRpdERyYXdlclNsdWciLCJQbHVzIiwidXNlRm9ybVF1ZXJ5UGFyYW1zIiwidXNlVHJhbnNsYXRpb24iLCJCdXR0b24iLCJiYXNlQ2xhc3MiLCJJbnB1dCIsIm5hbWUiLCJvbkNoYW5nZSIsInZhbHVlIiwiZGl2IiwiY2xhc3NOYW1lIiwiaW5wdXQiLCJlIiwidGFyZ2V0IiwidHlwZSIsIkVkaXRVcGxvYWQiLCJmaWxlTmFtZSIsImZpbGVTcmMiLCJpbWFnZUNhY2hlVGFnIiwic2hvd0Nyb3AiLCJzaG93Rm9jYWxQb2ludCIsImNsb3NlTW9kYWwiLCJ0IiwiZm9ybVF1ZXJ5UGFyYW1zIiwic2V0Rm9ybVF1ZXJ5UGFyYW1zIiwidXBsb2FkRWRpdHMiLCJjcm9wIiwic2V0Q3JvcCIsImhlaWdodCIsInVuaXQiLCJ3aWR0aCIsIngiLCJ5IiwicG9pbnRQb3NpdGlvbiIsInNldFBvaW50UG9zaXRpb24iLCJmb2NhbFBvaW50IiwiY2hlY2tCb3VuZHMiLCJzZXRDaGVja0JvdW5kcyIsIm9yaWdpbmFsSGVpZ2h0Iiwic2V0T3JpZ2luYWxIZWlnaHQiLCJvcmlnaW5hbFdpZHRoIiwic2V0T3JpZ2luYWxXaWR0aCIsImZvY2FsV3JhcFJlZiIsImltYWdlUmVmIiwiY3JvcFJlZiIsImZpbmVUdW5lQ3JvcCIsImRpbWVuc2lvbiIsImludFZhbHVlIiwicGFyc2VJbnQiLCJwZXJjZW50YWdlIiwiZmluZVR1bmVGb2NhbFBvaW50IiwiY29vcmRpbmF0ZSIsInByZXZQb3NpdGlvbiIsInNhdmVFZGl0cyIsInVuZGVmaW5lZCIsIm9uRHJhZ0VuZCIsInVzZUNhbGxiYWNrIiwiY2VudGVyRm9jYWxQb2ludCIsImNvbnRhaW5lclJlY3QiLCJjdXJyZW50IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwiYm91bmRzUmVjdCIsInhDZW50ZXIiLCJsZWZ0IiwieUNlbnRlciIsInRvcCIsImZpbGVTcmNUb1VzZSIsImgyIiwidGl0bGUiLCJhcmlhLWxhYmVsIiwiYnV0dG9uU3R5bGUiLCJvbkNsaWNrIiwicmVmIiwic3R5bGUiLCJhc3BlY3RSYXRpbyIsIl8iLCJjIiwib25Db21wbGV0ZSIsInJlbmRlclNlbGVjdGlvbkFkZG9uIiwiaW1nIiwiYWx0Iiwib25Mb2FkIiwiY3VycmVudFRhcmdldCIsIm5hdHVyYWxIZWlnaHQiLCJuYXR1cmFsV2lkdGgiLCJzcmMiLCJEcmFnZ2FibGVFbGVtZW50IiwiYm91bmRzUmVmIiwiY29udGFpbmVyUmVmIiwiaW5pdGlhbFBvc2l0aW9uIiwiaDMiLCJzcGFuIiwidG9GaXhlZCIsImNoaWxkcmVuIiwicG9zaXRpb24iLCJzZXRQb3NpdGlvbiIsImlzRHJhZ2dpbmciLCJzZXRJc0RyYWdnaW5nIiwiZHJhZ1JlZiIsImdldENvb3JkaW5hdGVzIiwibW91c2VYQXJnIiwibW91c2VZQXJnIiwicmVjZW50ZXIiLCJtb3VzZVgiLCJtb3VzZVkiLCJ4T3V0T2ZCb3VuZHMiLCJyaWdodCIsInlPdXRPZkJvdW5kcyIsImJvdHRvbSIsImhhbmRsZU1vdXNlRG93biIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJoYW5kbGVNb3VzZU1vdmUiLCJjbGllbnRYIiwiY2xpZW50WSIsIm9uRHJvcCIsInVzZUVmZmVjdCIsImZpbHRlciIsIkJvb2xlYW4iLCJqb2luIiwib25Nb3VzZU1vdmUiLCJidXR0b24iLCJvbk1vdXNlRG93biIsIm9uTW91c2VVcCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFHQSxTQUFTQSxRQUFRLFFBQVEscUJBQW9CO0FBQzdDLE9BQU9DLFNBQVNDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLFFBQU87QUFDL0MsT0FBT0MsZUFBMEMsbUJBQWtCO0FBQ25FLE9BQU8sc0NBQXFDO0FBRTVDLFNBQVNDLGNBQWMsUUFBUSx3QkFBdUI7QUFDdEQsU0FBU0MsSUFBSSxRQUFRLG1CQUFrQjtBQUN2QyxTQUFTQyxrQkFBa0IsUUFBUSxrQ0FBaUM7QUFDcEUsU0FBU0MsY0FBYyxRQUFRLDhCQUE2QjtBQUM1RCxTQUFTQyxNQUFNLFFBQVEsWUFBVztBQUNsQyxPQUFPLGVBQWM7QUFFckIsTUFBTUMsWUFBWTtBQUVsQixNQUFNQyxRQUFzRixDQUFDLEVBQzNGQyxJQUFJLEVBQ0pDLFFBQVEsRUFDUkMsS0FBSyxFQUNOLGlCQUNDLG9CQUFDQztRQUFJQyxXQUFXLENBQUMsRUFBRU4sVUFBVSxPQUFPLENBQUM7T0FDbENFLG9CQUNELG9CQUFDSztRQUFNTCxNQUFNQTtRQUFNQyxVQUFVLENBQUNLLElBQU1MLFNBQVNLLEVBQUVDLE1BQU0sQ0FBQ0wsS0FBSztRQUFHTSxNQUFLO1FBQVNOLE9BQU9BOztBQUl2RixPQUFPLE1BQU1PLGFBT1IsQ0FBQyxFQUFFQyxRQUFRLEVBQUVDLE9BQU8sRUFBRUMsYUFBYSxFQUFFQyxRQUFRLEVBQUVDLGNBQWMsRUFBRTtJQUNsRSxNQUFNLEVBQUVDLFVBQVUsRUFBRSxHQUFHM0I7SUFDdkIsTUFBTSxFQUFFNEIsQ0FBQyxFQUFFLEdBQUdwQjtJQUNkLE1BQU0sRUFBRXFCLGVBQWUsRUFBRUMsa0JBQWtCLEVBQUUsR0FBR3ZCO0lBQ2hELE1BQU0sRUFBRXdCLFdBQVcsRUFBRSxHQUFHRixtQkFB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
@@ -1,22 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "ErrorPill", {
6
- enumerable: true,
7
- get: function() {
8
- return ErrorPill;
9
- }
10
- });
11
- const _react = /*#__PURE__*/ _interop_require_default(require("react"));
12
- require("./index.scss");
13
- function _interop_require_default(obj) {
14
- return obj && obj.__esModule ? obj : {
15
- default: obj
16
- };
17
- }
1
+ import React from 'react';
2
+ import './index.scss';
18
3
  const baseClass = 'error-pill';
19
- const ErrorPill = (props)=>{
4
+ export const ErrorPill = (props)=>{
20
5
  const { className, count, i18n, withMessage } = props;
21
6
  const lessThan3Chars = !withMessage && count < 99;
22
7
  const classes = [
@@ -25,13 +10,13 @@ const ErrorPill = (props)=>{
25
10
  className && className
26
11
  ].filter(Boolean).join(' ');
27
12
  if (count === 0) return null;
28
- return /*#__PURE__*/ _react.default.createElement("div", {
13
+ return /*#__PURE__*/ React.createElement("div", {
29
14
  className: classes
30
- }, /*#__PURE__*/ _react.default.createElement("div", {
15
+ }, /*#__PURE__*/ React.createElement("div", {
31
16
  className: `${baseClass}__content`
32
- }, /*#__PURE__*/ _react.default.createElement("span", {
17
+ }, /*#__PURE__*/ React.createElement("span", {
33
18
  className: `${baseClass}__count`
34
19
  }, count), withMessage && ` ${count > 1 ? i18n.t('general:errors') : i18n.t('general:error')}`));
35
20
  };
36
21
 
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9FcnJvclBpbGwvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHR5cGUgeyBQcm9wcyB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuXG5jb25zdCBiYXNlQ2xhc3MgPSAnZXJyb3ItcGlsbCdcblxuZXhwb3J0IGNvbnN0IEVycm9yUGlsbDogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgY2xhc3NOYW1lLCBjb3VudCwgaTE4biwgd2l0aE1lc3NhZ2UgfSA9IHByb3BzXG4gIGNvbnN0IGxlc3NUaGFuM0NoYXJzID0gIXdpdGhNZXNzYWdlICYmIGNvdW50IDwgOTlcblxuICBjb25zdCBjbGFzc2VzID0gW2Jhc2VDbGFzcywgbGVzc1RoYW4zQ2hhcnMgJiYgYCR7YmFzZUNsYXNzfS0tZml4ZWQtd2lkdGhgLCBjbGFzc05hbWUgJiYgY2xhc3NOYW1lXVxuICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAuam9pbignICcpXG5cbiAgaWYgKGNvdW50ID09PSAwKSByZXR1cm4gbnVsbFxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzZXN9PlxuICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2NvbnRlbnRgfT5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19jb3VudGB9Pntjb3VudH08L3NwYW4+XG4gICAgICAgIHt3aXRoTWVzc2FnZSAmJiBgICR7Y291bnQgPiAxID8gaTE4bi50KCdnZW5lcmFsOmVycm9ycycpIDogaTE4bi50KCdnZW5lcmFsOmVycm9yJyl9YH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApXG59XG4iXSwibmFtZXMiOlsiRXJyb3JQaWxsIiwiYmFzZUNsYXNzIiwicHJvcHMiLCJjbGFzc05hbWUiLCJjb3VudCIsImkxOG4iLCJ3aXRoTWVzc2FnZSIsImxlc3NUaGFuM0NoYXJzIiwiY2xhc3NlcyIsImZpbHRlciIsIkJvb2xlYW4iLCJqb2luIiwiZGl2Iiwic3BhbiIsInQiXSwibWFwcGluZ3MiOiI7Ozs7K0JBUWFBOzs7ZUFBQUE7Ozs4REFSSztRQUlYOzs7Ozs7QUFFUCxNQUFNQyxZQUFZO0FBRVgsTUFBTUQsWUFBNkIsQ0FBQ0U7SUFDekMsTUFBTSxFQUFFQyxTQUFTLEVBQUVDLEtBQUssRUFBRUMsSUFBSSxFQUFFQyxXQUFXLEVBQUUsR0FBR0o7SUFDaEQsTUFBTUssaUJBQWlCLENBQUNELGVBQWVGLFFBQVE7SUFFL0MsTUFBTUksVUFBVTtRQUFDUDtRQUFXTSxrQkFBa0IsQ0FBQyxFQUFFTixVQUFVLGFBQWEsQ0FBQztRQUFFRSxhQUFhQTtLQUFVLENBQy9GTSxNQUFNLENBQUNDLFNBQ1BDLElBQUksQ0FBQztJQUVSLElBQUlQLFVBQVUsR0FBRyxPQUFPO0lBRXhCLHFCQUNFLDZCQUFDUTtRQUFJVCxXQUFXSztxQkFDZCw2QkFBQ0k7UUFBSVQsV0FBVyxDQUFDLEVBQUVGLFVBQVUsU0FBUyxDQUFDO3FCQUNyQyw2QkFBQ1k7UUFBS1YsV0FBVyxDQUFDLEVBQUVGLFVBQVUsT0FBTyxDQUFDO09BQUdHLFFBQ3hDRSxlQUFlLENBQUMsQ0FBQyxFQUFFRixRQUFRLElBQUlDLEtBQUtTLENBQUMsQ0FBQyxvQkFBb0JULEtBQUtTLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztBQUk1RiJ9
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9FcnJvclBpbGwvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHR5cGUgeyBQcm9wcyB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuXG5jb25zdCBiYXNlQ2xhc3MgPSAnZXJyb3ItcGlsbCdcblxuZXhwb3J0IGNvbnN0IEVycm9yUGlsbDogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgY2xhc3NOYW1lLCBjb3VudCwgaTE4biwgd2l0aE1lc3NhZ2UgfSA9IHByb3BzXG4gIGNvbnN0IGxlc3NUaGFuM0NoYXJzID0gIXdpdGhNZXNzYWdlICYmIGNvdW50IDwgOTlcblxuICBjb25zdCBjbGFzc2VzID0gW2Jhc2VDbGFzcywgbGVzc1RoYW4zQ2hhcnMgJiYgYCR7YmFzZUNsYXNzfS0tZml4ZWQtd2lkdGhgLCBjbGFzc05hbWUgJiYgY2xhc3NOYW1lXVxuICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAuam9pbignICcpXG5cbiAgaWYgKGNvdW50ID09PSAwKSByZXR1cm4gbnVsbFxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzZXN9PlxuICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2NvbnRlbnRgfT5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19jb3VudGB9Pntjb3VudH08L3NwYW4+XG4gICAgICAgIHt3aXRoTWVzc2FnZSAmJiBgICR7Y291bnQgPiAxID8gaTE4bi50KCdnZW5lcmFsOmVycm9ycycpIDogaTE4bi50KCdnZW5lcmFsOmVycm9yJyl9YH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApXG59XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJiYXNlQ2xhc3MiLCJFcnJvclBpbGwiLCJwcm9wcyIsImNsYXNzTmFtZSIsImNvdW50IiwiaTE4biIsIndpdGhNZXNzYWdlIiwibGVzc1RoYW4zQ2hhcnMiLCJjbGFzc2VzIiwiZmlsdGVyIiwiQm9vbGVhbiIsImpvaW4iLCJkaXYiLCJzcGFuIiwidCJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsV0FBVyxRQUFPO0FBSXpCLE9BQU8sZUFBYztBQUVyQixNQUFNQyxZQUFZO0FBRWxCLE9BQU8sTUFBTUMsWUFBNkIsQ0FBQ0M7SUFDekMsTUFBTSxFQUFFQyxTQUFTLEVBQUVDLEtBQUssRUFBRUMsSUFBSSxFQUFFQyxXQUFXLEVBQUUsR0FBR0o7SUFDaEQsTUFBTUssaUJBQWlCLENBQUNELGVBQWVGLFFBQVE7SUFFL0MsTUFBTUksVUFBVTtRQUFDUjtRQUFXTyxrQkFBa0IsQ0FBQyxFQUFFUCxVQUFVLGFBQWEsQ0FBQztRQUFFRyxhQUFhQTtLQUFVLENBQy9GTSxNQUFNLENBQUNDLFNBQ1BDLElBQUksQ0FBQztJQUVSLElBQUlQLFVBQVUsR0FBRyxPQUFPO0lBRXhCLHFCQUNFLG9CQUFDUTtRQUFJVCxXQUFXSztxQkFDZCxvQkFBQ0k7UUFBSVQsV0FBVyxDQUFDLEVBQUVILFVBQVUsU0FBUyxDQUFDO3FCQUNyQyxvQkFBQ2E7UUFBS1YsV0FBVyxDQUFDLEVBQUVILFVBQVUsT0FBTyxDQUFDO09BQUdJLFFBQ3hDRSxlQUFlLENBQUMsQ0FBQyxFQUFFRixRQUFRLElBQUlDLEtBQUtTLENBQUMsQ0FBQyxvQkFBb0JULEtBQUtTLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztBQUk1RixFQUFDIn0=
@@ -1,6 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
1
+ export { };
5
2
 
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9FcnJvclBpbGwvdHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJMThuIH0gZnJvbSAnQHBheWxvYWRjbXMvdHJhbnNsYXRpb25zJ1xuZXhwb3J0IHR5cGUgUHJvcHMgPSB7XG4gIGNsYXNzTmFtZT86IHN0cmluZ1xuICBjb3VudDogbnVtYmVyXG4gIGkxOG46IEkxOG5cbiAgd2l0aE1lc3NhZ2U/OiBib29sZWFuXG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsV0FLQyJ9