mongoku 2.6.0 → 2.7.0-compat

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 (453) hide show
  1. package/Dockerfile +1 -0
  2. package/README.md +25 -0
  3. package/build/client/_app/immutable/assets/0.CdYhspVa.css +1 -0
  4. package/build/client/_app/immutable/assets/0.CdYhspVa.css.br +0 -0
  5. package/build/client/_app/immutable/assets/0.CdYhspVa.css.gz +0 -0
  6. package/build/client/_app/immutable/chunks/{DdLT9cdj.js → B59nRjE7.js} +1 -1
  7. package/build/client/_app/immutable/chunks/B59nRjE7.js.br +2 -0
  8. package/build/client/_app/immutable/chunks/B59nRjE7.js.gz +0 -0
  9. package/build/client/_app/immutable/chunks/BBqIHhSl.js +1 -0
  10. package/build/client/_app/immutable/chunks/BBqIHhSl.js.br +0 -0
  11. package/build/client/_app/immutable/chunks/BBqIHhSl.js.gz +0 -0
  12. package/build/client/_app/immutable/chunks/{BEi7QatZ.js → BIUJX0Ps.js} +6 -6
  13. package/build/client/_app/immutable/chunks/BIUJX0Ps.js.br +0 -0
  14. package/build/client/_app/immutable/chunks/BIUJX0Ps.js.gz +0 -0
  15. package/build/client/_app/immutable/chunks/C6nv_pni.js +1 -0
  16. package/build/client/_app/immutable/chunks/C6nv_pni.js.br +0 -0
  17. package/build/client/_app/immutable/chunks/C6nv_pni.js.gz +0 -0
  18. package/build/client/_app/immutable/chunks/{Bh2n5Bfy.js → CETiZ6GF.js} +1 -1
  19. package/build/client/_app/immutable/chunks/CETiZ6GF.js.br +0 -0
  20. package/build/client/_app/immutable/chunks/CETiZ6GF.js.gz +0 -0
  21. package/build/client/_app/immutable/chunks/CX0xC2bt.js +1 -0
  22. package/build/client/_app/immutable/chunks/CX0xC2bt.js.br +0 -0
  23. package/build/client/_app/immutable/chunks/CX0xC2bt.js.gz +0 -0
  24. package/build/client/_app/immutable/chunks/CeXlKXQN.js +1 -0
  25. package/build/client/_app/immutable/chunks/CeXlKXQN.js.br +0 -0
  26. package/build/client/_app/immutable/chunks/CeXlKXQN.js.gz +0 -0
  27. package/build/client/_app/immutable/chunks/ChTiw7nk.js +4 -0
  28. package/build/client/_app/immutable/chunks/ChTiw7nk.js.br +0 -0
  29. package/build/client/_app/immutable/chunks/ChTiw7nk.js.gz +0 -0
  30. package/build/client/_app/immutable/chunks/Czyt1_Wc.js +1 -0
  31. package/build/client/_app/immutable/chunks/Czyt1_Wc.js.br +0 -0
  32. package/build/client/_app/immutable/chunks/Czyt1_Wc.js.gz +0 -0
  33. package/build/client/_app/immutable/chunks/{B5NTIIm5.js → DJHYr09v.js} +1 -1
  34. package/build/client/_app/immutable/chunks/DJHYr09v.js.br +0 -0
  35. package/build/client/_app/immutable/chunks/DJHYr09v.js.gz +0 -0
  36. package/build/client/_app/immutable/chunks/{C2amz0TU.js → DZxZehvI.js} +1 -1
  37. package/build/client/_app/immutable/chunks/DZxZehvI.js.br +0 -0
  38. package/build/client/_app/immutable/chunks/DZxZehvI.js.gz +0 -0
  39. package/build/client/_app/immutable/chunks/DaNl6Y92.js +2 -0
  40. package/build/client/_app/immutable/chunks/DaNl6Y92.js.br +0 -0
  41. package/build/client/_app/immutable/chunks/DaNl6Y92.js.gz +0 -0
  42. package/build/client/_app/immutable/chunks/Dbu5gl04.js +1 -0
  43. package/build/client/_app/immutable/chunks/Dbu5gl04.js.br +0 -0
  44. package/build/client/_app/immutable/chunks/Dbu5gl04.js.gz +0 -0
  45. package/build/client/_app/immutable/chunks/DczwA5Ds.js +1 -0
  46. package/build/client/_app/immutable/chunks/DczwA5Ds.js.br +0 -0
  47. package/build/client/_app/immutable/chunks/DczwA5Ds.js.gz +0 -0
  48. package/build/client/_app/immutable/chunks/DjlV9yev.js +1 -0
  49. package/build/client/_app/immutable/chunks/DjlV9yev.js.br +0 -0
  50. package/build/client/_app/immutable/chunks/DjlV9yev.js.gz +0 -0
  51. package/build/client/_app/immutable/chunks/DkIdyQoH.js +1 -0
  52. package/build/client/_app/immutable/chunks/DkIdyQoH.js.br +0 -0
  53. package/build/client/_app/immutable/chunks/DkIdyQoH.js.gz +0 -0
  54. package/build/client/_app/immutable/chunks/DskkUG-R.js +41 -0
  55. package/build/client/_app/immutable/chunks/DskkUG-R.js.br +0 -0
  56. package/build/client/_app/immutable/chunks/DskkUG-R.js.gz +0 -0
  57. package/build/client/_app/immutable/chunks/DtqR9xj2.js +16 -0
  58. package/build/client/_app/immutable/chunks/DtqR9xj2.js.br +0 -0
  59. package/build/client/_app/immutable/chunks/DtqR9xj2.js.gz +0 -0
  60. package/build/client/_app/immutable/chunks/{c-rWvg5T.js → Dv9wDVNU.js} +1 -1
  61. package/build/client/_app/immutable/chunks/Dv9wDVNU.js.br +0 -0
  62. package/build/client/_app/immutable/chunks/Dv9wDVNU.js.gz +0 -0
  63. package/build/client/_app/immutable/chunks/{Bl8s7Z6r.js → DwvJoC1a.js} +1 -1
  64. package/build/client/_app/immutable/chunks/DwvJoC1a.js.br +0 -0
  65. package/build/client/_app/immutable/chunks/DwvJoC1a.js.gz +0 -0
  66. package/build/client/_app/immutable/chunks/ULh2o3ji.js +1 -0
  67. package/build/client/_app/immutable/chunks/ULh2o3ji.js.br +0 -0
  68. package/build/client/_app/immutable/chunks/ULh2o3ji.js.gz +0 -0
  69. package/build/client/_app/immutable/chunks/V1mdyEl2.js +1 -0
  70. package/build/client/_app/immutable/chunks/V1mdyEl2.js.br +0 -0
  71. package/build/client/_app/immutable/chunks/V1mdyEl2.js.gz +0 -0
  72. package/build/client/_app/immutable/chunks/{DUw-I2kh.js → gjWX2x82.js} +1 -1
  73. package/build/client/_app/immutable/chunks/gjWX2x82.js.br +0 -0
  74. package/build/client/_app/immutable/chunks/gjWX2x82.js.gz +0 -0
  75. package/build/client/_app/immutable/chunks/{CxcplU4Q.js → y5L2Na-S.js} +1 -1
  76. package/build/client/_app/immutable/chunks/y5L2Na-S.js.br +0 -0
  77. package/build/client/_app/immutable/chunks/y5L2Na-S.js.gz +0 -0
  78. package/build/client/_app/immutable/entry/app.DSC3O-oq.js +2 -0
  79. package/build/client/_app/immutable/entry/app.DSC3O-oq.js.br +0 -0
  80. package/build/client/_app/immutable/entry/app.DSC3O-oq.js.gz +0 -0
  81. package/build/client/_app/immutable/entry/start.DXWFdQeQ.js +1 -0
  82. package/build/client/_app/immutable/entry/start.DXWFdQeQ.js.br +0 -0
  83. package/build/client/_app/immutable/entry/start.DXWFdQeQ.js.gz +0 -0
  84. package/build/client/_app/immutable/nodes/0.CMAlzqMw.js +1 -0
  85. package/build/client/_app/immutable/nodes/0.CMAlzqMw.js.br +0 -0
  86. package/build/client/_app/immutable/nodes/0.CMAlzqMw.js.gz +0 -0
  87. package/build/client/_app/immutable/nodes/1.B6Npt7WS.js +1 -0
  88. package/build/client/_app/immutable/nodes/1.B6Npt7WS.js.br +4 -0
  89. package/build/client/_app/immutable/nodes/1.B6Npt7WS.js.gz +0 -0
  90. package/build/client/_app/immutable/nodes/10.UKtNnnWx.js +2 -0
  91. package/build/client/_app/immutable/nodes/10.UKtNnnWx.js.br +0 -0
  92. package/build/client/_app/immutable/nodes/10.UKtNnnWx.js.gz +0 -0
  93. package/build/client/_app/immutable/nodes/11.DZQrIhD6.js +6 -0
  94. package/build/client/_app/immutable/nodes/11.DZQrIhD6.js.br +0 -0
  95. package/build/client/_app/immutable/nodes/11.DZQrIhD6.js.gz +0 -0
  96. package/build/client/_app/immutable/nodes/12.Bb2XzJJ4.js +1 -0
  97. package/build/client/_app/immutable/nodes/12.Bb2XzJJ4.js.br +0 -0
  98. package/build/client/_app/immutable/nodes/12.Bb2XzJJ4.js.gz +0 -0
  99. package/build/client/_app/immutable/nodes/13.B_EllgAJ.js +1 -0
  100. package/build/client/_app/immutable/nodes/13.B_EllgAJ.js.br +0 -0
  101. package/build/client/_app/immutable/nodes/13.B_EllgAJ.js.gz +0 -0
  102. package/build/client/_app/immutable/nodes/14.Ds1Cbw86.js +65 -0
  103. package/build/client/_app/immutable/nodes/14.Ds1Cbw86.js.br +0 -0
  104. package/build/client/_app/immutable/nodes/14.Ds1Cbw86.js.gz +0 -0
  105. package/build/client/_app/immutable/nodes/{2.AM8fesja.js → 2.C6NzDBVE.js} +1 -1
  106. package/build/client/_app/immutable/nodes/2.C6NzDBVE.js.br +2 -0
  107. package/build/client/_app/immutable/nodes/2.C6NzDBVE.js.gz +0 -0
  108. package/build/client/_app/immutable/nodes/{3.BShuoOz5.js → 3.CZJqJ4La.js} +1 -1
  109. package/build/client/_app/immutable/nodes/3.CZJqJ4La.js.br +0 -0
  110. package/build/client/_app/immutable/nodes/3.CZJqJ4La.js.gz +0 -0
  111. package/build/client/_app/immutable/nodes/{4.BD6QbApY.js → 4.CNe3XPNo.js} +1 -1
  112. package/build/client/_app/immutable/nodes/4.CNe3XPNo.js.br +0 -0
  113. package/build/client/_app/immutable/nodes/4.CNe3XPNo.js.gz +0 -0
  114. package/build/client/_app/immutable/nodes/{5.JM_dwz0R.js → 5.BWhhv567.js} +1 -1
  115. package/build/client/_app/immutable/nodes/5.BWhhv567.js.br +0 -0
  116. package/build/client/_app/immutable/nodes/5.BWhhv567.js.gz +0 -0
  117. package/build/client/_app/immutable/nodes/7.DrDdJlUZ.js +1 -0
  118. package/build/client/_app/immutable/nodes/7.DrDdJlUZ.js.br +0 -0
  119. package/build/client/_app/immutable/nodes/7.DrDdJlUZ.js.gz +0 -0
  120. package/build/client/_app/immutable/nodes/8.DY5fyf2p.js +2 -0
  121. package/build/client/_app/immutable/nodes/8.DY5fyf2p.js.br +0 -0
  122. package/build/client/_app/immutable/nodes/8.DY5fyf2p.js.gz +0 -0
  123. package/build/client/_app/immutable/nodes/9.DSZg3ucy.js +1 -0
  124. package/build/client/_app/immutable/nodes/9.DSZg3ucy.js.br +0 -0
  125. package/build/client/_app/immutable/nodes/9.DSZg3ucy.js.gz +0 -0
  126. package/build/client/_app/version.json +1 -1
  127. package/build/client/_app/version.json.br +0 -0
  128. package/build/client/_app/version.json.gz +0 -0
  129. package/build/client/robots.txt.br +0 -0
  130. package/build/client/robots.txt.gz +0 -0
  131. package/build/handler.js +290 -228
  132. package/build/server/chunks/0-94hvO2vX.js +31 -0
  133. package/build/server/chunks/0-94hvO2vX.js.map +1 -0
  134. package/build/server/chunks/1-DU2n-wa5.js +9 -0
  135. package/build/server/chunks/1-DU2n-wa5.js.map +1 -0
  136. package/build/server/chunks/{9-DrDIAOIh.js → 10-CA3VfgE7.js} +7 -6
  137. package/build/server/chunks/10-CA3VfgE7.js.map +1 -0
  138. package/build/server/chunks/{10-WRjYTwFT.js → 11-xh-tBR25.js} +8 -7
  139. package/build/server/chunks/11-xh-tBR25.js.map +1 -0
  140. package/build/server/chunks/{11-Cq79IAWK.js → 12-CHoThn5d.js} +8 -7
  141. package/build/server/chunks/12-CHoThn5d.js.map +1 -0
  142. package/build/server/chunks/{12-DnRkeAVv.js → 13-s3o-iKja.js} +8 -7
  143. package/build/server/chunks/13-s3o-iKja.js.map +1 -0
  144. package/build/server/chunks/{13-DKqDuEdB.js → 14-Ch_I9f3x.js} +7 -6
  145. package/build/server/chunks/14-Ch_I9f3x.js.map +1 -0
  146. package/build/server/chunks/{2-DaZMexAs.js → 2-BNTmkYSf.js} +2 -2
  147. package/build/server/chunks/{2-DaZMexAs.js.map → 2-BNTmkYSf.js.map} +1 -1
  148. package/build/server/chunks/{3-Dr4vFhF1.js → 3-ClKd4dXQ.js} +2 -2
  149. package/build/server/chunks/{3-Dr4vFhF1.js.map → 3-ClKd4dXQ.js.map} +1 -1
  150. package/build/server/chunks/{4-K2WnEwm7.js → 4-BSPVNKkN.js} +2 -2
  151. package/build/server/chunks/{4-K2WnEwm7.js.map → 4-BSPVNKkN.js.map} +1 -1
  152. package/build/server/chunks/{5-Be-Du8oZ.js → 5-BzxZlQk0.js} +2 -2
  153. package/build/server/chunks/{5-Be-Du8oZ.js.map → 5-BzxZlQk0.js.map} +1 -1
  154. package/build/server/chunks/{6-DsYzHmsZ.js → 6-Bw8JUxiD.js} +3 -2
  155. package/build/server/chunks/6-Bw8JUxiD.js.map +1 -0
  156. package/build/server/chunks/7-B_ur3ckj.js +9 -0
  157. package/build/server/chunks/7-B_ur3ckj.js.map +1 -0
  158. package/build/server/chunks/{7-eAzN1saI.js → 8-BEcdRamT.js} +8 -7
  159. package/build/server/chunks/8-BEcdRamT.js.map +1 -0
  160. package/build/server/chunks/{8-Dtaxi2J_.js → 9-CeMYWy9o.js} +7 -6
  161. package/build/server/chunks/9-CeMYWy9o.js.map +1 -0
  162. package/build/server/chunks/JsonValue-CTg4aH_w.js +320 -0
  163. package/build/server/chunks/JsonValue-CTg4aH_w.js.map +1 -0
  164. package/build/server/chunks/{Modal-fWUUqg69.js → Modal-yO0qzufQ.js} +2 -3
  165. package/build/server/chunks/Modal-yO0qzufQ.js.map +1 -0
  166. package/build/server/chunks/{Panel-BXokpC3w.js → Panel-D9GzVDDt.js} +7 -12
  167. package/build/server/chunks/Panel-D9GzVDDt.js.map +1 -0
  168. package/build/server/chunks/{PrettyJson-CV4qF02W.js → PrettyJson-CzzntSVh.js} +15 -10
  169. package/build/server/chunks/PrettyJson-CzzntSVh.js.map +1 -0
  170. package/build/server/chunks/{Tooltip-1tZ4BUxU.js → Tooltip-D2BX7dwq.js} +2 -2
  171. package/build/server/chunks/Tooltip-D2BX7dwq.js.map +1 -0
  172. package/build/server/chunks/{TooltipTable-B2QGp4YW.js → TooltipTable-91W9LxGR.js} +3 -4
  173. package/build/server/chunks/TooltipTable-91W9LxGR.js.map +1 -0
  174. package/build/server/chunks/{_layout.svelte-DAGMbkJX.js → _layout.svelte-BFxKanne.js} +28 -24
  175. package/build/server/chunks/_layout.svelte-BFxKanne.js.map +1 -0
  176. package/build/server/chunks/{_page.svelte-DgQxD9T8.js → _page.svelte-CQzzieEo.js} +16 -18
  177. package/build/server/chunks/_page.svelte-CQzzieEo.js.map +1 -0
  178. package/build/server/chunks/_page.svelte-CSuE9bVi.js +14 -0
  179. package/build/server/chunks/_page.svelte-CSuE9bVi.js.map +1 -0
  180. package/build/server/chunks/{_page.svelte-DfZ2COw_.js → _page.svelte-CnboYQ1K.js} +11 -73
  181. package/build/server/chunks/_page.svelte-CnboYQ1K.js.map +1 -0
  182. package/build/server/chunks/{_page.svelte-ClakOyno.js → _page.svelte-D41VQj4U.js} +17 -19
  183. package/build/server/chunks/_page.svelte-D41VQj4U.js.map +1 -0
  184. package/build/server/chunks/{_page.svelte-CB9ZXhBt.js → _page.svelte-Dg71nX8A.js} +117 -97
  185. package/build/server/chunks/_page.svelte-Dg71nX8A.js.map +1 -0
  186. package/build/server/chunks/{_page.svelte-BUqI0nM9.js → _page.svelte-DxlZXLVf.js} +17 -19
  187. package/build/server/chunks/_page.svelte-DxlZXLVf.js.map +1 -0
  188. package/build/server/chunks/{_page.svelte-Ccc0KJ66.js → _page.svelte-SZxwc25D.js} +45 -39
  189. package/build/server/chunks/_page.svelte-SZxwc25D.js.map +1 -0
  190. package/build/server/chunks/{_page.svelte-wmgrrvR7.js → _page.svelte-THKAhY4k.js} +48 -51
  191. package/build/server/chunks/_page.svelte-THKAhY4k.js.map +1 -0
  192. package/build/server/chunks/_server.ts-B3lXxheE.js +15 -0
  193. package/build/server/chunks/_server.ts-B3lXxheE.js.map +1 -0
  194. package/build/server/chunks/_server.ts-Bs5HC7Wf.js +46 -0
  195. package/build/server/chunks/_server.ts-Bs5HC7Wf.js.map +1 -0
  196. package/build/server/chunks/_server.ts-DRL9sDg4.js +34 -0
  197. package/build/server/chunks/_server.ts-DRL9sDg4.js.map +1 -0
  198. package/build/server/chunks/_server.ts-DqL5edUL.js +24 -0
  199. package/build/server/chunks/_server.ts-DqL5edUL.js.map +1 -0
  200. package/build/server/chunks/client-C7bEwskR.js +7 -0
  201. package/build/server/chunks/{client-BCfAqu0g.js.map → client-C7bEwskR.js.map} +1 -1
  202. package/build/server/chunks/{client2-B-hc4vU8.js → client2-DcCKOWWC.js} +6 -6
  203. package/build/server/chunks/client2-DcCKOWWC.js.map +1 -0
  204. package/build/server/chunks/error.svelte-Bk-0XnBt.js +18 -0
  205. package/build/server/chunks/error.svelte-Bk-0XnBt.js.map +1 -0
  206. package/build/server/chunks/exports-B5ORJhfK.js +65 -0
  207. package/build/server/chunks/exports-B5ORJhfK.js.map +1 -0
  208. package/build/server/chunks/{filters-CbFjTNFI.js → filters-B3U8Nh9P.js} +16 -6
  209. package/build/server/chunks/filters-B3U8Nh9P.js.map +1 -0
  210. package/build/server/chunks/hooks.server-Cq7ufuFU.js +79 -0
  211. package/build/server/chunks/hooks.server-Cq7ufuFU.js.map +1 -0
  212. package/build/server/chunks/{index2-CJE0QJlP.js → index-CC9WtE-y.js} +3 -13
  213. package/build/server/chunks/index-CC9WtE-y.js.map +1 -0
  214. package/build/server/chunks/index-wpIsICWW.js.map +1 -1
  215. package/build/server/chunks/{index3-CQyDuV4f.js → index2-DMabdSHV.js} +3 -3
  216. package/build/server/chunks/index2-DMabdSHV.js.map +1 -0
  217. package/build/server/chunks/{logger-KF6KpVP6.js → logger-PfH_grbh.js} +4 -3
  218. package/build/server/chunks/logger-PfH_grbh.js.map +1 -0
  219. package/build/server/chunks/{mongo-CpQtfvt6.js → mongo-B92d7zNj.js} +25 -24
  220. package/build/server/chunks/mongo-B92d7zNj.js.map +1 -0
  221. package/build/server/chunks/oauth-BfIECOev.js +178 -0
  222. package/build/server/chunks/oauth-BfIECOev.js.map +1 -0
  223. package/build/server/chunks/remote-xxtqbu-D0yn6nhQ.js +22 -0
  224. package/build/server/chunks/remote-xxtqbu-D0yn6nhQ.js.map +1 -0
  225. package/build/server/chunks/{routing-BdGCua8Q.js → routing-CYknP78v.js} +23 -4
  226. package/build/server/chunks/routing-CYknP78v.js.map +1 -0
  227. package/build/server/chunks/{server2-CkPmd3Rb.js → server2-uigtM6st.js} +3 -3
  228. package/build/server/chunks/server2-uigtM6st.js.map +1 -0
  229. package/build/server/chunks/{servers.remote-OwAA4KJJ.js → servers.remote-BhpVo4Zs.js} +67 -42
  230. package/build/server/chunks/servers.remote-BhpVo4Zs.js.map +1 -0
  231. package/build/server/chunks/shared-BqTYMAzZ.js +1027 -0
  232. package/build/server/chunks/shared-BqTYMAzZ.js.map +1 -0
  233. package/build/server/chunks/shared-server-BmU87nph.js +11 -0
  234. package/build/server/chunks/shared-server-BmU87nph.js.map +1 -0
  235. package/build/server/chunks/{state.svelte-BfzDwKMC.js → state.svelte-Dzb7Lf2r.js} +2 -3
  236. package/build/server/chunks/state.svelte-Dzb7Lf2r.js.map +1 -0
  237. package/build/server/chunks/url-hmE1zcJ6.js +4721 -0
  238. package/build/server/chunks/url-hmE1zcJ6.js.map +1 -0
  239. package/build/server/chunks/{utils-kjxf7BZO.js → utils2-kjxf7BZO.js} +1 -1
  240. package/build/server/chunks/utils2-kjxf7BZO.js.map +1 -0
  241. package/build/server/index.js +381 -3466
  242. package/build/server/index.js.map +1 -1
  243. package/build/server/manifest.js +52 -23
  244. package/build/server/manifest.js.map +1 -1
  245. package/cli.ts +4 -0
  246. package/dist/cli.js +3 -0
  247. package/ecosystem.config.js +3 -0
  248. package/package.json +2 -2
  249. package/src/api/servers.remote.ts +20 -8
  250. package/src/app.d.ts +5 -0
  251. package/src/hooks.server.ts +38 -17
  252. package/src/lib/actions/jsonTextarea.ts +24 -8
  253. package/src/lib/actions/portal.ts +12 -5
  254. package/src/lib/components/ExplainPanel.svelte +42 -14
  255. package/src/lib/components/JsonValue.svelte +12 -4
  256. package/src/lib/components/PrettyJson.svelte +12 -4
  257. package/src/lib/components/ReplicaSetSelector.svelte +3 -1
  258. package/src/lib/components/SearchBox.svelte +12 -4
  259. package/src/lib/components/Tooltip.svelte +1 -1
  260. package/src/lib/server/HostsManager.ts +8 -17
  261. package/src/lib/server/logger.ts +4 -4
  262. package/src/lib/server/mongo.ts +17 -12
  263. package/src/lib/server/oauth.ts +276 -0
  264. package/src/lib/utils/filters.ts +15 -5
  265. package/src/lib/utils/formatSignificantDigits.ts +3 -1
  266. package/src/lib/utils/formatTimeAgo.ts +3 -1
  267. package/src/lib/utils/hostnames.ts +15 -5
  268. package/src/lib/utils/jsonParser.ts +21 -7
  269. package/src/lib/utils/longestCommonSuffix.ts +3 -1
  270. package/src/routes/+layout.server.ts +5 -1
  271. package/src/routes/+layout.svelte +16 -1
  272. package/src/routes/.well-known/cimd.json/+server.ts +34 -0
  273. package/src/routes/auth/callback/+server.ts +57 -0
  274. package/src/routes/auth/login/+server.ts +29 -0
  275. package/src/routes/auth/logout/+page.svelte +9 -0
  276. package/src/routes/auth/logout/+server.ts +9 -0
  277. package/src/routes/servers/+page.svelte +9 -4
  278. package/src/routes/servers/[server]/databases/+page.svelte +3 -1
  279. package/src/routes/servers/[server]/databases/[database]/collections/+page.svelte +3 -1
  280. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/documents/+page.svelte +3 -1
  281. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/documents/[document]/+page.svelte +9 -6
  282. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/indexes/+page.svelte +18 -6
  283. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/mappings/+page.svelte +3 -1
  284. package/build/client/_app/immutable/assets/0.Bg-3Xsxo.css +0 -1
  285. package/build/client/_app/immutable/assets/0.Bg-3Xsxo.css.br +0 -0
  286. package/build/client/_app/immutable/assets/0.Bg-3Xsxo.css.gz +0 -0
  287. package/build/client/_app/immutable/chunks/2G5jukcB.js +0 -1
  288. package/build/client/_app/immutable/chunks/2G5jukcB.js.br +0 -0
  289. package/build/client/_app/immutable/chunks/2G5jukcB.js.gz +0 -0
  290. package/build/client/_app/immutable/chunks/B5NTIIm5.js.br +0 -0
  291. package/build/client/_app/immutable/chunks/B5NTIIm5.js.gz +0 -0
  292. package/build/client/_app/immutable/chunks/BEi7QatZ.js.br +0 -0
  293. package/build/client/_app/immutable/chunks/BEi7QatZ.js.gz +0 -0
  294. package/build/client/_app/immutable/chunks/BOZBLPYr.js +0 -1
  295. package/build/client/_app/immutable/chunks/BOZBLPYr.js.br +0 -0
  296. package/build/client/_app/immutable/chunks/BOZBLPYr.js.gz +0 -0
  297. package/build/client/_app/immutable/chunks/BUr91kOw.js +0 -1
  298. package/build/client/_app/immutable/chunks/BUr91kOw.js.br +0 -0
  299. package/build/client/_app/immutable/chunks/BUr91kOw.js.gz +0 -0
  300. package/build/client/_app/immutable/chunks/BYPjaq07.js +0 -1
  301. package/build/client/_app/immutable/chunks/BYPjaq07.js.br +0 -0
  302. package/build/client/_app/immutable/chunks/BYPjaq07.js.gz +0 -0
  303. package/build/client/_app/immutable/chunks/BZagxdqB.js +0 -16
  304. package/build/client/_app/immutable/chunks/BZagxdqB.js.br +0 -0
  305. package/build/client/_app/immutable/chunks/BZagxdqB.js.gz +0 -0
  306. package/build/client/_app/immutable/chunks/Bh2n5Bfy.js.br +0 -0
  307. package/build/client/_app/immutable/chunks/Bh2n5Bfy.js.gz +0 -0
  308. package/build/client/_app/immutable/chunks/Bl8s7Z6r.js.br +0 -1
  309. package/build/client/_app/immutable/chunks/Bl8s7Z6r.js.gz +0 -0
  310. package/build/client/_app/immutable/chunks/BnpHJF5-.js +0 -2
  311. package/build/client/_app/immutable/chunks/BnpHJF5-.js.br +0 -0
  312. package/build/client/_app/immutable/chunks/BnpHJF5-.js.gz +0 -0
  313. package/build/client/_app/immutable/chunks/C2amz0TU.js.br +0 -0
  314. package/build/client/_app/immutable/chunks/C2amz0TU.js.gz +0 -0
  315. package/build/client/_app/immutable/chunks/C93uPVVn.js +0 -1
  316. package/build/client/_app/immutable/chunks/C93uPVVn.js.br +0 -0
  317. package/build/client/_app/immutable/chunks/C93uPVVn.js.gz +0 -0
  318. package/build/client/_app/immutable/chunks/CXNtxrhs.js +0 -1
  319. package/build/client/_app/immutable/chunks/CXNtxrhs.js.br +0 -0
  320. package/build/client/_app/immutable/chunks/CXNtxrhs.js.gz +0 -0
  321. package/build/client/_app/immutable/chunks/Cc583CkD.js +0 -1
  322. package/build/client/_app/immutable/chunks/Cc583CkD.js.br +0 -0
  323. package/build/client/_app/immutable/chunks/Cc583CkD.js.gz +0 -0
  324. package/build/client/_app/immutable/chunks/CxcplU4Q.js.br +0 -0
  325. package/build/client/_app/immutable/chunks/CxcplU4Q.js.gz +0 -0
  326. package/build/client/_app/immutable/chunks/DDy-Kuac.js +0 -1
  327. package/build/client/_app/immutable/chunks/DDy-Kuac.js.br +0 -0
  328. package/build/client/_app/immutable/chunks/DDy-Kuac.js.gz +0 -0
  329. package/build/client/_app/immutable/chunks/DIDOrPa8.js +0 -41
  330. package/build/client/_app/immutable/chunks/DIDOrPa8.js.br +0 -0
  331. package/build/client/_app/immutable/chunks/DIDOrPa8.js.gz +0 -0
  332. package/build/client/_app/immutable/chunks/DJ7MgPmk.js +0 -4
  333. package/build/client/_app/immutable/chunks/DJ7MgPmk.js.br +0 -0
  334. package/build/client/_app/immutable/chunks/DJ7MgPmk.js.gz +0 -0
  335. package/build/client/_app/immutable/chunks/DUw-I2kh.js.br +0 -0
  336. package/build/client/_app/immutable/chunks/DUw-I2kh.js.gz +0 -0
  337. package/build/client/_app/immutable/chunks/DdLT9cdj.js.br +0 -0
  338. package/build/client/_app/immutable/chunks/DdLT9cdj.js.gz +0 -0
  339. package/build/client/_app/immutable/chunks/c-rWvg5T.js.br +0 -0
  340. package/build/client/_app/immutable/chunks/c-rWvg5T.js.gz +0 -0
  341. package/build/client/_app/immutable/chunks/hbftB6pI.js +0 -1
  342. package/build/client/_app/immutable/chunks/hbftB6pI.js.br +0 -0
  343. package/build/client/_app/immutable/chunks/hbftB6pI.js.gz +0 -0
  344. package/build/client/_app/immutable/entry/app.BvdA5xZX.js +0 -2
  345. package/build/client/_app/immutable/entry/app.BvdA5xZX.js.br +0 -0
  346. package/build/client/_app/immutable/entry/app.BvdA5xZX.js.gz +0 -0
  347. package/build/client/_app/immutable/entry/start.B47HTlUj.js +0 -1
  348. package/build/client/_app/immutable/entry/start.B47HTlUj.js.br +0 -2
  349. package/build/client/_app/immutable/entry/start.B47HTlUj.js.gz +0 -0
  350. package/build/client/_app/immutable/nodes/0.C-Qb2qV-.js +0 -1
  351. package/build/client/_app/immutable/nodes/0.C-Qb2qV-.js.br +0 -0
  352. package/build/client/_app/immutable/nodes/0.C-Qb2qV-.js.gz +0 -0
  353. package/build/client/_app/immutable/nodes/1.CbwunOOA.js +0 -1
  354. package/build/client/_app/immutable/nodes/1.CbwunOOA.js.br +0 -4
  355. package/build/client/_app/immutable/nodes/1.CbwunOOA.js.gz +0 -0
  356. package/build/client/_app/immutable/nodes/10.BONTXBU2.js +0 -6
  357. package/build/client/_app/immutable/nodes/10.BONTXBU2.js.br +0 -0
  358. package/build/client/_app/immutable/nodes/10.BONTXBU2.js.gz +0 -0
  359. package/build/client/_app/immutable/nodes/11.Bt-WKNEi.js +0 -1
  360. package/build/client/_app/immutable/nodes/11.Bt-WKNEi.js.br +0 -0
  361. package/build/client/_app/immutable/nodes/11.Bt-WKNEi.js.gz +0 -0
  362. package/build/client/_app/immutable/nodes/12.DtpUwyyZ.js +0 -1
  363. package/build/client/_app/immutable/nodes/12.DtpUwyyZ.js.br +0 -0
  364. package/build/client/_app/immutable/nodes/12.DtpUwyyZ.js.gz +0 -0
  365. package/build/client/_app/immutable/nodes/13.Ce307l0A.js +0 -65
  366. package/build/client/_app/immutable/nodes/13.Ce307l0A.js.br +0 -0
  367. package/build/client/_app/immutable/nodes/13.Ce307l0A.js.gz +0 -0
  368. package/build/client/_app/immutable/nodes/2.AM8fesja.js.br +0 -0
  369. package/build/client/_app/immutable/nodes/2.AM8fesja.js.gz +0 -0
  370. package/build/client/_app/immutable/nodes/3.BShuoOz5.js.br +0 -0
  371. package/build/client/_app/immutable/nodes/3.BShuoOz5.js.gz +0 -0
  372. package/build/client/_app/immutable/nodes/4.BD6QbApY.js.br +0 -0
  373. package/build/client/_app/immutable/nodes/4.BD6QbApY.js.gz +0 -0
  374. package/build/client/_app/immutable/nodes/5.JM_dwz0R.js.br +0 -0
  375. package/build/client/_app/immutable/nodes/5.JM_dwz0R.js.gz +0 -0
  376. package/build/client/_app/immutable/nodes/7.lTuFbCm_.js +0 -1
  377. package/build/client/_app/immutable/nodes/7.lTuFbCm_.js.br +0 -0
  378. package/build/client/_app/immutable/nodes/7.lTuFbCm_.js.gz +0 -0
  379. package/build/client/_app/immutable/nodes/8.DIWHKPrG.js +0 -1
  380. package/build/client/_app/immutable/nodes/8.DIWHKPrG.js.br +0 -0
  381. package/build/client/_app/immutable/nodes/8.DIWHKPrG.js.gz +0 -0
  382. package/build/client/_app/immutable/nodes/9.D6Tw6uKW.js +0 -2
  383. package/build/client/_app/immutable/nodes/9.D6Tw6uKW.js.br +0 -0
  384. package/build/client/_app/immutable/nodes/9.D6Tw6uKW.js.gz +0 -0
  385. package/build/server/chunks/0-BdG9Cl9W.js +0 -22
  386. package/build/server/chunks/0-BdG9Cl9W.js.map +0 -1
  387. package/build/server/chunks/1-BcZWKLgB.js +0 -9
  388. package/build/server/chunks/1-BcZWKLgB.js.map +0 -1
  389. package/build/server/chunks/10-WRjYTwFT.js.map +0 -1
  390. package/build/server/chunks/11-Cq79IAWK.js.map +0 -1
  391. package/build/server/chunks/12-DnRkeAVv.js.map +0 -1
  392. package/build/server/chunks/13-DKqDuEdB.js.map +0 -1
  393. package/build/server/chunks/6-DsYzHmsZ.js.map +0 -1
  394. package/build/server/chunks/7-eAzN1saI.js.map +0 -1
  395. package/build/server/chunks/8-Dtaxi2J_.js.map +0 -1
  396. package/build/server/chunks/9-DrDIAOIh.js.map +0 -1
  397. package/build/server/chunks/JsonValue-Dj3vYG5T.js +0 -366
  398. package/build/server/chunks/JsonValue-Dj3vYG5T.js.map +0 -1
  399. package/build/server/chunks/Modal-fWUUqg69.js.map +0 -1
  400. package/build/server/chunks/Panel-BXokpC3w.js.map +0 -1
  401. package/build/server/chunks/PrettyJson-CV4qF02W.js.map +0 -1
  402. package/build/server/chunks/Tooltip-1tZ4BUxU.js.map +0 -1
  403. package/build/server/chunks/TooltipTable-B2QGp4YW.js.map +0 -1
  404. package/build/server/chunks/_layout.svelte-DAGMbkJX.js.map +0 -1
  405. package/build/server/chunks/_page.svelte-BUqI0nM9.js.map +0 -1
  406. package/build/server/chunks/_page.svelte-CB9ZXhBt.js.map +0 -1
  407. package/build/server/chunks/_page.svelte-Ccc0KJ66.js.map +0 -1
  408. package/build/server/chunks/_page.svelte-ClakOyno.js.map +0 -1
  409. package/build/server/chunks/_page.svelte-DfZ2COw_.js.map +0 -1
  410. package/build/server/chunks/_page.svelte-DgQxD9T8.js.map +0 -1
  411. package/build/server/chunks/_page.svelte-wmgrrvR7.js.map +0 -1
  412. package/build/server/chunks/client-BCfAqu0g.js +0 -7
  413. package/build/server/chunks/client2-B-hc4vU8.js.map +0 -1
  414. package/build/server/chunks/context-8UI9xWgq.js +0 -92
  415. package/build/server/chunks/context-8UI9xWgq.js.map +0 -1
  416. package/build/server/chunks/error.svelte-hj6GNaOv.js +0 -19
  417. package/build/server/chunks/error.svelte-hj6GNaOv.js.map +0 -1
  418. package/build/server/chunks/event-DVH-6ISX.js +0 -64
  419. package/build/server/chunks/event-DVH-6ISX.js.map +0 -1
  420. package/build/server/chunks/exports-CtTNDGe5.js +0 -161
  421. package/build/server/chunks/exports-CtTNDGe5.js.map +0 -1
  422. package/build/server/chunks/filters-CbFjTNFI.js.map +0 -1
  423. package/build/server/chunks/hooks.server-DRPXFQlL.js +0 -53
  424. package/build/server/chunks/hooks.server-DRPXFQlL.js.map +0 -1
  425. package/build/server/chunks/index-DOCFW0vv.js +0 -1355
  426. package/build/server/chunks/index-DOCFW0vv.js.map +0 -1
  427. package/build/server/chunks/index2-CJE0QJlP.js.map +0 -1
  428. package/build/server/chunks/index3-CQyDuV4f.js.map +0 -1
  429. package/build/server/chunks/logger-KF6KpVP6.js.map +0 -1
  430. package/build/server/chunks/mongo-CpQtfvt6.js.map +0 -1
  431. package/build/server/chunks/remote-xxtqbu-CbTWQ3bq.js +0 -21
  432. package/build/server/chunks/remote-xxtqbu-CbTWQ3bq.js.map +0 -1
  433. package/build/server/chunks/routing-BdGCua8Q.js.map +0 -1
  434. package/build/server/chunks/server2-CkPmd3Rb.js.map +0 -1
  435. package/build/server/chunks/servers.remote-OwAA4KJJ.js.map +0 -1
  436. package/build/server/chunks/shared-w5gO1Cte.js +0 -446
  437. package/build/server/chunks/shared-w5gO1Cte.js.map +0 -1
  438. package/build/server/chunks/state.svelte-BfzDwKMC.js.map +0 -1
  439. package/build/server/chunks/utils-kjxf7BZO.js.map +0 -1
  440. package/build/server/chunks/utils2-DrnJY_bz.js +0 -91
  441. package/build/server/chunks/utils2-DrnJY_bz.js.map +0 -1
  442. /package/build/client/_app/immutable/assets/{10.Wc4MTSzM.css → 11.Wc4MTSzM.css} +0 -0
  443. /package/build/client/_app/immutable/assets/{10.Wc4MTSzM.css.br → 11.Wc4MTSzM.css.br} +0 -0
  444. /package/build/client/_app/immutable/assets/{10.Wc4MTSzM.css.gz → 11.Wc4MTSzM.css.gz} +0 -0
  445. /package/build/client/_app/immutable/assets/{11.CEtFGlZU.css → 12.CEtFGlZU.css} +0 -0
  446. /package/build/client/_app/immutable/assets/{11.CEtFGlZU.css.br → 12.CEtFGlZU.css.br} +0 -0
  447. /package/build/client/_app/immutable/assets/{11.CEtFGlZU.css.gz → 12.CEtFGlZU.css.gz} +0 -0
  448. /package/build/client/_app/immutable/assets/{12.I1sSDJ6i.css → 13.I1sSDJ6i.css} +0 -0
  449. /package/build/client/_app/immutable/assets/{12.I1sSDJ6i.css.br → 13.I1sSDJ6i.css.br} +0 -0
  450. /package/build/client/_app/immutable/assets/{12.I1sSDJ6i.css.gz → 13.I1sSDJ6i.css.gz} +0 -0
  451. /package/build/client/_app/immutable/assets/{7.CRKE8WvY.css → 8.CRKE8WvY.css} +0 -0
  452. /package/build/client/_app/immutable/assets/{7.CRKE8WvY.css.br → 8.CRKE8WvY.css.br} +0 -0
  453. /package/build/client/_app/immutable/assets/{7.CRKE8WvY.css.gz → 8.CRKE8WvY.css.gz} +0 -0
@@ -1,31 +1,29 @@
1
1
  import './async-lVJA8xJZ.js';
2
- import { d as await_block, a as attr, f as bind_props, b as attr_class, g as attr_style, c as clsx, s as stringify, e as ensure_array_like } from './index-DOCFW0vv.js';
3
- import { l as loadDocuments, c as countDocuments, e as explainQuery, u as updateDocument, d as deleteDocument } from './servers.remote-OwAA4KJJ.js';
4
- import './exports-CtTNDGe5.js';
5
- import './utils-kjxf7BZO.js';
6
- import { r as resolve } from './server2-CkPmd3Rb.js';
7
- import './state.svelte-BfzDwKMC.js';
8
- import { J as JsonValue_1 } from './JsonValue-Dj3vYG5T.js';
9
- import { M as Modal } from './Modal-fWUUqg69.js';
10
- import { e as escape_html } from './context-8UI9xWgq.js';
11
- import { P as Panel } from './Panel-BXokpC3w.js';
12
- import { P as PrettyJson } from './PrettyJson-CV4qF02W.js';
13
- import './event-DVH-6ISX.js';
14
- import './client-BCfAqu0g.js';
2
+ import { i as await_block, e as escape_html, a as attr, j as bind_props, c as attr_class, k as attr_style, s as stringify, d as derived, f as clsx, b as ensure_array_like } from './url-hmE1zcJ6.js';
3
+ import { l as loadDocuments, c as countDocuments, e as explainQuery, d as deleteDocument, u as updateDocument } from './servers.remote-BhpVo4Zs.js';
4
+ import './utils2-kjxf7BZO.js';
5
+ import { r as resolve } from './server2-uigtM6st.js';
6
+ import './exports-B5ORJhfK.js';
7
+ import './state.svelte-Dzb7Lf2r.js';
8
+ import { J as JsonValue_1 } from './JsonValue-CTg4aH_w.js';
9
+ import { M as Modal } from './Modal-yO0qzufQ.js';
10
+ import { P as Panel } from './Panel-D9GzVDDt.js';
11
+ import { P as PrettyJson } from './PrettyJson-CzzntSVh.js';
12
+ import './client-C7bEwskR.js';
15
13
  import 'esprima';
16
14
  import { n as notificationStore } from './notifications.svelte-CIqkoPWX.js';
17
- import { a as formatNumber } from './filters-CbFjTNFI.js';
15
+ import { a as formatNumber } from './filters-B3U8Nh9P.js';
18
16
  import { p as parseJSON } from './jsonParser-C3QUcODD.js';
19
17
  import { a as SvelteURLSearchParams } from './index-server-Bf-hP5gL.js';
20
- import './utils2-DrnJY_bz.js';
21
- import './shared-w5gO1Cte.js';
18
+ import './shared-server-BmU87nph.js';
19
+ import './shared-BqTYMAzZ.js';
22
20
  import './index-wpIsICWW.js';
23
21
  import './JsonEncoder-B8eJRYZ4.js';
24
22
  import 'mongodb';
25
- import './logger-KF6KpVP6.js';
23
+ import './logger-PfH_grbh.js';
26
24
  import 'async_hooks';
27
25
  import 'node:util';
28
- import './mongo-CpQtfvt6.js';
26
+ import './mongo-B92d7zNj.js';
29
27
  import 'dns/promises';
30
28
  import 'url';
31
29
  import 'node:fs';
@@ -33,16 +31,18 @@ import 'node:os';
33
31
  import 'node:path';
34
32
  import 'zod';
35
33
  import './server-Crjo4w1q.js';
36
- import './routing-BdGCua8Q.js';
37
- import './Tooltip-1tZ4BUxU.js';
38
- import './client2-B-hc4vU8.js';
39
- import './index2-CJE0QJlP.js';
34
+ import './routing-CYknP78v.js';
35
+ import './Tooltip-D2BX7dwq.js';
36
+ import './client2-DcCKOWWC.js';
37
+ import './index-CC9WtE-y.js';
40
38
 
41
39
  function ExplainPanel($$renderer, $$props) {
42
40
  $$renderer.component(($$renderer2) => {
43
41
  let { data, show, onclose } = $$props;
44
42
  function findIndexInPlan(plan) {
45
- if (!plan) return null;
43
+ if (!plan) {
44
+ return null;
45
+ }
46
46
  if (plan.indexName) {
47
47
  return String(plan.indexName);
48
48
  }
@@ -51,38 +51,56 @@ function ExplainPanel($$renderer, $$props) {
51
51
  }
52
52
  if (plan.inputStage) {
53
53
  const result = findIndexInPlan(plan.inputStage);
54
- if (result) return result;
54
+ if (result) {
55
+ return result;
56
+ }
55
57
  }
56
58
  if (Array.isArray(plan.inputStages)) {
57
59
  for (const stage of plan.inputStages) {
58
60
  const result = findIndexInPlan(stage);
59
- if (result) return result;
61
+ if (result) {
62
+ return result;
63
+ }
60
64
  }
61
65
  }
62
66
  if (plan.queryPlan) {
63
67
  const result = findIndexInPlan(plan.queryPlan);
64
- if (result) return result;
68
+ if (result) {
69
+ return result;
70
+ }
65
71
  }
66
72
  return null;
67
73
  }
68
74
  function hasCollScan(plan) {
69
- if (!plan) return false;
70
- if (plan.stage === "COLLSCAN") return true;
75
+ if (!plan) {
76
+ return false;
77
+ }
78
+ if (plan.stage === "COLLSCAN") {
79
+ return true;
80
+ }
71
81
  if (plan.inputStage) {
72
- if (hasCollScan(plan.inputStage)) return true;
82
+ if (hasCollScan(plan.inputStage)) {
83
+ return true;
84
+ }
73
85
  }
74
86
  if (Array.isArray(plan.inputStages)) {
75
87
  for (const stage of plan.inputStages) {
76
- if (hasCollScan(stage)) return true;
88
+ if (hasCollScan(stage)) {
89
+ return true;
90
+ }
77
91
  }
78
92
  }
79
93
  if (plan.queryPlan) {
80
- if (hasCollScan(plan.queryPlan)) return true;
94
+ if (hasCollScan(plan.queryPlan)) {
95
+ return true;
96
+ }
81
97
  }
82
98
  return false;
83
99
  }
84
- const metrics = (() => {
85
- if (!data || typeof data !== "object") return null;
100
+ const metrics = derived(() => {
101
+ if (!data || typeof data !== "object") {
102
+ return null;
103
+ }
86
104
  const d = data;
87
105
  const execStats = d.executionStats;
88
106
  const queryPlanner = d.queryPlanner;
@@ -106,31 +124,39 @@ function ExplainPanel($$renderer, $$props) {
106
124
  indexUsed,
107
125
  stage
108
126
  };
109
- })();
110
- const efficiency = (() => {
111
- if (!metrics) return null;
112
- const keysExamined = Number(metrics.keysExamined);
113
- const returned = Number(metrics.nReturned);
127
+ });
128
+ const efficiency = derived(() => {
129
+ if (!metrics()) {
130
+ return null;
131
+ }
132
+ const keysExamined = Number(metrics().keysExamined);
133
+ const returned = Number(metrics().nReturned);
114
134
  if (keysExamined > 0) {
115
135
  return (returned / keysExamined * 100).toFixed(1);
116
136
  }
117
137
  return "0.0";
118
- })();
119
- const efficiencyLabel = (() => {
120
- if (!metrics) return "";
121
- const keysExamined = Number(metrics.keysExamined);
122
- const docsExamined = Number(metrics.docsExamined);
123
- const returned = Number(metrics.nReturned);
138
+ });
139
+ const efficiencyLabel = derived(() => {
140
+ if (!metrics()) {
141
+ return "";
142
+ }
143
+ const keysExamined = Number(metrics().keysExamined);
144
+ const docsExamined = Number(metrics().docsExamined);
145
+ const returned = Number(metrics().nReturned);
124
146
  if (keysExamined > 0) {
125
147
  return `${returned} / ${keysExamined} keys to docs`;
126
148
  }
127
149
  return `${keysExamined} keys / ${docsExamined} docs`;
128
- })();
129
- const isEfficient = (() => {
130
- if (!metrics) return null;
131
- if (metrics.indexUsed === "COLLSCAN" || metrics.indexUsed === "N/A") return false;
150
+ });
151
+ const isEfficient = derived(() => {
152
+ if (!metrics()) {
153
+ return null;
154
+ }
155
+ if (metrics().indexUsed === "COLLSCAN" || metrics().indexUsed === "N/A") {
156
+ return false;
157
+ }
132
158
  return true;
133
- })();
159
+ });
134
160
  {
135
161
  let footer = function($$renderer3) {
136
162
  $$renderer3.push(`<button class="btn btn-default btn-sm">Close</button>`);
@@ -142,20 +168,20 @@ function ExplainPanel($$renderer, $$props) {
142
168
  wide: true,
143
169
  footer,
144
170
  children: ($$renderer3) => {
145
- if (metrics) {
171
+ if (metrics()) {
146
172
  $$renderer3.push("<!--[-->");
147
- $$renderer3.push(`<div class="grid grid-cols-2 md:grid-cols-3 gap-4 mb-6"><div class="metric-card svelte-10vh4gh"><span class="metric-label svelte-10vh4gh">Execution Time</span> <span class="metric-value svelte-10vh4gh">${escape_html(metrics.executionTimeMs)}ms</span></div> <div class="metric-card svelte-10vh4gh"><span class="metric-label svelte-10vh4gh">Documents Returned</span> <span class="metric-value svelte-10vh4gh">${escape_html(typeof metrics.nReturned === "number" ? metrics.nReturned.toLocaleString() : metrics.nReturned)}</span></div> <div class="metric-card svelte-10vh4gh"><span class="metric-label svelte-10vh4gh">Documents Examined</span> <span class="metric-value svelte-10vh4gh">${escape_html(typeof metrics.docsExamined === "number" ? metrics.docsExamined.toLocaleString() : metrics.docsExamined)}</span></div> <div class="metric-card svelte-10vh4gh"><span class="metric-label svelte-10vh4gh">Keys Examined</span> <span class="metric-value svelte-10vh4gh">${escape_html(typeof metrics.keysExamined === "number" ? metrics.keysExamined.toLocaleString() : metrics.keysExamined)}</span></div> <div class="metric-card svelte-10vh4gh"><span class="metric-label svelte-10vh4gh">Index Used</span> <span${attr_class("metric-value svelte-10vh4gh", void 0, {
148
- "warning": metrics.indexUsed === "COLLSCAN",
149
- "good": metrics.indexUsed !== "COLLSCAN"
150
- })}>${escape_html(metrics.indexUsed)}</span></div> <div class="metric-card svelte-10vh4gh"><span class="metric-label svelte-10vh4gh">Query Stage</span> <span class="metric-value svelte-10vh4gh">${escape_html(metrics.stage)}</span></div></div> `);
151
- if (efficiency !== null) {
173
+ $$renderer3.push(`<div class="grid grid-cols-2 md:grid-cols-3 gap-4 mb-6"><div class="metric-card svelte-10vh4gh"><span class="metric-label svelte-10vh4gh">Execution Time</span> <span class="metric-value svelte-10vh4gh">${escape_html(metrics().executionTimeMs)}ms</span></div> <div class="metric-card svelte-10vh4gh"><span class="metric-label svelte-10vh4gh">Documents Returned</span> <span class="metric-value svelte-10vh4gh">${escape_html(typeof metrics().nReturned === "number" ? metrics().nReturned.toLocaleString() : metrics().nReturned)}</span></div> <div class="metric-card svelte-10vh4gh"><span class="metric-label svelte-10vh4gh">Documents Examined</span> <span class="metric-value svelte-10vh4gh">${escape_html(typeof metrics().docsExamined === "number" ? metrics().docsExamined.toLocaleString() : metrics().docsExamined)}</span></div> <div class="metric-card svelte-10vh4gh"><span class="metric-label svelte-10vh4gh">Keys Examined</span> <span class="metric-value svelte-10vh4gh">${escape_html(typeof metrics().keysExamined === "number" ? metrics().keysExamined.toLocaleString() : metrics().keysExamined)}</span></div> <div class="metric-card svelte-10vh4gh"><span class="metric-label svelte-10vh4gh">Index Used</span> <span${attr_class("metric-value svelte-10vh4gh", void 0, {
174
+ "warning": metrics().indexUsed === "COLLSCAN",
175
+ "good": metrics().indexUsed !== "COLLSCAN"
176
+ })}>${escape_html(metrics().indexUsed)}</span></div> <div class="metric-card svelte-10vh4gh"><span class="metric-label svelte-10vh4gh">Query Stage</span> <span class="metric-value svelte-10vh4gh">${escape_html(metrics().stage)}</span></div></div> `);
177
+ if (efficiency() !== null) {
152
178
  $$renderer3.push("<!--[-->");
153
- $$renderer3.push(`<div class="efficiency-bar mb-6"><div class="flex justify-between items-center mb-2"><span class="text-sm font-semibold" style="color: var(--text);">Efficiency</span> <span class="text-sm font-mono" style="color: var(--text-secondary);">${escape_html(efficiencyLabel)} (${escape_html(efficiency)}%)</span></div> <div class="h-2 rounded-full bg-[var(--color-3)] overflow-hidden"><div${attr_class("h-full rounded-full transition-all duration-300", void 0, {
154
- "bg-green-500": isEfficient && Number(efficiency) >= 70,
155
- "bg-yellow-500": isEfficient && Number(efficiency) >= 30 && Number(efficiency) < 70,
156
- "bg-red-500": !isEfficient || Number(efficiency) < 30
157
- })}${attr_style(`width: ${stringify(isEfficient ? Math.min(Number(efficiency), 100) : 100)}%`)}></div></div> `);
158
- if (isEfficient === false) {
179
+ $$renderer3.push(`<div class="efficiency-bar mb-6"><div class="flex justify-between items-center mb-2"><span class="text-sm font-semibold" style="color: var(--text);">Efficiency</span> <span class="text-sm font-mono" style="color: var(--text-secondary);">${escape_html(efficiencyLabel())} (${escape_html(efficiency())}%)</span></div> <div class="h-2 rounded-full bg-[var(--color-3)] overflow-hidden"><div${attr_class("h-full rounded-full transition-all duration-300", void 0, {
180
+ "bg-green-500": isEfficient() && Number(efficiency()) >= 70,
181
+ "bg-yellow-500": isEfficient() && Number(efficiency()) >= 30 && Number(efficiency()) < 70,
182
+ "bg-red-500": !isEfficient() || Number(efficiency()) < 30
183
+ })}${attr_style(`width: ${stringify(isEfficient() ? Math.min(Number(efficiency()), 100) : 100)}%`)}></div></div> `);
184
+ if (isEfficient() === false) {
159
185
  $$renderer3.push("<!--[-->");
160
186
  $$renderer3.push(`<p class="text-xs mt-2" style="color: var(--error);">⚠️ This query is using a collection scan (COLLSCAN). Consider adding an index for better performance.</p>`);
161
187
  } else {
@@ -200,7 +226,7 @@ function SearchBox($$renderer, $$props) {
200
226
  } = $$props;
201
227
  let showOptionalFields = params.sort !== "{}" || params.project !== "{}" || params.skip !== 0 || params.limit !== 20;
202
228
  let counter = Math.random();
203
- let queryMultiline = params.query?.includes("\n") ?? false;
229
+ let queryMultiline = derived(() => params.query?.includes("\n") ?? false);
204
230
  const TIME_RANGES = [
205
231
  { label: "Last 24 hours", days: 1 },
206
232
  { label: "Last 7 days", days: 7 },
@@ -220,28 +246,20 @@ function SearchBox($$renderer, $$props) {
220
246
  $$renderer2.push(`${$$body}`);
221
247
  }
222
248
  $$renderer2.push(`</textarea>`);
249
+ } else if (params.mode === "distinct") {
250
+ $$renderer2.push("<!--[1-->");
251
+ $$renderer2.push(`<input type="text"${attr("value", params.field)} name="field" placeholder="field name" class="w-full h-9 px-3 bg-transparent outline-none font-mono text-[13px] border-0 !rounded-none svelte-1o0c7a1" style="color: var(--text);"/>`);
252
+ } else if (queryMultiline()) {
253
+ $$renderer2.push("<!--[2-->");
254
+ $$renderer2.push(`<textarea placeholder="{}" name="query" rows="5" class="w-full px-3 py-2 bg-transparent outline-none font-mono text-[13px] resize-y svelte-1o0c7a1" style="color: var(--text);">`);
255
+ const $$body_1 = escape_html(params.query);
256
+ if ($$body_1) {
257
+ $$renderer2.push(`${$$body_1}`);
258
+ }
259
+ $$renderer2.push(`</textarea>`);
223
260
  } else {
224
261
  $$renderer2.push("<!--[!-->");
225
- if (params.mode === "distinct") {
226
- $$renderer2.push("<!--[-->");
227
- $$renderer2.push(`<input type="text"${attr("value", params.field)} name="field" placeholder="field name" class="w-full h-9 px-3 bg-transparent outline-none font-mono text-[13px] border-0 !rounded-none svelte-1o0c7a1" style="color: var(--text);"/>`);
228
- } else {
229
- $$renderer2.push("<!--[!-->");
230
- if (queryMultiline) {
231
- $$renderer2.push("<!--[-->");
232
- $$renderer2.push(`<textarea placeholder="{}" name="query" rows="5" class="w-full px-3 py-2 bg-transparent outline-none font-mono text-[13px] resize-y svelte-1o0c7a1" style="color: var(--text);">`);
233
- const $$body_1 = escape_html(params.query);
234
- if ($$body_1) {
235
- $$renderer2.push(`${$$body_1}`);
236
- }
237
- $$renderer2.push(`</textarea>`);
238
- } else {
239
- $$renderer2.push("<!--[!-->");
240
- $$renderer2.push(`<input type="text"${attr("value", params.query)} placeholder="{}" name="query" class="w-full h-9 px-3 bg-transparent outline-none font-mono text-[13px] border-0 !rounded-none svelte-1o0c7a1" style="color: var(--text);"/>`);
241
- }
242
- $$renderer2.push(`<!--]-->`);
243
- }
244
- $$renderer2.push(`<!--]-->`);
262
+ $$renderer2.push(`<input type="text"${attr("value", params.query)} placeholder="{}" name="query" class="w-full h-9 px-3 bg-transparent outline-none font-mono text-[13px] border-0 !rounded-none svelte-1o0c7a1" style="color: var(--text);"/>`);
245
263
  }
246
264
  $$renderer2.push(`<!--]--></div> <input type="hidden"${attr("value", params.mode)} name="mode"/> <input type="hidden"${attr("value", counter)} name="v"/> <div class="flex items-center gap-2">`);
247
265
  if (server && database && collection) {
@@ -317,7 +335,7 @@ function _page($$renderer, $$props) {
317
335
  $$renderer.component(($$renderer2) => {
318
336
  let { data } = $$props;
319
337
  let params = { ...data.params };
320
- let dataPromise = data.results;
338
+ let dataPromise = derived(() => data.results);
321
339
  let editMode = false;
322
340
  let updateQuery = "{}";
323
341
  let isUpdating = false;
@@ -328,7 +346,7 @@ function _page($$renderer, $$props) {
328
346
  isCounting: false
329
347
  };
330
348
  let modifiedItems = null;
331
- let items = modifiedItems ? { data: modifiedItems, error: null } : dataPromise;
349
+ let items = derived(() => modifiedItems ? { data: modifiedItems, error: null } : dataPromise());
332
350
  async function editDocument(_id, json, items2) {
333
351
  const partial = Boolean(params.project && params.project !== "{}" && Object.keys(parseJSON(params.project)).length > 0);
334
352
  const newId = json?._id?.$value;
@@ -337,7 +355,9 @@ function _page($$renderer, $$props) {
337
355
  notificationStore.notifyError("ObjectId changed. This is not supported, update canceled.");
338
356
  return;
339
357
  }
340
- if (!oldId) return;
358
+ if (!oldId) {
359
+ return;
360
+ }
341
361
  try {
342
362
  const result = await updateDocument({
343
363
  server: data.server,
@@ -387,8 +407,8 @@ function _page($$renderer, $$props) {
387
407
  queryParams.set("limit", String(params.limit));
388
408
  return `/servers/${encodeURIComponent(data.server)}/databases/${encodeURIComponent(data.database)}/collections/${encodeURIComponent(data.collection)}/documents?${queryParams.toString()}`;
389
409
  }
390
- const nextUrl = buildUrl(params.skip + params.limit);
391
- const previousUrl = buildUrl(Math.max(0, params.skip - params.limit));
410
+ const nextUrl = derived(() => buildUrl(params.skip + params.limit));
411
+ const previousUrl = derived(() => buildUrl(Math.max(0, params.skip - params.limit)));
392
412
  async function handleExplain() {
393
413
  explainLoading = true;
394
414
  try {
@@ -421,7 +441,7 @@ function _page($$renderer, $$props) {
421
441
  const normalizedParams = { ...searchParams, field: searchParams.field ?? "" };
422
442
  data.params = normalizedParams;
423
443
  params = normalizedParams;
424
- dataPromise = loadDocuments({
444
+ dataPromise(loadDocuments({
425
445
  server: data.server,
426
446
  database: data.database,
427
447
  collection: data.collection,
@@ -432,7 +452,7 @@ function _page($$renderer, $$props) {
432
452
  limit: normalizedParams.limit,
433
453
  mode: normalizedParams.mode,
434
454
  field: normalizedParams.field
435
- });
455
+ }));
436
456
  data.count = countDocuments({
437
457
  server: data.server,
438
458
  database: data.database,
@@ -495,12 +515,12 @@ function _page($$renderer, $$props) {
495
515
  IconPlus($$renderer4, { class: "w-4 h-4 inline mr-2" });
496
516
  $$renderer4.push(`<!----> Insert Document</button>`);
497
517
  }
498
- $$renderer4.push(`<!--]--></div> <div class="rounded-xl bg-[var(--color-3)]/30 p-4 border border-[var(--border-color)]"><h3 class="text-lg font-semibold mb-3" style="color: var(--text);">Update Multiple Documents</h3> <div class="space-y-4"><div><label for="update-filter" class="block text-sm font-semibold mb-2" style="color: var(--text);">Filter (which documents to update):</label> <input type="text" id="update-filter"${attr("value", params.query || "{}")} readonly class="w-full p-3 rounded-xl border border-[var(--border-color)] bg-[var(--color-3)] font-mono text-sm opacity-75 cursor-not-allowed" style="color: var(--text);"/> <p class="text-xs mt-2" style="color: var(--text-secondary);">This filter is taken from the query above. Modify the query to change which documents will be updated.</p></div> <div><label for="update-operation" class="block text-sm font-semibold mb-2" style="color: var(--text);">Update Operation (e.g., $set, $inc, $unset):</label> <textarea placeholder="Update operation" rows="4" class="w-full p-3 rounded-xl border border-[var(--border-color)] bg-[var(--color-3)] font-mono text-sm focus:outline-none focus:ring-2" style="color: var(--text); --tw-ring-color: var(--link);">`);
518
+ $$renderer4.push(`<!--]--></div> <div class="rounded-xl bg-[var(--color-3)]/30 p-4 border border-[var(--border-color)]"><h3 class="text-lg font-semibold mb-3" style="color: var(--text);">Update Multiple Documents</h3> <div class="space-y-4"><div><label for="update-filter" class="block text-sm font-semibold mb-2" style="color: var(--text);">Filter (which documents to update):</label> <input type="text" id="update-filter"${attr("value", params.query || "{}")} readonly="" class="w-full p-3 rounded-xl border border-[var(--border-color)] bg-[var(--color-3)] font-mono text-sm opacity-75 cursor-not-allowed" style="color: var(--text);"/> <p class="text-xs mt-2" style="color: var(--text-secondary);">This filter is taken from the query above. Modify the query to change which documents will be updated.</p></div> <div><label for="update-operation" class="block text-sm font-semibold mb-2" style="color: var(--text);">Update Operation (e.g., $set, $inc, $unset):</label> <textarea placeholder="Update operation" rows="4" class="w-full p-3 rounded-xl border border-[var(--border-color)] bg-[var(--color-3)] font-mono text-sm focus:outline-none focus:ring-2" style="color: var(--text); --tw-ring-color: var(--link);">`);
499
519
  const $$body_1 = escape_html(updateQuery);
500
520
  if ($$body_1) {
501
521
  $$renderer4.push(`${$$body_1}`);
502
522
  }
503
- $$renderer4.push(`</textarea></div> <div class="flex gap-3"><button class="btn btn-success hover:bg-[var(--button-success-l)]"${attr("disabled", isUpdating, true)}>${escape_html("Execute Update")}</button></div></div></div> <div class="rounded-xl bg-[var(--color-3)]/30 p-4 border border-[var(--border-color)]"><h3 class="text-lg font-semibold mb-3" style="color: var(--text);">Delete Multiple Documents</h3> <div class="space-y-4"><div><label for="delete-filter" class="block text-sm font-semibold mb-2" style="color: var(--text);">Filter (which documents to delete):</label> <input type="text" id="delete-filter"${attr("value", params.query || "{}")} readonly class="w-full p-3 rounded-xl border border-[var(--border-color)] bg-[var(--color-3)] font-mono text-sm opacity-75 cursor-not-allowed" style="color: var(--text);"/> <p class="text-xs mt-2" style="color: var(--text-secondary);">This filter is taken from the query above. Modify the query to change which documents will be deleted.</p></div> `);
523
+ $$renderer4.push(`</textarea></div> <div class="flex gap-3"><button class="btn btn-success hover:bg-[var(--button-success-l)]"${attr("disabled", isUpdating, true)}>${escape_html("Execute Update")}</button></div></div></div> <div class="rounded-xl bg-[var(--color-3)]/30 p-4 border border-[var(--border-color)]"><h3 class="text-lg font-semibold mb-3" style="color: var(--text);">Delete Multiple Documents</h3> <div class="space-y-4"><div><label for="delete-filter" class="block text-sm font-semibold mb-2" style="color: var(--text);">Filter (which documents to delete):</label> <input type="text" id="delete-filter"${attr("value", params.query || "{}")} readonly="" class="w-full p-3 rounded-xl border border-[var(--border-color)] bg-[var(--color-3)] font-mono text-sm opacity-75 cursor-not-allowed" style="color: var(--text);"/> <p class="text-xs mt-2" style="color: var(--text-secondary);">This filter is taken from the query above. Modify the query to change which documents will be deleted.</p></div> `);
504
524
  {
505
525
  $$renderer4.push("<!--[-->");
506
526
  $$renderer4.push(`<div class="flex gap-3"><button class="btn btn-default"${attr("disabled", deleteState.isCounting, true)}>${escape_html("Check Document Count")}</button></div>`);
@@ -515,7 +535,7 @@ function _page($$renderer, $$props) {
515
535
  $$renderer3.push(`<!--]--> `);
516
536
  await_block(
517
537
  $$renderer3,
518
- items,
538
+ items(),
519
539
  () => {
520
540
  {
521
541
  let actions = function($$renderer4) {
@@ -542,14 +562,14 @@ function _page($$renderer, $$props) {
542
562
  let actions = function($$renderer4) {
543
563
  if (data.params.skip > 0) {
544
564
  $$renderer4.push("<!--[-->");
545
- previousButton($$renderer4, previousUrl);
565
+ previousButton($$renderer4, previousUrl());
546
566
  } else {
547
567
  $$renderer4.push("<!--[!-->");
548
568
  }
549
569
  $$renderer4.push(`<!--]--> `);
550
570
  if (items2.length >= data.params.limit) {
551
571
  $$renderer4.push("<!--[-->");
552
- nextButton($$renderer4, nextUrl);
572
+ nextButton($$renderer4, nextUrl());
553
573
  } else {
554
574
  $$renderer4.push("<!--[!-->");
555
575
  }
@@ -582,14 +602,14 @@ function _page($$renderer, $$props) {
582
602
  let actions = function($$renderer4) {
583
603
  if (hasPrevious) {
584
604
  $$renderer4.push("<!--[-->");
585
- previousButton($$renderer4, previousUrl);
605
+ previousButton($$renderer4, previousUrl());
586
606
  } else {
587
607
  $$renderer4.push("<!--[!-->");
588
608
  }
589
609
  $$renderer4.push(`<!--]--> `);
590
610
  if (hasNext) {
591
611
  $$renderer4.push("<!--[-->");
592
- nextButton($$renderer4, nextUrl);
612
+ nextButton($$renderer4, nextUrl());
593
613
  } else {
594
614
  $$renderer4.push("<!--[!-->");
595
615
  }
@@ -646,4 +666,4 @@ function _page($$renderer, $$props) {
646
666
  }
647
667
 
648
668
  export { _page as default };
649
- //# sourceMappingURL=_page.svelte-CB9ZXhBt.js.map
669
+ //# sourceMappingURL=_page.svelte-Dg71nX8A.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_page.svelte-Dg71nX8A.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/servers/_server_/databases/_database_/collections/_collection_/documents/_page.svelte.js"],"sourcesContent":["import \"../../../../../../../../../chunks/async.js\";\nimport { f as derived, b as escape_html, c as attr_class, j as attr_style, s as stringify, d as clsx, a as attr, k as bind_props, i as await_block, e as ensure_array_like } from \"../../../../../../../../../chunks/root.js\";\nimport { l as loadDocuments, c as countDocuments, e as explainQuery, d as deleteDocument, u as updateDocument } from \"../../../../../../../../../chunks/servers.remote.js\";\nimport \"@sveltejs/kit/internal\";\nimport \"../../../../../../../../../chunks/url.js\";\nimport \"../../../../../../../../../chunks/utils2.js\";\nimport { r as resolve } from \"../../../../../../../../../chunks/server2.js\";\nimport \"../../../../../../../../../chunks/exports.js\";\nimport \"../../../../../../../../../chunks/state.svelte.js\";\nimport { J as JsonValue_1 } from \"../../../../../../../../../chunks/JsonValue.js\";\nimport { M as Modal } from \"../../../../../../../../../chunks/Modal.js\";\nimport { P as Panel } from \"../../../../../../../../../chunks/Panel.js\";\nimport { P as PrettyJson } from \"../../../../../../../../../chunks/PrettyJson.js\";\nimport \"@sveltejs/kit/internal/server\";\nimport \"../../../../../../../../../chunks/client.js\";\nimport \"esprima\";\nimport { n as notificationStore } from \"../../../../../../../../../chunks/notifications.svelte.js\";\nimport { a as formatNumber } from \"../../../../../../../../../chunks/filters.js\";\nimport { p as parseJSON } from \"../../../../../../../../../chunks/jsonParser.js\";\nimport { a as SvelteURLSearchParams } from \"../../../../../../../../../chunks/index-server.js\";\nfunction ExplainPanel($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { data, show, onclose } = $$props;\n function findIndexInPlan(plan) {\n if (!plan) {\n return null;\n }\n if (plan.indexName) {\n return String(plan.indexName);\n }\n if (plan.stage === \"IXSCAN\" && plan.indexName) {\n return String(plan.indexName);\n }\n if (plan.inputStage) {\n const result = findIndexInPlan(plan.inputStage);\n if (result) {\n return result;\n }\n }\n if (Array.isArray(plan.inputStages)) {\n for (const stage of plan.inputStages) {\n const result = findIndexInPlan(stage);\n if (result) {\n return result;\n }\n }\n }\n if (plan.queryPlan) {\n const result = findIndexInPlan(plan.queryPlan);\n if (result) {\n return result;\n }\n }\n return null;\n }\n function hasCollScan(plan) {\n if (!plan) {\n return false;\n }\n if (plan.stage === \"COLLSCAN\") {\n return true;\n }\n if (plan.inputStage) {\n if (hasCollScan(plan.inputStage)) {\n return true;\n }\n }\n if (Array.isArray(plan.inputStages)) {\n for (const stage of plan.inputStages) {\n if (hasCollScan(stage)) {\n return true;\n }\n }\n }\n if (plan.queryPlan) {\n if (hasCollScan(plan.queryPlan)) {\n return true;\n }\n }\n return false;\n }\n const metrics = derived(() => {\n if (!data || typeof data !== \"object\") {\n return null;\n }\n const d = data;\n const execStats = d.executionStats;\n const queryPlanner = d.queryPlanner;\n const winningPlan = queryPlanner?.winningPlan;\n const indexName = findIndexInPlan(winningPlan);\n const isCollScan = hasCollScan(winningPlan);\n let indexUsed;\n if (indexName) {\n indexUsed = indexName;\n } else if (isCollScan) {\n indexUsed = \"COLLSCAN\";\n } else {\n indexUsed = \"N/A\";\n }\n const stage = winningPlan?.stage ?? \"N/A\";\n return {\n executionTimeMs: execStats?.executionTimeMillis ?? \"N/A\",\n docsExamined: execStats?.totalDocsExamined ?? \"N/A\",\n keysExamined: execStats?.totalKeysExamined ?? \"N/A\",\n nReturned: execStats?.nReturned ?? \"N/A\",\n indexUsed,\n stage\n };\n });\n const efficiency = derived(() => {\n if (!metrics()) {\n return null;\n }\n const keysExamined = Number(metrics().keysExamined);\n const returned = Number(metrics().nReturned);\n if (keysExamined > 0) {\n return (returned / keysExamined * 100).toFixed(1);\n }\n return \"0.0\";\n });\n const efficiencyLabel = derived(() => {\n if (!metrics()) {\n return \"\";\n }\n const keysExamined = Number(metrics().keysExamined);\n const docsExamined = Number(metrics().docsExamined);\n const returned = Number(metrics().nReturned);\n if (keysExamined > 0) {\n return `${returned} / ${keysExamined} keys to docs`;\n }\n return `${keysExamined} keys / ${docsExamined} docs`;\n });\n const isEfficient = derived(() => {\n if (!metrics()) {\n return null;\n }\n if (metrics().indexUsed === \"COLLSCAN\" || metrics().indexUsed === \"N/A\") {\n return false;\n }\n return true;\n });\n {\n let footer = function($$renderer3) {\n $$renderer3.push(`<button class=\"btn btn-default btn-sm\">Close</button>`);\n };\n Modal($$renderer2, {\n show,\n onclose,\n title: \"Execution Stats\",\n wide: true,\n footer,\n children: ($$renderer3) => {\n if (metrics()) {\n $$renderer3.push(\"<!--[-->\");\n $$renderer3.push(`<div class=\"grid grid-cols-2 md:grid-cols-3 gap-4 mb-6\"><div class=\"metric-card svelte-10vh4gh\"><span class=\"metric-label svelte-10vh4gh\">Execution Time</span> <span class=\"metric-value svelte-10vh4gh\">${escape_html(metrics().executionTimeMs)}ms</span></div> <div class=\"metric-card svelte-10vh4gh\"><span class=\"metric-label svelte-10vh4gh\">Documents Returned</span> <span class=\"metric-value svelte-10vh4gh\">${escape_html(typeof metrics().nReturned === \"number\" ? metrics().nReturned.toLocaleString() : metrics().nReturned)}</span></div> <div class=\"metric-card svelte-10vh4gh\"><span class=\"metric-label svelte-10vh4gh\">Documents Examined</span> <span class=\"metric-value svelte-10vh4gh\">${escape_html(typeof metrics().docsExamined === \"number\" ? metrics().docsExamined.toLocaleString() : metrics().docsExamined)}</span></div> <div class=\"metric-card svelte-10vh4gh\"><span class=\"metric-label svelte-10vh4gh\">Keys Examined</span> <span class=\"metric-value svelte-10vh4gh\">${escape_html(typeof metrics().keysExamined === \"number\" ? metrics().keysExamined.toLocaleString() : metrics().keysExamined)}</span></div> <div class=\"metric-card svelte-10vh4gh\"><span class=\"metric-label svelte-10vh4gh\">Index Used</span> <span${attr_class(\"metric-value svelte-10vh4gh\", void 0, {\n \"warning\": metrics().indexUsed === \"COLLSCAN\",\n \"good\": metrics().indexUsed !== \"COLLSCAN\"\n })}>${escape_html(metrics().indexUsed)}</span></div> <div class=\"metric-card svelte-10vh4gh\"><span class=\"metric-label svelte-10vh4gh\">Query Stage</span> <span class=\"metric-value svelte-10vh4gh\">${escape_html(metrics().stage)}</span></div></div> `);\n if (efficiency() !== null) {\n $$renderer3.push(\"<!--[-->\");\n $$renderer3.push(`<div class=\"efficiency-bar mb-6\"><div class=\"flex justify-between items-center mb-2\"><span class=\"text-sm font-semibold\" style=\"color: var(--text);\">Efficiency</span> <span class=\"text-sm font-mono\" style=\"color: var(--text-secondary);\">${escape_html(efficiencyLabel())} (${escape_html(efficiency())}%)</span></div> <div class=\"h-2 rounded-full bg-[var(--color-3)] overflow-hidden\"><div${attr_class(\"h-full rounded-full transition-all duration-300\", void 0, {\n \"bg-green-500\": isEfficient() && Number(efficiency()) >= 70,\n \"bg-yellow-500\": isEfficient() && Number(efficiency()) >= 30 && Number(efficiency()) < 70,\n \"bg-red-500\": !isEfficient() || Number(efficiency()) < 30\n })}${attr_style(`width: ${stringify(isEfficient() ? Math.min(Number(efficiency()), 100) : 100)}%`)}></div></div> `);\n if (isEfficient() === false) {\n $$renderer3.push(\"<!--[-->\");\n $$renderer3.push(`<p class=\"text-xs mt-2\" style=\"color: var(--error);\">⚠️ This query is using a collection scan (COLLSCAN). Consider adding an index for better performance.</p>`);\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]--></div>`);\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]-->`);\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]--> <details class=\"mt-4\"><summary class=\"cursor-pointer text-sm font-semibold mb-3\" style=\"color: var(--link);\">View full explain output</summary> <div class=\"p-4 rounded-xl bg-[var(--color-3)] font-mono text-sm overflow-auto max-h-[400px] border border-[var(--border-color)]\">`);\n JsonValue_1($$renderer3, { value: data, collapsed: false });\n $$renderer3.push(`<!----></div></details>`);\n }\n });\n }\n });\n}\nfunction IconChevronDown($$renderer, $$props) {\n let { class: className = \"w-4 h-4\" } = $$props;\n $$renderer.push(`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"${attr_class(clsx(className))}><path d=\"m6 9 6 6 6-6\"></path></svg>`);\n}\nfunction IconEdit($$renderer, $$props) {\n let { class: className = \"w-4 h-4\" } = $$props;\n $$renderer.push(`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"${attr_class(clsx(className))}><path d=\"M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z\"></path><path d=\"m15 5 4 4\"></path></svg>`);\n}\nfunction SearchBox($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let {\n params = void 0,\n editMode = false,\n readonly = false,\n explainLoading = false,\n onexplain,\n onsearch,\n server,\n database,\n collection\n } = $$props;\n let showOptionalFields = params.sort !== \"{}\" || params.project !== \"{}\" || params.skip !== 0 || params.limit !== 20;\n let counter = Math.random();\n let queryMultiline = derived(() => params.query?.includes(\"\\n\") ?? false);\n const TIME_RANGES = [\n { label: \"Last 24 hours\", days: 1 },\n { label: \"Last 7 days\", days: 7 },\n { label: \"Last 30 days\", days: 30 },\n { label: \"Last 90 days\", days: 90 },\n { label: \"Last 180 days\", days: 180 }\n ];\n TIME_RANGES.map((r) => ({ ...r, count: null, error: null, loading: false }));\n $$renderer2.push(`<div class=\"rounded-2xl border border-[var(--border-color)] bg-[var(--light-background)]/70 shadow-sm p-3 sm:p-4\"><form class=\"flex flex-col gap-3\" method=\"GET\" action=\"?\"><div class=\"flex items-stretch gap-2\"><div class=\"flex-1 flex items-stretch rounded-xl border border-[var(--border-color)] overflow-hidden bg-[var(--color-3)]/50\"><button type=\"button\" class=\"h-full px-3 flex items-center gap-1 text-[13px] border-r border-[var(--border-color)] hover:bg-[var(--color-3)] transition cursor-pointer\" style=\"color: var(--text-secondary);\"><span class=\"capitalize\">${escape_html(params.mode)}</span> `);\n IconChevronDown($$renderer2, { class: \"w-3 h-3\" });\n $$renderer2.push(`<!----></button> `);\n if (params.mode === \"aggregation\") {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<textarea placeholder=\"[]\" name=\"query\" rows=\"5\" class=\"w-full px-3 py-2 bg-transparent outline-none font-mono text-[13px] resize-y svelte-1o0c7a1\" style=\"color: var(--text);\">`);\n const $$body = escape_html(params.query);\n if ($$body) {\n $$renderer2.push(`${$$body}`);\n }\n $$renderer2.push(`</textarea>`);\n } else if (params.mode === \"distinct\") {\n $$renderer2.push(\"<!--[1-->\");\n $$renderer2.push(`<input type=\"text\"${attr(\"value\", params.field)} name=\"field\" placeholder=\"field name\" class=\"w-full h-9 px-3 bg-transparent outline-none font-mono text-[13px] border-0 !rounded-none svelte-1o0c7a1\" style=\"color: var(--text);\"/>`);\n } else if (queryMultiline()) {\n $$renderer2.push(\"<!--[2-->\");\n $$renderer2.push(`<textarea placeholder=\"{}\" name=\"query\" rows=\"5\" class=\"w-full px-3 py-2 bg-transparent outline-none font-mono text-[13px] resize-y svelte-1o0c7a1\" style=\"color: var(--text);\">`);\n const $$body_1 = escape_html(params.query);\n if ($$body_1) {\n $$renderer2.push(`${$$body_1}`);\n }\n $$renderer2.push(`</textarea>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n $$renderer2.push(`<input type=\"text\"${attr(\"value\", params.query)} placeholder=\"{}\" name=\"query\" class=\"w-full h-9 px-3 bg-transparent outline-none font-mono text-[13px] border-0 !rounded-none svelte-1o0c7a1\" style=\"color: var(--text);\"/>`);\n }\n $$renderer2.push(`<!--]--></div> <input type=\"hidden\"${attr(\"value\", params.mode)} name=\"mode\"/> <input type=\"hidden\"${attr(\"value\", counter)} name=\"v\"/> <div class=\"flex items-center gap-2\">`);\n if (server && database && collection) {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<button type=\"button\" class=\"h-9 px-3 rounded-xl border border-[var(--border-color)] bg-[var(--light-background)] hover:bg-[var(--color-3)] transition cursor-pointer text-[13px] font-medium flex items-center gap-1\" style=\"color: var(--text-secondary);\" title=\"Filter by document creation time\"><span>📊</span> `);\n IconChevronDown($$renderer2, { class: \"w-3 h-3\" });\n $$renderer2.push(`<!----></button>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]--> <button type=\"button\" class=\"h-9 px-3 rounded-xl border border-[var(--border-color)] bg-[var(--light-background)] hover:bg-[var(--color-3)] text-[15px] font-semibold leading-none transition cursor-pointer\" style=\"color: var(--text);\" title=\"Toggle optional fields\">${escape_html(showOptionalFields ? \"−\" : \"+\")}</button> `);\n if (!readonly) {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<button type=\"button\" class=\"h-9 px-3 rounded-xl border border-[var(--border-color)] bg-[var(--light-background)] hover:bg-[var(--color-3)] transition disabled:opacity-50 cursor-pointer\" style=\"color: var(--text);\"${attr(\"title\", params.mode !== \"query\" ? \"Update not available in this mode\" : \"Update multiple documents\")}${attr(\"disabled\", params.mode !== \"query\", true)}>`);\n IconEdit($$renderer2, { class: \"w-4 h-4\" });\n $$renderer2.push(`<!----></button>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]--> `);\n if (onexplain) {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<button type=\"button\" class=\"h-9 px-3 rounded-xl border border-[var(--border-color)] bg-[var(--light-background)] hover:bg-[var(--color-3)] transition disabled:opacity-50 cursor-pointer text-[13px] font-medium\" style=\"color: var(--link);\"${attr(\"title\", params.mode === \"distinct\" ? \"Explain not available for distinct queries\" : \"Show query execution plan\")}${attr(\"disabled\", params.mode === \"distinct\" || explainLoading, true)}>${escape_html(explainLoading ? \"...\" : \"Explain\")}</button>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]--> <button type=\"submit\" class=\"h-9 px-4 py-0 rounded-xl btn btn-success text-lg font-semibold transition\">Go</button></div></div> `);\n if (showOptionalFields) {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<div class=\"grid gap-2 sm:grid-cols-2\">`);\n if (params.mode === \"distinct\") {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<div class=\"rounded-xl border border-[var(--border-color)] overflow-hidden bg-[var(--color-3)]/50 sm:col-span-2\"><div class=\"px-3 py-1.5 text-[12px] border-b border-[var(--border-color)]\" style=\"color: var(--text-secondary);\">Filter (optional)</div> <input type=\"text\"${attr(\"value\", params.query)} name=\"query\" placeholder=\"{}\" class=\"w-full h-9 px-3 bg-transparent outline-none font-mono text-[13px] border-0 !rounded-none svelte-1o0c7a1\" style=\"color: var(--text);\"/></div>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n $$renderer2.push(`<div class=\"rounded-xl border border-[var(--border-color)] overflow-hidden bg-[var(--color-3)]/50\"><div class=\"px-3 py-1.5 text-[12px] border-b border-[var(--border-color)]\" style=\"color: var(--text-secondary);\">Sort</div> <input type=\"text\"${attr(\"value\", params.sort)} name=\"sort\" placeholder=\"{}\" class=\"w-full h-9 px-3 bg-transparent outline-none font-mono text-[13px] border-0 !rounded-none svelte-1o0c7a1\" style=\"color: var(--text);\"/></div> <div class=\"rounded-xl border border-[var(--border-color)] overflow-hidden bg-[var(--color-3)]/50\"><div class=\"px-3 py-1.5 text-[12px] border-b border-[var(--border-color)]\" style=\"color: var(--text-secondary);\">Project</div> <input type=\"text\"${attr(\"value\", params.project)} name=\"project\" placeholder=\"{}\" class=\"w-full h-9 px-3 bg-transparent outline-none font-mono text-[13px] border-0 !rounded-none svelte-1o0c7a1\" style=\"color: var(--text);\"/></div>`);\n }\n $$renderer2.push(`<!--]--> <div class=\"rounded-xl border border-[var(--border-color)] overflow-hidden bg-[var(--color-3)]/50\"><div class=\"px-3 py-1.5 text-[12px] border-b border-[var(--border-color)]\" style=\"color: var(--text-secondary);\">Skip</div> <input type=\"number\"${attr(\"value\", params.skip)} name=\"skip\" min=\"0\" class=\"w-full h-9 px-3 bg-transparent outline-none font-mono text-[13px] border-0 !rounded-none svelte-1o0c7a1\" style=\"color: var(--text);\"/></div> <div class=\"rounded-xl border border-[var(--border-color)] overflow-hidden bg-[var(--color-3)]/50\"><div class=\"px-3 py-1.5 text-[12px] border-b border-[var(--border-color)]\" style=\"color: var(--text-secondary);\">Limit</div> <input type=\"number\"${attr(\"value\", params.limit)} name=\"limit\" min=\"1\" class=\"w-full h-9 px-3 bg-transparent outline-none font-mono text-[13px] border-0 !rounded-none svelte-1o0c7a1\" style=\"color: var(--text);\"/></div></div>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]--></form></div> `);\n {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]--> `);\n {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]-->`);\n bind_props($$props, { params, editMode, readonly });\n });\n}\nfunction IconCopy($$renderer, $$props) {\n let { class: className = \"w-4 h-4\" } = $$props;\n $$renderer.push(`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"${attr_class(clsx(className))}><rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\"></rect><path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"></path></svg>`);\n}\nfunction IconPlus($$renderer, $$props) {\n let { class: className = \"w-4 h-4\" } = $$props;\n $$renderer.push(`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"${attr_class(clsx(className))}><path d=\"M12 5v14M5 12h14\"></path></svg>`);\n}\nfunction IconSortReverse($$renderer, $$props) {\n let { class: className = \"w-4 h-4\" } = $$props;\n $$renderer.push(`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"${attr_class(clsx(className))}><path d=\"M3 6h18\"></path><path d=\"M7 12h10\"></path><path d=\"M10 18h4\"></path><path d=\"m7 16 3 3 3-3\"></path></svg>`);\n}\nfunction previousButton($$renderer, url, onClick) {\n $$renderer.push(`<a${attr(\"href\", resolve(url))} class=\"px-3 py-1 rounded-lg border border-[var(--border-color)] bg-[var(--light-background)] hover:bg-[var(--color-3)] text-[13px] transition no-underline -my-2\" style=\"color: var(--text);\">Previous</a>`);\n}\nfunction nextButton($$renderer, url, onClick) {\n $$renderer.push(`<a${attr(\"href\", resolve(url))} class=\"px-3 py-1 rounded-lg border border-[var(--border-color)] bg-[var(--light-background)] hover:bg-[var(--color-3)] text-[13px] transition no-underline\" style=\"color: var(--text);\">Next</a>`);\n}\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { data } = $$props;\n let params = { ...data.params };\n let dataPromise = derived(() => data.results);\n let editMode = false;\n let updateQuery = \"{}\";\n let isUpdating = false;\n let explainLoading = false;\n let explainData = null;\n let showExplain = false;\n let deleteState = {\n isCounting: false\n };\n let modifiedItems = null;\n let items = derived(() => modifiedItems ? { data: modifiedItems, error: null } : dataPromise());\n async function editDocument(_id, json, items2) {\n const partial = Boolean(params.project && params.project !== \"{}\" && Object.keys(parseJSON(params.project)).length > 0);\n const newId = json?._id?.$value;\n const oldId = _id?.$value;\n if (newId !== oldId) {\n notificationStore.notifyError(\"ObjectId changed. This is not supported, update canceled.\");\n return;\n }\n if (!oldId) {\n return;\n }\n try {\n const result = await updateDocument({\n server: data.server,\n database: data.database,\n collection: data.collection,\n document: oldId,\n value: json,\n partial\n });\n if (result.ok) {\n notificationStore.notifySuccess(\"Document updated successfully\");\n const index = items2.findIndex((item) => item._id?.$value === oldId);\n if (index !== -1) {\n items2[index] = result.update;\n }\n modifiedItems = items2;\n }\n } catch (error) {\n console.error(error);\n notificationStore.notifyError(error, \"Failed to update document\");\n }\n }\n async function removeDocument(_id, items2) {\n const documentId = _id?.$value ?? _id;\n if (!documentId || typeof documentId !== \"string\") {\n return;\n }\n try {\n await deleteDocument({\n server: data.server,\n database: data.database,\n collection: data.collection,\n document: documentId\n });\n notificationStore.notifySuccess(\"Document removed successfully\");\n modifiedItems = items2.filter((item) => (item._id?.$value ?? item._id) !== documentId);\n } catch (error) {\n notificationStore.notifyError(error, \"Failed to remove document\");\n }\n }\n function buildUrl(skip) {\n const queryParams = new SvelteURLSearchParams();\n queryParams.set(\"query\", params.query || \"{}\");\n queryParams.set(\"sort\", params.sort || \"\");\n queryParams.set(\"project\", params.project || \"\");\n queryParams.set(\"skip\", String(skip));\n queryParams.set(\"limit\", String(params.limit));\n return `/servers/${encodeURIComponent(data.server)}/databases/${encodeURIComponent(data.database)}/collections/${encodeURIComponent(data.collection)}/documents?${queryParams.toString()}`;\n }\n const nextUrl = derived(() => buildUrl(params.skip + params.limit));\n const previousUrl = derived(() => buildUrl(Math.max(0, params.skip - params.limit)));\n async function handleExplain() {\n explainLoading = true;\n try {\n const result = await explainQuery({\n server: data.server,\n database: data.database,\n collection: data.collection,\n query: params.query || \"{}\",\n sort: params.sort || \"{}\",\n project: params.project || \"{}\",\n skip: params.skip,\n limit: params.limit,\n mode: params.mode === \"aggregation\" ? \"aggregation\" : \"query\",\n verbosity: \"executionStats\"\n });\n if (result.error) {\n notificationStore.notifyError(result.error);\n } else {\n explainData = result.data;\n showExplain = true;\n }\n } catch (error) {\n console.error(error);\n notificationStore.notifyError(error, \"Failed to explain query\");\n } finally {\n explainLoading = false;\n }\n }\n function handleSearch(searchParams) {\n const normalizedParams = { ...searchParams, field: searchParams.field ?? \"\" };\n data.params = normalizedParams;\n params = normalizedParams;\n dataPromise(loadDocuments({\n server: data.server,\n database: data.database,\n collection: data.collection,\n query: normalizedParams.query,\n sort: normalizedParams.sort,\n project: normalizedParams.project,\n skip: normalizedParams.skip,\n limit: normalizedParams.limit,\n mode: normalizedParams.mode,\n field: normalizedParams.field\n }));\n data.count = countDocuments({\n server: data.server,\n database: data.database,\n collection: data.collection,\n filter: normalizedParams.query\n });\n }\n function sortButton($$renderer3) {\n $$renderer3.push(`<button class=\"px-3 py-1 rounded-lg border border-[var(--border-color)] bg-[var(--light-background)] hover:bg-[var(--color-3)] text-[13px] transition\" style=\"color: var(--text); cursor: pointer;\" title=\"Reverse sort order\">`);\n IconSortReverse($$renderer3, { class: \"w-4 h-4\" });\n $$renderer3.push(`<!----></button>`);\n }\n function copyButton($$renderer3, items2) {\n $$renderer3.push(`<button class=\"px-3 py-1 rounded-lg border border-[var(--border-color)] bg-[var(--light-background)] hover:bg-[var(--color-3)] text-[13px] transition\" style=\"color: var(--text); cursor: pointer;\" title=\"Copy distinct values\">`);\n IconCopy($$renderer3, { class: \"w-4 h-4\" });\n $$renderer3.push(`<!----></button>`);\n }\n let $$settled = true;\n let $$inner_renderer;\n function $$render_inner($$renderer3) {\n SearchBox($$renderer3, {\n readonly: data.readOnly,\n explainLoading,\n onexplain: handleExplain,\n onsearch: handleSearch,\n server: data.server,\n database: data.database,\n collection: data.collection,\n get params() {\n return params;\n },\n set params($$value) {\n params = $$value;\n $$settled = false;\n },\n get editMode() {\n return editMode;\n },\n set editMode($$value) {\n editMode = $$value;\n $$settled = false;\n }\n });\n $$renderer3.push(`<!----> `);\n ExplainPanel($$renderer3, {\n data: explainData,\n show: showExplain,\n onclose: () => showExplain = false\n });\n $$renderer3.push(`<!----> `);\n if (editMode) {\n $$renderer3.push(\"<!--[-->\");\n Panel($$renderer3, {\n title: \"Edit Mode\",\n children: ($$renderer4) => {\n $$renderer4.push(`<div class=\"p-4 sm:p-6 space-y-6\"><div class=\"rounded-xl bg-[var(--color-3)]/30 p-4 border border-[var(--border-color)]\"><h3 class=\"text-lg font-semibold mb-3\" style=\"color: var(--text);\">Insert New Document</h3> `);\n {\n $$renderer4.push(\"<!--[-->\");\n $$renderer4.push(`<button class=\"btn btn-success\">`);\n IconPlus($$renderer4, { class: \"w-4 h-4 inline mr-2\" });\n $$renderer4.push(`<!----> Insert Document</button>`);\n }\n $$renderer4.push(`<!--]--></div> <div class=\"rounded-xl bg-[var(--color-3)]/30 p-4 border border-[var(--border-color)]\"><h3 class=\"text-lg font-semibold mb-3\" style=\"color: var(--text);\">Update Multiple Documents</h3> <div class=\"space-y-4\"><div><label for=\"update-filter\" class=\"block text-sm font-semibold mb-2\" style=\"color: var(--text);\">Filter (which documents to update):</label> <input type=\"text\" id=\"update-filter\"${attr(\"value\", params.query || \"{}\")} readonly=\"\" class=\"w-full p-3 rounded-xl border border-[var(--border-color)] bg-[var(--color-3)] font-mono text-sm opacity-75 cursor-not-allowed\" style=\"color: var(--text);\"/> <p class=\"text-xs mt-2\" style=\"color: var(--text-secondary);\">This filter is taken from the query above. Modify the query to change which documents will be updated.</p></div> <div><label for=\"update-operation\" class=\"block text-sm font-semibold mb-2\" style=\"color: var(--text);\">Update Operation (e.g., $set, $inc, $unset):</label> <textarea placeholder=\"Update operation\" rows=\"4\" class=\"w-full p-3 rounded-xl border border-[var(--border-color)] bg-[var(--color-3)] font-mono text-sm focus:outline-none focus:ring-2\" style=\"color: var(--text); --tw-ring-color: var(--link);\">`);\n const $$body_1 = escape_html(updateQuery);\n if ($$body_1) {\n $$renderer4.push(`${$$body_1}`);\n }\n $$renderer4.push(`</textarea></div> <div class=\"flex gap-3\"><button class=\"btn btn-success hover:bg-[var(--button-success-l)]\"${attr(\"disabled\", isUpdating, true)}>${escape_html(\"Execute Update\")}</button></div></div></div> <div class=\"rounded-xl bg-[var(--color-3)]/30 p-4 border border-[var(--border-color)]\"><h3 class=\"text-lg font-semibold mb-3\" style=\"color: var(--text);\">Delete Multiple Documents</h3> <div class=\"space-y-4\"><div><label for=\"delete-filter\" class=\"block text-sm font-semibold mb-2\" style=\"color: var(--text);\">Filter (which documents to delete):</label> <input type=\"text\" id=\"delete-filter\"${attr(\"value\", params.query || \"{}\")} readonly=\"\" class=\"w-full p-3 rounded-xl border border-[var(--border-color)] bg-[var(--color-3)] font-mono text-sm opacity-75 cursor-not-allowed\" style=\"color: var(--text);\"/> <p class=\"text-xs mt-2\" style=\"color: var(--text-secondary);\">This filter is taken from the query above. Modify the query to change which documents will be deleted.</p></div> `);\n {\n $$renderer4.push(\"<!--[-->\");\n $$renderer4.push(`<div class=\"flex gap-3\"><button class=\"btn btn-default\"${attr(\"disabled\", deleteState.isCounting, true)}>${escape_html(\"Check Document Count\")}</button></div>`);\n }\n $$renderer4.push(`<!--]--></div></div> <div class=\"flex justify-end\"><button class=\"btn btn-default hover:bg-[var(--color-3)]\">Close Edit Mode</button></div> <div class=\"text-sm rounded-xl bg-[var(--color-3)]/50 p-4 border border-[var(--border-color)]\" style=\"color: var(--text-secondary);\"><p class=\"mb-2 font-semibold\" style=\"color: var(--text);\">Update Operation Examples:</p> <p class=\"mb-2\">• Set a field: <code class=\"bg-[var(--light-background)] px-2 py-1 rounded border border-[var(--border-color)] font-mono text-xs\">{\"$set\": {\"status\": \"active\"}}</code></p> <p class=\"mb-2\">• Increment a value: <code class=\"bg-[var(--light-background)] px-2 py-1 rounded border border-[var(--border-color)] font-mono text-xs\">{\"$inc\": {\"count\": 1}}</code></p> <p class=\"mb-2\">• Unset a field: <code class=\"bg-[var(--light-background)] px-2 py-1 rounded border border-[var(--border-color)] font-mono text-xs\">{\"$unset\": {\"oldField\": \"\"}}</code></p> <p>• Pipeline (compute from existing fields): <code class=\"bg-[var(--light-background)] px-2 py-1 rounded border border-[var(--border-color)] font-mono text-xs\">[{\"$set\": {\"fullName\": {\"$concat\": [\"$firstName\", \" \", \"$lastName\"]}}}]</code></p></div></div>`);\n },\n $$slots: { default: true }\n });\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]--> `);\n await_block(\n $$renderer3,\n items(),\n () => {\n {\n let actions = function($$renderer4) {\n {\n $$renderer4.push(\"<!--[!-->\");\n }\n $$renderer4.push(`<!--]-->`);\n };\n Panel($$renderer3, {\n title: data.params.mode === \"distinct\" ? \"Loading distinct values...\" : \"Loading documents...\",\n titleClass: \"py-1\",\n actions,\n $$slots: { actions: true }\n });\n }\n },\n (resultsData) => {\n const items2 = resultsData?.data ?? [];\n await_block(\n $$renderer3,\n data.count,\n () => {\n {\n let actions = function($$renderer4) {\n if (data.params.skip > 0) {\n $$renderer4.push(\"<!--[-->\");\n previousButton($$renderer4, previousUrl());\n } else {\n $$renderer4.push(\"<!--[!-->\");\n }\n $$renderer4.push(`<!--]--> `);\n if (items2.length >= data.params.limit) {\n $$renderer4.push(\"<!--[-->\");\n nextButton($$renderer4, nextUrl());\n } else {\n $$renderer4.push(\"<!--[!-->\");\n }\n $$renderer4.push(`<!--]--> `);\n if (data.params.mode === \"distinct\") {\n $$renderer4.push(\"<!--[-->\");\n copyButton($$renderer4);\n } else {\n $$renderer4.push(\"<!--[!-->\");\n sortButton($$renderer4);\n }\n $$renderer4.push(`<!--]-->`);\n };\n Panel($$renderer3, {\n titleClass: \"py-1\",\n title: items2.length > 0 ? data.params.mode === \"distinct\" ? `${formatNumber(items2.length)} distinct value${items2.length === 1 ? \"\" : \"s\"} (counting...)` : `${formatNumber(data.params.skip + 1)} - ${formatNumber(data.params.skip + items2.length)} Documents (counting...)` : data.params.mode === \"distinct\" ? \"No distinct values\" : \"No documents\",\n actions,\n $$slots: { actions: true }\n });\n }\n },\n (countData) => {\n if (data.params) {\n $$renderer3.push(\"<!--[-->\");\n const count = countData.data;\n const hasNext = countData.error ? items2.length >= data.params.limit : data.params.skip + items2.length < count;\n const hasPrevious = data.params.skip > 0;\n const isTimeout = countData.error?.includes(\"operation exceeded time limit\");\n {\n let actions = function($$renderer4) {\n if (hasPrevious) {\n $$renderer4.push(\"<!--[-->\");\n previousButton($$renderer4, previousUrl());\n } else {\n $$renderer4.push(\"<!--[!-->\");\n }\n $$renderer4.push(`<!--]--> `);\n if (hasNext) {\n $$renderer4.push(\"<!--[-->\");\n nextButton($$renderer4, nextUrl());\n } else {\n $$renderer4.push(\"<!--[!-->\");\n }\n $$renderer4.push(`<!--]--> `);\n if (data.params.mode === \"distinct\") {\n $$renderer4.push(\"<!--[-->\");\n copyButton($$renderer4);\n } else {\n $$renderer4.push(\"<!--[!-->\");\n sortButton($$renderer4);\n }\n $$renderer4.push(`<!--]-->`);\n };\n Panel($$renderer3, {\n title: items2.length > 0 ? data.params.mode === \"distinct\" ? `${formatNumber(count)} distinct value${count === 1 ? \"\" : \"s\"}` : count > 0 ? `${formatNumber(data.params.skip + 1)} - ${formatNumber(data.params.skip + items2.length)} of ${formatNumber(count)} documents` : `${formatNumber(data.params.skip + 1)} - ${formatNumber(data.params.skip + items2.length)} documents (count ${isTimeout ? \"timeout\" : \"unavailable\"})` : data.params.mode === \"distinct\" ? \"No distinct values\" : \"No documents\",\n titleClass: \"py-1\",\n actions,\n $$slots: { actions: true }\n });\n }\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]-->`);\n }\n );\n $$renderer3.push(`<!--]--> <!--[-->`);\n const each_array = ensure_array_like(items2);\n for (let index = 0, $$length = each_array.length; index < $$length; index++) {\n let item = each_array[index];\n PrettyJson($$renderer3, {\n json: item,\n autoCollapse: true,\n onedit: data.params.mode === \"aggregation\" || data.params.mode === \"distinct\" || data.readOnly ? void 0 : (json) => editDocument(item._id, json, items2),\n onremove: data.params.mode === \"aggregation\" || data.params.mode === \"distinct\" || data.readOnly ? void 0 : () => removeDocument(item._id, items2),\n server: data.server,\n database: data.database,\n collection: data.collection,\n mappings: data.mappings\n });\n }\n $$renderer3.push(`<!--]-->`);\n }\n );\n $$renderer3.push(`<!--]-->`);\n }\n do {\n $$settled = true;\n $$inner_renderer = $$renderer2.copy();\n $$render_inner($$inner_renderer);\n } while (!$$settled);\n $$renderer2.subsume($$inner_renderer);\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,SAAS,YAAY,CAAC,UAAU,EAAE,OAAO,EAAE;AAC3C,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,KAAK;AACxC,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO;AACzC,IAAI,SAAS,eAAe,CAAC,IAAI,EAAE;AACnC,MAAM,IAAI,CAAC,IAAI,EAAE;AACjB,QAAQ,OAAO,IAAI;AACnB,MAAM;AACN,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE;AAC1B,QAAQ,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;AACrC,MAAM;AACN,MAAM,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AACrD,QAAQ,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;AACrC,MAAM;AACN,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE;AAC3B,QAAQ,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC;AACvD,QAAQ,IAAI,MAAM,EAAE;AACpB,UAAU,OAAO,MAAM;AACvB,QAAQ;AACR,MAAM;AACN,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;AAC3C,QAAQ,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE;AAC9C,UAAU,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC;AAC/C,UAAU,IAAI,MAAM,EAAE;AACtB,YAAY,OAAO,MAAM;AACzB,UAAU;AACV,QAAQ;AACR,MAAM;AACN,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE;AAC1B,QAAQ,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC;AACtD,QAAQ,IAAI,MAAM,EAAE;AACpB,UAAU,OAAO,MAAM;AACvB,QAAQ;AACR,MAAM;AACN,MAAM,OAAO,IAAI;AACjB,IAAI;AACJ,IAAI,SAAS,WAAW,CAAC,IAAI,EAAE;AAC/B,MAAM,IAAI,CAAC,IAAI,EAAE;AACjB,QAAQ,OAAO,KAAK;AACpB,MAAM;AACN,MAAM,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU,EAAE;AACrC,QAAQ,OAAO,IAAI;AACnB,MAAM;AACN,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE;AAC3B,QAAQ,IAAI,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AAC1C,UAAU,OAAO,IAAI;AACrB,QAAQ;AACR,MAAM;AACN,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;AAC3C,QAAQ,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE;AAC9C,UAAU,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;AAClC,YAAY,OAAO,IAAI;AACvB,UAAU;AACV,QAAQ;AACR,MAAM;AACN,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE;AAC1B,QAAQ,IAAI,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;AACzC,UAAU,OAAO,IAAI;AACrB,QAAQ;AACR,MAAM;AACN,MAAM,OAAO,KAAK;AAClB,IAAI;AACJ,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM;AAClC,MAAM,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC7C,QAAQ,OAAO,IAAI;AACnB,MAAM;AACN,MAAM,MAAM,CAAC,GAAG,IAAI;AACpB,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,cAAc;AACxC,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,YAAY;AACzC,MAAM,MAAM,WAAW,GAAG,YAAY,EAAE,WAAW;AACnD,MAAM,MAAM,SAAS,GAAG,eAAe,CAAC,WAAW,CAAC;AACpD,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC;AACjD,MAAM,IAAI,SAAS;AACnB,MAAM,IAAI,SAAS,EAAE;AACrB,QAAQ,SAAS,GAAG,SAAS;AAC7B,MAAM,CAAC,MAAM,IAAI,UAAU,EAAE;AAC7B,QAAQ,SAAS,GAAG,UAAU;AAC9B,MAAM,CAAC,MAAM;AACb,QAAQ,SAAS,GAAG,KAAK;AACzB,MAAM;AACN,MAAM,MAAM,KAAK,GAAG,WAAW,EAAE,KAAK,IAAI,KAAK;AAC/C,MAAM,OAAO;AACb,QAAQ,eAAe,EAAE,SAAS,EAAE,mBAAmB,IAAI,KAAK;AAChE,QAAQ,YAAY,EAAE,SAAS,EAAE,iBAAiB,IAAI,KAAK;AAC3D,QAAQ,YAAY,EAAE,SAAS,EAAE,iBAAiB,IAAI,KAAK;AAC3D,QAAQ,SAAS,EAAE,SAAS,EAAE,SAAS,IAAI,KAAK;AAChD,QAAQ,SAAS;AACjB,QAAQ;AACR,OAAO;AACP,IAAI,CAAC,CAAC;AACN,IAAI,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM;AACrC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE;AACtB,QAAQ,OAAO,IAAI;AACnB,MAAM;AACN,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC;AACzD,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC;AAClD,MAAM,IAAI,YAAY,GAAG,CAAC,EAAE;AAC5B,QAAQ,OAAO,CAAC,QAAQ,GAAG,YAAY,GAAG,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;AACzD,MAAM;AACN,MAAM,OAAO,KAAK;AAClB,IAAI,CAAC,CAAC;AACN,IAAI,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM;AAC1C,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE;AACtB,QAAQ,OAAO,EAAE;AACjB,MAAM;AACN,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC;AACzD,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC;AACzD,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC;AAClD,MAAM,IAAI,YAAY,GAAG,CAAC,EAAE;AAC5B,QAAQ,OAAO,CAAC,EAAE,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,aAAa,CAAC;AAC3D,MAAM;AACN,MAAM,OAAO,CAAC,EAAE,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC;AAC1D,IAAI,CAAC,CAAC;AACN,IAAI,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM;AACtC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE;AACtB,QAAQ,OAAO,IAAI;AACnB,MAAM;AACN,MAAM,IAAI,OAAO,EAAE,CAAC,SAAS,KAAK,UAAU,IAAI,OAAO,EAAE,CAAC,SAAS,KAAK,KAAK,EAAE;AAC/E,QAAQ,OAAO,KAAK;AACpB,MAAM;AACN,MAAM,OAAO,IAAI;AACjB,IAAI,CAAC,CAAC;AACN,IAAI;AACJ,MAAM,IAAI,MAAM,GAAG,SAAS,WAAW,EAAE;AACzC,QAAQ,WAAW,CAAC,IAAI,CAAC,CAAC,qDAAqD,CAAC,CAAC;AACjF,MAAM,CAAC;AACP,MAAM,KAAK,CAAC,WAAW,EAAE;AACzB,QAAQ,IAAI;AACZ,QAAQ,OAAO;AACf,QAAQ,KAAK,EAAE,iBAAiB;AAChC,QAAQ,IAAI,EAAE,IAAI;AAClB,QAAQ,MAAM;AACd,QAAQ,QAAQ,EAAE,CAAC,WAAW,KAAK;AACnC,UAAU,IAAI,OAAO,EAAE,EAAE;AACzB,YAAY,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AACxC,YAAY,WAAW,CAAC,IAAI,CAAC,CAAC,0MAA0M,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC,eAAe,CAAC,CAAC,sKAAsK,EAAE,WAAW,CAAC,OAAO,OAAO,EAAE,CAAC,SAAS,KAAK,QAAQ,GAAG,OAAO,EAAE,CAAC,SAAS,CAAC,cAAc,EAAE,GAAG,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,oKAAoK,EAAE,WAAW,CAAC,OAAO,OAAO,EAAE,CAAC,YAAY,KAAK,QAAQ,GAAG,OAAO,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,GAAG,OAAO,EAAE,CAAC,YAAY,CAAC,CAAC,+JAA+J,EAAE,WAAW,CAAC,OAAO,OAAO,EAAE,CAAC,YAAY,KAAK,QAAQ,GAAG,OAAO,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,GAAG,OAAO,EAAE,CAAC,YAAY,CAAC,CAAC,uHAAuH,EAAE,UAAU,CAAC,6BAA6B,EAAE,MAAM,EAAE;AACnxC,cAAc,SAAS,EAAE,OAAO,EAAE,CAAC,SAAS,KAAK,UAAU;AAC3D,cAAc,MAAM,EAAE,OAAO,EAAE,CAAC,SAAS,KAAK;AAC9C,aAAa,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,6JAA6J,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAAC,CAAC;AACrQ,YAAY,IAAI,UAAU,EAAE,KAAK,IAAI,EAAE;AACvC,cAAc,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AAC1C,cAAc,WAAW,CAAC,IAAI,CAAC,CAAC,6OAA6O,EAAE,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC,sFAAsF,EAAE,UAAU,CAAC,iDAAiD,EAAE,MAAM,EAAE;AAC1e,gBAAgB,cAAc,EAAE,WAAW,EAAE,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE;AAC3E,gBAAgB,eAAe,EAAE,WAAW,EAAE,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE;AACzG,gBAAgB,YAAY,EAAE,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC,GAAG;AACvE,eAAe,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;AACjI,cAAc,IAAI,WAAW,EAAE,KAAK,KAAK,EAAE;AAC3C,gBAAgB,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AAC5C,gBAAgB,WAAW,CAAC,IAAI,CAAC,CAAC,8JAA8J,CAAC,CAAC;AAClM,cAAc,CAAC,MAAM;AACrB,gBAAgB,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AAC7C,cAAc;AACd,cAAc,WAAW,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC;AAChD,YAAY,CAAC,MAAM;AACnB,cAAc,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AAC3C,YAAY;AACZ,YAAY,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AACxC,UAAU,CAAC,MAAM;AACjB,YAAY,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACzC,UAAU;AACV,UAAU,WAAW,CAAC,IAAI,CAAC,CAAC,2RAA2R,CAAC,CAAC;AACzT,UAAU,WAAW,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AACrE,UAAU,WAAW,CAAC,IAAI,CAAC,CAAC,uBAAuB,CAAC,CAAC;AACrD,QAAQ;AACR,OAAO,CAAC;AACR,IAAI;AACJ,EAAE,CAAC,CAAC;AACJ;AACA,SAAS,eAAe,CAAC,UAAU,EAAE,OAAO,EAAE;AAC9C,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO;AAChD,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,6JAA6J,EAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC;AACrP;AACA,SAAS,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE;AACvC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO;AAChD,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,6JAA6J,EAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,oGAAoG,CAAC,CAAC;AACpT;AACA,SAAS,SAAS,CAAC,UAAU,EAAE,OAAO,EAAE;AACxC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,KAAK;AACxC,IAAI,IAAI;AACR,MAAM,MAAM,GAAG,MAAM;AACrB,MAAM,QAAQ,GAAG,KAAK;AACtB,MAAM,QAAQ,GAAG,KAAK;AACtB,MAAM,cAAc,GAAG,KAAK;AAC5B,MAAM,SAAS;AACf,MAAM,QAAQ;AACd,MAAM,MAAM;AACZ,MAAM,QAAQ;AACd,MAAM;AACN,KAAK,GAAG,OAAO;AACf,IAAI,IAAI,kBAAkB,GAAG,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,KAAK,EAAE;AACxH,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE;AAC/B,IAAI,IAAI,cAAc,GAAG,OAAO,CAAC,MAAM,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;AAC7E,IAAI,MAAM,WAAW,GAAG;AACxB,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,EAAE;AACzC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE;AACvC,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,EAAE;AACzC,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,EAAE;AACzC,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG;AACzC,KAAK;AACL,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AAChF,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,sjBAAsjB,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AACjnB,IAAI,eAAe,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AACtD,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC;AACzC,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;AACvC,MAAM,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AAClC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,gLAAgL,CAAC,CAAC;AAC1M,MAAM,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;AAC9C,MAAM,IAAI,MAAM,EAAE;AAClB,QAAQ,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AACrC,MAAM;AACN,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC;AACrC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE;AAC3C,MAAM,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACnC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,oLAAoL,CAAC,CAAC;AAC9P,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,EAAE;AACjC,MAAM,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACnC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,gLAAgL,CAAC,CAAC;AAC1M,MAAM,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;AAChD,MAAM,IAAI,QAAQ,EAAE;AACpB,QAAQ,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AACvC,MAAM;AACN,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC;AACrC,IAAI,CAAC,MAAM;AACX,MAAM,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACnC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,4KAA4K,CAAC,CAAC;AACtP,IAAI;AACJ,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,mCAAmC,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,mCAAmC,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,iDAAiD,CAAC,CAAC;AACrM,IAAI,IAAI,MAAM,IAAI,QAAQ,IAAI,UAAU,EAAE;AAC1C,MAAM,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AAClC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,sTAAsT,CAAC,CAAC;AAChV,MAAM,eAAe,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AACxD,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC;AAC1C,IAAI,CAAC,MAAM;AACX,MAAM,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACnC,IAAI;AACJ,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,kRAAkR,EAAE,WAAW,CAAC,kBAAkB,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;AAClW,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,MAAM,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AAClC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,sNAAsN,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,KAAK,OAAO,GAAG,mCAAmC,GAAG,2BAA2B,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAChZ,MAAM,QAAQ,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AACjD,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC;AAC1C,IAAI,CAAC,MAAM;AACX,MAAM,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACnC,IAAI;AACJ,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;AACjC,IAAI,IAAI,SAAS,EAAE;AACnB,MAAM,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AAClC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,8OAA8O,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,KAAK,UAAU,GAAG,4CAA4C,GAAG,2BAA2B,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,cAAc,GAAG,KAAK,GAAG,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC;AACpgB,IAAI,CAAC,MAAM;AACX,MAAM,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACnC,IAAI;AACJ,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,yIAAyI,CAAC,CAAC;AACjK,IAAI,IAAI,kBAAkB,EAAE;AAC5B,MAAM,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AAClC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,uCAAuC,CAAC,CAAC;AACjE,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE;AACtC,QAAQ,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AACpC,QAAQ,WAAW,CAAC,IAAI,CAAC,CAAC,4QAA4Q,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,kLAAkL,CAAC,CAAC;AACxf,MAAM,CAAC,MAAM;AACb,QAAQ,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACrC,QAAQ,WAAW,CAAC,IAAI,CAAC,CAAC,iPAAiP,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,saAAsa,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,oLAAoL,CAAC,CAAC;AACp6B,MAAM;AACN,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,4PAA4P,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,6ZAA6Z,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,+KAA+K,CAAC,CAAC;AAC75B,IAAI,CAAC,MAAM;AACX,MAAM,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACnC,IAAI;AACJ,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,sBAAsB,CAAC,CAAC;AAC9C,IAAI;AACJ,MAAM,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACnC,IAAI;AACJ,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;AACjC,IAAI;AACJ,MAAM,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACnC,IAAI;AACJ,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AAChC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACvD,EAAE,CAAC,CAAC;AACJ;AACA,SAAS,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE;AACvC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO;AAChD,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,6JAA6J,EAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,8IAA8I,CAAC,CAAC;AAC9V;AACA,SAAS,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE;AACvC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO;AAChD,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,6JAA6J,EAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,yCAAyC,CAAC,CAAC;AACzP;AACA,SAAS,eAAe,CAAC,UAAU,EAAE,OAAO,EAAE;AAC9C,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO;AAChD,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,6JAA6J,EAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,mHAAmH,CAAC,CAAC;AACnU;AACA,SAAS,cAAc,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE;AAClD,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,2MAA2M,CAAC,CAAC;AAC/P;AACA,SAAS,UAAU,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE;AAC9C,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,iMAAiM,CAAC,CAAC;AACrP;AACA,SAAS,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACpC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,KAAK;AACxC,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO;AAC1B,IAAI,IAAI,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE;AACnC,IAAI,IAAI,WAAW,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC;AACjD,IAAI,IAAI,QAAQ,GAAG,KAAK;AACxB,IAAI,IAAI,WAAW,GAAG,IAAI;AAC1B,IAAI,IAAI,UAAU,GAAG,KAAK;AAC1B,IAAI,IAAI,cAAc,GAAG,KAAK;AAC9B,IAAI,IAAI,WAAW,GAAG,IAAI;AAC1B,IAAI,IAAI,WAAW,GAAG,KAAK;AAC3B,IAAI,IAAI,WAAW,GAAG;AACtB,MAAM,UAAU,EAAE;AAClB,KAAK;AACL,IAAI,IAAI,aAAa,GAAG,IAAI;AAC5B,IAAI,IAAI,KAAK,GAAG,OAAO,CAAC,MAAM,aAAa,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,WAAW,EAAE,CAAC;AACnG,IAAI,eAAe,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE;AACnD,MAAM,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7H,MAAM,MAAM,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM;AACrC,MAAM,MAAM,KAAK,GAAG,GAAG,EAAE,MAAM;AAC/B,MAAM,IAAI,KAAK,KAAK,KAAK,EAAE;AAC3B,QAAQ,iBAAiB,CAAC,WAAW,CAAC,2DAA2D,CAAC;AAClG,QAAQ;AACR,MAAM;AACN,MAAM,IAAI,CAAC,KAAK,EAAE;AAClB,QAAQ;AACR,MAAM;AACN,MAAM,IAAI;AACV,QAAQ,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC;AAC5C,UAAU,MAAM,EAAE,IAAI,CAAC,MAAM;AAC7B,UAAU,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACjC,UAAU,UAAU,EAAE,IAAI,CAAC,UAAU;AACrC,UAAU,QAAQ,EAAE,KAAK;AACzB,UAAU,KAAK,EAAE,IAAI;AACrB,UAAU;AACV,SAAS,CAAC;AACV,QAAQ,IAAI,MAAM,CAAC,EAAE,EAAE;AACvB,UAAU,iBAAiB,CAAC,aAAa,CAAC,+BAA+B,CAAC;AAC1E,UAAU,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,EAAE,MAAM,KAAK,KAAK,CAAC;AAC9E,UAAU,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AAC5B,YAAY,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM;AACzC,UAAU;AACV,UAAU,aAAa,GAAG,MAAM;AAChC,QAAQ;AACR,MAAM,CAAC,CAAC,OAAO,KAAK,EAAE;AACtB,QAAQ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AAC5B,QAAQ,iBAAiB,CAAC,WAAW,CAAC,KAAK,EAAE,2BAA2B,CAAC;AACzE,MAAM;AACN,IAAI;AACJ,IAAI,eAAe,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE;AAC/C,MAAM,MAAM,UAAU,GAAG,GAAG,EAAE,MAAM,IAAI,GAAG;AAC3C,MAAM,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AACzD,QAAQ;AACR,MAAM;AACN,MAAM,IAAI;AACV,QAAQ,MAAM,cAAc,CAAC;AAC7B,UAAU,MAAM,EAAE,IAAI,CAAC,MAAM;AAC7B,UAAU,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACjC,UAAU,UAAU,EAAE,IAAI,CAAC,UAAU;AACrC,UAAU,QAAQ,EAAE;AACpB,SAAS,CAAC;AACV,QAAQ,iBAAiB,CAAC,aAAa,CAAC,+BAA+B,CAAC;AACxE,QAAQ,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,IAAI,IAAI,CAAC,GAAG,MAAM,UAAU,CAAC;AAC9F,MAAM,CAAC,CAAC,OAAO,KAAK,EAAE;AACtB,QAAQ,iBAAiB,CAAC,WAAW,CAAC,KAAK,EAAE,2BAA2B,CAAC;AACzE,MAAM;AACN,IAAI;AACJ,IAAI,SAAS,QAAQ,CAAC,IAAI,EAAE;AAC5B,MAAM,MAAM,WAAW,GAAG,IAAI,qBAAqB,EAAE;AACrD,MAAM,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC;AACpD,MAAM,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;AAChD,MAAM,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;AACtD,MAAM,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AAC3C,MAAM,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACpD,MAAM,OAAO,CAAC,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChM,IAAI;AACJ,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AACvE,IAAI,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACxF,IAAI,eAAe,aAAa,GAAG;AACnC,MAAM,cAAc,GAAG,IAAI;AAC3B,MAAM,IAAI;AACV,QAAQ,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;AAC1C,UAAU,MAAM,EAAE,IAAI,CAAC,MAAM;AAC7B,UAAU,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACjC,UAAU,UAAU,EAAE,IAAI,CAAC,UAAU;AACrC,UAAU,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,IAAI;AACrC,UAAU,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI;AACnC,UAAU,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI;AACzC,UAAU,IAAI,EAAE,MAAM,CAAC,IAAI;AAC3B,UAAU,KAAK,EAAE,MAAM,CAAC,KAAK;AAC7B,UAAU,IAAI,EAAE,MAAM,CAAC,IAAI,KAAK,aAAa,GAAG,aAAa,GAAG,OAAO;AACvE,UAAU,SAAS,EAAE;AACrB,SAAS,CAAC;AACV,QAAQ,IAAI,MAAM,CAAC,KAAK,EAAE;AAC1B,UAAU,iBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;AACrD,QAAQ,CAAC,MAAM;AACf,UAAU,WAAW,GAAG,MAAM,CAAC,IAAI;AACnC,UAAU,WAAW,GAAG,IAAI;AAC5B,QAAQ;AACR,MAAM,CAAC,CAAC,OAAO,KAAK,EAAE;AACtB,QAAQ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AAC5B,QAAQ,iBAAiB,CAAC,WAAW,CAAC,KAAK,EAAE,yBAAyB,CAAC;AACvE,MAAM,CAAC,SAAS;AAChB,QAAQ,cAAc,GAAG,KAAK;AAC9B,MAAM;AACN,IAAI;AACJ,IAAI,SAAS,YAAY,CAAC,YAAY,EAAE;AACxC,MAAM,MAAM,gBAAgB,GAAG,EAAE,GAAG,YAAY,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,IAAI,EAAE,EAAE;AACnF,MAAM,IAAI,CAAC,MAAM,GAAG,gBAAgB;AACpC,MAAM,MAAM,GAAG,gBAAgB;AAC/B,MAAM,WAAW,CAAC,aAAa,CAAC;AAChC,QAAQ,MAAM,EAAE,IAAI,CAAC,MAAM;AAC3B,QAAQ,QAAQ,EAAE,IAAI,CAAC,QAAQ;AAC/B,QAAQ,UAAU,EAAE,IAAI,CAAC,UAAU;AACnC,QAAQ,KAAK,EAAE,gBAAgB,CAAC,KAAK;AACrC,QAAQ,IAAI,EAAE,gBAAgB,CAAC,IAAI;AACnC,QAAQ,OAAO,EAAE,gBAAgB,CAAC,OAAO;AACzC,QAAQ,IAAI,EAAE,gBAAgB,CAAC,IAAI;AACnC,QAAQ,KAAK,EAAE,gBAAgB,CAAC,KAAK;AACrC,QAAQ,IAAI,EAAE,gBAAgB,CAAC,IAAI;AACnC,QAAQ,KAAK,EAAE,gBAAgB,CAAC;AAChC,OAAO,CAAC,CAAC;AACT,MAAM,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;AAClC,QAAQ,MAAM,EAAE,IAAI,CAAC,MAAM;AAC3B,QAAQ,QAAQ,EAAE,IAAI,CAAC,QAAQ;AAC/B,QAAQ,UAAU,EAAE,IAAI,CAAC,UAAU;AACnC,QAAQ,MAAM,EAAE,gBAAgB,CAAC;AACjC,OAAO,CAAC;AACR,IAAI;AACJ,IAAI,SAAS,UAAU,CAAC,WAAW,EAAE;AACrC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,+NAA+N,CAAC,CAAC;AACzP,MAAM,eAAe,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AACxD,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC;AAC1C,IAAI;AACJ,IAAI,SAAS,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE;AAC7C,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,iOAAiO,CAAC,CAAC;AAC3P,MAAM,QAAQ,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AACjD,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC;AAC1C,IAAI;AACJ,IAAI,IAAI,SAAS,GAAG,IAAI;AACxB,IAAI,IAAI,gBAAgB;AACxB,IAAI,SAAS,cAAc,CAAC,WAAW,EAAE;AACzC,MAAM,SAAS,CAAC,WAAW,EAAE;AAC7B,QAAQ,QAAQ,EAAE,IAAI,CAAC,QAAQ;AAC/B,QAAQ,cAAc;AACtB,QAAQ,SAAS,EAAE,aAAa;AAChC,QAAQ,QAAQ,EAAE,YAAY;AAC9B,QAAQ,MAAM,EAAE,IAAI,CAAC,MAAM;AAC3B,QAAQ,QAAQ,EAAE,IAAI,CAAC,QAAQ;AAC/B,QAAQ,UAAU,EAAE,IAAI,CAAC,UAAU;AACnC,QAAQ,IAAI,MAAM,GAAG;AACrB,UAAU,OAAO,MAAM;AACvB,QAAQ,CAAC;AACT,QAAQ,IAAI,MAAM,CAAC,OAAO,EAAE;AAC5B,UAAU,MAAM,GAAG,OAAO;AAC1B,UAAU,SAAS,GAAG,KAAK;AAC3B,QAAQ,CAAC;AACT,QAAQ,IAAI,QAAQ,GAAG;AACvB,UAAU,OAAO,QAAQ;AACzB,QAAQ,CAAC;AACT,QAAQ,IAAI,QAAQ,CAAC,OAAO,EAAE;AAC9B,UAAU,QAAQ,GAAG,OAAO;AAC5B,UAAU,SAAS,GAAG,KAAK;AAC3B,QAAQ;AACR,OAAO,CAAC;AACR,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AAClC,MAAM,YAAY,CAAC,WAAW,EAAE;AAChC,QAAQ,IAAI,EAAE,WAAW;AACzB,QAAQ,IAAI,EAAE,WAAW;AACzB,QAAQ,OAAO,EAAE,MAAM,WAAW,GAAG;AACrC,OAAO,CAAC;AACR,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AAClC,MAAM,IAAI,QAAQ,EAAE;AACpB,QAAQ,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AACpC,QAAQ,KAAK,CAAC,WAAW,EAAE;AAC3B,UAAU,KAAK,EAAE,WAAW;AAC5B,UAAU,QAAQ,EAAE,CAAC,WAAW,KAAK;AACrC,YAAY,WAAW,CAAC,IAAI,CAAC,CAAC,qNAAqN,CAAC,CAAC;AACrP,YAAY;AACZ,cAAc,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AAC1C,cAAc,WAAW,CAAC,IAAI,CAAC,CAAC,gCAAgC,CAAC,CAAC;AAClE,cAAc,QAAQ,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC;AACrE,cAAc,WAAW,CAAC,IAAI,CAAC,CAAC,gCAAgC,CAAC,CAAC;AAClE,YAAY;AACZ,YAAY,WAAW,CAAC,IAAI,CAAC,CAAC,qZAAqZ,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,ivBAAivB,CAAC,CAAC;AAC5sC,YAAY,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC;AACrD,YAAY,IAAI,QAAQ,EAAE;AAC1B,cAAc,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC7C,YAAY;AACZ,YAAY,WAAW,CAAC,IAAI,CAAC,CAAC,4GAA4G,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC,kaAAka,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,gWAAgW,CAAC,CAAC;AAC1/B,YAAY;AACZ,cAAc,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AAC1C,cAAc,WAAW,CAAC,IAAI,CAAC,CAAC,uDAAuD,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,sBAAsB,CAAC,CAAC,eAAe,CAAC,CAAC;AAChM,YAAY;AACZ,YAAY,WAAW,CAAC,IAAI,CAAC,CAAC,2pCAA2pC,CAAC,CAAC;AAC3rC,UAAU,CAAC;AACX,UAAU,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI;AAClC,SAAS,CAAC;AACV,MAAM,CAAC,MAAM;AACb,QAAQ,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACrC,MAAM;AACN,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;AACnC,MAAM,WAAW;AACjB,QAAQ,WAAW;AACnB,QAAQ,KAAK,EAAE;AACf,QAAQ,MAAM;AACd,UAAU;AACV,YAAY,IAAI,OAAO,GAAG,SAAS,WAAW,EAAE;AAChD,cAAc;AACd,gBAAgB,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AAC7C,cAAc;AACd,cAAc,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC1C,YAAY,CAAC;AACb,YAAY,KAAK,CAAC,WAAW,EAAE;AAC/B,cAAc,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,GAAG,4BAA4B,GAAG,sBAAsB;AAC5G,cAAc,UAAU,EAAE,MAAM;AAChC,cAAc,OAAO;AACrB,cAAc,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI;AACtC,aAAa,CAAC;AACd,UAAU;AACV,QAAQ,CAAC;AACT,QAAQ,CAAC,WAAW,KAAK;AACzB,UAAU,MAAM,MAAM,GAAG,WAAW,EAAE,IAAI,IAAI,EAAE;AAChD,UAAU,WAAW;AACrB,YAAY,WAAW;AACvB,YAAY,IAAI,CAAC,KAAK;AACtB,YAAY,MAAM;AAClB,cAAc;AACd,gBAAgB,IAAI,OAAO,GAAG,SAAS,WAAW,EAAE;AACpD,kBAAkB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE;AAC5C,oBAAoB,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AAChD,oBAAoB,cAAc,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC;AAC9D,kBAAkB,CAAC,MAAM;AACzB,oBAAoB,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACjD,kBAAkB;AAClB,kBAAkB,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;AAC/C,kBAAkB,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AAC1D,oBAAoB,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AAChD,oBAAoB,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;AACtD,kBAAkB,CAAC,MAAM;AACzB,oBAAoB,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACjD,kBAAkB;AAClB,kBAAkB,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;AAC/C,kBAAkB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE;AACvD,oBAAoB,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AAChD,oBAAoB,UAAU,CAAC,WAAW,CAAC;AAC3C,kBAAkB,CAAC,MAAM;AACzB,oBAAoB,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACjD,oBAAoB,UAAU,CAAC,WAAW,CAAC;AAC3C,kBAAkB;AAClB,kBAAkB,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC9C,gBAAgB,CAAC;AACjB,gBAAgB,KAAK,CAAC,WAAW,EAAE;AACnC,kBAAkB,UAAU,EAAE,MAAM;AACpC,kBAAkB,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,GAAG,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,wBAAwB,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,GAAG,oBAAoB,GAAG,cAAc;AAC7W,kBAAkB,OAAO;AACzB,kBAAkB,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI;AAC1C,iBAAiB,CAAC;AAClB,cAAc;AACd,YAAY,CAAC;AACb,YAAY,CAAC,SAAS,KAAK;AAC3B,cAAc,IAAI,IAAI,CAAC,MAAM,EAAE;AAC/B,gBAAgB,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AAC5C,gBAAgB,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI;AAC5C,gBAAgB,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,KAAK;AAC/H,gBAAgB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC;AACxD,gBAAgB,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,+BAA+B,CAAC;AAC5F,gBAAgB;AAChB,kBAAkB,IAAI,OAAO,GAAG,SAAS,WAAW,EAAE;AACtD,oBAAoB,IAAI,WAAW,EAAE;AACrC,sBAAsB,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AAClD,sBAAsB,cAAc,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC;AAChE,oBAAoB,CAAC,MAAM;AAC3B,sBAAsB,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACnD,oBAAoB;AACpB,oBAAoB,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;AACjD,oBAAoB,IAAI,OAAO,EAAE;AACjC,sBAAsB,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AAClD,sBAAsB,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;AACxD,oBAAoB,CAAC,MAAM;AAC3B,sBAAsB,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACnD,oBAAoB;AACpB,oBAAoB,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;AACjD,oBAAoB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE;AACzD,sBAAsB,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AAClD,sBAAsB,UAAU,CAAC,WAAW,CAAC;AAC7C,oBAAoB,CAAC,MAAM;AAC3B,sBAAsB,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACnD,sBAAsB,UAAU,CAAC,WAAW,CAAC;AAC7C,oBAAoB;AACpB,oBAAoB,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AAChD,kBAAkB,CAAC;AACnB,kBAAkB,KAAK,CAAC,WAAW,EAAE;AACrC,oBAAoB,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,GAAG,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,eAAe,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,kBAAkB,EAAE,SAAS,GAAG,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,GAAG,oBAAoB,GAAG,cAAc;AAClgB,oBAAoB,UAAU,EAAE,MAAM;AACtC,oBAAoB,OAAO;AAC3B,oBAAoB,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI;AAC5C,mBAAmB,CAAC;AACpB,gBAAgB;AAChB,cAAc,CAAC,MAAM;AACrB,gBAAgB,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AAC7C,cAAc;AACd,cAAc,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC1C,YAAY;AACZ,WAAW;AACX,UAAU,WAAW,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC;AAC/C,UAAU,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC;AACtD,UAAU,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,GAAG,QAAQ,EAAE,KAAK,EAAE,EAAE;AACvF,YAAY,IAAI,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC;AACxC,YAAY,UAAU,CAAC,WAAW,EAAE;AACpC,cAAc,IAAI,EAAE,IAAI;AACxB,cAAc,YAAY,EAAE,IAAI;AAChC,cAAc,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC;AACtK,cAAc,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC;AAChK,cAAc,MAAM,EAAE,IAAI,CAAC,MAAM;AACjC,cAAc,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACrC,cAAc,UAAU,EAAE,IAAI,CAAC,UAAU;AACzC,cAAc,QAAQ,EAAE,IAAI,CAAC;AAC7B,aAAa,CAAC;AACd,UAAU;AACV,UAAU,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AACtC,QAAQ;AACR,OAAO;AACP,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AAClC,IAAI;AACJ,IAAI,GAAG;AACP,MAAM,SAAS,GAAG,IAAI;AACtB,MAAM,gBAAgB,GAAG,WAAW,CAAC,IAAI,EAAE;AAC3C,MAAM,cAAc,CAAC,gBAAgB,CAAC;AACtC,IAAI,CAAC,QAAQ,CAAC,SAAS;AACvB,IAAI,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC;AACzC,EAAE,CAAC,CAAC;AACJ;;;;"}