@geotrekce/geotrek-rando-widget 0.0.21 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (543) hide show
  1. package/dist/cjs/{css-shim-4e479c1a.js → css-shim-541cb78a.js} +2 -2
  2. package/dist/cjs/css-shim-541cb78a.js.br +0 -0
  3. package/dist/cjs/css-shim-541cb78a.js.gz +0 -0
  4. package/dist/cjs/{css-shim-4e479c1a.js.map → css-shim-541cb78a.js.map} +1 -1
  5. package/dist/cjs/{dom-52c0133a.js → dom-7f26de17.js} +2 -2
  6. package/dist/cjs/dom-7f26de17.js.br +0 -0
  7. package/dist/cjs/dom-7f26de17.js.gz +0 -0
  8. package/dist/cjs/{dom-52c0133a.js.map → dom-7f26de17.js.map} +1 -1
  9. package/dist/cjs/geotrek-rando-widget.cjs.js +4 -4
  10. package/dist/cjs/geotrek-rando-widget.cjs.js.br +0 -0
  11. package/dist/cjs/geotrek-rando-widget.cjs.js.gz +0 -0
  12. package/dist/cjs/geotrek-rando-widget.cjs.js.map +1 -1
  13. package/dist/cjs/grw-app.cjs.entry.js +61 -17
  14. package/dist/cjs/grw-app.cjs.entry.js.br +0 -0
  15. package/dist/cjs/grw-app.cjs.entry.js.gz +0 -0
  16. package/dist/cjs/grw-app.cjs.entry.js.map +1 -1
  17. package/dist/cjs/{grw-filter_6.cjs.entry.js → grw-filter_7.cjs.entry.js} +5554 -257
  18. package/dist/cjs/grw-filter_7.cjs.entry.js.br +0 -0
  19. package/dist/cjs/grw-filter_7.cjs.entry.js.gz +0 -0
  20. package/dist/cjs/grw-filter_7.cjs.entry.js.map +1 -0
  21. package/dist/cjs/grw-information-desk-detail_3.cjs.entry.js +51 -9
  22. package/dist/cjs/grw-information-desk-detail_3.cjs.entry.js.br +0 -0
  23. package/dist/cjs/grw-information-desk-detail_3.cjs.entry.js.gz +0 -0
  24. package/dist/cjs/grw-information-desk-detail_3.cjs.entry.js.map +1 -1
  25. package/dist/cjs/grw-trek-card.cjs.entry.js +17 -10
  26. package/dist/cjs/grw-trek-card.cjs.entry.js.br +0 -0
  27. package/dist/cjs/grw-trek-card.cjs.entry.js.gz +0 -0
  28. package/dist/cjs/grw-trek-card.cjs.entry.js.map +1 -1
  29. package/dist/cjs/i18n-67fd458f.js +108 -0
  30. package/dist/cjs/i18n-67fd458f.js.br +0 -0
  31. package/dist/cjs/i18n-67fd458f.js.gz +0 -0
  32. package/dist/cjs/i18n-67fd458f.js.map +1 -0
  33. package/dist/cjs/{index-5c1a15c7.js → index-965985fa.js} +486 -30
  34. package/dist/cjs/index-965985fa.js.br +0 -0
  35. package/dist/cjs/index-965985fa.js.gz +0 -0
  36. package/dist/cjs/index-965985fa.js.map +1 -0
  37. package/dist/cjs/loader.cjs.js +4 -4
  38. package/dist/cjs/loader.cjs.js.br +0 -0
  39. package/dist/cjs/loader.cjs.js.gz +0 -0
  40. package/dist/cjs/loader.cjs.js.map +1 -1
  41. package/dist/cjs/pagination-149c2052.js +4655 -0
  42. package/dist/cjs/pagination-149c2052.js.br +0 -0
  43. package/dist/cjs/pagination-149c2052.js.gz +0 -0
  44. package/dist/cjs/pagination-149c2052.js.map +1 -0
  45. package/dist/cjs/{shadow-css-388a8a25.js → shadow-css-2e025b8c.js} +2 -2
  46. package/dist/cjs/shadow-css-2e025b8c.js.br +0 -0
  47. package/dist/cjs/shadow-css-2e025b8c.js.gz +0 -0
  48. package/dist/cjs/{shadow-css-388a8a25.js.map → shadow-css-2e025b8c.js.map} +1 -1
  49. package/dist/cjs/{store-a027262c.js → store-002456b2.js} +11 -9
  50. package/dist/cjs/store-002456b2.js.br +0 -0
  51. package/dist/cjs/store-002456b2.js.gz +0 -0
  52. package/dist/cjs/store-002456b2.js.map +1 -0
  53. package/dist/collection/assets/default-image.svg +1 -0
  54. package/dist/collection/assets/default-image.svg.br +1 -0
  55. package/dist/collection/assets/default-image.svg.gz +0 -0
  56. package/dist/collection/assets/layers.svg +1 -0
  57. package/dist/collection/assets/layers.svg.br +0 -0
  58. package/dist/collection/assets/layers.svg.gz +0 -0
  59. package/dist/collection/collection-manifest.json +3 -2
  60. package/dist/collection/components/grw-app/grw-app.css +120 -73
  61. package/dist/collection/components/grw-app/grw-app.css.br +0 -0
  62. package/dist/collection/components/grw-app/grw-app.css.gz +0 -0
  63. package/dist/collection/components/grw-app/grw-app.js +332 -49
  64. package/dist/collection/components/grw-app/grw-app.js.br +0 -0
  65. package/dist/collection/components/grw-app/grw-app.js.gz +0 -0
  66. package/dist/collection/components/grw-app/grw-app.js.map +1 -1
  67. package/dist/collection/components/grw-filter/grw-filter.css +43 -10
  68. package/dist/collection/components/grw-filter/grw-filter.css.br +0 -0
  69. package/dist/collection/components/grw-filter/grw-filter.css.gz +0 -0
  70. package/dist/collection/components/grw-filter/grw-filter.js +1 -1
  71. package/dist/collection/components/grw-filter/grw-filter.js.br +0 -0
  72. package/dist/collection/components/grw-filter/grw-filter.js.gz +0 -0
  73. package/dist/collection/components/grw-filter/grw-filter.js.map +1 -1
  74. package/dist/collection/components/grw-information-desk-detail/grw-information-desk-detail.css +78 -8
  75. package/dist/collection/components/grw-information-desk-detail/grw-information-desk-detail.css.br +0 -0
  76. package/dist/collection/components/grw-information-desk-detail/grw-information-desk-detail.css.gz +0 -0
  77. package/dist/collection/components/grw-information-desk-detail/grw-information-desk-detail.js +32 -4
  78. package/dist/collection/components/grw-information-desk-detail/grw-information-desk-detail.js.br +0 -0
  79. package/dist/collection/components/grw-information-desk-detail/grw-information-desk-detail.js.gz +0 -0
  80. package/dist/collection/components/grw-information-desk-detail/grw-information-desk-detail.js.map +1 -1
  81. package/dist/collection/components/grw-map/grw-map.css +1213 -672
  82. package/dist/collection/components/grw-map/grw-map.css.br +0 -0
  83. package/dist/collection/components/grw-map/grw-map.css.gz +0 -0
  84. package/dist/collection/components/grw-map/grw-map.js +269 -59
  85. package/dist/collection/components/grw-map/grw-map.js.br +0 -0
  86. package/dist/collection/components/grw-map/grw-map.js.gz +0 -0
  87. package/dist/collection/components/grw-map/grw-map.js.map +1 -1
  88. package/dist/collection/components/grw-poi-detail/grw-poi-detail.css +563 -11
  89. package/dist/collection/components/grw-poi-detail/grw-poi-detail.css.br +0 -0
  90. package/dist/collection/components/grw-poi-detail/grw-poi-detail.css.gz +0 -0
  91. package/dist/collection/components/grw-poi-detail/grw-poi-detail.js +45 -2
  92. package/dist/collection/components/grw-poi-detail/grw-poi-detail.js.br +0 -0
  93. package/dist/collection/components/grw-poi-detail/grw-poi-detail.js.gz +0 -0
  94. package/dist/collection/components/grw-poi-detail/grw-poi-detail.js.map +1 -1
  95. package/dist/collection/components/grw-select-language/grw-select-language.css +7 -0
  96. package/dist/collection/components/grw-select-language/grw-select-language.css.br +0 -0
  97. package/dist/collection/components/grw-select-language/grw-select-language.css.gz +0 -0
  98. package/dist/collection/components/grw-select-language/grw-select-language.js +26 -0
  99. package/dist/collection/components/grw-select-language/grw-select-language.js.br +0 -0
  100. package/dist/collection/components/grw-select-language/grw-select-language.js.gz +0 -0
  101. package/dist/collection/components/grw-select-language/grw-select-language.js.map +1 -0
  102. package/dist/collection/components/grw-sensitive-area-detail/grw-sensitive-area-detail.css +9 -6
  103. package/dist/collection/components/grw-sensitive-area-detail/grw-sensitive-area-detail.css.br +0 -0
  104. package/dist/collection/components/grw-sensitive-area-detail/grw-sensitive-area-detail.css.gz +0 -0
  105. package/dist/collection/components/grw-trek-card/grw-trek-card.css +44 -16
  106. package/dist/collection/components/grw-trek-card/grw-trek-card.css.br +0 -0
  107. package/dist/collection/components/grw-trek-card/grw-trek-card.css.gz +0 -0
  108. package/dist/collection/components/grw-trek-card/grw-trek-card.js +75 -14
  109. package/dist/collection/components/grw-trek-card/grw-trek-card.js.br +0 -0
  110. package/dist/collection/components/grw-trek-card/grw-trek-card.js.gz +0 -0
  111. package/dist/collection/components/grw-trek-card/grw-trek-card.js.map +1 -1
  112. package/dist/collection/components/grw-trek-detail/grw-trek-detail.css +807 -53
  113. package/dist/collection/components/grw-trek-detail/grw-trek-detail.css.br +0 -0
  114. package/dist/collection/components/grw-trek-detail/grw-trek-detail.css.gz +0 -0
  115. package/dist/collection/components/grw-trek-detail/grw-trek-detail.js +419 -25
  116. package/dist/collection/components/grw-trek-detail/grw-trek-detail.js.br +0 -0
  117. package/dist/collection/components/grw-trek-detail/grw-trek-detail.js.gz +0 -0
  118. package/dist/collection/components/grw-trek-detail/grw-trek-detail.js.map +1 -1
  119. package/dist/collection/components/grw-treks-list/grw-treks-list.css +7 -2
  120. package/dist/collection/components/grw-treks-list/grw-treks-list.css.br +0 -0
  121. package/dist/collection/components/grw-treks-list/grw-treks-list.css.gz +0 -0
  122. package/dist/collection/components/grw-treks-list/grw-treks-list.js +66 -9
  123. package/dist/collection/components/grw-treks-list/grw-treks-list.js.br +0 -0
  124. package/dist/collection/components/grw-treks-list/grw-treks-list.js.gz +0 -0
  125. package/dist/collection/components/grw-treks-list/grw-treks-list.js.map +1 -1
  126. package/dist/collection/i18n/i18n.js +103 -0
  127. package/dist/collection/i18n/i18n.js.br +0 -0
  128. package/dist/collection/i18n/i18n.js.gz +0 -0
  129. package/dist/collection/i18n/i18n.js.map +1 -0
  130. package/dist/collection/store/grw-trek-provider.js +29 -20
  131. package/dist/collection/store/grw-trek-provider.js.br +0 -0
  132. package/dist/collection/store/grw-trek-provider.js.gz +0 -0
  133. package/dist/collection/store/grw-trek-provider.js.map +1 -1
  134. package/dist/collection/store/grw-treks-provider.js +24 -16
  135. package/dist/collection/store/grw-treks-provider.js.br +0 -0
  136. package/dist/collection/store/grw-treks-provider.js.gz +0 -0
  137. package/dist/collection/store/grw-treks-provider.js.map +1 -1
  138. package/dist/collection/store/store.js +9 -7
  139. package/dist/collection/store/store.js.br +0 -0
  140. package/dist/collection/store/store.js.gz +0 -0
  141. package/dist/collection/store/store.js.map +1 -1
  142. package/dist/collection/stories/App.js +30 -6
  143. package/dist/collection/stories/App.js.br +0 -0
  144. package/dist/collection/stories/App.js.gz +0 -0
  145. package/dist/collection/stories/App.stories.js +16 -4
  146. package/dist/collection/stories/App.stories.js.br +0 -0
  147. package/dist/collection/stories/App.stories.js.gz +0 -0
  148. package/dist/collection/stories/TrekCard.js +6 -3
  149. package/dist/collection/stories/TrekCard.js.br +0 -0
  150. package/dist/collection/stories/TrekCard.js.gz +0 -0
  151. package/dist/collection/stories/TrekCard.stories.js +6 -3
  152. package/dist/collection/stories/TrekCard.stories.js.br +0 -0
  153. package/dist/collection/stories/TrekCard.stories.js.gz +0 -0
  154. package/dist/collection/stories/TrekDetail.js +19 -4
  155. package/dist/collection/stories/TrekDetail.js.br +0 -0
  156. package/dist/collection/stories/TrekDetail.js.gz +0 -0
  157. package/dist/collection/stories/TrekDetail.stories.js +8 -4
  158. package/dist/collection/stories/TrekDetail.stories.js.br +0 -0
  159. package/dist/collection/stories/TrekDetail.stories.js.gz +0 -0
  160. package/dist/collection/stories/TrekMap.js +23 -1
  161. package/dist/collection/stories/TrekMap.js.br +0 -0
  162. package/dist/collection/stories/TrekMap.js.gz +0 -0
  163. package/dist/collection/stories/TrekMap.stories.js +6 -1
  164. package/dist/collection/stories/TrekMap.stories.js.br +0 -0
  165. package/dist/collection/stories/TrekMap.stories.js.gz +0 -0
  166. package/dist/collection/stories/TreksList.js +22 -3
  167. package/dist/collection/stories/TreksList.js.br +0 -0
  168. package/dist/collection/stories/TreksList.js.gz +0 -0
  169. package/dist/collection/stories/TreksList.stories.js +6 -3
  170. package/dist/collection/stories/TreksList.stories.js.br +0 -0
  171. package/dist/collection/stories/TreksList.stories.js.gz +0 -0
  172. package/dist/collection/stories/TreksMap.js +6 -3
  173. package/dist/collection/stories/TreksMap.js.br +0 -0
  174. package/dist/collection/stories/TreksMap.js.gz +0 -0
  175. package/dist/collection/stories/TreksMap.stories.js +6 -3
  176. package/dist/collection/stories/TreksMap.stories.js.br +0 -0
  177. package/dist/collection/stories/TreksMap.stories.js.gz +0 -0
  178. package/dist/collection/types/types.js.map +1 -1
  179. package/dist/esm/{css-shim-cfbf2cf5.js → css-shim-8cc70a22.js} +2 -2
  180. package/dist/esm/css-shim-8cc70a22.js.br +0 -0
  181. package/dist/esm/css-shim-8cc70a22.js.gz +0 -0
  182. package/dist/esm/{css-shim-cfbf2cf5.js.map → css-shim-8cc70a22.js.map} +1 -1
  183. package/dist/esm/{dom-c0f8af80.js → dom-60e3e2ad.js} +2 -2
  184. package/dist/esm/dom-60e3e2ad.js.br +0 -0
  185. package/dist/esm/dom-60e3e2ad.js.gz +0 -0
  186. package/dist/esm/{dom-c0f8af80.js.map → dom-60e3e2ad.js.map} +1 -1
  187. package/dist/esm/geotrek-rando-widget.js +5 -5
  188. package/dist/esm/geotrek-rando-widget.js.br +0 -0
  189. package/dist/esm/geotrek-rando-widget.js.gz +0 -0
  190. package/dist/esm/geotrek-rando-widget.js.map +1 -1
  191. package/dist/esm/grw-app.entry.js +61 -17
  192. package/dist/esm/grw-app.entry.js.br +0 -0
  193. package/dist/esm/grw-app.entry.js.gz +0 -0
  194. package/dist/esm/grw-app.entry.js.map +1 -1
  195. package/dist/esm/{grw-filter_6.entry.js → grw-filter_7.entry.js} +5539 -263
  196. package/dist/esm/grw-filter_7.entry.js.br +0 -0
  197. package/dist/esm/grw-filter_7.entry.js.gz +0 -0
  198. package/dist/esm/grw-filter_7.entry.js.map +1 -0
  199. package/dist/esm/grw-information-desk-detail_3.entry.js +51 -9
  200. package/dist/esm/grw-information-desk-detail_3.entry.js.br +0 -0
  201. package/dist/esm/grw-information-desk-detail_3.entry.js.gz +0 -0
  202. package/dist/esm/grw-information-desk-detail_3.entry.js.map +1 -1
  203. package/dist/esm/grw-trek-card.entry.js +17 -10
  204. package/dist/esm/grw-trek-card.entry.js.br +0 -0
  205. package/dist/esm/grw-trek-card.entry.js.gz +0 -0
  206. package/dist/esm/grw-trek-card.entry.js.map +1 -1
  207. package/dist/esm/i18n-b25e6b48.js +106 -0
  208. package/dist/esm/i18n-b25e6b48.js.br +0 -0
  209. package/dist/esm/i18n-b25e6b48.js.gz +0 -0
  210. package/dist/esm/i18n-b25e6b48.js.map +1 -0
  211. package/dist/esm/{index-e862524f.js → index-57c9193c.js} +487 -31
  212. package/dist/esm/index-57c9193c.js.br +0 -0
  213. package/dist/esm/index-57c9193c.js.gz +0 -0
  214. package/dist/esm/index-57c9193c.js.map +1 -0
  215. package/dist/esm/loader.js +5 -5
  216. package/dist/esm/loader.js.br +0 -0
  217. package/dist/esm/loader.js.gz +0 -0
  218. package/dist/esm/loader.js.map +1 -1
  219. package/dist/esm/pagination-24051620.js +4646 -0
  220. package/dist/esm/pagination-24051620.js.br +0 -0
  221. package/dist/esm/pagination-24051620.js.gz +0 -0
  222. package/dist/esm/pagination-24051620.js.map +1 -0
  223. package/dist/esm/{shadow-css-12b9a099.js → shadow-css-19be24ee.js} +2 -2
  224. package/dist/esm/shadow-css-19be24ee.js.br +0 -0
  225. package/dist/esm/shadow-css-19be24ee.js.gz +0 -0
  226. package/dist/esm/{shadow-css-12b9a099.js.map → shadow-css-19be24ee.js.map} +1 -1
  227. package/dist/esm/{store-5565fa38.js → store-b2d579d9.js} +11 -9
  228. package/dist/esm/store-b2d579d9.js.br +0 -0
  229. package/dist/esm/store-b2d579d9.js.gz +0 -0
  230. package/dist/esm/store-b2d579d9.js.map +1 -0
  231. package/dist/esm-es5/{css-shim-cfbf2cf5.js → css-shim-8cc70a22.js} +1 -1
  232. package/dist/esm-es5/css-shim-8cc70a22.js.br +0 -0
  233. package/dist/esm-es5/css-shim-8cc70a22.js.gz +0 -0
  234. package/dist/esm-es5/{css-shim-cfbf2cf5.js.map → css-shim-8cc70a22.js.map} +1 -1
  235. package/dist/esm-es5/{dom-c0f8af80.js → dom-60e3e2ad.js} +1 -1
  236. package/dist/esm-es5/dom-60e3e2ad.js.br +0 -0
  237. package/dist/esm-es5/dom-60e3e2ad.js.gz +0 -0
  238. package/dist/esm-es5/{dom-c0f8af80.js.map → dom-60e3e2ad.js.map} +1 -1
  239. package/dist/esm-es5/geotrek-rando-widget.js +1 -1
  240. package/dist/esm-es5/geotrek-rando-widget.js.br +0 -0
  241. package/dist/esm-es5/geotrek-rando-widget.js.gz +0 -0
  242. package/dist/esm-es5/geotrek-rando-widget.js.map +1 -1
  243. package/dist/esm-es5/grw-app.entry.js +1 -1
  244. package/dist/esm-es5/grw-app.entry.js.br +0 -0
  245. package/dist/esm-es5/grw-app.entry.js.gz +0 -0
  246. package/dist/esm-es5/grw-app.entry.js.map +1 -1
  247. package/dist/esm-es5/grw-filter_7.entry.js +14 -0
  248. package/dist/esm-es5/grw-filter_7.entry.js.br +0 -0
  249. package/dist/esm-es5/grw-filter_7.entry.js.gz +0 -0
  250. package/dist/esm-es5/grw-filter_7.entry.js.map +1 -0
  251. package/dist/esm-es5/grw-information-desk-detail_3.entry.js +1 -1
  252. package/dist/esm-es5/grw-information-desk-detail_3.entry.js.br +0 -0
  253. package/dist/esm-es5/grw-information-desk-detail_3.entry.js.gz +0 -0
  254. package/dist/esm-es5/grw-information-desk-detail_3.entry.js.map +1 -1
  255. package/dist/esm-es5/grw-trek-card.entry.js +1 -1
  256. package/dist/esm-es5/grw-trek-card.entry.js.br +0 -0
  257. package/dist/esm-es5/grw-trek-card.entry.js.gz +0 -0
  258. package/dist/esm-es5/grw-trek-card.entry.js.map +1 -1
  259. package/dist/esm-es5/i18n-b25e6b48.js +2 -0
  260. package/dist/esm-es5/i18n-b25e6b48.js.br +0 -0
  261. package/dist/esm-es5/i18n-b25e6b48.js.gz +0 -0
  262. package/dist/esm-es5/i18n-b25e6b48.js.map +1 -0
  263. package/dist/esm-es5/index-57c9193c.js +3 -0
  264. package/dist/esm-es5/index-57c9193c.js.br +0 -0
  265. package/dist/esm-es5/index-57c9193c.js.gz +0 -0
  266. package/dist/esm-es5/index-57c9193c.js.map +1 -0
  267. package/dist/esm-es5/loader.js +1 -1
  268. package/dist/esm-es5/loader.js.br +0 -0
  269. package/dist/esm-es5/loader.js.gz +0 -0
  270. package/dist/esm-es5/loader.js.map +1 -1
  271. package/dist/esm-es5/pagination-24051620.js +2 -0
  272. package/dist/esm-es5/pagination-24051620.js.br +0 -0
  273. package/dist/esm-es5/pagination-24051620.js.gz +0 -0
  274. package/dist/esm-es5/pagination-24051620.js.map +1 -0
  275. package/dist/esm-es5/{shadow-css-12b9a099.js → shadow-css-19be24ee.js} +1 -1
  276. package/dist/esm-es5/shadow-css-19be24ee.js.br +0 -0
  277. package/dist/esm-es5/shadow-css-19be24ee.js.gz +0 -0
  278. package/dist/esm-es5/{shadow-css-12b9a099.js.map → shadow-css-19be24ee.js.map} +1 -1
  279. package/dist/esm-es5/{store-5565fa38.js → store-b2d579d9.js} +2 -2
  280. package/dist/esm-es5/store-b2d579d9.js.br +0 -0
  281. package/dist/esm-es5/store-b2d579d9.js.gz +0 -0
  282. package/dist/esm-es5/store-b2d579d9.js.map +1 -0
  283. package/dist/geotrek-rando-widget/assets/default-image.svg +1 -0
  284. package/dist/geotrek-rando-widget/assets/default-image.svg.br +1 -0
  285. package/dist/geotrek-rando-widget/assets/default-image.svg.gz +0 -0
  286. package/dist/geotrek-rando-widget/assets/layers.svg +1 -0
  287. package/dist/geotrek-rando-widget/assets/layers.svg.br +0 -0
  288. package/dist/geotrek-rando-widget/assets/layers.svg.gz +0 -0
  289. package/dist/geotrek-rando-widget/geotrek-rando-widget.css +1 -1
  290. package/dist/geotrek-rando-widget/geotrek-rando-widget.css.br +0 -0
  291. package/dist/geotrek-rando-widget/geotrek-rando-widget.css.gz +0 -0
  292. package/dist/geotrek-rando-widget/geotrek-rando-widget.esm.js +1 -1
  293. package/dist/geotrek-rando-widget/geotrek-rando-widget.esm.js.br +0 -0
  294. package/dist/geotrek-rando-widget/geotrek-rando-widget.esm.js.gz +0 -0
  295. package/dist/geotrek-rando-widget/geotrek-rando-widget.esm.js.map +1 -1
  296. package/dist/geotrek-rando-widget/geotrek-rando-widget.js +1 -1
  297. package/dist/geotrek-rando-widget/geotrek-rando-widget.js.br +0 -0
  298. package/dist/geotrek-rando-widget/geotrek-rando-widget.js.gz +0 -0
  299. package/dist/geotrek-rando-widget/p-0773c38f.js +2 -0
  300. package/dist/geotrek-rando-widget/p-0773c38f.js.br +0 -0
  301. package/dist/geotrek-rando-widget/p-0773c38f.js.gz +0 -0
  302. package/dist/geotrek-rando-widget/p-0773c38f.js.map +1 -0
  303. package/dist/geotrek-rando-widget/{p-3eb96982.js → p-0f28420f.js} +1 -1
  304. package/dist/geotrek-rando-widget/p-0f28420f.js.br +0 -0
  305. package/dist/geotrek-rando-widget/p-0f28420f.js.gz +0 -0
  306. package/dist/geotrek-rando-widget/{p-3eb96982.js.map → p-0f28420f.js.map} +1 -1
  307. package/dist/geotrek-rando-widget/{p-1eb5bb96.js → p-15fed795.js} +1 -1
  308. package/dist/geotrek-rando-widget/p-15fed795.js.br +0 -0
  309. package/dist/geotrek-rando-widget/p-15fed795.js.gz +0 -0
  310. package/dist/geotrek-rando-widget/{p-1eb5bb96.js.map → p-15fed795.js.map} +1 -1
  311. package/dist/geotrek-rando-widget/p-1a25ab22.entry.js +14 -0
  312. package/dist/geotrek-rando-widget/p-1a25ab22.entry.js.br +0 -0
  313. package/dist/geotrek-rando-widget/p-1a25ab22.entry.js.gz +0 -0
  314. package/dist/geotrek-rando-widget/p-1a25ab22.entry.js.map +1 -0
  315. package/dist/geotrek-rando-widget/p-1e1b3006.entry.js +2 -0
  316. package/dist/geotrek-rando-widget/p-1e1b3006.entry.js.br +0 -0
  317. package/dist/geotrek-rando-widget/p-1e1b3006.entry.js.gz +0 -0
  318. package/dist/geotrek-rando-widget/p-1e1b3006.entry.js.map +1 -0
  319. package/dist/geotrek-rando-widget/{p-e6f85aed.system.js → p-2a99981a.system.js} +1 -1
  320. package/dist/geotrek-rando-widget/p-2a99981a.system.js.br +0 -0
  321. package/dist/geotrek-rando-widget/p-2a99981a.system.js.gz +0 -0
  322. package/dist/geotrek-rando-widget/{p-e6f85aed.system.js.map → p-2a99981a.system.js.map} +1 -1
  323. package/dist/geotrek-rando-widget/p-4f746b28.js +3 -0
  324. package/dist/geotrek-rando-widget/p-4f746b28.js.br +0 -0
  325. package/dist/geotrek-rando-widget/p-4f746b28.js.gz +0 -0
  326. package/dist/geotrek-rando-widget/p-4f746b28.js.map +1 -0
  327. package/dist/geotrek-rando-widget/p-58cf0dd0.js +2 -0
  328. package/dist/geotrek-rando-widget/p-58cf0dd0.js.br +0 -0
  329. package/dist/geotrek-rando-widget/p-58cf0dd0.js.gz +0 -0
  330. package/dist/geotrek-rando-widget/p-58cf0dd0.js.map +1 -0
  331. package/dist/geotrek-rando-widget/{p-66d490d8.system.js → p-634eaa8f.system.js} +1 -1
  332. package/dist/geotrek-rando-widget/p-634eaa8f.system.js.br +0 -0
  333. package/dist/geotrek-rando-widget/p-634eaa8f.system.js.gz +0 -0
  334. package/dist/geotrek-rando-widget/{p-66d490d8.system.js.map → p-634eaa8f.system.js.map} +1 -1
  335. package/dist/geotrek-rando-widget/{p-a9a35a44.system.js → p-63e651bf.system.js} +1 -1
  336. package/dist/geotrek-rando-widget/p-63e651bf.system.js.br +0 -0
  337. package/dist/geotrek-rando-widget/p-63e651bf.system.js.gz +0 -0
  338. package/dist/geotrek-rando-widget/{p-a9a35a44.system.js.map → p-63e651bf.system.js.map} +1 -1
  339. package/dist/geotrek-rando-widget/p-6d748d33.system.entry.js +2 -0
  340. package/dist/geotrek-rando-widget/p-6d748d33.system.entry.js.br +0 -0
  341. package/dist/geotrek-rando-widget/p-6d748d33.system.entry.js.gz +0 -0
  342. package/dist/geotrek-rando-widget/p-6d748d33.system.entry.js.map +1 -0
  343. package/dist/geotrek-rando-widget/p-758bdb7e.system.js +2 -0
  344. package/dist/geotrek-rando-widget/p-758bdb7e.system.js.br +0 -0
  345. package/dist/geotrek-rando-widget/p-758bdb7e.system.js.gz +0 -0
  346. package/dist/geotrek-rando-widget/p-758bdb7e.system.js.map +1 -0
  347. package/dist/geotrek-rando-widget/p-8872ebd8.system.js +2 -0
  348. package/dist/geotrek-rando-widget/p-8872ebd8.system.js.br +0 -0
  349. package/dist/geotrek-rando-widget/p-8872ebd8.system.js.gz +0 -0
  350. package/dist/geotrek-rando-widget/p-8872ebd8.system.js.map +1 -0
  351. package/dist/geotrek-rando-widget/p-8e38db57.system.js +2 -0
  352. package/dist/geotrek-rando-widget/p-8e38db57.system.js.br +0 -0
  353. package/dist/geotrek-rando-widget/p-8e38db57.system.js.gz +0 -0
  354. package/dist/geotrek-rando-widget/p-8e38db57.system.js.map +1 -0
  355. package/dist/geotrek-rando-widget/p-a06aacd4.js +2 -0
  356. package/dist/geotrek-rando-widget/p-a06aacd4.js.br +0 -0
  357. package/dist/geotrek-rando-widget/p-a06aacd4.js.gz +0 -0
  358. package/dist/geotrek-rando-widget/p-a06aacd4.js.map +1 -0
  359. package/dist/geotrek-rando-widget/{p-88c3a6bd.js → p-b5fc5b41.js} +1 -1
  360. package/dist/geotrek-rando-widget/p-b5fc5b41.js.br +0 -0
  361. package/dist/geotrek-rando-widget/p-b5fc5b41.js.gz +0 -0
  362. package/dist/geotrek-rando-widget/{p-88c3a6bd.js.map → p-b5fc5b41.js.map} +1 -1
  363. package/dist/geotrek-rando-widget/p-c72585fe.system.entry.js +14 -0
  364. package/dist/geotrek-rando-widget/p-c72585fe.system.entry.js.br +0 -0
  365. package/dist/geotrek-rando-widget/p-c72585fe.system.entry.js.gz +0 -0
  366. package/dist/geotrek-rando-widget/p-c72585fe.system.entry.js.map +1 -0
  367. package/dist/geotrek-rando-widget/p-d0b22f11.system.entry.js +2 -0
  368. package/dist/geotrek-rando-widget/p-d0b22f11.system.entry.js.br +0 -0
  369. package/dist/geotrek-rando-widget/p-d0b22f11.system.entry.js.gz +0 -0
  370. package/dist/geotrek-rando-widget/p-d0b22f11.system.entry.js.map +1 -0
  371. package/dist/geotrek-rando-widget/p-d5094323.system.js +3 -0
  372. package/dist/geotrek-rando-widget/p-d5094323.system.js.br +0 -0
  373. package/dist/geotrek-rando-widget/p-d5094323.system.js.gz +0 -0
  374. package/dist/geotrek-rando-widget/p-d5094323.system.js.map +1 -0
  375. package/dist/geotrek-rando-widget/p-d5b0f2d5.system.entry.js +2 -0
  376. package/dist/geotrek-rando-widget/p-d5b0f2d5.system.entry.js.br +0 -0
  377. package/dist/geotrek-rando-widget/p-d5b0f2d5.system.entry.js.gz +0 -0
  378. package/dist/geotrek-rando-widget/p-d5b0f2d5.system.entry.js.map +1 -0
  379. package/dist/geotrek-rando-widget/p-dbf7dc54.entry.js +2 -0
  380. package/dist/geotrek-rando-widget/p-dbf7dc54.entry.js.br +0 -0
  381. package/dist/geotrek-rando-widget/p-dbf7dc54.entry.js.gz +0 -0
  382. package/dist/geotrek-rando-widget/p-dbf7dc54.entry.js.map +1 -0
  383. package/dist/geotrek-rando-widget/p-dc91249a.system.js +2 -0
  384. package/dist/geotrek-rando-widget/p-dc91249a.system.js.br +0 -0
  385. package/dist/geotrek-rando-widget/p-dc91249a.system.js.gz +0 -0
  386. package/dist/geotrek-rando-widget/p-dc91249a.system.js.map +1 -0
  387. package/dist/geotrek-rando-widget/p-f60bd917.entry.js +2 -0
  388. package/dist/geotrek-rando-widget/p-f60bd917.entry.js.br +0 -0
  389. package/dist/geotrek-rando-widget/p-f60bd917.entry.js.gz +0 -0
  390. package/dist/geotrek-rando-widget/p-f60bd917.entry.js.map +1 -0
  391. package/dist/types/components/grw-app/grw-app.d.ts +20 -6
  392. package/dist/types/components/grw-information-desk-detail/grw-information-desk-detail.d.ts +8 -0
  393. package/dist/types/components/grw-map/grw-map.d.ts +28 -6
  394. package/dist/types/components/grw-poi-detail/grw-poi-detail.d.ts +11 -0
  395. package/dist/types/components/grw-select-language/grw-select-language.d.ts +4 -0
  396. package/dist/types/components/grw-trek-card/grw-trek-card.d.ts +5 -2
  397. package/dist/types/components/grw-trek-detail/grw-trek-detail.d.ts +74 -4
  398. package/dist/types/components/grw-treks-list/grw-treks-list.d.ts +6 -3
  399. package/dist/types/components.d.ts +115 -30
  400. package/dist/types/i18n/i18n.d.ts +56 -0
  401. package/dist/types/stencil-public-runtime.d.ts +3 -0
  402. package/dist/types/store/grw-trek-provider.d.ts +3 -1
  403. package/dist/types/store/grw-treks-provider.d.ts +3 -1
  404. package/dist/types/store/store.d.ts +4 -0
  405. package/dist/types/types/types.d.ts +17 -3
  406. package/loader/index.d.ts +1 -1
  407. package/package.json +17 -14
  408. package/readme.md +4 -2
  409. package/dist/cjs/css-shim-4e479c1a.js.br +0 -0
  410. package/dist/cjs/css-shim-4e479c1a.js.gz +0 -0
  411. package/dist/cjs/dom-52c0133a.js.br +0 -0
  412. package/dist/cjs/dom-52c0133a.js.gz +0 -0
  413. package/dist/cjs/grw-filter_6.cjs.entry.js.br +0 -0
  414. package/dist/cjs/grw-filter_6.cjs.entry.js.gz +0 -0
  415. package/dist/cjs/grw-filter_6.cjs.entry.js.map +0 -1
  416. package/dist/cjs/index-5c1a15c7.js.br +0 -0
  417. package/dist/cjs/index-5c1a15c7.js.gz +0 -0
  418. package/dist/cjs/index-5c1a15c7.js.map +0 -1
  419. package/dist/cjs/shadow-css-388a8a25.js.br +0 -0
  420. package/dist/cjs/shadow-css-388a8a25.js.gz +0 -0
  421. package/dist/cjs/store-a027262c.js.br +0 -0
  422. package/dist/cjs/store-a027262c.js.gz +0 -0
  423. package/dist/cjs/store-a027262c.js.map +0 -1
  424. package/dist/collection/assets/arrow-back.svg +0 -1
  425. package/dist/collection/assets/arrow-back.svg.br +0 -0
  426. package/dist/collection/assets/arrow-back.svg.gz +0 -0
  427. package/dist/collection/assets/ascent.svg +0 -1
  428. package/dist/collection/assets/ascent.svg.br +0 -0
  429. package/dist/collection/assets/ascent.svg.gz +0 -0
  430. package/dist/collection/assets/duration.svg +0 -1
  431. package/dist/collection/assets/duration.svg.br +0 -0
  432. package/dist/collection/assets/duration.svg.gz +0 -0
  433. package/dist/collection/assets/length.svg +0 -1
  434. package/dist/collection/assets/length.svg.br +0 -4
  435. package/dist/collection/assets/length.svg.gz +0 -0
  436. package/dist/esm/css-shim-cfbf2cf5.js.br +0 -0
  437. package/dist/esm/css-shim-cfbf2cf5.js.gz +0 -0
  438. package/dist/esm/dom-c0f8af80.js.br +0 -0
  439. package/dist/esm/dom-c0f8af80.js.gz +0 -0
  440. package/dist/esm/grw-filter_6.entry.js.br +0 -0
  441. package/dist/esm/grw-filter_6.entry.js.gz +0 -0
  442. package/dist/esm/grw-filter_6.entry.js.map +0 -1
  443. package/dist/esm/index-e862524f.js.br +0 -0
  444. package/dist/esm/index-e862524f.js.gz +0 -0
  445. package/dist/esm/index-e862524f.js.map +0 -1
  446. package/dist/esm/shadow-css-12b9a099.js.br +0 -0
  447. package/dist/esm/shadow-css-12b9a099.js.gz +0 -0
  448. package/dist/esm/store-5565fa38.js.br +0 -0
  449. package/dist/esm/store-5565fa38.js.gz +0 -0
  450. package/dist/esm/store-5565fa38.js.map +0 -1
  451. package/dist/esm-es5/css-shim-cfbf2cf5.js.br +0 -0
  452. package/dist/esm-es5/css-shim-cfbf2cf5.js.gz +0 -0
  453. package/dist/esm-es5/dom-c0f8af80.js.br +0 -0
  454. package/dist/esm-es5/dom-c0f8af80.js.gz +0 -0
  455. package/dist/esm-es5/grw-filter_6.entry.js +0 -7
  456. package/dist/esm-es5/grw-filter_6.entry.js.br +0 -0
  457. package/dist/esm-es5/grw-filter_6.entry.js.gz +0 -0
  458. package/dist/esm-es5/grw-filter_6.entry.js.map +0 -1
  459. package/dist/esm-es5/index-e862524f.js +0 -3
  460. package/dist/esm-es5/index-e862524f.js.br +0 -0
  461. package/dist/esm-es5/index-e862524f.js.gz +0 -0
  462. package/dist/esm-es5/index-e862524f.js.map +0 -1
  463. package/dist/esm-es5/shadow-css-12b9a099.js.br +0 -0
  464. package/dist/esm-es5/shadow-css-12b9a099.js.gz +0 -0
  465. package/dist/esm-es5/store-5565fa38.js.br +0 -0
  466. package/dist/esm-es5/store-5565fa38.js.gz +0 -0
  467. package/dist/esm-es5/store-5565fa38.js.map +0 -1
  468. package/dist/geotrek-rando-widget/assets/arrow-back.svg +0 -1
  469. package/dist/geotrek-rando-widget/assets/arrow-back.svg.br +0 -0
  470. package/dist/geotrek-rando-widget/assets/arrow-back.svg.gz +0 -0
  471. package/dist/geotrek-rando-widget/assets/ascent.svg +0 -1
  472. package/dist/geotrek-rando-widget/assets/ascent.svg.br +0 -0
  473. package/dist/geotrek-rando-widget/assets/ascent.svg.gz +0 -0
  474. package/dist/geotrek-rando-widget/assets/duration.svg +0 -1
  475. package/dist/geotrek-rando-widget/assets/duration.svg.br +0 -0
  476. package/dist/geotrek-rando-widget/assets/duration.svg.gz +0 -0
  477. package/dist/geotrek-rando-widget/assets/length.svg +0 -1
  478. package/dist/geotrek-rando-widget/assets/length.svg.br +0 -4
  479. package/dist/geotrek-rando-widget/assets/length.svg.gz +0 -0
  480. package/dist/geotrek-rando-widget/p-199359a3.system.js +0 -2
  481. package/dist/geotrek-rando-widget/p-199359a3.system.js.br +0 -0
  482. package/dist/geotrek-rando-widget/p-199359a3.system.js.gz +0 -0
  483. package/dist/geotrek-rando-widget/p-199359a3.system.js.map +0 -1
  484. package/dist/geotrek-rando-widget/p-19d69e2f.system.js +0 -3
  485. package/dist/geotrek-rando-widget/p-19d69e2f.system.js.br +0 -0
  486. package/dist/geotrek-rando-widget/p-19d69e2f.system.js.gz +0 -0
  487. package/dist/geotrek-rando-widget/p-19d69e2f.system.js.map +0 -1
  488. package/dist/geotrek-rando-widget/p-1eb5bb96.js.br +0 -0
  489. package/dist/geotrek-rando-widget/p-1eb5bb96.js.gz +0 -0
  490. package/dist/geotrek-rando-widget/p-24c3dfb6.entry.js +0 -7
  491. package/dist/geotrek-rando-widget/p-24c3dfb6.entry.js.br +0 -0
  492. package/dist/geotrek-rando-widget/p-24c3dfb6.entry.js.gz +0 -0
  493. package/dist/geotrek-rando-widget/p-24c3dfb6.entry.js.map +0 -1
  494. package/dist/geotrek-rando-widget/p-3eb96982.js.br +0 -0
  495. package/dist/geotrek-rando-widget/p-3eb96982.js.gz +0 -0
  496. package/dist/geotrek-rando-widget/p-504d151b.entry.js +0 -2
  497. package/dist/geotrek-rando-widget/p-504d151b.entry.js.br +0 -0
  498. package/dist/geotrek-rando-widget/p-504d151b.entry.js.gz +0 -0
  499. package/dist/geotrek-rando-widget/p-504d151b.entry.js.map +0 -1
  500. package/dist/geotrek-rando-widget/p-52c83c69.entry.js +0 -2
  501. package/dist/geotrek-rando-widget/p-52c83c69.entry.js.br +0 -0
  502. package/dist/geotrek-rando-widget/p-52c83c69.entry.js.gz +0 -0
  503. package/dist/geotrek-rando-widget/p-52c83c69.entry.js.map +0 -1
  504. package/dist/geotrek-rando-widget/p-66d490d8.system.js.br +0 -0
  505. package/dist/geotrek-rando-widget/p-66d490d8.system.js.gz +0 -0
  506. package/dist/geotrek-rando-widget/p-7262406c.js +0 -2
  507. package/dist/geotrek-rando-widget/p-7262406c.js.br +0 -0
  508. package/dist/geotrek-rando-widget/p-7262406c.js.gz +0 -0
  509. package/dist/geotrek-rando-widget/p-7262406c.js.map +0 -1
  510. package/dist/geotrek-rando-widget/p-88c3a6bd.js.br +0 -0
  511. package/dist/geotrek-rando-widget/p-88c3a6bd.js.gz +0 -0
  512. package/dist/geotrek-rando-widget/p-921dc146.system.entry.js +0 -2
  513. package/dist/geotrek-rando-widget/p-921dc146.system.entry.js.br +0 -0
  514. package/dist/geotrek-rando-widget/p-921dc146.system.entry.js.gz +0 -0
  515. package/dist/geotrek-rando-widget/p-921dc146.system.entry.js.map +0 -1
  516. package/dist/geotrek-rando-widget/p-99c86553.system.entry.js +0 -2
  517. package/dist/geotrek-rando-widget/p-99c86553.system.entry.js.br +0 -0
  518. package/dist/geotrek-rando-widget/p-99c86553.system.entry.js.gz +0 -0
  519. package/dist/geotrek-rando-widget/p-99c86553.system.entry.js.map +0 -1
  520. package/dist/geotrek-rando-widget/p-a96ced47.system.entry.js +0 -2
  521. package/dist/geotrek-rando-widget/p-a96ced47.system.entry.js.br +0 -0
  522. package/dist/geotrek-rando-widget/p-a96ced47.system.entry.js.gz +0 -0
  523. package/dist/geotrek-rando-widget/p-a96ced47.system.entry.js.map +0 -1
  524. package/dist/geotrek-rando-widget/p-a9a35a44.system.js.br +0 -0
  525. package/dist/geotrek-rando-widget/p-a9a35a44.system.js.gz +0 -0
  526. package/dist/geotrek-rando-widget/p-b00cf3cc.system.js +0 -2
  527. package/dist/geotrek-rando-widget/p-b00cf3cc.system.js.br +0 -0
  528. package/dist/geotrek-rando-widget/p-b00cf3cc.system.js.gz +0 -0
  529. package/dist/geotrek-rando-widget/p-b00cf3cc.system.js.map +0 -1
  530. package/dist/geotrek-rando-widget/p-c0687c5e.entry.js +0 -2
  531. package/dist/geotrek-rando-widget/p-c0687c5e.entry.js.br +0 -0
  532. package/dist/geotrek-rando-widget/p-c0687c5e.entry.js.gz +0 -0
  533. package/dist/geotrek-rando-widget/p-c0687c5e.entry.js.map +0 -1
  534. package/dist/geotrek-rando-widget/p-d8bdcfaf.js +0 -3
  535. package/dist/geotrek-rando-widget/p-d8bdcfaf.js.br +0 -0
  536. package/dist/geotrek-rando-widget/p-d8bdcfaf.js.gz +0 -0
  537. package/dist/geotrek-rando-widget/p-d8bdcfaf.js.map +0 -1
  538. package/dist/geotrek-rando-widget/p-e6f85aed.system.js.br +0 -0
  539. package/dist/geotrek-rando-widget/p-e6f85aed.system.js.gz +0 -0
  540. package/dist/geotrek-rando-widget/p-ee15d9b3.system.entry.js +0 -7
  541. package/dist/geotrek-rando-widget/p-ee15d9b3.system.entry.js.br +0 -0
  542. package/dist/geotrek-rando-widget/p-ee15d9b3.system.entry.js.gz +0 -0
  543. package/dist/geotrek-rando-widget/p-ee15d9b3.system.entry.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isObject","obj","constructor","Object","extend","target","src","keys","forEach","key","length","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","createElement","children","childNodes","style","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","document","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","this","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","matchMedia","requestAnimationFrame","callback","cancelAnimationFrame","id","getWindow","win","window","deleteProps","object","e","nextTick","delay","now","el","currentStyle","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","transform","webkitTransform","split","map","a","replace","join","MozTransform","OTransform","MsTransform","msTransform","toString","m41","parseFloat","m42","o","prototype","call","slice","isNode","node","HTMLElement","nodeType","args","to","noExtend","i","nextSource","undefined","keysArray","filter","indexOf","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","__swiper__","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","swiper","targetPosition","side","startPosition","translate","startTime","time","duration","params","speed","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","current","animate","getTime","progress","Math","max","min","easeProgress","cos","PI","currentPosition","scrollTo","overflow","elementChildren","element","selector","matches","tag","classes","classList","add","Array","isArray","elementOffset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","elementPrevAll","prevEls","previousElementSibling","prev","push","elementNextAll","nextEls","nextElementSibling","next","elementStyle","prop","elementIndex","child","previousSibling","elementParents","parents","parent","parentElement","elementTransitionEnd","fireCallBack","elementOuterSize","size","includeMargins","offsetWidth","support","calcSupport","smoothScroll","documentElement","touch","DocumentTouch","getSupport","deviceCached","calcDevice","platform","ua","device","ios","android","screenWidth","width","screenHeight","height","match","ipad","ipod","iphone","windows","macos","iPadScreens","os","getDevice","overrides","browser","calcBrowser","needPerspectiveFix","isSafari","toLowerCase","String","includes","major","minor","num","Number","isWebView","test","getBrowser","Resize","on","emit","observer","animationFrame","resizeHandler","destroyed","initialized","createObserver","ResizeObserver","entries","newWidth","newHeight","contentBoxSize","contentRect","inlineSize","blockSize","observe","removeObserver","unobserve","orientationChangeHandler","resizeObserver","Observer","extendParams","observers","attach","options","ObserverFunc","MutationObserver","WebkitMutationObserver","mutations","__preventObserver__","observerUpdate","attributes","childList","characterData","init","observeParents","containerParents","observeSlideChildren","destroy","disconnect","splice","eventsEmitter","events","handler","priority","self","eventsListeners","method","event","once","onceHandler","off","__emitterProxy","apply","onAny","eventsAnyListeners","offAny","index","eventHandler","data","context","unshift","eventsArray","updateSize","clientWidth","clientHeight","isHorizontal","isVertical","parseInt","isNaN","assign","updateSlides","getDirectionLabel","property","marginRight","getDirectionPropertyValue","label","slidesEl","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","slideEl","marginLeft","marginBottom","marginTop","centeredSlides","cssMode","gridEnabled","grid","rows","initSlides","slideSize","shouldResetSlideSize","slidesPerView","breakpoints","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","floor","swiperSlideSize","abs","slidesPerGroup","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","loop","groups","ceil","slidesBefore","slidesAfter","groupSize","_","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","v","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","contains","maxBackfaceHiddenSlides","remove","updateAutoHeight","activeSlides","setTransition","getSlideByIndex","getSlideIndexByData","visibleSlides","activeIndex","offsetHeight","minusOffset","isElement","offsetLeft","offsetTop","swiperSlideOffset","cssOverflowAdjustment","updateSlidesProgress","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","isVisible","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","autoHeight","updateSlidesClasses","getFilteredSlide","slideActiveClass","slideNextClass","slidePrevClass","activeSlide","nextSlide","prevSlide","emitSlidesClasses","processLazyPreloader","imageEl","slideSelector","closest","lazyEl","lazyPreloaderClass","unlazy","removeAttribute","preload","amount","lazyPreloadPrevNext","slidesPerViewDynamic","activeColumn","preloadColumns","from","column","slideIndexLastInView","rewind","realIndex","getActiveIndexByTranslate","normalizeSlideIndex","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","aIndex","skip","getAttribute","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","update","getSwiperTranslate","virtualTranslate","currentTranslate","setTranslate","byController","x","y","z","previousTranslate","newProgress","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","behavior","onTranslateToWrapperTransitionEnd","transitionEnd","transitionDuration","transitionEmit","direction","step","transitionStart","transition","slideTo","initial","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","t","_immediateVirtual","_cssModeVirtualInitialSet","initialSlide","onSlideToWrapperTransitionEnd","slideToLoop","indexAsNumber","newIndex","slideNext","perGroup","slidesPerGroupAuto","increment","loopPreventsSliding","loopFix","_clientLeft","slidePrev","normalize","val","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","threshold","currentSnap","nextSnap","slideToIndex","loopedSlides","getSlideIndex","loopCreate","slideRealIndex","activeSlideIndex","byMousewheel","prependSlidesIndexes","appendSlidesIndexes","isNext","isPrev","slidesPrepended","slidesAppended","swiperLoopMoveDOM","prepend","append","recalcSlides","currentSlideTranslate","newSlideTranslate","diff","touches","controller","control","loopParams","c","loopDestroy","newSlidesOrder","swiperSlideIndex","setGrabCursor","moving","simulateTouch","isLocked","touchEventsTarget","cursor","unsetGrabCursor","grabCursor","closestElement","base","__closestFrom","assignedSlot","found","getRootNode","onTouchStart","touchEventsData","evCache","pointerType","originalEvent","targetEl","which","button","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","composedPath","path","shadowRoot","noSwipingSelector","isTargetShadow","noSwiping","allowClick","swipeHandler","currentX","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","preventDefault","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","pointerIndex","findIndex","cachedEv","pointerId","targetTouch","preventedByNestedSwiper","prevX","prevY","touchReleaseOnEdges","targetTouches","diffX","diffY","sqrt","touchAngle","atan2","zoom","cancelable","touchMoveStopPropagation","nested","stopPropagation","touchesDiff","previousX","previousY","oneWayMovement","touchRatio","prevTouchesDirection","touchesDirection","isLoop","startTranslate","evt","bubbles","dispatchEvent","allowMomentumBounce","loopFixed","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","type","proceed","touchEndTime","timeDiff","pathTree","lastClickTime","currentPos","stopIndex","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","isNavButtonTarget","navigation","nextEl","prevEl","onResize","setBreakpoint","isVirtualLoop","autoplay","running","paused","resizeTimeout","resume","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","onLoad","dummyEventAttached","dummyEventListener","capture","domMethod","swiperMethod","passive","updateOnWindowResize","attachEvents","bind","detachEvents","events$1","isGridEnabled","breakpoint","getBreakpoint","breakpointsBase","currentBreakpoint","breakpointOnlyParams","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","fill","wasModuleEnabled","isModuleEnabled","disable","enable","directionChanged","needsReLoop","changeDirection","isEnabled","containerEl","currentHeight","innerHeight","points","point","minRatio","substr","value","sort","b","prepareClasses","prefix","resultClasses","item","classNames","addClasses","suffixes","autoheight","centered","removeClasses","wasLocked","lastSlideRightEdge","checkOverflow$1","defaults","createElements","url","uniqueNavElements","passiveListeners","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","extendedDefaults","Swiper","swipers","newParams","modules","__modules__","mod","swiperParams","passedParams","eventName","velocity","trunc","clickTimeout","velocities","imagesToLoad","imagesLoaded","setProgress","cls","className","getSlideClasses","updates","view","exact","spv","breakLoop","slideInView","complete","translateValue","translated","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","mounted","shadowEl","getWrapperSelector","trim","getWrapper","res","deleteInstance","cleanStyles","static","newDefaults","module","m","installModule","prototypeGroup","protoMethod","use","Keyboard","keyboard","onlyInViewport","pageUpDown","handle","kc","keyCode","charCode","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","shiftKey","altKey","ctrlKey","metaKey","inView","swiperWidth","swiperHeight","windowWidth","windowHeight","swiperOffset","swiperCoord","returnValue","createElementIfNotDefined","checkProps","Navigation","hideOnClick","disabledClass","hiddenClass","lockClass","navigationDisabledClass","makeElementsArray","getEl","toggleEl","disabled","subEl","tagName","onPrevClick","onNextClick","initButton","destroyButton","_s","pagination","clickable","isHidden","toggle","classesToSelector","Pagination","pfx","bulletElement","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","paginationDisabledClass","bullets","bulletSize","dynamicBulletIndex","isPaginationDisabled","setSideBullets","bulletEl","position","onBulletClick","newSlideIndex","currentSlideIndex","total","firstIndex","midIndex","classesToRemove","suffix","s","flat","bullet","bulletIndex","firstDisplayedBullet","lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","subElIndex","fractionEl","textContent","totalEl","progressbarDirection","scale","scaleX","scaleY","progressEl","innerHTML","render","paginationHTML","numberOfBullets"],"sources":["./node_modules/ssr-window/ssr-window.esm.js","./node_modules/swiper/shared/utils.js","./node_modules/swiper/shared/get-support.js","./node_modules/swiper/shared/get-device.js","./node_modules/swiper/shared/get-browser.js","./node_modules/swiper/core/modules/resize/resize.js","./node_modules/swiper/core/modules/observer/observer.js","./node_modules/swiper/core/events-emitter.js","./node_modules/swiper/core/update/updateSize.js","./node_modules/swiper/core/update/updateSlides.js","./node_modules/swiper/core/update/updateAutoHeight.js","./node_modules/swiper/core/update/updateSlidesOffset.js","./node_modules/swiper/core/update/updateSlidesProgress.js","./node_modules/swiper/core/update/updateProgress.js","./node_modules/swiper/core/update/updateSlidesClasses.js","./node_modules/swiper/shared/process-lazy-preloader.js","./node_modules/swiper/core/update/updateActiveIndex.js","./node_modules/swiper/core/update/updateClickedSlide.js","./node_modules/swiper/core/update/index.js","./node_modules/swiper/core/translate/getTranslate.js","./node_modules/swiper/core/translate/setTranslate.js","./node_modules/swiper/core/translate/minTranslate.js","./node_modules/swiper/core/translate/maxTranslate.js","./node_modules/swiper/core/translate/translateTo.js","./node_modules/swiper/core/translate/index.js","./node_modules/swiper/core/transition/setTransition.js","./node_modules/swiper/core/transition/transitionEmit.js","./node_modules/swiper/core/transition/transitionStart.js","./node_modules/swiper/core/transition/transitionEnd.js","./node_modules/swiper/core/transition/index.js","./node_modules/swiper/core/slide/slideTo.js","./node_modules/swiper/core/slide/slideToLoop.js","./node_modules/swiper/core/slide/slideNext.js","./node_modules/swiper/core/slide/slidePrev.js","./node_modules/swiper/core/slide/slideReset.js","./node_modules/swiper/core/slide/slideToClosest.js","./node_modules/swiper/core/slide/slideToClickedSlide.js","./node_modules/swiper/core/slide/index.js","./node_modules/swiper/core/loop/loopCreate.js","./node_modules/swiper/core/loop/loopFix.js","./node_modules/swiper/core/loop/loopDestroy.js","./node_modules/swiper/core/loop/index.js","./node_modules/swiper/core/grab-cursor/setGrabCursor.js","./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","./node_modules/swiper/core/grab-cursor/index.js","./node_modules/swiper/core/events/onTouchStart.js","./node_modules/swiper/core/events/onTouchMove.js","./node_modules/swiper/core/events/onTouchEnd.js","./node_modules/swiper/core/events/onResize.js","./node_modules/swiper/core/events/onClick.js","./node_modules/swiper/core/events/onScroll.js","./node_modules/swiper/core/events/onLoad.js","./node_modules/swiper/core/events/index.js","./node_modules/swiper/core/breakpoints/setBreakpoint.js","./node_modules/swiper/core/breakpoints/getBreakpoint.js","./node_modules/swiper/core/breakpoints/index.js","./node_modules/swiper/core/classes/addClasses.js","./node_modules/swiper/core/classes/removeClasses.js","./node_modules/swiper/core/classes/index.js","./node_modules/swiper/core/check-overflow/index.js","./node_modules/swiper/core/defaults.js","./node_modules/swiper/core/moduleExtendParams.js","./node_modules/swiper/core/core.js","./node_modules/swiper/modules/keyboard/keyboard.js","./node_modules/swiper/shared/create-element-if-not-defined.js","./node_modules/swiper/modules/navigation/navigation.js","./node_modules/swiper/shared/classes-to-selector.js","./node_modules/swiper/modules/pagination/pagination.js"],"sourcesContent":["/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n Object.keys(src).forEach((key) => {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nconst ssrDocument = {\n body: {},\n addEventListener() { },\n removeEventListener() { },\n activeElement: {\n blur() { },\n nodeName: '',\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() { },\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() { },\n getElementsByTagName() {\n return [];\n },\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","import { getWindow, getDocument } from 'ssr-window';\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n}\nfunction nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n}\nfunction now() {\n return Date.now();\n}\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n if (!style) {\n style = el.style;\n }\n return style;\n}\nfunction getTranslate(el, axis = 'x') {\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el, null);\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n}\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\nfunction extend(...args) {\n const to = Object(args[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n}\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\nfunction animateCSSModeScroll({\n swiper,\n targetPosition,\n side\n}) {\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n const animate = () => {\n time = new Date().getTime();\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n animate();\n}\nfunction getSlideTransformEl(slideEl) {\n return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowEl && slideEl.shadowEl.querySelector('.swiper-slide-transform') || slideEl;\n}\nfunction findElementsInElements(elements = [], selector = '') {\n const found = [];\n elements.forEach(el => {\n found.push(...el.querySelectorAll(selector));\n });\n return found;\n}\nfunction elementChildren(element, selector = '') {\n return [...element.children].filter(el => el.matches(selector));\n}\nfunction createElement(tag, classes = []) {\n const el = document.createElement(tag);\n el.classList.add(...(Array.isArray(classes) ? classes : [classes]));\n return el;\n}\nfunction elementOffset(el) {\n const window = getWindow();\n const document = getDocument();\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n}\nfunction elementPrevAll(el, selector) {\n const prevEls = [];\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if (prev.matches(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return prevEls;\n}\nfunction elementNextAll(el, selector) {\n const nextEls = [];\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if (next.matches(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return nextEls;\n}\nfunction elementStyle(el, prop) {\n const window = getWindow();\n return window.getComputedStyle(el, null).getPropertyValue(prop);\n}\nfunction elementIndex(el) {\n let child = el;\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\nfunction elementParents(el, selector) {\n const parents = []; // eslint-disable-line\n let parent = el.parentElement; // eslint-disable-line\n while (parent) {\n if (selector) {\n if (parent.matches(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentElement;\n }\n return parents;\n}\nfunction elementTransitionEnd(el, callback) {\n function fireCallBack(e) {\n if (e.target !== el) return;\n callback.call(el, e);\n el.removeEventListener('transitionend', fireCallBack);\n }\n if (callback) {\n el.addEventListener('transitionend', fireCallBack);\n }\n}\nfunction elementOuterSize(el, size, includeMargins) {\n const window = getWindow();\n if (includeMargins) {\n return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom'));\n }\n return el.offsetWidth;\n}\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty, getSlideTransformEl,\n// dom\nfindElementsInElements, createElement, elementChildren, elementOffset, elementPrevAll, elementNextAll, elementStyle, elementIndex, elementParents, elementTransitionEnd, elementOuterSize };","import { getWindow, getDocument } from 'ssr-window';\nlet support;\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)\n };\n}\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\nlet deviceCached;\nfunction calcDevice({\n userAgent\n} = {}) {\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n }\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n\n // Export object\n return device;\n}\nfunction getDevice(overrides = {}) {\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n return deviceCached;\n}\nexport { getDevice };","import { getWindow } from 'ssr-window';\nlet browser;\nfunction calcBrowser() {\n const window = getWindow();\n let needPerspectiveFix = false;\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n if (isSafari()) {\n const ua = String(window.navigator.userAgent);\n if (ua.includes('Version/')) {\n const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));\n needPerspectiveFix = major < 16 || major === 16 && minor < 2;\n }\n }\n return {\n isSafari: needPerspectiveFix || isSafari(),\n needPerspectiveFix,\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\n}\nexport { getBrowser };","import { getWindow } from 'ssr-window';\nexport default function Resize({\n swiper,\n on,\n emit\n}) {\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(({\n contentBoxSize,\n contentRect,\n target\n }) => {\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}","import { getWindow } from 'ssr-window';\nimport { elementParents } from '../../../shared/utils.js';\nexport default function Observer({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const observers = [];\n const window = getWindow();\n const attach = (target, options = {}) => {\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (swiper.__preventObserver__) return;\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n const init = () => {\n if (!swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = elementParents(swiper.el);\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n }\n // Observe container\n attach(swiper.el, {\n childList: swiper.params.observeSlideChildren\n });\n\n // Observe wrapper\n attach(swiper.wrapperEl, {\n attributes: false\n });\n };\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}","/* eslint-disable no-underscore-dangle */\n\nexport default {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n function onceHandler(...args) {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n handler.apply(self, args);\n }\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n return self;\n },\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n return self;\n },\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit(...args) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};","import { elementStyle } from '../../shared/utils.js';\nexport default function updateSize() {\n const swiper = this;\n let width;\n let height;\n const el = swiper.el;\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = el.clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = el.clientHeight;\n }\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10);\n height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { elementChildren, elementOuterSize, elementStyle, setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n const swiper = this;\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n }\n // prettier-ignore\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n const params = swiper.params;\n const {\n wrapperEl,\n slidesEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n slides.forEach(slideEl => {\n if (rtl) {\n slideEl.style.marginLeft = '';\n } else {\n slideEl.style.marginRight = '';\n }\n slideEl.style.marginBottom = '';\n slideEl.style.marginTop = '';\n });\n\n // reset cssMode offsets\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', '');\n }\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n }\n\n // Calc slides\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n let slide;\n if (slides[i]) slide = slides[i];\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = ``;\n }\n const slideStyles = getComputedStyle(slide);\n const currentTransform = slide.style.transform;\n const currentWebKitTransform = slide.style.webkitTransform;\n if (currentTransform) {\n slide.style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n if (currentTransform) {\n slide.style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (params.setWrapperSize) {\n wrapperEl.style[getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (isVirtual && params.loop) {\n const size = slidesSizesGrid[0] + spaceBetween;\n if (params.slidesPerGroup > 1) {\n const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);\n const groupSize = size * params.slidesPerGroup;\n for (let i = 0; i < groups; i += 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);\n }\n }\n for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {\n if (params.slidesPerGroup === 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + size);\n }\n slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);\n swiper.virtualSize += size;\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n if (spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode || params.loop) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }).forEach(slideEl => {\n slideEl.style[key] = `${spaceBetween}px`;\n });\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap <= 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.el.classList.remove(backFaceHiddenClass);\n }\n }\n}","export default function updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides[swiper.getSlideIndexByData(index)];\n }\n return swiper.slides[index];\n };\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || []).forEach(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;\n}","export default function updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n // eslint-disable-next-line\n const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();\n }\n}","export default function updateSlidesProgress(translate = this && this.translate || 0) {\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n\n // Visible Slides\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass);\n });\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n let spaceBetween = params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides[i].classList.add(params.slideVisibleClass);\n }\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n}","export default function updateProgress(translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd,\n progressLoop\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;\n const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;\n isBeginning = isBeginningRounded || progress <= 0;\n isEnd = isEndRounded || progress >= 1;\n if (isBeginningRounded) progress = 0;\n if (isEndRounded) progress = 1;\n }\n if (params.loop) {\n const firstSlideIndex = swiper.getSlideIndexByData(0);\n const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);\n const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];\n const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];\n const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];\n const translateAbs = Math.abs(translate);\n if (translateAbs >= firstSlideTranslate) {\n progressLoop = (translateAbs - firstSlideTranslate) / translateMax;\n } else {\n progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;\n }\n if (progressLoop > 1) progressLoop -= 1;\n }\n Object.assign(swiper, {\n progress,\n progressLoop,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n swiper.emit('progress', progress);\n}","import { elementChildren, elementNextAll, elementPrevAll } from '../../shared/utils.js';\nexport default function updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n slidesEl,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const getFilteredSlide = selector => {\n return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];\n };\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n });\n let activeSlide;\n if (isVirtual) {\n if (params.loop) {\n let slideIndex = activeIndex - swiper.virtual.slidesBefore;\n if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;\n if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${slideIndex}\"]`);\n } else {\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${activeIndex}\"]`);\n }\n } else {\n activeSlide = slides[activeIndex];\n }\n if (activeSlide) {\n // Active classes\n activeSlide.classList.add(params.slideActiveClass);\n\n // Next Slide\n let nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !nextSlide) {\n nextSlide = slides[0];\n }\n if (nextSlide) {\n nextSlide.classList.add(params.slideNextClass);\n }\n // Prev Slide\n let prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !prevSlide === 0) {\n prevSlide = slides[slides.length - 1];\n }\n if (prevSlide) {\n prevSlide.classList.add(params.slidePrevClass);\n }\n }\n swiper.emitSlidesClasses();\n}","export const processLazyPreloader = (swiper, imageEl) => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n const slideEl = imageEl.closest(slideSelector());\n if (slideEl) {\n const lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (lazyEl) lazyEl.remove();\n }\n};\nconst unlazy = (swiper, index) => {\n if (!swiper.slides[index]) return;\n const imageEl = swiper.slides[index].querySelector('[loading=\"lazy\"]');\n if (imageEl) imageEl.removeAttribute('loading');\n};\nexport const preload = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n let amount = swiper.params.lazyPreloadPrevNext;\n const len = swiper.slides.length;\n if (!len || !amount || amount < 0) return;\n amount = Math.min(amount, len);\n const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);\n const activeIndex = swiper.activeIndex;\n if (swiper.params.grid && swiper.params.grid.rows > 1) {\n const activeColumn = activeIndex;\n const preloadColumns = [activeColumn - amount];\n preloadColumns.push(...Array.from({\n length: amount\n }).map((_, i) => {\n return activeColumn + slidesPerView + i;\n }));\n swiper.slides.forEach((slideEl, i) => {\n if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);\n });\n return;\n }\n const slideIndexLastInView = activeIndex + slidesPerView - 1;\n if (swiper.params.rewind || swiper.params.loop) {\n for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {\n const realIndex = (i % len + len) % len;\n if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);\n }\n } else {\n for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {\n if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {\n unlazy(swiper, i);\n }\n }\n }\n};","import { preload } from '../../shared/process-lazy-preloader.js';\nexport function getActiveIndexByTranslate(swiper) {\n const {\n slidesGrid,\n params\n } = swiper;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n let activeIndex;\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n return activeIndex;\n}\nexport default function updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n const getVirtualRealIndex = aIndex => {\n let realIndex = aIndex - swiper.virtual.slidesBefore;\n if (realIndex < 0) {\n realIndex = swiper.virtual.slides.length + realIndex;\n }\n if (realIndex >= swiper.virtual.slides.length) {\n realIndex -= swiper.virtual.slides.length;\n }\n return realIndex;\n };\n if (typeof activeIndex === 'undefined') {\n activeIndex = getActiveIndexByTranslate(swiper);\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.realIndex = getVirtualRealIndex(activeIndex);\n }\n return;\n }\n // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\n } else if (swiper.slides[activeIndex]) {\n realIndex = parseInt(swiper.slides[activeIndex].getAttribute('data-swiper-slide-index') || activeIndex, 10);\n } else {\n realIndex = activeIndex;\n }\n Object.assign(swiper, {\n previousSnapIndex,\n snapIndex,\n previousRealIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n if (swiper.initialized) {\n preload(swiper);\n }\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","export default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = e.closest(`.${params.slideClass}, swiper-slide`);\n let slideFound = false;\n let slideIndex;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import updateSize from './updateSize.js';\nimport updateSlides from './updateSlides.js';\nimport updateAutoHeight from './updateAutoHeight.js';\nimport updateSlidesOffset from './updateSlidesOffset.js';\nimport updateSlidesProgress from './updateSlidesProgress.js';\nimport updateProgress from './updateProgress.js';\nimport updateSlidesClasses from './updateSlidesClasses.js';\nimport updateActiveIndex from './updateActiveIndex.js';\nimport updateClickedSlide from './updateClickedSlide.js';\nexport default {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};","import { getTranslate } from '../../shared/utils.js';\nexport default function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n wrapperEl\n } = swiper;\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n let currentTranslate = getTranslate(wrapperEl, axis);\n currentTranslate += swiper.cssOverflowAdjustment();\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n if (swiper.isHorizontal()) {\n x -= swiper.cssOverflowAdjustment();\n } else {\n y -= swiper.cssOverflowAdjustment();\n }\n wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;\n }\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}","import getTranslate from './getTranslate.js';\nimport setTranslate from './setTranslate.js';\nimport minTranslate from './minTranslate.js';\nimport maxTranslate from './maxTranslate.js';\nimport translateTo from './translateTo.js';\nexport default {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};","export default function setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style.transitionDuration = `${duration}ms`;\n }\n swiper.emit('setTransition', duration, byController);\n}","export default function transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step\n}) {\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit(`transition${step}`);\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n swiper.emit(`slideChangeTransition${step}`);\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}","import setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\nexport default {\n setTransition,\n transitionStart,\n transitionEnd\n};","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo(index = 0, speed = this.params.speed, runCallbacks = true, internal, initial) {\n if (typeof index === 'string') {\n index = parseInt(index, 10);\n }\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex];\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) {\n return false;\n }\n }\n }\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n // Update progress\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';\n\n // Update Index\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {\n swiper._cssModeVirtualInitialSet = true;\n requestAnimationFrame(() => {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._immediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n return true;\n }\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n }\n return true;\n}","export default function slideToLoop(index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n if (typeof index === 'string') {\n const indexAsNumber = parseInt(index, 10);\n index = indexAsNumber;\n }\n const swiper = this;\n let newIndex = index;\n if (swiper.params.loop) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n // eslint-disable-next-line\n newIndex = newIndex + swiper.virtual.slidesBefore;\n } else {\n newIndex = swiper.getSlideIndexByData(newIndex);\n }\n }\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n enabled,\n params,\n animating\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'next'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled,\n animating\n } = swiper;\n if (!enabled) return swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'prev'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n let prevIndex = 0;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import { elementChildren, nextTick } from '../../shared/utils.js';\nexport default function slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import slideTo from './slideTo.js';\nimport slideToLoop from './slideToLoop.js';\nimport slideNext from './slideNext.js';\nimport slidePrev from './slidePrev.js';\nimport slideReset from './slideReset.js';\nimport slideToClosest from './slideToClosest.js';\nimport slideToClickedSlide from './slideToClickedSlide.js';\nexport default {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};","import { elementChildren } from '../../shared/utils.js';\nexport default function loopCreate(slideRealIndex) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n slides.forEach((el, index) => {\n el.setAttribute('data-swiper-slide-index', index);\n });\n swiper.loopFix({\n slideRealIndex,\n direction: params.centeredSlides ? undefined : 'next'\n });\n}","export default function loopFix({\n slideRealIndex,\n slideTo = true,\n direction,\n setTranslate,\n activeSlideIndex,\n byController,\n byMousewheel\n} = {}) {\n const swiper = this;\n if (!swiper.params.loop) return;\n swiper.emit('beforeLoopFix');\n const {\n slides,\n allowSlidePrev,\n allowSlideNext,\n slidesEl,\n params\n } = swiper;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n if (swiper.virtual && params.virtual.enabled) {\n if (slideTo) {\n if (!params.centeredSlides && swiper.snapIndex === 0) {\n swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {\n swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);\n } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {\n swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n return;\n }\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10));\n let loopedSlides = params.loopedSlides || slidesPerView;\n if (loopedSlides % params.slidesPerGroup !== 0) {\n loopedSlides += params.slidesPerGroup - loopedSlides % params.slidesPerGroup;\n }\n swiper.loopedSlides = loopedSlides;\n const prependSlidesIndexes = [];\n const appendSlidesIndexes = [];\n let activeIndex = swiper.activeIndex;\n if (typeof activeSlideIndex === 'undefined') {\n activeSlideIndex = swiper.getSlideIndex(swiper.slides.filter(el => el.classList.contains(params.slideActiveClass))[0]);\n } else {\n activeIndex = activeSlideIndex;\n }\n const isNext = direction === 'next' || !direction;\n const isPrev = direction === 'prev' || !direction;\n let slidesPrepended = 0;\n let slidesAppended = 0;\n // prepend last slides before start\n if (activeSlideIndex < loopedSlides) {\n slidesPrepended = Math.max(loopedSlides - activeSlideIndex, params.slidesPerGroup);\n for (let i = 0; i < loopedSlides - activeSlideIndex; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n prependSlidesIndexes.push(slides.length - index - 1);\n }\n } else if (activeSlideIndex /* + slidesPerView */ > swiper.slides.length - loopedSlides * 2) {\n slidesAppended = Math.max(activeSlideIndex - (swiper.slides.length - loopedSlides * 2), params.slidesPerGroup);\n for (let i = 0; i < slidesAppended; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n appendSlidesIndexes.push(index);\n }\n }\n if (isPrev) {\n prependSlidesIndexes.forEach(index => {\n swiper.slides[index].swiperLoopMoveDOM = true;\n slidesEl.prepend(swiper.slides[index]);\n swiper.slides[index].swiperLoopMoveDOM = false;\n });\n }\n if (isNext) {\n appendSlidesIndexes.forEach(index => {\n swiper.slides[index].swiperLoopMoveDOM = true;\n slidesEl.append(swiper.slides[index]);\n swiper.slides[index].swiperLoopMoveDOM = false;\n });\n }\n swiper.recalcSlides();\n if (params.slidesPerView === 'auto') {\n swiper.updateSlides();\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (slideTo) {\n if (prependSlidesIndexes.length > 0 && isPrev) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex + slidesPrepended, 0, false, true);\n if (setTranslate) {\n swiper.touches[swiper.isHorizontal() ? 'startX' : 'startY'] += diff;\n }\n }\n } else {\n if (setTranslate) {\n swiper.slideToLoop(slideRealIndex, 0, false, true);\n }\n }\n } else if (appendSlidesIndexes.length > 0 && isNext) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex - slidesAppended, 0, false, true);\n if (setTranslate) {\n swiper.touches[swiper.isHorizontal() ? 'startX' : 'startY'] += diff;\n }\n }\n } else {\n swiper.slideToLoop(slideRealIndex, 0, false, true);\n }\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.controller && swiper.controller.control && !byController) {\n const loopParams = {\n slideRealIndex,\n slideTo: false,\n direction,\n setTranslate,\n activeSlideIndex,\n byController: true\n };\n if (Array.isArray(swiper.controller.control)) {\n swiper.controller.control.forEach(c => {\n if (!c.destroyed && c.params.loop) c.loopFix(loopParams);\n });\n } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {\n swiper.controller.control.loopFix(loopParams);\n }\n }\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n swiper.recalcSlides();\n const newSlidesOrder = [];\n swiper.slides.forEach(slideEl => {\n const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;\n newSlidesOrder[index] = slideEl;\n });\n swiper.slides.forEach(slideEl => {\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n newSlidesOrder.forEach(slideEl => {\n slidesEl.append(slideEl);\n });\n swiper.recalcSlides();\n swiper.slideTo(swiper.realIndex, 0);\n}","import loopCreate from './loopCreate.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n loopCreate,\n loopFix,\n loopDestroy\n};","export default function setGrabCursor(moving) {\n const swiper = this;\n if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}","export default function unsetGrabCursor() {\n const swiper = this;\n if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\nexport default {\n setGrabCursor,\n unsetGrabCursor\n};","import { getWindow, getDocument } from 'ssr-window';\nimport { now } from '../../shared/utils.js';\n\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\nfunction closestElement(selector, base = this) {\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n if (!found && !el.getRootNode) {\n return null;\n }\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n data.evCache.push(event);\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let targetEl = e.target;\n if (params.touchEventsTarget === 'wrapper') {\n if (!swiper.wrapperEl.contains(targetEl)) return;\n }\n if ('which' in e && e.which === 3) return;\n if ('button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n // change target el for shadow root component\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n // eslint-disable-next-line\n const eventPath = event.composedPath ? event.composedPath() : event.path;\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n targetEl = eventPath[0];\n }\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot);\n\n // use closestElement for shadow root element to get the actual closest for nested shadow root element\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!targetEl.closest(params.swipeHandler)) return;\n }\n touches.currentX = e.pageX;\n touches.currentY = e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n let preventDefault = true;\n if (targetEl.matches(data.focusableElements)) {\n preventDefault = false;\n if (targetEl.nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl) {\n document.activeElement.blur();\n }\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {\n e.preventDefault();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport { now } from '../../shared/utils.js';\nexport default function onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n const pointerIndex = data.evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) data.evCache[pointerIndex] = e;\n const targetTouch = data.evCache.length > 1 ? data.evCache[0] : e;\n const pageX = targetTouch.pageX;\n const pageY = targetTouch.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n if (!e.target.matches(data.focusableElements)) {\n swiper.allowClick = false;\n }\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n prevX: swiper.touches.currentX,\n prevY: swiper.touches.currentY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n return;\n }\n if (params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n if (document.activeElement) {\n if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling || swiper.zoom && swiper.params.zoom && swiper.params.zoom.enabled && data.evCache.length > 1) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n let diff = swiper.isHorizontal() ? diffX : diffY;\n let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;\n if (params.oneWayMovement) {\n diff = Math.abs(diff) * (rtl ? 1 : -1);\n touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);\n }\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) {\n diff = -diff;\n touchesDiff = -touchesDiff;\n }\n const prevTouchesDirection = swiper.touchesDirection;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';\n const isLoop = swiper.params.loop && !params.cssMode;\n if (!data.isMoved) {\n if (isLoop) {\n swiper.loopFix({\n direction: swiper.swipeDirection\n });\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true\n });\n swiper.wrapperEl.dispatchEvent(evt);\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n let loopFixed;\n if (data.isMoved && prevTouchesDirection !== swiper.touchesDirection && isLoop && Math.abs(diff) >= 1) {\n // need another loop fix\n swiper.loopFix({\n direction: swiper.swipeDirection,\n setTranslate: true\n });\n loopFixed = true;\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0) {\n if (isLoop && !loopFixed && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.size / 2 : swiper.minTranslate())) {\n swiper.loopFix({\n direction: 'prev',\n setTranslate: true,\n activeSlideIndex: 0\n });\n }\n if (data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n }\n }\n } else if (diff < 0) {\n if (isLoop && !loopFixed && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.size / 2 : swiper.maxTranslate())) {\n swiper.loopFix({\n direction: 'next',\n setTranslate: true,\n activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))\n });\n }\n if (data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n }\n }\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n }\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../shared/utils.js';\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const pointerIndex = data.evCache.findIndex(cachedEv => cachedEv.pointerId === event.pointerId);\n if (pointerIndex >= 0) {\n data.evCache.splice(pointerIndex, 1);\n }\n if (['pointercancel', 'pointerout', 'pointerleave'].includes(event.type)) {\n const proceed = event.type === 'pointercancel' && (swiper.browser.isSafari || swiper.browser.isWebView);\n if (!proceed) {\n return;\n }\n }\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.cssMode) {\n return;\n }\n if (params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n }\n\n // Find current slide\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n }\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n const isVirtualLoop = isVirtual && params.loop;\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n if (swiper.params.loop && !isVirtual) {\n swiper.slideToLoop(swiper.realIndex, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n }\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n clearTimeout(swiper.autoplay.resizeTimeout);\n swiper.autoplay.resizeTimeout = setTimeout(() => {\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.resume();\n }\n }, 500);\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { processLazyPreloader } from '../../shared/process-lazy-preloader.js';\nexport default function onLoad(e) {\n const swiper = this;\n processLazyPreloader(swiper, e.target);\n if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {\n return;\n }\n swiper.update();\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart.js';\nimport onTouchMove from './onTouchMove.js';\nimport onTouchEnd from './onTouchEnd.js';\nimport onResize from './onResize.js';\nimport onClick from './onClick.js';\nimport onScroll from './onScroll.js';\nimport onLoad from './onLoad.js';\nlet dummyEventAttached = false;\nfunction dummyEventListener() {}\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n el,\n wrapperEl,\n device\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method;\n\n // Touch Events\n el[domMethod]('pointerdown', swiper.onTouchStart, {\n passive: false\n });\n document[domMethod]('pointermove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('pointerup', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointercancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerout', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerleave', swiper.onTouchEnd, {\n passive: true\n });\n\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n\n // Images loader\n el[domMethod]('load', swiper.onLoad, {\n capture: true\n });\n};\nfunction attachEvents() {\n const swiper = this;\n const document = getDocument();\n const {\n params\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n swiper.onLoad = onLoad.bind(swiper);\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n events(swiper, 'on');\n}\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\nexport default {\n attachEvents,\n detachEvents\n};","import { extend } from '../../shared/utils.js';\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\nexport default function setBreakpoint() {\n const swiper = this;\n const {\n realIndex,\n initialized,\n params,\n el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n\n // Get breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n\n // Toggle navigation, pagination, scrollbar\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n if (typeof breakpointParams[prop] === 'undefined') return;\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n }\n swiper.emit('breakpoint', breakpointParams);\n}","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base = 'window', containerEl) {\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}","import setBreakpoint from './setBreakpoint.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n setBreakpoint,\n getBreakpoint\n};","function prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\nexport default function addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n el,\n device\n } = swiper;\n // prettier-ignore\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n el.classList.add(...classNames);\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n const swiper = this;\n const {\n el,\n classNames\n } = swiper;\n el.classList.remove(...classNames);\n swiper.emitContainerClasses();\n}","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n addClasses,\n removeClasses\n};","function checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\nexport default {\n checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n oneWayMovement: false,\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 5,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // loop\n loop: false,\n loopedSlides: null,\n loopPreventsSliding: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideActiveClass: 'swiper-slide-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideNextClass: 'swiper-slide-next',\n slidePrevClass: 'swiper-slide-prev',\n wrapperClass: 'swiper-wrapper',\n lazyPreloaderClass: 'swiper-lazy-preloader',\n lazyPreloadPrevNext: 0,\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj = {}) {\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { extend, deleteProps, createElement, elementChildren, elementStyle, elementIndex } from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\nimport eventsEmitter from './events-emitter.js';\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nimport { processLazyPreloader, preload } from '../shared/process-lazy-preloader.js';\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events,\n breakpoints,\n checkOverflow,\n classes\n};\nconst extendedDefaults = {};\nclass Swiper {\n constructor(...args) {\n let el;\n let params;\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n const document = getDocument();\n if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {\n const swipers = [];\n document.querySelectorAll(params.el).forEach(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n // eslint-disable-next-line no-constructor-return\n return swipers;\n }\n\n // Swiper Instance\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n params,\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n });\n\n // Extend defaults with modules params\n const swiperParams = extend({}, defaults, allModulesParams);\n\n // Extend defaults with passed params\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params);\n\n // add event listeners\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n }\n\n // Extend Swiper\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: [],\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n cssOverflowAdjustment() {\n // Returns 0 unless `translate` is > 2**23\n // Should be subtracted from css values to prevent overflow\n return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;\n },\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: 0,\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n startMoving: undefined,\n evCache: []\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper');\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n // eslint-disable-next-line no-constructor-return\n return swiper;\n }\n getSlideIndex(slideEl) {\n const {\n slidesEl,\n params\n } = this;\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n const firstSlideIndex = elementIndex(slides[0]);\n return elementIndex(slideEl) - firstSlideIndex;\n }\n getSlideIndexByData(index) {\n return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]);\n }\n recalcSlides() {\n const swiper = this;\n const {\n slidesEl,\n params\n } = swiper;\n swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n }\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit('enable');\n }\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit('disable');\n }\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.forEach(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n slidesPerViewDynamic(view = 'current', exact = false) {\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex] ? slides[activeIndex].swiperSlideSize : 0;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n return spv;\n }\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n }\n });\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (params.freeMode && params.freeMode.enabled && !params.cssMode) {\n setTranslate();\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {\n const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;\n translated = swiper.slideTo(slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);\n swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.forEach(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n if (swiper.rtl) {\n swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n swiper.update();\n }\n mount(element) {\n const swiper = this;\n if (swiper.mounted) return true;\n\n // Find el\n let el = element || swiper.params.el;\n if (typeof el === 'string') {\n el = document.querySelector(el);\n }\n if (!el) {\n return false;\n }\n el.swiper = swiper;\n if (el.shadowEl) {\n swiper.isElement = true;\n }\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = el.shadowRoot.querySelector(getWrapperSelector());\n // Children needs to return slot items\n return res;\n }\n return elementChildren(el, getWrapperSelector())[0];\n };\n // Find Wrapper\n let wrapperEl = getWrapper();\n if (!wrapperEl && swiper.params.createElements) {\n wrapperEl = createElement('div', swiper.params.wrapperClass);\n el.append(wrapperEl);\n elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => {\n wrapperEl.append(slideEl);\n });\n }\n Object.assign(swiper, {\n el,\n wrapperEl,\n slidesEl: swiper.isElement ? el : wrapperEl,\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),\n wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box'\n });\n return true;\n }\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n }\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Attach events\n swiper.attachEvents();\n [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n } else {\n imageEl.addEventListener('load', e => {\n processLazyPreloader(swiper, e.target);\n });\n }\n });\n preload(swiper);\n\n // Init Flag\n swiper.initialized = true;\n preload(swiper);\n\n // Emit\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params,\n el,\n wrapperEl,\n slides\n } = swiper;\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n el.removeAttribute('style');\n wrapperEl.removeAttribute('style');\n if (slides && slides.length) {\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n slideEl.removeAttribute('style');\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n }\n }\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n if (deleteInstance !== false) {\n swiper.el.swiper = null;\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n return null;\n }\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n static get extendedDefaults() {\n return extendedDefaults;\n }\n static get defaults() {\n return defaults;\n }\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n Swiper.installModule(module);\n return Swiper;\n }\n}\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","/* eslint-disable consistent-return */\nimport { getWindow, getDocument } from 'ssr-window';\nimport { elementOffset, elementParents } from '../../shared/utils.js';\nexport default function Keyboard({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const document = getDocument();\n const window = getWindow();\n swiper.keyboard = {\n enabled: false\n };\n extendParams({\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true\n }\n });\n function handle(event) {\n if (!swiper.enabled) return;\n const {\n rtlTranslate: rtl\n } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n const kc = e.keyCode || e.charCode;\n const pageUpDown = swiper.params.keyboard.pageUpDown;\n const isPageUp = pageUpDown && kc === 33;\n const isPageDown = pageUpDown && kc === 34;\n const isArrowLeft = kc === 37;\n const isArrowRight = kc === 39;\n const isArrowUp = kc === 38;\n const isArrowDown = kc === 40;\n // Directions locks\n if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {\n return false;\n }\n if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {\n return false;\n }\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n let inView = false;\n // Check that swiper should be inside of visible area of window\n if (elementParents(swiper.el, `.${swiper.params.slideClass}, swiper-slide`).length > 0 && elementParents(swiper.el, `.${swiper.params.slideActiveClass}`).length === 0) {\n return undefined;\n }\n const el = swiper.el;\n const swiperWidth = el.clientWidth;\n const swiperHeight = el.clientHeight;\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const swiperOffset = elementOffset(el);\n if (rtl) swiperOffset.left -= el.scrollLeft;\n const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n inView = true;\n }\n }\n if (!inView) return undefined;\n }\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();\n if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n emit('keyPress', kc);\n return undefined;\n }\n function enable() {\n if (swiper.keyboard.enabled) return;\n document.addEventListener('keydown', handle);\n swiper.keyboard.enabled = true;\n }\n function disable() {\n if (!swiper.keyboard.enabled) return;\n document.removeEventListener('keydown', handle);\n swiper.keyboard.enabled = false;\n }\n on('init', () => {\n if (swiper.params.keyboard.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n if (swiper.keyboard.enabled) {\n disable();\n }\n });\n Object.assign(swiper.keyboard, {\n enable,\n disable\n });\n}","import { createElement, elementChildren } from './utils.js';\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = elementChildren(swiper.el, `.${checkProps[key]}`)[0];\n if (!element) {\n element = createElement('div', checkProps[key]);\n element.className = checkProps[key];\n swiper.el.append(element);\n }\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n return params;\n}","import createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Navigation({\n swiper,\n extendParams,\n on,\n emit\n}) {\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n prevEl: null\n };\n const makeElementsArray = el => {\n if (!Array.isArray(el)) el = [el].filter(e => !!e);\n return el;\n };\n function getEl(el) {\n let res;\n if (el && typeof el === 'string' && swiper.isElement) {\n res = swiper.el.shadowRoot.querySelector(el);\n if (res) return res;\n }\n if (el) {\n if (typeof el === 'string') res = [...document.querySelectorAll(el)];\n if (swiper.params.uniqueNavElements && typeof el === 'string' && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) {\n res = swiper.el.querySelector(el);\n }\n }\n if (el && !res) return el;\n // if (Array.isArray(res) && res.length === 1) res = res[0];\n return res;\n }\n function toggleEl(el, disabled) {\n const params = swiper.params.navigation;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (subEl) {\n subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' '));\n if (subEl.tagName === 'BUTTON') subEl.disabled = disabled;\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n }\n });\n }\n function update() {\n // Update Navigation Buttons\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (swiper.params.loop) {\n toggleEl(prevEl, false);\n toggleEl(nextEl, false);\n return;\n }\n toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit('navigationPrev');\n }\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n emit('navigationNext');\n }\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n let nextEl = getEl(params.nextEl);\n let prevEl = getEl(params.prevEl);\n Object.assign(swiper.navigation, {\n nextEl,\n prevEl\n });\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const initButton = (el, dir) => {\n if (el) {\n el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n }\n if (!swiper.enabled && el) {\n el.classList.add(...params.lockClass.split(' '));\n }\n };\n nextEl.forEach(el => initButton(el, 'next'));\n prevEl.forEach(el => initButton(el, 'prev'));\n }\n function destroy() {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const destroyButton = (el, dir) => {\n el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n el.classList.remove(...swiper.params.navigation.disabledClass.split(' '));\n };\n nextEl.forEach(el => destroyButton(el, 'next'));\n prevEl.forEach(el => destroyButton(el, 'prev'));\n }\n on('init', () => {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.navigation.lockClass));\n });\n on('click', (_s, e) => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const targetEl = e.target;\n if (swiper.params.navigation.hideOnClick && !prevEl.includes(targetEl) && !nextEl.includes(targetEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n if (nextEl.length) {\n isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n } else if (prevEl.length) {\n isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' '));\n init();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' '));\n destroy();\n };\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}","export default function classesToSelector(classes = '') {\n return `.${classes.trim().replace(/([\\.:!+\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}","import classesToSelector from '../../shared/classes-to-selector.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nimport { elementIndex, elementOuterSize, elementParents } from '../../shared/utils.js';\nexport default function Pagination({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`,\n paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n const makeElementsArray = el => {\n if (!Array.isArray(el)) el = [el].filter(e => !!e);\n return el;\n };\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0;\n }\n function setSideBullets(bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n if (!bulletEl) return;\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}`);\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);\n }\n }\n }\n function onBulletClick(e) {\n const bulletEl = e.target.closest(classesToSelector(swiper.params.pagination.bulletClass));\n if (!bulletEl) {\n return;\n }\n e.preventDefault();\n const index = elementIndex(bulletEl) * swiper.params.slidesPerGroup;\n if (swiper.params.loop) {\n if (swiper.realIndex === index) return;\n const newSlideIndex = swiper.getSlideIndexByData(index);\n const currentSlideIndex = swiper.getSlideIndexByData(swiper.realIndex);\n if (newSlideIndex > swiper.slides.length - swiper.loopedSlides) {\n swiper.loopFix({\n direction: newSlideIndex > currentSlideIndex ? 'next' : 'prev',\n activeSlideIndex: newSlideIndex,\n slideTo: false\n });\n }\n swiper.slideToLoop(index);\n } else {\n swiper.slideTo(index);\n }\n }\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n // Current/Total\n let current;\n let previousIndex;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n previousIndex = swiper.previousRealIndex || 0;\n current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n previousIndex = swiper.previousSnapIndex;\n } else {\n previousIndex = swiper.previousIndex || 0;\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);\n el.forEach(subEl => {\n subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;\n });\n if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {\n dynamicBulletIndex += current - (previousIndex || 0);\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.forEach(bulletEl => {\n const classesToRemove = [...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`)].map(s => typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat();\n bulletEl.classList.remove(...classesToRemove);\n });\n if (el.length > 1) {\n bullets.forEach(bullet => {\n const bulletIndex = elementIndex(bullet);\n if (bulletIndex === current) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n } else if (swiper.isElement) {\n bullet.setAttribute('part', 'bullet');\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n if (bulletIndex === firstIndex) {\n setSideBullets(bullet, 'prev');\n }\n if (bulletIndex === lastIndex) {\n setSideBullets(bullet, 'next');\n }\n }\n });\n } else {\n const bullet = bullets[current];\n if (bullet) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n }\n if (swiper.isElement) {\n bullets.forEach((bulletEl, bulletIndex) => {\n bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet');\n });\n }\n if (params.dynamicBullets) {\n const firstDisplayedBullet = bullets[firstIndex];\n const lastDisplayedBullet = bullets[lastIndex];\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n if (bullets[i]) {\n bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n }\n setSideBullets(firstDisplayedBullet, 'prev');\n setSideBullets(lastDisplayedBullet, 'next');\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.forEach(bullet => {\n bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;\n });\n }\n }\n el.forEach((subEl, subElIndex) => {\n if (params.type === 'fraction') {\n subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach(fractionEl => {\n fractionEl.textContent = params.formatFractionCurrent(current + 1);\n });\n subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach(totalEl => {\n totalEl.textContent = params.formatFractionTotal(total);\n });\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n subEl.querySelectorAll(classesToSelector(params.progressbarFillClass)).forEach(progressEl => {\n progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;\n progressEl.style.transitionDuration = `${swiper.params.speed}ms`;\n });\n }\n if (params.type === 'custom' && params.renderCustom) {\n subEl.innerHTML = params.renderCustom(swiper, current + 1, total);\n if (subElIndex === 0) emit('paginationRender', subEl);\n } else {\n if (subElIndex === 0) emit('paginationRender', subEl);\n emit('paginationUpdate', subEl);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n });\n }\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n let paginationHTML = '';\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n // prettier-ignore\n paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part=\"bullet\"' : ''} class=\"${params.bulletClass}\"></${params.bulletElement}>`;\n }\n }\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `<span class=\"${params.currentClass}\"></span>` + ' / ' + `<span class=\"${params.totalClass}\"></span>`;\n }\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = `<span class=\"${params.progressbarFillClass}\"></span>`;\n }\n }\n swiper.pagination.bullets = [];\n el.forEach(subEl => {\n if (params.type !== 'custom') {\n subEl.innerHTML = paginationHTML || '';\n }\n if (params.type === 'bullets') {\n swiper.pagination.bullets.push(...subEl.querySelectorAll(classesToSelector(params.bulletClass)));\n }\n });\n if (params.type !== 'custom') {\n emit('paginationRender', el[0]);\n }\n }\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.shadowRoot.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = [...document.querySelectorAll(params.el)];\n }\n if (!el) {\n el = params.el;\n }\n if (!el || el.length === 0) return;\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {\n el = [...swiper.el.querySelectorAll(params.el)];\n // check if it belongs to another nested Swiper\n if (el.length > 1) {\n el = el.filter(subEl => {\n if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false;\n return true;\n })[0];\n }\n }\n if (Array.isArray(el) && el.length === 1) el = el[0];\n Object.assign(swiper.pagination, {\n el\n });\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (params.type === 'bullets' && params.clickable) {\n subEl.classList.add(params.clickableClass);\n }\n subEl.classList.add(params.modifierClass + params.type);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.type === 'bullets' && params.dynamicBullets) {\n subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n subEl.classList.add(params.progressbarOppositeClass);\n }\n if (params.clickable) {\n subEl.addEventListener('click', onBulletClick);\n }\n if (!swiper.enabled) {\n subEl.classList.add(params.lockClass);\n }\n });\n }\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.hiddenClass);\n subEl.classList.remove(params.modifierClass + params.type);\n subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.clickable) {\n subEl.removeEventListener('click', onBulletClick);\n }\n });\n }\n if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' ')));\n }\n on('changeDirection', () => {\n if (!swiper.pagination || !swiper.pagination.el) return;\n const params = swiper.params.pagination;\n let {\n el\n } = swiper.pagination;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.horizontalClass, params.verticalClass);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n });\n });\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n update();\n });\n on('snapGridLengthChange', () => {\n render();\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass));\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n let {\n el\n } = swiper.pagination;\n if (!Array.isArray(el)) el = [el].filter(element => !!element);\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass));\n }\n init();\n render();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));\n }\n destroy();\n };\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}"],"mappings":"AAYA,SAASA,EAASC,GACd,OAAQA,IAAQ,aACLA,IAAQ,UACf,gBAAiBA,GACjBA,EAAIC,cAAgBC,MAC5B,CACA,SAASC,EAAOC,EAAS,GAAIC,EAAM,IAC/BH,OAAOI,KAAKD,GAAKE,SAASC,IACtB,UAAWJ,EAAOI,KAAS,YACvBJ,EAAOI,GAAOH,EAAIG,QACjB,GAAIT,EAASM,EAAIG,KAClBT,EAASK,EAAOI,KAChBN,OAAOI,KAAKD,EAAIG,IAAMC,OAAS,EAAG,CAClCN,EAAOC,EAAOI,GAAMH,EAAIG,GACpC,IAEA,CAEA,MAAME,EAAc,CAChBC,KAAM,GACNC,mBAAmB,EACnBC,sBAAsB,EACtBC,cAAe,CACXC,OAAO,EACPC,SAAU,IAEdC,gBACI,OAAO,IACf,EACIC,mBACI,MAAO,EACf,EACIC,iBACI,OAAO,IACf,EACIC,cACI,MAAO,CACHC,YAAY,EAExB,EACIC,gBACI,MAAO,CACHC,SAAU,GACVC,WAAY,GACZC,MAAO,GACPC,eAAe,EACfC,uBACI,MAAO,EACvB,EAEA,EACIC,kBACI,MAAO,EACf,EACIC,aACI,OAAO,IACf,EACIC,SAAU,CACNC,KAAM,GACNC,KAAM,GACNC,SAAU,GACVC,KAAM,GACNC,OAAQ,GACRC,SAAU,GACVC,SAAU,GACVC,OAAQ,KAGhB,SAASC,IACL,MAAMC,SAAaC,WAAa,YAAcA,SAAW,GACzDtC,EAAOqC,EAAK9B,GACZ,OAAO8B,CACX,CAEA,MAAME,EAAY,CACdD,SAAU/B,EACViC,UAAW,CACPC,UAAW,IAEfd,SAAU,CACNC,KAAM,GACNC,KAAM,GACNC,SAAU,GACVC,KAAM,GACNC,OAAQ,GACRC,SAAU,GACVC,SAAU,GACVC,OAAQ,IAEZO,QAAS,CACLC,eAAe,EACfC,YAAY,EACZC,KAAK,EACLC,OAAO,GAEXC,YAAa,SAASA,IAClB,OAAOC,IACf,EACIvC,mBAAmB,EACnBC,sBAAsB,EACtBuC,mBACI,MAAO,CACHC,mBACI,MAAO,EACvB,EAEA,EACIC,QAAQ,EACRC,OAAO,EACPC,OAAQ,GACRC,aAAa,EACbC,eAAe,EACfC,aACI,MAAO,EACf,EACIC,sBAAsBC,GAClB,UAAWJ,aAAe,YAAa,CACnCI,IACA,OAAO,IACnB,CACQ,OAAOJ,WAAWI,EAAU,EACpC,EACIC,qBAAqBC,GACjB,UAAWN,aAAe,YAAa,CACnC,MACZ,CACQC,aAAaK,EACrB,GAEA,SAASC,IACL,MAAMC,SAAaC,SAAW,YAAcA,OAAS,GACrD/D,EAAO8D,EAAKvB,GACZ,OAAOuB,CACX,CChJA,SAASE,EAAYnE,GACnB,MAAMoE,EAASpE,EACfE,OAAOI,KAAK8D,GAAQ7D,SAAQC,IAC1B,IACE4D,EAAO5D,GAAO,IACpB,CAAM,MAAO6D,GAEb,CACI,WACSD,EAAO5D,EACpB,CAAM,MAAO6D,GAEb,IAEA,CACA,SAASC,EAAST,EAAUU,EAAQ,GAClC,OAAOd,WAAWI,EAAUU,EAC9B,CACA,SAASC,IACP,OAAOjB,KAAKiB,KACd,CACA,SAASpB,EAAiBqB,GACxB,MAAMP,EAASF,IACf,IAAIvC,EACJ,GAAIyC,EAAOd,iBAAkB,CAC3B3B,EAAQyC,EAAOd,iBAAiBqB,EAAI,KACxC,CACE,IAAKhD,GAASgD,EAAGC,aAAc,CAC7BjD,EAAQgD,EAAGC,YACf,CACE,IAAKjD,EAAO,CACVA,EAAQgD,EAAGhD,KACf,CACE,OAAOA,CACT,CACA,SAASkD,EAAaF,EAAIG,EAAO,KAC/B,MAAMV,EAASF,IACf,IAAIa,EACJ,IAAIC,EACJ,IAAIC,EACJ,MAAMC,EAAW5B,EAAiBqB,GAClC,GAAIP,EAAOe,gBAAiB,CAC1BH,EAAeE,EAASE,WAAaF,EAASG,gBAC9C,GAAIL,EAAaM,MAAM,KAAK3E,OAAS,EAAG,CACtCqE,EAAeA,EAAaM,MAAM,MAAMC,KAAIC,GAAKA,EAAEC,QAAQ,IAAK,OAAMC,KAAK,KACjF,CAGIT,EAAkB,IAAIb,EAAOe,gBAAgBH,IAAiB,OAAS,GAAKA,EAChF,KAAS,CACLC,EAAkBC,EAASS,cAAgBT,EAASU,YAAcV,EAASW,aAAeX,EAASY,aAAeZ,EAASE,WAAaF,EAAS3B,iBAAiB,aAAakC,QAAQ,aAAc,sBACrMV,EAASE,EAAgBc,WAAWT,MAAM,IAC9C,CACE,GAAIR,IAAS,IAAK,CAEhB,GAAIV,EAAOe,gBAAiBH,EAAeC,EAAgBe,SAEtD,GAAIjB,EAAOpE,SAAW,GAAIqE,EAAeiB,WAAWlB,EAAO,UAE3DC,EAAeiB,WAAWlB,EAAO,GAC1C,CACE,GAAID,IAAS,IAAK,CAEhB,GAAIV,EAAOe,gBAAiBH,EAAeC,EAAgBiB,SAEtD,GAAInB,EAAOpE,SAAW,GAAIqE,EAAeiB,WAAWlB,EAAO,UAE3DC,EAAeiB,WAAWlB,EAAO,GAC1C,CACE,OAAOC,GAAgB,CACzB,CACA,SAAS/E,EAASkG,GAChB,cAAcA,IAAM,UAAYA,IAAM,MAAQA,EAAEhG,aAAeC,OAAOgG,UAAUL,SAASM,KAAKF,GAAGG,MAAM,GAAI,KAAO,QACpH,CACA,SAASC,EAAOC,GAEd,UAAWpC,SAAW,oBAAsBA,OAAOqC,cAAgB,YAAa,CAC9E,OAAOD,aAAgBC,WAC3B,CACE,OAAOD,IAASA,EAAKE,WAAa,GAAKF,EAAKE,WAAa,GAC3D,CACA,SAASrG,KAAUsG,GACjB,MAAMC,EAAKxG,OAAOuG,EAAK,IACvB,MAAME,EAAW,CAAC,YAAa,cAAe,aAC9C,IAAK,IAAIC,EAAI,EAAGA,EAAIH,EAAKhG,OAAQmG,GAAK,EAAG,CACvC,MAAMC,EAAaJ,EAAKG,GACxB,GAAIC,IAAeC,WAAaD,IAAe,OAASR,EAAOQ,GAAa,CAC1E,MAAME,EAAY7G,OAAOI,KAAKJ,OAAO2G,IAAaG,QAAOxG,GAAOmG,EAASM,QAAQzG,GAAO,IACxF,IAAK,IAAI0G,EAAY,EAAGC,EAAMJ,EAAUtG,OAAQyG,EAAYC,EAAKD,GAAa,EAAG,CAC/E,MAAME,EAAUL,EAAUG,GAC1B,MAAMG,EAAOnH,OAAOoH,yBAAyBT,EAAYO,GACzD,GAAIC,IAASP,WAAaO,EAAKE,WAAY,CACzC,GAAIxH,EAAS2G,EAAGU,KAAarH,EAAS8G,EAAWO,IAAW,CAC1D,GAAIP,EAAWO,GAASI,WAAY,CAClCd,EAAGU,GAAWP,EAAWO,EACvC,KAAmB,CACLjH,EAAOuG,EAAGU,GAAUP,EAAWO,GAC7C,CACA,MAAiB,IAAKrH,EAAS2G,EAAGU,KAAarH,EAAS8G,EAAWO,IAAW,CAClEV,EAAGU,GAAW,GACd,GAAIP,EAAWO,GAASI,WAAY,CAClCd,EAAGU,GAAWP,EAAWO,EACvC,KAAmB,CACLjH,EAAOuG,EAAGU,GAAUP,EAAWO,GAC7C,CACA,KAAiB,CACLV,EAAGU,GAAWP,EAAWO,EACrC,CACA,CACA,CACA,CACA,CACE,OAAOV,CACT,CACA,SAASe,EAAehD,EAAIiD,EAASC,GACnClD,EAAGhD,MAAMmG,YAAYF,EAASC,EAChC,CACA,SAASE,GAAqBC,OAC5BA,EAAMC,eACNA,EAAcC,KACdA,IAEA,MAAM9D,EAASF,IACf,MAAMiE,GAAiBH,EAAOI,UAC9B,IAAIC,EAAY,KAChB,IAAIC,EACJ,MAAMC,EAAWP,EAAOQ,OAAOC,MAC/BT,EAAOU,UAAU/G,MAAMgH,eAAiB,OACxCvE,EAAOJ,qBAAqBgE,EAAOY,gBACnC,MAAMC,EAAMZ,EAAiBE,EAAgB,OAAS,OACtD,MAAMW,EAAe,CAACC,EAASzI,IACtBuI,IAAQ,QAAUE,GAAWzI,GAAUuI,IAAQ,QAAUE,GAAWzI,EAE7E,MAAM0I,EAAU,KACdV,GAAO,IAAI7E,MAAOwF,UAClB,GAAIZ,IAAc,KAAM,CACtBA,EAAYC,CAClB,CACI,MAAMY,EAAWC,KAAKC,IAAID,KAAKE,KAAKf,EAAOD,GAAaE,EAAU,GAAI,GACtE,MAAMe,EAAe,GAAMH,KAAKI,IAAIL,EAAWC,KAAKK,IAAM,EAC1D,IAAIC,EAAkBtB,EAAgBmB,GAAgBrB,EAAiBE,GACvE,GAAIW,EAAaW,EAAiBxB,GAAiB,CACjDwB,EAAkBxB,CACxB,CACID,EAAOU,UAAUgB,SAAS,CACxBxB,CAACA,GAAOuB,IAEV,GAAIX,EAAaW,EAAiBxB,GAAiB,CACjDD,EAAOU,UAAU/G,MAAMgI,SAAW,SAClC3B,EAAOU,UAAU/G,MAAMgH,eAAiB,GACxChF,YAAW,KACTqE,EAAOU,UAAU/G,MAAMgI,SAAW,GAClC3B,EAAOU,UAAUgB,SAAS,CACxBxB,CAACA,GAAOuB,GACR,IAEJrF,EAAOJ,qBAAqBgE,EAAOY,gBACnC,MACN,CACIZ,EAAOY,eAAiBxE,EAAON,sBAAsBkF,EAAQ,EAE/DA,GACF,CAWA,SAASY,EAAgBC,EAASC,EAAW,IAC3C,MAAO,IAAID,EAAQpI,UAAUyF,QAAOvC,GAAMA,EAAGoF,QAAQD,IACvD,CACA,SAAStI,EAAcwI,EAAKC,EAAU,IACpC,MAAMtF,EAAKhC,SAASnB,cAAcwI,GAClCrF,EAAGuF,UAAUC,OAAQC,MAAMC,QAAQJ,GAAWA,EAAU,CAACA,IACzD,OAAOtF,CACT,CACA,SAAS2F,EAAc3F,GACrB,MAAMP,EAASF,IACf,MAAMvB,EAAWF,IACjB,MAAM8H,EAAM5F,EAAG6F,wBACf,MAAM3J,EAAO8B,EAAS9B,KACtB,MAAM4J,EAAY9F,EAAG8F,WAAa5J,EAAK4J,WAAa,EACpD,MAAMC,EAAa/F,EAAG+F,YAAc7J,EAAK6J,YAAc,EACvD,MAAMC,EAAYhG,IAAOP,EAASA,EAAOwG,QAAUjG,EAAGgG,UACtD,MAAME,EAAalG,IAAOP,EAASA,EAAO0G,QAAUnG,EAAGkG,WACvD,MAAO,CACLE,IAAKR,EAAIQ,IAAMJ,EAAYF,EAC3BO,KAAMT,EAAIS,KAAOH,EAAaH,EAElC,CACA,SAASO,EAAetG,EAAImF,GAC1B,MAAMoB,EAAU,GAChB,MAAOvG,EAAGwG,uBAAwB,CAChC,MAAMC,EAAOzG,EAAGwG,uBAChB,GAAIrB,EAAU,CACZ,GAAIsB,EAAKrB,QAAQD,GAAWoB,EAAQG,KAAKD,EAC/C,MAAWF,EAAQG,KAAKD,GACpBzG,EAAKyG,CACT,CACE,OAAOF,CACT,CACA,SAASI,EAAe3G,EAAImF,GAC1B,MAAMyB,EAAU,GAChB,MAAO5G,EAAG6G,mBAAoB,CAC5B,MAAMC,EAAO9G,EAAG6G,mBAChB,GAAI1B,EAAU,CACZ,GAAI2B,EAAK1B,QAAQD,GAAWyB,EAAQF,KAAKI,EAC/C,MAAWF,EAAQF,KAAKI,GACpB9G,EAAK8G,CACT,CACE,OAAOF,CACT,CACA,SAASG,EAAa/G,EAAIgH,GACxB,MAAMvH,EAASF,IACf,OAAOE,EAAOd,iBAAiBqB,EAAI,MAAMpB,iBAAiBoI,EAC5D,CACA,SAASC,EAAajH,GACpB,IAAIkH,EAAQlH,EACZ,IAAImC,EACJ,GAAI+E,EAAO,CACT/E,EAAI,EAEJ,OAAQ+E,EAAQA,EAAMC,mBAAqB,KAAM,CAC/C,GAAID,EAAMnF,WAAa,EAAGI,GAAK,CACrC,CACI,OAAOA,CACX,CACE,OAAOE,SACT,CACA,SAAS+E,EAAepH,EAAImF,GAC1B,MAAMkC,EAAU,GAChB,IAAIC,EAAStH,EAAGuH,cAChB,MAAOD,EAAQ,CACb,GAAInC,EAAU,CACZ,GAAImC,EAAOlC,QAAQD,GAAWkC,EAAQX,KAAKY,EACjD,KAAW,CACLD,EAAQX,KAAKY,EACnB,CACIA,EAASA,EAAOC,aACpB,CACE,OAAOF,CACT,CACA,SAASG,EAAqBxH,EAAIZ,GAChC,SAASqI,EAAa7H,GACpB,GAAIA,EAAEjE,SAAWqE,EAAI,OACrBZ,EAASsC,KAAK1B,EAAIJ,GAClBI,EAAG5D,oBAAoB,gBAAiBqL,EAC5C,CACE,GAAIrI,EAAU,CACZY,EAAG7D,iBAAiB,gBAAiBsL,EACzC,CACA,CACA,SAASC,EAAiB1H,EAAI2H,EAAMC,GAClC,MAAMnI,EAASF,IACf,GAAIqI,EAAgB,CAClB,OAAO5H,EAAG2H,IAAS,QAAU,cAAgB,gBAAkBrG,WAAW7B,EAAOd,iBAAiBqB,EAAI,MAAMpB,iBAAiB+I,IAAS,QAAU,eAAiB,eAAiBrG,WAAW7B,EAAOd,iBAAiBqB,EAAI,MAAMpB,iBAAiB+I,IAAS,QAAU,cAAgB,iBACvR,CACE,OAAO3H,EAAG6H,WACZ,CCvQA,IAAIC,EACJ,SAASC,IACP,MAAMtI,EAASF,IACf,MAAMvB,EAAWF,IACjB,MAAO,CACLkK,aAAchK,EAASiK,iBAAmBjK,EAASiK,gBAAgBjL,OAAS,mBAAoBgB,EAASiK,gBAAgBjL,MACzHkL,SAAU,iBAAkBzI,GAAUA,EAAO0I,eAAiBnK,aAAoByB,EAAO0I,eAE7F,CACA,SAASC,IACP,IAAKN,EAAS,CACZA,EAAUC,GACd,CACE,OAAOD,CACT,CCbA,IAAIO,EACJ,SAASC,GAAWnK,UAClBA,GACE,IACF,MAAM2J,EAAUM,IAChB,MAAM3I,EAASF,IACf,MAAMgJ,EAAW9I,EAAOvB,UAAUqK,SAClC,MAAMC,EAAKrK,GAAasB,EAAOvB,UAAUC,UACzC,MAAMsK,EAAS,CACbC,IAAK,MACLC,QAAS,OAEX,MAAMC,EAAcnJ,EAAOV,OAAO8J,MAClC,MAAMC,EAAerJ,EAAOV,OAAOgK,OACnC,MAAMJ,EAAUH,EAAGQ,MAAM,+BACzB,IAAIC,EAAOT,EAAGQ,MAAM,wBACpB,MAAME,EAAOV,EAAGQ,MAAM,2BACtB,MAAMG,GAAUF,GAAQT,EAAGQ,MAAM,8BACjC,MAAMI,EAAUb,IAAa,QAC7B,IAAIc,EAAQd,IAAa,WAGzB,MAAMe,EAAc,CAAC,YAAa,YAAa,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC3J,IAAKL,GAAQI,GAASvB,EAAQI,OAASoB,EAAY9G,QAAQ,GAAGoG,KAAeE,MAAmB,EAAG,CACjGG,EAAOT,EAAGQ,MAAM,uBAChB,IAAKC,EAAMA,EAAO,CAAC,EAAG,EAAG,UACzBI,EAAQ,KACZ,CAGE,GAAIV,IAAYS,EAAS,CACvBX,EAAOc,GAAK,UACZd,EAAOE,QAAU,IACrB,CACE,GAAIM,GAAQE,GAAUD,EAAM,CAC1BT,EAAOc,GAAK,MACZd,EAAOC,IAAM,IACjB,CAGE,OAAOD,CACT,CACA,SAASe,EAAUC,EAAY,IAC7B,IAAKpB,EAAc,CACjBA,EAAeC,EAAWmB,EAC9B,CACE,OAAOpB,CACT,CChDA,IAAIqB,EACJ,SAASC,IACP,MAAMlK,EAASF,IACf,IAAIqK,EAAqB,MACzB,SAASC,IACP,MAAMrB,EAAK/I,EAAOvB,UAAUC,UAAU2L,cACtC,OAAOtB,EAAGhG,QAAQ,WAAa,GAAKgG,EAAGhG,QAAQ,UAAY,GAAKgG,EAAGhG,QAAQ,WAAa,CAC5F,CACE,GAAIqH,IAAY,CACd,MAAMrB,EAAKuB,OAAOtK,EAAOvB,UAAUC,WACnC,GAAIqK,EAAGwB,SAAS,YAAa,CAC3B,MAAOC,EAAOC,GAAS1B,EAAG7H,MAAM,YAAY,GAAGA,MAAM,KAAK,GAAGA,MAAM,KAAKC,KAAIuJ,GAAOC,OAAOD,KAC1FP,EAAqBK,EAAQ,IAAMA,IAAU,IAAMC,EAAQ,CACjE,CACA,CACE,MAAO,CACLL,SAAUD,GAAsBC,IAChCD,qBACAS,UAAW,+CAA+CC,KAAK7K,EAAOvB,UAAUC,WAEpF,CACA,SAASoM,IACP,IAAKb,EAAS,CACZA,EAAUC,GACd,CACE,OAAOD,CACT,CC1Be,SAASc,GAAOnH,OAC7BA,EAAMoH,GACNA,EAAEC,KACFA,IAEA,MAAMjL,EAASF,IACf,IAAIoL,EAAW,KACf,IAAIC,EAAiB,KACrB,MAAMC,EAAgB,KACpB,IAAKxH,GAAUA,EAAOyH,YAAczH,EAAO0H,YAAa,OACxDL,EAAK,gBACLA,EAAK,SAAS,EAEhB,MAAMM,EAAiB,KACrB,IAAK3H,GAAUA,EAAOyH,YAAczH,EAAO0H,YAAa,OACxDJ,EAAW,IAAIM,gBAAeC,IAC5BN,EAAiBnL,EAAON,uBAAsB,KAC5C,MAAM0J,MACJA,EAAKE,OACLA,GACE1F,EACJ,IAAI8H,EAAWtC,EACf,IAAIuC,EAAYrC,EAChBmC,EAAQpP,SAAQ,EACduP,iBACAC,cACA3P,aAEA,GAAIA,GAAUA,IAAW0H,EAAOrD,GAAI,OACpCmL,EAAWG,EAAcA,EAAYzC,OAASwC,EAAe,IAAMA,GAAgBE,WACnFH,EAAYE,EAAcA,EAAYvC,QAAUsC,EAAe,IAAMA,GAAgBG,SAAS,IAEhG,GAAIL,IAAatC,GAASuC,IAAcrC,EAAQ,CAC9C8B,GACV,IACQ,IAEJF,EAASc,QAAQpI,EAAOrD,GAAG,EAE7B,MAAM0L,EAAiB,KACrB,GAAId,EAAgB,CAClBnL,EAAOJ,qBAAqBuL,EAClC,CACI,GAAID,GAAYA,EAASgB,WAAatI,EAAOrD,GAAI,CAC/C2K,EAASgB,UAAUtI,EAAOrD,IAC1B2K,EAAW,IACjB,GAEE,MAAMiB,EAA2B,KAC/B,IAAKvI,GAAUA,EAAOyH,YAAczH,EAAO0H,YAAa,OACxDL,EAAK,oBAAoB,EAE3BD,EAAG,QAAQ,KACT,GAAIpH,EAAOQ,OAAOgI,uBAAyBpM,EAAOwL,iBAAmB,YAAa,CAChFD,IACA,MACN,CACIvL,EAAOtD,iBAAiB,SAAU0O,GAClCpL,EAAOtD,iBAAiB,oBAAqByP,EAAyB,IAExEnB,EAAG,WAAW,KACZiB,IACAjM,EAAOrD,oBAAoB,SAAUyO,GACrCpL,EAAOrD,oBAAoB,oBAAqBwP,EAAyB,GAE7E,CChEe,SAASE,GAASzI,OAC/BA,EAAM0I,aACNA,EAAYtB,GACZA,EAAEC,KACFA,IAEA,MAAMsB,EAAY,GAClB,MAAMvM,EAASF,IACf,MAAM0M,EAAS,CAACtQ,EAAQuQ,EAAU,MAChC,MAAMC,EAAe1M,EAAO2M,kBAAoB3M,EAAO4M,uBACvD,MAAM1B,EAAW,IAAIwB,GAAaG,IAIhC,GAAIjJ,EAAOkJ,oBAAqB,OAChC,GAAID,EAAUtQ,SAAW,EAAG,CAC1B0O,EAAK,iBAAkB4B,EAAU,IACjC,MACR,CACM,MAAME,EAAiB,SAASA,IAC9B9B,EAAK,iBAAkB4B,EAAU,GACzC,EACM,GAAI7M,EAAON,sBAAuB,CAChCM,EAAON,sBAAsBqN,EACrC,KAAa,CACL/M,EAAOT,WAAWwN,EAAgB,EAC1C,KAEI7B,EAASc,QAAQ9P,EAAQ,CACvB8Q,kBAAmBP,EAAQO,aAAe,YAAc,KAAOP,EAAQO,WACvEC,iBAAkBR,EAAQQ,YAAc,YAAc,KAAOR,EAAQQ,UACrEC,qBAAsBT,EAAQS,gBAAkB,YAAc,KAAOT,EAAQS,gBAE/EX,EAAUtF,KAAKiE,EAAS,EAE1B,MAAMiC,EAAO,KACX,IAAKvJ,EAAOQ,OAAO8G,SAAU,OAC7B,GAAItH,EAAOQ,OAAOgJ,eAAgB,CAChC,MAAMC,EAAmB1F,EAAe/D,EAAOrD,IAC/C,IAAK,IAAImC,EAAI,EAAGA,EAAI2K,EAAiB9Q,OAAQmG,GAAK,EAAG,CACnD8J,EAAOa,EAAiB3K,GAChC,CACA,CAEI8J,EAAO5I,EAAOrD,GAAI,CAChB0M,UAAWrJ,EAAOQ,OAAOkJ,uBAI3Bd,EAAO5I,EAAOU,UAAW,CACvB0I,WAAY,OACZ,EAEJ,MAAMO,EAAU,KACdhB,EAAUlQ,SAAQ6O,IAChBA,EAASsC,YAAY,IAEvBjB,EAAUkB,OAAO,EAAGlB,EAAUhQ,OAAO,EAEvC+P,EAAa,CACXpB,SAAU,MACVkC,eAAgB,MAChBE,qBAAsB,QAExBtC,EAAG,OAAQmC,GACXnC,EAAG,UAAWuC,EAChB,CClEA,MAAAG,EAAe,CACb1C,GAAG2C,EAAQC,EAASC,GAClB,MAAMC,EAAO7O,KACb,IAAK6O,EAAKC,iBAAmBD,EAAKzC,UAAW,OAAOyC,EACpD,UAAWF,IAAY,WAAY,OAAOE,EAC1C,MAAME,EAASH,EAAW,UAAY,OACtCF,EAAOzM,MAAM,KAAK7E,SAAQ4R,IACxB,IAAKH,EAAKC,gBAAgBE,GAAQH,EAAKC,gBAAgBE,GAAS,GAChEH,EAAKC,gBAAgBE,GAAOD,GAAQJ,EAAQ,IAE9C,OAAOE,CACX,EACEI,KAAKP,EAAQC,EAASC,GACpB,MAAMC,EAAO7O,KACb,IAAK6O,EAAKC,iBAAmBD,EAAKzC,UAAW,OAAOyC,EACpD,UAAWF,IAAY,WAAY,OAAOE,EAC1C,SAASK,KAAe5L,GACtBuL,EAAKM,IAAIT,EAAQQ,GACjB,GAAIA,EAAYE,eAAgB,QACvBF,EAAYE,cAC3B,CACMT,EAAQU,MAAMR,EAAMvL,EAC1B,CACI4L,EAAYE,eAAiBT,EAC7B,OAAOE,EAAK9C,GAAG2C,EAAQQ,EAAaN,EACxC,EACEU,MAAMX,EAASC,GACb,MAAMC,EAAO7O,KACb,IAAK6O,EAAKC,iBAAmBD,EAAKzC,UAAW,OAAOyC,EACpD,UAAWF,IAAY,WAAY,OAAOE,EAC1C,MAAME,EAASH,EAAW,UAAY,OACtC,GAAIC,EAAKU,mBAAmBzL,QAAQ6K,GAAW,EAAG,CAChDE,EAAKU,mBAAmBR,GAAQJ,EACtC,CACI,OAAOE,CACX,EACEW,OAAOb,GACL,MAAME,EAAO7O,KACb,IAAK6O,EAAKC,iBAAmBD,EAAKzC,UAAW,OAAOyC,EACpD,IAAKA,EAAKU,mBAAoB,OAAOV,EACrC,MAAMY,EAAQZ,EAAKU,mBAAmBzL,QAAQ6K,GAC9C,GAAIc,GAAS,EAAG,CACdZ,EAAKU,mBAAmBf,OAAOiB,EAAO,EAC5C,CACI,OAAOZ,CACX,EACEM,IAAIT,EAAQC,GACV,MAAME,EAAO7O,KACb,IAAK6O,EAAKC,iBAAmBD,EAAKzC,UAAW,OAAOyC,EACpD,IAAKA,EAAKC,gBAAiB,OAAOD,EAClCH,EAAOzM,MAAM,KAAK7E,SAAQ4R,IACxB,UAAWL,IAAY,YAAa,CAClCE,EAAKC,gBAAgBE,GAAS,EACtC,MAAa,GAAIH,EAAKC,gBAAgBE,GAAQ,CACtCH,EAAKC,gBAAgBE,GAAO5R,SAAQ,CAACsS,EAAcD,KACjD,GAAIC,IAAiBf,GAAWe,EAAaN,gBAAkBM,EAAaN,iBAAmBT,EAAS,CACtGE,EAAKC,gBAAgBE,GAAOR,OAAOiB,EAAO,EACtD,IAEA,KAEI,OAAOZ,CACX,EACE7C,QAAQ1I,GACN,MAAMuL,EAAO7O,KACb,IAAK6O,EAAKC,iBAAmBD,EAAKzC,UAAW,OAAOyC,EACpD,IAAKA,EAAKC,gBAAiB,OAAOD,EAClC,IAAIH,EACJ,IAAIiB,EACJ,IAAIC,EACJ,UAAWtM,EAAK,KAAO,UAAYyD,MAAMC,QAAQ1D,EAAK,IAAK,CACzDoL,EAASpL,EAAK,GACdqM,EAAOrM,EAAKL,MAAM,EAAGK,EAAKhG,QAC1BsS,EAAUf,CAChB,KAAW,CACLH,EAASpL,EAAK,GAAGoL,OACjBiB,EAAOrM,EAAK,GAAGqM,KACfC,EAAUtM,EAAK,GAAGsM,SAAWf,CACnC,CACIc,EAAKE,QAAQD,GACb,MAAME,EAAc/I,MAAMC,QAAQ0H,GAAUA,EAASA,EAAOzM,MAAM,KAClE6N,EAAY1S,SAAQ4R,IAClB,GAAIH,EAAKU,oBAAsBV,EAAKU,mBAAmBjS,OAAQ,CAC7DuR,EAAKU,mBAAmBnS,SAAQsS,IAC9BA,EAAaL,MAAMO,EAAS,CAACZ,KAAUW,GAAM,GAEvD,CACM,GAAId,EAAKC,iBAAmBD,EAAKC,gBAAgBE,GAAQ,CACvDH,EAAKC,gBAAgBE,GAAO5R,SAAQsS,IAClCA,EAAaL,MAAMO,EAASD,EAAK,GAE3C,KAEI,OAAOd,CACX,GC/Fe,SAASkB,IACtB,MAAMpL,EAAS3E,KACf,IAAImK,EACJ,IAAIE,EACJ,MAAM/I,EAAKqD,EAAOrD,GAClB,UAAWqD,EAAOQ,OAAOgF,QAAU,aAAexF,EAAOQ,OAAOgF,QAAU,KAAM,CAC9EA,EAAQxF,EAAOQ,OAAOgF,KAC1B,KAAS,CACLA,EAAQ7I,EAAG0O,WACf,CACE,UAAWrL,EAAOQ,OAAOkF,SAAW,aAAe1F,EAAOQ,OAAOkF,SAAW,KAAM,CAChFA,EAAS1F,EAAOQ,OAAOkF,MAC3B,KAAS,CACLA,EAAS/I,EAAG2O,YAChB,CACE,GAAI9F,IAAU,GAAKxF,EAAOuL,gBAAkB7F,IAAW,GAAK1F,EAAOwL,aAAc,CAC/E,MACJ,CAGEhG,EAAQA,EAAQiG,SAAS/H,EAAa/G,EAAI,iBAAmB,EAAG,IAAM8O,SAAS/H,EAAa/G,EAAI,kBAAoB,EAAG,IACvH+I,EAASA,EAAS+F,SAAS/H,EAAa/G,EAAI,gBAAkB,EAAG,IAAM8O,SAAS/H,EAAa/G,EAAI,mBAAqB,EAAG,IACzH,GAAIoK,OAAO2E,MAAMlG,GAAQA,EAAQ,EACjC,GAAIuB,OAAO2E,MAAMhG,GAASA,EAAS,EACnCtN,OAAOuT,OAAO3L,EAAQ,CACpBwF,QACAE,SACApB,KAAMtE,EAAOuL,eAAiB/F,EAAQE,GAE1C,CC7Be,SAASkG,IACtB,MAAM5L,EAAS3E,KACf,SAASwQ,EAAkBC,GACzB,GAAI9L,EAAOuL,eAAgB,CACzB,OAAOO,CACb,CAEI,MAAO,CACLtG,MAAS,SACT,aAAc,cACd,iBAAkB,eAClB,cAAe,aACf,eAAgB,gBAChB,eAAgB,cAChB,gBAAiB,iBACjBuG,YAAe,gBACfD,EACN,CACE,SAASE,EAA0BxN,EAAMyN,GACvC,OAAOhO,WAAWO,EAAKjD,iBAAiBsQ,EAAkBI,KAAW,EACzE,CACE,MAAMzL,EAASR,EAAOQ,OACtB,MAAME,UACJA,EAASwL,SACTA,EACA5H,KAAM6H,EACNC,aAAcC,EAAGC,SACjBA,GACEtM,EACJ,MAAMuM,EAAYvM,EAAOwM,SAAWhM,EAAOgM,QAAQC,QACnD,MAAMC,EAAuBH,EAAYvM,EAAOwM,QAAQG,OAAOhU,OAASqH,EAAO2M,OAAOhU,OACtF,MAAMgU,EAAS/K,EAAgBsK,EAAU,IAAIlM,EAAOQ,OAAOoM,4BAC3D,MAAMC,EAAeN,EAAYvM,EAAOwM,QAAQG,OAAOhU,OAASgU,EAAOhU,OACvE,IAAImU,EAAW,GACf,MAAMC,EAAa,GACnB,MAAMC,EAAkB,GACxB,IAAIC,EAAezM,EAAO0M,mBAC1B,UAAWD,IAAiB,WAAY,CACtCA,EAAezM,EAAO0M,mBAAmB7O,KAAK2B,EAClD,CACE,IAAImN,EAAc3M,EAAO4M,kBACzB,UAAWD,IAAgB,WAAY,CACrCA,EAAc3M,EAAO4M,kBAAkB/O,KAAK2B,EAChD,CACE,MAAMqN,EAAyBrN,EAAO8M,SAASnU,OAC/C,MAAM2U,EAA2BtN,EAAO+M,WAAWpU,OACnD,IAAI4U,EAAe/M,EAAO+M,aAC1B,IAAIC,GAAiBP,EACrB,IAAIQ,EAAgB,EACpB,IAAI3C,EAAQ,EACZ,UAAWqB,IAAe,YAAa,CACrC,MACJ,CACE,UAAWoB,IAAiB,UAAYA,EAAapO,QAAQ,MAAQ,EAAG,CACtEoO,EAAetP,WAAWsP,EAAa9P,QAAQ,IAAK,KAAO,IAAM0O,CACrE,MAAS,UAAWoB,IAAiB,SAAU,CAC3CA,EAAetP,WAAWsP,EAC9B,CACEvN,EAAO0N,aAAeH,EAGtBZ,EAAOlU,SAAQkV,IACb,GAAItB,EAAK,CACPsB,EAAQhU,MAAMiU,WAAa,EACjC,KAAW,CACLD,EAAQhU,MAAMoS,YAAc,EAClC,CACI4B,EAAQhU,MAAMkU,aAAe,GAC7BF,EAAQhU,MAAMmU,UAAY,EAAE,IAI9B,GAAItN,EAAOuN,gBAAkBvN,EAAOwN,QAAS,CAC3CrO,EAAee,EAAW,kCAAmC,IAC7Df,EAAee,EAAW,iCAAkC,GAChE,CACE,MAAMuN,EAAczN,EAAO0N,MAAQ1N,EAAO0N,KAAKC,KAAO,GAAKnO,EAAOkO,KAClE,GAAID,EAAa,CACfjO,EAAOkO,KAAKE,WAAWvB,EAC3B,CAGE,IAAIwB,EACJ,MAAMC,EAAuB9N,EAAO+N,gBAAkB,QAAU/N,EAAOgO,aAAepW,OAAOI,KAAKgI,EAAOgO,aAAatP,QAAOxG,UAC7G8H,EAAOgO,YAAY9V,GAAK6V,gBAAkB,cACvD5V,OAAS,EACZ,IAAK,IAAImG,EAAI,EAAGA,EAAI+N,EAAc/N,GAAK,EAAG,CACxCuP,EAAY,EACZ,IAAII,EACJ,GAAI9B,EAAO7N,GAAI2P,EAAQ9B,EAAO7N,GAC9B,GAAImP,EAAa,CACfjO,EAAOkO,KAAKQ,YAAY5P,EAAG2P,EAAO5B,EAAchB,EACtD,CACI,GAAIc,EAAO7N,IAAM4E,EAAa+K,EAAO,aAAe,OAAQ,SAE5D,GAAIjO,EAAO+N,gBAAkB,OAAQ,CACnC,GAAID,EAAsB,CACxB3B,EAAO7N,GAAGnF,MAAMkS,EAAkB,UAAY,EACtD,CACM,MAAM8C,EAAcrT,iBAAiBmT,GACrC,MAAMG,EAAmBH,EAAM9U,MAAMyD,UACrC,MAAMyR,EAAyBJ,EAAM9U,MAAM0D,gBAC3C,GAAIuR,EAAkB,CACpBH,EAAM9U,MAAMyD,UAAY,MAChC,CACM,GAAIyR,EAAwB,CAC1BJ,EAAM9U,MAAM0D,gBAAkB,MACtC,CACM,GAAImD,EAAOsO,aAAc,CACvBT,EAAYrO,EAAOuL,eAAiBlH,EAAiBoK,EAAO,QAAS,MAAQpK,EAAiBoK,EAAO,SAAU,KACvH,KAAa,CAEL,MAAMjJ,EAAQwG,EAA0B2C,EAAa,SACrD,MAAMI,EAAc/C,EAA0B2C,EAAa,gBAC3D,MAAMK,EAAehD,EAA0B2C,EAAa,iBAC5D,MAAMf,EAAa5B,EAA0B2C,EAAa,eAC1D,MAAM5C,EAAcC,EAA0B2C,EAAa,gBAC3D,MAAMM,EAAYN,EAAYpT,iBAAiB,cAC/C,GAAI0T,GAAaA,IAAc,aAAc,CAC3CZ,EAAY7I,EAAQoI,EAAa7B,CAC3C,KAAe,CACL,MAAMV,YACJA,EAAW7G,YACXA,GACEiK,EACJJ,EAAY7I,EAAQuJ,EAAcC,EAAepB,EAAa7B,GAAevH,EAAc6G,EACrG,CACA,CACM,GAAIuD,EAAkB,CACpBH,EAAM9U,MAAMyD,UAAYwR,CAChC,CACM,GAAIC,EAAwB,CAC1BJ,EAAM9U,MAAM0D,gBAAkBwR,CACtC,CACM,GAAIrO,EAAOsO,aAAcT,EAAYlN,KAAK+N,MAAMb,EACtD,KAAW,CACLA,GAAalC,GAAc3L,EAAO+N,cAAgB,GAAKhB,GAAgB/M,EAAO+N,cAC9E,GAAI/N,EAAOsO,aAAcT,EAAYlN,KAAK+N,MAAMb,GAChD,GAAI1B,EAAO7N,GAAI,CACb6N,EAAO7N,GAAGnF,MAAMkS,EAAkB,UAAY,GAAGwC,KACzD,CACA,CACI,GAAI1B,EAAO7N,GAAI,CACb6N,EAAO7N,GAAGqQ,gBAAkBd,CAClC,CACIrB,EAAgB3J,KAAKgL,GACrB,GAAI7N,EAAOuN,eAAgB,CACzBP,EAAgBA,EAAgBa,EAAY,EAAIZ,EAAgB,EAAIF,EACpE,GAAIE,IAAkB,GAAK3O,IAAM,EAAG0O,EAAgBA,EAAgBrB,EAAa,EAAIoB,EACrF,GAAIzO,IAAM,EAAG0O,EAAgBA,EAAgBrB,EAAa,EAAIoB,EAC9D,GAAIpM,KAAKiO,IAAI5B,GAAiB,EAAI,IAAMA,EAAgB,EACxD,GAAIhN,EAAOsO,aAActB,EAAgBrM,KAAK+N,MAAM1B,GACpD,GAAI1C,EAAQtK,EAAO6O,iBAAmB,EAAGvC,EAASzJ,KAAKmK,GACvDT,EAAW1J,KAAKmK,EACtB,KAAW,CACL,GAAIhN,EAAOsO,aAActB,EAAgBrM,KAAK+N,MAAM1B,GACpD,IAAK1C,EAAQ3J,KAAKE,IAAIrB,EAAOQ,OAAO8O,mBAAoBxE,IAAU9K,EAAOQ,OAAO6O,iBAAmB,EAAGvC,EAASzJ,KAAKmK,GACpHT,EAAW1J,KAAKmK,GAChBA,EAAgBA,EAAgBa,EAAYd,CAClD,CACIvN,EAAO0N,aAAeW,EAAYd,EAClCE,EAAgBY,EAChBvD,GAAS,CACb,CACE9K,EAAO0N,YAAcvM,KAAKC,IAAIpB,EAAO0N,YAAavB,GAAcgB,EAChE,GAAId,GAAOC,IAAa9L,EAAO+O,SAAW,SAAW/O,EAAO+O,SAAW,aAAc,CACnF7O,EAAU/G,MAAM6L,MAAQ,GAAGxF,EAAO0N,YAAcH,KACpD,CACE,GAAI/M,EAAOgP,eAAgB,CACzB9O,EAAU/G,MAAMkS,EAAkB,UAAY,GAAG7L,EAAO0N,YAAcH,KAC1E,CACE,GAAIU,EAAa,CACfjO,EAAOkO,KAAKuB,kBAAkBpB,EAAWvB,EAAUjB,EACvD,CAGE,IAAKrL,EAAOuN,eAAgB,CAC1B,MAAM2B,EAAgB,GACtB,IAAK,IAAI5Q,EAAI,EAAGA,EAAIgO,EAASnU,OAAQmG,GAAK,EAAG,CAC3C,IAAI6Q,EAAiB7C,EAAShO,GAC9B,GAAI0B,EAAOsO,aAAca,EAAiBxO,KAAK+N,MAAMS,GACrD,GAAI7C,EAAShO,IAAMkB,EAAO0N,YAAcvB,EAAY,CAClDuD,EAAcrM,KAAKsM,EAC3B,CACA,CACI7C,EAAW4C,EACX,GAAIvO,KAAK+N,MAAMlP,EAAO0N,YAAcvB,GAAchL,KAAK+N,MAAMpC,EAASA,EAASnU,OAAS,IAAM,EAAG,CAC/FmU,EAASzJ,KAAKrD,EAAO0N,YAAcvB,EACzC,CACA,CACE,GAAII,GAAa/L,EAAOoP,KAAM,CAC5B,MAAMtL,EAAO0I,EAAgB,GAAKO,EAClC,GAAI/M,EAAO6O,eAAiB,EAAG,CAC7B,MAAMQ,EAAS1O,KAAK2O,MAAM9P,EAAOwM,QAAQuD,aAAe/P,EAAOwM,QAAQwD,aAAexP,EAAO6O,gBAC7F,MAAMY,EAAY3L,EAAO9D,EAAO6O,eAChC,IAAK,IAAIvQ,EAAI,EAAGA,EAAI+Q,EAAQ/Q,GAAK,EAAG,CAClCgO,EAASzJ,KAAKyJ,EAASA,EAASnU,OAAS,GAAKsX,EACtD,CACA,CACI,IAAK,IAAInR,EAAI,EAAGA,EAAIkB,EAAOwM,QAAQuD,aAAe/P,EAAOwM,QAAQwD,YAAalR,GAAK,EAAG,CACpF,GAAI0B,EAAO6O,iBAAmB,EAAG,CAC/BvC,EAASzJ,KAAKyJ,EAASA,EAASnU,OAAS,GAAK2L,EACtD,CACMyI,EAAW1J,KAAK0J,EAAWA,EAAWpU,OAAS,GAAK2L,GACpDtE,EAAO0N,aAAepJ,CAC5B,CACA,CACE,GAAIwI,EAASnU,SAAW,EAAGmU,EAAW,CAAC,GACvC,GAAIS,IAAiB,EAAG,CACtB,MAAM7U,EAAMsH,EAAOuL,gBAAkBc,EAAM,aAAeR,EAAkB,eAC5Ec,EAAOzN,QAAO,CAACgR,EAAGC,KAChB,IAAK3P,EAAOwN,SAAWxN,EAAOoP,KAAM,OAAO,KAC3C,GAAIO,IAAexD,EAAOhU,OAAS,EAAG,CACpC,OAAO,KACf,CACM,OAAO,IAAI,IACVF,SAAQkV,IACTA,EAAQhU,MAAMjB,GAAO,GAAG6U,KAAgB,GAE9C,CACE,GAAI/M,EAAOuN,gBAAkBvN,EAAO4P,qBAAsB,CACxD,IAAIC,EAAgB,EACpBrD,EAAgBvU,SAAQ6X,IACtBD,GAAiBC,GAAkB/C,GAAgB,EAAE,IAEvD8C,GAAiB9C,EACjB,MAAMgD,EAAUF,EAAgBlE,EAChCW,EAAWA,EAASvP,KAAIiT,IACtB,GAAIA,GAAQ,EAAG,OAAQvD,EACvB,GAAIuD,EAAOD,EAAS,OAAOA,EAAUpD,EACrC,OAAOqD,CAAI,GAEjB,CACE,GAAIhQ,EAAOiQ,yBAA0B,CACnC,IAAIJ,EAAgB,EACpBrD,EAAgBvU,SAAQ6X,IACtBD,GAAiBC,GAAkB/C,GAAgB,EAAE,IAEvD8C,GAAiB9C,EACjB,GAAI8C,EAAgBlE,EAAY,CAC9B,MAAMuE,GAAmBvE,EAAakE,GAAiB,EACvDvD,EAASrU,SAAQ,CAAC+X,EAAMG,KACtB7D,EAAS6D,GAAaH,EAAOE,CAAe,IAE9C3D,EAAWtU,SAAQ,CAAC+X,EAAMG,KACxB5D,EAAW4D,GAAaH,EAAOE,CAAe,GAEtD,CACA,CACEtY,OAAOuT,OAAO3L,EAAQ,CACpB2M,SACAG,WACAC,aACAC,oBAEF,GAAIxM,EAAOuN,gBAAkBvN,EAAOwN,UAAYxN,EAAO4P,qBAAsB,CAC3EzQ,EAAee,EAAW,kCAAmC,IAAIoM,EAAS,QAC1EnN,EAAee,EAAW,iCAAkC,GAAGV,EAAOsE,KAAO,EAAI0I,EAAgBA,EAAgBrU,OAAS,GAAK,OAC/H,MAAMiY,GAAiB5Q,EAAO8M,SAAS,GACvC,MAAM+D,GAAmB7Q,EAAO+M,WAAW,GAC3C/M,EAAO8M,SAAW9M,EAAO8M,SAASvP,KAAIuT,GAAKA,EAAIF,IAC/C5Q,EAAO+M,WAAa/M,EAAO+M,WAAWxP,KAAIuT,GAAKA,EAAID,GACvD,CACE,GAAIhE,IAAiBH,EAAsB,CACzC1M,EAAOqH,KAAK,qBAChB,CACE,GAAIyF,EAASnU,SAAW0U,EAAwB,CAC9C,GAAIrN,EAAOQ,OAAOuQ,cAAe/Q,EAAOgR,gBACxChR,EAAOqH,KAAK,uBAChB,CACE,GAAI0F,EAAWpU,SAAW2U,EAA0B,CAClDtN,EAAOqH,KAAK,yBAChB,CACE,GAAI7G,EAAOyQ,oBAAqB,CAC9BjR,EAAOkR,oBACX,CACE,IAAK3E,IAAc/L,EAAOwN,UAAYxN,EAAO+O,SAAW,SAAW/O,EAAO+O,SAAW,QAAS,CAC5F,MAAM4B,EAAsB,GAAG3Q,EAAO4Q,wCACtC,MAAMC,EAA6BrR,EAAOrD,GAAGuF,UAAUoP,SAASH,GAChE,GAAItE,GAAgBrM,EAAO+Q,wBAAyB,CAClD,IAAKF,EAA4BrR,EAAOrD,GAAGuF,UAAUC,IAAIgP,EAC/D,MAAW,GAAIE,EAA4B,CACrCrR,EAAOrD,GAAGuF,UAAUsP,OAAOL,EACjC,CACA,CACA,CC9Re,SAASM,EAAiBhR,GACvC,MAAMT,EAAS3E,KACf,MAAMqW,EAAe,GACrB,MAAMnF,EAAYvM,EAAOwM,SAAWxM,EAAOQ,OAAOgM,QAAQC,QAC1D,IAAI1E,EAAY,EAChB,IAAIjJ,EACJ,UAAW2B,IAAU,SAAU,CAC7BT,EAAO2R,cAAclR,EACzB,MAAS,GAAIA,IAAU,KAAM,CACzBT,EAAO2R,cAAc3R,EAAOQ,OAAOC,MACvC,CACE,MAAMmR,EAAkB9G,IACtB,GAAIyB,EAAW,CACb,OAAOvM,EAAO2M,OAAO3M,EAAO6R,oBAAoB/G,GACtD,CACI,OAAO9K,EAAO2M,OAAO7B,EAAM,EAG7B,GAAI9K,EAAOQ,OAAO+N,gBAAkB,QAAUvO,EAAOQ,OAAO+N,cAAgB,EAAG,CAC7E,GAAIvO,EAAOQ,OAAOuN,eAAgB,EAC/B/N,EAAO8R,eAAiB,IAAIrZ,SAAQgW,IACnCiD,EAAarO,KAAKoL,EAAM,GAEhC,KAAW,CACL,IAAK3P,EAAI,EAAGA,EAAIqC,KAAK2O,KAAK9P,EAAOQ,OAAO+N,eAAgBzP,GAAK,EAAG,CAC9D,MAAMgM,EAAQ9K,EAAO+R,YAAcjT,EACnC,GAAIgM,EAAQ9K,EAAO2M,OAAOhU,SAAW4T,EAAW,MAChDmF,EAAarO,KAAKuO,EAAgB9G,GAC1C,CACA,CACA,KAAS,CACL4G,EAAarO,KAAKuO,EAAgB5R,EAAO+R,aAC7C,CAGE,IAAKjT,EAAI,EAAGA,EAAI4S,EAAa/Y,OAAQmG,GAAK,EAAG,CAC3C,UAAW4S,EAAa5S,KAAO,YAAa,CAC1C,MAAM4G,EAASgM,EAAa5S,GAAGkT,aAC/BjK,EAAYrC,EAASqC,EAAYrC,EAASqC,CAChD,CACA,CAGE,GAAIA,GAAaA,IAAc,EAAG/H,EAAOU,UAAU/G,MAAM+L,OAAS,GAAGqC,KACvE,CC5Ce,SAASmJ,IACtB,MAAMlR,EAAS3E,KACf,MAAMsR,EAAS3M,EAAO2M,OAEtB,MAAMsF,EAAcjS,EAAOkS,UAAYlS,EAAOuL,eAAiBvL,EAAOU,UAAUyR,WAAanS,EAAOU,UAAU0R,UAAY,EAC1H,IAAK,IAAItT,EAAI,EAAGA,EAAI6N,EAAOhU,OAAQmG,GAAK,EAAG,CACzC6N,EAAO7N,GAAGuT,mBAAqBrS,EAAOuL,eAAiBoB,EAAO7N,GAAGqT,WAAaxF,EAAO7N,GAAGsT,WAAaH,EAAcjS,EAAOsS,uBAC9H,CACA,CCRe,SAASC,EAAqBnS,EAAY/E,MAAQA,KAAK+E,WAAa,GACjF,MAAMJ,EAAS3E,KACf,MAAMmF,EAASR,EAAOQ,OACtB,MAAMmM,OACJA,EACAP,aAAcC,EAAGS,SACjBA,GACE9M,EACJ,GAAI2M,EAAOhU,SAAW,EAAG,OACzB,UAAWgU,EAAO,GAAG0F,oBAAsB,YAAarS,EAAOkR,qBAC/D,IAAIsB,GAAgBpS,EACpB,GAAIiM,EAAKmG,EAAepS,EAGxBuM,EAAOlU,SAAQkV,IACbA,EAAQzL,UAAUsP,OAAOhR,EAAOiS,kBAAkB,IAEpDzS,EAAO0S,qBAAuB,GAC9B1S,EAAO8R,cAAgB,GACvB,IAAIvE,EAAe/M,EAAO+M,aAC1B,UAAWA,IAAiB,UAAYA,EAAapO,QAAQ,MAAQ,EAAG,CACtEoO,EAAetP,WAAWsP,EAAa9P,QAAQ,IAAK,KAAO,IAAMuC,EAAOsE,IAC5E,MAAS,UAAWiJ,IAAiB,SAAU,CAC3CA,EAAetP,WAAWsP,EAC9B,CACE,IAAK,IAAIzO,EAAI,EAAGA,EAAI6N,EAAOhU,OAAQmG,GAAK,EAAG,CACzC,MAAM2P,EAAQ9B,EAAO7N,GACrB,IAAI6T,EAAclE,EAAM4D,kBACxB,GAAI7R,EAAOwN,SAAWxN,EAAOuN,eAAgB,CAC3C4E,GAAehG,EAAO,GAAG0F,iBAC/B,CACI,MAAMO,GAAiBJ,GAAgBhS,EAAOuN,eAAiB/N,EAAO6S,eAAiB,GAAKF,IAAgBlE,EAAMU,gBAAkB5B,GACpI,MAAMuF,GAAyBN,EAAe1F,EAAS,IAAMtM,EAAOuN,eAAiB/N,EAAO6S,eAAiB,GAAKF,IAAgBlE,EAAMU,gBAAkB5B,GAC1J,MAAMwF,IAAgBP,EAAeG,GACrC,MAAMK,EAAaD,EAAc/S,EAAOgN,gBAAgBlO,GACxD,MAAMmU,EAAYF,GAAe,GAAKA,EAAc/S,EAAOsE,KAAO,GAAK0O,EAAa,GAAKA,GAAchT,EAAOsE,MAAQyO,GAAe,GAAKC,GAAchT,EAAOsE,KAC/J,GAAI2O,EAAW,CACbjT,EAAO8R,cAAczO,KAAKoL,GAC1BzO,EAAO0S,qBAAqBrP,KAAKvE,GACjC6N,EAAO7N,GAAGoD,UAAUC,IAAI3B,EAAOiS,kBACrC,CACIhE,EAAMvN,SAAWmL,GAAOuG,EAAgBA,EACxCnE,EAAMyE,iBAAmB7G,GAAOyG,EAAwBA,CAC5D,CACA,CC5Ce,SAASK,EAAe/S,GACrC,MAAMJ,EAAS3E,KACf,UAAW+E,IAAc,YAAa,CACpC,MAAMgT,EAAapT,EAAOoM,cAAgB,EAAI,EAE9ChM,EAAYJ,GAAUA,EAAOI,WAAaJ,EAAOI,UAAYgT,GAAc,CAC/E,CACE,MAAM5S,EAASR,EAAOQ,OACtB,MAAM6S,EAAiBrT,EAAOsT,eAAiBtT,EAAO6S,eACtD,IAAI3R,SACFA,EAAQqS,YACRA,EAAWC,MACXA,EAAKC,aACLA,GACEzT,EACJ,MAAM0T,EAAeH,EACrB,MAAMI,EAASH,EACf,GAAIH,IAAmB,EAAG,CACxBnS,EAAW,EACXqS,EAAc,KACdC,EAAQ,IACZ,KAAS,CACLtS,GAAYd,EAAYJ,EAAO6S,gBAAkBQ,EACjD,MAAMO,EAAqBzS,KAAKiO,IAAIhP,EAAYJ,EAAO6S,gBAAkB,EACzE,MAAMgB,EAAe1S,KAAKiO,IAAIhP,EAAYJ,EAAOsT,gBAAkB,EACnEC,EAAcK,GAAsB1S,GAAY,EAChDsS,EAAQK,GAAgB3S,GAAY,EACpC,GAAI0S,EAAoB1S,EAAW,EACnC,GAAI2S,EAAc3S,EAAW,CACjC,CACE,GAAIV,EAAOoP,KAAM,CACf,MAAMkE,EAAkB9T,EAAO6R,oBAAoB,GACnD,MAAMkC,EAAiB/T,EAAO6R,oBAAoB7R,EAAO2M,OAAOhU,OAAS,GACzE,MAAMqb,EAAsBhU,EAAO+M,WAAW+G,GAC9C,MAAMG,EAAqBjU,EAAO+M,WAAWgH,GAC7C,MAAMG,EAAelU,EAAO+M,WAAW/M,EAAO+M,WAAWpU,OAAS,GAClE,MAAMwb,EAAehT,KAAKiO,IAAIhP,GAC9B,GAAI+T,GAAgBH,EAAqB,CACvCP,GAAgBU,EAAeH,GAAuBE,CAC5D,KAAW,CACLT,GAAgBU,EAAeD,EAAeD,GAAsBC,CAC1E,CACI,GAAIT,EAAe,EAAGA,GAAgB,CAC1C,CACErb,OAAOuT,OAAO3L,EAAQ,CACpBkB,WACAuS,eACAF,cACAC,UAEF,GAAIhT,EAAOyQ,qBAAuBzQ,EAAOuN,gBAAkBvN,EAAO4T,WAAYpU,EAAOuS,qBAAqBnS,GAC1G,GAAImT,IAAgBG,EAAc,CAChC1T,EAAOqH,KAAK,wBAChB,CACE,GAAImM,IAAUG,EAAQ,CACpB3T,EAAOqH,KAAK,kBAChB,CACE,GAAIqM,IAAiBH,GAAeI,IAAWH,EAAO,CACpDxT,EAAOqH,KAAK,WAChB,CACErH,EAAOqH,KAAK,WAAYnG,EAC1B,CC5De,SAASmT,IACtB,MAAMrU,EAAS3E,KACf,MAAMsR,OACJA,EAAMnM,OACNA,EAAM0L,SACNA,EAAQ6F,YACRA,GACE/R,EACJ,MAAMuM,EAAYvM,EAAOwM,SAAWhM,EAAOgM,QAAQC,QACnD,MAAM6H,EAAmBxS,GAChBF,EAAgBsK,EAAU,IAAI1L,EAAOoM,aAAa9K,kBAAyBA,KAAY,GAEhG6K,EAAOlU,SAAQkV,IACbA,EAAQzL,UAAUsP,OAAOhR,EAAO+T,iBAAkB/T,EAAOgU,eAAgBhU,EAAOiU,eAAe,IAEjG,IAAIC,EACJ,GAAInI,EAAW,CACb,GAAI/L,EAAOoP,KAAM,CACf,IAAIO,EAAa4B,EAAc/R,EAAOwM,QAAQuD,aAC9C,GAAII,EAAa,EAAGA,EAAanQ,EAAOwM,QAAQG,OAAOhU,OAASwX,EAChE,GAAIA,GAAcnQ,EAAOwM,QAAQG,OAAOhU,OAAQwX,GAAcnQ,EAAOwM,QAAQG,OAAOhU,OACpF+b,EAAcJ,EAAiB,6BAA6BnE,MAClE,KAAW,CACLuE,EAAcJ,EAAiB,6BAA6BvC,MAClE,CACA,KAAS,CACL2C,EAAc/H,EAAOoF,EACzB,CACE,GAAI2C,EAAa,CAEfA,EAAYxS,UAAUC,IAAI3B,EAAO+T,kBAGjC,IAAII,EAAYrR,EAAeoR,EAAa,IAAIlU,EAAOoM,4BAA4B,GACnF,GAAIpM,EAAOoP,OAAS+E,EAAW,CAC7BA,EAAYhI,EAAO,EACzB,CACI,GAAIgI,EAAW,CACbA,EAAUzS,UAAUC,IAAI3B,EAAOgU,eACrC,CAEI,IAAII,EAAY3R,EAAeyR,EAAa,IAAIlU,EAAOoM,4BAA4B,GACnF,GAAIpM,EAAOoP,OAASgF,IAAc,EAAG,CACnCA,EAAYjI,EAAOA,EAAOhU,OAAS,EACzC,CACI,GAAIic,EAAW,CACbA,EAAU1S,UAAUC,IAAI3B,EAAOiU,eACrC,CACA,CACEzU,EAAO6U,mBACT,CCnDO,MAAMC,EAAuB,CAAC9U,EAAQ+U,KAC3C,IAAK/U,GAAUA,EAAOyH,YAAczH,EAAOQ,OAAQ,OACnD,MAAMwU,EAAgB,IAAMhV,EAAOkS,UAAY,eAAiB,IAAIlS,EAAOQ,OAAOoM,aAClF,MAAMe,EAAUoH,EAAQE,QAAQD,KAChC,GAAIrH,EAAS,CACX,MAAMuH,EAASvH,EAAQxU,cAAc,IAAI6G,EAAOQ,OAAO2U,sBACvD,GAAID,EAAQA,EAAO1D,QACvB,GAEA,MAAM4D,EAAS,CAACpV,EAAQ8K,KACtB,IAAK9K,EAAO2M,OAAO7B,GAAQ,OAC3B,MAAMiK,EAAU/U,EAAO2M,OAAO7B,GAAO3R,cAAc,oBACnD,GAAI4b,EAASA,EAAQM,gBAAgB,UAAU,EAE1C,MAAMC,EAAUtV,IACrB,IAAKA,GAAUA,EAAOyH,YAAczH,EAAOQ,OAAQ,OACnD,IAAI+U,EAASvV,EAAOQ,OAAOgV,oBAC3B,MAAMnW,EAAMW,EAAO2M,OAAOhU,OAC1B,IAAK0G,IAAQkW,GAAUA,EAAS,EAAG,OACnCA,EAASpU,KAAKE,IAAIkU,EAAQlW,GAC1B,MAAMkP,EAAgBvO,EAAOQ,OAAO+N,gBAAkB,OAASvO,EAAOyV,uBAAyBtU,KAAK2O,KAAK9P,EAAOQ,OAAO+N,eACvH,MAAMwD,EAAc/R,EAAO+R,YAC3B,GAAI/R,EAAOQ,OAAO0N,MAAQlO,EAAOQ,OAAO0N,KAAKC,KAAO,EAAG,CACrD,MAAMuH,EAAe3D,EACrB,MAAM4D,EAAiB,CAACD,EAAeH,GACvCI,EAAetS,QAAQjB,MAAMwT,KAAK,CAChCjd,OAAQ4c,IACPhY,KAAI,CAAC2S,EAAGpR,IACF4W,EAAenH,EAAgBzP,KAExCkB,EAAO2M,OAAOlU,SAAQ,CAACkV,EAAS7O,KAC9B,GAAI6W,EAAehP,SAASgH,EAAQkI,QAAST,EAAOpV,EAAQlB,EAAE,IAEhE,MACJ,CACE,MAAMgX,EAAuB/D,EAAcxD,EAAgB,EAC3D,GAAIvO,EAAOQ,OAAOuV,QAAU/V,EAAOQ,OAAOoP,KAAM,CAC9C,IAAK,IAAI9Q,EAAIiT,EAAcwD,EAAQzW,GAAKgX,EAAuBP,EAAQzW,GAAK,EAAG,CAC7E,MAAMkX,GAAalX,EAAIO,EAAMA,GAAOA,EACpC,GAAI2W,EAAYjE,GAAeiE,EAAYF,EAAsBV,EAAOpV,EAAQgW,EACtF,CACA,KAAS,CACL,IAAK,IAAIlX,EAAIqC,KAAKC,IAAI2Q,EAAcwD,EAAQ,GAAIzW,GAAKqC,KAAKE,IAAIyU,EAAuBP,EAAQlW,EAAM,GAAIP,GAAK,EAAG,CAC7G,GAAIA,IAAMiT,IAAgBjT,EAAIgX,GAAwBhX,EAAIiT,GAAc,CACtEqD,EAAOpV,EAAQlB,EACvB,CACA,CACA,GC9CO,SAASmX,EAA0BjW,GACxC,MAAM+M,WACJA,EAAUvM,OACVA,GACER,EACJ,MAAMI,EAAYJ,EAAOoM,aAAepM,EAAOI,WAAaJ,EAAOI,UACnE,IAAI2R,EACJ,IAAK,IAAIjT,EAAI,EAAGA,EAAIiO,EAAWpU,OAAQmG,GAAK,EAAG,CAC7C,UAAWiO,EAAWjO,EAAI,KAAO,YAAa,CAC5C,GAAIsB,GAAa2M,EAAWjO,IAAMsB,EAAY2M,EAAWjO,EAAI,IAAMiO,EAAWjO,EAAI,GAAKiO,EAAWjO,IAAM,EAAG,CACzGiT,EAAcjT,CACtB,MAAa,GAAIsB,GAAa2M,EAAWjO,IAAMsB,EAAY2M,EAAWjO,EAAI,GAAI,CACtEiT,EAAcjT,EAAI,CAC1B,CACA,MAAW,GAAIsB,GAAa2M,EAAWjO,GAAI,CACrCiT,EAAcjT,CACpB,CACA,CAEE,GAAI0B,EAAO0V,oBAAqB,CAC9B,GAAInE,EAAc,UAAYA,IAAgB,YAAaA,EAAc,CAC7E,CACE,OAAOA,CACT,CACe,SAASoE,EAAkBC,GACxC,MAAMpW,EAAS3E,KACf,MAAM+E,EAAYJ,EAAOoM,aAAepM,EAAOI,WAAaJ,EAAOI,UACnE,MAAM0M,SACJA,EAAQtM,OACRA,EACAuR,YAAasE,EACbL,UAAWM,EACX3F,UAAW4F,GACTvW,EACJ,IAAI+R,EAAcqE,EAClB,IAAIzF,EACJ,MAAM6F,EAAsBC,IAC1B,IAAIT,EAAYS,EAASzW,EAAOwM,QAAQuD,aACxC,GAAIiG,EAAY,EAAG,CACjBA,EAAYhW,EAAOwM,QAAQG,OAAOhU,OAASqd,CACjD,CACI,GAAIA,GAAahW,EAAOwM,QAAQG,OAAOhU,OAAQ,CAC7Cqd,GAAahW,EAAOwM,QAAQG,OAAOhU,MACzC,CACI,OAAOqd,CAAS,EAElB,UAAWjE,IAAgB,YAAa,CACtCA,EAAckE,EAA0BjW,EAC5C,CACE,GAAI8M,EAAS3N,QAAQiB,IAAc,EAAG,CACpCuQ,EAAY7D,EAAS3N,QAAQiB,EACjC,KAAS,CACL,MAAMsW,EAAOvV,KAAKE,IAAIb,EAAO8O,mBAAoByC,GACjDpB,EAAY+F,EAAOvV,KAAK+N,OAAO6C,EAAc2E,GAAQlW,EAAO6O,eAChE,CACE,GAAIsB,GAAa7D,EAASnU,OAAQgY,EAAY7D,EAASnU,OAAS,EAChE,GAAIoZ,IAAgBsE,EAAe,CACjC,GAAI1F,IAAc4F,EAAmB,CACnCvW,EAAO2Q,UAAYA,EACnB3Q,EAAOqH,KAAK,kBAClB,CACI,GAAIrH,EAAOQ,OAAOoP,MAAQ5P,EAAOwM,SAAWxM,EAAOQ,OAAOgM,QAAQC,QAAS,CACzEzM,EAAOgW,UAAYQ,EAAoBzE,EAC7C,CACI,MACJ,CAEE,IAAIiE,EACJ,GAAIhW,EAAOwM,SAAWhM,EAAOgM,QAAQC,SAAWjM,EAAOoP,KAAM,CAC3DoG,EAAYQ,EAAoBzE,EACpC,MAAS,GAAI/R,EAAO2M,OAAOoF,GAAc,CACrCiE,EAAYvK,SAASzL,EAAO2M,OAAOoF,GAAa4E,aAAa,4BAA8B5E,EAAa,GAC5G,KAAS,CACLiE,EAAYjE,CAChB,CACE3Z,OAAOuT,OAAO3L,EAAQ,CACpBuW,oBACA5F,YACA2F,oBACAN,YACAK,gBACAtE,gBAEF,GAAI/R,EAAO0H,YAAa,CACtB4N,EAAQtV,EACZ,CACEA,EAAOqH,KAAK,qBACZrH,EAAOqH,KAAK,mBACZ,GAAIiP,IAAsBN,EAAW,CACnChW,EAAOqH,KAAK,kBAChB,CACE,GAAIrH,EAAO0H,aAAe1H,EAAOQ,OAAOoW,mBAAoB,CAC1D5W,EAAOqH,KAAK,cAChB,CACA,CC/Fe,SAASwP,EAAmBta,GACzC,MAAMyD,EAAS3E,KACf,MAAMmF,EAASR,EAAOQ,OACtB,MAAMiO,EAAQlS,EAAE0Y,QAAQ,IAAIzU,EAAOoM,4BACnC,IAAIkK,EAAa,MACjB,IAAI3G,EACJ,GAAI1B,EAAO,CACT,IAAK,IAAI3P,EAAI,EAAGA,EAAIkB,EAAO2M,OAAOhU,OAAQmG,GAAK,EAAG,CAChD,GAAIkB,EAAO2M,OAAO7N,KAAO2P,EAAO,CAC9BqI,EAAa,KACb3G,EAAarR,EACb,KACR,CACA,CACA,CACE,GAAI2P,GAASqI,EAAY,CACvB9W,EAAO+W,aAAetI,EACtB,GAAIzO,EAAOwM,SAAWxM,EAAOQ,OAAOgM,QAAQC,QAAS,CACnDzM,EAAOgX,aAAevL,SAASgD,EAAMkI,aAAa,2BAA4B,GACpF,KAAW,CACL3W,EAAOgX,aAAe7G,CAC5B,CACA,KAAS,CACLnQ,EAAO+W,aAAe/X,UACtBgB,EAAOgX,aAAehY,UACtB,MACJ,CACE,GAAIwB,EAAOyW,qBAAuBjX,EAAOgX,eAAiBhY,WAAagB,EAAOgX,eAAiBhX,EAAO+R,YAAa,CACjH/R,EAAOiX,qBACX,CACA,CCrBA,MAAAC,EAAe,CACb9L,aACAQ,eACA6F,mBACAP,qBACAqB,uBACAY,iBACAkB,sBACA8B,oBACAU,sBCjBa,SAASM,EAAmBra,GAAOzB,KAAKkQ,eAAiB,IAAM,MAC5E,MAAMvL,EAAS3E,KACf,MAAMmF,OACJA,EACA4L,aAAcC,EAAGjM,UACjBA,EAASM,UACTA,GACEV,EACJ,GAAIQ,EAAO4W,iBAAkB,CAC3B,OAAO/K,GAAOjM,EAAYA,CAC9B,CACE,GAAII,EAAOwN,QAAS,CAClB,OAAO5N,CACX,CACE,IAAIiX,EAAmBxa,EAAa6D,EAAW5D,GAC/Cua,GAAoBrX,EAAOsS,wBAC3B,GAAIjG,EAAKgL,GAAoBA,EAC7B,OAAOA,GAAoB,CAC7B,CCnBe,SAASC,EAAalX,EAAWmX,GAC9C,MAAMvX,EAAS3E,KACf,MACE+Q,aAAcC,EAAG7L,OACjBA,EAAME,UACNA,EAASQ,SACTA,GACElB,EACJ,IAAIwX,EAAI,EACR,IAAIC,EAAI,EACR,MAAMC,EAAI,EACV,GAAI1X,EAAOuL,eAAgB,CACzBiM,EAAInL,GAAOjM,EAAYA,CAC3B,KAAS,CACLqX,EAAIrX,CACR,CACE,GAAII,EAAOsO,aAAc,CACvB0I,EAAIrW,KAAK+N,MAAMsI,GACfC,EAAItW,KAAK+N,MAAMuI,EACnB,CACEzX,EAAO2X,kBAAoB3X,EAAOI,UAClCJ,EAAOI,UAAYJ,EAAOuL,eAAiBiM,EAAIC,EAC/C,GAAIjX,EAAOwN,QAAS,CAClBtN,EAAUV,EAAOuL,eAAiB,aAAe,aAAevL,EAAOuL,gBAAkBiM,GAAKC,CAClG,MAAS,IAAKjX,EAAO4W,iBAAkB,CACnC,GAAIpX,EAAOuL,eAAgB,CACzBiM,GAAKxX,EAAOsS,uBAClB,KAAW,CACLmF,GAAKzX,EAAOsS,uBAClB,CACI5R,EAAU/G,MAAMyD,UAAY,eAAeoa,QAAQC,QAAQC,MAC/D,CAGE,IAAIE,EACJ,MAAMvE,EAAiBrT,EAAOsT,eAAiBtT,EAAO6S,eACtD,GAAIQ,IAAmB,EAAG,CACxBuE,EAAc,CAClB,KAAS,CACLA,GAAexX,EAAYJ,EAAO6S,gBAAkBQ,CACxD,CACE,GAAIuE,IAAgB1W,EAAU,CAC5BlB,EAAOmT,eAAe/S,EAC1B,CACEJ,EAAOqH,KAAK,eAAgBrH,EAAOI,UAAWmX,EAChD,CC7Ce,SAAS1E,KACtB,OAAQxX,KAAKyR,SAAS,EACxB,CCFe,SAASwG,KACtB,OAAQjY,KAAKyR,SAASzR,KAAKyR,SAASnU,OAAS,EAC/C,CCDe,SAASkf,GAAYzX,EAAY,EAAGK,EAAQpF,KAAKmF,OAAOC,MAAOqX,EAAe,KAAMC,EAAkB,KAAMC,GACzH,MAAMhY,EAAS3E,KACf,MAAMmF,OACJA,EAAME,UACNA,GACEV,EACJ,GAAIA,EAAOiY,WAAazX,EAAO0X,+BAAgC,CAC7D,OAAO,KACX,CACE,MAAMrF,EAAe7S,EAAO6S,eAC5B,MAAMS,EAAetT,EAAOsT,eAC5B,IAAI6E,EACJ,GAAIJ,GAAmB3X,EAAYyS,EAAcsF,EAAetF,OAAkB,GAAIkF,GAAmB3X,EAAYkT,EAAc6E,EAAe7E,OAAkB6E,EAAe/X,EAGnLJ,EAAOmT,eAAegF,GACtB,GAAI3X,EAAOwN,QAAS,CAClB,MAAMoK,EAAMpY,EAAOuL,eACnB,GAAI9K,IAAU,EAAG,CACfC,EAAU0X,EAAM,aAAe,cAAgBD,CACrD,KAAW,CACL,IAAKnY,EAAOyE,QAAQE,aAAc,CAChC5E,EAAqB,CACnBC,SACAC,gBAAiBkY,EACjBjY,KAAMkY,EAAM,OAAS,QAEvB,OAAO,IACf,CACM1X,EAAUgB,SAAS,CACjB,CAAC0W,EAAM,OAAS,QAASD,EACzBE,SAAU,UAElB,CACI,OAAO,IACX,CACE,GAAI5X,IAAU,EAAG,CACfT,EAAO2R,cAAc,GACrB3R,EAAOsX,aAAaa,GACpB,GAAIL,EAAc,CAChB9X,EAAOqH,KAAK,wBAAyB5G,EAAOuX,GAC5ChY,EAAOqH,KAAK,gBAClB,CACA,KAAS,CACLrH,EAAO2R,cAAclR,GACrBT,EAAOsX,aAAaa,GACpB,GAAIL,EAAc,CAChB9X,EAAOqH,KAAK,wBAAyB5G,EAAOuX,GAC5ChY,EAAOqH,KAAK,kBAClB,CACI,IAAKrH,EAAOiY,UAAW,CACrBjY,EAAOiY,UAAY,KACnB,IAAKjY,EAAOsY,kCAAmC,CAC7CtY,EAAOsY,kCAAoC,SAASC,EAAchc,GAChE,IAAKyD,GAAUA,EAAOyH,UAAW,OACjC,GAAIlL,EAAEjE,SAAW+C,KAAM,OACvB2E,EAAOU,UAAU3H,oBAAoB,gBAAiBiH,EAAOsY,mCAC7DtY,EAAOsY,kCAAoC,YACpCtY,EAAOsY,kCACd,GAAIR,EAAc,CAChB9X,EAAOqH,KAAK,gBACxB,CACA,CACA,CACMrH,EAAOU,UAAU5H,iBAAiB,gBAAiBkH,EAAOsY,kCAChE,CACA,CACE,OAAO,IACT,CChEA,MAAAlY,GAAe,CACfvD,aAAEA,EACAya,eACAzE,gBACAS,gBACAuE,gBCVa,SAASlG,GAAcpR,EAAUgX,GAC9C,MAAMvX,EAAS3E,KACf,IAAK2E,EAAOQ,OAAOwN,QAAS,CAC1BhO,EAAOU,UAAU/G,MAAM6e,mBAAqB,GAAGjY,KACnD,CACEP,EAAOqH,KAAK,gBAAiB9G,EAAUgX,EACzC,CCNe,SAASkB,IAAezY,OACrCA,EAAM8X,aACNA,EAAYY,UACZA,EAASC,KACTA,IAEA,MAAM5G,YACJA,EAAWsE,cACXA,GACErW,EACJ,IAAIa,EAAM6X,EACV,IAAK7X,EAAK,CACR,GAAIkR,EAAcsE,EAAexV,EAAM,YAAY,GAAIkR,EAAcsE,EAAexV,EAAM,YAAYA,EAAM,OAChH,CACEb,EAAOqH,KAAK,aAAasR,KACzB,GAAIb,GAAgB/F,IAAgBsE,EAAe,CACjD,GAAIxV,IAAQ,QAAS,CACnBb,EAAOqH,KAAK,uBAAuBsR,KACnC,MACN,CACI3Y,EAAOqH,KAAK,wBAAwBsR,KACpC,GAAI9X,IAAQ,OAAQ,CAClBb,EAAOqH,KAAK,sBAAsBsR,IACxC,KAAW,CACL3Y,EAAOqH,KAAK,sBAAsBsR,IACxC,CACA,CACA,CC1Be,SAASC,GAAgBd,EAAe,KAAMY,GAC3D,MAAM1Y,EAAS3E,KACf,MAAMmF,OACJA,GACER,EACJ,GAAIQ,EAAOwN,QAAS,OACpB,GAAIxN,EAAO4T,WAAY,CACrBpU,EAAOyR,kBACX,CACEgH,GAAe,CACbzY,SACA8X,eACAY,YACAC,KAAM,SAEV,CCfe,SAASJ,GAAcT,EAAe,KAAMY,GACzD,MAAM1Y,EAAS3E,KACf,MAAMmF,OACJA,GACER,EACJA,EAAOiY,UAAY,MACnB,GAAIzX,EAAOwN,QAAS,OACpBhO,EAAO2R,cAAc,GACrB8G,GAAe,CACbzY,SACA8X,eACAY,YACAC,KAAM,OAEV,CCZA,MAAAE,GAAe,CACblH,iBACAiH,mBACAL,kBCLa,SAASO,GAAQhO,EAAQ,EAAGrK,EAAQpF,KAAKmF,OAAOC,MAAOqX,EAAe,KAAME,EAAUe,GACnG,UAAWjO,IAAU,SAAU,CAC7BA,EAAQW,SAASX,EAAO,GAC5B,CACE,MAAM9K,EAAS3E,KACf,IAAI8U,EAAarF,EACjB,GAAIqF,EAAa,EAAGA,EAAa,EACjC,MAAM3P,OACJA,EAAMsM,SACNA,EAAQC,WACRA,EAAUsJ,cACVA,EAAatE,YACbA,EACA3F,aAAcC,EAAG3L,UACjBA,EAAS+L,QACTA,GACEzM,EACJ,GAAIA,EAAOiY,WAAazX,EAAO0X,iCAAmCzL,IAAYuL,IAAae,EAAS,CAClG,OAAO,KACX,CACE,MAAMrC,EAAOvV,KAAKE,IAAIrB,EAAOQ,OAAO8O,mBAAoBa,GACxD,IAAIQ,EAAY+F,EAAOvV,KAAK+N,OAAOiB,EAAauG,GAAQ1W,EAAOQ,OAAO6O,gBACtE,GAAIsB,GAAa7D,EAASnU,OAAQgY,EAAY7D,EAASnU,OAAS,EAChE,MAAMyH,GAAa0M,EAAS6D,GAE5B,GAAInQ,EAAO0V,oBAAqB,CAC9B,IAAK,IAAIpX,EAAI,EAAGA,EAAIiO,EAAWpU,OAAQmG,GAAK,EAAG,CAC7C,MAAMka,GAAuB7X,KAAK+N,MAAM9O,EAAY,KACpD,MAAM6Y,EAAiB9X,KAAK+N,MAAMnC,EAAWjO,GAAK,KAClD,MAAMoa,EAAqB/X,KAAK+N,MAAMnC,EAAWjO,EAAI,GAAK,KAC1D,UAAWiO,EAAWjO,EAAI,KAAO,YAAa,CAC5C,GAAIka,GAAuBC,GAAkBD,EAAsBE,GAAsBA,EAAqBD,GAAkB,EAAG,CACjI9I,EAAarR,CACvB,MAAe,GAAIka,GAAuBC,GAAkBD,EAAsBE,EAAoB,CAC5F/I,EAAarR,EAAI,CAC3B,CACA,MAAa,GAAIka,GAAuBC,EAAgB,CAChD9I,EAAarR,CACrB,CACA,CACA,CAEE,GAAIkB,EAAO0H,aAAeyI,IAAe4B,EAAa,CACpD,IAAK/R,EAAOmZ,iBAAmB9M,EAAMjM,EAAYJ,EAAOI,WAAaA,EAAYJ,EAAO6S,eAAiBzS,EAAYJ,EAAOI,WAAaA,EAAYJ,EAAO6S,gBAAiB,CAC3K,OAAO,KACb,CACI,IAAK7S,EAAOoZ,gBAAkBhZ,EAAYJ,EAAOI,WAAaA,EAAYJ,EAAOsT,eAAgB,CAC/F,IAAKvB,GAAe,KAAO5B,EAAY,CACrC,OAAO,KACf,CACA,CACA,CACE,GAAIA,KAAgBkG,GAAiB,IAAMyB,EAAc,CACvD9X,EAAOqH,KAAK,yBAChB,CAGErH,EAAOmT,eAAe/S,GACtB,IAAIsY,EACJ,GAAIvI,EAAa4B,EAAa2G,EAAY,YAAY,GAAIvI,EAAa4B,EAAa2G,EAAY,YAAYA,EAAY,QAGxH,GAAIrM,IAAQjM,IAAcJ,EAAOI,YAAciM,GAAOjM,IAAcJ,EAAOI,UAAW,CACpFJ,EAAOmW,kBAAkBhG,GAEzB,GAAI3P,EAAO4T,WAAY,CACrBpU,EAAOyR,kBACb,CACIzR,EAAOqU,sBACP,GAAI7T,EAAO+O,SAAW,QAAS,CAC7BvP,EAAOsX,aAAalX,EAC1B,CACI,GAAIsY,IAAc,QAAS,CACzB1Y,EAAO4Y,gBAAgBd,EAAcY,GACrC1Y,EAAOuY,cAAcT,EAAcY,EACzC,CACI,OAAO,KACX,CACE,GAAIlY,EAAOwN,QAAS,CAClB,MAAMoK,EAAMpY,EAAOuL,eACnB,MAAM8N,EAAIhN,EAAMjM,GAAaA,EAC7B,GAAIK,IAAU,EAAG,CACf,MAAM8L,EAAYvM,EAAOwM,SAAWxM,EAAOQ,OAAOgM,QAAQC,QAC1D,GAAIF,EAAW,CACbvM,EAAOU,UAAU/G,MAAMgH,eAAiB,OACxCX,EAAOsZ,kBAAoB,IACnC,CACM,GAAI/M,IAAcvM,EAAOuZ,2BAA6BvZ,EAAOQ,OAAOgZ,aAAe,EAAG,CACpFxZ,EAAOuZ,0BAA4B,KACnCzd,uBAAsB,KACpB4E,EAAU0X,EAAM,aAAe,aAAeiB,CAAC,GAEzD,KAAa,CACL3Y,EAAU0X,EAAM,aAAe,aAAeiB,CACtD,CACM,GAAI9M,EAAW,CACbzQ,uBAAsB,KACpBkE,EAAOU,UAAU/G,MAAMgH,eAAiB,GACxCX,EAAOsZ,kBAAoB,KAAK,GAE1C,CACA,KAAW,CACL,IAAKtZ,EAAOyE,QAAQE,aAAc,CAChC5E,EAAqB,CACnBC,SACAC,eAAgBoZ,EAChBnZ,KAAMkY,EAAM,OAAS,QAEvB,OAAO,IACf,CACM1X,EAAUgB,SAAS,CACjB,CAAC0W,EAAM,OAAS,OAAQiB,EACxBhB,SAAU,UAElB,CACI,OAAO,IACX,CACErY,EAAO2R,cAAclR,GACrBT,EAAOsX,aAAalX,GACpBJ,EAAOmW,kBAAkBhG,GACzBnQ,EAAOqU,sBACPrU,EAAOqH,KAAK,wBAAyB5G,EAAOuX,GAC5ChY,EAAO4Y,gBAAgBd,EAAcY,GACrC,GAAIjY,IAAU,EAAG,CACfT,EAAOuY,cAAcT,EAAcY,EACvC,MAAS,IAAK1Y,EAAOiY,UAAW,CAC5BjY,EAAOiY,UAAY,KACnB,IAAKjY,EAAOyZ,8BAA+B,CACzCzZ,EAAOyZ,8BAAgC,SAASlB,EAAchc,GAC5D,IAAKyD,GAAUA,EAAOyH,UAAW,OACjC,GAAIlL,EAAEjE,SAAW+C,KAAM,OACvB2E,EAAOU,UAAU3H,oBAAoB,gBAAiBiH,EAAOyZ,+BAC7DzZ,EAAOyZ,8BAAgC,YAChCzZ,EAAOyZ,8BACdzZ,EAAOuY,cAAcT,EAAcY,EAC3C,CACA,CACI1Y,EAAOU,UAAU5H,iBAAiB,gBAAiBkH,EAAOyZ,8BAC9D,CACE,OAAO,IACT,CC7Ie,SAASC,GAAY5O,EAAQ,EAAGrK,EAAQpF,KAAKmF,OAAOC,MAAOqX,EAAe,KAAME,GAC7F,UAAWlN,IAAU,SAAU,CAC7B,MAAM6O,EAAgBlO,SAASX,EAAO,IACtCA,EAAQ6O,CACZ,CACE,MAAM3Z,EAAS3E,KACf,IAAIue,EAAW9O,EACf,GAAI9K,EAAOQ,OAAOoP,KAAM,CACtB,GAAI5P,EAAOwM,SAAWxM,EAAOQ,OAAOgM,QAAQC,QAAS,CAEnDmN,EAAWA,EAAW5Z,EAAOwM,QAAQuD,YAC3C,KAAW,CACL6J,EAAW5Z,EAAO6R,oBAAoB+H,EAC5C,CACA,CACE,OAAO5Z,EAAO8Y,QAAQc,EAAUnZ,EAAOqX,EAAcE,EACvD,CCfe,SAAS6B,GAAUpZ,EAAQpF,KAAKmF,OAAOC,MAAOqX,EAAe,KAAME,GAChF,MAAMhY,EAAS3E,KACf,MAAMoR,QACJA,EAAOjM,OACPA,EAAMyX,UACNA,GACEjY,EACJ,IAAKyM,EAAS,OAAOzM,EACrB,IAAI8Z,EAAWtZ,EAAO6O,eACtB,GAAI7O,EAAO+N,gBAAkB,QAAU/N,EAAO6O,iBAAmB,GAAK7O,EAAOuZ,mBAAoB,CAC/FD,EAAW3Y,KAAKC,IAAIpB,EAAOyV,qBAAqB,UAAW,MAAO,EACtE,CACE,MAAMuE,EAAYha,EAAO+R,YAAcvR,EAAO8O,mBAAqB,EAAIwK,EACvE,MAAMvN,EAAYvM,EAAOwM,SAAWhM,EAAOgM,QAAQC,QACnD,GAAIjM,EAAOoP,KAAM,CACf,GAAIqI,IAAc1L,GAAa/L,EAAOyZ,oBAAqB,OAAO,MAClEja,EAAOka,QAAQ,CACbxB,UAAW,SAGb1Y,EAAOma,YAAcna,EAAOU,UAAUgC,UAC1C,CACE,GAAIlC,EAAOuV,QAAU/V,EAAOwT,MAAO,CACjC,OAAOxT,EAAO8Y,QAAQ,EAAGrY,EAAOqX,EAAcE,EAClD,CACE,OAAOhY,EAAO8Y,QAAQ9Y,EAAO+R,YAAciI,EAAWvZ,EAAOqX,EAAcE,EAC7E,CC1Be,SAASoC,GAAU3Z,EAAQpF,KAAKmF,OAAOC,MAAOqX,EAAe,KAAME,GAChF,MAAMhY,EAAS3E,KACf,MAAMmF,OACJA,EAAMsM,SACNA,EAAQC,WACRA,EAAUX,aACVA,EAAYK,QACZA,EAAOwL,UACPA,GACEjY,EACJ,IAAKyM,EAAS,OAAOzM,EACrB,MAAMuM,EAAYvM,EAAOwM,SAAWhM,EAAOgM,QAAQC,QACnD,GAAIjM,EAAOoP,KAAM,CACf,GAAIqI,IAAc1L,GAAa/L,EAAOyZ,oBAAqB,OAAO,MAClEja,EAAOka,QAAQ,CACbxB,UAAW,SAGb1Y,EAAOma,YAAcna,EAAOU,UAAUgC,UAC1C,CACE,MAAMtC,EAAYgM,EAAepM,EAAOI,WAAaJ,EAAOI,UAC5D,SAASia,EAAUC,GACjB,GAAIA,EAAM,EAAG,OAAQnZ,KAAK+N,MAAM/N,KAAKiO,IAAIkL,IACzC,OAAOnZ,KAAK+N,MAAMoL,EACtB,CACE,MAAMtB,EAAsBqB,EAAUja,GACtC,MAAMma,EAAqBzN,EAASvP,KAAI+c,GAAOD,EAAUC,KACzD,IAAIE,EAAW1N,EAASyN,EAAmBpb,QAAQ6Z,GAAuB,GAC1E,UAAWwB,IAAa,aAAeha,EAAOwN,QAAS,CACrD,IAAIyM,EACJ3N,EAASrU,SAAQ,CAAC+X,EAAMG,KACtB,GAAIqI,GAAuBxI,EAAM,CAE/BiK,EAAgB9J,CACxB,KAEI,UAAW8J,IAAkB,YAAa,CACxCD,EAAW1N,EAAS2N,EAAgB,EAAIA,EAAgB,EAAIA,EAClE,CACA,CACE,IAAIC,EAAY,EAChB,UAAWF,IAAa,YAAa,CACnCE,EAAY3N,EAAW5N,QAAQqb,GAC/B,GAAIE,EAAY,EAAGA,EAAY1a,EAAO+R,YAAc,EACpD,GAAIvR,EAAO+N,gBAAkB,QAAU/N,EAAO6O,iBAAmB,GAAK7O,EAAOuZ,mBAAoB,CAC/FW,EAAYA,EAAY1a,EAAOyV,qBAAqB,WAAY,MAAQ,EACxEiF,EAAYvZ,KAAKC,IAAIsZ,EAAW,EACtC,CACA,CACE,GAAIla,EAAOuV,QAAU/V,EAAOuT,YAAa,CACvC,MAAMoH,EAAY3a,EAAOQ,OAAOgM,SAAWxM,EAAOQ,OAAOgM,QAAQC,SAAWzM,EAAOwM,QAAUxM,EAAOwM,QAAQG,OAAOhU,OAAS,EAAIqH,EAAO2M,OAAOhU,OAAS,EACvJ,OAAOqH,EAAO8Y,QAAQ6B,EAAWla,EAAOqX,EAAcE,EAC1D,CACE,OAAOhY,EAAO8Y,QAAQ4B,EAAWja,EAAOqX,EAAcE,EACxD,CCtDe,SAAS4C,GAAWna,EAAQpF,KAAKmF,OAAOC,MAAOqX,EAAe,KAAME,GACjF,MAAMhY,EAAS3E,KACf,OAAO2E,EAAO8Y,QAAQ9Y,EAAO+R,YAAatR,EAAOqX,EAAcE,EACjE,CCHe,SAAS6C,GAAepa,EAAQpF,KAAKmF,OAAOC,MAAOqX,EAAe,KAAME,EAAU8C,EAAY,IAC3G,MAAM9a,EAAS3E,KACf,IAAIyP,EAAQ9K,EAAO+R,YACnB,MAAM2E,EAAOvV,KAAKE,IAAIrB,EAAOQ,OAAO8O,mBAAoBxE,GACxD,MAAM6F,EAAY+F,EAAOvV,KAAK+N,OAAOpE,EAAQ4L,GAAQ1W,EAAOQ,OAAO6O,gBACnE,MAAMjP,EAAYJ,EAAOoM,aAAepM,EAAOI,WAAaJ,EAAOI,UACnE,GAAIA,GAAaJ,EAAO8M,SAAS6D,GAAY,CAG3C,MAAMoK,EAAc/a,EAAO8M,SAAS6D,GACpC,MAAMqK,EAAWhb,EAAO8M,SAAS6D,EAAY,GAC7C,GAAIvQ,EAAY2a,GAAeC,EAAWD,GAAeD,EAAW,CAClEhQ,GAAS9K,EAAOQ,OAAO6O,cAC7B,CACA,KAAS,CAGL,MAAMmL,EAAWxa,EAAO8M,SAAS6D,EAAY,GAC7C,MAAMoK,EAAc/a,EAAO8M,SAAS6D,GACpC,GAAIvQ,EAAYoa,IAAaO,EAAcP,GAAYM,EAAW,CAChEhQ,GAAS9K,EAAOQ,OAAO6O,cAC7B,CACA,CACEvE,EAAQ3J,KAAKC,IAAI0J,EAAO,GACxBA,EAAQ3J,KAAKE,IAAIyJ,EAAO9K,EAAO+M,WAAWpU,OAAS,GACnD,OAAOqH,EAAO8Y,QAAQhO,EAAOrK,EAAOqX,EAAcE,EACpD,CC1Be,SAASf,KACtB,MAAMjX,EAAS3E,KACf,MAAMmF,OACJA,EAAM0L,SACNA,GACElM,EACJ,MAAMuO,EAAgB/N,EAAO+N,gBAAkB,OAASvO,EAAOyV,uBAAyBjV,EAAO+N,cAC/F,IAAI0M,EAAejb,EAAOgX,aAC1B,IAAIhB,EACJ,MAAMhB,EAAgBhV,EAAOkS,UAAY,eAAiB,IAAI1R,EAAOoM,aACrE,GAAIpM,EAAOoP,KAAM,CACf,GAAI5P,EAAOiY,UAAW,OACtBjC,EAAYvK,SAASzL,EAAO+W,aAAaJ,aAAa,2BAA4B,IAClF,GAAInW,EAAOuN,eAAgB,CACzB,GAAIkN,EAAejb,EAAOkb,aAAe3M,EAAgB,GAAK0M,EAAejb,EAAO2M,OAAOhU,OAASqH,EAAOkb,aAAe3M,EAAgB,EAAG,CAC3IvO,EAAOka,UACPe,EAAejb,EAAOmb,cAAcvZ,EAAgBsK,EAAU,GAAG8I,8BAA0CgB,OAAe,IAC1HxZ,GAAS,KACPwD,EAAO8Y,QAAQmC,EAAa,GAEtC,KAAa,CACLjb,EAAO8Y,QAAQmC,EACvB,CACA,MAAW,GAAIA,EAAejb,EAAO2M,OAAOhU,OAAS4V,EAAe,CAC9DvO,EAAOka,UACPe,EAAejb,EAAOmb,cAAcvZ,EAAgBsK,EAAU,GAAG8I,8BAA0CgB,OAAe,IAC1HxZ,GAAS,KACPwD,EAAO8Y,QAAQmC,EAAa,GAEpC,KAAW,CACLjb,EAAO8Y,QAAQmC,EACrB,CACA,KAAS,CACLjb,EAAO8Y,QAAQmC,EACnB,CACA,CC7BA,MAAAxM,GAAe,CACbqK,WACAY,eACAG,aACAO,aACAQ,cACAC,kBACA5D,wBCba,SAASmE,GAAWC,GACjC,MAAMrb,EAAS3E,KACf,MAAMmF,OACJA,EAAM0L,SACNA,GACElM,EACJ,IAAKQ,EAAOoP,MAAQ5P,EAAOwM,SAAWxM,EAAOQ,OAAOgM,QAAQC,QAAS,OACrE,MAAME,EAAS/K,EAAgBsK,EAAU,IAAI1L,EAAOoM,4BACpDD,EAAOlU,SAAQ,CAACkE,EAAImO,KAClBnO,EAAG/C,aAAa,0BAA2BkR,EAAM,IAEnD9K,EAAOka,QAAQ,CACbmB,iBACA3C,UAAWlY,EAAOuN,eAAiB/O,UAAY,QAEnD,CChBe,SAASkb,IAAQmB,eAC9BA,EAAcvC,QACdA,EAAU,KAAIJ,UACdA,EAASpB,aACTA,EAAYgE,iBACZA,EAAgB/D,aAChBA,EAAYgE,aACZA,GACE,IACF,MAAMvb,EAAS3E,KACf,IAAK2E,EAAOQ,OAAOoP,KAAM,OACzB5P,EAAOqH,KAAK,iBACZ,MAAMsF,OACJA,EAAMyM,eACNA,EAAcD,eACdA,EAAcjN,SACdA,EAAQ1L,OACRA,GACER,EACJA,EAAOoZ,eAAiB,KACxBpZ,EAAOmZ,eAAiB,KACxB,GAAInZ,EAAOwM,SAAWhM,EAAOgM,QAAQC,QAAS,CAC5C,GAAIqM,EAAS,CACX,IAAKtY,EAAOuN,gBAAkB/N,EAAO2Q,YAAc,EAAG,CACpD3Q,EAAO8Y,QAAQ9Y,EAAOwM,QAAQG,OAAOhU,OAAQ,EAAG,MAAO,KAC/D,MAAa,GAAI6H,EAAOuN,gBAAkB/N,EAAO2Q,UAAYnQ,EAAO+N,cAAe,CAC3EvO,EAAO8Y,QAAQ9Y,EAAOwM,QAAQG,OAAOhU,OAASqH,EAAO2Q,UAAW,EAAG,MAAO,KAClF,MAAa,GAAI3Q,EAAO2Q,YAAc3Q,EAAO8M,SAASnU,OAAS,EAAG,CAC1DqH,EAAO8Y,QAAQ9Y,EAAOwM,QAAQuD,aAAc,EAAG,MAAO,KAC9D,CACA,CACI/P,EAAOoZ,eAAiBA,EACxBpZ,EAAOmZ,eAAiBA,EACxBnZ,EAAOqH,KAAK,WACZ,MACJ,CACE,MAAMkH,EAAgB/N,EAAO+N,gBAAkB,OAASvO,EAAOyV,uBAAyBtU,KAAK2O,KAAK7R,WAAWuC,EAAO+N,cAAe,KACnI,IAAI2M,EAAe1a,EAAO0a,cAAgB3M,EAC1C,GAAI2M,EAAe1a,EAAO6O,iBAAmB,EAAG,CAC9C6L,GAAgB1a,EAAO6O,eAAiB6L,EAAe1a,EAAO6O,cAClE,CACErP,EAAOkb,aAAeA,EACtB,MAAMM,EAAuB,GAC7B,MAAMC,EAAsB,GAC5B,IAAI1J,EAAc/R,EAAO+R,YACzB,UAAWuJ,IAAqB,YAAa,CAC3CA,EAAmBtb,EAAOmb,cAAcnb,EAAO2M,OAAOzN,QAAOvC,GAAMA,EAAGuF,UAAUoP,SAAS9Q,EAAO+T,oBAAmB,GACvH,KAAS,CACLxC,EAAcuJ,CAClB,CACE,MAAMI,EAAShD,IAAc,SAAWA,EACxC,MAAMiD,EAASjD,IAAc,SAAWA,EACxC,IAAIkD,EAAkB,EACtB,IAAIC,EAAiB,EAErB,GAAIP,EAAmBJ,EAAc,CACnCU,EAAkBza,KAAKC,IAAI8Z,EAAeI,EAAkB9a,EAAO6O,gBACnE,IAAK,IAAIvQ,EAAI,EAAGA,EAAIoc,EAAeI,EAAkBxc,GAAK,EAAG,CAC3D,MAAMgM,EAAQhM,EAAIqC,KAAK+N,MAAMpQ,EAAI6N,EAAOhU,QAAUgU,EAAOhU,OACzD6iB,EAAqBnY,KAAKsJ,EAAOhU,OAASmS,EAAQ,EACxD,CACA,MAAS,GAAIwQ,EAAyCtb,EAAO2M,OAAOhU,OAASuiB,EAAe,EAAG,CAC3FW,EAAiB1a,KAAKC,IAAIka,GAAoBtb,EAAO2M,OAAOhU,OAASuiB,EAAe,GAAI1a,EAAO6O,gBAC/F,IAAK,IAAIvQ,EAAI,EAAGA,EAAI+c,EAAgB/c,GAAK,EAAG,CAC1C,MAAMgM,EAAQhM,EAAIqC,KAAK+N,MAAMpQ,EAAI6N,EAAOhU,QAAUgU,EAAOhU,OACzD8iB,EAAoBpY,KAAKyH,EAC/B,CACA,CACE,GAAI6Q,EAAQ,CACVH,EAAqB/iB,SAAQqS,IAC3B9K,EAAO2M,OAAO7B,GAAOgR,kBAAoB,KACzC5P,EAAS6P,QAAQ/b,EAAO2M,OAAO7B,IAC/B9K,EAAO2M,OAAO7B,GAAOgR,kBAAoB,KAAK,GAEpD,CACE,GAAIJ,EAAQ,CACVD,EAAoBhjB,SAAQqS,IAC1B9K,EAAO2M,OAAO7B,GAAOgR,kBAAoB,KACzC5P,EAAS8P,OAAOhc,EAAO2M,OAAO7B,IAC9B9K,EAAO2M,OAAO7B,GAAOgR,kBAAoB,KAAK,GAEpD,CACE9b,EAAOic,eACP,GAAIzb,EAAO+N,gBAAkB,OAAQ,CACnCvO,EAAO4L,cACX,CACE,GAAIpL,EAAOyQ,oBAAqB,CAC9BjR,EAAOkR,oBACX,CACE,GAAI4H,EAAS,CACX,GAAI0C,EAAqB7iB,OAAS,GAAKgjB,EAAQ,CAC7C,UAAWN,IAAmB,YAAa,CACzC,MAAMa,EAAwBlc,EAAO+M,WAAWgF,GAChD,MAAMoK,EAAoBnc,EAAO+M,WAAWgF,EAAc6J,GAC1D,MAAMQ,EAAOD,EAAoBD,EACjC,GAAIX,EAAc,CAChBvb,EAAOsX,aAAatX,EAAOI,UAAYgc,EACjD,KAAe,CACLpc,EAAO8Y,QAAQ/G,EAAc6J,EAAiB,EAAG,MAAO,MACxD,GAAItE,EAAc,CAChBtX,EAAOqc,QAAQrc,EAAOuL,eAAiB,SAAW,WAAa6Q,CAC3E,CACA,CACA,KAAa,CACL,GAAI9E,EAAc,CAChBtX,EAAO0Z,YAAY2B,EAAgB,EAAG,MAAO,KACvD,CACA,CACA,MAAW,GAAII,EAAoB9iB,OAAS,GAAK+iB,EAAQ,CACnD,UAAWL,IAAmB,YAAa,CACzC,MAAMa,EAAwBlc,EAAO+M,WAAWgF,GAChD,MAAMoK,EAAoBnc,EAAO+M,WAAWgF,EAAc8J,GAC1D,MAAMO,EAAOD,EAAoBD,EACjC,GAAIX,EAAc,CAChBvb,EAAOsX,aAAatX,EAAOI,UAAYgc,EACjD,KAAe,CACLpc,EAAO8Y,QAAQ/G,EAAc8J,EAAgB,EAAG,MAAO,MACvD,GAAIvE,EAAc,CAChBtX,EAAOqc,QAAQrc,EAAOuL,eAAiB,SAAW,WAAa6Q,CAC3E,CACA,CACA,KAAa,CACLpc,EAAO0Z,YAAY2B,EAAgB,EAAG,MAAO,KACrD,CACA,CACA,CACErb,EAAOoZ,eAAiBA,EACxBpZ,EAAOmZ,eAAiBA,EACxB,GAAInZ,EAAOsc,YAActc,EAAOsc,WAAWC,UAAYhF,EAAc,CACnE,MAAMiF,EAAa,CACjBnB,iBACAvC,QAAS,MACTJ,YACApB,eACAgE,mBACA/D,aAAc,MAEhB,GAAInV,MAAMC,QAAQrC,EAAOsc,WAAWC,SAAU,CAC5Cvc,EAAOsc,WAAWC,QAAQ9jB,SAAQgkB,IAChC,IAAKA,EAAEhV,WAAagV,EAAEjc,OAAOoP,KAAM6M,EAAEvC,QAAQsC,EAAW,GAEhE,MAAW,GAAIxc,EAAOsc,WAAWC,mBAAmBvc,EAAO7H,aAAe6H,EAAOsc,WAAWC,QAAQ/b,OAAOoP,KAAM,CAC3G5P,EAAOsc,WAAWC,QAAQrC,QAAQsC,EACxC,CACA,CACExc,EAAOqH,KAAK,UACd,CClJe,SAASqV,KACtB,MAAM1c,EAAS3E,KACf,MAAMmF,OACJA,EAAM0L,SACNA,GACElM,EACJ,IAAKQ,EAAOoP,MAAQ5P,EAAOwM,SAAWxM,EAAOQ,OAAOgM,QAAQC,QAAS,OACrEzM,EAAOic,eACP,MAAMU,EAAiB,GACvB3c,EAAO2M,OAAOlU,SAAQkV,IACpB,MAAM7C,SAAe6C,EAAQiP,mBAAqB,YAAcjP,EAAQgJ,aAAa,2BAA6B,EAAIhJ,EAAQiP,iBAC9HD,EAAe7R,GAAS6C,CAAO,IAEjC3N,EAAO2M,OAAOlU,SAAQkV,IACpBA,EAAQ0H,gBAAgB,0BAA0B,IAEpDsH,EAAelkB,SAAQkV,IACrBzB,EAAS8P,OAAOrO,EAAQ,IAE1B3N,EAAOic,eACPjc,EAAO8Y,QAAQ9Y,EAAOgW,UAAW,EACnC,CClBA,MAAApG,GAAe,CACbwL,cACAlB,WACAwC,gBCNa,SAASG,GAAcC,GACpC,MAAM9c,EAAS3E,KACf,IAAK2E,EAAOQ,OAAOuc,eAAiB/c,EAAOQ,OAAOuQ,eAAiB/Q,EAAOgd,UAAYhd,EAAOQ,OAAOwN,QAAS,OAC7G,MAAMrR,EAAKqD,EAAOQ,OAAOyc,oBAAsB,YAAcjd,EAAOrD,GAAKqD,EAAOU,UAChF,GAAIV,EAAOkS,UAAW,CACpBlS,EAAOkJ,oBAAsB,IACjC,CACEvM,EAAGhD,MAAMujB,OAAS,OAClBvgB,EAAGhD,MAAMujB,OAASJ,EAAS,WAAa,OACxC,GAAI9c,EAAOkS,UAAW,CACpBpW,uBAAsB,KACpBkE,EAAOkJ,oBAAsB,KAAK,GAExC,CACA,CCde,SAASiU,KACtB,MAAMnd,EAAS3E,KACf,GAAI2E,EAAOQ,OAAOuQ,eAAiB/Q,EAAOgd,UAAYhd,EAAOQ,OAAOwN,QAAS,CAC3E,MACJ,CACE,GAAIhO,EAAOkS,UAAW,CACpBlS,EAAOkJ,oBAAsB,IACjC,CACElJ,EAAOA,EAAOQ,OAAOyc,oBAAsB,YAAc,KAAO,aAAatjB,MAAMujB,OAAS,GAC5F,GAAIld,EAAOkS,UAAW,CACpBpW,uBAAsB,KACpBkE,EAAOkJ,oBAAsB,KAAK,GAExC,CACA,CCZA,MAAAkU,GAAe,CACbP,iBACAM,oBCAF,SAASE,GAAevb,EAAUwb,EAAOjiB,MACvC,SAASkiB,EAAc5gB,GACrB,IAAKA,GAAMA,IAAOlC,KAAiBkC,IAAOT,IAAa,OAAO,KAC9D,GAAIS,EAAG6gB,aAAc7gB,EAAKA,EAAG6gB,aAC7B,MAAMC,EAAQ9gB,EAAGsY,QAAQnT,GACzB,IAAK2b,IAAU9gB,EAAG+gB,YAAa,CAC7B,OAAO,IACb,CACI,OAAOD,GAASF,EAAc5gB,EAAG+gB,cAAcxjB,KACnD,CACE,OAAOqjB,EAAcD,EACvB,CACe,SAASK,GAAatT,GACnC,MAAMrK,EAAS3E,KACf,MAAMV,EAAWF,IACjB,MAAM2B,EAASF,IACf,MAAM8O,EAAOhL,EAAO4d,gBACpB5S,EAAK6S,QAAQxa,KAAKgH,GAClB,MAAM7J,OACJA,EAAM6b,QACNA,EAAO5P,QACPA,GACEzM,EACJ,IAAKyM,EAAS,OACd,IAAKjM,EAAOuc,eAAiB1S,EAAMyT,cAAgB,QAAS,OAC5D,GAAI9d,EAAOiY,WAAazX,EAAO0X,+BAAgC,CAC7D,MACJ,CACE,IAAKlY,EAAOiY,WAAazX,EAAOwN,SAAWxN,EAAOoP,KAAM,CACtD5P,EAAOka,SACX,CACE,IAAI3d,EAAI8N,EACR,GAAI9N,EAAEwhB,cAAexhB,EAAIA,EAAEwhB,cAC3B,IAAIC,EAAWzhB,EAAEjE,OACjB,GAAIkI,EAAOyc,oBAAsB,UAAW,CAC1C,IAAKjd,EAAOU,UAAU4Q,SAAS0M,GAAW,MAC9C,CACE,GAAI,UAAWzhB,GAAKA,EAAE0hB,QAAU,EAAG,OACnC,GAAI,WAAY1hB,GAAKA,EAAE2hB,OAAS,EAAG,OACnC,GAAIlT,EAAKmT,WAAanT,EAAKoT,QAAS,OAGpC,MAAMC,IAAyB7d,EAAO8d,gBAAkB9d,EAAO8d,iBAAmB,GAElF,MAAMC,EAAYlU,EAAMmU,aAAenU,EAAMmU,eAAiBnU,EAAMoU,KACpE,GAAIJ,GAAwB9hB,EAAEjE,QAAUiE,EAAEjE,OAAOomB,YAAcH,EAAW,CACxEP,EAAWO,EAAU,EACzB,CACE,MAAMI,EAAoBne,EAAOme,kBAAoBne,EAAOme,kBAAoB,IAAIne,EAAO8d,iBAC3F,MAAMM,KAAoBriB,EAAEjE,QAAUiE,EAAEjE,OAAOomB,YAG/C,GAAIle,EAAOqe,YAAcD,EAAiBvB,GAAesB,EAAmBX,GAAYA,EAAS/I,QAAQ0J,IAAqB,CAC5H3e,EAAO8e,WAAa,KACpB,MACJ,CACE,GAAIte,EAAOue,aAAc,CACvB,IAAKf,EAAS/I,QAAQzU,EAAOue,cAAe,MAChD,CACE1C,EAAQ2C,SAAWziB,EAAE0iB,MACrB5C,EAAQ6C,SAAW3iB,EAAE4iB,MACrB,MAAMC,EAAS/C,EAAQ2C,SACvB,MAAMK,EAAShD,EAAQ6C,SAIvB,MAAMI,EAAqB9e,EAAO8e,oBAAsB9e,EAAO+e,sBAC/D,MAAMC,EAAqBhf,EAAOgf,oBAAsBhf,EAAOif,sBAC/D,GAAIH,IAAuBF,GAAUI,GAAsBJ,GAAUhjB,EAAOsjB,WAAaF,GAAqB,CAC5G,GAAIF,IAAuB,UAAW,CACpCjV,EAAMsV,gBACZ,KAAW,CACL,MACN,CACA,CACEvnB,OAAOuT,OAAOX,EAAM,CAClBmT,UAAW,KACXC,QAAS,MACTwB,oBAAqB,KACrBC,YAAa7gB,UACb8gB,YAAa9gB,YAEfqd,EAAQ+C,OAASA,EACjB/C,EAAQgD,OAASA,EACjBrU,EAAK+U,eAAiBrjB,IACtBsD,EAAO8e,WAAa,KACpB9e,EAAOoL,aACPpL,EAAOggB,eAAiBhhB,UACxB,GAAIwB,EAAOsa,UAAY,EAAG9P,EAAKiV,mBAAqB,MACpD,IAAIN,EAAiB,KACrB,GAAI3B,EAASjc,QAAQiJ,EAAKkV,mBAAoB,CAC5CP,EAAiB,MACjB,GAAI3B,EAAS9kB,WAAa,SAAU,CAClC8R,EAAKmT,UAAY,KACvB,CACA,CACE,GAAIxjB,EAAS3B,eAAiB2B,EAAS3B,cAAc+I,QAAQiJ,EAAKkV,oBAAsBvlB,EAAS3B,gBAAkBglB,EAAU,CAC3HrjB,EAAS3B,cAAcC,MAC3B,CACE,MAAMknB,EAAuBR,GAAkB3f,EAAOogB,gBAAkB5f,EAAO6f,yBAC/E,IAAK7f,EAAO8f,+BAAiCH,KAA0BnC,EAASuC,kBAAmB,CACjGhkB,EAAEojB,gBACN,CACE,GAAInf,EAAOggB,UAAYhgB,EAAOggB,SAAS/T,SAAWzM,EAAOwgB,UAAYxgB,EAAOiY,YAAczX,EAAOwN,QAAS,CACxGhO,EAAOwgB,SAAS7C,cACpB,CACE3d,EAAOqH,KAAK,aAAc9K,EAC5B,CC7Ge,SAASkkB,GAAYpW,GAClC,MAAM1P,EAAWF,IACjB,MAAMuF,EAAS3E,KACf,MAAM2P,EAAOhL,EAAO4d,gBACpB,MAAMpd,OACJA,EAAM6b,QACNA,EACAjQ,aAAcC,EAAGI,QACjBA,GACEzM,EACJ,IAAKyM,EAAS,OACd,IAAKjM,EAAOuc,eAAiB1S,EAAMyT,cAAgB,QAAS,OAC5D,IAAIvhB,EAAI8N,EACR,GAAI9N,EAAEwhB,cAAexhB,EAAIA,EAAEwhB,cAC3B,IAAK/S,EAAKmT,UAAW,CACnB,GAAInT,EAAK8U,aAAe9U,EAAK6U,YAAa,CACxC7f,EAAOqH,KAAK,oBAAqB9K,EACvC,CACI,MACJ,CACE,MAAMmkB,EAAe1V,EAAK6S,QAAQ8C,WAAUC,GAAYA,EAASC,YAActkB,EAAEskB,YACjF,GAAIH,GAAgB,EAAG1V,EAAK6S,QAAQ6C,GAAgBnkB,EACpD,MAAMukB,EAAc9V,EAAK6S,QAAQllB,OAAS,EAAIqS,EAAK6S,QAAQ,GAAKthB,EAChE,MAAM0iB,EAAQ6B,EAAY7B,MAC1B,MAAME,EAAQ2B,EAAY3B,MAC1B,GAAI5iB,EAAEwkB,wBAAyB,CAC7B1E,EAAQ+C,OAASH,EACjB5C,EAAQgD,OAASF,EACjB,MACJ,CACE,IAAKnf,EAAOogB,eAAgB,CAC1B,IAAK7jB,EAAEjE,OAAOyJ,QAAQiJ,EAAKkV,mBAAoB,CAC7ClgB,EAAO8e,WAAa,KAC1B,CACI,GAAI9T,EAAKmT,UAAW,CAClB/lB,OAAOuT,OAAO0Q,EAAS,CACrB+C,OAAQH,EACRI,OAAQF,EACR6B,MAAOhhB,EAAOqc,QAAQ2C,SACtBiC,MAAOjhB,EAAOqc,QAAQ6C,SACtBF,SAAUC,EACVC,SAAUC,IAEZnU,EAAK+U,eAAiBrjB,GAC5B,CACI,MACJ,CACE,GAAI8D,EAAO0gB,sBAAwB1gB,EAAOoP,KAAM,CAC9C,GAAI5P,EAAOwL,aAAc,CAEvB,GAAI2T,EAAQ9C,EAAQgD,QAAUrf,EAAOI,WAAaJ,EAAOsT,gBAAkB6L,EAAQ9C,EAAQgD,QAAUrf,EAAOI,WAAaJ,EAAO6S,eAAgB,CAC9I7H,EAAKmT,UAAY,MACjBnT,EAAKoT,QAAU,MACf,MACR,CACA,MAAW,GAAIa,EAAQ5C,EAAQ+C,QAAUpf,EAAOI,WAAaJ,EAAOsT,gBAAkB2L,EAAQ5C,EAAQ+C,QAAUpf,EAAOI,WAAaJ,EAAO6S,eAAgB,CACrJ,MACN,CACA,CACE,GAAIlY,EAAS3B,cAAe,CAC1B,GAAIuD,EAAEjE,SAAWqC,EAAS3B,eAAiBuD,EAAEjE,OAAOyJ,QAAQiJ,EAAKkV,mBAAoB,CACnFlV,EAAKoT,QAAU,KACfpe,EAAO8e,WAAa,MACpB,MACN,CACA,CACE,GAAI9T,EAAK4U,oBAAqB,CAC5B5f,EAAOqH,KAAK,YAAa9K,EAC7B,CACE,GAAIA,EAAE4kB,eAAiB5kB,EAAE4kB,cAAcxoB,OAAS,EAAG,OACnD0jB,EAAQ2C,SAAWC,EACnB5C,EAAQ6C,SAAWC,EACnB,MAAMiC,EAAQ/E,EAAQ2C,SAAW3C,EAAQ+C,OACzC,MAAMiC,EAAQhF,EAAQ6C,SAAW7C,EAAQgD,OACzC,GAAIrf,EAAOQ,OAAOsa,WAAa3Z,KAAKmgB,KAAKF,GAAS,EAAIC,GAAS,GAAKrhB,EAAOQ,OAAOsa,UAAW,OAC7F,UAAW9P,EAAK6U,cAAgB,YAAa,CAC3C,IAAI0B,EACJ,GAAIvhB,EAAOuL,gBAAkB8Q,EAAQ6C,WAAa7C,EAAQgD,QAAUrf,EAAOwL,cAAgB6Q,EAAQ2C,WAAa3C,EAAQ+C,OAAQ,CAC9HpU,EAAK6U,YAAc,KACzB,KAAW,CAEL,GAAIuB,EAAQA,EAAQC,EAAQA,GAAS,GAAI,CACvCE,EAAapgB,KAAKqgB,MAAMrgB,KAAKiO,IAAIiS,GAAQlgB,KAAKiO,IAAIgS,IAAU,IAAMjgB,KAAKK,GACvEwJ,EAAK6U,YAAc7f,EAAOuL,eAAiBgW,EAAa/gB,EAAO+gB,WAAa,GAAKA,EAAa/gB,EAAO+gB,UAC7G,CACA,CACA,CACE,GAAIvW,EAAK6U,YAAa,CACpB7f,EAAOqH,KAAK,oBAAqB9K,EACrC,CACE,UAAWyO,EAAK8U,cAAgB,YAAa,CAC3C,GAAIzD,EAAQ2C,WAAa3C,EAAQ+C,QAAU/C,EAAQ6C,WAAa7C,EAAQgD,OAAQ,CAC9ErU,EAAK8U,YAAc,IACzB,CACA,CACE,GAAI9U,EAAK6U,aAAe7f,EAAOyhB,MAAQzhB,EAAOQ,OAAOihB,MAAQzhB,EAAOQ,OAAOihB,KAAKhV,SAAWzB,EAAK6S,QAAQllB,OAAS,EAAG,CAClHqS,EAAKmT,UAAY,MACjB,MACJ,CACE,IAAKnT,EAAK8U,YAAa,CACrB,MACJ,CACE9f,EAAO8e,WAAa,MACpB,IAAKte,EAAOwN,SAAWzR,EAAEmlB,WAAY,CACnCnlB,EAAEojB,gBACN,CACE,GAAInf,EAAOmhB,2BAA6BnhB,EAAOohB,OAAQ,CACrDrlB,EAAEslB,iBACN,CACE,IAAIzF,EAAOpc,EAAOuL,eAAiB6V,EAAQC,EAC3C,IAAIS,EAAc9hB,EAAOuL,eAAiB8Q,EAAQ2C,SAAW3C,EAAQ0F,UAAY1F,EAAQ6C,SAAW7C,EAAQ2F,UAC5G,GAAIxhB,EAAOyhB,eAAgB,CACzB7F,EAAOjb,KAAKiO,IAAIgN,IAAS/P,EAAM,GAAK,GACpCyV,EAAc3gB,KAAKiO,IAAI0S,IAAgBzV,EAAM,GAAK,EACtD,CACEgQ,EAAQD,KAAOA,EACfA,GAAQ5b,EAAO0hB,WACf,GAAI7V,EAAK,CACP+P,GAAQA,EACR0F,GAAeA,CACnB,CACE,MAAMK,EAAuBniB,EAAOoiB,iBACpCpiB,EAAOggB,eAAiB5D,EAAO,EAAI,OAAS,OAC5Cpc,EAAOoiB,iBAAmBN,EAAc,EAAI,OAAS,OACrD,MAAMO,EAASriB,EAAOQ,OAAOoP,OAASpP,EAAOwN,QAC7C,IAAKhD,EAAKoT,QAAS,CACjB,GAAIiE,EAAQ,CACVriB,EAAOka,QAAQ,CACbxB,UAAW1Y,EAAOggB,gBAE1B,CACIhV,EAAKsX,eAAiBtiB,EAAOnD,eAC7BmD,EAAO2R,cAAc,GACrB,GAAI3R,EAAOiY,UAAW,CACpB,MAAMsK,EAAM,IAAInmB,OAAOhB,YAAY,gBAAiB,CAClDonB,QAAS,KACTd,WAAY,OAEd1hB,EAAOU,UAAU+hB,cAAcF,EACrC,CACIvX,EAAK0X,oBAAsB,MAE3B,GAAIliB,EAAO4c,aAAepd,EAAOmZ,iBAAmB,MAAQnZ,EAAOoZ,iBAAmB,MAAO,CAC3FpZ,EAAO6c,cAAc,KAC3B,CACI7c,EAAOqH,KAAK,kBAAmB9K,EACnC,CACE,IAAIomB,EACJ,GAAI3X,EAAKoT,SAAW+D,IAAyBniB,EAAOoiB,kBAAoBC,GAAUlhB,KAAKiO,IAAIgN,IAAS,EAAG,CAErGpc,EAAOka,QAAQ,CACbxB,UAAW1Y,EAAOggB,eAClB1I,aAAc,OAEhBqL,EAAY,IAChB,CACE3iB,EAAOqH,KAAK,aAAc9K,GAC1ByO,EAAKoT,QAAU,KACfpT,EAAKqM,iBAAmB+E,EAAOpR,EAAKsX,eACpC,IAAIM,EAAsB,KAC1B,IAAIC,EAAkBriB,EAAOqiB,gBAC7B,GAAIriB,EAAO0gB,oBAAqB,CAC9B2B,EAAkB,CACtB,CACE,GAAIzG,EAAO,EAAG,CACZ,GAAIiG,IAAWM,GAAa3X,EAAKqM,kBAAoB7W,EAAOuN,eAAiB/N,EAAO6S,eAAiB7S,EAAOsE,KAAO,EAAItE,EAAO6S,gBAAiB,CAC7I7S,EAAOka,QAAQ,CACbxB,UAAW,OACXpB,aAAc,KACdgE,iBAAkB,GAE1B,CACI,GAAItQ,EAAKqM,iBAAmBrX,EAAO6S,eAAgB,CACjD+P,EAAsB,MACtB,GAAIpiB,EAAOsiB,WAAY,CACrB9X,EAAKqM,iBAAmBrX,EAAO6S,eAAiB,IAAM7S,EAAO6S,eAAiB7H,EAAKsX,eAAiBlG,IAASyG,CACrH,CACA,CACA,MAAS,GAAIzG,EAAO,EAAG,CACnB,GAAIiG,IAAWM,GAAa3X,EAAKqM,kBAAoB7W,EAAOuN,eAAiB/N,EAAOsT,eAAiBtT,EAAOsE,KAAO,EAAItE,EAAOsT,gBAAiB,CAC7ItT,EAAOka,QAAQ,CACbxB,UAAW,OACXpB,aAAc,KACdgE,iBAAkBtb,EAAO2M,OAAOhU,QAAU6H,EAAO+N,gBAAkB,OAASvO,EAAOyV,uBAAyBtU,KAAK2O,KAAK7R,WAAWuC,EAAO+N,cAAe,OAE/J,CACI,GAAIvD,EAAKqM,iBAAmBrX,EAAOsT,eAAgB,CACjDsP,EAAsB,MACtB,GAAIpiB,EAAOsiB,WAAY,CACrB9X,EAAKqM,iBAAmBrX,EAAOsT,eAAiB,GAAKtT,EAAOsT,eAAiBtI,EAAKsX,eAAiBlG,IAASyG,CACpH,CACA,CACA,CACE,GAAID,EAAqB,CACvBrmB,EAAEwkB,wBAA0B,IAChC,CAGE,IAAK/gB,EAAOmZ,gBAAkBnZ,EAAOggB,iBAAmB,QAAUhV,EAAKqM,iBAAmBrM,EAAKsX,eAAgB,CAC7GtX,EAAKqM,iBAAmBrM,EAAKsX,cACjC,CACE,IAAKtiB,EAAOoZ,gBAAkBpZ,EAAOggB,iBAAmB,QAAUhV,EAAKqM,iBAAmBrM,EAAKsX,eAAgB,CAC7GtX,EAAKqM,iBAAmBrM,EAAKsX,cACjC,CACE,IAAKtiB,EAAOoZ,iBAAmBpZ,EAAOmZ,eAAgB,CACpDnO,EAAKqM,iBAAmBrM,EAAKsX,cACjC,CAGE,GAAI9hB,EAAOsa,UAAY,EAAG,CACxB,GAAI3Z,KAAKiO,IAAIgN,GAAQ5b,EAAOsa,WAAa9P,EAAKiV,mBAAoB,CAChE,IAAKjV,EAAKiV,mBAAoB,CAC5BjV,EAAKiV,mBAAqB,KAC1B5D,EAAQ+C,OAAS/C,EAAQ2C,SACzB3C,EAAQgD,OAAShD,EAAQ6C,SACzBlU,EAAKqM,iBAAmBrM,EAAKsX,eAC7BjG,EAAQD,KAAOpc,EAAOuL,eAAiB8Q,EAAQ2C,SAAW3C,EAAQ+C,OAAS/C,EAAQ6C,SAAW7C,EAAQgD,OACtG,MACR,CACA,KAAW,CACLrU,EAAKqM,iBAAmBrM,EAAKsX,eAC7B,MACN,CACA,CACE,IAAK9hB,EAAOuiB,cAAgBviB,EAAOwN,QAAS,OAG5C,GAAIxN,EAAOggB,UAAYhgB,EAAOggB,SAAS/T,SAAWzM,EAAOwgB,UAAYhgB,EAAOyQ,oBAAqB,CAC/FjR,EAAOmW,oBACPnW,EAAOqU,qBACX,CACE,GAAI7T,EAAOggB,UAAYhgB,EAAOggB,SAAS/T,SAAWzM,EAAOwgB,SAAU,CACjExgB,EAAOwgB,SAASC,aACpB,CAEEzgB,EAAOmT,eAAenI,EAAKqM,kBAE3BrX,EAAOsX,aAAatM,EAAKqM,iBAC3B,CC/Oe,SAAS2L,GAAW3Y,GACjC,MAAMrK,EAAS3E,KACf,MAAM2P,EAAOhL,EAAO4d,gBACpB,MAAM8C,EAAe1V,EAAK6S,QAAQ8C,WAAUC,GAAYA,EAASC,YAAcxW,EAAMwW,YACrF,GAAIH,GAAgB,EAAG,CACrB1V,EAAK6S,QAAQhU,OAAO6W,EAAc,EACtC,CACE,GAAI,CAAC,gBAAiB,aAAc,gBAAgB/Z,SAAS0D,EAAM4Y,MAAO,CACxE,MAAMC,EAAU7Y,EAAM4Y,OAAS,kBAAoBjjB,EAAOqG,QAAQG,UAAYxG,EAAOqG,QAAQW,WAC7F,IAAKkc,EAAS,CACZ,MACN,CACA,CACE,MAAM1iB,OACJA,EAAM6b,QACNA,EACAjQ,aAAcC,EAAGU,WACjBA,EAAUN,QACVA,GACEzM,EACJ,IAAKyM,EAAS,OACd,IAAKjM,EAAOuc,eAAiB1S,EAAMyT,cAAgB,QAAS,OAC5D,IAAIvhB,EAAI8N,EACR,GAAI9N,EAAEwhB,cAAexhB,EAAIA,EAAEwhB,cAC3B,GAAI/S,EAAK4U,oBAAqB,CAC5B5f,EAAOqH,KAAK,WAAY9K,EAC5B,CACEyO,EAAK4U,oBAAsB,MAC3B,IAAK5U,EAAKmT,UAAW,CACnB,GAAInT,EAAKoT,SAAW5d,EAAO4c,WAAY,CACrCpd,EAAO6c,cAAc,MAC3B,CACI7R,EAAKoT,QAAU,MACfpT,EAAK8U,YAAc,MACnB,MACJ,CAEE,GAAItf,EAAO4c,YAAcpS,EAAKoT,SAAWpT,EAAKmT,YAAcne,EAAOmZ,iBAAmB,MAAQnZ,EAAOoZ,iBAAmB,MAAO,CAC7HpZ,EAAO6c,cAAc,MACzB,CAGE,MAAMsG,EAAezmB,IACrB,MAAM0mB,EAAWD,EAAenY,EAAK+U,eAGrC,GAAI/f,EAAO8e,WAAY,CACrB,MAAMuE,EAAW9mB,EAAEkiB,MAAQliB,EAAEiiB,cAAgBjiB,EAAEiiB,eAC/Cxe,EAAO6W,mBAAmBwM,GAAYA,EAAS,IAAM9mB,EAAEjE,QACvD0H,EAAOqH,KAAK,YAAa9K,GACzB,GAAI6mB,EAAW,KAAOD,EAAenY,EAAKsY,cAAgB,IAAK,CAC7DtjB,EAAOqH,KAAK,wBAAyB9K,EAC3C,CACA,CACEyO,EAAKsY,cAAgB5mB,IACrBF,GAAS,KACP,IAAKwD,EAAOyH,UAAWzH,EAAO8e,WAAa,IAAI,IAEjD,IAAK9T,EAAKmT,YAAcnT,EAAKoT,UAAYpe,EAAOggB,gBAAkB3D,EAAQD,OAAS,GAAKpR,EAAKqM,mBAAqBrM,EAAKsX,eAAgB,CACrItX,EAAKmT,UAAY,MACjBnT,EAAKoT,QAAU,MACfpT,EAAK8U,YAAc,MACnB,MACJ,CACE9U,EAAKmT,UAAY,MACjBnT,EAAKoT,QAAU,MACfpT,EAAK8U,YAAc,MACnB,IAAIyD,EACJ,GAAI/iB,EAAOuiB,aAAc,CACvBQ,EAAalX,EAAMrM,EAAOI,WAAaJ,EAAOI,SAClD,KAAS,CACLmjB,GAAcvY,EAAKqM,gBACvB,CACE,GAAI7W,EAAOwN,QAAS,CAClB,MACJ,CACE,GAAIxN,EAAOggB,UAAYhgB,EAAOggB,SAAS/T,QAAS,CAC9CzM,EAAOwgB,SAASwC,WAAW,CACzBO,eAEF,MACJ,CAGE,IAAIC,EAAY,EAChB,IAAIvT,EAAYjQ,EAAOgN,gBAAgB,GACvC,IAAK,IAAIlO,EAAI,EAAGA,EAAIiO,EAAWpU,OAAQmG,GAAKA,EAAI0B,EAAO8O,mBAAqB,EAAI9O,EAAO6O,eAAgB,CACrG,MAAM2K,EAAYlb,EAAI0B,EAAO8O,mBAAqB,EAAI,EAAI9O,EAAO6O,eACjE,UAAWtC,EAAWjO,EAAIkb,KAAe,YAAa,CACpD,GAAIuJ,GAAcxW,EAAWjO,IAAMykB,EAAaxW,EAAWjO,EAAIkb,GAAY,CACzEwJ,EAAY1kB,EACZmR,EAAYlD,EAAWjO,EAAIkb,GAAajN,EAAWjO,EAC3D,CACA,MAAW,GAAIykB,GAAcxW,EAAWjO,GAAI,CACtC0kB,EAAY1kB,EACZmR,EAAYlD,EAAWA,EAAWpU,OAAS,GAAKoU,EAAWA,EAAWpU,OAAS,EACrF,CACA,CACE,IAAI8qB,EAAmB,KACvB,IAAIC,EAAkB,KACtB,GAAIljB,EAAOuV,OAAQ,CACjB,GAAI/V,EAAOuT,YAAa,CACtBmQ,EAAkBljB,EAAOgM,SAAWhM,EAAOgM,QAAQC,SAAWzM,EAAOwM,QAAUxM,EAAOwM,QAAQG,OAAOhU,OAAS,EAAIqH,EAAO2M,OAAOhU,OAAS,CAC/I,MAAW,GAAIqH,EAAOwT,MAAO,CACvBiQ,EAAmB,CACzB,CACA,CAEE,MAAME,GAASJ,EAAaxW,EAAWyW,IAAcvT,EACrD,MAAM+J,EAAYwJ,EAAYhjB,EAAO8O,mBAAqB,EAAI,EAAI9O,EAAO6O,eACzE,GAAI+T,EAAW5iB,EAAOojB,aAAc,CAElC,IAAKpjB,EAAOqjB,WAAY,CACtB7jB,EAAO8Y,QAAQ9Y,EAAO+R,aACtB,MACN,CACI,GAAI/R,EAAOggB,iBAAmB,OAAQ,CACpC,GAAI2D,GAASnjB,EAAOsjB,gBAAiB9jB,EAAO8Y,QAAQtY,EAAOuV,QAAU/V,EAAOwT,MAAQiQ,EAAmBD,EAAYxJ,QAAgBha,EAAO8Y,QAAQ0K,EACxJ,CACI,GAAIxjB,EAAOggB,iBAAmB,OAAQ,CACpC,GAAI2D,EAAQ,EAAInjB,EAAOsjB,gBAAiB,CACtC9jB,EAAO8Y,QAAQ0K,EAAYxJ,EACnC,MAAa,GAAI0J,IAAoB,MAAQC,EAAQ,GAAKxiB,KAAKiO,IAAIuU,GAASnjB,EAAOsjB,gBAAiB,CAC5F9jB,EAAO8Y,QAAQ4K,EACvB,KAAa,CACL1jB,EAAO8Y,QAAQ0K,EACvB,CACA,CACA,KAAS,CAEL,IAAKhjB,EAAOujB,YAAa,CACvB/jB,EAAO8Y,QAAQ9Y,EAAO+R,aACtB,MACN,CACI,MAAMiS,EAAoBhkB,EAAOikB,aAAe1nB,EAAEjE,SAAW0H,EAAOikB,WAAWC,QAAU3nB,EAAEjE,SAAW0H,EAAOikB,WAAWE,QACxH,IAAKH,EAAmB,CACtB,GAAIhkB,EAAOggB,iBAAmB,OAAQ,CACpChgB,EAAO8Y,QAAQ2K,IAAqB,KAAOA,EAAmBD,EAAYxJ,EAClF,CACM,GAAIha,EAAOggB,iBAAmB,OAAQ,CACpChgB,EAAO8Y,QAAQ4K,IAAoB,KAAOA,EAAkBF,EACpE,CACA,MAAW,GAAIjnB,EAAEjE,SAAW0H,EAAOikB,WAAWC,OAAQ,CAChDlkB,EAAO8Y,QAAQ0K,EAAYxJ,EACjC,KAAW,CACLha,EAAO8Y,QAAQ0K,EACrB,CACA,CACA,CCrJe,SAASY,KACtB,MAAMpkB,EAAS3E,KACf,MAAMmF,OACJA,EAAM7D,GACNA,GACEqD,EACJ,GAAIrD,GAAMA,EAAG6H,cAAgB,EAAG,OAGhC,GAAIhE,EAAOgO,YAAa,CACtBxO,EAAOqkB,eACX,CAGE,MAAMlL,eACJA,EAAcC,eACdA,EAActM,SACdA,GACE9M,EACJ,MAAMuM,EAAYvM,EAAOwM,SAAWxM,EAAOQ,OAAOgM,QAAQC,QAG1DzM,EAAOmZ,eAAiB,KACxBnZ,EAAOoZ,eAAiB,KACxBpZ,EAAOoL,aACPpL,EAAO4L,eACP5L,EAAOqU,sBACP,MAAMiQ,EAAgB/X,GAAa/L,EAAOoP,KAC1C,IAAKpP,EAAO+N,gBAAkB,QAAU/N,EAAO+N,cAAgB,IAAMvO,EAAOwT,QAAUxT,EAAOuT,cAAgBvT,EAAOQ,OAAOuN,iBAAmBuW,EAAe,CAC3JtkB,EAAO8Y,QAAQ9Y,EAAO2M,OAAOhU,OAAS,EAAG,EAAG,MAAO,KACvD,KAAS,CACL,GAAIqH,EAAOQ,OAAOoP,OAASrD,EAAW,CACpCvM,EAAO0Z,YAAY1Z,EAAOgW,UAAW,EAAG,MAAO,KACrD,KAAW,CACLhW,EAAO8Y,QAAQ9Y,EAAO+R,YAAa,EAAG,MAAO,KACnD,CACA,CACE,GAAI/R,EAAOukB,UAAYvkB,EAAOukB,SAASC,SAAWxkB,EAAOukB,SAASE,OAAQ,CACxE7oB,aAAaoE,EAAOukB,SAASG,eAC7B1kB,EAAOukB,SAASG,cAAgB/oB,YAAW,KACzC,GAAIqE,EAAOukB,UAAYvkB,EAAOukB,SAASC,SAAWxkB,EAAOukB,SAASE,OAAQ,CACxEzkB,EAAOukB,SAASI,QACxB,IACO,IACP,CAEE3kB,EAAOoZ,eAAiBA,EACxBpZ,EAAOmZ,eAAiBA,EACxB,GAAInZ,EAAOQ,OAAOuQ,eAAiBjE,IAAa9M,EAAO8M,SAAU,CAC/D9M,EAAOgR,eACX,CACA,CCnDe,SAAS4T,GAAQroB,GAC9B,MAAMyD,EAAS3E,KACf,IAAK2E,EAAOyM,QAAS,OACrB,IAAKzM,EAAO8e,WAAY,CACtB,GAAI9e,EAAOQ,OAAOqkB,cAAetoB,EAAEojB,iBACnC,GAAI3f,EAAOQ,OAAOskB,0BAA4B9kB,EAAOiY,UAAW,CAC9D1b,EAAEslB,kBACFtlB,EAAEwoB,0BACR,CACA,CACA,CCVe,SAASC,KACtB,MAAMhlB,EAAS3E,KACf,MAAMqF,UACJA,EAAS0L,aACTA,EAAYK,QACZA,GACEzM,EACJ,IAAKyM,EAAS,OACdzM,EAAO2X,kBAAoB3X,EAAOI,UAClC,GAAIJ,EAAOuL,eAAgB,CACzBvL,EAAOI,WAAaM,EAAUmC,UAClC,KAAS,CACL7C,EAAOI,WAAaM,EAAUiC,SAClC,CAEE,GAAI3C,EAAOI,YAAc,EAAGJ,EAAOI,UAAY,EAC/CJ,EAAOmW,oBACPnW,EAAOqU,sBACP,IAAIuD,EACJ,MAAMvE,EAAiBrT,EAAOsT,eAAiBtT,EAAO6S,eACtD,GAAIQ,IAAmB,EAAG,CACxBuE,EAAc,CAClB,KAAS,CACLA,GAAe5X,EAAOI,UAAYJ,EAAO6S,gBAAkBQ,CAC/D,CACE,GAAIuE,IAAgB5X,EAAOkB,SAAU,CACnClB,EAAOmT,eAAe/G,GAAgBpM,EAAOI,UAAYJ,EAAOI,UACpE,CACEJ,EAAOqH,KAAK,eAAgBrH,EAAOI,UAAW,MAChD,CC5Be,SAAS6kB,GAAO1oB,GAC7B,MAAMyD,EAAS3E,KACfyZ,EAAqB9U,EAAQzD,EAAEjE,QAC/B,GAAI0H,EAAOQ,OAAOwN,SAAWhO,EAAOQ,OAAO+N,gBAAkB,SAAWvO,EAAOQ,OAAO4T,WAAY,CAChG,MACJ,CACEpU,EAAOkX,QACT,CCAA,IAAIgO,GAAqB,MACzB,SAASC,KAAqB,CAC9B,MAAMpb,GAAS,CAAC/J,EAAQoK,KACtB,MAAMzP,EAAWF,IACjB,MAAM+F,OACJA,EAAM7D,GACNA,EAAE+D,UACFA,EAAS0E,OACTA,GACEpF,EACJ,MAAMolB,IAAY5kB,EAAOohB,OACzB,MAAMyD,EAAYjb,IAAW,KAAO,mBAAqB,sBACzD,MAAMkb,EAAelb,EAGrBzN,EAAG0oB,GAAW,cAAerlB,EAAO2d,aAAc,CAChD4H,QAAS,QAEX5qB,EAAS0qB,GAAW,cAAerlB,EAAOygB,YAAa,CACrD8E,QAAS,MACTH,YAEFzqB,EAAS0qB,GAAW,YAAarlB,EAAOgjB,WAAY,CAClDuC,QAAS,OAEX5qB,EAAS0qB,GAAW,gBAAiBrlB,EAAOgjB,WAAY,CACtDuC,QAAS,OAEX5qB,EAAS0qB,GAAW,aAAcrlB,EAAOgjB,WAAY,CACnDuC,QAAS,OAEX5qB,EAAS0qB,GAAW,eAAgBrlB,EAAOgjB,WAAY,CACrDuC,QAAS,OAIX,GAAI/kB,EAAOqkB,eAAiBrkB,EAAOskB,yBAA0B,CAC3DnoB,EAAG0oB,GAAW,QAASrlB,EAAO4kB,QAAS,KAC3C,CACE,GAAIpkB,EAAOwN,QAAS,CAClBtN,EAAU2kB,GAAW,SAAUrlB,EAAOglB,SAC1C,CAGE,GAAIxkB,EAAOglB,qBAAsB,CAC/BxlB,EAAOslB,GAAclgB,EAAOC,KAAOD,EAAOE,QAAU,0CAA4C,wBAAyB8e,GAAU,KACvI,KAAS,CACLpkB,EAAOslB,GAAc,iBAAkBlB,GAAU,KACrD,CAGEznB,EAAG0oB,GAAW,OAAQrlB,EAAOilB,OAAQ,CACnCG,QAAS,MACT,EAEJ,SAASK,KACP,MAAMzlB,EAAS3E,KACf,MAAMV,EAAWF,IACjB,MAAM+F,OACJA,GACER,EACJA,EAAO2d,aAAeA,GAAa+H,KAAK1lB,GACxCA,EAAOygB,YAAcA,GAAYiF,KAAK1lB,GACtCA,EAAOgjB,WAAaA,GAAW0C,KAAK1lB,GACpC,GAAIQ,EAAOwN,QAAS,CAClBhO,EAAOglB,SAAWA,GAASU,KAAK1lB,EACpC,CACEA,EAAO4kB,QAAUA,GAAQc,KAAK1lB,GAC9BA,EAAOilB,OAASA,GAAOS,KAAK1lB,GAC5B,IAAKklB,GAAoB,CACvBvqB,EAAS7B,iBAAiB,aAAcqsB,IACxCD,GAAqB,IACzB,CACEnb,GAAO/J,EAAQ,KACjB,CACA,SAAS2lB,KACP,MAAM3lB,EAAS3E,KACf0O,GAAO/J,EAAQ,MACjB,CACA,MAAA4lB,GAAe,CACbH,gBACAE,iBCxFF,MAAME,GAAgB,CAAC7lB,EAAQQ,IACtBR,EAAOkO,MAAQ1N,EAAO0N,MAAQ1N,EAAO0N,KAAKC,KAAO,EAE3C,SAASkW,KACtB,MAAMrkB,EAAS3E,KACf,MAAM2a,UACJA,EAAStO,YACTA,EAAWlH,OACXA,EAAM7D,GACNA,GACEqD,EACJ,MAAMwO,EAAchO,EAAOgO,YAC3B,IAAKA,GAAeA,GAAepW,OAAOI,KAAKgW,GAAa7V,SAAW,EAAG,OAG1E,MAAMmtB,EAAa9lB,EAAO+lB,cAAcvX,EAAaxO,EAAOQ,OAAOwlB,gBAAiBhmB,EAAOrD,IAC3F,IAAKmpB,GAAc9lB,EAAOimB,oBAAsBH,EAAY,OAC5D,MAAMI,EAAuBJ,KAActX,EAAcA,EAAYsX,GAAc9mB,UACnF,MAAMmnB,EAAmBD,GAAwBlmB,EAAOomB,eACxD,MAAMC,EAAcR,GAAc7lB,EAAQQ,GAC1C,MAAM8lB,EAAaT,GAAc7lB,EAAQmmB,GACzC,MAAMI,EAAa/lB,EAAOiM,QAC1B,GAAI4Z,IAAgBC,EAAY,CAC9B3pB,EAAGuF,UAAUsP,OAAO,GAAGhR,EAAO4Q,6BAA8B,GAAG5Q,EAAO4Q,qCACtEpR,EAAOwmB,sBACX,MAAS,IAAKH,GAAeC,EAAY,CACrC3pB,EAAGuF,UAAUC,IAAI,GAAG3B,EAAO4Q,8BAC3B,GAAI+U,EAAiBjY,KAAKuY,MAAQN,EAAiBjY,KAAKuY,OAAS,WAAaN,EAAiBjY,KAAKuY,MAAQjmB,EAAO0N,KAAKuY,OAAS,SAAU,CACzI9pB,EAAGuF,UAAUC,IAAI,GAAG3B,EAAO4Q,oCACjC,CACIpR,EAAOwmB,sBACX,CAGE,CAAC,aAAc,aAAc,aAAa/tB,SAAQkL,IAChD,UAAWwiB,EAAiBxiB,KAAU,YAAa,OACnD,MAAM+iB,EAAmBlmB,EAAOmD,IAASnD,EAAOmD,GAAM8I,QACtD,MAAMka,EAAkBR,EAAiBxiB,IAASwiB,EAAiBxiB,GAAM8I,QACzE,GAAIia,IAAqBC,EAAiB,CACxC3mB,EAAO2D,GAAMijB,SACnB,CACI,IAAKF,GAAoBC,EAAiB,CACxC3mB,EAAO2D,GAAMkjB,QACnB,KAEE,MAAMC,EAAmBX,EAAiBzN,WAAayN,EAAiBzN,YAAclY,EAAOkY,UAC7F,MAAMqO,EAAcvmB,EAAOoP,OAASuW,EAAiB5X,gBAAkB/N,EAAO+N,eAAiBuY,GAC/F,GAAIA,GAAoBpf,EAAa,CACnC1H,EAAOgnB,iBACX,CACE3uB,EAAO2H,EAAOQ,OAAQ2lB,GACtB,MAAMc,EAAYjnB,EAAOQ,OAAOiM,QAChCrU,OAAOuT,OAAO3L,EAAQ,CACpBogB,eAAgBpgB,EAAOQ,OAAO4f,eAC9BjH,eAAgBnZ,EAAOQ,OAAO2Y,eAC9BC,eAAgBpZ,EAAOQ,OAAO4Y,iBAEhC,GAAImN,IAAeU,EAAW,CAC5BjnB,EAAO4mB,SACX,MAAS,IAAKL,GAAcU,EAAW,CACnCjnB,EAAO6mB,QACX,CACE7mB,EAAOimB,kBAAoBH,EAC3B9lB,EAAOqH,KAAK,oBAAqB8e,GACjC,GAAIY,GAAerf,EAAa,CAC9B1H,EAAO0c,cACP1c,EAAOob,WAAWpF,GAClBhW,EAAO4L,cACX,CACE5L,EAAOqH,KAAK,aAAc8e,EAC5B,CCtEe,SAASJ,GAAcvX,EAAa8O,EAAO,SAAU4J,GAClE,IAAK1Y,GAAe8O,IAAS,cAAgB4J,EAAa,OAAOloB,UACjE,IAAI8mB,EAAa,MACjB,MAAM1pB,EAASF,IACf,MAAMirB,EAAgB7J,IAAS,SAAWlhB,EAAOgrB,YAAcF,EAAY5b,aAC3E,MAAM+b,EAASjvB,OAAOI,KAAKgW,GAAajR,KAAI+pB,IAC1C,UAAWA,IAAU,UAAYA,EAAMnoB,QAAQ,OAAS,EAAG,CACzD,MAAMooB,EAAWtpB,WAAWqpB,EAAME,OAAO,IACzC,MAAMC,EAAQN,EAAgBI,EAC9B,MAAO,CACLE,QACAH,QAER,CACI,MAAO,CACLG,MAAOH,EACPA,QACD,IAEHD,EAAOK,MAAK,CAAClqB,EAAGmqB,IAAMlc,SAASjO,EAAEiqB,MAAO,IAAMhc,SAASkc,EAAEF,MAAO,MAChE,IAAK,IAAI3oB,EAAI,EAAGA,EAAIuoB,EAAO1uB,OAAQmG,GAAK,EAAG,CACzC,MAAMwoB,MACJA,EAAKG,MACLA,GACEJ,EAAOvoB,GACX,GAAIwe,IAAS,SAAU,CACrB,GAAIlhB,EAAOP,WAAW,eAAe4rB,QAAY1lB,QAAS,CACxD+jB,EAAawB,CACrB,CACA,MAAW,GAAIG,GAASP,EAAY7b,YAAa,CAC3Cya,EAAawB,CACnB,CACA,CACE,OAAOxB,GAAc,KACvB,CCjCA,MAAAtX,GAAe,CACb6V,iBACA0B,kBCJF,SAAS6B,GAAe/f,EAASggB,GAC/B,MAAMC,EAAgB,GACtBjgB,EAAQpP,SAAQsvB,IACd,UAAWA,IAAS,SAAU,CAC5B3vB,OAAOI,KAAKuvB,GAAMtvB,SAAQuvB,IACxB,GAAID,EAAKC,GAAa,CACpBF,EAAczkB,KAAKwkB,EAASG,EACtC,IAEA,MAAW,UAAWD,IAAS,SAAU,CACnCD,EAAczkB,KAAKwkB,EAASE,EAClC,KAEE,OAAOD,CACT,CACe,SAASG,KACtB,MAAMjoB,EAAS3E,KACf,MAAM2sB,WACJA,EAAUxnB,OACVA,EAAM6L,IACNA,EAAG1P,GACHA,EAAEyI,OACFA,GACEpF,EAEJ,MAAMkoB,EAAWN,GAAe,CAAC,cAAepnB,EAAOkY,UAAW,CAChE,YAAa1Y,EAAOQ,OAAOggB,UAAYhgB,EAAOggB,SAAS/T,SACtD,CACD0b,WAAc3nB,EAAO4T,YACpB,CACD/H,IAAOA,GACN,CACD6B,KAAQ1N,EAAO0N,MAAQ1N,EAAO0N,KAAKC,KAAO,GACzC,CACD,cAAe3N,EAAO0N,MAAQ1N,EAAO0N,KAAKC,KAAO,GAAK3N,EAAO0N,KAAKuY,OAAS,UAC1E,CACDnhB,QAAWF,EAAOE,SACjB,CACDD,IAAOD,EAAOC,KACb,CACD,WAAY7E,EAAOwN,SAClB,CACDoa,SAAY5nB,EAAOwN,SAAWxN,EAAOuN,gBACpC,CACD,iBAAkBvN,EAAOyQ,sBACvBzQ,EAAO4Q,wBACX4W,EAAW3kB,QAAQ6kB,GACnBvrB,EAAGuF,UAAUC,OAAO6lB,GACpBhoB,EAAOwmB,sBACT,CCjDe,SAAS6B,KACtB,MAAMroB,EAAS3E,KACf,MAAMsB,GACJA,EAAEqrB,WACFA,GACEhoB,EACJrD,EAAGuF,UAAUsP,UAAUwW,GACvBhoB,EAAOwmB,sBACT,CCNA,MAAAvkB,GAAe,CACbgmB,cACAI,kBCJF,SAASrX,KACP,MAAMhR,EAAS3E,KACf,MACE2hB,SAAUsL,EAAS9nB,OACnBA,GACER,EACJ,MAAMkN,mBACJA,GACE1M,EACJ,GAAI0M,EAAoB,CACtB,MAAM6G,EAAiB/T,EAAO2M,OAAOhU,OAAS,EAC9C,MAAM4vB,EAAqBvoB,EAAO+M,WAAWgH,GAAkB/T,EAAOgN,gBAAgB+G,GAAkB7G,EAAqB,EAC7HlN,EAAOgd,SAAWhd,EAAOsE,KAAOikB,CACpC,KAAS,CACLvoB,EAAOgd,SAAWhd,EAAO8M,SAASnU,SAAW,CACjD,CACE,GAAI6H,EAAO2Y,iBAAmB,KAAM,CAClCnZ,EAAOmZ,gBAAkBnZ,EAAOgd,QACpC,CACE,GAAIxc,EAAO4Y,iBAAmB,KAAM,CAClCpZ,EAAOoZ,gBAAkBpZ,EAAOgd,QACpC,CACE,GAAIsL,GAAaA,IAActoB,EAAOgd,SAAU,CAC9Chd,EAAOwT,MAAQ,KACnB,CACE,GAAI8U,IAActoB,EAAOgd,SAAU,CACjChd,EAAOqH,KAAKrH,EAAOgd,SAAW,OAAS,SAC3C,CACA,CACA,MAAAwL,GAAe,CACbxX,kBC9BF,MAAAyX,GAAe,CACblf,KAAM,KACNmP,UAAW,aACXuJ,eAAgB,MAChBhF,kBAAmB,UACnBzD,aAAc,EACd/Y,MAAO,IACPuN,QAAS,MACTwX,qBAAsB,KACtBhd,eAAgB,KAChBoZ,OAAQ,MACR8G,eAAgB,MAChBjc,QAAS,KACTyT,kBAAmB,wDAEnB1a,MAAO,KACPE,OAAQ,KAERwS,+BAAgC,MAEhCpd,UAAW,KACX6tB,IAAK,KAELrJ,mBAAoB,MACpBE,mBAAoB,GAEpBpL,WAAY,MAEZ5E,eAAgB,MAEhB4H,iBAAkB,MAElB7H,OAAQ,QAIRf,YAAaxP,UACbgnB,gBAAiB,SAEjBzY,aAAc,EACdgB,cAAe,EACfc,eAAgB,EAChBC,mBAAoB,EACpByK,mBAAoB,MACpBhM,eAAgB,MAChBqC,qBAAsB,MACtBlD,mBAAoB,EAEpBE,kBAAmB,EAEnB8I,oBAAqB,KACrBzF,yBAA0B,MAE1BM,cAAe,KAEfjC,aAAc,MAEdoT,WAAY,EACZX,WAAY,GACZxE,cAAe,KACfgH,YAAa,KACbF,WAAY,KACZC,gBAAiB,GACjBF,aAAc,IACdb,aAAc,KACd3C,eAAgB,KAChBtF,UAAW,EACX6G,yBAA0B,MAC1BtB,yBAA0B,KAC1BC,8BAA+B,MAC/BY,oBAAqB,MAErB0H,kBAAmB,KAEnB9F,WAAY,KACZD,gBAAiB,IAEjB5R,oBAAqB,MAErBmM,WAAY,MAEZyH,cAAe,KACfC,yBAA0B,KAC1B7N,oBAAqB,MAErBrH,KAAM,MACNsL,aAAc,KACdjB,oBAAqB,KAErBlE,OAAQ,MAERqD,eAAgB,KAChBD,eAAgB,KAChB4F,aAAc,KAEdF,UAAW,KACXP,eAAgB,oBAChBK,kBAAmB,KAEnBkK,iBAAkB,KAClBtX,wBAAyB,GAEzBH,uBAAwB,UAExBxE,WAAY,eACZ2H,iBAAkB,sBAClB9B,kBAAmB,uBACnB+B,eAAgB,oBAChBC,eAAgB,oBAChBqU,aAAc,iBACd3T,mBAAoB,wBACpBK,oBAAqB,EAErBoB,mBAAoB,KAEpBmS,aAAc,OClHD,SAASC,GAAmBxoB,EAAQyoB,GACjD,OAAO,SAASvgB,EAAaxQ,EAAM,IACjC,MAAMgxB,EAAkB9wB,OAAOI,KAAKN,GAAK,GACzC,MAAMixB,EAAejxB,EAAIgxB,GACzB,UAAWC,IAAiB,UAAYA,IAAiB,KAAM,CAC7D9wB,EAAO4wB,EAAkB/wB,GACzB,MACN,CACI,GAAI,CAAC,aAAc,aAAc,aAAaiH,QAAQ+pB,IAAoB,GAAK1oB,EAAO0oB,KAAqB,KAAM,CAC/G1oB,EAAO0oB,GAAmB,CACxBE,KAAM,KAEd,CACI,KAAMF,KAAmB1oB,GAAU,YAAa2oB,GAAe,CAC7D9wB,EAAO4wB,EAAkB/wB,GACzB,MACN,CACI,GAAIsI,EAAO0oB,KAAqB,KAAM,CACpC1oB,EAAO0oB,GAAmB,CACxBzc,QAAS,KAEjB,CACI,UAAWjM,EAAO0oB,KAAqB,YAAc,YAAa1oB,EAAO0oB,IAAmB,CAC1F1oB,EAAO0oB,GAAiBzc,QAAU,IACxC,CACI,IAAKjM,EAAO0oB,GAAkB1oB,EAAO0oB,GAAmB,CACtDzc,QAAS,OAEXpU,EAAO4wB,EAAkB/wB,EAC7B,CACA,CCTA,MAAMmxB,GAAa,CACjBvf,gBACAoN,SACA9W,aACAyY,cACApK,SACAmB,QACAwN,cACFrT,OAAEA,GACAyE,eACFwC,cAAEA,GACA/O,YAEF,MAAMqnB,GAAmB,GACzB,MAAMC,GACJpxB,eAAewG,GACb,IAAIhC,EACJ,IAAI6D,EACJ,GAAI7B,EAAKhG,SAAW,GAAKgG,EAAK,GAAGxG,aAAeC,OAAOgG,UAAUL,SAASM,KAAKM,EAAK,IAAIL,MAAM,GAAI,KAAO,SAAU,CACjHkC,EAAS7B,EAAK,EACpB,KAAW,EACJhC,EAAI6D,GAAU7B,CACrB,CACI,IAAK6B,EAAQA,EAAS,GACtBA,EAASnI,EAAO,GAAImI,GACpB,GAAI7D,IAAO6D,EAAO7D,GAAI6D,EAAO7D,GAAKA,EAClC,MAAMhC,EAAWF,IACjB,GAAI+F,EAAO7D,WAAa6D,EAAO7D,KAAO,UAAYhC,EAASvB,iBAAiBoH,EAAO7D,IAAIhE,OAAS,EAAG,CACjG,MAAM6wB,EAAU,GAChB7uB,EAASvB,iBAAiBoH,EAAO7D,IAAIlE,SAAQyuB,IAC3C,MAAMuC,EAAYpxB,EAAO,GAAImI,EAAQ,CACnC7D,GAAIuqB,IAENsC,EAAQnmB,KAAK,IAAIkmB,GAAOE,GAAW,IAGrC,OAAOD,CACb,CAGI,MAAMxpB,EAAS3E,KACf2E,EAAON,WAAa,KACpBM,EAAOyE,QAAUM,IACjB/E,EAAOoF,OAASe,EAAU,CACxBrL,UAAW0F,EAAO1F,YAEpBkF,EAAOqG,QAAUa,IACjBlH,EAAOmK,gBAAkB,GACzBnK,EAAO4K,mBAAqB,GAC5B5K,EAAO0pB,QAAU,IAAI1pB,EAAO2pB,aAC5B,GAAInpB,EAAOkpB,SAAWtnB,MAAMC,QAAQ7B,EAAOkpB,SAAU,CACnD1pB,EAAO0pB,QAAQrmB,QAAQ7C,EAAOkpB,QACpC,CACI,MAAMT,EAAmB,GACzBjpB,EAAO0pB,QAAQjxB,SAAQmxB,IACrBA,EAAI,CACFppB,SACAR,SACA0I,aAAcsgB,GAAmBxoB,EAAQyoB,GACzC7hB,GAAIpH,EAAOoH,GAAGse,KAAK1lB,GACnBsK,KAAMtK,EAAOsK,KAAKob,KAAK1lB,GACvBwK,IAAKxK,EAAOwK,IAAIkb,KAAK1lB,GACrBqH,KAAMrH,EAAOqH,KAAKqe,KAAK1lB,IACvB,IAIJ,MAAM6pB,EAAexxB,EAAO,GAAIowB,GAAUQ,GAG1CjpB,EAAOQ,OAASnI,EAAO,GAAIwxB,EAAcP,GAAkB9oB,GAC3DR,EAAOomB,eAAiB/tB,EAAO,GAAI2H,EAAOQ,QAC1CR,EAAO8pB,aAAezxB,EAAO,GAAImI,GAGjC,GAAIR,EAAOQ,QAAUR,EAAOQ,OAAO4G,GAAI,CACrChP,OAAOI,KAAKwH,EAAOQ,OAAO4G,IAAI3O,SAAQsxB,IACpC/pB,EAAOoH,GAAG2iB,EAAW/pB,EAAOQ,OAAO4G,GAAG2iB,GAAW,GAEzD,CACI,GAAI/pB,EAAOQ,QAAUR,EAAOQ,OAAOmK,MAAO,CACxC3K,EAAO2K,MAAM3K,EAAOQ,OAAOmK,MACjC,CAGIvS,OAAOuT,OAAO3L,EAAQ,CACpByM,QAASzM,EAAOQ,OAAOiM,QACvB9P,KAEAqrB,WAAY,GAEZrb,OAAQ,GACRI,WAAY,GACZD,SAAU,GACVE,gBAAiB,GAEjBzB,eACE,OAAOvL,EAAOQ,OAAOkY,YAAc,YAC3C,EACMlN,aACE,OAAOxL,EAAOQ,OAAOkY,YAAc,UAC3C,EAEM3G,YAAa,EACbiE,UAAW,EAEXzC,YAAa,KACbC,MAAO,MAEPpT,UAAW,EACXuX,kBAAmB,EACnBzW,SAAU,EACV8oB,SAAU,EACV/R,UAAW,MACX3F,wBAGE,OAAOnR,KAAK8oB,MAAM5uB,KAAK+E,UAAY,GAAK,IAAM,GAAK,EAC3D,EAEM+Y,eAAgBnZ,EAAOQ,OAAO2Y,eAC9BC,eAAgBpZ,EAAOQ,OAAO4Y,eAE9BwE,gBAAiB,CACfO,UAAWnf,UACXof,QAASpf,UACT4gB,oBAAqB5gB,UACrB+gB,eAAgB/gB,UAChB6gB,YAAa7gB,UACbqY,iBAAkBrY,UAClBsjB,eAAgBtjB,UAChBihB,mBAAoBjhB,UAEpBkhB,kBAAmBlgB,EAAOQ,OAAO0f,kBAEjCoD,cAAe,EACf4G,aAAclrB,UAEdmrB,WAAY,GACZzH,oBAAqB1jB,UACrB8gB,YAAa9gB,UACb6e,QAAS,IAGXiB,WAAY,KAEZsB,eAAgBpgB,EAAOQ,OAAO4f,eAC9B/D,QAAS,CACP+C,OAAQ,EACRC,OAAQ,EACRL,SAAU,EACVE,SAAU,EACV9C,KAAM,GAGRgO,aAAc,GACdC,aAAc,IAEhBrqB,EAAOqH,KAAK,WAGZ,GAAIrH,EAAOQ,OAAO+I,KAAM,CACtBvJ,EAAOuJ,MACb,CAII,OAAOvJ,CACX,CACEmb,cAAcxN,GACZ,MAAMzB,SACJA,EAAQ1L,OACRA,GACEnF,KACJ,MAAMsR,EAAS/K,EAAgBsK,EAAU,IAAI1L,EAAOoM,4BACpD,MAAMkH,EAAkBlQ,EAAa+I,EAAO,IAC5C,OAAO/I,EAAa+J,GAAWmG,CACnC,CACEjC,oBAAoB/G,GAClB,OAAOzP,KAAK8f,cAAc9f,KAAKsR,OAAOzN,QAAOyO,GAAWA,EAAQgJ,aAAa,2BAA6B,IAAM7L,IAAO,GAC3H,CACEmR,eACE,MAAMjc,EAAS3E,KACf,MAAM6Q,SACJA,EAAQ1L,OACRA,GACER,EACJA,EAAO2M,OAAS/K,EAAgBsK,EAAU,IAAI1L,EAAOoM,2BACzD,CACEia,SACE,MAAM7mB,EAAS3E,KACf,GAAI2E,EAAOyM,QAAS,OACpBzM,EAAOyM,QAAU,KACjB,GAAIzM,EAAOQ,OAAO4c,WAAY,CAC5Bpd,EAAO6c,eACb,CACI7c,EAAOqH,KAAK,SAChB,CACEuf,UACE,MAAM5mB,EAAS3E,KACf,IAAK2E,EAAOyM,QAAS,OACrBzM,EAAOyM,QAAU,MACjB,GAAIzM,EAAOQ,OAAO4c,WAAY,CAC5Bpd,EAAOmd,iBACb,CACInd,EAAOqH,KAAK,UAChB,CACEijB,YAAYppB,EAAUT,GACpB,MAAMT,EAAS3E,KACf6F,EAAWC,KAAKE,IAAIF,KAAKC,IAAIF,EAAU,GAAI,GAC3C,MAAMG,EAAMrB,EAAO6S,eACnB,MAAMzR,EAAMpB,EAAOsT,eACnB,MAAMvS,GAAWK,EAAMC,GAAOH,EAAWG,EACzCrB,EAAO6X,YAAY9W,SAAgBN,IAAU,YAAc,EAAIA,GAC/DT,EAAOmW,oBACPnW,EAAOqU,qBACX,CACEmS,uBACE,MAAMxmB,EAAS3E,KACf,IAAK2E,EAAOQ,OAAOuoB,eAAiB/oB,EAAOrD,GAAI,OAC/C,MAAM4tB,EAAMvqB,EAAOrD,GAAG6tB,UAAUltB,MAAM,KAAK4B,QAAOsrB,GACzCA,EAAUrrB,QAAQ,YAAc,GAAKqrB,EAAUrrB,QAAQa,EAAOQ,OAAO4Q,0BAA4B,IAE1GpR,EAAOqH,KAAK,oBAAqBkjB,EAAI7sB,KAAK,KAC9C,CACE+sB,gBAAgB9c,GACd,MAAM3N,EAAS3E,KACf,GAAI2E,EAAOyH,UAAW,MAAO,GAC7B,OAAOkG,EAAQ6c,UAAUltB,MAAM,KAAK4B,QAAOsrB,GAClCA,EAAUrrB,QAAQ,kBAAoB,GAAKqrB,EAAUrrB,QAAQa,EAAOQ,OAAOoM,cAAgB,IACjGlP,KAAK,IACZ,CACEmX,oBACE,MAAM7U,EAAS3E,KACf,IAAK2E,EAAOQ,OAAOuoB,eAAiB/oB,EAAOrD,GAAI,OAC/C,MAAM+tB,EAAU,GAChB1qB,EAAO2M,OAAOlU,SAAQkV,IACpB,MAAMqa,EAAahoB,EAAOyqB,gBAAgB9c,GAC1C+c,EAAQrnB,KAAK,CACXsK,UACAqa,eAEFhoB,EAAOqH,KAAK,cAAesG,EAASqa,EAAW,IAEjDhoB,EAAOqH,KAAK,gBAAiBqjB,EACjC,CACEjV,qBAAqBkV,EAAO,UAAWC,EAAQ,OAC7C,MAAM5qB,EAAS3E,KACf,MAAMmF,OACJA,EAAMmM,OACNA,EAAMI,WACNA,EAAUC,gBACVA,EACA1I,KAAM6H,EAAU4F,YAChBA,GACE/R,EACJ,IAAI6qB,EAAM,EACV,GAAIrqB,EAAOuN,eAAgB,CACzB,IAAIM,EAAY1B,EAAOoF,GAAepF,EAAOoF,GAAa5C,gBAAkB,EAC5E,IAAI2b,EACJ,IAAK,IAAIhsB,EAAIiT,EAAc,EAAGjT,EAAI6N,EAAOhU,OAAQmG,GAAK,EAAG,CACvD,GAAI6N,EAAO7N,KAAOgsB,EAAW,CAC3Bzc,GAAa1B,EAAO7N,GAAGqQ,gBACvB0b,GAAO,EACP,GAAIxc,EAAYlC,EAAY2e,EAAY,IAClD,CACA,CACM,IAAK,IAAIhsB,EAAIiT,EAAc,EAAGjT,GAAK,EAAGA,GAAK,EAAG,CAC5C,GAAI6N,EAAO7N,KAAOgsB,EAAW,CAC3Bzc,GAAa1B,EAAO7N,GAAGqQ,gBACvB0b,GAAO,EACP,GAAIxc,EAAYlC,EAAY2e,EAAY,IAClD,CACA,CACA,KAAW,CAEL,GAAIH,IAAS,UAAW,CACtB,IAAK,IAAI7rB,EAAIiT,EAAc,EAAGjT,EAAI6N,EAAOhU,OAAQmG,GAAK,EAAG,CACvD,MAAMisB,EAAcH,EAAQ7d,EAAWjO,GAAKkO,EAAgBlO,GAAKiO,EAAWgF,GAAe5F,EAAaY,EAAWjO,GAAKiO,EAAWgF,GAAe5F,EAClJ,GAAI4e,EAAa,CACfF,GAAO,CACnB,CACA,CACA,KAAa,CAEL,IAAK,IAAI/rB,EAAIiT,EAAc,EAAGjT,GAAK,EAAGA,GAAK,EAAG,CAC5C,MAAMisB,EAAche,EAAWgF,GAAehF,EAAWjO,GAAKqN,EAC9D,GAAI4e,EAAa,CACfF,GAAO,CACnB,CACA,CACA,CACA,CACI,OAAOA,CACX,CACE3T,SACE,MAAMlX,EAAS3E,KACf,IAAK2E,GAAUA,EAAOyH,UAAW,OACjC,MAAMqF,SACJA,EAAQtM,OACRA,GACER,EAEJ,GAAIQ,EAAOgO,YAAa,CACtBxO,EAAOqkB,eACb,CACI,IAAIrkB,EAAOrD,GAAGvD,iBAAiB,qBAAqBX,SAAQsc,IAC1D,GAAIA,EAAQiW,SAAU,CACpBlW,EAAqB9U,EAAQ+U,EACrC,KAEI/U,EAAOoL,aACPpL,EAAO4L,eACP5L,EAAOmT,iBACPnT,EAAOqU,sBACP,SAASiD,IACP,MAAM2T,EAAiBjrB,EAAOoM,aAAepM,EAAOI,WAAa,EAAIJ,EAAOI,UAC5E,MAAM+X,EAAehX,KAAKE,IAAIF,KAAKC,IAAI6pB,EAAgBjrB,EAAOsT,gBAAiBtT,EAAO6S,gBACtF7S,EAAOsX,aAAaa,GACpBnY,EAAOmW,oBACPnW,EAAOqU,qBACb,CACI,IAAI6W,EACJ,GAAI1qB,EAAOggB,UAAYhgB,EAAOggB,SAAS/T,UAAYjM,EAAOwN,QAAS,CACjEsJ,IACA,GAAI9W,EAAO4T,WAAY,CACrBpU,EAAOyR,kBACf,CACA,KAAW,CACL,IAAKjR,EAAO+N,gBAAkB,QAAU/N,EAAO+N,cAAgB,IAAMvO,EAAOwT,QAAUhT,EAAOuN,eAAgB,CAC3G,MAAMpB,EAAS3M,EAAOwM,SAAWhM,EAAOgM,QAAQC,QAAUzM,EAAOwM,QAAQG,OAAS3M,EAAO2M,OACzFue,EAAalrB,EAAO8Y,QAAQnM,EAAOhU,OAAS,EAAG,EAAG,MAAO,KACjE,KAAa,CACLuyB,EAAalrB,EAAO8Y,QAAQ9Y,EAAO+R,YAAa,EAAG,MAAO,KAClE,CACM,IAAKmZ,EAAY,CACf5T,GACR,CACA,CACI,GAAI9W,EAAOuQ,eAAiBjE,IAAa9M,EAAO8M,SAAU,CACxD9M,EAAOgR,eACb,CACIhR,EAAOqH,KAAK,SAChB,CACE2f,gBAAgBmE,EAAcC,EAAa,MACzC,MAAMprB,EAAS3E,KACf,MAAMgwB,EAAmBrrB,EAAOQ,OAAOkY,UACvC,IAAKyS,EAAc,CAEjBA,EAAeE,IAAqB,aAAe,WAAa,YACtE,CACI,GAAIF,IAAiBE,GAAoBF,IAAiB,cAAgBA,IAAiB,WAAY,CACrG,OAAOnrB,CACb,CACIA,EAAOrD,GAAGuF,UAAUsP,OAAO,GAAGxR,EAAOQ,OAAO4Q,yBAAyBia,KACrErrB,EAAOrD,GAAGuF,UAAUC,IAAI,GAAGnC,EAAOQ,OAAO4Q,yBAAyB+Z,KAClEnrB,EAAOwmB,uBACPxmB,EAAOQ,OAAOkY,UAAYyS,EAC1BnrB,EAAO2M,OAAOlU,SAAQkV,IACpB,GAAIwd,IAAiB,WAAY,CAC/Bxd,EAAQhU,MAAM6L,MAAQ,EAC9B,KAAa,CACLmI,EAAQhU,MAAM+L,OAAS,EAC/B,KAEI1F,EAAOqH,KAAK,mBACZ,GAAI+jB,EAAYprB,EAAOkX,SACvB,OAAOlX,CACX,CACEsrB,wBAAwB5S,GACtB,MAAM1Y,EAAS3E,KACf,GAAI2E,EAAOqM,KAAOqM,IAAc,QAAU1Y,EAAOqM,KAAOqM,IAAc,MAAO,OAC7E1Y,EAAOqM,IAAMqM,IAAc,MAC3B1Y,EAAOoM,aAAepM,EAAOQ,OAAOkY,YAAc,cAAgB1Y,EAAOqM,IACzE,GAAIrM,EAAOqM,IAAK,CACdrM,EAAOrD,GAAGuF,UAAUC,IAAI,GAAGnC,EAAOQ,OAAO4Q,6BACzCpR,EAAOrD,GAAGkE,IAAM,KACtB,KAAW,CACLb,EAAOrD,GAAGuF,UAAUsP,OAAO,GAAGxR,EAAOQ,OAAO4Q,6BAC5CpR,EAAOrD,GAAGkE,IAAM,KACtB,CACIb,EAAOkX,QACX,CACEqU,MAAM1pB,GACJ,MAAM7B,EAAS3E,KACf,GAAI2E,EAAOwrB,QAAS,OAAO,KAG3B,IAAI7uB,EAAKkF,GAAW7B,EAAOQ,OAAO7D,GAClC,UAAWA,IAAO,SAAU,CAC1BA,EAAKhC,SAASxB,cAAcwD,EAClC,CACI,IAAKA,EAAI,CACP,OAAO,KACb,CACIA,EAAGqD,OAASA,EACZ,GAAIrD,EAAG8uB,SAAU,CACfzrB,EAAOkS,UAAY,IACzB,CACI,MAAMwZ,EAAqB,IAClB,KAAK1rB,EAAOQ,OAAOsoB,cAAgB,IAAI6C,OAAOruB,MAAM,KAAKI,KAAK,OAEvE,MAAMkuB,EAAa,KACjB,GAAIjvB,GAAMA,EAAG+hB,YAAc/hB,EAAG+hB,WAAWvlB,cAAe,CACtD,MAAM0yB,EAAMlvB,EAAG+hB,WAAWvlB,cAAcuyB,KAExC,OAAOG,CACf,CACM,OAAOjqB,EAAgBjF,EAAI+uB,KAAsB,EAAE,EAGrD,IAAIhrB,EAAYkrB,IAChB,IAAKlrB,GAAaV,EAAOQ,OAAOkoB,eAAgB,CAC9ChoB,EAAYlH,EAAc,MAAOwG,EAAOQ,OAAOsoB,cAC/CnsB,EAAGqf,OAAOtb,GACVkB,EAAgBjF,EAAI,IAAIqD,EAAOQ,OAAOoM,cAAcnU,SAAQkV,IAC1DjN,EAAUsb,OAAOrO,EAAQ,GAEjC,CACIvV,OAAOuT,OAAO3L,EAAQ,CACpBrD,KACA+D,YACAwL,SAAUlM,EAAOkS,UAAYvV,EAAK+D,EAClC8qB,QAAS,KAETnf,IAAK1P,EAAGkE,IAAI4F,gBAAkB,OAAS/C,EAAa/G,EAAI,eAAiB,MACzEyP,aAAcpM,EAAOQ,OAAOkY,YAAc,eAAiB/b,EAAGkE,IAAI4F,gBAAkB,OAAS/C,EAAa/G,EAAI,eAAiB,OAC/H2P,SAAU5I,EAAahD,EAAW,aAAe,gBAEnD,OAAO,IACX,CACE6I,KAAK5M,GACH,MAAMqD,EAAS3E,KACf,GAAI2E,EAAO0H,YAAa,OAAO1H,EAC/B,MAAMwrB,EAAUxrB,EAAOurB,MAAM5uB,GAC7B,GAAI6uB,IAAY,MAAO,OAAOxrB,EAC9BA,EAAOqH,KAAK,cAGZ,GAAIrH,EAAOQ,OAAOgO,YAAa,CAC7BxO,EAAOqkB,eACb,CAGIrkB,EAAOioB,aAGPjoB,EAAOoL,aAGPpL,EAAO4L,eACP,GAAI5L,EAAOQ,OAAOuQ,cAAe,CAC/B/Q,EAAOgR,eACb,CAGI,GAAIhR,EAAOQ,OAAO4c,YAAcpd,EAAOyM,QAAS,CAC9CzM,EAAO6c,eACb,CAGI,GAAI7c,EAAOQ,OAAOoP,MAAQ5P,EAAOwM,SAAWxM,EAAOQ,OAAOgM,QAAQC,QAAS,CACzEzM,EAAO8Y,QAAQ9Y,EAAOQ,OAAOgZ,aAAexZ,EAAOwM,QAAQuD,aAAc,EAAG/P,EAAOQ,OAAOoW,mBAAoB,MAAO,KAC3H,KAAW,CACL5W,EAAO8Y,QAAQ9Y,EAAOQ,OAAOgZ,aAAc,EAAGxZ,EAAOQ,OAAOoW,mBAAoB,MAAO,KAC7F,CAGI,GAAI5W,EAAOQ,OAAOoP,KAAM,CACtB5P,EAAOob,YACb,CAGIpb,EAAOylB,eACP,IAAIzlB,EAAOrD,GAAGvD,iBAAiB,qBAAqBX,SAAQsc,IAC1D,GAAIA,EAAQiW,SAAU,CACpBlW,EAAqB9U,EAAQ+U,EACrC,KAAa,CACLA,EAAQjc,iBAAiB,QAAQyD,IAC/BuY,EAAqB9U,EAAQzD,EAAEjE,OAAO,GAEhD,KAEIgd,EAAQtV,GAGRA,EAAO0H,YAAc,KACrB4N,EAAQtV,GAGRA,EAAOqH,KAAK,QACZrH,EAAOqH,KAAK,aACZ,OAAOrH,CACX,CACE2J,QAAQmiB,EAAiB,KAAMC,EAAc,MAC3C,MAAM/rB,EAAS3E,KACf,MAAMmF,OACJA,EAAM7D,GACNA,EAAE+D,UACFA,EAASiM,OACTA,GACE3M,EACJ,UAAWA,EAAOQ,SAAW,aAAeR,EAAOyH,UAAW,CAC5D,OAAO,IACb,CACIzH,EAAOqH,KAAK,iBAGZrH,EAAO0H,YAAc,MAGrB1H,EAAO2lB,eAGP,GAAInlB,EAAOoP,KAAM,CACf5P,EAAO0c,aACb,CAGI,GAAIqP,EAAa,CACf/rB,EAAOqoB,gBACP1rB,EAAG0Y,gBAAgB,SACnB3U,EAAU2U,gBAAgB,SAC1B,GAAI1I,GAAUA,EAAOhU,OAAQ,CAC3BgU,EAAOlU,SAAQkV,IACbA,EAAQzL,UAAUsP,OAAOhR,EAAOiS,kBAAmBjS,EAAO+T,iBAAkB/T,EAAOgU,eAAgBhU,EAAOiU,gBAC1G9G,EAAQ0H,gBAAgB,SACxB1H,EAAQ0H,gBAAgB,0BAA0B,GAE5D,CACA,CACIrV,EAAOqH,KAAK,WAGZjP,OAAOI,KAAKwH,EAAOmK,iBAAiB1R,SAAQsxB,IAC1C/pB,EAAOwK,IAAIuf,EAAU,IAEvB,GAAI+B,IAAmB,MAAO,CAC5B9rB,EAAOrD,GAAGqD,OAAS,KACnB3D,EAAY2D,EAClB,CACIA,EAAOyH,UAAY,KACnB,OAAO,IACX,CACEukB,sBAAsBC,GACpB5zB,EAAOixB,GAAkB2C,EAC7B,CACa3C,8BACT,OAAOA,EACX,CACab,sBACT,OAAOA,EACX,CACEuD,qBAAqBpC,GACnB,IAAKL,GAAOnrB,UAAUurB,YAAaJ,GAAOnrB,UAAUurB,YAAc,GAClE,MAAMD,EAAUH,GAAOnrB,UAAUurB,YACjC,UAAWC,IAAQ,YAAcF,EAAQvqB,QAAQyqB,GAAO,EAAG,CACzDF,EAAQrmB,KAAKumB,EACnB,CACA,CACEoC,WAAWE,GACT,GAAI9pB,MAAMC,QAAQ6pB,GAAS,CACzBA,EAAOzzB,SAAQ0zB,GAAK5C,GAAO6C,cAAcD,KACzC,OAAO5C,EACb,CACIA,GAAO6C,cAAcF,GACrB,OAAO3C,EACX,EAEAnxB,OAAOI,KAAK6wB,IAAY5wB,SAAQ4zB,IAC9Bj0B,OAAOI,KAAK6wB,GAAWgD,IAAiB5zB,SAAQ6zB,IAC9C/C,GAAOnrB,UAAUkuB,GAAejD,GAAWgD,GAAgBC,EAAY,GACvE,IAEJ/C,GAAOgD,IAAI,CAACplB,EAAQsB,ICjlBL,SAAS+jB,IAASxsB,OAC/BA,EAAM0I,aACNA,EAAYtB,GACZA,EAAEC,KACFA,IAEA,MAAM1M,EAAWF,IACjB,MAAM2B,EAASF,IACf8D,EAAOysB,SAAW,CAChBhgB,QAAS,OAEX/D,EAAa,CACX+jB,SAAU,CACRhgB,QAAS,MACTigB,eAAgB,KAChBC,WAAY,QAGhB,SAASC,EAAOviB,GACd,IAAKrK,EAAOyM,QAAS,OACrB,MACEL,aAAcC,GACZrM,EACJ,IAAIzD,EAAI8N,EACR,GAAI9N,EAAEwhB,cAAexhB,EAAIA,EAAEwhB,cAC3B,MAAM8O,EAAKtwB,EAAEuwB,SAAWvwB,EAAEwwB,SAC1B,MAAMJ,EAAa3sB,EAAOQ,OAAOisB,SAASE,WAC1C,MAAMK,EAAWL,GAAcE,IAAO,GACtC,MAAMI,EAAaN,GAAcE,IAAO,GACxC,MAAMK,EAAcL,IAAO,GAC3B,MAAMM,EAAeN,IAAO,GAC5B,MAAMO,EAAYP,IAAO,GACzB,MAAMQ,EAAcR,IAAO,GAE3B,IAAK7sB,EAAOmZ,iBAAmBnZ,EAAOuL,gBAAkB4hB,GAAgBntB,EAAOwL,cAAgB6hB,GAAeJ,GAAa,CACzH,OAAO,KACb,CACI,IAAKjtB,EAAOoZ,iBAAmBpZ,EAAOuL,gBAAkB2hB,GAAeltB,EAAOwL,cAAgB4hB,GAAaJ,GAAW,CACpH,OAAO,KACb,CACI,GAAIzwB,EAAE+wB,UAAY/wB,EAAEgxB,QAAUhxB,EAAEixB,SAAWjxB,EAAEkxB,QAAS,CACpD,OAAOzuB,SACb,CACI,GAAIrE,EAAS3B,eAAiB2B,EAAS3B,cAAcE,WAAayB,EAAS3B,cAAcE,SAASuN,gBAAkB,SAAW9L,EAAS3B,cAAcE,SAASuN,gBAAkB,YAAa,CAC5L,OAAOzH,SACb,CACI,GAAIgB,EAAOQ,OAAOisB,SAASC,iBAAmBM,GAAYC,GAAcC,GAAeC,GAAgBC,GAAaC,GAAc,CAChI,IAAIK,EAAS,MAEb,GAAI3pB,EAAe/D,EAAOrD,GAAI,IAAIqD,EAAOQ,OAAOoM,4BAA4BjU,OAAS,GAAKoL,EAAe/D,EAAOrD,GAAI,IAAIqD,EAAOQ,OAAO+T,oBAAoB5b,SAAW,EAAG,CACtK,OAAOqG,SACf,CACM,MAAMrC,EAAKqD,EAAOrD,GAClB,MAAMgxB,EAAchxB,EAAG0O,YACvB,MAAMuiB,EAAejxB,EAAG2O,aACxB,MAAMuiB,EAAczxB,EAAOsjB,WAC3B,MAAMoO,EAAe1xB,EAAOgrB,YAC5B,MAAM2G,EAAezrB,EAAc3F,GACnC,GAAI0P,EAAK0hB,EAAa/qB,MAAQrG,EAAGkG,WACjC,MAAMmrB,EAAc,CAAC,CAACD,EAAa/qB,KAAM+qB,EAAahrB,KAAM,CAACgrB,EAAa/qB,KAAO2qB,EAAaI,EAAahrB,KAAM,CAACgrB,EAAa/qB,KAAM+qB,EAAahrB,IAAM6qB,GAAe,CAACG,EAAa/qB,KAAO2qB,EAAaI,EAAahrB,IAAM6qB,IAC5N,IAAK,IAAI9uB,EAAI,EAAGA,EAAIkvB,EAAYr1B,OAAQmG,GAAK,EAAG,CAC9C,MAAMwoB,EAAQ0G,EAAYlvB,GAC1B,GAAIwoB,EAAM,IAAM,GAAKA,EAAM,IAAMuG,GAAevG,EAAM,IAAM,GAAKA,EAAM,IAAMwG,EAAc,CACzF,GAAIxG,EAAM,KAAO,GAAKA,EAAM,KAAO,EAAG,SACtCoG,EAAS,IACnB,CACA,CACM,IAAKA,EAAQ,OAAO1uB,SAC1B,CACI,GAAIgB,EAAOuL,eAAgB,CACzB,GAAIyhB,GAAYC,GAAcC,GAAeC,EAAc,CACzD,GAAI5wB,EAAEojB,eAAgBpjB,EAAEojB,sBAAsBpjB,EAAE0xB,YAAc,KACtE,CACM,IAAKhB,GAAcE,KAAkB9gB,IAAQ2gB,GAAYE,IAAgB7gB,EAAKrM,EAAO6Z,YACrF,IAAKmT,GAAYE,KAAiB7gB,IAAQ4gB,GAAcE,IAAiB9gB,EAAKrM,EAAOoa,WAC3F,KAAW,CACL,GAAI4S,GAAYC,GAAcG,GAAaC,EAAa,CACtD,GAAI9wB,EAAEojB,eAAgBpjB,EAAEojB,sBAAsBpjB,EAAE0xB,YAAc,KACtE,CACM,GAAIhB,GAAcI,EAAartB,EAAO6Z,YACtC,GAAImT,GAAYI,EAAWptB,EAAOoa,WACxC,CACI/S,EAAK,WAAYwlB,GACjB,OAAO7tB,SACX,CACE,SAAS6nB,IACP,GAAI7mB,EAAOysB,SAAShgB,QAAS,OAC7B9R,EAAS7B,iBAAiB,UAAW8zB,GACrC5sB,EAAOysB,SAAShgB,QAAU,IAC9B,CACE,SAASma,IACP,IAAK5mB,EAAOysB,SAAShgB,QAAS,OAC9B9R,EAAS5B,oBAAoB,UAAW6zB,GACxC5sB,EAAOysB,SAAShgB,QAAU,KAC9B,CACErF,EAAG,QAAQ,KACT,GAAIpH,EAAOQ,OAAOisB,SAAShgB,QAAS,CAClCoa,GACN,KAEEzf,EAAG,WAAW,KACZ,GAAIpH,EAAOysB,SAAShgB,QAAS,CAC3Bma,GACN,KAEExuB,OAAOuT,OAAO3L,EAAOysB,SAAU,CAC7B5F,SACAD,WAEJ,CC/Ge,SAASsH,GAA0BluB,EAAQomB,EAAgB5lB,EAAQ2tB,GAChF,GAAInuB,EAAOQ,OAAOkoB,eAAgB,CAChCtwB,OAAOI,KAAK21B,GAAY11B,SAAQC,IAC9B,IAAK8H,EAAO9H,IAAQ8H,EAAO4oB,OAAS,KAAM,CACxC,IAAIvnB,EAAUD,EAAgB5B,EAAOrD,GAAI,IAAIwxB,EAAWz1B,MAAQ,GAChE,IAAKmJ,EAAS,CACZA,EAAUrI,EAAc,MAAO20B,EAAWz1B,IAC1CmJ,EAAQ2oB,UAAY2D,EAAWz1B,GAC/BsH,EAAOrD,GAAGqf,OAAOna,EAC3B,CACQrB,EAAO9H,GAAOmJ,EACdukB,EAAe1tB,GAAOmJ,CAC9B,IAEA,CACE,OAAOrB,CACT,CChBe,SAAS4tB,IAAWpuB,OACjCA,EAAM0I,aACNA,EAAYtB,GACZA,EAAEC,KACFA,IAEAqB,EAAa,CACXub,WAAY,CACVC,OAAQ,KACRC,OAAQ,KACRkK,YAAa,MACbC,cAAe,yBACfC,YAAa,uBACbC,UAAW,qBACXC,wBAAyB,gCAG7BzuB,EAAOikB,WAAa,CAClBC,OAAQ,KACRC,OAAQ,MAEV,MAAMuK,EAAoB/xB,IACxB,IAAKyF,MAAMC,QAAQ1F,GAAKA,EAAK,CAACA,GAAIuC,QAAO3C,KAAOA,IAChD,OAAOI,CAAE,EAEX,SAASgyB,EAAMhyB,GACb,IAAIkvB,EACJ,GAAIlvB,UAAaA,IAAO,UAAYqD,EAAOkS,UAAW,CACpD2Z,EAAM7rB,EAAOrD,GAAG+hB,WAAWvlB,cAAcwD,GACzC,GAAIkvB,EAAK,OAAOA,CACtB,CACI,GAAIlvB,EAAI,CACN,UAAWA,IAAO,SAAUkvB,EAAM,IAAIlxB,SAASvB,iBAAiBuD,IAChE,GAAIqD,EAAOQ,OAAOooB,0BAA4BjsB,IAAO,UAAYkvB,EAAIlzB,OAAS,GAAKqH,EAAOrD,GAAGvD,iBAAiBuD,GAAIhE,SAAW,EAAG,CAC9HkzB,EAAM7rB,EAAOrD,GAAGxD,cAAcwD,EACtC,CACA,CACI,GAAIA,IAAOkvB,EAAK,OAAOlvB,EAEvB,OAAOkvB,CACX,CACE,SAAS+C,EAASjyB,EAAIkyB,GACpB,MAAMruB,EAASR,EAAOQ,OAAOyjB,WAC7BtnB,EAAK+xB,EAAkB/xB,GACvBA,EAAGlE,SAAQq2B,IACT,GAAIA,EAAO,CACTA,EAAM5sB,UAAU2sB,EAAW,MAAQ,aAAaruB,EAAO8tB,cAAchxB,MAAM,MAC3E,GAAIwxB,EAAMC,UAAY,SAAUD,EAAMD,SAAWA,EACjD,GAAI7uB,EAAOQ,OAAOuQ,eAAiB/Q,EAAOyM,QAAS,CACjDqiB,EAAM5sB,UAAUlC,EAAOgd,SAAW,MAAQ,UAAUxc,EAAOguB,UACrE,CACA,IAEA,CACE,SAAStX,IAEP,MAAMgN,OACJA,EAAMC,OACNA,GACEnkB,EAAOikB,WACX,GAAIjkB,EAAOQ,OAAOoP,KAAM,CACtBgf,EAASzK,EAAQ,OACjByK,EAAS1K,EAAQ,OACjB,MACN,CACI0K,EAASzK,EAAQnkB,EAAOuT,cAAgBvT,EAAOQ,OAAOuV,QACtD6Y,EAAS1K,EAAQlkB,EAAOwT,QAAUxT,EAAOQ,OAAOuV,OACpD,CACE,SAASiZ,EAAYzyB,GACnBA,EAAEojB,iBACF,GAAI3f,EAAOuT,cAAgBvT,EAAOQ,OAAOoP,OAAS5P,EAAOQ,OAAOuV,OAAQ,OACxE/V,EAAOoa,YACP/S,EAAK,iBACT,CACE,SAAS4nB,EAAY1yB,GACnBA,EAAEojB,iBACF,GAAI3f,EAAOwT,QAAUxT,EAAOQ,OAAOoP,OAAS5P,EAAOQ,OAAOuV,OAAQ,OAClE/V,EAAO6Z,YACPxS,EAAK,iBACT,CACE,SAASkC,IACP,MAAM/I,EAASR,EAAOQ,OAAOyjB,WAC7BjkB,EAAOQ,OAAOyjB,WAAaiK,GAA0BluB,EAAQA,EAAOomB,eAAenC,WAAYjkB,EAAOQ,OAAOyjB,WAAY,CACvHC,OAAQ,qBACRC,OAAQ,uBAEV,KAAM3jB,EAAO0jB,QAAU1jB,EAAO2jB,QAAS,OACvC,IAAID,EAASyK,EAAMnuB,EAAO0jB,QAC1B,IAAIC,EAASwK,EAAMnuB,EAAO2jB,QAC1B/rB,OAAOuT,OAAO3L,EAAOikB,WAAY,CAC/BC,SACAC,WAEFD,EAASwK,EAAkBxK,GAC3BC,EAASuK,EAAkBvK,GAC3B,MAAM+K,EAAa,CAACvyB,EAAIkE,KACtB,GAAIlE,EAAI,CACNA,EAAG7D,iBAAiB,QAAS+H,IAAQ,OAASouB,EAAcD,EACpE,CACM,IAAKhvB,EAAOyM,SAAW9P,EAAI,CACzBA,EAAGuF,UAAUC,OAAO3B,EAAOguB,UAAUlxB,MAAM,KACnD,GAEI4mB,EAAOzrB,SAAQkE,GAAMuyB,EAAWvyB,EAAI,UACpCwnB,EAAO1rB,SAAQkE,GAAMuyB,EAAWvyB,EAAI,SACxC,CACE,SAASgN,IACP,IAAIua,OACFA,EAAMC,OACNA,GACEnkB,EAAOikB,WACXC,EAASwK,EAAkBxK,GAC3BC,EAASuK,EAAkBvK,GAC3B,MAAMgL,EAAgB,CAACxyB,EAAIkE,KACzBlE,EAAG5D,oBAAoB,QAAS8H,IAAQ,OAASouB,EAAcD,GAC/DryB,EAAGuF,UAAUsP,UAAUxR,EAAOQ,OAAOyjB,WAAWqK,cAAchxB,MAAM,KAAK,EAE3E4mB,EAAOzrB,SAAQkE,GAAMwyB,EAAcxyB,EAAI,UACvCwnB,EAAO1rB,SAAQkE,GAAMwyB,EAAcxyB,EAAI,SAC3C,CACEyK,EAAG,QAAQ,KACT,GAAIpH,EAAOQ,OAAOyjB,WAAWxX,UAAY,MAAO,CAE9Cma,GACN,KAAW,CACLrd,IACA2N,GACN,KAEE9P,EAAG,+BAA+B,KAChC8P,GAAQ,IAEV9P,EAAG,WAAW,KACZuC,GAAS,IAEXvC,EAAG,kBAAkB,KACnB,IAAI8c,OACFA,EAAMC,OACNA,GACEnkB,EAAOikB,WACXC,EAASwK,EAAkBxK,GAC3BC,EAASuK,EAAkBvK,GAC3B,IAAID,KAAWC,GAAQjlB,QAAOvC,KAAQA,IAAIlE,SAAQkE,GAAMA,EAAGuF,UAAUlC,EAAOyM,QAAU,SAAW,OAAOzM,EAAOQ,OAAOyjB,WAAWuK,YAAW,IAE9IpnB,EAAG,SAAS,CAACgoB,EAAI7yB,KACf,IAAI2nB,OACFA,EAAMC,OACNA,GACEnkB,EAAOikB,WACXC,EAASwK,EAAkBxK,GAC3BC,EAASuK,EAAkBvK,GAC3B,MAAMnG,EAAWzhB,EAAEjE,OACnB,GAAI0H,EAAOQ,OAAOyjB,WAAWoK,cAAgBlK,EAAOxd,SAASqX,KAAckG,EAAOvd,SAASqX,GAAW,CACpG,GAAIhe,EAAOqvB,YAAcrvB,EAAOQ,OAAO6uB,YAAcrvB,EAAOQ,OAAO6uB,WAAWC,YAActvB,EAAOqvB,WAAW1yB,KAAOqhB,GAAYhe,EAAOqvB,WAAW1yB,GAAG2U,SAAS0M,IAAY,OAC3K,IAAIuR,EACJ,GAAIrL,EAAOvrB,OAAQ,CACjB42B,EAAWrL,EAAO,GAAGhiB,UAAUoP,SAAStR,EAAOQ,OAAOyjB,WAAWsK,YACzE,MAAa,GAAIpK,EAAOxrB,OAAQ,CACxB42B,EAAWpL,EAAO,GAAGjiB,UAAUoP,SAAStR,EAAOQ,OAAOyjB,WAAWsK,YACzE,CACM,GAAIgB,IAAa,KAAM,CACrBloB,EAAK,iBACb,KAAa,CACLA,EAAK,iBACb,CACM,IAAI6c,KAAWC,GAAQjlB,QAAOvC,KAAQA,IAAIlE,SAAQkE,GAAMA,EAAGuF,UAAUstB,OAAOxvB,EAAOQ,OAAOyjB,WAAWsK,cAC3G,KAEE,MAAM1H,EAAS,KACb7mB,EAAOrD,GAAGuF,UAAUsP,UAAUxR,EAAOQ,OAAOyjB,WAAWwK,wBAAwBnxB,MAAM,MACrFiM,IACA2N,GAAQ,EAEV,MAAM0P,EAAU,KACd5mB,EAAOrD,GAAGuF,UAAUC,OAAOnC,EAAOQ,OAAOyjB,WAAWwK,wBAAwBnxB,MAAM,MAClFqM,GAAS,EAEXvR,OAAOuT,OAAO3L,EAAOikB,WAAY,CAC/B4C,SACAD,UACA1P,SACA3N,OACAI,WAEJ,CCzLe,SAAS8lB,GAAkBxtB,EAAU,IAClD,MAAO,IAAIA,EAAQ0pB,OAAOluB,QAAQ,eAAgB,QACjDA,QAAQ,KAAM,MACjB,CCAe,SAASiyB,IAAW1vB,OACjCA,EAAM0I,aACNA,EAAYtB,GACZA,EAAEC,KACFA,IAEA,MAAMsoB,EAAM,oBACZjnB,EAAa,CACX2mB,WAAY,CACV1yB,GAAI,KACJizB,cAAe,OACfN,UAAW,MACXjB,YAAa,MACbwB,aAAc,KACdC,kBAAmB,KACnBC,eAAgB,KAChBC,aAAc,KACdC,oBAAqB,MACrBhN,KAAM,UAENiN,eAAgB,MAChBC,mBAAoB,EACpBC,sBAAuBC,GAAUA,EACjCC,oBAAqBD,GAAUA,EAC/BE,YAAa,GAAGZ,WAChBa,kBAAmB,GAAGb,kBACtBc,cAAe,GAAGd,KAClBe,aAAc,GAAGf,YACjBgB,WAAY,GAAGhB,UACfpB,YAAa,GAAGoB,WAChBiB,qBAAsB,GAAGjB,qBACzBkB,yBAA0B,GAAGlB,yBAC7BmB,eAAgB,GAAGnB,cACnBnB,UAAW,GAAGmB,SACdoB,gBAAiB,GAAGpB,eACpBqB,cAAe,GAAGrB,aAClBsB,wBAAyB,GAAGtB,gBAGhC3vB,EAAOqvB,WAAa,CAClB1yB,GAAI,KACJu0B,QAAS,IAEX,IAAIC,EACJ,IAAIC,EAAqB,EACzB,MAAM1C,EAAoB/xB,IACxB,IAAKyF,MAAMC,QAAQ1F,GAAKA,EAAK,CAACA,GAAIuC,QAAO3C,KAAOA,IAChD,OAAOI,CAAE,EAEX,SAAS00B,IACP,OAAQrxB,EAAOQ,OAAO6uB,WAAW1yB,KAAOqD,EAAOqvB,WAAW1yB,IAAMyF,MAAMC,QAAQrC,EAAOqvB,WAAW1yB,KAAOqD,EAAOqvB,WAAW1yB,GAAGhE,SAAW,CAC3I,CACE,SAAS24B,EAAeC,EAAUC,GAChC,MAAMhB,kBACJA,GACExwB,EAAOQ,OAAO6uB,WAClB,IAAKkC,EAAU,OACfA,EAAWA,EAAS,GAAGC,IAAa,OAAS,WAAa,wBAC1D,GAAID,EAAU,CACZA,EAASrvB,UAAUC,IAAI,GAAGquB,KAAqBgB,KAC/CD,EAAWA,EAAS,GAAGC,IAAa,OAAS,WAAa,wBAC1D,GAAID,EAAU,CACZA,EAASrvB,UAAUC,IAAI,GAAGquB,KAAqBgB,KAAYA,IACnE,CACA,CACA,CACE,SAASC,EAAcl1B,GACrB,MAAMg1B,EAAWh1B,EAAEjE,OAAO2c,QAAQwa,GAAkBzvB,EAAOQ,OAAO6uB,WAAWkB,cAC7E,IAAKgB,EAAU,CACb,MACN,CACIh1B,EAAEojB,iBACF,MAAM7U,EAAQlH,EAAa2tB,GAAYvxB,EAAOQ,OAAO6O,eACrD,GAAIrP,EAAOQ,OAAOoP,KAAM,CACtB,GAAI5P,EAAOgW,YAAclL,EAAO,OAChC,MAAM4mB,EAAgB1xB,EAAO6R,oBAAoB/G,GACjD,MAAM6mB,EAAoB3xB,EAAO6R,oBAAoB7R,EAAOgW,WAC5D,GAAI0b,EAAgB1xB,EAAO2M,OAAOhU,OAASqH,EAAOkb,aAAc,CAC9Dlb,EAAOka,QAAQ,CACbxB,UAAWgZ,EAAgBC,EAAoB,OAAS,OACxDrW,iBAAkBoW,EAClB5Y,QAAS,OAEnB,CACM9Y,EAAO0Z,YAAY5O,EACzB,KAAW,CACL9K,EAAO8Y,QAAQhO,EACrB,CACA,CACE,SAASoM,IAEP,MAAM7K,EAAMrM,EAAOqM,IACnB,MAAM7L,EAASR,EAAOQ,OAAO6uB,WAC7B,GAAIgC,IAAwB,OAC5B,IAAI10B,EAAKqD,EAAOqvB,WAAW1yB,GAC3BA,EAAK+xB,EAAkB/xB,GAEvB,IAAIoE,EACJ,IAAIsV,EACJ,MAAMxJ,EAAe7M,EAAOwM,SAAWxM,EAAOQ,OAAOgM,QAAQC,QAAUzM,EAAOwM,QAAQG,OAAOhU,OAASqH,EAAO2M,OAAOhU,OACpH,MAAMi5B,EAAQ5xB,EAAOQ,OAAOoP,KAAOzO,KAAK2O,KAAKjD,EAAe7M,EAAOQ,OAAO6O,gBAAkBrP,EAAO8M,SAASnU,OAC5G,GAAIqH,EAAOQ,OAAOoP,KAAM,CACtByG,EAAgBrW,EAAOsW,mBAAqB,EAC5CvV,EAAUf,EAAOQ,OAAO6O,eAAiB,EAAIlO,KAAK+N,MAAMlP,EAAOgW,UAAYhW,EAAOQ,OAAO6O,gBAAkBrP,EAAOgW,SACxH,MAAW,UAAWhW,EAAO2Q,YAAc,YAAa,CAClD5P,EAAUf,EAAO2Q,UACjB0F,EAAgBrW,EAAOuW,iBAC7B,KAAW,CACLF,EAAgBrW,EAAOqW,eAAiB,EACxCtV,EAAUf,EAAO+R,aAAe,CACtC,CAEI,GAAIvR,EAAOyiB,OAAS,WAAajjB,EAAOqvB,WAAW6B,SAAWlxB,EAAOqvB,WAAW6B,QAAQv4B,OAAS,EAAG,CAClG,MAAMu4B,EAAUlxB,EAAOqvB,WAAW6B,QAClC,IAAIW,EACJ,IAAIlX,EACJ,IAAImX,EACJ,GAAItxB,EAAO0vB,eAAgB,CACzBiB,EAAa9sB,EAAiB6sB,EAAQ,GAAIlxB,EAAOuL,eAAiB,QAAU,SAAU,MACtF5O,EAAGlE,SAAQq2B,IACTA,EAAMn1B,MAAMqG,EAAOuL,eAAiB,QAAU,UAAY,GAAG4lB,GAAc3wB,EAAO2vB,mBAAqB,MAAM,IAE/G,GAAI3vB,EAAO2vB,mBAAqB,GAAK9Z,IAAkBrX,UAAW,CAChEoyB,GAAsBrwB,GAAWsV,GAAiB,GAClD,GAAI+a,EAAqB5wB,EAAO2vB,mBAAqB,EAAG,CACtDiB,EAAqB5wB,EAAO2vB,mBAAqB,CAC7D,MAAiB,GAAIiB,EAAqB,EAAG,CACjCA,EAAqB,CACjC,CACA,CACQS,EAAa1wB,KAAKC,IAAIL,EAAUqwB,EAAoB,GACpDzW,EAAYkX,GAAc1wB,KAAKE,IAAI6vB,EAAQv4B,OAAQ6H,EAAO2vB,oBAAsB,GAChF2B,GAAYnX,EAAYkX,GAAc,CAC9C,CACMX,EAAQz4B,SAAQ84B,IACd,MAAMQ,EAAkB,IAAI,CAAC,GAAI,QAAS,aAAc,QAAS,aAAc,SAASx0B,KAAIy0B,GAAU,GAAGxxB,EAAOgwB,oBAAoBwB,OAAWz0B,KAAI00B,UAAYA,IAAM,UAAYA,EAAEtrB,SAAS,KAAOsrB,EAAE30B,MAAM,KAAO20B,IAAGC,OACrNX,EAASrvB,UAAUsP,UAAUugB,EAAgB,IAE/C,GAAIp1B,EAAGhE,OAAS,EAAG,CACjBu4B,EAAQz4B,SAAQ05B,IACd,MAAMC,EAAcxuB,EAAauuB,GACjC,GAAIC,IAAgBrxB,EAAS,CAC3BoxB,EAAOjwB,UAAUC,OAAO3B,EAAOgwB,kBAAkBlzB,MAAM,KACnE,MAAiB,GAAI0C,EAAOkS,UAAW,CAC3BigB,EAAOv4B,aAAa,OAAQ,SACxC,CACU,GAAI4G,EAAO0vB,eAAgB,CACzB,GAAIkC,GAAeP,GAAcO,GAAezX,EAAW,CACzDwX,EAAOjwB,UAAUC,OAAO,GAAG3B,EAAOgwB,yBAAyBlzB,MAAM,KAC/E,CACY,GAAI80B,IAAgBP,EAAY,CAC9BP,EAAea,EAAQ,OACrC,CACY,GAAIC,IAAgBzX,EAAW,CAC7B2W,EAAea,EAAQ,OACrC,CACA,IAEA,KAAa,CACL,MAAMA,EAASjB,EAAQnwB,GACvB,GAAIoxB,EAAQ,CACVA,EAAOjwB,UAAUC,OAAO3B,EAAOgwB,kBAAkBlzB,MAAM,KACjE,CACQ,GAAI0C,EAAOkS,UAAW,CACpBgf,EAAQz4B,SAAQ,CAAC84B,EAAUa,KACzBb,EAAS33B,aAAa,OAAQw4B,IAAgBrxB,EAAU,gBAAkB,SAAS,GAE/F,CACQ,GAAIP,EAAO0vB,eAAgB,CACzB,MAAMmC,EAAuBnB,EAAQW,GACrC,MAAMS,EAAsBpB,EAAQvW,GACpC,IAAK,IAAI7b,EAAI+yB,EAAY/yB,GAAK6b,EAAW7b,GAAK,EAAG,CAC/C,GAAIoyB,EAAQpyB,GAAI,CACdoyB,EAAQpyB,GAAGoD,UAAUC,OAAO,GAAG3B,EAAOgwB,yBAAyBlzB,MAAM,KACnF,CACA,CACUg0B,EAAee,EAAsB,QACrCf,EAAegB,EAAqB,OAC9C,CACA,CACM,GAAI9xB,EAAO0vB,eAAgB,CACzB,MAAMqC,EAAuBpxB,KAAKE,IAAI6vB,EAAQv4B,OAAQ6H,EAAO2vB,mBAAqB,GAClF,MAAMqC,GAAiBrB,EAAaoB,EAAuBpB,GAAc,EAAIW,EAAWX,EACxF,MAAMsB,EAAapmB,EAAM,QAAU,OACnC6kB,EAAQz4B,SAAQ05B,IACdA,EAAOx4B,MAAMqG,EAAOuL,eAAiBknB,EAAa,OAAS,GAAGD,KAAiB,GAEzF,CACA,CACI71B,EAAGlE,SAAQ,CAACq2B,EAAO4D,KACjB,GAAIlyB,EAAOyiB,OAAS,WAAY,CAC9B6L,EAAM11B,iBAAiBq2B,GAAkBjvB,EAAOkwB,eAAej4B,SAAQk6B,IACrEA,EAAWC,YAAcpyB,EAAO4vB,sBAAsBrvB,EAAU,EAAE,IAEpE+tB,EAAM11B,iBAAiBq2B,GAAkBjvB,EAAOmwB,aAAal4B,SAAQo6B,IACnEA,EAAQD,YAAcpyB,EAAO8vB,oBAAoBsB,EAAM,GAEjE,CACM,GAAIpxB,EAAOyiB,OAAS,cAAe,CACjC,IAAI6P,EACJ,GAAItyB,EAAOyvB,oBAAqB,CAC9B6C,EAAuB9yB,EAAOuL,eAAiB,WAAa,YACtE,KAAe,CACLunB,EAAuB9yB,EAAOuL,eAAiB,aAAe,UACxE,CACQ,MAAMwnB,GAAShyB,EAAU,GAAK6wB,EAC9B,IAAIoB,EAAS,EACb,IAAIC,EAAS,EACb,GAAIH,IAAyB,aAAc,CACzCE,EAASD,CACnB,KAAe,CACLE,EAASF,CACnB,CACQjE,EAAM11B,iBAAiBq2B,GAAkBjvB,EAAOowB,uBAAuBn4B,SAAQy6B,IAC7EA,EAAWv5B,MAAMyD,UAAY,6BAA6B41B,aAAkBC,KAC5EC,EAAWv5B,MAAM6e,mBAAqB,GAAGxY,EAAOQ,OAAOC,SAAS,GAE1E,CACM,GAAID,EAAOyiB,OAAS,UAAYziB,EAAOwvB,aAAc,CACnDlB,EAAMqE,UAAY3yB,EAAOwvB,aAAahwB,EAAQe,EAAU,EAAG6wB,GAC3D,GAAIc,IAAe,EAAGrrB,EAAK,mBAAoBynB,EACvD,KAAa,CACL,GAAI4D,IAAe,EAAGrrB,EAAK,mBAAoBynB,GAC/CznB,EAAK,mBAAoBynB,EACjC,CACM,GAAI9uB,EAAOQ,OAAOuQ,eAAiB/Q,EAAOyM,QAAS,CACjDqiB,EAAM5sB,UAAUlC,EAAOgd,SAAW,MAAQ,UAAUxc,EAAOguB,UACnE,IAEA,CACE,SAAS4E,IAEP,MAAM5yB,EAASR,EAAOQ,OAAO6uB,WAC7B,GAAIgC,IAAwB,OAC5B,MAAMxkB,EAAe7M,EAAOwM,SAAWxM,EAAOQ,OAAOgM,QAAQC,QAAUzM,EAAOwM,QAAQG,OAAOhU,OAASqH,EAAO2M,OAAOhU,OACpH,IAAIgE,EAAKqD,EAAOqvB,WAAW1yB,GAC3BA,EAAK+xB,EAAkB/xB,GACvB,IAAI02B,EAAiB,GACrB,GAAI7yB,EAAOyiB,OAAS,UAAW,CAC7B,IAAIqQ,EAAkBtzB,EAAOQ,OAAOoP,KAAOzO,KAAK2O,KAAKjD,EAAe7M,EAAOQ,OAAO6O,gBAAkBrP,EAAO8M,SAASnU,OACpH,GAAIqH,EAAOQ,OAAOggB,UAAYxgB,EAAOQ,OAAOggB,SAAS/T,SAAW6mB,EAAkBzmB,EAAc,CAC9FymB,EAAkBzmB,CAC1B,CACM,IAAK,IAAI/N,EAAI,EAAGA,EAAIw0B,EAAiBx0B,GAAK,EAAG,CAC3C,GAAI0B,EAAOqvB,aAAc,CACvBwD,GAAkB7yB,EAAOqvB,aAAaxxB,KAAK2B,EAAQlB,EAAG0B,EAAO+vB,YACvE,KAAe,CAEL8C,GAAkB,IAAI7yB,EAAOovB,iBAAiB5vB,EAAOkS,UAAY,gBAAkB,aAAa1R,EAAO+vB,kBAAkB/vB,EAAOovB,gBAC1I,CACA,CACA,CACI,GAAIpvB,EAAOyiB,OAAS,WAAY,CAC9B,GAAIziB,EAAOuvB,eAAgB,CACzBsD,EAAiB7yB,EAAOuvB,eAAe1xB,KAAK2B,EAAQQ,EAAOkwB,aAAclwB,EAAOmwB,WACxF,KAAa,CACL0C,EAAiB,gBAAgB7yB,EAAOkwB,wBAA0B,MAAQ,gBAAgBlwB,EAAOmwB,qBACzG,CACA,CACI,GAAInwB,EAAOyiB,OAAS,cAAe,CACjC,GAAIziB,EAAOsvB,kBAAmB,CAC5BuD,EAAiB7yB,EAAOsvB,kBAAkBzxB,KAAK2B,EAAQQ,EAAOowB,qBACtE,KAAa,CACLyC,EAAiB,gBAAgB7yB,EAAOowB,+BAChD,CACA,CACI5wB,EAAOqvB,WAAW6B,QAAU,GAC5Bv0B,EAAGlE,SAAQq2B,IACT,GAAItuB,EAAOyiB,OAAS,SAAU,CAC5B6L,EAAMqE,UAAYE,GAAkB,EAC5C,CACM,GAAI7yB,EAAOyiB,OAAS,UAAW,CAC7BjjB,EAAOqvB,WAAW6B,QAAQ7tB,QAAQyrB,EAAM11B,iBAAiBq2B,GAAkBjvB,EAAO+vB,cAC1F,KAEI,GAAI/vB,EAAOyiB,OAAS,SAAU,CAC5B5b,EAAK,mBAAoB1K,EAAG,GAClC,CACA,CACE,SAAS4M,IACPvJ,EAAOQ,OAAO6uB,WAAanB,GAA0BluB,EAAQA,EAAOomB,eAAeiJ,WAAYrvB,EAAOQ,OAAO6uB,WAAY,CACvH1yB,GAAI,sBAEN,MAAM6D,EAASR,EAAOQ,OAAO6uB,WAC7B,IAAK7uB,EAAO7D,GAAI,OAChB,IAAIA,EACJ,UAAW6D,EAAO7D,KAAO,UAAYqD,EAAOkS,UAAW,CACrDvV,EAAKqD,EAAOrD,GAAG+hB,WAAWvlB,cAAcqH,EAAO7D,GACrD,CACI,IAAKA,UAAa6D,EAAO7D,KAAO,SAAU,CACxCA,EAAK,IAAIhC,SAASvB,iBAAiBoH,EAAO7D,IAChD,CACI,IAAKA,EAAI,CACPA,EAAK6D,EAAO7D,EAClB,CACI,IAAKA,GAAMA,EAAGhE,SAAW,EAAG,OAC5B,GAAIqH,EAAOQ,OAAOooB,0BAA4BpoB,EAAO7D,KAAO,UAAYyF,MAAMC,QAAQ1F,IAAOA,EAAGhE,OAAS,EAAG,CAC1GgE,EAAK,IAAIqD,EAAOrD,GAAGvD,iBAAiBoH,EAAO7D,KAE3C,GAAIA,EAAGhE,OAAS,EAAG,CACjBgE,EAAKA,EAAGuC,QAAO4vB,IACb,GAAI/qB,EAAe+qB,EAAO,WAAW,KAAO9uB,EAAOrD,GAAI,OAAO,MAC9D,OAAO,IAAI,IACV,EACX,CACA,CACI,GAAIyF,MAAMC,QAAQ1F,IAAOA,EAAGhE,SAAW,EAAGgE,EAAKA,EAAG,GAClDvE,OAAOuT,OAAO3L,EAAOqvB,WAAY,CAC/B1yB,OAEFA,EAAK+xB,EAAkB/xB,GACvBA,EAAGlE,SAAQq2B,IACT,GAAItuB,EAAOyiB,OAAS,WAAaziB,EAAO8uB,UAAW,CACjDR,EAAM5sB,UAAUC,IAAI3B,EAAOswB,eACnC,CACMhC,EAAM5sB,UAAUC,IAAI3B,EAAOiwB,cAAgBjwB,EAAOyiB,MAClD6L,EAAM5sB,UAAUC,IAAInC,EAAOuL,eAAiB/K,EAAOuwB,gBAAkBvwB,EAAOwwB,eAC5E,GAAIxwB,EAAOyiB,OAAS,WAAaziB,EAAO0vB,eAAgB,CACtDpB,EAAM5sB,UAAUC,IAAI,GAAG3B,EAAOiwB,gBAAgBjwB,EAAOyiB,gBACrDmO,EAAqB,EACrB,GAAI5wB,EAAO2vB,mBAAqB,EAAG,CACjC3vB,EAAO2vB,mBAAqB,CACtC,CACA,CACM,GAAI3vB,EAAOyiB,OAAS,eAAiBziB,EAAOyvB,oBAAqB,CAC/DnB,EAAM5sB,UAAUC,IAAI3B,EAAOqwB,yBACnC,CACM,GAAIrwB,EAAO8uB,UAAW,CACpBR,EAAMh2B,iBAAiB,QAAS24B,EACxC,CACM,IAAKzxB,EAAOyM,QAAS,CACnBqiB,EAAM5sB,UAAUC,IAAI3B,EAAOguB,UACnC,IAEA,CACE,SAAS7kB,IACP,MAAMnJ,EAASR,EAAOQ,OAAO6uB,WAC7B,GAAIgC,IAAwB,OAC5B,IAAI10B,EAAKqD,EAAOqvB,WAAW1yB,GAC3B,GAAIA,EAAI,CACNA,EAAK+xB,EAAkB/xB,GACvBA,EAAGlE,SAAQq2B,IACTA,EAAM5sB,UAAUsP,OAAOhR,EAAO+tB,aAC9BO,EAAM5sB,UAAUsP,OAAOhR,EAAOiwB,cAAgBjwB,EAAOyiB,MACrD6L,EAAM5sB,UAAUsP,OAAOxR,EAAOuL,eAAiB/K,EAAOuwB,gBAAkBvwB,EAAOwwB,eAC/E,GAAIxwB,EAAO8uB,UAAW,CACpBR,EAAM/1B,oBAAoB,QAAS04B,EAC7C,IAEA,CACI,GAAIzxB,EAAOqvB,WAAW6B,QAASlxB,EAAOqvB,WAAW6B,QAAQz4B,SAAQq2B,GAASA,EAAM5sB,UAAUsP,UAAUhR,EAAOgwB,kBAAkBlzB,MAAM,OACvI,CACE8J,EAAG,mBAAmB,KACpB,IAAKpH,EAAOqvB,aAAervB,EAAOqvB,WAAW1yB,GAAI,OACjD,MAAM6D,EAASR,EAAOQ,OAAO6uB,WAC7B,IAAI1yB,GACFA,GACEqD,EAAOqvB,WACX1yB,EAAK+xB,EAAkB/xB,GACvBA,EAAGlE,SAAQq2B,IACTA,EAAM5sB,UAAUsP,OAAOhR,EAAOuwB,gBAAiBvwB,EAAOwwB,eACtDlC,EAAM5sB,UAAUC,IAAInC,EAAOuL,eAAiB/K,EAAOuwB,gBAAkBvwB,EAAOwwB,cAAc,GAC1F,IAEJ5pB,EAAG,QAAQ,KACT,GAAIpH,EAAOQ,OAAO6uB,WAAW5iB,UAAY,MAAO,CAE9Cma,GACN,KAAW,CACLrd,IACA6pB,IACAlc,GACN,KAEE9P,EAAG,qBAAqB,KACtB,UAAWpH,EAAO2Q,YAAc,YAAa,CAC3CuG,GACN,KAEE9P,EAAG,mBAAmB,KACpB8P,GAAQ,IAEV9P,EAAG,wBAAwB,KACzBgsB,IACAlc,GAAQ,IAEV9P,EAAG,WAAW,KACZuC,GAAS,IAEXvC,EAAG,kBAAkB,KACnB,IAAIzK,GACFA,GACEqD,EAAOqvB,WACX,GAAI1yB,EAAI,CACNA,EAAK+xB,EAAkB/xB,GACvBA,EAAGlE,SAAQq2B,GAASA,EAAM5sB,UAAUlC,EAAOyM,QAAU,SAAW,OAAOzM,EAAOQ,OAAO6uB,WAAWb,YACtG,KAEEpnB,EAAG,eAAe,KAChB8P,GAAQ,IAEV9P,EAAG,SAAS,CAACgoB,EAAI7yB,KACf,MAAMyhB,EAAWzhB,EAAEjE,OACnB,IAAIqE,GACFA,GACEqD,EAAOqvB,WACX,IAAKjtB,MAAMC,QAAQ1F,GAAKA,EAAK,CAACA,GAAIuC,QAAO2C,KAAaA,IACtD,GAAI7B,EAAOQ,OAAO6uB,WAAW1yB,IAAMqD,EAAOQ,OAAO6uB,WAAWhB,aAAe1xB,GAAMA,EAAGhE,OAAS,IAAMqlB,EAAS9b,UAAUoP,SAAStR,EAAOQ,OAAO6uB,WAAWkB,aAAc,CACpK,GAAIvwB,EAAOikB,aAAejkB,EAAOikB,WAAWC,QAAUlG,IAAahe,EAAOikB,WAAWC,QAAUlkB,EAAOikB,WAAWE,QAAUnG,IAAahe,EAAOikB,WAAWE,QAAS,OACnK,MAAMoL,EAAW5yB,EAAG,GAAGuF,UAAUoP,SAAStR,EAAOQ,OAAO6uB,WAAWd,aACnE,GAAIgB,IAAa,KAAM,CACrBloB,EAAK,iBACb,KAAa,CACLA,EAAK,iBACb,CACM1K,EAAGlE,SAAQq2B,GAASA,EAAM5sB,UAAUstB,OAAOxvB,EAAOQ,OAAO6uB,WAAWd,cAC1E,KAEE,MAAM1H,EAAS,KACb7mB,EAAOrD,GAAGuF,UAAUsP,OAAOxR,EAAOQ,OAAO6uB,WAAW4B,yBACpD,IAAIt0B,GACFA,GACEqD,EAAOqvB,WACX,GAAI1yB,EAAI,CACNA,EAAK+xB,EAAkB/xB,GACvBA,EAAGlE,SAAQq2B,GAASA,EAAM5sB,UAAUsP,OAAOxR,EAAOQ,OAAO6uB,WAAW4B,0BAC1E,CACI1nB,IACA6pB,IACAlc,GAAQ,EAEV,MAAM0P,EAAU,KACd5mB,EAAOrD,GAAGuF,UAAUC,IAAInC,EAAOQ,OAAO6uB,WAAW4B,yBACjD,IAAIt0B,GACFA,GACEqD,EAAOqvB,WACX,GAAI1yB,EAAI,CACNA,EAAK+xB,EAAkB/xB,GACvBA,EAAGlE,SAAQq2B,GAASA,EAAM5sB,UAAUC,IAAInC,EAAOQ,OAAO6uB,WAAW4B,0BACvE,CACItnB,GAAS,EAEXvR,OAAOuT,OAAO3L,EAAOqvB,WAAY,CAC/BxI,SACAD,UACAwM,SACAlc,SACA3N,OACAI,WAEJ,Q"}