1mpacto-react-ui 0.0.7 → 0.0.8

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 (1312) hide show
  1. package/dist/index.cjs.js +2 -0
  2. package/dist/index.cjs.js.map +1 -0
  3. package/dist/index.cjs10.js +11 -0
  4. package/dist/index.cjs10.js.map +1 -0
  5. package/dist/index.cjs100.js +2 -0
  6. package/dist/index.cjs100.js.map +1 -0
  7. package/dist/index.cjs101.js +2 -0
  8. package/dist/index.cjs101.js.map +1 -0
  9. package/dist/index.cjs102.js +2 -0
  10. package/dist/index.cjs102.js.map +1 -0
  11. package/dist/index.cjs103.js +2 -0
  12. package/dist/index.cjs103.js.map +1 -0
  13. package/dist/index.cjs104.js +2 -0
  14. package/dist/index.cjs104.js.map +1 -0
  15. package/dist/index.cjs105.js +2 -0
  16. package/dist/index.cjs105.js.map +1 -0
  17. package/dist/index.cjs106.js +2 -0
  18. package/dist/index.cjs106.js.map +1 -0
  19. package/dist/index.cjs107.js +2 -0
  20. package/dist/index.cjs107.js.map +1 -0
  21. package/dist/index.cjs108.js +2 -0
  22. package/dist/index.cjs108.js.map +1 -0
  23. package/dist/index.cjs109.js +2 -0
  24. package/dist/index.cjs109.js.map +1 -0
  25. package/dist/index.cjs11.js +2 -0
  26. package/dist/index.cjs11.js.map +1 -0
  27. package/dist/index.cjs110.js +2 -0
  28. package/dist/index.cjs110.js.map +1 -0
  29. package/dist/index.cjs111.js +2 -0
  30. package/dist/index.cjs111.js.map +1 -0
  31. package/dist/index.cjs112.js +5 -0
  32. package/dist/index.cjs112.js.map +1 -0
  33. package/dist/index.cjs113.js +2 -0
  34. package/dist/index.cjs113.js.map +1 -0
  35. package/dist/index.cjs114.js +2 -0
  36. package/dist/index.cjs114.js.map +1 -0
  37. package/dist/index.cjs115.js +3 -0
  38. package/dist/index.cjs115.js.map +1 -0
  39. package/dist/index.cjs116.js +2 -0
  40. package/dist/index.cjs116.js.map +1 -0
  41. package/dist/index.cjs117.js +2 -0
  42. package/dist/index.cjs117.js.map +1 -0
  43. package/dist/index.cjs118.js +10 -0
  44. package/dist/index.cjs118.js.map +1 -0
  45. package/dist/index.cjs119.js +2 -0
  46. package/dist/index.cjs119.js.map +1 -0
  47. package/dist/index.cjs12.js +2 -0
  48. package/dist/index.cjs12.js.map +1 -0
  49. package/dist/index.cjs120.js +3 -0
  50. package/dist/index.cjs120.js.map +1 -0
  51. package/dist/index.cjs121.js +3 -0
  52. package/dist/index.cjs121.js.map +1 -0
  53. package/dist/index.cjs122.js +2 -0
  54. package/dist/index.cjs122.js.map +1 -0
  55. package/dist/index.cjs123.js +2 -0
  56. package/dist/index.cjs123.js.map +1 -0
  57. package/dist/index.cjs124.js +2 -0
  58. package/dist/index.cjs124.js.map +1 -0
  59. package/dist/index.cjs125.js +2 -0
  60. package/dist/index.cjs125.js.map +1 -0
  61. package/dist/index.cjs126.js +2 -0
  62. package/dist/index.cjs126.js.map +1 -0
  63. package/dist/index.cjs127.js +2 -0
  64. package/dist/index.cjs127.js.map +1 -0
  65. package/dist/index.cjs128.js +2 -0
  66. package/dist/index.cjs128.js.map +1 -0
  67. package/dist/index.cjs129.js +2 -0
  68. package/dist/index.cjs129.js.map +1 -0
  69. package/dist/index.cjs13.js +2 -0
  70. package/dist/index.cjs13.js.map +1 -0
  71. package/dist/index.cjs130.js +2 -0
  72. package/dist/index.cjs130.js.map +1 -0
  73. package/dist/index.cjs131.js +2 -0
  74. package/dist/index.cjs131.js.map +1 -0
  75. package/dist/index.cjs132.js +2 -0
  76. package/dist/index.cjs132.js.map +1 -0
  77. package/dist/index.cjs133.js +2 -0
  78. package/dist/index.cjs133.js.map +1 -0
  79. package/dist/index.cjs134.js +2 -0
  80. package/dist/index.cjs134.js.map +1 -0
  81. package/dist/index.cjs135.js +3 -0
  82. package/dist/index.cjs135.js.map +1 -0
  83. package/dist/index.cjs136.js +2 -0
  84. package/dist/index.cjs136.js.map +1 -0
  85. package/dist/index.cjs137.js +2 -0
  86. package/dist/index.cjs137.js.map +1 -0
  87. package/dist/index.cjs138.js +2 -0
  88. package/dist/index.cjs138.js.map +1 -0
  89. package/dist/index.cjs139.js +2 -0
  90. package/dist/index.cjs139.js.map +1 -0
  91. package/dist/index.cjs14.js +2 -0
  92. package/dist/index.cjs14.js.map +1 -0
  93. package/dist/index.cjs140.js +2 -0
  94. package/dist/index.cjs140.js.map +1 -0
  95. package/dist/index.cjs141.js +2 -0
  96. package/dist/index.cjs141.js.map +1 -0
  97. package/dist/index.cjs142.js +2 -0
  98. package/dist/index.cjs142.js.map +1 -0
  99. package/dist/index.cjs143.js +2 -0
  100. package/dist/index.cjs143.js.map +1 -0
  101. package/dist/index.cjs144.js +3 -0
  102. package/dist/index.cjs144.js.map +1 -0
  103. package/dist/index.cjs145.js +2 -0
  104. package/dist/index.cjs145.js.map +1 -0
  105. package/dist/index.cjs146.js +2 -0
  106. package/dist/index.cjs146.js.map +1 -0
  107. package/dist/index.cjs147.js +2 -0
  108. package/dist/index.cjs147.js.map +1 -0
  109. package/dist/index.cjs148.js +2 -0
  110. package/dist/index.cjs148.js.map +1 -0
  111. package/dist/index.cjs149.js +2 -0
  112. package/dist/index.cjs149.js.map +1 -0
  113. package/dist/index.cjs15.js +2 -0
  114. package/dist/index.cjs15.js.map +1 -0
  115. package/dist/index.cjs150.js +2 -0
  116. package/dist/index.cjs150.js.map +1 -0
  117. package/dist/index.cjs151.js +2 -0
  118. package/dist/index.cjs151.js.map +1 -0
  119. package/dist/index.cjs152.js +2 -0
  120. package/dist/index.cjs152.js.map +1 -0
  121. package/dist/index.cjs153.js +2 -0
  122. package/dist/index.cjs153.js.map +1 -0
  123. package/dist/index.cjs154.js +2 -0
  124. package/dist/index.cjs154.js.map +1 -0
  125. package/dist/index.cjs155.js +2 -0
  126. package/dist/index.cjs155.js.map +1 -0
  127. package/dist/index.cjs156.js +2 -0
  128. package/dist/index.cjs156.js.map +1 -0
  129. package/dist/index.cjs157.js +2 -0
  130. package/dist/index.cjs157.js.map +1 -0
  131. package/dist/index.cjs158.js +2 -0
  132. package/dist/index.cjs158.js.map +1 -0
  133. package/dist/index.cjs159.js +2 -0
  134. package/dist/index.cjs159.js.map +1 -0
  135. package/dist/index.cjs16.js +2 -0
  136. package/dist/index.cjs16.js.map +1 -0
  137. package/dist/index.cjs160.js +2 -0
  138. package/dist/index.cjs160.js.map +1 -0
  139. package/dist/index.cjs161.js +2 -0
  140. package/dist/index.cjs161.js.map +1 -0
  141. package/dist/index.cjs162.js +2 -0
  142. package/dist/index.cjs162.js.map +1 -0
  143. package/dist/index.cjs163.js +2 -0
  144. package/dist/index.cjs163.js.map +1 -0
  145. package/dist/index.cjs164.js +2 -0
  146. package/dist/index.cjs164.js.map +1 -0
  147. package/dist/index.cjs165.js +2 -0
  148. package/dist/index.cjs165.js.map +1 -0
  149. package/dist/index.cjs166.js +2 -0
  150. package/dist/index.cjs166.js.map +1 -0
  151. package/dist/index.cjs167.js +2 -0
  152. package/dist/index.cjs167.js.map +1 -0
  153. package/dist/index.cjs168.js +2 -0
  154. package/dist/index.cjs168.js.map +1 -0
  155. package/dist/index.cjs169.js +2 -0
  156. package/dist/index.cjs169.js.map +1 -0
  157. package/dist/index.cjs17.js +2 -0
  158. package/dist/index.cjs17.js.map +1 -0
  159. package/dist/index.cjs170.js +2 -0
  160. package/dist/index.cjs170.js.map +1 -0
  161. package/dist/index.cjs171.js +2 -0
  162. package/dist/index.cjs171.js.map +1 -0
  163. package/dist/index.cjs172.js +2 -0
  164. package/dist/index.cjs172.js.map +1 -0
  165. package/dist/index.cjs173.js +2 -0
  166. package/dist/index.cjs173.js.map +1 -0
  167. package/dist/index.cjs174.js +2 -0
  168. package/dist/index.cjs174.js.map +1 -0
  169. package/dist/index.cjs175.js +2 -0
  170. package/dist/index.cjs175.js.map +1 -0
  171. package/dist/index.cjs176.js +2 -0
  172. package/dist/index.cjs176.js.map +1 -0
  173. package/dist/index.cjs177.js +2 -0
  174. package/dist/index.cjs177.js.map +1 -0
  175. package/dist/index.cjs178.js +2 -0
  176. package/dist/index.cjs178.js.map +1 -0
  177. package/dist/index.cjs179.js +2 -0
  178. package/dist/index.cjs179.js.map +1 -0
  179. package/dist/index.cjs18.js +2 -0
  180. package/dist/index.cjs18.js.map +1 -0
  181. package/dist/index.cjs180.js +2 -0
  182. package/dist/index.cjs180.js.map +1 -0
  183. package/dist/index.cjs181.js +2 -0
  184. package/dist/index.cjs181.js.map +1 -0
  185. package/dist/index.cjs182.js +2 -0
  186. package/dist/index.cjs182.js.map +1 -0
  187. package/dist/index.cjs183.js +2 -0
  188. package/dist/index.cjs183.js.map +1 -0
  189. package/dist/index.cjs184.js +2 -0
  190. package/dist/index.cjs184.js.map +1 -0
  191. package/dist/index.cjs185.js +2 -0
  192. package/dist/index.cjs185.js.map +1 -0
  193. package/dist/index.cjs186.js +2 -0
  194. package/dist/index.cjs186.js.map +1 -0
  195. package/dist/index.cjs187.js +2 -0
  196. package/dist/index.cjs187.js.map +1 -0
  197. package/dist/index.cjs188.js +2 -0
  198. package/dist/index.cjs188.js.map +1 -0
  199. package/dist/index.cjs189.js +2 -0
  200. package/dist/index.cjs189.js.map +1 -0
  201. package/dist/index.cjs19.js +2 -0
  202. package/dist/index.cjs19.js.map +1 -0
  203. package/dist/index.cjs190.js +2 -0
  204. package/dist/index.cjs190.js.map +1 -0
  205. package/dist/index.cjs191.js +2 -0
  206. package/dist/index.cjs191.js.map +1 -0
  207. package/dist/index.cjs192.js +2 -0
  208. package/dist/index.cjs192.js.map +1 -0
  209. package/dist/index.cjs193.js +2 -0
  210. package/dist/index.cjs193.js.map +1 -0
  211. package/dist/index.cjs194.js +2 -0
  212. package/dist/index.cjs194.js.map +1 -0
  213. package/dist/index.cjs195.js +2 -0
  214. package/dist/index.cjs195.js.map +1 -0
  215. package/dist/index.cjs196.js +2 -0
  216. package/dist/index.cjs196.js.map +1 -0
  217. package/dist/index.cjs197.js +2 -0
  218. package/dist/index.cjs197.js.map +1 -0
  219. package/dist/index.cjs198.js +2 -0
  220. package/dist/index.cjs198.js.map +1 -0
  221. package/dist/index.cjs199.js +2 -0
  222. package/dist/index.cjs199.js.map +1 -0
  223. package/dist/index.cjs2.js +2 -0
  224. package/dist/index.cjs2.js.map +1 -0
  225. package/dist/index.cjs20.js +2 -0
  226. package/dist/index.cjs20.js.map +1 -0
  227. package/dist/index.cjs200.js +2 -0
  228. package/dist/index.cjs200.js.map +1 -0
  229. package/dist/index.cjs201.js +2 -0
  230. package/dist/index.cjs201.js.map +1 -0
  231. package/dist/index.cjs202.js +2 -0
  232. package/dist/index.cjs202.js.map +1 -0
  233. package/dist/index.cjs203.js +2 -0
  234. package/dist/index.cjs203.js.map +1 -0
  235. package/dist/index.cjs204.js +2 -0
  236. package/dist/index.cjs204.js.map +1 -0
  237. package/dist/index.cjs205.js +2 -0
  238. package/dist/index.cjs205.js.map +1 -0
  239. package/dist/index.cjs206.js +2 -0
  240. package/dist/index.cjs206.js.map +1 -0
  241. package/dist/index.cjs207.js +2 -0
  242. package/dist/index.cjs207.js.map +1 -0
  243. package/dist/index.cjs208.js +2 -0
  244. package/dist/index.cjs208.js.map +1 -0
  245. package/dist/index.cjs209.js +2 -0
  246. package/dist/index.cjs209.js.map +1 -0
  247. package/dist/index.cjs21.js +2 -0
  248. package/dist/index.cjs21.js.map +1 -0
  249. package/dist/index.cjs210.js +2 -0
  250. package/dist/index.cjs210.js.map +1 -0
  251. package/dist/index.cjs211.js +2 -0
  252. package/dist/index.cjs211.js.map +1 -0
  253. package/dist/index.cjs212.js +2 -0
  254. package/dist/index.cjs212.js.map +1 -0
  255. package/dist/index.cjs213.js +2 -0
  256. package/dist/index.cjs213.js.map +1 -0
  257. package/dist/index.cjs214.js +2 -0
  258. package/dist/index.cjs214.js.map +1 -0
  259. package/dist/index.cjs215.js +2 -0
  260. package/dist/index.cjs215.js.map +1 -0
  261. package/dist/index.cjs216.js +2 -0
  262. package/dist/index.cjs216.js.map +1 -0
  263. package/dist/index.cjs217.js +2 -0
  264. package/dist/index.cjs217.js.map +1 -0
  265. package/dist/index.cjs218.js +2 -0
  266. package/dist/index.cjs218.js.map +1 -0
  267. package/dist/index.cjs219.js +2 -0
  268. package/dist/index.cjs219.js.map +1 -0
  269. package/dist/index.cjs22.js +2 -0
  270. package/dist/index.cjs22.js.map +1 -0
  271. package/dist/index.cjs220.js +2 -0
  272. package/dist/index.cjs220.js.map +1 -0
  273. package/dist/index.cjs221.js +2 -0
  274. package/dist/index.cjs221.js.map +1 -0
  275. package/dist/index.cjs222.js +2 -0
  276. package/dist/index.cjs222.js.map +1 -0
  277. package/dist/index.cjs223.js +2 -0
  278. package/dist/index.cjs223.js.map +1 -0
  279. package/dist/index.cjs224.js +2 -0
  280. package/dist/index.cjs224.js.map +1 -0
  281. package/dist/index.cjs225.js +2 -0
  282. package/dist/index.cjs225.js.map +1 -0
  283. package/dist/index.cjs226.js +2 -0
  284. package/dist/index.cjs226.js.map +1 -0
  285. package/dist/index.cjs227.js +2 -0
  286. package/dist/index.cjs227.js.map +1 -0
  287. package/dist/index.cjs228.js +2 -0
  288. package/dist/index.cjs228.js.map +1 -0
  289. package/dist/index.cjs229.js +2 -0
  290. package/dist/index.cjs229.js.map +1 -0
  291. package/dist/index.cjs23.js +2 -0
  292. package/dist/index.cjs23.js.map +1 -0
  293. package/dist/index.cjs230.js +2 -0
  294. package/dist/index.cjs230.js.map +1 -0
  295. package/dist/index.cjs231.js +2 -0
  296. package/dist/index.cjs231.js.map +1 -0
  297. package/dist/index.cjs232.js +2 -0
  298. package/dist/index.cjs232.js.map +1 -0
  299. package/dist/index.cjs233.js +2 -0
  300. package/dist/index.cjs233.js.map +1 -0
  301. package/dist/index.cjs234.js +2 -0
  302. package/dist/index.cjs234.js.map +1 -0
  303. package/dist/index.cjs235.js +2 -0
  304. package/dist/index.cjs235.js.map +1 -0
  305. package/dist/index.cjs236.js +2 -0
  306. package/dist/index.cjs236.js.map +1 -0
  307. package/dist/index.cjs237.js +2 -0
  308. package/dist/index.cjs237.js.map +1 -0
  309. package/dist/index.cjs238.js +2 -0
  310. package/dist/index.cjs238.js.map +1 -0
  311. package/dist/index.cjs239.js +2 -0
  312. package/dist/index.cjs239.js.map +1 -0
  313. package/dist/index.cjs24.js +3 -0
  314. package/dist/index.cjs24.js.map +1 -0
  315. package/dist/index.cjs240.js +2 -0
  316. package/dist/index.cjs240.js.map +1 -0
  317. package/dist/index.cjs241.js +2 -0
  318. package/dist/index.cjs241.js.map +1 -0
  319. package/dist/index.cjs242.js +2 -0
  320. package/dist/index.cjs242.js.map +1 -0
  321. package/dist/index.cjs243.js +2 -0
  322. package/dist/index.cjs243.js.map +1 -0
  323. package/dist/index.cjs244.js +2 -0
  324. package/dist/index.cjs244.js.map +1 -0
  325. package/dist/index.cjs245.js +2 -0
  326. package/dist/index.cjs245.js.map +1 -0
  327. package/dist/index.cjs246.js +2 -0
  328. package/dist/index.cjs246.js.map +1 -0
  329. package/dist/index.cjs247.js +2 -0
  330. package/dist/index.cjs247.js.map +1 -0
  331. package/dist/index.cjs248.js +2 -0
  332. package/dist/index.cjs248.js.map +1 -0
  333. package/dist/index.cjs249.js +2 -0
  334. package/dist/index.cjs249.js.map +1 -0
  335. package/dist/index.cjs25.js +3 -0
  336. package/dist/index.cjs25.js.map +1 -0
  337. package/dist/index.cjs250.js +2 -0
  338. package/dist/index.cjs250.js.map +1 -0
  339. package/dist/index.cjs251.js +2 -0
  340. package/dist/index.cjs251.js.map +1 -0
  341. package/dist/index.cjs252.js +2 -0
  342. package/dist/index.cjs252.js.map +1 -0
  343. package/dist/index.cjs253.js +2 -0
  344. package/dist/index.cjs253.js.map +1 -0
  345. package/dist/index.cjs254.js +2 -0
  346. package/dist/index.cjs254.js.map +1 -0
  347. package/dist/index.cjs255.js +2 -0
  348. package/dist/index.cjs255.js.map +1 -0
  349. package/dist/index.cjs256.js +2 -0
  350. package/dist/index.cjs256.js.map +1 -0
  351. package/dist/index.cjs257.js +2 -0
  352. package/dist/index.cjs257.js.map +1 -0
  353. package/dist/index.cjs258.js +2 -0
  354. package/dist/index.cjs258.js.map +1 -0
  355. package/dist/index.cjs259.js +2 -0
  356. package/dist/index.cjs259.js.map +1 -0
  357. package/dist/index.cjs26.js +4 -0
  358. package/dist/index.cjs26.js.map +1 -0
  359. package/dist/index.cjs260.js +2 -0
  360. package/dist/index.cjs260.js.map +1 -0
  361. package/dist/index.cjs261.js +2 -0
  362. package/dist/index.cjs261.js.map +1 -0
  363. package/dist/index.cjs262.js +2 -0
  364. package/dist/index.cjs262.js.map +1 -0
  365. package/dist/index.cjs263.js +2 -0
  366. package/dist/index.cjs263.js.map +1 -0
  367. package/dist/index.cjs264.js +2 -0
  368. package/dist/index.cjs264.js.map +1 -0
  369. package/dist/index.cjs265.js +2 -0
  370. package/dist/index.cjs265.js.map +1 -0
  371. package/dist/index.cjs266.js +2 -0
  372. package/dist/index.cjs266.js.map +1 -0
  373. package/dist/index.cjs267.js +2 -0
  374. package/dist/index.cjs267.js.map +1 -0
  375. package/dist/index.cjs268.js +2 -0
  376. package/dist/index.cjs268.js.map +1 -0
  377. package/dist/index.cjs269.js +2 -0
  378. package/dist/index.cjs269.js.map +1 -0
  379. package/dist/index.cjs27.js +4 -0
  380. package/dist/index.cjs27.js.map +1 -0
  381. package/dist/index.cjs270.js +2 -0
  382. package/dist/index.cjs270.js.map +1 -0
  383. package/dist/index.cjs271.js +2 -0
  384. package/dist/index.cjs271.js.map +1 -0
  385. package/dist/index.cjs272.js +2 -0
  386. package/dist/index.cjs272.js.map +1 -0
  387. package/dist/index.cjs273.js +2 -0
  388. package/dist/index.cjs273.js.map +1 -0
  389. package/dist/index.cjs274.js +2 -0
  390. package/dist/index.cjs274.js.map +1 -0
  391. package/dist/index.cjs275.js +2 -0
  392. package/dist/index.cjs275.js.map +1 -0
  393. package/dist/index.cjs276.js +2 -0
  394. package/dist/index.cjs276.js.map +1 -0
  395. package/dist/index.cjs277.js +2 -0
  396. package/dist/index.cjs277.js.map +1 -0
  397. package/dist/index.cjs278.js +2 -0
  398. package/dist/index.cjs278.js.map +1 -0
  399. package/dist/index.cjs279.js +2 -0
  400. package/dist/index.cjs279.js.map +1 -0
  401. package/dist/index.cjs28.js +3 -0
  402. package/dist/index.cjs28.js.map +1 -0
  403. package/dist/index.cjs280.js +2 -0
  404. package/dist/index.cjs280.js.map +1 -0
  405. package/dist/index.cjs281.js +2 -0
  406. package/dist/index.cjs281.js.map +1 -0
  407. package/dist/index.cjs282.js +2 -0
  408. package/dist/index.cjs282.js.map +1 -0
  409. package/dist/index.cjs283.js +2 -0
  410. package/dist/index.cjs283.js.map +1 -0
  411. package/dist/index.cjs284.js +2 -0
  412. package/dist/index.cjs284.js.map +1 -0
  413. package/dist/index.cjs285.js +2 -0
  414. package/dist/index.cjs285.js.map +1 -0
  415. package/dist/index.cjs286.js +9 -0
  416. package/dist/index.cjs286.js.map +1 -0
  417. package/dist/index.cjs287.js +9 -0
  418. package/dist/index.cjs287.js.map +1 -0
  419. package/dist/index.cjs288.js +2 -0
  420. package/dist/index.cjs288.js.map +1 -0
  421. package/dist/index.cjs289.js +2 -0
  422. package/dist/index.cjs289.js.map +1 -0
  423. package/dist/index.cjs29.js +2 -0
  424. package/dist/index.cjs29.js.map +1 -0
  425. package/dist/index.cjs290.js +2 -0
  426. package/dist/index.cjs290.js.map +1 -0
  427. package/dist/index.cjs291.js +2 -0
  428. package/dist/index.cjs291.js.map +1 -0
  429. package/dist/index.cjs292.js +2 -0
  430. package/dist/index.cjs292.js.map +1 -0
  431. package/dist/index.cjs293.js +2 -0
  432. package/dist/index.cjs293.js.map +1 -0
  433. package/dist/index.cjs294.js +2 -0
  434. package/dist/index.cjs294.js.map +1 -0
  435. package/dist/index.cjs295.js +2 -0
  436. package/dist/index.cjs295.js.map +1 -0
  437. package/dist/index.cjs296.js +2 -0
  438. package/dist/index.cjs296.js.map +1 -0
  439. package/dist/index.cjs297.js +2 -0
  440. package/dist/index.cjs297.js.map +1 -0
  441. package/dist/index.cjs298.js +2 -0
  442. package/dist/index.cjs298.js.map +1 -0
  443. package/dist/index.cjs299.js +2 -0
  444. package/dist/index.cjs299.js.map +1 -0
  445. package/dist/index.cjs3.js +2 -0
  446. package/dist/index.cjs3.js.map +1 -0
  447. package/dist/index.cjs30.js +2 -0
  448. package/dist/index.cjs30.js.map +1 -0
  449. package/dist/index.cjs300.js +2 -0
  450. package/dist/index.cjs300.js.map +1 -0
  451. package/dist/index.cjs301.js +2 -0
  452. package/dist/index.cjs301.js.map +1 -0
  453. package/dist/index.cjs302.js +2 -0
  454. package/dist/index.cjs302.js.map +1 -0
  455. package/dist/index.cjs303.js +2 -0
  456. package/dist/index.cjs303.js.map +1 -0
  457. package/dist/index.cjs304.js +2 -0
  458. package/dist/index.cjs304.js.map +1 -0
  459. package/dist/index.cjs305.js +2 -0
  460. package/dist/index.cjs305.js.map +1 -0
  461. package/dist/index.cjs306.js +2 -0
  462. package/dist/index.cjs306.js.map +1 -0
  463. package/dist/index.cjs307.js +2 -0
  464. package/dist/index.cjs307.js.map +1 -0
  465. package/dist/index.cjs308.js +2 -0
  466. package/dist/index.cjs308.js.map +1 -0
  467. package/dist/index.cjs309.js +2 -0
  468. package/dist/index.cjs309.js.map +1 -0
  469. package/dist/index.cjs31.js +2 -0
  470. package/dist/index.cjs31.js.map +1 -0
  471. package/dist/index.cjs310.js +2 -0
  472. package/dist/index.cjs310.js.map +1 -0
  473. package/dist/index.cjs311.js +2 -0
  474. package/dist/index.cjs311.js.map +1 -0
  475. package/dist/index.cjs312.js +2 -0
  476. package/dist/index.cjs312.js.map +1 -0
  477. package/dist/index.cjs313.js +2 -0
  478. package/dist/index.cjs313.js.map +1 -0
  479. package/dist/index.cjs314.js +2 -0
  480. package/dist/index.cjs314.js.map +1 -0
  481. package/dist/index.cjs315.js +2 -0
  482. package/dist/index.cjs315.js.map +1 -0
  483. package/dist/index.cjs316.js +2 -0
  484. package/dist/index.cjs316.js.map +1 -0
  485. package/dist/index.cjs317.js +2 -0
  486. package/dist/index.cjs317.js.map +1 -0
  487. package/dist/index.cjs318.js +2 -0
  488. package/dist/index.cjs318.js.map +1 -0
  489. package/dist/index.cjs319.js +2 -0
  490. package/dist/index.cjs319.js.map +1 -0
  491. package/dist/index.cjs32.js +2 -0
  492. package/dist/index.cjs32.js.map +1 -0
  493. package/dist/index.cjs320.js +2 -0
  494. package/dist/index.cjs320.js.map +1 -0
  495. package/dist/index.cjs321.js +2 -0
  496. package/dist/index.cjs321.js.map +1 -0
  497. package/dist/index.cjs322.js +2 -0
  498. package/dist/index.cjs322.js.map +1 -0
  499. package/dist/index.cjs323.js +2 -0
  500. package/dist/index.cjs323.js.map +1 -0
  501. package/dist/index.cjs33.js +2 -0
  502. package/dist/index.cjs33.js.map +1 -0
  503. package/dist/index.cjs34.js +2 -0
  504. package/dist/index.cjs34.js.map +1 -0
  505. package/dist/index.cjs35.js +2 -0
  506. package/dist/index.cjs35.js.map +1 -0
  507. package/dist/index.cjs36.js +2 -0
  508. package/dist/index.cjs36.js.map +1 -0
  509. package/dist/index.cjs37.js +2 -0
  510. package/dist/index.cjs37.js.map +1 -0
  511. package/dist/index.cjs38.js +14 -0
  512. package/dist/index.cjs38.js.map +1 -0
  513. package/dist/index.cjs39.js +2 -0
  514. package/dist/index.cjs39.js.map +1 -0
  515. package/dist/index.cjs4.js +2 -0
  516. package/dist/index.cjs4.js.map +1 -0
  517. package/dist/index.cjs40.js +2 -0
  518. package/dist/index.cjs40.js.map +1 -0
  519. package/dist/index.cjs41.js +2 -0
  520. package/dist/index.cjs41.js.map +1 -0
  521. package/dist/index.cjs42.js +2 -0
  522. package/dist/index.cjs42.js.map +1 -0
  523. package/dist/index.cjs43.js +2 -0
  524. package/dist/index.cjs43.js.map +1 -0
  525. package/dist/index.cjs44.js +2 -0
  526. package/dist/index.cjs44.js.map +1 -0
  527. package/dist/index.cjs45.js +2 -0
  528. package/dist/index.cjs45.js.map +1 -0
  529. package/dist/index.cjs46.js +2 -0
  530. package/dist/index.cjs46.js.map +1 -0
  531. package/dist/index.cjs47.js +2 -0
  532. package/dist/index.cjs47.js.map +1 -0
  533. package/dist/index.cjs48.js +2 -0
  534. package/dist/index.cjs48.js.map +1 -0
  535. package/dist/index.cjs49.js +2 -0
  536. package/dist/index.cjs49.js.map +1 -0
  537. package/dist/index.cjs5.js +2 -0
  538. package/dist/index.cjs5.js.map +1 -0
  539. package/dist/index.cjs50.js +2 -0
  540. package/dist/index.cjs50.js.map +1 -0
  541. package/dist/index.cjs51.js +2 -0
  542. package/dist/index.cjs51.js.map +1 -0
  543. package/dist/index.cjs52.js +2 -0
  544. package/dist/index.cjs52.js.map +1 -0
  545. package/dist/index.cjs53.js +2 -0
  546. package/dist/index.cjs53.js.map +1 -0
  547. package/dist/index.cjs54.js +2 -0
  548. package/dist/index.cjs54.js.map +1 -0
  549. package/dist/index.cjs55.js +2 -0
  550. package/dist/index.cjs55.js.map +1 -0
  551. package/dist/index.cjs56.js +2 -0
  552. package/dist/index.cjs56.js.map +1 -0
  553. package/dist/index.cjs57.js +2 -0
  554. package/dist/index.cjs57.js.map +1 -0
  555. package/dist/index.cjs58.js +2 -0
  556. package/dist/index.cjs58.js.map +1 -0
  557. package/dist/index.cjs59.js +2 -0
  558. package/dist/index.cjs59.js.map +1 -0
  559. package/dist/index.cjs6.js +2 -0
  560. package/dist/index.cjs6.js.map +1 -0
  561. package/dist/index.cjs60.js +2 -0
  562. package/dist/index.cjs60.js.map +1 -0
  563. package/dist/index.cjs61.js +2 -0
  564. package/dist/index.cjs61.js.map +1 -0
  565. package/dist/index.cjs62.js +2 -0
  566. package/dist/index.cjs62.js.map +1 -0
  567. package/dist/index.cjs63.js +2 -0
  568. package/dist/index.cjs63.js.map +1 -0
  569. package/dist/index.cjs64.js +2 -0
  570. package/dist/index.cjs64.js.map +1 -0
  571. package/dist/index.cjs65.js +2 -0
  572. package/dist/index.cjs65.js.map +1 -0
  573. package/dist/index.cjs66.js +2 -0
  574. package/dist/index.cjs66.js.map +1 -0
  575. package/dist/index.cjs67.js +2 -0
  576. package/dist/index.cjs67.js.map +1 -0
  577. package/dist/index.cjs68.js +2 -0
  578. package/dist/index.cjs68.js.map +1 -0
  579. package/dist/index.cjs69.js +2 -0
  580. package/dist/index.cjs69.js.map +1 -0
  581. package/dist/index.cjs7.js +4 -0
  582. package/dist/index.cjs7.js.map +1 -0
  583. package/dist/index.cjs70.js +2 -0
  584. package/dist/index.cjs70.js.map +1 -0
  585. package/dist/index.cjs71.js +2 -0
  586. package/dist/index.cjs71.js.map +1 -0
  587. package/dist/index.cjs72.js +2 -0
  588. package/dist/index.cjs72.js.map +1 -0
  589. package/dist/index.cjs73.js +2 -0
  590. package/dist/index.cjs73.js.map +1 -0
  591. package/dist/index.cjs74.js +10 -0
  592. package/dist/index.cjs74.js.map +1 -0
  593. package/dist/index.cjs75.js +23 -0
  594. package/dist/index.cjs75.js.map +1 -0
  595. package/dist/index.cjs76.js +2 -0
  596. package/dist/index.cjs76.js.map +1 -0
  597. package/dist/index.cjs77.js +2 -0
  598. package/dist/index.cjs77.js.map +1 -0
  599. package/dist/index.cjs78.js +5 -0
  600. package/dist/index.cjs78.js.map +1 -0
  601. package/dist/index.cjs79.js +2 -0
  602. package/dist/index.cjs79.js.map +1 -0
  603. package/dist/index.cjs8.js +4 -0
  604. package/dist/index.cjs8.js.map +1 -0
  605. package/dist/index.cjs80.js +2 -0
  606. package/dist/index.cjs80.js.map +1 -0
  607. package/dist/index.cjs81.js +2 -0
  608. package/dist/index.cjs81.js.map +1 -0
  609. package/dist/index.cjs82.js +2 -0
  610. package/dist/index.cjs82.js.map +1 -0
  611. package/dist/index.cjs83.js +2 -0
  612. package/dist/index.cjs83.js.map +1 -0
  613. package/dist/index.cjs84.js +2 -0
  614. package/dist/index.cjs84.js.map +1 -0
  615. package/dist/index.cjs85.js +2 -0
  616. package/dist/index.cjs85.js.map +1 -0
  617. package/dist/index.cjs86.js +2 -0
  618. package/dist/index.cjs86.js.map +1 -0
  619. package/dist/index.cjs87.js +2 -0
  620. package/dist/index.cjs87.js.map +1 -0
  621. package/dist/index.cjs88.js +2 -0
  622. package/dist/index.cjs88.js.map +1 -0
  623. package/dist/index.cjs89.js +2 -0
  624. package/dist/index.cjs89.js.map +1 -0
  625. package/dist/index.cjs9.js +4 -0
  626. package/dist/index.cjs9.js.map +1 -0
  627. package/dist/index.cjs90.js +2 -0
  628. package/dist/index.cjs90.js.map +1 -0
  629. package/dist/index.cjs91.js +2 -0
  630. package/dist/index.cjs91.js.map +1 -0
  631. package/dist/index.cjs92.js +2 -0
  632. package/dist/index.cjs92.js.map +1 -0
  633. package/dist/index.cjs93.js +2 -0
  634. package/dist/index.cjs93.js.map +1 -0
  635. package/dist/index.cjs94.js +2 -0
  636. package/dist/index.cjs94.js.map +1 -0
  637. package/dist/index.cjs95.js +2 -0
  638. package/dist/index.cjs95.js.map +1 -0
  639. package/dist/index.cjs96.js +2 -0
  640. package/dist/index.cjs96.js.map +1 -0
  641. package/dist/index.cjs97.js +2 -0
  642. package/dist/index.cjs97.js.map +1 -0
  643. package/dist/index.cjs98.js +2 -0
  644. package/dist/index.cjs98.js.map +1 -0
  645. package/dist/index.cjs99.js +2 -0
  646. package/dist/index.cjs99.js.map +1 -0
  647. package/dist/index.es.js +56 -20953
  648. package/dist/index.es.js.map +1 -1
  649. package/dist/index.es10.js +110 -0
  650. package/dist/index.es10.js.map +1 -0
  651. package/dist/index.es100.js +105 -0
  652. package/dist/index.es100.js.map +1 -0
  653. package/dist/index.es101.js +101 -0
  654. package/dist/index.es101.js.map +1 -0
  655. package/dist/index.es102.js +100 -0
  656. package/dist/index.es102.js.map +1 -0
  657. package/dist/index.es103.js +132 -0
  658. package/dist/index.es103.js.map +1 -0
  659. package/dist/index.es104.js +26 -0
  660. package/dist/index.es104.js.map +1 -0
  661. package/dist/index.es105.js +11 -0
  662. package/dist/index.es105.js.map +1 -0
  663. package/dist/index.es106.js +14 -0
  664. package/dist/index.es106.js.map +1 -0
  665. package/dist/index.es107.js +7 -0
  666. package/dist/index.es107.js.map +1 -0
  667. package/dist/index.es108.js +16 -0
  668. package/dist/index.es108.js.map +1 -0
  669. package/dist/index.es109.js +17 -0
  670. package/dist/index.es109.js.map +1 -0
  671. package/dist/index.es11.js +82 -0
  672. package/dist/index.es11.js.map +1 -0
  673. package/dist/index.es110.js +18 -0
  674. package/dist/index.es110.js.map +1 -0
  675. package/dist/index.es111.js +11 -0
  676. package/dist/index.es111.js.map +1 -0
  677. package/dist/index.es112.js +868 -0
  678. package/dist/index.es112.js.map +1 -0
  679. package/dist/index.es113.js +273 -0
  680. package/dist/index.es113.js.map +1 -0
  681. package/dist/index.es114.js +37 -0
  682. package/dist/index.es114.js.map +1 -0
  683. package/dist/index.es115.js +91 -0
  684. package/dist/index.es115.js.map +1 -0
  685. package/dist/index.es116.js +35 -0
  686. package/dist/index.es116.js.map +1 -0
  687. package/dist/index.es117.js +9 -0
  688. package/dist/index.es117.js.map +1 -0
  689. package/dist/index.es118.js +167 -0
  690. package/dist/index.es118.js.map +1 -0
  691. package/dist/index.es119.js +18 -0
  692. package/dist/index.es119.js.map +1 -0
  693. package/dist/index.es12.js +82 -0
  694. package/dist/index.es12.js.map +1 -0
  695. package/dist/index.es120.js +300 -0
  696. package/dist/index.es120.js.map +1 -0
  697. package/dist/index.es121.js +50 -0
  698. package/dist/index.es121.js.map +1 -0
  699. package/dist/index.es122.js +28 -0
  700. package/dist/index.es122.js.map +1 -0
  701. package/dist/index.es123.js +13 -0
  702. package/dist/index.es123.js.map +1 -0
  703. package/dist/index.es124.js +19 -0
  704. package/dist/index.es124.js.map +1 -0
  705. package/dist/index.es125.js +115 -0
  706. package/dist/index.es125.js.map +1 -0
  707. package/dist/index.es126.js +132 -0
  708. package/dist/index.es126.js.map +1 -0
  709. package/dist/index.es127.js +51 -0
  710. package/dist/index.es127.js.map +1 -0
  711. package/dist/index.es128.js +12 -0
  712. package/dist/index.es128.js.map +1 -0
  713. package/dist/index.es129.js +11 -0
  714. package/dist/index.es129.js.map +1 -0
  715. package/dist/index.es13.js +48 -0
  716. package/dist/index.es13.js.map +1 -0
  717. package/dist/index.es130.js +13 -0
  718. package/dist/index.es130.js.map +1 -0
  719. package/dist/index.es131.js +6 -0
  720. package/dist/index.es131.js.map +1 -0
  721. package/dist/index.es132.js +7 -0
  722. package/dist/index.es132.js.map +1 -0
  723. package/dist/index.es133.js +25 -0
  724. package/dist/index.es133.js.map +1 -0
  725. package/dist/index.es134.js +12 -0
  726. package/dist/index.es134.js.map +1 -0
  727. package/dist/index.es135.js +8 -0
  728. package/dist/index.es135.js.map +1 -0
  729. package/dist/index.es136.js +13 -0
  730. package/dist/index.es136.js.map +1 -0
  731. package/dist/index.es137.js +10 -0
  732. package/dist/index.es137.js.map +1 -0
  733. package/dist/index.es138.js +9 -0
  734. package/dist/index.es138.js.map +1 -0
  735. package/dist/index.es139.js +9 -0
  736. package/dist/index.es139.js.map +1 -0
  737. package/dist/index.es14.js +16 -0
  738. package/dist/index.es14.js.map +1 -0
  739. package/dist/index.es140.js +14 -0
  740. package/dist/index.es140.js.map +1 -0
  741. package/dist/index.es141.js +11 -0
  742. package/dist/index.es141.js.map +1 -0
  743. package/dist/index.es142.js +8 -0
  744. package/dist/index.es142.js.map +1 -0
  745. package/dist/index.es143.js +7 -0
  746. package/dist/index.es143.js.map +1 -0
  747. package/dist/index.es144.js +8 -0
  748. package/dist/index.es144.js.map +1 -0
  749. package/dist/index.es145.js +419 -0
  750. package/dist/index.es145.js.map +1 -0
  751. package/dist/index.es146.js +25 -0
  752. package/dist/index.es146.js.map +1 -0
  753. package/dist/index.es147.js +30 -0
  754. package/dist/index.es147.js.map +1 -0
  755. package/dist/index.es148.js +326 -0
  756. package/dist/index.es148.js.map +1 -0
  757. package/dist/index.es149.js +76 -0
  758. package/dist/index.es149.js.map +1 -0
  759. package/dist/index.es15.js +92 -0
  760. package/dist/index.es15.js.map +1 -0
  761. package/dist/index.es150.js +22 -0
  762. package/dist/index.es150.js.map +1 -0
  763. package/dist/index.es151.js +99 -0
  764. package/dist/index.es151.js.map +1 -0
  765. package/dist/index.es152.js +18 -0
  766. package/dist/index.es152.js.map +1 -0
  767. package/dist/index.es153.js +75 -0
  768. package/dist/index.es153.js.map +1 -0
  769. package/dist/index.es154.js +46 -0
  770. package/dist/index.es154.js.map +1 -0
  771. package/dist/index.es155.js +10 -0
  772. package/dist/index.es155.js.map +1 -0
  773. package/dist/index.es156.js +33 -0
  774. package/dist/index.es156.js.map +1 -0
  775. package/dist/index.es157.js +47 -0
  776. package/dist/index.es157.js.map +1 -0
  777. package/dist/index.es158.js +9 -0
  778. package/dist/index.es158.js.map +1 -0
  779. package/dist/index.es159.js +96 -0
  780. package/dist/index.es159.js.map +1 -0
  781. package/dist/index.es16.js +127 -0
  782. package/dist/index.es16.js.map +1 -0
  783. package/dist/index.es160.js +24 -0
  784. package/dist/index.es160.js.map +1 -0
  785. package/dist/index.es161.js +7 -0
  786. package/dist/index.es161.js.map +1 -0
  787. package/dist/index.es162.js +75 -0
  788. package/dist/index.es162.js.map +1 -0
  789. package/dist/index.es163.js +53 -0
  790. package/dist/index.es163.js.map +1 -0
  791. package/dist/index.es164.js +166 -0
  792. package/dist/index.es164.js.map +1 -0
  793. package/dist/index.es165.js +125 -0
  794. package/dist/index.es165.js.map +1 -0
  795. package/dist/index.es166.js +50 -0
  796. package/dist/index.es166.js.map +1 -0
  797. package/dist/index.es167.js +37 -0
  798. package/dist/index.es167.js.map +1 -0
  799. package/dist/index.es168.js +35 -0
  800. package/dist/index.es168.js.map +1 -0
  801. package/dist/index.es169.js +30 -0
  802. package/dist/index.es169.js.map +1 -0
  803. package/dist/index.es17.js +139 -0
  804. package/dist/index.es17.js.map +1 -0
  805. package/dist/index.es170.js +72 -0
  806. package/dist/index.es170.js.map +1 -0
  807. package/dist/index.es171.js +9 -0
  808. package/dist/index.es171.js.map +1 -0
  809. package/dist/index.es172.js +44 -0
  810. package/dist/index.es172.js.map +1 -0
  811. package/dist/index.es173.js +12 -0
  812. package/dist/index.es173.js.map +1 -0
  813. package/dist/index.es174.js +13 -0
  814. package/dist/index.es174.js.map +1 -0
  815. package/dist/index.es175.js +26 -0
  816. package/dist/index.es175.js.map +1 -0
  817. package/dist/index.es176.js +34 -0
  818. package/dist/index.es176.js.map +1 -0
  819. package/dist/index.es177.js +10 -0
  820. package/dist/index.es177.js.map +1 -0
  821. package/dist/index.es178.js +10 -0
  822. package/dist/index.es178.js.map +1 -0
  823. package/dist/index.es179.js +10 -0
  824. package/dist/index.es179.js.map +1 -0
  825. package/dist/index.es18.js +87 -0
  826. package/dist/index.es18.js.map +1 -0
  827. package/dist/index.es180.js +9 -0
  828. package/dist/index.es180.js.map +1 -0
  829. package/dist/index.es181.js +28 -0
  830. package/dist/index.es181.js.map +1 -0
  831. package/dist/index.es182.js +35 -0
  832. package/dist/index.es182.js.map +1 -0
  833. package/dist/index.es183.js +13 -0
  834. package/dist/index.es183.js.map +1 -0
  835. package/dist/index.es184.js +17 -0
  836. package/dist/index.es184.js.map +1 -0
  837. package/dist/index.es185.js +45 -0
  838. package/dist/index.es185.js.map +1 -0
  839. package/dist/index.es186.js +37 -0
  840. package/dist/index.es186.js.map +1 -0
  841. package/dist/index.es187.js +48 -0
  842. package/dist/index.es187.js.map +1 -0
  843. package/dist/index.es188.js +33 -0
  844. package/dist/index.es188.js.map +1 -0
  845. package/dist/index.es189.js +17 -0
  846. package/dist/index.es189.js.map +1 -0
  847. package/dist/index.es19.js +114 -0
  848. package/dist/index.es19.js.map +1 -0
  849. package/dist/index.es190.js +23 -0
  850. package/dist/index.es190.js.map +1 -0
  851. package/dist/index.es191.js +32 -0
  852. package/dist/index.es191.js.map +1 -0
  853. package/dist/index.es192.js +24 -0
  854. package/dist/index.es192.js.map +1 -0
  855. package/dist/index.es193.js +51 -0
  856. package/dist/index.es193.js.map +1 -0
  857. package/dist/index.es194.js +7 -0
  858. package/dist/index.es194.js.map +1 -0
  859. package/dist/index.es195.js +28 -0
  860. package/dist/index.es195.js.map +1 -0
  861. package/dist/index.es196.js +18 -0
  862. package/dist/index.es196.js.map +1 -0
  863. package/dist/index.es197.js +13 -0
  864. package/dist/index.es197.js.map +1 -0
  865. package/dist/index.es198.js +8 -0
  866. package/dist/index.es198.js.map +1 -0
  867. package/dist/index.es199.js +11 -0
  868. package/dist/index.es199.js.map +1 -0
  869. package/dist/index.es2.js +251 -0
  870. package/dist/index.es2.js.map +1 -0
  871. package/dist/index.es20.js +65 -0
  872. package/dist/index.es20.js.map +1 -0
  873. package/dist/index.es200.js +8 -0
  874. package/dist/index.es200.js.map +1 -0
  875. package/dist/index.es201.js +47 -0
  876. package/dist/index.es201.js.map +1 -0
  877. package/dist/index.es202.js +31 -0
  878. package/dist/index.es202.js.map +1 -0
  879. package/dist/index.es203.js +118 -0
  880. package/dist/index.es203.js.map +1 -0
  881. package/dist/index.es204.js +30 -0
  882. package/dist/index.es204.js.map +1 -0
  883. package/dist/index.es205.js +23 -0
  884. package/dist/index.es205.js.map +1 -0
  885. package/dist/index.es206.js +53 -0
  886. package/dist/index.es206.js.map +1 -0
  887. package/dist/index.es207.js +10 -0
  888. package/dist/index.es207.js.map +1 -0
  889. package/dist/index.es208.js +9 -0
  890. package/dist/index.es208.js.map +1 -0
  891. package/dist/index.es209.js +9 -0
  892. package/dist/index.es209.js.map +1 -0
  893. package/dist/index.es21.js +167 -0
  894. package/dist/index.es21.js.map +1 -0
  895. package/dist/index.es210.js +15 -0
  896. package/dist/index.es210.js.map +1 -0
  897. package/dist/index.es211.js +8 -0
  898. package/dist/index.es211.js.map +1 -0
  899. package/dist/index.es212.js +41 -0
  900. package/dist/index.es212.js.map +1 -0
  901. package/dist/index.es213.js +19 -0
  902. package/dist/index.es213.js.map +1 -0
  903. package/dist/index.es214.js +19 -0
  904. package/dist/index.es214.js.map +1 -0
  905. package/dist/index.es215.js +19 -0
  906. package/dist/index.es215.js.map +1 -0
  907. package/dist/index.es216.js +19 -0
  908. package/dist/index.es216.js.map +1 -0
  909. package/dist/index.es217.js +19 -0
  910. package/dist/index.es217.js.map +1 -0
  911. package/dist/index.es218.js +19 -0
  912. package/dist/index.es218.js.map +1 -0
  913. package/dist/index.es219.js +19 -0
  914. package/dist/index.es219.js.map +1 -0
  915. package/dist/index.es22.js +45 -0
  916. package/dist/index.es22.js.map +1 -0
  917. package/dist/index.es220.js +19 -0
  918. package/dist/index.es220.js.map +1 -0
  919. package/dist/index.es221.js +19 -0
  920. package/dist/index.es221.js.map +1 -0
  921. package/dist/index.es222.js +19 -0
  922. package/dist/index.es222.js.map +1 -0
  923. package/dist/index.es223.js +19 -0
  924. package/dist/index.es223.js.map +1 -0
  925. package/dist/index.es224.js +19 -0
  926. package/dist/index.es224.js.map +1 -0
  927. package/dist/index.es225.js +19 -0
  928. package/dist/index.es225.js.map +1 -0
  929. package/dist/index.es226.js +19 -0
  930. package/dist/index.es226.js.map +1 -0
  931. package/dist/index.es227.js +19 -0
  932. package/dist/index.es227.js.map +1 -0
  933. package/dist/index.es228.js +19 -0
  934. package/dist/index.es228.js.map +1 -0
  935. package/dist/index.es229.js +19 -0
  936. package/dist/index.es229.js.map +1 -0
  937. package/dist/index.es23.js +38 -0
  938. package/dist/index.es23.js.map +1 -0
  939. package/dist/index.es230.js +19 -0
  940. package/dist/index.es230.js.map +1 -0
  941. package/dist/index.es231.js +19 -0
  942. package/dist/index.es231.js.map +1 -0
  943. package/dist/index.es232.js +19 -0
  944. package/dist/index.es232.js.map +1 -0
  945. package/dist/index.es233.js +19 -0
  946. package/dist/index.es233.js.map +1 -0
  947. package/dist/index.es234.js +19 -0
  948. package/dist/index.es234.js.map +1 -0
  949. package/dist/index.es235.js +19 -0
  950. package/dist/index.es235.js.map +1 -0
  951. package/dist/index.es236.js +19 -0
  952. package/dist/index.es236.js.map +1 -0
  953. package/dist/index.es237.js +19 -0
  954. package/dist/index.es237.js.map +1 -0
  955. package/dist/index.es238.js +19 -0
  956. package/dist/index.es238.js.map +1 -0
  957. package/dist/index.es239.js +19 -0
  958. package/dist/index.es239.js.map +1 -0
  959. package/dist/index.es24.js +52 -0
  960. package/dist/index.es24.js.map +1 -0
  961. package/dist/index.es240.js +19 -0
  962. package/dist/index.es240.js.map +1 -0
  963. package/dist/index.es241.js +19 -0
  964. package/dist/index.es241.js.map +1 -0
  965. package/dist/index.es242.js +19 -0
  966. package/dist/index.es242.js.map +1 -0
  967. package/dist/index.es243.js +19 -0
  968. package/dist/index.es243.js.map +1 -0
  969. package/dist/index.es244.js +19 -0
  970. package/dist/index.es244.js.map +1 -0
  971. package/dist/index.es245.js +19 -0
  972. package/dist/index.es245.js.map +1 -0
  973. package/dist/index.es246.js +19 -0
  974. package/dist/index.es246.js.map +1 -0
  975. package/dist/index.es247.js +23 -0
  976. package/dist/index.es247.js.map +1 -0
  977. package/dist/index.es248.js +23 -0
  978. package/dist/index.es248.js.map +1 -0
  979. package/dist/index.es249.js +23 -0
  980. package/dist/index.es249.js.map +1 -0
  981. package/dist/index.es25.js +51 -0
  982. package/dist/index.es25.js.map +1 -0
  983. package/dist/index.es250.js +23 -0
  984. package/dist/index.es250.js.map +1 -0
  985. package/dist/index.es251.js +23 -0
  986. package/dist/index.es251.js.map +1 -0
  987. package/dist/index.es252.js +23 -0
  988. package/dist/index.es252.js.map +1 -0
  989. package/dist/index.es253.js +23 -0
  990. package/dist/index.es253.js.map +1 -0
  991. package/dist/index.es254.js +23 -0
  992. package/dist/index.es254.js.map +1 -0
  993. package/dist/index.es255.js +23 -0
  994. package/dist/index.es255.js.map +1 -0
  995. package/dist/index.es256.js +23 -0
  996. package/dist/index.es256.js.map +1 -0
  997. package/dist/index.es257.js +23 -0
  998. package/dist/index.es257.js.map +1 -0
  999. package/dist/index.es258.js +23 -0
  1000. package/dist/index.es258.js.map +1 -0
  1001. package/dist/index.es259.js +23 -0
  1002. package/dist/index.es259.js.map +1 -0
  1003. package/dist/index.es26.js +103 -0
  1004. package/dist/index.es26.js.map +1 -0
  1005. package/dist/index.es260.js +23 -0
  1006. package/dist/index.es260.js.map +1 -0
  1007. package/dist/index.es261.js +23 -0
  1008. package/dist/index.es261.js.map +1 -0
  1009. package/dist/index.es262.js +23 -0
  1010. package/dist/index.es262.js.map +1 -0
  1011. package/dist/index.es263.js +23 -0
  1012. package/dist/index.es263.js.map +1 -0
  1013. package/dist/index.es264.js +23 -0
  1014. package/dist/index.es264.js.map +1 -0
  1015. package/dist/index.es265.js +23 -0
  1016. package/dist/index.es265.js.map +1 -0
  1017. package/dist/index.es266.js +23 -0
  1018. package/dist/index.es266.js.map +1 -0
  1019. package/dist/index.es267.js +23 -0
  1020. package/dist/index.es267.js.map +1 -0
  1021. package/dist/index.es268.js +23 -0
  1022. package/dist/index.es268.js.map +1 -0
  1023. package/dist/index.es269.js +23 -0
  1024. package/dist/index.es269.js.map +1 -0
  1025. package/dist/index.es27.js +61 -0
  1026. package/dist/index.es27.js.map +1 -0
  1027. package/dist/index.es270.js +23 -0
  1028. package/dist/index.es270.js.map +1 -0
  1029. package/dist/index.es271.js +23 -0
  1030. package/dist/index.es271.js.map +1 -0
  1031. package/dist/index.es272.js +23 -0
  1032. package/dist/index.es272.js.map +1 -0
  1033. package/dist/index.es273.js +23 -0
  1034. package/dist/index.es273.js.map +1 -0
  1035. package/dist/index.es274.js +23 -0
  1036. package/dist/index.es274.js.map +1 -0
  1037. package/dist/index.es275.js +23 -0
  1038. package/dist/index.es275.js.map +1 -0
  1039. package/dist/index.es276.js +23 -0
  1040. package/dist/index.es276.js.map +1 -0
  1041. package/dist/index.es277.js +23 -0
  1042. package/dist/index.es277.js.map +1 -0
  1043. package/dist/index.es278.js +23 -0
  1044. package/dist/index.es278.js.map +1 -0
  1045. package/dist/index.es279.js +23 -0
  1046. package/dist/index.es279.js.map +1 -0
  1047. package/dist/index.es28.js +74 -0
  1048. package/dist/index.es28.js.map +1 -0
  1049. package/dist/index.es280.js +23 -0
  1050. package/dist/index.es280.js.map +1 -0
  1051. package/dist/index.es281.js +7 -0
  1052. package/dist/index.es281.js.map +1 -0
  1053. package/dist/index.es282.js +8 -0
  1054. package/dist/index.es282.js.map +1 -0
  1055. package/dist/index.es283.js +12 -0
  1056. package/dist/index.es283.js.map +1 -0
  1057. package/dist/index.es284.js +75 -0
  1058. package/dist/index.es284.js.map +1 -0
  1059. package/dist/index.es285.js +5 -0
  1060. package/dist/index.es285.js.map +1 -0
  1061. package/dist/index.es286.js +79 -0
  1062. package/dist/index.es286.js.map +1 -0
  1063. package/dist/index.es287.js +96 -0
  1064. package/dist/index.es287.js.map +1 -0
  1065. package/dist/index.es288.js +5 -0
  1066. package/dist/index.es288.js.map +1 -0
  1067. package/dist/index.es289.js +5 -0
  1068. package/dist/index.es289.js.map +1 -0
  1069. package/dist/index.es29.js +9 -0
  1070. package/dist/index.es29.js.map +1 -0
  1071. package/dist/index.es290.js +11 -0
  1072. package/dist/index.es290.js.map +1 -0
  1073. package/dist/index.es291.js +11 -0
  1074. package/dist/index.es291.js.map +1 -0
  1075. package/dist/index.es292.js +11 -0
  1076. package/dist/index.es292.js.map +1 -0
  1077. package/dist/index.es293.js +11 -0
  1078. package/dist/index.es293.js.map +1 -0
  1079. package/dist/index.es294.js +11 -0
  1080. package/dist/index.es294.js.map +1 -0
  1081. package/dist/index.es295.js +11 -0
  1082. package/dist/index.es295.js.map +1 -0
  1083. package/dist/index.es296.js +11 -0
  1084. package/dist/index.es296.js.map +1 -0
  1085. package/dist/index.es297.js +11 -0
  1086. package/dist/index.es297.js.map +1 -0
  1087. package/dist/index.es298.js +11 -0
  1088. package/dist/index.es298.js.map +1 -0
  1089. package/dist/index.es299.js +11 -0
  1090. package/dist/index.es299.js.map +1 -0
  1091. package/dist/index.es3.js +69 -0
  1092. package/dist/index.es3.js.map +1 -0
  1093. package/dist/index.es30.js +20 -0
  1094. package/dist/index.es30.js.map +1 -0
  1095. package/dist/index.es300.js +11 -0
  1096. package/dist/index.es300.js.map +1 -0
  1097. package/dist/index.es301.js +11 -0
  1098. package/dist/index.es301.js.map +1 -0
  1099. package/dist/index.es302.js +11 -0
  1100. package/dist/index.es302.js.map +1 -0
  1101. package/dist/index.es303.js +11 -0
  1102. package/dist/index.es303.js.map +1 -0
  1103. package/dist/index.es304.js +11 -0
  1104. package/dist/index.es304.js.map +1 -0
  1105. package/dist/index.es305.js +11 -0
  1106. package/dist/index.es305.js.map +1 -0
  1107. package/dist/index.es306.js +11 -0
  1108. package/dist/index.es306.js.map +1 -0
  1109. package/dist/index.es307.js +11 -0
  1110. package/dist/index.es307.js.map +1 -0
  1111. package/dist/index.es308.js +11 -0
  1112. package/dist/index.es308.js.map +1 -0
  1113. package/dist/index.es309.js +11 -0
  1114. package/dist/index.es309.js.map +1 -0
  1115. package/dist/index.es31.js +1103 -0
  1116. package/dist/index.es31.js.map +1 -0
  1117. package/dist/index.es310.js +11 -0
  1118. package/dist/index.es310.js.map +1 -0
  1119. package/dist/index.es311.js +11 -0
  1120. package/dist/index.es311.js.map +1 -0
  1121. package/dist/index.es312.js +11 -0
  1122. package/dist/index.es312.js.map +1 -0
  1123. package/dist/index.es313.js +11 -0
  1124. package/dist/index.es313.js.map +1 -0
  1125. package/dist/index.es314.js +11 -0
  1126. package/dist/index.es314.js.map +1 -0
  1127. package/dist/index.es315.js +11 -0
  1128. package/dist/index.es315.js.map +1 -0
  1129. package/dist/index.es316.js +11 -0
  1130. package/dist/index.es316.js.map +1 -0
  1131. package/dist/index.es317.js +11 -0
  1132. package/dist/index.es317.js.map +1 -0
  1133. package/dist/index.es318.js +11 -0
  1134. package/dist/index.es318.js.map +1 -0
  1135. package/dist/index.es319.js +11 -0
  1136. package/dist/index.es319.js.map +1 -0
  1137. package/dist/index.es32.js +8 -0
  1138. package/dist/index.es32.js.map +1 -0
  1139. package/dist/index.es320.js +11 -0
  1140. package/dist/index.es320.js.map +1 -0
  1141. package/dist/index.es321.js +11 -0
  1142. package/dist/index.es321.js.map +1 -0
  1143. package/dist/index.es322.js +11 -0
  1144. package/dist/index.es322.js.map +1 -0
  1145. package/dist/index.es323.js +11 -0
  1146. package/dist/index.es323.js.map +1 -0
  1147. package/dist/index.es33.js +171 -0
  1148. package/dist/index.es33.js.map +1 -0
  1149. package/dist/index.es34.js +371 -0
  1150. package/dist/index.es34.js.map +1 -0
  1151. package/dist/index.es35.js +18 -0
  1152. package/dist/index.es35.js.map +1 -0
  1153. package/dist/index.es36.js +20 -0
  1154. package/dist/index.es36.js.map +1 -0
  1155. package/dist/index.es37.js +19 -0
  1156. package/dist/index.es37.js.map +1 -0
  1157. package/dist/index.es38.js +2030 -0
  1158. package/dist/index.es38.js.map +1 -0
  1159. package/dist/index.es39.js +3058 -0
  1160. package/dist/index.es39.js.map +1 -0
  1161. package/dist/index.es4.js +6 -0
  1162. package/dist/index.es4.js.map +1 -0
  1163. package/dist/index.es40.js +16 -0
  1164. package/dist/index.es40.js.map +1 -0
  1165. package/dist/index.es41.js +13 -0
  1166. package/dist/index.es41.js.map +1 -0
  1167. package/dist/index.es42.js +20 -0
  1168. package/dist/index.es42.js.map +1 -0
  1169. package/dist/index.es43.js +10 -0
  1170. package/dist/index.es43.js.map +1 -0
  1171. package/dist/index.es44.js +60 -0
  1172. package/dist/index.es44.js.map +1 -0
  1173. package/dist/index.es45.js +44 -0
  1174. package/dist/index.es45.js.map +1 -0
  1175. package/dist/index.es46.js +103 -0
  1176. package/dist/index.es46.js.map +1 -0
  1177. package/dist/index.es47.js +36 -0
  1178. package/dist/index.es47.js.map +1 -0
  1179. package/dist/index.es48.js +31 -0
  1180. package/dist/index.es48.js.map +1 -0
  1181. package/dist/index.es49.js +21 -0
  1182. package/dist/index.es49.js.map +1 -0
  1183. package/dist/index.es5.js +52 -0
  1184. package/dist/index.es5.js.map +1 -0
  1185. package/dist/index.es50.js +56 -0
  1186. package/dist/index.es50.js.map +1 -0
  1187. package/dist/index.es51.js +58 -0
  1188. package/dist/index.es51.js.map +1 -0
  1189. package/dist/index.es52.js +221 -0
  1190. package/dist/index.es52.js.map +1 -0
  1191. package/dist/index.es53.js +8 -0
  1192. package/dist/index.es53.js.map +1 -0
  1193. package/dist/index.es54.js +88 -0
  1194. package/dist/index.es54.js.map +1 -0
  1195. package/dist/index.es55.js +155 -0
  1196. package/dist/index.es55.js.map +1 -0
  1197. package/dist/index.es56.js +155 -0
  1198. package/dist/index.es56.js.map +1 -0
  1199. package/dist/index.es57.js +25 -0
  1200. package/dist/index.es57.js.map +1 -0
  1201. package/dist/index.es58.js +112 -0
  1202. package/dist/index.es58.js.map +1 -0
  1203. package/dist/index.es59.js +28 -0
  1204. package/dist/index.es59.js.map +1 -0
  1205. package/dist/index.es6.js +65 -0
  1206. package/dist/index.es6.js.map +1 -0
  1207. package/dist/index.es60.js +42 -0
  1208. package/dist/index.es60.js.map +1 -0
  1209. package/dist/index.es61.js +24 -0
  1210. package/dist/index.es61.js.map +1 -0
  1211. package/dist/index.es62.js +220 -0
  1212. package/dist/index.es62.js.map +1 -0
  1213. package/dist/index.es63.js +16 -0
  1214. package/dist/index.es63.js.map +1 -0
  1215. package/dist/index.es64.js +20 -0
  1216. package/dist/index.es64.js.map +1 -0
  1217. package/dist/index.es65.js +15 -0
  1218. package/dist/index.es65.js.map +1 -0
  1219. package/dist/index.es66.js +22 -0
  1220. package/dist/index.es66.js.map +1 -0
  1221. package/dist/index.es67.js +14 -0
  1222. package/dist/index.es67.js.map +1 -0
  1223. package/dist/index.es68.js +40 -0
  1224. package/dist/index.es68.js.map +1 -0
  1225. package/dist/index.es69.js +23 -0
  1226. package/dist/index.es69.js.map +1 -0
  1227. package/dist/index.es7.js +63 -0
  1228. package/dist/index.es7.js.map +1 -0
  1229. package/dist/index.es70.js +16 -0
  1230. package/dist/index.es70.js.map +1 -0
  1231. package/dist/index.es71.js +111 -0
  1232. package/dist/index.es71.js.map +1 -0
  1233. package/dist/index.es72.js +18 -0
  1234. package/dist/index.es72.js.map +1 -0
  1235. package/dist/index.es73.js +5 -0
  1236. package/dist/index.es73.js.map +1 -0
  1237. package/dist/index.es74.js +29 -0
  1238. package/dist/index.es74.js.map +1 -0
  1239. package/dist/index.es75.js +609 -0
  1240. package/dist/index.es75.js.map +1 -0
  1241. package/dist/index.es76.js +111 -0
  1242. package/dist/index.es76.js.map +1 -0
  1243. package/dist/index.es77.js +121 -0
  1244. package/dist/index.es77.js.map +1 -0
  1245. package/dist/index.es78.js +189 -0
  1246. package/dist/index.es78.js.map +1 -0
  1247. package/dist/index.es79.js +66 -0
  1248. package/dist/index.es79.js.map +1 -0
  1249. package/dist/index.es8.js +71 -0
  1250. package/dist/index.es8.js.map +1 -0
  1251. package/dist/index.es80.js +35 -0
  1252. package/dist/index.es80.js.map +1 -0
  1253. package/dist/index.es81.js +23 -0
  1254. package/dist/index.es81.js.map +1 -0
  1255. package/dist/index.es82.js +160 -0
  1256. package/dist/index.es82.js.map +1 -0
  1257. package/dist/index.es83.js +30 -0
  1258. package/dist/index.es83.js.map +1 -0
  1259. package/dist/index.es84.js +13 -0
  1260. package/dist/index.es84.js.map +1 -0
  1261. package/dist/index.es85.js +1761 -0
  1262. package/dist/index.es85.js.map +1 -0
  1263. package/dist/index.es86.js +5 -0
  1264. package/dist/index.es86.js.map +1 -0
  1265. package/dist/index.es87.js +5 -0
  1266. package/dist/index.es87.js.map +1 -0
  1267. package/dist/index.es88.js +215 -0
  1268. package/dist/index.es88.js.map +1 -0
  1269. package/dist/index.es89.js +99 -0
  1270. package/dist/index.es89.js.map +1 -0
  1271. package/dist/index.es9.js +241 -0
  1272. package/dist/index.es9.js.map +1 -0
  1273. package/dist/index.es90.js +136 -0
  1274. package/dist/index.es90.js.map +1 -0
  1275. package/dist/index.es91.js +8 -0
  1276. package/dist/index.es91.js.map +1 -0
  1277. package/dist/index.es92.js +7 -0
  1278. package/dist/index.es92.js.map +1 -0
  1279. package/dist/index.es93.js +129 -0
  1280. package/dist/index.es93.js.map +1 -0
  1281. package/dist/index.es94.js +33 -0
  1282. package/dist/index.es94.js.map +1 -0
  1283. package/dist/index.es95.js +55 -0
  1284. package/dist/index.es95.js.map +1 -0
  1285. package/dist/index.es96.js +48 -0
  1286. package/dist/index.es96.js.map +1 -0
  1287. package/dist/index.es97.js +41 -0
  1288. package/dist/index.es97.js.map +1 -0
  1289. package/dist/index.es98.js +117 -0
  1290. package/dist/index.es98.js.map +1 -0
  1291. package/dist/index.es99.js +81 -0
  1292. package/dist/index.es99.js.map +1 -0
  1293. package/dist/src/components/Breadcrumbs/Breadcrumbs.d.ts +1 -1
  1294. package/dist/src/components/Calendar/Calendar.d.ts +1 -1
  1295. package/dist/src/components/Calendar/CalendarButton.d.ts +1 -1
  1296. package/dist/src/components/Calendar/CalendarCell.d.ts +1 -1
  1297. package/dist/src/components/Calendar/CalendarMonth.d.ts +1 -1
  1298. package/dist/src/components/Calendar/CalendarRange.d.ts +1 -1
  1299. package/dist/src/components/Calendar/CalendarYear.d.ts +1 -1
  1300. package/dist/src/components/DatePicker/DatePicker.d.ts +1 -1
  1301. package/dist/src/components/DatePicker/DateRangePicker.d.ts +1 -1
  1302. package/dist/src/components/DatePicker/FilterDate.d.ts +1 -1
  1303. package/dist/src/components/Pagination/Pagination.d.ts +1 -1
  1304. package/dist/src/components/RadioCheckbox/RadioCheckboxLabel.d.ts +1 -1
  1305. package/dist/src/components/Switch/Switch.d.ts +1 -1
  1306. package/dist/src/components/TPublish/TPublish.d.ts +1 -1
  1307. package/dist/src/components/Table/Table.d.ts +3 -3
  1308. package/dist/src/components/Tabs/TabPanel.d.ts +1 -1
  1309. package/dist/src/components/Tabs/Tabs.d.ts +1 -1
  1310. package/package.json +10 -12
  1311. package/dist/index.umd.js +0 -93
  1312. package/dist/index.umd.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es39.js","sources":["../node_modules/react-virtuoso/dist/index.mjs"],"sourcesContent":["import React from \"react\";\nimport ReactDOM from \"react-dom\";\nconst PUBLISH = 0;\nconst SUBSCRIBE = 1;\nconst RESET = 2;\nconst VALUE = 4;\nfunction compose(a, b) {\n return (arg) => a(b(arg));\n}\nfunction thrush(arg, proc) {\n return proc(arg);\n}\nfunction curry2to1(proc, arg1) {\n return (arg2) => proc(arg1, arg2);\n}\nfunction curry1to0(proc, arg) {\n return () => proc(arg);\n}\nfunction tap(arg, proc) {\n proc(arg);\n return arg;\n}\nfunction tup(...args) {\n return args;\n}\nfunction call(proc) {\n proc();\n}\nfunction always(value) {\n return () => value;\n}\nfunction joinProc(...procs) {\n return () => {\n procs.map(call);\n };\n}\nfunction isDefined(arg) {\n return arg !== void 0;\n}\nfunction noop() {\n}\nfunction subscribe(emitter, subscription) {\n return emitter(SUBSCRIBE, subscription);\n}\nfunction publish(publisher, value) {\n publisher(PUBLISH, value);\n}\nfunction reset(emitter) {\n emitter(RESET);\n}\nfunction getValue(depot) {\n return depot(VALUE);\n}\nfunction connect(emitter, publisher) {\n return subscribe(emitter, curry2to1(publisher, PUBLISH));\n}\nfunction handleNext(emitter, subscription) {\n const unsub = emitter(SUBSCRIBE, (value) => {\n unsub();\n subscription(value);\n });\n return unsub;\n}\nfunction stream() {\n const subscriptions = [];\n return (action, arg) => {\n switch (action) {\n case RESET:\n subscriptions.splice(0, subscriptions.length);\n return;\n case SUBSCRIBE:\n subscriptions.push(arg);\n return () => {\n const indexOf = subscriptions.indexOf(arg);\n if (indexOf > -1) {\n subscriptions.splice(indexOf, 1);\n }\n };\n case PUBLISH:\n subscriptions.slice().forEach((subscription) => {\n subscription(arg);\n });\n return;\n default:\n throw new Error(`unrecognized action ${action}`);\n }\n };\n}\nfunction statefulStream(initial) {\n let value = initial;\n const innerSubject = stream();\n return (action, arg) => {\n switch (action) {\n case SUBSCRIBE:\n const subscription = arg;\n subscription(value);\n break;\n case PUBLISH:\n value = arg;\n break;\n case VALUE:\n return value;\n }\n return innerSubject(action, arg);\n };\n}\nfunction eventHandler(emitter) {\n let unsub;\n let currentSubscription;\n const cleanup = () => unsub && unsub();\n return function(action, subscription) {\n switch (action) {\n case SUBSCRIBE:\n if (subscription) {\n if (currentSubscription === subscription) {\n return;\n }\n cleanup();\n currentSubscription = subscription;\n unsub = subscribe(emitter, subscription);\n return unsub;\n } else {\n cleanup();\n return noop;\n }\n case RESET:\n cleanup();\n currentSubscription = null;\n return;\n default:\n throw new Error(`unrecognized action ${action}`);\n }\n };\n}\nfunction streamFromEmitter(emitter) {\n return tap(stream(), (stream2) => connect(emitter, stream2));\n}\nfunction statefulStreamFromEmitter(emitter, initial) {\n return tap(statefulStream(initial), (stream2) => connect(emitter, stream2));\n}\nfunction combineOperators(...operators) {\n return (subscriber) => {\n return operators.reduceRight(thrush, subscriber);\n };\n}\nfunction pipe(source, ...operators) {\n const project = combineOperators(...operators);\n return (action, subscription) => {\n switch (action) {\n case SUBSCRIBE:\n return subscribe(source, project(subscription));\n case RESET:\n reset(source);\n return;\n }\n };\n}\nfunction defaultComparator(previous, next) {\n return previous === next;\n}\nfunction distinctUntilChanged(comparator = defaultComparator) {\n let current;\n return (done) => (next) => {\n if (!comparator(current, next)) {\n current = next;\n done(next);\n }\n };\n}\nfunction filter(predicate) {\n return (done) => (value) => {\n predicate(value) && done(value);\n };\n}\nfunction map(project) {\n return (done) => compose(done, project);\n}\nfunction mapTo(value) {\n return (done) => () => done(value);\n}\nfunction scan(scanner, initial) {\n return (done) => (value) => done(initial = scanner(initial, value));\n}\nfunction skip(times) {\n return (done) => (value) => {\n times > 0 ? times-- : done(value);\n };\n}\nfunction throttleTime(interval) {\n let currentValue = null;\n let timeout;\n return (done) => (value) => {\n currentValue = value;\n if (timeout) {\n return;\n }\n timeout = setTimeout(() => {\n timeout = void 0;\n done(currentValue);\n }, interval);\n };\n}\nfunction debounceTime(interval) {\n let currentValue;\n let timeout;\n return (done) => (value) => {\n currentValue = value;\n if (timeout) {\n clearTimeout(timeout);\n }\n timeout = setTimeout(() => {\n done(currentValue);\n }, interval);\n };\n}\nfunction withLatestFrom(...sources) {\n const values = new Array(sources.length);\n let called = 0;\n let pendingCall = null;\n const allCalled = Math.pow(2, sources.length) - 1;\n sources.forEach((source, index) => {\n const bit = Math.pow(2, index);\n subscribe(source, (value) => {\n const prevCalled = called;\n called = called | bit;\n values[index] = value;\n if (prevCalled !== allCalled && called === allCalled && pendingCall) {\n pendingCall();\n pendingCall = null;\n }\n });\n });\n return (done) => (value) => {\n const call2 = () => done([value].concat(values));\n if (called === allCalled) {\n call2();\n } else {\n pendingCall = call2;\n }\n };\n}\nfunction merge(...sources) {\n return function(action, subscription) {\n switch (action) {\n case SUBSCRIBE:\n return joinProc(...sources.map((source) => subscribe(source, subscription)));\n case RESET:\n return;\n default:\n throw new Error(`unrecognized action ${action}`);\n }\n };\n}\nfunction duc(source, comparator = defaultComparator) {\n return pipe(source, distinctUntilChanged(comparator));\n}\nfunction combineLatest(...emitters) {\n const innerSubject = stream();\n const values = new Array(emitters.length);\n let called = 0;\n const allCalled = Math.pow(2, emitters.length) - 1;\n emitters.forEach((source, index) => {\n const bit = Math.pow(2, index);\n subscribe(source, (value) => {\n values[index] = value;\n called = called | bit;\n if (called === allCalled) {\n publish(innerSubject, values);\n }\n });\n });\n return function(action, subscription) {\n switch (action) {\n case SUBSCRIBE:\n if (called === allCalled) {\n subscription(values);\n }\n return subscribe(innerSubject, subscription);\n case RESET:\n return reset(innerSubject);\n default:\n throw new Error(`unrecognized action ${action}`);\n }\n };\n}\nfunction system(constructor, dependencies = [], { singleton } = { singleton: true }) {\n return {\n id: id(),\n constructor,\n dependencies,\n singleton\n };\n}\nconst id = () => Symbol();\nfunction init(systemSpec) {\n const singletons = /* @__PURE__ */ new Map();\n const _init = ({ id: id2, constructor, dependencies, singleton }) => {\n if (singleton && singletons.has(id2)) {\n return singletons.get(id2);\n }\n const system2 = constructor(dependencies.map((e) => _init(e)));\n if (singleton) {\n singletons.set(id2, system2);\n }\n return system2;\n };\n return _init(systemSpec);\n}\nfunction omit(keys, obj) {\n const result = {};\n const index = {};\n let idx = 0;\n const len = keys.length;\n while (idx < len) {\n index[keys[idx]] = 1;\n idx += 1;\n }\n for (const prop in obj) {\n if (!index.hasOwnProperty(prop)) {\n result[prop] = obj[prop];\n }\n }\n return result;\n}\nconst useIsomorphicLayoutEffect$2 = typeof document !== \"undefined\" ? React.useLayoutEffect : React.useEffect;\nfunction systemToComponent(systemSpec, map2, Root) {\n const requiredPropNames = Object.keys(map2.required || {});\n const optionalPropNames = Object.keys(map2.optional || {});\n const methodNames = Object.keys(map2.methods || {});\n const eventNames = Object.keys(map2.events || {});\n const Context = React.createContext({});\n function applyPropsToSystem(system2, props) {\n if (system2[\"propsReady\"]) {\n publish(system2[\"propsReady\"], false);\n }\n for (const requiredPropName of requiredPropNames) {\n const stream2 = system2[map2.required[requiredPropName]];\n publish(stream2, props[requiredPropName]);\n }\n for (const optionalPropName of optionalPropNames) {\n if (optionalPropName in props) {\n const stream2 = system2[map2.optional[optionalPropName]];\n publish(stream2, props[optionalPropName]);\n }\n }\n if (system2[\"propsReady\"]) {\n publish(system2[\"propsReady\"], true);\n }\n }\n function buildMethods(system2) {\n return methodNames.reduce((acc, methodName) => {\n acc[methodName] = (value) => {\n const stream2 = system2[map2.methods[methodName]];\n publish(stream2, value);\n };\n return acc;\n }, {});\n }\n function buildEventHandlers(system2) {\n return eventNames.reduce((handlers, eventName) => {\n handlers[eventName] = eventHandler(system2[map2.events[eventName]]);\n return handlers;\n }, {});\n }\n const Component = React.forwardRef((propsWithChildren, ref) => {\n const { children, ...props } = propsWithChildren;\n const [system2] = React.useState(() => {\n return tap(init(systemSpec), (system22) => applyPropsToSystem(system22, props));\n });\n const [handlers] = React.useState(curry1to0(buildEventHandlers, system2));\n useIsomorphicLayoutEffect$2(() => {\n for (const eventName of eventNames) {\n if (eventName in props) {\n subscribe(handlers[eventName], props[eventName]);\n }\n }\n return () => {\n Object.values(handlers).map(reset);\n };\n }, [props, handlers, system2]);\n useIsomorphicLayoutEffect$2(() => {\n applyPropsToSystem(system2, props);\n });\n React.useImperativeHandle(ref, always(buildMethods(system2)));\n return React.createElement(\n Context.Provider,\n { value: system2 },\n Root ? React.createElement(\n Root,\n omit([...requiredPropNames, ...optionalPropNames, ...eventNames], props),\n children\n ) : children\n );\n });\n const usePublisher2 = (key) => {\n return React.useCallback(curry2to1(publish, React.useContext(Context)[key]), [key]);\n };\n const useEmitterValue18 = (key) => {\n const system2 = React.useContext(Context);\n const source = system2[key];\n const cb = React.useCallback(\n (c) => {\n return subscribe(source, c);\n },\n [source]\n );\n return React.useSyncExternalStore(\n cb,\n () => getValue(source),\n () => getValue(source)\n );\n };\n const useEmitterValueLegacy = (key) => {\n const system2 = React.useContext(Context);\n const source = system2[key];\n const [value, setValue] = React.useState(curry1to0(getValue, source));\n useIsomorphicLayoutEffect$2(\n () => subscribe(source, (next) => {\n if (next !== value) {\n setValue(always(next));\n }\n }),\n [source, value]\n );\n return value;\n };\n const useEmitterValue2 = React.version.startsWith(\"18\") ? useEmitterValue18 : useEmitterValueLegacy;\n const useEmitter2 = (key, callback) => {\n const context = React.useContext(Context);\n const source = context[key];\n useIsomorphicLayoutEffect$2(() => subscribe(source, callback), [callback, source]);\n };\n return {\n Component,\n usePublisher: usePublisher2,\n useEmitterValue: useEmitterValue2,\n useEmitter: useEmitter2\n };\n}\nconst useIsomorphicLayoutEffect = typeof document !== \"undefined\" ? React.useLayoutEffect : React.useEffect;\nconst useIsomorphicLayoutEffect$1 = useIsomorphicLayoutEffect;\nvar LogLevel = /* @__PURE__ */ ((LogLevel2) => {\n LogLevel2[LogLevel2[\"DEBUG\"] = 0] = \"DEBUG\";\n LogLevel2[LogLevel2[\"INFO\"] = 1] = \"INFO\";\n LogLevel2[LogLevel2[\"WARN\"] = 2] = \"WARN\";\n LogLevel2[LogLevel2[\"ERROR\"] = 3] = \"ERROR\";\n return LogLevel2;\n})(LogLevel || {});\nconst CONSOLE_METHOD_MAP = {\n [\n 0\n /* DEBUG */\n ]: \"debug\",\n [\n 1\n /* INFO */\n ]: \"log\",\n [\n 2\n /* WARN */\n ]: \"warn\",\n [\n 3\n /* ERROR */\n ]: \"error\"\n};\nconst getGlobalThis = () => typeof globalThis === \"undefined\" ? window : globalThis;\nconst loggerSystem = system(\n () => {\n const logLevel = statefulStream(\n 3\n /* ERROR */\n );\n const log = statefulStream((label, message, level = 1) => {\n var _a;\n const currentLevel = (_a = getGlobalThis()[\"VIRTUOSO_LOG_LEVEL\"]) != null ? _a : getValue(logLevel);\n if (level >= currentLevel) {\n console[CONSOLE_METHOD_MAP[level]](\n \"%creact-virtuoso: %c%s %o\",\n \"color: #0253b3; font-weight: bold\",\n \"color: initial\",\n label,\n message\n );\n }\n });\n return {\n log,\n logLevel\n };\n },\n [],\n { singleton: true }\n);\nfunction useSizeWithElRef(callback, enabled = true) {\n const ref = React.useRef(null);\n let callbackRef = (_el) => {\n };\n if (typeof ResizeObserver !== \"undefined\") {\n const observer = React.useMemo(() => {\n return new ResizeObserver((entries) => {\n requestAnimationFrame(() => {\n const element = entries[0].target;\n if (element.offsetParent !== null) {\n callback(element);\n }\n });\n });\n }, [callback]);\n callbackRef = (elRef) => {\n if (elRef && enabled) {\n observer.observe(elRef);\n ref.current = elRef;\n } else {\n if (ref.current) {\n observer.unobserve(ref.current);\n }\n ref.current = null;\n }\n };\n }\n return { ref, callbackRef };\n}\nfunction useSize(callback, enabled = true) {\n return useSizeWithElRef(callback, enabled).callbackRef;\n}\nfunction useChangedListContentsSizes(callback, itemSize, enabled, scrollContainerStateCallback, log, gap, customScrollParent) {\n const memoedCallback = React.useCallback(\n (el) => {\n const ranges = getChangedChildSizes(el.children, itemSize, \"offsetHeight\", log);\n let scrollableElement = el.parentElement;\n while (!scrollableElement.dataset[\"virtuosoScroller\"]) {\n scrollableElement = scrollableElement.parentElement;\n }\n const windowScrolling = scrollableElement.lastElementChild.dataset[\"viewportType\"] === \"window\";\n const scrollTop = customScrollParent ? customScrollParent.scrollTop : windowScrolling ? window.pageYOffset || document.documentElement.scrollTop : scrollableElement.scrollTop;\n const scrollHeight = customScrollParent ? customScrollParent.scrollHeight : windowScrolling ? document.documentElement.scrollHeight : scrollableElement.scrollHeight;\n const viewportHeight = customScrollParent ? customScrollParent.offsetHeight : windowScrolling ? window.innerHeight : scrollableElement.offsetHeight;\n scrollContainerStateCallback({\n scrollTop: Math.max(scrollTop, 0),\n scrollHeight,\n viewportHeight\n });\n gap == null ? void 0 : gap(resolveGapValue$1(\"row-gap\", getComputedStyle(el).rowGap, log));\n if (ranges !== null) {\n callback(ranges);\n }\n },\n [callback, itemSize, log, gap, customScrollParent, scrollContainerStateCallback]\n );\n return useSizeWithElRef(memoedCallback, enabled);\n}\nfunction getChangedChildSizes(children, itemSize, field, log) {\n const length = children.length;\n if (length === 0) {\n return null;\n }\n const results = [];\n for (let i = 0; i < length; i++) {\n const child = children.item(i);\n if (!child || child.dataset.index === void 0) {\n continue;\n }\n const index = parseInt(child.dataset.index);\n const knownSize = parseFloat(child.dataset.knownSize);\n const size = itemSize(child, field);\n if (size === 0) {\n log(\"Zero-sized element, this should not happen\", { child }, LogLevel.ERROR);\n }\n if (size === knownSize) {\n continue;\n }\n const lastResult = results[results.length - 1];\n if (results.length === 0 || lastResult.size !== size || lastResult.endIndex !== index - 1) {\n results.push({ startIndex: index, endIndex: index, size });\n } else {\n results[results.length - 1].endIndex++;\n }\n }\n return results;\n}\nfunction resolveGapValue$1(property, value, log) {\n if (value !== \"normal\" && !(value == null ? void 0 : value.endsWith(\"px\"))) {\n log(`${property} was not resolved to pixel value correctly`, value, LogLevel.WARN);\n }\n if (value === \"normal\") {\n return 0;\n }\n return parseInt(value != null ? value : \"0\", 10);\n}\nfunction correctItemSize(el, dimension) {\n return Math.round(el.getBoundingClientRect()[dimension]);\n}\nfunction approximatelyEqual(num1, num2) {\n return Math.abs(num1 - num2) < 1.01;\n}\nfunction useScrollTop(scrollContainerStateCallback, smoothScrollTargetReached, scrollerElement, scrollerRefCallback = noop, customScrollParent) {\n const scrollerRef = React.useRef(null);\n const scrollTopTarget = React.useRef(null);\n const timeoutRef = React.useRef(null);\n const handler = React.useCallback(\n (ev) => {\n const el = ev.target;\n const windowScroll = el === window || el === document;\n const scrollTop = windowScroll ? window.pageYOffset || document.documentElement.scrollTop : el.scrollTop;\n const scrollHeight = windowScroll ? document.documentElement.scrollHeight : el.scrollHeight;\n const viewportHeight = windowScroll ? window.innerHeight : el.offsetHeight;\n const call2 = () => {\n scrollContainerStateCallback({\n scrollTop: Math.max(scrollTop, 0),\n scrollHeight,\n viewportHeight\n });\n };\n if (ev.suppressFlushSync) {\n call2();\n } else {\n ReactDOM.flushSync(call2);\n }\n if (scrollTopTarget.current !== null) {\n if (scrollTop === scrollTopTarget.current || scrollTop <= 0 || scrollTop === scrollHeight - viewportHeight) {\n scrollTopTarget.current = null;\n smoothScrollTargetReached(true);\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n }\n }\n }\n },\n [scrollContainerStateCallback, smoothScrollTargetReached]\n );\n React.useEffect(() => {\n const localRef = customScrollParent ? customScrollParent : scrollerRef.current;\n scrollerRefCallback(customScrollParent ? customScrollParent : scrollerRef.current);\n handler({ target: localRef, suppressFlushSync: true });\n localRef.addEventListener(\"scroll\", handler, { passive: true });\n return () => {\n scrollerRefCallback(null);\n localRef.removeEventListener(\"scroll\", handler);\n };\n }, [scrollerRef, handler, scrollerElement, scrollerRefCallback, customScrollParent]);\n function scrollToCallback(location) {\n const scrollerElement2 = scrollerRef.current;\n if (!scrollerElement2 || \"offsetHeight\" in scrollerElement2 && scrollerElement2.offsetHeight === 0) {\n return;\n }\n const isSmooth = location.behavior === \"smooth\";\n let offsetHeight;\n let scrollHeight;\n let scrollTop;\n if (scrollerElement2 === window) {\n scrollHeight = Math.max(correctItemSize(document.documentElement, \"height\"), document.documentElement.scrollHeight);\n offsetHeight = window.innerHeight;\n scrollTop = document.documentElement.scrollTop;\n } else {\n scrollHeight = scrollerElement2.scrollHeight;\n offsetHeight = correctItemSize(scrollerElement2, \"height\");\n scrollTop = scrollerElement2.scrollTop;\n }\n const maxScrollTop = scrollHeight - offsetHeight;\n location.top = Math.ceil(Math.max(Math.min(maxScrollTop, location.top), 0));\n if (approximatelyEqual(offsetHeight, scrollHeight) || location.top === scrollTop) {\n scrollContainerStateCallback({ scrollTop, scrollHeight, viewportHeight: offsetHeight });\n if (isSmooth) {\n smoothScrollTargetReached(true);\n }\n return;\n }\n if (isSmooth) {\n scrollTopTarget.current = location.top;\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n timeoutRef.current = setTimeout(() => {\n timeoutRef.current = null;\n scrollTopTarget.current = null;\n smoothScrollTargetReached(true);\n }, 1e3);\n } else {\n scrollTopTarget.current = null;\n }\n scrollerElement2.scrollTo(location);\n }\n function scrollByCallback(location) {\n scrollerRef.current.scrollBy(location);\n }\n return { scrollerRef, scrollByCallback, scrollToCallback };\n}\nconst domIOSystem = system(\n () => {\n const scrollContainerState = stream();\n const scrollTop = stream();\n const deviation = statefulStream(0);\n const smoothScrollTargetReached = stream();\n const statefulScrollTop = statefulStream(0);\n const viewportHeight = stream();\n const scrollHeight = stream();\n const headerHeight = statefulStream(0);\n const fixedHeaderHeight = statefulStream(0);\n const fixedFooterHeight = statefulStream(0);\n const footerHeight = statefulStream(0);\n const scrollTo = stream();\n const scrollBy = stream();\n const scrollingInProgress = statefulStream(false);\n connect(\n pipe(\n scrollContainerState,\n map(({ scrollTop: scrollTop2 }) => scrollTop2)\n ),\n scrollTop\n );\n connect(\n pipe(\n scrollContainerState,\n map(({ scrollHeight: scrollHeight2 }) => scrollHeight2)\n ),\n scrollHeight\n );\n connect(scrollTop, statefulScrollTop);\n return {\n // input\n scrollContainerState,\n scrollTop,\n viewportHeight,\n headerHeight,\n fixedHeaderHeight,\n fixedFooterHeight,\n footerHeight,\n scrollHeight,\n smoothScrollTargetReached,\n // signals\n scrollTo,\n scrollBy,\n // state\n statefulScrollTop,\n deviation,\n scrollingInProgress\n };\n },\n [],\n { singleton: true }\n);\nconst NIL_NODE = { lvl: 0 };\nfunction newAANode(k, v, lvl, l = NIL_NODE, r = NIL_NODE) {\n return { k, v, lvl, l, r };\n}\nfunction empty(node) {\n return node === NIL_NODE;\n}\nfunction newTree() {\n return NIL_NODE;\n}\nfunction remove(node, key) {\n if (empty(node))\n return NIL_NODE;\n const { k, l, r } = node;\n if (key === k) {\n if (empty(l)) {\n return r;\n } else if (empty(r)) {\n return l;\n } else {\n const [lastKey, lastValue] = last(l);\n return adjust(clone(node, { k: lastKey, v: lastValue, l: deleteLast(l) }));\n }\n } else if (key < k) {\n return adjust(clone(node, { l: remove(l, key) }));\n } else {\n return adjust(clone(node, { r: remove(r, key) }));\n }\n}\nfunction find(node, key) {\n if (empty(node)) {\n return;\n }\n if (key === node.k) {\n return node.v;\n } else if (key < node.k) {\n return find(node.l, key);\n } else {\n return find(node.r, key);\n }\n}\nfunction findMaxKeyValue(node, value, field = \"k\") {\n if (empty(node)) {\n return [-Infinity, void 0];\n }\n if (Number(node[field]) === value) {\n return [node.k, node.v];\n }\n if (Number(node[field]) < value) {\n const r = findMaxKeyValue(node.r, value, field);\n if (r[0] === -Infinity) {\n return [node.k, node.v];\n } else {\n return r;\n }\n }\n return findMaxKeyValue(node.l, value, field);\n}\nfunction insert(node, k, v) {\n if (empty(node)) {\n return newAANode(k, v, 1);\n }\n if (k === node.k) {\n return clone(node, { k, v });\n } else if (k < node.k) {\n return rebalance(clone(node, { l: insert(node.l, k, v) }));\n } else {\n return rebalance(clone(node, { r: insert(node.r, k, v) }));\n }\n}\nfunction walkWithin(node, start, end) {\n if (empty(node)) {\n return [];\n }\n const { k, v, l, r } = node;\n let result = [];\n if (k > start) {\n result = result.concat(walkWithin(l, start, end));\n }\n if (k >= start && k <= end) {\n result.push({ k, v });\n }\n if (k <= end) {\n result = result.concat(walkWithin(r, start, end));\n }\n return result;\n}\nfunction walk(node) {\n if (empty(node)) {\n return [];\n }\n return [...walk(node.l), { k: node.k, v: node.v }, ...walk(node.r)];\n}\nfunction last(node) {\n return empty(node.r) ? [node.k, node.v] : last(node.r);\n}\nfunction deleteLast(node) {\n return empty(node.r) ? node.l : adjust(clone(node, { r: deleteLast(node.r) }));\n}\nfunction clone(node, args) {\n return newAANode(\n args.k !== void 0 ? args.k : node.k,\n args.v !== void 0 ? args.v : node.v,\n args.lvl !== void 0 ? args.lvl : node.lvl,\n args.l !== void 0 ? args.l : node.l,\n args.r !== void 0 ? args.r : node.r\n );\n}\nfunction isSingle(node) {\n return empty(node) || node.lvl > node.r.lvl;\n}\nfunction rebalance(node) {\n return split(skew(node));\n}\nfunction adjust(node) {\n const { l, r, lvl } = node;\n if (r.lvl >= lvl - 1 && l.lvl >= lvl - 1) {\n return node;\n } else if (lvl > r.lvl + 1) {\n if (isSingle(l)) {\n return skew(clone(node, { lvl: lvl - 1 }));\n } else {\n if (!empty(l) && !empty(l.r)) {\n return clone(l.r, {\n l: clone(l, { r: l.r.l }),\n r: clone(node, {\n l: l.r.r,\n lvl: lvl - 1\n }),\n lvl\n });\n } else {\n throw new Error(\"Unexpected empty nodes\");\n }\n }\n } else {\n if (isSingle(node)) {\n return split(clone(node, { lvl: lvl - 1 }));\n } else {\n if (!empty(r) && !empty(r.l)) {\n const rl = r.l;\n const rlvl = isSingle(rl) ? r.lvl - 1 : r.lvl;\n return clone(rl, {\n l: clone(node, {\n r: rl.l,\n lvl: lvl - 1\n }),\n r: split(clone(r, { l: rl.r, lvl: rlvl })),\n lvl: rl.lvl + 1\n });\n } else {\n throw new Error(\"Unexpected empty nodes\");\n }\n }\n }\n}\nfunction rangesWithin(node, startIndex, endIndex) {\n if (empty(node)) {\n return [];\n }\n const adjustedStart = findMaxKeyValue(node, startIndex)[0];\n return toRanges(walkWithin(node, adjustedStart, endIndex));\n}\nfunction arrayToRanges(items, parser) {\n const length = items.length;\n if (length === 0) {\n return [];\n }\n let { index: start, value } = parser(items[0]);\n const result = [];\n for (let i = 1; i < length; i++) {\n const { index: nextIndex, value: nextValue } = parser(items[i]);\n result.push({ start, end: nextIndex - 1, value });\n start = nextIndex;\n value = nextValue;\n }\n result.push({ start, end: Infinity, value });\n return result;\n}\nfunction toRanges(nodes) {\n return arrayToRanges(nodes, ({ k: index, v: value }) => ({ index, value }));\n}\nfunction split(node) {\n const { r, lvl } = node;\n return !empty(r) && !empty(r.r) && r.lvl === lvl && r.r.lvl === lvl ? clone(r, { l: clone(node, { r: r.l }), lvl: lvl + 1 }) : node;\n}\nfunction skew(node) {\n const { l } = node;\n return !empty(l) && l.lvl === node.lvl ? clone(l, { r: clone(node, { l: l.r }) }) : node;\n}\nfunction findIndexOfClosestSmallerOrEqual(items, value, comparator, start = 0) {\n let end = items.length - 1;\n while (start <= end) {\n const index = Math.floor((start + end) / 2);\n const item = items[index];\n const match = comparator(item, value);\n if (match === 0) {\n return index;\n }\n if (match === -1) {\n if (end - start < 2) {\n return index - 1;\n }\n end = index - 1;\n } else {\n if (end === start) {\n return index;\n }\n start = index + 1;\n }\n }\n throw new Error(`Failed binary finding record in array - ${items.join(\",\")}, searched for ${value}`);\n}\nfunction findClosestSmallerOrEqual(items, value, comparator) {\n return items[findIndexOfClosestSmallerOrEqual(items, value, comparator)];\n}\nfunction findRange(items, startValue, endValue, comparator) {\n const startIndex = findIndexOfClosestSmallerOrEqual(items, startValue, comparator);\n const endIndex = findIndexOfClosestSmallerOrEqual(items, endValue, comparator, startIndex);\n return items.slice(startIndex, endIndex + 1);\n}\nconst recalcSystem = system(\n () => {\n const recalcInProgress = statefulStream(false);\n return { recalcInProgress };\n },\n [],\n { singleton: true }\n);\nfunction rangeIncludes(refRange) {\n const { size, startIndex, endIndex } = refRange;\n return (range) => {\n return range.start === startIndex && (range.end === endIndex || range.end === Infinity) && range.value === size;\n };\n}\nfunction affectedGroupCount(offset, groupIndices) {\n let recognizedOffsetItems = 0;\n let groupIndex = 0;\n while (recognizedOffsetItems < offset) {\n recognizedOffsetItems += groupIndices[groupIndex + 1] - groupIndices[groupIndex] - 1;\n groupIndex++;\n }\n const offsetIsExact = recognizedOffsetItems === offset;\n return groupIndex - (offsetIsExact ? 0 : 1);\n}\nfunction insertRanges(sizeTree, ranges) {\n let syncStart = empty(sizeTree) ? 0 : Infinity;\n for (const range of ranges) {\n const { size, startIndex, endIndex } = range;\n syncStart = Math.min(syncStart, startIndex);\n if (empty(sizeTree)) {\n sizeTree = insert(sizeTree, 0, size);\n continue;\n }\n const overlappingRanges = rangesWithin(sizeTree, startIndex - 1, endIndex + 1);\n if (overlappingRanges.some(rangeIncludes(range))) {\n continue;\n }\n let firstPassDone = false;\n let shouldInsert = false;\n for (const { start: rangeStart, end: rangeEnd, value: rangeValue } of overlappingRanges) {\n if (!firstPassDone) {\n shouldInsert = rangeValue !== size;\n firstPassDone = true;\n } else {\n if (endIndex >= rangeStart || size === rangeValue) {\n sizeTree = remove(sizeTree, rangeStart);\n }\n }\n if (rangeEnd > endIndex && endIndex >= rangeStart) {\n if (rangeValue !== size) {\n sizeTree = insert(sizeTree, endIndex + 1, rangeValue);\n }\n }\n }\n if (shouldInsert) {\n sizeTree = insert(sizeTree, startIndex, size);\n }\n }\n return [sizeTree, syncStart];\n}\nfunction initialSizeState() {\n return {\n offsetTree: [],\n sizeTree: newTree(),\n groupOffsetTree: newTree(),\n lastIndex: 0,\n lastOffset: 0,\n lastSize: 0,\n groupIndices: []\n };\n}\nfunction indexComparator({ index: itemIndex }, index) {\n return index === itemIndex ? 0 : index < itemIndex ? -1 : 1;\n}\nfunction offsetComparator({ offset: itemOffset }, offset) {\n return offset === itemOffset ? 0 : offset < itemOffset ? -1 : 1;\n}\nfunction offsetPointParser(point) {\n return { index: point.index, value: point };\n}\nfunction rangesWithinOffsets(tree, startOffset, endOffset, minStartIndex = 0) {\n if (minStartIndex > 0) {\n startOffset = Math.max(startOffset, findClosestSmallerOrEqual(tree, minStartIndex, indexComparator).offset);\n }\n return arrayToRanges(findRange(tree, startOffset, endOffset, offsetComparator), offsetPointParser);\n}\nfunction createOffsetTree(prevOffsetTree, syncStart, sizeTree, gap) {\n let offsetTree = prevOffsetTree;\n let prevIndex = 0;\n let prevSize = 0;\n let prevOffset = 0;\n let startIndex = 0;\n if (syncStart !== 0) {\n startIndex = findIndexOfClosestSmallerOrEqual(offsetTree, syncStart - 1, indexComparator);\n const offsetInfo = offsetTree[startIndex];\n prevOffset = offsetInfo.offset;\n const kv = findMaxKeyValue(sizeTree, syncStart - 1);\n prevIndex = kv[0];\n prevSize = kv[1];\n if (offsetTree.length && offsetTree[startIndex].size === findMaxKeyValue(sizeTree, syncStart)[1]) {\n startIndex -= 1;\n }\n offsetTree = offsetTree.slice(0, startIndex + 1);\n } else {\n offsetTree = [];\n }\n for (const { start: startIndex2, value } of rangesWithin(sizeTree, syncStart, Infinity)) {\n const indexOffset = startIndex2 - prevIndex;\n const aOffset = indexOffset * prevSize + prevOffset + indexOffset * gap;\n offsetTree.push({\n offset: aOffset,\n size: value,\n index: startIndex2\n });\n prevIndex = startIndex2;\n prevOffset = aOffset;\n prevSize = value;\n }\n return {\n offsetTree,\n lastIndex: prevIndex,\n lastOffset: prevOffset,\n lastSize: prevSize\n };\n}\nfunction sizeStateReducer(state, [ranges, groupIndices, log, gap]) {\n if (ranges.length > 0) {\n log(\"received item sizes\", ranges, LogLevel.DEBUG);\n }\n const sizeTree = state.sizeTree;\n let newSizeTree = sizeTree;\n let syncStart = 0;\n if (groupIndices.length > 0 && empty(sizeTree) && ranges.length === 2) {\n const groupSize = ranges[0].size;\n const itemSize = ranges[1].size;\n newSizeTree = groupIndices.reduce((tree, groupIndex) => {\n return insert(insert(tree, groupIndex, groupSize), groupIndex + 1, itemSize);\n }, newSizeTree);\n } else {\n [newSizeTree, syncStart] = insertRanges(newSizeTree, ranges);\n }\n if (newSizeTree === sizeTree) {\n return state;\n }\n const { offsetTree: newOffsetTree, lastIndex, lastSize, lastOffset } = createOffsetTree(state.offsetTree, syncStart, newSizeTree, gap);\n return {\n sizeTree: newSizeTree,\n offsetTree: newOffsetTree,\n lastIndex,\n lastOffset,\n lastSize,\n groupOffsetTree: groupIndices.reduce((tree, index) => {\n return insert(tree, index, offsetOf(index, newOffsetTree, gap));\n }, newTree()),\n groupIndices\n };\n}\nfunction offsetOf(index, tree, gap) {\n if (tree.length === 0) {\n return 0;\n }\n const { offset, index: startIndex, size } = findClosestSmallerOrEqual(tree, index, indexComparator);\n const itemCount = index - startIndex;\n const top = size * itemCount + (itemCount - 1) * gap + offset;\n return top > 0 ? top + gap : top;\n}\nfunction isGroupLocation(location) {\n return typeof location.groupIndex !== \"undefined\";\n}\nfunction originalIndexFromLocation(location, sizes, lastIndex) {\n if (isGroupLocation(location)) {\n return sizes.groupIndices[location.groupIndex] + 1;\n } else {\n const numericIndex = location.index === \"LAST\" ? lastIndex : location.index;\n let result = originalIndexFromItemIndex(numericIndex, sizes);\n result = Math.max(0, result, Math.min(lastIndex, result));\n return result;\n }\n}\nfunction originalIndexFromItemIndex(itemIndex, sizes) {\n if (!hasGroups(sizes)) {\n return itemIndex;\n }\n let groupOffset = 0;\n while (sizes.groupIndices[groupOffset] <= itemIndex + groupOffset) {\n groupOffset++;\n }\n return itemIndex + groupOffset;\n}\nfunction hasGroups(sizes) {\n return !empty(sizes.groupOffsetTree);\n}\nfunction sizeTreeToRanges(sizeTree) {\n return walk(sizeTree).map(({ k: startIndex, v: size }, index, sizeArray) => {\n const nextSize = sizeArray[index + 1];\n const endIndex = nextSize ? nextSize.k - 1 : Infinity;\n return { startIndex, endIndex, size };\n });\n}\nconst SIZE_MAP = {\n offsetHeight: \"height\",\n offsetWidth: \"width\"\n};\nconst sizeSystem = system(\n ([{ log }, { recalcInProgress }]) => {\n const sizeRanges = stream();\n const totalCount = stream();\n const statefulTotalCount = statefulStreamFromEmitter(totalCount, 0);\n const unshiftWith = stream();\n const shiftWith = stream();\n const firstItemIndex = statefulStream(0);\n const groupIndices = statefulStream([]);\n const fixedItemSize = statefulStream(void 0);\n const defaultItemSize = statefulStream(void 0);\n const itemSize = statefulStream((el, field) => correctItemSize(el, SIZE_MAP[field]));\n const data = statefulStream(void 0);\n const gap = statefulStream(0);\n const initial = initialSizeState();\n const sizes = statefulStreamFromEmitter(\n pipe(sizeRanges, withLatestFrom(groupIndices, log, gap), scan(sizeStateReducer, initial), distinctUntilChanged()),\n initial\n );\n const prevGroupIndices = statefulStreamFromEmitter(\n pipe(\n groupIndices,\n distinctUntilChanged(),\n scan((prev, curr) => ({ prev: prev.current, current: curr }), {\n prev: [],\n current: []\n }),\n map(({ prev }) => prev)\n ),\n []\n );\n connect(\n pipe(\n groupIndices,\n filter((indexes) => indexes.length > 0),\n withLatestFrom(sizes, gap),\n map(([groupIndices2, sizes2, gap2]) => {\n const groupOffsetTree = groupIndices2.reduce((tree, index, idx) => {\n return insert(tree, index, offsetOf(index, sizes2.offsetTree, gap2) || idx);\n }, newTree());\n return {\n ...sizes2,\n groupIndices: groupIndices2,\n groupOffsetTree\n };\n })\n ),\n sizes\n );\n connect(\n pipe(\n totalCount,\n withLatestFrom(sizes),\n filter(([totalCount2, { lastIndex }]) => {\n return totalCount2 < lastIndex;\n }),\n map(([totalCount2, { lastIndex, lastSize }]) => {\n return [\n {\n startIndex: totalCount2,\n endIndex: lastIndex,\n size: lastSize\n }\n ];\n })\n ),\n sizeRanges\n );\n connect(fixedItemSize, defaultItemSize);\n const trackItemSizes = statefulStreamFromEmitter(\n pipe(\n fixedItemSize,\n map((size) => size === void 0)\n ),\n true\n );\n connect(\n pipe(\n defaultItemSize,\n filter((value) => {\n return value !== void 0 && empty(getValue(sizes).sizeTree);\n }),\n map((size) => [{ startIndex: 0, endIndex: 0, size }])\n ),\n sizeRanges\n );\n const listRefresh = streamFromEmitter(\n pipe(\n sizeRanges,\n withLatestFrom(sizes),\n scan(\n ({ sizes: oldSizes }, [_, newSizes]) => {\n return {\n changed: newSizes !== oldSizes,\n sizes: newSizes\n };\n },\n { changed: false, sizes: initial }\n ),\n map((value) => value.changed)\n )\n );\n subscribe(\n pipe(\n firstItemIndex,\n scan(\n (prev, next) => {\n return { diff: prev.prev - next, prev: next };\n },\n { diff: 0, prev: 0 }\n ),\n map((val) => val.diff)\n ),\n (offset) => {\n const { groupIndices: groupIndices2 } = getValue(sizes);\n if (offset > 0) {\n publish(recalcInProgress, true);\n publish(unshiftWith, offset + affectedGroupCount(offset, groupIndices2));\n } else if (offset < 0) {\n const prevGroupIndicesValue = getValue(prevGroupIndices);\n if (prevGroupIndicesValue.length > 0) {\n offset -= affectedGroupCount(-offset, prevGroupIndicesValue);\n }\n publish(shiftWith, offset);\n }\n }\n );\n subscribe(pipe(firstItemIndex, withLatestFrom(log)), ([index, log2]) => {\n if (index < 0) {\n log2(\n \"`firstItemIndex` prop should not be set to less than zero. If you don't know the total count, just use a very high value\",\n { firstItemIndex },\n LogLevel.ERROR\n );\n }\n });\n const beforeUnshiftWith = streamFromEmitter(unshiftWith);\n connect(\n pipe(\n unshiftWith,\n withLatestFrom(sizes),\n map(([unshiftWith2, sizes2]) => {\n const groupedMode = sizes2.groupIndices.length > 0;\n const initialRanges = [];\n const defaultSize = sizes2.lastSize;\n if (groupedMode) {\n const firstGroupSize = find(sizes2.sizeTree, 0);\n let prependedGroupItemsCount = 0;\n let groupIndex = 0;\n while (prependedGroupItemsCount < unshiftWith2) {\n const theGroupIndex = sizes2.groupIndices[groupIndex];\n const groupItemCount = sizes2.groupIndices.length === groupIndex + 1 ? Infinity : sizes2.groupIndices[groupIndex + 1] - theGroupIndex - 1;\n initialRanges.push({\n startIndex: theGroupIndex,\n endIndex: theGroupIndex,\n size: firstGroupSize\n });\n initialRanges.push({\n startIndex: theGroupIndex + 1,\n endIndex: theGroupIndex + 1 + groupItemCount - 1,\n size: defaultSize\n });\n groupIndex++;\n prependedGroupItemsCount += groupItemCount + 1;\n }\n const sizeTreeKV = walk(sizes2.sizeTree);\n const firstGroupIsExpanded = prependedGroupItemsCount !== unshiftWith2;\n if (firstGroupIsExpanded) {\n sizeTreeKV.shift();\n }\n return sizeTreeKV.reduce(\n (acc, { k: index, v: size }) => {\n let ranges = acc.ranges;\n if (acc.prevSize !== 0) {\n ranges = [\n ...acc.ranges,\n {\n startIndex: acc.prevIndex,\n endIndex: index + unshiftWith2 - 1,\n size: acc.prevSize\n }\n ];\n }\n return {\n ranges,\n prevIndex: index + unshiftWith2,\n prevSize: size\n };\n },\n {\n ranges: initialRanges,\n prevIndex: unshiftWith2,\n prevSize: 0\n }\n ).ranges;\n }\n return walk(sizes2.sizeTree).reduce(\n (acc, { k: index, v: size }) => {\n return {\n ranges: [...acc.ranges, { startIndex: acc.prevIndex, endIndex: index + unshiftWith2 - 1, size: acc.prevSize }],\n prevIndex: index + unshiftWith2,\n prevSize: size\n };\n },\n {\n ranges: [],\n prevIndex: 0,\n prevSize: defaultSize\n }\n ).ranges;\n })\n ),\n sizeRanges\n );\n const shiftWithOffset = streamFromEmitter(\n pipe(\n shiftWith,\n withLatestFrom(sizes, gap),\n map(([shiftWith2, { offsetTree }, gap2]) => {\n const newFirstItemIndex = -shiftWith2;\n return offsetOf(newFirstItemIndex, offsetTree, gap2);\n })\n )\n );\n connect(\n pipe(\n shiftWith,\n withLatestFrom(sizes, gap),\n map(([shiftWith2, sizes2, gap2]) => {\n const groupedMode = sizes2.groupIndices.length > 0;\n if (groupedMode) {\n if (empty(sizes2.sizeTree)) {\n return sizes2;\n }\n let newSizeTree = newTree();\n const prevGroupIndicesValue = getValue(prevGroupIndices);\n let removedItemsCount = 0;\n let groupIndex = 0;\n let groupOffset = 0;\n while (removedItemsCount < -shiftWith2) {\n groupOffset = prevGroupIndicesValue[groupIndex];\n const groupItemCount = prevGroupIndicesValue[groupIndex + 1] - groupOffset - 1;\n groupIndex++;\n removedItemsCount += groupItemCount + 1;\n }\n newSizeTree = walk(sizes2.sizeTree).reduce((acc, { k, v }) => {\n return insert(acc, Math.max(0, k + shiftWith2), v);\n }, newSizeTree);\n const aGroupIsShrunk = removedItemsCount !== -shiftWith2;\n if (aGroupIsShrunk) {\n const firstGroupSize = find(sizes2.sizeTree, groupOffset);\n newSizeTree = insert(newSizeTree, 0, firstGroupSize);\n const nextItemSize = findMaxKeyValue(sizes2.sizeTree, -shiftWith2 + 1)[1];\n newSizeTree = insert(newSizeTree, 1, nextItemSize);\n }\n return {\n ...sizes2,\n sizeTree: newSizeTree,\n ...createOffsetTree(sizes2.offsetTree, 0, newSizeTree, gap2)\n };\n } else {\n const newSizeTree = walk(sizes2.sizeTree).reduce((acc, { k, v }) => {\n return insert(acc, Math.max(0, k + shiftWith2), v);\n }, newTree());\n return {\n ...sizes2,\n sizeTree: newSizeTree,\n ...createOffsetTree(sizes2.offsetTree, 0, newSizeTree, gap2)\n };\n }\n })\n ),\n sizes\n );\n return {\n // input\n data,\n totalCount,\n sizeRanges,\n groupIndices,\n defaultItemSize,\n fixedItemSize,\n unshiftWith,\n shiftWith,\n shiftWithOffset,\n beforeUnshiftWith,\n firstItemIndex,\n gap,\n // output\n sizes,\n listRefresh,\n statefulTotalCount,\n trackItemSizes,\n itemSize\n };\n },\n tup(loggerSystem, recalcSystem),\n { singleton: true }\n);\nconst SUPPORTS_SCROLL_TO_OPTIONS = typeof document !== \"undefined\" && \"scrollBehavior\" in document.documentElement.style;\nfunction normalizeIndexLocation(location) {\n const result = typeof location === \"number\" ? { index: location } : location;\n if (!result.align) {\n result.align = \"start\";\n }\n if (!result.behavior || !SUPPORTS_SCROLL_TO_OPTIONS) {\n result.behavior = \"auto\";\n }\n if (!result.offset) {\n result.offset = 0;\n }\n return result;\n}\nconst scrollToIndexSystem = system(\n ([\n { sizes, totalCount, listRefresh, gap },\n {\n scrollingInProgress,\n viewportHeight,\n scrollTo,\n smoothScrollTargetReached,\n headerHeight,\n footerHeight,\n fixedHeaderHeight,\n fixedFooterHeight\n },\n { log }\n ]) => {\n const scrollToIndex = stream();\n const scrollTargetReached = stream();\n const topListHeight = statefulStream(0);\n let unsubscribeNextListRefresh = null;\n let cleartTimeoutRef = null;\n let unsubscribeListRefresh = null;\n function cleanup() {\n if (unsubscribeNextListRefresh) {\n unsubscribeNextListRefresh();\n unsubscribeNextListRefresh = null;\n }\n if (unsubscribeListRefresh) {\n unsubscribeListRefresh();\n unsubscribeListRefresh = null;\n }\n if (cleartTimeoutRef) {\n clearTimeout(cleartTimeoutRef);\n cleartTimeoutRef = null;\n }\n publish(scrollingInProgress, false);\n }\n connect(\n pipe(\n scrollToIndex,\n withLatestFrom(sizes, viewportHeight, totalCount, topListHeight, headerHeight, footerHeight, log),\n withLatestFrom(gap, fixedHeaderHeight, fixedFooterHeight),\n map(\n ([\n [location, sizes2, viewportHeight2, totalCount2, topListHeight2, headerHeight2, footerHeight2, log2],\n gap2,\n fixedHeaderHeight2,\n fixedFooterHeight2\n ]) => {\n const normalLocation = normalizeIndexLocation(location);\n const { align, behavior, offset } = normalLocation;\n const lastIndex = totalCount2 - 1;\n const index = originalIndexFromLocation(normalLocation, sizes2, lastIndex);\n let top = offsetOf(index, sizes2.offsetTree, gap2) + headerHeight2;\n if (align === \"end\") {\n top += fixedHeaderHeight2 + findMaxKeyValue(sizes2.sizeTree, index)[1] - viewportHeight2 + fixedFooterHeight2;\n if (index === lastIndex) {\n top += footerHeight2;\n }\n } else if (align === \"center\") {\n top += (fixedHeaderHeight2 + findMaxKeyValue(sizes2.sizeTree, index)[1] - viewportHeight2 + fixedFooterHeight2) / 2;\n } else {\n top -= topListHeight2;\n }\n if (offset) {\n top += offset;\n }\n const retry = (listChanged) => {\n cleanup();\n if (listChanged) {\n log2(\"retrying to scroll to\", { location }, LogLevel.DEBUG);\n publish(scrollToIndex, location);\n } else {\n publish(scrollTargetReached, true);\n log2(\"list did not change, scroll successful\", {}, LogLevel.DEBUG);\n }\n };\n cleanup();\n if (behavior === \"smooth\") {\n let listChanged = false;\n unsubscribeListRefresh = subscribe(listRefresh, (changed) => {\n listChanged = listChanged || changed;\n });\n unsubscribeNextListRefresh = handleNext(smoothScrollTargetReached, () => {\n retry(listChanged);\n });\n } else {\n unsubscribeNextListRefresh = handleNext(pipe(listRefresh, watchChangesFor(150)), retry);\n }\n cleartTimeoutRef = setTimeout(() => {\n cleanup();\n }, 1200);\n publish(scrollingInProgress, true);\n log2(\"scrolling from index to\", { index, top, behavior }, LogLevel.DEBUG);\n return { top, behavior };\n }\n )\n ),\n scrollTo\n );\n return {\n scrollToIndex,\n scrollTargetReached,\n topListHeight\n };\n },\n tup(sizeSystem, domIOSystem, loggerSystem),\n { singleton: true }\n);\nfunction watchChangesFor(limit) {\n return (done) => {\n const timeoutRef = setTimeout(() => {\n done(false);\n }, limit);\n return (value) => {\n if (value) {\n done(true);\n clearTimeout(timeoutRef);\n }\n };\n };\n}\nconst UP = \"up\";\nconst DOWN = \"down\";\nconst NONE$1 = \"none\";\nconst INITIAL_BOTTOM_STATE = {\n atBottom: false,\n notAtBottomBecause: \"NOT_SHOWING_LAST_ITEM\",\n state: {\n offsetBottom: 0,\n scrollTop: 0,\n viewportHeight: 0,\n scrollHeight: 0\n }\n};\nconst DEFAULT_AT_TOP_THRESHOLD = 0;\nconst stateFlagsSystem = system(([{ scrollContainerState, scrollTop, viewportHeight, headerHeight, footerHeight, scrollBy }]) => {\n const isAtBottom = statefulStream(false);\n const isAtTop = statefulStream(true);\n const atBottomStateChange = stream();\n const atTopStateChange = stream();\n const atBottomThreshold = statefulStream(4);\n const atTopThreshold = statefulStream(DEFAULT_AT_TOP_THRESHOLD);\n const isScrolling = statefulStreamFromEmitter(\n pipe(\n merge(pipe(duc(scrollTop), skip(1), mapTo(true)), pipe(duc(scrollTop), skip(1), mapTo(false), debounceTime(100))),\n distinctUntilChanged()\n ),\n false\n );\n const isScrollingBy = statefulStreamFromEmitter(\n pipe(merge(pipe(scrollBy, mapTo(true)), pipe(scrollBy, mapTo(false), debounceTime(200))), distinctUntilChanged()),\n false\n );\n connect(\n pipe(\n combineLatest(duc(scrollTop), duc(atTopThreshold)),\n map(([top, atTopThreshold2]) => top <= atTopThreshold2),\n distinctUntilChanged()\n ),\n isAtTop\n );\n connect(pipe(isAtTop, throttleTime(50)), atTopStateChange);\n const atBottomState = streamFromEmitter(\n pipe(\n combineLatest(scrollContainerState, duc(viewportHeight), duc(headerHeight), duc(footerHeight), duc(atBottomThreshold)),\n scan((current, [{ scrollTop: scrollTop2, scrollHeight }, viewportHeight2, _headerHeight, _footerHeight, atBottomThreshold2]) => {\n const isAtBottom2 = scrollTop2 + viewportHeight2 - scrollHeight > -atBottomThreshold2;\n const state = {\n viewportHeight: viewportHeight2,\n scrollTop: scrollTop2,\n scrollHeight\n };\n if (isAtBottom2) {\n let atBottomBecause;\n let scrollTopDelta;\n if (scrollTop2 > current.state.scrollTop) {\n atBottomBecause = \"SCROLLED_DOWN\";\n scrollTopDelta = current.state.scrollTop - scrollTop2;\n } else {\n atBottomBecause = \"SIZE_DECREASED\";\n scrollTopDelta = current.state.scrollTop - scrollTop2 || current.scrollTopDelta;\n }\n return {\n atBottom: true,\n state,\n atBottomBecause,\n scrollTopDelta\n };\n }\n let notAtBottomBecause;\n if (state.scrollHeight > current.state.scrollHeight) {\n notAtBottomBecause = \"SIZE_INCREASED\";\n } else if (viewportHeight2 < current.state.viewportHeight) {\n notAtBottomBecause = \"VIEWPORT_HEIGHT_DECREASING\";\n } else if (scrollTop2 < current.state.scrollTop) {\n notAtBottomBecause = \"SCROLLING_UPWARDS\";\n } else {\n notAtBottomBecause = \"NOT_FULLY_SCROLLED_TO_LAST_ITEM_BOTTOM\";\n }\n return {\n atBottom: false,\n notAtBottomBecause,\n state\n };\n }, INITIAL_BOTTOM_STATE),\n distinctUntilChanged((prev, next) => {\n return prev && prev.atBottom === next.atBottom;\n })\n )\n );\n const lastJumpDueToItemResize = statefulStreamFromEmitter(\n pipe(\n scrollContainerState,\n scan(\n (current, { scrollTop: scrollTop2, scrollHeight, viewportHeight: viewportHeight2 }) => {\n if (!approximatelyEqual(current.scrollHeight, scrollHeight)) {\n const atBottom = scrollHeight - (scrollTop2 + viewportHeight2) < 1;\n if (current.scrollTop !== scrollTop2 && atBottom) {\n return {\n scrollHeight,\n scrollTop: scrollTop2,\n jump: current.scrollTop - scrollTop2,\n changed: true\n };\n } else {\n return {\n scrollHeight,\n scrollTop: scrollTop2,\n jump: 0,\n changed: true\n };\n }\n } else {\n return {\n scrollTop: scrollTop2,\n scrollHeight,\n jump: 0,\n changed: false\n };\n }\n },\n { scrollHeight: 0, jump: 0, scrollTop: 0, changed: false }\n ),\n filter((value) => value.changed),\n map((value) => value.jump)\n ),\n 0\n );\n connect(\n pipe(\n atBottomState,\n map((state) => state.atBottom)\n ),\n isAtBottom\n );\n connect(pipe(isAtBottom, throttleTime(50)), atBottomStateChange);\n const scrollDirection = statefulStream(DOWN);\n connect(\n pipe(\n scrollContainerState,\n map(({ scrollTop: scrollTop2 }) => scrollTop2),\n distinctUntilChanged(),\n scan(\n (acc, scrollTop2) => {\n if (getValue(isScrollingBy)) {\n return { direction: acc.direction, prevScrollTop: scrollTop2 };\n }\n return { direction: scrollTop2 < acc.prevScrollTop ? UP : DOWN, prevScrollTop: scrollTop2 };\n },\n { direction: DOWN, prevScrollTop: 0 }\n ),\n map((value) => value.direction)\n ),\n scrollDirection\n );\n connect(pipe(scrollContainerState, throttleTime(50), mapTo(NONE$1)), scrollDirection);\n const scrollVelocity = statefulStream(0);\n connect(\n pipe(\n isScrolling,\n filter((value) => !value),\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n mapTo(0)\n ),\n scrollVelocity\n );\n connect(\n pipe(\n scrollTop,\n throttleTime(100),\n withLatestFrom(isScrolling),\n filter(([_, isScrolling2]) => !!isScrolling2),\n scan(([_, prev], [next]) => [prev, next], [0, 0]),\n map(([prev, next]) => next - prev)\n ),\n scrollVelocity\n );\n return {\n isScrolling,\n isAtTop,\n isAtBottom,\n atBottomState,\n atTopStateChange,\n atBottomStateChange,\n scrollDirection,\n atBottomThreshold,\n atTopThreshold,\n scrollVelocity,\n lastJumpDueToItemResize\n };\n}, tup(domIOSystem));\nconst propsReadySystem = system(\n ([{ log }]) => {\n const propsReady = statefulStream(false);\n const didMount = streamFromEmitter(\n pipe(\n propsReady,\n filter((ready) => ready),\n distinctUntilChanged()\n )\n );\n subscribe(propsReady, (value) => {\n value && getValue(log)(\"props updated\", {}, LogLevel.DEBUG);\n });\n return { propsReady, didMount };\n },\n tup(loggerSystem),\n { singleton: true }\n);\nfunction skipFrames(frameCount, callback) {\n if (frameCount == 0) {\n callback();\n } else {\n requestAnimationFrame(() => skipFrames(frameCount - 1, callback));\n }\n}\nfunction getInitialTopMostItemIndexNumber(location, totalCount) {\n const lastIndex = totalCount - 1;\n const index = typeof location === \"number\" ? location : location.index === \"LAST\" ? lastIndex : location.index;\n return index;\n}\nconst initialTopMostItemIndexSystem = system(\n ([{ sizes, listRefresh, defaultItemSize }, { scrollTop }, { scrollToIndex, scrollTargetReached }, { didMount }]) => {\n const scrolledToInitialItem = statefulStream(true);\n const initialTopMostItemIndex = statefulStream(0);\n const initialItemFinalLocationReached = statefulStream(true);\n connect(\n pipe(\n didMount,\n withLatestFrom(initialTopMostItemIndex),\n filter(([_, location]) => !!location),\n mapTo(false)\n ),\n scrolledToInitialItem\n );\n connect(\n pipe(\n didMount,\n withLatestFrom(initialTopMostItemIndex),\n filter(([_, location]) => !!location),\n mapTo(false)\n ),\n initialItemFinalLocationReached\n );\n subscribe(\n pipe(\n combineLatest(listRefresh, didMount),\n withLatestFrom(scrolledToInitialItem, sizes, defaultItemSize, initialItemFinalLocationReached),\n filter(([[, didMount2], scrolledToInitialItem2, { sizeTree }, defaultItemSize2, scrollScheduled]) => {\n return didMount2 && (!empty(sizeTree) || isDefined(defaultItemSize2)) && !scrolledToInitialItem2 && !scrollScheduled;\n }),\n withLatestFrom(initialTopMostItemIndex)\n ),\n ([, initialTopMostItemIndex2]) => {\n handleNext(scrollTargetReached, () => {\n publish(initialItemFinalLocationReached, true);\n });\n skipFrames(4, () => {\n handleNext(scrollTop, () => {\n publish(scrolledToInitialItem, true);\n });\n publish(scrollToIndex, initialTopMostItemIndex2);\n });\n }\n );\n return {\n scrolledToInitialItem,\n initialTopMostItemIndex,\n initialItemFinalLocationReached\n };\n },\n tup(sizeSystem, domIOSystem, scrollToIndexSystem, propsReadySystem),\n { singleton: true }\n);\nfunction normalizeFollowOutput(follow) {\n if (!follow) {\n return false;\n }\n return follow === \"smooth\" ? \"smooth\" : \"auto\";\n}\nconst behaviorFromFollowOutput = (follow, isAtBottom) => {\n if (typeof follow === \"function\") {\n return normalizeFollowOutput(follow(isAtBottom));\n }\n return isAtBottom && normalizeFollowOutput(follow);\n};\nconst followOutputSystem = system(\n ([\n { totalCount, listRefresh },\n { isAtBottom, atBottomState },\n { scrollToIndex },\n { scrolledToInitialItem },\n { propsReady, didMount },\n { log },\n { scrollingInProgress }\n ]) => {\n const followOutput = statefulStream(false);\n const autoscrollToBottom = stream();\n let pendingScrollHandle = null;\n function scrollToBottom(followOutputBehavior) {\n publish(scrollToIndex, {\n index: \"LAST\",\n align: \"end\",\n behavior: followOutputBehavior\n });\n }\n subscribe(\n pipe(\n combineLatest(pipe(duc(totalCount), skip(1)), didMount),\n withLatestFrom(duc(followOutput), isAtBottom, scrolledToInitialItem, scrollingInProgress),\n map(([[totalCount2, didMount2], followOutput2, isAtBottom2, scrolledToInitialItem2, scrollingInProgress2]) => {\n let shouldFollow = didMount2 && scrolledToInitialItem2;\n let followOutputBehavior = \"auto\";\n if (shouldFollow) {\n followOutputBehavior = behaviorFromFollowOutput(followOutput2, isAtBottom2 || scrollingInProgress2);\n shouldFollow = shouldFollow && !!followOutputBehavior;\n }\n return { totalCount: totalCount2, shouldFollow, followOutputBehavior };\n }),\n filter(({ shouldFollow }) => shouldFollow)\n ),\n ({ totalCount: totalCount2, followOutputBehavior }) => {\n if (pendingScrollHandle) {\n pendingScrollHandle();\n pendingScrollHandle = null;\n }\n pendingScrollHandle = handleNext(listRefresh, () => {\n getValue(log)(\"following output to \", { totalCount: totalCount2 }, LogLevel.DEBUG);\n scrollToBottom(followOutputBehavior);\n pendingScrollHandle = null;\n });\n }\n );\n function trapNextSizeIncrease(followOutput2) {\n const cancel = handleNext(atBottomState, (state) => {\n if (followOutput2 && !state.atBottom && state.notAtBottomBecause === \"SIZE_INCREASED\" && !pendingScrollHandle) {\n getValue(log)(\"scrolling to bottom due to increased size\", {}, LogLevel.DEBUG);\n scrollToBottom(\"auto\");\n }\n });\n setTimeout(cancel, 100);\n }\n subscribe(\n pipe(\n combineLatest(duc(followOutput), totalCount, propsReady),\n filter(([follow, , ready]) => follow && ready),\n scan(\n ({ value }, [, next]) => {\n return { refreshed: value === next, value: next };\n },\n { refreshed: false, value: 0 }\n ),\n filter(({ refreshed }) => refreshed),\n withLatestFrom(followOutput, totalCount)\n ),\n ([, followOutput2]) => {\n if (getValue(scrolledToInitialItem)) {\n trapNextSizeIncrease(followOutput2 !== false);\n }\n }\n );\n subscribe(autoscrollToBottom, () => {\n trapNextSizeIncrease(getValue(followOutput) !== false);\n });\n subscribe(combineLatest(duc(followOutput), atBottomState), ([followOutput2, state]) => {\n if (followOutput2 && !state.atBottom && state.notAtBottomBecause === \"VIEWPORT_HEIGHT_DECREASING\") {\n scrollToBottom(\"auto\");\n }\n });\n return { followOutput, autoscrollToBottom };\n },\n tup(sizeSystem, stateFlagsSystem, scrollToIndexSystem, initialTopMostItemIndexSystem, propsReadySystem, loggerSystem, domIOSystem)\n);\nfunction groupCountsToIndicesAndCount(counts) {\n return counts.reduce(\n (acc, groupCount) => {\n acc.groupIndices.push(acc.totalCount);\n acc.totalCount += groupCount + 1;\n return acc;\n },\n {\n totalCount: 0,\n groupIndices: []\n }\n );\n}\nconst groupedListSystem = system(([{ totalCount, groupIndices, sizes }, { scrollTop, headerHeight }]) => {\n const groupCounts = stream();\n const topItemsIndexes = stream();\n const groupIndicesAndCount = streamFromEmitter(pipe(groupCounts, map(groupCountsToIndicesAndCount)));\n connect(\n pipe(\n groupIndicesAndCount,\n map((value) => value.totalCount)\n ),\n totalCount\n );\n connect(\n pipe(\n groupIndicesAndCount,\n map((value) => value.groupIndices)\n ),\n groupIndices\n );\n connect(\n pipe(\n combineLatest(scrollTop, sizes, headerHeight),\n filter(([_, sizes2]) => hasGroups(sizes2)),\n map(([scrollTop2, state, headerHeight2]) => findMaxKeyValue(state.groupOffsetTree, Math.max(scrollTop2 - headerHeight2, 0), \"v\")[0]),\n distinctUntilChanged(),\n map((index) => [index])\n ),\n topItemsIndexes\n );\n return { groupCounts, topItemsIndexes };\n}, tup(sizeSystem, domIOSystem));\nfunction tupleComparator(prev, current) {\n return !!(prev && prev[0] === current[0] && prev[1] === current[1]);\n}\nfunction rangeComparator(prev, next) {\n return !!(prev && prev.startIndex === next.startIndex && prev.endIndex === next.endIndex);\n}\nconst TOP = \"top\";\nconst BOTTOM = \"bottom\";\nconst NONE = \"none\";\nfunction getOverscan(overscan, end, direction) {\n if (typeof overscan === \"number\") {\n return direction === UP && end === TOP || direction === DOWN && end === BOTTOM ? overscan : 0;\n } else {\n if (direction === UP) {\n return end === TOP ? overscan.main : overscan.reverse;\n } else {\n return end === BOTTOM ? overscan.main : overscan.reverse;\n }\n }\n}\nfunction getViewportIncrease(value, end) {\n return typeof value === \"number\" ? value : value[end] || 0;\n}\nconst sizeRangeSystem = system(\n ([{ scrollTop, viewportHeight, deviation, headerHeight, fixedHeaderHeight }]) => {\n const listBoundary = stream();\n const topListHeight = statefulStream(0);\n const increaseViewportBy = statefulStream(0);\n const overscan = statefulStream(0);\n const visibleRange = statefulStreamFromEmitter(\n pipe(\n combineLatest(\n duc(scrollTop),\n duc(viewportHeight),\n duc(headerHeight),\n duc(listBoundary, tupleComparator),\n duc(overscan),\n duc(topListHeight),\n duc(fixedHeaderHeight),\n duc(deviation),\n duc(increaseViewportBy)\n ),\n map(\n ([\n scrollTop2,\n viewportHeight2,\n headerHeight2,\n [listTop, listBottom],\n overscan2,\n topListHeight2,\n fixedHeaderHeight2,\n deviation2,\n increaseViewportBy2\n ]) => {\n const top = scrollTop2 - deviation2;\n const stickyHeaderHeight = topListHeight2 + fixedHeaderHeight2;\n const headerVisible = Math.max(headerHeight2 - top, 0);\n let direction = NONE;\n const topViewportAddition = getViewportIncrease(increaseViewportBy2, TOP);\n const bottomViewportAddition = getViewportIncrease(increaseViewportBy2, BOTTOM);\n listTop -= deviation2;\n listTop += headerHeight2 + fixedHeaderHeight2;\n listBottom += headerHeight2 + fixedHeaderHeight2;\n listBottom -= deviation2;\n if (listTop > scrollTop2 + stickyHeaderHeight - topViewportAddition) {\n direction = UP;\n }\n if (listBottom < scrollTop2 - headerVisible + viewportHeight2 + bottomViewportAddition) {\n direction = DOWN;\n }\n if (direction !== NONE) {\n return [\n Math.max(top - headerHeight2 - getOverscan(overscan2, TOP, direction) - topViewportAddition, 0),\n top - headerVisible - fixedHeaderHeight2 + viewportHeight2 + getOverscan(overscan2, BOTTOM, direction) + bottomViewportAddition\n ];\n }\n return null;\n }\n ),\n filter((value) => value != null),\n distinctUntilChanged(tupleComparator)\n ),\n [0, 0]\n );\n return {\n // input\n listBoundary,\n overscan,\n topListHeight,\n increaseViewportBy,\n // output\n visibleRange\n };\n },\n tup(domIOSystem),\n { singleton: true }\n);\nfunction probeItemSet(index, sizes, data) {\n if (hasGroups(sizes)) {\n const itemIndex = originalIndexFromItemIndex(index, sizes);\n const groupIndex = findMaxKeyValue(sizes.groupOffsetTree, itemIndex)[0];\n return [\n { index: groupIndex, size: 0, offset: 0 },\n { index: itemIndex, size: 0, offset: 0, data: data && data[0] }\n ];\n }\n return [{ index, size: 0, offset: 0, data: data && data[0] }];\n}\nconst EMPTY_LIST_STATE = {\n items: [],\n topItems: [],\n offsetTop: 0,\n offsetBottom: 0,\n top: 0,\n bottom: 0,\n topListHeight: 0,\n totalCount: 0,\n firstItemIndex: 0\n};\nfunction transposeItems(items, sizes, firstItemIndex) {\n if (items.length === 0) {\n return [];\n }\n if (!hasGroups(sizes)) {\n return items.map((item) => ({ ...item, index: item.index + firstItemIndex, originalIndex: item.index }));\n }\n const startIndex = items[0].index;\n const endIndex = items[items.length - 1].index;\n const transposedItems = [];\n const groupRanges = rangesWithin(sizes.groupOffsetTree, startIndex, endIndex);\n let currentRange = void 0;\n let currentGroupIndex = 0;\n for (const item of items) {\n if (!currentRange || currentRange.end < item.index) {\n currentRange = groupRanges.shift();\n currentGroupIndex = sizes.groupIndices.indexOf(currentRange.start);\n }\n let transposedItem;\n if (item.index === currentRange.start) {\n transposedItem = {\n type: \"group\",\n index: currentGroupIndex\n };\n } else {\n transposedItem = {\n index: item.index - (currentGroupIndex + 1) + firstItemIndex,\n groupIndex: currentGroupIndex\n };\n }\n transposedItems.push({\n ...transposedItem,\n size: item.size,\n offset: item.offset,\n originalIndex: item.index,\n data: item.data\n });\n }\n return transposedItems;\n}\nfunction buildListState(items, topItems, totalCount, gap, sizes, firstItemIndex) {\n const { lastSize, lastOffset, lastIndex } = sizes;\n let offsetTop = 0;\n let bottom = 0;\n if (items.length > 0) {\n offsetTop = items[0].offset;\n const lastItem = items[items.length - 1];\n bottom = lastItem.offset + lastItem.size;\n }\n const itemCount = totalCount - lastIndex;\n const total = lastOffset + itemCount * lastSize + (itemCount - 1) * gap;\n const top = offsetTop;\n const offsetBottom = total - bottom;\n return {\n items: transposeItems(items, sizes, firstItemIndex),\n topItems: transposeItems(topItems, sizes, firstItemIndex),\n topListHeight: topItems.reduce((height, item) => item.size + height, 0),\n offsetTop,\n offsetBottom,\n top,\n bottom,\n totalCount,\n firstItemIndex\n };\n}\nfunction buildListStateFromItemCount(itemCount, initialTopMostItemIndex, sizes, firstItemIndex, gap, data) {\n let includedGroupsCount = 0;\n if (sizes.groupIndices.length > 0) {\n for (const index of sizes.groupIndices) {\n if (index - includedGroupsCount >= itemCount) {\n break;\n }\n includedGroupsCount++;\n }\n }\n const adjustedCount = itemCount + includedGroupsCount;\n const initialTopMostItemIndexNumber = getInitialTopMostItemIndexNumber(initialTopMostItemIndex, adjustedCount);\n const items = Array.from({ length: adjustedCount }).map((_, index) => ({\n index: index + initialTopMostItemIndexNumber,\n size: 0,\n offset: 0,\n data: data[index + initialTopMostItemIndexNumber]\n }));\n return buildListState(items, [], adjustedCount, gap, sizes, firstItemIndex);\n}\nconst listStateSystem = system(\n ([\n { sizes, totalCount, data, firstItemIndex, gap },\n groupedListSystem2,\n { visibleRange, listBoundary, topListHeight: rangeTopListHeight },\n { scrolledToInitialItem, initialTopMostItemIndex },\n { topListHeight },\n stateFlags,\n { didMount },\n { recalcInProgress }\n ]) => {\n const topItemsIndexes = statefulStream([]);\n const initialItemCount = statefulStream(0);\n const itemsRendered = stream();\n connect(groupedListSystem2.topItemsIndexes, topItemsIndexes);\n const listState = statefulStreamFromEmitter(\n pipe(\n combineLatest(\n didMount,\n recalcInProgress,\n duc(visibleRange, tupleComparator),\n duc(totalCount),\n duc(sizes),\n duc(initialTopMostItemIndex),\n scrolledToInitialItem,\n duc(topItemsIndexes),\n duc(firstItemIndex),\n duc(gap),\n data\n ),\n filter(([mount, recalcInProgress2, , totalCount2, , , , , , , data2]) => {\n const dataChangeInProgress = data2 && data2.length !== totalCount2;\n return mount && !recalcInProgress2 && !dataChangeInProgress;\n }),\n map(\n ([\n ,\n ,\n [startOffset, endOffset],\n totalCount2,\n sizes2,\n initialTopMostItemIndex2,\n scrolledToInitialItem2,\n topItemsIndexes2,\n firstItemIndex2,\n gap2,\n data2\n ]) => {\n const sizesValue = sizes2;\n const { sizeTree, offsetTree } = sizesValue;\n const initialItemCountValue = getValue(initialItemCount);\n if (totalCount2 === 0) {\n return { ...EMPTY_LIST_STATE, totalCount: totalCount2 };\n }\n if (startOffset === 0 && endOffset === 0) {\n if (initialItemCountValue === 0) {\n return { ...EMPTY_LIST_STATE, totalCount: totalCount2 };\n } else {\n return buildListStateFromItemCount(initialItemCountValue, initialTopMostItemIndex2, sizes2, firstItemIndex2, gap2, data2 || []);\n }\n }\n if (empty(sizeTree)) {\n if (initialItemCountValue > 0) {\n return null;\n }\n const state = buildListState(\n probeItemSet(getInitialTopMostItemIndexNumber(initialTopMostItemIndex2, totalCount2), sizesValue, data2),\n [],\n totalCount2,\n gap2,\n sizesValue,\n firstItemIndex2\n );\n return state;\n }\n const topItems = [];\n if (topItemsIndexes2.length > 0) {\n const startIndex = topItemsIndexes2[0];\n const endIndex = topItemsIndexes2[topItemsIndexes2.length - 1];\n let offset = 0;\n for (const range of rangesWithin(sizeTree, startIndex, endIndex)) {\n const size = range.value;\n const rangeStartIndex = Math.max(range.start, startIndex);\n const rangeEndIndex = Math.min(range.end, endIndex);\n for (let i = rangeStartIndex; i <= rangeEndIndex; i++) {\n topItems.push({ index: i, size, offset, data: data2 && data2[i] });\n offset += size;\n }\n }\n }\n if (!scrolledToInitialItem2) {\n return buildListState([], topItems, totalCount2, gap2, sizesValue, firstItemIndex2);\n }\n const minStartIndex = topItemsIndexes2.length > 0 ? topItemsIndexes2[topItemsIndexes2.length - 1] + 1 : 0;\n const offsetPointRanges = rangesWithinOffsets(offsetTree, startOffset, endOffset, minStartIndex);\n if (offsetPointRanges.length === 0) {\n return null;\n }\n const maxIndex = totalCount2 - 1;\n const items = tap([], (result) => {\n for (const range of offsetPointRanges) {\n const point = range.value;\n let offset = point.offset;\n let rangeStartIndex = range.start;\n const size = point.size;\n if (point.offset < startOffset) {\n rangeStartIndex += Math.floor((startOffset - point.offset + gap2) / (size + gap2));\n const itemCount = rangeStartIndex - range.start;\n offset += itemCount * size + itemCount * gap2;\n }\n if (rangeStartIndex < minStartIndex) {\n offset += (minStartIndex - rangeStartIndex) * size;\n rangeStartIndex = minStartIndex;\n }\n const endIndex = Math.min(range.end, maxIndex);\n for (let i = rangeStartIndex; i <= endIndex; i++) {\n if (offset >= endOffset) {\n break;\n }\n result.push({ index: i, size, offset, data: data2 && data2[i] });\n offset += size + gap2;\n }\n }\n });\n return buildListState(items, topItems, totalCount2, gap2, sizesValue, firstItemIndex2);\n }\n ),\n //@ts-expect-error filter needs to be fixed\n filter((value) => value !== null),\n distinctUntilChanged()\n ),\n EMPTY_LIST_STATE\n );\n connect(\n pipe(\n data,\n filter(isDefined),\n map((data2) => data2 == null ? void 0 : data2.length)\n ),\n totalCount\n );\n connect(\n pipe(\n listState,\n map((value) => value.topListHeight)\n ),\n topListHeight\n );\n connect(topListHeight, rangeTopListHeight);\n connect(\n pipe(\n listState,\n map((state) => [state.top, state.bottom])\n ),\n listBoundary\n );\n connect(\n pipe(\n listState,\n map((state) => state.items)\n ),\n itemsRendered\n );\n const endReached = streamFromEmitter(\n pipe(\n listState,\n filter(({ items }) => items.length > 0),\n withLatestFrom(totalCount, data),\n filter(([{ items }, totalCount2]) => items[items.length - 1].originalIndex === totalCount2 - 1),\n map(([, totalCount2, data2]) => [totalCount2 - 1, data2]),\n distinctUntilChanged(tupleComparator),\n map(([count]) => count)\n )\n );\n const startReached = streamFromEmitter(\n pipe(\n listState,\n throttleTime(200),\n filter(({ items, topItems }) => {\n return items.length > 0 && items[0].originalIndex === topItems.length;\n }),\n map(({ items }) => items[0].index),\n distinctUntilChanged()\n )\n );\n const rangeChanged = streamFromEmitter(\n pipe(\n listState,\n filter(({ items }) => items.length > 0),\n map(({ items }) => {\n let startIndex = 0;\n let endIndex = items.length - 1;\n while (items[startIndex].type === \"group\" && startIndex < endIndex) {\n startIndex++;\n }\n while (items[endIndex].type === \"group\" && endIndex > startIndex) {\n endIndex--;\n }\n return {\n startIndex: items[startIndex].index,\n endIndex: items[endIndex].index\n };\n }),\n distinctUntilChanged(rangeComparator)\n )\n );\n return { listState, topItemsIndexes, endReached, startReached, rangeChanged, itemsRendered, initialItemCount, ...stateFlags };\n },\n tup(\n sizeSystem,\n groupedListSystem,\n sizeRangeSystem,\n initialTopMostItemIndexSystem,\n scrollToIndexSystem,\n stateFlagsSystem,\n propsReadySystem,\n recalcSystem\n ),\n { singleton: true }\n);\nconst initialItemCountSystem = system(\n ([{ sizes, firstItemIndex, data, gap }, { initialTopMostItemIndex }, { initialItemCount, listState }, { didMount }]) => {\n connect(\n pipe(\n didMount,\n withLatestFrom(initialItemCount),\n filter(([, count]) => count !== 0),\n withLatestFrom(initialTopMostItemIndex, sizes, firstItemIndex, gap, data),\n map(([[, count], initialTopMostItemIndexValue, sizes2, firstItemIndex2, gap2, data2 = []]) => {\n return buildListStateFromItemCount(count, initialTopMostItemIndexValue, sizes2, firstItemIndex2, gap2, data2);\n })\n ),\n listState\n );\n return {};\n },\n tup(sizeSystem, initialTopMostItemIndexSystem, listStateSystem, propsReadySystem),\n { singleton: true }\n);\nconst scrollSeekSystem = system(\n ([{ scrollVelocity }]) => {\n const isSeeking = statefulStream(false);\n const rangeChanged = stream();\n const scrollSeekConfiguration = statefulStream(false);\n connect(\n pipe(\n scrollVelocity,\n withLatestFrom(scrollSeekConfiguration, isSeeking, rangeChanged),\n filter(([_, config]) => !!config),\n map(([speed, config, isSeeking2, range]) => {\n const { exit, enter } = config;\n if (isSeeking2) {\n if (exit(speed, range)) {\n return false;\n }\n } else {\n if (enter(speed, range)) {\n return true;\n }\n }\n return isSeeking2;\n }),\n distinctUntilChanged()\n ),\n isSeeking\n );\n subscribe(\n pipe(combineLatest(isSeeking, scrollVelocity, rangeChanged), withLatestFrom(scrollSeekConfiguration)),\n ([[isSeeking2, velocity, range], config]) => isSeeking2 && config && config.change && config.change(velocity, range)\n );\n return { isSeeking, scrollSeekConfiguration, scrollVelocity, scrollSeekRangeChanged: rangeChanged };\n },\n tup(stateFlagsSystem),\n { singleton: true }\n);\nconst topItemCountSystem = system(([{ topItemsIndexes }]) => {\n const topItemCount = statefulStream(0);\n connect(\n pipe(\n topItemCount,\n filter((length) => length > 0),\n map((length) => Array.from({ length }).map((_, index) => index))\n ),\n topItemsIndexes\n );\n return { topItemCount };\n}, tup(listStateSystem));\nconst totalListHeightSystem = system(\n ([{ footerHeight, headerHeight, fixedHeaderHeight, fixedFooterHeight }, { listState }]) => {\n const totalListHeightChanged = stream();\n const totalListHeight = statefulStreamFromEmitter(\n pipe(\n combineLatest(footerHeight, fixedFooterHeight, headerHeight, fixedHeaderHeight, listState),\n map(([footerHeight2, fixedFooterHeight2, headerHeight2, fixedHeaderHeight2, listState2]) => {\n return footerHeight2 + fixedFooterHeight2 + headerHeight2 + fixedHeaderHeight2 + listState2.offsetBottom + listState2.bottom;\n })\n ),\n 0\n );\n connect(duc(totalListHeight), totalListHeightChanged);\n return { totalListHeight, totalListHeightChanged };\n },\n tup(domIOSystem, listStateSystem),\n { singleton: true }\n);\nfunction simpleMemoize(func) {\n let called = false;\n let result;\n return () => {\n if (!called) {\n called = true;\n result = func();\n }\n return result;\n };\n}\nconst isMobileSafari = simpleMemoize(() => {\n return /iP(ad|od|hone)/i.test(navigator.userAgent) && /WebKit/i.test(navigator.userAgent);\n});\nconst upwardScrollFixSystem = system(\n ([\n { scrollBy, scrollTop, deviation, scrollingInProgress },\n { isScrolling, isAtBottom, scrollDirection, lastJumpDueToItemResize },\n { listState },\n { beforeUnshiftWith, shiftWithOffset, sizes, gap },\n { log },\n { recalcInProgress }\n ]) => {\n const deviationOffset = streamFromEmitter(\n pipe(\n listState,\n withLatestFrom(lastJumpDueToItemResize),\n scan(\n ([, prevItems, prevTotalCount, prevTotalHeight], [{ items, totalCount, bottom, offsetBottom }, lastJumpDueToItemResize2]) => {\n const totalHeight = bottom + offsetBottom;\n let newDev = 0;\n if (prevTotalCount === totalCount) {\n if (prevItems.length > 0 && items.length > 0) {\n const atStart = items[0].originalIndex === 0 && prevItems[0].originalIndex === 0;\n if (!atStart) {\n newDev = totalHeight - prevTotalHeight;\n if (newDev !== 0) {\n newDev += lastJumpDueToItemResize2;\n }\n }\n }\n }\n return [newDev, items, totalCount, totalHeight];\n },\n [0, [], 0, 0]\n ),\n filter(([amount]) => amount !== 0),\n withLatestFrom(scrollTop, scrollDirection, scrollingInProgress, isAtBottom, log, recalcInProgress),\n filter(([, scrollTop2, scrollDirection2, scrollingInProgress2, , , recalcInProgress2]) => {\n return !recalcInProgress2 && !scrollingInProgress2 && scrollTop2 !== 0 && scrollDirection2 === UP;\n }),\n map(([[amount], , , , , log2]) => {\n log2(\"Upward scrolling compensation\", { amount }, LogLevel.DEBUG);\n return amount;\n })\n )\n );\n function scrollByWith(offset) {\n if (offset > 0) {\n publish(scrollBy, { top: -offset, behavior: \"auto\" });\n publish(deviation, 0);\n } else {\n publish(deviation, 0);\n publish(scrollBy, { top: -offset, behavior: \"auto\" });\n }\n }\n subscribe(pipe(deviationOffset, withLatestFrom(deviation, isScrolling)), ([offset, deviationAmount, isScrolling2]) => {\n if (isScrolling2 && isMobileSafari()) {\n publish(deviation, deviationAmount - offset);\n } else {\n scrollByWith(-offset);\n }\n });\n subscribe(\n pipe(\n combineLatest(statefulStreamFromEmitter(isScrolling, false), deviation, recalcInProgress),\n filter(([is, deviation2, recalc]) => !is && !recalc && deviation2 !== 0),\n map(([_, deviation2]) => deviation2),\n throttleTime(1)\n ),\n scrollByWith\n );\n connect(\n pipe(\n shiftWithOffset,\n map((offset) => {\n return { top: -offset };\n })\n ),\n scrollBy\n );\n subscribe(\n pipe(\n beforeUnshiftWith,\n withLatestFrom(sizes, gap),\n map(([offset, { lastSize: defaultItemSize, groupIndices, sizeTree }, gap2]) => {\n function getItemOffset(itemCount) {\n return itemCount * (defaultItemSize + gap2);\n }\n if (groupIndices.length === 0) {\n return getItemOffset(offset);\n } else {\n let amount = 0;\n const defaultGroupSize = find(sizeTree, 0);\n let recognizedOffsetItems = 0;\n let groupIndex = 0;\n while (recognizedOffsetItems < offset) {\n recognizedOffsetItems++;\n amount += defaultGroupSize;\n let groupItemCount = groupIndices.length === groupIndex + 1 ? Infinity : groupIndices[groupIndex + 1] - groupIndices[groupIndex] - 1;\n if (recognizedOffsetItems + groupItemCount > offset) {\n amount -= defaultGroupSize;\n groupItemCount = offset - recognizedOffsetItems + 1;\n }\n recognizedOffsetItems += groupItemCount;\n amount += getItemOffset(groupItemCount);\n groupIndex++;\n }\n return amount;\n }\n })\n ),\n (offset) => {\n publish(deviation, offset);\n requestAnimationFrame(() => {\n publish(scrollBy, { top: offset });\n requestAnimationFrame(() => {\n publish(deviation, 0);\n publish(recalcInProgress, false);\n });\n });\n }\n );\n return { deviation };\n },\n tup(domIOSystem, stateFlagsSystem, listStateSystem, sizeSystem, loggerSystem, recalcSystem)\n);\nconst initialScrollTopSystem = system(\n ([{ didMount }, { scrollTo }, { listState }]) => {\n const initialScrollTop = statefulStream(0);\n subscribe(\n pipe(\n didMount,\n withLatestFrom(initialScrollTop),\n filter(([, offset]) => offset !== 0),\n map(([, offset]) => ({ top: offset }))\n ),\n (location) => {\n handleNext(\n pipe(\n listState,\n skip(1),\n filter((state) => state.items.length > 1)\n ),\n () => {\n requestAnimationFrame(() => {\n publish(scrollTo, location);\n });\n }\n );\n }\n );\n return {\n initialScrollTop\n };\n },\n tup(propsReadySystem, domIOSystem, listStateSystem),\n { singleton: true }\n);\nconst alignToBottomSystem = system(\n ([{ viewportHeight }, { totalListHeight }]) => {\n const alignToBottom = statefulStream(false);\n const paddingTopAddition = statefulStreamFromEmitter(\n pipe(\n combineLatest(alignToBottom, viewportHeight, totalListHeight),\n filter(([enabled]) => enabled),\n map(([, viewportHeight2, totalListHeight2]) => {\n return Math.max(0, viewportHeight2 - totalListHeight2);\n }),\n throttleTime(0),\n distinctUntilChanged()\n ),\n 0\n );\n return { alignToBottom, paddingTopAddition };\n },\n tup(domIOSystem, totalListHeightSystem),\n { singleton: true }\n);\nconst windowScrollerSystem = system(([{ scrollTo, scrollContainerState }]) => {\n const windowScrollContainerState = stream();\n const windowViewportRect = stream();\n const windowScrollTo = stream();\n const useWindowScroll = statefulStream(false);\n const customScrollParent = statefulStream(void 0);\n connect(\n pipe(\n combineLatest(windowScrollContainerState, windowViewportRect),\n map(([{ viewportHeight, scrollTop: windowScrollTop, scrollHeight }, { offsetTop }]) => {\n return {\n scrollTop: Math.max(0, windowScrollTop - offsetTop),\n scrollHeight,\n viewportHeight\n };\n })\n ),\n scrollContainerState\n );\n connect(\n pipe(\n scrollTo,\n withLatestFrom(windowViewportRect),\n map(([scrollTo2, { offsetTop }]) => {\n return {\n ...scrollTo2,\n top: scrollTo2.top + offsetTop\n };\n })\n ),\n windowScrollTo\n );\n return {\n // config\n useWindowScroll,\n customScrollParent,\n // input\n windowScrollContainerState,\n windowViewportRect,\n // signals\n windowScrollTo\n };\n}, tup(domIOSystem));\nconst defaultCalculateViewLocation = ({\n itemTop: itemTop2,\n itemBottom,\n viewportTop,\n viewportBottom,\n locationParams: { behavior, align, ...rest }\n}) => {\n if (itemTop2 < viewportTop) {\n return { ...rest, behavior, align: align != null ? align : \"start\" };\n }\n if (itemBottom > viewportBottom) {\n return { ...rest, behavior, align: align != null ? align : \"end\" };\n }\n return null;\n};\nconst scrollIntoViewSystem = system(\n ([\n { sizes, totalCount, gap },\n { scrollTop, viewportHeight, headerHeight, fixedHeaderHeight, fixedFooterHeight, scrollingInProgress },\n { scrollToIndex }\n ]) => {\n const scrollIntoView = stream();\n connect(\n pipe(\n scrollIntoView,\n withLatestFrom(sizes, viewportHeight, totalCount, headerHeight, fixedHeaderHeight, fixedFooterHeight, scrollTop),\n withLatestFrom(gap),\n map(([[viewLocation, sizes2, viewportHeight2, totalCount2, headerHeight2, fixedHeaderHeight2, fixedFooterHeight2, scrollTop2], gap2]) => {\n const { done, behavior, align, calculateViewLocation = defaultCalculateViewLocation, ...rest } = viewLocation;\n const actualIndex = originalIndexFromLocation(viewLocation, sizes2, totalCount2 - 1);\n const itemTop2 = offsetOf(actualIndex, sizes2.offsetTree, gap2) + headerHeight2 + fixedHeaderHeight2;\n const itemBottom = itemTop2 + findMaxKeyValue(sizes2.sizeTree, actualIndex)[1];\n const viewportTop = scrollTop2 + fixedHeaderHeight2;\n const viewportBottom = scrollTop2 + viewportHeight2 - fixedFooterHeight2;\n const location = calculateViewLocation({\n itemTop: itemTop2,\n itemBottom,\n viewportTop,\n viewportBottom,\n locationParams: { behavior, align, ...rest }\n });\n if (location) {\n done && handleNext(\n pipe(\n scrollingInProgress,\n filter((value) => value === false),\n // skips the initial publish of false, and the cleanup call.\n // but if scrollingInProgress is true, we skip the initial publish.\n skip(getValue(scrollingInProgress) ? 1 : 2)\n ),\n done\n );\n } else {\n done && done();\n }\n return location;\n }),\n filter((value) => value !== null)\n ),\n scrollToIndex\n );\n return {\n scrollIntoView\n };\n },\n tup(sizeSystem, domIOSystem, scrollToIndexSystem, listStateSystem, loggerSystem),\n { singleton: true }\n);\nconst stateLoadSystem = system(\n ([\n { sizes, sizeRanges },\n { scrollTop },\n { initialTopMostItemIndex },\n { didMount },\n { useWindowScroll, windowScrollContainerState, windowViewportRect }\n ]) => {\n const getState = stream();\n const restoreStateFrom = statefulStream(void 0);\n const statefulWindowScrollContainerState = statefulStream(null);\n const statefulWindowViewportRect = statefulStream(null);\n connect(windowScrollContainerState, statefulWindowScrollContainerState);\n connect(windowViewportRect, statefulWindowViewportRect);\n subscribe(\n pipe(getState, withLatestFrom(sizes, scrollTop, useWindowScroll, statefulWindowScrollContainerState, statefulWindowViewportRect)),\n ([callback, sizes2, scrollTop2, useWindowScroll2, windowScrollContainerState2, windowViewportRect2]) => {\n const ranges = sizeTreeToRanges(sizes2.sizeTree);\n if (useWindowScroll2 && windowScrollContainerState2 !== null && windowViewportRect2 !== null) {\n scrollTop2 = windowScrollContainerState2.scrollTop - windowViewportRect2.offsetTop;\n }\n callback({ ranges, scrollTop: scrollTop2 });\n }\n );\n connect(pipe(restoreStateFrom, filter(isDefined), map(locationFromSnapshot)), initialTopMostItemIndex);\n connect(\n pipe(\n didMount,\n withLatestFrom(restoreStateFrom),\n filter(([, state]) => state !== void 0),\n distinctUntilChanged(),\n map(([, snapshot]) => {\n return snapshot.ranges;\n })\n ),\n sizeRanges\n );\n return {\n getState,\n restoreStateFrom\n };\n },\n tup(sizeSystem, domIOSystem, initialTopMostItemIndexSystem, propsReadySystem, windowScrollerSystem)\n);\nfunction locationFromSnapshot(snapshot) {\n return { offset: snapshot.scrollTop, index: 0, align: \"start\" };\n}\nconst featureGroup1System = system(\n ([\n sizeRange,\n initialItemCount,\n propsReady,\n scrollSeek,\n totalListHeight,\n initialScrollTopSystem2,\n alignToBottom,\n windowScroller,\n scrollIntoView,\n logger\n ]) => {\n return {\n ...sizeRange,\n ...initialItemCount,\n ...propsReady,\n ...scrollSeek,\n ...totalListHeight,\n ...initialScrollTopSystem2,\n ...alignToBottom,\n ...windowScroller,\n ...scrollIntoView,\n ...logger\n };\n },\n tup(\n sizeRangeSystem,\n initialItemCountSystem,\n propsReadySystem,\n scrollSeekSystem,\n totalListHeightSystem,\n initialScrollTopSystem,\n alignToBottomSystem,\n windowScrollerSystem,\n scrollIntoViewSystem,\n loggerSystem\n )\n);\nconst listSystem = system(\n ([\n {\n totalCount,\n sizeRanges,\n fixedItemSize,\n defaultItemSize,\n trackItemSizes,\n itemSize,\n data,\n firstItemIndex,\n groupIndices,\n statefulTotalCount,\n gap,\n sizes\n },\n { initialTopMostItemIndex, scrolledToInitialItem, initialItemFinalLocationReached },\n domIO,\n stateLoad,\n followOutput,\n { listState, topItemsIndexes, ...flags },\n { scrollToIndex },\n _,\n { topItemCount },\n { groupCounts },\n featureGroup1\n ]) => {\n connect(flags.rangeChanged, featureGroup1.scrollSeekRangeChanged);\n connect(\n pipe(\n featureGroup1.windowViewportRect,\n map((value) => value.visibleHeight)\n ),\n domIO.viewportHeight\n );\n return {\n // input\n totalCount,\n data,\n firstItemIndex,\n sizeRanges,\n initialTopMostItemIndex,\n scrolledToInitialItem,\n initialItemFinalLocationReached,\n topItemsIndexes,\n topItemCount,\n groupCounts,\n fixedItemHeight: fixedItemSize,\n defaultItemHeight: defaultItemSize,\n gap,\n ...followOutput,\n // output\n statefulTotalCount,\n listState,\n scrollToIndex,\n trackItemSizes,\n itemSize,\n groupIndices,\n // exported from stateFlagsSystem\n ...flags,\n // the bag of IO from featureGroup1System\n ...featureGroup1,\n ...domIO,\n sizes,\n ...stateLoad\n };\n },\n tup(\n sizeSystem,\n initialTopMostItemIndexSystem,\n domIOSystem,\n stateLoadSystem,\n followOutputSystem,\n listStateSystem,\n scrollToIndexSystem,\n upwardScrollFixSystem,\n topItemCountSystem,\n groupedListSystem,\n featureGroup1System\n )\n);\nconst WEBKIT_STICKY = \"-webkit-sticky\";\nconst STICKY = \"sticky\";\nconst positionStickyCssValue = simpleMemoize(() => {\n if (typeof document === \"undefined\") {\n return STICKY;\n }\n const node = document.createElement(\"div\");\n node.style.position = WEBKIT_STICKY;\n return node.style.position === WEBKIT_STICKY ? WEBKIT_STICKY : STICKY;\n});\nfunction useWindowViewportRectRef(callback, customScrollParent) {\n const viewportInfo = React.useRef(null);\n const calculateInfo = React.useCallback(\n (element) => {\n if (element === null || !element.offsetParent) {\n return;\n }\n const rect = element.getBoundingClientRect();\n const visibleWidth = rect.width;\n let visibleHeight, offsetTop;\n if (customScrollParent) {\n const customScrollParentRect = customScrollParent.getBoundingClientRect();\n const deltaTop = rect.top - customScrollParentRect.top;\n visibleHeight = customScrollParentRect.height - Math.max(0, deltaTop);\n offsetTop = deltaTop + customScrollParent.scrollTop;\n } else {\n visibleHeight = window.innerHeight - Math.max(0, rect.top);\n offsetTop = rect.top + window.pageYOffset;\n }\n viewportInfo.current = {\n offsetTop,\n visibleHeight,\n visibleWidth\n };\n callback(viewportInfo.current);\n },\n [callback, customScrollParent]\n );\n const { callbackRef, ref } = useSizeWithElRef(calculateInfo);\n const scrollAndResizeEventHandler = React.useCallback(() => {\n calculateInfo(ref.current);\n }, [calculateInfo, ref]);\n React.useEffect(() => {\n if (customScrollParent) {\n customScrollParent.addEventListener(\"scroll\", scrollAndResizeEventHandler);\n const observer = new ResizeObserver(() => {\n requestAnimationFrame(scrollAndResizeEventHandler);\n });\n observer.observe(customScrollParent);\n return () => {\n customScrollParent.removeEventListener(\"scroll\", scrollAndResizeEventHandler);\n observer.unobserve(customScrollParent);\n };\n } else {\n window.addEventListener(\"scroll\", scrollAndResizeEventHandler);\n window.addEventListener(\"resize\", scrollAndResizeEventHandler);\n return () => {\n window.removeEventListener(\"scroll\", scrollAndResizeEventHandler);\n window.removeEventListener(\"resize\", scrollAndResizeEventHandler);\n };\n }\n }, [scrollAndResizeEventHandler, customScrollParent]);\n return callbackRef;\n}\nconst VirtuosoMockContext = React.createContext(void 0);\nconst VirtuosoGridMockContext = React.createContext(void 0);\nfunction identity(value) {\n return value;\n}\nconst listComponentPropsSystem = /* @__PURE__ */ system(() => {\n const itemContent = statefulStream((index) => `Item ${index}`);\n const context = statefulStream(null);\n const groupContent = statefulStream((index) => `Group ${index}`);\n const components = statefulStream({});\n const computeItemKey = statefulStream(identity);\n const headerFooterTag = statefulStream(\"div\");\n const scrollerRef = statefulStream(noop);\n const distinctProp = (propName, defaultValue = null) => {\n return statefulStreamFromEmitter(\n pipe(\n components,\n map((components2) => components2[propName]),\n distinctUntilChanged()\n ),\n defaultValue\n );\n };\n return {\n context,\n itemContent,\n groupContent,\n components,\n computeItemKey,\n headerFooterTag,\n scrollerRef,\n FooterComponent: distinctProp(\"Footer\"),\n HeaderComponent: distinctProp(\"Header\"),\n TopItemListComponent: distinctProp(\"TopItemList\"),\n ListComponent: distinctProp(\"List\", \"div\"),\n ItemComponent: distinctProp(\"Item\", \"div\"),\n GroupComponent: distinctProp(\"Group\", \"div\"),\n ScrollerComponent: distinctProp(\"Scroller\", \"div\"),\n EmptyPlaceholder: distinctProp(\"EmptyPlaceholder\"),\n ScrollSeekPlaceholder: distinctProp(\"ScrollSeekPlaceholder\")\n };\n});\nconst combinedSystem$2 = /* @__PURE__ */ system(([listSystem2, propsSystem]) => {\n return { ...listSystem2, ...propsSystem };\n}, tup(listSystem, listComponentPropsSystem));\nconst DefaultScrollSeekPlaceholder$1 = ({ height }) => /* @__PURE__ */ React.createElement(\"div\", { style: { height } });\nconst GROUP_STYLE = { position: positionStickyCssValue(), zIndex: 1, overflowAnchor: \"none\" };\nconst ITEM_STYLE$1 = { overflowAnchor: \"none\" };\nconst Items$1 = /* @__PURE__ */ React.memo(function VirtuosoItems({ showTopList = false }) {\n const listState = useEmitterValue$2(\"listState\");\n const sizeRanges = usePublisher$2(\"sizeRanges\");\n const useWindowScroll = useEmitterValue$2(\"useWindowScroll\");\n const customScrollParent = useEmitterValue$2(\"customScrollParent\");\n const windowScrollContainerStateCallback = usePublisher$2(\"windowScrollContainerState\");\n const _scrollContainerStateCallback = usePublisher$2(\"scrollContainerState\");\n const scrollContainerStateCallback = customScrollParent || useWindowScroll ? windowScrollContainerStateCallback : _scrollContainerStateCallback;\n const itemContent = useEmitterValue$2(\"itemContent\");\n const context = useEmitterValue$2(\"context\");\n const groupContent = useEmitterValue$2(\"groupContent\");\n const trackItemSizes = useEmitterValue$2(\"trackItemSizes\");\n const itemSize = useEmitterValue$2(\"itemSize\");\n const log = useEmitterValue$2(\"log\");\n const listGap = usePublisher$2(\"gap\");\n const { callbackRef } = useChangedListContentsSizes(\n sizeRanges,\n itemSize,\n trackItemSizes,\n showTopList ? noop : scrollContainerStateCallback,\n log,\n listGap,\n customScrollParent\n );\n const [deviation, setDeviation] = React.useState(0);\n useEmitter$2(\"deviation\", (value) => {\n if (deviation !== value) {\n setDeviation(value);\n }\n });\n const EmptyPlaceholder = useEmitterValue$2(\"EmptyPlaceholder\");\n const ScrollSeekPlaceholder = useEmitterValue$2(\"ScrollSeekPlaceholder\") || DefaultScrollSeekPlaceholder$1;\n const ListComponent = useEmitterValue$2(\"ListComponent\");\n const ItemComponent = useEmitterValue$2(\"ItemComponent\");\n const GroupComponent = useEmitterValue$2(\"GroupComponent\");\n const computeItemKey = useEmitterValue$2(\"computeItemKey\");\n const isSeeking = useEmitterValue$2(\"isSeeking\");\n const hasGroups2 = useEmitterValue$2(\"groupIndices\").length > 0;\n const alignToBottom = useEmitterValue$2(\"alignToBottom\");\n const initialItemFinalLocationReached = useEmitterValue$2(\"initialItemFinalLocationReached\");\n const containerStyle = showTopList ? {} : {\n boxSizing: \"border-box\",\n paddingTop: listState.offsetTop,\n paddingBottom: listState.offsetBottom,\n marginTop: deviation !== 0 ? deviation : alignToBottom ? \"auto\" : 0,\n ...initialItemFinalLocationReached ? {} : { visibility: \"hidden\" }\n };\n if (!showTopList && listState.totalCount === 0 && EmptyPlaceholder) {\n return React.createElement(EmptyPlaceholder, contextPropIfNotDomElement(EmptyPlaceholder, context));\n }\n return React.createElement(\n ListComponent,\n {\n ...contextPropIfNotDomElement(ListComponent, context),\n ref: callbackRef,\n style: containerStyle,\n \"data-testid\": showTopList ? \"virtuoso-top-item-list\" : \"virtuoso-item-list\"\n },\n (showTopList ? listState.topItems : listState.items).map((item) => {\n const index = item.originalIndex;\n const key = computeItemKey(index + listState.firstItemIndex, item.data, context);\n if (isSeeking) {\n return React.createElement(ScrollSeekPlaceholder, {\n ...contextPropIfNotDomElement(ScrollSeekPlaceholder, context),\n key,\n index: item.index,\n height: item.size,\n type: item.type || \"item\",\n ...item.type === \"group\" ? {} : { groupIndex: item.groupIndex }\n });\n }\n if (item.type === \"group\") {\n return React.createElement(\n GroupComponent,\n {\n ...contextPropIfNotDomElement(GroupComponent, context),\n key,\n \"data-index\": index,\n \"data-known-size\": item.size,\n \"data-item-index\": item.index,\n style: GROUP_STYLE\n },\n groupContent(item.index, context)\n );\n } else {\n return React.createElement(\n ItemComponent,\n {\n ...contextPropIfNotDomElement(ItemComponent, context),\n ...itemPropIfNotDomElement(ItemComponent, item.data),\n key,\n \"data-index\": index,\n \"data-known-size\": item.size,\n \"data-item-index\": item.index,\n \"data-item-group-index\": item.groupIndex,\n style: ITEM_STYLE$1\n },\n hasGroups2 ? itemContent(item.index, item.groupIndex, item.data, context) : itemContent(item.index, item.data, context)\n );\n }\n })\n );\n});\nconst scrollerStyle = {\n height: \"100%\",\n outline: \"none\",\n overflowY: \"auto\",\n position: \"relative\",\n WebkitOverflowScrolling: \"touch\"\n};\nconst viewportStyle = (alignToBottom) => ({\n width: \"100%\",\n height: \"100%\",\n position: \"absolute\",\n top: 0,\n ...alignToBottom ? { display: \"flex\", flexDirection: \"column\" } : {}\n});\nconst topItemListStyle = {\n width: \"100%\",\n position: positionStickyCssValue(),\n top: 0,\n zIndex: 1\n};\nfunction contextPropIfNotDomElement(element, context) {\n if (typeof element === \"string\") {\n return void 0;\n }\n return { context };\n}\nfunction itemPropIfNotDomElement(element, item) {\n return { item: typeof element === \"string\" ? void 0 : item };\n}\nconst Header$1 = /* @__PURE__ */ React.memo(function VirtuosoHeader() {\n const Header2 = useEmitterValue$2(\"HeaderComponent\");\n const headerHeight = usePublisher$2(\"headerHeight\");\n const headerFooterTag = useEmitterValue$2(\"headerFooterTag\");\n const ref = useSize((el) => headerHeight(correctItemSize(el, \"height\")));\n const context = useEmitterValue$2(\"context\");\n return Header2 ? React.createElement(headerFooterTag, { ref }, React.createElement(Header2, contextPropIfNotDomElement(Header2, context))) : null;\n});\nconst Footer$1 = /* @__PURE__ */ React.memo(function VirtuosoFooter() {\n const Footer2 = useEmitterValue$2(\"FooterComponent\");\n const footerHeight = usePublisher$2(\"footerHeight\");\n const headerFooterTag = useEmitterValue$2(\"headerFooterTag\");\n const ref = useSize((el) => footerHeight(correctItemSize(el, \"height\")));\n const context = useEmitterValue$2(\"context\");\n return Footer2 ? React.createElement(headerFooterTag, { ref }, React.createElement(Footer2, contextPropIfNotDomElement(Footer2, context))) : null;\n});\nfunction buildScroller({ usePublisher: usePublisher2, useEmitter: useEmitter2, useEmitterValue: useEmitterValue2 }) {\n const Scroller2 = React.memo(function VirtuosoScroller({ style, children, ...props }) {\n const scrollContainerStateCallback = usePublisher2(\"scrollContainerState\");\n const ScrollerComponent = useEmitterValue2(\"ScrollerComponent\");\n const smoothScrollTargetReached = usePublisher2(\"smoothScrollTargetReached\");\n const scrollerRefCallback = useEmitterValue2(\"scrollerRef\");\n const context = useEmitterValue2(\"context\");\n const { scrollerRef, scrollByCallback, scrollToCallback } = useScrollTop(\n scrollContainerStateCallback,\n smoothScrollTargetReached,\n ScrollerComponent,\n scrollerRefCallback\n );\n useEmitter2(\"scrollTo\", scrollToCallback);\n useEmitter2(\"scrollBy\", scrollByCallback);\n return React.createElement(\n ScrollerComponent,\n {\n ref: scrollerRef,\n style: { ...scrollerStyle, ...style },\n \"data-testid\": \"virtuoso-scroller\",\n \"data-virtuoso-scroller\": true,\n tabIndex: 0,\n ...props,\n ...contextPropIfNotDomElement(ScrollerComponent, context)\n },\n children\n );\n });\n return Scroller2;\n}\nfunction buildWindowScroller({ usePublisher: usePublisher2, useEmitter: useEmitter2, useEmitterValue: useEmitterValue2 }) {\n const Scroller2 = React.memo(function VirtuosoWindowScroller({ style, children, ...props }) {\n const scrollContainerStateCallback = usePublisher2(\"windowScrollContainerState\");\n const ScrollerComponent = useEmitterValue2(\"ScrollerComponent\");\n const smoothScrollTargetReached = usePublisher2(\"smoothScrollTargetReached\");\n const totalListHeight = useEmitterValue2(\"totalListHeight\");\n const deviation = useEmitterValue2(\"deviation\");\n const customScrollParent = useEmitterValue2(\"customScrollParent\");\n const context = useEmitterValue2(\"context\");\n const { scrollerRef, scrollByCallback, scrollToCallback } = useScrollTop(\n scrollContainerStateCallback,\n smoothScrollTargetReached,\n ScrollerComponent,\n noop,\n customScrollParent\n );\n useIsomorphicLayoutEffect$1(() => {\n scrollerRef.current = customScrollParent ? customScrollParent : window;\n return () => {\n scrollerRef.current = null;\n };\n }, [scrollerRef, customScrollParent]);\n useEmitter2(\"windowScrollTo\", scrollToCallback);\n useEmitter2(\"scrollBy\", scrollByCallback);\n return React.createElement(\n ScrollerComponent,\n {\n style: { position: \"relative\", ...style, ...totalListHeight !== 0 ? { height: totalListHeight + deviation } : {} },\n \"data-virtuoso-scroller\": true,\n ...props,\n ...contextPropIfNotDomElement(ScrollerComponent, context)\n },\n children\n );\n });\n return Scroller2;\n}\nconst Viewport$2 = ({ children }) => {\n const ctx = React.useContext(VirtuosoMockContext);\n const viewportHeight = usePublisher$2(\"viewportHeight\");\n const fixedItemHeight = usePublisher$2(\"fixedItemHeight\");\n const alignToBottom = useEmitterValue$2(\"alignToBottom\");\n const viewportRef = useSize(compose(viewportHeight, (el) => correctItemSize(el, \"height\")));\n React.useEffect(() => {\n if (ctx) {\n viewportHeight(ctx.viewportHeight);\n fixedItemHeight(ctx.itemHeight);\n }\n }, [ctx, viewportHeight, fixedItemHeight]);\n return /* @__PURE__ */ React.createElement(\"div\", { style: viewportStyle(alignToBottom), ref: viewportRef, \"data-viewport-type\": \"element\" }, children);\n};\nconst WindowViewport$2 = ({ children }) => {\n const ctx = React.useContext(VirtuosoMockContext);\n const windowViewportRect = usePublisher$2(\"windowViewportRect\");\n const fixedItemHeight = usePublisher$2(\"fixedItemHeight\");\n const customScrollParent = useEmitterValue$2(\"customScrollParent\");\n const viewportRef = useWindowViewportRectRef(windowViewportRect, customScrollParent);\n const alignToBottom = useEmitterValue$2(\"alignToBottom\");\n React.useEffect(() => {\n if (ctx) {\n fixedItemHeight(ctx.itemHeight);\n windowViewportRect({ offsetTop: 0, visibleHeight: ctx.viewportHeight, visibleWidth: 100 });\n }\n }, [ctx, windowViewportRect, fixedItemHeight]);\n return /* @__PURE__ */ React.createElement(\"div\", { ref: viewportRef, style: viewportStyle(alignToBottom), \"data-viewport-type\": \"window\" }, children);\n};\nconst TopItemListContainer = ({ children }) => {\n const TopItemList = useEmitterValue$2(\"TopItemListComponent\") || \"div\";\n const headerHeight = useEmitterValue$2(\"headerHeight\");\n const style = { ...topItemListStyle, marginTop: `${headerHeight}px` };\n const context = useEmitterValue$2(\"context\");\n return React.createElement(TopItemList, { style, ...contextPropIfNotDomElement(TopItemList, context) }, children);\n};\nconst ListRoot = /* @__PURE__ */ React.memo(function VirtuosoRoot(props) {\n const useWindowScroll = useEmitterValue$2(\"useWindowScroll\");\n const showTopList = useEmitterValue$2(\"topItemsIndexes\").length > 0;\n const customScrollParent = useEmitterValue$2(\"customScrollParent\");\n const TheScroller = customScrollParent || useWindowScroll ? WindowScroller$2 : Scroller$2;\n const TheViewport = customScrollParent || useWindowScroll ? WindowViewport$2 : Viewport$2;\n return /* @__PURE__ */ React.createElement(TheScroller, { ...props }, showTopList && /* @__PURE__ */ React.createElement(TopItemListContainer, null, /* @__PURE__ */ React.createElement(Items$1, { showTopList: true })), /* @__PURE__ */ React.createElement(TheViewport, null, /* @__PURE__ */ React.createElement(Header$1, null), /* @__PURE__ */ React.createElement(Items$1, null), /* @__PURE__ */ React.createElement(Footer$1, null)));\n});\nconst {\n Component: List,\n usePublisher: usePublisher$2,\n useEmitterValue: useEmitterValue$2,\n useEmitter: useEmitter$2\n} = /* @__PURE__ */ systemToComponent(\n combinedSystem$2,\n {\n required: {},\n optional: {\n restoreStateFrom: \"restoreStateFrom\",\n context: \"context\",\n followOutput: \"followOutput\",\n itemContent: \"itemContent\",\n groupContent: \"groupContent\",\n overscan: \"overscan\",\n increaseViewportBy: \"increaseViewportBy\",\n totalCount: \"totalCount\",\n groupCounts: \"groupCounts\",\n topItemCount: \"topItemCount\",\n firstItemIndex: \"firstItemIndex\",\n initialTopMostItemIndex: \"initialTopMostItemIndex\",\n components: \"components\",\n atBottomThreshold: \"atBottomThreshold\",\n atTopThreshold: \"atTopThreshold\",\n computeItemKey: \"computeItemKey\",\n defaultItemHeight: \"defaultItemHeight\",\n fixedItemHeight: \"fixedItemHeight\",\n itemSize: \"itemSize\",\n scrollSeekConfiguration: \"scrollSeekConfiguration\",\n headerFooterTag: \"headerFooterTag\",\n data: \"data\",\n initialItemCount: \"initialItemCount\",\n initialScrollTop: \"initialScrollTop\",\n alignToBottom: \"alignToBottom\",\n useWindowScroll: \"useWindowScroll\",\n customScrollParent: \"customScrollParent\",\n scrollerRef: \"scrollerRef\",\n logLevel: \"logLevel\"\n },\n methods: {\n scrollToIndex: \"scrollToIndex\",\n scrollIntoView: \"scrollIntoView\",\n scrollTo: \"scrollTo\",\n scrollBy: \"scrollBy\",\n autoscrollToBottom: \"autoscrollToBottom\",\n getState: \"getState\"\n },\n events: {\n isScrolling: \"isScrolling\",\n endReached: \"endReached\",\n startReached: \"startReached\",\n rangeChanged: \"rangeChanged\",\n atBottomStateChange: \"atBottomStateChange\",\n atTopStateChange: \"atTopStateChange\",\n totalListHeightChanged: \"totalListHeightChanged\",\n itemsRendered: \"itemsRendered\",\n groupIndices: \"groupIndices\"\n }\n },\n ListRoot\n);\nconst Scroller$2 = /* @__PURE__ */ buildScroller({ usePublisher: usePublisher$2, useEmitterValue: useEmitterValue$2, useEmitter: useEmitter$2 });\nconst WindowScroller$2 = /* @__PURE__ */ buildWindowScroller({ usePublisher: usePublisher$2, useEmitterValue: useEmitterValue$2, useEmitter: useEmitter$2 });\nconst Virtuoso = List;\nconst GroupedVirtuoso = List;\nconst INITIAL_GRID_STATE = {\n items: [],\n offsetBottom: 0,\n offsetTop: 0,\n top: 0,\n bottom: 0,\n itemHeight: 0,\n itemWidth: 0\n};\nconst PROBE_GRID_STATE = {\n items: [{ index: 0 }],\n offsetBottom: 0,\n offsetTop: 0,\n top: 0,\n bottom: 0,\n itemHeight: 0,\n itemWidth: 0\n};\nconst { round, ceil, floor, min, max } = Math;\nfunction buildProbeGridState(items) {\n return {\n ...PROBE_GRID_STATE,\n items\n };\n}\nfunction buildItems(startIndex, endIndex, data) {\n return Array.from({ length: endIndex - startIndex + 1 }).map((_, i) => {\n const dataItem = data === null ? null : data[i + startIndex];\n return { index: i + startIndex, data: dataItem };\n });\n}\nfunction gapComparator(prev, next) {\n return prev && prev.column === next.column && prev.row === next.row;\n}\nfunction dimensionComparator(prev, next) {\n return prev && prev.width === next.width && prev.height === next.height;\n}\nconst gridSystem = /* @__PURE__ */ system(\n ([\n { overscan, visibleRange, listBoundary },\n { scrollTop, viewportHeight, scrollBy, scrollTo, smoothScrollTargetReached, scrollContainerState, footerHeight, headerHeight },\n stateFlags,\n scrollSeek,\n { propsReady, didMount },\n { windowViewportRect, useWindowScroll, customScrollParent, windowScrollContainerState, windowScrollTo },\n log\n ]) => {\n const totalCount = statefulStream(0);\n const initialItemCount = statefulStream(0);\n const gridState = statefulStream(INITIAL_GRID_STATE);\n const viewportDimensions = statefulStream({ height: 0, width: 0 });\n const itemDimensions = statefulStream({ height: 0, width: 0 });\n const scrollToIndex = stream();\n const scrollHeight = stream();\n const deviation = statefulStream(0);\n const data = statefulStream(null);\n const gap = statefulStream({ row: 0, column: 0 });\n const stateChanged = stream();\n const restoreStateFrom = stream();\n const stateRestoreInProgress = statefulStream(false);\n const initialTopMostItemIndex = statefulStream(0);\n const scrolledToInitialItem = statefulStream(true);\n const scrollScheduled = statefulStream(false);\n subscribe(\n pipe(\n didMount,\n withLatestFrom(initialTopMostItemIndex),\n filter(([_, location]) => !!location)\n ),\n () => {\n publish(scrolledToInitialItem, false);\n publish(initialItemCount, 0);\n }\n );\n subscribe(\n pipe(\n combineLatest(didMount, scrolledToInitialItem, itemDimensions, viewportDimensions, initialTopMostItemIndex, scrollScheduled),\n filter(([didMount2, scrolledToInitialItem2, itemDimensions2, viewportDimensions2, , scrollScheduled2]) => {\n return didMount2 && !scrolledToInitialItem2 && itemDimensions2.height !== 0 && viewportDimensions2.height !== 0 && !scrollScheduled2;\n })\n ),\n ([, , , , initialTopMostItemIndex2]) => {\n publish(scrollScheduled, true);\n skipFrames(1, () => {\n publish(scrollToIndex, initialTopMostItemIndex2);\n });\n handleNext(pipe(scrollTop), () => {\n publish(listBoundary, [0, 0]);\n publish(scrolledToInitialItem, true);\n });\n }\n );\n connect(\n pipe(\n restoreStateFrom,\n filter((value) => value !== void 0 && value !== null && value.scrollTop > 0),\n mapTo(0)\n ),\n initialItemCount\n );\n subscribe(\n pipe(\n didMount,\n withLatestFrom(restoreStateFrom),\n filter(([, snapshot]) => snapshot !== void 0 && snapshot !== null)\n ),\n ([, snapshot]) => {\n if (!snapshot) {\n return;\n }\n publish(viewportDimensions, snapshot.viewport), publish(itemDimensions, snapshot == null ? void 0 : snapshot.item);\n publish(gap, snapshot.gap);\n if (snapshot.scrollTop > 0) {\n publish(stateRestoreInProgress, true);\n handleNext(pipe(scrollTop, skip(1)), (_value) => {\n publish(stateRestoreInProgress, false);\n });\n publish(scrollTo, { top: snapshot.scrollTop });\n }\n }\n );\n connect(\n pipe(\n viewportDimensions,\n map(({ height }) => height)\n ),\n viewportHeight\n );\n connect(\n pipe(\n combineLatest(\n duc(viewportDimensions, dimensionComparator),\n duc(itemDimensions, dimensionComparator),\n duc(gap, (prev, next) => prev && prev.column === next.column && prev.row === next.row),\n duc(scrollTop)\n ),\n map(([viewport, item, gap2, scrollTop2]) => ({\n viewport,\n item,\n gap: gap2,\n scrollTop: scrollTop2\n }))\n ),\n stateChanged\n );\n connect(\n pipe(\n combineLatest(\n duc(totalCount),\n visibleRange,\n duc(gap, gapComparator),\n duc(itemDimensions, dimensionComparator),\n duc(viewportDimensions, dimensionComparator),\n duc(data),\n duc(initialItemCount),\n duc(stateRestoreInProgress),\n duc(scrolledToInitialItem),\n duc(initialTopMostItemIndex)\n ),\n filter(([, , , , , , , stateRestoreInProgress2]) => {\n return !stateRestoreInProgress2;\n }),\n map(\n ([\n totalCount2,\n [startOffset, endOffset],\n gap2,\n item,\n viewport,\n data2,\n initialItemCount2,\n ,\n scrolledToInitialItem2,\n initialTopMostItemIndex2\n ]) => {\n const { row: rowGap, column: columnGap } = gap2;\n const { height: itemHeight, width: itemWidth } = item;\n const { width: viewportWidth } = viewport;\n if (initialItemCount2 === 0 && (totalCount2 === 0 || viewportWidth === 0)) {\n return INITIAL_GRID_STATE;\n }\n if (itemWidth === 0) {\n const startIndex2 = getInitialTopMostItemIndexNumber(initialTopMostItemIndex2, totalCount2);\n const endIndex2 = startIndex2 === 0 ? Math.max(initialItemCount2 - 1, 0) : startIndex2;\n return buildProbeGridState(buildItems(startIndex2, endIndex2, data2));\n }\n const perRow = itemsPerRow(viewportWidth, itemWidth, columnGap);\n let startIndex;\n let endIndex;\n if (!scrolledToInitialItem2) {\n startIndex = 0;\n endIndex = -1;\n } else if (startOffset === 0 && endOffset === 0 && initialItemCount2 > 0) {\n startIndex = 0;\n endIndex = initialItemCount2 - 1;\n } else {\n startIndex = perRow * floor((startOffset + rowGap) / (itemHeight + rowGap));\n endIndex = perRow * ceil((endOffset + rowGap) / (itemHeight + rowGap)) - 1;\n endIndex = min(totalCount2 - 1, max(endIndex, perRow - 1));\n startIndex = min(endIndex, max(0, startIndex));\n }\n const items = buildItems(startIndex, endIndex, data2);\n const { top, bottom } = gridLayout(viewport, gap2, item, items);\n const rowCount = ceil(totalCount2 / perRow);\n const totalHeight = rowCount * itemHeight + (rowCount - 1) * rowGap;\n const offsetBottom = totalHeight - bottom;\n return { items, offsetTop: top, offsetBottom, top, bottom, itemHeight, itemWidth };\n }\n )\n ),\n gridState\n );\n connect(\n pipe(\n data,\n filter((data2) => data2 !== null),\n map((data2) => data2.length)\n ),\n totalCount\n );\n connect(\n pipe(\n combineLatest(viewportDimensions, itemDimensions, gridState, gap),\n filter(([viewportDimensions2, itemDimensions2, { items }]) => {\n return items.length > 0 && itemDimensions2.height !== 0 && viewportDimensions2.height !== 0;\n }),\n map(([viewportDimensions2, itemDimensions2, { items }, gap2]) => {\n const { top, bottom } = gridLayout(viewportDimensions2, gap2, itemDimensions2, items);\n return [top, bottom];\n }),\n distinctUntilChanged(tupleComparator)\n ),\n listBoundary\n );\n const hasScrolled = statefulStream(false);\n connect(\n pipe(\n scrollTop,\n withLatestFrom(hasScrolled),\n map(([scrollTop2, hasScrolled2]) => {\n return hasScrolled2 || scrollTop2 !== 0;\n })\n ),\n hasScrolled\n );\n const endReached = streamFromEmitter(\n pipe(\n duc(gridState),\n filter(({ items }) => items.length > 0),\n withLatestFrom(totalCount, hasScrolled),\n filter(([{ items }, totalCount2, hasScrolled2]) => hasScrolled2 && items[items.length - 1].index === totalCount2 - 1),\n map(([, totalCount2]) => totalCount2 - 1),\n distinctUntilChanged()\n )\n );\n const startReached = streamFromEmitter(\n pipe(\n duc(gridState),\n filter(({ items }) => {\n return items.length > 0 && items[0].index === 0;\n }),\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n mapTo(0),\n distinctUntilChanged()\n )\n );\n const rangeChanged = streamFromEmitter(\n pipe(\n duc(gridState),\n withLatestFrom(stateRestoreInProgress),\n filter(([{ items }, stateRestoreInProgress2]) => items.length > 0 && !stateRestoreInProgress2),\n map(([{ items }]) => {\n return {\n startIndex: items[0].index,\n endIndex: items[items.length - 1].index\n };\n }),\n distinctUntilChanged(rangeComparator),\n throttleTime(0)\n )\n );\n connect(rangeChanged, scrollSeek.scrollSeekRangeChanged);\n connect(\n pipe(\n scrollToIndex,\n withLatestFrom(viewportDimensions, itemDimensions, totalCount, gap),\n map(([location, viewportDimensions2, itemDimensions2, totalCount2, gap2]) => {\n const normalLocation = normalizeIndexLocation(location);\n const { align, behavior, offset } = normalLocation;\n let index = normalLocation.index;\n if (index === \"LAST\") {\n index = totalCount2 - 1;\n }\n index = max(0, index, min(totalCount2 - 1, index));\n let top = itemTop(viewportDimensions2, gap2, itemDimensions2, index);\n if (align === \"end\") {\n top = round(top - viewportDimensions2.height + itemDimensions2.height);\n } else if (align === \"center\") {\n top = round(top - viewportDimensions2.height / 2 + itemDimensions2.height / 2);\n }\n if (offset) {\n top += offset;\n }\n return { top, behavior };\n })\n ),\n scrollTo\n );\n const totalListHeight = statefulStreamFromEmitter(\n pipe(\n gridState,\n map((gridState2) => {\n return gridState2.offsetBottom + gridState2.bottom;\n })\n ),\n 0\n );\n connect(\n pipe(\n windowViewportRect,\n map((viewportInfo) => ({ width: viewportInfo.visibleWidth, height: viewportInfo.visibleHeight }))\n ),\n viewportDimensions\n );\n return {\n // input\n data,\n totalCount,\n viewportDimensions,\n itemDimensions,\n scrollTop,\n scrollHeight,\n overscan,\n scrollBy,\n scrollTo,\n scrollToIndex,\n smoothScrollTargetReached,\n windowViewportRect,\n windowScrollTo,\n useWindowScroll,\n customScrollParent,\n windowScrollContainerState,\n deviation,\n scrollContainerState,\n footerHeight,\n headerHeight,\n initialItemCount,\n gap,\n restoreStateFrom,\n ...scrollSeek,\n initialTopMostItemIndex,\n // output\n gridState,\n totalListHeight,\n ...stateFlags,\n startReached,\n endReached,\n rangeChanged,\n stateChanged,\n propsReady,\n stateRestoreInProgress,\n ...log\n };\n },\n tup(sizeRangeSystem, domIOSystem, stateFlagsSystem, scrollSeekSystem, propsReadySystem, windowScrollerSystem, loggerSystem)\n);\nfunction gridLayout(viewport, gap, item, items) {\n const { height: itemHeight } = item;\n if (itemHeight === void 0 || items.length === 0) {\n return { top: 0, bottom: 0 };\n }\n const top = itemTop(viewport, gap, item, items[0].index);\n const bottom = itemTop(viewport, gap, item, items[items.length - 1].index) + itemHeight;\n return { top, bottom };\n}\nfunction itemTop(viewport, gap, item, index) {\n const perRow = itemsPerRow(viewport.width, item.width, gap.column);\n const rowCount = floor(index / perRow);\n const top = rowCount * item.height + max(0, rowCount - 1) * gap.row;\n return top > 0 ? top + gap.row : top;\n}\nfunction itemsPerRow(viewportWidth, itemWidth, gap) {\n return max(1, floor((viewportWidth + gap) / (floor(itemWidth) + gap)));\n}\nconst gridComponentPropsSystem = /* @__PURE__ */ system(() => {\n const itemContent = statefulStream((index) => `Item ${index}`);\n const components = statefulStream({});\n const context = statefulStream(null);\n const itemClassName = statefulStream(\"virtuoso-grid-item\");\n const listClassName = statefulStream(\"virtuoso-grid-list\");\n const computeItemKey = statefulStream(identity);\n const headerFooterTag = statefulStream(\"div\");\n const scrollerRef = statefulStream(noop);\n const distinctProp = (propName, defaultValue = null) => {\n return statefulStreamFromEmitter(\n pipe(\n components,\n map((components2) => components2[propName]),\n distinctUntilChanged()\n ),\n defaultValue\n );\n };\n return {\n context,\n itemContent,\n components,\n computeItemKey,\n itemClassName,\n listClassName,\n headerFooterTag,\n scrollerRef,\n FooterComponent: distinctProp(\"Footer\"),\n HeaderComponent: distinctProp(\"Header\"),\n ListComponent: distinctProp(\"List\", \"div\"),\n ItemComponent: distinctProp(\"Item\", \"div\"),\n ScrollerComponent: distinctProp(\"Scroller\", \"div\"),\n ScrollSeekPlaceholder: distinctProp(\"ScrollSeekPlaceholder\", \"div\")\n };\n});\nconst combinedSystem$1 = /* @__PURE__ */ system(([gridSystem2, gridComponentPropsSystem2]) => {\n return { ...gridSystem2, ...gridComponentPropsSystem2 };\n}, tup(gridSystem, gridComponentPropsSystem));\nconst GridItems = /* @__PURE__ */ React.memo(function GridItems2() {\n const gridState = useEmitterValue$1(\"gridState\");\n const listClassName = useEmitterValue$1(\"listClassName\");\n const itemClassName = useEmitterValue$1(\"itemClassName\");\n const itemContent = useEmitterValue$1(\"itemContent\");\n const computeItemKey = useEmitterValue$1(\"computeItemKey\");\n const isSeeking = useEmitterValue$1(\"isSeeking\");\n const scrollHeightCallback = usePublisher$1(\"scrollHeight\");\n const ItemComponent = useEmitterValue$1(\"ItemComponent\");\n const ListComponent = useEmitterValue$1(\"ListComponent\");\n const ScrollSeekPlaceholder = useEmitterValue$1(\"ScrollSeekPlaceholder\");\n const context = useEmitterValue$1(\"context\");\n const itemDimensions = usePublisher$1(\"itemDimensions\");\n const gridGap = usePublisher$1(\"gap\");\n const log = useEmitterValue$1(\"log\");\n const stateRestoreInProgress = useEmitterValue$1(\"stateRestoreInProgress\");\n const listRef = useSize((el) => {\n const scrollHeight = el.parentElement.parentElement.scrollHeight;\n scrollHeightCallback(scrollHeight);\n const firstItem = el.firstChild;\n if (firstItem) {\n const { width, height } = firstItem.getBoundingClientRect();\n itemDimensions({ width, height });\n }\n gridGap({\n row: resolveGapValue(\"row-gap\", getComputedStyle(el).rowGap, log),\n column: resolveGapValue(\"column-gap\", getComputedStyle(el).columnGap, log)\n });\n });\n if (stateRestoreInProgress) {\n return null;\n }\n return React.createElement(\n ListComponent,\n {\n ref: listRef,\n className: listClassName,\n ...contextPropIfNotDomElement(ListComponent, context),\n style: { paddingTop: gridState.offsetTop, paddingBottom: gridState.offsetBottom },\n \"data-testid\": \"virtuoso-item-list\"\n },\n gridState.items.map((item) => {\n const key = computeItemKey(item.index, item.data, context);\n return isSeeking ? React.createElement(ScrollSeekPlaceholder, {\n key,\n ...contextPropIfNotDomElement(ScrollSeekPlaceholder, context),\n index: item.index,\n height: gridState.itemHeight,\n width: gridState.itemWidth\n }) : React.createElement(\n ItemComponent,\n { ...contextPropIfNotDomElement(ItemComponent, context), className: itemClassName, \"data-index\": item.index, key },\n itemContent(item.index, item.data, context)\n );\n })\n );\n});\nconst Header = React.memo(function VirtuosoHeader2() {\n const Header2 = useEmitterValue$1(\"HeaderComponent\");\n const headerHeight = usePublisher$1(\"headerHeight\");\n const headerFooterTag = useEmitterValue$1(\"headerFooterTag\");\n const ref = useSize((el) => headerHeight(correctItemSize(el, \"height\")));\n const context = useEmitterValue$1(\"context\");\n return Header2 ? React.createElement(headerFooterTag, { ref }, React.createElement(Header2, contextPropIfNotDomElement(Header2, context))) : null;\n});\nconst Footer = React.memo(function VirtuosoGridFooter() {\n const Footer2 = useEmitterValue$1(\"FooterComponent\");\n const footerHeight = usePublisher$1(\"footerHeight\");\n const headerFooterTag = useEmitterValue$1(\"headerFooterTag\");\n const ref = useSize((el) => footerHeight(correctItemSize(el, \"height\")));\n const context = useEmitterValue$1(\"context\");\n return Footer2 ? React.createElement(headerFooterTag, { ref }, React.createElement(Footer2, contextPropIfNotDomElement(Footer2, context))) : null;\n});\nconst Viewport$1 = ({ children }) => {\n const ctx = React.useContext(VirtuosoGridMockContext);\n const itemDimensions = usePublisher$1(\"itemDimensions\");\n const viewportDimensions = usePublisher$1(\"viewportDimensions\");\n const viewportRef = useSize((el) => {\n viewportDimensions(el.getBoundingClientRect());\n });\n React.useEffect(() => {\n if (ctx) {\n viewportDimensions({ height: ctx.viewportHeight, width: ctx.viewportWidth });\n itemDimensions({ height: ctx.itemHeight, width: ctx.itemWidth });\n }\n }, [ctx, viewportDimensions, itemDimensions]);\n return /* @__PURE__ */ React.createElement(\"div\", { style: viewportStyle(false), ref: viewportRef }, children);\n};\nconst WindowViewport$1 = ({ children }) => {\n const ctx = React.useContext(VirtuosoGridMockContext);\n const windowViewportRect = usePublisher$1(\"windowViewportRect\");\n const itemDimensions = usePublisher$1(\"itemDimensions\");\n const customScrollParent = useEmitterValue$1(\"customScrollParent\");\n const viewportRef = useWindowViewportRectRef(windowViewportRect, customScrollParent);\n React.useEffect(() => {\n if (ctx) {\n itemDimensions({ height: ctx.itemHeight, width: ctx.itemWidth });\n windowViewportRect({ offsetTop: 0, visibleHeight: ctx.viewportHeight, visibleWidth: ctx.viewportWidth });\n }\n }, [ctx, windowViewportRect, itemDimensions]);\n return /* @__PURE__ */ React.createElement(\"div\", { ref: viewportRef, style: viewportStyle(false) }, children);\n};\nconst GridRoot = /* @__PURE__ */ React.memo(function GridRoot2({ ...props }) {\n const useWindowScroll = useEmitterValue$1(\"useWindowScroll\");\n const customScrollParent = useEmitterValue$1(\"customScrollParent\");\n const TheScroller = customScrollParent || useWindowScroll ? WindowScroller$1 : Scroller$1;\n const TheViewport = customScrollParent || useWindowScroll ? WindowViewport$1 : Viewport$1;\n return /* @__PURE__ */ React.createElement(TheScroller, { ...props }, /* @__PURE__ */ React.createElement(TheViewport, null, /* @__PURE__ */ React.createElement(Header, null), /* @__PURE__ */ React.createElement(GridItems, null), /* @__PURE__ */ React.createElement(Footer, null)));\n});\nconst {\n Component: Grid,\n usePublisher: usePublisher$1,\n useEmitterValue: useEmitterValue$1,\n useEmitter: useEmitter$1\n} = /* @__PURE__ */ systemToComponent(\n combinedSystem$1,\n {\n optional: {\n context: \"context\",\n totalCount: \"totalCount\",\n overscan: \"overscan\",\n itemContent: \"itemContent\",\n components: \"components\",\n computeItemKey: \"computeItemKey\",\n data: \"data\",\n initialItemCount: \"initialItemCount\",\n scrollSeekConfiguration: \"scrollSeekConfiguration\",\n headerFooterTag: \"headerFooterTag\",\n listClassName: \"listClassName\",\n itemClassName: \"itemClassName\",\n useWindowScroll: \"useWindowScroll\",\n customScrollParent: \"customScrollParent\",\n scrollerRef: \"scrollerRef\",\n logLevel: \"logLevel\",\n restoreStateFrom: \"restoreStateFrom\",\n initialTopMostItemIndex: \"initialTopMostItemIndex\"\n },\n methods: {\n scrollTo: \"scrollTo\",\n scrollBy: \"scrollBy\",\n scrollToIndex: \"scrollToIndex\"\n },\n events: {\n isScrolling: \"isScrolling\",\n endReached: \"endReached\",\n startReached: \"startReached\",\n rangeChanged: \"rangeChanged\",\n atBottomStateChange: \"atBottomStateChange\",\n atTopStateChange: \"atTopStateChange\",\n stateChanged: \"stateChanged\"\n }\n },\n GridRoot\n);\nconst Scroller$1 = /* @__PURE__ */ buildScroller({ usePublisher: usePublisher$1, useEmitterValue: useEmitterValue$1, useEmitter: useEmitter$1 });\nconst WindowScroller$1 = /* @__PURE__ */ buildWindowScroller({ usePublisher: usePublisher$1, useEmitterValue: useEmitterValue$1, useEmitter: useEmitter$1 });\nfunction resolveGapValue(property, value, log) {\n if (value !== \"normal\" && !(value == null ? void 0 : value.endsWith(\"px\"))) {\n log(`${property} was not resolved to pixel value correctly`, value, LogLevel.WARN);\n }\n if (value === \"normal\") {\n return 0;\n }\n return parseInt(value != null ? value : \"0\", 10);\n}\nconst VirtuosoGrid = Grid;\nconst tableComponentPropsSystem = /* @__PURE__ */ system(() => {\n const itemContent = statefulStream((index) => /* @__PURE__ */ React.createElement(\"td\", null, \"Item $\", index));\n const context = statefulStream(null);\n const fixedHeaderContent = statefulStream(null);\n const fixedFooterContent = statefulStream(null);\n const components = statefulStream({});\n const computeItemKey = statefulStream(identity);\n const scrollerRef = statefulStream(noop);\n const distinctProp = (propName, defaultValue = null) => {\n return statefulStreamFromEmitter(\n pipe(\n components,\n map((components2) => components2[propName]),\n distinctUntilChanged()\n ),\n defaultValue\n );\n };\n return {\n context,\n itemContent,\n fixedHeaderContent,\n fixedFooterContent,\n components,\n computeItemKey,\n scrollerRef,\n TableComponent: distinctProp(\"Table\", \"table\"),\n TableHeadComponent: distinctProp(\"TableHead\", \"thead\"),\n TableFooterComponent: distinctProp(\"TableFoot\", \"tfoot\"),\n TableBodyComponent: distinctProp(\"TableBody\", \"tbody\"),\n TableRowComponent: distinctProp(\"TableRow\", \"tr\"),\n ScrollerComponent: distinctProp(\"Scroller\", \"div\"),\n EmptyPlaceholder: distinctProp(\"EmptyPlaceholder\"),\n ScrollSeekPlaceholder: distinctProp(\"ScrollSeekPlaceholder\"),\n FillerRow: distinctProp(\"FillerRow\")\n };\n});\nconst combinedSystem = /* @__PURE__ */ system(([listSystem2, propsSystem]) => {\n return { ...listSystem2, ...propsSystem };\n}, tup(listSystem, tableComponentPropsSystem));\nconst DefaultScrollSeekPlaceholder = ({ height }) => /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"td\", { style: { height } }));\nconst DefaultFillerRow = ({ height }) => /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"td\", { style: { height, padding: 0, border: 0 } }));\nconst ITEM_STYLE = { overflowAnchor: \"none\" };\nconst Items = /* @__PURE__ */ React.memo(function VirtuosoItems2() {\n const listState = useEmitterValue(\"listState\");\n const sizeRanges = usePublisher(\"sizeRanges\");\n const useWindowScroll = useEmitterValue(\"useWindowScroll\");\n const customScrollParent = useEmitterValue(\"customScrollParent\");\n const windowScrollContainerStateCallback = usePublisher(\"windowScrollContainerState\");\n const _scrollContainerStateCallback = usePublisher(\"scrollContainerState\");\n const scrollContainerStateCallback = customScrollParent || useWindowScroll ? windowScrollContainerStateCallback : _scrollContainerStateCallback;\n const itemContent = useEmitterValue(\"itemContent\");\n const trackItemSizes = useEmitterValue(\"trackItemSizes\");\n const itemSize = useEmitterValue(\"itemSize\");\n const log = useEmitterValue(\"log\");\n const { callbackRef, ref } = useChangedListContentsSizes(\n sizeRanges,\n itemSize,\n trackItemSizes,\n scrollContainerStateCallback,\n log,\n void 0,\n customScrollParent\n );\n const [deviation, setDeviation] = React.useState(0);\n useEmitter(\"deviation\", (value) => {\n if (deviation !== value) {\n ref.current.style.marginTop = `${value}px`;\n setDeviation(value);\n }\n });\n const EmptyPlaceholder = useEmitterValue(\"EmptyPlaceholder\");\n const ScrollSeekPlaceholder = useEmitterValue(\"ScrollSeekPlaceholder\") || DefaultScrollSeekPlaceholder;\n const FillerRow = useEmitterValue(\"FillerRow\") || DefaultFillerRow;\n const TableBodyComponent = useEmitterValue(\"TableBodyComponent\");\n const TableRowComponent = useEmitterValue(\"TableRowComponent\");\n const computeItemKey = useEmitterValue(\"computeItemKey\");\n const isSeeking = useEmitterValue(\"isSeeking\");\n const paddingTopAddition = useEmitterValue(\"paddingTopAddition\");\n const firstItemIndex = useEmitterValue(\"firstItemIndex\");\n const statefulTotalCount = useEmitterValue(\"statefulTotalCount\");\n const context = useEmitterValue(\"context\");\n if (statefulTotalCount === 0 && EmptyPlaceholder) {\n return React.createElement(EmptyPlaceholder, contextPropIfNotDomElement(EmptyPlaceholder, context));\n }\n const paddingTop = listState.offsetTop + paddingTopAddition + deviation;\n const paddingBottom = listState.offsetBottom;\n const paddingTopEl = paddingTop > 0 ? /* @__PURE__ */ React.createElement(FillerRow, { height: paddingTop, key: \"padding-top\", context }) : null;\n const paddingBottomEl = paddingBottom > 0 ? /* @__PURE__ */ React.createElement(FillerRow, { height: paddingBottom, key: \"padding-bottom\", context }) : null;\n const items = listState.items.map((item) => {\n const index = item.originalIndex;\n const key = computeItemKey(index + firstItemIndex, item.data, context);\n if (isSeeking) {\n return React.createElement(ScrollSeekPlaceholder, {\n ...contextPropIfNotDomElement(ScrollSeekPlaceholder, context),\n key,\n index: item.index,\n height: item.size,\n type: item.type || \"item\"\n });\n }\n return React.createElement(\n TableRowComponent,\n {\n ...contextPropIfNotDomElement(TableRowComponent, context),\n ...itemPropIfNotDomElement(TableRowComponent, item.data),\n key,\n \"data-index\": index,\n \"data-known-size\": item.size,\n \"data-item-index\": item.index,\n style: ITEM_STYLE\n },\n itemContent(item.index, item.data, context)\n );\n });\n return React.createElement(\n TableBodyComponent,\n { ref: callbackRef, \"data-testid\": \"virtuoso-item-list\", ...contextPropIfNotDomElement(TableBodyComponent, context) },\n [paddingTopEl, ...items, paddingBottomEl]\n );\n});\nconst Viewport = ({ children }) => {\n const ctx = React.useContext(VirtuosoMockContext);\n const viewportHeight = usePublisher(\"viewportHeight\");\n const fixedItemHeight = usePublisher(\"fixedItemHeight\");\n const viewportRef = useSize(compose(viewportHeight, (el) => correctItemSize(el, \"height\")));\n React.useEffect(() => {\n if (ctx) {\n viewportHeight(ctx.viewportHeight);\n fixedItemHeight(ctx.itemHeight);\n }\n }, [ctx, viewportHeight, fixedItemHeight]);\n return /* @__PURE__ */ React.createElement(\"div\", { style: viewportStyle(false), ref: viewportRef, \"data-viewport-type\": \"element\" }, children);\n};\nconst WindowViewport = ({ children }) => {\n const ctx = React.useContext(VirtuosoMockContext);\n const windowViewportRect = usePublisher(\"windowViewportRect\");\n const fixedItemHeight = usePublisher(\"fixedItemHeight\");\n const customScrollParent = useEmitterValue(\"customScrollParent\");\n const viewportRef = useWindowViewportRectRef(windowViewportRect, customScrollParent);\n React.useEffect(() => {\n if (ctx) {\n fixedItemHeight(ctx.itemHeight);\n windowViewportRect({ offsetTop: 0, visibleHeight: ctx.viewportHeight, visibleWidth: 100 });\n }\n }, [ctx, windowViewportRect, fixedItemHeight]);\n return /* @__PURE__ */ React.createElement(\"div\", { ref: viewportRef, style: viewportStyle(false), \"data-viewport-type\": \"window\" }, children);\n};\nconst TableRoot = /* @__PURE__ */ React.memo(function TableVirtuosoRoot(props) {\n const useWindowScroll = useEmitterValue(\"useWindowScroll\");\n const customScrollParent = useEmitterValue(\"customScrollParent\");\n const fixedHeaderHeight = usePublisher(\"fixedHeaderHeight\");\n const fixedFooterHeight = usePublisher(\"fixedFooterHeight\");\n const fixedHeaderContent = useEmitterValue(\"fixedHeaderContent\");\n const fixedFooterContent = useEmitterValue(\"fixedFooterContent\");\n const context = useEmitterValue(\"context\");\n const theadRef = useSize(compose(fixedHeaderHeight, (el) => correctItemSize(el, \"height\")));\n const tfootRef = useSize(compose(fixedFooterHeight, (el) => correctItemSize(el, \"height\")));\n const TheScroller = customScrollParent || useWindowScroll ? WindowScroller : Scroller;\n const TheViewport = customScrollParent || useWindowScroll ? WindowViewport : Viewport;\n const TheTable = useEmitterValue(\"TableComponent\");\n const TheTHead = useEmitterValue(\"TableHeadComponent\");\n const TheTFoot = useEmitterValue(\"TableFooterComponent\");\n const theHead = fixedHeaderContent ? React.createElement(\n TheTHead,\n {\n key: \"TableHead\",\n style: { zIndex: 2, position: \"sticky\", top: 0 },\n ref: theadRef,\n ...contextPropIfNotDomElement(TheTHead, context)\n },\n fixedHeaderContent()\n ) : null;\n const theFoot = fixedFooterContent ? React.createElement(\n TheTFoot,\n {\n key: \"TableFoot\",\n style: { zIndex: 1, position: \"sticky\", bottom: 0 },\n ref: tfootRef,\n ...contextPropIfNotDomElement(TheTFoot, context)\n },\n fixedFooterContent()\n ) : null;\n return /* @__PURE__ */ React.createElement(TheScroller, { ...props }, /* @__PURE__ */ React.createElement(TheViewport, null, React.createElement(\n TheTable,\n { style: { borderSpacing: 0, overflowAnchor: \"none\" }, ...contextPropIfNotDomElement(TheTable, context) },\n [theHead, /* @__PURE__ */ React.createElement(Items, { key: \"TableBody\" }), theFoot]\n )));\n});\nconst {\n Component: Table,\n usePublisher,\n useEmitterValue,\n useEmitter\n} = /* @__PURE__ */ systemToComponent(\n combinedSystem,\n {\n required: {},\n optional: {\n restoreStateFrom: \"restoreStateFrom\",\n context: \"context\",\n followOutput: \"followOutput\",\n firstItemIndex: \"firstItemIndex\",\n itemContent: \"itemContent\",\n fixedHeaderContent: \"fixedHeaderContent\",\n fixedFooterContent: \"fixedFooterContent\",\n overscan: \"overscan\",\n increaseViewportBy: \"increaseViewportBy\",\n totalCount: \"totalCount\",\n topItemCount: \"topItemCount\",\n initialTopMostItemIndex: \"initialTopMostItemIndex\",\n components: \"components\",\n groupCounts: \"groupCounts\",\n atBottomThreshold: \"atBottomThreshold\",\n atTopThreshold: \"atTopThreshold\",\n computeItemKey: \"computeItemKey\",\n defaultItemHeight: \"defaultItemHeight\",\n fixedItemHeight: \"fixedItemHeight\",\n itemSize: \"itemSize\",\n scrollSeekConfiguration: \"scrollSeekConfiguration\",\n data: \"data\",\n initialItemCount: \"initialItemCount\",\n initialScrollTop: \"initialScrollTop\",\n alignToBottom: \"alignToBottom\",\n useWindowScroll: \"useWindowScroll\",\n customScrollParent: \"customScrollParent\",\n scrollerRef: \"scrollerRef\",\n logLevel: \"logLevel\"\n },\n methods: {\n scrollToIndex: \"scrollToIndex\",\n scrollIntoView: \"scrollIntoView\",\n scrollTo: \"scrollTo\",\n scrollBy: \"scrollBy\",\n getState: \"getState\"\n },\n events: {\n isScrolling: \"isScrolling\",\n endReached: \"endReached\",\n startReached: \"startReached\",\n rangeChanged: \"rangeChanged\",\n atBottomStateChange: \"atBottomStateChange\",\n atTopStateChange: \"atTopStateChange\",\n totalListHeightChanged: \"totalListHeightChanged\",\n itemsRendered: \"itemsRendered\",\n groupIndices: \"groupIndices\"\n }\n },\n TableRoot\n);\nconst Scroller = /* @__PURE__ */ buildScroller({ usePublisher, useEmitterValue, useEmitter });\nconst WindowScroller = /* @__PURE__ */ buildWindowScroller({ usePublisher, useEmitterValue, useEmitter });\nconst TableVirtuoso = Table;\nexport {\n GroupedVirtuoso,\n LogLevel,\n TableVirtuoso,\n Virtuoso,\n VirtuosoGrid,\n VirtuosoGridMockContext,\n VirtuosoMockContext\n};\n"],"names":["PUBLISH","SUBSCRIBE","RESET","VALUE","compose","a","b","arg","thrush","proc","curry2to1","arg1","arg2","curry1to0","tap","tup","args","call","always","value","joinProc","procs","isDefined","noop","subscribe","emitter","subscription","publish","publisher","reset","getValue","depot","connect","handleNext","unsub","stream","subscriptions","action","indexOf","statefulStream","initial","innerSubject","eventHandler","currentSubscription","cleanup","streamFromEmitter","stream2","statefulStreamFromEmitter","combineOperators","operators","subscriber","pipe","source","project","defaultComparator","previous","next","distinctUntilChanged","comparator","current","done","filter","predicate","map","mapTo","scan","scanner","skip","times","throttleTime","interval","currentValue","timeout","debounceTime","withLatestFrom","sources","values","called","pendingCall","allCalled","index","bit","prevCalled","call2","merge","duc","combineLatest","emitters","system","constructor","dependencies","singleton","id","init","systemSpec","singletons","_init","id2","system2","e","omit","keys","obj","result","idx","len","prop","useIsomorphicLayoutEffect$2","React","systemToComponent","map2","Root","requiredPropNames","optionalPropNames","methodNames","eventNames","Context","applyPropsToSystem","props","requiredPropName","optionalPropName","buildMethods","acc","methodName","buildEventHandlers","handlers","eventName","Component","propsWithChildren","ref","children","system22","usePublisher2","key","useEmitterValue18","cb","c","useEmitterValueLegacy","setValue","useEmitterValue2","callback","useIsomorphicLayoutEffect","useIsomorphicLayoutEffect$1","LogLevel","LogLevel2","CONSOLE_METHOD_MAP","getGlobalThis","loggerSystem","logLevel","label","message","level","_a","currentLevel","useSizeWithElRef","enabled","callbackRef","_el","observer","entries","element","elRef","useSize","useChangedListContentsSizes","itemSize","scrollContainerStateCallback","log","gap","customScrollParent","memoedCallback","el","ranges","getChangedChildSizes","scrollableElement","windowScrolling","scrollTop","scrollHeight","viewportHeight","resolveGapValue$1","field","length","results","child","knownSize","size","lastResult","property","correctItemSize","dimension","approximatelyEqual","num1","num2","useScrollTop","smoothScrollTargetReached","scrollerElement","scrollerRefCallback","scrollerRef","scrollTopTarget","timeoutRef","handler","ev","windowScroll","ReactDOM","localRef","scrollToCallback","location","scrollerElement2","isSmooth","offsetHeight","maxScrollTop","scrollByCallback","domIOSystem","scrollContainerState","deviation","statefulScrollTop","headerHeight","fixedHeaderHeight","fixedFooterHeight","footerHeight","scrollTo","scrollBy","scrollingInProgress","scrollTop2","scrollHeight2","NIL_NODE","newAANode","k","v","lvl","l","empty","node","newTree","remove","lastKey","lastValue","last","adjust","clone","deleteLast","find","findMaxKeyValue","r","insert","rebalance","walkWithin","start","end","walk","isSingle","split","skew","rl","rlvl","rangesWithin","startIndex","endIndex","adjustedStart","toRanges","arrayToRanges","items","parser","nextIndex","nextValue","nodes","findIndexOfClosestSmallerOrEqual","item","match","findClosestSmallerOrEqual","findRange","startValue","endValue","recalcSystem","rangeIncludes","refRange","range","affectedGroupCount","offset","groupIndices","recognizedOffsetItems","groupIndex","insertRanges","sizeTree","syncStart","overlappingRanges","firstPassDone","shouldInsert","rangeStart","rangeEnd","rangeValue","initialSizeState","indexComparator","itemIndex","offsetComparator","itemOffset","offsetPointParser","point","rangesWithinOffsets","tree","startOffset","endOffset","minStartIndex","createOffsetTree","prevOffsetTree","offsetTree","prevIndex","prevSize","prevOffset","kv","startIndex2","indexOffset","aOffset","sizeStateReducer","state","newSizeTree","groupSize","newOffsetTree","lastIndex","lastSize","lastOffset","offsetOf","itemCount","top","isGroupLocation","originalIndexFromLocation","sizes","numericIndex","originalIndexFromItemIndex","hasGroups","groupOffset","sizeTreeToRanges","sizeArray","nextSize","SIZE_MAP","sizeSystem","recalcInProgress","sizeRanges","totalCount","statefulTotalCount","unshiftWith","shiftWith","firstItemIndex","fixedItemSize","defaultItemSize","data","prevGroupIndices","prev","curr","indexes","groupIndices2","sizes2","gap2","groupOffsetTree","totalCount2","trackItemSizes","listRefresh","oldSizes","_","newSizes","val","prevGroupIndicesValue","log2","beforeUnshiftWith","unshiftWith2","groupedMode","initialRanges","defaultSize","firstGroupSize","prependedGroupItemsCount","theGroupIndex","groupItemCount","sizeTreeKV","shiftWithOffset","shiftWith2","newFirstItemIndex","removedItemsCount","nextItemSize","SUPPORTS_SCROLL_TO_OPTIONS","normalizeIndexLocation","scrollToIndexSystem","scrollToIndex","scrollTargetReached","topListHeight","unsubscribeNextListRefresh","cleartTimeoutRef","unsubscribeListRefresh","viewportHeight2","topListHeight2","headerHeight2","footerHeight2","fixedHeaderHeight2","fixedFooterHeight2","normalLocation","align","behavior","retry","listChanged","changed","watchChangesFor","limit","UP","DOWN","NONE$1","INITIAL_BOTTOM_STATE","DEFAULT_AT_TOP_THRESHOLD","stateFlagsSystem","isAtBottom","isAtTop","atBottomStateChange","atTopStateChange","atBottomThreshold","atTopThreshold","isScrolling","isScrollingBy","atTopThreshold2","atBottomState","_headerHeight","_footerHeight","atBottomThreshold2","isAtBottom2","atBottomBecause","scrollTopDelta","notAtBottomBecause","lastJumpDueToItemResize","atBottom","scrollDirection","scrollVelocity","isScrolling2","propsReadySystem","propsReady","didMount","ready","skipFrames","frameCount","getInitialTopMostItemIndexNumber","initialTopMostItemIndexSystem","scrolledToInitialItem","initialTopMostItemIndex","initialItemFinalLocationReached","didMount2","scrolledToInitialItem2","defaultItemSize2","scrollScheduled","initialTopMostItemIndex2","normalizeFollowOutput","follow","behaviorFromFollowOutput","followOutputSystem","followOutput","autoscrollToBottom","pendingScrollHandle","scrollToBottom","followOutputBehavior","followOutput2","scrollingInProgress2","shouldFollow","trapNextSizeIncrease","cancel","refreshed","groupCountsToIndicesAndCount","counts","groupCount","groupedListSystem","groupCounts","topItemsIndexes","groupIndicesAndCount","tupleComparator","rangeComparator","TOP","BOTTOM","NONE","getOverscan","overscan","direction","getViewportIncrease","sizeRangeSystem","listBoundary","increaseViewportBy","visibleRange","listTop","listBottom","overscan2","deviation2","increaseViewportBy2","stickyHeaderHeight","headerVisible","topViewportAddition","bottomViewportAddition","probeItemSet","EMPTY_LIST_STATE","transposeItems","transposedItems","groupRanges","currentRange","currentGroupIndex","transposedItem","buildListState","topItems","offsetTop","bottom","lastItem","total","offsetBottom","height","buildListStateFromItemCount","includedGroupsCount","adjustedCount","initialTopMostItemIndexNumber","listStateSystem","groupedListSystem2","rangeTopListHeight","stateFlags","initialItemCount","itemsRendered","listState","mount","recalcInProgress2","data2","dataChangeInProgress","topItemsIndexes2","firstItemIndex2","sizesValue","initialItemCountValue","rangeStartIndex","rangeEndIndex","i","offsetPointRanges","maxIndex","endReached","count","startReached","rangeChanged","initialItemCountSystem","initialTopMostItemIndexValue","scrollSeekSystem","isSeeking","scrollSeekConfiguration","config","speed","isSeeking2","exit","enter","velocity","topItemCountSystem","topItemCount","totalListHeightSystem","totalListHeightChanged","totalListHeight","listState2","simpleMemoize","func","isMobileSafari","upwardScrollFixSystem","deviationOffset","prevItems","prevTotalCount","prevTotalHeight","lastJumpDueToItemResize2","totalHeight","newDev","amount","scrollDirection2","scrollByWith","deviationAmount","is","recalc","getItemOffset","defaultGroupSize","initialScrollTopSystem","initialScrollTop","alignToBottomSystem","alignToBottom","paddingTopAddition","totalListHeight2","windowScrollerSystem","windowScrollContainerState","windowViewportRect","windowScrollTo","useWindowScroll","windowScrollTop","scrollTo2","defaultCalculateViewLocation","itemTop2","itemBottom","viewportTop","viewportBottom","rest","scrollIntoViewSystem","scrollIntoView","viewLocation","calculateViewLocation","actualIndex","stateLoadSystem","getState","restoreStateFrom","statefulWindowScrollContainerState","statefulWindowViewportRect","useWindowScroll2","windowScrollContainerState2","windowViewportRect2","locationFromSnapshot","snapshot","featureGroup1System","sizeRange","scrollSeek","initialScrollTopSystem2","windowScroller","logger","listSystem","domIO","stateLoad","flags","featureGroup1","WEBKIT_STICKY","STICKY","positionStickyCssValue","useWindowViewportRectRef","viewportInfo","calculateInfo","rect","visibleWidth","visibleHeight","customScrollParentRect","deltaTop","scrollAndResizeEventHandler","VirtuosoMockContext","VirtuosoGridMockContext","identity","listComponentPropsSystem","itemContent","context","groupContent","components","computeItemKey","headerFooterTag","distinctProp","propName","defaultValue","components2","combinedSystem$2","listSystem2","propsSystem","DefaultScrollSeekPlaceholder$1","GROUP_STYLE","ITEM_STYLE$1","Items$1","showTopList","useEmitterValue$2","usePublisher$2","windowScrollContainerStateCallback","_scrollContainerStateCallback","listGap","setDeviation","useEmitter$2","EmptyPlaceholder","ScrollSeekPlaceholder","ListComponent","ItemComponent","GroupComponent","hasGroups2","containerStyle","contextPropIfNotDomElement","itemPropIfNotDomElement","scrollerStyle","viewportStyle","topItemListStyle","Header$1","Header2","Footer$1","Footer2","buildScroller","useEmitter2","style","ScrollerComponent","buildWindowScroller","Viewport$2","ctx","fixedItemHeight","viewportRef","WindowViewport$2","TopItemListContainer","TopItemList","ListRoot","TheScroller","WindowScroller$2","Scroller$2","TheViewport","List","Virtuoso","INITIAL_GRID_STATE","PROBE_GRID_STATE","round","ceil","floor","min","max","buildProbeGridState","buildItems","dataItem","gapComparator","dimensionComparator","gridSystem","gridState","viewportDimensions","itemDimensions","stateChanged","stateRestoreInProgress","itemDimensions2","viewportDimensions2","scrollScheduled2","_value","viewport","stateRestoreInProgress2","initialItemCount2","rowGap","columnGap","itemHeight","itemWidth","viewportWidth","endIndex2","perRow","itemsPerRow","gridLayout","rowCount","hasScrolled","hasScrolled2","itemTop","gridState2","gridComponentPropsSystem","itemClassName","listClassName","combinedSystem$1","gridSystem2","gridComponentPropsSystem2","GridItems","useEmitterValue$1","scrollHeightCallback","usePublisher$1","gridGap","listRef","firstItem","width","resolveGapValue","Header","Footer","Viewport$1","WindowViewport$1","GridRoot","WindowScroller$1","Scroller$1","Grid","useEmitter$1","tableComponentPropsSystem","fixedHeaderContent","fixedFooterContent","combinedSystem","DefaultScrollSeekPlaceholder","DefaultFillerRow","ITEM_STYLE","Items","useEmitterValue","usePublisher","useEmitter","FillerRow","TableBodyComponent","TableRowComponent","paddingTop","paddingBottom","paddingTopEl","paddingBottomEl","Viewport","WindowViewport","TableRoot","theadRef","tfootRef","WindowScroller","Scroller","TheTable","TheTHead","TheTFoot","theHead","theFoot","Table","TableVirtuoso"],"mappings":";;AAEA,MAAMA,KAAU,GACVC,KAAY,GACZC,KAAQ,GACRC,KAAQ;AACd,SAASC,GAAQC,GAAGC,GAAG;AACrB,SAAO,CAACC,MAAQF,EAAEC,EAAEC,CAAG,CAAC;AAC1B;AACA,SAASC,GAAOD,GAAKE,GAAM;AACzB,SAAOA,EAAKF,CAAG;AACjB;AACA,SAASG,GAAUD,GAAME,GAAM;AAC7B,SAAO,CAACC,MAASH,EAAKE,GAAMC,CAAI;AAClC;AACA,SAASC,GAAUJ,GAAMF,GAAK;AAC5B,SAAO,MAAME,EAAKF,CAAG;AACvB;AACA,SAASO,GAAIP,GAAKE,GAAM;AACtB,SAAAA,EAAKF,CAAG,GACDA;AACT;AACA,SAASQ,KAAOC,GAAM;AACpB,SAAOA;AACT;AACA,SAASC,GAAKR,GAAM;AAClB,EAAAA;AACF;AACA,SAASS,GAAOC,GAAO;AACrB,SAAO,MAAMA;AACf;AACA,SAASC,MAAYC,GAAO;AAC1B,SAAO,MAAM;AACX,IAAAA,EAAM,IAAIJ,EAAI;AAAA,EAClB;AACA;AACA,SAASK,GAAUf,GAAK;AACtB,SAAOA,MAAQ;AACjB;AACA,SAASgB,KAAO;AAChB;AACA,SAASC,EAAUC,GAASC,GAAc;AACxC,SAAOD,EAAQxB,IAAWyB,CAAY;AACxC;AACA,SAASC,EAAQC,GAAWT,GAAO;AACjC,EAAAS,EAAU5B,IAASmB,CAAK;AAC1B;AACA,SAASU,GAAMJ,GAAS;AACtB,EAAAA,EAAQvB,EAAK;AACf;AACA,SAAS4B,GAASC,GAAO;AACvB,SAAOA,EAAM5B,EAAK;AACpB;AACA,SAAS6B,EAAQP,GAASG,GAAW;AACnC,SAAOJ,EAAUC,GAASf,GAAUkB,GAAW5B,EAAO,CAAC;AACzD;AACA,SAASiC,GAAWR,GAASC,GAAc;AACzC,QAAMQ,IAAQT,EAAQxB,IAAW,CAACkB,MAAU;AAC1C,IAAAe,KACAR,EAAaP,CAAK;AAAA,EACtB,CAAG;AACD,SAAOe;AACT;AACA,SAASC,IAAS;AAChB,QAAMC,IAAgB,CAAA;AACtB,SAAO,CAACC,GAAQ9B,MAAQ;AACtB,YAAQ8B,GAAM;AAAA,MACZ,KAAKnC;AACH,QAAAkC,EAAc,OAAO,GAAGA,EAAc,MAAM;AAC5C;AAAA,MACF,KAAKnC;AACH,eAAAmC,EAAc,KAAK7B,CAAG,GACf,MAAM;AACX,gBAAM+B,IAAUF,EAAc,QAAQ7B,CAAG;AACzC,UAAI+B,IAAU,MACZF,EAAc,OAAOE,GAAS,CAAC;AAAA,QAE3C;AAAA,MACM,KAAKtC;AACH,QAAAoC,EAAc,MAAK,EAAG,QAAQ,CAACV,MAAiB;AAC9C,UAAAA,EAAanB,CAAG;AAAA,QAC1B,CAAS;AACD;AAAA,MACF;AACE,cAAM,IAAI,MAAM,uBAAuB8B,CAAM,EAAE;AAAA,IAClD;AAAA,EACL;AACA;AACA,SAASE,EAAeC,GAAS;AAC/B,MAAIrB,IAAQqB;AACZ,QAAMC,IAAeN;AACrB,SAAO,CAACE,GAAQ9B,MAAQ;AACtB,YAAQ8B,GAAM;AAAA,MACZ,KAAKpC;AAEH,QADqBM,EACRY,CAAK;AAClB;AAAA,MACF,KAAKnB;AACH,QAAAmB,IAAQZ;AACR;AAAA,MACF,KAAKJ;AACH,eAAOgB;AAAA,IACV;AACD,WAAOsB,EAAaJ,GAAQ9B,CAAG;AAAA,EACnC;AACA;AACA,SAASmC,GAAajB,GAAS;AAC7B,MAAIS,GACAS;AACJ,QAAMC,IAAU,MAAMV,KAASA;AAC/B,SAAO,SAASG,GAAQX,GAAc;AACpC,YAAQW,GAAM;AAAA,MACZ,KAAKpC;AACH,eAAIyB,IACEiB,MAAwBjB,IAC1B,UAEFkB,KACAD,IAAsBjB,GACtBQ,IAAQV,EAAUC,GAASC,CAAY,GAChCQ,MAEPU,KACOrB;AAAA,MAEX,KAAKrB;AACH,QAAA0C,KACAD,IAAsB;AACtB;AAAA,MACF;AACE,cAAM,IAAI,MAAM,uBAAuBN,CAAM,EAAE;AAAA,IAClD;AAAA,EACL;AACA;AACA,SAASQ,GAAkBpB,GAAS;AAClC,SAAOX,GAAIqB,EAAM,GAAI,CAACW,MAAYd,EAAQP,GAASqB,CAAO,CAAC;AAC7D;AACA,SAASC,GAA0BtB,GAASe,GAAS;AACnD,SAAO1B,GAAIyB,EAAeC,CAAO,GAAG,CAACM,MAAYd,EAAQP,GAASqB,CAAO,CAAC;AAC5E;AACA,SAASE,MAAoBC,GAAW;AACtC,SAAO,CAACC,MACCD,EAAU,YAAYzC,IAAQ0C,CAAU;AAEnD;AACA,SAASC,EAAKC,MAAWH,GAAW;AAClC,QAAMI,IAAUL,GAAiB,GAAGC,CAAS;AAC7C,SAAO,CAACZ,GAAQX,MAAiB;AAC/B,YAAQW,GAAM;AAAA,MACZ,KAAKpC;AACH,eAAOuB,EAAU4B,GAAQC,EAAQ3B,CAAY,CAAC;AAAA,MAChD,KAAKxB;AACH,QAAA2B,GAAMuB,CAAM;AACZ;AAAA,IACH;AAAA,EACL;AACA;AACA,SAASE,GAAkBC,GAAUC,GAAM;AACzC,SAAOD,MAAaC;AACtB;AACA,SAASC,EAAqBC,IAAaJ,IAAmB;AAC5D,MAAIK;AACJ,SAAO,CAACC,MAAS,CAACJ,MAAS;AACzB,IAAKE,EAAWC,GAASH,CAAI,MAC3BG,IAAUH,GACVI,EAAKJ,CAAI;AAAA,EAEf;AACA;AACA,SAASK,EAAOC,GAAW;AACzB,SAAO,CAACF,MAAS,CAACzC,MAAU;AAC1B,IAAA2C,EAAU3C,CAAK,KAAKyC,EAAKzC,CAAK;AAAA,EAClC;AACA;AACA,SAAS4C,EAAIV,GAAS;AACpB,SAAO,CAACO,MAASxD,GAAQwD,GAAMP,CAAO;AACxC;AACA,SAASW,GAAM7C,GAAO;AACpB,SAAO,CAACyC,MAAS,MAAMA,EAAKzC,CAAK;AACnC;AACA,SAAS8C,GAAKC,GAAS1B,GAAS;AAC9B,SAAO,CAACoB,MAAS,CAACzC,MAAUyC,EAAKpB,IAAU0B,EAAQ1B,GAASrB,CAAK,CAAC;AACpE;AACA,SAASgD,GAAKC,GAAO;AACnB,SAAO,CAACR,MAAS,CAACzC,MAAU;AAC1B,IAAAiD,IAAQ,IAAIA,MAAUR,EAAKzC,CAAK;AAAA,EACpC;AACA;AACA,SAASkD,GAAaC,GAAU;AAC9B,MAAIC,IAAe,MACfC;AACJ,SAAO,CAACZ,MAAS,CAACzC,MAAU;AAE1B,IADAoD,IAAepD,GACX,CAAAqD,MAGJA,IAAU,WAAW,MAAM;AACzB,MAAAA,IAAU,QACVZ,EAAKW,CAAY;AAAA,IAClB,GAAED,CAAQ;AAAA,EACf;AACA;AACA,SAASG,GAAaH,GAAU;AAC9B,MAAIC,GACAC;AACJ,SAAO,CAACZ,MAAS,CAACzC,MAAU;AAC1B,IAAAoD,IAAepD,GACXqD,KACF,aAAaA,CAAO,GAEtBA,IAAU,WAAW,MAAM;AACzB,MAAAZ,EAAKW,CAAY;AAAA,IAClB,GAAED,CAAQ;AAAA,EACf;AACA;AACA,SAASI,KAAkBC,GAAS;AAClC,QAAMC,IAAS,IAAI,MAAMD,EAAQ,MAAM;AACvC,MAAIE,IAAS,GACTC,IAAc;AAClB,QAAMC,IAAY,KAAK,IAAI,GAAGJ,EAAQ,MAAM,IAAI;AAChD,SAAAA,EAAQ,QAAQ,CAACvB,GAAQ4B,MAAU;AACjC,UAAMC,IAAM,KAAK,IAAI,GAAGD,CAAK;AAC7B,IAAAxD,EAAU4B,GAAQ,CAACjC,MAAU;AAC3B,YAAM+D,IAAaL;AACnB,MAAAA,IAASA,IAASI,GAClBL,EAAOI,CAAK,IAAI7D,GACZ+D,MAAeH,KAAaF,MAAWE,KAAaD,MACtDA,KACAA,IAAc;AAAA,IAEtB,CAAK;AAAA,EACL,CAAG,GACM,CAAClB,MAAS,CAACzC,MAAU;AAC1B,UAAMgE,IAAQ,MAAMvB,EAAK,CAACzC,CAAK,EAAE,OAAOyD,CAAM,CAAC;AAC/C,IAAIC,MAAWE,IACbI,MAEAL,IAAcK;AAAA,EAEpB;AACA;AACA,SAASC,MAAST,GAAS;AACzB,SAAO,SAAStC,GAAQX,GAAc;AACpC,YAAQW,GAAM;AAAA,MACZ,KAAKpC;AACH,eAAOmB,GAAS,GAAGuD,EAAQ,IAAI,CAACvB,MAAW5B,EAAU4B,GAAQ1B,CAAY,CAAC,CAAC;AAAA,MAC7E,KAAKxB;AACH;AAAA,MACF;AACE,cAAM,IAAI,MAAM,uBAAuBmC,CAAM,EAAE;AAAA,IAClD;AAAA,EACL;AACA;AACA,SAASgD,EAAIjC,GAAQM,IAAaJ,IAAmB;AACnD,SAAOH,EAAKC,GAAQK,EAAqBC,CAAU,CAAC;AACtD;AACA,SAAS4B,MAAiBC,GAAU;AAClC,QAAM9C,IAAeN,KACfyC,IAAS,IAAI,MAAMW,EAAS,MAAM;AACxC,MAAIV,IAAS;AACb,QAAME,IAAY,KAAK,IAAI,GAAGQ,EAAS,MAAM,IAAI;AACjD,SAAAA,EAAS,QAAQ,CAACnC,GAAQ4B,MAAU;AAClC,UAAMC,IAAM,KAAK,IAAI,GAAGD,CAAK;AAC7B,IAAAxD,EAAU4B,GAAQ,CAACjC,MAAU;AAC3B,MAAAyD,EAAOI,CAAK,IAAI7D,GAChB0D,IAASA,IAASI,GACdJ,MAAWE,KACbpD,EAAQc,GAAcmC,CAAM;AAAA,IAEpC,CAAK;AAAA,EACL,CAAG,GACM,SAASvC,GAAQX,GAAc;AACpC,YAAQW,GAAM;AAAA,MACZ,KAAKpC;AACH,eAAI4E,MAAWE,KACbrD,EAAakD,CAAM,GAEdpD,EAAUiB,GAAcf,CAAY;AAAA,MAC7C,KAAKxB;AACH,eAAO2B,GAAMY,CAAY;AAAA,MAC3B;AACE,cAAM,IAAI,MAAM,uBAAuBJ,CAAM,EAAE;AAAA,IAClD;AAAA,EACL;AACA;AACA,SAASmD,EAAOC,GAAaC,IAAe,CAAE,GAAE,EAAE,WAAAC,MAAc,EAAE,WAAW,MAAQ;AACnF,SAAO;AAAA,IACL,IAAIC,GAAI;AAAA,IACR,aAAAH;AAAA,IACA,cAAAC;AAAA,IACA,WAAAC;AAAA,EACJ;AACA;AACA,MAAMC,KAAK,MAAM;AACjB,SAASC,GAAKC,GAAY;AACxB,QAAMC,IAA6B,oBAAI,OACjCC,IAAQ,CAAC,EAAE,IAAIC,GAAK,aAAAR,GAAa,cAAAC,GAAc,WAAAC,QAAgB;AACnE,QAAIA,KAAaI,EAAW,IAAIE,CAAG;AACjC,aAAOF,EAAW,IAAIE,CAAG;AAE3B,UAAMC,IAAUT,EAAYC,EAAa,IAAI,CAACS,MAAMH,EAAMG,CAAC,CAAC,CAAC;AAC7D,WAAIR,KACFI,EAAW,IAAIE,GAAKC,CAAO,GAEtBA;AAAA,EACX;AACE,SAAOF,EAAMF,CAAU;AACzB;AACA,SAASM,GAAKC,GAAMC,GAAK;AACvB,QAAMC,IAAS,CAAA,GACTvB,IAAQ,CAAA;AACd,MAAIwB,IAAM;AACV,QAAMC,IAAMJ,EAAK;AACjB,SAAOG,IAAMC;AACX,IAAAzB,EAAMqB,EAAKG,CAAG,CAAC,IAAI,GACnBA,KAAO;AAET,aAAWE,KAAQJ;AACjB,IAAKtB,EAAM,eAAe0B,CAAI,MAC5BH,EAAOG,CAAI,IAAIJ,EAAII,CAAI;AAG3B,SAAOH;AACT;AACA,MAAMI,KAA8B,OAAO,WAAa,MAAcC,EAAM,kBAAkBA,EAAM;AACpG,SAASC,GAAkBf,GAAYgB,GAAMC,GAAM;AACjD,QAAMC,IAAoB,OAAO,KAAKF,EAAK,YAAY,CAAA,CAAE,GACnDG,IAAoB,OAAO,KAAKH,EAAK,YAAY,CAAA,CAAE,GACnDI,IAAc,OAAO,KAAKJ,EAAK,WAAW,CAAA,CAAE,GAC5CK,IAAa,OAAO,KAAKL,EAAK,UAAU,CAAA,CAAE,GAC1CM,IAAUR,EAAM,cAAc,CAAE,CAAA;AACtC,WAASS,EAAmBnB,GAASoB,GAAO;AAC1C,IAAIpB,EAAQ,cACVvE,EAAQuE,EAAQ,YAAe,EAAK;AAEtC,eAAWqB,KAAoBP,GAAmB;AAChD,YAAMlE,IAAUoD,EAAQY,EAAK,SAASS,CAAgB,CAAC;AACvD,MAAA5F,EAAQmB,GAASwE,EAAMC,CAAgB,CAAC;AAAA,IACzC;AACD,eAAWC,KAAoBP;AAC7B,UAAIO,KAAoBF,GAAO;AAC7B,cAAMxE,IAAUoD,EAAQY,EAAK,SAASU,CAAgB,CAAC;AACvD,QAAA7F,EAAQmB,GAASwE,EAAME,CAAgB,CAAC;AAAA,MACzC;AAEH,IAAItB,EAAQ,cACVvE,EAAQuE,EAAQ,YAAe,EAAI;AAAA,EAEtC;AACD,WAASuB,EAAavB,GAAS;AAC7B,WAAOgB,EAAY,OAAO,CAACQ,GAAKC,OAC9BD,EAAIC,CAAU,IAAI,CAACxG,MAAU;AAC3B,YAAM2B,IAAUoD,EAAQY,EAAK,QAAQa,CAAU,CAAC;AAChD,MAAAhG,EAAQmB,GAAS3B,CAAK;AAAA,IAC9B,GACauG,IACN,CAAE,CAAA;AAAA,EACN;AACD,WAASE,EAAmB1B,GAAS;AACnC,WAAOiB,EAAW,OAAO,CAACU,GAAUC,OAClCD,EAASC,CAAS,IAAIpF,GAAawD,EAAQY,EAAK,OAAOgB,CAAS,CAAC,CAAC,GAC3DD,IACN,CAAE,CAAA;AAAA,EACN;AACD,QAAME,IAAYnB,EAAM,WAAW,CAACoB,GAAmBC,MAAQ;AAC7D,UAAM,EAAE,UAAAC,GAAU,GAAGZ,EAAK,IAAKU,GACzB,CAAC9B,CAAO,IAAIU,EAAM,SAAS,MACxB9F,GAAI+E,GAAKC,CAAU,GAAG,CAACqC,MAAad,EAAmBc,GAAUb,CAAK,CAAC,CAC/E,GACK,CAACO,CAAQ,IAAIjB,EAAM,SAAS/F,GAAU+G,GAAoB1B,CAAO,CAAC;AACxE,WAAAS,GAA4B,MAAM;AAChC,iBAAWmB,KAAaX;AACtB,QAAIW,KAAaR,KACf9F,EAAUqG,EAASC,CAAS,GAAGR,EAAMQ,CAAS,CAAC;AAGnD,aAAO,MAAM;AACX,eAAO,OAAOD,CAAQ,EAAE,IAAIhG,EAAK;AAAA,MACzC;AAAA,IACK,GAAE,CAACyF,GAAOO,GAAU3B,CAAO,CAAC,GAC7BS,GAA4B,MAAM;AAChC,MAAAU,EAAmBnB,GAASoB,CAAK;AAAA,IACvC,CAAK,GACDV,EAAM,oBAAoBqB,GAAK/G,GAAOuG,EAAavB,CAAO,CAAC,CAAC,GACrDU,EAAM;AAAA,MACXQ,EAAQ;AAAA,MACR,EAAE,OAAOlB,EAAS;AAAA,MAClBa,IAAOH,EAAM;AAAA,QACXG;AAAA,QACAX,GAAK,CAAC,GAAGY,GAAmB,GAAGC,GAAmB,GAAGE,CAAU,GAAGG,CAAK;AAAA,QACvEY;AAAA,MACR,IAAUA;AAAA,IACV;AAAA,EACA,CAAG,GACKE,IAAgB,CAACC,MACdzB,EAAM,YAAYlG,GAAUiB,GAASiF,EAAM,WAAWQ,CAAO,EAAEiB,CAAG,CAAC,GAAG,CAACA,CAAG,CAAC,GAE9EC,IAAoB,CAACD,MAAQ;AAEjC,UAAMjF,IADUwD,EAAM,WAAWQ,CAAO,EACjBiB,CAAG,GACpBE,IAAK3B,EAAM;AAAA,MACf,CAAC4B,MACQhH,EAAU4B,GAAQoF,CAAC;AAAA,MAE5B,CAACpF,CAAM;AAAA,IACb;AACI,WAAOwD,EAAM;AAAA,MACX2B;AAAA,MACA,MAAMzG,GAASsB,CAAM;AAAA,MACrB,MAAMtB,GAASsB,CAAM;AAAA,IAC3B;AAAA,EACA,GACQqF,IAAwB,CAACJ,MAAQ;AAErC,UAAMjF,IADUwD,EAAM,WAAWQ,CAAO,EACjBiB,CAAG,GACpB,CAAClH,GAAOuH,CAAQ,IAAI9B,EAAM,SAAS/F,GAAUiB,IAAUsB,CAAM,CAAC;AACpE,WAAAuD;AAAA,MACE,MAAMnF,EAAU4B,GAAQ,CAACI,MAAS;AAChC,QAAIA,MAASrC,KACXuH,EAASxH,GAAOsC,CAAI,CAAC;AAAA,MAE/B,CAAO;AAAA,MACD,CAACJ,GAAQjC,CAAK;AAAA,IACpB,GACWA;AAAA,EACX,GACQwH,IAAmB/B,EAAM,QAAQ,WAAW,IAAI,IAAI0B,IAAoBG;AAM9E,SAAO;AAAA,IACL,WAAAV;AAAA,IACA,cAAcK;AAAA,IACd,iBAAiBO;AAAA,IACjB,YATkB,CAACN,GAAKO,MAAa;AAErC,YAAMxF,IADUwD,EAAM,WAAWQ,CAAO,EACjBiB,CAAG;AAC1B,MAAA1B,GAA4B,MAAMnF,EAAU4B,GAAQwF,CAAQ,GAAG,CAACA,GAAUxF,CAAM,CAAC;AAAA,IACrF;AAAA,EAMA;AACA;AACA,MAAMyF,KAA4B,OAAO,WAAa,MAAcjC,EAAM,kBAAkBA,EAAM,WAC5FkC,KAA8BD;AACjC,IAACE,KAA4B,kBAACC,OAC/BA,EAAUA,EAAU,QAAW,CAAC,IAAI,SACpCA,EAAUA,EAAU,OAAU,CAAC,IAAI,QACnCA,EAAUA,EAAU,OAAU,CAAC,IAAI,QACnCA,EAAUA,EAAU,QAAW,CAAC,IAAI,SAC7BA,IACND,MAAY,CAAA,CAAE;AACjB,MAAME,KAAqB;AAAA,EAEvB,GAEC;AAAA,EAED,GAEC;AAAA,EAED,GAEC;AAAA,EAED,GAEC;AACL,GACMC,KAAgB,MAAM,OAAO,aAAe,MAAc,SAAS,YACnEC,KAAe3D;AAAA,EACnB,MAAM;AACJ,UAAM4D,IAAW7G;AAAA,MACf;AAAA;AAAA,IAEN;AAcI,WAAO;AAAA,MACL,KAdUA,EAAe,CAAC8G,GAAOC,GAASC,IAAQ,MAAM;AACxD,YAAIC;AACJ,cAAMC,KAAgBD,IAAKN,KAAgB,uBAA0B,OAAOM,IAAK1H,GAASsH,CAAQ;AAClG,QAAIG,KAASE,KACX,QAAQR,GAAmBM,CAAK,CAAC;AAAA,UAC/B;AAAA,UACA;AAAA,UACA;AAAA,UACAF;AAAA,UACAC;AAAA,QACV;AAAA,MAEA,CAAK;AAAA,MAGC,UAAAF;AAAA,IACN;AAAA,EACG;AAAA,EACD,CAAE;AAAA,EACF,EAAE,WAAW,GAAM;AACrB;AACA,SAASM,GAAiBd,GAAUe,IAAU,IAAM;AAClD,QAAM1B,IAAMrB,EAAM,OAAO,IAAI;AAC7B,MAAIgD,IAAc,CAACC,MAAQ;AAAA,EAC7B;AACE,MAAI,OAAO,iBAAmB,KAAa;AACzC,UAAMC,IAAWlD,EAAM,QAAQ,MACtB,IAAI,eAAe,CAACmD,MAAY;AACrC,4BAAsB,MAAM;AAC1B,cAAMC,IAAUD,EAAQ,CAAC,EAAE;AAC3B,QAAIC,EAAQ,iBAAiB,QAC3BpB,EAASoB,CAAO;AAAA,MAE5B,CAAS;AAAA,IACT,CAAO,GACA,CAACpB,CAAQ,CAAC;AACb,IAAAgB,IAAc,CAACK,MAAU;AACvB,MAAIA,KAASN,KACXG,EAAS,QAAQG,CAAK,GACtBhC,EAAI,UAAUgC,MAEVhC,EAAI,WACN6B,EAAS,UAAU7B,EAAI,OAAO,GAEhCA,EAAI,UAAU;AAAA,IAEtB;AAAA,EACG;AACD,SAAO,EAAE,KAAAA,GAAK,aAAA2B;AAChB;AACA,SAASM,GAAQtB,GAAUe,IAAU,IAAM;AACzC,SAAOD,GAAiBd,GAAUe,CAAO,EAAE;AAC7C;AACA,SAASQ,GAA4BvB,GAAUwB,GAAUT,GAASU,GAA8BC,GAAKC,GAAKC,GAAoB;AAC5H,QAAMC,IAAiB7D,EAAM;AAAA,IAC3B,CAAC8D,MAAO;AACN,YAAMC,IAASC,GAAqBF,EAAG,UAAUN,GAAU,gBAAgBE,CAAG;AAC9E,UAAIO,IAAoBH,EAAG;AAC3B,aAAO,CAACG,EAAkB,QAAQ;AAChC,QAAAA,IAAoBA,EAAkB;AAExC,YAAMC,IAAkBD,EAAkB,iBAAiB,QAAQ,iBAAoB,UACjFE,IAAYP,IAAqBA,EAAmB,YAAYM,IAAkB,OAAO,eAAe,SAAS,gBAAgB,YAAYD,EAAkB,WAC/JG,IAAeR,IAAqBA,EAAmB,eAAeM,IAAkB,SAAS,gBAAgB,eAAeD,EAAkB,cAClJI,IAAiBT,IAAqBA,EAAmB,eAAeM,IAAkB,OAAO,cAAcD,EAAkB;AACvI,MAAAR,EAA6B;AAAA,QAC3B,WAAW,KAAK,IAAIU,GAAW,CAAC;AAAA,QAChC,cAAAC;AAAA,QACA,gBAAAC;AAAA,MACR,CAAO,GACDV,KAAO,QAAgBA,EAAIW,GAAkB,WAAW,iBAAiBR,CAAE,EAAE,QAAQJ,CAAG,CAAC,GACrFK,MAAW,QACb/B,EAAS+B,CAAM;AAAA,IAElB;AAAA,IACD,CAAC/B,GAAUwB,GAAUE,GAAKC,GAAKC,GAAoBH,CAA4B;AAAA,EACnF;AACE,SAAOX,GAAiBe,GAAgBd,CAAO;AACjD;AACA,SAASiB,GAAqB1C,GAAUkC,GAAUe,GAAOb,GAAK;AAC5D,QAAMc,IAASlD,EAAS;AACxB,MAAIkD,MAAW;AACb,WAAO;AAET,QAAMC,IAAU,CAAA;AAChB,WAAS,IAAI,GAAG,IAAID,GAAQ,KAAK;AAC/B,UAAME,IAAQpD,EAAS,KAAK,CAAC;AAC7B,QAAI,CAACoD,KAASA,EAAM,QAAQ,UAAU;AACpC;AAEF,UAAMtG,IAAQ,SAASsG,EAAM,QAAQ,KAAK,GACpCC,IAAY,WAAWD,EAAM,QAAQ,SAAS,GAC9CE,IAAOpB,EAASkB,GAAOH,CAAK;AAIlC,QAHIK,MAAS,KACXlB,EAAI,8CAA8C,EAAE,OAAAgB,EAAO,GAAEvC,GAAS,KAAK,GAEzEyC,MAASD;AACX;AAEF,UAAME,IAAaJ,EAAQA,EAAQ,SAAS,CAAC;AAC7C,IAAIA,EAAQ,WAAW,KAAKI,EAAW,SAASD,KAAQC,EAAW,aAAazG,IAAQ,IACtFqG,EAAQ,KAAK,EAAE,YAAYrG,GAAO,UAAUA,GAAO,MAAAwG,EAAI,CAAE,IAEzDH,EAAQA,EAAQ,SAAS,CAAC,EAAE;AAAA,EAE/B;AACD,SAAOA;AACT;AACA,SAASH,GAAkBQ,GAAUvK,GAAOmJ,GAAK;AAI/C,SAHInJ,MAAU,YAAY,EAAEA,KAAS,QAAgBA,EAAM,SAAS,IAAI,MACtEmJ,EAAI,GAAGoB,CAAQ,8CAA8CvK,GAAO4H,GAAS,IAAI,GAE/E5H,MAAU,WACL,IAEF,SAASA,KAAwB,KAAK,EAAE;AACjD;AACA,SAASwK,GAAgBjB,GAAIkB,GAAW;AACtC,SAAO,KAAK,MAAMlB,EAAG,sBAAuB,EAACkB,CAAS,CAAC;AACzD;AACA,SAASC,GAAmBC,GAAMC,GAAM;AACtC,SAAO,KAAK,IAAID,IAAOC,CAAI,IAAI;AACjC;AACA,SAASC,GAAa3B,GAA8B4B,GAA2BC,GAAiBC,IAAsB5K,IAAMiJ,GAAoB;AAC9I,QAAM4B,IAAcxF,EAAM,OAAO,IAAI,GAC/ByF,IAAkBzF,EAAM,OAAO,IAAI,GACnC0F,IAAa1F,EAAM,OAAO,IAAI,GAC9B2F,IAAU3F,EAAM;AAAA,IACpB,CAAC4F,MAAO;AACN,YAAM9B,IAAK8B,EAAG,QACRC,IAAe/B,MAAO,UAAUA,MAAO,UACvCK,IAAY0B,IAAe,OAAO,eAAe,SAAS,gBAAgB,YAAY/B,EAAG,WACzFM,IAAeyB,IAAe,SAAS,gBAAgB,eAAe/B,EAAG,cACzEO,IAAiBwB,IAAe,OAAO,cAAc/B,EAAG,cACxDvF,IAAQ,MAAM;AAClB,QAAAkF,EAA6B;AAAA,UAC3B,WAAW,KAAK,IAAIU,GAAW,CAAC;AAAA,UAChC,cAAAC;AAAA,UACA,gBAAAC;AAAA,QACV,CAAS;AAAA,MACT;AACM,MAAIuB,EAAG,oBACLrH,MAEAuH,GAAS,UAAUvH,CAAK,GAEtBkH,EAAgB,YAAY,SAC1BtB,MAAcsB,EAAgB,WAAWtB,KAAa,KAAKA,MAAcC,IAAeC,OAC1FoB,EAAgB,UAAU,MAC1BJ,EAA0B,EAAI,GAC1BK,EAAW,YACb,aAAaA,EAAW,OAAO,GAC/BA,EAAW,UAAU;AAAA,IAI5B;AAAA,IACD,CAACjC,GAA8B4B,CAAyB;AAAA,EAC5D;AACErF,EAAAA,EAAM,UAAU,MAAM;AACpB,UAAM+F,IAAWnC,KAA0C4B,EAAY;AACvE,WAAAD,EAAoB3B,KAA0C4B,EAAY,OAAO,GACjFG,EAAQ,EAAE,QAAQI,GAAU,mBAAmB,GAAM,CAAA,GACrDA,EAAS,iBAAiB,UAAUJ,GAAS,EAAE,SAAS,GAAI,CAAE,GACvD,MAAM;AACX,MAAAJ,EAAoB,IAAI,GACxBQ,EAAS,oBAAoB,UAAUJ,CAAO;AAAA,IACpD;AAAA,EACA,GAAK,CAACH,GAAaG,GAASL,GAAiBC,GAAqB3B,CAAkB,CAAC;AACnF,WAASoC,EAAiBC,GAAU;AAClC,UAAMC,IAAmBV,EAAY;AACrC,QAAI,CAACU,KAAoB,kBAAkBA,KAAoBA,EAAiB,iBAAiB;AAC/F;AAEF,UAAMC,IAAWF,EAAS,aAAa;AACvC,QAAIG,GACAhC,GACAD;AACJ,IAAI+B,MAAqB,UACvB9B,IAAe,KAAK,IAAIW,GAAgB,SAAS,iBAAiB,QAAQ,GAAG,SAAS,gBAAgB,YAAY,GAClHqB,IAAe,OAAO,aACtBjC,IAAY,SAAS,gBAAgB,cAErCC,IAAe8B,EAAiB,cAChCE,IAAerB,GAAgBmB,GAAkB,QAAQ,GACzD/B,IAAY+B,EAAiB;AAE/B,UAAMG,IAAejC,IAAegC;AAEpC,QADAH,EAAS,MAAM,KAAK,KAAK,KAAK,IAAI,KAAK,IAAII,GAAcJ,EAAS,GAAG,GAAG,CAAC,CAAC,GACtEhB,GAAmBmB,GAAchC,CAAY,KAAK6B,EAAS,QAAQ9B,GAAW;AAChF,MAAAV,EAA6B,EAAE,WAAAU,GAAW,cAAAC,GAAc,gBAAgBgC,EAAc,CAAA,GAClFD,KACFd,EAA0B,EAAI;AAEhC;AAAA,IACD;AACD,IAAIc,KACFV,EAAgB,UAAUQ,EAAS,KAC/BP,EAAW,WACb,aAAaA,EAAW,OAAO,GAEjCA,EAAW,UAAU,WAAW,MAAM;AACpC,MAAAA,EAAW,UAAU,MACrBD,EAAgB,UAAU,MAC1BJ,EAA0B,EAAI;AAAA,IAC/B,GAAE,GAAG,KAENI,EAAgB,UAAU,MAE5BS,EAAiB,SAASD,CAAQ;AAAA,EACnC;AACD,WAASK,EAAiBL,GAAU;AAClC,IAAAT,EAAY,QAAQ,SAASS,CAAQ;AAAA,EACtC;AACD,SAAO,EAAE,aAAAT,GAAa,kBAAAc,GAAkB,kBAAAN;AAC1C;AACA,MAAMO,KAAc3H;AAAA,EAClB,MAAM;AACJ,UAAM4H,IAAuBjL,KACvB4I,IAAY5I,KACZkL,IAAY9K,EAAe,CAAC,GAC5B0J,IAA4B9J,KAC5BmL,IAAoB/K,EAAe,CAAC,GACpC0I,IAAiB9I,KACjB6I,IAAe7I,KACfoL,IAAehL,EAAe,CAAC,GAC/BiL,IAAoBjL,EAAe,CAAC,GACpCkL,IAAoBlL,EAAe,CAAC,GACpCmL,IAAenL,EAAe,CAAC,GAC/BoL,IAAWxL,KACXyL,IAAWzL,KACX0L,IAAsBtL,EAAe,EAAK;AAChD,WAAAP;AAAA,MACEmB;AAAA,QACEiK;AAAA,QACArJ,EAAI,CAAC,EAAE,WAAW+J,EAAU,MAAOA,CAAU;AAAA,MAC9C;AAAA,MACD/C;AAAA,IACN,GACI/I;AAAA,MACEmB;AAAA,QACEiK;AAAA,QACArJ,EAAI,CAAC,EAAE,cAAcgK,EAAa,MAAOA,CAAa;AAAA,MACvD;AAAA,MACD/C;AAAA,IACN,GACIhJ,EAAQ+I,GAAWuC,CAAiB,GAC7B;AAAA;AAAA,MAEL,sBAAAF;AAAA,MACA,WAAArC;AAAA,MACA,gBAAAE;AAAA,MACA,cAAAsC;AAAA,MACA,mBAAAC;AAAA,MACA,mBAAAC;AAAA,MACA,cAAAC;AAAA,MACA,cAAA1C;AAAA,MACA,2BAAAiB;AAAA;AAAA,MAEA,UAAA0B;AAAA,MACA,UAAAC;AAAA;AAAA,MAEA,mBAAAN;AAAA,MACA,WAAAD;AAAA,MACA,qBAAAQ;AAAA,IACN;AAAA,EACG;AAAA,EACD,CAAE;AAAA,EACF,EAAE,WAAW,GAAM;AACrB,GACMG,KAAW,EAAE,KAAK;AACxB,SAASC,GAAUC,GAAGC,GAAGC,GAAKC,IAAIL,IAAU,IAAIA,IAAU;AACxD,SAAO,EAAE,GAAAE,GAAG,GAAAC,GAAG,KAAAC,GAAK,GAAAC,GAAG,EAAC;AAC1B;AACA,SAASC,EAAMC,GAAM;AACnB,SAAOA,MAASP;AAClB;AACA,SAASQ,KAAU;AACjB,SAAOR;AACT;AACA,SAASS,GAAOF,GAAMlG,GAAK;AACzB,MAAIiG,EAAMC,CAAI;AACZ,WAAOP;AACT,QAAM,EAAE,GAAAE,GAAG,GAAAG,GAAG,EAAC,IAAKE;AACpB,MAAIlG,MAAQ6F,GAAG;AACb,QAAII,EAAMD,CAAC;AACT,aAAO;AACF,QAAIC,EAAM,CAAC;AAChB,aAAOD;AACF;AACL,YAAM,CAACK,GAASC,CAAS,IAAIC,GAAKP,CAAC;AACnC,aAAOQ,GAAOC,GAAMP,GAAM,EAAE,GAAGG,GAAS,GAAGC,GAAW,GAAGI,GAAWV,CAAC,EAAC,CAAE,CAAC;AAAA,IAC1E;AAAA,EACL,MAAS,QAAIhG,IAAM6F,IACRW,GAAOC,GAAMP,GAAM,EAAE,GAAGE,GAAOJ,GAAGhG,CAAG,EAAG,CAAA,CAAC,IAEzCwG,GAAOC,GAAMP,GAAM,EAAE,GAAGE,GAAO,GAAGpG,CAAG,EAAG,CAAA,CAAC;AAEpD;AACA,SAAS2G,GAAKT,GAAMlG,GAAK;AACvB,MAAI,CAAAiG,EAAMC,CAAI;AAGd,WAAIlG,MAAQkG,EAAK,IACRA,EAAK,IACHlG,IAAMkG,EAAK,IACbS,GAAKT,EAAK,GAAGlG,CAAG,IAEhB2G,GAAKT,EAAK,GAAGlG,CAAG;AAE3B;AACA,SAAS4G,GAAgBV,GAAMpN,GAAOgK,IAAQ,KAAK;AACjD,MAAImD,EAAMC,CAAI;AACZ,WAAO,CAAC,QAAW,MAAM;AAE3B,MAAI,OAAOA,EAAKpD,CAAK,CAAC,MAAMhK;AAC1B,WAAO,CAACoN,EAAK,GAAGA,EAAK,CAAC;AAExB,MAAI,OAAOA,EAAKpD,CAAK,CAAC,IAAIhK,GAAO;AAC/B,UAAM+N,IAAID,GAAgBV,EAAK,GAAGpN,GAAOgK,CAAK;AAC9C,WAAI+D,EAAE,CAAC,MAAM,SACJ,CAACX,EAAK,GAAGA,EAAK,CAAC,IAEfW;AAAA,EAEV;AACD,SAAOD,GAAgBV,EAAK,GAAGpN,GAAOgK,CAAK;AAC7C;AACA,SAASgE,GAAOZ,GAAML,GAAGC,GAAG;AAC1B,SAAIG,EAAMC,CAAI,IACLN,GAAUC,GAAGC,GAAG,CAAC,IAEtBD,MAAMK,EAAK,IACNO,GAAMP,GAAM,EAAE,GAAAL,GAAG,GAAAC,EAAG,CAAA,IAClBD,IAAIK,EAAK,IACXa,GAAUN,GAAMP,GAAM,EAAE,GAAGY,GAAOZ,EAAK,GAAGL,GAAGC,CAAC,EAAC,CAAE,CAAC,IAElDiB,GAAUN,GAAMP,GAAM,EAAE,GAAGY,GAAOZ,EAAK,GAAGL,GAAGC,CAAC,EAAC,CAAE,CAAC;AAE7D;AACA,SAASkB,GAAWd,GAAMe,GAAOC,GAAK;AACpC,MAAIjB,EAAMC,CAAI;AACZ,WAAO;AAET,QAAM,EAAE,GAAAL,GAAG,GAAAC,GAAG,GAAAE,GAAG,GAAAa,EAAC,IAAKX;AACvB,MAAIhI,IAAS,CAAA;AACb,SAAI2H,IAAIoB,MACN/I,IAASA,EAAO,OAAO8I,GAAWhB,GAAGiB,GAAOC,CAAG,CAAC,IAE9CrB,KAAKoB,KAASpB,KAAKqB,KACrBhJ,EAAO,KAAK,EAAE,GAAA2H,GAAG,GAAAC,EAAG,CAAA,GAElBD,KAAKqB,MACPhJ,IAASA,EAAO,OAAO8I,GAAWH,GAAGI,GAAOC,CAAG,CAAC,IAE3ChJ;AACT;AACA,SAASiJ,GAAKjB,GAAM;AAClB,SAAID,EAAMC,CAAI,IACL,KAEF,CAAC,GAAGiB,GAAKjB,EAAK,CAAC,GAAG,EAAE,GAAGA,EAAK,GAAG,GAAGA,EAAK,KAAK,GAAGiB,GAAKjB,EAAK,CAAC,CAAC;AACpE;AACA,SAASK,GAAKL,GAAM;AAClB,SAAOD,EAAMC,EAAK,CAAC,IAAI,CAACA,EAAK,GAAGA,EAAK,CAAC,IAAIK,GAAKL,EAAK,CAAC;AACvD;AACA,SAASQ,GAAWR,GAAM;AACxB,SAAOD,EAAMC,EAAK,CAAC,IAAIA,EAAK,IAAIM,GAAOC,GAAMP,GAAM,EAAE,GAAGQ,GAAWR,EAAK,CAAC,EAAG,CAAA,CAAC;AAC/E;AACA,SAASO,GAAMP,GAAMvN,GAAM;AACzB,SAAOiN;AAAA,IACLjN,EAAK,MAAM,SAASA,EAAK,IAAIuN,EAAK;AAAA,IAClCvN,EAAK,MAAM,SAASA,EAAK,IAAIuN,EAAK;AAAA,IAClCvN,EAAK,QAAQ,SAASA,EAAK,MAAMuN,EAAK;AAAA,IACtCvN,EAAK,MAAM,SAASA,EAAK,IAAIuN,EAAK;AAAA,IAClCvN,EAAK,MAAM,SAASA,EAAK,IAAIuN,EAAK;AAAA,EACtC;AACA;AACA,SAASkB,GAASlB,GAAM;AACtB,SAAOD,EAAMC,CAAI,KAAKA,EAAK,MAAMA,EAAK,EAAE;AAC1C;AACA,SAASa,GAAUb,GAAM;AACvB,SAAOmB,GAAMC,GAAKpB,CAAI,CAAC;AACzB;AACA,SAASM,GAAON,GAAM;AACpB,QAAM,EAAE,GAAAF,GAAG,GAAAa,GAAG,KAAAd,EAAG,IAAKG;AACtB,MAAIW,EAAE,OAAOd,IAAM,KAAKC,EAAE,OAAOD,IAAM;AACrC,WAAOG;AACF,MAAIH,IAAMc,EAAE,MAAM,GAAG;AAC1B,QAAIO,GAASpB,CAAC;AACZ,aAAOsB,GAAKb,GAAMP,GAAM,EAAE,KAAKH,IAAM,EAAG,CAAA,CAAC;AAEzC,QAAI,CAACE,EAAMD,CAAC,KAAK,CAACC,EAAMD,EAAE,CAAC;AACzB,aAAOS,GAAMT,EAAE,GAAG;AAAA,QAChB,GAAGS,GAAMT,GAAG,EAAE,GAAGA,EAAE,EAAE,GAAG;AAAA,QACxB,GAAGS,GAAMP,GAAM;AAAA,UACb,GAAGF,EAAE,EAAE;AAAA,UACP,KAAKD,IAAM;AAAA,QACvB,CAAW;AAAA,QACD,KAAAA;AAAA,MACV,CAAS;AAED,UAAM,IAAI,MAAM,wBAAwB;AAAA,EAGhD,OAAS;AACL,QAAIqB,GAASlB,CAAI;AACf,aAAOmB,GAAMZ,GAAMP,GAAM,EAAE,KAAKH,IAAM,EAAG,CAAA,CAAC;AAE1C,QAAI,CAACE,EAAMY,CAAC,KAAK,CAACZ,EAAMY,EAAE,CAAC,GAAG;AAC5B,YAAMU,IAAKV,EAAE,GACPW,IAAOJ,GAASG,CAAE,IAAIV,EAAE,MAAM,IAAIA,EAAE;AAC1C,aAAOJ,GAAMc,GAAI;AAAA,QACf,GAAGd,GAAMP,GAAM;AAAA,UACb,GAAGqB,EAAG;AAAA,UACN,KAAKxB,IAAM;AAAA,QACvB,CAAW;AAAA,QACD,GAAGsB,GAAMZ,GAAMI,GAAG,EAAE,GAAGU,EAAG,GAAG,KAAKC,EAAI,CAAE,CAAC;AAAA,QACzC,KAAKD,EAAG,MAAM;AAAA,MACxB,CAAS;AAAA,IACT;AACQ,YAAM,IAAI,MAAM,wBAAwB;AAAA,EAG7C;AACH;AACA,SAASE,GAAavB,GAAMwB,GAAYC,GAAU;AAChD,MAAI1B,EAAMC,CAAI;AACZ,WAAO;AAET,QAAM0B,IAAgBhB,GAAgBV,GAAMwB,CAAU,EAAE,CAAC;AACzD,SAAOG,GAASb,GAAWd,GAAM0B,GAAeD,CAAQ,CAAC;AAC3D;AACA,SAASG,GAAcC,GAAOC,GAAQ;AACpC,QAAMjF,IAASgF,EAAM;AACrB,MAAIhF,MAAW;AACb,WAAO;AAET,MAAI,EAAE,OAAOkE,GAAO,OAAAnO,EAAK,IAAKkP,EAAOD,EAAM,CAAC,CAAC;AAC7C,QAAM7J,IAAS,CAAA;AACf,WAAS,IAAI,GAAG,IAAI6E,GAAQ,KAAK;AAC/B,UAAM,EAAE,OAAOkF,GAAW,OAAOC,EAAW,IAAGF,EAAOD,EAAM,CAAC,CAAC;AAC9D,IAAA7J,EAAO,KAAK,EAAE,OAAA+I,GAAO,KAAKgB,IAAY,GAAG,OAAAnP,EAAK,CAAE,GAChDmO,IAAQgB,GACRnP,IAAQoP;AAAA,EACT;AACD,SAAAhK,EAAO,KAAK,EAAE,OAAA+I,GAAO,KAAK,OAAU,OAAAnO,EAAK,CAAE,GACpCoF;AACT;AACA,SAAS2J,GAASM,GAAO;AACvB,SAAOL,GAAcK,GAAO,CAAC,EAAE,GAAGxL,GAAO,GAAG7D,EAAO,OAAM,EAAE,OAAA6D,GAAO,OAAA7D,EAAK,EAAG;AAC5E;AACA,SAASuO,GAAMnB,GAAM;AACnB,QAAM,EAAE,GAAAW,GAAG,KAAAd,EAAK,IAAGG;AACnB,SAAO,CAACD,EAAMY,CAAC,KAAK,CAACZ,EAAMY,EAAE,CAAC,KAAKA,EAAE,QAAQd,KAAOc,EAAE,EAAE,QAAQd,IAAMU,GAAMI,GAAG,EAAE,GAAGJ,GAAMP,GAAM,EAAE,GAAGW,EAAE,EAAG,CAAA,GAAG,KAAKd,IAAM,EAAG,CAAA,IAAIG;AACjI;AACA,SAASoB,GAAKpB,GAAM;AAClB,QAAM,EAAE,GAAAF,EAAG,IAAGE;AACd,SAAO,CAACD,EAAMD,CAAC,KAAKA,EAAE,QAAQE,EAAK,MAAMO,GAAMT,GAAG,EAAE,GAAGS,GAAMP,GAAM,EAAE,GAAGF,EAAE,EAAG,CAAA,GAAG,IAAIE;AACtF;AACA,SAASkC,GAAiCL,GAAOjP,GAAOuC,GAAY4L,IAAQ,GAAG;AAC7E,MAAIC,IAAMa,EAAM,SAAS;AACzB,SAAOd,KAASC,KAAK;AACnB,UAAMvK,IAAQ,KAAK,OAAOsK,IAAQC,KAAO,CAAC,GACpCmB,IAAON,EAAMpL,CAAK,GAClB2L,IAAQjN,EAAWgN,GAAMvP,CAAK;AACpC,QAAIwP,MAAU;AACZ,aAAO3L;AAET,QAAI2L,MAAU,IAAI;AAChB,UAAIpB,IAAMD,IAAQ;AAChB,eAAOtK,IAAQ;AAEjB,MAAAuK,IAAMvK,IAAQ;AAAA,IACpB,OAAW;AACL,UAAIuK,MAAQD;AACV,eAAOtK;AAET,MAAAsK,IAAQtK,IAAQ;AAAA,IACjB;AAAA,EACF;AACD,QAAM,IAAI,MAAM,2CAA2CoL,EAAM,KAAK,GAAG,CAAC,kBAAkBjP,CAAK,EAAE;AACrG;AACA,SAASyP,GAA0BR,GAAOjP,GAAOuC,GAAY;AAC3D,SAAO0M,EAAMK,GAAiCL,GAAOjP,GAAOuC,CAAU,CAAC;AACzE;AACA,SAASmN,GAAUT,GAAOU,GAAYC,GAAUrN,GAAY;AAC1D,QAAMqM,IAAaU,GAAiCL,GAAOU,GAAYpN,CAAU,GAC3EsM,IAAWS,GAAiCL,GAAOW,GAAUrN,GAAYqM,CAAU;AACzF,SAAOK,EAAM,MAAML,GAAYC,IAAW,CAAC;AAC7C;AACA,MAAMgB,KAAexL;AAAA,EACnB,OAES,EAAE,kBADgBjD,EAAe,EAAK,EACpB;AAAA,EAE3B,CAAE;AAAA,EACF,EAAE,WAAW,GAAM;AACrB;AACA,SAAS0O,GAAcC,GAAU;AAC/B,QAAM,EAAE,MAAA1F,GAAM,YAAAuE,GAAY,UAAAC,EAAQ,IAAKkB;AACvC,SAAO,CAACC,MACCA,EAAM,UAAUpB,MAAeoB,EAAM,QAAQnB,KAAYmB,EAAM,QAAQ,UAAaA,EAAM,UAAU3F;AAE/G;AACA,SAAS4F,GAAmBC,GAAQC,GAAc;AAChD,MAAIC,IAAwB,GACxBC,IAAa;AACjB,SAAOD,IAAwBF;AAC7B,IAAAE,KAAyBD,EAAaE,IAAa,CAAC,IAAIF,EAAaE,CAAU,IAAI,GACnFA;AAGF,SAAOA,KADeD,MAA0BF,IACX,IAAI;AAC3C;AACA,SAASI,GAAaC,GAAU/G,GAAQ;AACtC,MAAIgH,IAAYrD,EAAMoD,CAAQ,IAAI,IAAI;AACtC,aAAWP,KAASxG,GAAQ;AAC1B,UAAM,EAAE,MAAAa,GAAM,YAAAuE,GAAY,UAAAC,EAAQ,IAAKmB;AAEvC,QADAQ,IAAY,KAAK,IAAIA,GAAW5B,CAAU,GACtCzB,EAAMoD,CAAQ,GAAG;AACnB,MAAAA,IAAWvC,GAAOuC,GAAU,GAAGlG,CAAI;AACnC;AAAA,IACD;AACD,UAAMoG,IAAoB9B,GAAa4B,GAAU3B,IAAa,GAAGC,IAAW,CAAC;AAC7E,QAAI4B,EAAkB,KAAKX,GAAcE,CAAK,CAAC;AAC7C;AAEF,QAAIU,IAAgB,IAChBC,IAAe;AACnB,eAAW,EAAE,OAAOC,GAAY,KAAKC,GAAU,OAAOC,EAAY,KAAIL;AACpE,MAAKC,KAIC7B,KAAY+B,KAAcvG,MAASyG,OACrCP,IAAWjD,GAAOiD,GAAUK,CAAU,MAJxCD,IAAeG,MAAezG,GAC9BqG,IAAgB,KAMdG,IAAWhC,KAAYA,KAAY+B,KACjCE,MAAezG,MACjBkG,IAAWvC,GAAOuC,GAAU1B,IAAW,GAAGiC,CAAU;AAI1D,IAAIH,MACFJ,IAAWvC,GAAOuC,GAAU3B,GAAYvE,CAAI;AAAA,EAE/C;AACD,SAAO,CAACkG,GAAUC,CAAS;AAC7B;AACA,SAASO,KAAmB;AAC1B,SAAO;AAAA,IACL,YAAY,CAAE;AAAA,IACd,UAAU1D,GAAS;AAAA,IACnB,iBAAiBA,GAAS;AAAA,IAC1B,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,cAAc,CAAE;AAAA,EACpB;AACA;AACA,SAAS2D,GAAgB,EAAE,OAAOC,EAAS,GAAIpN,GAAO;AACpD,SAAOA,MAAUoN,IAAY,IAAIpN,IAAQoN,IAAY,KAAK;AAC5D;AACA,SAASC,GAAiB,EAAE,QAAQC,EAAU,GAAIjB,GAAQ;AACxD,SAAOA,MAAWiB,IAAa,IAAIjB,IAASiB,IAAa,KAAK;AAChE;AACA,SAASC,GAAkBC,GAAO;AAChC,SAAO,EAAE,OAAOA,EAAM,OAAO,OAAOA,EAAK;AAC3C;AACA,SAASC,GAAoBC,GAAMC,GAAaC,GAAWC,IAAgB,GAAG;AAC5E,SAAIA,IAAgB,MAClBF,IAAc,KAAK,IAAIA,GAAa/B,GAA0B8B,GAAMG,GAAeV,EAAe,EAAE,MAAM,IAErGhC,GAAcU,GAAU6B,GAAMC,GAAaC,GAAWP,EAAgB,GAAGE,EAAiB;AACnG;AACA,SAASO,GAAiBC,GAAgBpB,GAAWD,GAAUnH,GAAK;AAClE,MAAIyI,IAAaD,GACbE,IAAY,GACZC,IAAW,GACXC,IAAa,GACbpD,IAAa;AACjB,MAAI4B,MAAc,GAAG;AACnB,IAAA5B,IAAaU,GAAiCuC,GAAYrB,IAAY,GAAGQ,EAAe,GAExFgB,IADmBH,EAAWjD,CAAU,EAChB;AACxB,UAAMqD,IAAKnE,GAAgByC,GAAUC,IAAY,CAAC;AAClD,IAAAsB,IAAYG,EAAG,CAAC,GAChBF,IAAWE,EAAG,CAAC,GACXJ,EAAW,UAAUA,EAAWjD,CAAU,EAAE,SAASd,GAAgByC,GAAUC,CAAS,EAAE,CAAC,MAC7F5B,KAAc,IAEhBiD,IAAaA,EAAW,MAAM,GAAGjD,IAAa,CAAC;AAAA,EACnD;AACI,IAAAiD,IAAa,CAAA;AAEf,aAAW,EAAE,OAAOK,GAAa,OAAAlS,EAAK,KAAM2O,GAAa4B,GAAUC,GAAW,KAAQ,GAAG;AACvF,UAAM2B,IAAcD,IAAcJ,GAC5BM,IAAUD,IAAcJ,IAAWC,IAAaG,IAAc/I;AACpE,IAAAyI,EAAW,KAAK;AAAA,MACd,QAAQO;AAAA,MACR,MAAMpS;AAAA,MACN,OAAOkS;AAAA,IACb,CAAK,GACDJ,IAAYI,GACZF,IAAaI,GACbL,IAAW/R;AAAA,EACZ;AACD,SAAO;AAAA,IACL,YAAA6R;AAAA,IACA,WAAWC;AAAA,IACX,YAAYE;AAAA,IACZ,UAAUD;AAAA,EACd;AACA;AACA,SAASM,GAAiBC,GAAO,CAAC9I,GAAQ2G,GAAchH,GAAKC,CAAG,GAAG;AACjE,EAAII,EAAO,SAAS,KAClBL,EAAI,uBAAuBK,GAAQ5B,GAAS,KAAK;AAEnD,QAAM2I,IAAW+B,EAAM;AACvB,MAAIC,IAAchC,GACdC,IAAY;AAChB,MAAIL,EAAa,SAAS,KAAKhD,EAAMoD,CAAQ,KAAK/G,EAAO,WAAW,GAAG;AACrE,UAAMgJ,IAAYhJ,EAAO,CAAC,EAAE,MACtBP,IAAWO,EAAO,CAAC,EAAE;AAC3B,IAAA+I,IAAcpC,EAAa,OAAO,CAACoB,GAAMlB,MAChCrC,GAAOA,GAAOuD,GAAMlB,GAAYmC,CAAS,GAAGnC,IAAa,GAAGpH,CAAQ,GAC1EsJ,CAAW;AAAA,EAClB;AACI,KAACA,GAAa/B,CAAS,IAAIF,GAAaiC,GAAa/I,CAAM;AAE7D,MAAI+I,MAAgBhC;AAClB,WAAO+B;AAET,QAAM,EAAE,YAAYG,GAAe,WAAAC,GAAW,UAAAC,GAAU,YAAAC,EAAU,IAAKjB,GAAiBW,EAAM,YAAY9B,GAAW+B,GAAanJ,CAAG;AACrI,SAAO;AAAA,IACL,UAAUmJ;AAAA,IACV,YAAYE;AAAA,IACZ,WAAAC;AAAA,IACA,YAAAE;AAAA,IACA,UAAAD;AAAA,IACA,iBAAiBxC,EAAa,OAAO,CAACoB,GAAM1N,MACnCmK,GAAOuD,GAAM1N,GAAOgP,GAAShP,GAAO4O,GAAerJ,CAAG,CAAC,GAC7DiE,GAAO,CAAE;AAAA,IACZ,cAAA8C;AAAA,EACJ;AACA;AACA,SAAS0C,GAAShP,GAAO0N,GAAMnI,GAAK;AAClC,MAAImI,EAAK,WAAW;AAClB,WAAO;AAET,QAAM,EAAE,QAAArB,GAAQ,OAAOtB,GAAY,MAAAvE,MAASoF,GAA0B8B,GAAM1N,GAAOmN,EAAe,GAC5F8B,IAAYjP,IAAQ+K,GACpBmE,IAAM1I,IAAOyI,KAAaA,IAAY,KAAK1J,IAAM8G;AACvD,SAAO6C,IAAM,IAAIA,IAAM3J,IAAM2J;AAC/B;AACA,SAASC,GAAgBtH,GAAU;AACjC,SAAO,OAAOA,EAAS,aAAe;AACxC;AACA,SAASuH,GAA0BvH,GAAUwH,GAAOR,GAAW;AAC7D,MAAIM,GAAgBtH,CAAQ;AAC1B,WAAOwH,EAAM,aAAaxH,EAAS,UAAU,IAAI;AAC5C;AACL,UAAMyH,IAAezH,EAAS,UAAU,SAASgH,IAAYhH,EAAS;AACtE,QAAItG,IAASgO,GAA2BD,GAAcD,CAAK;AAC3D,WAAA9N,IAAS,KAAK,IAAI,GAAGA,GAAQ,KAAK,IAAIsN,GAAWtN,CAAM,CAAC,GACjDA;AAAA,EACR;AACH;AACA,SAASgO,GAA2BnC,GAAWiC,GAAO;AACpD,MAAI,CAACG,GAAUH,CAAK;AAClB,WAAOjC;AAET,MAAIqC,IAAc;AAClB,SAAOJ,EAAM,aAAaI,CAAW,KAAKrC,IAAYqC;AACpD,IAAAA;AAEF,SAAOrC,IAAYqC;AACrB;AACA,SAASD,GAAUH,GAAO;AACxB,SAAO,CAAC/F,EAAM+F,EAAM,eAAe;AACrC;AACA,SAASK,GAAiBhD,GAAU;AAClC,SAAOlC,GAAKkC,CAAQ,EAAE,IAAI,CAAC,EAAE,GAAG3B,GAAY,GAAGvE,KAAQxG,GAAO2P,MAAc;AAC1E,UAAMC,IAAWD,EAAU3P,IAAQ,CAAC,GAC9BgL,IAAW4E,IAAWA,EAAS,IAAI,IAAI;AAC7C,WAAO,EAAE,YAAA7E,GAAY,UAAAC,GAAU,MAAAxE;EACnC,CAAG;AACH;AACA,MAAMqJ,KAAW;AAAA,EACf,cAAc;AAAA,EACd,aAAa;AACf,GACMC,KAAatP;AAAA,EACjB,CAAC,CAAC,EAAE,KAAA8E,EAAG,GAAI,EAAE,kBAAAyK,EAAkB,CAAA,MAAM;AACnC,UAAMC,IAAa7S,KACb8S,IAAa9S,KACb+S,IAAqBnS,GAA0BkS,GAAY,CAAC,GAC5DE,IAAchT,KACdiT,IAAYjT,KACZkT,IAAiB9S,EAAe,CAAC,GACjC+O,IAAe/O,EAAe,CAAA,CAAE,GAChC+S,IAAgB/S,EAAe,MAAM,GACrCgT,IAAkBhT,EAAe,MAAM,GACvC6H,IAAW7H,EAAe,CAACmI,GAAIS,MAAUQ,GAAgBjB,GAAImK,GAAS1J,CAAK,CAAC,CAAC,GAC7EqK,IAAOjT,EAAe,MAAM,GAC5BgI,IAAMhI,EAAe,CAAC,GACtBC,IAAU0P,MACVmC,IAAQtR;AAAA,MACZI,EAAK6R,GAAYtQ,EAAe4M,GAAchH,GAAKC,CAAG,GAAGtG,GAAKuP,IAAkBhR,CAAO,GAAGiB,EAAoB,CAAE;AAAA,MAChHjB;AAAA,IACN,GACUiT,IAAmB1S;AAAA,MACvBI;AAAA,QACEmO;AAAA,QACA7N,EAAsB;AAAA,QACtBQ,GAAK,CAACyR,GAAMC,OAAU,EAAE,MAAMD,EAAK,SAAS,SAASC,EAAI,IAAK;AAAA,UAC5D,MAAM,CAAE;AAAA,UACR,SAAS,CAAE;AAAA,QACrB,CAAS;AAAA,QACD5R,EAAI,CAAC,EAAE,MAAA2R,EAAM,MAAKA,CAAI;AAAA,MACvB;AAAA,MACD,CAAE;AAAA,IACR;AACI,IAAA1T;AAAA,MACEmB;AAAA,QACEmO;AAAA,QACAzN,EAAO,CAAC+R,MAAYA,EAAQ,SAAS,CAAC;AAAA,QACtClR,EAAe2P,GAAO9J,CAAG;AAAA,QACzBxG,EAAI,CAAC,CAAC8R,GAAeC,GAAQC,CAAI,MAAM;AACrC,gBAAMC,IAAkBH,EAAc,OAAO,CAACnD,GAAM1N,GAAOwB,MAClD2I,GAAOuD,GAAM1N,GAAOgP,GAAShP,GAAO8Q,EAAO,YAAYC,CAAI,KAAKvP,CAAG,GACzEgI,GAAS,CAAA;AACZ,iBAAO;AAAA,YACL,GAAGsH;AAAA,YACH,cAAcD;AAAA,YACd,iBAAAG;AAAA,UACZ;AAAA,QACA,CAAS;AAAA,MACF;AAAA,MACD3B;AAAA,IACN,GACIrS;AAAA,MACEmB;AAAA,QACE8R;AAAA,QACAvQ,EAAe2P,CAAK;AAAA,QACpBxQ,EAAO,CAAC,CAACoS,GAAa,EAAE,WAAApC,EAAW,CAAA,MAC1BoC,IAAcpC,CACtB;AAAA,QACD9P,EAAI,CAAC,CAACkS,GAAa,EAAE,WAAApC,GAAW,UAAAC,EAAU,CAAA,MACjC;AAAA,UACL;AAAA,YACE,YAAYmC;AAAA,YACZ,UAAUpC;AAAA,YACV,MAAMC;AAAA,UACP;AAAA,QACb,CACS;AAAA,MACF;AAAA,MACDkB;AAAA,IACN,GACIhT,EAAQsT,GAAeC,CAAe;AACtC,UAAMW,IAAiBnT;AAAA,MACrBI;AAAA,QACEmS;AAAA,QACAvR,EAAI,CAACyH,MAASA,MAAS,MAAM;AAAA,MAC9B;AAAA,MACD;AAAA,IACN;AACI,IAAAxJ;AAAA,MACEmB;AAAA,QACEoS;AAAA,QACA1R,EAAO,CAAC1C,MACCA,MAAU,UAAUmN,EAAMxM,GAASuS,CAAK,EAAE,QAAQ,CAC1D;AAAA,QACDtQ,EAAI,CAACyH,MAAS,CAAC,EAAE,YAAY,GAAG,UAAU,GAAG,MAAAA,EAAI,CAAE,CAAC;AAAA,MACrD;AAAA,MACDwJ;AAAA,IACN;AACI,UAAMmB,IAActT;AAAA,MAClBM;AAAA,QACE6R;AAAA,QACAtQ,EAAe2P,CAAK;AAAA,QACpBpQ;AAAA,UACE,CAAC,EAAE,OAAOmS,EAAQ,GAAI,CAACC,GAAGC,CAAQ,OACzB;AAAA,YACL,SAASA,MAAaF;AAAA,YACtB,OAAOE;AAAA,UACrB;AAAA,UAEU,EAAE,SAAS,IAAO,OAAO9T,EAAS;AAAA,QACnC;AAAA,QACDuB,EAAI,CAAC5C,MAAUA,EAAM,OAAO;AAAA,MAC7B;AAAA,IACP;AACI,IAAAK;AAAA,MACE2B;AAAA,QACEkS;AAAA,QACApR;AAAA,UACE,CAACyR,GAAMlS,OACE,EAAE,MAAMkS,EAAK,OAAOlS,GAAM,MAAMA;UAEzC,EAAE,MAAM,GAAG,MAAM,EAAG;AAAA,QACrB;AAAA,QACDO,EAAI,CAACwS,MAAQA,EAAI,IAAI;AAAA,MACtB;AAAA,MACD,CAAClF,MAAW;AACV,cAAM,EAAE,cAAcwE,EAAe,IAAG/T,GAASuS,CAAK;AACtD,YAAIhD,IAAS;AACX,UAAA1P,EAAQoT,GAAkB,EAAI,GAC9BpT,EAAQwT,GAAa9D,IAASD,GAAmBC,GAAQwE,CAAa,CAAC;AAAA,iBAC9DxE,IAAS,GAAG;AACrB,gBAAMmF,IAAwB1U,GAAS2T,CAAgB;AACvD,UAAIe,EAAsB,SAAS,MACjCnF,KAAUD,GAAmB,CAACC,GAAQmF,CAAqB,IAE7D7U,EAAQyT,GAAW/D,CAAM;AAAA,QAC1B;AAAA,MACF;AAAA,IACP,GACI7P,EAAU2B,EAAKkS,GAAgB3Q,EAAe4F,CAAG,CAAC,GAAG,CAAC,CAACtF,GAAOyR,CAAI,MAAM;AACtE,MAAIzR,IAAQ,KACVyR;AAAA,QACE;AAAA,QACA,EAAE,gBAAApB,EAAgB;AAAA,QAClBtM,GAAS;AAAA,MACnB;AAAA,IAEA,CAAK;AACD,UAAM2N,IAAoB7T,GAAkBsS,CAAW;AACvD,IAAAnT;AAAA,MACEmB;AAAA,QACEgS;AAAA,QACAzQ,EAAe2P,CAAK;AAAA,QACpBtQ,EAAI,CAAC,CAAC4S,GAAcb,CAAM,MAAM;AAC9B,gBAAMc,IAAcd,EAAO,aAAa,SAAS,GAC3Ce,IAAgB,CAAA,GAChBC,IAAchB,EAAO;AAC3B,cAAIc,GAAa;AACf,kBAAMG,IAAiB/H,GAAK8G,EAAO,UAAU,CAAC;AAC9C,gBAAIkB,IAA2B,GAC3BxF,IAAa;AACjB,mBAAOwF,IAA2BL,KAAc;AAC9C,oBAAMM,IAAgBnB,EAAO,aAAatE,CAAU,GAC9C0F,IAAiBpB,EAAO,aAAa,WAAWtE,IAAa,IAAI,QAAWsE,EAAO,aAAatE,IAAa,CAAC,IAAIyF,IAAgB;AACxI,cAAAJ,EAAc,KAAK;AAAA,gBACjB,YAAYI;AAAA,gBACZ,UAAUA;AAAA,gBACV,MAAMF;AAAA,cACtB,CAAe,GACDF,EAAc,KAAK;AAAA,gBACjB,YAAYI,IAAgB;AAAA,gBAC5B,UAAUA,IAAgB,IAAIC,IAAiB;AAAA,gBAC/C,MAAMJ;AAAA,cACtB,CAAe,GACDtF,KACAwF,KAA4BE,IAAiB;AAAA,YAC9C;AACD,kBAAMC,IAAa3H,GAAKsG,EAAO,QAAQ;AAEvC,mBAD6BkB,MAA6BL,KAExDQ,EAAW,MAAK,GAEXA,EAAW;AAAA,cAChB,CAACzP,GAAK,EAAE,GAAG1C,GAAO,GAAGwG,GAAI,MAAO;AAC9B,oBAAIb,KAASjD,EAAI;AACjB,uBAAIA,EAAI,aAAa,MACnBiD,KAAS;AAAA,kBACP,GAAGjD,EAAI;AAAA,kBACP;AAAA,oBACE,YAAYA,EAAI;AAAA,oBAChB,UAAU1C,IAAQ2R,IAAe;AAAA,oBACjC,MAAMjP,EAAI;AAAA,kBACX;AAAA,gBACrB,IAEuB;AAAA,kBACL,QAAAiD;AAAA,kBACA,WAAW3F,IAAQ2R;AAAA,kBACnB,UAAUnL;AAAA,gBAC5B;AAAA,cACe;AAAA,cACD;AAAA,gBACE,QAAQqL;AAAA,gBACR,WAAWF;AAAA,gBACX,UAAU;AAAA,cACX;AAAA,YACF,EAAC;AAAA,UACH;AACD,iBAAOnH,GAAKsG,EAAO,QAAQ,EAAE;AAAA,YAC3B,CAACpO,GAAK,EAAE,GAAG1C,GAAO,GAAGwG,EAAI,OAChB;AAAA,cACL,QAAQ,CAAC,GAAG9D,EAAI,QAAQ,EAAE,YAAYA,EAAI,WAAW,UAAU1C,IAAQ2R,IAAe,GAAG,MAAMjP,EAAI,UAAU;AAAA,cAC7G,WAAW1C,IAAQ2R;AAAA,cACnB,UAAUnL;AAAA,YAC1B;AAAA,YAEY;AAAA,cACE,QAAQ,CAAE;AAAA,cACV,WAAW;AAAA,cACX,UAAUsL;AAAA,YACX;AAAA,UACF,EAAC;AAAA,QACZ,CAAS;AAAA,MACF;AAAA,MACD9B;AAAA,IACN;AACI,UAAMoC,IAAkBvU;AAAA,MACtBM;AAAA,QACEiS;AAAA,QACA1Q,EAAe2P,GAAO9J,CAAG;AAAA,QACzBxG,EAAI,CAAC,CAACsT,GAAY,EAAE,YAAArE,EAAY,GAAE+C,CAAI,MAAM;AAC1C,gBAAMuB,IAAoB,CAACD;AAC3B,iBAAOrD,GAASsD,GAAmBtE,GAAY+C,CAAI;AAAA,QAC7D,CAAS;AAAA,MACF;AAAA,IACP;AACI,WAAA/T;AAAA,MACEmB;AAAA,QACEiS;AAAA,QACA1Q,EAAe2P,GAAO9J,CAAG;AAAA,QACzBxG,EAAI,CAAC,CAACsT,GAAYvB,GAAQC,CAAI,MAAM;AAElC,cADoBD,EAAO,aAAa,SAAS,GAChC;AACf,gBAAIxH,EAAMwH,EAAO,QAAQ;AACvB,qBAAOA;AAET,gBAAIpC,IAAclF;AAClB,kBAAMgI,IAAwB1U,GAAS2T,CAAgB;AACvD,gBAAI8B,IAAoB,GACpB/F,IAAa,GACbiD,IAAc;AAClB,mBAAO8C,IAAoB,CAACF,KAAY;AACtC,cAAA5C,IAAc+B,EAAsBhF,CAAU;AAC9C,oBAAM0F,IAAiBV,EAAsBhF,IAAa,CAAC,IAAIiD,IAAc;AAC7E,cAAAjD,KACA+F,KAAqBL,IAAiB;AAAA,YACvC;AAKD,gBAJAxD,IAAclE,GAAKsG,EAAO,QAAQ,EAAE,OAAO,CAACpO,GAAK,EAAE,GAAAwG,GAAG,GAAAC,SAC7CgB,GAAOzH,GAAK,KAAK,IAAI,GAAGwG,IAAImJ,CAAU,GAAGlJ,EAAC,GAChDuF,CAAW,GACS6D,MAAsB,CAACF,GAC1B;AAClB,oBAAMN,IAAiB/H,GAAK8G,EAAO,UAAUrB,CAAW;AACxD,cAAAf,IAAcvE,GAAOuE,GAAa,GAAGqD,CAAc;AACnD,oBAAMS,IAAevI,GAAgB6G,EAAO,UAAU,CAACuB,IAAa,CAAC,EAAE,CAAC;AACxE,cAAA3D,IAAcvE,GAAOuE,GAAa,GAAG8D,CAAY;AAAA,YAClD;AACD,mBAAO;AAAA,cACL,GAAG1B;AAAA,cACH,UAAUpC;AAAA,cACV,GAAGZ,GAAiBgD,EAAO,YAAY,GAAGpC,GAAaqC,CAAI;AAAA,YACzE;AAAA,UACA,OAAiB;AACL,kBAAMrC,IAAclE,GAAKsG,EAAO,QAAQ,EAAE,OAAO,CAACpO,GAAK,EAAE,GAAAwG,GAAG,GAAAC,QACnDgB,GAAOzH,GAAK,KAAK,IAAI,GAAGwG,IAAImJ,CAAU,GAAGlJ,CAAC,GAChDK,GAAS,CAAA;AACZ,mBAAO;AAAA,cACL,GAAGsH;AAAA,cACH,UAAUpC;AAAA,cACV,GAAGZ,GAAiBgD,EAAO,YAAY,GAAGpC,GAAaqC,CAAI;AAAA,YACzE;AAAA,UACW;AAAA,QACX,CAAS;AAAA,MACF;AAAA,MACD1B;AAAA,IACN,GACW;AAAA;AAAA,MAEL,MAAAmB;AAAA,MACA,YAAAP;AAAA,MACA,YAAAD;AAAA,MACA,cAAA1D;AAAA,MACA,iBAAAiE;AAAA,MACA,eAAAD;AAAA,MACA,aAAAH;AAAA,MACA,WAAAC;AAAA,MACA,iBAAAgC;AAAA,MACA,mBAAAV;AAAA,MACA,gBAAArB;AAAA,MACA,KAAA9K;AAAA;AAAA,MAEA,OAAA8J;AAAA,MACA,aAAA8B;AAAA,MACA,oBAAAjB;AAAA,MACA,gBAAAgB;AAAA,MACA,UAAA9L;AAAA,IACN;AAAA,EACG;AAAA,EACDrJ,EAAIoI,IAAc6H,EAAY;AAAA,EAC9B,EAAE,WAAW,GAAM;AACrB,GACMyG,KAA6B,OAAO,WAAa,OAAe,oBAAoB,SAAS,gBAAgB;AACnH,SAASC,GAAuB7K,GAAU;AACxC,QAAMtG,IAAS,OAAOsG,KAAa,WAAW,EAAE,OAAOA,EAAU,IAAGA;AACpE,SAAKtG,EAAO,UACVA,EAAO,QAAQ,WAEb,CAACA,EAAO,YAAY,CAACkR,QACvBlR,EAAO,WAAW,SAEfA,EAAO,WACVA,EAAO,SAAS,IAEXA;AACT;AACA,MAAMoR,KAAsBnS;AAAA,EAC1B,CAAC;AAAA,IACC,EAAE,OAAA6O,GAAO,YAAAY,GAAY,aAAAkB,GAAa,KAAA5L,EAAK;AAAA,IACvC;AAAA,MACE,qBAAAsD;AAAA,MACA,gBAAA5C;AAAA,MACA,UAAA0C;AAAA,MACA,2BAAA1B;AAAA,MACA,cAAAsB;AAAA,MACA,cAAAG;AAAA,MACA,mBAAAF;AAAA,MACA,mBAAAC;AAAA,IACD;AAAA,IACD,EAAE,KAAAnD,EAAK;AAAA,EACX,MAAQ;AACJ,UAAMsN,IAAgBzV,KAChB0V,IAAsB1V,KACtB2V,IAAgBvV,EAAe,CAAC;AACtC,QAAIwV,IAA6B,MAC7BC,IAAmB,MACnBC,IAAyB;AAC7B,aAASrV,IAAU;AACjB,MAAImV,MACFA,KACAA,IAA6B,OAE3BE,MACFA,KACAA,IAAyB,OAEvBD,MACF,aAAaA,CAAgB,GAC7BA,IAAmB,OAErBrW,EAAQkM,GAAqB,EAAK;AAAA,IACnC;AACD,WAAA7L;AAAA,MACEmB;AAAA,QACEyU;AAAA,QACAlT,EAAe2P,GAAOpJ,GAAgBgK,GAAY6C,GAAevK,GAAcG,GAAcpD,CAAG;AAAA,QAChG5F,EAAe6F,GAAKiD,GAAmBC,CAAiB;AAAA,QACxD1J;AAAA,UACE,CAAC;AAAA,YACC,CAAC8I,GAAUiJ,GAAQoC,GAAiBjC,GAAakC,GAAgBC,GAAeC,GAAe5B,CAAI;AAAA,YACnGV;AAAA,YACAuC;AAAA,YACAC;AAAA,UACZ,MAAgB;AACJ,kBAAMC,IAAiBd,GAAuB7K,CAAQ,GAChD,EAAE,OAAA4L,GAAO,UAAAC,IAAU,QAAArH,GAAM,IAAKmH,GAC9B3E,KAAYoC,IAAc,GAC1BjR,KAAQoP,GAA0BoE,GAAgB1C,GAAQjC,EAAS;AACzE,gBAAIK,KAAMF,GAAShP,IAAO8Q,EAAO,YAAYC,CAAI,IAAIqC;AACrD,YAAIK,MAAU,SACZvE,MAAOoE,IAAqBrJ,GAAgB6G,EAAO,UAAU9Q,EAAK,EAAE,CAAC,IAAIkT,IAAkBK,GACvFvT,OAAU6O,OACZK,MAAOmE,MAEAI,MAAU,WACnBvE,OAAQoE,IAAqBrJ,GAAgB6G,EAAO,UAAU9Q,EAAK,EAAE,CAAC,IAAIkT,IAAkBK,KAAsB,IAElHrE,MAAOiE,GAEL9G,OACF6C,MAAO7C;AAET,kBAAMsH,KAAQ,CAACC,OAAgB;AAC7B,cAAAhW,KACIgW,MACFnC,EAAK,yBAAyB,EAAE,UAAA5J,EAAU,GAAE9D,GAAS,KAAK,GAC1DpH,EAAQiW,GAAe/K,CAAQ,MAE/BlL,EAAQkW,GAAqB,EAAI,GACjCpB,EAAK,0CAA0C,CAAA,GAAI1N,GAAS,KAAK;AAAA,YAEjF;AAEY,gBADAnG,KACI8V,OAAa,UAAU;AACzB,kBAAIE,KAAc;AAClB,cAAAX,IAAyBzW,EAAU2U,GAAa,CAAC0C,OAAY;AAC3D,gBAAAD,KAAcA,MAAeC;AAAA,cAC7C,CAAe,GACDd,IAA6B9V,GAAWgK,GAA2B,MAAM;AACvE,gBAAA0M,GAAMC,EAAW;AAAA,cACjC,CAAe;AAAA,YACf;AACc,cAAAb,IAA6B9V,GAAWkB,EAAKgT,GAAa2C,GAAgB,GAAG,CAAC,GAAGH,EAAK;AAExF,mBAAAX,IAAmB,WAAW,MAAM;AAClC,cAAApV;YACD,GAAE,IAAI,GACPjB,EAAQkM,GAAqB,EAAI,GACjC4I,EAAK,2BAA2B,EAAE,OAAAzR,IAAO,KAAAkP,IAAK,UAAAwE,MAAY3P,GAAS,KAAK,GACjE,EAAE,KAAAmL,IAAK,UAAAwE;UACf;AAAA,QACF;AAAA,MACF;AAAA,MACD/K;AAAA,IACN,GACW;AAAA,MACL,eAAAiK;AAAA,MACA,qBAAAC;AAAA,MACA,eAAAC;AAAA,IACN;AAAA,EACG;AAAA,EACD/W,EAAI+T,IAAY3H,IAAahE,EAAY;AAAA,EACzC,EAAE,WAAW,GAAM;AACrB;AACA,SAAS2P,GAAgBC,GAAO;AAC9B,SAAO,CAACnV,MAAS;AACf,UAAM0I,IAAa,WAAW,MAAM;AAClC,MAAA1I,EAAK,EAAK;AAAA,IACX,GAAEmV,CAAK;AACR,WAAO,CAAC5X,MAAU;AAChB,MAAIA,MACFyC,EAAK,EAAI,GACT,aAAa0I,CAAU;AAAA,IAE/B;AAAA,EACA;AACA;AACA,MAAM0M,KAAK,MACLC,KAAO,QACPC,KAAS,QACTC,KAAuB;AAAA,EAC3B,UAAU;AAAA,EACV,oBAAoB;AAAA,EACpB,OAAO;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,cAAc;AAAA,EACf;AACH,GACMC,KAA2B,GAC3BC,KAAmB7T,EAAO,CAAC,CAAC,EAAE,sBAAA4H,GAAsB,WAAArC,GAAW,gBAAAE,GAAgB,cAAAsC,GAAc,cAAAG,GAAc,UAAAE,EAAQ,CAAE,MAAM;AAC/H,QAAM0L,IAAa/W,EAAe,EAAK,GACjCgX,IAAUhX,EAAe,EAAI,GAC7BiX,IAAsBrX,KACtBsX,IAAmBtX,KACnBuX,IAAoBnX,EAAe,CAAC,GACpCoX,IAAiBpX,EAAe6W,EAAwB,GACxDQ,IAAc7W;AAAA,IAClBI;AAAA,MACEiC,GAAMjC,EAAKkC,EAAI0F,CAAS,GAAG5G,GAAK,CAAC,GAAGH,GAAM,EAAI,CAAC,GAAGb,EAAKkC,EAAI0F,CAAS,GAAG5G,GAAK,CAAC,GAAGH,GAAM,EAAK,GAAGS,GAAa,GAAG,CAAC,CAAC;AAAA,MAChHhB,EAAsB;AAAA,IACvB;AAAA,IACD;AAAA,EACJ,GACQoW,IAAgB9W;AAAA,IACpBI,EAAKiC,GAAMjC,EAAKyK,GAAU5J,GAAM,EAAI,CAAC,GAAGb,EAAKyK,GAAU5J,GAAM,EAAK,GAAGS,GAAa,GAAG,CAAC,CAAC,GAAGhB,GAAsB;AAAA,IAChH;AAAA,EACJ;AACE,EAAAzB;AAAA,IACEmB;AAAA,MACEmC,GAAcD,EAAI0F,CAAS,GAAG1F,EAAIsU,CAAc,CAAC;AAAA,MACjD5V,EAAI,CAAC,CAACmQ,GAAK4F,CAAe,MAAM5F,KAAO4F,CAAe;AAAA,MACtDrW,EAAsB;AAAA,IACvB;AAAA,IACD8V;AAAA,EACJ,GACEvX,EAAQmB,EAAKoW,GAASlV,GAAa,EAAE,CAAC,GAAGoV,CAAgB;AACzD,QAAMM,IAAgBlX;AAAA,IACpBM;AAAA,MACEmC,GAAc8H,GAAsB/H,EAAI4F,CAAc,GAAG5F,EAAIkI,CAAY,GAAGlI,EAAIqI,CAAY,GAAGrI,EAAIqU,CAAiB,CAAC;AAAA,MACrHzV,GAAK,CAACN,GAAS,CAAC,EAAE,WAAWmK,GAAY,cAAA9C,EAAc,GAAEkN,GAAiB8B,GAAeC,GAAeC,CAAkB,MAAM;AAC9H,cAAMC,IAAcrM,IAAaoK,IAAkBlN,IAAe,CAACkP,GAC7DzG,IAAQ;AAAA,UACZ,gBAAgByE;AAAA,UAChB,WAAWpK;AAAA,UACX,cAAA9C;AAAA,QACV;AACQ,YAAImP,GAAa;AACf,cAAIC,GACAC;AACJ,iBAAIvM,IAAanK,EAAQ,MAAM,aAC7ByW,IAAkB,iBAClBC,IAAiB1W,EAAQ,MAAM,YAAYmK,MAE3CsM,IAAkB,kBAClBC,IAAiB1W,EAAQ,MAAM,YAAYmK,KAAcnK,EAAQ,iBAE5D;AAAA,YACL,UAAU;AAAA,YACV,OAAA8P;AAAA,YACA,iBAAA2G;AAAA,YACA,gBAAAC;AAAA,UACZ;AAAA,QACS;AACD,YAAIC;AACJ,eAAI7G,EAAM,eAAe9P,EAAQ,MAAM,eACrC2W,IAAqB,mBACZpC,IAAkBvU,EAAQ,MAAM,iBACzC2W,IAAqB,+BACZxM,IAAanK,EAAQ,MAAM,YACpC2W,IAAqB,sBAErBA,IAAqB,0CAEhB;AAAA,UACL,UAAU;AAAA,UACV,oBAAAA;AAAA,UACA,OAAA7G;AAAA,QACV;AAAA,MACO,GAAE0F,EAAoB;AAAA,MACvB1V,EAAqB,CAACiS,GAAMlS,MACnBkS,KAAQA,EAAK,aAAalS,EAAK,QACvC;AAAA,IACF;AAAA,EACL,GACQ+W,IAA0BxX;AAAA,IAC9BI;AAAA,MACEiK;AAAA,MACAnJ;AAAA,QACE,CAACN,GAAS,EAAE,WAAWmK,GAAY,cAAA9C,GAAc,gBAAgBkN,QAAsB;AACrF,cAAKrM,GAAmBlI,EAAQ,cAAcqH,CAAY;AAkBxD,mBAAO;AAAA,cACL,WAAW8C;AAAA,cACX,cAAA9C;AAAA,cACA,MAAM;AAAA,cACN,SAAS;AAAA,YACvB;AAvBuE;AAC3D,kBAAMwP,IAAWxP,KAAgB8C,IAAaoK,KAAmB;AACjE,mBAAIvU,EAAQ,cAAcmK,KAAc0M,IAC/B;AAAA,cACL,cAAAxP;AAAA,cACA,WAAW8C;AAAA,cACX,MAAMnK,EAAQ,YAAYmK;AAAA,cAC1B,SAAS;AAAA,YACzB,IAEqB;AAAA,cACL,cAAA9C;AAAA,cACA,WAAW8C;AAAA,cACX,MAAM;AAAA,cACN,SAAS;AAAA,YACzB;AAAA,UAEA;AAAA,QAQS;AAAA,QACD,EAAE,cAAc,GAAG,MAAM,GAAG,WAAW,GAAG,SAAS,GAAO;AAAA,MAC3D;AAAA,MACDjK,EAAO,CAAC1C,MAAUA,EAAM,OAAO;AAAA,MAC/B4C,EAAI,CAAC5C,MAAUA,EAAM,IAAI;AAAA,IAC1B;AAAA,IACD;AAAA,EACJ;AACE,EAAAa;AAAA,IACEmB;AAAA,MACE4W;AAAA,MACAhW,EAAI,CAAC0P,MAAUA,EAAM,QAAQ;AAAA,IAC9B;AAAA,IACD6F;AAAA,EACJ,GACEtX,EAAQmB,EAAKmW,GAAYjV,GAAa,EAAE,CAAC,GAAGmV,CAAmB;AAC/D,QAAMiB,IAAkBlY,EAAe0W,EAAI;AAC3C,EAAAjX;AAAA,IACEmB;AAAA,MACEiK;AAAA,MACArJ,EAAI,CAAC,EAAE,WAAW+J,EAAU,MAAOA,CAAU;AAAA,MAC7CrK,EAAsB;AAAA,MACtBQ;AAAA,QACE,CAACyD,GAAKoG,MACAhM,GAAS+X,CAAa,IACjB,EAAE,WAAWnS,EAAI,WAAW,eAAeoG,EAAU,IAEvD,EAAE,WAAWA,IAAapG,EAAI,gBAAgBsR,KAAKC,IAAM,eAAenL;QAEjF,EAAE,WAAWmL,IAAM,eAAe,EAAG;AAAA,MACtC;AAAA,MACDlV,EAAI,CAAC5C,MAAUA,EAAM,SAAS;AAAA,IAC/B;AAAA,IACDsZ;AAAA,EACJ,GACEzY,EAAQmB,EAAKiK,GAAsB/I,GAAa,EAAE,GAAGL,GAAMkV,EAAM,CAAC,GAAGuB,CAAe;AACpF,QAAMC,IAAiBnY,EAAe,CAAC;AACvC,SAAAP;AAAA,IACEmB;AAAA,MACEyW;AAAA,MACA/V,EAAO,CAAC1C,MAAU,CAACA,CAAK;AAAA;AAAA,MAExB6C,GAAM,CAAC;AAAA,IACR;AAAA,IACD0W;AAAA,EACJ,GACE1Y;AAAA,IACEmB;AAAA,MACE4H;AAAA,MACA1G,GAAa,GAAG;AAAA,MAChBK,EAAekV,CAAW;AAAA,MAC1B/V,EAAO,CAAC,CAACwS,GAAGsE,CAAY,MAAM,CAAC,CAACA,CAAY;AAAA,MAC5C1W,GAAK,CAAC,CAACoS,GAAGX,CAAI,GAAG,CAAClS,CAAI,MAAM,CAACkS,GAAMlS,CAAI,GAAG,CAAC,GAAG,CAAC,CAAC;AAAA,MAChDO,EAAI,CAAC,CAAC2R,GAAMlS,CAAI,MAAMA,IAAOkS,CAAI;AAAA,IAClC;AAAA,IACDgF;AAAA,EACJ,GACS;AAAA,IACL,aAAAd;AAAA,IACA,SAAAL;AAAA,IACA,YAAAD;AAAA,IACA,eAAAS;AAAA,IACA,kBAAAN;AAAA,IACA,qBAAAD;AAAA,IACA,iBAAAiB;AAAA,IACA,mBAAAf;AAAA,IACA,gBAAAC;AAAA,IACA,gBAAAe;AAAA,IACA,yBAAAH;AAAA,EACJ;AACA,GAAGxZ,EAAIoM,EAAW,CAAC,GACbyN,KAAmBpV;AAAA,EACvB,CAAC,CAAC,EAAE,KAAA8E,EAAG,CAAE,MAAM;AACb,UAAMuQ,IAAatY,EAAe,EAAK,GACjCuY,IAAWjY;AAAA,MACfM;AAAA,QACE0X;AAAA,QACAhX,EAAO,CAACkX,MAAUA,CAAK;AAAA,QACvBtX,EAAsB;AAAA,MACvB;AAAA,IACP;AACI,WAAAjC,EAAUqZ,GAAY,CAAC1Z,MAAU;AAC/B,MAAAA,KAASW,GAASwI,CAAG,EAAE,iBAAiB,IAAIvB,GAAS,KAAK;AAAA,IAChE,CAAK,GACM,EAAE,YAAA8R,GAAY,UAAAC;EACtB;AAAA,EACD/Z,EAAIoI,EAAY;AAAA,EAChB,EAAE,WAAW,GAAM;AACrB;AACA,SAAS6R,GAAWC,GAAYrS,GAAU;AACxC,EAAIqS,KAAc,IAChBrS,MAEA,sBAAsB,MAAMoS,GAAWC,IAAa,GAAGrS,CAAQ,CAAC;AAEpE;AACA,SAASsS,GAAiCrO,GAAUoI,GAAY;AAC9D,QAAMpB,IAAYoB,IAAa;AAE/B,SADc,OAAOpI,KAAa,WAAWA,IAAWA,EAAS,UAAU,SAASgH,IAAYhH,EAAS;AAE3G;AACA,MAAMsO,KAAgC3V;AAAA,EACpC,CAAC,CAAC,EAAE,OAAA6O,GAAO,aAAA8B,GAAa,iBAAAZ,EAAiB,GAAE,EAAE,WAAAxK,KAAa,EAAE,eAAA6M,GAAe,qBAAAC,EAAmB,GAAI,EAAE,UAAAiD,EAAU,CAAA,MAAM;AAClH,UAAMM,IAAwB7Y,EAAe,EAAI,GAC3C8Y,IAA0B9Y,EAAe,CAAC,GAC1C+Y,IAAkC/Y,EAAe,EAAI;AAC3D,WAAAP;AAAA,MACEmB;AAAA,QACE2X;AAAA,QACApW,EAAe2W,CAAuB;AAAA,QACtCxX,EAAO,CAAC,CAACwS,GAAGxJ,CAAQ,MAAM,CAAC,CAACA,CAAQ;AAAA,QACpC7I,GAAM,EAAK;AAAA,MACZ;AAAA,MACDoX;AAAA,IACN,GACIpZ;AAAA,MACEmB;AAAA,QACE2X;AAAA,QACApW,EAAe2W,CAAuB;AAAA,QACtCxX,EAAO,CAAC,CAACwS,GAAGxJ,CAAQ,MAAM,CAAC,CAACA,CAAQ;AAAA,QACpC7I,GAAM,EAAK;AAAA,MACZ;AAAA,MACDsX;AAAA,IACN,GACI9Z;AAAA,MACE2B;AAAA,QACEmC,GAAc6Q,GAAa2E,CAAQ;AAAA,QACnCpW,EAAe0W,GAAuB/G,GAAOkB,GAAiB+F,CAA+B;AAAA,QAC7FzX,EAAO,CAAC,CAAC,CAAG,EAAA0X,CAAS,GAAGC,GAAwB,EAAE,UAAA9J,EAAU,GAAE+J,GAAkBC,CAAe,MACtFH,MAAc,CAACjN,EAAMoD,CAAQ,KAAKpQ,GAAUma,CAAgB,MAAM,CAACD,KAA0B,CAACE,CACtG;AAAA,QACDhX,EAAe2W,CAAuB;AAAA,MACvC;AAAA,MACD,CAAC,CAAA,EAAGM,CAAwB,MAAM;AAChC,QAAA1Z,GAAW4V,GAAqB,MAAM;AACpC,UAAAlW,EAAQ2Z,GAAiC,EAAI;AAAA,QACvD,CAAS,GACDN,GAAW,GAAG,MAAM;AAClB,UAAA/Y,GAAW8I,GAAW,MAAM;AAC1B,YAAApJ,EAAQyZ,GAAuB,EAAI;AAAA,UAC/C,CAAW,GACDzZ,EAAQiW,GAAe+D,CAAwB;AAAA,QACzD,CAAS;AAAA,MACF;AAAA,IACP,GACW;AAAA,MACL,uBAAAP;AAAA,MACA,yBAAAC;AAAA,MACA,iCAAAC;AAAA,IACN;AAAA,EACG;AAAA,EACDva,EAAI+T,IAAY3H,IAAawK,IAAqBiD,EAAgB;AAAA,EAClE,EAAE,WAAW,GAAM;AACrB;AACA,SAASgB,GAAsBC,GAAQ;AACrC,SAAKA,IAGEA,MAAW,WAAW,WAAW,SAF/B;AAGX;AACA,MAAMC,KAA2B,CAACD,GAAQvC,MACpC,OAAOuC,KAAW,aACbD,GAAsBC,EAAOvC,CAAU,CAAC,IAE1CA,KAAcsC,GAAsBC,CAAM,GAE7CE,KAAqBvW;AAAA,EACzB,CAAC;AAAA,IACC,EAAE,YAAAyP,GAAY,aAAAkB,EAAa;AAAA,IAC3B,EAAE,YAAAmD,GAAY,eAAAS,EAAe;AAAA,IAC7B,EAAE,eAAAnC,EAAe;AAAA,IACjB,EAAE,uBAAAwD,EAAuB;AAAA,IACzB,EAAE,YAAAP,GAAY,UAAAC,EAAU;AAAA,IACxB,EAAE,KAAAxQ,EAAK;AAAA,IACP,EAAE,qBAAAuD,EAAqB;AAAA,EAC3B,MAAQ;AACJ,UAAMmO,IAAezZ,EAAe,EAAK,GACnC0Z,IAAqB9Z;AAC3B,QAAI+Z,IAAsB;AAC1B,aAASC,EAAeC,GAAsB;AAC5C,MAAAza,EAAQiW,GAAe;AAAA,QACrB,OAAO;AAAA,QACP,OAAO;AAAA,QACP,UAAUwE;AAAA,MAClB,CAAO;AAAA,IACF;AACD,IAAA5a;AAAA,MACE2B;AAAA,QACEmC,GAAcnC,EAAKkC,EAAI4P,CAAU,GAAG9Q,GAAK,CAAC,CAAC,GAAG2W,CAAQ;AAAA,QACtDpW,EAAeW,EAAI2W,CAAY,GAAG1C,GAAY8B,GAAuBvN,CAAmB;AAAA,QACxF9J,EAAI,CAAC,CAAC,CAACkS,GAAasF,CAAS,GAAGc,GAAelC,GAAaqB,GAAwBc,CAAoB,MAAM;AAC5G,cAAIC,IAAehB,KAAaC,GAC5BY,IAAuB;AAC3B,iBAAIG,MACFH,IAAuBN,GAAyBO,GAAelC,KAAemC,CAAoB,GAClGC,IAAeA,KAAgB,CAAC,CAACH,IAE5B,EAAE,YAAYnG,GAAa,cAAAsG,GAAc,sBAAAH,EAAoB;AAAA,QAC9E,CAAS;AAAA,QACDvY,EAAO,CAAC,EAAE,cAAA0Y,EAAc,MAAKA,CAAY;AAAA,MAC1C;AAAA,MACD,CAAC,EAAE,YAAYtG,GAAa,sBAAAmG,QAA2B;AACrD,QAAIF,MACFA,KACAA,IAAsB,OAExBA,IAAsBja,GAAWkU,GAAa,MAAM;AAClD,UAAArU,GAASwI,CAAG,EAAE,wBAAwB,EAAE,YAAY2L,EAAa,GAAElN,GAAS,KAAK,GACjFoT,EAAeC,CAAoB,GACnCF,IAAsB;AAAA,QAChC,CAAS;AAAA,MACF;AAAA,IACP;AACI,aAASM,EAAqBH,GAAe;AAC3C,YAAMI,IAASxa,GAAW8X,GAAe,CAACtG,MAAU;AAClD,QAAI4I,KAAiB,CAAC5I,EAAM,YAAYA,EAAM,uBAAuB,oBAAoB,CAACyI,MACxFpa,GAASwI,CAAG,EAAE,6CAA6C,CAAA,GAAIvB,GAAS,KAAK,GAC7EoT,EAAe,MAAM;AAAA,MAE/B,CAAO;AACD,iBAAWM,GAAQ,GAAG;AAAA,IACvB;AACD,WAAAjb;AAAA,MACE2B;AAAA,QACEmC,GAAcD,EAAI2W,CAAY,GAAG/G,GAAY4F,CAAU;AAAA,QACvDhX,EAAO,CAAC,CAACgY,GAAM,EAAId,CAAK,MAAMc,KAAUd,CAAK;AAAA,QAC7C9W;AAAA,UACE,CAAC,EAAE,OAAA9C,EAAK,GAAI,CAAG,EAAAqC,CAAI,OACV,EAAE,WAAWrC,MAAUqC,GAAM,OAAOA,EAAI;AAAA,UAEjD,EAAE,WAAW,IAAO,OAAO,EAAG;AAAA,QAC/B;AAAA,QACDK,EAAO,CAAC,EAAE,WAAA6Y,EAAW,MAAKA,CAAS;AAAA,QACnChY,EAAesX,GAAc/G,CAAU;AAAA,MACxC;AAAA,MACD,CAAC,CAAA,EAAGoH,CAAa,MAAM;AACrB,QAAIva,GAASsZ,CAAqB,KAChCoB,EAAqBH,MAAkB,EAAK;AAAA,MAE/C;AAAA,IACP,GACI7a,EAAUya,GAAoB,MAAM;AAClC,MAAAO,EAAqB1a,GAASka,CAAY,MAAM,EAAK;AAAA,IAC3D,CAAK,GACDxa,EAAU8D,GAAcD,EAAI2W,CAAY,GAAGjC,CAAa,GAAG,CAAC,CAACsC,GAAe5I,CAAK,MAAM;AACrF,MAAI4I,KAAiB,CAAC5I,EAAM,YAAYA,EAAM,uBAAuB,gCACnE0I,EAAe,MAAM;AAAA,IAE7B,CAAK,GACM,EAAE,cAAAH,GAAc,oBAAAC;EACxB;AAAA,EACDlb,EAAI+T,IAAYuE,IAAkB1B,IAAqBwD,IAA+BP,IAAkBzR,IAAcgE,EAAW;AACnI;AACA,SAASwP,GAA6BC,GAAQ;AAC5C,SAAOA,EAAO;AAAA,IACZ,CAAClV,GAAKmV,OACJnV,EAAI,aAAa,KAAKA,EAAI,UAAU,GACpCA,EAAI,cAAcmV,IAAa,GACxBnV;AAAA,IAET;AAAA,MACE,YAAY;AAAA,MACZ,cAAc,CAAE;AAAA,IACjB;AAAA,EACL;AACA;AACA,MAAMoV,KAAoBtX,EAAO,CAAC,CAAC,EAAE,YAAAyP,GAAY,cAAA3D,GAAc,OAAA+C,EAAK,GAAI,EAAE,WAAAtJ,GAAW,cAAAwC,EAAY,CAAE,MAAM;AACvG,QAAMwP,IAAc5a,KACd6a,IAAkB7a,KAClB8a,IAAuBpa,GAAkBM,EAAK4Z,GAAahZ,EAAI4Y,EAA4B,CAAC,CAAC;AACnG,SAAA3a;AAAA,IACEmB;AAAA,MACE8Z;AAAA,MACAlZ,EAAI,CAAC5C,MAAUA,EAAM,UAAU;AAAA,IAChC;AAAA,IACD8T;AAAA,EACJ,GACEjT;AAAA,IACEmB;AAAA,MACE8Z;AAAA,MACAlZ,EAAI,CAAC5C,MAAUA,EAAM,YAAY;AAAA,IAClC;AAAA,IACDmQ;AAAA,EACJ,GACEtP;AAAA,IACEmB;AAAA,MACEmC,GAAcyF,GAAWsJ,GAAO9G,CAAY;AAAA,MAC5C1J,EAAO,CAAC,CAACwS,GAAGP,CAAM,MAAMtB,GAAUsB,CAAM,CAAC;AAAA,MACzC/R,EAAI,CAAC,CAAC+J,GAAY2F,GAAO2E,CAAa,MAAMnJ,GAAgBwE,EAAM,iBAAiB,KAAK,IAAI3F,IAAasK,GAAe,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;AAAA,MACnI3U,EAAsB;AAAA,MACtBM,EAAI,CAACiB,MAAU,CAACA,CAAK,CAAC;AAAA,IACvB;AAAA,IACDgY;AAAA,EACJ,GACS,EAAE,aAAAD,GAAa,iBAAAC;AACxB,GAAGjc,EAAI+T,IAAY3H,EAAW,CAAC;AAC/B,SAAS+P,GAAgBxH,GAAM/R,GAAS;AACtC,SAAO,CAAC,EAAE+R,KAAQA,EAAK,CAAC,MAAM/R,EAAQ,CAAC,KAAK+R,EAAK,CAAC,MAAM/R,EAAQ,CAAC;AACnE;AACA,SAASwZ,GAAgBzH,GAAMlS,GAAM;AACnC,SAAO,CAAC,EAAEkS,KAAQA,EAAK,eAAelS,EAAK,cAAckS,EAAK,aAAalS,EAAK;AAClF;AACA,MAAM4Z,KAAM,OACNC,KAAS,UACTC,KAAO;AACb,SAASC,GAAYC,GAAUjO,GAAKkO,GAAW;AAC7C,SAAI,OAAOD,KAAa,WACfC,MAAczE,MAAMzJ,MAAQ6N,MAAOK,MAAcxE,MAAQ1J,MAAQ8N,KAASG,IAAW,IAExFC,MAAczE,KACTzJ,MAAQ6N,KAAMI,EAAS,OAAOA,EAAS,UAEvCjO,MAAQ8N,KAASG,EAAS,OAAOA,EAAS;AAGvD;AACA,SAASE,GAAoBvc,GAAOoO,GAAK;AACvC,SAAO,OAAOpO,KAAU,WAAWA,IAAQA,EAAMoO,CAAG,KAAK;AAC3D;AACA,MAAMoO,KAAkBnY;AAAA,EACtB,CAAC,CAAC,EAAE,WAAAuF,GAAW,gBAAAE,GAAgB,WAAAoC,GAAW,cAAAE,GAAc,mBAAAC,EAAiB,CAAE,MAAM;AAC/E,UAAMoQ,IAAezb,KACf2V,IAAgBvV,EAAe,CAAC,GAChCsb,IAAqBtb,EAAe,CAAC,GACrCib,IAAWjb,EAAe,CAAC,GAC3Bub,IAAe/a;AAAA,MACnBI;AAAA,QACEmC;AAAA,UACED,EAAI0F,CAAS;AAAA,UACb1F,EAAI4F,CAAc;AAAA,UAClB5F,EAAIkI,CAAY;AAAA,UAChBlI,EAAIuY,GAAcV,EAAe;AAAA,UACjC7X,EAAImY,CAAQ;AAAA,UACZnY,EAAIyS,CAAa;AAAA,UACjBzS,EAAImI,CAAiB;AAAA,UACrBnI,EAAIgI,CAAS;AAAA,UACbhI,EAAIwY,CAAkB;AAAA,QACvB;AAAA,QACD9Z;AAAA,UACE,CAAC;AAAA,YACC+J;AAAA,YACAoK;AAAA,YACAE;AAAA,YACA,CAAC2F,GAASC,CAAU;AAAA,YACpBC;AAAA,YACA9F;AAAA,YACAG;AAAA,YACA4F;AAAA,YACAC;AAAA,UACZ,MAAgB;AACJ,kBAAMjK,IAAMpG,IAAaoQ,GACnBE,IAAqBjG,IAAiBG,GACtC+F,IAAgB,KAAK,IAAIjG,IAAgBlE,GAAK,CAAC;AACrD,gBAAIuJ,IAAYH;AAChB,kBAAMgB,IAAsBZ,GAAoBS,GAAqBf,EAAG,GAClEmB,IAAyBb,GAAoBS,GAAqBd,EAAM;AAW9E,mBAVAU,KAAWG,GACXH,KAAW3F,IAAgBE,GAC3B0F,KAAc5F,IAAgBE,GAC9B0F,KAAcE,GACVH,IAAUjQ,IAAasQ,IAAqBE,MAC9Cb,IAAYzE,KAEVgF,IAAalQ,IAAauQ,IAAgBnG,IAAkBqG,MAC9Dd,IAAYxE,KAEVwE,MAAcH,KACT;AAAA,cACL,KAAK,IAAIpJ,IAAMkE,IAAgBmF,GAAYU,GAAWb,IAAKK,CAAS,IAAIa,GAAqB,CAAC;AAAA,cAC9FpK,IAAMmK,IAAgB/F,IAAqBJ,IAAkBqF,GAAYU,GAAWZ,IAAQI,CAAS,IAAIc;AAAA,YACzH,IAEmB;AAAA,UACR;AAAA,QACF;AAAA,QACD1a,EAAO,CAAC1C,MAAUA,KAAS,IAAI;AAAA,QAC/BsC,EAAqByZ,EAAe;AAAA,MACrC;AAAA,MACD,CAAC,GAAG,CAAC;AAAA,IACX;AACI,WAAO;AAAA;AAAA,MAEL,cAAAU;AAAA,MACA,UAAAJ;AAAA,MACA,eAAA1F;AAAA,MACA,oBAAA+F;AAAA;AAAA,MAEA,cAAAC;AAAA,IACN;AAAA,EACG;AAAA,EACD/c,EAAIoM,EAAW;AAAA,EACf,EAAE,WAAW,GAAM;AACrB;AACA,SAASqR,GAAaxZ,GAAOqP,GAAOmB,GAAM;AACxC,MAAIhB,GAAUH,CAAK,GAAG;AACpB,UAAMjC,IAAYmC,GAA2BvP,GAAOqP,CAAK;AAEzD,WAAO;AAAA,MACL,EAAE,OAFepF,GAAgBoF,EAAM,iBAAiBjC,CAAS,EAAE,CAAC,GAE/C,MAAM,GAAG,QAAQ,EAAG;AAAA,MACzC,EAAE,OAAOA,GAAW,MAAM,GAAG,QAAQ,GAAG,MAAMoD,KAAQA,EAAK,CAAC,EAAG;AAAA,IACrE;AAAA,EACG;AACD,SAAO,CAAC,EAAE,OAAAxQ,GAAO,MAAM,GAAG,QAAQ,GAAG,MAAMwQ,KAAQA,EAAK,CAAC,EAAG,CAAA;AAC9D;AACA,MAAMiJ,KAAmB;AAAA,EACvB,OAAO,CAAE;AAAA,EACT,UAAU,CAAE;AAAA,EACZ,WAAW;AAAA,EACX,cAAc;AAAA,EACd,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,gBAAgB;AAClB;AACA,SAASC,GAAetO,GAAOiE,GAAOgB,GAAgB;AACpD,MAAIjF,EAAM,WAAW;AACnB,WAAO;AAET,MAAI,CAACoE,GAAUH,CAAK;AAClB,WAAOjE,EAAM,IAAI,CAACM,OAAU,EAAE,GAAGA,GAAM,OAAOA,EAAK,QAAQ2E,GAAgB,eAAe3E,EAAK,MAAK,EAAG;AAEzG,QAAMX,IAAaK,EAAM,CAAC,EAAE,OACtBJ,IAAWI,EAAMA,EAAM,SAAS,CAAC,EAAE,OACnCuO,IAAkB,CAAA,GAClBC,IAAc9O,GAAauE,EAAM,iBAAiBtE,GAAYC,CAAQ;AAC5E,MAAI6O,GACAC,IAAoB;AACxB,aAAWpO,KAAQN,GAAO;AACxB,KAAI,CAACyO,KAAgBA,EAAa,MAAMnO,EAAK,WAC3CmO,IAAeD,EAAY,SAC3BE,IAAoBzK,EAAM,aAAa,QAAQwK,EAAa,KAAK;AAEnE,QAAIE;AACJ,IAAIrO,EAAK,UAAUmO,EAAa,QAC9BE,IAAiB;AAAA,MACf,MAAM;AAAA,MACN,OAAOD;AAAA,IACf,IAEMC,IAAiB;AAAA,MACf,OAAOrO,EAAK,SAASoO,IAAoB,KAAKzJ;AAAA,MAC9C,YAAYyJ;AAAA,IACpB,GAEIH,EAAgB,KAAK;AAAA,MACnB,GAAGI;AAAA,MACH,MAAMrO,EAAK;AAAA,MACX,QAAQA,EAAK;AAAA,MACb,eAAeA,EAAK;AAAA,MACpB,MAAMA,EAAK;AAAA,IACjB,CAAK;AAAA,EACF;AACD,SAAOiO;AACT;AACA,SAASK,GAAe5O,GAAO6O,GAAUhK,GAAY1K,GAAK8J,GAAOgB,GAAgB;AAC/E,QAAM,EAAE,UAAAvB,GAAU,YAAAC,GAAY,WAAAF,EAAS,IAAKQ;AAC5C,MAAI6K,IAAY,GACZC,IAAS;AACb,MAAI/O,EAAM,SAAS,GAAG;AACpB,IAAA8O,IAAY9O,EAAM,CAAC,EAAE;AACrB,UAAMgP,IAAWhP,EAAMA,EAAM,SAAS,CAAC;AACvC,IAAA+O,IAASC,EAAS,SAASA,EAAS;AAAA,EACrC;AACD,QAAMnL,IAAYgB,IAAapB,GACzBwL,IAAQtL,IAAaE,IAAYH,KAAYG,IAAY,KAAK1J,GAC9D2J,IAAMgL,GACNI,IAAeD,IAAQF;AAC7B,SAAO;AAAA,IACL,OAAOT,GAAetO,GAAOiE,GAAOgB,CAAc;AAAA,IAClD,UAAUqJ,GAAeO,GAAU5K,GAAOgB,CAAc;AAAA,IACxD,eAAe4J,EAAS,OAAO,CAACM,GAAQ7O,MAASA,EAAK,OAAO6O,GAAQ,CAAC;AAAA,IACtE,WAAAL;AAAA,IACA,cAAAI;AAAA,IACA,KAAApL;AAAA,IACA,QAAAiL;AAAA,IACA,YAAAlK;AAAA,IACA,gBAAAI;AAAA,EACJ;AACA;AACA,SAASmK,GAA4BvL,GAAWoH,GAAyBhH,GAAOgB,GAAgB9K,GAAKiL,GAAM;AACzG,MAAIiK,IAAsB;AAC1B,MAAIpL,EAAM,aAAa,SAAS;AAC9B,eAAWrP,KAASqP,EAAM,cAAc;AACtC,UAAIrP,IAAQya,KAAuBxL;AACjC;AAEF,MAAAwL;AAAA,IACD;AAEH,QAAMC,IAAgBzL,IAAYwL,GAC5BE,IAAgCzE,GAAiCG,GAAyBqE,CAAa,GACvGtP,IAAQ,MAAM,KAAK,EAAE,QAAQsP,EAAe,CAAA,EAAE,IAAI,CAACrJ,GAAGrR,OAAW;AAAA,IACrE,OAAOA,IAAQ2a;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,MAAMnK,EAAKxQ,IAAQ2a,CAA6B;AAAA,EACjD,EAAC;AACF,SAAOX,GAAe5O,GAAO,CAAE,GAAEsP,GAAenV,GAAK8J,GAAOgB,CAAc;AAC5E;AACA,MAAMuK,KAAkBpa;AAAA,EACtB,CAAC;AAAA,IACC,EAAE,OAAA6O,GAAO,YAAAY,GAAY,MAAAO,GAAM,gBAAAH,GAAgB,KAAA9K,EAAK;AAAA,IAChDsV;AAAA,IACA,EAAE,cAAA/B,GAAc,cAAAF,GAAc,eAAekC,EAAoB;AAAA,IACjE,EAAE,uBAAA1E,GAAuB,yBAAAC,EAAyB;AAAA,IAClD,EAAE,eAAAvD,EAAe;AAAA,IACjBiI;AAAA,IACA,EAAE,UAAAjF,EAAU;AAAA,IACZ,EAAE,kBAAA/F,EAAkB;AAAA,EACxB,MAAQ;AACJ,UAAMiI,IAAkBza,EAAe,CAAA,CAAE,GACnCyd,IAAmBzd,EAAe,CAAC,GACnC0d,IAAgB9d;AACtB,IAAAH,EAAQ6d,EAAmB,iBAAiB7C,CAAe;AAC3D,UAAMkD,IAAYnd;AAAA,MAChBI;AAAA,QACEmC;AAAA,UACEwV;AAAA,UACA/F;AAAA,UACA1P,EAAIyY,GAAcZ,EAAe;AAAA,UACjC7X,EAAI4P,CAAU;AAAA,UACd5P,EAAIgP,CAAK;AAAA,UACThP,EAAIgW,CAAuB;AAAA,UAC3BD;AAAA,UACA/V,EAAI2X,CAAe;AAAA,UACnB3X,EAAIgQ,CAAc;AAAA,UAClBhQ,EAAIkF,CAAG;AAAA,UACPiL;AAAA,QACD;AAAA,QACD3R,EAAO,CAAC,CAACsc,GAAOC,GAAiB,EAAInK,GAAW,EAAA,EAAA,EAAA,EAAA,EAAA,EAAcoK,CAAK,MAAM;AACvE,gBAAMC,IAAuBD,KAASA,EAAM,WAAWpK;AACvD,iBAAOkK,KAAS,CAACC,KAAqB,CAACE;AAAA,QACjD,CAAS;AAAA,QACDvc;AAAA,UACE,CAAC;AAAA,YACX;AAAA,YACA;AAAA,YACY,CAAC4O,GAAaC,CAAS;AAAA,YACvBqD;AAAA,YACAH;AAAA,YACA6F;AAAA,YACAH;AAAA,YACA+E;AAAA,YACAC;AAAA,YACAzK;AAAA,YACAsK;AAAA,UACZ,MAAgB;AACJ,kBAAMI,IAAa3K,GACb,EAAE,UAAApE,IAAU,YAAAsB,GAAY,IAAGyN,GAC3BC,KAAwB5e,GAASke,CAAgB;AACvD,gBAAI/J,MAAgB;AAClB,qBAAO,EAAE,GAAGwI,IAAkB,YAAYxI,EAAW;AAEvD,gBAAItD,MAAgB,KAAKC,MAAc;AACrC,qBAAI8N,OAA0B,IACrB,EAAE,GAAGjC,IAAkB,YAAYxI,EAAW,IAE9CuJ,GAA4BkB,IAAuB/E,GAA0B7F,GAAQ0K,GAAiBzK,GAAMsK,KAAS,CAAA,CAAE;AAGlI,gBAAI/R,EAAMoD,EAAQ;AAChB,qBAAIgP,KAAwB,IACnB,OAEK1B;AAAA,gBACZR,GAAatD,GAAiCS,GAA0B1F,CAAW,GAAGwK,GAAYJ,CAAK;AAAA,gBACvG,CAAE;AAAA,gBACFpK;AAAA,gBACAF;AAAA,gBACA0K;AAAA,gBACAD;AAAA,cAChB;AAGY,kBAAMvB,KAAW,CAAA;AACjB,gBAAIsB,EAAiB,SAAS,GAAG;AAC/B,oBAAMxQ,KAAawQ,EAAiB,CAAC,GAC/BvQ,IAAWuQ,EAAiBA,EAAiB,SAAS,CAAC;AAC7D,kBAAIlP,IAAS;AACb,yBAAWF,KAASrB,GAAa4B,IAAU3B,IAAYC,CAAQ,GAAG;AAChE,sBAAMxE,KAAO2F,EAAM,OACbwP,KAAkB,KAAK,IAAIxP,EAAM,OAAOpB,EAAU,GAClD6Q,KAAgB,KAAK,IAAIzP,EAAM,KAAKnB,CAAQ;AAClD,yBAAS6Q,KAAIF,IAAiBE,MAAKD,IAAeC;AAChD,kBAAA5B,GAAS,KAAK,EAAE,OAAO4B,IAAG,MAAArV,IAAM,QAAA6F,GAAQ,MAAMgP,KAASA,EAAMQ,EAAC,EAAG,CAAA,GACjExP,KAAU7F;AAAA,cAEb;AAAA,YACF;AACD,gBAAI,CAACgQ;AACH,qBAAOwD,GAAe,CAAA,GAAIC,IAAUhJ,GAAaF,GAAM0K,GAAYD,CAAe;AAEpF,kBAAM3N,KAAgB0N,EAAiB,SAAS,IAAIA,EAAiBA,EAAiB,SAAS,CAAC,IAAI,IAAI,GAClGO,KAAoBrO,GAAoBO,IAAYL,GAAaC,GAAWC,EAAa;AAC/F,gBAAIiO,GAAkB,WAAW;AAC/B,qBAAO;AAET,kBAAMC,KAAW9K,IAAc,GACzB7F,KAAQtP,GAAI,CAAE,GAAE,CAACyF,OAAW;AAChC,yBAAW4K,KAAS2P,IAAmB;AACrC,sBAAMtO,IAAQrB,EAAM;AACpB,oBAAIE,IAASmB,EAAM,QACfmO,KAAkBxP,EAAM;AAC5B,sBAAM3F,KAAOgH,EAAM;AACnB,oBAAIA,EAAM,SAASG,GAAa;AAC9B,kBAAAgO,MAAmB,KAAK,OAAOhO,IAAcH,EAAM,SAASuD,MAASvK,KAAOuK,EAAK;AACjF,wBAAM9B,KAAY0M,KAAkBxP,EAAM;AAC1C,kBAAAE,KAAU4C,KAAYzI,KAAOyI,KAAY8B;AAAA,gBAC1C;AACD,gBAAI4K,KAAkB9N,OACpBxB,MAAWwB,KAAgB8N,MAAmBnV,IAC9CmV,KAAkB9N;AAEpB,sBAAM7C,KAAW,KAAK,IAAImB,EAAM,KAAK4P,EAAQ;AAC7C,yBAASF,KAAIF,IAAiBE,MAAK7Q,MAC7B,EAAAqB,KAAUuB,IAD6BiO;AAI3C,kBAAAta,GAAO,KAAK,EAAE,OAAOsa,IAAG,MAAArV,IAAM,QAAA6F,GAAQ,MAAMgP,KAASA,EAAMQ,EAAC,EAAG,CAAA,GAC/DxP,KAAU7F,KAAOuK;AAAA,cAEpB;AAAA,YACf,CAAa;AACD,mBAAOiJ,GAAe5O,IAAO6O,IAAUhJ,GAAaF,GAAM0K,GAAYD,CAAe;AAAA,UACtF;AAAA,QACF;AAAA;AAAA,QAED3c,EAAO,CAAC1C,MAAUA,MAAU,IAAI;AAAA,QAChCsC,EAAsB;AAAA,MACvB;AAAA,MACDgb;AAAA,IACN;AACI,IAAAzc;AAAA,MACEmB;AAAA,QACEqS;AAAA,QACA3R,EAAOvC,EAAS;AAAA,QAChByC,EAAI,CAACsc,MAAUA,KAAS,OAAO,SAASA,EAAM,MAAM;AAAA,MACrD;AAAA,MACDpL;AAAA,IACN,GACIjT;AAAA,MACEmB;AAAA,QACE+c;AAAA,QACAnc,EAAI,CAAC5C,MAAUA,EAAM,aAAa;AAAA,MACnC;AAAA,MACD2W;AAAA,IACN,GACI9V,EAAQ8V,GAAegI,CAAkB,GACzC9d;AAAA,MACEmB;AAAA,QACE+c;AAAA,QACAnc,EAAI,CAAC0P,MAAU,CAACA,EAAM,KAAKA,EAAM,MAAM,CAAC;AAAA,MACzC;AAAA,MACDmK;AAAA,IACN,GACI5b;AAAA,MACEmB;AAAA,QACE+c;AAAA,QACAnc,EAAI,CAAC0P,MAAUA,EAAM,KAAK;AAAA,MAC3B;AAAA,MACDwM;AAAA,IACN;AACI,UAAMe,IAAane;AAAA,MACjBM;AAAA,QACE+c;AAAA,QACArc,EAAO,CAAC,EAAE,OAAAuM,EAAK,MAAOA,EAAM,SAAS,CAAC;AAAA,QACtC1L,EAAeuQ,GAAYO,CAAI;AAAA,QAC/B3R,EAAO,CAAC,CAAC,EAAE,OAAAuM,EAAO,GAAE6F,CAAW,MAAM7F,EAAMA,EAAM,SAAS,CAAC,EAAE,kBAAkB6F,IAAc,CAAC;AAAA,QAC9FlS,EAAI,CAAC,CAAG,EAAAkS,GAAaoK,CAAK,MAAM,CAACpK,IAAc,GAAGoK,CAAK,CAAC;AAAA,QACxD5c,EAAqByZ,EAAe;AAAA,QACpCnZ,EAAI,CAAC,CAACkd,CAAK,MAAMA,CAAK;AAAA,MACvB;AAAA,IACP,GACUC,IAAere;AAAA,MACnBM;AAAA,QACE+c;AAAA,QACA7b,GAAa,GAAG;AAAA,QAChBR,EAAO,CAAC,EAAE,OAAAuM,GAAO,UAAA6O,QACR7O,EAAM,SAAS,KAAKA,EAAM,CAAC,EAAE,kBAAkB6O,EAAS,MAChE;AAAA,QACDlb,EAAI,CAAC,EAAE,OAAAqM,EAAK,MAAOA,EAAM,CAAC,EAAE,KAAK;AAAA,QACjC3M,EAAsB;AAAA,MACvB;AAAA,IACP,GACU0d,IAAete;AAAA,MACnBM;AAAA,QACE+c;AAAA,QACArc,EAAO,CAAC,EAAE,OAAAuM,EAAK,MAAOA,EAAM,SAAS,CAAC;AAAA,QACtCrM,EAAI,CAAC,EAAE,OAAAqM,QAAY;AACjB,cAAIL,IAAa,GACbC,IAAWI,EAAM,SAAS;AAC9B,iBAAOA,EAAML,CAAU,EAAE,SAAS,WAAWA,IAAaC;AACxD,YAAAD;AAEF,iBAAOK,EAAMJ,CAAQ,EAAE,SAAS,WAAWA,IAAWD;AACpD,YAAAC;AAEF,iBAAO;AAAA,YACL,YAAYI,EAAML,CAAU,EAAE;AAAA,YAC9B,UAAUK,EAAMJ,CAAQ,EAAE;AAAA,UACtC;AAAA,QACA,CAAS;AAAA,QACDvM,EAAqB0Z,EAAe;AAAA,MACrC;AAAA,IACP;AACI,WAAO,EAAE,WAAA+C,GAAW,iBAAAlD,GAAiB,YAAAgE,GAAY,cAAAE,GAAc,cAAAC,GAAc,eAAAlB,GAAe,kBAAAD,GAAkB,GAAGD;EAClH;AAAA,EACDhf;AAAA,IACE+T;AAAA,IACAgI;AAAA,IACAa;AAAA,IACAxC;AAAA,IACAxD;AAAA,IACA0B;AAAA,IACAuB;AAAA,IACA5J;AAAA,EACD;AAAA,EACD,EAAE,WAAW,GAAM;AACrB,GACMoQ,KAAyB5b;AAAA,EAC7B,CAAC,CAAC,EAAE,OAAA6O,GAAO,gBAAAgB,GAAgB,MAAAG,GAAM,KAAAjL,EAAG,GAAI,EAAE,yBAAA8Q,EAAyB,GAAE,EAAE,kBAAA2E,GAAkB,WAAAE,EAAW,GAAE,EAAE,UAAApF,EAAU,CAAA,OAChH9Y;AAAA,IACEmB;AAAA,MACE2X;AAAA,MACApW,EAAesb,CAAgB;AAAA,MAC/Bnc,EAAO,CAAC,CAAG,EAAAod,CAAK,MAAMA,MAAU,CAAC;AAAA,MACjCvc,EAAe2W,GAAyBhH,GAAOgB,GAAgB9K,GAAKiL,CAAI;AAAA,MACxEzR,EAAI,CAAC,CAAC,GAAGkd,CAAK,GAAGI,GAA8BvL,GAAQ0K,GAAiBzK,GAAMsK,IAAQ,CAAA,CAAE,MAC/Eb,GAA4ByB,GAAOI,GAA8BvL,GAAQ0K,GAAiBzK,GAAMsK,CAAK,CAC7G;AAAA,IACF;AAAA,IACDH;AAAA,EACN,GACW;EAETnf,EAAI+T,IAAYqG,IAA+ByE,IAAiBhF,EAAgB;AAAA,EAChF,EAAE,WAAW,GAAM;AACrB,GACM0G,KAAmB9b;AAAA,EACvB,CAAC,CAAC,EAAE,gBAAAkV,EAAc,CAAE,MAAM;AACxB,UAAM6G,IAAYhf,EAAe,EAAK,GAChC4e,IAAehf,KACfqf,IAA0Bjf,EAAe,EAAK;AACpD,WAAAP;AAAA,MACEmB;AAAA,QACEuX;AAAA,QACAhW,EAAe8c,GAAyBD,GAAWJ,CAAY;AAAA,QAC/Dtd,EAAO,CAAC,CAACwS,GAAGoL,CAAM,MAAM,CAAC,CAACA,CAAM;AAAA,QAChC1d,EAAI,CAAC,CAAC2d,GAAOD,GAAQE,GAAYxQ,CAAK,MAAM;AAC1C,gBAAM,EAAE,MAAAyQ,GAAM,OAAAC,EAAO,IAAGJ;AACxB,cAAIE;AACF,gBAAIC,EAAKF,GAAOvQ,CAAK;AACnB,qBAAO;AAAA,qBAGL0Q,EAAMH,GAAOvQ,CAAK;AACpB,mBAAO;AAGX,iBAAOwQ;AAAA,QACjB,CAAS;AAAA,QACDle,EAAsB;AAAA,MACvB;AAAA,MACD8d;AAAA,IACN,GACI/f;AAAA,MACE2B,EAAKmC,GAAcic,GAAW7G,GAAgByG,CAAY,GAAGzc,EAAe8c,CAAuB,CAAC;AAAA,MACpG,CAAC,CAAC,CAACG,GAAYG,GAAU3Q,CAAK,GAAGsQ,CAAM,MAAME,KAAcF,KAAUA,EAAO,UAAUA,EAAO,OAAOK,GAAU3Q,CAAK;AAAA,IACzH,GACW,EAAE,WAAAoQ,GAAW,yBAAAC,GAAyB,gBAAA9G,GAAgB,wBAAwByG,EAAY;AAAA,EAClG;AAAA,EACDpgB,EAAIsY,EAAgB;AAAA,EACpB,EAAE,WAAW,GAAM;AACrB,GACM0I,KAAqBvc,EAAO,CAAC,CAAC,EAAE,iBAAAwX,EAAiB,CAAA,MAAM;AAC3D,QAAMgF,IAAezf,EAAe,CAAC;AACrC,SAAAP;AAAA,IACEmB;AAAA,MACE6e;AAAA,MACAne,EAAO,CAACuH,MAAWA,IAAS,CAAC;AAAA,MAC7BrH,EAAI,CAACqH,MAAW,MAAM,KAAK,EAAE,QAAAA,GAAQ,EAAE,IAAI,CAACiL,GAAGrR,MAAUA,CAAK,CAAC;AAAA,IAChE;AAAA,IACDgY;AAAA,EACJ,GACS,EAAE,cAAAgF,EAAY;AACvB,GAAGjhB,EAAI6e,EAAe,CAAC,GACjBqC,KAAwBzc;AAAA,EAC5B,CAAC,CAAC,EAAE,cAAAkI,GAAc,cAAAH,GAAc,mBAAAC,GAAmB,mBAAAC,KAAqB,EAAE,WAAAyS,EAAS,CAAE,MAAM;AACzF,UAAMgC,IAAyB/f,KACzBggB,IAAkBpf;AAAA,MACtBI;AAAA,QACEmC,GAAcoI,GAAcD,GAAmBF,GAAcC,GAAmB0S,CAAS;AAAA,QACzFnc,EAAI,CAAC,CAACsU,GAAeE,GAAoBH,GAAeE,GAAoB8J,CAAU,MAC7E/J,IAAgBE,IAAqBH,IAAgBE,IAAqB8J,EAAW,eAAeA,EAAW,MACvH;AAAA,MACF;AAAA,MACD;AAAA,IACN;AACI,WAAApgB,EAAQqD,EAAI8c,CAAe,GAAGD,CAAsB,GAC7C,EAAE,iBAAAC,GAAiB,wBAAAD;EAC3B;AAAA,EACDnhB,EAAIoM,IAAayS,EAAe;AAAA,EAChC,EAAE,WAAW,GAAM;AACrB;AACA,SAASyC,GAAcC,GAAM;AAC3B,MAAIzd,IAAS,IACT0B;AACJ,SAAO,OACA1B,MACHA,IAAS,IACT0B,IAAS+b,EAAI,IAER/b;AAEX;AACA,MAAMgc,KAAiBF,GAAc,MAC5B,kBAAkB,KAAK,UAAU,SAAS,KAAK,UAAU,KAAK,UAAU,SAAS,CACzF,GACKG,KAAwBhd;AAAA,EAC5B,CAAC;AAAA,IACC,EAAE,UAAAoI,GAAU,WAAA7C,GAAW,WAAAsC,GAAW,qBAAAQ,EAAqB;AAAA,IACvD,EAAE,aAAA+L,GAAa,YAAAN,GAAY,iBAAAmB,GAAiB,yBAAAF,EAAyB;AAAA,IACrE,EAAE,WAAA2F,EAAW;AAAA,IACb,EAAE,mBAAAxJ,GAAmB,iBAAAU,GAAiB,OAAA/C,GAAO,KAAA9J,EAAK;AAAA,IAClD,EAAE,KAAAD,EAAK;AAAA,IACP,EAAE,kBAAAyK,EAAkB;AAAA,EACxB,MAAQ;AACJ,UAAM0N,IAAkB5f;AAAA,MACtBM;AAAA,QACE+c;AAAA,QACAxb,EAAe6V,CAAuB;AAAA,QACtCtW;AAAA,UACE,CAAC,GAAGye,GAAWC,GAAgBC,CAAe,GAAG,CAAC,EAAE,OAAAxS,GAAO,YAAA6E,GAAY,QAAAkK,GAAQ,cAAAG,EAAc,GAAEuD,CAAwB,MAAM;AAC3H,kBAAMC,IAAc3D,IAASG;AAC7B,gBAAIyD,IAAS;AACb,mBAAIJ,MAAmB1N,KACjByN,EAAU,SAAS,KAAKtS,EAAM,SAAS,MACzBA,EAAM,CAAC,EAAE,kBAAkB,KAAKsS,EAAU,CAAC,EAAE,kBAAkB,MAE7EK,IAASD,IAAcF,GACnBG,MAAW,MACbA,KAAUF,MAKX,CAACE,GAAQ3S,GAAO6E,GAAY6N,CAAW;AAAA,UAC/C;AAAA,UACD,CAAC,GAAG,CAAA,GAAI,GAAG,CAAC;AAAA,QACb;AAAA,QACDjf,EAAO,CAAC,CAACmf,CAAM,MAAMA,MAAW,CAAC;AAAA,QACjCte,EAAeqG,GAAW0P,GAAiB5M,GAAqByL,GAAYhP,GAAKyK,CAAgB;AAAA,QACjGlR,EAAO,CAAC,CAAA,EAAGiK,GAAYmV,GAAkB3G,GAAoB,EAAA,EAAM8D,CAAiB,MAC3E,CAACA,KAAqB,CAAC9D,KAAwBxO,MAAe,KAAKmV,MAAqBjK,EAChG;AAAA,QACDjV,EAAI,CAAC,CAAC,CAACif,CAAM,GAAC,EAAA,EAAA,EAAA,EAAUvM,CAAI,OAC1BA,EAAK,iCAAiC,EAAE,QAAAuM,EAAQ,GAAEja,GAAS,KAAK,GACzDia,EACR;AAAA,MACF;AAAA,IACP;AACI,aAASE,EAAa7R,GAAQ;AAC5B,MAAIA,IAAS,KACX1P,EAAQiM,GAAU,EAAE,KAAK,CAACyD,GAAQ,UAAU,OAAM,CAAE,GACpD1P,EAAQ0L,GAAW,CAAC,MAEpB1L,EAAQ0L,GAAW,CAAC,GACpB1L,EAAQiM,GAAU,EAAE,KAAK,CAACyD,GAAQ,UAAU,OAAM,CAAE;AAAA,IAEvD;AACD,WAAA7P,EAAU2B,EAAKsf,GAAiB/d,EAAe2I,GAAWuM,CAAW,CAAC,GAAG,CAAC,CAACvI,GAAQ8R,GAAiBxI,CAAY,MAAM;AACpH,MAAIA,KAAgB4H,OAClB5gB,EAAQ0L,GAAW8V,IAAkB9R,CAAM,IAE3C6R,EAAa,CAAC7R,CAAM;AAAA,IAE5B,CAAK,GACD7P;AAAA,MACE2B;AAAA,QACEmC,GAAcvC,GAA0B6W,GAAa,EAAK,GAAGvM,GAAW0H,CAAgB;AAAA,QACxFlR,EAAO,CAAC,CAACuf,GAAIlF,GAAYmF,CAAM,MAAM,CAACD,KAAM,CAACC,KAAUnF,MAAe,CAAC;AAAA,QACvEna,EAAI,CAAC,CAACsS,GAAG6H,CAAU,MAAMA,CAAU;AAAA,QACnC7Z,GAAa,CAAC;AAAA,MACf;AAAA,MACD6e;AAAA,IACN,GACIlhB;AAAA,MACEmB;AAAA,QACEiU;AAAA,QACArT,EAAI,CAACsN,OACI,EAAE,KAAK,CAACA,IAChB;AAAA,MACF;AAAA,MACDzD;AAAA,IACN,GACIpM;AAAA,MACE2B;AAAA,QACEuT;AAAA,QACAhS,EAAe2P,GAAO9J,CAAG;AAAA,QACzBxG,EAAI,CAAC,CAACsN,GAAQ,EAAE,UAAUkE,GAAiB,cAAAjE,GAAc,UAAAI,KAAYqE,CAAI,MAAM;AAC7E,mBAASuN,EAAcrP,GAAW;AAChC,mBAAOA,KAAasB,IAAkBQ;AAAA,UACvC;AACD,cAAIzE,EAAa,WAAW;AAC1B,mBAAOgS,EAAcjS,CAAM;AACtB;AACL,gBAAI2R,IAAS;AACb,kBAAMO,IAAmBvU,GAAK0C,GAAU,CAAC;AACzC,gBAAIH,IAAwB,GACxBC,IAAa;AACjB,mBAAOD,IAAwBF,KAAQ;AACrC,cAAAE,KACAyR,KAAUO;AACV,kBAAIrM,IAAiB5F,EAAa,WAAWE,IAAa,IAAI,QAAWF,EAAaE,IAAa,CAAC,IAAIF,EAAaE,CAAU,IAAI;AACnI,cAAID,IAAwB2F,IAAiB7F,MAC3C2R,KAAUO,GACVrM,IAAiB7F,IAASE,IAAwB,IAEpDA,KAAyB2F,GACzB8L,KAAUM,EAAcpM,CAAc,GACtC1F;AAAA,YACD;AACD,mBAAOwR;AAAA,UACR;AAAA,QACX,CAAS;AAAA,MACF;AAAA,MACD,CAAC3R,MAAW;AACV,QAAA1P,EAAQ0L,GAAWgE,CAAM,GACzB,sBAAsB,MAAM;AAC1B,UAAA1P,EAAQiM,GAAU,EAAE,KAAKyD,EAAQ,CAAA,GACjC,sBAAsB,MAAM;AAC1B,YAAA1P,EAAQ0L,GAAW,CAAC,GACpB1L,EAAQoT,GAAkB,EAAK;AAAA,UAC3C,CAAW;AAAA,QACX,CAAS;AAAA,MACF;AAAA,IACP,GACW,EAAE,WAAA1H,EAAS;AAAA,EACnB;AAAA,EACDtM,EAAIoM,IAAakM,IAAkBuG,IAAiB9K,IAAY3L,IAAc6H,EAAY;AAC5F,GACMwS,KAAyBhe;AAAA,EAC7B,CAAC,CAAC,EAAE,UAAAsV,KAAY,EAAE,UAAAnN,EAAQ,GAAI,EAAE,WAAAuS,EAAS,CAAE,MAAM;AAC/C,UAAMuD,IAAmBlhB,EAAe,CAAC;AACzC,WAAAf;AAAA,MACE2B;AAAA,QACE2X;AAAA,QACApW,EAAe+e,CAAgB;AAAA,QAC/B5f,EAAO,CAAC,CAAG,EAAAwN,CAAM,MAAMA,MAAW,CAAC;AAAA,QACnCtN,EAAI,CAAC,CAAA,EAAGsN,CAAM,OAAO,EAAE,KAAKA,EAAM,EAAG;AAAA,MACtC;AAAA,MACD,CAACxE,MAAa;AACZ,QAAA5K;AAAA,UACEkB;AAAA,YACE+c;AAAA,YACA/b,GAAK,CAAC;AAAA,YACNN,EAAO,CAAC4P,MAAUA,EAAM,MAAM,SAAS,CAAC;AAAA,UACzC;AAAA,UACD,MAAM;AACJ,kCAAsB,MAAM;AAC1B,cAAA9R,EAAQgM,GAAUd,CAAQ;AAAA,YACxC,CAAa;AAAA,UACF;AAAA,QACX;AAAA,MACO;AAAA,IACP,GACW;AAAA,MACL,kBAAA4W;AAAA,IACN;AAAA,EACG;AAAA,EACD1iB,EAAI6Z,IAAkBzN,IAAayS,EAAe;AAAA,EAClD,EAAE,WAAW,GAAM;AACrB,GACM8D,KAAsBle;AAAA,EAC1B,CAAC,CAAC,EAAE,gBAAAyF,EAAc,GAAI,EAAE,iBAAAkX,EAAiB,CAAA,MAAM;AAC7C,UAAMwB,IAAgBphB,EAAe,EAAK,GACpCqhB,IAAqB7gB;AAAA,MACzBI;AAAA,QACEmC,GAAcqe,GAAe1Y,GAAgBkX,CAAe;AAAA,QAC5Dte,EAAO,CAAC,CAAC8F,CAAO,MAAMA,CAAO;AAAA,QAC7B5F,EAAI,CAAC,CAAA,EAAGmU,GAAiB2L,CAAgB,MAChC,KAAK,IAAI,GAAG3L,IAAkB2L,CAAgB,CACtD;AAAA,QACDxf,GAAa,CAAC;AAAA,QACdZ,EAAsB;AAAA,MACvB;AAAA,MACD;AAAA,IACN;AACI,WAAO,EAAE,eAAAkgB,GAAe,oBAAAC;EACzB;AAAA,EACD7iB,EAAIoM,IAAa8U,EAAqB;AAAA,EACtC,EAAE,WAAW,GAAM;AACrB,GACM6B,KAAuBte,EAAO,CAAC,CAAC,EAAE,UAAAmI,GAAU,sBAAAP,EAAsB,CAAA,MAAM;AAC5E,QAAM2W,IAA6B5hB,KAC7B6hB,IAAqB7hB,KACrB8hB,IAAiB9hB,KACjB+hB,IAAkB3hB,EAAe,EAAK,GACtCiI,IAAqBjI,EAAe,MAAM;AAChD,SAAAP;AAAA,IACEmB;AAAA,MACEmC,GAAcye,GAA4BC,CAAkB;AAAA,MAC5DjgB,EAAI,CAAC,CAAC,EAAE,gBAAAkH,GAAgB,WAAWkZ,GAAiB,cAAAnZ,EAAc,GAAE,EAAE,WAAAkU,EAAS,CAAE,OACxE;AAAA,QACL,WAAW,KAAK,IAAI,GAAGiF,IAAkBjF,CAAS;AAAA,QAClD,cAAAlU;AAAA,QACA,gBAAAC;AAAA,MACV,EACO;AAAA,IACF;AAAA,IACDmC;AAAA,EACJ,GACEpL;AAAA,IACEmB;AAAA,MACEwK;AAAA,MACAjJ,EAAesf,CAAkB;AAAA,MACjCjgB,EAAI,CAAC,CAACqgB,GAAW,EAAE,WAAAlF,EAAW,CAAA,OACrB;AAAA,QACL,GAAGkF;AAAA,QACH,KAAKA,EAAU,MAAMlF;AAAA,MAC/B,EACO;AAAA,IACF;AAAA,IACD+E;AAAA,EACJ,GACS;AAAA;AAAA,IAEL,iBAAAC;AAAA,IACA,oBAAA1Z;AAAA;AAAA,IAEA,4BAAAuZ;AAAA,IACA,oBAAAC;AAAA;AAAA,IAEA,gBAAAC;AAAA,EACJ;AACA,GAAGljB,EAAIoM,EAAW,CAAC,GACbkX,KAA+B,CAAC;AAAA,EACpC,SAASC;AAAA,EACT,YAAAC;AAAA,EACA,aAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,gBAAgB,EAAE,UAAA/L,GAAU,OAAAD,GAAO,GAAGiM,EAAM;AAC9C,MACMJ,IAAWE,IACN,EAAE,GAAGE,GAAM,UAAAhM,GAAU,OAAOD,KAAwB,YAEzD8L,IAAaE,IACR,EAAE,GAAGC,GAAM,UAAAhM,GAAU,OAAOD,KAAwB,UAEtD,MAEHkM,KAAuBnf;AAAA,EAC3B,CAAC;AAAA,IACC,EAAE,OAAA6O,GAAO,YAAAY,GAAY,KAAA1K,EAAK;AAAA,IAC1B,EAAE,WAAAQ,GAAW,gBAAAE,GAAgB,cAAAsC,GAAc,mBAAAC,GAAmB,mBAAAC,GAAmB,qBAAAI,EAAqB;AAAA,IACtG,EAAE,eAAA+J,EAAe;AAAA,EACrB,MAAQ;AACJ,UAAMgN,IAAiBziB;AACvB,WAAAH;AAAA,MACEmB;AAAA,QACEyhB;AAAA,QACAlgB,EAAe2P,GAAOpJ,GAAgBgK,GAAY1H,GAAcC,GAAmBC,GAAmB1C,CAAS;AAAA,QAC/GrG,EAAe6F,CAAG;AAAA,QAClBxG,EAAI,CAAC,CAAC,CAAC8gB,GAAc/O,GAAQoC,GAAiBjC,GAAamC,GAAeE,GAAoBC,GAAoBzK,CAAU,GAAGiI,CAAI,MAAM;AACvI,gBAAM,EAAE,MAAAnS,GAAM,UAAA8U,GAAU,OAAAD,GAAO,uBAAAqM,IAAwBT,IAA8B,GAAGK,EAAM,IAAGG,GAC3FE,IAAc3Q,GAA0ByQ,GAAc/O,GAAQG,IAAc,CAAC,GAC7EqO,IAAWtQ,GAAS+Q,GAAajP,EAAO,YAAYC,CAAI,IAAIqC,IAAgBE,GAC5EiM,IAAaD,IAAWrV,GAAgB6G,EAAO,UAAUiP,CAAW,EAAE,CAAC,GACvEP,IAAc1W,IAAawK,GAC3BmM,IAAiB3W,IAAaoK,IAAkBK,GAChD1L,IAAWiY,EAAsB;AAAA,YACrC,SAASR;AAAA,YACT,YAAAC;AAAA,YACA,aAAAC;AAAA,YACA,gBAAAC;AAAA,YACA,gBAAgB,EAAE,UAAA/L,GAAU,OAAAD,GAAO,GAAGiM,EAAM;AAAA,UACxD,CAAW;AACD,iBAAI7X,IACFjJ,KAAQ3B;AAAA,YACNkB;AAAA,cACE0K;AAAA,cACAhK,EAAO,CAAC1C,MAAUA,MAAU,EAAK;AAAA;AAAA;AAAA,cAGjCgD,GAAKrC,GAAS+L,CAAmB,IAAI,IAAI,CAAC;AAAA,YAC3C;AAAA,YACDjK;AAAA,UACd,IAEYA,KAAQA,EAAI,GAEPiJ;AAAA,QACjB,CAAS;AAAA,QACDhJ,EAAO,CAAC1C,MAAUA,MAAU,IAAI;AAAA,MACjC;AAAA,MACDyW;AAAA,IACN,GACW;AAAA,MACL,gBAAAgN;AAAA,IACN;AAAA,EACG;AAAA,EACD7jB,EAAI+T,IAAY3H,IAAawK,IAAqBiI,IAAiBzW,EAAY;AAAA,EAC/E,EAAE,WAAW,GAAM;AACrB,GACM6b,KAAkBxf;AAAA,EACtB,CAAC;AAAA,IACC,EAAE,OAAA6O,GAAO,YAAAW,EAAY;AAAA,IACrB,EAAE,WAAAjK,EAAW;AAAA,IACb,EAAE,yBAAAsQ,EAAyB;AAAA,IAC3B,EAAE,UAAAP,EAAU;AAAA,IACZ,EAAE,iBAAAoJ,GAAiB,4BAAAH,GAA4B,oBAAAC,EAAoB;AAAA,EACvE,MAAQ;AACJ,UAAMiB,IAAW9iB,KACX+iB,IAAmB3iB,EAAe,MAAM,GACxC4iB,IAAqC5iB,EAAe,IAAI,GACxD6iB,IAA6B7iB,EAAe,IAAI;AACtD,WAAAP,EAAQ+hB,GAA4BoB,CAAkC,GACtEnjB,EAAQgiB,GAAoBoB,CAA0B,GACtD5jB;AAAA,MACE2B,EAAK8hB,GAAUvgB,EAAe2P,GAAOtJ,GAAWmZ,GAAiBiB,GAAoCC,CAA0B,CAAC;AAAA,MAChI,CAAC,CAACxc,GAAUkN,GAAQhI,GAAYuX,GAAkBC,GAA6BC,CAAmB,MAAM;AACtG,cAAM5a,IAAS+J,GAAiBoB,EAAO,QAAQ;AAC/C,QAAIuP,KAAoBC,MAAgC,QAAQC,MAAwB,SACtFzX,IAAawX,EAA4B,YAAYC,EAAoB,YAE3E3c,EAAS,EAAE,QAAA+B,GAAQ,WAAWmD,EAAY,CAAA;AAAA,MAC3C;AAAA,IACP,GACI9L,EAAQmB,EAAK+hB,GAAkBrhB,EAAOvC,EAAS,GAAGyC,EAAIyhB,EAAoB,CAAC,GAAGnK,CAAuB,GACrGrZ;AAAA,MACEmB;AAAA,QACE2X;AAAA,QACApW,EAAewgB,CAAgB;AAAA,QAC/BrhB,EAAO,CAAC,CAAG,EAAA4P,CAAK,MAAMA,MAAU,MAAM;AAAA,QACtChQ,EAAsB;AAAA,QACtBM,EAAI,CAAC,CAAG,EAAA0hB,CAAQ,MACPA,EAAS,MACjB;AAAA,MACF;AAAA,MACDzQ;AAAA,IACN,GACW;AAAA,MACL,UAAAiQ;AAAA,MACA,kBAAAC;AAAA,IACN;AAAA,EACG;AAAA,EACDnkB,EAAI+T,IAAY3H,IAAagO,IAA+BP,IAAkBkJ,EAAoB;AACpG;AACA,SAAS0B,GAAqBC,GAAU;AACtC,SAAO,EAAE,QAAQA,EAAS,WAAW,OAAO,GAAG,OAAO;AACxD;AACA,MAAMC,KAAsBlgB;AAAA,EAC1B,CAAC;AAAA,IACCmgB;AAAA,IACA3F;AAAA,IACAnF;AAAA,IACA+K;AAAA,IACAzD;AAAA,IACA0D;AAAA,IACAlC;AAAA,IACAmC;AAAA,IACAlB;AAAA,IACAmB;AAAA,EACJ,OACW;AAAA,IACL,GAAGJ;AAAA,IACH,GAAG3F;AAAA,IACH,GAAGnF;AAAA,IACH,GAAG+K;AAAA,IACH,GAAGzD;AAAA,IACH,GAAG0D;AAAA,IACH,GAAGlC;AAAA,IACH,GAAGmC;AAAA,IACH,GAAGlB;AAAA,IACH,GAAGmB;AAAA,EACT;AAAA,EAEEhlB;AAAA,IACE4c;AAAA,IACAyD;AAAA,IACAxG;AAAA,IACA0G;AAAA,IACAW;AAAA,IACAuB;AAAA,IACAE;AAAA,IACAI;AAAA,IACAa;AAAA,IACAxb;AAAA,EACD;AACH,GACM6c,KAAaxgB;AAAA,EACjB,CAAC;AAAA,IACC;AAAA,MACE,YAAAyP;AAAA,MACA,YAAAD;AAAA,MACA,eAAAM;AAAA,MACA,iBAAAC;AAAA,MACA,gBAAAW;AAAA,MACA,UAAA9L;AAAA,MACA,MAAAoL;AAAA,MACA,gBAAAH;AAAA,MACA,cAAA/D;AAAA,MACA,oBAAA4D;AAAA,MACA,KAAA3K;AAAA,MACA,OAAA8J;AAAA,IACD;AAAA,IACD,EAAE,yBAAAgH,GAAyB,uBAAAD,GAAuB,iCAAAE,EAAiC;AAAA,IACnF2K;AAAA,IACAC;AAAA,IACAlK;AAAA,IACA,EAAE,WAAAkE,GAAW,iBAAAlD,GAAiB,GAAGmJ,EAAO;AAAA,IACxC,EAAE,eAAAvO,EAAe;AAAA,IACjBvB;AAAA,IACA,EAAE,cAAA2L,EAAc;AAAA,IAChB,EAAE,aAAAjF,EAAa;AAAA,IACfqJ;AAAA,EACJ,OACIpkB,EAAQmkB,EAAM,cAAcC,EAAc,sBAAsB,GAChEpkB;AAAA,IACEmB;AAAA,MACEijB,EAAc;AAAA,MACdriB,EAAI,CAAC5C,MAAUA,EAAM,aAAa;AAAA,IACnC;AAAA,IACD8kB,EAAM;AAAA,EACZ,GACW;AAAA;AAAA,IAEL,YAAAhR;AAAA,IACA,MAAAO;AAAA,IACA,gBAAAH;AAAA,IACA,YAAAL;AAAA,IACA,yBAAAqG;AAAA,IACA,uBAAAD;AAAA,IACA,iCAAAE;AAAA,IACA,iBAAA0B;AAAA,IACA,cAAAgF;AAAA,IACA,aAAAjF;AAAA,IACA,iBAAiBzH;AAAA,IACjB,mBAAmBC;AAAA,IACnB,KAAAhL;AAAA,IACA,GAAGyR;AAAA;AAAA,IAEH,oBAAA9G;AAAA,IACA,WAAAgL;AAAA,IACA,eAAAtI;AAAA,IACA,gBAAA1B;AAAA,IACA,UAAA9L;AAAA,IACA,cAAAkH;AAAA;AAAA,IAEA,GAAG6U;AAAA;AAAA,IAEH,GAAGC;AAAA,IACH,GAAGH;AAAA,IACH,OAAA5R;AAAA,IACA,GAAG6R;AAAA,EACT;AAAA,EAEEnlB;AAAA,IACE+T;AAAA,IACAqG;AAAA,IACAhO;AAAA,IACA6X;AAAA,IACAjJ;AAAA,IACA6D;AAAA,IACAjI;AAAA,IACA6K;AAAA,IACAT;AAAA,IACAjF;AAAA,IACA4I;AAAA,EACD;AACH,GACMW,KAAgB,kBAChBC,KAAS,UACTC,KAAyBlE,GAAc,MAAM;AACjD,MAAI,OAAO,WAAa;AACtB,WAAOiE;AAET,QAAM/X,IAAO,SAAS,cAAc,KAAK;AACzC,SAAAA,EAAK,MAAM,WAAW8X,IACf9X,EAAK,MAAM,aAAa8X,KAAgBA,KAAgBC;AACjE,CAAC;AACD,SAASE,GAAyB5d,GAAU4B,GAAoB;AAC9D,QAAMic,IAAe7f,EAAM,OAAO,IAAI,GAChC8f,IAAgB9f,EAAM;AAAA,IAC1B,CAACoD,MAAY;AACX,UAAIA,MAAY,QAAQ,CAACA,EAAQ;AAC/B;AAEF,YAAM2c,IAAO3c,EAAQ,yBACf4c,IAAeD,EAAK;AAC1B,UAAIE,GAAe3H;AACnB,UAAI1U,GAAoB;AACtB,cAAMsc,IAAyBtc,EAAmB,yBAC5Cuc,IAAWJ,EAAK,MAAMG,EAAuB;AACnD,QAAAD,IAAgBC,EAAuB,SAAS,KAAK,IAAI,GAAGC,CAAQ,GACpE7H,IAAY6H,IAAWvc,EAAmB;AAAA,MAClD;AACQ,QAAAqc,IAAgB,OAAO,cAAc,KAAK,IAAI,GAAGF,EAAK,GAAG,GACzDzH,IAAYyH,EAAK,MAAM,OAAO;AAEhC,MAAAF,EAAa,UAAU;AAAA,QACrB,WAAAvH;AAAA,QACA,eAAA2H;AAAA,QACA,cAAAD;AAAA,MACR,GACMhe,EAAS6d,EAAa,OAAO;AAAA,IAC9B;AAAA,IACD,CAAC7d,GAAU4B,CAAkB;AAAA,EACjC,GACQ,EAAE,aAAAZ,GAAa,KAAA3B,EAAK,IAAGyB,GAAiBgd,CAAa,GACrDM,IAA8BpgB,EAAM,YAAY,MAAM;AAC1D,IAAA8f,EAAcze,EAAI,OAAO;AAAA,EAC7B,GAAK,CAACye,GAAeze,CAAG,CAAC;AACvBrB,SAAAA,EAAM,UAAU,MAAM;AACpB,QAAI4D,GAAoB;AACtB,MAAAA,EAAmB,iBAAiB,UAAUwc,CAA2B;AACzE,YAAMld,IAAW,IAAI,eAAe,MAAM;AACxC,8BAAsBkd,CAA2B;AAAA,MACzD,CAAO;AACD,aAAAld,EAAS,QAAQU,CAAkB,GAC5B,MAAM;AACX,QAAAA,EAAmB,oBAAoB,UAAUwc,CAA2B,GAC5Eld,EAAS,UAAUU,CAAkB;AAAA,MAC7C;AAAA,IACA;AACM,oBAAO,iBAAiB,UAAUwc,CAA2B,GAC7D,OAAO,iBAAiB,UAAUA,CAA2B,GACtD,MAAM;AACX,eAAO,oBAAoB,UAAUA,CAA2B,GAChE,OAAO,oBAAoB,UAAUA,CAA2B;AAAA,MACxE;AAAA,EAEA,GAAK,CAACA,GAA6Bxc,CAAkB,CAAC,GAC7CZ;AACT;AACK,MAACqd,KAAsBrgB,EAAM,cAAc,MAAM,GAChDsgB,KAA0BtgB,EAAM,cAAc,MAAM;AAC1D,SAASugB,GAAShmB,GAAO;AACvB,SAAOA;AACT;AACA,MAAMimB,KAA2C,gBAAA5hB,EAAO,MAAM;AAC5D,QAAM6hB,IAAc9kB,EAAe,CAACyC,MAAU,QAAQA,CAAK,EAAE,GACvDsiB,IAAU/kB,EAAe,IAAI,GAC7BglB,IAAehlB,EAAe,CAACyC,MAAU,SAASA,CAAK,EAAE,GACzDwiB,IAAajlB,EAAe,CAAA,CAAE,GAC9BklB,IAAiBllB,EAAe4kB,EAAQ,GACxCO,IAAkBnlB,EAAe,KAAK,GACtC6J,IAAc7J,EAAehB,EAAI,GACjComB,IAAe,CAACC,GAAUC,IAAe,SACtC9kB;AAAA,IACLI;AAAA,MACEqkB;AAAA,MACAzjB,EAAI,CAAC+jB,MAAgBA,EAAYF,CAAQ,CAAC;AAAA,MAC1CnkB,EAAsB;AAAA,IACvB;AAAA,IACDokB;AAAA,EACN;AAEE,SAAO;AAAA,IACL,SAAAP;AAAA,IACA,aAAAD;AAAA,IACA,cAAAE;AAAA,IACA,YAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,aAAAtb;AAAA,IACA,iBAAiBub,EAAa,QAAQ;AAAA,IACtC,iBAAiBA,EAAa,QAAQ;AAAA,IACtC,sBAAsBA,EAAa,aAAa;AAAA,IAChD,eAAeA,EAAa,QAAQ,KAAK;AAAA,IACzC,eAAeA,EAAa,QAAQ,KAAK;AAAA,IACzC,gBAAgBA,EAAa,SAAS,KAAK;AAAA,IAC3C,mBAAmBA,EAAa,YAAY,KAAK;AAAA,IACjD,kBAAkBA,EAAa,kBAAkB;AAAA,IACjD,uBAAuBA,EAAa,uBAAuB;AAAA,EAC/D;AACA,CAAC,GACKI,KAAmC,gBAAAviB,EAAO,CAAC,CAACwiB,GAAaC,CAAW,OACjE,EAAE,GAAGD,GAAa,GAAGC,MAC3BlnB,EAAIilB,IAAYoB,EAAwB,CAAC,GACtCc,KAAiC,CAAC,EAAE,QAAA3I,EAAQ,MAAqB3Y,gBAAAA,EAAM,cAAc,OAAO,EAAE,OAAO,EAAE,QAAA2Y,EAAM,EAAI,CAAA,GACjH4I,KAAc,EAAE,UAAU5B,GAAwB,GAAE,QAAQ,GAAG,gBAAgB,UAC/E6B,KAAe,EAAE,gBAAgB,UACjCC,KAA0BzhB,gBAAAA,EAAM,KAAK,SAAuB,EAAE,aAAA0hB,IAAc,MAAS;AACzF,QAAMpI,IAAYqI,EAAkB,WAAW,GACzCvT,IAAawT,GAAe,YAAY,GACxCtE,IAAkBqE,EAAkB,iBAAiB,GACrD/d,IAAqB+d,EAAkB,oBAAoB,GAC3DE,IAAqCD,GAAe,4BAA4B,GAChFE,IAAgCF,GAAe,sBAAsB,GACrEne,IAA+BG,KAAsB0Z,IAAkBuE,IAAqCC,GAC5GrB,IAAckB,EAAkB,aAAa,GAC7CjB,IAAUiB,EAAkB,SAAS,GACrChB,IAAegB,EAAkB,cAAc,GAC/CrS,IAAiBqS,EAAkB,gBAAgB,GACnDne,IAAWme,EAAkB,UAAU,GACvCje,IAAMie,EAAkB,KAAK,GAC7BI,IAAUH,GAAe,KAAK,GAC9B,EAAE,aAAA5e,EAAW,IAAKO;AAAA,IACtB6K;AAAA,IACA5K;AAAA,IACA8L;AAAA,IACAoS,IAAc/mB,KAAO8I;AAAA,IACrBC;AAAA,IACAqe;AAAA,IACAne;AAAA,EACJ,GACQ,CAAC6C,GAAWub,CAAY,IAAIhiB,EAAM,SAAS,CAAC;AAClD,EAAAiiB,GAAa,aAAa,CAAC1nB,MAAU;AACnC,IAAIkM,MAAclM,KAChBynB,EAAaznB,CAAK;AAAA,EAExB,CAAG;AACD,QAAM2nB,IAAmBP,EAAkB,kBAAkB,GACvDQ,IAAwBR,EAAkB,uBAAuB,KAAKL,IACtEc,IAAgBT,EAAkB,eAAe,GACjDU,IAAgBV,EAAkB,eAAe,GACjDW,IAAiBX,EAAkB,gBAAgB,GACnDd,IAAiBc,EAAkB,gBAAgB,GACnDhH,IAAYgH,EAAkB,WAAW,GACzCY,IAAaZ,EAAkB,cAAc,EAAE,SAAS,GACxD5E,IAAgB4E,EAAkB,eAAe,GACjDjN,IAAkCiN,EAAkB,iCAAiC,GACrFa,IAAiBd,IAAc,KAAK;AAAA,IACxC,WAAW;AAAA,IACX,YAAYpI,EAAU;AAAA,IACtB,eAAeA,EAAU;AAAA,IACzB,WAAW7S,MAAc,IAAIA,IAAYsW,IAAgB,SAAS;AAAA,IAClE,GAAGrI,IAAkC,CAAA,IAAK,EAAE,YAAY,SAAU;AAAA,EACtE;AACE,SAAI,CAACgN,KAAepI,EAAU,eAAe,KAAK4I,IACzCliB,EAAM,cAAckiB,GAAkBO,GAA2BP,GAAkBxB,CAAO,CAAC,IAE7F1gB,EAAM;AAAA,IACXoiB;AAAA,IACA;AAAA,MACE,GAAGK,GAA2BL,GAAe1B,CAAO;AAAA,MACpD,KAAK1d;AAAA,MACL,OAAOwf;AAAA,MACP,eAAed,IAAc,2BAA2B;AAAA,IACzD;AAAA,KACAA,IAAcpI,EAAU,WAAWA,EAAU,OAAO,IAAI,CAACxP,MAAS;AACjE,YAAM1L,IAAQ0L,EAAK,eACbrI,IAAMof,EAAeziB,IAAQkb,EAAU,gBAAgBxP,EAAK,MAAM4W,CAAO;AAC/E,aAAI/F,IACK3a,EAAM,cAAcmiB,GAAuB;AAAA,QAChD,GAAGM,GAA2BN,GAAuBzB,CAAO;AAAA,QAC5D,KAAAjf;AAAA,QACA,OAAOqI,EAAK;AAAA,QACZ,QAAQA,EAAK;AAAA,QACb,MAAMA,EAAK,QAAQ;AAAA,QACnB,GAAGA,EAAK,SAAS,UAAU,CAAE,IAAG,EAAE,YAAYA,EAAK,WAAY;AAAA,MACzE,CAAS,IAECA,EAAK,SAAS,UACT9J,EAAM;AAAA,QACXsiB;AAAA,QACA;AAAA,UACE,GAAGG,GAA2BH,GAAgB5B,CAAO;AAAA,UACrD,KAAAjf;AAAA,UACA,cAAcrD;AAAA,UACd,mBAAmB0L,EAAK;AAAA,UACxB,mBAAmBA,EAAK;AAAA,UACxB,OAAOyX;AAAA,QACR;AAAA,QACDZ,EAAa7W,EAAK,OAAO4W,CAAO;AAAA,MAC1C,IAEe1gB,EAAM;AAAA,QACXqiB;AAAA,QACA;AAAA,UACE,GAAGI,GAA2BJ,GAAe3B,CAAO;AAAA,UACpD,GAAGgC,GAAwBL,GAAevY,EAAK,IAAI;AAAA,UACnD,KAAArI;AAAA,UACA,cAAcrD;AAAA,UACd,mBAAmB0L,EAAK;AAAA,UACxB,mBAAmBA,EAAK;AAAA,UACxB,yBAAyBA,EAAK;AAAA,UAC9B,OAAO0X;AAAA,QACR;AAAA,QACDe,IAAa9B,EAAY3W,EAAK,OAAOA,EAAK,YAAYA,EAAK,MAAM4W,CAAO,IAAID,EAAY3W,EAAK,OAAOA,EAAK,MAAM4W,CAAO;AAAA,MAChI;AAAA,IAEA,CAAK;AAAA,EACL;AACA,CAAC,GACKiC,KAAgB;AAAA,EACpB,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,WAAW;AAAA,EACX,UAAU;AAAA,EACV,yBAAyB;AAC3B,GACMC,KAAgB,CAAC7F,OAAmB;AAAA,EACxC,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,KAAK;AAAA,EACL,GAAGA,IAAgB,EAAE,SAAS,QAAQ,eAAe,SAAQ,IAAK,CAAE;AACtE,IACM8F,KAAmB;AAAA,EACvB,OAAO;AAAA,EACP,UAAUlD,GAAwB;AAAA,EAClC,KAAK;AAAA,EACL,QAAQ;AACV;AACA,SAAS8C,GAA2Brf,GAASsd,GAAS;AACpD,MAAI,OAAOtd,KAAY;AAGvB,WAAO,EAAE,SAAAsd,EAAO;AAClB;AACA,SAASgC,GAAwBtf,GAAS0G,GAAM;AAC9C,SAAO,EAAE,MAAM,OAAO1G,KAAY,WAAW,SAAS0G;AACxD;AACA,MAAMgZ,KAA2B9iB,gBAAAA,EAAM,KAAK,WAA0B;AACpE,QAAM+iB,IAAUpB,EAAkB,iBAAiB,GAC7Chb,IAAeib,GAAe,cAAc,GAC5Cd,IAAkBa,EAAkB,iBAAiB,GACrDtgB,IAAMiC,GAAQ,CAACQ,MAAO6C,EAAa5B,GAAgBjB,GAAI,QAAQ,CAAC,CAAC,GACjE4c,IAAUiB,EAAkB,SAAS;AAC3C,SAAOoB,IAAU/iB,EAAM,cAAc8gB,GAAiB,EAAE,KAAAzf,EAAG,GAAIrB,EAAM,cAAc+iB,GAASN,GAA2BM,GAASrC,CAAO,CAAC,CAAC,IAAI;AAC/I,CAAC,GACKsC,KAA2BhjB,gBAAAA,EAAM,KAAK,WAA0B;AACpE,QAAMijB,IAAUtB,EAAkB,iBAAiB,GAC7C7a,IAAe8a,GAAe,cAAc,GAC5Cd,IAAkBa,EAAkB,iBAAiB,GACrDtgB,IAAMiC,GAAQ,CAACQ,MAAOgD,EAAa/B,GAAgBjB,GAAI,QAAQ,CAAC,CAAC,GACjE4c,IAAUiB,EAAkB,SAAS;AAC3C,SAAOsB,IAAUjjB,EAAM,cAAc8gB,GAAiB,EAAE,KAAAzf,EAAG,GAAIrB,EAAM,cAAcijB,GAASR,GAA2BQ,GAASvC,CAAO,CAAC,CAAC,IAAI;AAC/I,CAAC;AACD,SAASwC,GAAc,EAAE,cAAc1hB,GAAe,YAAY2hB,GAAa,iBAAiBphB,KAAoB;AA6BlH,SA5BkB/B,EAAM,KAAK,SAA0B,EAAE,OAAAojB,GAAO,UAAA9hB,GAAU,GAAGZ,KAAS;AACpF,UAAM+C,IAA+BjC,EAAc,sBAAsB,GACnE6hB,IAAoBthB,EAAiB,mBAAmB,GACxDsD,IAA4B7D,EAAc,2BAA2B,GACrE+D,IAAsBxD,EAAiB,aAAa,GACpD2e,IAAU3e,EAAiB,SAAS,GACpC,EAAE,aAAAyD,GAAa,kBAAAc,GAAkB,kBAAAN,EAAkB,IAAGZ;AAAA,MAC1D3B;AAAA,MACA4B;AAAA,MACAge;AAAA,MACA9d;AAAA,IACN;AACI,WAAA4d,EAAY,YAAYnd,CAAgB,GACxCmd,EAAY,YAAY7c,CAAgB,GACjCtG,EAAM;AAAA,MACXqjB;AAAA,MACA;AAAA,QACE,KAAK7d;AAAA,QACL,OAAO,EAAE,GAAGmd,IAAe,GAAGS,EAAO;AAAA,QACrC,eAAe;AAAA,QACf,0BAA0B;AAAA,QAC1B,UAAU;AAAA,QACV,GAAG1iB;AAAA,QACH,GAAG+hB,GAA2BY,GAAmB3C,CAAO;AAAA,MACzD;AAAA,MACDpf;AAAA,IACN;AAAA,EACA,CAAG;AAEH;AACA,SAASgiB,GAAoB,EAAE,cAAc9hB,GAAe,YAAY2hB,GAAa,iBAAiBphB,KAAoB;AAmCxH,SAlCkB/B,EAAM,KAAK,SAAgC,EAAE,OAAAojB,GAAO,UAAA9hB,GAAU,GAAGZ,KAAS;AAC1F,UAAM+C,IAA+BjC,EAAc,4BAA4B,GACzE6hB,IAAoBthB,EAAiB,mBAAmB,GACxDsD,IAA4B7D,EAAc,2BAA2B,GACrE+Z,IAAkBxZ,EAAiB,iBAAiB,GACpD0E,IAAY1E,EAAiB,WAAW,GACxC6B,IAAqB7B,EAAiB,oBAAoB,GAC1D2e,IAAU3e,EAAiB,SAAS,GACpC,EAAE,aAAAyD,GAAa,kBAAAc,GAAkB,kBAAAN,EAAkB,IAAGZ;AAAA,MAC1D3B;AAAA,MACA4B;AAAA,MACAge;AAAA,MACA1oB;AAAA,MACAiJ;AAAA,IACN;AACI,WAAA1B,GAA4B,OAC1BsD,EAAY,UAAU5B,KAA0C,QACzD,MAAM;AACX,MAAA4B,EAAY,UAAU;AAAA,IAC9B,IACO,CAACA,GAAa5B,CAAkB,CAAC,GACpCuf,EAAY,kBAAkBnd,CAAgB,GAC9Cmd,EAAY,YAAY7c,CAAgB,GACjCtG,EAAM;AAAA,MACXqjB;AAAA,MACA;AAAA,QACE,OAAO,EAAE,UAAU,YAAY,GAAGD,GAAO,GAAG7H,MAAoB,IAAI,EAAE,QAAQA,IAAkB9U,EAAS,IAAK,CAAA,EAAI;AAAA,QAClH,0BAA0B;AAAA,QAC1B,GAAG/F;AAAA,QACH,GAAG+hB,GAA2BY,GAAmB3C,CAAO;AAAA,MACzD;AAAA,MACDpf;AAAA,IACN;AAAA,EACA,CAAG;AAEH;AACA,MAAMiiB,KAAa,CAAC,EAAE,UAAAjiB,QAAe;AACnC,QAAMkiB,IAAMxjB,EAAM,WAAWqgB,EAAmB,GAC1Chc,IAAiBud,GAAe,gBAAgB,GAChD6B,IAAkB7B,GAAe,iBAAiB,GAClD7E,IAAgB4E,EAAkB,eAAe,GACjD+B,IAAcpgB,GAAQ9J,GAAQ6K,GAAgB,CAACP,MAAOiB,GAAgBjB,GAAI,QAAQ,CAAC,CAAC;AAC1F9D,SAAAA,EAAM,UAAU,MAAM;AACpB,IAAIwjB,MACFnf,EAAemf,EAAI,cAAc,GACjCC,EAAgBD,EAAI,UAAU;AAAA,EAEjC,GAAE,CAACA,GAAKnf,GAAgBof,CAAe,CAAC,GAClBzjB,gBAAAA,EAAM,cAAc,OAAO,EAAE,OAAO4iB,GAAc7F,CAAa,GAAG,KAAK2G,GAAa,sBAAsB,UAAW,GAAEpiB,CAAQ;AACxJ,GACMqiB,KAAmB,CAAC,EAAE,UAAAriB,QAAe;AACzC,QAAMkiB,IAAMxjB,EAAM,WAAWqgB,EAAmB,GAC1CjD,IAAqBwE,GAAe,oBAAoB,GACxD6B,IAAkB7B,GAAe,iBAAiB,GAClDhe,IAAqB+d,EAAkB,oBAAoB,GAC3D+B,IAAc9D,GAAyBxC,GAAoBxZ,CAAkB,GAC7EmZ,IAAgB4E,EAAkB,eAAe;AACvD3hB,SAAAA,EAAM,UAAU,MAAM;AACpB,IAAIwjB,MACFC,EAAgBD,EAAI,UAAU,GAC9BpG,EAAmB,EAAE,WAAW,GAAG,eAAeoG,EAAI,gBAAgB,cAAc,IAAG,CAAE;AAAA,EAE5F,GAAE,CAACA,GAAKpG,GAAoBqG,CAAe,CAAC,GACtBzjB,gBAAAA,EAAM,cAAc,OAAO,EAAE,KAAK0jB,GAAa,OAAOd,GAAc7F,CAAa,GAAG,sBAAsB,SAAU,GAAEzb,CAAQ;AACvJ,GACMsiB,KAAuB,CAAC,EAAE,UAAAtiB,QAAe;AAC7C,QAAMuiB,IAAclC,EAAkB,sBAAsB,KAAK,OAC3Dhb,IAAegb,EAAkB,cAAc,GAC/CyB,IAAQ,EAAE,GAAGP,IAAkB,WAAW,GAAGlc,CAAY,QACzD+Z,IAAUiB,EAAkB,SAAS;AAC3C,SAAO3hB,EAAM,cAAc6jB,GAAa,EAAE,OAAAT,GAAO,GAAGX,GAA2BoB,GAAanD,CAAO,EAAG,GAAEpf,CAAQ;AAClH,GACMwiB,KAA2B9jB,gBAAAA,EAAM,KAAK,SAAsBU,GAAO;AACvE,QAAM4c,IAAkBqE,EAAkB,iBAAiB,GACrDD,IAAcC,EAAkB,iBAAiB,EAAE,SAAS,GAC5D/d,IAAqB+d,EAAkB,oBAAoB,GAC3DoC,IAAcngB,KAAsB0Z,IAAkB0G,KAAmBC,IACzEC,IAActgB,KAAsB0Z,IAAkBqG,KAAmBJ;AAC/E,SAAuBvjB,gBAAAA,EAAM,cAAc+jB,GAAa,EAAE,GAAGrjB,EAAO,GAAEghB,KAA+B1hB,gBAAAA,EAAM,cAAc4jB,IAAsB,MAAsB5jB,gBAAAA,EAAM,cAAcyhB,IAAS,EAAE,aAAa,GAAI,CAAE,CAAC,GAAmBzhB,gBAAAA,EAAM,cAAckkB,GAAa,MAAsBlkB,gBAAAA,EAAM,cAAc8iB,IAAU,IAAI,GAAmB9iB,gBAAAA,EAAM,cAAcyhB,IAAS,IAAI,GAAmBzhB,gBAAAA,EAAM,cAAcgjB,IAAU,IAAI,CAAC,CAAC;AACjb,CAAC,GACK;AAAA,EACJ,WAAWmB;AAAA,EACX,cAAcvC;AAAA,EACd,iBAAiBD;AAAA,EACjB,YAAYM;AACd,IAAoB,gBAAAhiB;AAAA,EAClBkhB;AAAA,EACA;AAAA,IACE,UAAU,CAAE;AAAA,IACZ,UAAU;AAAA,MACR,kBAAkB;AAAA,MAClB,SAAS;AAAA,MACT,cAAc;AAAA,MACd,aAAa;AAAA,MACb,cAAc;AAAA,MACd,UAAU;AAAA,MACV,oBAAoB;AAAA,MACpB,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,cAAc;AAAA,MACd,gBAAgB;AAAA,MAChB,yBAAyB;AAAA,MACzB,YAAY;AAAA,MACZ,mBAAmB;AAAA,MACnB,gBAAgB;AAAA,MAChB,gBAAgB;AAAA,MAChB,mBAAmB;AAAA,MACnB,iBAAiB;AAAA,MACjB,UAAU;AAAA,MACV,yBAAyB;AAAA,MACzB,iBAAiB;AAAA,MACjB,MAAM;AAAA,MACN,kBAAkB;AAAA,MAClB,kBAAkB;AAAA,MAClB,eAAe;AAAA,MACf,iBAAiB;AAAA,MACjB,oBAAoB;AAAA,MACpB,aAAa;AAAA,MACb,UAAU;AAAA,IACX;AAAA,IACD,SAAS;AAAA,MACP,eAAe;AAAA,MACf,gBAAgB;AAAA,MAChB,UAAU;AAAA,MACV,UAAU;AAAA,MACV,oBAAoB;AAAA,MACpB,UAAU;AAAA,IACX;AAAA,IACD,QAAQ;AAAA,MACN,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,cAAc;AAAA,MACd,qBAAqB;AAAA,MACrB,kBAAkB;AAAA,MAClB,wBAAwB;AAAA,MACxB,eAAe;AAAA,MACf,cAAc;AAAA,IACf;AAAA,EACF;AAAA,EACD2C;AACF,GACMG,KAA6B,gBAAAf,GAAc,EAAE,cAActB,IAAgB,iBAAiBD,GAAmB,YAAYM,GAAY,CAAE,GACzI+B,KAAmC,gBAAAV,GAAoB,EAAE,cAAc1B,IAAgB,iBAAiBD,GAAmB,YAAYM,GAAY,CAAE,GACrJmC,KAAWD,IAEXE,KAAqB;AAAA,EACzB,OAAO,CAAE;AAAA,EACT,cAAc;AAAA,EACd,WAAW;AAAA,EACX,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,WAAW;AACb,GACMC,KAAmB;AAAA,EACvB,OAAO,CAAC,EAAE,OAAO,GAAG;AAAA,EACpB,cAAc;AAAA,EACd,WAAW;AAAA,EACX,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,WAAW;AACb,GACM,EAAE,OAAAC,IAAO,MAAAC,IAAM,OAAAC,IAAO,KAAAC,IAAK,KAAAC,GAAK,IAAG;AACzC,SAASC,GAAoBpb,GAAO;AAClC,SAAO;AAAA,IACL,GAAG8a;AAAA,IACH,OAAA9a;AAAA,EACJ;AACA;AACA,SAASqb,GAAW1b,GAAYC,GAAUwF,GAAM;AAC9C,SAAO,MAAM,KAAK,EAAE,QAAQxF,IAAWD,IAAa,EAAC,CAAE,EAAE,IAAI,CAACsG,GAAGwK,MAAM;AACrE,UAAM6K,IAAWlW,MAAS,OAAO,OAAOA,EAAKqL,IAAI9Q,CAAU;AAC3D,WAAO,EAAE,OAAO8Q,IAAI9Q,GAAY,MAAM2b,EAAQ;AAAA,EAClD,CAAG;AACH;AACA,SAASC,GAAcjW,GAAMlS,GAAM;AACjC,SAAOkS,KAAQA,EAAK,WAAWlS,EAAK,UAAUkS,EAAK,QAAQlS,EAAK;AAClE;AACA,SAASooB,GAAoBlW,GAAMlS,GAAM;AACvC,SAAOkS,KAAQA,EAAK,UAAUlS,EAAK,SAASkS,EAAK,WAAWlS,EAAK;AACnE;AACA,MAAMqoB,KAA6B,gBAAArmB;AAAA,EACjC,CAAC;AAAA,IACC,EAAE,UAAAgY,GAAU,cAAAM,GAAc,cAAAF,EAAc;AAAA,IACxC,EAAE,WAAA7S,GAAW,gBAAAE,GAAgB,UAAA2C,GAAU,UAAAD,GAAU,2BAAA1B,GAA2B,sBAAAmB,GAAsB,cAAAM,GAAc,cAAAH,EAAc;AAAA,IAC9HwS;AAAA,IACA6F;AAAA,IACA,EAAE,YAAA/K,GAAY,UAAAC,EAAU;AAAA,IACxB,EAAE,oBAAAkJ,GAAoB,iBAAAE,GAAiB,oBAAA1Z,GAAoB,4BAAAuZ,GAA4B,gBAAAE,EAAgB;AAAA,IACvG3Z;AAAA,EACJ,MAAQ;AACJ,UAAM2K,IAAa1S,EAAe,CAAC,GAC7Byd,IAAmBzd,EAAe,CAAC,GACnCupB,IAAYvpB,EAAe0oB,EAAkB,GAC7Cc,IAAqBxpB,EAAe,EAAE,QAAQ,GAAG,OAAO,EAAC,CAAE,GAC3DypB,IAAiBzpB,EAAe,EAAE,QAAQ,GAAG,OAAO,EAAC,CAAE,GACvDqV,IAAgBzV,KAChB6I,IAAe7I,KACfkL,IAAY9K,EAAe,CAAC,GAC5BiT,IAAOjT,EAAe,IAAI,GAC1BgI,IAAMhI,EAAe,EAAE,KAAK,GAAG,QAAQ,EAAC,CAAE,GAC1C0pB,IAAe9pB,KACf+iB,IAAmB/iB,KACnB+pB,KAAyB3pB,EAAe,EAAK,GAC7C8Y,KAA0B9Y,EAAe,CAAC,GAC1C6Y,KAAwB7Y,EAAe,EAAI,GAC3CmZ,KAAkBnZ,EAAe,EAAK;AAC5C,IAAAf;AAAA,MACE2B;AAAA,QACE2X;AAAA,QACApW,EAAe2W,EAAuB;AAAA,QACtCxX,EAAO,CAAC,CAACwS,GAAGxJ,CAAQ,MAAM,CAAC,CAACA,CAAQ;AAAA,MACrC;AAAA,MACD,MAAM;AACJ,QAAAlL,EAAQyZ,IAAuB,EAAK,GACpCzZ,EAAQqe,GAAkB,CAAC;AAAA,MAC5B;AAAA,IACP,GACIxe;AAAA,MACE2B;AAAA,QACEmC,GAAcwV,GAAUM,IAAuB4Q,GAAgBD,GAAoB1Q,IAAyBK,EAAe;AAAA,QAC3H7X,EAAO,CAAC,CAAC0X,GAAWC,GAAwB2Q,GAAiBC,IAAuB,EAAAC,EAAgB,MAC3F9Q,KAAa,CAACC,KAA0B2Q,EAAgB,WAAW,KAAKC,GAAoB,WAAW,KAAK,CAACC,EACrH;AAAA,MACF;AAAA,MACD,CAAC,CAAA,EAAA,EAAA,EAAA,EAAS1Q,CAAwB,MAAM;AACtC,QAAAha,EAAQ+Z,IAAiB,EAAI,GAC7BV,GAAW,GAAG,MAAM;AAClB,UAAArZ,EAAQiW,GAAe+D,CAAwB;AAAA,QACzD,CAAS,GACD1Z,GAAWkB,EAAK4H,CAAS,GAAG,MAAM;AAChC,UAAApJ,EAAQic,GAAc,CAAC,GAAG,CAAC,CAAC,GAC5Bjc,EAAQyZ,IAAuB,EAAI;AAAA,QAC7C,CAAS;AAAA,MACF;AAAA,IACP,GACIpZ;AAAA,MACEmB;AAAA,QACE+hB;AAAA,QACArhB,EAAO,CAAC1C,MAA8BA,KAAU,QAAQA,EAAM,YAAY,CAAC;AAAA,QAC3E6C,GAAM,CAAC;AAAA,MACR;AAAA,MACDgc;AAAA,IACN,GACIxe;AAAA,MACE2B;AAAA,QACE2X;AAAA,QACApW,EAAewgB,CAAgB;AAAA,QAC/BrhB,EAAO,CAAC,CAAA,EAAG4hB,CAAQ,MAA6BA,KAAa,IAAI;AAAA,MAClE;AAAA,MACD,CAAC,CAAA,EAAGA,CAAQ,MAAM;AAChB,QAAKA,MAGL9jB,EAAQoqB,GAAoBtG,EAAS,QAAQ,GAAG9jB,EAAQqqB,GAAgBvG,KAAY,OAAO,SAASA,EAAS,IAAI,GACjH9jB,EAAQ4I,GAAKkb,EAAS,GAAG,GACrBA,EAAS,YAAY,MACvB9jB,EAAQuqB,IAAwB,EAAI,GACpCjqB,GAAWkB,EAAK4H,GAAW5G,GAAK,CAAC,CAAC,GAAG,CAACmoB,MAAW;AAC/C,UAAA3qB,EAAQuqB,IAAwB,EAAK;AAAA,QACjD,CAAW,GACDvqB,EAAQgM,GAAU,EAAE,KAAK8X,EAAS,UAAW,CAAA;AAAA,MAEhD;AAAA,IACP,GACIzjB;AAAA,MACEmB;AAAA,QACE4oB;AAAA,QACAhoB,EAAI,CAAC,EAAE,QAAAwb,EAAQ,MAAKA,CAAM;AAAA,MAC3B;AAAA,MACDtU;AAAA,IACN,GACIjJ;AAAA,MACEmB;AAAA,QACEmC;AAAA,UACED,EAAI0mB,GAAoBH,EAAmB;AAAA,UAC3CvmB,EAAI2mB,GAAgBJ,EAAmB;AAAA,UACvCvmB,EAAIkF,GAAK,CAACmL,GAAMlS,MAASkS,KAAQA,EAAK,WAAWlS,EAAK,UAAUkS,EAAK,QAAQlS,EAAK,GAAG;AAAA,UACrF6B,EAAI0F,CAAS;AAAA,QACd;AAAA,QACDhH,EAAI,CAAC,CAACwoB,GAAU7b,GAAMqF,GAAMjI,EAAU,OAAO;AAAA,UAC3C,UAAAye;AAAA,UACA,MAAA7b;AAAA,UACA,KAAKqF;AAAA,UACL,WAAWjI;AAAA,QACrB,EAAU;AAAA,MACH;AAAA,MACDme;AAAA,IACN,GACIjqB;AAAA,MACEmB;AAAA,QACEmC;AAAA,UACED,EAAI4P,CAAU;AAAA,UACd6I;AAAA,UACAzY,EAAIkF,GAAKohB,EAAa;AAAA,UACtBtmB,EAAI2mB,GAAgBJ,EAAmB;AAAA,UACvCvmB,EAAI0mB,GAAoBH,EAAmB;AAAA,UAC3CvmB,EAAImQ,CAAI;AAAA,UACRnQ,EAAI2a,CAAgB;AAAA,UACpB3a,EAAI6mB,EAAsB;AAAA,UAC1B7mB,EAAI+V,EAAqB;AAAA,UACzB/V,EAAIgW,EAAuB;AAAA,QAC5B;AAAA,QACDxX,EAAO,CAAC,CAAe,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA2oB,CAAuB,MACrC,CAACA,CACT;AAAA,QACDzoB;AAAA,UACE,CAAC;AAAA,YACCkS;AAAA,YACA,CAACtD,GAAaC,CAAS;AAAA,YACvBmD;AAAA,YACArF;AAAA,YACA6b;AAAA,YACAlM;AAAA,YACAoM;AAAA,YACZ;AAAA,YACYjR;AAAA,YACAG;AAAA,UACZ,MAAgB;AACJ,kBAAM,EAAE,KAAK+Q,IAAQ,QAAQC,GAAS,IAAK5W,IACrC,EAAE,QAAQ6W,IAAY,OAAOC,GAAS,IAAKnc,IAC3C,EAAE,OAAOoc,GAAe,IAAGP;AACjC,gBAAIE,OAAsB,MAAMxW,MAAgB,KAAK6W,OAAkB;AACrE,qBAAO7B;AAET,gBAAI4B,OAAc,GAAG;AACnB,oBAAMxZ,KAAc6H,GAAiCS,IAA0B1F,CAAW,GACpF8W,KAAY1Z,OAAgB,IAAI,KAAK,IAAIoZ,KAAoB,GAAG,CAAC,IAAIpZ;AAC3E,qBAAOmY,GAAoBC,GAAWpY,IAAa0Z,IAAW1M,EAAK,CAAC;AAAA,YACrE;AACD,kBAAM2M,KAASC,GAAYH,IAAeD,IAAWF,EAAS;AAC9D,gBAAI5c,IACAC;AACJ,YAAKwL,KAGM7I,MAAgB,KAAKC,MAAc,KAAK6Z,KAAoB,KACrE1c,KAAa,GACbC,KAAWyc,KAAoB,MAE/B1c,KAAaid,KAAS3B,IAAO1Y,IAAc+Z,OAAWE,KAAaF,GAAO,GAC1E1c,KAAWgd,KAAS5B,IAAMxY,IAAY8Z,OAAWE,KAAaF,GAAO,IAAI,GACzE1c,KAAWsb,GAAIrV,IAAc,GAAGsV,GAAIvb,IAAUgd,KAAS,CAAC,CAAC,GACzDjd,KAAaub,GAAItb,IAAUub,GAAI,GAAGxb,EAAU,CAAC,MAT7CA,KAAa,GACbC,KAAW;AAUb,kBAAMI,KAAQqb,GAAW1b,IAAYC,IAAUqQ,EAAK,GAC9C,EAAE,KAAAnM,IAAK,QAAAiL,OAAW+N,GAAWX,IAAUxW,IAAMrF,IAAMN,EAAK,GACxD+c,KAAW/B,GAAKnV,IAAc+W,EAAM,GAEpC1N,KADc6N,KAAWP,MAAcO,KAAW,KAAKT,KAC1BvN;AACnC,mBAAO,EAAE,OAAA/O,IAAO,WAAW8D,IAAK,cAAAoL,IAAc,KAAApL,IAAK,QAAAiL,IAAQ,YAAAyN,IAAY,WAAAC;UACxE;AAAA,QACF;AAAA,MACF;AAAA,MACDf;AAAA,IACN,GACI9pB;AAAA,MACEmB;AAAA,QACEqS;AAAA,QACA3R,EAAO,CAACwc,MAAUA,MAAU,IAAI;AAAA,QAChCtc,EAAI,CAACsc,MAAUA,EAAM,MAAM;AAAA,MAC5B;AAAA,MACDpL;AAAA,IACN,GACIjT;AAAA,MACEmB;AAAA,QACEmC,GAAcymB,GAAoBC,GAAgBF,GAAWvhB,CAAG;AAAA,QAChE1G,EAAO,CAAC,CAACuoB,GAAqBD,GAAiB,EAAE,OAAA/b,EAAO,CAAA,MAC/CA,EAAM,SAAS,KAAK+b,EAAgB,WAAW,KAAKC,EAAoB,WAAW,CAC3F;AAAA,QACDroB,EAAI,CAAC,CAACqoB,GAAqBD,GAAiB,EAAE,OAAA/b,EAAK,GAAI2F,EAAI,MAAM;AAC/D,gBAAM,EAAE,KAAA7B,IAAK,QAAAiL,OAAW+N,GAAWd,GAAqBrW,IAAMoW,GAAiB/b,CAAK;AACpF,iBAAO,CAAC8D,IAAKiL,EAAM;AAAA,QAC7B,CAAS;AAAA,QACD1b,EAAqByZ,EAAe;AAAA,MACrC;AAAA,MACDU;AAAA,IACN;AACI,UAAMwP,KAAc7qB,EAAe,EAAK;AACxC,IAAAP;AAAA,MACEmB;AAAA,QACE4H;AAAA,QACArG,EAAe0oB,EAAW;AAAA,QAC1BrpB,EAAI,CAAC,CAAC+J,GAAYuf,CAAY,MACrBA,KAAgBvf,MAAe,CACvC;AAAA,MACF;AAAA,MACDsf;AAAA,IACN;AACI,UAAMpM,KAAane;AAAA,MACjBM;AAAA,QACEkC,EAAIymB,CAAS;AAAA,QACbjoB,EAAO,CAAC,EAAE,OAAAuM,EAAK,MAAOA,EAAM,SAAS,CAAC;AAAA,QACtC1L,EAAeuQ,GAAYmY,EAAW;AAAA,QACtCvpB,EAAO,CAAC,CAAC,EAAE,OAAAuM,EAAO,GAAE6F,GAAaoX,CAAY,MAAMA,KAAgBjd,EAAMA,EAAM,SAAS,CAAC,EAAE,UAAU6F,IAAc,CAAC;AAAA,QACpHlS,EAAI,CAAC,CAAG,EAAAkS,CAAW,MAAMA,IAAc,CAAC;AAAA,QACxCxS,EAAsB;AAAA,MACvB;AAAA,IACP,GACUyd,KAAere;AAAA,MACnBM;AAAA,QACEkC,EAAIymB,CAAS;AAAA,QACbjoB,EAAO,CAAC,EAAE,OAAAuM,QACDA,EAAM,SAAS,KAAKA,EAAM,CAAC,EAAE,UAAU,CAC/C;AAAA;AAAA,QAEDpM,GAAM,CAAC;AAAA,QACPP,EAAsB;AAAA,MACvB;AAAA,IACP,GACU0d,KAAete;AAAA,MACnBM;AAAA,QACEkC,EAAIymB,CAAS;AAAA,QACbpnB,EAAewnB,EAAsB;AAAA,QACrCroB,EAAO,CAAC,CAAC,EAAE,OAAAuM,KAASoc,CAAuB,MAAMpc,EAAM,SAAS,KAAK,CAACoc,CAAuB;AAAA,QAC7FzoB,EAAI,CAAC,CAAC,EAAE,OAAAqM,EAAK,CAAE,OACN;AAAA,UACL,YAAYA,EAAM,CAAC,EAAE;AAAA,UACrB,UAAUA,EAAMA,EAAM,SAAS,CAAC,EAAE;AAAA,QAC9C,EACS;AAAA,QACD3M,EAAqB0Z,EAAe;AAAA,QACpC9Y,GAAa,CAAC;AAAA,MACf;AAAA,IACP;AACI,IAAArC,EAAQmf,IAAcyE,EAAW,sBAAsB,GACvD5jB;AAAA,MACEmB;AAAA,QACEyU;AAAA,QACAlT,EAAeqnB,GAAoBC,GAAgB/W,GAAY1K,CAAG;AAAA,QAClExG,EAAI,CAAC,CAAC8I,GAAUuf,GAAqBD,GAAiBlW,IAAaF,EAAI,MAAM;AAC3E,gBAAMyC,KAAiBd,GAAuB7K,CAAQ,GAChD,EAAE,OAAA4L,IAAO,UAAAC,IAAU,QAAArH,GAAM,IAAKmH;AACpC,cAAIxT,KAAQwT,GAAe;AAC3B,UAAIxT,OAAU,WACZA,KAAQiR,KAAc,IAExBjR,KAAQumB,GAAI,GAAGvmB,IAAOsmB,GAAIrV,KAAc,GAAGjR,EAAK,CAAC;AACjD,cAAIkP,KAAMoZ,GAAQlB,GAAqBrW,IAAMoW,GAAiBnnB,EAAK;AACnE,iBAAIyT,OAAU,QACZvE,KAAMiX,GAAMjX,KAAMkY,EAAoB,SAASD,EAAgB,MAAM,IAC5D1T,OAAU,aACnBvE,KAAMiX,GAAMjX,KAAMkY,EAAoB,SAAS,IAAID,EAAgB,SAAS,CAAC,IAE3E9a,OACF6C,MAAO7C,KAEF,EAAE,KAAA6C,IAAK,UAAAwE;QACxB,CAAS;AAAA,MACF;AAAA,MACD/K;AAAA,IACN;AACI,UAAMwU,KAAkBpf;AAAA,MACtBI;AAAA,QACE2oB;AAAA,QACA/nB,EAAI,CAACwpB,MACIA,EAAW,eAAeA,EAAW,MAC7C;AAAA,MACF;AAAA,MACD;AAAA,IACN;AACI,WAAAvrB;AAAA,MACEmB;AAAA,QACE6gB;AAAA,QACAjgB,EAAI,CAAC0iB,OAAkB,EAAE,OAAOA,EAAa,cAAc,QAAQA,EAAa,cAAa,EAAG;AAAA,MACjG;AAAA,MACDsF;AAAA,IACN,GACW;AAAA;AAAA,MAEL,MAAAvW;AAAA,MACA,YAAAP;AAAA,MACA,oBAAA8W;AAAA,MACA,gBAAAC;AAAA,MACA,WAAAjhB;AAAA,MACA,cAAAC;AAAA,MACA,UAAAwS;AAAA,MACA,UAAA5P;AAAA,MACA,UAAAD;AAAA,MACA,eAAAiK;AAAA,MACA,2BAAA3L;AAAA,MACA,oBAAA+X;AAAA,MACA,gBAAAC;AAAA,MACA,iBAAAC;AAAA,MACA,oBAAA1Z;AAAA,MACA,4BAAAuZ;AAAA,MACA,WAAA1W;AAAA,MACA,sBAAAD;AAAA,MACA,cAAAM;AAAA,MACA,cAAAH;AAAA,MACA,kBAAAyS;AAAA,MACA,KAAAzV;AAAA,MACA,kBAAA2a;AAAA,MACA,GAAGU;AAAA,MACH,yBAAAvK;AAAA;AAAA,MAEA,WAAAyQ;AAAA,MACA,iBAAA3J;AAAA,MACA,GAAGpC;AAAA,MACH,cAAAmB;AAAA,MACA,YAAAF;AAAA,MACA,cAAAG;AAAA,MACA,cAAA8K;AAAA,MACA,YAAApR;AAAA,MACA,wBAAAqR;AAAA,MACA,GAAG5hB;AAAA,IACT;AAAA,EACG;AAAA,EACDvJ,EAAI4c,IAAiBxQ,IAAakM,IAAkBiI,IAAkB1G,IAAkBkJ,IAAsB3a,EAAY;AAC5H;AACA,SAAS+jB,GAAWX,GAAUhiB,GAAKmG,GAAMN,GAAO;AAC9C,QAAM,EAAE,QAAQwc,EAAY,IAAGlc;AAC/B,MAAIkc,MAAe,UAAUxc,EAAM,WAAW;AAC5C,WAAO,EAAE,KAAK,GAAG,QAAQ,EAAC;AAE5B,QAAM8D,IAAMoZ,GAAQf,GAAUhiB,GAAKmG,GAAMN,EAAM,CAAC,EAAE,KAAK,GACjD+O,IAASmO,GAAQf,GAAUhiB,GAAKmG,GAAMN,EAAMA,EAAM,SAAS,CAAC,EAAE,KAAK,IAAIwc;AAC7E,SAAO,EAAE,KAAA1Y,GAAK,QAAAiL;AAChB;AACA,SAASmO,GAAQf,GAAUhiB,GAAKmG,GAAM1L,GAAO;AAC3C,QAAMgoB,IAASC,GAAYV,EAAS,OAAO7b,EAAK,OAAOnG,EAAI,MAAM,GAC3D4iB,IAAW9B,GAAMrmB,IAAQgoB,CAAM,GAC/B9Y,IAAMiZ,IAAWzc,EAAK,SAAS6a,GAAI,GAAG4B,IAAW,CAAC,IAAI5iB,EAAI;AAChE,SAAO2J,IAAM,IAAIA,IAAM3J,EAAI,MAAM2J;AACnC;AACA,SAAS+Y,GAAYH,GAAeD,GAAWtiB,GAAK;AAClD,SAAOghB,GAAI,GAAGF,IAAOyB,IAAgBviB,MAAQ8gB,GAAMwB,CAAS,IAAItiB,EAAI,CAAC;AACvE;AACA,MAAMijB,KAA2C,gBAAAhoB,EAAO,MAAM;AAC5D,QAAM6hB,IAAc9kB,EAAe,CAACyC,MAAU,QAAQA,CAAK,EAAE,GACvDwiB,IAAajlB,EAAe,CAAA,CAAE,GAC9B+kB,IAAU/kB,EAAe,IAAI,GAC7BkrB,IAAgBlrB,EAAe,oBAAoB,GACnDmrB,IAAgBnrB,EAAe,oBAAoB,GACnDklB,IAAiBllB,EAAe4kB,EAAQ,GACxCO,IAAkBnlB,EAAe,KAAK,GACtC6J,IAAc7J,EAAehB,EAAI,GACjComB,IAAe,CAACC,GAAUC,IAAe,SACtC9kB;AAAA,IACLI;AAAA,MACEqkB;AAAA,MACAzjB,EAAI,CAAC+jB,MAAgBA,EAAYF,CAAQ,CAAC;AAAA,MAC1CnkB,EAAsB;AAAA,IACvB;AAAA,IACDokB;AAAA,EACN;AAEE,SAAO;AAAA,IACL,SAAAP;AAAA,IACA,aAAAD;AAAA,IACA,YAAAG;AAAA,IACA,gBAAAC;AAAA,IACA,eAAAgG;AAAA,IACA,eAAAC;AAAA,IACA,iBAAAhG;AAAA,IACA,aAAAtb;AAAA,IACA,iBAAiBub,EAAa,QAAQ;AAAA,IACtC,iBAAiBA,EAAa,QAAQ;AAAA,IACtC,eAAeA,EAAa,QAAQ,KAAK;AAAA,IACzC,eAAeA,EAAa,QAAQ,KAAK;AAAA,IACzC,mBAAmBA,EAAa,YAAY,KAAK;AAAA,IACjD,uBAAuBA,EAAa,yBAAyB,KAAK;AAAA,EACtE;AACA,CAAC,GACKgG,KAAmC,gBAAAnoB,EAAO,CAAC,CAACooB,GAAaC,CAAyB,OAC/E,EAAE,GAAGD,GAAa,GAAGC,MAC3B9sB,EAAI8qB,IAAY2B,EAAwB,CAAC,GACtCM,KAA4BlnB,gBAAAA,EAAM,KAAK,WAAsB;AACjE,QAAMklB,IAAYiC,EAAkB,WAAW,GACzCL,IAAgBK,EAAkB,eAAe,GACjDN,IAAgBM,EAAkB,eAAe,GACjD1G,IAAc0G,EAAkB,aAAa,GAC7CtG,IAAiBsG,EAAkB,gBAAgB,GACnDxM,IAAYwM,EAAkB,WAAW,GACzCC,IAAuBC,GAAe,cAAc,GACpDhF,IAAgB8E,EAAkB,eAAe,GACjD/E,IAAgB+E,EAAkB,eAAe,GACjDhF,IAAwBgF,EAAkB,uBAAuB,GACjEzG,IAAUyG,EAAkB,SAAS,GACrC/B,IAAiBiC,GAAe,gBAAgB,GAChDC,IAAUD,GAAe,KAAK,GAC9B3jB,IAAMyjB,EAAkB,KAAK,GAC7B7B,IAAyB6B,EAAkB,wBAAwB,GACnEI,IAAUjkB,GAAQ,CAACQ,MAAO;AAC9B,UAAMM,IAAeN,EAAG,cAAc,cAAc;AACpD,IAAAsjB,EAAqBhjB,CAAY;AACjC,UAAMojB,IAAY1jB,EAAG;AACrB,QAAI0jB,GAAW;AACb,YAAM,EAAE,OAAAC,GAAO,QAAA9O,EAAQ,IAAG6O,EAAU,sBAAqB;AACzD,MAAApC,EAAe,EAAE,OAAAqC,GAAO,QAAA9O,EAAM,CAAE;AAAA,IACjC;AACD,IAAA2O,EAAQ;AAAA,MACN,KAAKI,GAAgB,WAAW,iBAAiB5jB,CAAE,EAAE,QAAQJ,CAAG;AAAA,MAChE,QAAQgkB,GAAgB,cAAc,iBAAiB5jB,CAAE,EAAE,WAAWJ,CAAG;AAAA,IAC/E,CAAK;AAAA,EACL,CAAG;AACD,SAAI4hB,IACK,OAEFtlB,EAAM;AAAA,IACXoiB;AAAA,IACA;AAAA,MACE,KAAKmF;AAAA,MACL,WAAWT;AAAA,MACX,GAAGrE,GAA2BL,GAAe1B,CAAO;AAAA,MACpD,OAAO,EAAE,YAAYwE,EAAU,WAAW,eAAeA,EAAU,aAAc;AAAA,MACjF,eAAe;AAAA,IAChB;AAAA,IACDA,EAAU,MAAM,IAAI,CAACpb,MAAS;AAC5B,YAAMrI,IAAMof,EAAe/W,EAAK,OAAOA,EAAK,MAAM4W,CAAO;AACzD,aAAO/F,IAAY3a,EAAM,cAAcmiB,GAAuB;AAAA,QAC5D,KAAA1gB;AAAA,QACA,GAAGghB,GAA2BN,GAAuBzB,CAAO;AAAA,QAC5D,OAAO5W,EAAK;AAAA,QACZ,QAAQob,EAAU;AAAA,QAClB,OAAOA,EAAU;AAAA,MACzB,CAAO,IAAIllB,EAAM;AAAA,QACTqiB;AAAA,QACA,EAAE,GAAGI,GAA2BJ,GAAe3B,CAAO,GAAG,WAAWmG,GAAe,cAAc/c,EAAK,OAAO,KAAArI,EAAK;AAAA,QAClHgf,EAAY3W,EAAK,OAAOA,EAAK,MAAM4W,CAAO;AAAA,MAClD;AAAA,IACA,CAAK;AAAA,EACL;AACA,CAAC,GACKiH,KAAS3nB,EAAM,KAAK,WAA2B;AACnD,QAAM+iB,IAAUoE,EAAkB,iBAAiB,GAC7CxgB,IAAe0gB,GAAe,cAAc,GAC5CvG,IAAkBqG,EAAkB,iBAAiB,GACrD9lB,IAAMiC,GAAQ,CAACQ,MAAO6C,EAAa5B,GAAgBjB,GAAI,QAAQ,CAAC,CAAC,GACjE4c,IAAUyG,EAAkB,SAAS;AAC3C,SAAOpE,IAAU/iB,EAAM,cAAc8gB,GAAiB,EAAE,KAAAzf,EAAG,GAAIrB,EAAM,cAAc+iB,GAASN,GAA2BM,GAASrC,CAAO,CAAC,CAAC,IAAI;AAC/I,CAAC,GACKkH,KAAS5nB,EAAM,KAAK,WAA8B;AACtD,QAAMijB,IAAUkE,EAAkB,iBAAiB,GAC7CrgB,IAAeugB,GAAe,cAAc,GAC5CvG,IAAkBqG,EAAkB,iBAAiB,GACrD9lB,IAAMiC,GAAQ,CAACQ,MAAOgD,EAAa/B,GAAgBjB,GAAI,QAAQ,CAAC,CAAC,GACjE4c,IAAUyG,EAAkB,SAAS;AAC3C,SAAOlE,IAAUjjB,EAAM,cAAc8gB,GAAiB,EAAE,KAAAzf,EAAG,GAAIrB,EAAM,cAAcijB,GAASR,GAA2BQ,GAASvC,CAAO,CAAC,CAAC,IAAI;AAC/I,CAAC,GACKmH,KAAa,CAAC,EAAE,UAAAvmB,QAAe;AACnC,QAAMkiB,IAAMxjB,EAAM,WAAWsgB,EAAuB,GAC9C8E,IAAiBiC,GAAe,gBAAgB,GAChDlC,IAAqBkC,GAAe,oBAAoB,GACxD3D,IAAcpgB,GAAQ,CAACQ,MAAO;AAClC,IAAAqhB,EAAmBrhB,EAAG,sBAAqB,CAAE;AAAA,EACjD,CAAG;AACD9D,SAAAA,EAAM,UAAU,MAAM;AACpB,IAAIwjB,MACF2B,EAAmB,EAAE,QAAQ3B,EAAI,gBAAgB,OAAOA,EAAI,cAAa,CAAE,GAC3E4B,EAAe,EAAE,QAAQ5B,EAAI,YAAY,OAAOA,EAAI,UAAS,CAAE;AAAA,EAElE,GAAE,CAACA,GAAK2B,GAAoBC,CAAc,CAAC,GACrBplB,gBAAAA,EAAM,cAAc,OAAO,EAAE,OAAO4iB,GAAc,EAAK,GAAG,KAAKc,EAAa,GAAEpiB,CAAQ;AAC/G,GACMwmB,KAAmB,CAAC,EAAE,UAAAxmB,QAAe;AACzC,QAAMkiB,IAAMxjB,EAAM,WAAWsgB,EAAuB,GAC9ClD,IAAqBiK,GAAe,oBAAoB,GACxDjC,IAAiBiC,GAAe,gBAAgB,GAChDzjB,IAAqBujB,EAAkB,oBAAoB,GAC3DzD,IAAc9D,GAAyBxC,GAAoBxZ,CAAkB;AACnF5D,SAAAA,EAAM,UAAU,MAAM;AACpB,IAAIwjB,MACF4B,EAAe,EAAE,QAAQ5B,EAAI,YAAY,OAAOA,EAAI,UAAS,CAAE,GAC/DpG,EAAmB,EAAE,WAAW,GAAG,eAAeoG,EAAI,gBAAgB,cAAcA,EAAI,cAAa,CAAE;AAAA,EAE1G,GAAE,CAACA,GAAKpG,GAAoBgI,CAAc,CAAC,GACrBplB,gBAAAA,EAAM,cAAc,OAAO,EAAE,KAAK0jB,GAAa,OAAOd,GAAc,EAAK,EAAG,GAAEthB,CAAQ;AAC/G,GACMymB,KAA2B/nB,gBAAAA,EAAM,KAAK,SAAmB,EAAE,GAAGU,KAAS;AAC3E,QAAM4c,IAAkB6J,EAAkB,iBAAiB,GACrDvjB,IAAqBujB,EAAkB,oBAAoB,GAC3DpD,IAAcngB,KAAsB0Z,IAAkB0K,KAAmBC,IACzE/D,IAActgB,KAAsB0Z,IAAkBwK,KAAmBD;AAC/E,SAAuB7nB,gBAAAA,EAAM,cAAc+jB,GAAa,EAAE,GAAGrjB,EAAK,GAAoBV,gBAAAA,EAAM,cAAckkB,GAAa,MAAsBlkB,gBAAAA,EAAM,cAAc2nB,IAAQ,IAAI,GAAmB3nB,gBAAAA,EAAM,cAAcknB,IAAW,IAAI,GAAmBlnB,gBAAAA,EAAM,cAAc4nB,IAAQ,IAAI,CAAC,CAAC;AAC1R,CAAC,GACK;AAAA,EACJ,WAAWM;AAAA,EACX,cAAcb;AAAA,EACd,iBAAiBF;AAAA,EACjB,YAAYgB;AACd,IAAoB,gBAAAloB;AAAA,EAClB8mB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,gBAAgB;AAAA,MAChB,MAAM;AAAA,MACN,kBAAkB;AAAA,MAClB,yBAAyB;AAAA,MACzB,iBAAiB;AAAA,MACjB,eAAe;AAAA,MACf,eAAe;AAAA,MACf,iBAAiB;AAAA,MACjB,oBAAoB;AAAA,MACpB,aAAa;AAAA,MACb,UAAU;AAAA,MACV,kBAAkB;AAAA,MAClB,yBAAyB;AAAA,IAC1B;AAAA,IACD,SAAS;AAAA,MACP,UAAU;AAAA,MACV,UAAU;AAAA,MACV,eAAe;AAAA,IAChB;AAAA,IACD,QAAQ;AAAA,MACN,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,cAAc;AAAA,MACd,qBAAqB;AAAA,MACrB,kBAAkB;AAAA,MAClB,cAAc;AAAA,IACf;AAAA,EACF;AAAA,EACDgB;AACF,GACME,KAA6B,gBAAA/E,GAAc,EAAE,cAAcmE,IAAgB,iBAAiBF,GAAmB,YAAYgB,GAAY,CAAE,GACzIH,KAAmC,gBAAA1E,GAAoB,EAAE,cAAc+D,IAAgB,iBAAiBF,GAAmB,YAAYgB,GAAY,CAAE;AAC3J,SAAST,GAAgB5iB,GAAUvK,GAAOmJ,GAAK;AAI7C,SAHInJ,MAAU,YAAY,EAAEA,KAAS,QAAgBA,EAAM,SAAS,IAAI,MACtEmJ,EAAI,GAAGoB,CAAQ,8CAA8CvK,GAAO4H,GAAS,IAAI,GAE/E5H,MAAU,WACL,IAEF,SAASA,KAAwB,KAAK,EAAE;AACjD;AAEA,MAAM6tB,KAA4C,gBAAAxpB,EAAO,MAAM;AAC7D,QAAM6hB,IAAc9kB,EAAe,CAACyC,MAA0B4B,gBAAAA,EAAM,cAAc,MAAM,MAAM,UAAU5B,CAAK,CAAC,GACxGsiB,IAAU/kB,EAAe,IAAI,GAC7B0sB,IAAqB1sB,EAAe,IAAI,GACxC2sB,IAAqB3sB,EAAe,IAAI,GACxCilB,IAAajlB,EAAe,CAAA,CAAE,GAC9BklB,IAAiBllB,EAAe4kB,EAAQ,GACxC/a,IAAc7J,EAAehB,EAAI,GACjComB,IAAe,CAACC,GAAUC,IAAe,SACtC9kB;AAAA,IACLI;AAAA,MACEqkB;AAAA,MACAzjB,EAAI,CAAC+jB,MAAgBA,EAAYF,CAAQ,CAAC;AAAA,MAC1CnkB,EAAsB;AAAA,IACvB;AAAA,IACDokB;AAAA,EACN;AAEE,SAAO;AAAA,IACL,SAAAP;AAAA,IACA,aAAAD;AAAA,IACA,oBAAA4H;AAAA,IACA,oBAAAC;AAAA,IACA,YAAA1H;AAAA,IACA,gBAAAC;AAAA,IACA,aAAArb;AAAA,IACA,gBAAgBub,EAAa,SAAS,OAAO;AAAA,IAC7C,oBAAoBA,EAAa,aAAa,OAAO;AAAA,IACrD,sBAAsBA,EAAa,aAAa,OAAO;AAAA,IACvD,oBAAoBA,EAAa,aAAa,OAAO;AAAA,IACrD,mBAAmBA,EAAa,YAAY,IAAI;AAAA,IAChD,mBAAmBA,EAAa,YAAY,KAAK;AAAA,IACjD,kBAAkBA,EAAa,kBAAkB;AAAA,IACjD,uBAAuBA,EAAa,uBAAuB;AAAA,IAC3D,WAAWA,EAAa,WAAW;AAAA,EACvC;AACA,CAAC,GACKwH,KAAiC,gBAAA3pB,EAAO,CAAC,CAACwiB,GAAaC,CAAW,OAC/D,EAAE,GAAGD,GAAa,GAAGC,MAC3BlnB,EAAIilB,IAAYgJ,EAAyB,CAAC,GACvCI,KAA+B,CAAC,EAAE,QAAA7P,EAAM,MAAuB3Y,gBAAAA,EAAM,cAAc,MAAM,MAAsBA,gBAAAA,EAAM,cAAc,MAAM,EAAE,OAAO,EAAE,QAAA2Y,EAAM,EAAI,CAAA,CAAC,GAC/J8P,KAAmB,CAAC,EAAE,QAAA9P,QAA6B3Y,gBAAAA,EAAM,cAAc,MAAM,MAAsBA,gBAAAA,EAAM,cAAc,MAAM,EAAE,OAAO,EAAE,QAAA2Y,GAAQ,SAAS,GAAG,QAAQ,IAAK,CAAA,CAAC,GAC1K+P,KAAa,EAAE,gBAAgB,UAC/BC,KAAwB3oB,gBAAAA,EAAM,KAAK,WAA0B;AACjE,QAAMsZ,IAAYsP,EAAgB,WAAW,GACvCxa,IAAaya,GAAa,YAAY,GACtCvL,IAAkBsL,EAAgB,iBAAiB,GACnDhlB,IAAqBglB,EAAgB,oBAAoB,GACzD/G,IAAqCgH,GAAa,4BAA4B,GAC9E/G,IAAgC+G,GAAa,sBAAsB,GACnEplB,IAA+BG,KAAsB0Z,IAAkBuE,IAAqCC,GAC5GrB,IAAcmI,EAAgB,aAAa,GAC3CtZ,IAAiBsZ,EAAgB,gBAAgB,GACjDplB,IAAWolB,EAAgB,UAAU,GACrCllB,IAAMklB,EAAgB,KAAK,GAC3B,EAAE,aAAA5lB,GAAa,KAAA3B,EAAG,IAAKkC;AAAA,IAC3B6K;AAAA,IACA5K;AAAA,IACA8L;AAAA,IACA7L;AAAA,IACAC;AAAA,IACA;AAAA,IACAE;AAAA,EACJ,GACQ,CAAC6C,GAAWub,CAAY,IAAIhiB,EAAM,SAAS,CAAC;AAClD,EAAA8oB,GAAW,aAAa,CAACvuB,MAAU;AACjC,IAAIkM,MAAclM,MAChB8G,EAAI,QAAQ,MAAM,YAAY,GAAG9G,CAAK,MACtCynB,EAAaznB,CAAK;AAAA,EAExB,CAAG;AACD,QAAM2nB,IAAmB0G,EAAgB,kBAAkB,GACrDzG,IAAwByG,EAAgB,uBAAuB,KAAKJ,IACpEO,IAAYH,EAAgB,WAAW,KAAKH,IAC5CO,IAAqBJ,EAAgB,oBAAoB,GACzDK,IAAoBL,EAAgB,mBAAmB,GACvD/H,IAAiB+H,EAAgB,gBAAgB,GACjDjO,IAAYiO,EAAgB,WAAW,GACvC5L,IAAqB4L,EAAgB,oBAAoB,GACzDna,IAAiBma,EAAgB,gBAAgB,GACjDta,IAAqBsa,EAAgB,oBAAoB,GACzDlI,IAAUkI,EAAgB,SAAS;AACzC,MAAIta,MAAuB,KAAK4T;AAC9B,WAAOliB,EAAM,cAAckiB,GAAkBO,GAA2BP,GAAkBxB,CAAO,CAAC;AAEpG,QAAMwI,IAAa5P,EAAU,YAAY0D,IAAqBvW,GACxD0iB,IAAgB7P,EAAU,cAC1B8P,IAAeF,IAAa,IAAoBlpB,gBAAAA,EAAM,cAAc+oB,GAAW,EAAE,QAAQG,GAAY,KAAK,eAAe,SAAAxI,EAAS,CAAA,IAAI,MACtI2I,IAAkBF,IAAgB,IAAoBnpB,gBAAAA,EAAM,cAAc+oB,GAAW,EAAE,QAAQI,GAAe,KAAK,kBAAkB,SAAAzI,EAAS,CAAA,IAAI,MAClJlX,IAAQ8P,EAAU,MAAM,IAAI,CAACxP,MAAS;AAC1C,UAAM1L,KAAQ0L,EAAK,eACbrI,KAAMof,EAAeziB,KAAQqQ,GAAgB3E,EAAK,MAAM4W,CAAO;AACrE,WAAI/F,IACK3a,EAAM,cAAcmiB,GAAuB;AAAA,MAChD,GAAGM,GAA2BN,GAAuBzB,CAAO;AAAA,MAC5D,KAAAjf;AAAA,MACA,OAAOqI,EAAK;AAAA,MACZ,QAAQA,EAAK;AAAA,MACb,MAAMA,EAAK,QAAQ;AAAA,IAC3B,CAAO,IAEI9J,EAAM;AAAA,MACXipB;AAAA,MACA;AAAA,QACE,GAAGxG,GAA2BwG,GAAmBvI,CAAO;AAAA,QACxD,GAAGgC,GAAwBuG,GAAmBnf,EAAK,IAAI;AAAA,QACvD,KAAArI;AAAA,QACA,cAAcrD;AAAA,QACd,mBAAmB0L,EAAK;AAAA,QACxB,mBAAmBA,EAAK;AAAA,QACxB,OAAO4e;AAAA,MACR;AAAA,MACDjI,EAAY3W,EAAK,OAAOA,EAAK,MAAM4W,CAAO;AAAA,IAChD;AAAA,EACA,CAAG;AACD,SAAO1gB,EAAM;AAAA,IACXgpB;AAAA,IACA,EAAE,KAAKhmB,GAAa,eAAe,sBAAsB,GAAGyf,GAA2BuG,GAAoBtI,CAAO,EAAG;AAAA,IACrH,CAAC0I,GAAc,GAAG5f,GAAO6f,CAAe;AAAA,EAC5C;AACA,CAAC,GACKC,KAAW,CAAC,EAAE,UAAAhoB,QAAe;AACjC,QAAMkiB,IAAMxjB,EAAM,WAAWqgB,EAAmB,GAC1Chc,IAAiBwkB,GAAa,gBAAgB,GAC9CpF,IAAkBoF,GAAa,iBAAiB,GAChDnF,IAAcpgB,GAAQ9J,GAAQ6K,GAAgB,CAACP,MAAOiB,GAAgBjB,GAAI,QAAQ,CAAC,CAAC;AAC1F9D,SAAAA,EAAM,UAAU,MAAM;AACpB,IAAIwjB,MACFnf,EAAemf,EAAI,cAAc,GACjCC,EAAgBD,EAAI,UAAU;AAAA,EAEjC,GAAE,CAACA,GAAKnf,GAAgBof,CAAe,CAAC,GAClBzjB,gBAAAA,EAAM,cAAc,OAAO,EAAE,OAAO4iB,GAAc,EAAK,GAAG,KAAKc,GAAa,sBAAsB,UAAW,GAAEpiB,CAAQ;AAChJ,GACMioB,KAAiB,CAAC,EAAE,UAAAjoB,QAAe;AACvC,QAAMkiB,IAAMxjB,EAAM,WAAWqgB,EAAmB,GAC1CjD,IAAqByL,GAAa,oBAAoB,GACtDpF,IAAkBoF,GAAa,iBAAiB,GAChDjlB,IAAqBglB,EAAgB,oBAAoB,GACzDlF,IAAc9D,GAAyBxC,GAAoBxZ,CAAkB;AACnF5D,SAAAA,EAAM,UAAU,MAAM;AACpB,IAAIwjB,MACFC,EAAgBD,EAAI,UAAU,GAC9BpG,EAAmB,EAAE,WAAW,GAAG,eAAeoG,EAAI,gBAAgB,cAAc,IAAG,CAAE;AAAA,EAE5F,GAAE,CAACA,GAAKpG,GAAoBqG,CAAe,CAAC,GACtBzjB,gBAAAA,EAAM,cAAc,OAAO,EAAE,KAAK0jB,GAAa,OAAOd,GAAc,EAAK,GAAG,sBAAsB,SAAU,GAAEthB,CAAQ;AAC/I,GACMkoB,KAA4BxpB,gBAAAA,EAAM,KAAK,SAA2BU,GAAO;AAC7E,QAAM4c,IAAkBsL,EAAgB,iBAAiB,GACnDhlB,IAAqBglB,EAAgB,oBAAoB,GACzDhiB,IAAoBiiB,GAAa,mBAAmB,GACpDhiB,IAAoBgiB,GAAa,mBAAmB,GACpDR,IAAqBO,EAAgB,oBAAoB,GACzDN,IAAqBM,EAAgB,oBAAoB,GACzDlI,IAAUkI,EAAgB,SAAS,GACnCa,IAAWnmB,GAAQ9J,GAAQoN,GAAmB,CAAC9C,MAAOiB,GAAgBjB,GAAI,QAAQ,CAAC,CAAC,GACpF4lB,IAAWpmB,GAAQ9J,GAAQqN,GAAmB,CAAC/C,MAAOiB,GAAgBjB,GAAI,QAAQ,CAAC,CAAC,GACpFigB,IAAcngB,KAAsB0Z,IAAkBqM,KAAiBC,IACvE1F,IAActgB,KAAsB0Z,IAAkBiM,KAAiBD,IACvEO,IAAWjB,EAAgB,gBAAgB,GAC3CkB,IAAWlB,EAAgB,oBAAoB,GAC/CmB,IAAWnB,EAAgB,sBAAsB,GACjDoB,IAAU3B,IAAqBroB,EAAM;AAAA,IACzC8pB;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,OAAO,EAAE,QAAQ,GAAG,UAAU,UAAU,KAAK,EAAG;AAAA,MAChD,KAAKL;AAAA,MACL,GAAGhH,GAA2BqH,GAAUpJ,CAAO;AAAA,IAChD;AAAA,IACD2H,EAAoB;AAAA,EACrB,IAAG,MACE4B,IAAU3B,IAAqBtoB,EAAM;AAAA,IACzC+pB;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,OAAO,EAAE,QAAQ,GAAG,UAAU,UAAU,QAAQ,EAAG;AAAA,MACnD,KAAKL;AAAA,MACL,GAAGjH,GAA2BsH,GAAUrJ,CAAO;AAAA,IAChD;AAAA,IACD4H,EAAoB;AAAA,EACrB,IAAG;AACJ,SAAuBtoB,gBAAAA,EAAM,cAAc+jB,GAAa,EAAE,GAAGrjB,EAAK,GAAoBV,gBAAAA,EAAM,cAAckkB,GAAa,MAAMlkB,EAAM;AAAA,IACjI6pB;AAAA,IACA,EAAE,OAAO,EAAE,eAAe,GAAG,gBAAgB,OAAQ,GAAE,GAAGpH,GAA2BoH,GAAUnJ,CAAO,EAAG;AAAA,IACzG,CAACsJ,GAAyBhqB,gBAAAA,EAAM,cAAc2oB,IAAO,EAAE,KAAK,aAAa,GAAGsB,CAAO;AAAA,EACpF,CAAA,CAAC;AACJ,CAAC,GACK;AAAA,EACJ,WAAWC;AAAA,EACX,cAAArB;AAAA,EACA,iBAAAD;AAAA,EACA,YAAAE;AACF,IAAoB,gBAAA7oB;AAAA,EAClBsoB;AAAA,EACA;AAAA,IACE,UAAU,CAAE;AAAA,IACZ,UAAU;AAAA,MACR,kBAAkB;AAAA,MAClB,SAAS;AAAA,MACT,cAAc;AAAA,MACd,gBAAgB;AAAA,MAChB,aAAa;AAAA,MACb,oBAAoB;AAAA,MACpB,oBAAoB;AAAA,MACpB,UAAU;AAAA,MACV,oBAAoB;AAAA,MACpB,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,yBAAyB;AAAA,MACzB,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,mBAAmB;AAAA,MACnB,gBAAgB;AAAA,MAChB,gBAAgB;AAAA,MAChB,mBAAmB;AAAA,MACnB,iBAAiB;AAAA,MACjB,UAAU;AAAA,MACV,yBAAyB;AAAA,MACzB,MAAM;AAAA,MACN,kBAAkB;AAAA,MAClB,kBAAkB;AAAA,MAClB,eAAe;AAAA,MACf,iBAAiB;AAAA,MACjB,oBAAoB;AAAA,MACpB,aAAa;AAAA,MACb,UAAU;AAAA,IACX;AAAA,IACD,SAAS;AAAA,MACP,eAAe;AAAA,MACf,gBAAgB;AAAA,MAChB,UAAU;AAAA,MACV,UAAU;AAAA,MACV,UAAU;AAAA,IACX;AAAA,IACD,QAAQ;AAAA,MACN,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,cAAc;AAAA,MACd,qBAAqB;AAAA,MACrB,kBAAkB;AAAA,MAClB,wBAAwB;AAAA,MACxB,eAAe;AAAA,MACf,cAAc;AAAA,IACf;AAAA,EACF;AAAA,EACDiB;AACF,GACMI,KAA2B,gBAAA1G,GAAc,EAAE,cAAA2F,IAAc,iBAAAD,GAAiB,YAAAE,GAAY,CAAA,GACtFa,KAAiC,gBAAArG,GAAoB,EAAE,cAAAuF,IAAc,iBAAAD,GAAiB,YAAAE,GAAY,CAAA,GAClGqB,KAAgBD;","x_google_ignoreList":[0]}