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.
- package/Dockerfile +1 -0
- package/README.md +25 -0
- package/build/client/_app/immutable/assets/0.CdYhspVa.css +1 -0
- package/build/client/_app/immutable/assets/0.CdYhspVa.css.br +0 -0
- package/build/client/_app/immutable/assets/0.CdYhspVa.css.gz +0 -0
- package/build/client/_app/immutable/chunks/{DdLT9cdj.js → B59nRjE7.js} +1 -1
- package/build/client/_app/immutable/chunks/B59nRjE7.js.br +2 -0
- package/build/client/_app/immutable/chunks/B59nRjE7.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BBqIHhSl.js +1 -0
- package/build/client/_app/immutable/chunks/BBqIHhSl.js.br +0 -0
- package/build/client/_app/immutable/chunks/BBqIHhSl.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BEi7QatZ.js → BIUJX0Ps.js} +6 -6
- package/build/client/_app/immutable/chunks/BIUJX0Ps.js.br +0 -0
- package/build/client/_app/immutable/chunks/BIUJX0Ps.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C6nv_pni.js +1 -0
- package/build/client/_app/immutable/chunks/C6nv_pni.js.br +0 -0
- package/build/client/_app/immutable/chunks/C6nv_pni.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Bh2n5Bfy.js → CETiZ6GF.js} +1 -1
- package/build/client/_app/immutable/chunks/CETiZ6GF.js.br +0 -0
- package/build/client/_app/immutable/chunks/CETiZ6GF.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CX0xC2bt.js +1 -0
- package/build/client/_app/immutable/chunks/CX0xC2bt.js.br +0 -0
- package/build/client/_app/immutable/chunks/CX0xC2bt.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CeXlKXQN.js +1 -0
- package/build/client/_app/immutable/chunks/CeXlKXQN.js.br +0 -0
- package/build/client/_app/immutable/chunks/CeXlKXQN.js.gz +0 -0
- package/build/client/_app/immutable/chunks/ChTiw7nk.js +4 -0
- package/build/client/_app/immutable/chunks/ChTiw7nk.js.br +0 -0
- package/build/client/_app/immutable/chunks/ChTiw7nk.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Czyt1_Wc.js +1 -0
- package/build/client/_app/immutable/chunks/Czyt1_Wc.js.br +0 -0
- package/build/client/_app/immutable/chunks/Czyt1_Wc.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{B5NTIIm5.js → DJHYr09v.js} +1 -1
- package/build/client/_app/immutable/chunks/DJHYr09v.js.br +0 -0
- package/build/client/_app/immutable/chunks/DJHYr09v.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{C2amz0TU.js → DZxZehvI.js} +1 -1
- package/build/client/_app/immutable/chunks/DZxZehvI.js.br +0 -0
- package/build/client/_app/immutable/chunks/DZxZehvI.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DaNl6Y92.js +2 -0
- package/build/client/_app/immutable/chunks/DaNl6Y92.js.br +0 -0
- package/build/client/_app/immutable/chunks/DaNl6Y92.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dbu5gl04.js +1 -0
- package/build/client/_app/immutable/chunks/Dbu5gl04.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dbu5gl04.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DczwA5Ds.js +1 -0
- package/build/client/_app/immutable/chunks/DczwA5Ds.js.br +0 -0
- package/build/client/_app/immutable/chunks/DczwA5Ds.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DjlV9yev.js +1 -0
- package/build/client/_app/immutable/chunks/DjlV9yev.js.br +0 -0
- package/build/client/_app/immutable/chunks/DjlV9yev.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DkIdyQoH.js +1 -0
- package/build/client/_app/immutable/chunks/DkIdyQoH.js.br +0 -0
- package/build/client/_app/immutable/chunks/DkIdyQoH.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DskkUG-R.js +41 -0
- package/build/client/_app/immutable/chunks/DskkUG-R.js.br +0 -0
- package/build/client/_app/immutable/chunks/DskkUG-R.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DtqR9xj2.js +16 -0
- package/build/client/_app/immutable/chunks/DtqR9xj2.js.br +0 -0
- package/build/client/_app/immutable/chunks/DtqR9xj2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{c-rWvg5T.js → Dv9wDVNU.js} +1 -1
- package/build/client/_app/immutable/chunks/Dv9wDVNU.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dv9wDVNU.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Bl8s7Z6r.js → DwvJoC1a.js} +1 -1
- package/build/client/_app/immutable/chunks/DwvJoC1a.js.br +0 -0
- package/build/client/_app/immutable/chunks/DwvJoC1a.js.gz +0 -0
- package/build/client/_app/immutable/chunks/ULh2o3ji.js +1 -0
- package/build/client/_app/immutable/chunks/ULh2o3ji.js.br +0 -0
- package/build/client/_app/immutable/chunks/ULh2o3ji.js.gz +0 -0
- package/build/client/_app/immutable/chunks/V1mdyEl2.js +1 -0
- package/build/client/_app/immutable/chunks/V1mdyEl2.js.br +0 -0
- package/build/client/_app/immutable/chunks/V1mdyEl2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DUw-I2kh.js → gjWX2x82.js} +1 -1
- package/build/client/_app/immutable/chunks/gjWX2x82.js.br +0 -0
- package/build/client/_app/immutable/chunks/gjWX2x82.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CxcplU4Q.js → y5L2Na-S.js} +1 -1
- package/build/client/_app/immutable/chunks/y5L2Na-S.js.br +0 -0
- package/build/client/_app/immutable/chunks/y5L2Na-S.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.DSC3O-oq.js +2 -0
- package/build/client/_app/immutable/entry/app.DSC3O-oq.js.br +0 -0
- package/build/client/_app/immutable/entry/app.DSC3O-oq.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.DXWFdQeQ.js +1 -0
- package/build/client/_app/immutable/entry/start.DXWFdQeQ.js.br +0 -0
- package/build/client/_app/immutable/entry/start.DXWFdQeQ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.CMAlzqMw.js +1 -0
- package/build/client/_app/immutable/nodes/0.CMAlzqMw.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.CMAlzqMw.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.B6Npt7WS.js +1 -0
- package/build/client/_app/immutable/nodes/1.B6Npt7WS.js.br +4 -0
- package/build/client/_app/immutable/nodes/1.B6Npt7WS.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.UKtNnnWx.js +2 -0
- package/build/client/_app/immutable/nodes/10.UKtNnnWx.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.UKtNnnWx.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.DZQrIhD6.js +6 -0
- package/build/client/_app/immutable/nodes/11.DZQrIhD6.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.DZQrIhD6.js.gz +0 -0
- package/build/client/_app/immutable/nodes/12.Bb2XzJJ4.js +1 -0
- package/build/client/_app/immutable/nodes/12.Bb2XzJJ4.js.br +0 -0
- package/build/client/_app/immutable/nodes/12.Bb2XzJJ4.js.gz +0 -0
- package/build/client/_app/immutable/nodes/13.B_EllgAJ.js +1 -0
- package/build/client/_app/immutable/nodes/13.B_EllgAJ.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.B_EllgAJ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/14.Ds1Cbw86.js +65 -0
- package/build/client/_app/immutable/nodes/14.Ds1Cbw86.js.br +0 -0
- package/build/client/_app/immutable/nodes/14.Ds1Cbw86.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{2.AM8fesja.js → 2.C6NzDBVE.js} +1 -1
- package/build/client/_app/immutable/nodes/2.C6NzDBVE.js.br +2 -0
- package/build/client/_app/immutable/nodes/2.C6NzDBVE.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{3.BShuoOz5.js → 3.CZJqJ4La.js} +1 -1
- package/build/client/_app/immutable/nodes/3.CZJqJ4La.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.CZJqJ4La.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{4.BD6QbApY.js → 4.CNe3XPNo.js} +1 -1
- package/build/client/_app/immutable/nodes/4.CNe3XPNo.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.CNe3XPNo.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{5.JM_dwz0R.js → 5.BWhhv567.js} +1 -1
- package/build/client/_app/immutable/nodes/5.BWhhv567.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.BWhhv567.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.DrDdJlUZ.js +1 -0
- package/build/client/_app/immutable/nodes/7.DrDdJlUZ.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.DrDdJlUZ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.DY5fyf2p.js +2 -0
- package/build/client/_app/immutable/nodes/8.DY5fyf2p.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.DY5fyf2p.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.DSZg3ucy.js +1 -0
- package/build/client/_app/immutable/nodes/9.DSZg3ucy.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.DSZg3ucy.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/client/robots.txt.br +0 -0
- package/build/client/robots.txt.gz +0 -0
- package/build/handler.js +290 -228
- package/build/server/chunks/0-94hvO2vX.js +31 -0
- package/build/server/chunks/0-94hvO2vX.js.map +1 -0
- package/build/server/chunks/1-DU2n-wa5.js +9 -0
- package/build/server/chunks/1-DU2n-wa5.js.map +1 -0
- package/build/server/chunks/{9-DrDIAOIh.js → 10-CA3VfgE7.js} +7 -6
- package/build/server/chunks/10-CA3VfgE7.js.map +1 -0
- package/build/server/chunks/{10-WRjYTwFT.js → 11-xh-tBR25.js} +8 -7
- package/build/server/chunks/11-xh-tBR25.js.map +1 -0
- package/build/server/chunks/{11-Cq79IAWK.js → 12-CHoThn5d.js} +8 -7
- package/build/server/chunks/12-CHoThn5d.js.map +1 -0
- package/build/server/chunks/{12-DnRkeAVv.js → 13-s3o-iKja.js} +8 -7
- package/build/server/chunks/13-s3o-iKja.js.map +1 -0
- package/build/server/chunks/{13-DKqDuEdB.js → 14-Ch_I9f3x.js} +7 -6
- package/build/server/chunks/14-Ch_I9f3x.js.map +1 -0
- package/build/server/chunks/{2-DaZMexAs.js → 2-BNTmkYSf.js} +2 -2
- package/build/server/chunks/{2-DaZMexAs.js.map → 2-BNTmkYSf.js.map} +1 -1
- package/build/server/chunks/{3-Dr4vFhF1.js → 3-ClKd4dXQ.js} +2 -2
- package/build/server/chunks/{3-Dr4vFhF1.js.map → 3-ClKd4dXQ.js.map} +1 -1
- package/build/server/chunks/{4-K2WnEwm7.js → 4-BSPVNKkN.js} +2 -2
- package/build/server/chunks/{4-K2WnEwm7.js.map → 4-BSPVNKkN.js.map} +1 -1
- package/build/server/chunks/{5-Be-Du8oZ.js → 5-BzxZlQk0.js} +2 -2
- package/build/server/chunks/{5-Be-Du8oZ.js.map → 5-BzxZlQk0.js.map} +1 -1
- package/build/server/chunks/{6-DsYzHmsZ.js → 6-Bw8JUxiD.js} +3 -2
- package/build/server/chunks/6-Bw8JUxiD.js.map +1 -0
- package/build/server/chunks/7-B_ur3ckj.js +9 -0
- package/build/server/chunks/7-B_ur3ckj.js.map +1 -0
- package/build/server/chunks/{7-eAzN1saI.js → 8-BEcdRamT.js} +8 -7
- package/build/server/chunks/8-BEcdRamT.js.map +1 -0
- package/build/server/chunks/{8-Dtaxi2J_.js → 9-CeMYWy9o.js} +7 -6
- package/build/server/chunks/9-CeMYWy9o.js.map +1 -0
- package/build/server/chunks/JsonValue-CTg4aH_w.js +320 -0
- package/build/server/chunks/JsonValue-CTg4aH_w.js.map +1 -0
- package/build/server/chunks/{Modal-fWUUqg69.js → Modal-yO0qzufQ.js} +2 -3
- package/build/server/chunks/Modal-yO0qzufQ.js.map +1 -0
- package/build/server/chunks/{Panel-BXokpC3w.js → Panel-D9GzVDDt.js} +7 -12
- package/build/server/chunks/Panel-D9GzVDDt.js.map +1 -0
- package/build/server/chunks/{PrettyJson-CV4qF02W.js → PrettyJson-CzzntSVh.js} +15 -10
- package/build/server/chunks/PrettyJson-CzzntSVh.js.map +1 -0
- package/build/server/chunks/{Tooltip-1tZ4BUxU.js → Tooltip-D2BX7dwq.js} +2 -2
- package/build/server/chunks/Tooltip-D2BX7dwq.js.map +1 -0
- package/build/server/chunks/{TooltipTable-B2QGp4YW.js → TooltipTable-91W9LxGR.js} +3 -4
- package/build/server/chunks/TooltipTable-91W9LxGR.js.map +1 -0
- package/build/server/chunks/{_layout.svelte-DAGMbkJX.js → _layout.svelte-BFxKanne.js} +28 -24
- package/build/server/chunks/_layout.svelte-BFxKanne.js.map +1 -0
- package/build/server/chunks/{_page.svelte-DgQxD9T8.js → _page.svelte-CQzzieEo.js} +16 -18
- package/build/server/chunks/_page.svelte-CQzzieEo.js.map +1 -0
- package/build/server/chunks/_page.svelte-CSuE9bVi.js +14 -0
- package/build/server/chunks/_page.svelte-CSuE9bVi.js.map +1 -0
- package/build/server/chunks/{_page.svelte-DfZ2COw_.js → _page.svelte-CnboYQ1K.js} +11 -73
- package/build/server/chunks/_page.svelte-CnboYQ1K.js.map +1 -0
- package/build/server/chunks/{_page.svelte-ClakOyno.js → _page.svelte-D41VQj4U.js} +17 -19
- package/build/server/chunks/_page.svelte-D41VQj4U.js.map +1 -0
- package/build/server/chunks/{_page.svelte-CB9ZXhBt.js → _page.svelte-Dg71nX8A.js} +117 -97
- package/build/server/chunks/_page.svelte-Dg71nX8A.js.map +1 -0
- package/build/server/chunks/{_page.svelte-BUqI0nM9.js → _page.svelte-DxlZXLVf.js} +17 -19
- package/build/server/chunks/_page.svelte-DxlZXLVf.js.map +1 -0
- package/build/server/chunks/{_page.svelte-Ccc0KJ66.js → _page.svelte-SZxwc25D.js} +45 -39
- package/build/server/chunks/_page.svelte-SZxwc25D.js.map +1 -0
- package/build/server/chunks/{_page.svelte-wmgrrvR7.js → _page.svelte-THKAhY4k.js} +48 -51
- package/build/server/chunks/_page.svelte-THKAhY4k.js.map +1 -0
- package/build/server/chunks/_server.ts-B3lXxheE.js +15 -0
- package/build/server/chunks/_server.ts-B3lXxheE.js.map +1 -0
- package/build/server/chunks/_server.ts-Bs5HC7Wf.js +46 -0
- package/build/server/chunks/_server.ts-Bs5HC7Wf.js.map +1 -0
- package/build/server/chunks/_server.ts-DRL9sDg4.js +34 -0
- package/build/server/chunks/_server.ts-DRL9sDg4.js.map +1 -0
- package/build/server/chunks/_server.ts-DqL5edUL.js +24 -0
- package/build/server/chunks/_server.ts-DqL5edUL.js.map +1 -0
- package/build/server/chunks/client-C7bEwskR.js +7 -0
- package/build/server/chunks/{client-BCfAqu0g.js.map → client-C7bEwskR.js.map} +1 -1
- package/build/server/chunks/{client2-B-hc4vU8.js → client2-DcCKOWWC.js} +6 -6
- package/build/server/chunks/client2-DcCKOWWC.js.map +1 -0
- package/build/server/chunks/error.svelte-Bk-0XnBt.js +18 -0
- package/build/server/chunks/error.svelte-Bk-0XnBt.js.map +1 -0
- package/build/server/chunks/exports-B5ORJhfK.js +65 -0
- package/build/server/chunks/exports-B5ORJhfK.js.map +1 -0
- package/build/server/chunks/{filters-CbFjTNFI.js → filters-B3U8Nh9P.js} +16 -6
- package/build/server/chunks/filters-B3U8Nh9P.js.map +1 -0
- package/build/server/chunks/hooks.server-Cq7ufuFU.js +79 -0
- package/build/server/chunks/hooks.server-Cq7ufuFU.js.map +1 -0
- package/build/server/chunks/{index2-CJE0QJlP.js → index-CC9WtE-y.js} +3 -13
- package/build/server/chunks/index-CC9WtE-y.js.map +1 -0
- package/build/server/chunks/index-wpIsICWW.js.map +1 -1
- package/build/server/chunks/{index3-CQyDuV4f.js → index2-DMabdSHV.js} +3 -3
- package/build/server/chunks/index2-DMabdSHV.js.map +1 -0
- package/build/server/chunks/{logger-KF6KpVP6.js → logger-PfH_grbh.js} +4 -3
- package/build/server/chunks/logger-PfH_grbh.js.map +1 -0
- package/build/server/chunks/{mongo-CpQtfvt6.js → mongo-B92d7zNj.js} +25 -24
- package/build/server/chunks/mongo-B92d7zNj.js.map +1 -0
- package/build/server/chunks/oauth-BfIECOev.js +178 -0
- package/build/server/chunks/oauth-BfIECOev.js.map +1 -0
- package/build/server/chunks/remote-xxtqbu-D0yn6nhQ.js +22 -0
- package/build/server/chunks/remote-xxtqbu-D0yn6nhQ.js.map +1 -0
- package/build/server/chunks/{routing-BdGCua8Q.js → routing-CYknP78v.js} +23 -4
- package/build/server/chunks/routing-CYknP78v.js.map +1 -0
- package/build/server/chunks/{server2-CkPmd3Rb.js → server2-uigtM6st.js} +3 -3
- package/build/server/chunks/server2-uigtM6st.js.map +1 -0
- package/build/server/chunks/{servers.remote-OwAA4KJJ.js → servers.remote-BhpVo4Zs.js} +67 -42
- package/build/server/chunks/servers.remote-BhpVo4Zs.js.map +1 -0
- package/build/server/chunks/shared-BqTYMAzZ.js +1027 -0
- package/build/server/chunks/shared-BqTYMAzZ.js.map +1 -0
- package/build/server/chunks/shared-server-BmU87nph.js +11 -0
- package/build/server/chunks/shared-server-BmU87nph.js.map +1 -0
- package/build/server/chunks/{state.svelte-BfzDwKMC.js → state.svelte-Dzb7Lf2r.js} +2 -3
- package/build/server/chunks/state.svelte-Dzb7Lf2r.js.map +1 -0
- package/build/server/chunks/url-hmE1zcJ6.js +4721 -0
- package/build/server/chunks/url-hmE1zcJ6.js.map +1 -0
- package/build/server/chunks/{utils-kjxf7BZO.js → utils2-kjxf7BZO.js} +1 -1
- package/build/server/chunks/utils2-kjxf7BZO.js.map +1 -0
- package/build/server/index.js +381 -3466
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +52 -23
- package/build/server/manifest.js.map +1 -1
- package/cli.ts +4 -0
- package/dist/cli.js +3 -0
- package/ecosystem.config.js +3 -0
- package/package.json +2 -2
- package/src/api/servers.remote.ts +20 -8
- package/src/app.d.ts +5 -0
- package/src/hooks.server.ts +38 -17
- package/src/lib/actions/jsonTextarea.ts +24 -8
- package/src/lib/actions/portal.ts +12 -5
- package/src/lib/components/ExplainPanel.svelte +42 -14
- package/src/lib/components/JsonValue.svelte +12 -4
- package/src/lib/components/PrettyJson.svelte +12 -4
- package/src/lib/components/ReplicaSetSelector.svelte +3 -1
- package/src/lib/components/SearchBox.svelte +12 -4
- package/src/lib/components/Tooltip.svelte +1 -1
- package/src/lib/server/HostsManager.ts +8 -17
- package/src/lib/server/logger.ts +4 -4
- package/src/lib/server/mongo.ts +17 -12
- package/src/lib/server/oauth.ts +276 -0
- package/src/lib/utils/filters.ts +15 -5
- package/src/lib/utils/formatSignificantDigits.ts +3 -1
- package/src/lib/utils/formatTimeAgo.ts +3 -1
- package/src/lib/utils/hostnames.ts +15 -5
- package/src/lib/utils/jsonParser.ts +21 -7
- package/src/lib/utils/longestCommonSuffix.ts +3 -1
- package/src/routes/+layout.server.ts +5 -1
- package/src/routes/+layout.svelte +16 -1
- package/src/routes/.well-known/cimd.json/+server.ts +34 -0
- package/src/routes/auth/callback/+server.ts +57 -0
- package/src/routes/auth/login/+server.ts +29 -0
- package/src/routes/auth/logout/+page.svelte +9 -0
- package/src/routes/auth/logout/+server.ts +9 -0
- package/src/routes/servers/+page.svelte +9 -4
- package/src/routes/servers/[server]/databases/+page.svelte +3 -1
- package/src/routes/servers/[server]/databases/[database]/collections/+page.svelte +3 -1
- package/src/routes/servers/[server]/databases/[database]/collections/[collection]/documents/+page.svelte +3 -1
- package/src/routes/servers/[server]/databases/[database]/collections/[collection]/documents/[document]/+page.svelte +9 -6
- package/src/routes/servers/[server]/databases/[database]/collections/[collection]/indexes/+page.svelte +18 -6
- package/src/routes/servers/[server]/databases/[database]/collections/[collection]/mappings/+page.svelte +3 -1
- package/build/client/_app/immutable/assets/0.Bg-3Xsxo.css +0 -1
- package/build/client/_app/immutable/assets/0.Bg-3Xsxo.css.br +0 -0
- package/build/client/_app/immutable/assets/0.Bg-3Xsxo.css.gz +0 -0
- package/build/client/_app/immutable/chunks/2G5jukcB.js +0 -1
- package/build/client/_app/immutable/chunks/2G5jukcB.js.br +0 -0
- package/build/client/_app/immutable/chunks/2G5jukcB.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B5NTIIm5.js.br +0 -0
- package/build/client/_app/immutable/chunks/B5NTIIm5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BEi7QatZ.js.br +0 -0
- package/build/client/_app/immutable/chunks/BEi7QatZ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BOZBLPYr.js +0 -1
- package/build/client/_app/immutable/chunks/BOZBLPYr.js.br +0 -0
- package/build/client/_app/immutable/chunks/BOZBLPYr.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BUr91kOw.js +0 -1
- package/build/client/_app/immutable/chunks/BUr91kOw.js.br +0 -0
- package/build/client/_app/immutable/chunks/BUr91kOw.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BYPjaq07.js +0 -1
- package/build/client/_app/immutable/chunks/BYPjaq07.js.br +0 -0
- package/build/client/_app/immutable/chunks/BYPjaq07.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BZagxdqB.js +0 -16
- package/build/client/_app/immutable/chunks/BZagxdqB.js.br +0 -0
- package/build/client/_app/immutable/chunks/BZagxdqB.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bh2n5Bfy.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bh2n5Bfy.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bl8s7Z6r.js.br +0 -1
- package/build/client/_app/immutable/chunks/Bl8s7Z6r.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BnpHJF5-.js +0 -2
- package/build/client/_app/immutable/chunks/BnpHJF5-.js.br +0 -0
- package/build/client/_app/immutable/chunks/BnpHJF5-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C2amz0TU.js.br +0 -0
- package/build/client/_app/immutable/chunks/C2amz0TU.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C93uPVVn.js +0 -1
- package/build/client/_app/immutable/chunks/C93uPVVn.js.br +0 -0
- package/build/client/_app/immutable/chunks/C93uPVVn.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CXNtxrhs.js +0 -1
- package/build/client/_app/immutable/chunks/CXNtxrhs.js.br +0 -0
- package/build/client/_app/immutable/chunks/CXNtxrhs.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cc583CkD.js +0 -1
- package/build/client/_app/immutable/chunks/Cc583CkD.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cc583CkD.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CxcplU4Q.js.br +0 -0
- package/build/client/_app/immutable/chunks/CxcplU4Q.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DDy-Kuac.js +0 -1
- package/build/client/_app/immutable/chunks/DDy-Kuac.js.br +0 -0
- package/build/client/_app/immutable/chunks/DDy-Kuac.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DIDOrPa8.js +0 -41
- package/build/client/_app/immutable/chunks/DIDOrPa8.js.br +0 -0
- package/build/client/_app/immutable/chunks/DIDOrPa8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DJ7MgPmk.js +0 -4
- package/build/client/_app/immutable/chunks/DJ7MgPmk.js.br +0 -0
- package/build/client/_app/immutable/chunks/DJ7MgPmk.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DUw-I2kh.js.br +0 -0
- package/build/client/_app/immutable/chunks/DUw-I2kh.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DdLT9cdj.js.br +0 -0
- package/build/client/_app/immutable/chunks/DdLT9cdj.js.gz +0 -0
- package/build/client/_app/immutable/chunks/c-rWvg5T.js.br +0 -0
- package/build/client/_app/immutable/chunks/c-rWvg5T.js.gz +0 -0
- package/build/client/_app/immutable/chunks/hbftB6pI.js +0 -1
- package/build/client/_app/immutable/chunks/hbftB6pI.js.br +0 -0
- package/build/client/_app/immutable/chunks/hbftB6pI.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.BvdA5xZX.js +0 -2
- package/build/client/_app/immutable/entry/app.BvdA5xZX.js.br +0 -0
- package/build/client/_app/immutable/entry/app.BvdA5xZX.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.B47HTlUj.js +0 -1
- package/build/client/_app/immutable/entry/start.B47HTlUj.js.br +0 -2
- package/build/client/_app/immutable/entry/start.B47HTlUj.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.C-Qb2qV-.js +0 -1
- package/build/client/_app/immutable/nodes/0.C-Qb2qV-.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.C-Qb2qV-.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.CbwunOOA.js +0 -1
- package/build/client/_app/immutable/nodes/1.CbwunOOA.js.br +0 -4
- package/build/client/_app/immutable/nodes/1.CbwunOOA.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.BONTXBU2.js +0 -6
- package/build/client/_app/immutable/nodes/10.BONTXBU2.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.BONTXBU2.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.Bt-WKNEi.js +0 -1
- package/build/client/_app/immutable/nodes/11.Bt-WKNEi.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.Bt-WKNEi.js.gz +0 -0
- package/build/client/_app/immutable/nodes/12.DtpUwyyZ.js +0 -1
- package/build/client/_app/immutable/nodes/12.DtpUwyyZ.js.br +0 -0
- package/build/client/_app/immutable/nodes/12.DtpUwyyZ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/13.Ce307l0A.js +0 -65
- package/build/client/_app/immutable/nodes/13.Ce307l0A.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.Ce307l0A.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.AM8fesja.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.AM8fesja.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.BShuoOz5.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.BShuoOz5.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.BD6QbApY.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.BD6QbApY.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.JM_dwz0R.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.JM_dwz0R.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.lTuFbCm_.js +0 -1
- package/build/client/_app/immutable/nodes/7.lTuFbCm_.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.lTuFbCm_.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.DIWHKPrG.js +0 -1
- package/build/client/_app/immutable/nodes/8.DIWHKPrG.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.DIWHKPrG.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.D6Tw6uKW.js +0 -2
- package/build/client/_app/immutable/nodes/9.D6Tw6uKW.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.D6Tw6uKW.js.gz +0 -0
- package/build/server/chunks/0-BdG9Cl9W.js +0 -22
- package/build/server/chunks/0-BdG9Cl9W.js.map +0 -1
- package/build/server/chunks/1-BcZWKLgB.js +0 -9
- package/build/server/chunks/1-BcZWKLgB.js.map +0 -1
- package/build/server/chunks/10-WRjYTwFT.js.map +0 -1
- package/build/server/chunks/11-Cq79IAWK.js.map +0 -1
- package/build/server/chunks/12-DnRkeAVv.js.map +0 -1
- package/build/server/chunks/13-DKqDuEdB.js.map +0 -1
- package/build/server/chunks/6-DsYzHmsZ.js.map +0 -1
- package/build/server/chunks/7-eAzN1saI.js.map +0 -1
- package/build/server/chunks/8-Dtaxi2J_.js.map +0 -1
- package/build/server/chunks/9-DrDIAOIh.js.map +0 -1
- package/build/server/chunks/JsonValue-Dj3vYG5T.js +0 -366
- package/build/server/chunks/JsonValue-Dj3vYG5T.js.map +0 -1
- package/build/server/chunks/Modal-fWUUqg69.js.map +0 -1
- package/build/server/chunks/Panel-BXokpC3w.js.map +0 -1
- package/build/server/chunks/PrettyJson-CV4qF02W.js.map +0 -1
- package/build/server/chunks/Tooltip-1tZ4BUxU.js.map +0 -1
- package/build/server/chunks/TooltipTable-B2QGp4YW.js.map +0 -1
- package/build/server/chunks/_layout.svelte-DAGMbkJX.js.map +0 -1
- package/build/server/chunks/_page.svelte-BUqI0nM9.js.map +0 -1
- package/build/server/chunks/_page.svelte-CB9ZXhBt.js.map +0 -1
- package/build/server/chunks/_page.svelte-Ccc0KJ66.js.map +0 -1
- package/build/server/chunks/_page.svelte-ClakOyno.js.map +0 -1
- package/build/server/chunks/_page.svelte-DfZ2COw_.js.map +0 -1
- package/build/server/chunks/_page.svelte-DgQxD9T8.js.map +0 -1
- package/build/server/chunks/_page.svelte-wmgrrvR7.js.map +0 -1
- package/build/server/chunks/client-BCfAqu0g.js +0 -7
- package/build/server/chunks/client2-B-hc4vU8.js.map +0 -1
- package/build/server/chunks/context-8UI9xWgq.js +0 -92
- package/build/server/chunks/context-8UI9xWgq.js.map +0 -1
- package/build/server/chunks/error.svelte-hj6GNaOv.js +0 -19
- package/build/server/chunks/error.svelte-hj6GNaOv.js.map +0 -1
- package/build/server/chunks/event-DVH-6ISX.js +0 -64
- package/build/server/chunks/event-DVH-6ISX.js.map +0 -1
- package/build/server/chunks/exports-CtTNDGe5.js +0 -161
- package/build/server/chunks/exports-CtTNDGe5.js.map +0 -1
- package/build/server/chunks/filters-CbFjTNFI.js.map +0 -1
- package/build/server/chunks/hooks.server-DRPXFQlL.js +0 -53
- package/build/server/chunks/hooks.server-DRPXFQlL.js.map +0 -1
- package/build/server/chunks/index-DOCFW0vv.js +0 -1355
- package/build/server/chunks/index-DOCFW0vv.js.map +0 -1
- package/build/server/chunks/index2-CJE0QJlP.js.map +0 -1
- package/build/server/chunks/index3-CQyDuV4f.js.map +0 -1
- package/build/server/chunks/logger-KF6KpVP6.js.map +0 -1
- package/build/server/chunks/mongo-CpQtfvt6.js.map +0 -1
- package/build/server/chunks/remote-xxtqbu-CbTWQ3bq.js +0 -21
- package/build/server/chunks/remote-xxtqbu-CbTWQ3bq.js.map +0 -1
- package/build/server/chunks/routing-BdGCua8Q.js.map +0 -1
- package/build/server/chunks/server2-CkPmd3Rb.js.map +0 -1
- package/build/server/chunks/servers.remote-OwAA4KJJ.js.map +0 -1
- package/build/server/chunks/shared-w5gO1Cte.js +0 -446
- package/build/server/chunks/shared-w5gO1Cte.js.map +0 -1
- package/build/server/chunks/state.svelte-BfzDwKMC.js.map +0 -1
- package/build/server/chunks/utils-kjxf7BZO.js.map +0 -1
- package/build/server/chunks/utils2-DrnJY_bz.js +0 -91
- package/build/server/chunks/utils2-DrnJY_bz.js.map +0 -1
- /package/build/client/_app/immutable/assets/{10.Wc4MTSzM.css → 11.Wc4MTSzM.css} +0 -0
- /package/build/client/_app/immutable/assets/{10.Wc4MTSzM.css.br → 11.Wc4MTSzM.css.br} +0 -0
- /package/build/client/_app/immutable/assets/{10.Wc4MTSzM.css.gz → 11.Wc4MTSzM.css.gz} +0 -0
- /package/build/client/_app/immutable/assets/{11.CEtFGlZU.css → 12.CEtFGlZU.css} +0 -0
- /package/build/client/_app/immutable/assets/{11.CEtFGlZU.css.br → 12.CEtFGlZU.css.br} +0 -0
- /package/build/client/_app/immutable/assets/{11.CEtFGlZU.css.gz → 12.CEtFGlZU.css.gz} +0 -0
- /package/build/client/_app/immutable/assets/{12.I1sSDJ6i.css → 13.I1sSDJ6i.css} +0 -0
- /package/build/client/_app/immutable/assets/{12.I1sSDJ6i.css.br → 13.I1sSDJ6i.css.br} +0 -0
- /package/build/client/_app/immutable/assets/{12.I1sSDJ6i.css.gz → 13.I1sSDJ6i.css.gz} +0 -0
- /package/build/client/_app/immutable/assets/{7.CRKE8WvY.css → 8.CRKE8WvY.css} +0 -0
- /package/build/client/_app/immutable/assets/{7.CRKE8WvY.css.br → 8.CRKE8WvY.css.br} +0 -0
- /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 {
|
|
3
|
-
import { l as loadDocuments, c as countDocuments, e as explainQuery,
|
|
4
|
-
import './
|
|
5
|
-
import './
|
|
6
|
-
import
|
|
7
|
-
import './state.svelte-
|
|
8
|
-
import { J as JsonValue_1 } from './JsonValue-
|
|
9
|
-
import { M as Modal } from './Modal-
|
|
10
|
-
import {
|
|
11
|
-
import { P as
|
|
12
|
-
import
|
|
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-
|
|
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 './
|
|
21
|
-
import './shared-
|
|
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-
|
|
23
|
+
import './logger-PfH_grbh.js';
|
|
26
24
|
import 'async_hooks';
|
|
27
25
|
import 'node:util';
|
|
28
|
-
import './mongo-
|
|
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-
|
|
37
|
-
import './Tooltip-
|
|
38
|
-
import './client2-
|
|
39
|
-
import './
|
|
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)
|
|
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)
|
|
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)
|
|
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)
|
|
68
|
+
if (result) {
|
|
69
|
+
return result;
|
|
70
|
+
}
|
|
65
71
|
}
|
|
66
72
|
return null;
|
|
67
73
|
}
|
|
68
74
|
function hasCollScan(plan) {
|
|
69
|
-
if (!plan)
|
|
70
|
-
|
|
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))
|
|
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))
|
|
88
|
+
if (hasCollScan(stage)) {
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
77
91
|
}
|
|
78
92
|
}
|
|
79
93
|
if (plan.queryPlan) {
|
|
80
|
-
if (hasCollScan(plan.queryPlan))
|
|
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")
|
|
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)
|
|
112
|
-
|
|
113
|
-
|
|
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)
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
const
|
|
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)
|
|
131
|
-
|
|
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
|
-
|
|
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)
|
|
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
|
|
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-
|
|
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;;;;"}
|