spec-cat 0.1.23 → 0.1.25
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/.output/nitro.json +1 -1
- package/.output/public/_nuxt/8_4qvbip.js +36 -0
- package/.output/public/_nuxt/B2xLiDuD.js +1 -0
- package/.output/public/_nuxt/{-EMqkm_u.js → BPrZX-_J.js} +1 -1
- package/.output/public/_nuxt/Bze5ywup.js +1 -0
- package/.output/public/_nuxt/{FbKhJXKu.js → BzfYDrv2.js} +2 -2
- package/.output/public/_nuxt/CiXy_SW9.js +64 -0
- package/.output/public/_nuxt/{BDd_kh9e.js → DIlI3WTI.js} +1 -1
- package/.output/public/_nuxt/{CYVeOpC3.js → Drn_WUL3.js} +1 -1
- package/.output/public/_nuxt/{DgiJut-o.js → O3PivLp-.js} +1 -1
- package/.output/public/_nuxt/UOLai9rz.js +93 -0
- package/.output/public/_nuxt/{CDLI67Cr.js → _ZoYWOkW.js} +1 -1
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/392a3a4f-4bcd-4eb0-ba33-8b058c4668bf.json +1 -0
- package/.output/public/_nuxt/{default.eSO6fRPf.css → default.D3bZ26KV.css} +1 -1
- package/.output/public/_nuxt/entry.mJra9RkV.css +1 -0
- package/.output/public/_nuxt/oZhDUS0h.js +1 -0
- package/.output/public/_nuxt/{Bk4uZfKR.js → ovAaTTn7.js} +1 -1
- package/.output/public/_nuxt/useTheme.CYTdpguX.css +1 -0
- package/.output/server/chunks/_/eventBus.mjs +52 -0
- package/.output/server/chunks/_/eventBus.mjs.map +1 -0
- package/.output/server/chunks/_/geminiProvider.mjs +99 -25
- package/.output/server/chunks/_/geminiProvider.mjs.map +1 -1
- package/.output/server/chunks/_/jobPersister.mjs +4 -3
- package/.output/server/chunks/_/jobPersister.mjs.map +1 -1
- package/.output/server/chunks/_/jobQueue.mjs +14 -54
- package/.output/server/chunks/_/jobQueue.mjs.map +1 -1
- package/.output/server/chunks/build/client.precomputed.mjs +1 -1
- package/.output/server/chunks/build/client.precomputed.mjs.map +1 -1
- package/.output/server/chunks/nitro/nitro.mjs +643 -643
- package/.output/server/chunks/routes/_ws.mjs +6 -2
- package/.output/server/chunks/routes/_ws.mjs.map +1 -1
- package/.output/server/chunks/routes/api/conversations/_conversationId/archive.post.mjs +6 -0
- package/.output/server/chunks/routes/api/conversations/_conversationId/archive.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get.mjs +1 -0
- package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post.mjs +1 -0
- package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/jobs/_id/cancel.post.mjs +1 -0
- package/.output/server/chunks/routes/api/jobs/_id/cancel.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/jobs/_id_.get.mjs +1 -0
- package/.output/server/chunks/routes/api/jobs/_id_.get.mjs.map +1 -1
- package/.output/server/package.json +1 -1
- package/bin/spec-cat.js +15 -0
- package/package.json +1 -1
- package/.output/public/_nuxt/BJKzOiTU.js +0 -1
- package/.output/public/_nuxt/C9Qk2Hno.js +0 -1
- package/.output/public/_nuxt/CLPz4Oer.js +0 -1
- package/.output/public/_nuxt/CZbP5QXb.js +0 -1
- package/.output/public/_nuxt/DQtVbA-s.js +0 -150
- package/.output/public/_nuxt/DXWMFGmi.js +0 -1
- package/.output/public/_nuxt/builds/meta/53b5c409-86a8-4624-8a0f-5bf31ab82deb.json +0 -1
- package/.output/public/_nuxt/entry.BtencOYX.css +0 -1
- package/.output/public/_nuxt/useTheme.Dp77PlfC.css +0 -1
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./Bze5ywup.js","./BzfYDrv2.js","./entry.mJra9RkV.css","./ovAaTTn7.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{y as v,z as x,A as d,d as Ie,C as ee,G as m,Q as He,S as Xt,R as tt,I as we,E as Xe,B,K as U,g as _,J as Fe,U as os,k as J,V as Ut,L as Re,H as Oe,o as mt,W as St,X as Rp,N as ze,Y as br,T as xr,Z as Zs,O as dn,D as ct,P as fr,_ as Bp,$ as xu,a0 as Te,a1 as as,a2 as lr,a3 as ms,a4 as mc,a5 as f1,c as p1,a6 as _h,a7 as Zp,a8 as m1,q as g1,a9 as O1,x as v1}from"./BzfYDrv2.js";import{r as Pt,c as fn,b as sl,a as us,u as yu}from"./O3PivLp-.js";import{g as po,m as b1,p as x1,h as Rh,i as y1,j as Bh,k as k1,l as w1,n as S1,o as $1,q as Ep,s as Zh,C as C1,_ as Q1,t as ku,u as P1,r as T1,a as M1}from"./CiXy_SW9.js";import{_ as Gs}from"./DlAUqK2U.js";import{S as wa,i as A1,b as _1,P as R1,W as Eh,M as Dh,c as Lh,d as Xh,g as Ih,e as B1,D as Dp,f as Lp,h as Z1,a as mo,u as il,j as Tr,k as ws,l as _o}from"./Bze5ywup.js";import{u as gc,_ as E1}from"./B2xLiDuD.js";function D1(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M10.5 6h9.75M10.5 6a1.5 1.5 0 1 1-3 0m3 0a1.5 1.5 0 1 0-3 0M3.75 6H7.5m3 12h9.75m-9.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-3.75 0H7.5m9-6h3.75m-3.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-9.75 0h9.75"})])}function L1(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m20.25 7.5-.625 10.632a2.25 2.25 0 0 1-2.247 2.118H6.622a2.25 2.25 0 0 1-2.247-2.118L3.75 7.5m8.25 3v6.75m0 0-3-3m3 3 3-3M3.375 7.5h17.25c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125Z"})])}function X1(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9 8.25H7.5a2.25 2.25 0 0 0-2.25 2.25v9a2.25 2.25 0 0 0 2.25 2.25h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25H15M9 12l3 3m0 0 3-3m-3 3V2.25"})])}function I1(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3"})])}function V1(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18"})])}function Xp(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M19.5 12c0-1.232-.046-2.453-.138-3.662a4.006 4.006 0 0 0-3.7-3.7 48.678 48.678 0 0 0-7.324 0 4.006 4.006 0 0 0-3.7 3.7c-.017.22-.032.441-.046.662M19.5 12l3-3m-3 3-3-3m-12 3c0 1.232.046 2.453.138 3.662a4.006 4.006 0 0 0 3.7 3.7 48.656 48.656 0 0 0 7.324 0 4.006 4.006 0 0 0 3.7-3.7c.017-.22.032-.441.046-.662M4.5 12l3 3m-3-3-3 3"})])}function Ip(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5m-13.5-9L12 3m0 0 4.5 4.5M12 3v13.5"})])}function Vp(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9 15 3 9m0 0 6-6M3 9h12a6 6 0 0 1 0 12h-3"})])}function zp(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9 9V4.5M9 9H4.5M9 9 3.75 3.75M9 15v4.5M9 15H4.5M9 15l-5.25 5.25M15 9h4.5M15 9V4.5M15 9l5.25-5.25M15 15h4.5M15 15v4.5m0-4.5 5.25 5.25"})])}function Np(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M3.75 3.75v4.5m0-4.5h4.5m-4.5 0L9 9M3.75 20.25v-4.5m0 4.5h4.5m-4.5 0L9 15M20.25 3.75h-4.5m4.5 0v4.5m0-4.5L15 9m5.25 11.25h-4.5m4.5 0v-4.5m0 4.5L15 15"})])}function Wp(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5"})])}function z1(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.75 3.104v5.714a2.25 2.25 0 0 1-.659 1.591L5 14.5M9.75 3.104c-.251.023-.501.05-.75.082m.75-.082a24.301 24.301 0 0 1 4.5 0m0 0v5.714c0 .597.237 1.17.659 1.591L19.8 15.3M14.25 3.104c.251.023.501.05.75.082M19.8 15.3l-1.57.393A9.065 9.065 0 0 1 12 15a9.065 9.065 0 0 0-6.23-.693L5 14.5m14.8.8 1.402 1.402c1.232 1.232.65 3.318-1.067 3.611A48.309 48.309 0 0 1 12 21c-2.773 0-5.491-.235-8.135-.687-1.718-.293-2.3-2.379-1.067-3.61L5 14.5"})])}function jp(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m3.75 13.5 10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75Z"})])}function N1(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 12.75c1.148 0 2.278.08 3.383.237 1.037.146 1.866.966 1.866 2.013 0 3.728-2.35 6.75-5.25 6.75S6.75 18.728 6.75 15c0-1.046.83-1.867 1.866-2.013A24.204 24.204 0 0 1 12 12.75Zm0 0c2.883 0 5.647.508 8.207 1.44a23.91 23.91 0 0 1-1.152 6.06M12 12.75c-2.883 0-5.647.508-8.208 1.44.125 2.104.52 4.136 1.153 6.06M12 12.75a2.25 2.25 0 0 0 2.248-2.354M12 12.75a2.25 2.25 0 0 1-2.248-2.354M12 8.25c.995 0 1.971-.08 2.922-.236.403-.066.74-.358.795-.762a3.778 3.778 0 0 0-.399-2.25M12 8.25c-.995 0-1.97-.08-2.922-.236-.402-.066-.74-.358-.795-.762a3.734 3.734 0 0 1 .4-2.253M12 8.25a2.25 2.25 0 0 0-2.248 2.146M12 8.25a2.25 2.25 0 0 1 2.248 2.146M8.683 5a6.032 6.032 0 0 1-1.155-1.002c.07-.63.27-1.222.574-1.747m.581 2.749A3.75 3.75 0 0 1 15.318 5m0 0c.427-.283.815-.62 1.155-.999a4.471 4.471 0 0 0-.575-1.752M4.921 6a24.048 24.048 0 0 0-.392 3.314c1.668.546 3.416.914 5.223 1.082M19.08 6c.205 1.08.337 2.187.392 3.314a23.882 23.882 0 0 1-5.223 1.082"})])}function W1(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M7.5 14.25v2.25m3-4.5v4.5m3-6.75v6.75m3-9v9M6 20.25h12A2.25 2.25 0 0 0 20.25 18V6A2.25 2.25 0 0 0 18 3.75H6A2.25 2.25 0 0 0 3.75 6v12A2.25 2.25 0 0 0 6 20.25Z"})])}function j1(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M20.25 8.511c.884.284 1.5 1.128 1.5 2.097v4.286c0 1.136-.847 2.1-1.98 2.193-.34.027-.68.052-1.02.072v3.091l-3-3c-1.354 0-2.694-.055-4.02-.163a2.115 2.115 0 0 1-.825-.242m9.345-8.334a2.126 2.126 0 0 0-.476-.095 48.64 48.64 0 0 0-8.048 0c-1.131.094-1.976 1.057-1.976 2.192v4.286c0 .837.46 1.58 1.155 1.951m9.345-8.334V6.637c0-1.621-1.152-3.026-2.76-3.235A48.455 48.455 0 0 0 11.25 3c-2.115 0-4.198.137-6.24.402-1.608.209-2.76 1.614-2.76 3.235v6.226c0 1.621 1.152 3.026 2.76 3.235.577.075 1.157.14 1.74.194V21l4.155-4.155"})])}function q1(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M2.25 12.76c0 1.6 1.123 2.994 2.707 3.227 1.087.16 2.185.283 3.293.369V21l4.076-4.076a1.526 1.526 0 0 1 1.037-.443 48.282 48.282 0 0 0 5.68-.494c1.584-.233 2.707-1.626 2.707-3.228V6.741c0-1.602-1.123-2.995-2.707-3.228A48.394 48.394 0 0 0 12 3c-2.392 0-4.744.175-7.043.513C3.373 3.746 2.25 5.14 2.25 6.741v6.018Z"})])}function wu(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m4.5 12.75 6 6 9-13.5"})])}function Y1(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"})])}function Su(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M8.25 15 12 18.75 15.75 15m-7.5-6L12 5.25 15.75 9"})])}function F1(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m4.5 15.75 7.5-7.5 7.5 7.5"})])}function $u(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9 12h3.75M9 15h3.75M9 18h3.75m3 .75H18a2.25 2.25 0 0 0 2.25-2.25V6.108c0-1.135-.845-2.098-1.976-2.192a48.424 48.424 0 0 0-1.123-.08m-5.801 0c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75 2.25 2.25 0 0 0-.1-.664m-5.8 0A2.251 2.251 0 0 1 13.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m0 0H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V9.375c0-.621-.504-1.125-1.125-1.125H8.25ZM6.75 12h.008v.008H6.75V12Zm0 3h.008v.008H6.75V15Zm0 3h.008v.008H6.75V18Z"})])}function Es(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M8.25 7.5V6.108c0-1.135.845-2.098 1.976-2.192.373-.03.748-.057 1.123-.08M15.75 18H18a2.25 2.25 0 0 0 2.25-2.25V6.108c0-1.135-.845-2.098-1.976-2.192a48.424 48.424 0 0 0-1.123-.08M15.75 18.75v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5A3.375 3.375 0 0 0 6.375 7.5H5.25m11.9-3.664A2.251 2.251 0 0 0 15 2.25h-1.5a2.251 2.251 0 0 0-2.15 1.586m5.8 0c.065.21.1.433.1.664v.75h-6V4.5c0-.231.035-.454.1-.664M6.75 7.5H4.875c-.621 0-1.125.504-1.125 1.125v12c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V16.5a9 9 0 0 0-9-9Z"})])}function qp(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 9.75v6.75m0 0-3-3m3 3 3-3m-8.25 6a4.5 4.5 0 0 1-1.41-8.775 5.25 5.25 0 0 1 10.233-2.33 3 3 0 0 1 3.758 3.848A3.752 3.752 0 0 1 18 19.5H6.75Z"})])}function Yp(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.594 3.94c.09-.542.56-.94 1.11-.94h2.593c.55 0 1.02.398 1.11.94l.213 1.281c.063.374.313.686.645.87.074.04.147.083.22.127.325.196.72.257 1.075.124l1.217-.456a1.125 1.125 0 0 1 1.37.49l1.296 2.247a1.125 1.125 0 0 1-.26 1.431l-1.003.827c-.293.241-.438.613-.43.992a7.723 7.723 0 0 1 0 .255c-.008.378.137.75.43.991l1.004.827c.424.35.534.955.26 1.43l-1.298 2.247a1.125 1.125 0 0 1-1.369.491l-1.217-.456c-.355-.133-.75-.072-1.076.124a6.47 6.47 0 0 1-.22.128c-.331.183-.581.495-.644.869l-.213 1.281c-.09.543-.56.94-1.11.94h-2.594c-.55 0-1.019-.398-1.11-.94l-.213-1.281c-.062-.374-.312-.686-.644-.87a6.52 6.52 0 0 1-.22-.127c-.325-.196-.72-.257-1.076-.124l-1.217.456a1.125 1.125 0 0 1-1.369-.49l-1.297-2.247a1.125 1.125 0 0 1 .26-1.431l1.004-.827c.292-.24.437-.613.43-.991a6.932 6.932 0 0 1 0-.255c.007-.38-.138-.751-.43-.992l-1.004-.827a1.125 1.125 0 0 1-.26-1.43l1.297-2.247a1.125 1.125 0 0 1 1.37-.491l1.216.456c.356.133.751.072 1.076-.124.072-.044.146-.086.22-.128.332-.183.582-.495.644-.869l.214-1.28Z"}),d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"})])}function U1(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m6.75 7.5 3 2.25-3 2.25m4.5 0h3m-9 8.25h13.5A2.25 2.25 0 0 0 21 18V6a2.25 2.25 0 0 0-2.25-2.25H5.25A2.25 2.25 0 0 0 3 6v12a2.25 2.25 0 0 0 2.25 2.25Z"})])}function G1(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M10.125 2.25h-4.5c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125v-9M10.125 2.25h.375a9 9 0 0 1 9 9v.375M10.125 2.25A3.375 3.375 0 0 1 13.5 5.625v1.5c0 .621.504 1.125 1.125 1.125h1.5a3.375 3.375 0 0 1 3.375 3.375M9 15l2.25 2.25L15 12"})])}function H1(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75"})])}function K1(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m5.231 13.481L15 17.25m-4.5-15H5.625c-.621 0-1.125.504-1.125 1.125v16.5c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Zm3.75 11.625a2.625 2.625 0 1 1-5.25 0 2.625 2.625 0 0 1 5.25 0Z"})])}function Ds(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"})])}function _n(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z"})])}function J1(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M3.98 8.223A10.477 10.477 0 0 0 1.934 12C3.226 16.338 7.244 19.5 12 19.5c.993 0 1.953-.138 2.863-.395M6.228 6.228A10.451 10.451 0 0 1 12 4.5c4.756 0 8.773 3.162 10.065 7.498a10.522 10.522 0 0 1-4.293 5.774M6.228 6.228 3 3m3.228 3.228 3.65 3.65m7.894 7.894L21 21m-3.228-3.228-3.65-3.65m0 0a3 3 0 1 0-4.243-4.243m4.242 4.242L9.88 9.88"})])}function Fp(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M2.036 12.322a1.012 1.012 0 0 1 0-.639C3.423 7.51 7.36 4.5 12 4.5c4.638 0 8.573 3.007 9.963 7.178.07.207.07.431 0 .639C20.577 16.49 16.64 19.5 12 19.5c-4.638 0-8.573-3.007-9.963-7.178Z"}),d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"})])}function ev(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M3.75 9.776c.112-.017.227-.026.344-.026h15.812c.117 0 .232.009.344.026m-16.5 0a2.25 2.25 0 0 0-1.883 2.542l.857 6a2.25 2.25 0 0 0 2.227 1.932H19.05a2.25 2.25 0 0 0 2.227-1.932l.857-6a2.25 2.25 0 0 0-1.883-2.542m-16.5 0V6A2.25 2.25 0 0 1 6 3.75h3.879a1.5 1.5 0 0 1 1.06.44l2.122 2.12a1.5 1.5 0 0 0 1.06.44H18A2.25 2.25 0 0 1 20.25 9v.776"})])}function tv(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 3c2.755 0 5.455.232 8.083.678.533.09.917.556.917 1.096v1.044a2.25 2.25 0 0 1-.659 1.591l-5.432 5.432a2.25 2.25 0 0 0-.659 1.591v2.927a2.25 2.25 0 0 1-1.244 2.013L9.75 21v-6.568a2.25 2.25 0 0 0-.659-1.591L3.659 7.409A2.25 2.25 0 0 1 3 5.818V4.774c0-.54.384-1.006.917-1.096A48.32 48.32 0 0 1 12 3Z"})])}function rv(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M5.25 8.25h15m-16.5 7.5h15m-1.8-13.5-3.9 19.5m-2.1-19.5-3.9 19.5"})])}function nv(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z"})])}function sv(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 18v-5.25m0 0a6.01 6.01 0 0 0 1.5-.189m-1.5.189a6.01 6.01 0 0 1-1.5-.189m3.75 7.478a12.06 12.06 0 0 1-4.5 0m3.75 2.383a14.406 14.406 0 0 1-3 0M14.25 18v-.192c0-.983.658-1.823 1.508-2.316a7.5 7.5 0 1 0-7.517 0c.85.493 1.509 1.333 1.509 2.316V18"})])}function Up(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75V6.75Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0ZM3.75 12h.007v.008H3.75V12Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm-.375 5.25h.007v.008H3.75v-.008Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z"})])}function ls(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z"})])}function iv(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M5 12h14"})])}function ov(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m18.375 12.739-7.693 7.693a4.5 4.5 0 0 1-6.364-6.364l10.94-10.94A3 3 0 1 1 19.5 7.372L8.552 18.32m.009-.01-.01.01m5.699-9.941-7.81 7.81a1.5 1.5 0 0 0 2.112 2.13"})])}function Cu(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L10.582 16.07a4.5 4.5 0 0 1-1.897 1.13L6 18l.8-2.685a4.5 4.5 0 0 1 1.13-1.897l8.932-8.931Zm0 0L19.5 7.125M18 14v4.75A2.25 2.25 0 0 1 15.75 21H5.25A2.25 2.25 0 0 1 3 18.75V8.25A2.25 2.25 0 0 1 5.25 6H10"})])}function av(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.347a1.125 1.125 0 0 1 0 1.972l-11.54 6.347a1.125 1.125 0 0 1-1.667-.986V5.653Z"})])}function Vh(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M14.25 6.087c0-.355.186-.676.401-.959.221-.29.349-.634.349-1.003 0-1.036-1.007-1.875-2.25-1.875s-2.25.84-2.25 1.875c0 .369.128.713.349 1.003.215.283.401.604.401.959v0a.64.64 0 0 1-.657.643 48.39 48.39 0 0 1-4.163-.3c.186 1.613.293 3.25.315 4.907a.656.656 0 0 1-.658.663v0c-.355 0-.676-.186-.959-.401a1.647 1.647 0 0 0-1.003-.349c-1.036 0-1.875 1.007-1.875 2.25s.84 2.25 1.875 2.25c.369 0 .713-.128 1.003-.349.283-.215.604-.401.959-.401v0c.31 0 .555.26.532.57a48.039 48.039 0 0 1-.642 5.056c1.518.19 3.058.309 4.616.354a.64.64 0 0 0 .657-.643v0c0-.355-.186-.676-.401-.959a1.647 1.647 0 0 1-.349-1.003c0-1.035 1.008-1.875 2.25-1.875 1.243 0 2.25.84 2.25 1.875 0 .369-.128.713-.349 1.003-.215.283-.4.604-.4.959v0c0 .333.277.599.61.58a48.1 48.1 0 0 0 5.427-.63 48.05 48.05 0 0 0 .582-4.717.532.532 0 0 0-.533-.57v0c-.355 0-.676.186-.959.401-.29.221-.634.349-1.003.349-1.035 0-1.875-1.007-1.875-2.25s.84-2.25 1.875-2.25c.37 0 .713.128 1.003.349.283.215.604.401.96.401v0a.656.656 0 0 0 .658-.663 48.422 48.422 0 0 0-.37-5.36c-1.886.342-3.81.574-5.766.689a.578.578 0 0 1-.61-.58v0Z"})])}function Qu(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z"})])}function Gp(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9 12.75 11.25 15 15 9.75m-3-7.036A11.959 11.959 0 0 1 3.598 6 11.99 11.99 0 0 0 3 9.749c0 5.592 3.824 10.29 9 11.623 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.571-.598-3.751h-.152c-3.196 0-6.1-1.248-8.25-3.285Z"})])}function Pu(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 9v3.75m0-10.036A11.959 11.959 0 0 1 3.598 6 11.99 11.99 0 0 0 3 9.75c0 5.592 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.57-.598-3.75h-.152c-3.196 0-6.1-1.25-8.25-3.286Zm0 13.036h.008v.008H12v-.008Z"})])}function ol(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"})])}function Tu(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.568 3H5.25A2.25 2.25 0 0 0 3 5.25v4.318c0 .597.237 1.17.659 1.591l9.581 9.581c.699.699 1.78.872 2.607.33a18.095 18.095 0 0 0 5.223-5.223c.542-.827.369-1.908-.33-2.607L11.16 3.66A2.25 2.25 0 0 0 9.568 3Z"}),d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 6h.008v.008H6V6Z"})])}function lv(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M11.42 15.17 17.25 21A2.652 2.652 0 0 0 21 17.25l-5.877-5.877M11.42 15.17l2.496-3.03c.317-.384.74-.626 1.208-.766M11.42 15.17l-4.655 5.653a2.548 2.548 0 1 1-3.586-3.586l6.837-5.63m5.108-.233c.55-.164 1.163-.188 1.743-.14a4.5 4.5 0 0 0 4.486-6.336l-3.276 3.277a3.004 3.004 0 0 1-2.25-2.25l3.276-3.276a4.5 4.5 0 0 0-6.336 4.486c.091 1.076-.071 2.264-.904 2.95l-.102.085m-1.745 1.437L5.909 7.5H4.5L2.25 3.75l1.5-1.5L7.5 4.5v1.409l4.26 4.26m-1.745 1.437 1.745-1.437m6.615 8.206L15.75 15.75M4.867 19.125h.008v.008h-.008v-.008Z"})])}const cv={class:"flex items-center gap-1.5 px-2 py-1.5 bg-retro-panel border-b border-retro-border"},uv={class:"relative flex-1 min-w-0"},hv={key:0,class:"text-[11px] text-retro-muted flex-shrink-0 min-w-[60px] text-center"},dv=["disabled"],fv=["disabled"],pv=Ie({__name:"GitFindWidget",props:{resultCount:{},currentIndex:{}},emits:["search","next","prev","close"],setup(r,{expose:e,emit:t}){const n=t,s=_(""),i=_(null);let o=null;function a(){o&&clearTimeout(o),o=setTimeout(()=>{n("search",s.value)},200)}function l(u){u.key==="Escape"?(u.preventDefault(),n("close")):u.key==="Enter"&&(u.preventDefault(),u.shiftKey?n("prev"):n("next"))}function c(){i.value?.focus(),i.value?.select()}return e({focus:c}),(u,h)=>(v(),x("div",cv,[ee(m(ls),{class:"w-4 h-4 text-retro-muted flex-shrink-0"}),d("div",uv,[He(d("input",{ref_key:"inputRef",ref:i,"onUpdate:modelValue":h[0]||(h[0]=p=>tt(s)?s.value=p:null),type:"text",placeholder:"Find in commits...","aria-label":"Search commits",class:"w-full px-2 py-1 text-sm bg-retro-dark border border-retro-border rounded text-retro-text placeholder-retro-muted focus:outline-none focus:border-retro-cyan",onInput:a,onKeydown:l},null,544),[[Xt,m(s)]])]),m(s)?(v(),x("span",hv,[r.resultCount>0?(v(),x(we,{key:0},[Xe(B(r.currentIndex+1)+" of "+B(r.resultCount),1)],64)):(v(),x(we,{key:1},[Xe(" No results ")],64))])):U("",!0),d("button",{class:"p-0.5 text-retro-muted hover:text-retro-text disabled:opacity-30 disabled:cursor-not-allowed transition-colors",disabled:r.resultCount===0,"aria-label":"Previous result",title:"Previous (Shift+Enter)",onClick:h[1]||(h[1]=p=>n("prev"))},[ee(m(F1),{class:"w-4 h-4"})],8,dv),d("button",{class:"p-0.5 text-retro-muted hover:text-retro-text disabled:opacity-30 disabled:cursor-not-allowed transition-colors",disabled:r.resultCount===0,"aria-label":"Next result",title:"Next (Enter)",onClick:h[2]||(h[2]=p=>n("next"))},[ee(m(Y1),{class:"w-4 h-4"})],8,fv),d("button",{class:"p-0.5 text-retro-muted hover:text-retro-text transition-colors","aria-label":"Close find widget",title:"Close (Escape)",onClick:h[3]||(h[3]=p=>n("close"))},[ee(m(Pt),{class:"w-4 h-4"})])]))}}),mv={class:"flex flex-col bg-retro-dark border border-retro-border rounded shadow-lg max-w-md w-full"},gv={class:"flex items-center justify-between px-3 py-2 border-b border-retro-border"},Ov={class:"flex-1 overflow-auto max-h-[300px]"},vv={class:"font-semibold text-retro-cyan flex-shrink-0 min-w-[60px]"},bv=["onKeyup"],xv=["onClick"],yv={class:"text-retro-muted truncate flex-1 font-mono"},kv=["onClick"],wv=["onClick"],Sv={key:0,class:"px-3 py-4 text-center text-retro-muted text-xs"},$v={key:0,class:"px-3 py-2 border-t border-retro-border space-y-2"},Cv={class:"flex gap-2 justify-end"},Qv=["disabled"],Pv={key:1,class:"px-3 py-2 border-t border-retro-border"},Tv=Ie({__name:"GitRemoteManager",props:{remotes:{},loading:{type:Boolean}},emits:["add","edit","delete","close"],setup(r,{emit:e}){const t=e,n=_(!1),s=_(""),i=_(""),o=_(null),a=_("");function l(){n.value=!0,s.value="",i.value=""}function c(){!s.value.trim()||!i.value.trim()||(t("add",{name:s.value.trim(),url:i.value.trim()}),n.value=!1)}function u(f){o.value=f.name,a.value=f.fetchUrl}function h(f){a.value.trim()&&(t("edit",{name:f,newUrl:a.value.trim()}),o.value=null)}function p(){o.value=null}return(f,g)=>(v(),x("div",mv,[d("div",gv,[g[5]||(g[5]=d("h3",{class:"text-sm font-semibold text-retro-text"},"Remote Repositories",-1)),d("button",{class:"p-0.5 text-retro-muted hover:text-retro-text transition-colors",onClick:g[0]||(g[0]=O=>t("close"))},[ee(m(Pt),{class:"w-4 h-4"})])]),d("div",Ov,[(v(!0),x(we,null,Fe(r.remotes,O=>(v(),x("div",{key:O.name,class:"flex items-center gap-2 px-3 py-2 border-b border-retro-border/50 text-xs"},[d("span",vv,B(O.name),1),m(o)===O.name?(v(),x(we,{key:0},[He(d("input",{"onUpdate:modelValue":g[1]||(g[1]=y=>tt(a)?a.value=y:null),type:"text",class:"flex-1 px-2 py-1 text-xs bg-retro-panel border border-retro-border rounded text-retro-text focus:outline-none focus:border-retro-cyan",onKeyup:[os(y=>h(O.name),["enter"]),os(p,["escape"])]},null,40,bv),[[Xt,m(a)]]),d("button",{class:"p-0.5 text-retro-green hover:text-retro-green/80",onClick:y=>h(O.name)},[ee(m(wu),{class:"w-3.5 h-3.5"})],8,xv),d("button",{class:"p-0.5 text-retro-muted hover:text-retro-text",onClick:p},[ee(m(Pt),{class:"w-3.5 h-3.5"})])],64)):(v(),x(we,{key:1},[d("span",yv,B(O.fetchUrl),1),d("button",{class:"p-0.5 text-retro-muted hover:text-retro-text",title:"Edit",onClick:y=>u(O)},[ee(m(Cu),{class:"w-3.5 h-3.5"})],8,kv),d("button",{class:"p-0.5 text-retro-muted hover:text-retro-red",title:"Delete",onClick:y=>t("delete",O.name)},[ee(m(fn),{class:"w-3.5 h-3.5"})],8,wv)],64))]))),128)),r.remotes.length===0?(v(),x("div",Sv," No remotes configured ")):U("",!0)]),m(n)?(v(),x("div",$v,[He(d("input",{"onUpdate:modelValue":g[2]||(g[2]=O=>tt(s)?s.value=O:null),type:"text",placeholder:"Remote name (e.g., origin)",class:"w-full px-2 py-1 text-xs bg-retro-panel border border-retro-border rounded text-retro-text placeholder-retro-muted focus:outline-none focus:border-retro-cyan"},null,512),[[Xt,m(s)]]),He(d("input",{"onUpdate:modelValue":g[3]||(g[3]=O=>tt(i)?i.value=O:null),type:"text",placeholder:"Remote URL",class:"w-full px-2 py-1 text-xs bg-retro-panel border border-retro-border rounded text-retro-text placeholder-retro-muted focus:outline-none focus:border-retro-cyan",onKeyup:os(c,["enter"])},null,544),[[Xt,m(i)]]),d("div",Cv,[d("button",{class:"px-2 py-1 text-xs text-retro-muted hover:text-retro-text transition-colors",onClick:g[4]||(g[4]=O=>n.value=!1)}," Cancel "),d("button",{class:"px-2 py-1 text-xs bg-retro-cyan/20 text-retro-cyan border border-retro-cyan/40 rounded hover:bg-retro-cyan/30 transition-colors",disabled:!m(s).trim()||!m(i).trim(),onClick:c}," Add Remote ",8,Qv)])])):U("",!0),m(n)?U("",!0):(v(),x("div",Pv,[d("button",{class:"flex items-center gap-1 text-xs text-retro-cyan hover:text-retro-cyan/80 transition-colors",onClick:l},[ee(m(sl),{class:"w-3.5 h-3.5"}),g[6]||(g[6]=Xe(" Add Remote ",-1))])]))]))}}),al={NODE_RADIUS:4,ROW_HEIGHT:32,COLUMN_WIDTH:20,PADDING:10,VISIBLE_BUFFER:10},Ro=["#3B82F6","#EF4444","#10B981","#F59E0B","#8B5CF6","#EC4899","#14B8A6","#F97316","#06B6D4","#84CC16","#F43F5E","#A855F7"],Ls={A:{label:"Added",colorClass:"text-retro-green"},M:{label:"Modified",colorClass:"text-retro-yellow"},D:{label:"Deleted",colorClass:"text-retro-red"},R:{label:"Renamed",colorClass:"text-retro-blue"},C:{label:"Copied",colorClass:"text-retro-purple"},U:{label:"Unmerged",colorClass:"text-retro-cyan"}},Mv=["width","height"],Av=["d","stroke","stroke-dasharray"],_v={key:0},Rv=["cx","r"],Bv=["cx","r","fill"],Zv=["cx","r","stroke"],Ev=["cx","r","fill"],Dv=["cx","r","stroke"],Lv=["cx","r","fill"],Xv=["cx","r"],Iv=["cx","r","fill"],Hp=Ie({__name:"GitGraphSvg",props:{rowData:{},maxLane:{default:4},highlightBranches:{},tooltipText:{}},setup(r){const e=r,{COLUMN_WIDTH:t,ROW_HEIGHT:n,NODE_RADIUS:s,PADDING:i}=al,o=J(()=>i*2+(e.maxLane+1)*t),a=n,l=n/2;function c(p){return i+p*t}function u(p){const f=c(p.fromLane),g=c(p.toLane);if(p.type==="vertical")return`M ${f} 0 L ${g} ${a}`;if(p.type==="vertical-top")return`M ${f} 0 L ${f} ${l}`;if(p.type==="vertical-bottom")return`M ${f} ${l} L ${f} ${a}`;if(p.style==="rounded")return`M ${f} ${l} C ${f} ${a}, ${g} ${a}, ${g} ${a}`;{const O=a*.75;return`M ${f} ${l} L ${f} ${O} L ${g} ${a}`}}const h=J(()=>e.rowData?c(e.rowData.lane):i);return(p,f)=>(v(),x("svg",{width:m(o),height:m(a),class:"block flex-shrink-0","aria-hidden":"true"},[r.rowData?(v(),x(we,{key:0},[(v(!0),x(we,null,Fe(r.rowData.connections,(g,O)=>(v(),x("path",{key:O,d:u(g),stroke:g.color,"stroke-width":"2",fill:"none","stroke-dasharray":g.type.startsWith("merge")?"4 3":"none"},null,8,Av))),128)),d("g",null,[r.tooltipText?(v(),x("title",_v,B(r.tooltipText),1)):U("",!0),r.rowData.nodeType==="head"?(v(),x(we,{key:1},[d("circle",{cx:m(h),cy:l,r:m(s)+2,fill:"none",stroke:"currentColor","stroke-width":"2",class:"text-retro-cyan"},null,8,Rv),d("circle",{cx:m(h),cy:l,r:m(s),fill:r.rowData.color},null,8,Bv)],64)):r.rowData.nodeType==="merge"?(v(),x(we,{key:2},[d("circle",{cx:m(h),cy:l,r:m(s)+1,fill:"none",stroke:r.rowData.color,"stroke-width":"1.5"},null,8,Zv),d("circle",{cx:m(h),cy:l,r:m(s)-1,fill:r.rowData.color},null,8,Ev)],64)):r.rowData.nodeType==="stash"?(v(),x(we,{key:3},[d("circle",{cx:m(h),cy:l,r:m(s),fill:"none",stroke:r.rowData.color,"stroke-width":"2"},null,8,Dv),d("circle",{cx:m(h),cy:l,r:m(s)-2,fill:r.rowData.color},null,8,Lv)],64)):r.rowData.nodeType==="uncommitted"?(v(),x("circle",{key:4,cx:m(h),cy:l,r:m(s),fill:"none",stroke:"currentColor","stroke-width":"2",class:"text-retro-yellow","stroke-dasharray":"3 2"},null,8,Xv)):(v(),x("circle",{key:5,cx:m(h),cy:l,r:m(s),fill:r.rowData.color},null,8,Iv))])],64)):U("",!0)],8,Mv))}}),Vv=["aria-selected","aria-label"],zv={key:1,class:"flex gap-1 flex-shrink-0"},Nv=["title","onContextmenu"],Wv={key:2,class:"flex gap-1 flex-shrink-0"},jv=["onContextmenu"],qv={class:"text-retro-text text-xs truncate flex-1"},Yv={key:5,class:"flex-shrink-0 text-retro-muted text-[10px] hidden sm:inline"},Fv={key:6,class:"flex-shrink-0 text-retro-muted text-[10px]"},zh=72,Uv=Ie({__name:"GitCommitRow",props:{commit:{},index:{},isSelected:{type:Boolean},isHighlighted:{type:Boolean},isBranchHighlighted:{type:Boolean},isFeatureHighlighted:{type:Boolean},isPreviewHighlighted:{type:Boolean},isMuted:{type:Boolean},currentBranchName:{},localBranchNames:{},graphRowData:{},maxLane:{},columnVisibility:{}},emits:["click","keydown","branchContextMenu","commitContextMenu","tagContextMenu"],setup(r,{emit:e}){const t=r,n=e,s=J(()=>{const p=t.commit.branches;if(p.length===0)return[];const f=t.localBranchNames,g=[],O=[];for(const A of p)f.has(A)?g.push(A):O.push(A);const y=new Set(g),b=new Map,C=[];for(const A of O){const E=A.indexOf("/");if(E>0){const F=A.substring(E+1),I=A.substring(0,E);y.has(F)?(b.has(F)||b.set(F,[]),b.get(F).push(I)):C.push(A)}else C.push(A)}const P=[];for(const A of g){const E=b.get(A)||[];E.length>0?P.push({displayName:`${A}/${E.join(",")}`,originalBranches:[A,...E.map(F=>`${F}/${A}`)],isLocal:!0}):P.push({displayName:A,originalBranches:[A],isLocal:!0})}for(const A of C)P.push({displayName:A,originalBranches:[A],isLocal:!1});return P});function i(p,f){p.preventDefault(),p.stopPropagation();const g=f.originalBranches[0];n("branchContextMenu",{branch:g,x:p.clientX,y:p.clientY,isCurrentBranch:f.isLocal&&f.originalBranches.includes(t.currentBranchName??""),isLocal:f.isLocal})}function o(p,f){p.preventDefault(),p.stopPropagation(),n("tagContextMenu",{tag:f,x:p.clientX,y:p.clientY})}function a(p){p.preventDefault(),p.stopPropagation(),n("commitContextMenu",{x:p.clientX,y:p.clientY})}const{ROW_HEIGHT:l}=al,c=J(()=>{const p=[t.commit.shortHash];return t.commit.branches.length>0&&p.push(t.commit.branches.join(", ")),t.commit.tags.length>0&&p.push(t.commit.tags.map(f=>`tag: ${f}`).join(", ")),p.join(" — ")});function u(p){const g=Date.now()/1e3-p;return g<60?"just now":g<3600?`${Math.floor(g/60)}m ago`:g<86400?`${Math.floor(g/3600)}h ago`:g<604800?`${Math.floor(g/86400)}d ago`:g<2592e3?`${Math.floor(g/604800)}w ago`:new Date(p*1e3).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}function h(p){const f=p.split(`
|
|
3
|
+
`)[0];return f.length>zh?f.substring(0,zh-3)+"...":f}return(p,f)=>{const g=Hp;return v(),x("div",{class:Re(["flex items-center cursor-pointer group focus:outline-none focus:ring-1 focus:ring-retro-cyan/50 focus:ring-inset",{"opacity-40":r.isMuted,"bg-retro-magenta/10":r.isPreviewHighlighted,"bg-retro-yellow/20":r.isFeatureHighlighted&&!r.isPreviewHighlighted}]),style:Ut({height:`${m(l)}px`}),role:"row",tabindex:"0","aria-selected":r.isSelected,"aria-label":`Commit ${r.commit.shortHash} by ${r.commit.author}: ${r.commit.message.split(`
|
|
4
|
+
`)[0]}`,onClick:f[0]||(f[0]=O=>n("click",O)),onKeydown:f[1]||(f[1]=O=>n("keydown",O)),onContextmenu:a},[ee(g,{rowData:r.graphRowData,maxLane:r.maxLane,tooltipText:m(c)},null,8,["rowData","maxLane","tooltipText"]),d("div",{class:Re(["flex-1 flex items-center gap-2 px-2 min-w-0 rounded-r transition-colors",{"bg-retro-magenta/10 border-l-2 border-retro-magenta/40":r.isPreviewHighlighted,"bg-retro-yellow/30 border-l-2 border-retro-yellow":r.isFeatureHighlighted&&!r.isPreviewHighlighted,"bg-retro-cyan/15":r.isSelected&&!r.isFeatureHighlighted&&!r.isPreviewHighlighted,"bg-retro-yellow/10":r.isHighlighted&&!r.isSelected&&!r.isFeatureHighlighted&&!r.isPreviewHighlighted,"bg-retro-cyan/5":r.isBranchHighlighted&&!r.isSelected&&!r.isHighlighted&&!r.isFeatureHighlighted&&!r.isPreviewHighlighted,"group-hover:bg-retro-panel/50":!r.isSelected&&!r.isHighlighted&&!r.isFeatureHighlighted&&!r.isPreviewHighlighted&&!r.isBranchHighlighted}]),style:Ut({height:`${m(l)-4}px`})},[!r.columnVisibility||r.columnVisibility.commit!==!1?(v(),x("span",{key:0,class:Re(["flex-shrink-0 font-mono text-[11px]",r.commit.isHead?"text-retro-cyan font-semibold":"text-retro-muted"])},B(r.commit.shortHash),3)):U("",!0),m(s).length>0?(v(),x("div",zv,[(v(!0),x(we,null,Fe(m(s),O=>(v(),x("span",{key:O.displayName,class:Re(["px-1.5 py-0.5 text-[10px] rounded font-semibold leading-none cursor-context-menu hover:ring-1 hover:ring-retro-cyan/50",r.commit.isHead&&O.isLocal?"bg-retro-cyan/20 text-retro-cyan border border-retro-cyan/40":r.isPreviewHighlighted?"bg-retro-magenta/10 text-retro-magenta border border-retro-magenta/40":r.isFeatureHighlighted?"bg-retro-yellow/15 text-retro-yellow border border-retro-yellow/30":r.isBranchHighlighted?"bg-retro-cyan/15 text-retro-cyan/80 border border-retro-cyan/30":O.isLocal?"bg-retro-green/15 text-retro-green border border-retro-green/30":"bg-retro-orange/15 text-retro-orange border border-retro-orange/30"]),title:O.originalBranches.join(", "),onContextmenu:y=>i(y,O)},B(O.displayName),43,Nv))),128))])):U("",!0),r.commit.tags.length>0?(v(),x("div",Wv,[(v(!0),x(we,null,Fe(r.commit.tags,O=>(v(),x("span",{key:O,class:"px-1 py-0.5 text-[10px] rounded-sm bg-retro-yellow/15 text-retro-yellow border border-retro-yellow/25 flex items-center gap-0.5 leading-none cursor-context-menu hover:ring-1 hover:ring-retro-yellow/50",onContextmenu:y=>o(y,O)},[ee(m(Tu),{class:"w-2.5 h-2.5"}),Xe(" "+B(O),1)],40,jv))),128))])):U("",!0),d("span",qv,B(h(r.commit.message)),1),r.commit.signatureStatus==="good"?(v(),Oe(m(Gp),{key:3,class:"w-3.5 h-3.5 flex-shrink-0 text-retro-green",title:"Verified signature"})):r.commit.signatureStatus==="bad"?(v(),Oe(m(Pu),{key:4,class:"w-3.5 h-3.5 flex-shrink-0 text-retro-red",title:"Bad signature"})):U("",!0),!r.columnVisibility||r.columnVisibility.author!==!1?(v(),x("span",Yv,B(r.commit.author),1)):U("",!0),!r.columnVisibility||r.columnVisibility.date!==!1?(v(),x("span",Fv,B(u(r.commit.timestamp)),1)):U("",!0)],6)],46,Vv)}}});function Gv(){const{COLUMN_WIDTH:r,ROW_HEIGHT:e,NODE_RADIUS:t,PADDING:n}=al;function s(l){let c=0;for(let u=0;u<l.length;u++){const h=l.charCodeAt(u);c=(c<<5)-c+h,c=c&c}return Math.abs(c)}function i(l){const c=s(l)%Ro.length;return Ro[c]}function o(l,c="rounded"){const u=new Map;if(l.length===0)return u;const h=new Set,p=new Map;for(const P of l)p.set(P.hash,P);const f=l.find(P=>P.isHead)||l[0];if(f){let P=f;for(;P;){h.add(P.hash);const A=P.parents?.[0];P=A?p.get(A):void 0}}const g=new Map,O=new Map,y=new Map,b=new Map,C=new Map;for(let P=0;P<l.length;P++){const A=l[P];C.set(A.hash,P);const E=h.has(A.hash);let F,I;if(b.has(A.hash)){const D=b.get(A.hash);F=D.lane,I=D.color,b.delete(A.hash)}else if(E)F=0,I=Ro[0];else{for(F=1;y.has(F);)F++;I=i(A.hash.substring(0,7))}g.set(A.hash,F),O.set(A.hash,I),y.set(F,A.hash);const oe=A.isMerge||A.parents&&A.parents.length>1;let ie="regular";A.isHead?ie="head":oe&&(ie="merge"),u.set(A.hash,{commitHash:A.hash,lane:F,color:I,nodeType:ie,isMainline:h.has(A.hash),connections:[]});const ne=A.parents||[];for(let D=0;D<ne.length;D++){const Z=ne[D];if(g.has(Z)||b.has(Z))continue;const z=h.has(Z);let q,V;if(D===0)q=F,V=I;else if(z)q=0,V=Ro[0];else{for(q=1;y.has(q)||q===F;)q++;V=i(Z.substring(0,7))}b.set(Z,{lane:q,color:V,childHash:A.hash})}const L=ne[0];if(!L)y.delete(F);else{const D=g.get(L),Z=b.get(L),z=D??Z?.lane;z!==void 0&&z!==F&&y.delete(F)}}for(let P=0;P<l.length;P++){const A=l[P],E=u.get(A.hash);if(!E)continue;const F=A.parents||[];for(let I=0;I<F.length;I++){const oe=F[I],ie=g.get(oe),ne=C.get(oe);if(ie===void 0)continue;const L=E.lane,D=ie,Z=I===0?E.color:O.get(oe)||i(oe.substring(0,7));if(L===D?E.connections.push({type:"vertical-bottom",fromLane:L,toLane:D,color:Z,style:c}):I>0?E.connections.push({type:L<D?"merge-out":"merge-in",fromLane:L,toLane:D,color:Z,style:c}):E.connections.push({type:L<D?"branch-out":"branch-in",fromLane:L,toLane:D,color:Z,style:c}),ne!==void 0&&ne>P+1)for(let z=P+1;z<ne;z++){const q=l[z],V=u.get(q.hash);V&&V.connections.push({type:"vertical",fromLane:D,toLane:D,color:Z,style:c})}if(ne!==void 0){const z=u.get(oe);z&&z.connections.push({type:"vertical-top",fromLane:D,toLane:D,color:Z,style:c})}}}return u}function a(l){let c=0;for(const u of l.values()){u.lane>c&&(c=u.lane);for(const h of u.connections)h.fromLane>c&&(c=h.fromLane),h.toLane>c&&(c=h.toLane)}return c}return{computeGraphRows:o,computeMaxLane:a,getBranchColor:i,COLUMN_WIDTH:r,ROW_HEIGHT:e,NODE_RADIUS:t,PADDING:n}}const Hv=["aria-selected"],Kv={class:"text-retro-yellow text-xs font-medium"},Jv={key:1,class:"flex items-center justify-center gap-2 p-2 text-retro-muted text-sm"},eb={key:2,class:"p-2 text-center text-retro-muted/50 text-xs"},tb=Ie({__name:"GitCommitList",props:{commits:{},stashes:{},selectedCommit:{},hasMore:{type:Boolean},loading:{type:Boolean},loadingMore:{type:Boolean},searchQuery:{},uncommittedChangesCount:{},isUncommittedChangesSelected:{type:Boolean},highlightBranches:{},featureHighlightBranches:{},featureMergeBases:{},previewHighlightBranches:{},previewMergeBases:{},currentBranchName:{},localBranchNames:{},graphStyle:{default:"rounded"},muteNonAncestral:{type:Boolean},columnVisibility:{}},emits:["select","compareSelect","loadMore","branchContextMenu","commitContextMenu","tagContextMenu","stashContextMenu","selectUncommittedChanges","scrollStart","scrollEnd"],setup(r,{expose:e,emit:t}){const n=r,s=t;function i(){s("selectUncommittedChanges")}function o($){($.key==="Enter"||$.key===" ")&&($.preventDefault(),s("selectUncommittedChanges"))}const a=J(()=>n.searchQuery?.toLowerCase()??""),l=J(()=>new Set(n.highlightBranches??[])),c=J(()=>l.value.size>0),u=J(()=>{const $=a.value;if(!$)return new Set;const w=new Set;for(const M of n.commits)(M.message.toLowerCase().includes($)||M.author.toLowerCase().includes($)||M.shortHash.toLowerCase().includes($)||M.hash.toLowerCase().includes($)||M.branches.some(R=>R.toLowerCase().includes($))||M.tags.some(R=>R.toLowerCase().includes($)))&&w.add(M.hash);return w}),h=J(()=>{if(!c.value)return new Set;const $=new Set;for(const w of n.commits)w.branches.some(M=>l.value.has(M))&&$.add(w.hash);return $}),p=J(()=>{if(!n.featureHighlightBranches||n.featureHighlightBranches.length===0)return new Set;const $=n.featureMergeBases??{},w=new Map;for(const R of n.commits)w.set(R.hash,R);const M=new Set;for(const R of n.featureHighlightBranches){const G=n.commits.find(De=>De.branches.includes(R));if(!G)continue;const ae=$[R]??null;if(!ae)continue;let xe=G;for(;xe&&xe.hash!==ae;)M.add(xe.hash),xe=xe.parents?.[0]?w.get(xe.parents[0]):void 0}return M}),f=J(()=>{if(!n.previewHighlightBranches||n.previewHighlightBranches.length===0)return new Set;const $=n.previewMergeBases??{},w=new Map;for(const R of n.commits)w.set(R.hash,R);const M=new Set;for(const R of n.previewHighlightBranches){const G=n.commits.find(De=>De.branches.includes(R));if(!G)continue;const ae=$[R]??null;if(!ae)continue;let xe=G;for(;xe&&xe.hash!==ae;)M.add(xe.hash),xe=xe.parents?.[0]?w.get(xe.parents[0]):void 0}return M});function g($,w){s("branchContextMenu",{...w,commitHash:$.hash})}function O($,w){s("commitContextMenu",{commit:$,...w})}function y($,w){s("tagContextMenu",{...w,commitHash:$.hash})}const{ROW_HEIGHT:b,VISIBLE_BUFFER:C}=al,{computeGraphRows:P,computeMaxLane:A}=Gv(),E=J(()=>P([...n.commits],n.graphStyle)),F=J(()=>A(E.value)),I=J(()=>{const $=n.stashes||[];if($.length===0)return n.commits.map((G,ae)=>({type:"commit",commit:G,commitIndex:ae}));const w=[],M=[...$].sort((G,ae)=>new Date(ae.date).getTime()-new Date(G.date).getTime());let R=0;for(let G=0;G<n.commits.length;G++){const ae=n.commits[G],xe=ae.timestamp*1e3;for(;R<M.length&&new Date(M[R].date).getTime()>=xe;)w.push({type:"stash",stash:M[R]}),R++;w.push({type:"commit",commit:ae,commitIndex:G})}for(;R<M.length;)w.push({type:"stash",stash:M[R]}),R++;return w}),oe=_(null),ie=_(0),ne=_(400);let L=null;const D=J(()=>{const $=C,w=I.value.length,M=Math.max(0,Math.floor(ie.value/b)-$),R=Math.min(w,Math.ceil((ie.value+ne.value)/b)+$);return{startIndex:M,endIndex:R}}),Z=J(()=>{const{startIndex:$,endIndex:w}=D.value;return I.value.slice($,w).map((M,R)=>({row:M,index:$+R,graphRow:M.type==="commit"&&E.value.get(M.commit.hash)||null,isHighlighted:M.type==="commit"?u.value.has(M.commit.hash):!1,isBranchHighlighted:M.type==="commit"?h.value.has(M.commit.hash):!1,isFeatureHighlighted:M.type==="commit"?p.value.has(M.commit.hash):!1,isPreviewHighlighted:M.type==="commit"?f.value.has(M.commit.hash):!1,isMuted:M.type==="commit"&&n.muteNonAncestral?!(E.value.get(M.commit.hash)?.isMainline??!1):!1}))}),z=J(()=>I.value.length*b),q=J(()=>D.value.startIndex*b);function V($){const w=$.target;ie.value=w.scrollTop,L||s("scrollStart"),L&&clearTimeout(L),L=setTimeout(()=>{L=null,s("scrollEnd")},150),n.hasMore&&!n.loading&&!n.loadingMore&&w.scrollTop+w.clientHeight>=w.scrollHeight-200&&s("loadMore")}function X($,w){w.ctrlKey||w.metaKey?s("compareSelect",$):s("select",$)}function N($,w,M){if($.key==="Enter"||$.key===" ")$.preventDefault(),s("select",w);else if($.key==="ArrowDown"){$.preventDefault();for(let R=M+1;R<I.value.length;R++){const G=I.value[R];if(G.type==="commit"){s("select",G.commit),me(R);break}}}else if($.key==="ArrowUp"){$.preventDefault();for(let R=M-1;R>=0;R--){const G=I.value[R];if(G.type==="commit"){s("select",G.commit),me(R);break}}}}function me($){if(!oe.value)return;const w=$*b,M=oe.value.scrollTop,R=M+oe.value.clientHeight;w<M?oe.value.scrollTop=w:w+b>R&&(oe.value.scrollTop=w+b-oe.value.clientHeight)}mt(()=>{if(oe.value){ne.value=oe.value.clientHeight;const $=new ResizeObserver(w=>{for(const M of w)ne.value=M.contentRect.height});$.observe(oe.value),St(()=>$.disconnect())}});function K(){return oe.value?.scrollTop??0}function he($){oe.value&&(oe.value.scrollTop=$)}return e({getScrollPosition:K,setScrollPosition:he,scrollToIndex:me}),($,w)=>{const M=Hp,R=Uv;return v(),x("div",{ref_key:"containerRef",ref:oe,class:"h-full overflow-auto",role:"list","aria-label":"Commit history",onScroll:V},[r.uncommittedChangesCount&&r.uncommittedChangesCount>0?(v(),x("div",{key:0,class:"flex items-center cursor-pointer group sticky top-0 z-10 bg-retro-dark border-b border-retro-border",style:Ut({height:`${m(b)}px`}),role:"button",tabindex:"0","aria-selected":r.isUncommittedChangesSelected,onClick:i,onKeydown:o},[ee(M,{rowData:{commitHash:"uncommitted",lane:0,color:"#F59E0B",nodeType:"uncommitted",isMainline:!1,connections:[]},maxLane:m(F)},null,8,["maxLane"]),d("div",{class:Re(["flex-1 flex items-center gap-2 px-2 min-w-0 rounded-r transition-colors",{"bg-retro-yellow/15":r.isUncommittedChangesSelected,"group-hover:bg-retro-panel/50":!r.isUncommittedChangesSelected}]),style:Ut({height:`${m(b)-4}px`})},[ee(m(po),{class:"w-4 h-4 text-retro-yellow flex-shrink-0"}),d("span",Kv," Uncommitted Changes ("+B(r.uncommittedChangesCount)+") ",1),w[1]||(w[1]=d("span",{class:"flex-1"},null,-1)),w[2]||(w[2]=d("span",{class:"text-retro-muted text-[10px]"},"Working tree",-1))],6)],44,Hv)):U("",!0),d("div",{class:"relative",style:Ut({height:`${m(z)}px`})},[d("div",{class:"absolute left-0 right-0",style:Ut({transform:`translateY(${m(q)}px)`})},[(v(!0),x(we,null,Fe(m(Z),({row:G,index:ae,graphRow:xe,isHighlighted:De,isBranchHighlighted:Ae,isFeatureHighlighted:Ue,isPreviewHighlighted:Ye,isMuted:pe})=>(v(),x(we,{key:G.type==="commit"?G.commit.hash:`stash-${G.stash.index}`},[G.type==="commit"?Rp([G.commit.hash,G.commit.message,G.commit.timestamp,G.commit.branches.join("|"),G.commit.tags.join("|"),r.selectedCommit?.hash===G.commit.hash,De,Ae,Ue,Ye,pe,n.currentBranchName||"",n.columnVisibility?.date!==!1,n.columnVisibility?.author!==!1,n.columnVisibility?.commit!==!1],()=>(v(),Oe(R,{key:0,commit:G.commit,index:G.commitIndex,isSelected:r.selectedCommit?.hash===G.commit.hash,isHighlighted:De,isBranchHighlighted:Ae,isFeatureHighlighted:Ue,isPreviewHighlighted:Ye,isMuted:pe,currentBranchName:n.currentBranchName,localBranchNames:n.localBranchNames,graphRowData:xe,maxLane:m(F),columnVisibility:n.columnVisibility,onClick:Ce=>X(G.commit,Ce),onKeydown:Ce=>N(Ce,G.commit,ae),onBranchContextMenu:Ce=>g(G.commit,Ce),onCommitContextMenu:Ce=>O(G.commit,Ce),onTagContextMenu:Ce=>y(G.commit,Ce)},null,8,["commit","index","isSelected","isHighlighted","isBranchHighlighted","isFeatureHighlighted","isPreviewHighlighted","isMuted","currentBranchName","localBranchNames","graphRowData","maxLane","columnVisibility","onClick","onKeydown","onBranchContextMenu","onCommitContextMenu","onTagContextMenu"])),w,0):U("",!0)],64))),128))],4)],4),(r.loading||r.loadingMore)&&r.commits.length>0?(v(),x("div",Jv,[...w[3]||(w[3]=[d("div",{class:"w-3 h-3 border-2 border-retro-muted border-t-retro-cyan rounded-full animate-spin"},null,-1),Xe(" Loading more commits... ",-1)])])):U("",!0),!r.hasMore&&r.commits.length>0&&!r.loading?(v(),x("div",eb,B(r.commits.length)+" commits loaded ",1)):U("",!0)],544)}}});function rb(r){const e=r.charAt(0).toUpperCase();return e in Ls?e:"M"}function Bo(r,e){if(r&&typeof r=="object"){const t=r;if(typeof t.data?.message=="string"&&t.data.message.trim())return t.data.message;if(typeof t.statusMessage=="string"&&t.statusMessage.trim())return t.statusMessage;if(typeof t.message=="string"&&t.message.trim())return t.message}return r instanceof Error&&r.message?r.message:e}function Nh(r,e){const t=e.trim().toLowerCase();return t?r.filter(n=>n.message.toLowerCase().includes(t)||n.author.toLowerCase().includes(t)||n.shortHash.includes(t)||n.hash.includes(t)||n.branches.some(s=>s.toLowerCase().includes(t))||n.tags.some(s=>s.toLowerCase().includes(t))):[...r]}function nb(r,e){return e.size===0?[...r]:r.filter(t=>t.branches.some(n=>e.has(n)))}const sb={class:"flex flex-col h-full border-t border-retro-border bg-retro-dark"},ib={class:"flex items-center justify-between p-2 border-b border-retro-border flex-shrink-0"},ob={class:"flex items-center gap-2 text-xs min-w-0"},ab={class:"font-mono text-retro-cyan"},lb={class:"font-mono text-retro-cyan"},cb={key:0,class:"px-3 py-1.5 text-xs text-retro-muted border-b border-retro-border flex-shrink-0"},ub={class:"text-retro-green"},hb={class:"text-retro-red"},db={key:1,class:"flex-1 flex items-center justify-center"},fb={key:2,class:"flex-1 overflow-auto"},pb={class:"text-retro-text truncate flex-1"},mb={class:"text-retro-muted"},gb={key:0,class:"flex-shrink-0 text-[10px] font-mono"},Ob={key:0,class:"text-retro-green"},vb={key:1,class:"text-retro-red ml-1"},bb={key:1,class:"flex-shrink-0 text-[10px] text-retro-muted italic"},xb={key:3,class:"flex-1 flex items-center justify-center text-retro-muted text-sm"},yb=Ie({__name:"GitComparisonView",props:{fromCommit:{},toCommit:{},files:{},stats:{},loading:{type:Boolean}},emits:["close"],setup(r,{emit:e}){const t=e;function n(s){const i=rb(s);return Ls[i]||Ls.M}return(s,i)=>(v(),x("div",sb,[d("div",ib,[d("div",ob,[i[1]||(i[1]=d("span",{class:"text-retro-muted"},"Comparing",-1)),d("span",ab,B(r.fromCommit.shortHash),1),i[2]||(i[2]=d("span",{class:"text-retro-muted"},"→",-1)),d("span",lb,B(r.toCommit.shortHash),1)]),d("button",{class:"p-1 text-retro-muted hover:text-retro-text transition-colors flex-shrink-0","aria-label":"Close comparison",onClick:i[0]||(i[0]=o=>t("close"))},[ee(m(Pt),{class:"w-4 h-4"})])]),r.stats?(v(),x("div",cb,[Xe(B(r.stats.filesChanged)+" file"+B(r.stats.filesChanged!==1?"s":"")+" changed, ",1),d("span",ub,"+"+B(r.stats.additions),1),d("span",hb," -"+B(r.stats.deletions),1)])):U("",!0),r.loading?(v(),x("div",db,[...i[3]||(i[3]=[d("div",{class:"flex items-center gap-2 text-retro-muted text-sm"},[d("div",{class:"w-4 h-4 border-2 border-retro-muted border-t-retro-cyan rounded-full animate-spin"}),Xe(" Loading comparison... ")],-1)])])):r.files&&r.files.length>0?(v(),x("div",fb,[(v(!0),x(we,null,Fe(r.files,o=>(v(),x("div",{key:o.path,class:"flex items-center gap-2 px-3 py-1.5 hover:bg-retro-panel/50 text-xs border-b border-retro-border/50"},[d("span",{class:Re(["flex-shrink-0 w-4 text-center font-semibold text-[10px]",n(o.status).colorClass])},B(o.status.charAt(0)),3),d("span",pb,[o.oldPath&&o.status.startsWith("R")?(v(),x(we,{key:0},[d("span",mb,B(o.oldPath),1),i[4]||(i[4]=d("span",{class:"text-retro-muted mx-1"},"→",-1))],64)):U("",!0),Xe(" "+B(o.path),1)]),o.binary?(v(),x("span",bb,"binary")):(v(),x("span",gb,[o.additions>0?(v(),x("span",Ob,"+"+B(o.additions),1)):U("",!0),o.deletions>0?(v(),x("span",vb,"-"+B(o.deletions),1)):U("",!0)]))]))),128))])):r.files&&r.files.length===0?(v(),x("div",xb," No differences between these commits ")):U("",!0)]))}}),kb={":art:":"🎨",":zap:":"⚡",":fire:":"🔥",":bug:":"🐛",":ambulance:":"🚑",":sparkles:":"✨",":memo:":"📝",":rocket:":"🚀",":lipstick:":"💄",":tada:":"🎉",":white_check_mark:":"✅",":lock:":"🔒",":closed_lock_with_key:":"🔐",":bookmark:":"🔖",":rotating_light:":"🚨",":construction:":"🚧",":green_heart:":"💚",":arrow_down:":"⬇️",":arrow_up:":"⬆️",":pushpin:":"📌",":construction_worker:":"👷",":chart_with_upwards_trend:":"📈",":recycle:":"♻️",":heavy_plus_sign:":"➕",":heavy_minus_sign:":"➖",":wrench:":"🔧",":hammer:":"🔨",":globe_with_meridians:":"🌐",":pencil2:":"✏️",":poop:":"💩",":rewind:":"⏪",":twisted_rightwards_arrows:":"🔀",":package:":"📦",":alien:":"👽",":truck:":"🚚",":page_facing_up:":"📄",":boom:":"💥",":bento:":"🍱",":wheelchair:":"♿",":bulb:":"💡",":beers:":"🍻",":speech_balloon:":"💬",":card_file_box:":"🗃️",":loud_sound:":"🔊",":mute:":"🔇",":busts_in_silhouette:":"👥",":children_crossing:":"🚸",":building_construction:":"🏗️",":iphone:":"📱",":clown_face:":"🤡",":egg:":"🥚",":see_no_evil:":"🙈",":camera_flash:":"📸",":alembic:":"⚗️",":mag:":"🔍",":label:":"🏷️",":seedling:":"🌱",":triangular_flag_on_post:":"🚩",":goal_net:":"🥅",":dizzy:":"💫",":wastebasket:":"🗑️",":passport_control:":"🛂",":adhesive_bandage:":"🩹",":monocle_face:":"🧐",":coffin:":"⚰️",":test_tube:":"🧪",":necktie:":"👔",":stethoscope:":"🩺",":bricks:":"🧱",":technologist:":"🧑💻",":money_with_wings:":"💸",":thread:":"🧵",":safety_vest:":"🦺"},wb=/https?:\/\/[^\s<>)"']+/g;function Sb(r){return r.replace(wb,e=>`<a href="${e}" target="_blank" rel="noopener noreferrer" class="text-retro-blue hover:underline">${e}</a>`)}function $b(r){return r.replace(/:[a-z0-9_]+:/g,e=>kb[e]||e)}function Cb(r){if(!r)return"";let e=$b(r);return e=b1.parse(e),e=Sb(e),e=x1.sanitize(e,{ALLOWED_TAGS:["a","strong","em","code","b","i","br","p","ul","ol","li","pre","blockquote","h1","h2","h3"],ALLOWED_ATTR:["href","target","rel","class"]}),e}const Qb={class:"flex-shrink-0 flex items-center justify-between px-4 py-2 border-b border-retro-border bg-retro-panel"},Pb={class:"flex items-center gap-2 min-w-0"},Tb={class:"text-retro-cyan font-mono text-sm"},Mb={class:"text-retro-muted text-sm truncate"},Ab={class:"flex items-center gap-1 flex-shrink-0"},_b=["aria-label","title"],Rb={class:"flex-1 overflow-auto p-4 space-y-4"},Bb={class:"space-y-2"},Zb={class:"flex items-center gap-2 text-sm"},Eb={class:"text-retro-text font-mono text-xs bg-retro-panel px-2 py-1 rounded"},Db={class:"flex items-center gap-2 text-sm"},Lb={class:"text-retro-text"},Xb={class:"text-retro-muted"},Ib={key:0,class:"flex items-center gap-2 text-sm"},Vb={class:"text-retro-text"},zb={class:"text-retro-muted"},Nb={class:"flex items-center gap-2 text-sm"},Wb={class:"text-retro-text"},jb={key:1,class:"flex items-start gap-2 text-sm"},qb={class:"flex flex-wrap gap-1"},Yb=["onClick","title"],Fb={key:2,class:"flex items-start gap-2 text-sm"},Ub={class:"flex flex-wrap gap-1"},Gb={key:3,class:"flex items-start gap-2 text-sm"},Hb={class:"flex flex-wrap gap-1"},Kb={class:"space-y-1"},Jb={class:"text-retro-text text-sm font-mono bg-retro-panel p-3 rounded"},ex={key:0,class:"space-y-1"},tx=["innerHTML"],rx={key:1,class:"space-y-2"},nx={class:"flex items-center gap-2 text-sm"},sx={class:"text-retro-muted"},ix={key:0,class:"flex items-center gap-2"},ox={class:"text-retro-green text-xs font-mono"},ax={class:"flex-1 h-2 rounded overflow-hidden bg-retro-panel flex"},lx={class:"text-retro-red text-xs font-mono"},cx={key:2,class:"space-y-2"},ux={class:"flex items-center justify-between"},hx={class:"text-retro-muted text-xs uppercase tracking-wide"},dx={class:"flex items-center gap-1"},fx={key:0,class:"text-retro-muted text-sm py-2"},px={key:1,class:"space-y-0.5"},mx=["onClick"],gx=["title"],Ox={class:"text-retro-text font-mono text-xs truncate flex-1"},vx={class:"text-retro-muted"},bx={class:"text-retro-text"},xx={key:0,class:"flex-shrink-0 font-mono text-xs flex items-center gap-1"},yx={key:0,class:"text-retro-green"},kx={key:1,class:"text-retro-red"},wx={key:1,class:"flex-shrink-0 font-mono text-xs text-retro-muted"},Sx={key:2,class:"space-y-0"},$x=["onClick"],Cx={class:"text-retro-text font-mono text-xs"},Qx=["title"],Px={class:"text-retro-text font-mono text-xs truncate flex-1"},Tx={class:"text-retro-muted"},Mx={class:"text-retro-text"},Ax={key:0,class:"flex-shrink-0 font-mono text-xs flex items-center gap-1"},_x={key:0,class:"text-retro-green"},Rx={key:1,class:"text-retro-red"},Bx={key:1,class:"flex-shrink-0 font-mono text-xs text-retro-muted"},Zx={key:3,class:"flex items-center gap-2 text-retro-muted text-sm py-2"},Ex={key:4,class:"text-retro-muted text-sm py-2"},Dx=Ie({__name:"GitCommitDetail",props:{commit:{},files:{},stats:{},loading:{type:Boolean,default:!1},committer:{},committerEmail:{},detailPosition:{default:"inline"}},emits:["close","navigateToCommit","togglePosition","navigatePrev","navigateNext","openFileDiff"],setup(r,{emit:e}){const t=r,n=e,s=_(null),i=_("flat"),o=_(new Set),a=J(()=>!t.committer||!t.committerEmail?!1:t.committer!==t.commit.author||t.committerEmail!==t.commit.email),l=J(()=>{const L=t.commit.body;return L?Cb(L):""}),c=J(()=>{if(!t.stats)return"";const{filesChanged:L,additions:D,deletions:Z}=t.stats,q=[`${L} ${L===1?"file":"files"} changed`];return D>0&&q.push(`+${D} insertion${D===1?"":"s"}`),Z>0&&q.push(`-${Z} deletion${Z===1?"":"s"}`),q.join(", ")});function u(L){const D=[];for(const Z of L){const z=Z.path.split("/");let q=D;for(let V=0;V<z.length;V++){const X=z[V],N=V===z.length-1,me=z.slice(0,V+1).join("/");let K=q.find(he=>he.name===X&&he.isDirectory===!N);K||(K={name:X,fullPath:me,isDirectory:!N,children:[],file:N?Z:void 0},q.push(K)),N||(q=K.children)}}return h(D),D}function h(L){for(const D of L)if(D.isDirectory)for(h(D.children);D.children.length===1&&D.children[0].isDirectory;){const Z=D.children[0];D.name=`${D.name}/${Z.name}`,D.fullPath=Z.fullPath,D.children=Z.children}}function p(L){return[...L].sort((D,Z)=>D.isDirectory&&!Z.isDirectory?-1:!D.isDirectory&&Z.isDirectory?1:D.name.localeCompare(Z.name))}function f(L,D,Z){const z=[];for(const q of p(L)){const V=Z.size===0?!0:Z.has(q.fullPath);z.push({key:q.fullPath,depth:D,isDirectory:q.isDirectory,name:q.name,fullPath:q.fullPath,expanded:q.isDirectory?V:!1,file:q.file}),q.isDirectory&&V&&z.push(...f(q.children,D+1,Z))}return z}const g=J(()=>!t.files||t.files.length===0?[]:u(t.files)),O=J(()=>f(g.value,0,o.value));function y(L){o.value.has(L)?o.value.delete(L):o.value.add(L),o.value=new Set(o.value)}function b(){const L=D=>{const Z=[];for(const z of D)z.isDirectory&&(Z.push(z.fullPath),Z.push(...L(z.children)));return Z};o.value=new Set(L(g.value))}function C(){o.value=new Set}ze(i,L=>{L==="tree"&&b()});function P(L){return new Date(L*1e3).toLocaleString("en-US",{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",hour12:!0})}function A(L){return Ls[L]||{label:L,colorClass:"text-retro-muted"}}const E=J(()=>{if(!t.stats)return{addPct:0,delPct:0};const L=t.stats.additions+t.stats.deletions;return L===0?{addPct:50,delPct:50}:{addPct:Math.round(t.stats.additions/L*100),delPct:Math.round(t.stats.deletions/L*100)}});function F(L){L.key==="ArrowUp"?(L.preventDefault(),n("navigatePrev")):L.key==="ArrowDown"?(L.preventDefault(),n("navigateNext")):L.key==="Escape"&&(L.preventDefault(),n("close"))}mt(()=>{br(()=>{s.value?.focus()})}),ze(()=>t.commit.hash,()=>{br(()=>{s.value?.focus()})});function I(){n("close")}function oe(L){n("navigateToCommit",L)}function ie(){n("togglePosition")}function ne(L){n("openFileDiff",L)}return(L,D)=>(v(),x("section",{ref_key:"containerRef",ref:s,tabindex:0,onKeydown:F,class:"flex-1 min-h-0 flex flex-col border-t border-retro-border bg-retro-dark focus:outline-none","aria-label":"Commit details",role:"region"},[d("div",Qb,[d("div",Pb,[d("span",Tb,B(r.commit.shortHash),1),d("span",Mb,B(r.commit.message.split(`
|
|
5
|
+
`)[0]),1)]),d("div",Ab,[d("button",{onClick:ie,class:"p-1 hover:bg-retro-dark rounded transition-colors focus:outline-none focus:ring-2 focus:ring-retro-cyan","aria-label":r.detailPosition==="inline"?"Dock detail to bottom":"Show detail inline",title:r.detailPosition==="inline"?"Dock to bottom":"Show inline"},[r.detailPosition==="inline"?(v(),Oe(m(Np),{key:0,class:"w-4 h-4 text-retro-muted hover:text-retro-text"})):(v(),Oe(m(zp),{key:1,class:"w-4 h-4 text-retro-muted hover:text-retro-text"}))],8,_b),d("button",{onClick:I,class:"p-1 hover:bg-retro-dark rounded transition-colors focus:outline-none focus:ring-2 focus:ring-retro-cyan","aria-label":"Close commit details"},[ee(m(Pt),{class:"w-4 h-4 text-retro-muted hover:text-retro-text"})])])]),d("div",Rb,[d("div",Bb,[d("div",Zb,[D[2]||(D[2]=d("span",{class:"text-retro-muted w-20 flex-shrink-0"},"Hash:",-1)),d("code",Eb,B(r.commit.hash),1)]),d("div",Db,[ee(m(Rh),{class:"w-4 h-4 text-retro-muted flex-shrink-0"}),d("span",Lb,B(r.commit.author),1),d("span",Xb,"<"+B(r.commit.email)+">",1)]),a.value?(v(),x("div",Ib,[ee(m(Rh),{class:"w-4 h-4 text-retro-yellow flex-shrink-0"}),D[3]||(D[3]=d("span",{class:"text-retro-muted text-xs uppercase mr-1"},"Committer:",-1)),d("span",Vb,B(r.committer),1),d("span",zb,"<"+B(r.committerEmail)+">",1)])):U("",!0),d("div",Nb,[ee(m(y1),{class:"w-4 h-4 text-retro-muted flex-shrink-0"}),d("span",Wb,B(P(r.commit.timestamp)),1)]),r.commit.parents?.length>0?(v(),x("div",jb,[D[4]||(D[4]=d("span",{class:"text-retro-muted w-20 flex-shrink-0"},"Parents:",-1)),d("div",qb,[(v(!0),x(we,null,Fe(r.commit.parents,Z=>(v(),x("button",{key:Z,onClick:z=>oe(Z),class:"text-retro-cyan font-mono text-xs bg-retro-panel px-2 py-0.5 rounded hover:bg-retro-dark hover:text-retro-text transition-colors cursor-pointer focus:outline-none focus:ring-2 focus:ring-retro-cyan",title:`Navigate to parent ${Z.substring(0,7)}`},B(Z.substring(0,7)),9,Yb))),128))])])):U("",!0),r.commit.branches?.length>0?(v(),x("div",Fb,[D[5]||(D[5]=d("span",{class:"text-retro-muted w-20 flex-shrink-0"},"Branches:",-1)),d("div",Ub,[(v(!0),x(we,null,Fe(r.commit.branches,Z=>(v(),x("span",{key:Z,class:"text-retro-green font-mono text-xs bg-retro-panel px-2 py-0.5 rounded"},B(Z),1))),128))])])):U("",!0),r.commit.tags?.length>0?(v(),x("div",Gb,[D[6]||(D[6]=d("span",{class:"text-retro-muted w-20 flex-shrink-0"},"Tags:",-1)),d("div",Hb,[(v(!0),x(we,null,Fe(r.commit.tags,Z=>(v(),x("span",{key:Z,class:"text-retro-yellow font-mono text-xs bg-retro-panel px-2 py-0.5 rounded"},B(Z),1))),128))])])):U("",!0)]),d("div",Kb,[D[7]||(D[7]=d("h4",{class:"text-retro-muted text-xs uppercase tracking-wide"}," Message ",-1)),d("div",Jb,B(r.commit.message.split(`
|
|
6
|
+
`)[0]),1)]),r.commit.body?(v(),x("div",ex,[D[8]||(D[8]=d("h4",{class:"text-retro-muted text-xs uppercase tracking-wide"}," Body ",-1)),d("div",{class:"text-retro-text text-sm font-mono bg-retro-panel p-3 rounded commit-body-rendered",innerHTML:l.value},null,8,tx)])):U("",!0),r.stats?(v(),x("div",rx,[d("div",nx,[d("span",sx,B(c.value),1)]),r.stats.additions>0||r.stats.deletions>0?(v(),x("div",ix,[d("span",ox,"+"+B(r.stats.additions),1),d("div",ax,[d("div",{class:"bg-retro-green h-full transition-all",style:Ut({width:E.value.addPct+"%"})},null,4),d("div",{class:"bg-retro-red h-full transition-all",style:Ut({width:E.value.delPct+"%"})},null,4)]),d("span",lx,"-"+B(r.stats.deletions),1)])):U("",!0)])):U("",!0),r.files?(v(),x("div",cx,[d("div",ux,[d("h4",hx," Files Changed ("+B(r.files.length)+") ",1),d("div",dx,[d("button",{onClick:D[0]||(D[0]=Z=>i.value="flat"),class:Re(["p-1 rounded transition-colors focus:outline-none focus:ring-2 focus:ring-retro-cyan",i.value==="flat"?"bg-retro-panel text-retro-cyan":"text-retro-muted hover:text-retro-text"]),"aria-label":"Flat file list",title:"Flat file list"},[ee(m(Up),{class:"w-4 h-4"})],2),d("button",{onClick:D[1]||(D[1]=Z=>i.value="tree"),class:Re(["p-1 rounded transition-colors focus:outline-none focus:ring-2 focus:ring-retro-cyan",i.value==="tree"?"bg-retro-panel text-retro-cyan":"text-retro-muted hover:text-retro-text"]),"aria-label":"Tree file view",title:"Tree file view"},[ee(m(Bh),{class:"w-4 h-4"})],2)])]),r.files.length===0?(v(),x("div",fx," No files changed in this commit. ")):i.value==="flat"?(v(),x("ul",px,[(v(!0),x(we,null,Fe(r.files,Z=>(v(),x("li",{key:Z.path,class:"flex items-center gap-2 text-sm py-1 px-2 hover:bg-retro-panel rounded group cursor-pointer",onClick:z=>ne(Z)},[d("span",{class:Re(["flex-shrink-0 w-5 h-5 flex items-center justify-center text-xs font-bold rounded",A(Z.status).colorClass]),title:A(Z.status).label},B(Z.status),11,gx),ee(m(Ds),{class:"w-4 h-4 text-retro-muted flex-shrink-0"}),d("span",Ox,[Z.status==="R"&&Z.oldPath?(v(),x(we,{key:0},[d("span",vx,B(Z.oldPath),1),D[9]||(D[9]=d("span",{class:"text-retro-yellow mx-1"},"→",-1)),d("span",bx,B(Z.path),1)],64)):(v(),x(we,{key:1},[Xe(B(Z.path),1)],64))]),!Z.binary&&(Z.additions>0||Z.deletions>0)?(v(),x("span",xx,[Z.additions>0?(v(),x("span",yx,"+"+B(Z.additions),1)):U("",!0),Z.deletions>0?(v(),x("span",kx,"-"+B(Z.deletions),1)):U("",!0)])):Z.binary?(v(),x("span",wx,"binary")):U("",!0)],8,mx))),128))])):(v(),x("div",Sx,[d("div",{class:"flex items-center gap-2 mb-1"},[d("button",{onClick:b,class:"text-xs text-retro-muted hover:text-retro-text transition-colors"}," Expand all "),D[10]||(D[10]=d("span",{class:"text-retro-muted text-xs"},"|",-1)),d("button",{onClick:C,class:"text-xs text-retro-muted hover:text-retro-text transition-colors"}," Collapse all ")]),(v(!0),x(we,null,Fe(O.value,Z=>(v(),x("div",{key:Z.key,class:Re(["flex items-center gap-1 py-0.5 px-1 hover:bg-retro-panel rounded text-sm cursor-pointer",{"select-none":Z.isDirectory}]),style:Ut({paddingLeft:Z.depth*16+4+"px"}),onClick:z=>Z.isDirectory?y(Z.fullPath):Z.file?ne(Z.file):void 0},[Z.isDirectory?(v(),x(we,{key:0},[ee(m(k1),{class:Re(["w-3 h-3 text-retro-muted transition-transform flex-shrink-0",{"rotate-90":Z.expanded}])},null,8,["class"]),ee(m(Bh),{class:"w-4 h-4 text-retro-yellow flex-shrink-0"}),d("span",Cx,B(Z.name),1)],64)):Z.file?(v(),x(we,{key:1},[d("span",{class:Re(["flex-shrink-0 w-5 h-5 flex items-center justify-center text-xs font-bold rounded",A(Z.file.status).colorClass]),title:A(Z.file.status).label},B(Z.file.status),11,Qx),ee(m(Ds),{class:"w-4 h-4 text-retro-muted flex-shrink-0"}),d("span",Px,[Z.file.status==="R"&&Z.file.oldPath?(v(),x(we,{key:0},[d("span",Tx,B(Z.file.oldPath.split("/").pop()),1),D[11]||(D[11]=d("span",{class:"text-retro-yellow mx-1"},"→",-1)),d("span",Mx,B(Z.name),1)],64)):(v(),x(we,{key:1},[Xe(B(Z.name),1)],64))]),!Z.file.binary&&(Z.file.additions>0||Z.file.deletions>0)?(v(),x("span",Ax,[Z.file.additions>0?(v(),x("span",_x,"+"+B(Z.file.additions),1)):U("",!0),Z.file.deletions>0?(v(),x("span",Rx,"-"+B(Z.file.deletions),1)):U("",!0)])):Z.file.binary?(v(),x("span",Bx,"binary")):U("",!0)],64)):U("",!0)],14,$x))),128))]))])):r.loading?(v(),x("div",Zx,[...D[12]||(D[12]=[d("div",{class:"w-3 h-3 border-2 border-retro-muted border-t-retro-cyan rounded-full animate-spin"},null,-1),Xe(" Loading file changes... ",-1)])])):(v(),x("div",Ex," Failed to load file changes. "))])],544))}}),Lx=Gs(Dx,[["__scopeId","data-v-29f450ea"]]),Xx={class:"flex-1 min-h-0 flex flex-col border-t border-retro-border bg-retro-dark","aria-label":"Uncommitted changes details"},Ix={class:"flex-shrink-0 flex items-center justify-between px-4 py-2 border-b border-retro-border bg-retro-panel"},Vx={class:"flex items-center gap-2 min-w-0"},zx={class:"text-retro-muted text-sm"},Nx={key:0,class:"w-3 h-3 border-2 border-retro-muted border-t-retro-cyan rounded-full animate-spin",title:"Staging..."},Wx={class:"flex-1 overflow-auto p-4 space-y-3"},jx={class:"space-y-2"},qx=["disabled"],Yx={class:"space-y-1"},Fx={class:"flex items-center justify-between"},Ux={class:"text-retro-green text-xs uppercase tracking-wide font-semibold"},Gx={key:0,class:"text-retro-muted text-xs py-1"},Hx={key:1,class:"space-y-0.5"},Kx=["aria-label","onClick"],Jx={class:"text-retro-text font-mono text-xs truncate"},ey={class:"space-y-1"},ty={class:"flex items-center justify-between"},ry={class:"text-retro-yellow text-xs uppercase tracking-wide font-semibold"},ny={key:0,class:"text-retro-muted text-xs py-1"},sy={key:1,class:"space-y-0.5"},iy=["aria-label","onClick"],oy={class:"text-retro-text font-mono text-xs truncate"},ay=Ie({__name:"GitUncommittedDetail",props:{stagedFiles:{default:()=>[]},unstagedFiles:{default:()=>[]},isStaging:{type:Boolean,default:!1},isCommitting:{type:Boolean,default:!1}},emits:["close","stageFiles","unstageFiles","stageAll","unstageAll","commit"],setup(r,{emit:e}){const t=r,n=e,s=_(""),i=_(!1),o=J(()=>s.value.trim().length>0&&t.stagedFiles.length>0&&!i.value&&!t.isCommitting);function a(O){return Ls[O]||{label:O,colorClass:"text-retro-muted"}}function l(){n("close")}function c(O){n("stageFiles",[O.path])}function u(O){n("unstageFiles",[O.path])}function h(){n("stageAll")}function p(){n("unstageAll")}async function f(){o.value&&(i.value=!0,n("commit",s.value.trim()),s.value="",i.value=!1)}function g(O){(O.metaKey||O.ctrlKey)&&O.key==="Enter"&&(O.preventDefault(),f())}return(O,y)=>(v(),x("section",Xx,[d("div",Ix,[d("div",Vx,[ee(m(po),{class:"w-4 h-4 text-retro-yellow"}),y[1]||(y[1]=d("span",{class:"text-retro-yellow font-semibold text-sm"},"Uncommitted Changes",-1)),d("span",zx,"("+B(r.stagedFiles.length+r.unstagedFiles.length)+" files)",1),t.isStaging?(v(),x("div",Nx)):U("",!0)]),d("button",{onClick:l,class:"p-1 hover:bg-retro-dark rounded transition-colors focus:outline-none focus:ring-2 focus:ring-retro-cyan","aria-label":"Close uncommitted changes details"},[ee(m(Pt),{class:"w-4 h-4 text-retro-muted hover:text-retro-text"})])]),d("div",Wx,[d("div",jx,[He(d("textarea",{"onUpdate:modelValue":y[0]||(y[0]=b=>tt(s)?s.value=b:null),placeholder:"Commit message...",rows:"3",class:"w-full px-3 py-2 text-sm bg-retro-panel border border-retro-border rounded text-retro-text placeholder-retro-muted focus:outline-none focus:border-retro-cyan resize-none font-mono",onKeydown:g},null,544),[[Xt,m(s)]]),d("button",{disabled:!m(o),class:Re(["w-full px-3 py-1.5 text-sm font-semibold rounded transition-colors disabled:opacity-40 disabled:cursor-not-allowed",m(o)?"bg-retro-green text-retro-dark hover:bg-retro-green/90":"bg-retro-green/30 text-retro-dark"]),onClick:f},B(m(i)||t.isCommitting?"Committing...":`Commit (${r.stagedFiles.length} staged)`),11,qx)]),d("div",Yx,[d("div",Fx,[d("h4",Ux," Staged Changes ("+B(r.stagedFiles.length)+") ",1),r.stagedFiles.length>0?(v(),x("button",{key:0,class:"text-[11px] text-retro-muted hover:text-retro-text transition-colors",onClick:p}," Unstage All ")):U("",!0)]),r.stagedFiles.length===0?(v(),x("div",Gx," No staged files. Stage files below to commit. ")):(v(),x("ul",Hx,[(v(!0),x(we,null,Fe(r.stagedFiles,b=>(v(),x("li",{key:"staged-"+b.path,class:"flex items-center gap-2 text-sm py-1 px-2 hover:bg-retro-panel rounded group"},[d("button",{class:"flex-shrink-0 w-5 h-5 flex items-center justify-center rounded hover:bg-retro-red/20 transition-colors opacity-60 group-hover:opacity-100",title:"Unstage file","aria-label":`Unstage ${b.path}`,onClick:C=>u(b)},[ee(m(iv),{class:"w-3.5 h-3.5 text-retro-red"})],8,Kx),d("span",{class:Re(["flex-shrink-0 w-4 text-center text-xs font-bold",a(b.status).colorClass])},B(b.status),3),ee(m(Ds),{class:"w-3.5 h-3.5 text-retro-muted flex-shrink-0"}),d("span",Jx,B(b.oldPath?`${b.oldPath} → ${b.path}`:b.path),1)]))),128))]))]),d("div",ey,[d("div",ty,[d("h4",ry," Unstaged Changes ("+B(r.unstagedFiles.length)+") ",1),r.unstagedFiles.length>0?(v(),x("button",{key:0,class:"text-[11px] text-retro-muted hover:text-retro-text transition-colors",onClick:h}," Stage All ")):U("",!0)]),r.unstagedFiles.length===0?(v(),x("div",ny," No unstaged changes. ")):(v(),x("ul",sy,[(v(!0),x(we,null,Fe(r.unstagedFiles,b=>(v(),x("li",{key:"unstaged-"+b.path,class:"flex items-center gap-2 text-sm py-1 px-2 hover:bg-retro-panel rounded group"},[d("button",{class:"flex-shrink-0 w-5 h-5 flex items-center justify-center rounded hover:bg-retro-green/20 transition-colors opacity-60 group-hover:opacity-100",title:"Stage file","aria-label":`Stage ${b.path}`,onClick:C=>c(b)},[ee(m(sl),{class:"w-3.5 h-3.5 text-retro-green"})],8,iy),d("span",{class:Re(["flex-shrink-0 w-4 text-center text-xs font-bold",a(b.status).colorClass])},B(b.status),3),ee(m(Ds),{class:"w-3.5 h-3.5 text-retro-muted flex-shrink-0"}),d("span",oy,B(b.oldPath?`${b.oldPath} → ${b.path}`:b.path),1)]))),128))]))])])]))}}),ly=["aria-label"],cy={key:0,class:"px-3 py-1 text-xs text-retro-muted border-b border-retro-border truncate font-mono"},uy={key:0,class:"my-1 border-t border-retro-border",role:"separator"},hy=["aria-disabled","onClick","onMouseenter"],dy={key:1,class:"w-4 h-4 flex-shrink-0"},Wh=220,fy=36,py=9,my=29,on=8,go=Ie({__name:"GitContextMenu",props:{items:{},x:{},y:{},title:{}},emits:["close","action"],setup(r,{emit:e}){const t=r,n=e,s=_(null),i=_(-1),o=J(()=>t.items.map((f,g)=>({item:f,i:g})).filter(({item:f})=>!f.disabled).map(({i:f})=>f));let a=!1;function l(f){a&&s.value&&!s.value.contains(f.target)&&n("close")}mt(()=>{requestAnimationFrame(()=>{a=!0}),document.addEventListener("mousedown",l),document.addEventListener("contextmenu",l),br(()=>{s.value?.focus()})}),St(()=>{a=!1,document.removeEventListener("mousedown",l),document.removeEventListener("contextmenu",l)});function c(f){const g=o.value;if(g.length===0)return;if(i.value===-1){i.value=f===1?g[0]:g[g.length-1];return}const O=g.indexOf(i.value);if(O===-1){i.value=f===1?g[0]:g[g.length-1];return}const y=O+f;y>=0&&y<g.length&&(i.value=g[y])}function u(f){switch(f.key){case"Escape":f.preventDefault(),n("close");break;case"ArrowDown":f.preventDefault(),c(1);break;case"ArrowUp":f.preventDefault(),c(-1);break;case"Enter":{f.preventDefault();const g=t.items[i.value];g&&!g.disabled&&(n("action",g.key),n("close"));break}}}function h(f){f.disabled||(n("action",f.key),n("close"))}const p=J(()=>{const f=t.title?my:0,g=t.items.filter(P=>P.separator).length,O=t.items.length*fy+g*py+on,y=f+O;let b=t.x,C=t.y;return typeof window<"u"&&(b+Wh>window.innerWidth-on&&(b=window.innerWidth-Wh-on),b<on&&(b=on),C+y>window.innerHeight-on&&(C=window.innerHeight-y-on),C<on&&(C=on)),{left:`${b}px`,top:`${C}px`}});return(f,g)=>(v(),Oe(xr,{to:"body"},[d("div",{ref_key:"menuRef",ref:s,class:"fixed z-50 bg-retro-panel border border-retro-border rounded shadow-lg py-1 min-w-[220px]",style:Ut(m(p)),role:"menu","aria-label":r.title??"Context menu",tabindex:"-1",onKeydown:u},[r.title?(v(),x("div",cy,B(r.title),1)):U("",!0),(v(!0),x(we,null,Fe(r.items,(O,y)=>(v(),x(we,{key:O.key},[O.separator?(v(),x("div",uy)):U("",!0),d("button",{class:Re(["w-full flex items-center gap-2 px-3 py-2 text-sm transition-colors focus:outline-none",[O.disabled?"text-retro-muted/50 cursor-not-allowed":O.danger?["text-retro-red hover:bg-retro-red/10 focus:bg-retro-red/10",m(i)===y?"bg-retro-red/10":""]:["text-retro-text hover:bg-retro-cyan/10 focus:bg-retro-cyan/10",m(i)===y?"bg-retro-cyan/10":""]]]),role:"menuitem","aria-disabled":O.disabled||void 0,tabindex:-1,onClick:b=>h(O),onMouseenter:b=>i.value=O.disabled?m(i):y,onMouseleave:g[0]||(g[0]=b=>i.value=-1)},[O.icon?(v(),Oe(Zs(O.icon),{key:0,class:Re(["w-4 h-4 flex-shrink-0",O.disabled?"opacity-50":O.danger?"":"text-retro-muted"])},null,8,["class"])):(v(),x("span",dy)),Xe(" "+B(O.label),1)],42,hy)],64))),128))],44,ly)]))}}),gy=Ie({__name:"GitBranchMenu",props:{branchName:{},isCurrentBranch:{type:Boolean},isLocal:{type:Boolean},x:{},y:{}},emits:["close","checkout","createBranch","deleteBranch","rename","merge","rebase","push","pull","fetch","copyName"],setup(r,{emit:e}){const t=r,n=e,s=J(()=>[{key:"checkout",label:"Checkout",icon:us,disabled:t.isCurrentBranch},{key:"rename",label:"Rename",icon:w1,separator:!0},{key:"deleteBranch",label:"Delete",icon:fn,danger:!0,disabled:t.isCurrentBranch},{key:"merge",label:"Merge into Current",icon:Wp,separator:!0,disabled:t.isCurrentBranch},{key:"rebase",label:"Rebase Current Onto",icon:Xp,disabled:t.isCurrentBranch},{key:"push",label:"Push",icon:Ip,separator:!0},{key:"copyName",label:"Copy Branch Name",icon:Es,separator:!0}]),i=J(()=>[{key:"checkout",label:"Checkout",icon:us},{key:"deleteBranch",label:"Delete Remote Branch",icon:fn,separator:!0,danger:!0},{key:"fetch",label:"Fetch",icon:qp,separator:!0},{key:"pull",label:"Pull into Current",icon:I1},{key:"copyName",label:"Copy Branch Name",icon:Es,separator:!0}]),o=J(()=>t.isLocal?s.value:i.value),a={checkout:()=>n("checkout"),createBranch:()=>n("createBranch"),deleteBranch:()=>n("deleteBranch"),rename:()=>n("rename"),merge:()=>n("merge"),rebase:()=>n("rebase"),push:()=>n("push"),pull:()=>n("pull"),fetch:()=>n("fetch"),copyName:()=>n("copyName")};function l(c){a[c]?.(),n("close")}return(c,u)=>{const h=go;return v(),Oe(h,{items:m(o),x:r.x,y:r.y,title:r.branchName,onAction:l,onClose:u[0]||(u[0]=p=>n("close"))},null,8,["items","x","y","title"])}}}),Oy=Ie({__name:"GitCommitMenu",props:{commit:{},x:{},y:{}},emits:["close","addTag","createBranch","checkout","cherryPick","revert","mergeInto","reset","copyHash","copySubject"],setup(r,{emit:e}){const t=e,n=J(()=>[{key:"addTag",label:"Add Tag",icon:Tu},{key:"createBranch",label:"Create Branch",icon:sl},{key:"checkout",label:"Checkout (detached HEAD)",icon:us,separator:!0},{key:"cherryPick",label:"Cherry Pick",icon:H1},{key:"revert",label:"Revert",icon:Vp},{key:"mergeInto",label:"Merge into Current",icon:Wp,separator:!0},{key:"reset",label:"Reset Current Branch to Here",icon:Xp,danger:!0},{key:"copyHash",label:"Copy Commit Hash",icon:Es,separator:!0},{key:"copySubject",label:"Copy Commit Subject",icon:Es}]),s={addTag:()=>t("addTag"),createBranch:()=>t("createBranch"),checkout:()=>t("checkout"),cherryPick:()=>t("cherryPick"),revert:()=>t("revert"),mergeInto:()=>t("mergeInto"),reset:()=>t("reset"),copyHash:()=>t("copyHash"),copySubject:()=>t("copySubject")};function i(o){s[o]?.(),t("close")}return(o,a)=>{const l=go;return v(),Oe(l,{items:m(n),x:r.x,y:r.y,title:r.commit.shortHash,onAction:i,onClose:a[0]||(a[0]=c=>t("close"))},null,8,["items","x","y","title"])}}}),vy=Ie({__name:"GitTagMenu",props:{tagName:{},x:{},y:{}},emits:["close","viewDetails","deleteTag","pushTag","copyName"],setup(r,{emit:e}){const t=e,n=[{key:"viewDetails",label:"View Details",icon:Tu},{key:"deleteTag",label:"Delete Tag",icon:fn,separator:!0,danger:!0},{key:"pushTag",label:"Push Tag",icon:Ip},{key:"copyName",label:"Copy Tag Name",icon:Es,separator:!0}],s={viewDetails:()=>t("viewDetails"),deleteTag:()=>t("deleteTag"),pushTag:()=>t("pushTag"),copyName:()=>t("copyName")};function i(o){s[o]?.()}return(o,a)=>{const l=go;return v(),Oe(l,{items:n,x:r.x,y:r.y,title:r.tagName,onClose:a[0]||(a[0]=c=>t("close")),onAction:i},null,8,["x","y","title"])}}}),by=Ie({__name:"GitStashMenu",props:{stashIndex:{},stashMessage:{},x:{},y:{}},emits:["close","apply","pop","drop","createBranch","copyName","copyHash"],setup(r,{emit:e}){const t=e,n=[{key:"apply",label:"Apply Stash",icon:X1},{key:"pop",label:"Pop Stash",icon:Vp},{key:"createBranch",label:"Create Branch from Stash",icon:S1,separator:!0},{key:"drop",label:"Drop Stash",icon:fn,separator:!0,danger:!0},{key:"copyName",label:"Copy Stash Reference",icon:Es,separator:!0},{key:"copyHash",label:"Copy Stash Hash",icon:rv}],s={apply:()=>t("apply"),pop:()=>t("pop"),drop:()=>t("drop"),createBranch:()=>t("createBranch"),copyName:()=>t("copyName"),copyHash:()=>t("copyHash")};function i(o){s[o]?.()}return(o,a)=>{const l=go;return v(),Oe(l,{items:n,x:r.x,y:r.y,title:r.stashMessage,onClose:a[0]||(a[0]=c=>t("close")),onAction:i},null,8,["x","y","title"])}}}),xy=Ie({__name:"GitUncommittedMenu",props:{x:{},y:{}},emits:["close","stash","reset","clean"],setup(r,{emit:e}){const t=e,n=[{key:"stash",label:"Stash Uncommitted Changes",icon:L1},{key:"reset",label:"Reset Working Directory",icon:us,separator:!0,danger:!0},{key:"clean",label:"Clean Untracked Files",icon:fn,danger:!0}],s={stash:()=>t("stash"),reset:()=>t("reset"),clean:()=>t("clean")};function i(o){s[o]?.()}return(o,a)=>{const l=go;return v(),Oe(l,{items:n,x:r.x,y:r.y,title:"Uncommitted Changes",onClose:a[0]||(a[0]=c=>t("close")),onAction:i},null,8,["x","y"])}}}),yy={class:"w-full max-w-md mx-4 bg-retro-dark border border-retro-border rounded-lg shadow-xl"},ky={class:"flex items-center justify-between px-4 py-3 border-b border-retro-border"},wy={class:"text-sm font-mono text-retro-text"},Sy={class:"p-4"},$y={key:0,class:"mb-3 p-2 text-xs font-mono text-retro-red bg-retro-red/10 border border-retro-red/30 rounded"},Cy={class:"flex justify-end gap-2 px-4 py-3 border-t border-retro-border"},Qy=["disabled"],Py=["disabled"],Wt=Ie({__name:"GitDialog",props:{title:{},visible:{type:Boolean},loading:{type:Boolean,default:!1},error:{default:null},confirmLabel:{default:"Confirm"},confirmDanger:{type:Boolean,default:!1},cancelLabel:{default:"Cancel"}},emits:["close","confirm"],setup(r,{emit:e}){const t=r,n=e;function s(i){i.key==="Escape"&&n("close"),i.key==="Enter"&&!t.loading&&(i.preventDefault(),n("confirm"))}return ze(()=>t.visible,i=>{i?document.addEventListener("keydown",s):document.removeEventListener("keydown",s)}),St(()=>{document.removeEventListener("keydown",s)}),(i,o)=>(v(),Oe(xr,{to:"body"},[ee(dn,{"enter-active-class":"transition-opacity duration-200","enter-from-class":"opacity-0","enter-to-class":"opacity-100","leave-active-class":"transition-opacity duration-200","leave-from-class":"opacity-100","leave-to-class":"opacity-0"},{default:ct(()=>[r.visible?(v(),x("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-sm",role:"dialog","aria-modal":"true",onClick:o[3]||(o[3]=fr(a=>n("close"),["self"]))},[d("div",yy,[d("div",ky,[d("h3",wy,B(r.title),1),d("button",{type:"button",class:"p-1 rounded text-retro-muted hover:text-retro-text hover:bg-retro-panel transition-colors",title:"Close",onClick:o[0]||(o[0]=a=>n("close"))},[ee(m(Pt),{class:"h-4 w-4"})])]),d("div",Sy,[r.error?(v(),x("div",$y,B(r.error),1)):U("",!0),Bp(i.$slots,"default")]),d("div",Cy,[d("button",{type:"button",class:"px-3 py-1.5 text-xs font-mono text-retro-muted hover:text-retro-text bg-retro-panel hover:bg-retro-border rounded transition-colors",disabled:r.loading,onClick:o[1]||(o[1]=a=>n("close"))},B(r.cancelLabel),9,Qy),d("button",{type:"button",class:Re(["px-3 py-1.5 text-xs font-mono rounded transition-colors disabled:opacity-50 disabled:cursor-not-allowed",[r.confirmDanger?"text-retro-red bg-retro-red/10 border border-retro-red/30 hover:bg-retro-red/20":"text-retro-black bg-retro-cyan hover:bg-retro-cyan/80"]]),disabled:r.loading,onClick:o[2]||(o[2]=a=>n("confirm"))},B(r.loading?"Loading...":r.confirmLabel),11,Py)])])])):U("",!0)]),_:3})]))}}),ll=xu("gitGraph",()=>{const r=_([]),e=_([]),t=_([]),n=_(new Set),s=_([]),i=_([]),o=_(0),a=_(!1),l=_(null),c=_(null),u=_(null),h=_(!1),p=_(null),f=_(!1),g=_(0),O=_(""),y=_([]),b=_(null),C=_(!1),P=_(!1),A=_(!1),E=_(!1),F=8e3,I=_(null);let oe=null;function ie(j){I.value=j,oe&&clearTimeout(oe),oe=setTimeout(()=>{I.value=null},F)}function ne(){I.value=null,oe&&(clearTimeout(oe),oe=null)}async function L(j,re,Qe,kt){if(!b.value)return{success:!1,error:"No working directory set"};try{const Xr=await $fetch(j,{method:kt?.method??"POST",body:{workingDirectory:b.value,...re}});return(kt?.reloadGraph??!0)&&await Kt(b.value),{success:!0,data:Xr}}catch(Xr){const Ir=Bo(Xr,Qe);return ie(Ir),{success:!1,error:Ir}}}const D=_(null),Z=_(!1),z=_(!1),q=_(null),V=_([]),X=_([]),N=_(null),me=_(null),K=_(null),he=_("inline"),$=_("list"),w=_("rounded"),M=_(!1),R=_({date:!0,author:!0,commit:!0}),G=_(0),ae=_(0),xe=_(null),De=_(null),Ae=_(null),Ue=_(null),Ye=_(null),pe=_(null),Ce=_(null),ce=_(null),ue=_(null),Y=_(null),Me=_(null),Le=_(!1),Ve=new Map,Mt=10,Zt=J(()=>{if(!O.value&&y.value.length===0)return r.value;let j=r.value;if(O.value){const re=O.value.toLowerCase(),Qe=`${re}:${r.value.length}`;if(Ve.has(Qe))j=Ve.get(Qe);else{if(j=Nh(j,re),Ve.size>=Mt){const kt=Ve.keys().next().value;kt&&Ve.delete(kt)}Ve.set(Qe,j)}}if(y.value.length>0){const re=new Set(y.value);j=nb(j,re)}return j}),bn=J(()=>e.value.find(j=>j.isHead)||null);async function Kt(j){b.value=j,h.value=!0,p.value=null;try{const[re,Qe,kt,Xr,Ir]=await Promise.all([$fetch("/api/git/log",{query:{workingDirectory:j}}),$fetch("/api/git/status",{query:{workingDirectory:j}}),$fetch("/api/git/stash",{query:{workingDirectory:j}}).then(Sn=>Sn.stashes).catch(()=>[]),$fetch("/api/git/remotes",{query:{workingDirectory:j}}).then(Sn=>Sn.remotes).catch(()=>[]),$fetch("/api/git/state",{query:{workingDirectory:j}}).then(Sn=>Sn.state).catch(()=>null)]);r.value=re.commits,e.value=re.branches,t.value=re.tags,n.value=new Set(re.localBranches??[]),f.value=re.hasMore,g.value=re.totalCount,s.value=Qe.stagedFiles??[],i.value=Qe.unstagedFiles??[],o.value=(Qe.stagedCount??0)+(Qe.unstagedCount??0),V.value=kt,X.value=Xr,q.value=Ir,D.value=Date.now(),await S()}catch(re){const Qe=re instanceof Error?re.message:"Failed to load git graph";p.value=Qe,r.value=[],e.value=[],t.value=[],s.value=[],i.value=[],o.value=0,V.value=[],X.value=[]}finally{h.value=!1}}async function Er(){if(b.value)try{const j=await $fetch("/api/git/status",{query:{workingDirectory:b.value}});s.value=j.stagedFiles??[],i.value=j.unstagedFiles??[],o.value=(j.stagedCount??0)+(j.unstagedCount??0)}catch(j){console.error("Failed to refresh uncommitted changes:",j)}}const $r=_(!1);async function zn(){if(!(!b.value||!f.value||h.value||$r.value)){$r.value=!0;try{const j=await $fetch("/api/git/log",{query:{workingDirectory:b.value,offset:r.value.length}});r.value=[...r.value,...j.commits],f.value=j.hasMore}catch(j){console.error("Failed to load more commits:",j)}finally{$r.value=!1}}}async function Cr(j){if(l.value=j,c.value=null,u.value=null,a.value=!1,C.value=!0,!b.value){C.value=!1;return}try{const re=await $fetch("/api/git/show",{query:{workingDirectory:b.value,hash:j.hash}});c.value=re.files,u.value=re.stats}catch(re){console.error("Failed to load commit details:",re),c.value=[],u.value={additions:0,deletions:0,filesChanged:0},ie("Failed to load commit details")}finally{C.value=!1}}function xn(){l.value=null,c.value=null,u.value=null,a.value=!1}function Nn(){l.value=null,u.value=null,c.value=null,a.value=!0}function yn(j){O.value=j,G.value=0,Qr()}const xt=J(()=>O.value?Nh(r.value,O.value).map(j=>j.hash):[]);function Qr(){ae.value=xt.value.length}function H(){xt.value.length!==0&&(G.value=(G.value+1)%xt.value.length,Qr(),se())}function fe(){xt.value.length!==0&&(G.value=G.value<=0?xt.value.length-1:G.value-1,Qr(),se())}function se(){const j=xt.value[G.value];if(j){const re=r.value.find(Qe=>Qe.hash===j);re&&Cr(re)}}function ve(j){const re=y.value.indexOf(j);re===-1?y.value.push(j):y.value.splice(re,1)}function _e(){O.value="",y.value=[]}async function We(j){if(!b.value)return{success:!1,error:"No working directory set"};E.value=!0;try{const re=await $fetch("/api/git/checkout",{method:"POST",body:{workingDirectory:b.value,branchName:j}});return re.success&&await Kt(b.value),{success:re.success,error:re.error}}catch(re){const Qe=re instanceof Error?re.message:"Failed to checkout branch";return ie(Qe),{success:!1,error:Qe}}finally{E.value=!1}}async function Ge(j,re){if(!b.value)return{success:!1,error:"No working directory set"};try{const Qe=await $fetch("/api/git/checkout",{method:"POST",body:{workingDirectory:b.value,branchName:j,createBranch:!0,fromCommit:re}});return Qe.success&&await Kt(b.value),{success:Qe.success,error:Qe.error}}catch(Qe){return{success:!1,error:Qe instanceof Error?Qe.message:"Failed to create branch"}}}async function it(j,re=!1){return L("/api/git/branch",{branchName:j,force:re},"Failed to delete branch",{method:"DELETE"})}async function ri(j){return L("/api/git/branch",{branchName:j,remote:!0},"Failed to delete remote branch",{method:"DELETE"})}async function ni(j){if(!b.value)return{success:!1,error:"No working directory set"};P.value=!0;try{return await $fetch("/api/git/stage",{method:"POST",body:{workingDirectory:b.value,files:j}}),await Er(),{success:!0}}catch(re){const Qe=re instanceof Error?re.message:"Failed to stage files";return ie(Qe),{success:!1,error:Qe}}finally{P.value=!1}}async function Dr(j){if(!b.value)return{success:!1,error:"No working directory set"};P.value=!0;try{return await $fetch("/api/git/unstage",{method:"POST",body:{workingDirectory:b.value,files:j}}),await Er(),{success:!0}}catch(re){const Qe=re instanceof Error?re.message:"Failed to unstage files";return ie(Qe),{success:!1,error:Qe}}finally{P.value=!1}}async function si(j){if(!b.value)return{success:!1,error:"No working directory set"};A.value=!0;try{return await $fetch("/api/git/commit",{method:"POST",body:{workingDirectory:b.value,message:j}}),await Kt(b.value),{success:!0}}catch(re){const Qe=re instanceof Error?re.message:"Failed to commit changes";return ie(Qe),{success:!1,error:Qe}}finally{A.value=!1}}async function ii(j,re){return L("/api/git/branch-rename",{oldName:j,newName:re},"Failed to rename branch")}async function oi(j,re){return L("/api/git/merge",{branch:j,...re},"Failed to merge branch")}async function ai(j){return L("/api/git/rebase",{onto:j},"Failed to rebase branch")}async function li(j,re,Qe,kt){return L("/api/git/push",{branch:j,remote:re,force:Qe,forceWithLease:kt},"Failed to push branch")}async function ci(j,re,Qe,kt){return L("/api/git/pull",{branch:j,remote:re,noFastForward:Qe,squash:kt},"Failed to pull branch")}async function ui(j,re,Qe){return L("/api/git/fetch",{branch:j,remote:re,...Qe},"Failed to fetch")}async function hi(j,re,Qe){return L("/api/git/cherry-pick",{hash:j,recordOrigin:re,noCommit:Qe},"Failed to cherry-pick commit")}async function di(j){return L("/api/git/revert",{hash:j},"Failed to revert commit")}async function fi(j,re){return L("/api/git/reset",{hash:j,mode:re},"Failed to reset to commit")}async function pi(j){if(!b.value)return{success:!1,error:"No working directory set"};try{return await $fetch("/api/git/checkout",{method:"POST",body:{workingDirectory:b.value,branchName:j}}),await Kt(b.value),{success:!0}}catch(re){const Qe=re?.data?.message||re?.statusMessage||re?.message||"Failed to checkout commit";return ie(Qe),{success:!1,error:Qe}}}async function Et(j){try{const re=j.message.split(`
|
|
7
|
+
`)[0];return await Un(re),{success:!0}}catch(re){const Qe=re?.message||"Failed to copy commit subject";return ie(Qe),{success:!1,error:Qe}}}async function Jt(j,re,Qe,kt,Xr){return L("/api/git/tag",{name:j,hash:re,annotated:Qe,message:kt,pushToRemote:Xr},"Failed to create tag")}async function rn(j,re){return L("/api/git/tag",{name:j,deleteFromRemote:re},"Failed to delete tag",{method:"DELETE"})}async function nn(j,re){return L("/api/git/tag-push",{name:j,remote:re},"Failed to push tag")}async function Wn(j){if(!b.value)return{success:!1,error:"No working directory set"};try{return{success:!0,data:await $fetch(`/api/git/tag/${encodeURIComponent(j)}`,{query:{workingDirectory:b.value}})}}catch(re){const Qe=Bo(re,"Failed to get tag detail");return ie(Qe),{success:!1,error:Qe}}}async function kn(j){try{return await Un(j),{success:!0}}catch(re){const Qe=re?.message||"Failed to copy tag name";return ie(Qe),{success:!1,error:Qe}}}async function Lr(){if(!b.value)return{success:!1,error:"No working directory set"};try{const j=await $fetch("/api/git/stash",{query:{workingDirectory:b.value}});return V.value=j.stashes,{success:!0}}catch(j){const re=Bo(j,"Failed to load stashes");return ie(re),{success:!1,error:re}}}async function mi(j,re){return L("/api/git/stash-apply",{index:j,reinstateIndex:re},"Failed to apply stash")}async function gs(j,re){return L("/api/git/stash-pop",{index:j,reinstateIndex:re},"Failed to pop stash")}async function Os(j){return L("/api/git/stash-drop",{index:j},"Failed to drop stash")}async function ur(j,re){return L("/api/git/stash-branch",{index:j,branchName:re},"Failed to create branch from stash")}async function hr(j,re){return L("/api/git/stash",{message:j,includeUntracked:re},"Failed to stash changes")}async function vs(){if(!b.value)return{success:!1,error:"No working directory set"};try{const j=await $fetch("/api/git/remotes",{query:{workingDirectory:b.value}});return X.value=j.remotes,{success:!0}}catch(j){const re=Bo(j,"Failed to load remotes");return ie(re),{success:!1,error:re}}}async function gi(j,re){return L("/api/git/remote",{name:j,url:re},"Failed to add remote")}async function wn(j,re){return L("/api/git/remote",{name:j,newUrl:re},"Failed to edit remote",{method:"PUT"})}async function Oi(j){return L("/api/git/remote",{name:j},"Failed to delete remote",{method:"DELETE"})}async function jn(j,re){return L("/api/git/fetch",{all:!0,prune:j,pruneTags:re},"Failed to fetch all")}function dr(){he.value=he.value==="inline"?"bottom":"inline"}function Pr(){$.value=$.value==="list"?"tree":"list"}function vi(j){w.value=j}function bi(){M.value=!M.value}function xi(j){R.value={...R.value,[j]:!R.value[j]}}async function qn(j){if(xe.value=j,De.value=null,j&&b.value)try{const re=await $fetch("/api/git/merge-base",{params:{workingDirectory:b.value,branch:j}});De.value=re.mergeBase}catch{De.value=null}}async function Yn(j,re){if(Ae.value=j,Ue.value=null,Ye.value=re??null,j&&b.value)try{const Qe=await $fetch("/api/git/merge-base",{params:{workingDirectory:b.value,branch:j,baseBranch:re??void 0}});Ue.value=Qe.mergeBase}catch{Ue.value=null}}async function yi(j,re){if(pe.value=j,Ce.value=null,ce.value=re??null,j&&b.value)try{const Qe=await $fetch("/api/git/merge-base",{params:{workingDirectory:b.value,branch:j,baseBranch:re??void 0}});Ce.value=Qe.mergeBase}catch{Ce.value=null}}async function Fn(j,re,Qe){try{const kt=await $fetch("/api/git/merge-base",{params:{workingDirectory:b.value,branch:j,baseBranch:re??void 0}});Qe.value=kt.mergeBase}catch{Qe.value=null}}async function S(){if(!b.value)return;const j=[];xe.value&&j.push(Fn(xe.value,void 0,De)),Ae.value&&j.push(Fn(Ae.value,Ye.value,Ue)),pe.value&&j.push(Fn(pe.value,ce.value,Ce)),j.length>0&&await Promise.all(j)}function k(j){const re=r.value.find(Qe=>Qe.hash===j||Qe.shortHash===j);re&&Cr(re)}async function T(j){return L("/api/git/reset",{hash:"HEAD",mode:j},"Failed to reset working directory")}async function W(){return L("/api/git/clean",{},"Failed to clean untracked files")}function le(j){me.value=j}function be(){me.value=null}function de(j){K.value=j}function Se(){K.value=null}const qe=_(null),ot=_(null),yt=_(!1),Mo=J(()=>!!N.value&&!!l.value);function sn(j){N.value=j,j&&l.value&&Ze()}function ki(){N.value=null,qe.value=null,ot.value=null,yt.value=!1}async function Ze(){if(!(!b.value||!l.value||!N.value)){yt.value=!0;try{const j=N.value.hash,re=l.value.hash,Qe=await $fetch("/api/git/diff",{query:{workingDirectory:b.value,from:j,to:re}});qe.value=Qe.files,ot.value=Qe.stats}catch(j){console.error("Failed to load comparison:",j),ie("Failed to load commit comparison"),qe.value=null,ot.value=null}finally{yt.value=!1}}}async function Un(j){navigator?.clipboard&&await navigator.clipboard.writeText(j)}async function bs(j,re){ue.value=re,Y.value=j,Me.value=null,Le.value=!0,await o1()}function Ah(){ue.value=null,Y.value=null,Me.value=null,Le.value=!1}async function o1(){if(!b.value||!Y.value||!ue.value){Le.value=!1;return}Le.value=!0;try{const j=await $fetch("/api/git/file-diff",{query:{workingDirectory:b.value,commitHash:Y.value,filePath:ue.value.path}});Me.value=j}catch(j){console.error("Failed to load file diff:",j),ie("Failed to load file diff"),Me.value=null}finally{Le.value=!1}}function a1(){r.value=[],e.value=[],t.value=[],n.value=new Set,s.value=[],i.value=[],o.value=0,a.value=!1,l.value=null,c.value=null,u.value=null,h.value=!1,p.value=null,f.value=!1,g.value=0,O.value="",y.value=[],b.value=null,D.value=null,Z.value=!1,z.value=!1,q.value=null,$r.value=!1,C.value=!1,P.value=!1,A.value=!1,E.value=!1,V.value=[],X.value=[],N.value=null,qe.value=null,ot.value=null,yt.value=!1,me.value=null,K.value=null,he.value="inline",$.value="list",w.value="rounded",M.value=!1,R.value={date:!0,author:!0,commit:!0},G.value=0,ae.value=0,xe.value=null,Ae.value=null,Ue.value=null,Ye.value=null,pe.value=null,Ce.value=null,ce.value=null,ue.value=null,Y.value=null,Me.value=null,Le.value=!1,ne(),Ve.clear()}async function l1(){if(!b.value||z.value||h.value)return!1;z.value=!0;try{const j=(await $fetch("/api/git/state",{query:{workingDirectory:b.value}})).state,re=q.value;if(q.value=j,D.value=Date.now(),!re)return!1;const Qe=re.headCommit!==j.headCommit||re.branchListHash!==j.branchListHash,kt=re.workingTreeHash!==j.workingTreeHash,Xr=re.stashListHash!==j.stashListHash;if(Qe){const[$n,Ao,h1]=await Promise.all([$fetch("/api/git/log",{query:{workingDirectory:b.value}}),$fetch("/api/git/status",{query:{workingDirectory:b.value}}),$fetch("/api/git/stash",{query:{workingDirectory:b.value}}).then(d1=>d1.stashes).catch(()=>[])]);return r.value=$n.commits,e.value=$n.branches,t.value=$n.tags,n.value=new Set($n.localBranches??[]),f.value=$n.hasMore,g.value=$n.totalCount,s.value=Ao.stagedFiles??[],i.value=Ao.unstagedFiles??[],o.value=(Ao.stagedCount??0)+(Ao.unstagedCount??0),V.value=h1,await S(),!0}if(!kt&&!Xr)return!1;const[Ir,Sn]=await Promise.all([kt?$fetch("/api/git/status",{query:{workingDirectory:b.value}}):Promise.resolve(null),Xr?$fetch("/api/git/stash",{query:{workingDirectory:b.value}}).then($n=>$n.stashes).catch(()=>[]):Promise.resolve(null)]);return Ir&&(s.value=Ir.stagedFiles??[],i.value=Ir.unstagedFiles??[],o.value=(Ir.stagedCount??0)+(Ir.unstagedCount??0)),Sn&&(V.value=Sn),!0}catch(j){return console.error("Failed to refresh git graph:",j),!1}finally{z.value=!1}}function c1(){Z.value=!0}function u1(){Z.value=!1}return{commits:Te(r),branches:Te(e),tags:Te(t),localBranchNames:Te(n),stagedFiles:Te(s),unstagedFiles:Te(i),uncommittedChangesCount:Te(o),isUncommittedChangesSelected:Te(a),selectedCommit:Te(l),selectedCommitFiles:Te(c),selectedCommitStats:Te(u),loading:Te(h),loadingMore:Te($r),error:Te(p),hasMore:Te(f),totalCount:Te(g),searchQuery:Te(O),filteredBranches:Te(y),workingDirectory:Te(b),stashes:Te(V),remotes:Te(X),comparisonCommit:Te(N),comparisonFiles:Te(qe),comparisonStats:Te(ot),comparisonLoading:Te(yt),isComparing:Mo,activeDialog:Te(me),activeContextMenu:Te(K),detailViewPosition:Te(he),fileViewMode:Te($),graphStyle:Te(w),muteNonAncestral:Te(M),columnVisibility:Te(R),searchResultIndex:Te(G),searchResultCount:Te(ae),selectedFeatureId:Te(xe),featureMergeBase:Te(De),conversationBranch:Te(Ae),conversationMergeBase:Te(Ue),conversationBaseBranch:Te(Ye),previewBranch:Te(pe),previewMergeBase:Te(Ce),previewBaseBranch:Te(ce),diffViewerFile:Te(ue),diffViewerCommitHash:Te(Y),diffViewerContent:Te(Me),diffViewerLoading:Te(Le),lastRefreshTime:Te(D),isPollingActive:Te(Z),isRefreshing:Te(z),isLoadingDetails:Te(C),isStaging:Te(P),isCommitting:Te(A),isCheckingOut:Te(E),operationError:Te(I),filteredCommits:Zt,currentBranch:bn,searchResultHashes:xt,loadGitGraph:Kt,loadMoreCommits:zn,refreshUncommittedChanges:Er,selectCommit:Cr,selectUncommittedChanges:Nn,clearSelection:xn,setSearchQuery:yn,toggleBranchFilter:ve,clearFilters:_e,nextSearchResult:H,prevSearchResult:fe,checkoutBranch:We,createBranch:Ge,deleteLocalBranch:it,deleteRemoteBranch:ri,stageFiles:ni,unstageFiles:Dr,commitChanges:si,reset:a1,clearOperationError:ne,renameBranch:ii,mergeBranch:oi,rebaseBranch:ai,pushBranch:li,pullBranch:ci,fetchBranch:ui,cherryPickCommit:hi,revertCommit:di,resetToCommit:fi,checkoutCommit:pi,copyCommitSubject:Et,createTag:Jt,deleteTag:rn,pushTag:nn,getTagDetail:Wn,copyTagName:kn,loadStashes:Lr,applyStash:mi,popStash:gs,dropStash:Os,stashBranch:ur,stashChanges:hr,loadRemotes:vs,addRemote:gi,editRemote:wn,deleteRemote:Oi,fetchAll:jn,setActiveDialog:le,clearActiveDialog:be,setActiveContextMenu:de,clearActiveContextMenu:Se,selectComparisonCommit:sn,clearComparison:ki,loadComparisonData:Ze,copyToClipboard:Un,toggleDetailViewPosition:dr,toggleFileViewMode:Pr,setGraphStyle:vi,toggleMuteNonAncestral:bi,toggleColumnVisibility:xi,navigateToCommit:k,resetWorking:T,cleanUntracked:W,setSelectedFeatureId:qn,setConversationBranch:Yn,setPreviewBranch:yi,openFileDiff:bs,closeFileDiff:Ah,checkAndRefresh:l1,startPolling:c1,stopPolling:u1}});async function jh(){if(typeof window>"u")return{conversations:[],archivedConversations:[],discardedConversations:0,discardedArchives:0};try{const r=await $fetch("/api/conversations");if(!r||!Array.isArray(r.conversations))return console.warn("[conversationStorage] Invalid data structure from server"),{conversations:[],archivedConversations:[],discardedConversations:0,discardedArchives:0};r.version!==wa&&console.warn(`[conversationStorage] Storage version mismatch: ${r.version} vs ${wa}`);const e=r.conversations.map(l=>{if(!l||typeof l!="object")return l;const c=l;return"claudeSessionId"in c&&!("providerSessionId"in c)?{...c,providerSessionId:c.claudeSessionId}:l}),n=(Array.isArray(r.archivedConversations)?r.archivedConversations:[]).map(l=>{if(!l||typeof l!="object")return l;const c=l;return"claudeSessionId"in c&&!("providerSessionId"in c)?{...c,providerSessionId:c.claudeSessionId}:l}),s=e.filter(A1),i=n.filter(_1),o=e.length-s.length,a=n.length-i.length;return o>0&&console.warn(`[conversationStorage] Discarded ${o} corrupted active conversation(s)`),a>0&&console.warn(`[conversationStorage] Discarded ${a} corrupted archive conversation(s)`),{conversations:s,archivedConversations:i,discardedConversations:o,discardedArchives:a}}catch(r){return console.error("[conversationStorage] Failed to load conversations:",r),{conversations:[],archivedConversations:[],discardedConversations:0,discardedArchives:0}}}async function Ty(r,e=[]){if(typeof window>"u")return!1;try{return await $fetch("/api/conversations",{method:"POST",body:{version:wa,conversations:r,archivedConversations:e}}),!0}catch(t){return console.error("Failed to save conversations:",t),!1}}async function qh(r){if(typeof window>"u")return!1;try{return await $fetch("/api/conversations/update",{method:"POST",body:{version:wa,conversation:r}}),!0}catch(e){return console.error("Failed to save conversation:",e),!1}}function My(r){return r?r.map(e=>{switch(e.type){case"text":return e.text;case"tool_use":return`[${e.name}] ${e.inputSummary}`;case"tool_result":return e.isError?`Error: ${e.content.slice(0,100)}`:"";case"thinking":case"result_summary":case"session_init":return"";default:return""}}).filter(Boolean).join(`
|
|
8
|
+
`):""}const kr=xu("chat",()=>{const r=_(!1),e=_(R1),t=_("ask"),n=_(""),s=_([]),i=_([]),o=_(null),a=_("active"),l=_(new Set),c=new Map,u=_(!1),h=_(0),p=new Map,f=1200,g=_(null),O=_(null);function y(S){return S?c.get(S)??null:null}function b(S){let k=c.get(S);return k||(k={session:null,pendingPermission:null,pendingPlanApproval:null,lastError:null,debugEvents:[]},c.set(S,k)),k}const C=J(()=>s.value.find(S=>S.id===o.value)||null),P=J(()=>C.value?.messages??[]),A=J(()=>(h.value,y(o.value)?.session??null)),E=J(()=>(h.value,y(o.value)?.pendingPermission??null)),F=J(()=>(h.value,y(o.value)?.pendingPlanApproval??null)),I=J(()=>(h.value,y(o.value)?.lastError??null)),oe=J(()=>(h.value,y(o.value)?.debugEvents??[])),ie=J(()=>A.value?.status==="streaming"),ne=J(()=>C.value?.providerSessionId??""),L=J(()=>P.value.length>0),D=J(()=>P.value[P.value.length-1]||null);function Z(S){return l.value.has(S)}const z=J(()=>o.value?l.value.has(o.value):!1),q=J(()=>s.value.length>0),V=J(()=>i.value.length>0),X=J(()=>s.value.length),N=J(()=>X.value>=Eh),me=J(()=>s.value),K=J(()=>i.value),he=J(()=>g.value&&s.value.find(S=>S.id===g.value)||null);function $(S){return g.value===S}function w(S){a.value=S}async function M(S){if(!(!S?.previewBranch||!S.worktreePath))try{const k=await $fetch("/api/chat/preview-sync",{method:"POST",body:{previewBranch:S.previewBranch,worktreePath:S.worktreePath}});if(!k.success)throw new Error(k.error||"Unknown preview sync failure")}catch(k){console.warn("[chat] Failed to sync preview branch after worktree update",{conversationId:S.id,previewBranch:S.previewBranch,worktreePath:S.worktreePath,error:k instanceof Error?k.message:String(k)})}}async function R(S){if(Z(S))return{success:!1,error:"Cannot archive while this conversation is streaming"};if(s.value.findIndex(T=>T.id===S)===-1)return{success:!1,error:"Conversation not found"};try{const T=await $fetch(`/api/conversations/${S}/archive`,{method:"POST"});if(T.success&&T.archived){const W=p.get(S);return W&&(clearTimeout(W),p.delete(S)),c.delete(S),s.value=Array.isArray(T.conversations)?T.conversations:s.value.filter(le=>le.id!==S),i.value=Array.isArray(T.archivedConversations)?T.archivedConversations:[T.archived,...i.value],Wn(),g.value===S&&(g.value=null),o.value===S&&(o.value=s.value[0]?.id??null),typeof window<"u"&&$fetch("/api/settings",{method:"POST",body:{activeConversationId:o.value}}).catch(le=>{console.error("Failed to save active conversation:",le)}),{success:!0}}return{success:!1,error:"Failed to archive conversation"}}catch(T){return{success:!1,error:T instanceof Error?T.message:"Failed to archive conversation"}}}async function G(S,k){if(qn().atLimit)return{success:!1,error:`Cannot restore. Active conversations reached ${Dh}.`};if(!i.value.some(W=>W.id===S))return{success:!1,error:"Archived conversation not found"};try{const W=await $fetch(`/api/conversations/archives/${S}/restore`,{method:"POST",body:{baseBranch:k}});return W.success&&W.conversation?(s.value=Array.isArray(W.conversations)?W.conversations:[W.conversation,...s.value],Array.isArray(W.archivedConversations)?i.value=W.archivedConversations:i.value=i.value.filter(le=>le.id!==S),a.value="active",Lr(W.conversation.id),nn(),Et(),{success:!0,conversationId:W.conversation.id}):{success:!1,error:"Failed to restore archived conversation"}}catch(W){return{success:!1,error:W instanceof Error?W.message:"Failed to restore archived conversation"}}}async function ae(S){const k=i.value.findIndex(T=>T.id===S);if(k===-1)return{success:!1,error:"Archived conversation not found"};try{const T=await $fetch(`/api/conversations/archives/${S}`,{method:"DELETE"});return T.success?(Array.isArray(T.archivedConversations)?i.value=T.archivedConversations:i.value.splice(k,1),Wn(),{success:!0}):{success:!1,error:"Failed to delete archived conversation"}}catch{return i.value.splice(k,1),Et(),{success:!0}}}async function xe(){if(!(typeof window>"u"))try{const S=await $fetch("/api/settings");if(S){if(typeof S.panelWidth=="number"){const W=S.panelWidth;W>=Lh&&W<=Xh&&(e.value=W)}typeof S.isPanelOpen=="boolean"&&(r.value=S.isPanelOpen),typeof S.activeConversationId=="string"&&(o.value=S.activeConversationId);const{useSettingsStore:k}=await as(async()=>{const{useSettingsStore:W}=await import("./Bze5ywup.js").then(le=>le.s);return{useSettingsStore:W}},__vite__mapDeps([0,1,2]),import.meta.url),T=k();await T.hydrate(),t.value=T.permissionMode}}catch(S){console.error("Failed to load chat settings:",S)}}function De(S){t.value=S,typeof window<"u"&&as(async()=>{const{useSettingsStore:k}=await import("./Bze5ywup.js").then(T=>T.s);return{useSettingsStore:k}},__vite__mapDeps([0,1,2]),import.meta.url).then(({useSettingsStore:k})=>{k().setPermissionMode(S)})}function Ae(S,k){const T=k??o.value;if(!T)return;const W=b(T);W.pendingPermission=S,h.value++}function Ue(S){const k=S??o.value;if(!k)return;const T=c.get(k);T&&(T.pendingPermission=null,h.value++)}function Ye(S,k){const T=k??o.value;if(!T)return;const W=b(T);W.pendingPlanApproval=S,h.value++}function pe(S){const k=S??o.value;if(!k)return;const T=c.get(k);T&&(T.pendingPlanApproval=null,h.value++)}function Ce(){r.value=!r.value,Y()}function ce(){r.value=!0,Y()}function ue(){r.value=!1,Y()}function Y(){typeof window<"u"&&$fetch("/api/settings",{method:"POST",body:{isPanelOpen:r.value}}).catch(S=>{console.error("Failed to save panel state:",S)})}function Me(S){const k=Math.max(Lh,Math.min(Xh,S));e.value=k,typeof window<"u"&&$fetch("/api/settings",{method:"POST",body:{panelWidth:k}}).catch(T=>{console.error("Failed to save panel width:",T)})}function Le(S){n.value=S}function Ve(S,k){const T=k??o.value;if(!T)return;const W=s.value.find(le=>le.id===T);W&&(W.providerSessionId=S)}function Mt(S,k){const T=s.value.find(W=>W.id===S);T&&(T.worktreeBranch=k,T.lastCommitTime=new Date().toISOString())}async function Zt(S){const k=s.value.find(W=>W.id===S);if(!k?.worktreeBranch)return null;const T=k.worktreeBranch.trim();if(!T)return null;try{const le=(await $fetch("/api/specs/features")).features.find(be=>be.id===T);return le?(k.featureId!==le.id&&(k.featureId=le.id,k.updatedAt=new Date().toISOString(),Et()),le.id):null}catch(W){return console.warn("[chat] Failed to map branch to feature",{conversationId:S,branchName:T,error:W instanceof Error?W.message:String(W)}),null}}function bn(S,k,T){const W=s.value.find(le=>le.id===S);W&&(W.providerId=k,W.providerModelKey=T)}function Kt(S){const k=S??o.value;if(!k)return;const T=s.value.find(W=>W.id===k);T&&(T.providerSessionId="")}function Er(S){return s.value.find(T=>T.id===S)?.providerSessionId??""}function $r(S){l.value.add(S)}function zn(S){l.value.delete(S)}function Cr(S,k){const T=k??o.value;if(!T)return;const W=s.value.find(le=>le.id===T);W&&W.messages.push(S)}function xn(S,k,T){const W={id:Ih(),role:"user",content:S,attachments:T&&T.length>0?T:void 0,timestamp:new Date().toISOString()};return Cr(W,k),W}function Nn(S){const k={id:Ih(),role:"assistant",content:"",timestamp:new Date().toISOString(),status:"streaming"};return Cr(k,S),k}function yn(S,k,T){const W=T??o.value;if(!W)return;const le=s.value.find(de=>de.id===W);if(!le)return;const be=le.messages.findIndex(de=>de.id===S);be!==-1&&(le.messages[be]={...le.messages[be],...k})}function xt(S,k){const T=s.value.find(le=>le.id===k);if(!T)return;const W=T.messages.findIndex(le=>le.id===S);W!==-1&&(T.messages[W]={...T.messages[W],content:"",status:"streaming",contentBlocks:[]})}function Qr(S,k,T){const W=T??o.value;if(!W)return;const le=s.value.find(de=>de.id===W);if(!le)return;const be=le.messages.findIndex(de=>de.id===S);be!==-1&&(le.messages[be].content+=k)}function H(S,k,T){const W=T??o.value;if(!W)return;const le=s.value.find(de=>de.id===W);if(!le)return;const be=le.messages.findIndex(de=>de.id===S);if(be!==-1){const de=le.messages[be],Se=de.tools?[...de.tools,k]:[k];le.messages[be]={...de,tools:Se}}}function fe(S,k,T,W){const le=W??o.value;if(!le)return;const be=s.value.find(Se=>Se.id===le);if(!be)return;const de=be.messages.findIndex(Se=>Se.id===S);if(de!==-1){const Se=be.messages[de];if(Se.tools){const qe=Se.tools.findIndex(ot=>ot.id===k);if(qe!==-1){const ot=[...Se.tools];ot[qe]={...ot[qe],...T},be.messages[de]={...Se,tools:ot}}}}Jt(le,!1)}function se(S){S.contentBlocks&&(S.content=My(S.contentBlocks))}function ve(S,k){if(S.type!==k.type)return!0;switch(k.type){case"text":return S.text!==k.text;case"tool_use":{const T=S;return T.name!==k.name||T.inputSummary!==k.inputSummary}case"tool_result":{const T=S;return T.content!==k.content||T.isError!==k.isError}default:return!1}}function _e(S,k){const T=k??o.value;if(!T)return;const W=s.value.find(be=>be.id===T);if(!W)return;const le=W.messages.find(be=>be.id===S);le&&!le.contentBlocks&&(le.contentBlocks=[])}function We(S,k,T){const W=T??o.value;if(!W)return;const le=s.value.find(de=>de.id===W);if(!le)return;const be=le.messages.find(de=>de.id===S);be&&(be.contentBlocks||(be.contentBlocks=[]),be.contentBlocks.push(k),se(be))}function Ge(S,k,T,W){const le=W??o.value;if(!le)return;const be=s.value.find(yt=>yt.id===le);if(!be)return;const de=be.messages.find(yt=>yt.id===S);if(!de?.contentBlocks)return;const Se=de.contentBlocks.findIndex(yt=>yt.id===k);if(Se===-1)return;const ot={...de.contentBlocks[Se]};T(ot),de.contentBlocks[Se]=ot}function it(S,k,T,W,le){const be=W??o.value;if(!be)return;const de=s.value.find(sn=>sn.id===be);if(!de)return;const Se=de.messages.find(sn=>sn.id===S);if(!Se?.contentBlocks)return;const qe=Se.contentBlocks.findIndex(sn=>sn.id===k);if(qe===-1)return;const ot=Se.contentBlocks[qe],yt={...ot};T(yt),Se.contentBlocks[qe]=yt,le?.syncContent!==!1&&ve(ot,yt)&&se(Se),Jt(be,!1)}function ri(S,k,T){const W=T??o.value;if(!W)return;const le=s.value.find(de=>de.id===W);if(!le)return;const be=le.messages.find(de=>de.id===S);be&&(be.contentBlocks||(be.contentBlocks=[]),be.contentBlocks.push(k),se(be),Jt(W,!1))}function ni(S,k,T){const W=T??o.value;if(!W)return null;const le=s.value.find(de=>de.id===W);if(!le)return null;const be=le.messages.find(de=>de.id===S);return be?.contentBlocks?be.contentBlocks.find(de=>de.type==="tool_use"&&de.toolUseId===k)??null:null}function Dr(S,k,T,W,le){const be=s.value.find(Se=>Se.id===le);if(!be)return;const de=be.messages.findIndex(Se=>Se.id===S);de!==-1&&(be.messages[de]={...be.messages[de],content:T,contentBlocks:k,status:W},Jt(le,!0))}function si(S,k){const T=k??o.value;if(!T)return;const W=c.get(T);W?.session&&(W.session.status=S,h.value++)}function ii(S,k){const T=k??o.value;if(!T)return;const W=b(T);W.session={sessionId:S,cwd:n.value,status:"streaming",startedAt:new Date().toISOString()},W.lastError=null,h.value++}function oi(S){const k=S??o.value;if(!k)return;const T=c.get(k);T?.session&&(T.session.status="idle",h.value++)}function ai(S,k){const T=k??o.value;if(!T)return;const W=b(T);W.session&&(W.session.status="error",W.session.error=S),W.lastError=S,h.value++}function li(S,k){if(!u.value)return;const T=k??o.value;if(!T)return;const W=b(T),le=(()=>{if(typeof S.payload=="string")return S.payload;try{return JSON.stringify(S.payload,null,2)}catch{return String(S.payload)}})(),be=8e3,de=300,Se=le.length>be?`${le.slice(0,be)}
|
|
9
|
+
... (truncated)`:le;W.debugEvents.push({id:`dbg-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:new Date().toISOString(),direction:S.direction,channel:S.channel,eventType:S.eventType||"unknown",payload:Se}),W.debugEvents.length>de&&W.debugEvents.splice(0,W.debugEvents.length-de),h.value++}function ci(S){u.value=S}function ui(S){const k=S??o.value;if(!k)return;const T=c.get(k);T&&(T.debugEvents=[],h.value++)}function hi(){if(!o.value)return;const S=s.value.find(T=>T.id===o.value);S&&(S.messages=[]);const k=o.value;c.delete(k),h.value++}function di(S){const k=S??o.value;if(!k)return;const T=c.get(k);T&&(T.lastError=null,T.session&&(T.session.error=void 0),h.value++)}async function fi(){const S=await jh();if(s.value=S.conversations,i.value=S.archivedConversations,S.discardedArchives>0&&console.warn(`[chat] Skipped ${S.discardedArchives} corrupted archived conversation(s)`),nn(),Wn(),!g.value){const k=s.value.find(T=>!!T.previewBranch&&!T.finalized);k&&(g.value=k.id)}if(o.value){const k=s.value.find(T=>T.id===o.value);k&&k.cwd?n.value=k.cwd:k||(o.value=null,r.value=!1)}}async function pi(){const S=await jh(),k=new Map(s.value.map(de=>[de.id,de])),T=new Set(S.conversations.map(de=>de.id));let W=0,le=0,be=0;for(const de of S.conversations){const Se=k.get(de.id);if(!Se)s.value.push(de),k.set(de.id,de),W++,console.log(`[chat] refresh: added new conversation ${de.id} (source=${de.source}, msgs=${de.messages.length})`);else if(de.source!=="user"&&(de.messages.length>Se.messages.length||de.updatedAt>(Se.updatedAt||""))){const qe=s.value.findIndex(ot=>ot.id===de.id);qe!==-1&&(s.value.splice(qe,1,de),console.log(`[chat] refresh: updated conversation ${de.id} (msgs: ${Se.messages.length} → ${de.messages.length}, updatedAt: ${Se.updatedAt} → ${de.updatedAt})`)),le++}else Se&&de.messages.length!==Se.messages.length&&console.log(`[chat] refresh: skipped update for ${de.id} (source=${de.source}, server msgs=${de.messages.length}, local msgs=${Se.messages.length})`)}for(let de=s.value.length-1;de>=0;de--){const Se=s.value[de];!T.has(Se.id)&&!l.value.has(Se.id)&&(console.log(`[chat] refresh: removed conversation ${Se.id} (no longer on server)`),o.value===Se.id&&(o.value=null),s.value.splice(de,1),be++)}return S.archivedConversations&&(i.value=S.archivedConversations),(W>0||le>0||be>0)&&nn(),console.log(`[chat] refreshServerConversations: loaded=${S.conversations.length}, added=${W}, updated=${le}, removed=${be}`),W+le+be}function Et(){Ty(s.value,i.value)}function Jt(S,k=!1){const T=s.value.find(W=>W.id===S);if(T)if(k){const W=p.get(S);W&&(clearTimeout(W),p.delete(S)),T.updatedAt=new Date().toISOString(),qh(T)}else{if(p.get(S))return;const le=setTimeout(()=>{T.updatedAt=new Date().toISOString(),qh(T),p.delete(S)},f);p.set(S,le)}}function rn(S=!1){o.value&&Jt(o.value,S)}function nn(){const S=k=>{const T=new Date(k.updatedAt).getTime();return Number.isFinite(T)&&T>0?T:new Date(k.createdAt).getTime()};s.value.sort((k,T)=>S(T)-S(k))}function Wn(){i.value.sort((S,k)=>new Date(k.archivedAt).getTime()-new Date(S.archivedAt).getTime())}async function kn(S){if(qn().atLimit)return"";const T=B1();let W=null;if(S?.featureId){const Se=await $fetch("/api/chat/worktree",{method:"POST",body:{conversationId:T,featureId:S.featureId,baseBranch:S.baseBranch}});if(!Se.success&&Se.error)throw new Error(Se.error);W=Se}let le=null;if(typeof window<"u")try{const{useSettingsStore:Se}=await as(async()=>{const{useSettingsStore:ot}=await import("./Bze5ywup.js").then(yt=>yt.s);return{useSettingsStore:ot}},__vite__mapDeps([0,1,2]),import.meta.url),qe=Se();await qe.hydrate(),le=qe.providerSelection}catch(Se){console.warn("[chat] Failed to load provider selection for new conversation",Se)}const be=le||{providerId:Lp,modelKey:Dp},de={id:T,title:"New Conversation",messages:[],createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),cwd:n.value||process.cwd?.()||"",featureId:S?.featureId,providerId:be.providerId,providerModelKey:be.modelKey};if(W?.success&&W.worktreePath&&W.branch&&(de.worktreePath=W.worktreePath,de.worktreeBranch=W.branch,de.cwd=W.worktreePath,de.hasWorktree=!0,W.baseBranch&&(de.baseBranch=W.baseBranch)),s.value.unshift(de),o.value=T,typeof window<"u"&&$fetch("/api/settings",{method:"POST",body:{activeConversationId:T}}).catch(Se=>{console.error("Failed to save active conversation:",Se)}),!S?.featureId)try{const Se=await $fetch("/api/chat/worktree",{method:"POST",body:{conversationId:T,baseBranch:S?.baseBranch}});if(Se.success&&Se.worktreePath&&Se.branch){const qe=s.value.find(ot=>ot.id===T);qe&&(qe.worktreePath=Se.worktreePath,qe.worktreeBranch=Se.branch,qe.cwd=Se.worktreePath,qe.hasWorktree=!0,Se.baseBranch&&(qe.baseBranch=Se.baseBranch))}}catch(Se){console.warn("[chat] Failed to create worktree for conversation",T,Se)}return Jt(T,!0),T}function Lr(S){const k=s.value.find(T=>T.id===S);k&&(o.value=S,r.value=!0,k.cwd&&(n.value=k.cwd),!k.featureId&&k.worktreeBranch&&Zt(S),typeof window<"u"&&$fetch("/api/settings",{method:"POST",body:{activeConversationId:S,isPanelOpen:!0}}).catch(T=>{console.error("Failed to save active conversation:",T)}))}async function mi(S){const k=s.value.findIndex(le=>le.id===S);if(k===-1)return;const T=s.value[k];if(g.value===S&&(g.value=null),T.hasWorktree&&T.worktreePath&&T.worktreeBranch)try{await $fetch("/api/chat/worktree",{method:"DELETE",body:{worktreePath:T.worktreePath,branch:T.worktreeBranch}})}catch(le){console.warn("[chat] Failed to clean up worktree for conversation",S,le)}s.value.splice(k,1),c.delete(S);const W=p.get(S);W&&(clearTimeout(W),p.delete(S)),o.value===S&&(o.value=null,typeof window<"u"&&$fetch("/api/settings",{method:"POST",body:{activeConversationId:null}}).catch(le=>{console.error("Failed to clear active conversation:",le)})),Et()}async function gs(S,k,T){const W=s.value.find(be=>be.id===S);if(!W)return{success:!1,error:"Conversation not found"};if(!W.hasWorktree)return{success:!1,error:"No worktree associated with this conversation"};const le=T||W.baseBranch;try{const be=await $fetch("/api/chat/finalize",{method:"POST",body:{conversationId:S,commitMessage:k,baseBranch:le,worktreePath:W.worktreePath,worktreeBranch:W.worktreeBranch,previewBranch:W.previewBranch}});return be.success?(g.value===S&&(g.value=null),W.worktreePath=void 0,W.worktreeBranch=void 0,W.hasWorktree=!1,W.baseBranch=void 0,W.previewBranch=void 0,W.finalized=!0,W.updatedAt=new Date().toISOString(),Et()):be.rebaseInProgress&&await ur(S,W.worktreePath,le||"main",k),be}catch(be){return{success:!1,error:be instanceof Error?be.message:String(be)}}}async function Os(S,k){const T=s.value.find(le=>le.id===S);if(!T)return{success:!1,error:"Conversation not found"};if(!T.hasWorktree)return{success:!1,error:"No worktree associated with this conversation"};const W=k||T.baseBranch;try{const le=await $fetch("/api/chat/rebase",{method:"POST",body:{conversationId:S,baseBranch:W,worktreePath:T.worktreePath}});return le.rebaseInProgress?await ur(S,T.worktreePath,W||"main","","sync"):le.success&&(await M(T),T.baseBranch=W,Et()),le}catch(le){return{success:!1,error:le instanceof Error?le.message:String(le)}}}async function ur(S,k,T,W,le="finalize"){O.value={conversationId:S,worktreePath:k,baseBranch:T,commitMessage:W,files:[],resolvedFiles:new Set,loading:!0,error:null,mode:le};try{const be=await $fetch("/api/rebase/conflicts",{params:{worktreePath:k}});O.value&&(O.value.files=be.files,O.value.loading=!1)}catch(be){O.value&&(O.value.error=be instanceof Error?be.message:String(be),O.value.loading=!1)}}async function hr(S,k){if(!O.value)return!1;try{const T=await $fetch("/api/rebase/resolve",{method:"PUT",body:{worktreePath:O.value.worktreePath,filePath:S,content:k}});return T.success&&O.value&&O.value.resolvedFiles.add(S),T.success}catch{return!1}}async function vs(){if(!O.value)return{success:!1,error:"No conflict resolution in progress"};const{conversationId:S,commitMessage:k,baseBranch:T,mode:W,worktreePath:le}=O.value,be=W==="sync"?"/api/rebase/continue-sync":"/api/rebase/continue";try{const de=s.value.find(qe=>qe.id===S),Se=await $fetch(be,{method:"POST",body:{conversationId:S,commitMessage:k,baseBranch:T,worktreePath:le,worktreeBranch:de?.worktreeBranch,previewBranch:de?.previewBranch}});if(Se.success){if(W==="finalize"){g.value===S&&(g.value=null);const qe=s.value.find(ot=>ot.id===S);qe&&(qe.worktreePath=void 0,qe.worktreeBranch=void 0,qe.hasWorktree=!1,qe.baseBranch=void 0,qe.previewBranch=void 0,qe.finalized=!0,qe.updatedAt=new Date().toISOString(),Et())}else if(W==="sync"){const qe=s.value.find(ot=>ot.id===S);qe&&(await M(qe),qe.baseBranch=T,qe.updatedAt=new Date().toISOString(),Et())}O.value=null}else Se.rebaseInProgress&&await ur(S,le,T,k,W);return Se}catch(de){return{success:!1,error:de instanceof Error?de.message:String(de)}}}async function gi(){if(!O.value)return!1;try{const S=await $fetch("/api/rebase/abort",{method:"POST",body:{worktreePath:O.value.worktreePath}});return O.value=null,S.success}catch{return O.value=null,!1}}async function wn(S){if(!O.value)return!1;const k=O.value.files.find(T=>T.path===S);if(!k)return!1;try{const T=await $fetch("/api/rebase/ai-resolve",{method:"POST",body:{worktreePath:O.value.worktreePath,filePath:S,conflictContent:k.content}});return T.success&&T.resolvedContent!==void 0?(k.content=T.resolvedContent,await hr(S,T.resolvedContent)):!1}catch{return!1}}async function Oi(){if(!O.value)return;const S=O.value.files.filter(k=>!O.value.resolvedFiles.has(k.path));for(const k of S)await wn(k.path)}async function jn(S){const k=s.value.find(T=>T.id===S);if(!k)return{success:!1,error:"Conversation not found"};if(!k.hasWorktree||!k.worktreePath||!k.baseBranch)return{success:!1,error:"No worktree to preview"};try{const T=await $fetch("/api/chat/preview",{method:"POST",body:{conversationId:S,worktreePath:k.worktreePath,baseBranch:k.baseBranch}});return T.success&&T.previewBranch&&(k.previewBranch=T.previewBranch,g.value=S,k.updatedAt=new Date().toISOString(),Et()),{success:T.success,error:T.error}}catch(T){return{success:!1,error:T instanceof Error?T.message:String(T)}}}async function dr(S){const k=s.value.find(T=>T.id===S);if(!k)return{success:!1,error:"Conversation not found"};if(!k.previewBranch||!k.baseBranch)return g.value=null,{success:!1,error:"No active preview"};try{const T=await $fetch("/api/chat/preview",{method:"DELETE",body:{previewBranch:k.previewBranch,baseBranch:k.baseBranch}});return T.success&&(k.previewBranch=void 0,g.value=null,k.updatedAt=new Date().toISOString(),Et()),{success:T.success,error:T.error}}catch(T){return{success:!1,error:T instanceof Error?T.message:String(T)}}}async function Pr(S){if(g.value===S)return await dr(S);if(g.value){const k=await dr(g.value);if(!k.success)return{success:!1,error:`Failed to end previous preview: ${k.error}`}}return await jn(S)}function vi(S){const k=S.trim();if(!k)return null;const T=s.value.filter(W=>W.featureId===k?!0:W.worktreeBranch?.trim()===k);return T.length===0?null:T.sort((W,le)=>new Date(le.updatedAt).getTime()-new Date(W.updatedAt).getTime())[0]||null}function bi(S,k){const T=s.value.find(W=>W.id===S);T&&(T.title=k.trim(),T.updatedAt=new Date().toISOString(),nn(),Et())}function xi(S){const k=o.value;if(!k)return;const T=s.value.find(le=>le.id===k);if(!T||T.title!=="New Conversation")return;const W=T.messages.find(le=>le.role==="user");W&&(W.content.trim().length>0?T.title=Z1(W.content):W.attachments&&W.attachments.length>0&&(T.title=W.attachments.length===1?"[Image] New Conversation":`[${W.attachments.length} Images] New Conversation`))}function qn(){const S=s.value.length;return{atLimit:S>=Dh,nearLimit:S>=Eh,count:S}}async function Yn(S,k){o.value||await kn();const T=xn(S,void 0,k);return xi(),rn(!0),T}function yi(S,k,T){const W=T??o.value;Qr(S,k,W??void 0),W&&Jt(W,!1)}function Fn(S,k){const T=k??o.value;yn(S,{status:"complete"},T??void 0),T&&Jt(T,!0)}return{messages:P,session:A,isPanelOpen:r,panelWidth:Te(e),permissionMode:Te(t),pendingPermission:E,pendingPlanApproval:F,cwd:Te(n),lastError:I,debugEvents:oe,debugStreamEnabled:Te(u),providerSessionId:ne,conversations:Te(s),archivedConversations:Te(i),activeConversationId:Te(o),conversationViewMode:Te(a),conflictState:Te(O),previewingConversationId:Te(g),isStreaming:ie,hasMessages:L,lastMessage:D,isActiveConversationStreaming:z,hasConversations:q,hasArchivedConversations:V,activeConversation:C,conversationCount:X,isNearStorageLimit:N,sortedConversations:me,sortedArchivedConversations:K,previewingConversation:he,streamingConversations:Te(l),initialize:xe,togglePanel:Ce,openPanel:ce,closePanel:ue,setPanelWidth:Me,setPermissionMode:De,setPendingPermission:Ae,clearPendingPermission:Ue,setPendingPlanApproval:Ye,clearPendingPlanApproval:pe,setCwd:Le,setProviderSessionId:Ve,clearProviderSession:Kt,getProviderSessionId:Er,updateWorktreeBranch:Mt,setConversationProviderSelection:bn,startConversationStreaming:$r,endConversationStreaming:zn,isConversationStreaming:Z,addMessage:Cr,addUserMessage:xn,addAssistantMessage:Nn,updateMessage:yn,resetMessageForReplay:xt,appendToMessage:Qr,addToolToMessage:H,updateToolInMessage:fe,initContentBlocks:_e,appendContentBlock:We,appendContentBlockWithSave:ri,updateBlockById:Ge,updateBlockWithSave:it,findToolUseBlock:ni,batchSetMessageBlocks:Dr,syncContentFromBlocks:se,setSessionStatus:si,startSession:ii,endSession:oi,setSessionError:ai,setDebugStreamEnabled:ci,pushDebugEvent:li,clearDebugEvents:ui,clearMessages:hi,clearError:di,loadConversations:fi,refreshServerConversations:pi,saveAllConversations:Et,saveCurrentConversation:rn,saveConversation:Jt,createConversation:kn,selectConversation:Lr,deleteConversation:mi,archiveConversation:R,restoreArchivedConversation:G,deleteArchivedConversation:ae,setConversationViewMode:w,findConversationByFeature:vi,syncConversationFeatureFromBranch:Zt,renameConversation:bi,checkStorageLimits:qn,finalizeConversation:gs,rebaseConversation:Os,resolveConflictFile:hr,continueRebase:vs,abortRebase:gi,aiResolveConflictFile:wn,aiResolveAllConflicts:Oi,previewConversation:jn,unpreviewConversation:dr,togglePreview:Pr,isConversationPreviewing:$,addUserMessageWithConversation:Yn,appendToMessageWithSave:yi,completeMessageWithSave:Fn}});function Ay(r={}){const e=ll(),t=300,n=5e3,s=250;let i=null,o=null,a=null,l=null,c=null,u=!1,h=!1;const p=_(!1),f=_(!1);let g=r;function O(D){g=D}async function y(){const D=g.getScrollPosition?.()??0,Z=await e.checkAndRefresh();return Z&&g.setScrollPosition&&(await br(),g.setScrollPosition(D)),Z}function b(){return p.value||!!e.activeContextMenu||!!e.activeDialog}async function C(){if(b()){f.value=!0;return}A()}async function P(){if(u){h=!0;return}u=!0;try{await y()}finally{u=!1,h&&(h=!1,A())}}function A(){o&&clearTimeout(o),o=setTimeout(()=>{o=null,P()},s)}function E(D){if(typeof window>"u")return;if(a&&a.readyState===WebSocket.OPEN){a.send(JSON.stringify({type:"watch",workingDirectory:D}));return}l&&(clearTimeout(l),l=null);const z=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/git-watcher-ws`;a=new WebSocket(z),a.onopen=()=>{a.send(JSON.stringify({type:"watch",workingDirectory:D}))},a.onmessage=q=>{try{JSON.parse(q.data).type==="git_changed"&&C()}catch{}},a.onclose=()=>{a=null,e.isPollingActive&&c&&(l=setTimeout(()=>{c&&E(c)},n))},a.onerror=()=>{}}function F(){l&&(clearTimeout(l),l=null),a&&(a.close(),a=null)}function I(D){D&&(c=D),!e.isPollingActive&&(e.startPolling(),c&&E(c))}function oe(){F(),e.stopPolling()}function ie(){p.value=!0,i&&(clearTimeout(i),i=null)}function ne(){i&&clearTimeout(i),i=setTimeout(async()=>{p.value=!1,f.value&&(f.value=!1,A())},t)}function L(){oe(),i&&(clearTimeout(i),i=null),o&&(clearTimeout(o),o=null),u=!1,h=!1,c=null}return ze(()=>[e.activeContextMenu,e.activeDialog],()=>{!e.activeContextMenu&&!e.activeDialog&&f.value&&!p.value&&(f.value=!1,A())}),{isUserInteracting:Te(p),isDeferredRefresh:Te(f),startPolling:I,stopPolling:oe,startInteraction:ie,endInteraction:ne,cleanup:L,setScrollCallbacks:O}}function _y(r){function e(s){if((s.ctrlKey||s.metaKey)&&s.key==="h"){s.preventDefault(),r.onScrollToHead();return}if(s.key==="Escape"){s.preventDefault(),r.onEscape();return}}function t(){document.addEventListener("keydown",e)}function n(){document.removeEventListener("keydown",e)}return{start:t,stop:n}}function Ry(r){const e=_({visible:!1,branchName:"",loading:!1,error:null});async function t(){e.value.loading=!0,e.value.error=null;const K=await r.checkoutBranch(e.value.branchName);e.value.loading=!1,K.success?e.value.visible=!1:e.value.error=K.error||"Unknown error"}const n=_({visible:!1,fromCommit:"",loading:!1,error:null});async function s(K){n.value.loading=!0,n.value.error=null;const he=await r.createBranch(K.name,n.value.fromCommit);n.value.loading=!1,he.success?(K.checkout&&await r.checkoutBranch(K.name),n.value.visible=!1):n.value.error=he.error||"Unknown error"}const i=_({visible:!1,branchName:"",isLocal:!0,force:!1,loading:!1,error:null});async function o(K){i.value.loading=!0,i.value.error=null;const{branchName:he,isLocal:$}=i.value,w=K?.force??i.value.force,M=$?await r.deleteLocalBranch(he,w):await r.deleteRemoteBranch(he);i.value.loading=!1,M.success?i.value.visible=!1:i.value.error=M.error||"Unknown error"}const a=_({visible:!1,branchName:"",newName:"",loading:!1,error:null});async function l(){if(!a.value.newName.trim()){a.value.error="Branch name is required";return}a.value.loading=!0,a.value.error=null;const K=await r.renameBranch(a.value.branchName,a.value.newName.trim());a.value.loading=!1,K.success?a.value.visible=!1:a.value.error=K.error||"Unknown error"}const c=_({visible:!1,branchName:"",loading:!1,error:null});async function u(K){c.value.loading=!0,c.value.error=null;const he=await r.mergeBranch(c.value.branchName,K);c.value.loading=!1,he.success?c.value.visible=!1:c.value.error=he.error||"Unknown error"}const h=_({visible:!1,branchName:"",loading:!1,error:null});async function p(){h.value.loading=!0,h.value.error=null;const K=await r.rebaseBranch(h.value.branchName);h.value.loading=!1,K.success?h.value.visible=!1:h.value.error=K.error||"Unknown error"}const f=_({visible:!1,branchName:"",loading:!1,error:null});async function g(K){f.value.loading=!0,f.value.error=null;const he=await r.pushBranch(f.value.branchName,K.remote,K.force,K.forceWithLease);f.value.loading=!1,he.success?f.value.visible=!1:f.value.error=he.error||"Unknown error"}const O=_({visible:!1,branchName:"",loading:!1,error:null});async function y(K){O.value.loading=!0,O.value.error=null;const he=await r.pullBranch(O.value.branchName,K.remote,K.noFastForward,K.squash);O.value.loading=!1,he.success?O.value.visible=!1:O.value.error=he.error||"Unknown error"}const b=_({visible:!1,commitHash:"",commitMessage:"",loading:!1,error:null});async function C(K){b.value.loading=!0,b.value.error=null;const he=await r.cherryPickCommit(b.value.commitHash,K.recordOrigin,K.noCommit);b.value.loading=!1,he.success?b.value.visible=!1:b.value.error=he.error||"Unknown error"}const P=_({visible:!1,commitHash:"",commitMessage:"",loading:!1,error:null});async function A(K){P.value.loading=!0,P.value.error=null;const he=await r.resetToCommit(P.value.commitHash,K.mode);P.value.loading=!1,he.success?P.value.visible=!1:P.value.error=he.error||"Unknown error"}const E=_({visible:!1,commitHash:"",loading:!1,error:null});async function F(K){E.value.loading=!0,E.value.error=null;const he=await r.createTag(K.name,E.value.commitHash,K.annotated,K.message,K.pushToRemote);E.value.loading=!1,he.success?E.value.visible=!1:E.value.error=he.error||"Unknown error"}const I=_({visible:!1,tagName:"",loading:!1,error:null});async function oe(K){I.value.loading=!0,I.value.error=null;const he=await r.deleteTag(I.value.tagName,K.deleteFromRemote?K.remote||"origin":void 0);I.value.loading=!1,he.success?I.value.visible=!1:I.value.error=he.error||"Unknown error"}const ie=_({visible:!1,tagName:"",loading:!1,tagDetail:null}),ne=_({visible:!1,loading:!1,error:null});async function L(K){ne.value.loading=!0,ne.value.error=null;const he=await r.stashChanges(K.message,K.includeUntracked);ne.value.loading=!1,he.success?ne.value.visible=!1:ne.value.error=he.error||"Unknown error"}const D=_({visible:!1,stashIndex:0,loading:!1,error:null}),Z=_("");async function z(K){D.value.loading=!0,D.value.error=null;const he=await r.stashBranch(D.value.stashIndex,K);D.value.loading=!1,he.success?D.value.visible=!1:D.value.error=he.error||"Unknown error"}const q=_({visible:!1,loading:!1,error:null});async function V(K){q.value.loading=!0,q.value.error=null;const he=await r.resetWorking(K.mode);q.value.loading=!1,he.success?q.value.visible=!1:q.value.error=he.error||"Unknown error"}const X=_({visible:!1,loading:!1,error:null});async function N(){X.value.loading=!0,X.value.error=null;const K=await r.cleanUntracked();X.value.loading=!1,K.success?X.value.visible=!1:X.value.error=K.error||"Unknown error"}const me=J(()=>e.value.visible||n.value.visible||i.value.visible||a.value.visible||c.value.visible||h.value.visible||f.value.visible||O.value.visible||b.value.visible||P.value.visible||E.value.visible||I.value.visible||ie.value.visible||ne.value.visible||D.value.visible||q.value.visible||X.value.visible);return{checkoutDialog:e,confirmCheckout:t,createBranchDialog:n,confirmCreateBranch:s,deleteBranchDialog:i,confirmDeleteBranch:o,renameDialog:a,confirmRenameBranch:l,mergeDialog:c,confirmMerge:u,rebaseDialog:h,confirmRebase:p,pushDialog:f,confirmPush:g,pullDialog:O,confirmPull:y,cherryPickDialog:b,confirmCherryPick:C,resetDialog:P,confirmReset:A,tagCreateDialog:E,confirmTagCreate:F,tagDeleteDialog:I,confirmTagDelete:oe,tagDetailDialog:ie,stashDialog:ne,confirmStash:L,stashBranchDialog:D,stashBranchInput:Z,confirmStashBranch:z,resetWorkingDialog:q,confirmResetWorking:V,cleanUntrackedDialog:X,confirmCleanUntracked:N,isAnyDialogOpen:me}}function By(r,e){const t=_({visible:!1,x:0,y:0});function n(Y,Me){t.value={visible:!0,x:Y,y:Me},setTimeout(()=>{t.value.visible=!1},1500)}const s=_({visible:!1,branch:"",x:0,y:0,isCurrentBranch:!1,isLocal:!0,commitHash:""});function i(Y){s.value={visible:!0,...Y},r.setActiveContextMenu({type:"branch",props:Y,position:{x:Y.x,y:Y.y}})}function o(){s.value.visible=!1,r.clearActiveContextMenu()}function a(){o(),e.checkoutDialog.value={visible:!0,branchName:s.value.branch,loading:!1,error:null}}function l(){const Y=s.value.branch;o(),e.renameDialog.value={visible:!0,branchName:Y,newName:Y,loading:!1,error:null}}function c(){const{branch:Y,isLocal:Me}=s.value;o(),e.deleteBranchDialog.value={visible:!0,branchName:Y,isLocal:Me,force:!1,loading:!1,error:null}}function u(){const Y=s.value.branch;o(),e.mergeDialog.value={visible:!0,branchName:Y,loading:!1,error:null}}function h(){const Y=s.value.branch;o(),e.rebaseDialog.value={visible:!0,branchName:Y,loading:!1,error:null}}function p(){const Y=s.value.branch;o(),e.pushDialog.value={visible:!0,branchName:Y,loading:!1,error:null}}function f(){const Y=s.value.branch;o(),e.pullDialog.value={visible:!0,branchName:Y,loading:!1,error:null}}async function g(){const Y=s.value.branch;o(),await r.fetchBranch(Y)}async function O(){const Y=s.value.branch;o(),await r.copyToClipboard(Y),n(s.value.x,s.value.y)}function y(){o(),e.createBranchDialog.value={visible:!0,fromCommit:s.value.commitHash,loading:!1,error:null}}const b=_({visible:!1,commit:null,x:0,y:0});function C(Y){b.value={visible:!0,commit:Y.commit,x:Y.x,y:Y.y},r.setActiveContextMenu({type:"commit",props:Y,position:{x:Y.x,y:Y.y}})}function P(){b.value.visible=!1,r.clearActiveContextMenu()}function A(Y){const Me=b.value.commit;if(!Me)return!1;P();const Le=Y(Me);return Le&&typeof Le.then=="function"?Le.then(()=>!0):!0}function E(){A(Y=>{e.tagCreateDialog.value={visible:!0,commitHash:Y.hash,loading:!1,error:null}})}function F(){A(Y=>{e.createBranchDialog.value={visible:!0,fromCommit:Y.hash,loading:!1,error:null}})}function I(){A(Y=>{e.checkoutDialog.value={visible:!0,branchName:Y.hash,loading:!1,error:null}})}function oe(){A(Y=>{e.cherryPickDialog.value={visible:!0,commitHash:Y.hash,commitMessage:Y.message,loading:!1,error:null}})}async function ie(){await A(Y=>r.revertCommit(Y.hash))}function ne(){A(Y=>{e.mergeDialog.value={visible:!0,branchName:Y.shortHash,loading:!1,error:null}})}function L(){A(Y=>{e.resetDialog.value={visible:!0,commitHash:Y.hash,commitMessage:Y.message,loading:!1,error:null}})}async function D(){const{x:Y,y:Me}=b.value;await A(Ve=>r.copyToClipboard(Ve.hash))&&n(Y,Me)}async function Z(){await A(Y=>r.copyCommitSubject(Y))}const z=_({visible:!1,tag:"",x:0,y:0,commitHash:""});function q(Y){z.value={visible:!0,...Y},r.setActiveContextMenu({type:"tag",props:Y,position:{x:Y.x,y:Y.y}})}function V(){z.value.visible=!1,r.clearActiveContextMenu()}async function X(){const Y=z.value.tag;V(),e.tagDetailDialog.value={visible:!0,tagName:Y,loading:!0,tagDetail:null};const Me=await r.getTagDetail(Y);e.tagDetailDialog.value.loading=!1,Me.success&&Me.data&&(e.tagDetailDialog.value.tagDetail=Me.data)}function N(){const Y=z.value.tag;V(),e.tagDeleteDialog.value={visible:!0,tagName:Y,loading:!1,error:null}}async function me(){const Y=z.value.tag;V(),await r.pushTag(Y)}async function K(){const Y=z.value.tag;V(),await r.copyToClipboard(Y),n(z.value.x,z.value.y)}const he=_({visible:!1,x:0,y:0});function $(Y){he.value={visible:!0,...Y},r.setActiveContextMenu({type:"uncommitted",props:Y,position:{x:Y.x,y:Y.y}})}function w(){he.value.visible=!1,r.clearActiveContextMenu()}function M(){w(),e.stashDialog.value={visible:!0,loading:!1,error:null}}function R(){w(),e.resetWorkingDialog.value={visible:!0,loading:!1,error:null}}function G(){w(),e.cleanUntrackedDialog.value={visible:!0,loading:!1,error:null}}const ae=_({visible:!1,stash:null,x:0,y:0});function xe(Y){ae.value={visible:!0,stash:Y.stash,x:Y.x,y:Y.y},r.setActiveContextMenu({type:"stash",props:Y,position:{x:Y.x,y:Y.y}})}function De(){ae.value.visible=!1,r.clearActiveContextMenu()}function Ae(Y){const Me=ae.value.stash;if(!Me)return!1;De();const Le=Y(Me);return Le&&typeof Le.then=="function"?Le.then(()=>!0):!0}async function Ue(){await Ae(Y=>r.applyStash(Y.index))}async function Ye(){await Ae(Y=>r.popStash(Y.index))}async function pe(){await Ae(Y=>r.dropStash(Y.index))}function Ce(){Ae(Y=>{e.stashBranchDialog.value={visible:!0,stashIndex:Y.index,loading:!1,error:null}})}async function ce(){const{x:Y,y:Me}=ae.value;await Ae(Ve=>r.copyToClipboard(`stash@{${Ve.index}}`))&&n(Y,Me)}async function ue(){const{x:Y,y:Me}=ae.value;await Ae(Ve=>r.copyToClipboard(Ve.hash))&&n(Y,Me)}return{copyFeedback:t,showCopyFeedback:n,branchMenu:s,handleBranchContextMenu:i,closeBranchMenu:o,handleBranchCheckout:a,handleBranchRename:l,handleBranchDelete:c,handleBranchMerge:u,handleBranchRebase:h,handleBranchPush:p,handleBranchPull:f,handleBranchFetch:g,handleBranchCopyName:O,handleBranchCreateBranch:y,commitMenu:b,handleCommitContextMenu:C,closeCommitMenu:P,handleCommitAddTag:E,handleCommitCreateBranch:F,handleCommitCheckout:I,handleCommitCherryPick:oe,handleCommitRevert:ie,handleCommitMergeInto:ne,handleCommitReset:L,handleCommitCopyHash:D,handleCommitCopySubject:Z,tagMenu:z,handleTagContextMenu:q,closeTagMenu:V,handleTagViewDetails:X,handleTagDelete:N,handleTagPush:me,handleTagCopyName:K,uncommittedMenu:he,handleUncommittedContextMenu:$,closeUncommittedMenu:w,handleUncommittedStash:M,handleUncommittedReset:R,handleUncommittedClean:G,stashMenu:ae,handleStashContextMenu:xe,closeStashMenu:De,handleStashApply:Ue,handleStashPop:Ye,handleStashDrop:pe,handleStashCreateBranch:Ce,handleStashCopyName:ce,handleStashCopyHash:ue}}const Zy={class:"mb-4 p-3 bg-retro-panel border border-retro-border rounded"},Ey={class:"text-sm font-mono text-retro-cyan"},Dy={class:"text-xs font-mono text-retro-text mt-1 truncate"},Ly={class:"space-y-3"},Xy={class:"flex items-start gap-2 cursor-pointer group"},Iy={class:"flex items-start gap-2 cursor-pointer group"},Vy=Ie({__name:"CherryPickDialog",props:{visible:{type:Boolean},commitHash:{},commitMessage:{},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=e,n=_(!1),s=_(!1);function i(){t("confirm",{recordOrigin:n.value,noCommit:s.value})}function o(){n.value=!1,s.value=!1,t("close")}return(a,l)=>(v(),Oe(Wt,{title:"Cherry-Pick Commit",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Cherry-Pick",onClose:o,onConfirm:i},{default:ct(()=>[d("div",Zy,[l[2]||(l[2]=d("div",{class:"text-xs font-mono text-retro-muted mb-1"},"Commit",-1)),d("div",Ey,B(r.commitHash.slice(0,7)),1),d("div",Dy,B(r.commitMessage.split(`
|
|
10
|
+
`)[0]),1)]),d("div",Ly,[d("label",Xy,[He(d("input",{"onUpdate:modelValue":l[0]||(l[0]=c=>tt(n)?n.value=c:null),type:"checkbox",class:"mt-0.5 accent-retro-cyan"},null,512),[[lr,m(n)]]),l[3]||(l[3]=d("div",null,[d("span",{class:"text-sm font-mono text-retro-text group-hover:text-retro-cyan transition-colors"}," Record origin (-x) "),d("p",{class:"text-xs font-mono text-retro-muted mt-0.5"},' Append "(cherry picked from commit ...)" to the commit message ')],-1))]),d("label",Iy,[He(d("input",{"onUpdate:modelValue":l[1]||(l[1]=c=>tt(s)?s.value=c:null),type:"checkbox",class:"mt-0.5 accent-retro-cyan"},null,512),[[lr,m(s)]]),l[4]||(l[4]=d("div",null,[d("span",{class:"text-sm font-mono text-retro-text group-hover:text-retro-cyan transition-colors"}," No commit "),d("p",{class:"text-xs font-mono text-retro-muted mt-0.5"}," Apply changes to the working directory without committing ")],-1))])])]),_:1},8,["visible","loading","error"]))}}),zy={class:"mb-4 p-3 bg-retro-panel border border-retro-border rounded"},Ny={class:"text-sm font-mono text-retro-cyan"},Wy={class:"mb-4"},jy={class:"flex items-start gap-2 cursor-pointer group"},qy=Ie({__name:"CreateBranchDialog",props:{visible:{type:Boolean},fromCommit:{},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=e,n=_(""),s=_(!0),i=J(()=>n.value.trim().length>0);function o(){i.value&&t("confirm",{name:n.value.trim(),checkout:s.value})}function a(){n.value="",s.value=!0,t("close")}return(l,c)=>(v(),Oe(Wt,{title:"Create Branch",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Create Branch",onClose:a,onConfirm:o},{default:ct(()=>[d("div",zy,[c[2]||(c[2]=d("div",{class:"text-xs font-mono text-retro-muted mb-1"},"From",-1)),d("div",Ny,B(r.fromCommit.slice(0,7)),1)]),d("div",Wy,[c[3]||(c[3]=d("label",{class:"block text-xs font-mono text-retro-muted mb-1.5"},"Branch name",-1)),He(d("input",{"onUpdate:modelValue":c[0]||(c[0]=u=>tt(n)?n.value=u:null),type:"text",placeholder:"feature/my-branch",class:"w-full px-3 py-2 text-sm bg-retro-panel border border-retro-border rounded text-retro-text placeholder-retro-muted focus:outline-none focus:border-retro-cyan"},null,512),[[Xt,m(n)]])]),d("label",jy,[He(d("input",{"onUpdate:modelValue":c[1]||(c[1]=u=>tt(s)?s.value=u:null),type:"checkbox",class:"mt-0.5 accent-retro-cyan"},null,512),[[lr,m(s)]]),c[4]||(c[4]=d("div",null,[d("span",{class:"text-sm font-mono text-retro-text group-hover:text-retro-cyan transition-colors"}," Switch to new branch "),d("p",{class:"text-xs font-mono text-retro-muted mt-0.5"}," Checkout the branch after creating it ")],-1))])]),_:1},8,["visible","loading","error"]))}}),Yy=Ie({__name:"CleanUntrackedDialog",props:{visible:{type:Boolean},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=e;return(n,s)=>(v(),Oe(Wt,{title:"Clean Untracked Files",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Clean","confirm-danger":"",onClose:s[0]||(s[0]=i=>t("close")),onConfirm:s[1]||(s[1]=i=>t("confirm"))},{default:ct(()=>[...s[2]||(s[2]=[d("div",{class:"space-y-3"},[d("p",{class:"text-retro-text text-sm font-mono"}," Remove all untracked files and directories from the working tree. "),d("p",{class:"text-retro-muted text-xs font-mono"},[Xe(" This runs "),d("code",null,"git clean -fd"),Xe(" and cannot be undone. ")])],-1)])]),_:1},8,["visible","loading","error"]))}}),Fy={class:"text-retro-text text-sm font-mono mb-2"},Uy={class:"text-retro-cyan"},Gy={class:"space-y-3 mt-4"},Hy={class:"flex items-center gap-2 cursor-pointer"},Ky=Ie({__name:"DeleteBranchDialog",props:{visible:{type:Boolean},branchName:{},isLocal:{type:Boolean},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=r,n=e,s=_(!1);function i(){n("confirm",{force:s.value})}return ze(()=>t.visible,o=>{o&&(s.value=!1)}),(o,a)=>(v(),Oe(Wt,{title:"Delete Branch",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Delete","confirm-danger":!0,onClose:a[1]||(a[1]=l=>n("close")),onConfirm:i},{default:ct(()=>[a[4]||(a[4]=d("div",{class:"mb-4 p-2 text-xs font-mono text-retro-yellow bg-retro-yellow/10 border border-retro-yellow/30 rounded"}," This action is permanent and cannot be undone. ",-1)),d("p",Fy,[Xe(" Delete "+B(r.isLocal?"local":"remote")+" branch ",1),d("span",Uy,B(r.branchName),1),a[2]||(a[2]=Xe("? ",-1))]),d("div",Gy,[d("label",Hy,[He(d("input",{"onUpdate:modelValue":a[0]||(a[0]=l=>tt(s)?s.value=l:null),type:"checkbox",class:"accent-retro-cyan"},null,512),[[lr,m(s)]]),a[3]||(a[3]=d("span",{class:"text-retro-muted text-sm"},"Force delete (even if not fully merged)",-1))])])]),_:1},8,["visible","loading","error"]))}}),Jy={class:"text-retro-text text-sm font-mono mb-4"},ek={class:"text-retro-cyan"},tk={class:"space-y-3"},rk={class:"flex items-center gap-2 cursor-pointer"},nk={class:"flex items-center gap-2 cursor-pointer"},sk={class:"flex items-center gap-2 cursor-pointer"},ik=Ie({__name:"MergeDialog",props:{visible:{type:Boolean},branchName:{},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=r,n=e,s=_(!1),i=_(!1),o=_(!1);function a(){n("confirm",{noCommit:s.value,noFastForward:i.value,squash:o.value})}return ze(()=>t.visible,l=>{l&&(s.value=!1,i.value=!1,o.value=!1)}),(l,c)=>(v(),Oe(Wt,{title:"Merge Branch",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Merge",onClose:c[3]||(c[3]=u=>n("close")),onConfirm:a},{default:ct(()=>[d("p",Jy,[c[4]||(c[4]=Xe(" Merge ",-1)),d("span",ek,B(r.branchName),1),c[5]||(c[5]=Xe(" into current branch ",-1))]),d("div",tk,[d("label",rk,[He(d("input",{"onUpdate:modelValue":c[0]||(c[0]=u=>tt(s)?s.value=u:null),type:"checkbox",class:"accent-retro-cyan"},null,512),[[lr,m(s)]]),c[6]||(c[6]=d("span",{class:"text-retro-muted text-sm"},"No commit (stage changes only)",-1))]),d("label",nk,[He(d("input",{"onUpdate:modelValue":c[1]||(c[1]=u=>tt(i)?i.value=u:null),type:"checkbox",class:"accent-retro-cyan"},null,512),[[lr,m(i)]]),c[7]||(c[7]=d("span",{class:"text-retro-muted text-sm"},"No fast-forward (always create merge commit)",-1))]),d("label",sk,[He(d("input",{"onUpdate:modelValue":c[2]||(c[2]=u=>tt(o)?o.value=u:null),type:"checkbox",class:"accent-retro-cyan"},null,512),[[lr,m(o)]]),c[8]||(c[8]=d("span",{class:"text-retro-muted text-sm"},"Squash (combine all commits into one)",-1))])])]),_:1},8,["visible","loading","error"]))}}),ok={class:"text-retro-text text-sm font-mono mb-4"},ak={class:"text-retro-cyan"},lk={class:"space-y-3"},ck=["value"],uk={class:"flex items-center gap-2 cursor-pointer"},hk={class:"flex items-center gap-2 cursor-pointer"},dk=Ie({__name:"PullDialog",props:{visible:{type:Boolean},branchName:{},remotes:{},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=r,n=e,s=_("origin"),i=_(!1),o=_(!1);function a(){n("confirm",{remote:s.value,noFastForward:i.value,squash:o.value})}return ze(()=>t.visible,l=>{l&&(s.value=t.remotes.includes("origin")?"origin":t.remotes[0]??"origin",i.value=!1,o.value=!1)}),(l,c)=>(v(),Oe(Wt,{title:"Pull Branch",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Pull",onClose:c[3]||(c[3]=u=>n("close")),onConfirm:a},{default:ct(()=>[d("p",ok,[c[4]||(c[4]=Xe(" Pull ",-1)),d("span",ak,B(r.branchName),1),c[5]||(c[5]=Xe(" from remote ",-1))]),d("div",lk,[d("div",null,[c[6]||(c[6]=d("label",{class:"text-retro-muted text-sm block mb-1"},"Remote",-1)),He(d("select",{"onUpdate:modelValue":c[0]||(c[0]=u=>tt(s)?s.value=u:null),class:"w-full bg-retro-panel border border-retro-border rounded text-retro-text text-sm px-2 py-1.5 font-mono focus:outline-none focus:border-retro-cyan"},[(v(!0),x(we,null,Fe(r.remotes,u=>(v(),x("option",{key:u,value:u},B(u),9,ck))),128))],512),[[ms,m(s)]])]),d("label",uk,[He(d("input",{"onUpdate:modelValue":c[1]||(c[1]=u=>tt(i)?i.value=u:null),type:"checkbox",class:"accent-retro-cyan"},null,512),[[lr,m(i)]]),c[7]||(c[7]=d("span",{class:"text-retro-muted text-sm"},"No fast-forward (always create merge commit)",-1))]),d("label",hk,[He(d("input",{"onUpdate:modelValue":c[2]||(c[2]=u=>tt(o)?o.value=u:null),type:"checkbox",class:"accent-retro-cyan"},null,512),[[lr,m(o)]]),c[8]||(c[8]=d("span",{class:"text-retro-muted text-sm"},"Squash (combine all commits into one)",-1))])])]),_:1},8,["visible","loading","error"]))}}),fk={class:"text-retro-text text-sm font-mono mb-4"},pk={class:"text-retro-cyan"},mk={class:"space-y-3"},gk=["value"],Ok={class:"flex items-center gap-2 cursor-pointer"},vk=["checked"],bk={class:"flex items-center gap-2 cursor-pointer"},xk=["checked"],yk={key:0,class:"p-2 text-xs font-mono text-retro-yellow bg-retro-yellow/10 border border-retro-yellow/30 rounded"},kk=Ie({__name:"PushDialog",props:{visible:{type:Boolean},branchName:{},remotes:{},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=r,n=e,s=_("origin"),i=_(!1),o=_(!1);function a(u){i.value=u,u&&(o.value=!1)}function l(u){o.value=u,u&&(i.value=!1)}function c(){n("confirm",{remote:s.value,force:i.value,forceWithLease:o.value})}return ze(()=>t.visible,u=>{u&&(s.value=t.remotes.includes("origin")?"origin":t.remotes[0]??"origin",i.value=!1,o.value=!1)}),(u,h)=>(v(),Oe(Wt,{title:"Push Branch",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Push",onClose:h[3]||(h[3]=p=>n("close")),onConfirm:c},{default:ct(()=>[d("p",fk,[h[4]||(h[4]=Xe(" Push ",-1)),d("span",pk,B(r.branchName),1),h[5]||(h[5]=Xe(" to remote ",-1))]),d("div",mk,[d("div",null,[h[6]||(h[6]=d("label",{class:"text-retro-muted text-sm block mb-1"},"Remote",-1)),He(d("select",{"onUpdate:modelValue":h[0]||(h[0]=p=>tt(s)?s.value=p:null),class:"w-full bg-retro-panel border border-retro-border rounded text-retro-text text-sm px-2 py-1.5 font-mono focus:outline-none focus:border-retro-cyan"},[(v(!0),x(we,null,Fe(r.remotes,p=>(v(),x("option",{key:p,value:p},B(p),9,gk))),128))],512),[[ms,m(s)]])]),d("label",Ok,[d("input",{checked:m(i),type:"checkbox",class:"accent-retro-cyan",onChange:h[1]||(h[1]=p=>a(p.target.checked))},null,40,vk),h[7]||(h[7]=d("span",{class:"text-retro-muted text-sm"},"Force push",-1))]),d("label",bk,[d("input",{checked:m(o),type:"checkbox",class:"accent-retro-cyan",onChange:h[2]||(h[2]=p=>l(p.target.checked))},null,40,xk),h[8]||(h[8]=d("span",{class:"text-retro-muted text-sm"},"Force with lease (safer force push)",-1))]),m(i)||m(o)?(v(),x("div",yk,B(m(i)?"Force push will overwrite remote history. Use with caution.":"Force with lease will reject the push if the remote has been updated since your last fetch."),1)):U("",!0)])]),_:1},8,["visible","loading","error"]))}}),wk={class:"text-retro-text text-sm font-mono mb-4"},Sk={class:"text-retro-cyan"},$k={class:"text-retro-cyan"},Ck={class:"p-2 text-xs font-mono text-retro-yellow bg-retro-yellow/10 border border-retro-yellow/30 rounded"},Qk={class:"text-retro-cyan"},Pk={class:"text-retro-cyan"},Tk=Ie({__name:"RebaseDialog",props:{visible:{type:Boolean},branchName:{},ontoBranch:{},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=e;return(n,s)=>(v(),Oe(Wt,{title:"Rebase Branch",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Rebase",onClose:s[0]||(s[0]=i=>t("close")),onConfirm:s[1]||(s[1]=i=>t("confirm"))},{default:ct(()=>[d("p",wk,[s[2]||(s[2]=Xe(" Rebase ",-1)),d("span",Sk,B(r.branchName),1),s[3]||(s[3]=Xe(" onto ",-1)),d("span",$k,B(r.ontoBranch),1)]),d("div",Ck,[s[4]||(s[4]=Xe(" This will rewrite commit history. Commits from ",-1)),d("span",Qk,B(r.branchName),1),s[5]||(s[5]=Xe(" will be replayed on top of ",-1)),d("span",Pk,B(r.ontoBranch),1),s[6]||(s[6]=Xe(". ",-1))])]),_:1},8,["visible","loading","error"]))}}),Mk={class:"mb-4 p-3 bg-retro-panel border border-retro-border rounded"},Ak={class:"text-sm font-mono text-retro-cyan"},_k={class:"text-xs font-mono text-retro-text mt-1 truncate"},Rk={class:"space-y-2"},Bk=["value"],Zk={key:0,class:"mt-3 p-2 text-xs font-mono text-retro-red bg-retro-red/10 border border-retro-red/30 rounded"},Ek=Ie({__name:"ResetDialog",props:{visible:{type:Boolean},commitHash:{},commitMessage:{},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=e,n=_("mixed"),s=[{value:"soft",label:"Soft",description:"Move HEAD, keep staged changes and working directory"},{value:"mixed",label:"Mixed",description:"Move HEAD, reset staging area, keep working directory"},{value:"hard",label:"Hard",description:"Move HEAD, reset staging area and working directory (DESTRUCTIVE)"}];function i(){t("confirm",{mode:n.value})}function o(){n.value="mixed",t("close")}return(a,l)=>(v(),Oe(Wt,{title:"Reset to Commit",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Reset","confirm-danger":m(n)==="hard",onClose:o,onConfirm:i},{default:ct(()=>[d("div",Mk,[l[1]||(l[1]=d("div",{class:"text-xs font-mono text-retro-muted mb-1"},"Reset to",-1)),d("div",Ak,B(r.commitHash.slice(0,7)),1),d("div",_k,B(r.commitMessage.split(`
|
|
11
|
+
`)[0]),1)]),d("div",Rk,[l[2]||(l[2]=d("div",{class:"text-xs font-mono text-retro-muted mb-2"},"Reset mode",-1)),(v(),x(we,null,Fe(s,c=>d("label",{key:c.value,class:Re(["flex items-start gap-2 p-2 rounded cursor-pointer group border transition-colors",[m(n)===c.value?"border-retro-cyan bg-retro-cyan/5":"border-transparent hover:bg-retro-panel"]])},[He(d("input",{"onUpdate:modelValue":l[0]||(l[0]=u=>tt(n)?n.value=u:null),type:"radio",name:"reset-mode",value:c.value,class:"mt-0.5 accent-retro-cyan"},null,8,Bk),[[mc,m(n)]]),d("div",null,[d("span",{class:Re(["text-sm font-mono transition-colors",[c.value==="hard"?"text-retro-red":"text-retro-text",m(n)===c.value?"text-retro-cyan":""]])},B(c.label),3),d("p",{class:Re(["text-xs font-mono mt-0.5",c.value==="hard"?"text-retro-red/70":"text-retro-muted"])},B(c.description),3)])],2)),64))]),m(n)==="hard"?(v(),x("div",Zk," Warning: Hard reset will permanently discard all uncommitted changes in your working directory and staging area. This action cannot be undone. ")):U("",!0)]),_:1},8,["visible","loading","error","confirm-danger"]))}}),Dk={class:"space-y-3"},Lk={class:"flex items-start gap-2 cursor-pointer"},Xk={class:"flex items-start gap-2 cursor-pointer"},Ik={key:0,class:"mt-4 p-2 text-xs font-mono text-retro-red bg-retro-red/10 border border-retro-red/30 rounded"},Vk=Ie({__name:"ResetWorkingDialog",props:{visible:{type:Boolean},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=r,n=e,s=_("mixed"),i=J(()=>s.value==="hard");function o(){n("confirm",{mode:s.value})}return ze(()=>t.visible,a=>{a&&(s.value="mixed")}),(a,l)=>(v(),Oe(Wt,{title:"Reset Working Directory",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Reset","confirm-danger":m(i),onClose:l[2]||(l[2]=c=>n("close")),onConfirm:o},{default:ct(()=>[l[5]||(l[5]=d("p",{class:"text-retro-text text-sm font-mono mb-4"}," Reset the working directory to HEAD. ",-1)),d("div",Dk,[d("label",Lk,[He(d("input",{"onUpdate:modelValue":l[0]||(l[0]=c=>tt(s)?s.value=c:null),type:"radio",value:"mixed",name:"reset-mode",class:"accent-retro-cyan mt-0.5"},null,512),[[mc,m(s)]]),l[3]||(l[3]=d("div",null,[d("span",{class:"text-retro-text text-sm font-mono"},"Mixed"),d("p",{class:"text-retro-muted text-xs font-mono mt-0.5"}," Reset staging area, keep working directory ")],-1))]),d("label",Xk,[He(d("input",{"onUpdate:modelValue":l[1]||(l[1]=c=>tt(s)?s.value=c:null),type:"radio",value:"hard",name:"reset-mode",class:"accent-retro-cyan mt-0.5"},null,512),[[mc,m(s)]]),l[4]||(l[4]=d("div",null,[d("span",{class:"text-retro-text text-sm font-mono"},"Hard"),d("p",{class:"text-retro-muted text-xs font-mono mt-0.5"}," Reset staging area AND working directory (DESTRUCTIVE) ")],-1))])]),m(i)?(v(),x("div",Ik," WARNING: Hard reset will permanently discard all uncommitted changes. This cannot be undone. ")):U("",!0)]),_:1},8,["visible","loading","error","confirm-danger"]))}}),zk={class:"space-y-4"},Nk={class:"flex items-center gap-2 cursor-pointer"},Wk=Ie({__name:"StashDialog",props:{visible:{type:Boolean},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=r,n=e,s=_(""),i=_(!1);function o(){n("confirm",{message:s.value.trim()||void 0,includeUntracked:i.value})}return ze(()=>t.visible,a=>{a&&(s.value="",i.value=!1)}),(a,l)=>(v(),Oe(Wt,{title:"Stash Changes",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Stash",onClose:l[2]||(l[2]=c=>n("close")),onConfirm:o},{default:ct(()=>[l[5]||(l[5]=d("p",{class:"text-retro-text text-sm font-mono mb-4"}," Save uncommitted changes to the stash. ",-1)),d("div",zk,[d("div",null,[l[3]||(l[3]=d("label",{class:"block text-retro-muted text-xs font-mono mb-1"},"Message (optional)",-1)),He(d("input",{"onUpdate:modelValue":l[0]||(l[0]=c=>tt(s)?s.value=c:null),type:"text",placeholder:"Stash description...",class:"w-full px-2 py-1.5 text-sm font-mono bg-retro-panel border border-retro-border rounded text-retro-text placeholder-retro-muted/50 focus:outline-none focus:border-retro-cyan"},null,512),[[Xt,m(s)]])]),d("label",Nk,[He(d("input",{"onUpdate:modelValue":l[1]||(l[1]=c=>tt(i)?i.value=c:null),type:"checkbox",class:"accent-retro-cyan"},null,512),[[lr,m(i)]]),l[4]||(l[4]=d("span",{class:"text-retro-muted text-sm"},"Include untracked files",-1))])])]),_:1},8,["visible","loading","error"]))}}),jk={class:"mb-4 p-3 bg-retro-panel border border-retro-border rounded"},qk={class:"text-sm font-mono text-retro-cyan"},Yk={class:"mb-4"},Fk={class:"mb-3"},Uk={class:"flex items-start gap-2 cursor-pointer group"},Gk={key:0,class:"mb-4"},Hk={class:"space-y-2"},Kk={class:"flex items-start gap-2 cursor-pointer group"},Jk=["disabled"],ew={key:0,class:"ml-6"},tw=["value"],rw=Ie({__name:"TagCreateDialog",props:{visible:{type:Boolean},commitHash:{},remotes:{},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=e,n=_(""),s=_(!1),i=_(""),o=_(!1),a=_(""),l=J(()=>n.value.trim().length>0);function c(){if(!l.value)return;const h={name:n.value.trim(),annotated:s.value};s.value&&i.value.trim()&&(h.message=i.value.trim()),o.value&&a.value&&(h.pushToRemote=a.value),t("confirm",h)}function u(){n.value="",s.value=!1,i.value="",o.value=!1,a.value="",t("close")}return ze(()=>s.value,h=>{h||(i.value="")}),(h,p)=>(v(),Oe(Wt,{title:"Create Tag",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Create Tag",onClose:u,onConfirm:c},{default:ct(()=>[d("div",jk,[p[5]||(p[5]=d("div",{class:"text-xs font-mono text-retro-muted mb-1"},"At commit",-1)),d("div",qk,B(r.commitHash.slice(0,7)),1)]),d("div",Yk,[p[6]||(p[6]=d("label",{class:"block text-xs font-mono text-retro-muted mb-1.5"},"Tag name",-1)),He(d("input",{"onUpdate:modelValue":p[0]||(p[0]=f=>tt(n)?n.value=f:null),type:"text",placeholder:"v1.0.0",class:"w-full px-3 py-2 text-sm bg-retro-panel border border-retro-border rounded text-retro-text placeholder-retro-muted focus:outline-none focus:border-retro-cyan"},null,512),[[Xt,m(n)]])]),d("div",Fk,[d("label",Uk,[He(d("input",{"onUpdate:modelValue":p[1]||(p[1]=f=>tt(s)?s.value=f:null),type:"checkbox",class:"mt-0.5 accent-retro-cyan"},null,512),[[lr,m(s)]]),p[7]||(p[7]=d("div",null,[d("span",{class:"text-sm font-mono text-retro-text group-hover:text-retro-cyan transition-colors"}," Annotated tag "),d("p",{class:"text-xs font-mono text-retro-muted mt-0.5"}," Create a full tag object with message and tagger info ")],-1))])]),m(s)?(v(),x("div",Gk,[p[8]||(p[8]=d("label",{class:"block text-xs font-mono text-retro-muted mb-1.5"},"Tag message",-1)),He(d("textarea",{"onUpdate:modelValue":p[2]||(p[2]=f=>tt(i)?i.value=f:null),rows:"3",placeholder:"Release description...",class:"w-full px-3 py-2 text-sm bg-retro-panel border border-retro-border rounded text-retro-text placeholder-retro-muted focus:outline-none focus:border-retro-cyan resize-none"},null,512),[[Xt,m(i)]])])):U("",!0),d("div",Hk,[d("label",Kk,[He(d("input",{"onUpdate:modelValue":p[3]||(p[3]=f=>tt(o)?o.value=f:null),type:"checkbox",class:"mt-0.5 accent-retro-cyan",disabled:r.remotes.length===0},null,8,Jk),[[lr,m(o)]]),d("div",null,[d("span",{class:Re(["text-sm font-mono transition-colors",r.remotes.length===0?"text-retro-muted":"text-retro-text group-hover:text-retro-cyan"])}," Push to remote ",2)])]),m(o)&&r.remotes.length>0?(v(),x("div",ew,[He(d("select",{"onUpdate:modelValue":p[4]||(p[4]=f=>tt(a)?a.value=f:null),class:"w-full px-3 py-2 text-sm bg-retro-panel border border-retro-border rounded text-retro-text focus:outline-none focus:border-retro-cyan"},[p[9]||(p[9]=d("option",{value:"",disabled:"",class:"text-retro-muted"},"Select remote",-1)),(v(!0),x(we,null,Fe(r.remotes,f=>(v(),x("option",{key:f,value:f},B(f),9,tw))),128))],512),[[ms,m(a)]])])):U("",!0)])]),_:1},8,["visible","loading","error"]))}}),nw={class:"text-retro-text text-sm font-mono mb-2"},sw={class:"text-retro-cyan"},iw={class:"space-y-3 mt-4"},ow={class:"flex items-center gap-2 cursor-pointer"},aw={key:0,class:"ml-6"},lw=["value"],cw=Ie({__name:"TagDeleteDialog",props:{visible:{type:Boolean},tagName:{},remotes:{},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=r,n=e,s=_(!1),i=_("origin");function o(){n("confirm",{deleteFromRemote:s.value,remote:s.value?i.value:void 0})}return ze(()=>t.visible,a=>{a&&(s.value=!1,i.value=t.remotes.includes("origin")?"origin":t.remotes[0]??"origin")}),(a,l)=>(v(),Oe(Wt,{title:"Delete Tag",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Delete","confirm-danger":!0,onClose:l[2]||(l[2]=c=>n("close")),onConfirm:o},{default:ct(()=>[l[7]||(l[7]=d("div",{class:"mb-4 p-2 text-xs font-mono text-retro-yellow bg-retro-yellow/10 border border-retro-yellow/30 rounded"}," This action is permanent and cannot be undone. ",-1)),d("p",nw,[l[3]||(l[3]=Xe(" Delete tag ",-1)),d("span",sw,B(r.tagName),1),l[4]||(l[4]=Xe("? ",-1))]),d("div",iw,[d("label",ow,[He(d("input",{"onUpdate:modelValue":l[0]||(l[0]=c=>tt(s)?s.value=c:null),type:"checkbox",class:"accent-retro-cyan"},null,512),[[lr,m(s)]]),l[5]||(l[5]=d("span",{class:"text-retro-muted text-sm"},"Also delete from remote",-1))]),m(s)?(v(),x("div",aw,[l[6]||(l[6]=d("label",{class:"block text-retro-muted text-xs font-mono mb-1"},"Remote",-1)),He(d("select",{"onUpdate:modelValue":l[1]||(l[1]=c=>tt(i)?i.value=c:null),class:"w-full px-2 py-1.5 text-sm font-mono bg-retro-panel border border-retro-border rounded text-retro-text focus:outline-none focus:border-retro-cyan"},[(v(!0),x(we,null,Fe(r.remotes,c=>(v(),x("option",{key:c,value:c},B(c),9,lw))),128))],512),[[ms,m(i)]])])):U("",!0)])]),_:1},8,["visible","loading","error"]))}}),uw={class:"mb-4"},hw={class:"text-retro-cyan text-sm font-mono"},dw={class:"mb-4"},fw={class:"text-retro-text text-sm font-mono"},pw={class:"mb-4"},mw={class:"text-retro-text text-sm font-mono break-all select-all"},gw={class:"mb-4"},Ow={class:"text-retro-text text-sm font-mono"},vw={class:"text-retro-muted"},bw={class:"mb-4"},xw={class:"text-retro-text text-sm font-mono"},yw={key:1,class:"mb-2"},kw={class:"p-2 text-sm font-mono text-retro-text bg-retro-panel border border-retro-border rounded whitespace-pre-wrap"},ww={key:1,class:"text-retro-muted text-sm font-mono text-center py-4"},Sw=Ie({__name:"TagDetailDialog",props:{visible:{type:Boolean},tagName:{},tagDetail:{},loading:{type:Boolean,default:!1}},emits:["close"],setup(r,{emit:e}){const t=e;return(n,s)=>(v(),Oe(Wt,{title:"Tag Details",visible:r.visible,loading:r.loading,"confirm-label":"Close","cancel-label":"Close",onClose:s[0]||(s[0]=i=>t("close")),onConfirm:s[1]||(s[1]=i=>t("close"))},{default:ct(()=>[d("div",uw,[s[2]||(s[2]=d("label",{class:"block text-retro-muted text-xs font-mono mb-1"},"Tag",-1)),d("p",hw,B(r.tagName),1)]),r.tagDetail?(v(),x(we,{key:0},[d("div",dw,[s[3]||(s[3]=d("label",{class:"block text-retro-muted text-xs font-mono mb-1"},"Type",-1)),d("p",fw,B(r.tagDetail.isAnnotated?"Annotated":"Lightweight"),1)]),d("div",pw,[s[4]||(s[4]=d("label",{class:"block text-retro-muted text-xs font-mono mb-1"},"Hash",-1)),d("p",mw,B(r.tagDetail.hash),1)]),r.tagDetail.tagger?(v(),x(we,{key:0},[d("div",gw,[s[5]||(s[5]=d("label",{class:"block text-retro-muted text-xs font-mono mb-1"},"Tagger",-1)),d("p",Ow,[Xe(B(r.tagDetail.tagger.name)+" ",1),d("span",vw,"<"+B(r.tagDetail.tagger.email)+">",1)])]),d("div",bw,[s[6]||(s[6]=d("label",{class:"block text-retro-muted text-xs font-mono mb-1"},"Date",-1)),d("p",xw,B(r.tagDetail.tagger.date),1)])],64)):U("",!0),r.tagDetail.message?(v(),x("div",yw,[s[7]||(s[7]=d("label",{class:"block text-retro-muted text-xs font-mono mb-1"},"Message",-1)),d("div",kw,B(r.tagDetail.message),1)])):U("",!0)],64)):r.loading?(v(),x("div",ww," Loading tag details... ")):U("",!0)]),_:1},8,["visible","loading"]))}}),Mu=globalThis.setInterval,$w={class:"h-full flex flex-col bg-retro-dark",role:"region","aria-label":"Git Graph"},Cw={key:0,class:"flex-1 flex flex-col items-center justify-center gap-3"},Qw={key:1,class:"flex-1 flex flex-col items-center justify-center p-8 text-center"},Pw={key:2,class:"flex-1 flex flex-col items-center justify-center p-8 text-center"},Tw={class:"text-retro-red text-sm mb-4"},Mw={key:3,class:"flex-1 flex items-center justify-center p-4"},Aw={class:"flex-shrink-0 flex items-center gap-2 p-2 border-b border-retro-border"},_w={class:"relative"},Rw={key:0,class:"absolute left-0 top-full mt-1 z-10 bg-retro-panel border border-retro-border rounded shadow-lg py-2 min-w-[200px]"},Bw={class:"flex items-center gap-2 px-3 py-1 hover:bg-retro-panel/50 cursor-pointer"},Zw=["checked"],Ew={class:"flex items-center gap-2 px-3 py-1 hover:bg-retro-panel/50 cursor-pointer"},Dw=["checked"],Lw={class:"flex items-center gap-2 px-3 py-1 hover:bg-retro-panel/50 cursor-pointer"},Xw=["checked"],Iw={class:"flex items-center gap-2 px-3 py-1 hover:bg-retro-panel/50 cursor-pointer"},Vw=["checked"],zw={class:"flex items-center gap-2 px-3 py-1 hover:bg-retro-panel/50 cursor-pointer"},Nw=["checked"],Ww={class:"flex items-center gap-2 px-3 py-1 hover:bg-retro-panel/50 cursor-pointer"},jw=["checked"],qw={class:"relative"},Yw=["aria-expanded"],Fw={key:0,class:"text-xs"},Uw={key:0,class:"absolute right-0 top-full mt-1 z-10 bg-retro-panel border border-retro-border rounded shadow-lg py-1 min-w-[220px] max-h-[400px] overflow-auto"},Gw=["checked","onChange"],Hw={class:"text-sm text-retro-text truncate"},Kw={key:0,class:"text-[10px] text-retro-cyan"},Jw={class:"px-3 py-1 text-[10px] text-retro-orange font-semibold uppercase tracking-wider mt-1"},eS=["checked","onChange"],tS={class:"text-sm text-retro-text truncate"},rS={class:"relative"},nS={key:0,class:"absolute right-0 top-full mt-1 z-20"},sS=["title"],iS={class:"text-retro-muted text-sm"},oS={class:"text-retro-cyan font-mono"},aS={class:"space-y-3"},lS={class:"text-retro-muted text-sm"},cS={class:"text-retro-cyan font-mono"},uS={class:"space-y-3"},hS={class:"text-retro-muted text-sm"},dS={class:"text-retro-magenta font-mono"},fS={key:0,class:"fixed bottom-4 right-4 z-50 flex items-center gap-2 px-4 py-2.5 text-sm bg-retro-red/90 text-white rounded-lg shadow-lg max-w-sm",role:"alert"},pS={class:"flex-1"},mS=5e3,gS=Ie({__name:"GitGraph",props:{workingDirectory:{},isActive:{type:Boolean,default:!0}},setup(r){const e=r,t=ll(),n=kr(),s=Ay(),i=Ry(t),o=By(t,i),{checkoutDialog:a,confirmCheckout:l,createBranchDialog:c,confirmCreateBranch:u,deleteBranchDialog:h,confirmDeleteBranch:p,renameDialog:f,confirmRenameBranch:g,mergeDialog:O,confirmMerge:y,rebaseDialog:b,confirmRebase:C,pushDialog:P,confirmPush:A,pullDialog:E,confirmPull:F,cherryPickDialog:I,confirmCherryPick:oe,resetDialog:ie,confirmReset:ne,tagCreateDialog:L,confirmTagCreate:D,tagDeleteDialog:Z,confirmTagDelete:z,tagDetailDialog:q,stashDialog:V,confirmStash:X,stashBranchDialog:N,stashBranchInput:me,confirmStashBranch:K,resetWorkingDialog:he,confirmResetWorking:$,cleanUntrackedDialog:w,confirmCleanUntracked:M,isAnyDialogOpen:R}=i,{copyFeedback:G,branchMenu:ae,handleBranchContextMenu:xe,closeBranchMenu:De,handleBranchCheckout:Ae,handleBranchRename:Ue,handleBranchDelete:Ye,handleBranchMerge:pe,handleBranchRebase:Ce,handleBranchPush:ce,handleBranchPull:ue,handleBranchFetch:Y,handleBranchCopyName:Me,handleBranchCreateBranch:Le,commitMenu:Ve,handleCommitContextMenu:Mt,closeCommitMenu:Zt,handleCommitAddTag:bn,handleCommitCreateBranch:Kt,handleCommitCheckout:Er,handleCommitCherryPick:$r,handleCommitRevert:zn,handleCommitMergeInto:Cr,handleCommitReset:xn,handleCommitCopyHash:Nn,handleCommitCopySubject:yn,tagMenu:xt,handleTagContextMenu:Qr,closeTagMenu:H,handleTagViewDetails:fe,handleTagDelete:se,handleTagPush:ve,handleTagCopyName:_e,uncommittedMenu:We,closeUncommittedMenu:Ge,handleUncommittedStash:it,handleUncommittedReset:ri,handleUncommittedClean:ni,stashMenu:Dr,handleStashContextMenu:si,closeStashMenu:ii,handleStashApply:oi,handleStashPop:ai,handleStashDrop:li,handleStashCreateBranch:ci,handleStashCopyName:ui,handleStashCopyHash:hi}=o,di=J(()=>{const S=n.activeConversation?.worktreeBranch;return S?[S]:[]}),fi=J(()=>{const S=[],k=t.selectedFeatureId;k&&S.push(k);const T=t.conversationBranch;return T&&!S.includes(T)&&S.push(T),S});ze(()=>[n.activeConversation?.worktreeBranch,n.activeConversation?.baseBranch],([S,k])=>{t.setConversationBranch(S??null,k??null)},{immediate:!0});const pi=J(()=>{const S=t.previewBranch;return S?[S]:[]});ze(()=>[n.previewingConversation?.worktreeBranch,n.previewingConversation?.baseBranch],([S,k])=>{t.setPreviewBranch(S??null,k??null)},{immediate:!0});const Et=J(()=>{const S={};return t.previewBranch&&t.previewMergeBase&&(S[t.previewBranch]=t.previewMergeBase),S}),Jt=J(()=>{const S={};return t.selectedFeatureId&&t.featureMergeBase&&(S[t.selectedFeatureId]=t.featureMergeBase),t.conversationBranch&&t.conversationMergeBase&&(S[t.conversationBranch]=t.conversationMergeBase),S}),rn=J(()=>t.remotes.map(S=>S.name)),nn=_(null);ze(()=>e.workingDirectory,async S=>{if(S){await t.loadGitGraph(S);const k=n.previewingConversation?.worktreeBranch;k&&await t.setPreviewBranch(k,n.previewingConversation?.baseBranch??null);const T=n.activeConversation?.worktreeBranch;T&&await t.setConversationBranch(T,n.activeConversation?.baseBranch??null)}},{immediate:!0}),ze(()=>e.isActive,S=>{S&&t.commits.length>0&&!t.error?s.startPolling(e.workingDirectory):s.stopPolling()},{immediate:!0}),ze(()=>t.commits.length,S=>{S>0&&e.isActive&&!t.error&&s.startPolling(e.workingDirectory)}),ze(()=>nn.value,S=>{S&&s.setScrollCallbacks({getScrollPosition:()=>S.getScrollPosition(),setScrollPosition:k=>S.setScrollPosition(k)})}),St(()=>{s.cleanup(),t.reset()});const Wn=J(()=>t.error?.includes("Not a Git repository")),kn=_(Date.now());let Lr=null;const mi=()=>{Lr||(Lr=Mu(()=>{kn.value=Date.now()},mS))},gs=()=>{Lr&&(clearInterval(Lr),Lr=null)};mt(()=>{ze(()=>e.isActive,S=>{S?(kn.value=Date.now(),mi()):gs()},{immediate:!0})}),St(()=>{gs()});const Os=J(()=>{const S=t.lastRefreshTime;if(!S)return null;const k=Math.floor((kn.value-S)/1e3);return t.isRefreshing?"Syncing...":k<5?"Just now":k<60?`${k}s ago`:`${Math.floor(k/60)}m ago`}),ur=_(!1),hr=_(!1),vs=_(null);function gi(){ur.value=!0,br(()=>vs.value?.focus())}function wn(){ur.value=!1,t.setSearchQuery("")}function Oi(S){t.setSearchQuery(S)}const jn=_y({onScrollToHead:()=>{const S=t.commits.find(k=>k.isHead);S&&t.selectCommit(S)},onEscape:()=>{dr.value?dr.value=!1:hr.value?hr.value=!1:Pr.value?Pr.value=!1:ur.value?wn():t.isComparing?t.clearComparison():(t.selectedCommit||t.isUncommittedChangesSelected)&&t.clearSelection()}});mt(()=>{jn.start()}),St(()=>{jn.stop()});const dr=_(!1),Pr=_(!1);async function vi(){await t.fetchAll(!0)}async function bi(S){await t.addRemote(S.name,S.url)}async function xi(S){await t.editRemote(S.name,S.newUrl)}async function qn(S){await t.deleteRemote(S)}const Yn=J(()=>{const S=[],k={};for(const T of t.branches)if(t.localBranchNames.has(T.name))S.push(T);else{const W=T.name.indexOf("/");if(W>0){const le=T.name.substring(0,W);k[le]||(k[le]=[]),k[le].push(T)}else S.push(T)}return{local:S,remotes:k}});ze(R,S=>{S?t.setActiveDialog({type:"generic",props:{}}):t.clearActiveDialog()});function yi(S){t.selectedCommit?t.selectComparisonCommit(S):t.selectCommit(S)}function Fn(S){t.navigateToCommit(S)}return(S,k)=>{const T=pv,W=Tv,le=tb,be=yb,de=Lx,Se=ay,qe=gy,ot=Oy,yt=vy,Mo=by,sn=xy,ki=Wt;return v(),x("div",$w,[m(t).loading&&m(t).commits.length===0?(v(),x("div",Cw,[...k[43]||(k[43]=[d("div",{class:"w-6 h-6 border-2 border-retro-muted border-t-retro-cyan rounded-full animate-spin"},null,-1),d("div",{class:"text-retro-muted text-sm"},"Loading git history...",-1)])])):m(Wn)?(v(),x("div",Qw,[ee(m(_n),{class:"w-12 h-12 text-retro-yellow mb-4"}),k[44]||(k[44]=d("h3",{class:"text-retro-text font-semibold mb-2"},"Not a Git Repository",-1)),k[45]||(k[45]=d("p",{class:"text-retro-muted text-sm max-w-xs"},[Xe(" This directory is not initialized as a Git repository. Run "),d("code",{class:"text-retro-cyan"},"git init"),Xe(" to get started. ")],-1))])):m(t).error?(v(),x("div",Pw,[ee(m(_n),{class:"w-10 h-10 text-retro-red mb-3"}),d("p",Tw,B(m(t).error),1),d("button",{class:"flex items-center gap-2 px-3 py-1.5 text-sm text-retro-text border border-retro-border rounded hover:border-retro-cyan hover:text-retro-cyan transition-colors",onClick:k[0]||(k[0]=Ze=>m(t).loadGitGraph(e.workingDirectory))},[ee(m(us),{class:"w-4 h-4"}),k[46]||(k[46]=Xe(" Retry ",-1))])])):m(t).commits.length===0?(v(),x("div",Mw,[...k[47]||(k[47]=[d("div",{class:"text-retro-muted text-center"},[d("p",null,"No commits found in this repository.")],-1)])])):(v(),x(we,{key:4},[m(ur)?(v(),Oe(T,{key:0,ref_key:"findWidgetRef",ref:vs,resultCount:m(t).searchResultHashes.length,currentIndex:m(t).searchResultIndex,onSearch:Oi,onNext:m(t).nextSearchResult,onPrev:m(t).prevSearchResult,onClose:wn},null,8,["resultCount","currentIndex","onNext","onPrev"])):U("",!0),d("div",Aw,[d("button",{class:Re(["flex items-center gap-1 px-2 py-1.5 text-sm border rounded transition-colors",m(ur)?"border-retro-cyan text-retro-cyan bg-retro-cyan/10":"border-retro-border text-retro-muted hover:text-retro-text hover:border-retro-text"]),"aria-label":"Find",title:"Find",onClick:k[1]||(k[1]=Ze=>m(ur)?wn():gi())},[ee(m(ls),{class:"w-4 h-4"})],2),d("div",_w,[d("button",{class:Re(["flex items-center gap-1 px-2 py-1.5 text-sm border rounded transition-colors",m(dr)?"border-retro-cyan text-retro-cyan bg-retro-cyan/10":"border-retro-border text-retro-muted hover:text-retro-text hover:border-retro-text"]),"aria-label":"Graph settings",title:"Settings",onClick:k[2]||(k[2]=Ze=>dr.value=!m(dr))},[ee(m(D1),{class:"w-4 h-4"})],2),m(dr)?(v(),x("div",Rw,[k[54]||(k[54]=d("div",{class:"px-3 py-1 text-xs text-retro-muted border-b border-retro-border mb-1"}," Graph Style ",-1)),d("label",Bw,[d("input",{type:"radio",name:"graphStyle",value:"rounded",checked:m(t).graphStyle==="rounded",class:"accent-retro-cyan",onChange:k[3]||(k[3]=Ze=>m(t).setGraphStyle("rounded"))},null,40,Zw),k[48]||(k[48]=d("span",{class:"text-sm text-retro-text"},"Rounded",-1))]),d("label",Ew,[d("input",{type:"radio",name:"graphStyle",value:"angular",checked:m(t).graphStyle==="angular",class:"accent-retro-cyan",onChange:k[4]||(k[4]=Ze=>m(t).setGraphStyle("angular"))},null,40,Dw),k[49]||(k[49]=d("span",{class:"text-sm text-retro-text"},"Angular",-1))]),k[55]||(k[55]=d("div",{class:"px-3 py-1 text-xs text-retro-muted border-b border-retro-border mt-2 mb-1"}," Display ",-1)),d("label",Lw,[d("input",{type:"checkbox",checked:m(t).muteNonAncestral,class:"accent-retro-cyan",onChange:k[5]||(k[5]=Ze=>m(t).toggleMuteNonAncestral())},null,40,Xw),k[50]||(k[50]=d("span",{class:"text-sm text-retro-text"},"Mute non-ancestral",-1))]),k[56]||(k[56]=d("div",{class:"px-3 py-1 text-xs text-retro-muted border-b border-retro-border mt-2 mb-1"}," Columns ",-1)),d("label",Iw,[d("input",{type:"checkbox",checked:m(t).columnVisibility.commit!==!1,class:"accent-retro-cyan",onChange:k[6]||(k[6]=Ze=>m(t).toggleColumnVisibility("commit"))},null,40,Vw),k[51]||(k[51]=d("span",{class:"text-sm text-retro-text"},"Hash",-1))]),d("label",zw,[d("input",{type:"checkbox",checked:m(t).columnVisibility.author!==!1,class:"accent-retro-cyan",onChange:k[7]||(k[7]=Ze=>m(t).toggleColumnVisibility("author"))},null,40,Nw),k[52]||(k[52]=d("span",{class:"text-sm text-retro-text"},"Author",-1))]),d("label",Ww,[d("input",{type:"checkbox",checked:m(t).columnVisibility.date!==!1,class:"accent-retro-cyan",onChange:k[8]||(k[8]=Ze=>m(t).toggleColumnVisibility("date"))},null,40,jw),k[53]||(k[53]=d("span",{class:"text-sm text-retro-text"},"Date",-1))])])):U("",!0)]),k[59]||(k[59]=d("span",{class:"flex-1"},null,-1)),d("div",qw,[d("button",{class:Re(["flex items-center gap-1 px-2 py-1.5 text-sm border rounded transition-colors",m(hr)||m(t).filteredBranches.length>0?"border-retro-cyan text-retro-cyan bg-retro-cyan/10":"border-retro-border text-retro-muted hover:text-retro-text hover:border-retro-text"]),"aria-label":"Filter by branch","aria-expanded":m(hr),onClick:k[9]||(k[9]=Ze=>hr.value=!m(hr))},[ee(m(tv),{class:"w-4 h-4"}),m(t).filteredBranches.length>0?(v(),x("span",Fw," ("+B(m(t).filteredBranches.length)+") ",1)):U("",!0)],10,Yw),m(hr)?(v(),x("div",Uw,[k[58]||(k[58]=d("div",{class:"px-3 py-1 text-xs text-retro-muted border-b border-retro-border"}," Filter by Branch ",-1)),m(t).filteredBranches.length>0?(v(),x("button",{key:0,class:"w-full text-left px-3 py-1.5 text-sm text-retro-cyan hover:bg-retro-cyan/10",onClick:k[10]||(k[10]=Ze=>m(t).clearFilters())}," Clear All Filters ")):U("",!0),m(Yn).local.length>0?(v(),x(we,{key:1},[k[57]||(k[57]=d("div",{class:"px-3 py-1 text-[10px] text-retro-green font-semibold uppercase tracking-wider mt-1"}," Local ",-1)),(v(!0),x(we,null,Fe(m(Yn).local,Ze=>(v(),x("label",{key:Ze.name,class:"flex items-center gap-2 px-3 py-1 hover:bg-retro-panel/50 cursor-pointer"},[d("input",{type:"checkbox",checked:m(t).filteredBranches.includes(Ze.name),class:"accent-retro-cyan",onChange:Un=>m(t).toggleBranchFilter(Ze.name)},null,40,Gw),d("span",Hw,B(Ze.name),1),Ze.isHead?(v(),x("span",Kw,"(HEAD)")):U("",!0)]))),128))],64)):U("",!0),(v(!0),x(we,null,Fe(m(Yn).remotes,(Ze,Un)=>(v(),x(we,{key:Un},[d("div",Jw,B(Un),1),(v(!0),x(we,null,Fe(Ze,bs=>(v(),x("label",{key:bs.name,class:"flex items-center gap-2 px-3 py-1 hover:bg-retro-panel/50 cursor-pointer"},[d("input",{type:"checkbox",checked:m(t).filteredBranches.includes(bs.name),class:"accent-retro-cyan",onChange:Ah=>m(t).toggleBranchFilter(bs.name)},null,40,eS),d("span",tS,B(bs.name),1)]))),128))],64))),128))])):U("",!0)]),d("button",{class:Re(["flex items-center gap-1 px-2 py-1.5 text-sm border border-retro-border text-retro-muted rounded hover:text-retro-text hover:border-retro-text transition-colors",{"animate-spin":m(t).isRefreshing}]),"aria-label":"Refresh",title:"Refresh",onClick:k[11]||(k[11]=Ze=>m(t).loadGitGraph(e.workingDirectory))},[ee(m(us),{class:"w-4 h-4"})],2),d("button",{class:"flex items-center gap-1 px-2 py-1.5 text-sm border border-retro-border text-retro-muted rounded hover:text-retro-text hover:border-retro-text transition-colors","aria-label":"Fetch all remotes",title:"Fetch All",onClick:vi},[ee(m(qp),{class:"w-4 h-4"})]),d("div",rS,[d("button",{class:Re(["flex items-center gap-1 px-2 py-1.5 text-sm border rounded transition-colors",m(Pr)?"border-retro-cyan text-retro-cyan bg-retro-cyan/10":"border-retro-border text-retro-muted hover:text-retro-text hover:border-retro-text"]),"aria-label":"Manage remotes",title:"Remotes",onClick:k[12]||(k[12]=Ze=>Pr.value=!m(Pr))},[ee(m(Yp),{class:"w-4 h-4"})],2),m(Pr)?(v(),x("div",nS,[ee(W,{remotes:m(t).remotes,onAdd:bi,onEdit:xi,onDelete:qn,onClose:k[13]||(k[13]=Ze=>Pr.value=!1)},null,8,["remotes"])])):U("",!0)]),m(Os)&&e.isActive?(v(),x("div",{key:0,class:Re(["flex items-center text-[10px] text-retro-muted",{"text-retro-cyan":m(t).isRefreshing}]),title:m(t).lastRefreshTime?`Last checked: ${new Date(m(t).lastRefreshTime).toLocaleTimeString()}`:"","aria-live":"polite","aria-atomic":"true"},[d("span",{class:Re(["inline-block w-1.5 h-1.5 rounded-full mr-1",m(t).isRefreshing?"bg-retro-cyan animate-pulse":"bg-retro-muted/50"]),"aria-hidden":"true"},null,2),Xe(" "+B(m(Os)),1)],10,sS)):U("",!0)]),d("div",{class:Re(["flex-1 min-h-0 overflow-hidden",{"max-h-[50%]":m(t).selectedCommit||m(t).isUncommittedChangesSelected}])},[ee(le,{ref_key:"commitListRef",ref:nn,commits:m(t).filteredCommits,stashes:m(t).stashes,selectedCommit:m(t).selectedCommit,hasMore:m(t).hasMore,loading:m(t).loading,loadingMore:m(t).loadingMore,searchQuery:m(t).searchQuery,uncommittedChangesCount:m(t).uncommittedChangesCount,isUncommittedChangesSelected:m(t).isUncommittedChangesSelected,highlightBranches:m(di),featureHighlightBranches:m(fi),featureMergeBases:m(Jt),previewHighlightBranches:m(pi),previewMergeBases:m(Et),currentBranchName:m(t).currentBranch?.name,localBranchNames:m(t).localBranchNames,graphStyle:m(t).graphStyle,muteNonAncestral:m(t).muteNonAncestral,columnVisibility:m(t).columnVisibility,onSelect:m(t).selectCommit,onLoadMore:m(t).loadMoreCommits,onBranchContextMenu:m(xe),onCommitContextMenu:m(Mt),onTagContextMenu:m(Qr),onStashContextMenu:m(si),onCompareSelect:yi,onSelectUncommittedChanges:m(t).selectUncommittedChanges,onScrollStart:m(s).startInteraction,onScrollEnd:m(s).endInteraction},null,8,["commits","stashes","selectedCommit","hasMore","loading","loadingMore","searchQuery","uncommittedChangesCount","isUncommittedChangesSelected","highlightBranches","featureHighlightBranches","featureMergeBases","previewHighlightBranches","previewMergeBases","currentBranchName","localBranchNames","graphStyle","muteNonAncestral","columnVisibility","onSelect","onLoadMore","onBranchContextMenu","onCommitContextMenu","onTagContextMenu","onStashContextMenu","onSelectUncommittedChanges","onScrollStart","onScrollEnd"])],2),m(t).isComparing&&m(t).selectedCommit&&m(t).comparisonCommit?(v(),Oe(be,{key:1,fromCommit:m(t).comparisonCommit,toCommit:m(t).selectedCommit,files:m(t).comparisonFiles,stats:m(t).comparisonStats,loading:m(t).comparisonLoading,onClose:m(t).clearComparison},null,8,["fromCommit","toCommit","files","stats","loading","onClose"])):m(t).selectedCommit?(v(),Oe(de,{key:2,commit:m(t).selectedCommit,files:m(t).selectedCommitFiles,stats:m(t).selectedCommitStats,loading:m(t).isLoadingDetails,detailPosition:m(t).detailViewPosition,onClose:m(t).clearSelection,onNavigateToCommit:Fn,onTogglePosition:m(t).toggleDetailViewPosition,onOpenFileDiff:k[14]||(k[14]=Ze=>m(t).selectedCommit&&m(t).openFileDiff(m(t).selectedCommit.hash,Ze))},null,8,["commit","files","stats","loading","detailPosition","onClose","onTogglePosition"])):U("",!0),m(t).isUncommittedChangesSelected?(v(),Oe(Se,{key:3,stagedFiles:m(t).stagedFiles,unstagedFiles:m(t).unstagedFiles,isStaging:m(t).isStaging,isCommitting:m(t).isCommitting,onClose:m(t).clearSelection,onStageFiles:k[15]||(k[15]=Ze=>m(t).stageFiles(Ze)),onUnstageFiles:k[16]||(k[16]=Ze=>m(t).unstageFiles(Ze)),onStageAll:k[17]||(k[17]=()=>m(t).stageFiles([])),onUnstageAll:k[18]||(k[18]=()=>m(t).unstageFiles([])),onCommit:k[19]||(k[19]=Ze=>m(t).commitChanges(Ze))},null,8,["stagedFiles","unstagedFiles","isStaging","isCommitting","onClose"])):U("",!0)],64)),m(ae).visible?(v(),Oe(qe,{key:5,branchName:m(ae).branch,isCurrentBranch:m(ae).isCurrentBranch,isLocal:m(ae).isLocal,x:m(ae).x,y:m(ae).y,onClose:m(De),onCheckout:m(Ae),onCreateBranch:m(Le),onDeleteBranch:m(Ye),onRename:m(Ue),onMerge:m(pe),onRebase:m(Ce),onPush:m(ce),onPull:m(ue),onFetch:m(Y),onCopyName:m(Me)},null,8,["branchName","isCurrentBranch","isLocal","x","y","onClose","onCheckout","onCreateBranch","onDeleteBranch","onRename","onMerge","onRebase","onPush","onPull","onFetch","onCopyName"])):U("",!0),m(Ve).visible&&m(Ve).commit?(v(),Oe(ot,{key:6,commit:m(Ve).commit,x:m(Ve).x,y:m(Ve).y,onClose:m(Zt),onAddTag:m(bn),onCreateBranch:m(Kt),onCheckout:m(Er),onCherryPick:m($r),onRevert:m(zn),onMergeInto:m(Cr),onReset:m(xn),onCopyHash:m(Nn),onCopySubject:m(yn)},null,8,["commit","x","y","onClose","onAddTag","onCreateBranch","onCheckout","onCherryPick","onRevert","onMergeInto","onReset","onCopyHash","onCopySubject"])):U("",!0),m(xt).visible?(v(),Oe(yt,{key:7,tagName:m(xt).tag,x:m(xt).x,y:m(xt).y,onClose:m(H),onViewDetails:m(fe),onDeleteTag:m(se),onPushTag:m(ve),onCopyName:m(_e)},null,8,["tagName","x","y","onClose","onViewDetails","onDeleteTag","onPushTag","onCopyName"])):U("",!0),m(Dr).visible&&m(Dr).stash?(v(),Oe(Mo,{key:8,stashIndex:m(Dr).stash.index,stashMessage:m(Dr).stash.message,x:m(Dr).x,y:m(Dr).y,onClose:m(ii),onApply:m(oi),onPop:m(ai),onDrop:m(li),onCreateBranch:m(ci),onCopyName:m(ui),onCopyHash:m(hi)},null,8,["stashIndex","stashMessage","x","y","onClose","onApply","onPop","onDrop","onCreateBranch","onCopyName","onCopyHash"])):U("",!0),m(We).visible?(v(),Oe(sn,{key:9,x:m(We).x,y:m(We).y,onClose:m(Ge),onStash:m(it),onReset:m(ri),onClean:m(ni)},null,8,["x","y","onClose","onStash","onReset","onClean"])):U("",!0),m(a).visible?(v(),Oe(ki,{key:10,title:"Checkout",visible:m(a).visible,loading:m(a).loading,error:m(a).error,confirmLabel:"Checkout",onClose:k[20]||(k[20]=Ze=>m(a).visible=!1),onConfirm:m(l)},{default:ct(()=>[d("p",iS,[k[60]||(k[60]=Xe(" Are you sure you want to checkout ",-1)),d("span",oS,B(m(a).branchName),1),k[61]||(k[61]=Xe("? ",-1))])]),_:1},8,["visible","loading","error","onConfirm"])):U("",!0),m(f).visible?(v(),Oe(ki,{key:11,title:"Rename Branch",visible:m(f).visible,loading:m(f).loading,error:m(f).error,confirmLabel:"Rename",onClose:k[23]||(k[23]=Ze=>m(f).visible=!1),onConfirm:m(g)},{default:ct(()=>[d("div",aS,[d("p",lS,[k[62]||(k[62]=Xe(" Rename ",-1)),d("span",cS,B(m(f).branchName),1)]),He(d("input",{"onUpdate:modelValue":k[21]||(k[21]=Ze=>m(f).newName=Ze),type:"text",class:"w-full px-3 py-2 text-sm bg-retro-panel border border-retro-border rounded text-retro-text placeholder-retro-muted focus:outline-none focus:border-retro-cyan",placeholder:"New branch name",onKeyup:k[22]||(k[22]=os((...Ze)=>m(g)&&m(g)(...Ze),["enter"]))},null,544),[[Xt,m(f).newName]])])]),_:1},8,["visible","loading","error","onConfirm"])):U("",!0),m(O).visible?(v(),Oe(ik,{key:12,visible:m(O).visible,branchName:m(O).branchName,loading:m(O).loading,error:m(O).error,onClose:k[24]||(k[24]=Ze=>m(O).visible=!1),onConfirm:m(y)},null,8,["visible","branchName","loading","error","onConfirm"])):U("",!0),m(h).visible?(v(),Oe(Ky,{key:13,visible:m(h).visible,branchName:m(h).branchName,isLocal:m(h).isLocal,loading:m(h).loading,error:m(h).error,onClose:k[25]||(k[25]=Ze=>m(h).visible=!1),onConfirm:m(p)},null,8,["visible","branchName","isLocal","loading","error","onConfirm"])):U("",!0),m(P).visible?(v(),Oe(kk,{key:14,visible:m(P).visible,branchName:m(P).branchName,remotes:m(rn),loading:m(P).loading,error:m(P).error,onClose:k[26]||(k[26]=Ze=>m(P).visible=!1),onConfirm:m(A)},null,8,["visible","branchName","remotes","loading","error","onConfirm"])):U("",!0),m(E).visible?(v(),Oe(dk,{key:15,visible:m(E).visible,branchName:m(E).branchName,remotes:m(rn),loading:m(E).loading,error:m(E).error,onClose:k[27]||(k[27]=Ze=>m(E).visible=!1),onConfirm:m(F)},null,8,["visible","branchName","remotes","loading","error","onConfirm"])):U("",!0),m(b).visible?(v(),Oe(Tk,{key:16,visible:m(b).visible,branchName:m(t).currentBranch?.name||"HEAD",ontoBranch:m(b).branchName,loading:m(b).loading,error:m(b).error,onClose:k[28]||(k[28]=Ze=>m(b).visible=!1),onConfirm:m(C)},null,8,["visible","branchName","ontoBranch","loading","error","onConfirm"])):U("",!0),m(I).visible?(v(),Oe(Vy,{key:17,visible:m(I).visible,commitHash:m(I).commitHash,commitMessage:m(I).commitMessage,loading:m(I).loading,error:m(I).error,onClose:k[29]||(k[29]=Ze=>m(I).visible=!1),onConfirm:m(oe)},null,8,["visible","commitHash","commitMessage","loading","error","onConfirm"])):U("",!0),m(ie).visible?(v(),Oe(Ek,{key:18,visible:m(ie).visible,commitHash:m(ie).commitHash,commitMessage:m(ie).commitMessage,loading:m(ie).loading,error:m(ie).error,onClose:k[30]||(k[30]=Ze=>m(ie).visible=!1),onConfirm:m(ne)},null,8,["visible","commitHash","commitMessage","loading","error","onConfirm"])):U("",!0),m(L).visible?(v(),Oe(rw,{key:19,visible:m(L).visible,commitHash:m(L).commitHash,remotes:m(rn),loading:m(L).loading,error:m(L).error,onClose:k[31]||(k[31]=Ze=>m(L).visible=!1),onConfirm:m(D)},null,8,["visible","commitHash","remotes","loading","error","onConfirm"])):U("",!0),m(Z).visible?(v(),Oe(cw,{key:20,visible:m(Z).visible,tagName:m(Z).tagName,remotes:m(rn),loading:m(Z).loading,error:m(Z).error,onClose:k[32]||(k[32]=Ze=>m(Z).visible=!1),onConfirm:m(z)},null,8,["visible","tagName","remotes","loading","error","onConfirm"])):U("",!0),m(q).visible?(v(),Oe(Sw,{key:21,visible:m(q).visible,tagName:m(q).tagName,tagDetail:m(q).tagDetail,loading:m(q).loading,onClose:k[33]||(k[33]=Ze=>m(q).visible=!1)},null,8,["visible","tagName","tagDetail","loading"])):U("",!0),m(c).visible?(v(),Oe(qy,{key:22,visible:m(c).visible,fromCommit:m(c).fromCommit,loading:m(c).loading,error:m(c).error,onClose:k[34]||(k[34]=Ze=>m(c).visible=!1),onConfirm:m(u)},null,8,["visible","fromCommit","loading","error","onConfirm"])):U("",!0),m(N).visible?(v(),Oe(ki,{key:23,title:"Create Branch from Stash",visible:m(N).visible,loading:m(N).loading,error:m(N).error,confirmLabel:"Create Branch",onClose:k[37]||(k[37]=Ze=>m(N).visible=!1),onConfirm:k[38]||(k[38]=Ze=>m(K)(m(me)))},{default:ct(()=>[d("div",uS,[d("p",hS,[k[63]||(k[63]=Xe(" Create a new branch from ",-1)),d("span",dS,"stash@"+B("{")+B(m(N).stashIndex)+B("}"),1)]),He(d("input",{"onUpdate:modelValue":k[35]||(k[35]=Ze=>tt(me)?me.value=Ze:null),type:"text",class:"w-full px-3 py-2 text-sm bg-retro-panel border border-retro-border rounded text-retro-text placeholder-retro-muted focus:outline-none focus:border-retro-cyan",placeholder:"Branch name",onKeyup:k[36]||(k[36]=os(Ze=>m(K)(m(me)),["enter"]))},null,544),[[Xt,m(me)]])])]),_:1},8,["visible","loading","error"])):U("",!0),m(V).visible?(v(),Oe(Wk,{key:24,visible:m(V).visible,loading:m(V).loading,error:m(V).error,onClose:k[39]||(k[39]=Ze=>m(V).visible=!1),onConfirm:m(X)},null,8,["visible","loading","error","onConfirm"])):U("",!0),m(he).visible?(v(),Oe(Vk,{key:25,visible:m(he).visible,loading:m(he).loading,error:m(he).error,onClose:k[40]||(k[40]=Ze=>m(he).visible=!1),onConfirm:m($)},null,8,["visible","loading","error","onConfirm"])):U("",!0),m(w).visible?(v(),Oe(Yy,{key:26,visible:m(w).visible,loading:m(w).loading,error:m(w).error,onClose:k[41]||(k[41]=Ze=>m(w).visible=!1),onConfirm:m(M)},null,8,["visible","loading","error","onConfirm"])):U("",!0),(v(),Oe(xr,{to:"body"},[ee(dn,{name:"fade"},{default:ct(()=>[m(G).visible?(v(),x("div",{key:0,class:"fixed z-50 px-3 py-1.5 text-sm bg-retro-green text-retro-dark rounded shadow-lg",style:Ut({left:`${m(G).x}px`,top:`${m(G).y-40}px`})}," Copied! ",4)):U("",!0)]),_:1})])),(v(),Oe(xr,{to:"body"},[ee(dn,{name:"fade"},{default:ct(()=>[m(t).operationError?(v(),x("div",fS,[ee(m(_n),{class:"w-4 h-4 flex-shrink-0"}),d("span",pS,B(m(t).operationError),1),d("button",{class:"flex-shrink-0 p-0.5 hover:bg-white/20 rounded transition-colors",onClick:k[42]||(k[42]=Ze=>m(t).clearOperationError()),"aria-label":"Dismiss error"},[ee(m(Pt),{class:"w-3.5 h-3.5"})])])):U("",!0)]),_:1})]))])}}}),OS=Gs(gS,[["__scopeId","data-v-52ace892"]]),vS=f1("/app-logo.svg"),bS={class:"flex items-start justify-between gap-2"},xS={class:"flex-1 min-w-0"},yS={class:"flex items-center gap-2"},kS={class:"font-mono text-sm text-retro-text truncate"},wS={class:"text-xs font-mono text-retro-muted mt-1 truncate"},SS={class:"flex items-center gap-1 flex-shrink-0"},$S={key:0,class:"inline-flex items-center gap-1 text-[10px] font-mono text-retro-red",title:"Critical traceability gaps"},CS={key:1,class:"inline-flex items-center gap-1 text-[10px] font-mono text-retro-yellow",title:"Major traceability gaps"},QS={key:2,class:"text-[10px] font-mono text-retro-muted mr-1",title:"Completed tasks / total tasks"},PS={key:3,class:"w-2 h-2 rounded-full bg-retro-green",title:"spec"},TS={key:4,class:"w-2 h-2 rounded-full bg-retro-cyan",title:"plan"},MS={key:5,class:"w-2 h-2 rounded-full bg-retro-yellow",title:"tasks"},AS={class:"flex flex-wrap items-center justify-between gap-1 mt-2"},_S={key:0,class:"flex items-center gap-1"},RS=["title","disabled","onClick"],BS=Ie({__name:"FeatureCard",props:{feature:{},skills:{},isActive:{type:Boolean},criticalAlerts:{},majorAlerts:{}},emits:["select","cascade","openChat","skill"],setup(r,{emit:e}){const t={DocumentCheckIcon:G1,PuzzlePieceIcon:Vh,DocumentMagnifyingGlassIcon:K1,WrenchScrewdriverIcon:lv,SparklesIcon:ol,BeakerIcon:z1,ShieldCheckIcon:Gp,CommandLineIcon:U1,CpuChipIcon:$1,LightBulbIcon:sv},n=r,s=e,i=kr();function o(p){return t[p]||Vh}function a(p){return p.prerequisites.every(f=>n.feature.files.some(g=>g.filename===f))}function l(p){return p.prerequisites.filter(f=>!n.feature.files.some(g=>g.filename===f))}function c(p){return a(p)?`${p.name} (Shift+click: new conversation)`:`Requires: ${l(p).join(", ")}`}const u=J(()=>{const p=i.findConversationByFeature(n.feature.id);return p?i.isConversationStreaming(p.id):!1}),h=J(()=>n.isActive?["border-retro-cyan shadow-retro","feature-card-active","dark:bg-gradient-to-br dark:from-retro-cyan/10 dark:via-retro-panel dark:to-retro-magenta/5"]:["border-retro-border","feature-card-light","hover:border-retro-muted","dark:bg-gradient-to-br","dark:from-retro-panel dark:via-retro-panel dark:to-retro-cyan/5","dark:hover:from-retro-cyan/5 dark:hover:via-retro-panel dark:hover:to-retro-magenta/5"]);return(p,f)=>(v(),x("button",{type:"button",class:Re(["w-full p-3 text-left rounded-lg border transition-all duration-200 group",m(h)]),onClick:f[5]||(f[5]=g=>s("select",r.feature.id))},[d("div",bS,[d("div",xS,[d("div",yS,[ee(m(Ds),{class:Re(["h-4 w-4 flex-shrink-0 transition-colors duration-200",r.isActive?"text-retro-cyan":"text-retro-muted group-hover:text-retro-cyan"])},null,8,["class"]),d("span",kS,B(r.feature.id),1)]),d("p",wS,B(r.feature.name),1)]),d("div",SS,[r.criticalAlerts>0?(v(),x("span",$S,[f[6]||(f[6]=d("span",{class:"w-1.5 h-1.5 rounded-full bg-retro-red"},null,-1)),Xe(" "+B(r.criticalAlerts),1)])):U("",!0),r.majorAlerts>0?(v(),x("span",CS,[f[7]||(f[7]=d("span",{class:"w-1.5 h-1.5 rounded-full bg-retro-yellow"},null,-1)),Xe(" "+B(r.majorAlerts),1)])):U("",!0),r.feature.hasTasks?(v(),x("span",QS,B(r.feature.completedTasks)+"/"+B(r.feature.totalTasks),1)):U("",!0),r.feature.hasSpec?(v(),x("span",PS)):U("",!0),r.feature.hasPlan?(v(),x("span",TS)):U("",!0),r.feature.hasTasks?(v(),x("span",MS)):U("",!0)])]),d("div",AS,[r.feature.hasSpec?(v(),x("div",_S,[d("button",{type:"button",class:"flex items-center justify-center p-1 bg-retro-cyan/20 text-retro-cyan rounded hover:bg-retro-cyan/30 transition-colors",title:"Clarify spec (Shift+click: new conversation)",onClick:f[0]||(f[0]=fr(g=>s("cascade",g,r.feature.id,"clarify"),["stop"]))},[ee(m(Qu),{class:"h-3.5 w-3.5"})]),d("button",{type:"button",class:"flex items-center justify-center p-1 bg-retro-cyan/20 text-retro-cyan rounded hover:bg-retro-cyan/30 transition-colors",title:"Plan → Tasks → Implement (Shift+click: new conversation)",onClick:f[1]||(f[1]=fr(g=>s("cascade",g,r.feature.id,"plan"),["stop"]))},[ee(m($u),{class:"h-3.5 w-3.5"})]),r.feature.hasPlan?(v(),x("button",{key:0,type:"button",class:"flex items-center justify-center p-1 bg-retro-yellow/20 text-retro-yellow rounded hover:bg-retro-yellow/30 transition-colors",title:"Tasks → Implement (Shift+click: new conversation)",onClick:f[2]||(f[2]=fr(g=>s("cascade",g,r.feature.id,"tasks"),["stop"]))},[ee(m(Up),{class:"h-3.5 w-3.5"})])):U("",!0),r.feature.hasTasks?(v(),x("button",{key:1,type:"button",class:"flex items-center justify-center p-1 bg-retro-magenta/20 text-retro-magenta rounded hover:bg-retro-magenta/30 transition-colors",title:"Implement (Shift+click: new conversation)",onClick:f[3]||(f[3]=fr(g=>s("cascade",g,r.feature.id,"implement"),["stop"]))},[ee(m(av),{class:"h-3.5 w-3.5"})])):U("",!0),r.skills.length>0?(v(),x(we,{key:2},[f[8]||(f[8]=d("div",{class:"w-px h-4 bg-retro-border mx-0.5"},null,-1)),(v(!0),x(we,null,Fe(r.skills,g=>(v(),x("button",{key:g.id,type:"button",class:Re(["flex items-center justify-center p-1 rounded transition-colors",[a(g)&&!m(u)?"bg-retro-pink/20 text-retro-pink hover:bg-retro-pink/30":"bg-retro-subtle/10 text-retro-subtle cursor-not-allowed",m(u)?"animate-pulse":""]]),title:c(g),disabled:!a(g)||m(u),onClick:fr(O=>s("skill",O,r.feature.id,g.id),["stop"])},[(v(),Oe(Zs(o(g.icon)),{class:"h-3.5 w-3.5"}))],10,RS))),128))],64)):U("",!0)])):U("",!0),r.feature.hasSpec?(v(),x("button",{key:1,type:"button",class:"flex items-center justify-center p-1 bg-retro-green/20 text-retro-green rounded hover:bg-retro-green/30 transition-colors",title:"Open new chat linked to this spec",onClick:f[4]||(f[4]=fr(g=>s("openChat",g,r.feature.id),["stop"]))},[ee(m(q1),{class:"h-3.5 w-3.5"})])):U("",!0)])],2))}});let Oc=[],Kp=[];(()=>{let r="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,t=0;e<r.length;e++)(e%2?Kp:Oc).push(t=t+r[e])})();function ZS(r){if(r<768)return!1;for(let e=0,t=Oc.length;;){let n=e+t>>1;if(r<Oc[n])t=n;else if(r>=Kp[n])e=n+1;else return!0;if(e==t)return!1}}function Yh(r){return r>=127462&&r<=127487}const Fh=8205;function ES(r,e,t=!0,n=!0){return(t?Jp:DS)(r,e,n)}function Jp(r,e,t){if(e==r.length)return e;e&&em(r.charCodeAt(e))&&tm(r.charCodeAt(e-1))&&e--;let n=$l(r,e);for(e+=Uh(n);e<r.length;){let s=$l(r,e);if(n==Fh||s==Fh||t&&ZS(s))e+=Uh(s),n=s;else if(Yh(s)){let i=0,o=e-2;for(;o>=0&&Yh($l(r,o));)i++,o-=2;if(i%2==0)break;e+=2}else break}return e}function DS(r,e,t){for(;e>0;){let n=Jp(r,e-2,t);if(n<e)return n;e--}return 0}function $l(r,e){let t=r.charCodeAt(e);if(!tm(t)||e+1==r.length)return t;let n=r.charCodeAt(e+1);return em(n)?(t-55296<<10)+(n-56320)+65536:t}function em(r){return r>=56320&&r<57344}function tm(r){return r>=55296&&r<56320}function Uh(r){return r<65536?1:2}class rt{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,n){[e,t]=Xs(this,e,t);let s=[];return this.decompose(0,e,s,2),n.length&&n.decompose(0,n.length,s,3),this.decompose(t,this.length,s,1),jr.from(s,this.length-(t-e)+n.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=Xs(this,e,t);let n=[];return this.decompose(e,t,n,0),jr.from(n,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),n=this.length-this.scanIdentical(e,-1),s=new Ei(this),i=new Ei(e);for(let o=t,a=t;;){if(s.next(o),i.next(o),o=0,s.lineBreak!=i.lineBreak||s.done!=i.done||s.value!=i.value)return!1;if(a+=s.value.length,s.done||a>=n)return!0}}iter(e=1){return new Ei(this,e)}iterRange(e,t=this.length){return new rm(this,e,t)}iterLines(e,t){let n;if(e==null)n=this.iter();else{t==null&&(t=this.lines+1);let s=this.line(e).from;n=this.iterRange(s,Math.max(s,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new nm(n)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?rt.empty:e.length<=32?new gt(e):jr.from(gt.split(e,[]))}}class gt extends rt{constructor(e,t=LS(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,n,s){for(let i=0;;i++){let o=this.text[i],a=s+o.length;if((t?n:a)>=e)return new XS(s,a,n,o);s=a+1,n++}}decompose(e,t,n,s){let i=e<=0&&t>=this.length?this:new gt(Gh(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(s&1){let o=n.pop(),a=ca(i.text,o.text.slice(),0,i.length);if(a.length<=32)n.push(new gt(a,o.length+i.length));else{let l=a.length>>1;n.push(new gt(a.slice(0,l)),new gt(a.slice(l)))}}else n.push(i)}replace(e,t,n){if(!(n instanceof gt))return super.replace(e,t,n);[e,t]=Xs(this,e,t);let s=ca(this.text,ca(n.text,Gh(this.text,0,e)),t),i=this.length+n.length-(t-e);return s.length<=32?new gt(s,i):jr.from(gt.split(s,[]),i)}sliceString(e,t=this.length,n=`
|
|
12
|
+
`){[e,t]=Xs(this,e,t);let s="";for(let i=0,o=0;i<=t&&o<this.text.length;o++){let a=this.text[o],l=i+a.length;i>e&&o&&(s+=n),e<l&&t>i&&(s+=a.slice(Math.max(0,e-i),t-i)),i=l+1}return s}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let n=[],s=-1;for(let i of e)n.push(i),s+=i.length+1,n.length==32&&(t.push(new gt(n,s)),n=[],s=-1);return s>-1&&t.push(new gt(n,s)),t}}class jr extends rt{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let n of e)this.lines+=n.lines}lineInner(e,t,n,s){for(let i=0;;i++){let o=this.children[i],a=s+o.length,l=n+o.lines-1;if((t?l:a)>=e)return o.lineInner(e,t,n,s);s=a+1,n=l+1}}decompose(e,t,n,s){for(let i=0,o=0;o<=t&&i<this.children.length;i++){let a=this.children[i],l=o+a.length;if(e<=l&&t>=o){let c=s&((o<=e?1:0)|(l>=t?2:0));o>=e&&l<=t&&!c?n.push(a):a.decompose(e-o,t-o,n,c)}o=l+1}}replace(e,t,n){if([e,t]=Xs(this,e,t),n.lines<this.lines)for(let s=0,i=0;s<this.children.length;s++){let o=this.children[s],a=i+o.length;if(e>=i&&t<=a){let l=o.replace(e-i,t-i,n),c=this.lines-o.lines+l.lines;if(l.lines<c>>4&&l.lines>c>>6){let u=this.children.slice();return u[s]=l,new jr(u,this.length-(t-e)+n.length)}return super.replace(i,a,l)}i=a+1}return super.replace(e,t,n)}sliceString(e,t=this.length,n=`
|
|
13
|
+
`){[e,t]=Xs(this,e,t);let s="";for(let i=0,o=0;i<this.children.length&&o<=t;i++){let a=this.children[i],l=o+a.length;o>e&&i&&(s+=n),e<l&&t>o&&(s+=a.sliceString(e-o,t-o,n)),o=l+1}return s}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof jr))return 0;let n=0,[s,i,o,a]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;s+=t,i+=t){if(s==o||i==a)return n;let l=this.children[s],c=e.children[i];if(l!=c)return n+l.scanIdentical(c,t);n+=l.length+1}}static from(e,t=e.reduce((n,s)=>n+s.length+1,-1)){let n=0;for(let f of e)n+=f.lines;if(n<32){let f=[];for(let g of e)g.flatten(f);return new gt(f,t)}let s=Math.max(32,n>>5),i=s<<1,o=s>>1,a=[],l=0,c=-1,u=[];function h(f){let g;if(f.lines>i&&f instanceof jr)for(let O of f.children)h(O);else f.lines>o&&(l>o||!l)?(p(),a.push(f)):f instanceof gt&&l&&(g=u[u.length-1])instanceof gt&&f.lines+g.lines<=32?(l+=f.lines,c+=f.length+1,u[u.length-1]=new gt(g.text.concat(f.text),g.length+1+f.length)):(l+f.lines>s&&p(),l+=f.lines,c+=f.length+1,u.push(f))}function p(){l!=0&&(a.push(u.length==1?u[0]:jr.from(u,c)),c=-1,l=u.length=0)}for(let f of e)h(f);return p(),a.length==1?a[0]:new jr(a,t)}}rt.empty=new gt([""],0);function LS(r){let e=-1;for(let t of r)e+=t.length+1;return e}function ca(r,e,t=0,n=1e9){for(let s=0,i=0,o=!0;i<r.length&&s<=n;i++){let a=r[i],l=s+a.length;l>=t&&(l>n&&(a=a.slice(0,n-s)),s<t&&(a=a.slice(t-s)),o?(e[e.length-1]+=a,o=!1):e.push(a)),s=l+1}return e}function Gh(r,e,t){return ca(r,[""],e,t)}class Ei{constructor(e,t=1){this.dir=t,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[e],this.offsets=[t>0?1:(e instanceof gt?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let n=this.nodes.length-1,s=this.nodes[n],i=this.offsets[n],o=i>>1,a=s instanceof gt?s.text.length:s.children.length;if(o==(t>0?a:0)){if(n==0)return this.done=!0,this.value="",this;t>0&&this.offsets[n-1]++,this.nodes.pop(),this.offsets.pop()}else if((i&1)==(t>0?0:1)){if(this.offsets[n]+=t,e==0)return this.lineBreak=!0,this.value=`
|
|
14
|
+
`,this;e--}else if(s instanceof gt){let l=s.text[o+(t<0?-1:0)];if(this.offsets[n]+=t,l.length>Math.max(0,e))return this.value=e==0?l:t>0?l.slice(e):l.slice(0,l.length-e),this;e-=l.length}else{let l=s.children[o+(t<0?-1:0)];e>l.length?(e-=l.length,this.offsets[n]+=t):(t<0&&this.offsets[n]--,this.nodes.push(l),this.offsets.push(t>0?1:(l instanceof gt?l.text.length:l.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class rm{constructor(e,t,n){this.value="",this.done=!1,this.cursor=new Ei(e,t>n?-1:1),this.pos=t>n?e.length:0,this.from=Math.min(t,n),this.to=Math.max(t,n)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let n=t<0?this.pos-this.from:this.to-this.pos;e>n&&(e=n),n-=e;let{value:s}=this.cursor.next(e);return this.pos+=(s.length+e)*t,this.value=s.length<=n?s:t<0?s.slice(s.length-n):s.slice(0,n),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class nm{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:n,value:s}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):n?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=s,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol<"u"&&(rt.prototype[Symbol.iterator]=function(){return this.iter()},Ei.prototype[Symbol.iterator]=rm.prototype[Symbol.iterator]=nm.prototype[Symbol.iterator]=function(){return this});let XS=class{constructor(e,t,n,s){this.from=e,this.to=t,this.number=n,this.text=s}get length(){return this.to-this.from}};function Xs(r,e,t){return e=Math.max(0,Math.min(r.length,e)),[e,Math.max(e,Math.min(r.length,t))]}function Qt(r,e,t=!0,n=!0){return ES(r,e,t,n)}function IS(r){return r>=56320&&r<57344}function VS(r){return r>=55296&&r<56320}function qt(r,e){let t=r.charCodeAt(e);if(!VS(t)||e+1==r.length)return t;let n=r.charCodeAt(e+1);return IS(n)?(t-55296<<10)+(n-56320)+65536:t}function Au(r){return r<=65535?String.fromCharCode(r):(r-=65536,String.fromCharCode((r>>10)+55296,(r&1023)+56320))}function qr(r){return r<65536?1:2}const vc=/\r\n?|\n/;var Rt=(function(r){return r[r.Simple=0]="Simple",r[r.TrackDel=1]="TrackDel",r[r.TrackBefore=2]="TrackBefore",r[r.TrackAfter=3]="TrackAfter",r})(Rt||(Rt={}));class Kr{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;t<this.sections.length;t+=2)e+=this.sections[t];return e}get newLength(){let e=0;for(let t=0;t<this.sections.length;t+=2){let n=this.sections[t+1];e+=n<0?this.sections[t]:n}return e}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(e){for(let t=0,n=0,s=0;t<this.sections.length;){let i=this.sections[t++],o=this.sections[t++];o<0?(e(n,s,i),s+=i):s+=o,n+=i}}iterChangedRanges(e,t=!1){bc(this,e,t)}get invertedDesc(){let e=[];for(let t=0;t<this.sections.length;){let n=this.sections[t++],s=this.sections[t++];s<0?e.push(n,s):e.push(s,n)}return new Kr(e)}composeDesc(e){return this.empty?e:e.empty?this:sm(this,e)}mapDesc(e,t=!1){return e.empty?this:xc(this,e,t)}mapPos(e,t=-1,n=Rt.Simple){let s=0,i=0;for(let o=0;o<this.sections.length;){let a=this.sections[o++],l=this.sections[o++],c=s+a;if(l<0){if(c>e)return i+(e-s);i+=a}else{if(n!=Rt.Simple&&c>=e&&(n==Rt.TrackDel&&s<e&&c>e||n==Rt.TrackBefore&&s<e||n==Rt.TrackAfter&&c>e))return null;if(c>e||c==e&&t<0&&!a)return e==s||t<0?i:i+l;i+=l}s=c}if(e>s)throw new RangeError(`Position ${e} is out of range for changeset of length ${s}`);return i}touchesRange(e,t=e){for(let n=0,s=0;n<this.sections.length&&s<=t;){let i=this.sections[n++],o=this.sections[n++],a=s+i;if(o>=0&&s<=t&&a>=e)return s<e&&a>t?"cover":!0;s=a}return!1}toString(){let e="";for(let t=0;t<this.sections.length;){let n=this.sections[t++],s=this.sections[t++];e+=(e?" ":"")+n+(s>=0?":"+s:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new Kr(e)}static create(e){return new Kr(e)}}class wt extends Kr{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return bc(this,(t,n,s,i,o)=>e=e.replace(s,s+(n-t),o),!1),e}mapDesc(e,t=!1){return xc(this,e,t,!0)}invert(e){let t=this.sections.slice(),n=[];for(let s=0,i=0;s<t.length;s+=2){let o=t[s],a=t[s+1];if(a>=0){t[s]=a,t[s+1]=o;let l=s>>1;for(;n.length<l;)n.push(rt.empty);n.push(o?e.slice(i,i+o):rt.empty)}i+=o}return new wt(t,n)}compose(e){return this.empty?e:e.empty?this:sm(this,e,!0)}map(e,t=!1){return e.empty?this:xc(this,e,t,!0)}iterChanges(e,t=!1){bc(this,e,t)}get desc(){return Kr.create(this.sections)}filter(e){let t=[],n=[],s=[],i=new Wi(this);e:for(let o=0,a=0;;){let l=o==e.length?1e9:e[o++];for(;a<l||a==l&&i.len==0;){if(i.done)break e;let u=Math.min(i.len,l-a);Lt(s,u,-1);let h=i.ins==-1?-1:i.off==0?i.ins:0;Lt(t,u,h),h>0&&An(n,t,i.text),i.forward(u),a+=u}let c=e[o++];for(;a<c;){if(i.done)break e;let u=Math.min(i.len,c-a);Lt(t,u,-1),Lt(s,u,i.ins==-1?-1:i.off==0?i.ins:0),i.forward(u),a+=u}}return{changes:new wt(t,n),filtered:Kr.create(s)}}toJSON(){let e=[];for(let t=0;t<this.sections.length;t+=2){let n=this.sections[t],s=this.sections[t+1];s<0?e.push(n):s==0?e.push([n]):e.push([n].concat(this.inserted[t>>1].toJSON()))}return e}static of(e,t,n){let s=[],i=[],o=0,a=null;function l(u=!1){if(!u&&!s.length)return;o<t&&Lt(s,t-o,-1);let h=new wt(s,i);a=a?a.compose(h.map(a)):h,s=[],i=[],o=0}function c(u){if(Array.isArray(u))for(let h of u)c(h);else if(u instanceof wt){if(u.length!=t)throw new RangeError(`Mismatched change set length (got ${u.length}, expected ${t})`);l(),a=a?a.compose(u.map(a)):u}else{let{from:h,to:p=h,insert:f}=u;if(h>p||h<0||p>t)throw new RangeError(`Invalid change range ${h} to ${p} (in doc of length ${t})`);let g=f?typeof f=="string"?rt.of(f.split(n||vc)):f:rt.empty,O=g.length;if(h==p&&O==0)return;h<o&&l(),h>o&&Lt(s,h-o,-1),Lt(s,p-h,O),An(i,s,g),o=p}}return c(e),l(!a),a}static empty(e){return new wt(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],n=[];for(let s=0;s<e.length;s++){let i=e[s];if(typeof i=="number")t.push(i,-1);else{if(!Array.isArray(i)||typeof i[0]!="number"||i.some((o,a)=>a&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(i.length==1)t.push(i[0],0);else{for(;n.length<s;)n.push(rt.empty);n[s]=rt.of(i.slice(1)),t.push(i[0],n[s].length)}}}return new wt(t,n)}static createSet(e,t){return new wt(e,t)}}function Lt(r,e,t,n=!1){if(e==0&&t<=0)return;let s=r.length-2;s>=0&&t<=0&&t==r[s+1]?r[s]+=e:s>=0&&e==0&&r[s]==0?r[s+1]+=t:n?(r[s]+=e,r[s+1]+=t):r.push(e,t)}function An(r,e,t){if(t.length==0)return;let n=e.length-2>>1;if(n<r.length)r[r.length-1]=r[r.length-1].append(t);else{for(;r.length<n;)r.push(rt.empty);r.push(t)}}function bc(r,e,t){let n=r.inserted;for(let s=0,i=0,o=0;o<r.sections.length;){let a=r.sections[o++],l=r.sections[o++];if(l<0)s+=a,i+=a;else{let c=s,u=i,h=rt.empty;for(;c+=a,u+=l,l&&n&&(h=h.append(n[o-2>>1])),!(t||o==r.sections.length||r.sections[o+1]<0);)a=r.sections[o++],l=r.sections[o++];e(s,c,i,u,h),s=c,i=u}}}function xc(r,e,t,n=!1){let s=[],i=n?[]:null,o=new Wi(r),a=new Wi(e);for(let l=-1;;){if(o.done&&a.len||a.done&&o.len)throw new Error("Mismatched change set lengths");if(o.ins==-1&&a.ins==-1){let c=Math.min(o.len,a.len);Lt(s,c,-1),o.forward(c),a.forward(c)}else if(a.ins>=0&&(o.ins<0||l==o.i||o.off==0&&(a.len<o.len||a.len==o.len&&!t))){let c=a.len;for(Lt(s,a.ins,-1);c;){let u=Math.min(o.len,c);o.ins>=0&&l<o.i&&o.len<=u&&(Lt(s,0,o.ins),i&&An(i,s,o.text),l=o.i),o.forward(u),c-=u}a.next()}else if(o.ins>=0){let c=0,u=o.len;for(;u;)if(a.ins==-1){let h=Math.min(u,a.len);c+=h,u-=h,a.forward(h)}else if(a.ins==0&&a.len<u)u-=a.len,a.next();else break;Lt(s,c,l<o.i?o.ins:0),i&&l<o.i&&An(i,s,o.text),l=o.i,o.forward(o.len-u)}else{if(o.done&&a.done)return i?wt.createSet(s,i):Kr.create(s);throw new Error("Mismatched change set lengths")}}}function sm(r,e,t=!1){let n=[],s=t?[]:null,i=new Wi(r),o=new Wi(e);for(let a=!1;;){if(i.done&&o.done)return s?wt.createSet(n,s):Kr.create(n);if(i.ins==0)Lt(n,i.len,0,a),i.next();else if(o.len==0&&!o.done)Lt(n,0,o.ins,a),s&&An(s,n,o.text),o.next();else{if(i.done||o.done)throw new Error("Mismatched change set lengths");{let l=Math.min(i.len2,o.len),c=n.length;if(i.ins==-1){let u=o.ins==-1?-1:o.off?0:o.ins;Lt(n,l,u,a),s&&u&&An(s,n,o.text)}else o.ins==-1?(Lt(n,i.off?0:i.len,l,a),s&&An(s,n,i.textBit(l))):(Lt(n,i.off?0:i.len,o.off?0:o.ins,a),s&&!o.off&&An(s,n,o.text));a=(i.ins>l||o.ins>=0&&o.len>l)&&(a||n.length>c),i.forward2(l),o.forward(l)}}}}class Wi{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i<e.length?(this.len=e[this.i++],this.ins=e[this.i++]):(this.len=0,this.ins=-2),this.off=0}get done(){return this.ins==-2}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted:e}=this.set,t=this.i-2>>1;return t>=e.length?rt.empty:e[t]}textBit(e){let{inserted:t}=this.set,n=this.i-2>>1;return n>=t.length&&!e?rt.empty:t[n].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class rs{constructor(e,t,n){this.from=e,this.to=t,this.flags=n}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}get goalColumn(){let e=this.flags>>6;return e==16777215?void 0:e}map(e,t=-1){let n,s;return this.empty?n=s=e.mapPos(this.from,t):(n=e.mapPos(this.from,1),s=e.mapPos(this.to,-1)),n==this.from&&s==this.to?this:new rs(n,s,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return te.range(e,t);let n=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return te.range(this.anchor,n)}eq(e,t=!1){return this.anchor==e.anchor&&this.head==e.head&&this.goalColumn==e.goalColumn&&(!t||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return te.range(e.anchor,e.head)}static create(e,t,n){return new rs(e,t,n)}}class te{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:te.create(this.ranges.map(n=>n.map(e,t)),this.mainIndex)}eq(e,t=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let n=0;n<this.ranges.length;n++)if(!this.ranges[n].eq(e.ranges[n],t))return!1;return!0}get main(){return this.ranges[this.mainIndex]}asSingle(){return this.ranges.length==1?this:new te([this.main],0)}addRange(e,t=!0){return te.create([e].concat(this.ranges),t?0:this.mainIndex+1)}replaceRange(e,t=this.mainIndex){let n=this.ranges.slice();return n[t]=e,te.create(n,this.mainIndex)}toJSON(){return{ranges:this.ranges.map(e=>e.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new te(e.ranges.map(t=>rs.fromJSON(t)),e.main)}static single(e,t=e){return new te([te.range(e,t)],0)}static create(e,t=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let n=0,s=0;s<e.length;s++){let i=e[s];if(i.empty?i.from<=n:i.from<n)return te.normalized(e.slice(),t);n=i.to}return new te(e,t)}static cursor(e,t=0,n,s){return rs.create(e,e,(t==0?0:t<0?8:16)|(n==null?7:Math.min(6,n))|(s??16777215)<<6)}static range(e,t,n,s){let i=(n??16777215)<<6|(s==null?7:Math.min(6,s));return t<e?rs.create(t,e,48|i):rs.create(e,t,(t>e?8:0)|i)}static normalized(e,t=0){let n=e[t];e.sort((s,i)=>s.from-i.from),t=e.indexOf(n);for(let s=1;s<e.length;s++){let i=e[s],o=e[s-1];if(i.empty?i.from<=o.to:i.from<o.to){let a=o.from,l=Math.max(i.to,o.to);s<=t&&t--,e.splice(--s,2,i.anchor>i.head?te.range(l,a):te.range(a,l))}}return new te(e,t)}}function im(r,e){for(let t of r.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}let _u=0;class $e{constructor(e,t,n,s,i){this.combine=e,this.compareInput=t,this.compare=n,this.isStatic=s,this.id=_u++,this.default=e([]),this.extensions=typeof i=="function"?i(this):i}get reader(){return this}static define(e={}){return new $e(e.combine||(t=>t),e.compareInput||((t,n)=>t===n),e.compare||(e.combine?(t,n)=>t===n:Ru),!!e.static,e.enables)}of(e){return new ua([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new ua(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new ua(e,this,2,t)}from(e,t){return t||(t=n=>n),this.compute([e],n=>t(n.field(e)))}}function Ru(r,e){return r==e||r.length==e.length&&r.every((t,n)=>t===e[n])}class ua{constructor(e,t,n,s){this.dependencies=e,this.facet=t,this.type=n,this.value=s,this.id=_u++}dynamicSlot(e){var t;let n=this.value,s=this.facet.compareInput,i=this.id,o=e[i]>>1,a=this.type==2,l=!1,c=!1,u=[];for(let h of this.dependencies)h=="doc"?l=!0:h=="selection"?c=!0:(((t=e[h.id])!==null&&t!==void 0?t:1)&1)==0&&u.push(e[h.id]);return{create(h){return h.values[o]=n(h),1},update(h,p){if(l&&p.docChanged||c&&(p.docChanged||p.selection)||yc(h,u)){let f=n(h);if(a?!Hh(f,h.values[o],s):!s(f,h.values[o]))return h.values[o]=f,1}return 0},reconfigure:(h,p)=>{let f,g=p.config.address[i];if(g!=null){let O=$a(p,g);if(this.dependencies.every(y=>y instanceof $e?p.facet(y)===h.facet(y):y instanceof Tt?p.field(y,!1)==h.field(y,!1):!0)||(a?Hh(f=n(h),O,s):s(f=n(h),O)))return h.values[o]=O,0}else f=n(h);return h.values[o]=f,1}}}}function Hh(r,e,t){if(r.length!=e.length)return!1;for(let n=0;n<r.length;n++)if(!t(r[n],e[n]))return!1;return!0}function yc(r,e){let t=!1;for(let n of e)Di(r,n)&1&&(t=!0);return t}function zS(r,e,t){let n=t.map(l=>r[l.id]),s=t.map(l=>l.type),i=n.filter(l=>!(l&1)),o=r[e.id]>>1;function a(l){let c=[];for(let u=0;u<n.length;u++){let h=$a(l,n[u]);if(s[u]==2)for(let p of h)c.push(p);else c.push(h)}return e.combine(c)}return{create(l){for(let c of n)Di(l,c);return l.values[o]=a(l),1},update(l,c){if(!yc(l,i))return 0;let u=a(l);return e.compare(u,l.values[o])?0:(l.values[o]=u,1)},reconfigure(l,c){let u=yc(l,n),h=c.config.facets[e.id],p=c.facet(e);if(h&&!u&&Ru(t,h))return l.values[o]=p,0;let f=a(l);return e.compare(f,p)?(l.values[o]=p,0):(l.values[o]=f,1)}}}const Zo=$e.define({static:!0});class Tt{constructor(e,t,n,s,i){this.id=e,this.createF=t,this.updateF=n,this.compareF=s,this.spec=i,this.provides=void 0}static define(e){let t=new Tt(_u++,e.create,e.update,e.compare||((n,s)=>n===s),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(Zo).find(n=>n.field==this);return(t?.create||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:n=>(n.values[t]=this.create(n),1),update:(n,s)=>{let i=n.values[t],o=this.updateF(i,s);return this.compareF(i,o)?0:(n.values[t]=o,1)},reconfigure:(n,s)=>{let i=n.facet(Zo),o=s.facet(Zo),a;return(a=i.find(l=>l.field==this))&&a!=o.find(l=>l.field==this)?(n.values[t]=a.create(n),1):s.config.address[this.id]!=null?(n.values[t]=s.field(this),0):(n.values[t]=this.create(n),1)}}}init(e){return[this,Zo.of({field:this,create:e})]}get extension(){return this}}const Jn={lowest:4,low:3,default:2,high:1,highest:0};function wi(r){return e=>new om(e,r)}const On={highest:wi(Jn.highest),high:wi(Jn.high),default:wi(Jn.default),low:wi(Jn.low),lowest:wi(Jn.lowest)};class om{constructor(e,t){this.inner=e,this.prec=t}}class cl{of(e){return new kc(this,e)}reconfigure(e){return cl.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class kc{constructor(e,t){this.compartment=e,this.inner=t}}class Sa{constructor(e,t,n,s,i,o){for(this.base=e,this.compartments=t,this.dynamicSlots=n,this.address=s,this.staticValues=i,this.facets=o,this.statusTemplate=[];this.statusTemplate.length<n.length;)this.statusTemplate.push(0)}staticFacet(e){let t=this.address[e.id];return t==null?e.default:this.staticValues[t>>1]}static resolve(e,t,n){let s=[],i=Object.create(null),o=new Map;for(let p of NS(e,t,o))p instanceof Tt?s.push(p):(i[p.facet.id]||(i[p.facet.id]=[])).push(p);let a=Object.create(null),l=[],c=[];for(let p of s)a[p.id]=c.length<<1,c.push(f=>p.slot(f));let u=n?.config.facets;for(let p in i){let f=i[p],g=f[0].facet,O=u&&u[p]||[];if(f.every(y=>y.type==0))if(a[g.id]=l.length<<1|1,Ru(O,f))l.push(n.facet(g));else{let y=g.combine(f.map(b=>b.value));l.push(n&&g.compare(y,n.facet(g))?n.facet(g):y)}else{for(let y of f)y.type==0?(a[y.id]=l.length<<1|1,l.push(y.value)):(a[y.id]=c.length<<1,c.push(b=>y.dynamicSlot(b)));a[g.id]=c.length<<1,c.push(y=>zS(y,g,f))}}let h=c.map(p=>p(a));return new Sa(e,o,h,a,l,i)}}function NS(r,e,t){let n=[[],[],[],[],[]],s=new Map;function i(o,a){let l=s.get(o);if(l!=null){if(l<=a)return;let c=n[l].indexOf(o);c>-1&&n[l].splice(c,1),o instanceof kc&&t.delete(o.compartment)}if(s.set(o,a),Array.isArray(o))for(let c of o)i(c,a);else if(o instanceof kc){if(t.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let c=e.get(o.compartment)||o.inner;t.set(o.compartment,c),i(c,a)}else if(o instanceof om)i(o.inner,o.prec);else if(o instanceof Tt)n[a].push(o),o.provides&&i(o.provides,a);else if(o instanceof ua)n[a].push(o),o.facet.extensions&&i(o.facet.extensions,Jn.default);else{let c=o.extension;if(!c)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);i(c,a)}}return i(r,Jn.default),n.reduce((o,a)=>o.concat(a))}function Di(r,e){if(e&1)return 2;let t=e>>1,n=r.status[t];if(n==4)throw new Error("Cyclic dependency between fields and/or facets");if(n&2)return n;r.status[t]=4;let s=r.computeSlot(r,r.config.dynamicSlots[t]);return r.status[t]=2|s}function $a(r,e){return e&1?r.config.staticValues[e>>1]:r.values[e>>1]}const am=$e.define(),wc=$e.define({combine:r=>r.some(e=>e),static:!0}),lm=$e.define({combine:r=>r.length?r[0]:void 0,static:!0}),cm=$e.define(),um=$e.define(),hm=$e.define(),dm=$e.define({combine:r=>r.length?r[0]:!1});class vn{constructor(e,t){this.type=e,this.value=t}static define(){return new WS}}class WS{of(e){return new vn(this,e)}}class jS{constructor(e){this.map=e}of(e){return new Ne(this,e)}}class Ne{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return t===void 0?void 0:t==this.value?this:new Ne(this.type,t)}is(e){return this.type==e}static define(e={}){return new jS(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let n=[];for(let s of e){let i=s.map(t);i&&n.push(i)}return n}}Ne.reconfigure=Ne.define();Ne.appendConfig=Ne.define();class vt{constructor(e,t,n,s,i,o){this.startState=e,this.changes=t,this.selection=n,this.effects=s,this.annotations=i,this.scrollIntoView=o,this._doc=null,this._state=null,n&&im(n,t.newLength),i.some(a=>a.type==vt.time)||(this.annotations=i.concat(vt.time.of(Date.now())))}static create(e,t,n,s,i,o){return new vt(e,t,n,s,i,o)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(vt.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}}vt.time=vn.define();vt.userEvent=vn.define();vt.addToHistory=vn.define();vt.remote=vn.define();function qS(r,e){let t=[];for(let n=0,s=0;;){let i,o;if(n<r.length&&(s==e.length||e[s]>=r[n]))i=r[n++],o=r[n++];else if(s<e.length)i=e[s++],o=e[s++];else return t;!t.length||t[t.length-1]<i?t.push(i,o):t[t.length-1]<o&&(t[t.length-1]=o)}}function fm(r,e,t){var n;let s,i,o;return t?(s=e.changes,i=wt.empty(e.changes.length),o=r.changes.compose(e.changes)):(s=e.changes.map(r.changes),i=r.changes.mapDesc(e.changes,!0),o=r.changes.compose(s)),{changes:o,selection:e.selection?e.selection.map(i):(n=r.selection)===null||n===void 0?void 0:n.map(s),effects:Ne.mapEffects(r.effects,s).concat(Ne.mapEffects(e.effects,i)),annotations:r.annotations.length?r.annotations.concat(e.annotations):e.annotations,scrollIntoView:r.scrollIntoView||e.scrollIntoView}}function Sc(r,e,t){let n=e.selection,s=Qs(e.annotations);return e.userEvent&&(s=s.concat(vt.userEvent.of(e.userEvent))),{changes:e.changes instanceof wt?e.changes:wt.of(e.changes||[],t,r.facet(lm)),selection:n&&(n instanceof te?n:te.single(n.anchor,n.head)),effects:Qs(e.effects),annotations:s,scrollIntoView:!!e.scrollIntoView}}function pm(r,e,t){let n=Sc(r,e.length?e[0]:{},r.doc.length);e.length&&e[0].filter===!1&&(t=!1);for(let i=1;i<e.length;i++){e[i].filter===!1&&(t=!1);let o=!!e[i].sequential;n=fm(n,Sc(r,e[i],o?n.changes.newLength:r.doc.length),o)}let s=vt.create(r,n.changes,n.selection,n.effects,n.annotations,n.scrollIntoView);return FS(t?YS(s):s)}function YS(r){let e=r.startState,t=!0;for(let s of e.facet(cm)){let i=s(r);if(i===!1){t=!1;break}Array.isArray(i)&&(t=t===!0?i:qS(t,i))}if(t!==!0){let s,i;if(t===!1)i=r.changes.invertedDesc,s=wt.empty(e.doc.length);else{let o=r.changes.filter(t);s=o.changes,i=o.filtered.mapDesc(o.changes).invertedDesc}r=vt.create(e,s,r.selection&&r.selection.map(i),Ne.mapEffects(r.effects,i),r.annotations,r.scrollIntoView)}let n=e.facet(um);for(let s=n.length-1;s>=0;s--){let i=n[s](r);i instanceof vt?r=i:Array.isArray(i)&&i.length==1&&i[0]instanceof vt?r=i[0]:r=pm(e,Qs(i),!1)}return r}function FS(r){let e=r.startState,t=e.facet(hm),n=r;for(let s=t.length-1;s>=0;s--){let i=t[s](r);i&&Object.keys(i).length&&(n=fm(n,Sc(e,i,r.changes.newLength),!0))}return n==r?r:vt.create(e,r.changes,r.selection,n.effects,n.annotations,n.scrollIntoView)}const US=[];function Qs(r){return r==null?US:Array.isArray(r)?r:[r]}var ft=(function(r){return r[r.Word=0]="Word",r[r.Space=1]="Space",r[r.Other=2]="Other",r})(ft||(ft={}));const GS=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let $c;try{$c=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function HS(r){if($c)return $c.test(r);for(let e=0;e<r.length;e++){let t=r[e];if(/\w/.test(t)||t>""&&(t.toUpperCase()!=t.toLowerCase()||GS.test(t)))return!0}return!1}function KS(r){return e=>{if(!/\S/.test(e))return ft.Space;if(HS(e))return ft.Word;for(let t=0;t<r.length;t++)if(e.indexOf(r[t])>-1)return ft.Word;return ft.Other}}class Je{constructor(e,t,n,s,i,o){this.config=e,this.doc=t,this.selection=n,this.values=s,this.status=e.statusTemplate.slice(),this.computeSlot=i,o&&(o._state=this);for(let a=0;a<this.config.dynamicSlots.length;a++)Di(this,a<<1);this.computeSlot=null}field(e,t=!0){let n=this.config.address[e.id];if(n==null){if(t)throw new RangeError("Field is not present in this state");return}return Di(this,n),$a(this,n)}update(...e){return pm(this,e,!0)}applyTransaction(e){let t=this.config,{base:n,compartments:s}=t;for(let a of e.effects)a.is(cl.reconfigure)?(t&&(s=new Map,t.compartments.forEach((l,c)=>s.set(c,l)),t=null),s.set(a.value.compartment,a.value.extension)):a.is(Ne.reconfigure)?(t=null,n=a.value):a.is(Ne.appendConfig)&&(t=null,n=Qs(n).concat(a.value));let i;t?i=e.startState.values.slice():(t=Sa.resolve(n,s,this),i=new Je(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(l,c)=>c.reconfigure(l,this),null).values);let o=e.startState.facet(wc)?e.newSelection:e.newSelection.asSingle();new Je(t,e.newDoc,o,i,(a,l)=>l.update(a,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:te.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,n=e(t.ranges[0]),s=this.changes(n.changes),i=[n.range],o=Qs(n.effects);for(let a=1;a<t.ranges.length;a++){let l=e(t.ranges[a]),c=this.changes(l.changes),u=c.map(s);for(let p=0;p<a;p++)i[p]=i[p].map(u);let h=s.mapDesc(c,!0);i.push(l.range.map(h)),s=s.compose(u),o=Ne.mapEffects(o,u).concat(Ne.mapEffects(Qs(l.effects),h))}return{changes:s,selection:te.create(i,t.mainIndex),effects:o}}changes(e=[]){return e instanceof wt?e:wt.of(e,this.doc.length,this.facet(Je.lineSeparator))}toText(e){return rt.of(e.split(this.facet(Je.lineSeparator)||vc))}sliceDoc(e=0,t=this.doc.length){return this.doc.sliceString(e,t,this.lineBreak)}facet(e){let t=this.config.address[e.id];return t==null?e.default:(Di(this,t),$a(this,t))}toJSON(e){let t={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(e)for(let n in e){let s=e[n];s instanceof Tt&&this.config.address[s.id]!=null&&(t[n]=s.spec.toJSON(this.field(e[n]),this))}return t}static fromJSON(e,t={},n){if(!e||typeof e.doc!="string")throw new RangeError("Invalid JSON representation for EditorState");let s=[];if(n){for(let i in n)if(Object.prototype.hasOwnProperty.call(e,i)){let o=n[i],a=e[i];s.push(o.init(l=>o.spec.fromJSON(a,l)))}}return Je.create({doc:e.doc,selection:te.fromJSON(e.selection),extensions:t.extensions?s.concat([t.extensions]):s})}static create(e={}){let t=Sa.resolve(e.extensions||[],new Map),n=e.doc instanceof rt?e.doc:rt.of((e.doc||"").split(t.staticFacet(Je.lineSeparator)||vc)),s=e.selection?e.selection instanceof te?e.selection:te.single(e.selection.anchor,e.selection.head):te.single(0);return im(s,n.length),t.staticFacet(wc)||(s=s.asSingle()),new Je(t,n,s,t.dynamicSlots.map(()=>null),(i,o)=>o.create(i),null)}get tabSize(){return this.facet(Je.tabSize)}get lineBreak(){return this.facet(Je.lineSeparator)||`
|
|
15
|
+
`}get readOnly(){return this.facet(dm)}phrase(e,...t){for(let n of this.facet(Je.phrases))if(Object.prototype.hasOwnProperty.call(n,e)){e=n[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(n,s)=>{if(s=="$")return"$";let i=+(s||1);return!i||i>t.length?n:t[i-1]})),e}languageDataAt(e,t,n=-1){let s=[];for(let i of this.facet(am))for(let o of i(this,t,n))Object.prototype.hasOwnProperty.call(o,e)&&s.push(o[e]);return s}charCategorizer(e){let t=this.languageDataAt("wordChars",e);return KS(t.length?t[0]:"")}wordAt(e){let{text:t,from:n,length:s}=this.doc.lineAt(e),i=this.charCategorizer(e),o=e-n,a=e-n;for(;o>0;){let l=Qt(t,o,!1);if(i(t.slice(l,o))!=ft.Word)break;o=l}for(;a<s;){let l=Qt(t,a);if(i(t.slice(a,l))!=ft.Word)break;a=l}return o==a?null:te.range(o+n,a+n)}}Je.allowMultipleSelections=wc;Je.tabSize=$e.define({combine:r=>r.length?r[0]:4});Je.lineSeparator=lm;Je.readOnly=dm;Je.phrases=$e.define({compare(r,e){let t=Object.keys(r),n=Object.keys(e);return t.length==n.length&&t.every(s=>r[s]==e[s])}});Je.languageData=am;Je.changeFilter=cm;Je.transactionFilter=um;Je.transactionExtender=hm;cl.reconfigure=Ne.define();function en(r,e,t={}){let n={};for(let s of r)for(let i of Object.keys(s)){let o=s[i],a=n[i];if(a===void 0)n[i]=o;else if(!(a===o||o===void 0))if(Object.hasOwnProperty.call(t,i))n[i]=t[i](a,o);else throw new Error("Config merge conflict for field "+i)}for(let s in e)n[s]===void 0&&(n[s]=e[s]);return n}class Bn{eq(e){return this==e}range(e,t=e){return Cc.create(e,t,this)}}Bn.prototype.startSide=Bn.prototype.endSide=0;Bn.prototype.point=!1;Bn.prototype.mapMode=Rt.TrackDel;function Bu(r,e){return r==e||r.constructor==e.constructor&&r.eq(e)}let Cc=class mm{constructor(e,t,n){this.from=e,this.to=t,this.value=n}static create(e,t,n){return new mm(e,t,n)}};function Qc(r,e){return r.from-e.from||r.value.startSide-e.value.startSide}class Zu{constructor(e,t,n,s){this.from=e,this.to=t,this.value=n,this.maxPoint=s}get length(){return this.to[this.to.length-1]}findIndex(e,t,n,s=0){let i=n?this.to:this.from;for(let o=s,a=i.length;;){if(o==a)return o;let l=o+a>>1,c=i[l]-e||(n?this.value[l].endSide:this.value[l].startSide)-t;if(l==o)return c>=0?o:a;c>=0?a=l:o=l+1}}between(e,t,n,s){for(let i=this.findIndex(t,-1e9,!0),o=this.findIndex(n,1e9,!1,i);i<o;i++)if(s(this.from[i]+e,this.to[i]+e,this.value[i])===!1)return!1}map(e,t){let n=[],s=[],i=[],o=-1,a=-1;for(let l=0;l<this.value.length;l++){let c=this.value[l],u=this.from[l]+e,h=this.to[l]+e,p,f;if(u==h){let g=t.mapPos(u,c.startSide,c.mapMode);if(g==null||(p=f=g,c.startSide!=c.endSide&&(f=t.mapPos(u,c.endSide),f<p)))continue}else if(p=t.mapPos(u,c.startSide),f=t.mapPos(h,c.endSide),p>f||p==f&&c.startSide>0&&c.endSide<=0)continue;(f-p||c.endSide-c.startSide)<0||(o<0&&(o=p),c.point&&(a=Math.max(a,f-p)),n.push(c),s.push(p-o),i.push(f-o))}return{mapped:n.length?new Zu(s,i,n,a):null,pos:o}}}class Ke{constructor(e,t,n,s){this.chunkPos=e,this.chunk=t,this.nextLayer=n,this.maxPoint=s}static create(e,t,n,s){return new Ke(e,t,n,s)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:n=!1,filterFrom:s=0,filterTo:i=this.length}=e,o=e.filter;if(t.length==0&&!o)return this;if(n&&(t=t.slice().sort(Qc)),this.isEmpty)return t.length?Ke.of(t):this;let a=new gm(this,null,-1).goto(0),l=0,c=[],u=new pn;for(;a.value||l<t.length;)if(l<t.length&&(a.from-t[l].from||a.startSide-t[l].value.startSide)>=0){let h=t[l++];u.addInner(h.from,h.to,h.value)||c.push(h)}else a.rangeIndex==1&&a.chunkIndex<this.chunk.length&&(l==t.length||this.chunkEnd(a.chunkIndex)<t[l].from)&&(!o||s>this.chunkEnd(a.chunkIndex)||i<this.chunkPos[a.chunkIndex])&&u.addChunk(this.chunkPos[a.chunkIndex],this.chunk[a.chunkIndex])?a.nextChunk():((!o||s>a.to||i<a.from||o(a.from,a.to,a.value))&&(u.addInner(a.from,a.to,a.value)||c.push(Cc.create(a.from,a.to,a.value))),a.next());return u.finishInner(this.nextLayer.isEmpty&&!c.length?Ke.empty:this.nextLayer.update({add:c,filter:o,filterFrom:s,filterTo:i}))}map(e){if(e.empty||this.isEmpty)return this;let t=[],n=[],s=-1;for(let o=0;o<this.chunk.length;o++){let a=this.chunkPos[o],l=this.chunk[o],c=e.touchesRange(a,a+l.length);if(c===!1)s=Math.max(s,l.maxPoint),t.push(l),n.push(e.mapPos(a));else if(c===!0){let{mapped:u,pos:h}=l.map(a,e);u&&(s=Math.max(s,u.maxPoint),t.push(u),n.push(h))}}let i=this.nextLayer.map(e);return t.length==0?i:new Ke(n,t,i||Ke.empty,s)}between(e,t,n){if(!this.isEmpty){for(let s=0;s<this.chunk.length;s++){let i=this.chunkPos[s],o=this.chunk[s];if(t>=i&&e<=i+o.length&&o.between(i,e-i,t-i,n)===!1)return}this.nextLayer.between(e,t,n)}}iter(e=0){return ji.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return ji.from(e).goto(t)}static compare(e,t,n,s,i=-1){let o=e.filter(h=>h.maxPoint>0||!h.isEmpty&&h.maxPoint>=i),a=t.filter(h=>h.maxPoint>0||!h.isEmpty&&h.maxPoint>=i),l=Kh(o,a,n),c=new Si(o,l,i),u=new Si(a,l,i);n.iterGaps((h,p,f)=>Jh(c,h,u,p,f,s)),n.empty&&n.length==0&&Jh(c,0,u,0,0,s)}static eq(e,t,n=0,s){s==null&&(s=999999999);let i=e.filter(u=>!u.isEmpty&&t.indexOf(u)<0),o=t.filter(u=>!u.isEmpty&&e.indexOf(u)<0);if(i.length!=o.length)return!1;if(!i.length)return!0;let a=Kh(i,o),l=new Si(i,a,0).goto(n),c=new Si(o,a,0).goto(n);for(;;){if(l.to!=c.to||!Pc(l.active,c.active)||l.point&&(!c.point||!Bu(l.point,c.point)))return!1;if(l.to>s)return!0;l.next(),c.next()}}static spans(e,t,n,s,i=-1){let o=new Si(e,null,i).goto(t),a=t,l=o.openStart;for(;;){let c=Math.min(o.to,n);if(o.point){let u=o.activeForPoint(o.to),h=o.pointFrom<t?u.length+1:o.point.startSide<0?u.length:Math.min(u.length,l);s.point(a,c,o.point,u,h,o.pointRank),l=Math.min(o.openEnd(c),u.length)}else c>a&&(s.span(a,c,o.active,l),l=o.openEnd(c));if(o.to>n)return l+(o.point&&o.to>n?1:0);a=o.to,o.next()}}static of(e,t=!1){let n=new pn;for(let s of e instanceof Cc?[e]:t?JS(e):e)n.add(s.from,s.to,s.value);return n.finish()}static join(e){if(!e.length)return Ke.empty;let t=e[e.length-1];for(let n=e.length-2;n>=0;n--)for(let s=e[n];s!=Ke.empty;s=s.nextLayer)t=new Ke(s.chunkPos,s.chunk,t,Math.max(s.maxPoint,t.maxPoint));return t}}Ke.empty=new Ke([],[],null,-1);function JS(r){if(r.length>1)for(let e=r[0],t=1;t<r.length;t++){let n=r[t];if(Qc(e,n)>0)return r.slice().sort(Qc);e=n}return r}Ke.empty.nextLayer=Ke.empty;class pn{finishChunk(e){this.chunks.push(new Zu(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,t,n){this.addInner(e,t,n)||(this.nextLayer||(this.nextLayer=new pn)).add(e,t,n)}addInner(e,t,n){let s=e-this.lastTo||n.startSide-this.last.endSide;if(s<=0&&(e-this.lastFrom||n.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return s<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=n,this.lastFrom=e,this.lastTo=t,this.value.push(n),n.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),!0)}addChunk(e,t){if((e-this.lastTo||t.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,t.maxPoint),this.chunks.push(t),this.chunkPos.push(e);let n=t.value.length-1;return this.last=t.value[n],this.lastFrom=t.from[n]+e,this.lastTo=t.to[n]+e,!0}finish(){return this.finishInner(Ke.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let t=Ke.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}}function Kh(r,e,t){let n=new Map;for(let i of r)for(let o=0;o<i.chunk.length;o++)i.chunk[o].maxPoint<=0&&n.set(i.chunk[o],i.chunkPos[o]);let s=new Set;for(let i of e)for(let o=0;o<i.chunk.length;o++){let a=n.get(i.chunk[o]);a!=null&&(t?t.mapPos(a):a)==i.chunkPos[o]&&!t?.touchesRange(a,a+i.chunk[o].length)&&s.add(i.chunk[o])}return s}class gm{constructor(e,t,n,s=0){this.layer=e,this.skip=t,this.minPoint=n,this.rank=s}get startSide(){return this.value?this.value.startSide:0}get endSide(){return this.value?this.value.endSide:0}goto(e,t=-1e9){return this.chunkIndex=this.rangeIndex=0,this.gotoInner(e,t,!1),this}gotoInner(e,t,n){for(;this.chunkIndex<this.layer.chunk.length;){let s=this.layer.chunk[this.chunkIndex];if(!(this.skip&&this.skip.has(s)||this.layer.chunkEnd(this.chunkIndex)<e||s.maxPoint<this.minPoint))break;this.chunkIndex++,n=!1}if(this.chunkIndex<this.layer.chunk.length){let s=this.layer.chunk[this.chunkIndex].findIndex(e-this.layer.chunkPos[this.chunkIndex],t,!0);(!n||this.rangeIndex<s)&&this.setRangeIndex(s)}this.next()}forward(e,t){(this.to-e||this.endSide-t)<0&&this.gotoInner(e,t,!0)}next(){for(;;)if(this.chunkIndex==this.layer.chunk.length){this.from=this.to=1e9,this.value=null;break}else{let e=this.layer.chunkPos[this.chunkIndex],t=this.layer.chunk[this.chunkIndex],n=e+t.from[this.rangeIndex];if(this.from=n,this.to=e+t.to[this.rangeIndex],this.value=t.value[this.rangeIndex],this.setRangeIndex(this.rangeIndex+1),this.minPoint<0||this.value.point&&this.to-this.from>=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex<this.layer.chunk.length&&this.skip.has(this.layer.chunk[this.chunkIndex]);)this.chunkIndex++;this.rangeIndex=0}else this.rangeIndex=e}nextChunk(){this.chunkIndex++,this.rangeIndex=0,this.next()}compare(e){return this.from-e.from||this.startSide-e.startSide||this.rank-e.rank||this.to-e.to||this.endSide-e.endSide}}class ji{constructor(e){this.heap=e}static from(e,t=null,n=-1){let s=[];for(let i=0;i<e.length;i++)for(let o=e[i];!o.isEmpty;o=o.nextLayer)o.maxPoint>=n&&s.push(new gm(o,t,n,i));return s.length==1?s[0]:new ji(s)}get startSide(){return this.value?this.value.startSide:0}goto(e,t=-1e9){for(let n of this.heap)n.goto(e,t);for(let n=this.heap.length>>1;n>=0;n--)Cl(this.heap,n);return this.next(),this}forward(e,t){for(let n of this.heap)n.forward(e,t);for(let n=this.heap.length>>1;n>=0;n--)Cl(this.heap,n);(this.to-e||this.value.endSide-t)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),Cl(this.heap,0)}}}function Cl(r,e){for(let t=r[e];;){let n=(e<<1)+1;if(n>=r.length)break;let s=r[n];if(n+1<r.length&&s.compare(r[n+1])>=0&&(s=r[n+1],n++),t.compare(s)<0)break;r[n]=t,r[e]=s,e=n}}class Si{constructor(e,t,n){this.minPoint=n,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=ji.from(e,t,n)}goto(e,t=-1e9){return this.cursor.goto(e,t),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=t,this.openStart=-1,this.next(),this}forward(e,t){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-t)<0;)this.removeActive(this.minActive);this.cursor.forward(e,t)}removeActive(e){Eo(this.active,e),Eo(this.activeTo,e),Eo(this.activeRank,e),this.minActive=ed(this.active,this.activeTo)}addActive(e){let t=0,{value:n,to:s,rank:i}=this.cursor;for(;t<this.activeRank.length&&(i-this.activeRank[t]||s-this.activeTo[t])>0;)t++;Do(this.active,t,n),Do(this.activeTo,t,s),Do(this.activeRank,t,i),e&&Do(e,t,this.cursor.from),this.minActive=ed(this.active,this.activeTo)}next(){let e=this.to,t=this.point;this.point=null;let n=this.openStart<0?[]:null;for(;;){let s=this.minActive;if(s>-1&&(this.activeTo[s]-this.cursor.from||this.active[s].endSide-this.cursor.startSide)<0){if(this.activeTo[s]>e){this.to=this.activeTo[s],this.endSide=this.active[s].endSide;break}this.removeActive(s),n&&Eo(n,s)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let i=this.cursor.value;if(!i.point)this.addActive(n),this.cursor.next();else if(t&&this.cursor.to==this.to&&this.cursor.from<this.cursor.to)this.cursor.next();else{this.point=i,this.pointFrom=this.cursor.from,this.pointRank=this.cursor.rank,this.to=this.cursor.to,this.endSide=i.endSide,this.cursor.next(),this.forward(this.to,this.endSide);break}}else{this.to=this.endSide=1e9;break}}if(n){this.openStart=0;for(let s=n.length-1;s>=0&&n[s]<e;s--)this.openStart++}}activeForPoint(e){if(!this.active.length)return this.active;let t=[];for(let n=this.active.length-1;n>=0&&!(this.activeRank[n]<this.pointRank);n--)(this.activeTo[n]>e||this.activeTo[n]==e&&this.active[n].endSide>=this.point.endSide)&&t.push(this.active[n]);return t.reverse()}openEnd(e){let t=0;for(let n=this.activeTo.length-1;n>=0&&this.activeTo[n]>e;n--)t++;return t}}function Jh(r,e,t,n,s,i){r.goto(e),t.goto(n);let o=n+s,a=n,l=n-e,c=!!i.boundChange;for(let u=!1;;){let h=r.to+l-t.to,p=h||r.endSide-t.endSide,f=p<0?r.to+l:t.to,g=Math.min(f,o);if(r.point||t.point?(r.point&&t.point&&Bu(r.point,t.point)&&Pc(r.activeForPoint(r.to),t.activeForPoint(t.to))||i.comparePoint(a,g,r.point,t.point),u=!1):(u&&i.boundChange(a),g>a&&!Pc(r.active,t.active)&&i.compareRange(a,g,r.active,t.active),c&&g<o&&(h||r.openEnd(f)!=t.openEnd(f))&&(u=!0)),f>o)break;a=f,p<=0&&r.next(),p>=0&&t.next()}}function Pc(r,e){if(r.length!=e.length)return!1;for(let t=0;t<r.length;t++)if(r[t]!=e[t]&&!Bu(r[t],e[t]))return!1;return!0}function Eo(r,e){for(let t=e,n=r.length-1;t<n;t++)r[t]=r[t+1];r.pop()}function Do(r,e,t){for(let n=r.length-1;n>=e;n--)r[n+1]=r[n];r[e]=t}function ed(r,e){let t=-1,n=1e9;for(let s=0;s<e.length;s++)(e[s]-n||r[s].endSide-r[t].endSide)<0&&(t=s,n=e[s]);return t}function _r(r,e,t=r.length){let n=0;for(let s=0;s<t&&s<r.length;)r.charCodeAt(s)==9?(n+=e-n%e,s++):(n++,s=Qt(r,s));return n}function Tc(r,e,t,n){for(let s=0,i=0;;){if(i>=e)return s;if(s==r.length)break;i+=r.charCodeAt(s)==9?t-i%t:1,s=Qt(r,s)}return n===!0?-1:r.length}const Mc="ͼ",td=typeof Symbol>"u"?"__"+Mc:Symbol.for(Mc),Ac=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),rd=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{};class Zn{constructor(e,t){this.rules=[];let{finish:n}=t||{};function s(o){return/^@/.test(o)?[o]:o.split(/,\s*/)}function i(o,a,l,c){let u=[],h=/^@(\w+)\b/.exec(o[0]),p=h&&h[1]=="keyframes";if(h&&a==null)return l.push(o[0]+";");for(let f in a){let g=a[f];if(/&/.test(f))i(f.split(/,\s*/).map(O=>o.map(y=>O.replace(/&/,y))).reduce((O,y)=>O.concat(y)),g,l);else if(g&&typeof g=="object"){if(!h)throw new RangeError("The value of a property ("+f+") should be a primitive value.");i(s(f),g,u,p)}else g!=null&&u.push(f.replace(/_.*/,"").replace(/[A-Z]/g,O=>"-"+O.toLowerCase())+": "+g+";")}(u.length||p)&&l.push((n&&!h&&!c?o.map(n):o).join(", ")+" {"+u.join(" ")+"}")}for(let o in e)i(s(o),e[o],this.rules)}getRules(){return this.rules.join(`
|
|
16
|
+
`)}static newName(){let e=rd[td]||1;return rd[td]=e+1,Mc+e.toString(36)}static mount(e,t,n){let s=e[Ac],i=n&&n.nonce;s?i&&s.setNonce(i):s=new e2(e,i),s.mount(Array.isArray(t)?t:[t],e)}}let nd=new Map;class e2{constructor(e,t){let n=e.ownerDocument||e,s=n.defaultView;if(!e.head&&e.adoptedStyleSheets&&s.CSSStyleSheet){let i=nd.get(n);if(i)return e[Ac]=i;this.sheet=new s.CSSStyleSheet,nd.set(n,this)}else this.styleTag=n.createElement("style"),t&&this.styleTag.setAttribute("nonce",t);this.modules=[],e[Ac]=this}mount(e,t){let n=this.sheet,s=0,i=0;for(let o=0;o<e.length;o++){let a=e[o],l=this.modules.indexOf(a);if(l<i&&l>-1&&(this.modules.splice(l,1),i--,l=-1),l==-1){if(this.modules.splice(i++,0,a),n)for(let c=0;c<a.rules.length;c++)n.insertRule(a.rules[c],s++)}else{for(;i<l;)s+=this.modules[i++].rules.length;s+=a.rules.length,i++}}if(n)t.adoptedStyleSheets.indexOf(this.sheet)<0&&(t.adoptedStyleSheets=[this.sheet,...t.adoptedStyleSheets]);else{let o="";for(let l=0;l<this.modules.length;l++)o+=this.modules[l].getRules()+`
|
|
17
|
+
`;this.styleTag.textContent=o;let a=t.head||t;this.styleTag.parentNode!=a&&a.insertBefore(this.styleTag,a.firstChild)}}setNonce(e){this.styleTag&&this.styleTag.getAttribute("nonce")!=e&&this.styleTag.setAttribute("nonce",e)}}var En={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},qi={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},t2=typeof navigator<"u"&&/Mac/.test(navigator.platform),r2=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(var _t=0;_t<10;_t++)En[48+_t]=En[96+_t]=String(_t);for(var _t=1;_t<=24;_t++)En[_t+111]="F"+_t;for(var _t=65;_t<=90;_t++)En[_t]=String.fromCharCode(_t+32),qi[_t]=String.fromCharCode(_t);for(var Ql in En)qi.hasOwnProperty(Ql)||(qi[Ql]=En[Ql]);function n2(r){var e=t2&&r.metaKey&&r.shiftKey&&!r.ctrlKey&&!r.altKey||r2&&r.shiftKey&&r.key&&r.key.length==1||r.key=="Unidentified",t=!e&&r.key||(r.shiftKey?qi:En)[r.keyCode]||r.key||"Unidentified";return t=="Esc"&&(t="Escape"),t=="Del"&&(t="Delete"),t=="Left"&&(t="ArrowLeft"),t=="Up"&&(t="ArrowUp"),t=="Right"&&(t="ArrowRight"),t=="Down"&&(t="ArrowDown"),t}function at(){var r=arguments[0];typeof r=="string"&&(r=document.createElement(r));var e=1,t=arguments[1];if(t&&typeof t=="object"&&t.nodeType==null&&!Array.isArray(t)){for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){var s=t[n];typeof s=="string"?r.setAttribute(n,s):s!=null&&(r[n]=s)}e++}for(;e<arguments.length;e++)Om(r,arguments[e]);return r}function Om(r,e){if(typeof e=="string")r.appendChild(document.createTextNode(e));else if(e!=null)if(e.nodeType!=null)r.appendChild(e);else if(Array.isArray(e))for(var t=0;t<e.length;t++)Om(r,e[t]);else throw new RangeError("Unsupported child node: "+e)}let zt=typeof navigator<"u"?navigator:{userAgent:"",vendor:"",platform:""},_c=typeof document<"u"?document:{documentElement:{style:{}}};const Rc=/Edge\/(\d+)/.exec(zt.userAgent),vm=/MSIE \d/.test(zt.userAgent),Bc=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(zt.userAgent),ul=!!(vm||Bc||Rc),sd=!ul&&/gecko\/(\d+)/i.test(zt.userAgent),Pl=!ul&&/Chrome\/(\d+)/.exec(zt.userAgent),s2="webkitFontSmoothing"in _c.documentElement.style,Zc=!ul&&/Apple Computer/.test(zt.vendor),id=Zc&&(/Mobile\/\w+/.test(zt.userAgent)||zt.maxTouchPoints>2);var Pe={mac:id||/Mac/.test(zt.platform),windows:/Win/.test(zt.platform),linux:/Linux|X11/.test(zt.platform),ie:ul,ie_version:vm?_c.documentMode||6:Bc?+Bc[1]:Rc?+Rc[1]:0,gecko:sd,gecko_version:sd?+(/Firefox\/(\d+)/.exec(zt.userAgent)||[0,0])[1]:0,chrome:!!Pl,chrome_version:Pl?+Pl[1]:0,ios:id,android:/Android\b/.test(zt.userAgent),webkit_version:s2?+(/\bAppleWebKit\/(\d+)/.exec(zt.userAgent)||[0,0])[1]:0,safari:Zc,safari_version:Zc?+(/\bVersion\/(\d+(\.\d+)?)/.exec(zt.userAgent)||[0,0])[1]:0,tabSize:_c.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function Eu(r,e){for(let t in r)t=="class"&&e.class?e.class+=" "+r.class:t=="style"&&e.style?e.style+=";"+r.style:e[t]=r[t];return e}const Ca=Object.create(null);function Du(r,e,t){if(r==e)return!0;r||(r=Ca),e||(e=Ca);let n=Object.keys(r),s=Object.keys(e);if(n.length-0!=s.length-0)return!1;for(let i of n)if(i!=t&&(s.indexOf(i)==-1||r[i]!==e[i]))return!1;return!0}function i2(r,e){for(let t=r.attributes.length-1;t>=0;t--){let n=r.attributes[t].name;e[n]==null&&r.removeAttribute(n)}for(let t in e){let n=e[t];t=="style"?r.style.cssText=n:r.getAttribute(t)!=n&&r.setAttribute(t,n)}}function od(r,e,t){let n=!1;if(e)for(let s in e)t&&s in t||(n=!0,s=="style"?r.style.cssText="":r.removeAttribute(s));if(t)for(let s in t)e&&e[s]==t[s]||(n=!0,s=="style"?r.style.cssText=t[s]:r.setAttribute(s,t[s]));return n}function o2(r){let e=Object.create(null);for(let t=0;t<r.attributes.length;t++){let n=r.attributes[t];e[n.name]=n.value}return e}class tn{eq(e){return!1}updateDOM(e,t){return!1}compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(e){return!0}coordsAt(e,t,n){return null}get isHidden(){return!1}get editable(){return!1}destroy(e){}}var Bt=(function(r){return r[r.Text=0]="Text",r[r.WidgetBefore=1]="WidgetBefore",r[r.WidgetAfter=2]="WidgetAfter",r[r.WidgetRange=3]="WidgetRange",r})(Bt||(Bt={}));class Ee extends Bn{constructor(e,t,n,s){super(),this.startSide=e,this.endSide=t,this.widget=n,this.spec=s}get heightRelevant(){return!1}static mark(e){return new Oo(e)}static widget(e){let t=Math.max(-1e4,Math.min(1e4,e.side||0)),n=!!e.block;return t+=n&&!e.inlineOrder?t>0?3e8:-4e8:t>0?1e8:-1e8,new hs(e,t,t,n,e.widget||null,!1)}static replace(e){let t=!!e.block,n,s;if(e.isBlockGap)n=-5e8,s=4e8;else{let{start:i,end:o}=bm(e,t);n=(i?t?-3e8:-1:5e8)-1,s=(o?t?2e8:1:-6e8)+1}return new hs(e,n,s,t,e.widget||null,!0)}static line(e){return new vo(e)}static set(e,t=!1){return Ke.of(e,t)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}}Ee.none=Ke.empty;class Oo extends Ee{constructor(e){let{start:t,end:n}=bm(e);super(t?-1:5e8,n?1:-6e8,null,e),this.tagName=e.tagName||"span",this.attrs=e.class&&e.attributes?Eu(e.attributes,{class:e.class}):e.class?{class:e.class}:e.attributes||Ca}eq(e){return this==e||e instanceof Oo&&this.tagName==e.tagName&&Du(this.attrs,e.attrs)}range(e,t=e){if(e>=t)throw new RangeError("Mark decorations may not be empty");return super.range(e,t)}}Oo.prototype.point=!1;class vo extends Ee{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof vo&&this.spec.class==e.spec.class&&Du(this.spec.attributes,e.spec.attributes)}range(e,t=e){if(t!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,t)}}vo.prototype.mapMode=Rt.TrackBefore;vo.prototype.point=!0;class hs extends Ee{constructor(e,t,n,s,i,o){super(t,n,i,e),this.block=s,this.isReplace=o,this.mapMode=s?t<=0?Rt.TrackBefore:Rt.TrackAfter:Rt.TrackDel}get type(){return this.startSide!=this.endSide?Bt.WidgetRange:this.startSide<=0?Bt.WidgetBefore:Bt.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof hs&&a2(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,t=e){if(this.isReplace&&(e>t||e==t&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&t!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,t)}}hs.prototype.point=!0;function bm(r,e=!1){let{inclusiveStart:t,inclusiveEnd:n}=r;return t==null&&(t=r.inclusive),n==null&&(n=r.inclusive),{start:t??e,end:n??e}}function a2(r,e){return r==e||!!(r&&e&&r.compare(e))}function Ps(r,e,t,n=0){let s=t.length-1;s>=0&&t[s]+n>=r?t[s]=Math.max(t[s],e):t.push(r,e)}class Yi extends Bn{constructor(e,t){super(),this.tagName=e,this.attributes=t}eq(e){return e==this||e instanceof Yi&&this.tagName==e.tagName&&Du(this.attributes,e.attributes)}static create(e){return new Yi(e.tagName,e.attributes||Ca)}static set(e,t=!1){return Ke.of(e,t)}}Yi.prototype.startSide=Yi.prototype.endSide=-1;function Fi(r){let e;return r.nodeType==11?e=r.getSelection?r:r.ownerDocument:e=r,e.getSelection()}function Ec(r,e){return e?r==e||r.contains(e.nodeType!=1?e.parentNode:e):!1}function Li(r,e){if(!e.anchorNode)return!1;try{return Ec(r,e.anchorNode)}catch{return!1}}function ha(r){return r.nodeType==3?Ui(r,0,r.nodeValue.length).getClientRects():r.nodeType==1?r.getClientRects():[]}function Xi(r,e,t,n){return t?ad(r,e,t,n,-1)||ad(r,e,t,n,1):!1}function Dn(r){for(var e=0;;e++)if(r=r.previousSibling,!r)return e}function Qa(r){return r.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(r.nodeName)}function ad(r,e,t,n,s){for(;;){if(r==t&&e==n)return!0;if(e==(s<0?0:mn(r))){if(r.nodeName=="DIV")return!1;let i=r.parentNode;if(!i||i.nodeType!=1)return!1;e=Dn(r)+(s<0?0:1),r=i}else if(r.nodeType==1){if(r=r.childNodes[e+(s<0?-1:0)],r.nodeType==1&&r.contentEditable=="false")return!1;e=s<0?mn(r):0}else return!1}}function mn(r){return r.nodeType==3?r.nodeValue.length:r.childNodes.length}function Pa(r,e){let t=e?r.left:r.right;return{left:t,right:t,top:r.top,bottom:r.bottom}}function l2(r){let e=r.visualViewport;return e?{left:0,right:e.width,top:0,bottom:e.height}:{left:0,right:r.innerWidth,top:0,bottom:r.innerHeight}}function xm(r,e){let t=e.width/r.offsetWidth,n=e.height/r.offsetHeight;return(t>.995&&t<1.005||!isFinite(t)||Math.abs(e.width-r.offsetWidth)<1)&&(t=1),(n>.995&&n<1.005||!isFinite(n)||Math.abs(e.height-r.offsetHeight)<1)&&(n=1),{scaleX:t,scaleY:n}}function c2(r,e,t,n,s,i,o,a){let l=r.ownerDocument,c=l.defaultView||window;for(let u=r,h=!1;u&&!h;)if(u.nodeType==1){let p,f=u==l.body,g=1,O=1;if(f)p=l2(c);else{if(/^(fixed|sticky)$/.test(getComputedStyle(u).position)&&(h=!0),u.scrollHeight<=u.clientHeight&&u.scrollWidth<=u.clientWidth){u=u.assignedSlot||u.parentNode;continue}let C=u.getBoundingClientRect();({scaleX:g,scaleY:O}=xm(u,C)),p={left:C.left,right:C.left+u.clientWidth*g,top:C.top,bottom:C.top+u.clientHeight*O}}let y=0,b=0;if(s=="nearest")e.top<p.top?(b=e.top-(p.top+o),t>0&&e.bottom>p.bottom+b&&(b=e.bottom-p.bottom+o)):e.bottom>p.bottom&&(b=e.bottom-p.bottom+o,t<0&&e.top-b<p.top&&(b=e.top-(p.top+o)));else{let C=e.bottom-e.top,P=p.bottom-p.top;b=(s=="center"&&C<=P?e.top+C/2-P/2:s=="start"||s=="center"&&t<0?e.top-o:e.bottom-P+o)-p.top}if(n=="nearest"?e.left<p.left?(y=e.left-(p.left+i),t>0&&e.right>p.right+y&&(y=e.right-p.right+i)):e.right>p.right&&(y=e.right-p.right+i,t<0&&e.left<p.left+y&&(y=e.left-(p.left+i))):y=(n=="center"?e.left+(e.right-e.left)/2-(p.right-p.left)/2:n=="start"==a?e.left-i:e.right-(p.right-p.left)+i)-p.left,y||b)if(f)c.scrollBy(y,b);else{let C=0,P=0;if(b){let A=u.scrollTop;u.scrollTop+=b/O,P=(u.scrollTop-A)*O}if(y){let A=u.scrollLeft;u.scrollLeft+=y/g,C=(u.scrollLeft-A)*g}e={left:e.left-C,top:e.top-P,right:e.right-C,bottom:e.bottom-P},C&&Math.abs(C-y)<1&&(n="nearest"),P&&Math.abs(P-b)<1&&(s="nearest")}if(f)break;(e.top<p.top||e.bottom>p.bottom||e.left<p.left||e.right>p.right)&&(e={left:Math.max(e.left,p.left),right:Math.min(e.right,p.right),top:Math.max(e.top,p.top),bottom:Math.min(e.bottom,p.bottom)}),u=u.assignedSlot||u.parentNode}else if(u.nodeType==11)u=u.host;else break}function u2(r){let e=r.ownerDocument,t,n;for(let s=r.parentNode;s&&!(s==e.body||t&&n);)if(s.nodeType==1)!n&&s.scrollHeight>s.clientHeight&&(n=s),!t&&s.scrollWidth>s.clientWidth&&(t=s),s=s.assignedSlot||s.parentNode;else if(s.nodeType==11)s=s.host;else break;return{x:t,y:n}}class h2{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:t,focusNode:n}=e;this.set(t,Math.min(e.anchorOffset,t?mn(t):0),n,Math.min(e.focusOffset,n?mn(n):0))}set(e,t,n,s){this.anchorNode=e,this.anchorOffset=t,this.focusNode=n,this.focusOffset=s}}let Kn=null;Pe.safari&&Pe.safari_version>=26&&(Kn=!1);function ym(r){if(r.setActive)return r.setActive();if(Kn)return r.focus(Kn);let e=[];for(let t=r;t&&(e.push(t,t.scrollTop,t.scrollLeft),t!=t.ownerDocument);t=t.parentNode);if(r.focus(Kn==null?{get preventScroll(){return Kn={preventScroll:!0},!0}}:void 0),!Kn){Kn=!1;for(let t=0;t<e.length;){let n=e[t++],s=e[t++],i=e[t++];n.scrollTop!=s&&(n.scrollTop=s),n.scrollLeft!=i&&(n.scrollLeft=i)}}}let ld;function Ui(r,e,t=e){let n=ld||(ld=document.createRange());return n.setEnd(r,t),n.setStart(r,e),n}function Ts(r,e,t,n){let s={key:e,code:e,keyCode:t,which:t,cancelable:!0};n&&({altKey:s.altKey,ctrlKey:s.ctrlKey,shiftKey:s.shiftKey,metaKey:s.metaKey}=n);let i=new KeyboardEvent("keydown",s);i.synthetic=!0,r.dispatchEvent(i);let o=new KeyboardEvent("keyup",s);return o.synthetic=!0,r.dispatchEvent(o),i.defaultPrevented||o.defaultPrevented}function d2(r){for(;r;){if(r&&(r.nodeType==9||r.nodeType==11&&r.host))return r;r=r.assignedSlot||r.parentNode}return null}function f2(r,e){let t=e.focusNode,n=e.focusOffset;if(!t||e.anchorNode!=t||e.anchorOffset!=n)return!1;for(n=Math.min(n,mn(t));;)if(n){if(t.nodeType!=1)return!1;let s=t.childNodes[n-1];s.contentEditable=="false"?n--:(t=s,n=mn(t))}else{if(t==r)return!0;n=Dn(t),t=t.parentNode}}function km(r){return r.scrollTop>Math.max(1,r.scrollHeight-r.clientHeight-4)}function wm(r,e){for(let t=r,n=e;;){if(t.nodeType==3&&n>0)return{node:t,offset:n};if(t.nodeType==1&&n>0){if(t.contentEditable=="false")return null;t=t.childNodes[n-1],n=mn(t)}else if(t.parentNode&&!Qa(t))n=Dn(t),t=t.parentNode;else return null}}function Sm(r,e){for(let t=r,n=e;;){if(t.nodeType==3&&n<t.nodeValue.length)return{node:t,offset:n};if(t.nodeType==1&&n<t.childNodes.length){if(t.contentEditable=="false")return null;t=t.childNodes[n],n=0}else if(t.parentNode&&!Qa(t))n=Dn(t)+1,t=t.parentNode;else return null}}class Ar{constructor(e,t,n=!0){this.node=e,this.offset=t,this.precise=n}static before(e,t){return new Ar(e.parentNode,Dn(e),t)}static after(e,t){return new Ar(e.parentNode,Dn(e)+1,t)}}var ut=(function(r){return r[r.LTR=0]="LTR",r[r.RTL=1]="RTL",r})(ut||(ut={}));const ds=ut.LTR,Lu=ut.RTL;function $m(r){let e=[];for(let t=0;t<r.length;t++)e.push(1<<+r[t]);return e}const p2=$m("88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008"),m2=$m("4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333"),Dc=Object.create(null),Vr=[];for(let r of["()","[]","{}"]){let e=r.charCodeAt(0),t=r.charCodeAt(1);Dc[e]=t,Dc[t]=-e}function Cm(r){return r<=247?p2[r]:1424<=r&&r<=1524?2:1536<=r&&r<=1785?m2[r-1536]:1774<=r&&r<=2220?4:8192<=r&&r<=8204?256:64336<=r&&r<=65023?4:1}const g2=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/;class Fr{get dir(){return this.level%2?Lu:ds}constructor(e,t,n){this.from=e,this.to=t,this.level=n}side(e,t){return this.dir==t==e?this.to:this.from}forward(e,t){return e==(this.dir==t)}static find(e,t,n,s){let i=-1;for(let o=0;o<e.length;o++){let a=e[o];if(a.from<=t&&a.to>=t){if(a.level==n)return o;(i<0||(s!=0?s<0?a.from<t:a.to>t:e[i].level>a.level))&&(i=o)}}if(i<0)throw new RangeError("Index out of range");return i}}function Qm(r,e){if(r.length!=e.length)return!1;for(let t=0;t<r.length;t++){let n=r[t],s=e[t];if(n.from!=s.from||n.to!=s.to||n.direction!=s.direction||!Qm(n.inner,s.inner))return!1}return!0}const lt=[];function O2(r,e,t,n,s){for(let i=0;i<=n.length;i++){let o=i?n[i-1].to:e,a=i<n.length?n[i].from:t,l=i?256:s;for(let c=o,u=l,h=l;c<a;c++){let p=Cm(r.charCodeAt(c));p==512?p=u:p==8&&h==4&&(p=16),lt[c]=p==4?2:p,p&7&&(h=p),u=p}for(let c=o,u=l,h=l;c<a;c++){let p=lt[c];if(p==128)c<a-1&&u==lt[c+1]&&u&24?p=lt[c]=u:lt[c]=256;else if(p==64){let f=c+1;for(;f<a&<[f]==64;)f++;let g=c&&u==8||f<t&<[f]==8?h==1?1:8:256;for(let O=c;O<f;O++)lt[O]=g;c=f-1}else p==8&&h==1&&(lt[c]=1);u=p,p&7&&(h=p)}}}function v2(r,e,t,n,s){let i=s==1?2:1;for(let o=0,a=0,l=0;o<=n.length;o++){let c=o?n[o-1].to:e,u=o<n.length?n[o].from:t;for(let h=c,p,f,g;h<u;h++)if(f=Dc[p=r.charCodeAt(h)])if(f<0){for(let O=a-3;O>=0;O-=3)if(Vr[O+1]==-f){let y=Vr[O+2],b=y&2?s:y&4?y&1?i:s:0;b&&(lt[h]=lt[Vr[O]]=b),a=O;break}}else{if(Vr.length==189)break;Vr[a++]=h,Vr[a++]=p,Vr[a++]=l}else if((g=lt[h])==2||g==1){let O=g==s;l=O?0:1;for(let y=a-3;y>=0;y-=3){let b=Vr[y+2];if(b&2)break;if(O)Vr[y+2]|=2;else{if(b&4)break;Vr[y+2]|=4}}}}}function b2(r,e,t,n){for(let s=0,i=n;s<=t.length;s++){let o=s?t[s-1].to:r,a=s<t.length?t[s].from:e;for(let l=o;l<a;){let c=lt[l];if(c==256){let u=l+1;for(;;)if(u==a){if(s==t.length)break;u=t[s++].to,a=s<t.length?t[s].from:e}else if(lt[u]==256)u++;else break;let h=i==1,p=(u<e?lt[u]:n)==1,f=h==p?h?1:2:n;for(let g=u,O=s,y=O?t[O-1].to:r;g>l;)g==y&&(g=t[--O].from,y=O?t[O-1].to:r),lt[--g]=f;l=u}else i=c,l++}}}function Lc(r,e,t,n,s,i,o){let a=n%2?2:1;if(n%2==s%2)for(let l=e,c=0;l<t;){let u=!0,h=!1;if(c==i.length||l<i[c].from){let O=lt[l];O!=a&&(u=!1,h=O==16)}let p=!u&&a==1?[]:null,f=u?n:n+1,g=l;e:for(;;)if(c<i.length&&g==i[c].from){if(h)break e;let O=i[c];if(!u)for(let y=O.to,b=c+1;;){if(y==t)break e;if(b<i.length&&i[b].from==y)y=i[b++].to;else{if(lt[y]==a)break e;break}}if(c++,p)p.push(O);else{O.from>l&&o.push(new Fr(l,O.from,f));let y=O.direction==ds!=!(f%2);Xc(r,y?n+1:n,s,O.inner,O.from,O.to,o),l=O.to}g=O.to}else{if(g==t||(u?lt[g]!=a:lt[g]==a))break;g++}p?Lc(r,l,g,n+1,s,p,o):l<g&&o.push(new Fr(l,g,f)),l=g}else for(let l=t,c=i.length;l>e;){let u=!0,h=!1;if(!c||l>i[c-1].to){let O=lt[l-1];O!=a&&(u=!1,h=O==16)}let p=!u&&a==1?[]:null,f=u?n:n+1,g=l;e:for(;;)if(c&&g==i[c-1].to){if(h)break e;let O=i[--c];if(!u)for(let y=O.from,b=c;;){if(y==e)break e;if(b&&i[b-1].to==y)y=i[--b].from;else{if(lt[y-1]==a)break e;break}}if(p)p.push(O);else{O.to<l&&o.push(new Fr(O.to,l,f));let y=O.direction==ds!=!(f%2);Xc(r,y?n+1:n,s,O.inner,O.from,O.to,o),l=O.from}g=O.from}else{if(g==e||(u?lt[g-1]!=a:lt[g-1]==a))break;g--}p?Lc(r,g,l,n+1,s,p,o):g<l&&o.push(new Fr(g,l,f)),l=g}}function Xc(r,e,t,n,s,i,o){let a=e%2?2:1;O2(r,s,i,n,a),v2(r,s,i,n,a),b2(s,i,n,a),Lc(r,s,i,e,t,n,o)}function x2(r,e,t){if(!r)return[new Fr(0,0,e==Lu?1:0)];if(e==ds&&!t.length&&!g2.test(r))return Pm(r.length);if(t.length)for(;r.length>lt.length;)lt[lt.length]=256;let n=[],s=e==ds?0:1;return Xc(r,s,s,t,0,r.length,n),n}function Pm(r){return[new Fr(0,r,0)]}let Tm="";function y2(r,e,t,n,s){var i;let o=n.head-r.from,a=Fr.find(e,o,(i=n.bidiLevel)!==null&&i!==void 0?i:-1,n.assoc),l=e[a],c=l.side(s,t);if(o==c){let p=a+=s?1:-1;if(p<0||p>=e.length)return null;l=e[a=p],o=l.side(!s,t),c=l.side(s,t)}let u=Qt(r.text,o,l.forward(s,t));(u<l.from||u>l.to)&&(u=c),Tm=r.text.slice(Math.min(o,u),Math.max(o,u));let h=a==(s?e.length-1:0)?null:e[a+(s?1:-1)];return h&&u==c&&h.level+(s?0:1)<l.level?te.cursor(h.side(!s,t)+r.from,h.forward(s,t)?1:-1,h.level):te.cursor(u+r.from,l.forward(s,t)?-1:1,l.level)}function k2(r,e,t){for(let n=e;n<t;n++){let s=Cm(r.charCodeAt(n));if(s==1)return ds;if(s==2||s==4)return Lu}return ds}const Mm=$e.define(),Am=$e.define(),_m=$e.define(),Rm=$e.define(),Ic=$e.define(),Bm=$e.define(),Zm=$e.define(),Xu=$e.define(),Iu=$e.define(),Em=$e.define({combine:r=>r.some(e=>e)}),Dm=$e.define({combine:r=>r.some(e=>e)}),Lm=$e.define();class Ms{constructor(e,t="nearest",n="nearest",s=5,i=5,o=!1){this.range=e,this.y=t,this.x=n,this.yMargin=s,this.xMargin=i,this.isSnapshot=o}map(e){return e.empty?this:new Ms(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new Ms(te.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const Lo=Ne.define({map:(r,e)=>r.map(e)}),Xm=Ne.define();function Gt(r,e,t){let n=r.facet(Rm);n.length?n[0](e):window.onerror&&window.onerror(String(e),t,void 0,void 0,e)||(t?console.error(t+":",e):console.error(e))}const cn=$e.define({combine:r=>r.length?r[0]:!0});let w2=0;const Ss=$e.define({combine(r){return r.filter((e,t)=>{for(let n=0;n<t;n++)if(r[n].plugin==e.plugin)return!1;return!0})}});class Ot{constructor(e,t,n,s,i){this.id=e,this.create=t,this.domEventHandlers=n,this.domEventObservers=s,this.baseExtensions=i(this),this.extension=this.baseExtensions.concat(Ss.of({plugin:this,arg:void 0}))}of(e){return this.baseExtensions.concat(Ss.of({plugin:this,arg:e}))}static define(e,t){const{eventHandlers:n,eventObservers:s,provide:i,decorations:o}=t||{};return new Ot(w2++,e,n,s,a=>{let l=[];return o&&l.push(hl.of(c=>{let u=c.plugin(a);return u?o(u):Ee.none})),i&&l.push(i(a)),l})}static fromClass(e,t){return Ot.define((n,s)=>new e(n,s),t)}}class Tl{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(e){if(this.value){if(this.mustUpdate){let t=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(t)}catch(n){if(Gt(t.state,n,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(e,this.spec.arg)}catch(t){Gt(e.state,t,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var t;if(!((t=this.value)===null||t===void 0)&&t.destroy)try{this.value.destroy()}catch(n){Gt(e.state,n,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const Im=$e.define(),Vu=$e.define(),hl=$e.define(),Vm=$e.define(),zu=$e.define(),bo=$e.define(),zm=$e.define();function cd(r,e){let t=r.state.facet(zm);if(!t.length)return t;let n=t.map(i=>i instanceof Function?i(r):i),s=[];return Ke.spans(n,e.from,e.to,{point(){},span(i,o,a,l){let c=i-e.from,u=o-e.from,h=s;for(let p=a.length-1;p>=0;p--,l--){let f=a[p].spec.bidiIsolate,g;if(f==null&&(f=k2(e.text,c,u)),l>0&&h.length&&(g=h[h.length-1]).to==c&&g.direction==f)g.to=u,h=g.inner;else{let O={from:c,to:u,direction:f,inner:[]};h.push(O),h=O.inner}}}}),s}const Nm=$e.define();function Nu(r){let e=0,t=0,n=0,s=0;for(let i of r.state.facet(Nm)){let o=i(r);o&&(o.left!=null&&(e=Math.max(e,o.left)),o.right!=null&&(t=Math.max(t,o.right)),o.top!=null&&(n=Math.max(n,o.top)),o.bottom!=null&&(s=Math.max(s,o.bottom)))}return{left:e,right:t,top:n,bottom:s}}const Ai=$e.define();class pr{constructor(e,t,n,s){this.fromA=e,this.toA=t,this.fromB=n,this.toB=s}join(e){return new pr(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let t=e.length,n=this;for(;t>0;t--){let s=e[t-1];if(!(s.fromA>n.toA)){if(s.toA<n.fromA)break;n=n.join(s),e.splice(t-1,1)}}return e.splice(t,0,n),e}static extendWithRanges(e,t){if(t.length==0)return e;let n=[];for(let s=0,i=0,o=0;;){let a=s<e.length?e[s].fromB:1e9,l=i<t.length?t[i]:1e9,c=Math.min(a,l);if(c==1e9)break;let u=c+o,h=c,p=u;for(;;)if(i<t.length&&t[i]<=h){let f=t[i+1];i+=2,h=Math.max(h,f);for(let g=s;g<e.length&&e[g].fromB<=h;g++)o=e[g].toA-e[g].toB;p=Math.max(p,f+o)}else if(s<e.length&&e[s].fromB<=h){let f=e[s++];h=Math.max(h,f.toB),p=Math.max(p,f.toA),o=f.toA-f.toB}else break;n.push(new pr(u,p,c,h))}return n}}class Ta{constructor(e,t,n){this.view=e,this.state=t,this.transactions=n,this.flags=0,this.startState=e.state,this.changes=wt.empty(this.startState.doc.length);for(let i of n)this.changes=this.changes.compose(i.changes);let s=[];this.changes.iterChangedRanges((i,o,a,l)=>s.push(new pr(i,o,a,l))),this.changedRanges=s}static create(e,t,n){return new Ta(e,t,n)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}}const S2=[];class bt{constructor(e,t,n=0){this.dom=e,this.length=t,this.flags=n,this.parent=null,e.cmTile=this}get breakAfter(){return this.flags&1}get children(){return S2}isWidget(){return!1}get isHidden(){return!1}isComposite(){return!1}isLine(){return!1}isText(){return!1}isBlock(){return!1}get domAttrs(){return null}sync(e){if(this.flags|=2,this.flags&4){this.flags&=-5;let t=this.domAttrs;t&&i2(this.dom,t)}}toString(){return this.constructor.name+(this.children.length?`(${this.children})`:"")+(this.breakAfter?"#":"")}destroy(){this.parent=null}setDOM(e){this.dom=e,e.cmTile=this}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e,t=this.posAtStart){let n=t;for(let s of this.children){if(s==e)return n;n+=s.length+s.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(e){return this.posBefore(e)+e.length}covers(e){return!0}coordsIn(e,t){return null}domPosFor(e,t){let n=Dn(this.dom),s=this.length?e>0:t>0;return new Ar(this.parent.dom,n+(s?1:0),e==0||e==this.length)}markDirty(e){this.flags&=-3,e&&(this.flags|=4),this.parent&&this.parent.flags&2&&this.parent.markDirty(!1)}get overrideDOMText(){return null}get root(){for(let e=this;e;e=e.parent)if(e instanceof fl)return e;return null}static get(e){return e.cmTile}}class dl extends bt{constructor(e){super(e,0),this._children=[]}isComposite(){return!0}get children(){return this._children}get lastChild(){return this.children.length?this.children[this.children.length-1]:null}append(e){this.children.push(e),e.parent=this}sync(e){if(this.flags&2)return;super.sync(e);let t=this.dom,n=null,s,i=e?.node==t?e:null,o=0;for(let a of this.children){if(a.sync(e),o+=a.length+a.breakAfter,s=n?n.nextSibling:t.firstChild,i&&s!=a.dom&&(i.written=!0),a.dom.parentNode==t)for(;s&&s!=a.dom;)s=ud(s);else t.insertBefore(a.dom,s);n=a.dom}for(s=n?n.nextSibling:t.firstChild,i&&s&&(i.written=!0);s;)s=ud(s);this.length=o}}function ud(r){let e=r.nextSibling;return r.parentNode.removeChild(r),e}class fl extends dl{constructor(e,t){super(t),this.view=e}owns(e){for(;e;e=e.parent)if(e==this)return!0;return!1}isBlock(){return!0}nearest(e){for(;;){if(!e)return null;let t=bt.get(e);if(t&&this.owns(t))return t;e=e.parentNode}}blockTiles(e){for(let t=[],n=this,s=0,i=0;;)if(s==n.children.length){if(!t.length)return;n=n.parent,n.breakAfter&&i++,s=t.pop()}else{let o=n.children[s++];if(o instanceof un)t.push(s),n=o,s=0;else{let a=i+o.length,l=e(o,i);if(l!==void 0)return l;i=a+o.breakAfter}}}resolveBlock(e,t){let n,s=-1,i,o=-1;if(this.blockTiles((a,l)=>{let c=l+a.length;if(e>=l&&e<=c){if(a.isWidget()&&t>=-1&&t<=1){if(a.flags&32)return!0;a.flags&16&&(n=void 0)}(l<e||e==c&&(t<-1?a.length:a.covers(1)))&&(!n||!a.isWidget()&&n.isWidget())&&(n=a,s=e-l),(c>e||e==l&&(t>1?a.length:a.covers(-1)))&&(!i||!a.isWidget()&&i.isWidget())&&(i=a,o=e-l)}}),!n&&!i)throw new Error("No tile at position "+e);return n&&t<0||!i?{tile:n,offset:s}:{tile:i,offset:o}}}class un extends dl{constructor(e,t){super(e),this.wrapper=t}isBlock(){return!0}covers(e){return this.children.length?e<0?this.children[0].covers(-1):this.lastChild.covers(1):!1}get domAttrs(){return this.wrapper.attributes}static of(e,t){let n=new un(t||document.createElement(e.tagName),e);return t||(n.flags|=4),n}}class Is extends dl{constructor(e,t){super(e),this.attrs=t}isLine(){return!0}static start(e,t,n){let s=new Is(t||document.createElement("div"),e);return(!t||!n)&&(s.flags|=4),s}get domAttrs(){return this.attrs}resolveInline(e,t,n){let s=null,i=-1,o=null,a=-1;function l(u,h){for(let p=0,f=0;p<u.children.length&&f<=h;p++){let g=u.children[p],O=f+g.length;O>=h&&(g.isComposite()?l(g,h-f):(!o||o.isHidden&&(t>0||n&&C2(o,g)))&&(O>h||g.flags&32)?(o=g,a=h-f):(f<h||g.flags&16&&!g.isHidden)&&(s=g,i=h-f)),f=O}}l(this,e);let c=(t<0?s:o)||s||o;return c?{tile:c,offset:c==s?i:a}:null}coordsIn(e,t){let n=this.resolveInline(e,t,!0);return n?n.tile.coordsIn(Math.max(0,n.offset),t):$2(this)}domIn(e,t){let n=this.resolveInline(e,t);if(n){let{tile:s,offset:i}=n;if(this.dom.contains(s.dom))return s.isText()?new Ar(s.dom,Math.min(s.dom.nodeValue.length,i)):s.domPosFor(i,s.flags&16?1:s.flags&32?-1:t);let o=n.tile.parent,a=!1;for(let l of o.children){if(a)return new Ar(l.dom,0);l==n.tile&&(a=!0)}}return new Ar(this.dom,0)}}function $2(r){let e=r.dom.lastChild;if(!e)return r.dom.getBoundingClientRect();let t=ha(e);return t[t.length-1]||null}function C2(r,e){let t=r.coordsIn(0,1),n=e.coordsIn(0,1);return t&&n&&n.top<t.bottom}class Ft extends dl{constructor(e,t){super(e),this.mark=t}get domAttrs(){return this.mark.attrs}static of(e,t){let n=new Ft(t||document.createElement(e.tagName),e);return t||(n.flags|=4),n}}class ns extends bt{constructor(e,t){super(e,t.length),this.text=t}sync(e){this.flags&2||(super.sync(e),this.dom.nodeValue!=this.text&&(e&&e.node==this.dom&&(e.written=!0),this.dom.nodeValue=this.text))}isText(){return!0}toString(){return JSON.stringify(this.text)}coordsIn(e,t){let n=this.dom.nodeValue.length;e>n&&(e=n);let s=e,i=e,o=0;e==0&&t<0||e==n&&t>=0?Pe.chrome||Pe.gecko||(e?(s--,o=1):i<n&&(i++,o=-1)):t<0?s--:i<n&&i++;let a=Ui(this.dom,s,i).getClientRects();if(!a.length)return null;let l=a[(o?o<0:t>=0)?0:a.length-1];return Pe.safari&&!o&&l.width==0&&(l=Array.prototype.find.call(a,c=>c.width)||l),o?Pa(l,o<0):l||null}static of(e,t){let n=new ns(t||document.createTextNode(e),e);return t||(n.flags|=2),n}}class fs extends bt{constructor(e,t,n,s){super(e,t,s),this.widget=n}isWidget(){return!0}get isHidden(){return this.widget.isHidden}covers(e){return this.flags&48?!1:(this.flags&(e<0?64:128))>0}coordsIn(e,t){return this.coordsInWidget(e,t,!1)}coordsInWidget(e,t,n){let s=this.widget.coordsAt(this.dom,e,t);if(s)return s;if(n)return Pa(this.dom.getBoundingClientRect(),this.length?e==0:t<=0);{let i=this.dom.getClientRects(),o=null;if(!i.length)return null;let a=this.flags&16?!0:this.flags&32?!1:e>0;for(let l=a?i.length-1:0;o=i[l],!(e>0?l==0:l==i.length-1||o.top<o.bottom);l+=a?-1:1);return Pa(o,!a)}}get overrideDOMText(){if(!this.length)return rt.empty;let{root:e}=this;if(!e)return rt.empty;let t=this.posAtStart;return e.view.state.doc.slice(t,t+this.length)}destroy(){super.destroy(),this.widget.destroy(this.dom)}static of(e,t,n,s,i){return i||(i=e.toDOM(t),e.editable||(i.contentEditable="false")),new fs(i,n,e,s)}}class Ma extends bt{constructor(e){let t=document.createElement("img");t.className="cm-widgetBuffer",t.setAttribute("aria-hidden","true"),super(t,0,e)}get isHidden(){return!0}get overrideDOMText(){return rt.empty}coordsIn(e){return this.dom.getBoundingClientRect()}}class Q2{constructor(e){this.index=0,this.beforeBreak=!1,this.parents=[],this.tile=e}advance(e,t,n){let{tile:s,index:i,beforeBreak:o,parents:a}=this;for(;e||t>0;)if(s.isComposite())if(o){if(!e)break;n&&n.break(),e--,o=!1}else if(i==s.children.length){if(!e&&!a.length)break;n&&n.leave(s),o=!!s.breakAfter,{tile:s,index:i}=a.pop(),i++}else{let l=s.children[i],c=l.breakAfter;(t>0?l.length<=e:l.length<e)&&(!n||n.skip(l,0,l.length)!==!1||!l.isComposite)?(o=!!c,i++,e-=l.length):(a.push({tile:s,index:i}),s=l,i=0,n&&l.isComposite()&&n.enter(l))}else if(i==s.length)o=!!s.breakAfter,{tile:s,index:i}=a.pop(),i++;else if(e){let l=Math.min(e,s.length-i);n&&n.skip(s,i,i+l),e-=l,i+=l}else break;return this.tile=s,this.index=i,this.beforeBreak=o,this}get root(){return this.parents.length?this.parents[0].tile:this.tile}}class P2{constructor(e,t,n,s){this.from=e,this.to=t,this.wrapper=n,this.rank=s}}class T2{constructor(e,t,n){this.cache=e,this.root=t,this.blockWrappers=n,this.curLine=null,this.lastBlock=null,this.afterWidget=null,this.pos=0,this.wrappers=[],this.wrapperPos=0}addText(e,t,n,s){var i;this.flushBuffer();let o=this.ensureMarks(t,n),a=o.lastChild;if(a&&a.isText()&&!(a.flags&8)&&a.length+e.length<512){this.cache.reused.set(a,2);let l=o.children[o.children.length-1]=new ns(a.dom,a.text+e);l.parent=o}else o.append(s||ns.of(e,(i=this.cache.find(ns))===null||i===void 0?void 0:i.dom));this.pos+=e.length,this.afterWidget=null}addComposition(e,t){let n=this.curLine;n.dom!=t.line.dom&&(n.setDOM(this.cache.reused.has(t.line)?Ml(t.line.dom):t.line.dom),this.cache.reused.set(t.line,2));let s=n;for(let a=t.marks.length-1;a>=0;a--){let l=t.marks[a],c=s.lastChild;if(c instanceof Ft&&c.mark.eq(l.mark))c.dom!=l.dom&&c.setDOM(Ml(l.dom)),s=c;else{if(this.cache.reused.get(l)){let h=bt.get(l.dom);h&&h.setDOM(Ml(l.dom))}let u=Ft.of(l.mark,l.dom);s.append(u),s=u}this.cache.reused.set(l,2)}let i=bt.get(e.text);i&&this.cache.reused.set(i,2);let o=new ns(e.text,e.text.nodeValue);o.flags|=8,s.append(o)}addInlineWidget(e,t,n){let s=this.afterWidget&&e.flags&48&&(this.afterWidget.flags&48)==(e.flags&48);s||this.flushBuffer();let i=this.ensureMarks(t,n);!s&&!(e.flags&16)&&i.append(this.getBuffer(1)),i.append(e),this.pos+=e.length,this.afterWidget=e}addMark(e,t,n){this.flushBuffer(),this.ensureMarks(t,n).append(e),this.pos+=e.length,this.afterWidget=null}addBlockWidget(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}continueWidget(e){let t=this.afterWidget||this.lastBlock;t.length+=e,this.pos+=e}addLineStart(e,t){var n;e||(e=Wm);let s=Is.start(e,t||((n=this.cache.find(Is))===null||n===void 0?void 0:n.dom),!!t);this.getBlockPos().append(this.lastBlock=this.curLine=s)}addLine(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}addBreak(){this.lastBlock.flags|=1,this.endLine(),this.pos++}addLineStartIfNotCovered(e){this.blockPosCovered()||this.addLineStart(e)}ensureLine(e){this.curLine||this.addLineStart(e)}ensureMarks(e,t){var n;let s=this.curLine;for(let i=e.length-1;i>=0;i--){let o=e[i],a;if(t>0&&(a=s.lastChild)&&a instanceof Ft&&a.mark.eq(o))s=a,t--;else{let l=Ft.of(o,(n=this.cache.find(Ft,c=>c.mark.eq(o)))===null||n===void 0?void 0:n.dom);s.append(l),s=l,t=0}}return s}endLine(){if(this.curLine){this.flushBuffer();let e=this.curLine.lastChild;(!e||!hd(this.curLine,!1)||e.dom.nodeName!="BR"&&e.isWidget()&&!(Pe.ios&&hd(this.curLine,!0)))&&this.curLine.append(this.cache.findWidget(Al,0,32)||new fs(Al.toDOM(),0,Al,32)),this.curLine=this.afterWidget=null}}updateBlockWrappers(){this.wrapperPos>this.pos+1e4&&(this.blockWrappers.goto(this.pos),this.wrappers.length=0);for(let e=this.wrappers.length-1;e>=0;e--)this.wrappers[e].to<this.pos&&this.wrappers.splice(e,1);for(let e=this.blockWrappers;e.value&&e.from<=this.pos;e.next())if(e.to>=this.pos){let t=new P2(e.from,e.to,e.value,e.rank),n=this.wrappers.length;for(;n>0&&(this.wrappers[n-1].rank-t.rank||this.wrappers[n-1].to-t.to)<0;)n--;this.wrappers.splice(n,0,t)}this.wrapperPos=this.pos}getBlockPos(){var e;this.updateBlockWrappers();let t=this.root;for(let n of this.wrappers){let s=t.lastChild;if(n.from<this.pos&&s instanceof un&&s.wrapper.eq(n.wrapper))t=s;else{let i=un.of(n.wrapper,(e=this.cache.find(un,o=>o.wrapper.eq(n.wrapper)))===null||e===void 0?void 0:e.dom);t.append(i),t=i}}return t}blockPosCovered(){let e=this.lastBlock;return e!=null&&!e.breakAfter&&(!e.isWidget()||(e.flags&160)>0)}getBuffer(e){let t=2|(e<0?16:32),n=this.cache.find(Ma,void 0,1);return n&&(n.flags=t),n||new Ma(t)}flushBuffer(){this.afterWidget&&!(this.afterWidget.flags&32)&&(this.afterWidget.parent.append(this.getBuffer(-1)),this.afterWidget=null)}}class M2{constructor(e){this.skipCount=0,this.text="",this.textOff=0,this.cursor=e.iter()}skip(e){this.textOff+e<=this.text.length?this.textOff+=e:(this.skipCount+=e-(this.text.length-this.textOff),this.text="",this.textOff=0)}next(e){if(this.textOff==this.text.length){let{value:s,lineBreak:i,done:o}=this.cursor.next(this.skipCount);if(this.skipCount=0,o)throw new Error("Ran out of text content when drawing inline views");this.text=s;let a=this.textOff=Math.min(e,s.length);return i?null:s.slice(0,a)}let t=Math.min(this.text.length,this.textOff+e),n=this.text.slice(this.textOff,t);return this.textOff=t,n}}const Aa=[fs,Is,ns,Ft,Ma,un,fl];for(let r=0;r<Aa.length;r++)Aa[r].bucket=r;class A2{constructor(e){this.view=e,this.buckets=Aa.map(()=>[]),this.index=Aa.map(()=>0),this.reused=new Map}add(e){let t=e.constructor.bucket,n=this.buckets[t];n.length<6?n.push(e):n[this.index[t]=(this.index[t]+1)%6]=e}find(e,t,n=2){let s=e.bucket,i=this.buckets[s],o=this.index[s];for(let a=i.length-1;a>=0;a--){let l=(a+o)%i.length,c=i[l];if((!t||t(c))&&!this.reused.has(c))return i.splice(l,1),l<o&&this.index[s]--,this.reused.set(c,n),c}return null}findWidget(e,t,n){let s=this.buckets[0];if(s.length)for(let i=0,o=0;;i++){if(i==s.length){if(o)return null;o=1,i=0}let a=s[i];if(!this.reused.has(a)&&(o==0?a.widget.compare(e):a.widget.constructor==e.constructor&&e.updateDOM(a.dom,this.view)))return s.splice(i,1),i<this.index[0]&&this.index[0]--,a.widget==e&&a.length==t&&(a.flags&497)==n?(this.reused.set(a,1),a):(this.reused.set(a,2),new fs(a.dom,t,e,a.flags&-498|n))}}reuse(e){return this.reused.set(e,1),e}maybeReuse(e,t=2){if(!this.reused.has(e))return this.reused.set(e,t),e.dom}clear(){for(let e=0;e<this.buckets.length;e++)this.buckets[e].length=this.index[e]=0}}class _2{constructor(e,t,n,s,i){this.view=e,this.decorations=s,this.disallowBlockEffectsFor=i,this.openWidget=!1,this.openMarks=0,this.cache=new A2(e),this.text=new M2(e.state.doc),this.builder=new T2(this.cache,new fl(e,e.contentDOM),Ke.iter(n)),this.cache.reused.set(t,2),this.old=new Q2(t),this.reuseWalker={skip:(o,a,l)=>{if(this.cache.add(o),o.isComposite())return!1},enter:o=>this.cache.add(o),leave:()=>{},break:()=>{}}}run(e,t){let n=t&&this.getCompositionContext(t.text);for(let s=0,i=0,o=0;;){let a=o<e.length?e[o++]:null,l=a?a.fromA:this.old.root.length;if(l>s){let c=l-s;this.preserve(c,!o,!a),s=l,i+=c}if(!a)break;t&&a.fromA<=t.range.fromA&&a.toA>=t.range.toA?(this.forward(a.fromA,t.range.fromA,t.range.fromA<t.range.toA?1:-1),this.emit(i,t.range.fromB),this.cache.clear(),this.builder.addComposition(t,n),this.text.skip(t.range.toB-t.range.fromB),this.forward(t.range.fromA,a.toA),this.emit(t.range.toB,a.toB)):(this.forward(a.fromA,a.toA),this.emit(i,a.toB)),i=a.toB,s=a.toA}return this.builder.curLine&&this.builder.endLine(),this.builder.root}preserve(e,t,n){let s=Z2(this.old),i=this.openMarks;this.old.advance(e,n?1:-1,{skip:(o,a,l)=>{if(o.isWidget())if(this.openWidget)this.builder.continueWidget(l-a);else{let c=l>0||a<o.length?fs.of(o.widget,this.view,l-a,o.flags&496,this.cache.maybeReuse(o)):this.cache.reuse(o);c.flags&256?(c.flags&=-2,this.builder.addBlockWidget(c)):(this.builder.ensureLine(null),this.builder.addInlineWidget(c,s,i),i=s.length)}else if(o.isText())this.builder.ensureLine(null),!a&&l==o.length?this.builder.addText(o.text,s,i,this.cache.reuse(o)):(this.cache.add(o),this.builder.addText(o.text.slice(a,l),s,i)),i=s.length;else if(o.isLine())o.flags&=-2,this.cache.reused.set(o,1),this.builder.addLine(o);else if(o instanceof Ma)this.cache.add(o);else if(o instanceof Ft)this.builder.ensureLine(null),this.builder.addMark(o,s,i),this.cache.reused.set(o,1),i=s.length;else return!1;this.openWidget=!1},enter:o=>{o.isLine()?this.builder.addLineStart(o.attrs,this.cache.maybeReuse(o)):(this.cache.add(o),o instanceof Ft&&s.unshift(o.mark)),this.openWidget=!1},leave:o=>{o.isLine()?s.length&&(s.length=i=0):o instanceof Ft&&(s.shift(),i=Math.min(i,s.length))},break:()=>{this.builder.addBreak(),this.openWidget=!1}}),this.text.skip(e)}emit(e,t){let n=null,s=this.builder,i=0,o=Ke.spans(this.decorations,e,t,{point:(a,l,c,u,h,p)=>{if(c instanceof hs){if(this.disallowBlockEffectsFor[p]){if(c.block)throw new RangeError("Block decorations may not be specified via plugins");if(l>this.view.state.doc.lineAt(a).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}if(i=u.length,h>u.length)s.continueWidget(l-a);else{let f=c.widget||(c.block?Vs.block:Vs.inline),g=R2(c),O=this.cache.findWidget(f,l-a,g)||fs.of(f,this.view,l-a,g);c.block?(c.startSide>0&&s.addLineStartIfNotCovered(n),s.addBlockWidget(O)):(s.ensureLine(n),s.addInlineWidget(O,u,h))}n=null}else n=B2(n,c);l>a&&this.text.skip(l-a)},span:(a,l,c,u)=>{for(let h=a;h<l;){let p=this.text.next(Math.min(512,l-h));p==null?(s.addLineStartIfNotCovered(n),s.addBreak(),h++):(s.ensureLine(n),s.addText(p,c,h==a?u:c.length),h+=p.length),n=null}}});s.addLineStartIfNotCovered(n),this.openWidget=o>i,this.openMarks=o}forward(e,t,n=1){t-e<=10?this.old.advance(t-e,n,this.reuseWalker):(this.old.advance(5,-1,this.reuseWalker),this.old.advance(t-e-10,-1),this.old.advance(5,n,this.reuseWalker))}getCompositionContext(e){let t=[],n=null;for(let s=e.parentNode;;s=s.parentNode){let i=bt.get(s);if(s==this.view.contentDOM)break;i instanceof Ft?t.push(i):i?.isLine()?n=i:i instanceof un||(s.nodeName=="DIV"&&!n&&s!=this.view.contentDOM?n=new Is(s,Wm):n||t.push(Ft.of(new Oo({tagName:s.nodeName.toLowerCase(),attributes:o2(s)}),s)))}return{line:n,marks:t}}}function hd(r,e){let t=n=>{for(let s of n.children)if((e?s.isText():s.length)||t(s))return!0;return!1};return t(r)}function R2(r){let e=r.isReplace?(r.startSide<0?64:0)|(r.endSide>0?128:0):r.startSide>0?32:16;return r.block&&(e|=256),e}const Wm={class:"cm-line"};function B2(r,e){let t=e.spec.attributes,n=e.spec.class;return!t&&!n||(r||(r={class:"cm-line"}),t&&Eu(t,r),n&&(r.class+=" "+n)),r}function Z2(r){let e=[];for(let t=r.parents.length;t>1;t--){let n=t==r.parents.length?r.tile:r.parents[t].tile;n instanceof Ft&&e.push(n.mark)}return e}function Ml(r){let e=bt.get(r);return e&&e.setDOM(r.cloneNode()),r}class Vs extends tn{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}Vs.inline=new Vs("span");Vs.block=new Vs("div");const Al=new class extends tn{toDOM(){return document.createElement("br")}get isHidden(){return!0}get editable(){return!0}};class dd{constructor(e){this.view=e,this.decorations=[],this.blockWrappers=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.editContextFormatting=Ee.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.updateDeco(),this.tile=new fl(e,e.contentDOM),this.updateInner([new pr(0,0,0,e.state.doc.length)],null)}update(e){var t;let n=e.changedRanges;this.minWidth>0&&n.length&&(n.every(({fromA:u,toA:h})=>h<this.minWidthFrom||u>this.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(e);let s=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((t=this.domChanged)===null||t===void 0)&&t.newSel?s=this.domChanged.newSel.head:!W2(e.changes,this.hasComposition)&&!e.selectionSet&&(s=e.state.selection.main.head));let i=s>-1?D2(this.view,e.changes,s):null;if(this.domChanged=null,this.hasComposition){let{from:u,to:h}=this.hasComposition;n=new pr(u,h,e.changes.mapPos(u,-1),e.changes.mapPos(h,1)).addToSet(n.slice())}this.hasComposition=i?{from:i.range.fromB,to:i.range.toB}:null,(Pe.ie||Pe.chrome)&&!i&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let o=this.decorations,a=this.blockWrappers;this.updateDeco();let l=I2(o,this.decorations,e.changes);l.length&&(n=pr.extendWithRanges(n,l));let c=z2(a,this.blockWrappers,e.changes);return c.length&&(n=pr.extendWithRanges(n,c)),i&&!n.some(u=>u.fromA<=i.range.fromA&&u.toA>=i.range.toA)&&(n=i.range.addToSet(n.slice())),this.tile.flags&2&&n.length==0?!1:(this.updateInner(n,i),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,t){this.view.viewState.mustMeasureContent=!0;let{observer:n}=this.view;n.ignore(()=>{if(t||e.length){let o=this.tile,a=new _2(this.view,o,this.blockWrappers,this.decorations,this.dynamicDecorationMap);this.tile=a.run(e,t),Vc(o,a.cache.reused)}this.tile.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.tile.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let i=Pe.chrome||Pe.ios?{node:n.selectionRange.focusNode,written:!1}:void 0;this.tile.sync(i),i&&(i.written||n.selectionRange.focusNode!=i.node||!this.tile.dom.contains(i.node))&&(this.forceSelection=!0),this.tile.dom.style.height=""});let s=[];if(this.view.viewport.from||this.view.viewport.to<this.view.state.doc.length)for(let i of this.tile.children)i.isWidget()&&i.widget instanceof _l&&s.push(i.dom);n.updateGaps(s)}updateEditContextFormatting(e){this.editContextFormatting=this.editContextFormatting.map(e.changes);for(let t of e.transactions)for(let n of t.effects)n.is(Xm)&&(this.editContextFormatting=n.value)}updateSelection(e=!1,t=!1){(e||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange();let{dom:n}=this.tile,s=this.view.root.activeElement,i=s==n,o=!i&&!(this.view.state.facet(cn)||n.tabIndex>-1)&&Li(n,this.view.observer.selectionRange)&&!(s&&n.contains(s));if(!(i||t||o))return;let a=this.forceSelection;this.forceSelection=!1;let l=this.view.state.selection.main,c,u;if(l.empty?u=c=this.inlineDOMNearPos(l.anchor,l.assoc||1):(u=this.inlineDOMNearPos(l.head,l.head==l.from?1:-1),c=this.inlineDOMNearPos(l.anchor,l.anchor==l.from?1:-1)),Pe.gecko&&l.empty&&!this.hasComposition&&E2(c)){let p=document.createTextNode("");this.view.observer.ignore(()=>c.node.insertBefore(p,c.node.childNodes[c.offset]||null)),c=u=new Ar(p,0),a=!0}let h=this.view.observer.selectionRange;(a||!h.focusNode||(!Xi(c.node,c.offset,h.anchorNode,h.anchorOffset)||!Xi(u.node,u.offset,h.focusNode,h.focusOffset))&&!this.suppressWidgetCursorChange(h,l))&&(this.view.observer.ignore(()=>{Pe.android&&Pe.chrome&&n.contains(h.focusNode)&&N2(h.focusNode,n)&&(n.blur(),n.focus({preventScroll:!0}));let p=Fi(this.view.root);if(p)if(l.empty){if(Pe.gecko){let f=L2(c.node,c.offset);if(f&&f!=3){let g=(f==1?wm:Sm)(c.node,c.offset);g&&(c=new Ar(g.node,g.offset))}}p.collapse(c.node,c.offset),l.bidiLevel!=null&&p.caretBidiLevel!==void 0&&(p.caretBidiLevel=l.bidiLevel)}else if(p.extend){p.collapse(c.node,c.offset);try{p.extend(u.node,u.offset)}catch{}}else{let f=document.createRange();l.anchor>l.head&&([c,u]=[u,c]),f.setEnd(u.node,u.offset),f.setStart(c.node,c.offset),p.removeAllRanges(),p.addRange(f)}o&&this.view.root.activeElement==n&&(n.blur(),s&&s.focus())}),this.view.observer.setSelectionRange(c,u)),this.impreciseAnchor=c.precise?null:new Ar(h.anchorNode,h.anchorOffset),this.impreciseHead=u.precise?null:new Ar(h.focusNode,h.focusOffset)}suppressWidgetCursorChange(e,t){return this.hasComposition&&t.empty&&Xi(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==t.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,t=e.state.selection.main,n=Fi(e.root),{anchorNode:s,anchorOffset:i}=e.observer.selectionRange;if(!n||!t.empty||!t.assoc||!n.modify)return;let o=this.lineAt(t.head,t.assoc);if(!o)return;let a=o.posAtStart;if(t.head==a||t.head==a+o.length)return;let l=this.coordsAt(t.head,-1),c=this.coordsAt(t.head,1);if(!l||!c||l.bottom>c.top)return;let u=this.domAtPos(t.head+t.assoc,t.assoc);n.collapse(u.node,u.offset),n.modify("move",t.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let h=e.observer.selectionRange;e.docView.posFromDOM(h.anchorNode,h.anchorOffset)!=t.from&&n.collapse(s,i)}posFromDOM(e,t){let n=this.tile.nearest(e);if(!n)return this.tile.dom.compareDocumentPosition(e)&2?0:this.view.state.doc.length;let s=n.posAtStart;if(n.isComposite()){let i;if(e==n.dom)i=n.dom.childNodes[t];else{let o=mn(e)==0?0:t==0?-1:1;for(;;){let a=e.parentNode;if(a==n.dom)break;o==0&&a.firstChild!=a.lastChild&&(e==a.firstChild?o=-1:o=1),e=a}o<0?i=e:i=e.nextSibling}if(i==n.dom.firstChild)return s;for(;i&&!bt.get(i);)i=i.nextSibling;if(!i)return s+n.length;for(let o=0,a=s;;o++){let l=n.children[o];if(l.dom==i)return a;a+=l.length+l.breakAfter}}else return n.isText()?e==n.dom?s+t:s+(t?n.length:0):s}domAtPos(e,t){let{tile:n,offset:s}=this.tile.resolveBlock(e,t);return n.isWidget()?n.domPosFor(e,t):n.domIn(s,t)}inlineDOMNearPos(e,t){let n,s=-1,i=!1,o,a=-1,l=!1;return this.tile.blockTiles((c,u)=>{if(c.isWidget()){if(c.flags&32&&u>=e)return!0;c.flags&16&&(i=!0)}else{let h=u+c.length;if(u<=e&&(n=c,s=e-u,i=h<e),h>=e&&!o&&(o=c,a=e-u,l=u>e),u>e&&o)return!0}}),!n&&!o?this.domAtPos(e,t):(i&&o?n=null:l&&n&&(o=null),n&&t<0||!o?n.domIn(s,t):o.domIn(a,t))}coordsAt(e,t){let{tile:n,offset:s}=this.tile.resolveBlock(e,t);return n.isWidget()?n.widget instanceof _l?null:n.coordsInWidget(s,t,!0):n.coordsIn(s,t)}lineAt(e,t){let{tile:n}=this.tile.resolveBlock(e,t);return n.isLine()?n:null}coordsForChar(e){let{tile:t,offset:n}=this.tile.resolveBlock(e,1);if(!t.isLine())return null;function s(i,o){if(i.isComposite())for(let a of i.children){if(a.length>=o){let l=s(a,o);if(l)return l}if(o-=a.length,o<0)break}else if(i.isText()&&o<i.length){let a=Qt(i.text,o);if(a==o)return null;let l=Ui(i.dom,o,a).getClientRects();for(let c=0;c<l.length;c++){let u=l[c];if(c==l.length-1||u.top<u.bottom&&u.left<u.right)return u}}return null}return s(t,n)}measureVisibleLineHeights(e){let t=[],{from:n,to:s}=e,i=this.view.contentDOM.clientWidth,o=i>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,a=-1,l=this.view.textDirection==ut.LTR,c=0,u=(h,p,f)=>{for(let g=0;g<h.children.length&&!(p>s);g++){let O=h.children[g],y=p+O.length,b=O.dom.getBoundingClientRect(),{height:C}=b;if(f&&!g&&(c+=b.top-f.top),O instanceof un)y>n&&u(O,p,b);else if(p>=n&&(c>0&&t.push(-c),t.push(C+c),c=0,o)){let P=O.dom.lastChild,A=P?ha(P):[];if(A.length){let E=A[A.length-1],F=l?E.right-b.left:b.right-E.left;F>a&&(a=F,this.minWidth=i,this.minWidthFrom=p,this.minWidthTo=y)}}f&&g==h.children.length-1&&(c+=f.bottom-b.bottom),p=y+O.breakAfter}};return u(this.tile,0,null),t}textDirectionAt(e){let{tile:t}=this.tile.resolveBlock(e,1);return getComputedStyle(t.dom).direction=="rtl"?ut.RTL:ut.LTR}measureTextSize(){let e=this.tile.blockTiles(o=>{if(o.isLine()&&o.children.length&&o.length<=20){let a=0,l;for(let c of o.children){if(!c.isText()||/[^ -~]/.test(c.text))return;let u=ha(c.dom);if(u.length!=1)return;a+=u[0].width,l=u[0].height}if(a)return{lineHeight:o.dom.getBoundingClientRect().height,charWidth:a/o.length,textHeight:l}}});if(e)return e;let t=document.createElement("div"),n,s,i;return t.className="cm-line",t.style.width="99999px",t.style.position="absolute",t.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.tile.dom.appendChild(t);let o=ha(t.firstChild)[0];n=t.getBoundingClientRect().height,s=o&&o.width?o.width/27:7,i=o&&o.height?o.height:n,t.remove()}),{lineHeight:n,charWidth:s,textHeight:i}}computeBlockGapDeco(){let e=[],t=this.view.viewState;for(let n=0,s=0;;s++){let i=s==t.viewports.length?null:t.viewports[s],o=i?i.from-1:this.view.state.doc.length;if(o>n){let a=(t.lineBlockAt(o).bottom-t.lineBlockAt(n).top)/this.view.scaleY;e.push(Ee.replace({widget:new _l(a),block:!0,inclusive:!0,isBlockGap:!0}).range(n,o))}if(!i)break;n=i.to+1}return Ee.set(e)}updateDeco(){let e=1,t=this.view.state.facet(hl).map(i=>(this.dynamicDecorationMap[e++]=typeof i=="function")?i(this.view):i),n=!1,s=this.view.state.facet(zu).map((i,o)=>{let a=typeof i=="function";return a&&(n=!0),a?i(this.view):i});for(s.length&&(this.dynamicDecorationMap[e++]=n,t.push(Ke.join(s))),this.decorations=[this.editContextFormatting,...t,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];e<this.decorations.length;)this.dynamicDecorationMap[e++]=!1;this.blockWrappers=this.view.state.facet(Vm).map(i=>typeof i=="function"?i(this.view):i)}scrollIntoView(e){if(e.isSnapshot){let c=this.view.viewState.lineBlockAt(e.range.head);this.view.scrollDOM.scrollTop=c.top-e.yMargin,this.view.scrollDOM.scrollLeft=e.xMargin;return}for(let c of this.view.state.facet(Lm))try{if(c(this.view,e.range,e))return!0}catch(u){Gt(this.view.state,u,"scroll handler")}let{range:t}=e,n=this.coordsAt(t.head,t.empty?t.assoc:t.head>t.anchor?-1:1),s;if(!n)return;!t.empty&&(s=this.coordsAt(t.anchor,t.anchor>t.head?-1:1))&&(n={left:Math.min(n.left,s.left),top:Math.min(n.top,s.top),right:Math.max(n.right,s.right),bottom:Math.max(n.bottom,s.bottom)});let i=Nu(this.view),o={left:n.left-i.left,top:n.top-i.top,right:n.right+i.right,bottom:n.bottom+i.bottom},{offsetWidth:a,offsetHeight:l}=this.view.scrollDOM;if(c2(this.view.scrollDOM,o,t.head<t.anchor?-1:1,e.x,e.y,Math.max(Math.min(e.xMargin,a),-a),Math.max(Math.min(e.yMargin,l),-l),this.view.textDirection==ut.LTR),window.visualViewport&&window.innerHeight-window.visualViewport.height>1&&(n.top>window.pageYOffset+window.visualViewport.offsetTop+window.visualViewport.height||n.bottom<window.pageYOffset+window.visualViewport.offsetTop)){let c=this.view.docView.lineAt(t.head,1);c&&c.dom.scrollIntoView({block:"nearest"})}}lineHasWidget(e){let t=n=>n.isWidget()||n.children.some(t);return t(this.tile.resolveBlock(e,1).tile)}destroy(){Vc(this.tile)}}function Vc(r,e){let t=e?.get(r);if(t!=1){t==null&&r.destroy();for(let n of r.children)Vc(n,e)}}function E2(r){return r.node.nodeType==1&&r.node.firstChild&&(r.offset==0||r.node.childNodes[r.offset-1].contentEditable=="false")&&(r.offset==r.node.childNodes.length||r.node.childNodes[r.offset].contentEditable=="false")}function jm(r,e){let t=r.observer.selectionRange;if(!t.focusNode)return null;let n=wm(t.focusNode,t.focusOffset),s=Sm(t.focusNode,t.focusOffset),i=n||s;if(s&&n&&s.node!=n.node){let a=bt.get(s.node);if(!a||a.isText()&&a.text!=s.node.nodeValue)i=s;else if(r.docView.lastCompositionAfterCursor){let l=bt.get(n.node);!l||l.isText()&&l.text!=n.node.nodeValue||(i=s)}}if(r.docView.lastCompositionAfterCursor=i!=n,!i)return null;let o=e-i.offset;return{from:o,to:o+i.node.nodeValue.length,node:i.node}}function D2(r,e,t){let n=jm(r,t);if(!n)return null;let{node:s,from:i,to:o}=n,a=s.nodeValue;if(/[\n\r]/.test(a)||r.state.doc.sliceString(n.from,n.to)!=a)return null;let l=e.invertedDesc;return{range:new pr(l.mapPos(i),l.mapPos(o),i,o),text:s}}function L2(r,e){return r.nodeType!=1?0:(e&&r.childNodes[e-1].contentEditable=="false"?1:0)|(e<r.childNodes.length&&r.childNodes[e].contentEditable=="false"?2:0)}let X2=class{constructor(){this.changes=[]}compareRange(e,t){Ps(e,t,this.changes)}comparePoint(e,t){Ps(e,t,this.changes)}boundChange(e){Ps(e,e,this.changes)}};function I2(r,e,t){let n=new X2;return Ke.compare(r,e,t,n),n.changes}class V2{constructor(){this.changes=[]}compareRange(e,t){Ps(e,t,this.changes)}comparePoint(){}boundChange(e){Ps(e,e,this.changes)}}function z2(r,e,t){let n=new V2;return Ke.compare(r,e,t,n),n.changes}function N2(r,e){for(let t=r;t&&t!=e;t=t.assignedSlot||t.parentNode)if(t.nodeType==1&&t.contentEditable=="false")return!0;return!1}function W2(r,e){let t=!1;return e&&r.iterChangedRanges((n,s)=>{n<e.to&&s>e.from&&(t=!0)}),t}class _l extends tn{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return e.className="cm-gap",this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}}function j2(r,e,t=1){let n=r.charCategorizer(e),s=r.doc.lineAt(e),i=e-s.from;if(s.length==0)return te.cursor(e);i==0?t=1:i==s.length&&(t=-1);let o=i,a=i;t<0?o=Qt(s.text,i,!1):a=Qt(s.text,i);let l=n(s.text.slice(o,a));for(;o>0;){let c=Qt(s.text,o,!1);if(n(s.text.slice(c,o))!=l)break;o=c}for(;a<s.length;){let c=Qt(s.text,a);if(n(s.text.slice(a,c))!=l)break;a=c}return te.range(o+s.from,a+s.from)}function q2(r,e,t,n,s){let i=Math.round((n-e.left)*r.defaultCharacterWidth);if(r.lineWrapping&&t.height>r.defaultLineHeight*1.5){let a=r.viewState.heightOracle.textHeight,l=Math.floor((s-t.top-(r.defaultLineHeight-a)*.5)/a);i+=l*r.viewState.heightOracle.lineLength}let o=r.state.sliceDoc(t.from,t.to);return t.from+Tc(o,i,r.state.tabSize)}function zc(r,e,t){let n=r.lineBlockAt(e);if(Array.isArray(n.type)){let s;for(let i of n.type){if(i.from>e)break;if(!(i.to<e)){if(i.from<e&&i.to>e)return i;(!s||i.type==Bt.Text&&(s.type!=i.type||(t<0?i.from<e:i.to>e)))&&(s=i)}}return s||n}return n}function Y2(r,e,t,n){let s=zc(r,e.head,e.assoc||-1),i=!n||s.type!=Bt.Text||!(r.lineWrapping||s.widgetLineBreaks)?null:r.coordsAtPos(e.assoc<0&&e.head>s.from?e.head-1:e.head);if(i){let o=r.dom.getBoundingClientRect(),a=r.textDirectionAt(s.from),l=r.posAtCoords({x:t==(a==ut.LTR)?o.right-1:o.left+1,y:(i.top+i.bottom)/2});if(l!=null)return te.cursor(l,t?-1:1)}return te.cursor(t?s.to:s.from,t?-1:1)}function fd(r,e,t,n){let s=r.state.doc.lineAt(e.head),i=r.bidiSpans(s),o=r.textDirectionAt(s.from);for(let a=e,l=null;;){let c=y2(s,i,o,a,t),u=Tm;if(!c){if(s.number==(t?r.state.doc.lines:1))return a;u=`
|
|
18
|
+
`,s=r.state.doc.line(s.number+(t?1:-1)),i=r.bidiSpans(s),c=r.visualLineSide(s,!t)}if(l){if(!l(u))return a}else{if(!n)return c;l=n(u)}a=c}}function F2(r,e,t){let n=r.state.charCategorizer(e),s=n(t);return i=>{let o=n(i);return s==ft.Space&&(s=o),s==o}}function U2(r,e,t,n){let s=e.head,i=t?1:-1;if(s==(t?r.state.doc.length:0))return te.cursor(s,e.assoc);let o=e.goalColumn,a,l=r.contentDOM.getBoundingClientRect(),c=r.coordsAtPos(s,(e.empty?e.assoc:0)||(t?1:-1)),u=r.documentTop;if(c)o==null&&(o=c.left-l.left),a=i<0?c.top:c.bottom;else{let g=r.viewState.lineBlockAt(s);o==null&&(o=Math.min(l.right-l.left,r.defaultCharacterWidth*(s-g.from))),a=(i<0?g.top:g.bottom)+u}let h=l.left+o,p=n??r.viewState.heightOracle.textHeight>>1,f=Nc(r,{x:h,y:a+p*i},!1,i);return te.cursor(f.pos,f.assoc,void 0,o)}function Ii(r,e,t){for(;;){let n=0;for(let s of r)s.between(e-1,e+1,(i,o,a)=>{if(e>i&&e<o){let l=n||t||(e-i<o-e?-1:1);e=l<0?i:o,n=l}});if(!n)return e}}function qm(r,e){let t=null;for(let n=0;n<e.ranges.length;n++){let s=e.ranges[n],i=null;if(s.empty){let o=Ii(r,s.from,0);o!=s.from&&(i=te.cursor(o,-1))}else{let o=Ii(r,s.from,-1),a=Ii(r,s.to,1);(o!=s.from||a!=s.to)&&(i=te.range(s.from==s.anchor?o:a,s.from==s.head?o:a))}i&&(t||(t=e.ranges.slice()),t[n]=i)}return t?te.create(t,e.mainIndex):e}function Rl(r,e,t){let n=Ii(r.state.facet(bo).map(s=>s(r)),t.from,e.head>t.from?-1:1);return n==t.from?t:te.cursor(n,n<t.from?1:-1)}class Yr{constructor(e,t){this.pos=e,this.assoc=t}}function Nc(r,e,t,n){let s=r.contentDOM.getBoundingClientRect(),i=s.top+r.viewState.paddingTop,{x:o,y:a}=e,l=a-i,c;for(;;){if(l<0)return new Yr(0,1);if(l>r.viewState.docHeight)return new Yr(r.state.doc.length,-1);if(c=r.elementAtHeight(l),n==null)break;if(c.type==Bt.Text){if(n<0?c.to<r.viewport.from:c.from>r.viewport.to)break;let p=r.docView.coordsAt(n<0?c.from:c.to,n>0?-1:1);if(p&&(n<0?p.top<=l+i:p.bottom>=l+i))break}let h=r.viewState.heightOracle.textHeight/2;l=n>0?c.bottom+h:c.top-h}if(r.viewport.from>=c.to||r.viewport.to<=c.from){if(t)return null;if(c.type==Bt.Text){let h=q2(r,s,c,o,a);return new Yr(h,h==c.from?1:-1)}}if(c.type!=Bt.Text)return l<(c.top+c.bottom)/2?new Yr(c.from,1):new Yr(c.to,-1);let u=r.docView.lineAt(c.from,2);return(!u||u.length!=c.length)&&(u=r.docView.lineAt(c.from,-2)),new G2(r,o,a,r.textDirectionAt(c.from)).scanTile(u,c.from)}class G2{constructor(e,t,n,s){this.view=e,this.x=t,this.y=n,this.baseDir=s,this.line=null,this.spans=null}bidiSpansAt(e){return(!this.line||this.line.from>e||this.line.to<e)&&(this.line=this.view.state.doc.lineAt(e),this.spans=this.view.bidiSpans(this.line)),this}baseDirAt(e,t){let{line:n,spans:s}=this.bidiSpansAt(e);return s[Fr.find(s,e-n.from,-1,t)].level==this.baseDir}dirAt(e,t){let{line:n,spans:s}=this.bidiSpansAt(e);return s[Fr.find(s,e-n.from,-1,t)].dir}bidiIn(e,t){let{spans:n,line:s}=this.bidiSpansAt(e);return n.length>1||n.length&&(n[0].level!=this.baseDir||n[0].to+s.from<t)}scan(e,t){let n=0,s=e.length-1,i=new Set,o=this.bidiIn(e[0],e[s]),a,l,c=-1,u=1e9,h;e:for(;n<s;){let f=s-n,g=n+s>>1;t:if(i.has(g)){let y=n+Math.floor(Math.random()*f);for(let b=0;b<f;b++){if(!i.has(y)){g=y;break t}y++,y==s&&(y=n)}break e}i.add(g);let O=t(g);if(O)for(let y=0;y<O.length;y++){let b=O[y],C=0;if(b.bottom<this.y)(!a||a.bottom<b.bottom)&&(a=b),C=1;else if(b.top>this.y)(!l||l.top>b.top)&&(l=b),C=-1;else{let P=b.left>this.x?this.x-b.left:b.right<this.x?this.x-b.right:0,A=Math.abs(P);A<u&&(c=g,u=A,h=b),P&&(C=P<0==(this.baseDir==ut.LTR)?-1:1)}C==-1&&(!o||this.baseDirAt(e[g],1))?s=g:C==1&&(!o||this.baseDirAt(e[g+1],-1))&&(n=g+1)}}if(!h){let f=a&&(!l||this.y-a.bottom<l.top-this.y)?a:l;return this.y=(f.top+f.bottom)/2,this.scan(e,t)}let p=(o?this.dirAt(e[c],1):this.baseDir)==ut.LTR;return{i:c,after:this.x>(h.left+h.right)/2==p}}scanText(e,t){let n=[];for(let i=0;i<e.length;i=Qt(e.text,i))n.push(t+i);n.push(t+e.length);let s=this.scan(n,i=>{let o=n[i]-t,a=n[i+1]-t;return Ui(e.dom,o,a).getClientRects()});return s.after?new Yr(n[s.i+1],-1):new Yr(n[s.i],1)}scanTile(e,t){if(!e.length)return new Yr(t,1);if(e.children.length==1){let a=e.children[0];if(a.isText())return this.scanText(a,t);if(a.isComposite())return this.scanTile(a,t)}let n=[t];for(let a=0,l=t;a<e.children.length;a++)n.push(l+=e.children[a].length);let s=this.scan(n,a=>{let l=e.children[a];return l.flags&48?null:(l.dom.nodeType==1?l.dom:Ui(l.dom,0,l.length)).getClientRects()}),i=e.children[s.i],o=n[s.i];return i.isText()?this.scanText(i,o):i.isComposite()?this.scanTile(i,o):s.after?new Yr(n[s.i+1],-1):new Yr(o,1)}}const _i="";class H2{constructor(e,t){this.points=e,this.view=t,this.text="",this.lineSeparator=t.state.facet(Je.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=_i}readRange(e,t){if(!e)return this;let n=e.parentNode;for(let s=e;;){this.findPointBefore(n,s);let i=this.text.length;this.readNode(s);let o=bt.get(s),a=s.nextSibling;if(a==t){o?.breakAfter&&!a&&n!=this.view.contentDOM&&this.lineBreak();break}let l=bt.get(a);(o&&l?o.breakAfter:(o?o.breakAfter:Qa(s))||Qa(a)&&(s.nodeName!="BR"||o?.isWidget())&&this.text.length>i)&&!J2(a,t)&&this.lineBreak(),s=a}return this.findPointBefore(n,t),this}readTextNode(e){let t=e.nodeValue;for(let n of this.points)n.node==e&&(n.pos=this.text.length+Math.min(n.offset,t.length));for(let n=0,s=this.lineSeparator?null:/\r\n?|\n/g;;){let i=-1,o=1,a;if(this.lineSeparator?(i=t.indexOf(this.lineSeparator,n),o=this.lineSeparator.length):(a=s.exec(t))&&(i=a.index,o=a[0].length),this.append(t.slice(n,i<0?t.length:i)),i<0)break;if(this.lineBreak(),o>1)for(let l of this.points)l.node==e&&l.pos>this.text.length&&(l.pos-=o-1);n=i+o}}readNode(e){let t=bt.get(e),n=t&&t.overrideDOMText;if(n!=null){this.findPointInside(e,n.length);for(let s=n.iter();!s.next().done;)s.lineBreak?this.lineBreak():this.append(s.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,t){for(let n of this.points)n.node==e&&e.childNodes[n.offset]==t&&(n.pos=this.text.length)}findPointInside(e,t){for(let n of this.points)(e.nodeType==3?n.node==e:e.contains(n.node))&&(n.pos=this.text.length+(K2(e,n.node,n.offset)?t:0))}}function K2(r,e,t){for(;;){if(!e||t<mn(e))return!1;if(e==r)return!0;t=Dn(e)+1,e=e.parentNode}}function J2(r,e){let t;for(;!(r==e||!r);r=r.nextSibling){let n=bt.get(r);if(!n?.isWidget())return!1;n&&(t||(t=[])).push(n)}if(t)for(let n of t){let s=n.overrideDOMText;if(s?.length)return!1}return!0}class pd{constructor(e,t){this.node=e,this.offset=t,this.pos=-1}}class e${constructor(e,t,n,s){this.typeOver=s,this.bounds=null,this.text="",this.domChanged=t>-1;let{impreciseHead:i,impreciseAnchor:o}=e.docView;if(e.state.readOnly&&t>-1)this.newSel=null;else if(t>-1&&(this.bounds=Ym(e.docView.tile,t,n,0))){let a=i||o?[]:r$(e),l=new H2(a,e);l.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=l.text,this.newSel=n$(a,this.bounds.from)}else{let a=e.observer.selectionRange,l=i&&i.node==a.focusNode&&i.offset==a.focusOffset||!Ec(e.contentDOM,a.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(a.focusNode,a.focusOffset),c=o&&o.node==a.anchorNode&&o.offset==a.anchorOffset||!Ec(e.contentDOM,a.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(a.anchorNode,a.anchorOffset),u=e.viewport;if((Pe.ios||Pe.chrome)&&e.state.selection.main.empty&&l!=c&&(u.from>0||u.to<e.state.doc.length)){let h=Math.min(l,c),p=Math.max(l,c),f=u.from-h,g=u.to-p;(f==0||f==1||h==0)&&(g==0||g==-1||p==e.state.doc.length)&&(l=0,c=e.state.doc.length)}e.inputState.composing>-1&&e.state.selection.ranges.length>1?this.newSel=e.state.selection.replaceRange(te.range(c,l)):this.newSel=te.single(c,l)}}}function Ym(r,e,t,n){if(r.isComposite()){let s=-1,i=-1,o=-1,a=-1;for(let l=0,c=n,u=n;l<r.children.length;l++){let h=r.children[l],p=c+h.length;if(c<e&&p>t)return Ym(h,e,t,c);if(p>=e&&s==-1&&(s=l,i=c),c>t&&h.dom.parentNode==r.dom){o=l,a=u;break}u=p,c=p+h.breakAfter}return{from:i,to:a<0?n+r.length:a,startDOM:(s?r.children[s-1].dom.nextSibling:null)||r.dom.firstChild,endDOM:o<r.children.length&&o>=0?r.children[o].dom:null}}else return r.isText()?{from:n,to:n+r.length,startDOM:r.dom,endDOM:r.dom.nextSibling}:null}function Fm(r,e){let t,{newSel:n}=e,s=r.state.selection.main,i=r.inputState.lastKeyTime>Date.now()-100?r.inputState.lastKeyCode:-1;if(e.bounds){let{from:o,to:a}=e.bounds,l=s.from,c=null;(i===8||Pe.android&&e.text.length<a-o)&&(l=s.to,c="end");let u=Um(r.state.doc.sliceString(o,a,_i),e.text,l-o,c);u&&(Pe.chrome&&i==13&&u.toB==u.from+2&&e.text.slice(u.from,u.toB)==_i+_i&&u.toB--,t={from:o+u.from,to:o+u.toA,insert:rt.of(e.text.slice(u.from,u.toB).split(_i))})}else n&&(!r.hasFocus&&r.state.facet(cn)||_a(n,s))&&(n=null);if(!t&&!n)return!1;if(!t&&e.typeOver&&!s.empty&&n&&n.main.empty?t={from:s.from,to:s.to,insert:r.state.doc.slice(s.from,s.to)}:(Pe.mac||Pe.android)&&t&&t.from==t.to&&t.from==s.head-1&&/^\. ?$/.test(t.insert.toString())&&r.contentDOM.getAttribute("autocorrect")=="off"?(n&&t.insert.length==2&&(n=te.single(n.main.anchor-1,n.main.head-1)),t={from:t.from,to:t.to,insert:rt.of([t.insert.toString().replace("."," ")])}):t&&t.from>=s.from&&t.to<=s.to&&(t.from!=s.from||t.to!=s.to)&&s.to-s.from-(t.to-t.from)<=4?t={from:s.from,to:s.to,insert:r.state.doc.slice(s.from,t.from).append(t.insert).append(r.state.doc.slice(t.to,s.to))}:r.state.doc.lineAt(s.from).to<s.to&&r.docView.lineHasWidget(s.to)&&r.inputState.insertingTextAt>Date.now()-50?t={from:s.from,to:s.to,insert:r.state.toText(r.inputState.insertingText)}:Pe.chrome&&t&&t.from==t.to&&t.from==s.head&&t.insert.toString()==`
|
|
19
|
+
`&&r.lineWrapping&&(n&&(n=te.single(n.main.anchor-1,n.main.head-1)),t={from:s.from,to:s.to,insert:rt.of([" "])}),t)return Wu(r,t,n,i);if(n&&!_a(n,s)){let o=!1,a="select";return r.inputState.lastSelectionTime>Date.now()-50&&(r.inputState.lastSelectionOrigin=="select"&&(o=!0),a=r.inputState.lastSelectionOrigin,a=="select.pointer"&&(n=qm(r.state.facet(bo).map(l=>l(r)),n))),r.dispatch({selection:n,scrollIntoView:o,userEvent:a}),!0}else return!1}function Wu(r,e,t,n=-1){if(Pe.ios&&r.inputState.flushIOSKey(e))return!0;let s=r.state.selection.main;if(Pe.android&&(e.to==s.to&&(e.from==s.from||e.from==s.from-1&&r.state.sliceDoc(e.from,s.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&Ts(r.contentDOM,"Enter",13)||(e.from==s.from-1&&e.to==s.to&&e.insert.length==0||n==8&&e.insert.length<e.to-e.from&&e.to>s.head)&&Ts(r.contentDOM,"Backspace",8)||e.from==s.from&&e.to==s.to+1&&e.insert.length==0&&Ts(r.contentDOM,"Delete",46)))return!0;let i=e.insert.toString();r.inputState.composing>=0&&r.inputState.composing++;let o,a=()=>o||(o=t$(r,e,t));return r.state.facet(Bm).some(l=>l(r,e.from,e.to,i,a))||r.dispatch(a()),!0}function t$(r,e,t){let n,s=r.state,i=s.selection.main,o=-1;if(e.from==e.to&&e.from<i.from||e.from>i.to){let l=e.from<i.from?-1:1,c=l<0?i.from:i.to,u=Ii(s.facet(bo).map(h=>h(r)),c,l);e.from==u&&(o=u)}if(o>-1)n={changes:e,selection:te.cursor(e.from+e.insert.length,-1)};else if(e.from>=i.from&&e.to<=i.to&&e.to-e.from>=(i.to-i.from)/3&&(!t||t.main.empty&&t.main.from==e.from+e.insert.length)&&r.inputState.composing<0){let l=i.from<e.from?s.sliceDoc(i.from,e.from):"",c=i.to>e.to?s.sliceDoc(e.to,i.to):"";n=s.replaceSelection(r.state.toText(l+e.insert.sliceString(0,void 0,r.state.lineBreak)+c))}else{let l=s.changes(e),c=t&&t.main.to<=l.newLength?t.main:void 0;if(s.selection.ranges.length>1&&(r.inputState.composing>=0||r.inputState.compositionPendingChange)&&e.to<=i.to+10&&e.to>=i.to-10){let u=r.state.sliceDoc(e.from,e.to),h,p=t&&jm(r,t.main.head);if(p){let g=e.insert.length-(e.to-e.from);h={from:p.from,to:p.to-g}}else h=r.state.doc.lineAt(i.head);let f=i.to-e.to;n=s.changeByRange(g=>{if(g.from==i.from&&g.to==i.to)return{changes:l,range:c||g.map(l)};let O=g.to-f,y=O-u.length;if(r.state.sliceDoc(y,O)!=u||O>=h.from&&y<=h.to)return{range:g};let b=s.changes({from:y,to:O,insert:e.insert}),C=g.to-i.to;return{changes:b,range:c?te.range(Math.max(0,c.anchor+C),Math.max(0,c.head+C)):g.map(b)}})}else n={changes:l,selection:c&&s.selection.replaceRange(c)}}let a="input.type";return(r.composing||r.inputState.compositionPendingChange&&r.inputState.compositionEndedAt>Date.now()-50)&&(r.inputState.compositionPendingChange=!1,a+=".compose",r.inputState.compositionFirstChange&&(a+=".start",r.inputState.compositionFirstChange=!1)),s.update(n,{userEvent:a,scrollIntoView:!0})}function Um(r,e,t,n){let s=Math.min(r.length,e.length),i=0;for(;i<s&&r.charCodeAt(i)==e.charCodeAt(i);)i++;if(i==s&&r.length==e.length)return null;let o=r.length,a=e.length;for(;o>0&&a>0&&r.charCodeAt(o-1)==e.charCodeAt(a-1);)o--,a--;if(n=="end"){let l=Math.max(0,i-Math.min(o,a));t-=o+l-i}if(o<i&&r.length<e.length){let l=t<=i&&t>=o?i-t:0;i-=l,a=i+(a-o),o=i}else if(a<i){let l=t<=i&&t>=a?i-t:0;i-=l,o=i+(o-a),a=i}return{from:i,toA:o,toB:a}}function r$(r){let e=[];if(r.root.activeElement!=r.contentDOM)return e;let{anchorNode:t,anchorOffset:n,focusNode:s,focusOffset:i}=r.observer.selectionRange;return t&&(e.push(new pd(t,n)),(s!=t||i!=n)&&e.push(new pd(s,i))),e}function n$(r,e){if(r.length==0)return null;let t=r[0].pos,n=r.length==2?r[1].pos:t;return t>-1&&n>-1?te.single(t+e,n+e):null}function _a(r,e){return e.head==r.main.head&&e.anchor==r.main.anchor}class s${setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.pendingIOSKey=void 0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.insertingText="",this.insertingTextAt=0,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,Pe.safari&&e.contentDOM.addEventListener("input",()=>null),Pe.gecko&&b$(e.contentDOM.ownerDocument)}handleEvent(e){!d$(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,t){let n=this.handlers[e];if(n){for(let s of n.observers)s(this.view,t);for(let s of n.handlers){if(t.defaultPrevented)break;if(s(this.view,t)){t.preventDefault();break}}}}ensureHandlers(e){let t=i$(e),n=this.handlers,s=this.view.contentDOM;for(let i in t)if(i!="scroll"){let o=!t[i].handlers.length,a=n[i];a&&o!=!a.handlers.length&&(s.removeEventListener(i,this.handleEvent),a=null),a||s.addEventListener(i,this.handleEvent,{passive:o})}for(let i in n)i!="scroll"&&!t[i]&&s.removeEventListener(i,this.handleEvent);this.handlers=t}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&e.keyCode!=27&&Hm.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),Pe.android&&Pe.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;let t;return Pe.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&((t=Gm.find(n=>n.keyCode==e.keyCode))&&!e.ctrlKey||o$.indexOf(e.key)>-1&&e.ctrlKey&&!e.shiftKey)?(this.pendingIOSKey=t||e,setTimeout(()=>this.flushIOSKey(),250),!0):(e.keyCode!=229&&this.view.observer.forceFlush(),!1)}flushIOSKey(e){let t=this.pendingIOSKey;return!t||t.key=="Enter"&&e&&e.from<e.to&&/^\S+$/.test(e.insert.toString())?!1:(this.pendingIOSKey=void 0,Ts(this.view.contentDOM,t.key,t.keyCode,t instanceof KeyboardEvent?t:void 0))}ignoreDuringComposition(e){return!/^key/.test(e.type)||e.synthetic?!1:this.composing>0?!0:Pe.safari&&!Pe.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.view.observer.update(e),this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}function md(r,e){return(t,n)=>{try{return e.call(r,n,t)}catch(s){Gt(t.state,s)}}}function i$(r){let e=Object.create(null);function t(n){return e[n]||(e[n]={observers:[],handlers:[]})}for(let n of r){let s=n.spec,i=s&&s.plugin.domEventHandlers,o=s&&s.plugin.domEventObservers;if(i)for(let a in i){let l=i[a];l&&t(a).handlers.push(md(n.value,l))}if(o)for(let a in o){let l=o[a];l&&t(a).observers.push(md(n.value,l))}}for(let n in Rr)t(n).handlers.push(Rr[n]);for(let n in yr)t(n).observers.push(yr[n]);return e}const Gm=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],o$="dthko",Hm=[16,17,18,20,91,92,224,225],Xo=6;function Io(r){return Math.max(0,r)*.7+8}function a$(r,e){return Math.max(Math.abs(r.clientX-e.clientX),Math.abs(r.clientY-e.clientY))}class l${constructor(e,t,n,s){this.view=e,this.startEvent=t,this.style=n,this.mustSelect=s,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=t,this.scrollParents=u2(e.contentDOM),this.atoms=e.state.facet(bo).map(o=>o(e));let i=e.contentDOM.ownerDocument;i.addEventListener("mousemove",this.move=this.move.bind(this)),i.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=t.shiftKey,this.multiple=e.state.facet(Je.allowMultipleSelections)&&c$(e,t),this.dragging=h$(e,t)&&eg(t)==1?null:!1}start(e){this.dragging===!1&&this.select(e)}move(e){if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&a$(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let t=0,n=0,s=0,i=0,o=this.view.win.innerWidth,a=this.view.win.innerHeight;this.scrollParents.x&&({left:s,right:o}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:i,bottom:a}=this.scrollParents.y.getBoundingClientRect());let l=Nu(this.view);e.clientX-l.left<=s+Xo?t=-Io(s-e.clientX):e.clientX+l.right>=o-Xo&&(t=Io(e.clientX-o)),e.clientY-l.top<=i+Xo?n=-Io(i-e.clientY):e.clientY+l.bottom>=a-Xo&&(n=Io(e.clientY-a)),this.setScrollSpeed(t,n)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,t){this.scrollSpeed={x:e,y:t},e||t?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:t}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),t&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=t,t=0),(e||t)&&this.view.win.scrollBy(e,t),this.dragging===!1&&this.select(this.lastEvent)}select(e){let{view:t}=this,n=qm(this.atoms,this.style.get(e,this.extend,this.multiple));(this.mustSelect||!n.eq(t.state.selection,this.dragging===!1))&&this.view.dispatch({selection:n,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.transactions.some(t=>t.isUserEvent("input.type"))?this.destroy():this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}}function c$(r,e){let t=r.state.facet(Mm);return t.length?t[0](e):Pe.mac?e.metaKey:e.ctrlKey}function u$(r,e){let t=r.state.facet(Am);return t.length?t[0](e):Pe.mac?!e.altKey:!e.ctrlKey}function h$(r,e){let{main:t}=r.state.selection;if(t.empty)return!1;let n=Fi(r.root);if(!n||n.rangeCount==0)return!0;let s=n.getRangeAt(0).getClientRects();for(let i=0;i<s.length;i++){let o=s[i];if(o.left<=e.clientX&&o.right>=e.clientX&&o.top<=e.clientY&&o.bottom>=e.clientY)return!0}return!1}function d$(r,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let t=e.target,n;t!=r.contentDOM;t=t.parentNode)if(!t||t.nodeType==11||(n=bt.get(t))&&n.isWidget()&&!n.isHidden&&n.widget.ignoreEvent(e))return!1;return!0}const Rr=Object.create(null),yr=Object.create(null),Km=Pe.ie&&Pe.ie_version<15||Pe.ios&&Pe.webkit_version<604;function f$(r){let e=r.dom.parentNode;if(!e)return;let t=e.appendChild(document.createElement("textarea"));t.style.cssText="position: fixed; left: -10000px; top: 10px",t.focus(),setTimeout(()=>{r.focus(),t.remove(),Jm(r,t.value)},50)}function pl(r,e,t){for(let n of r.facet(e))t=n(t,r);return t}function Jm(r,e){e=pl(r.state,Xu,e);let{state:t}=r,n,s=1,i=t.toText(e),o=i.lines==t.selection.ranges.length;if(Wc!=null&&t.selection.ranges.every(l=>l.empty)&&Wc==i.toString()){let l=-1;n=t.changeByRange(c=>{let u=t.doc.lineAt(c.from);if(u.from==l)return{range:c};l=u.from;let h=t.toText((o?i.line(s++).text:e)+t.lineBreak);return{changes:{from:u.from,insert:h},range:te.cursor(c.from+h.length)}})}else o?n=t.changeByRange(l=>{let c=i.line(s++);return{changes:{from:l.from,to:l.to,insert:c.text},range:te.cursor(l.from+c.length)}}):n=t.replaceSelection(i);r.dispatch(n,{userEvent:"input.paste",scrollIntoView:!0})}yr.scroll=r=>{r.inputState.lastScrollTop=r.scrollDOM.scrollTop,r.inputState.lastScrollLeft=r.scrollDOM.scrollLeft};Rr.keydown=(r,e)=>(r.inputState.setSelectionOrigin("select"),e.keyCode==27&&r.inputState.tabFocusMode!=0&&(r.inputState.tabFocusMode=Date.now()+2e3),!1);yr.touchstart=(r,e)=>{r.inputState.lastTouchTime=Date.now(),r.inputState.setSelectionOrigin("select.pointer")};yr.touchmove=r=>{r.inputState.setSelectionOrigin("select.pointer")};Rr.mousedown=(r,e)=>{if(r.observer.flush(),r.inputState.lastTouchTime>Date.now()-2e3)return!1;let t=null;for(let n of r.state.facet(_m))if(t=n(r,e),t)break;if(!t&&e.button==0&&(t=m$(r,e)),t){let n=!r.hasFocus;r.inputState.startMouseSelection(new l$(r,e,t,n)),n&&r.observer.ignore(()=>{ym(r.contentDOM);let i=r.root.activeElement;i&&!i.contains(r.contentDOM)&&i.blur()});let s=r.inputState.mouseSelection;if(s)return s.start(e),s.dragging===!1}else r.inputState.setSelectionOrigin("select.pointer");return!1};function gd(r,e,t,n){if(n==1)return te.cursor(e,t);if(n==2)return j2(r.state,e,t);{let s=r.docView.lineAt(e,t),i=r.state.doc.lineAt(s?s.posAtEnd:e),o=s?s.posAtStart:i.from,a=s?s.posAtEnd:i.to;return a<r.state.doc.length&&a==i.to&&a++,te.range(o,a)}}const p$=Pe.ie&&Pe.ie_version<=11;let Od=null,vd=0,bd=0;function eg(r){if(!p$)return r.detail;let e=Od,t=bd;return Od=r,bd=Date.now(),vd=!e||t>Date.now()-400&&Math.abs(e.clientX-r.clientX)<2&&Math.abs(e.clientY-r.clientY)<2?(vd+1)%3:1}function m$(r,e){let t=r.posAndSideAtCoords({x:e.clientX,y:e.clientY},!1),n=eg(e),s=r.state.selection;return{update(i){i.docChanged&&(t.pos=i.changes.mapPos(t.pos),s=s.map(i.changes))},get(i,o,a){let l=r.posAndSideAtCoords({x:i.clientX,y:i.clientY},!1),c,u=gd(r,l.pos,l.assoc,n);if(t.pos!=l.pos&&!o){let h=gd(r,t.pos,t.assoc,n),p=Math.min(h.from,u.from),f=Math.max(h.to,u.to);u=p<u.from?te.range(p,f):te.range(f,p)}return o?s.replaceRange(s.main.extend(u.from,u.to)):a&&n==1&&s.ranges.length>1&&(c=g$(s,l.pos))?c:a?s.addRange(u):te.create([u])}}}function g$(r,e){for(let t=0;t<r.ranges.length;t++){let{from:n,to:s}=r.ranges[t];if(n<=e&&s>=e)return te.create(r.ranges.slice(0,t).concat(r.ranges.slice(t+1)),r.mainIndex==t?0:r.mainIndex-(r.mainIndex>t?1:0))}return null}Rr.dragstart=(r,e)=>{let{selection:{main:t}}=r.state;if(e.target.draggable){let s=r.docView.tile.nearest(e.target);if(s&&s.isWidget()){let i=s.posAtStart,o=i+s.length;(i>=t.to||o<=t.from)&&(t=te.range(i,o))}}let{inputState:n}=r;return n.mouseSelection&&(n.mouseSelection.dragging=!0),n.draggedContent=t,e.dataTransfer&&(e.dataTransfer.setData("Text",pl(r.state,Iu,r.state.sliceDoc(t.from,t.to))),e.dataTransfer.effectAllowed="copyMove"),!1};Rr.dragend=r=>(r.inputState.draggedContent=null,!1);function xd(r,e,t,n){if(t=pl(r.state,Xu,t),!t)return;let s=r.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:i}=r.inputState,o=n&&i&&u$(r,e)?{from:i.from,to:i.to}:null,a={from:s,insert:t},l=r.state.changes(o?[o,a]:a);r.focus(),r.dispatch({changes:l,selection:{anchor:l.mapPos(s,-1),head:l.mapPos(s,1)},userEvent:o?"move.drop":"input.drop"}),r.inputState.draggedContent=null}Rr.drop=(r,e)=>{if(!e.dataTransfer)return!1;if(r.state.readOnly)return!0;let t=e.dataTransfer.files;if(t&&t.length){let n=Array(t.length),s=0,i=()=>{++s==t.length&&xd(r,e,n.filter(o=>o!=null).join(r.state.lineBreak),!1)};for(let o=0;o<t.length;o++){let a=new FileReader;a.onerror=i,a.onload=()=>{/[\x00-\x08\x0e-\x1f]{2}/.test(a.result)||(n[o]=a.result),i()},a.readAsText(t[o])}return!0}else{let n=e.dataTransfer.getData("Text");if(n)return xd(r,e,n,!0),!0}return!1};Rr.paste=(r,e)=>{if(r.state.readOnly)return!0;r.observer.flush();let t=Km?null:e.clipboardData;return t?(Jm(r,t.getData("text/plain")||t.getData("text/uri-list")),!0):(f$(r),!1)};function O$(r,e){let t=r.dom.parentNode;if(!t)return;let n=t.appendChild(document.createElement("textarea"));n.style.cssText="position: fixed; left: -10000px; top: 10px",n.value=e,n.focus(),n.selectionEnd=e.length,n.selectionStart=0,setTimeout(()=>{n.remove(),r.focus()},50)}function v$(r){let e=[],t=[],n=!1;for(let s of r.selection.ranges)s.empty||(e.push(r.sliceDoc(s.from,s.to)),t.push(s));if(!e.length){let s=-1;for(let{from:i}of r.selection.ranges){let o=r.doc.lineAt(i);o.number>s&&(e.push(o.text),t.push({from:o.from,to:Math.min(r.doc.length,o.to+1)})),s=o.number}n=!0}return{text:pl(r,Iu,e.join(r.lineBreak)),ranges:t,linewise:n}}let Wc=null;Rr.copy=Rr.cut=(r,e)=>{if(!Li(r.contentDOM,r.observer.selectionRange))return!1;let{text:t,ranges:n,linewise:s}=v$(r.state);if(!t&&!s)return!1;Wc=s?t:null,e.type=="cut"&&!r.state.readOnly&&r.dispatch({changes:n,scrollIntoView:!0,userEvent:"delete.cut"});let i=Km?null:e.clipboardData;return i?(i.clearData(),i.setData("text/plain",t),!0):(O$(r,t),!1)};const tg=vn.define();function rg(r,e){let t=[];for(let n of r.facet(Zm)){let s=n(r,e);s&&t.push(s)}return t.length?r.update({effects:t,annotations:tg.of(!0)}):null}function ng(r){setTimeout(()=>{let e=r.hasFocus;if(e!=r.inputState.notifiedFocused){let t=rg(r.state,e);t?r.dispatch(t):r.update([])}},10)}yr.focus=r=>{r.inputState.lastFocusTime=Date.now(),!r.scrollDOM.scrollTop&&(r.inputState.lastScrollTop||r.inputState.lastScrollLeft)&&(r.scrollDOM.scrollTop=r.inputState.lastScrollTop,r.scrollDOM.scrollLeft=r.inputState.lastScrollLeft),ng(r)};yr.blur=r=>{r.observer.clearSelectionRange(),ng(r)};yr.compositionstart=yr.compositionupdate=r=>{r.observer.editContext||(r.inputState.compositionFirstChange==null&&(r.inputState.compositionFirstChange=!0),r.inputState.composing<0&&(r.inputState.composing=0))};yr.compositionend=r=>{r.observer.editContext||(r.inputState.composing=-1,r.inputState.compositionEndedAt=Date.now(),r.inputState.compositionPendingKey=!0,r.inputState.compositionPendingChange=r.observer.pendingRecords().length>0,r.inputState.compositionFirstChange=null,Pe.chrome&&Pe.android?r.observer.flushSoon():r.inputState.compositionPendingChange?Promise.resolve().then(()=>r.observer.flush()):setTimeout(()=>{r.inputState.composing<0&&r.docView.hasComposition&&r.update([])},50))};yr.contextmenu=r=>{r.inputState.lastContextMenu=Date.now()};Rr.beforeinput=(r,e)=>{var t,n;if((e.inputType=="insertText"||e.inputType=="insertCompositionText")&&(r.inputState.insertingText=e.data,r.inputState.insertingTextAt=Date.now()),e.inputType=="insertReplacementText"&&r.observer.editContext){let i=(t=e.dataTransfer)===null||t===void 0?void 0:t.getData("text/plain"),o=e.getTargetRanges();if(i&&o.length){let a=o[0],l=r.posAtDOM(a.startContainer,a.startOffset),c=r.posAtDOM(a.endContainer,a.endOffset);return Wu(r,{from:l,to:c,insert:r.state.toText(i)},null),!0}}let s;if(Pe.chrome&&Pe.android&&(s=Gm.find(i=>i.inputType==e.inputType))&&(r.observer.delayAndroidKey(s.key,s.keyCode),s.key=="Backspace"||s.key=="Delete")){let i=((n=window.visualViewport)===null||n===void 0?void 0:n.height)||0;setTimeout(()=>{var o;(((o=window.visualViewport)===null||o===void 0?void 0:o.height)||0)>i+10&&r.hasFocus&&(r.contentDOM.blur(),r.focus())},100)}return Pe.ios&&e.inputType=="deleteContentForward"&&r.observer.flushSoon(),Pe.safari&&e.inputType=="insertText"&&r.inputState.composing>=0&&setTimeout(()=>yr.compositionend(r,e),20),!1};const yd=new Set;function b$(r){yd.has(r)||(yd.add(r),r.addEventListener("copy",()=>{}),r.addEventListener("cut",()=>{}))}const kd=["pre-wrap","normal","pre-line","break-spaces"];let zs=!1;function wd(){zs=!1}class x${constructor(e){this.lineWrapping=e,this.doc=rt.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,t){let n=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(n+=Math.max(0,Math.ceil((t-e-n*this.lineLength*.5)/this.lineLength))),this.lineHeight*n}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return kd.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let t=!1;for(let n=0;n<e.length;n++){let s=e[n];s<0?n++:this.heightSamples[Math.floor(s*10)]||(t=!0,this.heightSamples[Math.floor(s*10)]=!0)}return t}refresh(e,t,n,s,i,o){let a=kd.indexOf(e)>-1,l=Math.abs(t-this.lineHeight)>.3||this.lineWrapping!=a||Math.abs(n-this.charWidth)>.1;if(this.lineWrapping=a,this.lineHeight=t,this.charWidth=n,this.textHeight=s,this.lineLength=i,l){this.heightSamples={};for(let c=0;c<o.length;c++){let u=o[c];u<0?c++:this.heightSamples[Math.floor(u*10)]=!0}}return l}}class y${constructor(e,t){this.from=e,this.heights=t,this.index=0}get more(){return this.index<this.heights.length}}class Mr{constructor(e,t,n,s,i){this.from=e,this.length=t,this.top=n,this.height=s,this._content=i}get type(){return typeof this._content=="number"?Bt.Text:Array.isArray(this._content)?this._content:this._content.type}get to(){return this.from+this.length}get bottom(){return this.top+this.height}get widget(){return this._content instanceof hs?this._content.widget:null}get widgetLineBreaks(){return typeof this._content=="number"?this._content:0}join(e){let t=(Array.isArray(this._content)?this._content:[this]).concat(Array.isArray(e._content)?e._content:[e]);return new Mr(this.from,this.length+e.length,this.top,this.height+e.height,t)}}var dt=(function(r){return r[r.ByPos=0]="ByPos",r[r.ByHeight=1]="ByHeight",r[r.ByPosNoHeight=2]="ByPosNoHeight",r})(dt||(dt={}));const da=.001;class Nt{constructor(e,t,n=2){this.length=e,this.height=t,this.flags=n}get outdated(){return(this.flags&2)>0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>da&&(zs=!0),this.height=e)}replace(e,t,n){return Nt.of(n)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(e,t,n,s){let i=this,o=n.doc;for(let a=s.length-1;a>=0;a--){let{fromA:l,toA:c,fromB:u,toB:h}=s[a],p=i.lineAt(l,dt.ByPosNoHeight,n.setDoc(t),0,0),f=p.to>=c?p:i.lineAt(c,dt.ByPosNoHeight,n,0,0);for(h+=f.to-c,c=f.to;a>0&&p.from<=s[a-1].toA;)l=s[a-1].fromA,u=s[a-1].fromB,a--,l<p.from&&(p=i.lineAt(l,dt.ByPosNoHeight,n,0,0));u+=p.from-l,l=p.from;let g=ju.build(n.setDoc(o),e,u,h);i=Ra(i,i.replace(l,c,g))}return i.updateHeight(n,0)}static empty(){return new sr(0,0,0)}static of(e){if(e.length==1)return e[0];let t=0,n=e.length,s=0,i=0;for(;;)if(t==n)if(s>i*2){let a=e[t-1];a.break?e.splice(--t,1,a.left,null,a.right):e.splice(--t,1,a.left,a.right),n+=1+a.break,s-=a.size}else if(i>s*2){let a=e[n];a.break?e.splice(n,1,a.left,null,a.right):e.splice(n,1,a.left,a.right),n+=2+a.break,i-=a.size}else break;else if(s<i){let a=e[t++];a&&(s+=a.size)}else{let a=e[--n];a&&(i+=a.size)}let o=0;return e[t-1]==null?(o=1,t--):e[t]==null&&(o=1,n++),new w$(Nt.of(e.slice(0,t)),o,Nt.of(e.slice(n)))}}function Ra(r,e){return r==e?r:(r.constructor!=e.constructor&&(zs=!0),e)}Nt.prototype.size=1;const k$=Ee.replace({});class sg extends Nt{constructor(e,t,n){super(e,t),this.deco=n,this.spaceAbove=0}mainBlock(e,t){return new Mr(t,this.length,e+this.spaceAbove,this.height-this.spaceAbove,this.deco||0)}blockAt(e,t,n,s){return this.spaceAbove&&e<n+this.spaceAbove?new Mr(s,0,n,this.spaceAbove,k$):this.mainBlock(n,s)}lineAt(e,t,n,s,i){let o=this.mainBlock(s,i);return this.spaceAbove?this.blockAt(0,n,s,i).join(o):o}forEachLine(e,t,n,s,i,o){e<=i+this.length&&t>=i&&o(this.lineAt(0,dt.ByPos,n,s,i))}setMeasuredHeight(e){let t=e.heights[e.index++];t<0?(this.spaceAbove=-t,t=e.heights[e.index++]):this.spaceAbove=0,this.setHeight(t)}updateHeight(e,t=0,n=!1,s){return s&&s.from<=t&&s.more&&this.setMeasuredHeight(s),this.outdated=!1,this}toString(){return`block(${this.length})`}}class sr extends sg{constructor(e,t,n){super(e,t,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0,this.spaceAbove=n}mainBlock(e,t){return new Mr(t,this.length,e+this.spaceAbove,this.height-this.spaceAbove,this.breaks)}replace(e,t,n){let s=n[0];return n.length==1&&(s instanceof sr||s instanceof At&&s.flags&4)&&Math.abs(this.length-s.length)<10?(s instanceof At?s=new sr(s.length,this.height,this.spaceAbove):s.height=this.height,this.outdated||(s.outdated=!1),s):Nt.of(n)}updateHeight(e,t=0,n=!1,s){return s&&s.from<=t&&s.more?this.setMeasuredHeight(s):(n||this.outdated)&&(this.spaceAbove=0,this.setHeight(Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight)),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class At extends Nt{constructor(e){super(e,0)}heightMetrics(e,t){let n=e.doc.lineAt(t).number,s=e.doc.lineAt(t+this.length).number,i=s-n+1,o,a=0;if(e.lineWrapping){let l=Math.min(this.height,e.lineHeight*i);o=l/i,this.length>i+1&&(a=(this.height-l)/(this.length-i-1))}else o=this.height/i;return{firstLine:n,lastLine:s,perLine:o,perChar:a}}blockAt(e,t,n,s){let{firstLine:i,lastLine:o,perLine:a,perChar:l}=this.heightMetrics(t,s);if(t.lineWrapping){let c=s+(e<t.lineHeight?0:Math.round(Math.max(0,Math.min(1,(e-n)/this.height))*this.length)),u=t.doc.lineAt(c),h=a+u.length*l,p=Math.max(n,e-h/2);return new Mr(u.from,u.length,p,h,0)}else{let c=Math.max(0,Math.min(o-i,Math.floor((e-n)/a))),{from:u,length:h}=t.doc.line(i+c);return new Mr(u,h,n+a*c,a,0)}}lineAt(e,t,n,s,i){if(t==dt.ByHeight)return this.blockAt(e,n,s,i);if(t==dt.ByPosNoHeight){let{from:f,to:g}=n.doc.lineAt(e);return new Mr(f,g-f,0,0,0)}let{firstLine:o,perLine:a,perChar:l}=this.heightMetrics(n,i),c=n.doc.lineAt(e),u=a+c.length*l,h=c.number-o,p=s+a*h+l*(c.from-i-h);return new Mr(c.from,c.length,Math.max(s,Math.min(p,s+this.height-u)),u,0)}forEachLine(e,t,n,s,i,o){e=Math.max(e,i),t=Math.min(t,i+this.length);let{firstLine:a,perLine:l,perChar:c}=this.heightMetrics(n,i);for(let u=e,h=s;u<=t;){let p=n.doc.lineAt(u);if(u==e){let g=p.number-a;h+=l*g+c*(e-i-g)}let f=l+c*p.length;o(new Mr(p.from,p.length,h,f,0)),h+=f,u=p.to+1}}replace(e,t,n){let s=this.length-t;if(s>0){let i=n[n.length-1];i instanceof At?n[n.length-1]=new At(i.length+s):n.push(null,new At(s-1))}if(e>0){let i=n[0];i instanceof At?n[0]=new At(e+i.length):n.unshift(new At(e-1),null)}return Nt.of(n)}decomposeLeft(e,t){t.push(new At(e-1),null)}decomposeRight(e,t){t.push(null,new At(this.length-e-1))}updateHeight(e,t=0,n=!1,s){let i=t+this.length;if(s&&s.from<=t+this.length&&s.more){let o=[],a=Math.max(t,s.from),l=-1;for(s.from>t&&o.push(new At(s.from-t-1).updateHeight(e,t));a<=i&&s.more;){let u=e.doc.lineAt(a).length;o.length&&o.push(null);let h=s.heights[s.index++],p=0;h<0&&(p=-h,h=s.heights[s.index++]),l==-1?l=h:Math.abs(h-l)>=da&&(l=-2);let f=new sr(u,h,p);f.outdated=!1,o.push(f),a+=u+1}a<=i&&o.push(null,new At(i-a).updateHeight(e,a));let c=Nt.of(o);return(l<0||Math.abs(c.height-this.height)>=da||Math.abs(l-this.heightMetrics(e,t).perLine)>=da)&&(zs=!0),Ra(this,c)}else(n||this.outdated)&&(this.setHeight(e.heightForGap(t,t+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}}class w$ extends Nt{constructor(e,t,n){super(e.length+t+n.length,e.height+n.height,t|(e.outdated||n.outdated?2:0)),this.left=e,this.right=n,this.size=e.size+n.size}get break(){return this.flags&1}blockAt(e,t,n,s){let i=n+this.left.height;return e<i?this.left.blockAt(e,t,n,s):this.right.blockAt(e,t,i,s+this.left.length+this.break)}lineAt(e,t,n,s,i){let o=s+this.left.height,a=i+this.left.length+this.break,l=t==dt.ByHeight?e<o:e<a,c=l?this.left.lineAt(e,t,n,s,i):this.right.lineAt(e,t,n,o,a);if(this.break||(l?c.to<a:c.from>a))return c;let u=t==dt.ByPosNoHeight?dt.ByPosNoHeight:dt.ByPos;return l?c.join(this.right.lineAt(a,u,n,o,a)):this.left.lineAt(a,u,n,s,i).join(c)}forEachLine(e,t,n,s,i,o){let a=s+this.left.height,l=i+this.left.length+this.break;if(this.break)e<l&&this.left.forEachLine(e,t,n,s,i,o),t>=l&&this.right.forEachLine(e,t,n,a,l,o);else{let c=this.lineAt(l,dt.ByPos,n,s,i);e<c.from&&this.left.forEachLine(e,c.from-1,n,s,i,o),c.to>=e&&c.from<=t&&o(c),t>c.to&&this.right.forEachLine(c.to+1,t,n,a,l,o)}}replace(e,t,n){let s=this.left.length+this.break;if(t<s)return this.balanced(this.left.replace(e,t,n),this.right);if(e>this.left.length)return this.balanced(this.left,this.right.replace(e-s,t-s,n));let i=[];e>0&&this.decomposeLeft(e,i);let o=i.length;for(let a of n)i.push(a);if(e>0&&Sd(i,o-1),t<this.length){let a=i.length;this.decomposeRight(t,i),Sd(i,a)}return Nt.of(i)}decomposeLeft(e,t){let n=this.left.length;if(e<=n)return this.left.decomposeLeft(e,t);t.push(this.left),this.break&&(n++,e>=n&&t.push(null)),e>n&&this.right.decomposeLeft(e-n,t)}decomposeRight(e,t){let n=this.left.length,s=n+this.break;if(e>=s)return this.right.decomposeRight(e-s,t);e<n&&this.left.decomposeRight(e,t),this.break&&e<s&&t.push(null),t.push(this.right)}balanced(e,t){return e.size>2*t.size||t.size>2*e.size?Nt.of(this.break?[e,null,t]:[e,t]):(this.left=Ra(this.left,e),this.right=Ra(this.right,t),this.setHeight(e.height+t.height),this.outdated=e.outdated||t.outdated,this.size=e.size+t.size,this.length=e.length+this.break+t.length,this)}updateHeight(e,t=0,n=!1,s){let{left:i,right:o}=this,a=t+i.length+this.break,l=null;return s&&s.from<=t+i.length&&s.more?l=i=i.updateHeight(e,t,n,s):i.updateHeight(e,t,n),s&&s.from<=a+o.length&&s.more?l=o=o.updateHeight(e,a,n,s):o.updateHeight(e,a,n),l?this.balanced(i,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function Sd(r,e){let t,n;r[e]==null&&(t=r[e-1])instanceof At&&(n=r[e+1])instanceof At&&r.splice(e-1,3,new At(t.length+1+n.length))}const S$=5;class ju{constructor(e,t){this.pos=e,this.oracle=t,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,t){if(this.lineStart>-1){let n=Math.min(t,this.lineEnd),s=this.nodes[this.nodes.length-1];s instanceof sr?s.length+=n-this.pos:(n>this.pos||!this.isCovered)&&this.nodes.push(new sr(n-this.pos,-1,0)),this.writtenTo=n,t>n&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=t}point(e,t,n){if(e<t||n.heightRelevant){let s=n.widget?n.widget.estimatedHeight:0,i=n.widget?n.widget.lineBreaks:0;s<0&&(s=this.oracle.lineHeight);let o=t-e;n.block?this.addBlock(new sg(o,s,n)):(o||i||s>=S$)&&this.addLineDeco(s,i,o)}else t>e&&this.span(e,t);this.lineEnd>-1&&this.lineEnd<this.pos&&(this.lineEnd=this.oracle.doc.lineAt(this.pos).to)}enterLine(){if(this.lineStart>-1)return;let{from:e,to:t}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=t,this.writtenTo<e&&((this.writtenTo<e-1||this.nodes[this.nodes.length-1]==null)&&this.nodes.push(this.blankContent(this.writtenTo,e-1)),this.nodes.push(null)),this.pos>e&&this.nodes.push(new sr(this.pos-e,-1,0)),this.writtenTo=this.pos}blankContent(e,t){let n=new At(t-e);return this.oracle.doc.lineAt(e).to==t&&(n.flags|=4),n}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof sr)return e;let t=new sr(0,-1,0);return this.nodes.push(t),t}addBlock(e){this.enterLine();let t=e.deco;t&&t.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,t&&t.endSide>0&&(this.covering=e)}addLineDeco(e,t,n){let s=this.ensureLine();s.length+=n,s.collapsed+=n,s.widgetHeight=Math.max(s.widgetHeight,e),s.breaks+=t,this.writtenTo=this.pos=this.pos+n}finish(e){let t=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(t instanceof sr)&&!this.isCovered?this.nodes.push(new sr(0,-1,0)):(this.writtenTo<this.pos||t==null)&&this.nodes.push(this.blankContent(this.writtenTo,this.pos));let n=e;for(let s of this.nodes)s instanceof sr&&s.updateHeight(this.oracle,n),n+=s?s.length:1;return this.nodes}static build(e,t,n,s){let i=new ju(n,e);return Ke.spans(t,n,s,i,0),i.finish(n)}}function $$(r,e,t){let n=new C$;return Ke.compare(r,e,t,n,0),n.changes}class C${constructor(){this.changes=[]}compareRange(){}comparePoint(e,t,n,s){(e<t||n&&n.heightRelevant||s&&s.heightRelevant)&&Ps(e,t,this.changes,5)}}function Q$(r,e){let t=r.getBoundingClientRect(),n=r.ownerDocument,s=n.defaultView||window,i=Math.max(0,t.left),o=Math.min(s.innerWidth,t.right),a=Math.max(0,t.top),l=Math.min(s.innerHeight,t.bottom);for(let c=r.parentNode;c&&c!=n.body;)if(c.nodeType==1){let u=c,h=window.getComputedStyle(u);if((u.scrollHeight>u.clientHeight||u.scrollWidth>u.clientWidth)&&h.overflow!="visible"){let p=u.getBoundingClientRect();i=Math.max(i,p.left),o=Math.min(o,p.right),a=Math.max(a,p.top),l=Math.min(c==r.parentNode?s.innerHeight:l,p.bottom)}c=h.position=="absolute"||h.position=="fixed"?u.offsetParent:u.parentNode}else if(c.nodeType==11)c=c.host;else break;return{left:i-t.left,right:Math.max(i,o)-t.left,top:a-(t.top+e),bottom:Math.max(a,l)-(t.top+e)}}function P$(r){let e=r.getBoundingClientRect(),t=r.ownerDocument.defaultView||window;return e.left<t.innerWidth&&e.right>0&&e.top<t.innerHeight&&e.bottom>0}function T$(r,e){let t=r.getBoundingClientRect();return{left:0,right:t.right-t.left,top:e,bottom:t.bottom-(t.top+e)}}class Bl{constructor(e,t,n,s){this.from=e,this.to=t,this.size=n,this.displaySize=s}static same(e,t){if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++){let s=e[n],i=t[n];if(s.from!=i.from||s.to!=i.to||s.size!=i.size)return!1}return!0}draw(e,t){return Ee.replace({widget:new M$(this.displaySize*(t?e.scaleY:e.scaleX),t)}).range(this.from,this.to)}}class M$ extends tn{constructor(e,t){super(),this.size=e,this.vertical=t}eq(e){return e.size==this.size&&e.vertical==this.vertical}toDOM(){let e=document.createElement("div");return this.vertical?e.style.height=this.size+"px":(e.style.width=this.size+"px",e.style.height="2px",e.style.display="inline-block"),e}get estimatedHeight(){return this.vertical?this.size:-1}}class $d{constructor(e){this.state=e,this.pixelViewport={left:0,right:window.innerWidth,top:0,bottom:0},this.inView=!0,this.paddingTop=0,this.paddingBottom=0,this.contentDOMWidth=0,this.contentDOMHeight=0,this.editorHeight=0,this.editorWidth=0,this.scrollTop=0,this.scrolledToBottom=!1,this.scaleX=1,this.scaleY=1,this.scrollAnchorPos=0,this.scrollAnchorHeight=-1,this.scaler=Cd,this.scrollTarget=null,this.printing=!1,this.mustMeasureContent=!0,this.defaultTextDirection=ut.LTR,this.visibleRanges=[],this.mustEnforceCursorAssoc=!1;let t=e.facet(Vu).some(n=>typeof n!="function"&&n.class=="cm-lineWrapping");this.heightOracle=new x$(t),this.stateDeco=Qd(e),this.heightMap=Nt.empty().applyChanges(this.stateDeco,rt.empty,this.heightOracle.setDoc(e.doc),[new pr(0,0,0,e.doc.length)]);for(let n=0;n<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());n++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=Ee.set(this.lineGaps.map(n=>n.draw(this,!1))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:t}=this.state.selection;for(let n=0;n<=1;n++){let s=n?t.head:t.anchor;if(!e.some(({from:i,to:o})=>s>=i&&s<=o)){let{from:i,to:o}=this.lineBlockAt(s);e.push(new Vo(i,o))}}return this.viewports=e.sort((n,s)=>n.from-s.from),this.updateScaler()}updateScaler(){let e=this.scaler;return this.scaler=this.heightMap.height<=7e6?Cd:new qu(this.heightOracle,this.heightMap,this.viewports),e.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(Ri(e,this.scaler))})}update(e,t=null){this.state=e.state;let n=this.stateDeco;this.stateDeco=Qd(this.state);let s=e.changedRanges,i=pr.extendWithRanges(s,$$(n,this.stateDeco,e?e.changes:wt.empty(this.state.doc.length))),o=this.heightMap.height,a=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);wd(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),i),(this.heightMap.height!=o||zs)&&(e.flags|=2),a?(this.scrollAnchorPos=e.changes.mapPos(a.from,-1),this.scrollAnchorHeight=a.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=o);let l=i.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.range.head<l.from||t.range.head>l.to)||!this.viewportIsAppropriate(l))&&(l=this.getViewport(0,t));let c=l.from!=this.viewport.from||l.to!=this.viewport.to;this.viewport=l,e.flags|=this.updateForViewport(),(c||!e.changes.empty||e.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(e.changes),t&&(this.scrollTarget=t),!this.mustEnforceCursorAssoc&&(e.selectionSet||e.focusChanged)&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(Dm)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let t=e.contentDOM,n=window.getComputedStyle(t),s=this.heightOracle,i=n.whiteSpace;this.defaultTextDirection=n.direction=="rtl"?ut.RTL:ut.LTR;let o=this.heightOracle.mustRefreshForWrapping(i)||this.mustMeasureContent==="refresh",a=t.getBoundingClientRect(),l=o||this.mustMeasureContent||this.contentDOMHeight!=a.height;this.contentDOMHeight=a.height,this.mustMeasureContent=!1;let c=0,u=0;if(a.width&&a.height){let{scaleX:A,scaleY:E}=xm(t,a);(A>.005&&Math.abs(this.scaleX-A)>.005||E>.005&&Math.abs(this.scaleY-E)>.005)&&(this.scaleX=A,this.scaleY=E,c|=16,o=l=!0)}let h=(parseInt(n.paddingTop)||0)*this.scaleY,p=(parseInt(n.paddingBottom)||0)*this.scaleY;(this.paddingTop!=h||this.paddingBottom!=p)&&(this.paddingTop=h,this.paddingBottom=p,c|=18),this.editorWidth!=e.scrollDOM.clientWidth&&(s.lineWrapping&&(l=!0),this.editorWidth=e.scrollDOM.clientWidth,c|=16);let f=e.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=f&&(this.scrollAnchorHeight=-1,this.scrollTop=f),this.scrolledToBottom=km(e.scrollDOM);let g=(this.printing?T$:Q$)(t,this.paddingTop),O=g.top-this.pixelViewport.top,y=g.bottom-this.pixelViewport.bottom;this.pixelViewport=g;let b=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(b!=this.inView&&(this.inView=b,b&&(l=!0)),!this.inView&&!this.scrollTarget&&!P$(e.dom))return 0;let C=a.width;if((this.contentDOMWidth!=C||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=a.width,this.editorHeight=e.scrollDOM.clientHeight,c|=16),l){let A=e.docView.measureVisibleLineHeights(this.viewport);if(s.mustRefreshForHeights(A)&&(o=!0),o||s.lineWrapping&&Math.abs(C-this.contentDOMWidth)>s.charWidth){let{lineHeight:E,charWidth:F,textHeight:I}=e.docView.measureTextSize();o=E>0&&s.refresh(i,E,F,I,Math.max(5,C/F),A),o&&(e.docView.minWidth=0,c|=16)}O>0&&y>0?u=Math.max(O,y):O<0&&y<0&&(u=Math.min(O,y)),wd();for(let E of this.viewports){let F=E.from==this.viewport.from?A:e.docView.measureVisibleLineHeights(E);this.heightMap=(o?Nt.empty().applyChanges(this.stateDeco,rt.empty,this.heightOracle,[new pr(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(s,0,o,new y$(E.from,F))}zs&&(c|=2)}let P=!this.viewportIsAppropriate(this.viewport,u)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.viewport.to);return P&&(c&2&&(c|=this.updateScaler()),this.viewport=this.getViewport(u,this.scrollTarget),c|=this.updateForViewport()),(c&2||P)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,e)),c|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),c}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,t){let n=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),s=this.heightMap,i=this.heightOracle,{visibleTop:o,visibleBottom:a}=this,l=new Vo(s.lineAt(o-n*1e3,dt.ByHeight,i,0,0).from,s.lineAt(a+(1-n)*1e3,dt.ByHeight,i,0,0).to);if(t){let{head:c}=t.range;if(c<l.from||c>l.to){let u=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),h=s.lineAt(c,dt.ByPos,i,0,0),p;t.y=="center"?p=(h.top+h.bottom)/2-u/2:t.y=="start"||t.y=="nearest"&&c<l.from?p=h.top:p=h.bottom-u,l=new Vo(s.lineAt(p-1e3/2,dt.ByHeight,i,0,0).from,s.lineAt(p+u+1e3/2,dt.ByHeight,i,0,0).to)}}return l}mapViewport(e,t){let n=t.mapPos(e.from,-1),s=t.mapPos(e.to,1);return new Vo(this.heightMap.lineAt(n,dt.ByPos,this.heightOracle,0,0).from,this.heightMap.lineAt(s,dt.ByPos,this.heightOracle,0,0).to)}viewportIsAppropriate({from:e,to:t},n=0){if(!this.inView)return!0;let{top:s}=this.heightMap.lineAt(e,dt.ByPos,this.heightOracle,0,0),{bottom:i}=this.heightMap.lineAt(t,dt.ByPos,this.heightOracle,0,0),{visibleTop:o,visibleBottom:a}=this;return(e==0||s<=o-Math.max(10,Math.min(-n,250)))&&(t==this.state.doc.length||i>=a+Math.max(10,Math.min(n,250)))&&s>o-2*1e3&&i<a+2*1e3}mapLineGaps(e,t){if(!e.length||t.empty)return e;let n=[];for(let s of e)t.touchesRange(s.from,s.to)||n.push(new Bl(t.mapPos(s.from),t.mapPos(s.to),s.size,s.displaySize));return n}ensureLineGaps(e,t){let n=this.heightOracle.lineWrapping,s=n?1e4:2e3,i=s>>1,o=s<<1;if(this.defaultTextDirection!=ut.LTR&&!n)return[];let a=[],l=(u,h,p,f)=>{if(h-u<i)return;let g=this.state.selection.main,O=[g.from];g.empty||O.push(g.to);for(let b of O)if(b>u&&b<h){l(u,b-10,p,f),l(b+10,h,p,f);return}let y=_$(e,b=>b.from>=p.from&&b.to<=p.to&&Math.abs(b.from-u)<i&&Math.abs(b.to-h)<i&&!O.some(C=>b.from<C&&b.to>C));if(!y){if(h<p.to&&t&&n&&t.visibleRanges.some(P=>P.from<=h&&P.to>=h)){let P=t.moveToLineBoundary(te.cursor(h),!1,!0).head;P>u&&(h=P)}let b=this.gapSize(p,u,h,f),C=n||b<2e6?b:2e6;y=new Bl(u,h,b,C)}a.push(y)},c=u=>{if(u.length<o||u.type!=Bt.Text)return;let h=A$(u.from,u.to,this.stateDeco);if(h.total<o)return;let p=this.scrollTarget?this.scrollTarget.range.head:null,f,g;if(n){let O=s/this.heightOracle.lineLength*this.heightOracle.lineHeight,y,b;if(p!=null){let C=No(h,p),P=((this.visibleBottom-this.visibleTop)/2+O)/u.height;y=C-P,b=C+P}else y=(this.visibleTop-u.top-O)/u.height,b=(this.visibleBottom-u.top+O)/u.height;f=zo(h,y),g=zo(h,b)}else{let O=h.total*this.heightOracle.charWidth,y=s*this.heightOracle.charWidth,b=0;if(O>2e6)for(let F of e)F.from>=u.from&&F.from<u.to&&F.size!=F.displaySize&&F.from*this.heightOracle.charWidth+b<this.pixelViewport.left&&(b=F.size-F.displaySize);let C=this.pixelViewport.left+b,P=this.pixelViewport.right+b,A,E;if(p!=null){let F=No(h,p),I=((P-C)/2+y)/O;A=F-I,E=F+I}else A=(C-y)/O,E=(P+y)/O;f=zo(h,A),g=zo(h,E)}f>u.from&&l(u.from,f,u,h),g<u.to&&l(g,u.to,u,h)};for(let u of this.viewportLines)Array.isArray(u.type)?u.type.forEach(c):c(u);return a}gapSize(e,t,n,s){let i=No(s,n)-No(s,t);return this.heightOracle.lineWrapping?e.height*i:s.total*this.heightOracle.charWidth*i}updateLineGaps(e){Bl.same(e,this.lineGaps)||(this.lineGaps=e,this.lineGapDeco=Ee.set(e.map(t=>t.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(e){let t=this.stateDeco;this.lineGaps.length&&(t=t.concat(this.lineGapDeco));let n=[];Ke.spans(t,this.viewport.from,this.viewport.to,{span(i,o){n.push({from:i,to:o})},point(){}},20);let s=0;if(n.length!=this.visibleRanges.length)s=12;else for(let i=0;i<n.length&&!(s&8);i++){let o=this.visibleRanges[i],a=n[i];(o.from!=a.from||o.to!=a.to)&&(s|=4,e&&e.mapPos(o.from,-1)==a.from&&e.mapPos(o.to,1)==a.to||(s|=8))}return this.visibleRanges=n,s}lineBlockAt(e){return e>=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(t=>t.from<=e&&t.to>=e)||Ri(this.heightMap.lineAt(e,dt.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return e>=this.viewportLines[0].top&&e<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(t=>t.top<=e&&t.bottom>=e)||Ri(this.heightMap.lineAt(this.scaler.fromDOM(e),dt.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(e){let t=this.lineBlockAtHeight(e+8);return t.from>=this.viewport.from||this.viewportLines[0].top-e>200?t:this.viewportLines[0]}elementAtHeight(e){return Ri(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class Vo{constructor(e,t){this.from=e,this.to=t}}function A$(r,e,t){let n=[],s=r,i=0;return Ke.spans(t,r,e,{span(){},point(o,a){o>s&&(n.push({from:s,to:o}),i+=o-s),s=a}},20),s<e&&(n.push({from:s,to:e}),i+=e-s),{total:i,ranges:n}}function zo({total:r,ranges:e},t){if(t<=0)return e[0].from;if(t>=1)return e[e.length-1].to;let n=Math.floor(r*t);for(let s=0;;s++){let{from:i,to:o}=e[s],a=o-i;if(n<=a)return i+n;n-=a}}function No(r,e){let t=0;for(let{from:n,to:s}of r.ranges){if(e<=s){t+=e-n;break}t+=s-n}return t/r.total}function _$(r,e){for(let t of r)if(e(t))return t}const Cd={toDOM(r){return r},fromDOM(r){return r},scale:1,eq(r){return r==this}};function Qd(r){let e=r.facet(hl).filter(n=>typeof n!="function"),t=r.facet(zu).filter(n=>typeof n!="function");return t.length&&e.push(Ke.join(t)),e}class qu{constructor(e,t,n){let s=0,i=0,o=0;this.viewports=n.map(({from:a,to:l})=>{let c=t.lineAt(a,dt.ByPos,e,0,0).top,u=t.lineAt(l,dt.ByPos,e,0,0).bottom;return s+=u-c,{from:a,to:l,top:c,bottom:u,domTop:0,domBottom:0}}),this.scale=(7e6-s)/(t.height-s);for(let a of this.viewports)a.domTop=o+(a.top-i)*this.scale,o=a.domBottom=a.domTop+(a.bottom-a.top),i=a.bottom}toDOM(e){for(let t=0,n=0,s=0;;t++){let i=t<this.viewports.length?this.viewports[t]:null;if(!i||e<i.top)return s+(e-n)*this.scale;if(e<=i.bottom)return i.domTop+(e-i.top);n=i.bottom,s=i.domBottom}}fromDOM(e){for(let t=0,n=0,s=0;;t++){let i=t<this.viewports.length?this.viewports[t]:null;if(!i||e<i.domTop)return n+(e-s)/this.scale;if(e<=i.domBottom)return i.top+(e-i.domTop);n=i.bottom,s=i.domBottom}}eq(e){return e instanceof qu?this.scale==e.scale&&this.viewports.length==e.viewports.length&&this.viewports.every((t,n)=>t.from==e.viewports[n].from&&t.to==e.viewports[n].to):!1}}function Ri(r,e){if(e.scale==1)return r;let t=e.toDOM(r.top),n=e.toDOM(r.bottom);return new Mr(r.from,r.length,t,n-t,Array.isArray(r._content)?r._content.map(s=>Ri(s,e)):r._content)}const Wo=$e.define({combine:r=>r.join(" ")}),jc=$e.define({combine:r=>r.indexOf(!0)>-1}),qc=Zn.newName(),ig=Zn.newName(),og=Zn.newName(),ag={"&light":"."+ig,"&dark":"."+og};function Yc(r,e,t){return new Zn(e,{finish(n){return/&/.test(n)?n.replace(/&\w*/,s=>{if(s=="&")return r;if(!t||!t[s])throw new RangeError(`Unsupported selector: ${s}`);return t[s]}):r+" "+n}})}const R$=Yc("."+qc,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="20"><path stroke="%23888" stroke-width="1" fill="none" d="M1 10H196L190 5M190 15L196 10M197 4L197 16"/></svg>')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},ag),B$={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},Zl=Pe.ie&&Pe.ie_version<=11;class Z${constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new h2,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(t=>{for(let n of t)this.queue.push(n);(Pe.ie&&Pe.ie_version<=11||Pe.ios&&e.composing)&&t.some(n=>n.type=="childList"&&n.removedNodes.length||n.type=="characterData"&&n.oldValue.length>n.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&Pe.android&&e.constructor.EDIT_CONTEXT!==!1&&!(Pe.chrome&&Pe.chrome_version<126)&&(this.editContext=new D$(e),e.state.facet(cn)&&(e.contentDOM.editContext=this.editContext.editContext)),Zl&&(this.onCharData=t=>{this.queue.push({target:t.target,type:"characterData",oldValue:t.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var t;((t=this.view.docView)===null||t===void 0?void 0:t.lastUpdate)<Date.now()-75&&this.onResize()}),this.resizeScroll.observe(e.scrollDOM)),this.addWindowListeners(this.win=e.win),this.start(),typeof IntersectionObserver=="function"&&(this.intersection=new IntersectionObserver(t=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),t.length>0&&t[t.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(t=>{t.length>0&&t[t.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(e){(e.type=="change"||!e.type)&&!e.matches||(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((t,n)=>t!=e[n]))){this.gapIntersection.disconnect();for(let t of e)this.gapIntersection.observe(t);this.gaps=e}}onSelectionChange(e){let t=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:n}=this,s=this.selectionRange;if(n.state.facet(cn)?n.root.activeElement!=this.dom:!Li(this.dom,s))return;let i=s.anchorNode&&n.docView.tile.nearest(s.anchorNode);if(i&&i.isWidget()&&i.widget.ignoreEvent(e)){t||(this.selectionChanged=!1);return}(Pe.ie&&Pe.ie_version<=11||Pe.android&&Pe.chrome)&&!n.state.selection.main.empty&&s.focusNode&&Xi(s.focusNode,s.focusOffset,s.anchorNode,s.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=Fi(e.root);if(!t)return!1;let n=Pe.safari&&e.root.nodeType==11&&e.root.activeElement==this.dom&&E$(this.view,t)||t;if(!n||this.selectionRange.eq(n))return!1;let s=Li(this.dom,n);return s&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime<Date.now()-300&&f2(this.dom,n)?(this.view.inputState.lastFocusTime=0,e.docView.updateSelection(),!1):(this.selectionRange.setRange(n),s&&(this.selectionChanged=!0),!0)}setSelectionRange(e,t){this.selectionRange.set(e.node,e.offset,t.node,t.offset),this.selectionChanged=!1}clearSelectionRange(){this.selectionRange.set(null,0,null,0)}listenForScroll(){this.parentCheck=-1;let e=0,t=null;for(let n=this.dom;n;)if(n.nodeType==1)!t&&e<this.scrollTargets.length&&this.scrollTargets[e]==n?e++:t||(t=this.scrollTargets.slice(0,e)),t&&t.push(n),n=n.assignedSlot||n.parentNode;else if(n.nodeType==11)n=n.host;else break;if(e<this.scrollTargets.length&&!t&&(t=this.scrollTargets.slice(0,e)),t){for(let n of this.scrollTargets)n.removeEventListener("scroll",this.onScroll);for(let n of this.scrollTargets=t)n.addEventListener("scroll",this.onScroll)}}ignore(e){if(!this.active)return e();try{return this.stop(),e()}finally{this.start(),this.clear()}}start(){this.active||(this.observer.observe(this.dom,B$),Zl&&this.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.active=!0)}stop(){this.active&&(this.active=!1,this.observer.disconnect(),Zl&&this.dom.removeEventListener("DOMCharacterDataModified",this.onCharData))}clear(){this.processRecords(),this.queue.length=0,this.selectionChanged=!1}delayAndroidKey(e,t){var n;if(!this.delayedAndroidKey){let s=()=>{let i=this.delayedAndroidKey;i&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=i.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&i.force&&Ts(this.dom,i.key,i.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(s)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:t,force:this.lastChange<Date.now()-50||!!(!((n=this.delayedAndroidKey)===null||n===void 0)&&n.force)})}clearDelayedAndroidKey(){this.win.cancelAnimationFrame(this.flushingAndroidKey),this.delayedAndroidKey=null,this.flushingAndroidKey=-1}flushSoon(){this.delayedFlush<0&&(this.delayedFlush=this.view.win.requestAnimationFrame(()=>{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let t=-1,n=-1,s=!1;for(let i of e){let o=this.readMutation(i);o&&(o.typeOver&&(s=!0),t==-1?{from:t,to:n}=o:(t=Math.min(o.from,t),n=Math.max(o.to,n)))}return{from:t,to:n,typeOver:s}}readChange(){let{from:e,to:t,typeOver:n}=this.processRecords(),s=this.selectionChanged&&Li(this.dom,this.selectionRange);if(e<0&&!s)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let i=new e$(this.view,e,t,n);return this.view.docView.domChanged={newSel:i.newSel?i.newSel.main:null},i}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let t=this.readChange();if(!t)return this.view.requestMeasure(),!1;let n=this.view.state,s=Fm(this.view,t);return this.view.state==n&&(t.domChanged||t.newSel&&!_a(this.view.state.selection,t.newSel.main))&&this.view.update([]),s}readMutation(e){let t=this.view.docView.tile.nearest(e.target);if(!t||t.isWidget())return null;if(t.markDirty(e.type=="attributes"),e.type=="childList"){let n=Pd(t,e.previousSibling||e.target.previousSibling,-1),s=Pd(t,e.nextSibling||e.target.nextSibling,1);return{from:n?t.posAfter(n):t.posAtStart,to:s?t.posBefore(s):t.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}update(e){this.editContext&&(this.editContext.update(e),e.startState.facet(cn)!=e.state.facet(cn)&&(e.view.contentDOM.editContext=e.state.facet(cn)?this.editContext.editContext:null))}destroy(){var e,t,n;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(t=this.gapIntersection)===null||t===void 0||t.disconnect(),(n=this.resizeScroll)===null||n===void 0||n.disconnect();for(let s of this.scrollTargets)s.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}}function Pd(r,e,t){for(;e;){let n=bt.get(e);if(n&&n.parent==r)return n;let s=e.parentNode;e=s!=r.dom?s:t>0?e.nextSibling:e.previousSibling}return null}function Td(r,e){let t=e.startContainer,n=e.startOffset,s=e.endContainer,i=e.endOffset,o=r.docView.domAtPos(r.state.selection.main.anchor,1);return Xi(o.node,o.offset,s,i)&&([t,n,s,i]=[s,i,t,n]),{anchorNode:t,anchorOffset:n,focusNode:s,focusOffset:i}}function E$(r,e){if(e.getComposedRanges){let s=e.getComposedRanges(r.root)[0];if(s)return Td(r,s)}let t=null;function n(s){s.preventDefault(),s.stopImmediatePropagation(),t=s.getTargetRanges()[0]}return r.contentDOM.addEventListener("beforeinput",n,!0),r.dom.ownerDocument.execCommand("indent"),r.contentDOM.removeEventListener("beforeinput",n,!0),t?Td(r,t):null}class D${constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(e.state);let t=this.editContext=new window.EditContext({text:e.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,e.state.selection.main.anchor))),selectionEnd:this.toContextPos(e.state.selection.main.head)});this.handlers.textupdate=n=>{let s=e.state.selection.main,{anchor:i,head:o}=s,a=this.toEditorPos(n.updateRangeStart),l=this.toEditorPos(n.updateRangeEnd);e.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:n.updateRangeStart,editorBase:a,drifted:!1});let c=l-a>n.text.length;a==this.from&&i<this.from?a=i:l==this.to&&i>this.to&&(l=i);let u=Um(e.state.sliceDoc(a,l),n.text,(c?s.from:s.to)-a,c?"end":null);if(!u){let p=te.single(this.toEditorPos(n.selectionStart),this.toEditorPos(n.selectionEnd));_a(p,s)||e.dispatch({selection:p,userEvent:"select"});return}let h={from:u.from+a,to:u.toA+a,insert:rt.of(n.text.slice(u.from,u.toB).split(`
|
|
20
|
+
`))};if((Pe.mac||Pe.android)&&h.from==o-1&&/^\. ?$/.test(n.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(h={from:a,to:l,insert:rt.of([n.text.replace("."," ")])}),this.pendingContextChange=h,!e.state.readOnly){let p=this.to-this.from+(h.to-h.from+h.insert.length);Wu(e,h,te.single(this.toEditorPos(n.selectionStart,p),this.toEditorPos(n.selectionEnd,p)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)),h.from<h.to&&!h.insert.length&&e.inputState.composing>=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(t.text.slice(Math.max(0,n.updateRangeStart-1),Math.min(t.text.length,n.updateRangeStart+1)))&&this.handlers.compositionend(n)},this.handlers.characterboundsupdate=n=>{let s=[],i=null;for(let o=this.toEditorPos(n.rangeStart),a=this.toEditorPos(n.rangeEnd);o<a;o++){let l=e.coordsForChar(o);i=l&&new DOMRect(l.left,l.top,l.right-l.left,l.bottom-l.top)||i||new DOMRect,s.push(i)}t.updateCharacterBounds(n.rangeStart,s)},this.handlers.textformatupdate=n=>{let s=[];for(let i of n.getTextFormats()){let o=i.underlineStyle,a=i.underlineThickness;if(!/none/i.test(o)&&!/none/i.test(a)){let l=this.toEditorPos(i.rangeStart),c=this.toEditorPos(i.rangeEnd);if(l<c){let u=`text-decoration: underline ${/^[a-z]/.test(o)?o+" ":o=="Dashed"?"dashed ":o=="Squiggle"?"wavy ":""}${/thin/i.test(a)?1:2}px`;s.push(Ee.mark({attributes:{style:u}}).range(l,c))}}}e.dispatch({effects:Xm.of(Ee.set(s))})},this.handlers.compositionstart=()=>{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:n}=this.composing;this.composing=null,n&&this.reset(e.state)}};for(let n in this.handlers)t.addEventListener(n,this.handlers[n]);this.measureReq={read:n=>{this.editContext.updateControlBounds(n.contentDOM.getBoundingClientRect());let s=Fi(n.root);s&&s.rangeCount&&this.editContext.updateSelectionBounds(s.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let t=0,n=!1,s=this.pendingContextChange;return e.changes.iterChanges((i,o,a,l,c)=>{if(n)return;let u=c.length-(o-i);if(s&&o>=s.to)if(s.from==i&&s.to==o&&s.insert.eq(c)){s=this.pendingContextChange=null,t+=u,this.to+=u;return}else s=null,this.revertPending(e.state);if(i+=t,o+=t,o<=this.from)this.from+=u,this.to+=u;else if(i<this.to){if(i<this.from||o>this.to||this.to-this.from+c.length>3e4){n=!0;return}this.editContext.updateText(this.toContextPos(i),this.toContextPos(o),c.toString()),this.to+=u}t+=u}),s&&!n&&this.revertPending(e.state),!n}update(e){let t=this.pendingContextChange,n=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(n.from,n.to)&&e.transactions.some(s=>!s.isUserEvent("input.type")&&s.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||t)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:t}=e.selection.main;this.from=Math.max(0,t-1e4),this.to=Math.min(e.doc.length,t+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let t=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(t.from),this.toContextPos(t.from+t.insert.length),e.doc.sliceString(t.from,t.to))}setSelection(e){let{main:t}=e.selection,n=this.toContextPos(Math.max(this.from,Math.min(this.to,t.anchor))),s=this.toContextPos(t.head);(this.editContext.selectionStart!=n||this.editContext.selectionEnd!=s)&&this.editContext.updateSelection(n,s)}rangeIsValid(e){let{head:t}=e.selection.main;return!(this.from>0&&t-this.from<500||this.to<e.doc.length&&this.to-t<500||this.to-this.from>1e4*3)}toEditorPos(e,t=this.to-this.from){e=Math.min(e,t);let n=this.composing;return n&&n.drifted?n.editorBase+(e-n.contextBase):e+this.from}toContextPos(e){let t=this.composing;return t&&t.drifted?t.contextBase+(e-t.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}}class ke{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){var t;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),e.parent&&e.parent.appendChild(this.dom);let{dispatch:n}=e;this.dispatchTransactions=e.dispatchTransactions||n&&(s=>s.forEach(i=>n(i,this)))||(s=>this.update(s)),this.dispatch=this.dispatch.bind(this),this._root=e.root||d2(e.parent)||document,this.viewState=new $d(e.state||Je.create(e)),e.scrollTo&&e.scrollTo.is(Lo)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(Ss).map(s=>new Tl(s));for(let s of this.plugins)s.update(this);this.observer=new Z$(this),this.inputState=new s$(this),this.inputState.ensureHandlers(this.plugins),this.docView=new dd(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((t=document.fonts)===null||t===void 0)&&t.ready&&document.fonts.ready.then(()=>{this.viewState.mustMeasureContent="refresh",this.requestMeasure()})}dispatch(...e){let t=e.length==1&&e[0]instanceof vt?e:e.length==1&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(t,this)}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let t=!1,n=!1,s,i=this.state;for(let p of e){if(p.startState!=i)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");i=p.state}if(this.destroyed){this.viewState.state=i;return}let o=this.hasFocus,a=0,l=null;e.some(p=>p.annotation(tg))?(this.inputState.notifiedFocused=o,a=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,l=rg(i,o),l||(a=1));let c=this.observer.delayedAndroidKey,u=null;if(c?(this.observer.clearDelayedAndroidKey(),u=this.observer.readChange(),(u&&!this.state.doc.eq(i.doc)||!this.state.selection.eq(i.selection))&&(u=null)):this.observer.clear(),i.facet(Je.phrases)!=this.state.facet(Je.phrases))return this.setState(i);s=Ta.create(this,i,e),s.flags|=a;let h=this.viewState.scrollTarget;try{this.updateState=2;for(let p of e){if(h&&(h=h.map(p.changes)),p.scrollIntoView){let{main:f}=p.state.selection;h=new Ms(f.empty?f:te.cursor(f.head,f.head>f.anchor?-1:1))}for(let f of p.effects)f.is(Lo)&&(h=f.value.clip(this.state))}this.viewState.update(s,h),this.bidiCache=Ba.update(this.bidiCache,s.changes),s.empty||(this.updatePlugins(s),this.inputState.update(s)),t=this.docView.update(s),this.state.facet(Ai)!=this.styleModules&&this.mountStyles(),n=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(t,e.some(p=>p.isUserEvent("select.pointer")))}finally{this.updateState=0}if(s.startState.facet(Wo)!=s.state.facet(Wo)&&(this.viewState.mustMeasureContent=!0),(t||n||h||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),t&&this.docViewUpdate(),!s.empty)for(let p of this.state.facet(Ic))try{p(s)}catch(f){Gt(this.state,f,"update listener")}(l||u)&&Promise.resolve().then(()=>{l&&this.state==l.startState&&this.dispatch(l),u&&!Fm(this,u)&&c.force&&Ts(this.contentDOM,c.key,c.keyCode)})}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let t=this.hasFocus;try{for(let n of this.plugins)n.destroy(this);this.viewState=new $d(e),this.plugins=e.facet(Ss).map(n=>new Tl(n)),this.pluginMap.clear();for(let n of this.plugins)n.update(this);this.docView.destroy(),this.docView=new dd(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}t&&this.focus(),this.requestMeasure()}updatePlugins(e){let t=e.startState.facet(Ss),n=e.state.facet(Ss);if(t!=n){let s=[];for(let i of n){let o=t.indexOf(i);if(o<0)s.push(new Tl(i));else{let a=this.plugins[o];a.mustUpdate=e,s.push(a)}}for(let i of this.plugins)i.mustUpdate!=e&&i.destroy(this);this.plugins=s,this.pluginMap.clear()}else for(let s of this.plugins)s.mustUpdate=e;for(let s=0;s<this.plugins.length;s++)this.plugins[s].update(this);t!=n&&this.inputState.ensureHandlers(this.plugins)}docViewUpdate(){for(let e of this.plugins){let t=e.value;if(t&&t.docViewUpdate)try{t.docViewUpdate(this)}catch(n){Gt(this.state,n,"doc view update listener")}}}measure(e=!0){if(this.destroyed)return;if(this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,e&&this.observer.forceFlush();let t=null,n=this.scrollDOM,s=n.scrollTop*this.scaleY,{scrollAnchorPos:i,scrollAnchorHeight:o}=this.viewState;Math.abs(s-this.viewState.scrollTop)>1&&(o=-1),this.viewState.scrollAnchorHeight=-1;try{for(let a=0;;a++){if(o<0)if(km(n))i=-1,o=this.viewState.heightMap.height;else{let f=this.viewState.scrollAnchorAt(s);i=f.from,o=f.top}this.updateState=1;let l=this.viewState.measure(this);if(!l&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(a>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let c=[];l&4||([this.measureRequests,c]=[c,this.measureRequests]);let u=c.map(f=>{try{return f.read(this)}catch(g){return Gt(this.state,g),Md}}),h=Ta.create(this,this.state,[]),p=!1;h.flags|=l,t?t.flags|=l:t=h,this.updateState=2,h.empty||(this.updatePlugins(h),this.inputState.update(h),this.updateAttrs(),p=this.docView.update(h),p&&this.docViewUpdate());for(let f=0;f<c.length;f++)if(u[f]!=Md)try{let g=c[f];g.write&&g.write(u[f],this)}catch(g){Gt(this.state,g)}if(p&&this.docView.updateSelection(!0),!h.viewportChanged&&this.measureRequests.length==0){if(this.viewState.editorHeight)if(this.viewState.scrollTarget){this.docView.scrollIntoView(this.viewState.scrollTarget),this.viewState.scrollTarget=null,o=-1;continue}else{let g=(i<0?this.viewState.heightMap.height:this.viewState.lineBlockAt(i).top)-o;if(g>1||g<-1){s=s+g,n.scrollTop=s/this.scaleY,o=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let a of this.state.facet(Ic))a(t)}get themeClasses(){return qc+" "+(this.state.facet(jc)?og:ig)+" "+this.state.facet(Wo)}updateAttrs(){let e=Ad(this,Im,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(cn)?"true":"false",class:"cm-content",style:`${Pe.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),Ad(this,Vu,t);let n=this.observer.ignore(()=>{let s=od(this.contentDOM,this.contentAttrs,t),i=od(this.dom,this.editorAttrs,e);return s||i});return this.editorAttrs=e,this.contentAttrs=t,n}showAnnouncements(e){let t=!0;for(let n of e)for(let s of n.effects)if(s.is(ke.announce)){t&&(this.announceDOM.textContent=""),t=!1;let i=this.announceDOM.appendChild(document.createElement("div"));i.textContent=s.value}}mountStyles(){this.styleModules=this.state.facet(Ai);let e=this.state.facet(ke.cspNonce);Zn.mount(this.root,this.styleModules.concat(R$).reverse(),e?{nonce:e}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let t=0;t<this.measureRequests.length;t++)if(this.measureRequests[t].key===e.key){this.measureRequests[t]=e;return}}this.measureRequests.push(e)}}plugin(e){let t=this.pluginMap.get(e);return(t===void 0||t&&t.plugin!=e)&&this.pluginMap.set(e,t=this.plugins.find(n=>n.plugin==e)||null),t&&t.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,t,n){return Rl(this,e,fd(this,e,t,n))}moveByGroup(e,t){return Rl(this,e,fd(this,e,t,n=>F2(this,e.head,n)))}visualLineSide(e,t){let n=this.bidiSpans(e),s=this.textDirectionAt(e.from),i=n[t?n.length-1:0];return te.cursor(i.side(t,s)+e.from,i.forward(!t,s)?1:-1)}moveToLineBoundary(e,t,n=!0){return Y2(this,e,t,n)}moveVertically(e,t,n){return Rl(this,e,U2(this,e,t,n))}domAtPos(e,t=1){return this.docView.domAtPos(e,t)}posAtDOM(e,t=0){return this.docView.posFromDOM(e,t)}posAtCoords(e,t=!0){this.readMeasured();let n=Nc(this,e,t);return n&&n.pos}posAndSideAtCoords(e,t=!0){return this.readMeasured(),Nc(this,e,t)}coordsAtPos(e,t=1){this.readMeasured();let n=this.docView.coordsAt(e,t);if(!n||n.left==n.right)return n;let s=this.state.doc.lineAt(e),i=this.bidiSpans(s),o=i[Fr.find(i,e-s.from,-1,t)];return Pa(n,o.dir==ut.LTR==t>0)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(Em)||e<this.viewport.from||e>this.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>L$)return Pm(e.length);let t=this.textDirectionAt(e.from),n;for(let i of this.bidiCache)if(i.from==e.from&&i.dir==t&&(i.fresh||Qm(i.isolates,n=cd(this,e))))return i.order;n||(n=cd(this,e));let s=x2(e.text,t,n);return this.bidiCache.push(new Ba(e.from,e.to,t,n,!0,s)),s}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||Pe.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{ym(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,t={}){return Lo.of(new Ms(typeof e=="number"?te.cursor(e):e,t.y,t.x,t.yMargin,t.xMargin))}scrollSnapshot(){let{scrollTop:e,scrollLeft:t}=this.scrollDOM,n=this.viewState.scrollAnchorAt(e);return Lo.of(new Ms(te.cursor(n.from),"start","start",n.top-e,t,!0))}setTabFocusMode(e){e==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof e=="boolean"?this.inputState.tabFocusMode=e?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+e)}static domEventHandlers(e){return Ot.define(()=>({}),{eventHandlers:e})}static domEventObservers(e){return Ot.define(()=>({}),{eventObservers:e})}static theme(e,t){let n=Zn.newName(),s=[Wo.of(n),Ai.of(Yc(`.${n}`,e))];return t&&t.dark&&s.push(jc.of(!0)),s}static baseTheme(e){return On.lowest(Ai.of(Yc("."+qc,e,ag)))}static findFromDOM(e){var t;let n=e.querySelector(".cm-content"),s=n&&bt.get(n)||bt.get(e);return((t=s?.root)===null||t===void 0?void 0:t.view)||null}}ke.styleModule=Ai;ke.inputHandler=Bm;ke.clipboardInputFilter=Xu;ke.clipboardOutputFilter=Iu;ke.scrollHandler=Lm;ke.focusChangeEffect=Zm;ke.perLineTextDirection=Em;ke.exceptionSink=Rm;ke.updateListener=Ic;ke.editable=cn;ke.mouseSelectionStyle=_m;ke.dragMovesSelection=Am;ke.clickAddsSelectionRange=Mm;ke.decorations=hl;ke.blockWrappers=Vm;ke.outerDecorations=zu;ke.atomicRanges=bo;ke.bidiIsolatedRanges=zm;ke.scrollMargins=Nm;ke.darkTheme=jc;ke.cspNonce=$e.define({combine:r=>r.length?r[0]:""});ke.contentAttributes=Vu;ke.editorAttributes=Im;ke.lineWrapping=ke.contentAttributes.of({class:"cm-lineWrapping"});ke.announce=Ne.define();const L$=4096,Md={};class Ba{constructor(e,t,n,s,i,o){this.from=e,this.to=t,this.dir=n,this.isolates=s,this.fresh=i,this.order=o}static update(e,t){if(t.empty&&!e.some(i=>i.fresh))return e;let n=[],s=e.length?e[e.length-1].dir:ut.LTR;for(let i=Math.max(0,e.length-10);i<e.length;i++){let o=e[i];o.dir==s&&!t.touchesRange(o.from,o.to)&&n.push(new Ba(t.mapPos(o.from,1),t.mapPos(o.to,-1),o.dir,o.isolates,!1,o.order))}return n}}function Ad(r,e,t){for(let n=r.state.facet(e),s=n.length-1;s>=0;s--){let i=n[s],o=typeof i=="function"?i(r):i;o&&Eu(o,t)}return t}const X$=Pe.mac?"mac":Pe.windows?"win":Pe.linux?"linux":"key";function I$(r,e){const t=r.split(/-(?!$)/);let n=t[t.length-1];n=="Space"&&(n=" ");let s,i,o,a;for(let l=0;l<t.length-1;++l){const c=t[l];if(/^(cmd|meta|m)$/i.test(c))a=!0;else if(/^a(lt)?$/i.test(c))s=!0;else if(/^(c|ctrl|control)$/i.test(c))i=!0;else if(/^s(hift)?$/i.test(c))o=!0;else if(/^mod$/i.test(c))e=="mac"?a=!0:i=!0;else throw new Error("Unrecognized modifier name: "+c)}return s&&(n="Alt-"+n),i&&(n="Ctrl-"+n),a&&(n="Meta-"+n),o&&(n="Shift-"+n),n}function jo(r,e,t){return e.altKey&&(r="Alt-"+r),e.ctrlKey&&(r="Ctrl-"+r),e.metaKey&&(r="Meta-"+r),t!==!1&&e.shiftKey&&(r="Shift-"+r),r}const V$=On.default(ke.domEventHandlers({keydown(r,e){return cg(lg(e.state),r,e,"editor")}})),xo=$e.define({enables:V$}),_d=new WeakMap;function lg(r){let e=r.facet(xo),t=_d.get(e);return t||_d.set(e,t=W$(e.reduce((n,s)=>n.concat(s),[]))),t}function z$(r,e,t){return cg(lg(r.state),e,r,t)}let Mn=null;const N$=4e3;function W$(r,e=X$){let t=Object.create(null),n=Object.create(null),s=(o,a)=>{let l=n[o];if(l==null)n[o]=a;else if(l!=a)throw new Error("Key binding "+o+" is used both as a regular binding and as a multi-stroke prefix")},i=(o,a,l,c,u)=>{var h,p;let f=t[o]||(t[o]=Object.create(null)),g=a.split(/ (?!$)/).map(b=>I$(b,e));for(let b=1;b<g.length;b++){let C=g.slice(0,b).join(" ");s(C,!0),f[C]||(f[C]={preventDefault:!0,stopPropagation:!1,run:[P=>{let A=Mn={view:P,prefix:C,scope:o};return setTimeout(()=>{Mn==A&&(Mn=null)},N$),!0}]})}let O=g.join(" ");s(O,!1);let y=f[O]||(f[O]={preventDefault:!1,stopPropagation:!1,run:((p=(h=f._any)===null||h===void 0?void 0:h.run)===null||p===void 0?void 0:p.slice())||[]});l&&y.run.push(l),c&&(y.preventDefault=!0),u&&(y.stopPropagation=!0)};for(let o of r){let a=o.scope?o.scope.split(" "):["editor"];if(o.any)for(let c of a){let u=t[c]||(t[c]=Object.create(null));u._any||(u._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:h}=o;for(let p in u)u[p].run.push(f=>h(f,Fc))}let l=o[e]||o.key;if(l)for(let c of a)i(c,l,o.run,o.preventDefault,o.stopPropagation),o.shift&&i(c,"Shift-"+l,o.shift,o.preventDefault,o.stopPropagation)}return t}let Fc=null;function cg(r,e,t,n){Fc=e;let s=n2(e),i=qt(s,0),o=qr(i)==s.length&&s!=" ",a="",l=!1,c=!1,u=!1;Mn&&Mn.view==t&&Mn.scope==n&&(a=Mn.prefix+" ",Hm.indexOf(e.keyCode)<0&&(c=!0,Mn=null));let h=new Set,p=y=>{if(y){for(let b of y.run)if(!h.has(b)&&(h.add(b),b(t)))return y.stopPropagation&&(u=!0),!0;y.preventDefault&&(y.stopPropagation&&(u=!0),c=!0)}return!1},f=r[n],g,O;return f&&(p(f[a+jo(s,e,!o)])?l=!0:o&&(e.altKey||e.metaKey||e.ctrlKey)&&!(Pe.windows&&e.ctrlKey&&e.altKey)&&!(Pe.mac&&e.altKey&&!(e.ctrlKey||e.metaKey))&&(g=En[e.keyCode])&&g!=s?(p(f[a+jo(g,e,!0)])||e.shiftKey&&(O=qi[e.keyCode])!=s&&O!=g&&p(f[a+jo(O,e,!1)]))&&(l=!0):o&&e.shiftKey&&p(f[a+jo(s,e,!0)])&&(l=!0),!l&&p(f._any)&&(l=!0)),c&&(l=!0),l&&u&&e.stopPropagation(),Fc=null,l}class yo{constructor(e,t,n,s,i){this.className=e,this.left=t,this.top=n,this.width=s,this.height=i}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,t){return t.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,t,n){if(n.empty){let s=e.coordsAtPos(n.head,n.assoc||1);if(!s)return[];let i=ug(e);return[new yo(t,s.left-i.left,s.top-i.top,null,s.bottom-s.top)]}else return j$(e,t,n)}}function ug(r){let e=r.scrollDOM.getBoundingClientRect();return{left:(r.textDirection==ut.LTR?e.left:e.right-r.scrollDOM.clientWidth*r.scaleX)-r.scrollDOM.scrollLeft*r.scaleX,top:e.top-r.scrollDOM.scrollTop*r.scaleY}}function Rd(r,e,t,n){let s=r.coordsAtPos(e,t*2);if(!s)return n;let i=r.dom.getBoundingClientRect(),o=(s.top+s.bottom)/2,a=r.posAtCoords({x:i.left+1,y:o}),l=r.posAtCoords({x:i.right-1,y:o});return a==null||l==null?n:{from:Math.max(n.from,Math.min(a,l)),to:Math.min(n.to,Math.max(a,l))}}function j$(r,e,t){if(t.to<=r.viewport.from||t.from>=r.viewport.to)return[];let n=Math.max(t.from,r.viewport.from),s=Math.min(t.to,r.viewport.to),i=r.textDirection==ut.LTR,o=r.contentDOM,a=o.getBoundingClientRect(),l=ug(r),c=o.querySelector(".cm-line"),u=c&&window.getComputedStyle(c),h=a.left+(u?parseInt(u.paddingLeft)+Math.min(0,parseInt(u.textIndent)):0),p=a.right-(u?parseInt(u.paddingRight):0),f=zc(r,n,1),g=zc(r,s,-1),O=f.type==Bt.Text?f:null,y=g.type==Bt.Text?g:null;if(O&&(r.lineWrapping||f.widgetLineBreaks)&&(O=Rd(r,n,1,O)),y&&(r.lineWrapping||g.widgetLineBreaks)&&(y=Rd(r,s,-1,y)),O&&y&&O.from==y.from&&O.to==y.to)return C(P(t.from,t.to,O));{let E=O?P(t.from,null,O):A(f,!1),F=y?P(null,t.to,y):A(g,!0),I=[];return(O||f).to<(y||g).from-(O&&y?1:0)||f.widgetLineBreaks>1&&E.bottom+r.defaultLineHeight/2<F.top?I.push(b(h,E.bottom,p,F.top)):E.bottom<F.top&&r.elementAtHeight((E.bottom+F.top)/2).type==Bt.Text&&(E.bottom=F.top=(E.bottom+F.top)/2),C(E).concat(I).concat(C(F))}function b(E,F,I,oe){return new yo(e,E-l.left,F-l.top,Math.max(0,I-E),oe-F)}function C({top:E,bottom:F,horizontal:I}){let oe=[];for(let ie=0;ie<I.length;ie+=2)oe.push(b(I[ie],E,I[ie+1],F));return oe}function P(E,F,I){let oe=1e9,ie=-1e9,ne=[];function L(z,q,V,X,N){let me=r.coordsAtPos(z,z==I.to?-2:2),K=r.coordsAtPos(V,V==I.from?2:-2);!me||!K||(oe=Math.min(me.top,K.top,oe),ie=Math.max(me.bottom,K.bottom,ie),N==ut.LTR?ne.push(i&&q?h:me.left,i&&X?p:K.right):ne.push(!i&&X?h:K.left,!i&&q?p:me.right))}let D=E??I.from,Z=F??I.to;for(let z of r.visibleRanges)if(z.to>D&&z.from<Z)for(let q=Math.max(z.from,D),V=Math.min(z.to,Z);;){let X=r.state.doc.lineAt(q);for(let N of r.bidiSpans(X)){let me=N.from+X.from,K=N.to+X.from;if(me>=V)break;K>q&&L(Math.max(me,q),E==null&&me<=D,Math.min(K,V),F==null&&K>=Z,N.dir)}if(q=X.to+1,q>=V)break}return ne.length==0&&L(D,E==null,Z,F==null,r.textDirection),{top:oe,bottom:ie,horizontal:ne}}function A(E,F){let I=a.top+(F?E.top:E.bottom);return{top:I,bottom:I,horizontal:[]}}}function q$(r,e){return r.constructor==e.constructor&&r.eq(e)}class Y${constructor(e,t){this.view=e,this.layer=t,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),t.above&&this.dom.classList.add("cm-layer-above"),t.class&&this.dom.classList.add(t.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),t.mount&&t.mount(this.dom,e)}update(e){e.startState.facet(fa)!=e.state.facet(fa)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){this.layer.updateOnDocViewUpdate!==!1&&e.requestMeasure(this.measureReq)}setOrder(e){let t=0,n=e.facet(fa);for(;t<n.length&&n[t]!=this.layer;)t++;this.dom.style.zIndex=String((this.layer.above?150:-1)-t)}measure(){return this.layer.markers(this.view)}scale(){let{scaleX:e,scaleY:t}=this.view;(e!=this.scaleX||t!=this.scaleY)&&(this.scaleX=e,this.scaleY=t,this.dom.style.transform=`scale(${1/e}, ${1/t})`)}draw(e){if(e.length!=this.drawn.length||e.some((t,n)=>!q$(t,this.drawn[n]))){let t=this.dom.firstChild,n=0;for(let s of e)s.update&&t&&s.constructor&&this.drawn[n].constructor&&s.update(t,this.drawn[n])?(t=t.nextSibling,n++):this.dom.insertBefore(s.draw(),t);for(;t;){let s=t.nextSibling;t.remove(),t=s}this.drawn=e,Pe.safari&&Pe.safari_version>=26&&(this.dom.style.display=this.dom.firstChild?"":"none")}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}}const fa=$e.define();function hg(r){return[Ot.define(e=>new Y$(e,r)),fa.of(r)]}const Gi=$e.define({combine(r){return en(r,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,t)=>Math.min(e,t),drawRangeCursor:(e,t)=>e||t})}});function F$(r={}){return[Gi.of(r),U$,G$,H$,Dm.of(!0)]}function dg(r){return r.startState.facet(Gi)!=r.state.facet(Gi)}const U$=hg({above:!0,markers(r){let{state:e}=r,t=e.facet(Gi),n=[];for(let s of e.selection.ranges){let i=s==e.selection.main;if(s.empty||t.drawRangeCursor){let o=i?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",a=s.empty?s:te.cursor(s.head,s.head>s.anchor?-1:1);for(let l of yo.forRange(r,o,a))n.push(l)}}return n},update(r,e){r.transactions.some(n=>n.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let t=dg(r);return t&&Bd(r.state,e),r.docChanged||r.selectionSet||t},mount(r,e){Bd(e.state,r)},class:"cm-cursorLayer"});function Bd(r,e){e.style.animationDuration=r.facet(Gi).cursorBlinkRate+"ms"}const G$=hg({above:!1,markers(r){return r.state.selection.ranges.map(e=>e.empty?[]:yo.forRange(r,"cm-selectionBackground",e)).reduce((e,t)=>e.concat(t))},update(r,e){return r.docChanged||r.selectionSet||r.viewportChanged||dg(r)},class:"cm-selectionLayer"}),H$=On.highest(ke.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:"transparent !important"},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}})),fg=Ne.define({map(r,e){return r==null?null:e.mapPos(r)}}),Bi=Tt.define({create(){return null},update(r,e){return r!=null&&(r=e.changes.mapPos(r)),e.effects.reduce((t,n)=>n.is(fg)?n.value:t,r)}}),K$=Ot.fromClass(class{constructor(r){this.view=r,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(r){var e;let t=r.state.field(Bi);t==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(r.startState.field(Bi)!=t||r.docChanged||r.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:r}=this,e=r.state.field(Bi),t=e!=null&&r.coordsAtPos(e);if(!t)return null;let n=r.scrollDOM.getBoundingClientRect();return{left:t.left-n.left+r.scrollDOM.scrollLeft*r.scaleX,top:t.top-n.top+r.scrollDOM.scrollTop*r.scaleY,height:t.bottom-t.top}}drawCursor(r){if(this.cursor){let{scaleX:e,scaleY:t}=this.view;r?(this.cursor.style.left=r.left/e+"px",this.cursor.style.top=r.top/t+"px",this.cursor.style.height=r.height/t+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(r){this.view.state.field(Bi)!=r&&this.view.dispatch({effects:fg.of(r)})}},{eventObservers:{dragover(r){this.setDropPos(this.view.posAtCoords({x:r.clientX,y:r.clientY}))},dragleave(r){(r.target==this.view.contentDOM||!this.view.contentDOM.contains(r.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function J$(){return[Bi,K$]}function Zd(r,e,t,n,s){e.lastIndex=0;for(let i=r.iterRange(t,n),o=t,a;!i.next().done;o+=i.value.length)if(!i.lineBreak)for(;a=e.exec(i.value);)s(o+a.index,a)}function e5(r,e){let t=r.visibleRanges;if(t.length==1&&t[0].from==r.viewport.from&&t[0].to==r.viewport.to)return t;let n=[];for(let{from:s,to:i}of t)s=Math.max(r.state.doc.lineAt(s).from,s-e),i=Math.min(r.state.doc.lineAt(i).to,i+e),n.length&&n[n.length-1].to>=s?n[n.length-1].to=i:n.push({from:s,to:i});return n}class t5{constructor(e){const{regexp:t,decoration:n,decorate:s,boundary:i,maxLength:o=1e3}=e;if(!t.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=t,s)this.addMatch=(a,l,c,u)=>s(u,c,c+a[0].length,a,l);else if(typeof n=="function")this.addMatch=(a,l,c,u)=>{let h=n(a,l,c);h&&u(c,c+a[0].length,h)};else if(n)this.addMatch=(a,l,c,u)=>u(c,c+a[0].length,n);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=i,this.maxLength=o}createDeco(e){let t=new pn,n=t.add.bind(t);for(let{from:s,to:i}of e5(e,this.maxLength))Zd(e.state.doc,this.regexp,s,i,(o,a)=>this.addMatch(a,e,o,n));return t.finish()}updateDeco(e,t){let n=1e9,s=-1;return e.docChanged&&e.changes.iterChanges((i,o,a,l)=>{l>=e.view.viewport.from&&a<=e.view.viewport.to&&(n=Math.min(a,n),s=Math.max(l,s))}),e.viewportMoved||s-n>1e3?this.createDeco(e.view):s>-1?this.updateRange(e.view,t.map(e.changes),n,s):t}updateRange(e,t,n,s){for(let i of e.visibleRanges){let o=Math.max(i.from,n),a=Math.min(i.to,s);if(a>=o){let l=e.state.doc.lineAt(o),c=l.to<a?e.state.doc.lineAt(a):l,u=Math.max(i.from,l.from),h=Math.min(i.to,c.to);if(this.boundary){for(;o>l.from;o--)if(this.boundary.test(l.text[o-1-l.from])){u=o;break}for(;a<c.to;a++)if(this.boundary.test(c.text[a-c.from])){h=a;break}}let p=[],f,g=(O,y,b)=>p.push(b.range(O,y));if(l==c)for(this.regexp.lastIndex=u-l.from;(f=this.regexp.exec(l.text))&&f.index<h-l.from;)this.addMatch(f,e,f.index+l.from,g);else Zd(e.state.doc,this.regexp,u,h,(O,y)=>this.addMatch(y,e,O,g));t=t.update({filterFrom:u,filterTo:h,filter:(O,y)=>O<u||y>h,add:p})}}return t}}const Uc=/x/.unicode!=null?"gu":"g",r5=new RegExp(`[\0-\b
|
|
21
|
+
--\u2028\u2029\uFEFF-]`,Uc),n5={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let El=null;function s5(){var r;if(El==null&&typeof document<"u"&&document.body){let e=document.body.style;El=((r=e.tabSize)!==null&&r!==void 0?r:e.MozTabSize)!=null}return El||!1}const pa=$e.define({combine(r){let e=en(r,{render:null,specialChars:r5,addSpecialChars:null});return(e.replaceTabs=!s5())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,Uc)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,Uc)),e}});function i5(r={}){return[pa.of(r),o5()]}let Ed=null;function o5(){return Ed||(Ed=Ot.fromClass(class{constructor(r){this.view=r,this.decorations=Ee.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(r.state.facet(pa)),this.decorations=this.decorator.createDeco(r)}makeDecorator(r){return new t5({regexp:r.specialChars,decoration:(e,t,n)=>{let{doc:s}=t.state,i=qt(e[0],0);if(i==9){let o=s.lineAt(n),a=t.state.tabSize,l=_r(o.text,a,n-o.from);return Ee.replace({widget:new u5((a-l%a)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[i]||(this.decorationCache[i]=Ee.replace({widget:new c5(r,i)}))},boundary:r.replaceTabs?void 0:/[^]/})}update(r){let e=r.state.facet(pa);r.startState.facet(pa)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(r.view)):this.decorations=this.decorator.updateDeco(r,this.decorations)}},{decorations:r=>r.decorations}))}const a5="•";function l5(r){return r>=32?a5:r==10?"":String.fromCharCode(9216+r)}class c5 extends tn{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=l5(this.code),n=e.state.phrase("Control character")+" "+(n5[this.code]||"0x"+this.code.toString(16)),s=this.options.render&&this.options.render(this.code,n,t);if(s)return s;let i=document.createElement("span");return i.textContent=t,i.title=n,i.setAttribute("aria-label",n),i.className="cm-specialChar",i}ignoreEvent(){return!1}}class u5 extends tn{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}}function h5(){return f5}const d5=Ee.line({class:"cm-activeLine"}),f5=Ot.fromClass(class{constructor(r){this.decorations=this.getDeco(r)}update(r){(r.docChanged||r.selectionSet)&&(this.decorations=this.getDeco(r.view))}getDeco(r){let e=-1,t=[];for(let n of r.state.selection.ranges){let s=r.lineBlockAt(n.head);s.from>e&&(t.push(d5.range(s.from)),e=s.from)}return Ee.set(t)}},{decorations:r=>r.decorations}),Gc=2e3;function p5(r,e,t){let n=Math.min(e.line,t.line),s=Math.max(e.line,t.line),i=[];if(e.off>Gc||t.off>Gc||e.col<0||t.col<0){let o=Math.min(e.off,t.off),a=Math.max(e.off,t.off);for(let l=n;l<=s;l++){let c=r.doc.line(l);c.length<=a&&i.push(te.range(c.from+o,c.to+a))}}else{let o=Math.min(e.col,t.col),a=Math.max(e.col,t.col);for(let l=n;l<=s;l++){let c=r.doc.line(l),u=Tc(c.text,o,r.tabSize,!0);if(u<0)i.push(te.cursor(c.to));else{let h=Tc(c.text,a,r.tabSize);i.push(te.range(c.from+u,c.from+h))}}}return i}function m5(r,e){let t=r.coordsAtPos(r.viewport.from);return t?Math.round(Math.abs((t.left-e)/r.defaultCharacterWidth)):-1}function Dd(r,e){let t=r.posAtCoords({x:e.clientX,y:e.clientY},!1),n=r.state.doc.lineAt(t),s=t-n.from,i=s>Gc?-1:s==n.length?m5(r,e.clientX):_r(n.text,r.state.tabSize,t-n.from);return{line:n.number,col:i,off:s}}function g5(r,e){let t=Dd(r,e),n=r.state.selection;return t?{update(s){if(s.docChanged){let i=s.changes.mapPos(s.startState.doc.line(t.line).from),o=s.state.doc.lineAt(i);t={line:o.number,col:t.col,off:Math.min(t.off,o.length)},n=n.map(s.changes)}},get(s,i,o){let a=Dd(r,s);if(!a)return n;let l=p5(r.state,t,a);return l.length?o?te.create(l.concat(n.ranges)):te.create(l):n}}:null}function O5(r){let e=(t=>t.altKey&&t.button==0);return ke.mouseSelectionStyle.of((t,n)=>e(n)?g5(t,n):null)}const v5={Alt:[18,r=>!!r.altKey],Control:[17,r=>!!r.ctrlKey],Shift:[16,r=>!!r.shiftKey],Meta:[91,r=>!!r.metaKey]},b5={style:"cursor: crosshair"};function x5(r={}){let[e,t]=v5[r.key||"Alt"],n=Ot.fromClass(class{constructor(s){this.view=s,this.isDown=!1}set(s){this.isDown!=s&&(this.isDown=s,this.view.update([]))}},{eventObservers:{keydown(s){this.set(s.keyCode==e||t(s))},keyup(s){(s.keyCode==e||!t(s))&&this.set(!1)},mousemove(s){this.set(t(s))}}});return[n,ke.contentAttributes.of(s=>{var i;return!((i=s.plugin(n))===null||i===void 0)&&i.isDown?b5:null})]}const qo="-10000px";class pg{constructor(e,t,n,s){this.facet=t,this.createTooltipView=n,this.removeTooltipView=s,this.input=e.state.facet(t),this.tooltips=this.input.filter(o=>o);let i=null;this.tooltipViews=this.tooltips.map(o=>i=n(o,i))}update(e,t){var n;let s=e.state.facet(this.facet),i=s.filter(l=>l);if(s===this.input){for(let l of this.tooltipViews)l.update&&l.update(e);return!1}let o=[],a=t?[]:null;for(let l=0;l<i.length;l++){let c=i[l],u=-1;if(c){for(let h=0;h<this.tooltips.length;h++){let p=this.tooltips[h];p&&p.create==c.create&&(u=h)}if(u<0)o[l]=this.createTooltipView(c,l?o[l-1]:null),a&&(a[l]=!!c.above);else{let h=o[l]=this.tooltipViews[u];a&&(a[l]=t[u]),h.update&&h.update(e)}}}for(let l of this.tooltipViews)o.indexOf(l)<0&&(this.removeTooltipView(l),(n=l.destroy)===null||n===void 0||n.call(l));return t&&(a.forEach((l,c)=>t[c]=l),t.length=a.length),this.input=s,this.tooltips=i,this.tooltipViews=o,!0}}function y5(r){let e=r.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:e.clientHeight,right:e.clientWidth}}const Dl=$e.define({combine:r=>{var e,t,n;return{position:Pe.ios?"absolute":((e=r.find(s=>s.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((t=r.find(s=>s.parent))===null||t===void 0?void 0:t.parent)||null,tooltipSpace:((n=r.find(s=>s.tooltipSpace))===null||n===void 0?void 0:n.tooltipSpace)||y5}}}),Ld=new WeakMap,Yu=Ot.fromClass(class{constructor(r){this.view=r,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let e=r.state.facet(Dl);this.position=e.position,this.parent=e.parent,this.classes=r.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver=typeof ResizeObserver=="function"?new ResizeObserver(()=>this.measureSoon()):null,this.manager=new pg(r,Fu,(t,n)=>this.createTooltip(t,n),t=>{this.resizeObserver&&this.resizeObserver.unobserve(t.dom),t.dom.remove()}),this.above=this.manager.tooltips.map(t=>!!t.above),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(t=>{Date.now()>this.lastTransaction-50&&t.length>0&&t[t.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),r.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let r of this.manager.tooltipViews)this.intersectionObserver.observe(r.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(r){r.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(r,this.above);e&&this.observeIntersection();let t=e||r.geometryChanged,n=r.state.facet(Dl);if(n.position!=this.position&&!this.madeAbsolute){this.position=n.position;for(let s of this.manager.tooltipViews)s.dom.style.position=this.position;t=!0}if(n.parent!=this.parent){this.parent&&this.container.remove(),this.parent=n.parent,this.createContainer();for(let s of this.manager.tooltipViews)this.container.appendChild(s.dom);t=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);t&&this.maybeMeasure()}createTooltip(r,e){let t=r.create(this.view),n=e?e.dom:null;if(t.dom.classList.add("cm-tooltip"),r.arrow&&!t.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let s=document.createElement("div");s.className="cm-tooltip-arrow",t.dom.appendChild(s)}return t.dom.style.position=this.position,t.dom.style.top=qo,t.dom.style.left="0px",this.container.insertBefore(t.dom,n),t.mount&&t.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(t.dom),t}destroy(){var r,e,t;this.view.win.removeEventListener("resize",this.measureSoon);for(let n of this.manager.tooltipViews)n.dom.remove(),(r=n.destroy)===null||r===void 0||r.call(n);this.parent&&this.container.remove(),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),(t=this.intersectionObserver)===null||t===void 0||t.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let r=1,e=1,t=!1;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:i}=this.manager.tooltipViews[0];if(Pe.safari){let o=i.getBoundingClientRect();t=Math.abs(o.top+1e4)>1||Math.abs(o.left)>1}else t=!!i.offsetParent&&i.offsetParent!=this.container.ownerDocument.body}if(t||this.position=="absolute")if(this.parent){let i=this.parent.getBoundingClientRect();i.width&&i.height&&(r=i.width/this.parent.offsetWidth,e=i.height/this.parent.offsetHeight)}else({scaleX:r,scaleY:e}=this.view.viewState);let n=this.view.scrollDOM.getBoundingClientRect(),s=Nu(this.view);return{visible:{left:n.left+s.left,top:n.top+s.top,right:n.right-s.right,bottom:n.bottom-s.bottom},parent:this.parent?this.container.getBoundingClientRect():this.view.dom.getBoundingClientRect(),pos:this.manager.tooltips.map((i,o)=>{let a=this.manager.tooltipViews[o];return a.getCoords?a.getCoords(i.pos):this.view.coordsAtPos(i.pos)}),size:this.manager.tooltipViews.map(({dom:i})=>i.getBoundingClientRect()),space:this.view.state.facet(Dl).tooltipSpace(this.view),scaleX:r,scaleY:e,makeAbsolute:t}}writeMeasure(r){var e;if(r.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let a of this.manager.tooltipViews)a.dom.style.position="absolute"}let{visible:t,space:n,scaleX:s,scaleY:i}=r,o=[];for(let a=0;a<this.manager.tooltips.length;a++){let l=this.manager.tooltips[a],c=this.manager.tooltipViews[a],{dom:u}=c,h=r.pos[a],p=r.size[a];if(!h||l.clip!==!1&&(h.bottom<=Math.max(t.top,n.top)||h.top>=Math.min(t.bottom,n.bottom)||h.right<Math.max(t.left,n.left)-.1||h.left>Math.min(t.right,n.right)+.1)){u.style.top=qo;continue}let f=l.arrow?c.dom.querySelector(".cm-tooltip-arrow"):null,g=f?7:0,O=p.right-p.left,y=(e=Ld.get(c))!==null&&e!==void 0?e:p.bottom-p.top,b=c.offset||w5,C=this.view.textDirection==ut.LTR,P=p.width>n.right-n.left?C?n.left:n.right-p.width:C?Math.max(n.left,Math.min(h.left-(f?14:0)+b.x,n.right-O)):Math.min(Math.max(n.left,h.left-O+(f?14:0)-b.x),n.right-O),A=this.above[a];!l.strictSide&&(A?h.top-y-g-b.y<n.top:h.bottom+y+g+b.y>n.bottom)&&A==n.bottom-h.bottom>h.top-n.top&&(A=this.above[a]=!A);let E=(A?h.top-n.top:n.bottom-h.bottom)-g;if(E<y&&c.resize!==!1){if(E<this.view.defaultLineHeight){u.style.top=qo;continue}Ld.set(c,y),u.style.height=(y=E)/i+"px"}else u.style.height&&(u.style.height="");let F=A?h.top-y-g-b.y:h.bottom+g+b.y,I=P+O;if(c.overlap!==!0)for(let oe of o)oe.left<I&&oe.right>P&&oe.top<F+y&&oe.bottom>F&&(F=A?oe.top-y-2-g:oe.bottom+g+2);if(this.position=="absolute"?(u.style.top=(F-r.parent.top)/i+"px",Xd(u,(P-r.parent.left)/s)):(u.style.top=F/i+"px",Xd(u,P/s)),f){let oe=h.left+(C?b.x:-b.x)-(P+14-7);f.style.left=oe/s+"px"}c.overlap!==!0&&o.push({left:P,top:F,right:I,bottom:F+y}),u.classList.toggle("cm-tooltip-above",A),u.classList.toggle("cm-tooltip-below",!A),c.positioned&&c.positioned(r.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let r of this.manager.tooltipViews)r.dom.style.top=qo}},{eventObservers:{scroll(){this.maybeMeasure()}}});function Xd(r,e){let t=parseInt(r.style.left,10);(isNaN(t)||Math.abs(e-t)>1)&&(r.style.left=e+"px")}const k5=ke.baseTheme({".cm-tooltip":{zIndex:500,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:"14px",position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),w5={x:0,y:0},Fu=$e.define({enables:[Yu,k5]}),Za=$e.define({combine:r=>r.reduce((e,t)=>e.concat(t),[])});class ml{static create(e){return new ml(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new pg(e,Za,(t,n)=>this.createHostedView(t,n),t=>t.dom.remove())}createHostedView(e,t){let n=e.create(this.view);return n.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(n.dom,t?t.dom.nextSibling:this.dom.firstChild),this.mounted&&n.mount&&n.mount(this.view),n}mount(e){for(let t of this.manager.tooltipViews)t.mount&&t.mount(e);this.mounted=!0}positioned(e){for(let t of this.manager.tooltipViews)t.positioned&&t.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let t of this.manager.tooltipViews)(e=t.destroy)===null||e===void 0||e.call(t)}passProp(e){let t;for(let n of this.manager.tooltipViews){let s=n[e];if(s!==void 0){if(t===void 0)t=s;else if(t!==s)return}}return t}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}}const S5=Fu.compute([Za],r=>{let e=r.facet(Za);return e.length===0?null:{pos:Math.min(...e.map(t=>t.pos)),end:Math.max(...e.map(t=>{var n;return(n=t.end)!==null&&n!==void 0?n:t.pos})),create:ml.create,above:e[0].above,arrow:e.some(t=>t.arrow)}});class $5{constructor(e,t,n,s,i){this.view=e,this.source=t,this.field=n,this.setHover=s,this.hoverTime=i,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let e=Date.now()-this.lastMove.time;e<this.hoverTime?this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime-e):this.startHover()}startHover(){clearTimeout(this.restartTimeout);let{view:e,lastMove:t}=this,n=e.docView.tile.nearest(t.target);if(!n)return;let s,i=1;if(n.isWidget())s=n.posAtStart;else{if(s=e.posAtCoords(t),s==null)return;let a=e.coordsAtPos(s);if(!a||t.y<a.top||t.y>a.bottom||t.x<a.left-e.defaultCharacterWidth||t.x>a.right+e.defaultCharacterWidth)return;let l=e.bidiSpans(e.state.doc.lineAt(s)).find(u=>u.from<=s&&u.to>=s),c=l&&l.dir==ut.RTL?-1:1;i=t.x<a.left?-c:c}let o=this.source(e,s,i);if(o?.then){let a=this.pending={pos:s};o.then(l=>{this.pending==a&&(this.pending=null,l&&!(Array.isArray(l)&&!l.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(l)?l:[l])}))},l=>Gt(e.state,l,"hover tooltip"))}else o&&!(Array.isArray(o)&&!o.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(o)?o:[o])})}get tooltip(){let e=this.view.plugin(Yu),t=e?e.manager.tooltips.findIndex(n=>n.create==ml.create):-1;return t>-1?e.manager.tooltipViews[t]:null}mousemove(e){var t,n;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:s,tooltip:i}=this;if(s.length&&i&&!C5(i.dom,e)||this.pending){let{pos:o}=s[0]||this.pending,a=(n=(t=s[0])===null||t===void 0?void 0:t.end)!==null&&n!==void 0?n:o;(o==a?this.view.posAtCoords(this.lastMove)!=o:!Q5(this.view,o,a,e.clientX,e.clientY))&&(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:t}=this;if(t.length){let{tooltip:n}=this;n&&n.dom.contains(e.relatedTarget)?this.watchTooltipLeave(n.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let t=n=>{e.removeEventListener("mouseleave",t),this.active.length&&!this.view.dom.contains(n.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};e.addEventListener("mouseleave",t)}destroy(){clearTimeout(this.hoverTimeout),clearTimeout(this.restartTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}const Yo=4;function C5(r,e){let{left:t,right:n,top:s,bottom:i}=r.getBoundingClientRect(),o;if(o=r.querySelector(".cm-tooltip-arrow")){let a=o.getBoundingClientRect();s=Math.min(a.top,s),i=Math.max(a.bottom,i)}return e.clientX>=t-Yo&&e.clientX<=n+Yo&&e.clientY>=s-Yo&&e.clientY<=i+Yo}function Q5(r,e,t,n,s,i){let o=r.scrollDOM.getBoundingClientRect(),a=r.documentTop+r.documentPadding.top+r.contentHeight;if(o.left>n||o.right<n||o.top>s||Math.min(o.bottom,a)<s)return!1;let l=r.posAtCoords({x:n,y:s},!1);return l>=e&&l<=t}function P5(r,e={}){let t=Ne.define(),n=Tt.define({create(){return[]},update(s,i){if(s.length&&(e.hideOnChange&&(i.docChanged||i.selection)?s=[]:e.hideOn&&(s=s.filter(o=>!e.hideOn(i,o))),i.docChanged)){let o=[];for(let a of s){let l=i.changes.mapPos(a.pos,-1,Rt.TrackDel);if(l!=null){let c=Object.assign(Object.create(null),a);c.pos=l,c.end!=null&&(c.end=i.changes.mapPos(c.end)),o.push(c)}}s=o}for(let o of i.effects)o.is(t)&&(s=o.value),o.is(T5)&&(s=[]);return s},provide:s=>Za.from(s)});return{active:n,extension:[n,Ot.define(s=>new $5(s,r,n,t,e.hoverTime||300)),S5]}}function mg(r,e){let t=r.plugin(Yu);if(!t)return null;let n=t.manager.tooltips.indexOf(e);return n<0?null:t.manager.tooltipViews[n]}const T5=Ne.define(),Id=$e.define({combine(r){let e,t;for(let n of r)e=e||n.topContainer,t=t||n.bottomContainer;return{topContainer:e,bottomContainer:t}}});function Uu(r,e){let t=r.plugin(gg),n=t?t.specs.indexOf(e):-1;return n>-1?t.panels[n]:null}const gg=Ot.fromClass(class{constructor(r){this.input=r.state.facet(Hi),this.specs=this.input.filter(t=>t),this.panels=this.specs.map(t=>t(r));let e=r.state.facet(Id);this.top=new Fo(r,!0,e.topContainer),this.bottom=new Fo(r,!1,e.bottomContainer),this.top.sync(this.panels.filter(t=>t.top)),this.bottom.sync(this.panels.filter(t=>!t.top));for(let t of this.panels)t.dom.classList.add("cm-panel"),t.mount&&t.mount()}update(r){let e=r.state.facet(Id);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new Fo(r.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new Fo(r.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let t=r.state.facet(Hi);if(t!=this.input){let n=t.filter(l=>l),s=[],i=[],o=[],a=[];for(let l of n){let c=this.specs.indexOf(l),u;c<0?(u=l(r.view),a.push(u)):(u=this.panels[c],u.update&&u.update(r)),s.push(u),(u.top?i:o).push(u)}this.specs=n,this.panels=s,this.top.sync(i),this.bottom.sync(o);for(let l of a)l.dom.classList.add("cm-panel"),l.mount&&l.mount()}else for(let n of this.panels)n.update&&n.update(r)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:r=>ke.scrollMargins.of(e=>{let t=e.plugin(r);return t&&{top:t.top.scrollMargin(),bottom:t.bottom.scrollMargin()}})});class Fo{constructor(e,t,n){this.view=e,this.top=t,this.container=n,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let t of this.panels)t.destroy&&e.indexOf(t)<0&&t.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let t=this.container||this.view.dom;t.insertBefore(this.dom,this.top?t.firstChild:null)}let e=this.dom.firstChild;for(let t of this.panels)if(t.dom.parentNode==this.dom){for(;e!=t.dom;)e=Vd(e);e=e.nextSibling}else this.dom.insertBefore(t.dom,e);for(;e;)e=Vd(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}}function Vd(r){let e=r.nextSibling;return r.remove(),e}const Hi=$e.define({enables:gg});function M5(r,e){let t,n=new Promise(o=>t=o),s=o=>A5(o,e,t);r.state.field(Ll,!1)?r.dispatch({effects:Og.of(s)}):r.dispatch({effects:Ne.appendConfig.of(Ll.init(()=>[s]))});let i=vg.of(s);return{close:i,result:n.then(o=>((r.win.queueMicrotask||(l=>r.win.setTimeout(l,10)))(()=>{r.state.field(Ll).indexOf(s)>-1&&r.dispatch({effects:i})}),o))}}const Ll=Tt.define({create(){return[]},update(r,e){for(let t of e.effects)t.is(Og)?r=[t.value].concat(r):t.is(vg)&&(r=r.filter(n=>n!=t.value));return r},provide:r=>Hi.computeN([r],e=>e.field(r))}),Og=Ne.define(),vg=Ne.define();function A5(r,e,t){let n=e.content?e.content(r,()=>o(null)):null;if(!n){if(n=at("form"),e.input){let a=at("input",e.input);/^(text|password|number|email|tel|url)$/.test(a.type)&&a.classList.add("cm-textfield"),a.name||(a.name="input"),n.appendChild(at("label",(e.label||"")+": ",a))}else n.appendChild(document.createTextNode(e.label||""));n.appendChild(document.createTextNode(" ")),n.appendChild(at("button",{class:"cm-button",type:"submit"},e.submitLabel||"OK"))}let s=n.nodeName=="FORM"?[n]:n.querySelectorAll("form");for(let a=0;a<s.length;a++){let l=s[a];l.addEventListener("keydown",c=>{c.keyCode==27?(c.preventDefault(),o(null)):c.keyCode==13&&(c.preventDefault(),o(l))}),l.addEventListener("submit",c=>{c.preventDefault(),o(l)})}let i=at("div",n,at("button",{onclick:()=>o(null),"aria-label":r.state.phrase("close"),class:"cm-dialog-close",type:"button"},["×"]));e.class&&(i.className=e.class),i.classList.add("cm-dialog");function o(a){i.contains(i.ownerDocument.activeElement)&&r.focus(),t(a)}return{dom:i,top:e.top,mount:()=>{if(e.focus){let a;typeof e.focus=="string"?a=n.querySelector(e.focus):a=n.querySelector("input")||n.querySelector("button"),a&&"select"in a?a.select():a&&"focus"in a&&a.focus()}}}}class gn extends Bn{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}gn.prototype.elementClass="";gn.prototype.toDOM=void 0;gn.prototype.mapMode=Rt.TrackBefore;gn.prototype.startSide=gn.prototype.endSide=-1;gn.prototype.point=!0;const ma=$e.define(),_5=$e.define(),R5={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>Ke.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:"before"},Vi=$e.define();function B5(r){return[bg(),Vi.of({...R5,...r})]}const zd=$e.define({combine:r=>r.some(e=>e)});function bg(r){return[Z5]}const Z5=Ot.fromClass(class{constructor(r){this.view=r,this.domAfter=null,this.prevViewport=r.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters cm-gutters-before",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=r.state.facet(Vi).map(e=>new Wd(r,e)),this.fixed=!r.state.facet(zd);for(let e of this.gutters)e.config.side=="after"?this.getDOMAfter().appendChild(e.dom):this.dom.appendChild(e.dom);this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),r.scrollDOM.insertBefore(this.dom,r.contentDOM)}getDOMAfter(){return this.domAfter||(this.domAfter=document.createElement("div"),this.domAfter.className="cm-gutters cm-gutters-after",this.domAfter.setAttribute("aria-hidden","true"),this.domAfter.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.domAfter.style.position=this.fixed?"sticky":"",this.view.scrollDOM.appendChild(this.domAfter)),this.domAfter}update(r){if(this.updateGutters(r)){let e=this.prevViewport,t=r.view.viewport,n=Math.min(e.to,t.to)-Math.max(e.from,t.from);this.syncGutters(n<(t.to-t.from)*.8)}if(r.geometryChanged){let e=this.view.contentHeight/this.view.scaleY+"px";this.dom.style.minHeight=e,this.domAfter&&(this.domAfter.style.minHeight=e)}this.view.state.facet(zd)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=r.view.viewport}syncGutters(r){let e=this.dom.nextSibling;r&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let t=Ke.iter(this.view.state.facet(ma),this.view.viewport.from),n=[],s=this.gutters.map(i=>new E5(i,this.view.viewport,-this.view.documentPadding.top));for(let i of this.view.viewportLineBlocks)if(n.length&&(n=[]),Array.isArray(i.type)){let o=!0;for(let a of i.type)if(a.type==Bt.Text&&o){Hc(t,n,a.from);for(let l of s)l.line(this.view,a,n);o=!1}else if(a.widget)for(let l of s)l.widget(this.view,a)}else if(i.type==Bt.Text){Hc(t,n,i.from);for(let o of s)o.line(this.view,i,n)}else if(i.widget)for(let o of s)o.widget(this.view,i);for(let i of s)i.finish();r&&(this.view.scrollDOM.insertBefore(this.dom,e),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(r){let e=r.startState.facet(Vi),t=r.state.facet(Vi),n=r.docChanged||r.heightChanged||r.viewportChanged||!Ke.eq(r.startState.facet(ma),r.state.facet(ma),r.view.viewport.from,r.view.viewport.to);if(e==t)for(let s of this.gutters)s.update(r)&&(n=!0);else{n=!0;let s=[];for(let i of t){let o=e.indexOf(i);o<0?s.push(new Wd(this.view,i)):(this.gutters[o].update(r),s.push(this.gutters[o]))}for(let i of this.gutters)i.dom.remove(),s.indexOf(i)<0&&i.destroy();for(let i of s)i.config.side=="after"?this.getDOMAfter().appendChild(i.dom):this.dom.appendChild(i.dom);this.gutters=s}return n}destroy(){for(let r of this.gutters)r.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:r=>ke.scrollMargins.of(e=>{let t=e.plugin(r);if(!t||t.gutters.length==0||!t.fixed)return null;let n=t.dom.offsetWidth*e.scaleX,s=t.domAfter?t.domAfter.offsetWidth*e.scaleX:0;return e.textDirection==ut.LTR?{left:n,right:s}:{right:n,left:s}})});function Nd(r){return Array.isArray(r)?r:[r]}function Hc(r,e,t){for(;r.value&&r.from<=t;)r.from==t&&e.push(r.value),r.next()}class E5{constructor(e,t,n){this.gutter=e,this.height=n,this.i=0,this.cursor=Ke.iter(e.markers,t.from)}addElement(e,t,n){let{gutter:s}=this,i=(t.top-this.height)/e.scaleY,o=t.height/e.scaleY;if(this.i==s.elements.length){let a=new xg(e,o,i,n);s.elements.push(a),s.dom.appendChild(a.dom)}else s.elements[this.i].update(e,o,i,n);this.height=t.bottom,this.i++}line(e,t,n){let s=[];Hc(this.cursor,s,t.from),n.length&&(s=s.concat(n));let i=this.gutter.config.lineMarker(e,t,s);i&&s.unshift(i);let o=this.gutter;s.length==0&&!o.config.renderEmptyElements||this.addElement(e,t,s)}widget(e,t){let n=this.gutter.config.widgetMarker(e,t.widget,t),s=n?[n]:null;for(let i of e.state.facet(_5)){let o=i(e,t.widget,t);o&&(s||(s=[])).push(o)}s&&this.addElement(e,t,s)}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let t=e.elements.pop();e.dom.removeChild(t.dom),t.destroy()}}}class Wd{constructor(e,t){this.view=e,this.config=t,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let n in t.domEventHandlers)this.dom.addEventListener(n,s=>{let i=s.target,o;if(i!=this.dom&&this.dom.contains(i)){for(;i.parentNode!=this.dom;)i=i.parentNode;let l=i.getBoundingClientRect();o=(l.top+l.bottom)/2}else o=s.clientY;let a=e.lineBlockAtHeight(o-e.documentTop);t.domEventHandlers[n](e,a,s)&&s.preventDefault()});this.markers=Nd(t.markers(e)),t.initialSpacer&&(this.spacer=new xg(e,0,0,[t.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let t=this.markers;if(this.markers=Nd(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let s=this.config.updateSpacer(this.spacer.markers[0],e);s!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[s])}let n=e.view.viewport;return!Ke.eq(this.markers,t,n.from,n.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}}class xg{constructor(e,t,n,s){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,t,n,s)}update(e,t,n,s){this.height!=t&&(this.height=t,this.dom.style.height=t+"px"),this.above!=n&&(this.dom.style.marginTop=(this.above=n)?n+"px":""),D5(this.markers,s)||this.setMarkers(e,s)}setMarkers(e,t){let n="cm-gutterElement",s=this.dom.firstChild;for(let i=0,o=0;;){let a=o,l=i<t.length?t[i++]:null,c=!1;if(l){let u=l.elementClass;u&&(n+=" "+u);for(let h=o;h<this.markers.length;h++)if(this.markers[h].compare(l)){a=h,c=!0;break}}else a=this.markers.length;for(;o<a;){let u=this.markers[o++];if(u.toDOM){u.destroy(s);let h=s.nextSibling;s.remove(),s=h}}if(!l)break;l.toDOM&&(c?s=s.nextSibling:this.dom.insertBefore(l.toDOM(e),s)),c&&o++}this.dom.className=n,this.markers=t}destroy(){this.setMarkers(null,[])}}function D5(r,e){if(r.length!=e.length)return!1;for(let t=0;t<r.length;t++)if(!r[t].compare(e[t]))return!1;return!0}const L5=$e.define(),X5=$e.define(),$s=$e.define({combine(r){return en(r,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(e,t){let n=Object.assign({},e);for(let s in t){let i=n[s],o=t[s];n[s]=i?(a,l,c)=>i(a,l,c)||o(a,l,c):o}return n}})}});class Xl extends gn{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}}function Il(r,e){return r.state.facet($s).formatNumber(e,r.state)}const I5=Vi.compute([$s],r=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(L5)},lineMarker(e,t,n){return n.some(s=>s.toDOM)?null:new Xl(Il(e,e.state.doc.lineAt(t.from).number))},widgetMarker:(e,t,n)=>{for(let s of e.state.facet(X5)){let i=s(e,t,n);if(i)return i}return null},lineMarkerChange:e=>e.startState.facet($s)!=e.state.facet($s),initialSpacer(e){return new Xl(Il(e,jd(e.state.doc.lines)))},updateSpacer(e,t){let n=Il(t.view,jd(t.view.state.doc.lines));return n==e.number?e:new Xl(n)},domEventHandlers:r.facet($s).domEventHandlers,side:"before"}));function V5(r={}){return[$s.of(r),bg(),I5]}function jd(r){let e=9;for(;e<r;)e=e*10+9;return e}const z5=new class extends gn{constructor(){super(...arguments),this.elementClass="cm-activeLineGutter"}},N5=ma.compute(["selection"],r=>{let e=[],t=-1;for(let n of r.selection.ranges){let s=r.doc.lineAt(n.head).from;s>t&&(t=s,e.push(z5.range(s)))}return Ke.of(e)});function W5(){return N5}const yg=1024;let j5=0;class mr{constructor(e,t){this.from=e,this.to=t}}class je{constructor(e={}){this.id=j5++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")}),this.combine=e.combine||null}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=$t.match(e)),t=>{let n=e(t);return n===void 0?null:[this,n]}}}je.closedBy=new je({deserialize:r=>r.split(" ")});je.openedBy=new je({deserialize:r=>r.split(" ")});je.group=new je({deserialize:r=>r.split(" ")});je.isolate=new je({deserialize:r=>{if(r&&r!="rtl"&&r!="ltr"&&r!="auto")throw new RangeError("Invalid value for isolate: "+r);return r||"auto"}});je.contextHash=new je({perNode:!0});je.lookAhead=new je({perNode:!0});je.mounted=new je({perNode:!0});class As{constructor(e,t,n,s=!1){this.tree=e,this.overlay=t,this.parser=n,this.bracketed=s}static get(e){return e&&e.props&&e.props[je.mounted.id]}}const q5=Object.create(null);class $t{constructor(e,t,n,s=0){this.name=e,this.props=t,this.id=n,this.flags=s}static define(e){let t=e.props&&e.props.length?Object.create(null):q5,n=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),s=new $t(e.name||"",t,e.id,n);if(e.props){for(let i of e.props)if(Array.isArray(i)||(i=i(s)),i){if(i[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[i[0].id]=i[1]}}return s}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let t=this.prop(je.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let n in e)for(let s of n.split(" "))t[s]=e[n];return n=>{for(let s=n.prop(je.group),i=-1;i<(s?s.length:0);i++){let o=t[i<0?n.name:s[i]];if(o)return o}}}}$t.none=new $t("",Object.create(null),0,8);class ko{constructor(e){this.types=e;for(let t=0;t<e.length;t++)if(e[t].id!=t)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...e){let t=[];for(let n of this.types){let s=null;for(let i of e){let o=i(n);if(o){s||(s=Object.assign({},n.props));let a=o[1],l=o[0];l.combine&&l.id in s&&(a=l.combine(s[l.id],a)),s[l.id]=a}}t.push(s?new $t(n.name,s,n.id,n.flags):n)}return new ko(t)}}const Uo=new WeakMap,qd=new WeakMap;var st;(function(r){r[r.ExcludeBuffers=1]="ExcludeBuffers",r[r.IncludeAnonymous=2]="IncludeAnonymous",r[r.IgnoreMounts=4]="IgnoreMounts",r[r.IgnoreOverlays=8]="IgnoreOverlays",r[r.EnterBracketed=16]="EnterBracketed"})(st||(st={}));class nt{constructor(e,t,n,s,i){if(this.type=e,this.children=t,this.positions=n,this.length=s,this.props=null,i&&i.length){this.props=Object.create(null);for(let[o,a]of i)this.props[typeof o=="number"?o:o.id]=a}}toString(){let e=As.get(this);if(e&&!e.overlay)return e.tree.toString();let t="";for(let n of this.children){let s=n.toString();s&&(t&&(t+=","),t+=s)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(t.length?"("+t+")":""):t}cursor(e=0){return new Ea(this.topNode,e)}cursorAt(e,t=0,n=0){let s=Uo.get(this)||this.topNode,i=new Ea(s);return i.moveTo(e,t),Uo.set(this,i._tree),i}get topNode(){return new It(this,0,0,null)}resolve(e,t=0){let n=Ki(Uo.get(this)||this.topNode,e,t,!1);return Uo.set(this,n),n}resolveInner(e,t=0){let n=Ki(qd.get(this)||this.topNode,e,t,!0);return qd.set(this,n),n}resolveStack(e,t=0){return U5(this,e,t)}iterate(e){let{enter:t,leave:n,from:s=0,to:i=this.length}=e,o=e.mode||0,a=(o&st.IncludeAnonymous)>0;for(let l=this.cursor(o|st.IncludeAnonymous);;){let c=!1;if(l.from<=i&&l.to>=s&&(!a&&l.type.isAnonymous||t(l)!==!1)){if(l.firstChild())continue;c=!0}for(;c&&n&&(a||!l.type.isAnonymous)&&n(l),!l.nextSibling();){if(!l.parent())return;c=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:Ku($t.none,this.children,this.positions,0,this.children.length,0,this.length,(t,n,s)=>new nt(this.type,t,n,s,this.propValues),e.makeTree||((t,n,s)=>new nt($t.none,t,n,s)))}static build(e){return G5(e)}}nt.empty=new nt($t.none,[],[],0);class Gu{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new Gu(this.buffer,this.index)}}class Ln{constructor(e,t,n){this.buffer=e,this.length=t,this.set=n}get type(){return $t.none}toString(){let e=[];for(let t=0;t<this.buffer.length;)e.push(this.childString(t)),t=this.buffer[t+3];return e.join(",")}childString(e){let t=this.buffer[e],n=this.buffer[e+3],s=this.set.types[t],i=s.name;if(/\W/.test(i)&&!s.isError&&(i=JSON.stringify(i)),e+=4,n==e)return i;let o=[];for(;e<n;)o.push(this.childString(e)),e=this.buffer[e+3];return i+"("+o.join(",")+")"}findChild(e,t,n,s,i){let{buffer:o}=this,a=-1;for(let l=e;l!=t&&!(kg(i,s,o[l+1],o[l+2])&&(a=l,n>0));l=o[l+3]);return a}slice(e,t,n){let s=this.buffer,i=new Uint16Array(t-e),o=0;for(let a=e,l=0;a<t;){i[l++]=s[a++],i[l++]=s[a++]-n;let c=i[l++]=s[a++]-n;i[l++]=s[a++]-e,o=Math.max(o,c)}return new Ln(i,o,this.set)}}function kg(r,e,t,n){switch(r){case-2:return t<e;case-1:return n>=e&&t<e;case 0:return t<e&&n>e;case 1:return t<=e&&n>e;case 2:return n>e;case 4:return!0}}function Ki(r,e,t,n){for(var s;r.from==r.to||(t<1?r.from>=e:r.from>e)||(t>-1?r.to<=e:r.to<e);){let o=!n&&r instanceof It&&r.index<0?null:r.parent;if(!o)return r;r=o}let i=n?0:st.IgnoreOverlays;if(n)for(let o=r,a=o.parent;a;o=a,a=o.parent)o instanceof It&&o.index<0&&((s=a.enter(e,t,i))===null||s===void 0?void 0:s.from)!=o.from&&(r=a);for(;;){let o=r.enter(e,t,i);if(!o)return r;r=o}}class wg{cursor(e=0){return new Ea(this,e)}getChild(e,t=null,n=null){let s=Yd(this,e,t,n);return s.length?s[0]:null}getChildren(e,t=null,n=null){return Yd(this,e,t,n)}resolve(e,t=0){return Ki(this,e,t,!1)}resolveInner(e,t=0){return Ki(this,e,t,!0)}matchContext(e){return Kc(this.parent,e)}enterUnfinishedNodesBefore(e){let t=this.childBefore(e),n=this;for(;t;){let s=t.lastChild;if(!s||s.to!=t.to)break;s.type.isError&&s.from==s.to?(n=t,t=s.prevSibling):t=s}return n}get node(){return this}get next(){return this.parent}}class It extends wg{constructor(e,t,n,s){super(),this._tree=e,this.from=t,this.index=n,this._parent=s}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(e,t,n,s,i=0){for(let o=this;;){for(let{children:a,positions:l}=o._tree,c=t>0?a.length:-1;e!=c;e+=t){let u=a[e],h=l[e]+o.from,p;if(!(!(i&st.EnterBracketed&&u instanceof nt&&(p=As.get(u))&&!p.overlay&&p.bracketed&&n>=h&&n<=h+u.length)&&!kg(s,n,h,h+u.length))){if(u instanceof Ln){if(i&st.ExcludeBuffers)continue;let f=u.findChild(0,u.buffer.length,t,n-h,s);if(f>-1)return new Ur(new Y5(o,u,e,h),null,f)}else if(i&st.IncludeAnonymous||!u.type.isAnonymous||Hu(u)){let f;if(!(i&st.IgnoreMounts)&&(f=As.get(u))&&!f.overlay)return new It(f.tree,h,e,o);let g=new It(u,h,e,o);return i&st.IncludeAnonymous||!g.type.isAnonymous?g:g.nextChild(t<0?u.children.length-1:0,t,n,s,i)}}}if(i&st.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?e=o.index+t:e=t<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}prop(e){return this._tree.prop(e)}enter(e,t,n=0){let s;if(!(n&st.IgnoreOverlays)&&(s=As.get(this._tree))&&s.overlay){let i=e-this.from,o=n&st.EnterBracketed&&s.bracketed;for(let{from:a,to:l}of s.overlay)if((t>0||o?a<=i:a<i)&&(t<0||o?l>=i:l>i))return new It(s.tree,s.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,n)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}}function Yd(r,e,t,n){let s=r.cursor(),i=[];if(!s.firstChild())return i;if(t!=null){for(let o=!1;!o;)if(o=s.type.is(t),!s.nextSibling())return i}for(;;){if(n!=null&&s.type.is(n))return i;if(s.type.is(e)&&i.push(s.node),!s.nextSibling())return n==null?i:[]}}function Kc(r,e,t=e.length-1){for(let n=r;t>=0;n=n.parent){if(!n)return!1;if(!n.type.isAnonymous){if(e[t]&&e[t]!=n.name)return!1;t--}}return!0}class Y5{constructor(e,t,n,s){this.parent=e,this.buffer=t,this.index=n,this.start=s}}class Ur extends wg{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,n){super(),this.context=e,this._parent=t,this.index=n,this.type=e.buffer.set.types[e.buffer.buffer[n]]}child(e,t,n){let{buffer:s}=this.context,i=s.findChild(this.index+4,s.buffer[this.index+3],e,t-this.context.start,n);return i<0?null:new Ur(this.context,this,i)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}prop(e){return this.type.prop(e)}enter(e,t,n=0){if(n&st.ExcludeBuffers)return null;let{buffer:s}=this.context,i=s.findChild(this.index+4,s.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return i<0?null:new Ur(this.context,this,i)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new Ur(this.context,this._parent,t):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,t=this._parent?this._parent.index+4:0;return this.index==t?this.externalSibling(-1):new Ur(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],t=[],{buffer:n}=this.context,s=this.index+4,i=n.buffer[this.index+3];if(i>s){let o=n.buffer[this.index+1];e.push(n.slice(s,i,o)),t.push(0)}return new nt(this.type,e,t,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function Sg(r){if(!r.length)return null;let e=0,t=r[0];for(let i=1;i<r.length;i++){let o=r[i];(o.from>t.from||o.to<t.to)&&(t=o,e=i)}let n=t instanceof It&&t.index<0?null:t.parent,s=r.slice();return n?s[e]=n:s.splice(e,1),new F5(s,t)}class F5{constructor(e,t){this.heads=e,this.node=t}get next(){return Sg(this.heads)}}function U5(r,e,t){let n=r.resolveInner(e,t),s=null;for(let i=n instanceof It?n:n.context.parent;i;i=i.parent)if(i.index<0){let o=i.parent;(s||(s=[n])).push(o.resolve(e,t)),i=o}else{let o=As.get(i.tree);if(o&&o.overlay&&o.overlay[0].from<=e&&o.overlay[o.overlay.length-1].to>=e){let a=new It(o.tree,o.overlay[0].from+i.from,-1,i);(s||(s=[n])).push(Ki(a,e,t,!1))}}return s?Sg(s):n}class Ea{get name(){return this.type.name}constructor(e,t=0){if(this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,this.mode=t&~st.EnterBracketed,e instanceof It)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let n=e._parent;n;n=n._parent)this.stack.unshift(n.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:n,buffer:s}=this.buffer;return this.type=t||s.set.types[s.buffer[e]],this.from=n+s.buffer[e+1],this.to=n+s.buffer[e+2],!0}yield(e){return e?e instanceof It?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,n){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,n,this.mode));let{buffer:s}=this.buffer,i=s.findChild(this.index+4,s.buffer[this.index+3],e,t-this.buffer.start,n);return i<0?!1:(this.stack.push(this.index),this.yieldBuf(i))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,n=this.mode){return this.buffer?n&st.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,n))}parent(){if(!this.buffer)return this.yieldNode(this.mode&st.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&st.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,n=this.stack.length-1;if(e<0){let s=n<0?0:this.stack[n]+4;if(this.index!=s)return this.yieldBuf(t.findChild(s,this.index,-1,0,4))}else{let s=t.buffer[this.index+3];if(s<(n<0?t.buffer.length:t.buffer[this.stack[n]+3]))return this.yieldBuf(s)}return n<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,n,{buffer:s}=this;if(s){if(e>0){if(this.index<s.buffer.buffer.length)return!1}else for(let i=0;i<this.index;i++)if(s.buffer.buffer[i+3]<this.index)return!1;({index:t,parent:n}=s)}else({index:t,_parent:n}=this._tree);for(;n;{index:t,_parent:n}=n)if(t>-1)for(let i=t+e,o=e<0?-1:n._tree.children.length;i!=o;i+=e){let a=n._tree.children[i];if(this.mode&st.IncludeAnonymous||a instanceof Ln||!a.type.isAnonymous||Hu(a))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to<e))&&this.parent(););for(;this.enterChild(1,e,t););return this}get node(){if(!this.buffer)return this._tree;let e=this.bufferNode,t=null,n=0;if(e&&e.context==this.buffer)e:for(let s=this.index,i=this.stack.length;i>=0;){for(let o=e;o;o=o._parent)if(o.index==s){if(s==this.index)return o;t=o,n=i+1;break e}s=this.stack[--i]}for(let s=n;s<this.stack.length;s++)t=new Ur(this.buffer,t,this.stack[s]);return this.bufferNode=new Ur(this.buffer,t,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(e,t){for(let n=0;;){let s=!1;if(this.type.isAnonymous||e(this)!==!1){if(this.firstChild()){n++;continue}this.type.isAnonymous||(s=!0)}for(;;){if(s&&t&&t(this),s=this.type.isAnonymous,!n)return;if(this.nextSibling())break;this.parent(),n--,s=!0}}}matchContext(e){if(!this.buffer)return Kc(this.node.parent,e);let{buffer:t}=this.buffer,{types:n}=t.set;for(let s=e.length-1,i=this.stack.length-1;s>=0;i--){if(i<0)return Kc(this._tree,e,s);let o=n[t.buffer[this.stack[i]]];if(!o.isAnonymous){if(e[s]&&e[s]!=o.name)return!1;s--}}return!0}}function Hu(r){return r.children.some(e=>e instanceof Ln||!e.type.isAnonymous||Hu(e))}function G5(r){var e;let{buffer:t,nodeSet:n,maxBufferLength:s=yg,reused:i=[],minRepeatType:o=n.types.length}=r,a=Array.isArray(t)?new Gu(t,t.length):t,l=n.types,c=0,u=0;function h(E,F,I,oe,ie,ne){let{id:L,start:D,end:Z,size:z}=a,q=u,V=c;if(z<0)if(a.next(),z==-1){let he=i[L];I.push(he),oe.push(D-E);return}else if(z==-3){c=L;return}else if(z==-4){u=L;return}else throw new RangeError(`Unrecognized record size: ${z}`);let X=l[L],N,me,K=D-E;if(Z-D<=s&&(me=y(a.pos-F,ie))){let he=new Uint16Array(me.size-me.skip),$=a.pos-me.size,w=he.length;for(;a.pos>$;)w=b(me.start,he,w);N=new Ln(he,Z-me.start,n),K=me.start-E}else{let he=a.pos-z;a.next();let $=[],w=[],M=L>=o?L:-1,R=0,G=Z;for(;a.pos>he;)M>=0&&a.id==M&&a.size>=0?(a.end<=G-s&&(g($,w,D,R,a.end,G,M,q,V),R=$.length,G=a.end),a.next()):ne>2500?p(D,he,$,w):h(D,he,$,w,M,ne+1);if(M>=0&&R>0&&R<$.length&&g($,w,D,R,D,G,M,q,V),$.reverse(),w.reverse(),M>-1&&R>0){let ae=f(X,V);N=Ku(X,$,w,0,$.length,0,Z-D,ae,ae)}else N=O(X,$,w,Z-D,q-Z,V)}I.push(N),oe.push(K)}function p(E,F,I,oe){let ie=[],ne=0,L=-1;for(;a.pos>F;){let{id:D,start:Z,end:z,size:q}=a;if(q>4)a.next();else{if(L>-1&&Z<L)break;L<0&&(L=z-s),ie.push(D,Z,z),ne++,a.next()}}if(ne){let D=new Uint16Array(ne*4),Z=ie[ie.length-2];for(let z=ie.length-3,q=0;z>=0;z-=3)D[q++]=ie[z],D[q++]=ie[z+1]-Z,D[q++]=ie[z+2]-Z,D[q++]=q;I.push(new Ln(D,ie[2]-Z,n)),oe.push(Z-E)}}function f(E,F){return(I,oe,ie)=>{let ne=0,L=I.length-1,D,Z;if(L>=0&&(D=I[L])instanceof nt){if(!L&&D.type==E&&D.length==ie)return D;(Z=D.prop(je.lookAhead))&&(ne=oe[L]+D.length+Z)}return O(E,I,oe,ie,ne,F)}}function g(E,F,I,oe,ie,ne,L,D,Z){let z=[],q=[];for(;E.length>oe;)z.push(E.pop()),q.push(F.pop()+I-ie);E.push(O(n.types[L],z,q,ne-ie,D-ne,Z)),F.push(ie-I)}function O(E,F,I,oe,ie,ne,L){if(ne){let D=[je.contextHash,ne];L=L?[D].concat(L):[D]}if(ie>25){let D=[je.lookAhead,ie];L=L?[D].concat(L):[D]}return new nt(E,F,I,oe,L)}function y(E,F){let I=a.fork(),oe=0,ie=0,ne=0,L=I.end-s,D={size:0,start:0,skip:0};e:for(let Z=I.pos-E;I.pos>Z;){let z=I.size;if(I.id==F&&z>=0){D.size=oe,D.start=ie,D.skip=ne,ne+=4,oe+=4,I.next();continue}let q=I.pos-z;if(z<0||q<Z||I.start<L)break;let V=I.id>=o?4:0,X=I.start;for(I.next();I.pos>q;){if(I.size<0)if(I.size==-3||I.size==-4)V+=4;else break e;else I.id>=o&&(V+=4);I.next()}ie=X,oe+=z,ne+=V}return(F<0||oe==E)&&(D.size=oe,D.start=ie,D.skip=ne),D.size>4?D:void 0}function b(E,F,I){let{id:oe,start:ie,end:ne,size:L}=a;if(a.next(),L>=0&&oe<o){let D=I;if(L>4){let Z=a.pos-(L-4);for(;a.pos>Z;)I=b(E,F,I)}F[--I]=D,F[--I]=ne-E,F[--I]=ie-E,F[--I]=oe}else L==-3?c=oe:L==-4&&(u=oe);return I}let C=[],P=[];for(;a.pos>0;)h(r.start||0,r.bufferStart||0,C,P,-1,0);let A=(e=r.length)!==null&&e!==void 0?e:C.length?P[0]+C[0].length:0;return new nt(l[r.topID],C.reverse(),P.reverse(),A)}const Fd=new WeakMap;function ga(r,e){if(!r.isAnonymous||e instanceof Ln||e.type!=r)return 1;let t=Fd.get(e);if(t==null){t=1;for(let n of e.children){if(n.type!=r||!(n instanceof nt)){t=1;break}t+=ga(r,n)}Fd.set(e,t)}return t}function Ku(r,e,t,n,s,i,o,a,l){let c=0;for(let g=n;g<s;g++)c+=ga(r,e[g]);let u=Math.ceil(c*1.5/8),h=[],p=[];function f(g,O,y,b,C){for(let P=y;P<b;){let A=P,E=O[P],F=ga(r,g[P]);for(P++;P<b;P++){let I=ga(r,g[P]);if(F+I>=u)break;F+=I}if(P==A+1){if(F>u){let I=g[A];f(I.children,I.positions,0,I.children.length,O[A]+C);continue}h.push(g[A])}else{let I=O[P-1]+g[P-1].length-E;h.push(Ku(r,g,O,A,P,E,I,null,l))}p.push(E+C-i)}}return f(e,t,n,s,0),(a||l)(h,p,o)}class $g{constructor(){this.map=new WeakMap}setBuffer(e,t,n){let s=this.map.get(e);s||this.map.set(e,s=new Map),s.set(t,n)}getBuffer(e,t){let n=this.map.get(e);return n&&n.get(t)}set(e,t){e instanceof Ur?this.setBuffer(e.context.buffer,e.index,t):e instanceof It&&this.map.set(e.tree,t)}get(e){return e instanceof Ur?this.getBuffer(e.context.buffer,e.index):e instanceof It?this.map.get(e.tree):void 0}cursorSet(e,t){e.buffer?this.setBuffer(e.buffer.buffer,e.index,t):this.map.set(e.tree,t)}cursorGet(e){return e.buffer?this.getBuffer(e.buffer.buffer,e.index):this.map.get(e.tree)}}class hn{constructor(e,t,n,s,i=!1,o=!1){this.from=e,this.to=t,this.tree=n,this.offset=s,this.open=(i?1:0)|(o?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,t=[],n=!1){let s=[new hn(0,e.length,e,0,!1,n)];for(let i of t)i.to>e.length&&s.push(i);return s}static applyChanges(e,t,n=128){if(!t.length)return e;let s=[],i=1,o=e.length?e[0]:null;for(let a=0,l=0,c=0;;a++){let u=a<t.length?t[a]:null,h=u?u.fromA:1e9;if(h-l>=n)for(;o&&o.from<h;){let p=o;if(l>=p.from||h<=p.to||c){let f=Math.max(p.from,l)-c,g=Math.min(p.to,h)-c;p=f>=g?null:new hn(f,g,p.tree,p.offset+c,a>0,!!u)}if(p&&s.push(p),o.to>h)break;o=i<e.length?e[i++]:null}if(!u)break;l=u.toA,c=u.toA-u.toB}return s}}class Ju{startParse(e,t,n){return typeof e=="string"&&(e=new H5(e)),n=n?n.length?n.map(s=>new mr(s.from,s.to)):[new mr(0,0)]:[new mr(0,e.length)],this.createParse(e,t||[],n)}parse(e,t,n){let s=this.startParse(e,t,n);for(;;){let i=s.advance();if(i)return i}}}class H5{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}}function Cg(r){return(e,t,n,s)=>new J5(e,r,t,n,s)}class Ud{constructor(e,t,n,s,i,o){this.parser=e,this.parse=t,this.overlay=n,this.bracketed=s,this.target=i,this.from=o}}function Gd(r){if(!r.length||r.some(e=>e.from>=e.to))throw new RangeError("Invalid inner parse ranges given: "+JSON.stringify(r))}class K5{constructor(e,t,n,s,i,o,a,l){this.parser=e,this.predicate=t,this.mounts=n,this.index=s,this.start=i,this.bracketed=o,this.target=a,this.prev=l,this.depth=0,this.ranges=[]}}const Jc=new je({perNode:!0});class J5{constructor(e,t,n,s,i){this.nest=t,this.input=n,this.fragments=s,this.ranges=i,this.inner=[],this.innerDone=0,this.baseTree=null,this.stoppedAt=null,this.baseParse=e}advance(){if(this.baseParse){let n=this.baseParse.advance();if(!n)return null;if(this.baseParse=null,this.baseTree=n,this.startInner(),this.stoppedAt!=null)for(let s of this.inner)s.parse.stopAt(this.stoppedAt)}if(this.innerDone==this.inner.length){let n=this.baseTree;return this.stoppedAt!=null&&(n=new nt(n.type,n.children,n.positions,n.length,n.propValues.concat([[Jc,this.stoppedAt]]))),n}let e=this.inner[this.innerDone],t=e.parse.advance();if(t){this.innerDone++;let n=Object.assign(Object.create(null),e.target.props);n[je.mounted.id]=new As(t,e.overlay,e.parser,e.bracketed),e.target.props=n}return null}get parsedPos(){if(this.baseParse)return 0;let e=this.input.length;for(let t=this.innerDone;t<this.inner.length;t++)this.inner[t].from<e&&(e=Math.min(e,this.inner[t].parse.parsedPos));return e}stopAt(e){if(this.stoppedAt=e,this.baseParse)this.baseParse.stopAt(e);else for(let t=this.innerDone;t<this.inner.length;t++)this.inner[t].parse.stopAt(e)}startInner(){let e=new rC(this.fragments),t=null,n=null,s=new Ea(new It(this.baseTree,this.ranges[0].from,0,null),st.IncludeAnonymous|st.IgnoreMounts);e:for(let i,o;;){let a=!0,l;if(this.stoppedAt!=null&&s.from>=this.stoppedAt)a=!1;else if(e.hasNode(s)){if(t){let c=t.mounts.find(u=>u.frag.from<=s.from&&u.frag.to>=s.to&&u.mount.overlay);if(c)for(let u of c.mount.overlay){let h=u.from+c.pos,p=u.to+c.pos;h>=s.from&&p<=s.to&&!t.ranges.some(f=>f.from<p&&f.to>h)&&t.ranges.push({from:h,to:p})}}a=!1}else if(n&&(o=eC(n.ranges,s.from,s.to)))a=o!=2;else if(!s.type.isAnonymous&&(i=this.nest(s,this.input))&&(s.from<s.to||!i.overlay)){s.tree||(tC(s),t&&t.depth++,n&&n.depth++);let c=e.findMounts(s.from,i.parser);if(typeof i.overlay=="function")t=new K5(i.parser,i.overlay,c,this.inner.length,s.from,!!i.bracketed,s.tree,t);else{let u=Jd(this.ranges,i.overlay||(s.from<s.to?[new mr(s.from,s.to)]:[]));u.length&&Gd(u),(u.length||!i.overlay)&&this.inner.push(new Ud(i.parser,u.length?i.parser.startParse(this.input,ef(c,u),u):i.parser.startParse(""),i.overlay?i.overlay.map(h=>new mr(h.from-s.from,h.to-s.from)):null,!!i.bracketed,s.tree,u.length?u[0].from:s.from)),i.overlay?u.length&&(n={ranges:u,depth:0,prev:n}):a=!1}}else if(t&&(l=t.predicate(s))&&(l===!0&&(l=new mr(s.from,s.to)),l.from<l.to)){let c=t.ranges.length-1;c>=0&&t.ranges[c].to==l.from?t.ranges[c]={from:t.ranges[c].from,to:l.to}:t.ranges.push(l)}if(a&&s.firstChild())t&&t.depth++,n&&n.depth++;else for(;!s.nextSibling();){if(!s.parent())break e;if(t&&!--t.depth){let c=Jd(this.ranges,t.ranges);c.length&&(Gd(c),this.inner.splice(t.index,0,new Ud(t.parser,t.parser.startParse(this.input,ef(t.mounts,c),c),t.ranges.map(u=>new mr(u.from-t.start,u.to-t.start)),t.bracketed,t.target,c[0].from))),t=t.prev}n&&!--n.depth&&(n=n.prev)}}}}function eC(r,e,t){for(let n of r){if(n.from>=t)break;if(n.to>e)return n.from<=e&&n.to>=t?2:1}return 0}function Hd(r,e,t,n,s,i){if(e<t){let o=r.buffer[e+1];n.push(r.slice(e,t,o)),s.push(o-i)}}function tC(r){let{node:e}=r,t=[],n=e.context.buffer;do t.push(r.index),r.parent();while(!r.tree);let s=r.tree,i=s.children.indexOf(n),o=s.children[i],a=o.buffer,l=[i];function c(u,h,p,f,g,O){let y=t[O],b=[],C=[];Hd(o,u,y,b,C,f);let P=a[y+1],A=a[y+2];l.push(b.length);let E=O?c(y+4,a[y+3],o.set.types[a[y]],P,A-P,O-1):e.toTree();return b.push(E),C.push(P-f),Hd(o,a[y+3],h,b,C,f),new nt(p,b,C,g)}s.children[i]=c(0,a.length,$t.none,0,o.length,t.length-1);for(let u of l){let h=r.tree.children[u],p=r.tree.positions[u];r.yield(new It(h,p+r.from,u,r._tree))}}class Kd{constructor(e,t){this.offset=t,this.done=!1,this.cursor=e.cursor(st.IncludeAnonymous|st.IgnoreMounts)}moveTo(e){let{cursor:t}=this,n=e-this.offset;for(;!this.done&&t.from<n;)t.to>=e&&t.enter(n,1,st.IgnoreOverlays|st.ExcludeBuffers)||t.next(!1)||(this.done=!0)}hasNode(e){if(this.moveTo(e.from),!this.done&&this.cursor.from+this.offset==e.from&&this.cursor.tree)for(let t=this.cursor.tree;;){if(t==e.tree)return!0;if(t.children.length&&t.positions[0]==0&&t.children[0]instanceof nt)t=t.children[0];else break}return!1}}let rC=class{constructor(e){var t;if(this.fragments=e,this.curTo=0,this.fragI=0,e.length){let n=this.curFrag=e[0];this.curTo=(t=n.tree.prop(Jc))!==null&&t!==void 0?t:n.to,this.inner=new Kd(n.tree,-n.offset)}else this.curFrag=this.inner=null}hasNode(e){for(;this.curFrag&&e.from>=this.curTo;)this.nextFrag();return this.curFrag&&this.curFrag.from<=e.from&&this.curTo>=e.to&&this.inner.hasNode(e)}nextFrag(){var e;if(this.fragI++,this.fragI==this.fragments.length)this.curFrag=this.inner=null;else{let t=this.curFrag=this.fragments[this.fragI];this.curTo=(e=t.tree.prop(Jc))!==null&&e!==void 0?e:t.to,this.inner=new Kd(t.tree,-t.offset)}}findMounts(e,t){var n;let s=[];if(this.inner){this.inner.cursor.moveTo(e,1);for(let i=this.inner.cursor.node;i;i=i.parent){let o=(n=i.tree)===null||n===void 0?void 0:n.prop(je.mounted);if(o&&o.parser==t)for(let a=this.fragI;a<this.fragments.length;a++){let l=this.fragments[a];if(l.from>=i.to)break;l.tree==this.curFrag.tree&&s.push({frag:l,pos:i.from-l.offset,mount:o})}}}return s}};function Jd(r,e){let t=null,n=e;for(let s=1,i=0;s<r.length;s++){let o=r[s-1].to,a=r[s].from;for(;i<n.length;i++){let l=n[i];if(l.from>=a)break;l.to<=o||(t||(n=t=e.slice()),l.from<o?(t[i]=new mr(l.from,o),l.to>a&&t.splice(i+1,0,new mr(a,l.to))):l.to>a?t[i--]=new mr(a,l.to):t.splice(i--,1))}}return n}function nC(r,e,t,n){let s=0,i=0,o=!1,a=!1,l=-1e9,c=[];for(;;){let u=s==r.length?1e9:o?r[s].to:r[s].from,h=i==e.length?1e9:a?e[i].to:e[i].from;if(o!=a){let p=Math.max(l,t),f=Math.min(u,h,n);p<f&&c.push(new mr(p,f))}if(l=Math.min(u,h),l==1e9)break;u==l&&(o?(o=!1,s++):o=!0),h==l&&(a?(a=!1,i++):a=!0)}return c}function ef(r,e){let t=[];for(let{pos:n,mount:s,frag:i}of r){let o=n+(s.overlay?s.overlay[0].from:0),a=o+s.tree.length,l=Math.max(i.from,o),c=Math.min(i.to,a);if(s.overlay){let u=s.overlay.map(p=>new mr(p.from+n,p.to+n)),h=nC(e,u,l,c);for(let p=0,f=l;;p++){let g=p==h.length,O=g?c:h[p].from;if(O>f&&t.push(new hn(f,O,s.tree,-o,i.from>=f||i.openStart,i.to<=O||i.openEnd)),g)break;f=h[p].to}}else t.push(new hn(l,c,s.tree,-o,i.from>=o||i.openStart,i.to<=a||i.openEnd))}return t}let sC=0;class or{constructor(e,t,n,s){this.name=e,this.set=t,this.base=n,this.modified=s,this.id=sC++}toString(){let{name:e}=this;for(let t of this.modified)t.name&&(e=`${t.name}(${e})`);return e}static define(e,t){let n=typeof e=="string"?e:"?";if(e instanceof or&&(t=e),t?.base)throw new Error("Can not derive from a modified tag");let s=new or(n,[],null,[]);if(s.set.push(s),t)for(let i of t.set)s.set.push(i);return s}static defineModifier(e){let t=new Da(e);return n=>n.modified.indexOf(t)>-1?n:Da.get(n.base||n,n.modified.concat(t).sort((s,i)=>s.id-i.id))}}let iC=0;class Da{constructor(e){this.name=e,this.instances=[],this.id=iC++}static get(e,t){if(!t.length)return e;let n=t[0].instances.find(a=>a.base==e&&oC(t,a.modified));if(n)return n;let s=[],i=new or(e.name,s,e,t);for(let a of t)a.instances.push(i);let o=aC(t);for(let a of e.set)if(!a.modified.length)for(let l of o)s.push(Da.get(a,l));return i}}function oC(r,e){return r.length==e.length&&r.every((t,n)=>t==e[n])}function aC(r){let e=[[]];for(let t=0;t<r.length;t++)for(let n=0,s=e.length;n<s;n++)e.push(e[n].concat(r[t]));return e.sort((t,n)=>n.length-t.length)}function Hs(r){let e=Object.create(null);for(let t in r){let n=r[t];Array.isArray(n)||(n=[n]);for(let s of t.split(" "))if(s){let i=[],o=2,a=s;for(let h=0;;){if(a=="..."&&h>0&&h+3==s.length){o=1;break}let p=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(a);if(!p)throw new RangeError("Invalid path: "+s);if(i.push(p[0]=="*"?"":p[0][0]=='"'?JSON.parse(p[0]):p[0]),h+=p[0].length,h==s.length)break;let f=s[h++];if(h==s.length&&f=="!"){o=0;break}if(f!="/")throw new RangeError("Invalid path: "+s);a=s.slice(h)}let l=i.length-1,c=i[l];if(!c)throw new RangeError("Invalid path: "+s);let u=new Ji(n,o,l>0?i.slice(0,l):null);e[c]=u.sort(e[c])}}return Qg.add(e)}const Qg=new je({combine(r,e){let t,n,s;for(;r||e;){if(!r||e&&r.depth>=e.depth?(s=e,e=e.next):(s=r,r=r.next),t&&t.mode==s.mode&&!s.context&&!t.context)continue;let i=new Ji(s.tags,s.mode,s.context);t?t.next=i:n=i,t=i}return n}});class Ji{constructor(e,t,n,s){this.tags=e,this.mode=t,this.context=n,this.next=s}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth<this.depth?(this.next=e,this):(e.next=this.sort(e.next),e)}get depth(){return this.context?this.context.length:0}}Ji.empty=new Ji([],2,null);function Pg(r,e){let t=Object.create(null);for(let i of r)if(!Array.isArray(i.tag))t[i.tag.id]=i.class;else for(let o of i.tag)t[o.id]=i.class;let{scope:n,all:s=null}=e||{};return{style:i=>{let o=s;for(let a of i)for(let l of a.set){let c=t[l.id];if(c){o=o?o+" "+c:c;break}}return o},scope:n}}function lC(r,e){let t=null;for(let n of r){let s=n.style(e);s&&(t=t?t+" "+s:s)}return t}function cC(r,e,t,n=0,s=r.length){let i=new uC(n,Array.isArray(e)?e:[e],t);i.highlightRange(r.cursor(),n,s,"",i.highlighters),i.flush(s)}class uC{constructor(e,t,n){this.at=e,this.highlighters=t,this.span=n,this.class=""}startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=t)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,t,n,s,i){let{type:o,from:a,to:l}=e;if(a>=n||l<=t)return;o.isTop&&(i=this.highlighters.filter(f=>!f.scope||f.scope(o)));let c=s,u=hC(e)||Ji.empty,h=lC(i,u.tags);if(h&&(c&&(c+=" "),c+=h,u.mode==1&&(s+=(s?" ":"")+h)),this.startSpan(Math.max(t,a),c),u.opaque)return;let p=e.tree&&e.tree.prop(je.mounted);if(p&&p.overlay){let f=e.node.enter(p.overlay[0].from+a,1),g=this.highlighters.filter(y=>!y.scope||y.scope(p.tree.type)),O=e.firstChild();for(let y=0,b=a;;y++){let C=y<p.overlay.length?p.overlay[y]:null,P=C?C.from+a:l,A=Math.max(t,b),E=Math.min(n,P);if(A<E&&O)for(;e.from<E&&(this.highlightRange(e,A,E,s,i),this.startSpan(Math.min(E,e.to),c),!(e.to>=P||!e.nextSibling())););if(!C||P>n)break;b=C.to+a,b>t&&(this.highlightRange(f.cursor(),Math.max(t,C.from+a),Math.min(n,b),"",g),this.startSpan(Math.min(n,b),c))}O&&e.parent()}else if(e.firstChild()){p&&(s="");do if(!(e.to<=t)){if(e.from>=n)break;this.highlightRange(e,t,n,s,i),this.startSpan(Math.min(n,e.to),c)}while(e.nextSibling());e.parent()}}}function hC(r){let e=r.type.prop(Qg);for(;e&&e.context&&!r.matchContext(e.context);)e=e.next;return e||null}const ye=or.define,Go=ye(),Pn=ye(),tf=ye(Pn),rf=ye(Pn),Tn=ye(),Ho=ye(Tn),Vl=ye(Tn),Wr=ye(),Gn=ye(Wr),zr=ye(),Nr=ye(),eu=ye(),$i=ye(eu),Ko=ye(),Q={comment:Go,lineComment:ye(Go),blockComment:ye(Go),docComment:ye(Go),name:Pn,variableName:ye(Pn),typeName:tf,tagName:ye(tf),propertyName:rf,attributeName:ye(rf),className:ye(Pn),labelName:ye(Pn),namespace:ye(Pn),macroName:ye(Pn),literal:Tn,string:Ho,docString:ye(Ho),character:ye(Ho),attributeValue:ye(Ho),number:Vl,integer:ye(Vl),float:ye(Vl),bool:ye(Tn),regexp:ye(Tn),escape:ye(Tn),color:ye(Tn),url:ye(Tn),keyword:zr,self:ye(zr),null:ye(zr),atom:ye(zr),unit:ye(zr),modifier:ye(zr),operatorKeyword:ye(zr),controlKeyword:ye(zr),definitionKeyword:ye(zr),moduleKeyword:ye(zr),operator:Nr,derefOperator:ye(Nr),arithmeticOperator:ye(Nr),logicOperator:ye(Nr),bitwiseOperator:ye(Nr),compareOperator:ye(Nr),updateOperator:ye(Nr),definitionOperator:ye(Nr),typeOperator:ye(Nr),controlOperator:ye(Nr),punctuation:eu,separator:ye(eu),bracket:$i,angleBracket:ye($i),squareBracket:ye($i),paren:ye($i),brace:ye($i),content:Wr,heading:Gn,heading1:ye(Gn),heading2:ye(Gn),heading3:ye(Gn),heading4:ye(Gn),heading5:ye(Gn),heading6:ye(Gn),contentSeparator:ye(Wr),list:ye(Wr),quote:ye(Wr),emphasis:ye(Wr),strong:ye(Wr),link:ye(Wr),monospace:ye(Wr),strikethrough:ye(Wr),inserted:ye(),deleted:ye(),changed:ye(),invalid:ye(),meta:Ko,documentMeta:ye(Ko),annotation:ye(Ko),processingInstruction:ye(Ko),definition:or.defineModifier("definition"),constant:or.defineModifier("constant"),function:or.defineModifier("function"),standard:or.defineModifier("standard"),local:or.defineModifier("local"),special:or.defineModifier("special")};for(let r in Q){let e=Q[r];e instanceof or&&(e.name=r)}Pg([{tag:Q.link,class:"tok-link"},{tag:Q.heading,class:"tok-heading"},{tag:Q.emphasis,class:"tok-emphasis"},{tag:Q.strong,class:"tok-strong"},{tag:Q.keyword,class:"tok-keyword"},{tag:Q.atom,class:"tok-atom"},{tag:Q.bool,class:"tok-bool"},{tag:Q.url,class:"tok-url"},{tag:Q.labelName,class:"tok-labelName"},{tag:Q.inserted,class:"tok-inserted"},{tag:Q.deleted,class:"tok-deleted"},{tag:Q.literal,class:"tok-literal"},{tag:Q.string,class:"tok-string"},{tag:Q.number,class:"tok-number"},{tag:[Q.regexp,Q.escape,Q.special(Q.string)],class:"tok-string2"},{tag:Q.variableName,class:"tok-variableName"},{tag:Q.local(Q.variableName),class:"tok-variableName tok-local"},{tag:Q.definition(Q.variableName),class:"tok-variableName tok-definition"},{tag:Q.special(Q.variableName),class:"tok-variableName2"},{tag:Q.definition(Q.propertyName),class:"tok-propertyName tok-definition"},{tag:Q.typeName,class:"tok-typeName"},{tag:Q.namespace,class:"tok-namespace"},{tag:Q.className,class:"tok-className"},{tag:Q.macroName,class:"tok-macroName"},{tag:Q.propertyName,class:"tok-propertyName"},{tag:Q.operator,class:"tok-operator"},{tag:Q.comment,class:"tok-comment"},{tag:Q.meta,class:"tok-meta"},{tag:Q.invalid,class:"tok-invalid"},{tag:Q.punctuation,class:"tok-punctuation"}]);var zl;const ss=new je;function eh(r){return $e.define({combine:r?e=>e.concat(r):void 0})}const th=new je;class gr{constructor(e,t,n=[],s=""){this.data=e,this.name=s,Je.prototype.hasOwnProperty("tree")||Object.defineProperty(Je.prototype,"tree",{get(){return ht(this)}}),this.parser=t,this.extension=[Xn.of(this),Je.languageData.of((i,o,a)=>{let l=nf(i,o,a),c=l.type.prop(ss);if(!c)return[];let u=i.facet(c),h=l.type.prop(th);if(h){let p=l.resolve(o-l.from,a);for(let f of h)if(f.test(p,i)){let g=i.facet(f.facet);return f.type=="replace"?g:g.concat(u)}}return u})].concat(n)}isActiveAt(e,t,n=-1){return nf(e,t,n).type.prop(ss)==this.data}findRegions(e){let t=e.facet(Xn);if(t?.data==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let n=[],s=(i,o)=>{if(i.prop(ss)==this.data){n.push({from:o,to:o+i.length});return}let a=i.prop(je.mounted);if(a){if(a.tree.prop(ss)==this.data){if(a.overlay)for(let l of a.overlay)n.push({from:l.from+o,to:l.to+o});else n.push({from:o,to:o+i.length});return}else if(a.overlay){let l=n.length;if(s(a.tree,a.overlay[0].from+o),n.length>l)return}}for(let l=0;l<i.children.length;l++){let c=i.children[l];c instanceof nt&&s(c,i.positions[l]+o)}};return s(ht(e),0),n}get allowsNesting(){return!0}}gr.setState=Ne.define();function nf(r,e,t){let n=r.facet(Xn),s=ht(r).topNode;if(!n||n.allowsNesting)for(let i=s;i;i=i.enter(e,t,st.ExcludeBuffers|st.EnterBracketed))i.type.isTop&&(s=i);return s}class Ns extends gr{constructor(e,t,n){super(e,t,[],n),this.parser=t}static define(e){let t=eh(e.languageData);return new Ns(t,e.parser.configure({props:[ss.add(n=>n.isTop?t:void 0)]}),e.name)}configure(e,t){return new Ns(this.data,this.parser.configure(e),t||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function ht(r){let e=r.field(gr.state,!1);return e?e.tree:nt.empty}class dC{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,t){let n=this.cursorPos-this.string.length;return e<n||t>=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-n,t-n)}}let Ci=null;class eo{constructor(e,t,n=[],s,i,o,a,l){this.parser=e,this.state=t,this.fragments=n,this.tree=s,this.treeLen=i,this.viewport=o,this.skipped=a,this.scheduleOn=l,this.parse=null,this.tempSkipped=[]}static create(e,t,n){return new eo(e,t,[],nt.empty,0,n,[],null)}startParse(){return this.parser.startParse(new dC(this.state.doc),this.fragments)}work(e,t){return t!=null&&t>=this.state.doc.length&&(t=void 0),this.tree!=nt.empty&&this.isDone(t??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var n;if(typeof e=="number"){let s=Date.now()+e;e=()=>Date.now()>s}for(this.parse||(this.parse=this.startParse()),t!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>t)&&t<this.state.doc.length&&this.parse.stopAt(t);;){let s=this.parse.advance();if(s)if(this.fragments=this.withoutTempSkipped(hn.addTree(s,this.fragments,this.parse.stoppedAt!=null)),this.treeLen=(n=this.parse.stoppedAt)!==null&&n!==void 0?n:this.state.doc.length,this.tree=s,this.parse=null,this.treeLen<(t??this.state.doc.length))this.parse=this.startParse();else return!0;if(e())return!1}})}takeTree(){let e,t;this.parse&&(e=this.parse.parsedPos)>=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(t=this.parse.advance()););}),this.treeLen=e,this.tree=t,this.fragments=this.withoutTempSkipped(hn.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=Ci;Ci=this;try{return e()}finally{Ci=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=sf(e,t.from,t.to);return e}changes(e,t){let{fragments:n,tree:s,treeLen:i,viewport:o,skipped:a}=this;if(this.takeTree(),!e.empty){let l=[];if(e.iterChangedRanges((c,u,h,p)=>l.push({fromA:c,toA:u,fromB:h,toB:p})),n=hn.applyChanges(n,l),s=nt.empty,i=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.to,1)},this.skipped.length){a=[];for(let c of this.skipped){let u=e.mapPos(c.from,1),h=e.mapPos(c.to,-1);u<h&&a.push({from:u,to:h})}}}return new eo(this.parser,t,n,s,i,o,a,this.scheduleOn)}updateViewport(e){if(this.viewport.from==e.from&&this.viewport.to==e.to)return!1;this.viewport=e;let t=this.skipped.length;for(let n=0;n<this.skipped.length;n++){let{from:s,to:i}=this.skipped[n];s<e.to&&i>e.from&&(this.fragments=sf(this.fragments,s,i),this.skipped.splice(n--,1))}return this.skipped.length>=t?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,t){this.skipped.push({from:e,to:t})}static getSkippingParser(e){return new class extends Ju{createParse(t,n,s){let i=s[0].from,o=s[s.length-1].to;return{parsedPos:i,advance(){let l=Ci;if(l){for(let c of s)l.tempSkipped.push(c);e&&(l.scheduleOn=l.scheduleOn?Promise.all([l.scheduleOn,e]):e)}return this.parsedPos=o,new nt($t.none,[],[],o-i)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&t[0].from==0&&t[0].to>=e}static get(){return Ci}}function sf(r,e,t){return hn.applyChanges(r,[{fromA:e,toA:t,fromB:e,toB:t}])}class Ws{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let t=this.context.changes(e.changes,e.state),n=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),t.viewport.to);return t.work(20,n)||t.takeTree(),new Ws(t)}static init(e){let t=Math.min(3e3,e.doc.length),n=eo.create(e.facet(Xn).parser,e,{from:0,to:t});return n.work(20,t)||n.takeTree(),new Ws(n)}}gr.state=Tt.define({create:Ws.init,update(r,e){for(let t of e.effects)if(t.is(gr.setState))return t.value;return e.startState.facet(Xn)!=e.state.facet(Xn)?Ws.init(e.state):r.apply(e)}});let Tg=r=>{let e=setTimeout(()=>r(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(Tg=r=>{let e=-1,t=setTimeout(()=>{e=requestIdleCallback(r,{timeout:400})},100);return()=>e<0?clearTimeout(t):cancelIdleCallback(e)});const Nl=typeof navigator<"u"&&(!((zl=navigator.scheduling)===null||zl===void 0)&&zl.isInputPending)?()=>navigator.scheduling.isInputPending():null,fC=Ot.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let t=this.view.state.field(gr.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field(gr.state);(t.tree!=t.context.tree||!t.context.isDone(e.doc.length))&&(this.working=Tg(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEnd<t&&(this.chunkEnd<0||this.view.hasFocus)&&(this.chunkEnd=t+3e4,this.chunkBudget=3e3),this.chunkBudget<=0)return;let{state:n,viewport:{to:s}}=this.view,i=n.field(gr.state);if(i.tree==i.context.tree&&i.context.isDone(s+1e5))return;let o=Date.now()+Math.min(this.chunkBudget,100,e&&!Nl?Math.max(25,e.timeRemaining()-5):1e9),a=i.context.treeLen<s&&n.doc.length>s+1e3,l=i.context.work(()=>Nl&&Nl()||Date.now()>o,s+(a?0:1e5));this.chunkBudget-=Date.now()-t,(l||this.chunkBudget<=0)&&(i.context.takeTree(),this.view.dispatch({effects:gr.setState.of(new Ws(i.context))})),this.chunkBudget>0&&!(l&&!a)&&this.scheduleWork(),this.checkAsyncSchedule(i.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(t=>Gt(this.view.state,t)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),Xn=$e.define({combine(r){return r.length?r[0]:null},enables:r=>[gr.state,fC,ke.contentAttributes.compute([r],e=>{let t=e.facet(r);return t&&t.name?{"data-language":t.name}:{}})]});class to{constructor(e,t=[]){this.language=e,this.support=t,this.extension=[e,t]}}class La{constructor(e,t,n,s,i,o=void 0){this.name=e,this.alias=t,this.extensions=n,this.filename=s,this.loadFunc=i,this.support=o,this.loading=null}load(){return this.loading||(this.loading=this.loadFunc().then(e=>this.support=e,e=>{throw this.loading=null,e}))}static of(e){let{load:t,support:n}=e;if(!t){if(!n)throw new RangeError("Must pass either 'load' or 'support' to LanguageDescription.of");t=()=>Promise.resolve(n)}return new La(e.name,(e.alias||[]).concat(e.name).map(s=>s.toLowerCase()),e.extensions||[],e.filename,t,n)}static matchFilename(e,t){for(let s of e)if(s.filename&&s.filename.test(t))return s;let n=/\.([^.]+)$/.exec(t);if(n){for(let s of e)if(s.extensions.indexOf(n[1])>-1)return s}return null}static matchLanguageName(e,t,n=!0){t=t.toLowerCase();for(let s of e)if(s.alias.some(i=>i==t))return s;if(n)for(let s of e)for(let i of s.alias){let o=t.indexOf(i);if(o>-1&&(i.length>2||!/\w/.test(t[o-1])&&!/\w/.test(t[o+i.length])))return s}return null}}const pC=$e.define(),wo=$e.define({combine:r=>{if(!r.length)return" ";let e=r[0];if(!e||/\S/.test(e)||Array.from(e).some(t=>t!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(r[0]));return e}});function Xa(r){let e=r.facet(wo);return e.charCodeAt(0)==9?r.tabSize*e.length:e.length}function ro(r,e){let t="",n=r.tabSize,s=r.facet(wo)[0];if(s==" "){for(;e>=n;)t+=" ",e-=n;s=" "}for(let i=0;i<e;i++)t+=s;return t}function rh(r,e){r instanceof Je&&(r=new gl(r));for(let n of r.state.facet(pC)){let s=n(r,e);if(s!==void 0)return s}let t=ht(r.state);return t.length>=e?mC(r,t,e):null}class gl{constructor(e,t={}){this.state=e,this.options=t,this.unit=Xa(e)}lineAt(e,t=1){let n=this.state.doc.lineAt(e),{simulateBreak:s,simulateDoubleBreak:i}=this.options;return s!=null&&s>=n.from&&s<=n.to?i&&s==e?{text:"",from:e}:(t<0?s<e:s<=e)?{text:n.text.slice(s-n.from),from:s}:{text:n.text.slice(0,s-n.from),from:n.from}:n}textAfterPos(e,t=1){if(this.options.simulateDoubleBreak&&e==this.options.simulateBreak)return"";let{text:n,from:s}=this.lineAt(e,t);return n.slice(e-s,Math.min(n.length,e+100-s))}column(e,t=1){let{text:n,from:s}=this.lineAt(e,t),i=this.countColumn(n,e-s),o=this.options.overrideIndentation?this.options.overrideIndentation(s):-1;return o>-1&&(i+=o-this.countColumn(n,n.search(/\S|$/))),i}countColumn(e,t=e.length){return _r(e,this.state.tabSize,t)}lineIndent(e,t=1){let{text:n,from:s}=this.lineAt(e,t),i=this.options.overrideIndentation;if(i){let o=i(s);if(o>-1)return o}return this.countColumn(n,n.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const So=new je;function mC(r,e,t){let n=e.resolveStack(t),s=e.resolveInner(t,-1).resolve(t,0).enterUnfinishedNodesBefore(t);if(s!=n.node){let i=[];for(let o=s;o&&!(o.from<n.node.from||o.to>n.node.to||o.from==n.node.from&&o.type==n.node.type);o=o.parent)i.push(o);for(let o=i.length-1;o>=0;o--)n={node:i[o],next:n}}return Mg(n,r,t)}function Mg(r,e,t){for(let n=r;n;n=n.next){let s=OC(n.node);if(s)return s(nh.create(e,t,n))}return 0}function gC(r){return r.pos==r.options.simulateBreak&&r.options.simulateDoubleBreak}function OC(r){let e=r.type.prop(So);if(e)return e;let t=r.firstChild,n;if(t&&(n=t.type.prop(je.closedBy))){let s=r.lastChild,i=s&&n.indexOf(s.name)>-1;return o=>Ag(o,!0,1,void 0,i&&!gC(o)?s.from:void 0)}return r.parent==null?vC:null}function vC(){return 0}class nh extends gl{constructor(e,t,n){super(e.state,e.options),this.base=e,this.pos=t,this.context=n}get node(){return this.context.node}static create(e,t,n){return new nh(e,t,n)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let t=this.state.doc.lineAt(e.from);for(;;){let n=e.resolve(t.from);for(;n.parent&&n.parent.from==n.from;)n=n.parent;if(bC(n,e))break;t=this.state.doc.lineAt(n.from)}return this.lineIndent(t.from)}continue(){return Mg(this.context.next,this.base,this.pos)}}function bC(r,e){for(let t=e;t;t=t.parent)if(r==t)return!0;return!1}function xC(r){let e=r.node,t=e.childAfter(e.from),n=e.lastChild;if(!t)return null;let s=r.options.simulateBreak,i=r.state.doc.lineAt(t.from),o=s==null||s<=i.from?i.to:Math.min(i.to,s);for(let a=t.to;;){let l=e.childAfter(a);if(!l||l==n)return null;if(!l.type.isSkipped){if(l.from>=o)return null;let c=/^ */.exec(i.text.slice(t.to-i.from))[0].length;return{from:t.from,to:t.to+c}}a=l.to}}function yC({closing:r,align:e=!0,units:t=1}){return n=>Ag(n,e,t,r)}function Ag(r,e,t,n,s){let i=r.textAfter,o=i.match(/^\s*/)[0].length,a=n&&i.slice(o,o+n.length)==n||s==r.pos+o,l=e?xC(r):null;return l?a?r.column(l.from):r.column(l.to):r.baseIndent+(a?0:r.unit*t)}const kC=r=>r.baseIndent;function Oa({except:r,units:e=1}={}){return t=>{let n=r&&r.test(t.textAfter);return t.baseIndent+(n?0:e*t.unit)}}const wC=200;function SC(){return Je.transactionFilter.of(r=>{if(!r.docChanged||!r.isUserEvent("input.type")&&!r.isUserEvent("input.complete"))return r;let e=r.startState.languageDataAt("indentOnInput",r.startState.selection.main.head);if(!e.length)return r;let t=r.newDoc,{head:n}=r.newSelection.main,s=t.lineAt(n);if(n>s.from+wC)return r;let i=t.sliceString(s.from,n);if(!e.some(c=>c.test(i)))return r;let{state:o}=r,a=-1,l=[];for(let{head:c}of o.selection.ranges){let u=o.doc.lineAt(c);if(u.from==a)continue;a=u.from;let h=rh(o,u.from);if(h==null)continue;let p=/^\s*/.exec(u.text)[0],f=ro(o,h);p!=f&&l.push({from:u.from,to:u.from+p.length,insert:f})}return l.length?[r,{changes:l,sequential:!0}]:r})}const _g=$e.define(),Ks=new je;function Rg(r){let e=r.firstChild,t=r.lastChild;return e&&e.to<t.from?{from:e.to,to:t.type.isError?r.to:t.from}:null}function $C(r,e,t){let n=ht(r);if(n.length<t)return null;let s=n.resolveStack(t,1),i=null;for(let o=s;o;o=o.next){let a=o.node;if(a.to<=t||a.from>t)continue;if(i&&a.from<e)break;let l=a.type.prop(Ks);if(l&&(a.to<n.length-50||n.length==r.doc.length||!CC(a))){let c=l(a,r);c&&c.from<=t&&c.from>=e&&c.to>t&&(i=c)}}return i}function CC(r){let e=r.lastChild;return e&&e.to==r.to&&e.type.isError}function Ia(r,e,t){for(let n of r.facet(_g)){let s=n(r,e,t);if(s)return s}return $C(r,e,t)}function Bg(r,e){let t=e.mapPos(r.from,1),n=e.mapPos(r.to,-1);return t>=n?void 0:{from:t,to:n}}const Ol=Ne.define({map:Bg}),$o=Ne.define({map:Bg});function Zg(r){let e=[];for(let{head:t}of r.state.selection.ranges)e.some(n=>n.from<=t&&n.to>=t)||e.push(r.lineBlockAt(t));return e}const ps=Tt.define({create(){return Ee.none},update(r,e){e.isUserEvent("delete")&&e.changes.iterChangedRanges((t,n)=>r=of(r,t,n)),r=r.map(e.changes);for(let t of e.effects)if(t.is(Ol)&&!QC(r,t.value.from,t.value.to)){let{preparePlaceholder:n}=e.state.facet(Lg),s=n?Ee.replace({widget:new BC(n(e.state,t.value))}):af;r=r.update({add:[s.range(t.value.from,t.value.to)]})}else t.is($o)&&(r=r.update({filter:(n,s)=>t.value.from!=n||t.value.to!=s,filterFrom:t.value.from,filterTo:t.value.to}));return e.selection&&(r=of(r,e.selection.main.head)),r},provide:r=>ke.decorations.from(r),toJSON(r,e){let t=[];return r.between(0,e.doc.length,(n,s)=>{t.push(n,s)}),t},fromJSON(r){if(!Array.isArray(r)||r.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let t=0;t<r.length;){let n=r[t++],s=r[t++];if(typeof n!="number"||typeof s!="number")throw new RangeError("Invalid JSON for fold state");e.push(af.range(n,s))}return Ee.set(e,!0)}});function of(r,e,t=e){let n=!1;return r.between(e,t,(s,i)=>{s<t&&i>e&&(n=!0)}),n?r.update({filterFrom:e,filterTo:t,filter:(s,i)=>s>=t||i<=e}):r}function Va(r,e,t){var n;let s=null;return(n=r.field(ps,!1))===null||n===void 0||n.between(e,t,(i,o)=>{(!s||s.from>i)&&(s={from:i,to:o})}),s}function QC(r,e,t){let n=!1;return r.between(e,e,(s,i)=>{s==e&&i==t&&(n=!0)}),n}function Eg(r,e){return r.field(ps,!1)?e:e.concat(Ne.appendConfig.of(Xg()))}const PC=r=>{for(let e of Zg(r)){let t=Ia(r.state,e.from,e.to);if(t)return r.dispatch({effects:Eg(r.state,[Ol.of(t),Dg(r,t)])}),!0}return!1},TC=r=>{if(!r.state.field(ps,!1))return!1;let e=[];for(let t of Zg(r)){let n=Va(r.state,t.from,t.to);n&&e.push($o.of(n),Dg(r,n,!1))}return e.length&&r.dispatch({effects:e}),e.length>0};function Dg(r,e,t=!0){let n=r.state.doc.lineAt(e.from).number,s=r.state.doc.lineAt(e.to).number;return ke.announce.of(`${r.state.phrase(t?"Folded lines":"Unfolded lines")} ${n} ${r.state.phrase("to")} ${s}.`)}const MC=r=>{let{state:e}=r,t=[];for(let n=0;n<e.doc.length;){let s=r.lineBlockAt(n),i=Ia(e,s.from,s.to);i&&t.push(Ol.of(i)),n=(i?r.lineBlockAt(i.to):s).to+1}return t.length&&r.dispatch({effects:Eg(r.state,t)}),!!t.length},AC=r=>{let e=r.state.field(ps,!1);if(!e||!e.size)return!1;let t=[];return e.between(0,r.state.doc.length,(n,s)=>{t.push($o.of({from:n,to:s}))}),r.dispatch({effects:t}),!0},_C=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:PC},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:TC},{key:"Ctrl-Alt-[",run:MC},{key:"Ctrl-Alt-]",run:AC}],RC={placeholderDOM:null,preparePlaceholder:null,placeholderText:"…"},Lg=$e.define({combine(r){return en(r,RC)}});function Xg(r){return[ps,DC]}function Ig(r,e){let{state:t}=r,n=t.facet(Lg),s=o=>{let a=r.lineBlockAt(r.posAtDOM(o.target)),l=Va(r.state,a.from,a.to);l&&r.dispatch({effects:$o.of(l)}),o.preventDefault()};if(n.placeholderDOM)return n.placeholderDOM(r,s,e);let i=document.createElement("span");return i.textContent=n.placeholderText,i.setAttribute("aria-label",t.phrase("folded code")),i.title=t.phrase("unfold"),i.className="cm-foldPlaceholder",i.onclick=s,i}const af=Ee.replace({widget:new class extends tn{toDOM(r){return Ig(r,null)}}});class BC extends tn{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return Ig(e,this.value)}}const ZC={openText:"⌄",closedText:"›",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class Wl extends gn{constructor(e,t){super(),this.config=e,this.open=t}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let t=document.createElement("span");return t.textContent=this.open?this.config.openText:this.config.closedText,t.title=e.state.phrase(this.open?"Fold line":"Unfold line"),t}}function EC(r={}){let e={...ZC,...r},t=new Wl(e,!0),n=new Wl(e,!1),s=Ot.fromClass(class{constructor(o){this.from=o.viewport.from,this.markers=this.buildMarkers(o)}update(o){(o.docChanged||o.viewportChanged||o.startState.facet(Xn)!=o.state.facet(Xn)||o.startState.field(ps,!1)!=o.state.field(ps,!1)||ht(o.startState)!=ht(o.state)||e.foldingChanged(o))&&(this.markers=this.buildMarkers(o.view))}buildMarkers(o){let a=new pn;for(let l of o.viewportLineBlocks){let c=Va(o.state,l.from,l.to)?n:Ia(o.state,l.from,l.to)?t:null;c&&a.add(l.from,l.from,c)}return a.finish()}}),{domEventHandlers:i}=e;return[s,B5({class:"cm-foldGutter",markers(o){var a;return((a=o.plugin(s))===null||a===void 0?void 0:a.markers)||Ke.empty},initialSpacer(){return new Wl(e,!1)},domEventHandlers:{...i,click:(o,a,l)=>{if(i.click&&i.click(o,a,l))return!0;let c=Va(o.state,a.from,a.to);if(c)return o.dispatch({effects:$o.of(c)}),!0;let u=Ia(o.state,a.from,a.to);return u?(o.dispatch({effects:Ol.of(u)}),!0):!1}}}),Xg()]}const DC=ke.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}});class Co{constructor(e,t){this.specs=e;let n;function s(a){let l=Zn.newName();return(n||(n=Object.create(null)))["."+l]=a,l}const i=typeof t.all=="string"?t.all:t.all?s(t.all):void 0,o=t.scope;this.scope=o instanceof gr?a=>a.prop(ss)==o.data:o?a=>a==o:void 0,this.style=Pg(e.map(a=>({tag:a.tag,class:a.class||s(Object.assign({},a,{tag:null}))})),{all:i}).style,this.module=n?new Zn(n):null,this.themeType=t.themeType}static define(e,t){return new Co(e,t||{})}}const tu=$e.define(),Vg=$e.define({combine(r){return r.length?[r[0]]:null}});function jl(r){let e=r.facet(tu);return e.length?e:r.facet(Vg)}function zg(r,e){let t=[XC],n;return r instanceof Co&&(r.module&&t.push(ke.styleModule.of(r.module)),n=r.themeType),e?.fallback?t.push(Vg.of(r)):n?t.push(tu.computeN([ke.darkTheme],s=>s.facet(ke.darkTheme)==(n=="dark")?[r]:[])):t.push(tu.of(r)),t}class LC{constructor(e){this.markCache=Object.create(null),this.tree=ht(e.state),this.decorations=this.buildDeco(e,jl(e.state)),this.decoratedTo=e.viewport.to}update(e){let t=ht(e.state),n=jl(e.state),s=n!=jl(e.startState),{viewport:i}=e.view,o=e.changes.mapPos(this.decoratedTo,1);t.length<i.to&&!s&&t.type==this.tree.type&&o>=i.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=o):(t!=this.tree||e.viewportChanged||s)&&(this.tree=t,this.decorations=this.buildDeco(e.view,n),this.decoratedTo=i.to)}buildDeco(e,t){if(!t||!this.tree.length)return Ee.none;let n=new pn;for(let{from:s,to:i}of e.visibleRanges)cC(this.tree,t,(o,a,l)=>{n.add(o,a,this.markCache[l]||(this.markCache[l]=Ee.mark({class:l})))},s,i);return n.finish()}}const XC=On.high(Ot.fromClass(LC,{decorations:r=>r.decorations})),IC=Co.define([{tag:Q.meta,color:"#404740"},{tag:Q.link,textDecoration:"underline"},{tag:Q.heading,textDecoration:"underline",fontWeight:"bold"},{tag:Q.emphasis,fontStyle:"italic"},{tag:Q.strong,fontWeight:"bold"},{tag:Q.strikethrough,textDecoration:"line-through"},{tag:Q.keyword,color:"#708"},{tag:[Q.atom,Q.bool,Q.url,Q.contentSeparator,Q.labelName],color:"#219"},{tag:[Q.literal,Q.inserted],color:"#164"},{tag:[Q.string,Q.deleted],color:"#a11"},{tag:[Q.regexp,Q.escape,Q.special(Q.string)],color:"#e40"},{tag:Q.definition(Q.variableName),color:"#00f"},{tag:Q.local(Q.variableName),color:"#30a"},{tag:[Q.typeName,Q.namespace],color:"#085"},{tag:Q.className,color:"#167"},{tag:[Q.special(Q.variableName),Q.macroName],color:"#256"},{tag:Q.definition(Q.propertyName),color:"#00c"},{tag:Q.comment,color:"#940"},{tag:Q.invalid,color:"#f00"}]),VC=ke.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),Ng=1e4,Wg="()[]{}",jg=$e.define({combine(r){return en(r,{afterCursor:!0,brackets:Wg,maxScanDistance:Ng,renderMatch:WC})}}),zC=Ee.mark({class:"cm-matchingBracket"}),NC=Ee.mark({class:"cm-nonmatchingBracket"});function WC(r){let e=[],t=r.matched?zC:NC;return e.push(t.range(r.start.from,r.start.to)),r.end&&e.push(t.range(r.end.from,r.end.to)),e}function lf(r){let e=[],t=r.facet(jg);for(let n of r.selection.ranges){if(!n.empty)continue;let s=Gr(r,n.head,-1,t)||n.head>0&&Gr(r,n.head-1,1,t)||t.afterCursor&&(Gr(r,n.head,1,t)||n.head<r.doc.length&&Gr(r,n.head+1,-1,t));s&&(e=e.concat(t.renderMatch(s,r)))}return Ee.set(e,!0)}const jC=Ot.fromClass(class{constructor(r){this.paused=!1,this.decorations=lf(r.state)}update(r){(r.docChanged||r.selectionSet||this.paused)&&(r.view.composing?(this.decorations=this.decorations.map(r.changes),this.paused=!0):(this.decorations=lf(r.state),this.paused=!1))}},{decorations:r=>r.decorations}),qC=[jC,VC];function YC(r={}){return[jg.of(r),qC]}const qg=new je;function ru(r,e,t){let n=r.prop(e<0?je.openedBy:je.closedBy);if(n)return n;if(r.name.length==1){let s=t.indexOf(r.name);if(s>-1&&s%2==(e<0?1:0))return[t[s+e]]}return null}function nu(r){let e=r.type.prop(qg);return e?e(r.node):r}function Gr(r,e,t,n={}){let s=n.maxScanDistance||Ng,i=n.brackets||Wg,o=ht(r),a=o.resolveInner(e,t);for(let l=a;l;l=l.parent){let c=ru(l.type,t,i);if(c&&l.from<l.to){let u=nu(l);if(u&&(t>0?e>=u.from&&e<u.to:e>u.from&&e<=u.to))return FC(r,e,t,l,u,c,i)}}return UC(r,e,t,o,a.type,s,i)}function FC(r,e,t,n,s,i,o){let a=n.parent,l={from:s.from,to:s.to},c=0,u=a?.cursor();if(u&&(t<0?u.childBefore(n.from):u.childAfter(n.to)))do if(t<0?u.to<=n.from:u.from>=n.to){if(c==0&&i.indexOf(u.type.name)>-1&&u.from<u.to){let h=nu(u);return{start:l,end:h?{from:h.from,to:h.to}:void 0,matched:!0}}else if(ru(u.type,t,o))c++;else if(ru(u.type,-t,o)){if(c==0){let h=nu(u);return{start:l,end:h&&h.from<h.to?{from:h.from,to:h.to}:void 0,matched:!1}}c--}}while(t<0?u.prevSibling():u.nextSibling());return{start:l,matched:!1}}function UC(r,e,t,n,s,i,o){let a=t<0?r.sliceDoc(e-1,e):r.sliceDoc(e,e+1),l=o.indexOf(a);if(l<0||l%2==0!=t>0)return null;let c={from:t<0?e-1:e,to:t>0?e+1:e},u=r.doc.iterRange(e,t>0?r.doc.length:0),h=0;for(let p=0;!u.next().done&&p<=i;){let f=u.value;t<0&&(p+=f.length);let g=e+p*t;for(let O=t>0?0:f.length-1,y=t>0?f.length:-1;O!=y;O+=t){let b=o.indexOf(f[O]);if(!(b<0||n.resolveInner(g+O,1).type!=s))if(b%2==0==t>0)h++;else{if(h==1)return{start:c,end:{from:g+O,to:g+O+1},matched:b>>1==l>>1};h--}}t>0&&(p+=f.length)}return u.done?{start:c,matched:!1}:null}const GC=Object.create(null),cf=[$t.none],uf=[],hf=Object.create(null),HC=Object.create(null);for(let[r,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])HC[r]=KC(GC,e);function ql(r,e){uf.indexOf(r)>-1||(uf.push(r),console.warn(e))}function KC(r,e){let t=[];for(let a of e.split(" ")){let l=[];for(let c of a.split(".")){let u=r[c]||Q[c];u?typeof u=="function"?l.length?l=l.map(u):ql(c,`Modifier ${c} used at start of tag`):l.length?ql(c,`Tag ${c} used as modifier`):l=Array.isArray(u)?u:[u]:ql(c,`Unknown highlighting tag ${c}`)}for(let c of l)t.push(c)}if(!t.length)return 0;let n=e.replace(/ /g,"_"),s=n+" "+t.map(a=>a.id),i=hf[s];if(i)return i.id;let o=hf[s]=$t.define({id:cf.length,name:n,props:[Hs({[n]:t})]});return cf.push(o),o.id}ut.RTL,ut.LTR;const JC=r=>{let{state:e}=r,t=e.doc.lineAt(e.selection.main.from),n=ih(r.state,t.from);return n.line?eQ(r):n.block?rQ(r):!1};function sh(r,e){return({state:t,dispatch:n})=>{if(t.readOnly)return!1;let s=r(e,t);return s?(n(t.update(s)),!0):!1}}const eQ=sh(iQ,0),tQ=sh(Yg,0),rQ=sh((r,e)=>Yg(r,e,sQ(e)),0);function ih(r,e){let t=r.languageDataAt("commentTokens",e,1);return t.length?t[0]:{}}const Qi=50;function nQ(r,{open:e,close:t},n,s){let i=r.sliceDoc(n-Qi,n),o=r.sliceDoc(s,s+Qi),a=/\s*$/.exec(i)[0].length,l=/^\s*/.exec(o)[0].length,c=i.length-a;if(i.slice(c-e.length,c)==e&&o.slice(l,l+t.length)==t)return{open:{pos:n-a,margin:a&&1},close:{pos:s+l,margin:l&&1}};let u,h;s-n<=2*Qi?u=h=r.sliceDoc(n,s):(u=r.sliceDoc(n,n+Qi),h=r.sliceDoc(s-Qi,s));let p=/^\s*/.exec(u)[0].length,f=/\s*$/.exec(h)[0].length,g=h.length-f-t.length;return u.slice(p,p+e.length)==e&&h.slice(g,g+t.length)==t?{open:{pos:n+p+e.length,margin:/\s/.test(u.charAt(p+e.length))?1:0},close:{pos:s-f-t.length,margin:/\s/.test(h.charAt(g-1))?1:0}}:null}function sQ(r){let e=[];for(let t of r.selection.ranges){let n=r.doc.lineAt(t.from),s=t.to<=n.to?n:r.doc.lineAt(t.to);s.from>n.from&&s.from==t.to&&(s=t.to==n.to+1?n:r.doc.lineAt(t.to-1));let i=e.length-1;i>=0&&e[i].to>n.from?e[i].to=s.to:e.push({from:n.from+/^\s*/.exec(n.text)[0].length,to:s.to})}return e}function Yg(r,e,t=e.selection.ranges){let n=t.map(i=>ih(e,i.from).block);if(!n.every(i=>i))return null;let s=t.map((i,o)=>nQ(e,n[o],i.from,i.to));if(r!=2&&!s.every(i=>i))return{changes:e.changes(t.map((i,o)=>s[o]?[]:[{from:i.from,insert:n[o].open+" "},{from:i.to,insert:" "+n[o].close}]))};if(r!=1&&s.some(i=>i)){let i=[];for(let o=0,a;o<s.length;o++)if(a=s[o]){let l=n[o],{open:c,close:u}=a;i.push({from:c.pos-l.open.length,to:c.pos+c.margin},{from:u.pos-u.margin,to:u.pos+l.close.length})}return{changes:i}}return null}function iQ(r,e,t=e.selection.ranges){let n=[],s=-1;e:for(let{from:i,to:o}of t){let a=n.length,l=1e9,c;for(let u=i;u<=o;){let h=e.doc.lineAt(u);if(c==null&&(c=ih(e,h.from).line,!c))continue e;if(h.from>s&&(i==o||o>h.from)){s=h.from;let p=/^\s*/.exec(h.text)[0].length,f=p==h.length,g=h.text.slice(p,p+c.length)==c?p:-1;p<h.text.length&&p<l&&(l=p),n.push({line:h,comment:g,token:c,indent:p,empty:f,single:!1})}u=h.to+1}if(l<1e9)for(let u=a;u<n.length;u++)n[u].indent<n[u].line.text.length&&(n[u].indent=l);n.length==a+1&&(n[a].single=!0)}if(r!=2&&n.some(i=>i.comment<0&&(!i.empty||i.single))){let i=[];for(let{line:a,token:l,indent:c,empty:u,single:h}of n)(h||!u)&&i.push({from:a.from+c,insert:l+" "});let o=e.changes(i);return{changes:o,selection:e.selection.map(o,1)}}else if(r!=1&&n.some(i=>i.comment>=0)){let i=[];for(let{line:o,comment:a,token:l}of n)if(a>=0){let c=o.from+a,u=c+l.length;o.text[u-o.from]==" "&&u++,i.push({from:c,to:u})}return{changes:i}}return null}const su=vn.define(),oQ=vn.define(),aQ=$e.define(),Fg=$e.define({combine(r){return en(r,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(n,s)=>e(n,s)||t(n,s)})}}),Ug=Tt.define({create(){return Hr.empty},update(r,e){let t=e.state.facet(Fg),n=e.annotation(su);if(n){let l=Ht.fromTransaction(e,n.selection),c=n.side,u=c==0?r.undone:r.done;return l?u=za(u,u.length,t.minDepth,l):u=Kg(u,e.startState.selection),new Hr(c==0?n.rest:u,c==0?u:n.rest)}let s=e.annotation(oQ);if((s=="full"||s=="before")&&(r=r.isolate()),e.annotation(vt.addToHistory)===!1)return e.changes.empty?r:r.addMapping(e.changes.desc);let i=Ht.fromTransaction(e),o=e.annotation(vt.time),a=e.annotation(vt.userEvent);return i?r=r.addChanges(i,o,a,t,e):e.selection&&(r=r.addSelection(e.startState.selection,o,a,t.newGroupDelay)),(s=="full"||s=="after")&&(r=r.isolate()),r},toJSON(r){return{done:r.done.map(e=>e.toJSON()),undone:r.undone.map(e=>e.toJSON())}},fromJSON(r){return new Hr(r.done.map(Ht.fromJSON),r.undone.map(Ht.fromJSON))}});function lQ(r={}){return[Ug,Fg.of(r),ke.domEventHandlers({beforeinput(e,t){let n=e.inputType=="historyUndo"?Gg:e.inputType=="historyRedo"?iu:null;return n?(e.preventDefault(),n(t)):!1}})]}function vl(r,e){return function({state:t,dispatch:n}){if(!e&&t.readOnly)return!1;let s=t.field(Ug,!1);if(!s)return!1;let i=s.pop(r,t,e);return i?(n(i),!0):!1}}const Gg=vl(0,!1),iu=vl(1,!1),cQ=vl(0,!0),uQ=vl(1,!0);class Ht{constructor(e,t,n,s,i){this.changes=e,this.effects=t,this.mapped=n,this.startSelection=s,this.selectionsAfter=i}setSelAfter(e){return new Ht(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,n;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(t=this.mapped)===null||t===void 0?void 0:t.toJSON(),startSelection:(n=this.startSelection)===null||n===void 0?void 0:n.toJSON(),selectionsAfter:this.selectionsAfter.map(s=>s.toJSON())}}static fromJSON(e){return new Ht(e.changes&&wt.fromJSON(e.changes),[],e.mapped&&Kr.fromJSON(e.mapped),e.startSelection&&te.fromJSON(e.startSelection),e.selectionsAfter.map(te.fromJSON))}static fromTransaction(e,t){let n=Or;for(let s of e.startState.facet(aQ)){let i=s(e);i.length&&(n=n.concat(i))}return!n.length&&e.changes.empty?null:new Ht(e.changes.invert(e.startState.doc),n,void 0,t||e.startState.selection,Or)}static selection(e){return new Ht(void 0,Or,void 0,void 0,e)}}function za(r,e,t,n){let s=e+1>t+20?e-t-1:0,i=r.slice(s,e);return i.push(n),i}function hQ(r,e){let t=[],n=!1;return r.iterChangedRanges((s,i)=>t.push(s,i)),e.iterChangedRanges((s,i,o,a)=>{for(let l=0;l<t.length;){let c=t[l++],u=t[l++];a>=c&&o<=u&&(n=!0)}}),n}function dQ(r,e){return r.ranges.length==e.ranges.length&&r.ranges.filter((t,n)=>t.empty!=e.ranges[n].empty).length===0}function Hg(r,e){return r.length?e.length?r.concat(e):r:e}const Or=[],fQ=200;function Kg(r,e){if(r.length){let t=r[r.length-1],n=t.selectionsAfter.slice(Math.max(0,t.selectionsAfter.length-fQ));return n.length&&n[n.length-1].eq(e)?r:(n.push(e),za(r,r.length-1,1e9,t.setSelAfter(n)))}else return[Ht.selection([e])]}function pQ(r){let e=r[r.length-1],t=r.slice();return t[r.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),t}function Yl(r,e){if(!r.length)return r;let t=r.length,n=Or;for(;t;){let s=mQ(r[t-1],e,n);if(s.changes&&!s.changes.empty||s.effects.length){let i=r.slice(0,t);return i[t-1]=s,i}else e=s.mapped,t--,n=s.selectionsAfter}return n.length?[Ht.selection(n)]:Or}function mQ(r,e,t){let n=Hg(r.selectionsAfter.length?r.selectionsAfter.map(a=>a.map(e)):Or,t);if(!r.changes)return Ht.selection(n);let s=r.changes.map(e),i=e.mapDesc(r.changes,!0),o=r.mapped?r.mapped.composeDesc(i):i;return new Ht(s,Ne.mapEffects(r.effects,e),o,r.startSelection.map(i),n)}const gQ=/^(input\.type|delete)($|\.)/;class Hr{constructor(e,t,n=0,s=void 0){this.done=e,this.undone=t,this.prevTime=n,this.prevUserEvent=s}isolate(){return this.prevTime?new Hr(this.done,this.undone):this}addChanges(e,t,n,s,i){let o=this.done,a=o[o.length-1];return a&&a.changes&&!a.changes.empty&&e.changes&&(!n||gQ.test(n))&&(!a.selectionsAfter.length&&t-this.prevTime<s.newGroupDelay&&s.joinToEvent(i,hQ(a.changes,e.changes))||n=="input.type.compose")?o=za(o,o.length-1,s.minDepth,new Ht(e.changes.compose(a.changes),Hg(Ne.mapEffects(e.effects,a.changes),a.effects),a.mapped,a.startSelection,Or)):o=za(o,o.length,s.minDepth,e),new Hr(o,Or,t,n)}addSelection(e,t,n,s){let i=this.done.length?this.done[this.done.length-1].selectionsAfter:Or;return i.length>0&&t-this.prevTime<s&&n==this.prevUserEvent&&n&&/^select($|\.)/.test(n)&&dQ(i[i.length-1],e)?this:new Hr(Kg(this.done,e),this.undone,t,n)}addMapping(e){return new Hr(Yl(this.done,e),Yl(this.undone,e),this.prevTime,this.prevUserEvent)}pop(e,t,n){let s=e==0?this.done:this.undone;if(s.length==0)return null;let i=s[s.length-1],o=i.selectionsAfter[0]||(i.startSelection?i.startSelection.map(i.changes.invertedDesc,1):t.selection);if(n&&i.selectionsAfter.length)return t.update({selection:i.selectionsAfter[i.selectionsAfter.length-1],annotations:su.of({side:e,rest:pQ(s),selection:o}),userEvent:e==0?"select.undo":"select.redo",scrollIntoView:!0});if(i.changes){let a=s.length==1?Or:s.slice(0,s.length-1);return i.mapped&&(a=Yl(a,i.mapped)),t.update({changes:i.changes,selection:i.startSelection,effects:i.effects,annotations:su.of({side:e,rest:a,selection:o}),filter:!1,userEvent:e==0?"undo":"redo",scrollIntoView:!0})}else return null}}Hr.empty=new Hr(Or,Or);const OQ=[{key:"Mod-z",run:Gg,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:iu,preventDefault:!0},{linux:"Ctrl-Shift-z",run:iu,preventDefault:!0},{key:"Mod-u",run:cQ,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:uQ,preventDefault:!0}];function Js(r,e){return te.create(r.ranges.map(e),r.mainIndex)}function Br(r,e){return r.update({selection:e,scrollIntoView:!0,userEvent:"select"})}function Zr({state:r,dispatch:e},t){let n=Js(r.selection,t);return n.eq(r.selection,!0)?!1:(e(Br(r,n)),!0)}function bl(r,e){return te.cursor(e?r.to:r.from)}function Jg(r,e){return Zr(r,t=>t.empty?r.moveByChar(t,e):bl(t,e))}function Vt(r){return r.textDirectionAt(r.state.selection.main.head)==ut.LTR}const eO=r=>Jg(r,!Vt(r)),tO=r=>Jg(r,Vt(r));function rO(r,e){return Zr(r,t=>t.empty?r.moveByGroup(t,e):bl(t,e))}const vQ=r=>rO(r,!Vt(r)),bQ=r=>rO(r,Vt(r));function xQ(r,e,t){if(e.type.prop(t))return!0;let n=e.to-e.from;return n&&(n>2||/[^\s,.;:]/.test(r.sliceDoc(e.from,e.to)))||e.firstChild}function xl(r,e,t){let n=ht(r).resolveInner(e.head),s=t?je.closedBy:je.openedBy;for(let l=e.head;;){let c=t?n.childAfter(l):n.childBefore(l);if(!c)break;xQ(r,c,s)?n=c:l=t?c.to:c.from}let i=n.type.prop(s),o,a;return i&&(o=t?Gr(r,n.from,1):Gr(r,n.to,-1))&&o.matched?a=t?o.end.to:o.end.from:a=t?n.to:n.from,te.cursor(a,t?-1:1)}const yQ=r=>Zr(r,e=>xl(r.state,e,!Vt(r))),kQ=r=>Zr(r,e=>xl(r.state,e,Vt(r)));function nO(r,e){return Zr(r,t=>{if(!t.empty)return bl(t,e);let n=r.moveVertically(t,e);return n.head!=t.head?n:r.moveToLineBoundary(t,e)})}const sO=r=>nO(r,!1),iO=r=>nO(r,!0);function oO(r){let e=r.scrollDOM.clientHeight<r.scrollDOM.scrollHeight-2,t=0,n=0,s;if(e){for(let i of r.state.facet(ke.scrollMargins)){let o=i(r);o?.top&&(t=Math.max(o?.top,t)),o?.bottom&&(n=Math.max(o?.bottom,n))}s=r.scrollDOM.clientHeight-t-n}else s=(r.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:t,marginBottom:n,selfScroll:e,height:Math.max(r.defaultLineHeight,s-5)}}function aO(r,e){let t=oO(r),{state:n}=r,s=Js(n.selection,o=>o.empty?r.moveVertically(o,e,t.height):bl(o,e));if(s.eq(n.selection))return!1;let i;if(t.selfScroll){let o=r.coordsAtPos(n.selection.main.head),a=r.scrollDOM.getBoundingClientRect(),l=a.top+t.marginTop,c=a.bottom-t.marginBottom;o&&o.top>l&&o.bottom<c&&(i=ke.scrollIntoView(s.main.head,{y:"start",yMargin:o.top-l}))}return r.dispatch(Br(n,s),{effects:i}),!0}const df=r=>aO(r,!1),ou=r=>aO(r,!0);function Vn(r,e,t){let n=r.lineBlockAt(e.head),s=r.moveToLineBoundary(e,t);if(s.head==e.head&&s.head!=(t?n.to:n.from)&&(s=r.moveToLineBoundary(e,t,!1)),!t&&s.head==n.from&&n.length){let i=/^\s*/.exec(r.state.sliceDoc(n.from,Math.min(n.from+100,n.to)))[0].length;i&&e.head!=n.from+i&&(s=te.cursor(n.from+i))}return s}const wQ=r=>Zr(r,e=>Vn(r,e,!0)),SQ=r=>Zr(r,e=>Vn(r,e,!1)),$Q=r=>Zr(r,e=>Vn(r,e,!Vt(r))),CQ=r=>Zr(r,e=>Vn(r,e,Vt(r))),QQ=r=>Zr(r,e=>te.cursor(r.lineBlockAt(e.head).from,1)),PQ=r=>Zr(r,e=>te.cursor(r.lineBlockAt(e.head).to,-1));function TQ(r,e,t){let n=!1,s=Js(r.selection,i=>{let o=Gr(r,i.head,-1)||Gr(r,i.head,1)||i.head>0&&Gr(r,i.head-1,1)||i.head<r.doc.length&&Gr(r,i.head+1,-1);if(!o||!o.end)return i;n=!0;let a=o.start.from==i.head?o.end.to:o.end.from;return te.cursor(a)});return n?(e(Br(r,s)),!0):!1}const MQ=({state:r,dispatch:e})=>TQ(r,e);function wr(r,e){let t=Js(r.state.selection,n=>{let s=e(n);return te.range(n.anchor,s.head,s.goalColumn,s.bidiLevel||void 0)});return t.eq(r.state.selection)?!1:(r.dispatch(Br(r.state,t)),!0)}function lO(r,e){return wr(r,t=>r.moveByChar(t,e))}const cO=r=>lO(r,!Vt(r)),uO=r=>lO(r,Vt(r));function hO(r,e){return wr(r,t=>r.moveByGroup(t,e))}const AQ=r=>hO(r,!Vt(r)),_Q=r=>hO(r,Vt(r)),RQ=r=>wr(r,e=>xl(r.state,e,!Vt(r))),BQ=r=>wr(r,e=>xl(r.state,e,Vt(r)));function dO(r,e){return wr(r,t=>r.moveVertically(t,e))}const fO=r=>dO(r,!1),pO=r=>dO(r,!0);function mO(r,e){return wr(r,t=>r.moveVertically(t,e,oO(r).height))}const ff=r=>mO(r,!1),pf=r=>mO(r,!0),ZQ=r=>wr(r,e=>Vn(r,e,!0)),EQ=r=>wr(r,e=>Vn(r,e,!1)),DQ=r=>wr(r,e=>Vn(r,e,!Vt(r))),LQ=r=>wr(r,e=>Vn(r,e,Vt(r))),XQ=r=>wr(r,e=>te.cursor(r.lineBlockAt(e.head).from)),IQ=r=>wr(r,e=>te.cursor(r.lineBlockAt(e.head).to)),mf=({state:r,dispatch:e})=>(e(Br(r,{anchor:0})),!0),gf=({state:r,dispatch:e})=>(e(Br(r,{anchor:r.doc.length})),!0),Of=({state:r,dispatch:e})=>(e(Br(r,{anchor:r.selection.main.anchor,head:0})),!0),vf=({state:r,dispatch:e})=>(e(Br(r,{anchor:r.selection.main.anchor,head:r.doc.length})),!0),VQ=({state:r,dispatch:e})=>(e(r.update({selection:{anchor:0,head:r.doc.length},userEvent:"select"})),!0),zQ=({state:r,dispatch:e})=>{let t=yl(r).map(({from:n,to:s})=>te.range(n,Math.min(s+1,r.doc.length)));return e(r.update({selection:te.create(t),userEvent:"select"})),!0},NQ=({state:r,dispatch:e})=>{let t=Js(r.selection,n=>{let s=ht(r),i=s.resolveStack(n.from,1);if(n.empty){let o=s.resolveStack(n.from,-1);o.node.from>=i.node.from&&o.node.to<=i.node.to&&(i=o)}for(let o=i;o;o=o.next){let{node:a}=o;if((a.from<n.from&&a.to>=n.to||a.to>n.to&&a.from<=n.from)&&o.next)return te.range(a.to,a.from)}return n});return t.eq(r.selection)?!1:(e(Br(r,t)),!0)};function gO(r,e){let{state:t}=r,n=t.selection,s=t.selection.ranges.slice();for(let i of t.selection.ranges){let o=t.doc.lineAt(i.head);if(e?o.to<r.state.doc.length:o.from>0)for(let a=i;;){let l=r.moveVertically(a,e);if(l.head<o.from||l.head>o.to){s.some(c=>c.head==l.head)||s.push(l);break}else{if(l.head==a.head)break;a=l}}}return s.length==n.ranges.length?!1:(r.dispatch(Br(t,te.create(s,s.length-1))),!0)}const WQ=r=>gO(r,!1),jQ=r=>gO(r,!0),qQ=({state:r,dispatch:e})=>{let t=r.selection,n=null;return t.ranges.length>1?n=te.create([t.main]):t.main.empty||(n=te.create([te.cursor(t.main.head)])),n?(e(Br(r,n)),!0):!1};function Qo(r,e){if(r.state.readOnly)return!1;let t="delete.selection",{state:n}=r,s=n.changeByRange(i=>{let{from:o,to:a}=i;if(o==a){let l=e(i);l<o?(t="delete.backward",l=Jo(r,l,!1)):l>o&&(t="delete.forward",l=Jo(r,l,!0)),o=Math.min(o,l),a=Math.max(a,l)}else o=Jo(r,o,!1),a=Jo(r,a,!0);return o==a?{range:i}:{changes:{from:o,to:a},range:te.cursor(o,o<i.head?-1:1)}});return s.changes.empty?!1:(r.dispatch(n.update(s,{scrollIntoView:!0,userEvent:t,effects:t=="delete.selection"?ke.announce.of(n.phrase("Selection deleted")):void 0})),!0)}function Jo(r,e,t){if(r instanceof ke)for(let n of r.state.facet(ke.atomicRanges).map(s=>s(r)))n.between(e,e,(s,i)=>{s<e&&i>e&&(e=t?i:s)});return e}const OO=(r,e,t)=>Qo(r,n=>{let s=n.from,{state:i}=r,o=i.doc.lineAt(s),a,l;if(t&&!e&&s>o.from&&s<o.from+200&&!/[^ \t]/.test(a=o.text.slice(0,s-o.from))){if(a[a.length-1]==" ")return s-1;let c=_r(a,i.tabSize),u=c%Xa(i)||Xa(i);for(let h=0;h<u&&a[a.length-1-h]==" ";h++)s--;l=s}else l=Qt(o.text,s-o.from,e,e)+o.from,l==s&&o.number!=(e?i.doc.lines:1)?l+=e?1:-1:!e&&/[\ufe00-\ufe0f]/.test(o.text.slice(l-o.from,s-o.from))&&(l=Qt(o.text,l-o.from,!1,!1)+o.from);return l}),au=r=>OO(r,!1,!0),vO=r=>OO(r,!0,!1),bO=(r,e)=>Qo(r,t=>{let n=t.head,{state:s}=r,i=s.doc.lineAt(n),o=s.charCategorizer(n);for(let a=null;;){if(n==(e?i.to:i.from)){n==t.head&&i.number!=(e?s.doc.lines:1)&&(n+=e?1:-1);break}let l=Qt(i.text,n-i.from,e)+i.from,c=i.text.slice(Math.min(n,l)-i.from,Math.max(n,l)-i.from),u=o(c);if(a!=null&&u!=a)break;(c!=" "||n!=t.head)&&(a=u),n=l}return n}),xO=r=>bO(r,!1),YQ=r=>bO(r,!0),FQ=r=>Qo(r,e=>{let t=r.lineBlockAt(e.head).to;return e.head<t?t:Math.min(r.state.doc.length,e.head+1)}),UQ=r=>Qo(r,e=>{let t=r.moveToLineBoundary(e,!1).head;return e.head>t?t:Math.max(0,e.head-1)}),GQ=r=>Qo(r,e=>{let t=r.moveToLineBoundary(e,!0).head;return e.head<t?t:Math.min(r.state.doc.length,e.head+1)}),HQ=({state:r,dispatch:e})=>{if(r.readOnly)return!1;let t=r.changeByRange(n=>({changes:{from:n.from,to:n.to,insert:rt.of(["",""])},range:te.cursor(n.from)}));return e(r.update(t,{scrollIntoView:!0,userEvent:"input"})),!0},KQ=({state:r,dispatch:e})=>{if(r.readOnly)return!1;let t=r.changeByRange(n=>{if(!n.empty||n.from==0||n.from==r.doc.length)return{range:n};let s=n.from,i=r.doc.lineAt(s),o=s==i.from?s-1:Qt(i.text,s-i.from,!1)+i.from,a=s==i.to?s+1:Qt(i.text,s-i.from,!0)+i.from;return{changes:{from:o,to:a,insert:r.doc.slice(s,a).append(r.doc.slice(o,s))},range:te.cursor(a)}});return t.changes.empty?!1:(e(r.update(t,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function yl(r){let e=[],t=-1;for(let n of r.selection.ranges){let s=r.doc.lineAt(n.from),i=r.doc.lineAt(n.to);if(!n.empty&&n.to==i.from&&(i=r.doc.lineAt(n.to-1)),t>=s.number){let o=e[e.length-1];o.to=i.to,o.ranges.push(n)}else e.push({from:s.from,to:i.to,ranges:[n]});t=i.number+1}return e}function yO(r,e,t){if(r.readOnly)return!1;let n=[],s=[];for(let i of yl(r)){if(t?i.to==r.doc.length:i.from==0)continue;let o=r.doc.lineAt(t?i.to+1:i.from-1),a=o.length+1;if(t){n.push({from:i.to,to:o.to},{from:i.from,insert:o.text+r.lineBreak});for(let l of i.ranges)s.push(te.range(Math.min(r.doc.length,l.anchor+a),Math.min(r.doc.length,l.head+a)))}else{n.push({from:o.from,to:i.from},{from:i.to,insert:r.lineBreak+o.text});for(let l of i.ranges)s.push(te.range(l.anchor-a,l.head-a))}}return n.length?(e(r.update({changes:n,scrollIntoView:!0,selection:te.create(s,r.selection.mainIndex),userEvent:"move.line"})),!0):!1}const JQ=({state:r,dispatch:e})=>yO(r,e,!1),eP=({state:r,dispatch:e})=>yO(r,e,!0);function kO(r,e,t){if(r.readOnly)return!1;let n=[];for(let i of yl(r))t?n.push({from:i.from,insert:r.doc.slice(i.from,i.to)+r.lineBreak}):n.push({from:i.to,insert:r.lineBreak+r.doc.slice(i.from,i.to)});let s=r.changes(n);return e(r.update({changes:s,selection:r.selection.map(s,t?1:-1),scrollIntoView:!0,userEvent:"input.copyline"})),!0}const tP=({state:r,dispatch:e})=>kO(r,e,!1),rP=({state:r,dispatch:e})=>kO(r,e,!0),nP=r=>{if(r.state.readOnly)return!1;let{state:e}=r,t=e.changes(yl(e).map(({from:s,to:i})=>(s>0?s--:i<e.doc.length&&i++,{from:s,to:i}))),n=Js(e.selection,s=>{let i;if(r.lineWrapping){let o=r.lineBlockAt(s.head),a=r.coordsAtPos(s.head,s.assoc||1);a&&(i=o.bottom+r.documentTop-a.bottom+r.defaultLineHeight/2)}return r.moveVertically(s,!0,i)}).map(t);return r.dispatch({changes:t,selection:n,scrollIntoView:!0,userEvent:"delete.line"}),!0};function sP(r,e){if(/\(\)|\[\]|\{\}/.test(r.sliceDoc(e-1,e+1)))return{from:e,to:e};let t=ht(r).resolveInner(e),n=t.childBefore(e),s=t.childAfter(e),i;return n&&s&&n.to<=e&&s.from>=e&&(i=n.type.prop(je.closedBy))&&i.indexOf(s.name)>-1&&r.doc.lineAt(n.to).from==r.doc.lineAt(s.from).from&&!/\S/.test(r.sliceDoc(n.to,s.from))?{from:n.to,to:s.from}:null}const bf=wO(!1),iP=wO(!0);function wO(r){return({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(s=>{let{from:i,to:o}=s,a=e.doc.lineAt(i),l=!r&&i==o&&sP(e,i);r&&(i=o=(o<=a.to?a:e.doc.lineAt(o)).to);let c=new gl(e,{simulateBreak:i,simulateDoubleBreak:!!l}),u=rh(c,i);for(u==null&&(u=_r(/^\s*/.exec(e.doc.lineAt(i).text)[0],e.tabSize));o<a.to&&/\s/.test(a.text[o-a.from]);)o++;l?{from:i,to:o}=l:i>a.from&&i<a.from+100&&!/\S/.test(a.text.slice(0,i))&&(i=a.from);let h=["",ro(e,u)];return l&&h.push(ro(e,c.lineIndent(a.from,-1))),{changes:{from:i,to:o,insert:rt.of(h)},range:te.cursor(i+1+h[1].length)}});return t(e.update(n,{scrollIntoView:!0,userEvent:"input"})),!0}}function oh(r,e){let t=-1;return r.changeByRange(n=>{let s=[];for(let o=n.from;o<=n.to;){let a=r.doc.lineAt(o);a.number>t&&(n.empty||n.to>a.from)&&(e(a,s,n),t=a.number),o=a.to+1}let i=r.changes(s);return{changes:s,range:te.range(i.mapPos(n.anchor,1),i.mapPos(n.head,1))}})}const oP=({state:r,dispatch:e})=>{if(r.readOnly)return!1;let t=Object.create(null),n=new gl(r,{overrideIndentation:i=>{let o=t[i];return o??-1}}),s=oh(r,(i,o,a)=>{let l=rh(n,i.from);if(l==null)return;/\S/.test(i.text)||(l=0);let c=/^\s*/.exec(i.text)[0],u=ro(r,l);(c!=u||a.from<i.from+c.length)&&(t[i.from]=l,o.push({from:i.from,to:i.from+c.length,insert:u}))});return s.changes.empty||e(r.update(s,{userEvent:"indent"})),!0},aP=({state:r,dispatch:e})=>r.readOnly?!1:(e(r.update(oh(r,(t,n)=>{n.push({from:t.from,insert:r.facet(wo)})}),{userEvent:"input.indent"})),!0),lP=({state:r,dispatch:e})=>r.readOnly?!1:(e(r.update(oh(r,(t,n)=>{let s=/^\s*/.exec(t.text)[0];if(!s)return;let i=_r(s,r.tabSize),o=0,a=ro(r,Math.max(0,i-Xa(r)));for(;o<s.length&&o<a.length&&s.charCodeAt(o)==a.charCodeAt(o);)o++;n.push({from:t.from+o,to:t.from+s.length,insert:a.slice(o)})}),{userEvent:"delete.dedent"})),!0),cP=r=>(r.setTabFocusMode(),!0),uP=[{key:"Ctrl-b",run:eO,shift:cO,preventDefault:!0},{key:"Ctrl-f",run:tO,shift:uO},{key:"Ctrl-p",run:sO,shift:fO},{key:"Ctrl-n",run:iO,shift:pO},{key:"Ctrl-a",run:QQ,shift:XQ},{key:"Ctrl-e",run:PQ,shift:IQ},{key:"Ctrl-d",run:vO},{key:"Ctrl-h",run:au},{key:"Ctrl-k",run:FQ},{key:"Ctrl-Alt-h",run:xO},{key:"Ctrl-o",run:HQ},{key:"Ctrl-t",run:KQ},{key:"Ctrl-v",run:ou}],hP=[{key:"ArrowLeft",run:eO,shift:cO,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:vQ,shift:AQ,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:$Q,shift:DQ,preventDefault:!0},{key:"ArrowRight",run:tO,shift:uO,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:bQ,shift:_Q,preventDefault:!0},{mac:"Cmd-ArrowRight",run:CQ,shift:LQ,preventDefault:!0},{key:"ArrowUp",run:sO,shift:fO,preventDefault:!0},{mac:"Cmd-ArrowUp",run:mf,shift:Of},{mac:"Ctrl-ArrowUp",run:df,shift:ff},{key:"ArrowDown",run:iO,shift:pO,preventDefault:!0},{mac:"Cmd-ArrowDown",run:gf,shift:vf},{mac:"Ctrl-ArrowDown",run:ou,shift:pf},{key:"PageUp",run:df,shift:ff},{key:"PageDown",run:ou,shift:pf},{key:"Home",run:SQ,shift:EQ,preventDefault:!0},{key:"Mod-Home",run:mf,shift:Of},{key:"End",run:wQ,shift:ZQ,preventDefault:!0},{key:"Mod-End",run:gf,shift:vf},{key:"Enter",run:bf,shift:bf},{key:"Mod-a",run:VQ},{key:"Backspace",run:au,shift:au,preventDefault:!0},{key:"Delete",run:vO,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:xO,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:YQ,preventDefault:!0},{mac:"Mod-Backspace",run:UQ,preventDefault:!0},{mac:"Mod-Delete",run:GQ,preventDefault:!0}].concat(uP.map(r=>({mac:r.key,run:r.run,shift:r.shift}))),dP=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:yQ,shift:RQ},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:kQ,shift:BQ},{key:"Alt-ArrowUp",run:JQ},{key:"Shift-Alt-ArrowUp",run:tP},{key:"Alt-ArrowDown",run:eP},{key:"Shift-Alt-ArrowDown",run:rP},{key:"Mod-Alt-ArrowUp",run:WQ},{key:"Mod-Alt-ArrowDown",run:jQ},{key:"Escape",run:qQ},{key:"Mod-Enter",run:iP},{key:"Alt-l",mac:"Ctrl-l",run:zQ},{key:"Mod-i",run:NQ,preventDefault:!0},{key:"Mod-[",run:lP},{key:"Mod-]",run:aP},{key:"Mod-Alt-\\",run:oP},{key:"Shift-Mod-k",run:nP},{key:"Shift-Mod-\\",run:MQ},{key:"Mod-/",run:JC},{key:"Alt-A",run:tQ},{key:"Ctrl-m",mac:"Shift-Alt-m",run:cP}].concat(hP),xf=typeof String.prototype.normalize=="function"?r=>r.normalize("NFKD"):r=>r;class js{constructor(e,t,n=0,s=e.length,i,o){this.test=o,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(n,s),this.bufferStart=n,this.normalize=i?a=>i(xf(a)):xf,this.query=this.normalize(t)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return qt(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let t=Au(e),n=this.bufferStart+this.bufferPos;this.bufferPos+=qr(e);let s=this.normalize(t);if(s.length)for(let i=0,o=n;;i++){let a=s.charCodeAt(i),l=this.match(a,o,this.bufferPos+this.bufferStart);if(i==s.length-1){if(l)return this.value=l,this;break}o==n&&i<t.length&&t.charCodeAt(i)==a&&o++}}}match(e,t,n){let s=null;for(let i=0;i<this.matches.length;i+=2){let o=this.matches[i],a=!1;this.query.charCodeAt(o)==e&&(o==this.query.length-1?s={from:this.matches[i+1],to:n}:(this.matches[i]++,a=!0)),a||(this.matches.splice(i,2),i-=2)}return this.query.charCodeAt(0)==e&&(this.query.length==1?s={from:t,to:n}:this.matches.push(1,t)),s&&this.test&&!this.test(s.from,s.to,this.buffer,this.bufferStart)&&(s=null),s}}typeof Symbol<"u"&&(js.prototype[Symbol.iterator]=function(){return this});const SO={from:-1,to:-1,match:/.*/.exec("")},ah="gm"+(/x/.unicode==null?"":"u");class $O{constructor(e,t,n,s=0,i=e.length){if(this.text=e,this.to=i,this.curLine="",this.done=!1,this.value=SO,/\\[sWDnr]|\n|\r|\[\^/.test(t))return new CO(e,t,n,s,i);this.re=new RegExp(t,ah+(n?.ignoreCase?"i":"")),this.test=n?.test,this.iter=e.iter();let o=e.lineAt(s);this.curLineStart=o.from,this.matchPos=Na(e,s),this.getLine(this.curLineStart)}getLine(e){this.iter.next(e),this.iter.lineBreak?this.curLine="":(this.curLine=this.iter.value,this.curLineStart+this.curLine.length>this.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let t=this.matchPos<=this.to&&this.re.exec(this.curLine);if(t){let n=this.curLineStart+t.index,s=n+t[0].length;if(this.matchPos=Na(this.text,s+(n==s?1:0)),n==this.curLineStart+this.curLine.length&&this.nextLine(),(n<s||n>this.value.to)&&(!this.test||this.test(n,s,t)))return this.value={from:n,to:s,match:t},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length<this.to)this.nextLine(),e=0;else return this.done=!0,this}}}const Fl=new WeakMap;class _s{constructor(e,t){this.from=e,this.text=t}get to(){return this.from+this.text.length}static get(e,t,n){let s=Fl.get(e);if(!s||s.from>=n||s.to<=t){let a=new _s(t,e.sliceString(t,n));return Fl.set(e,a),a}if(s.from==t&&s.to==n)return s;let{text:i,from:o}=s;return o>t&&(i=e.sliceString(t,o)+i,o=t),s.to<n&&(i+=e.sliceString(s.to,n)),Fl.set(e,new _s(o,i)),new _s(t,i.slice(t-o,n-o))}}class CO{constructor(e,t,n,s,i){this.text=e,this.to=i,this.done=!1,this.value=SO,this.matchPos=Na(e,s),this.re=new RegExp(t,ah+(n?.ignoreCase?"i":"")),this.test=n?.test,this.flat=_s.get(e,s,this.chunkEnd(s+5e3))}chunkEnd(e){return e>=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,t=this.re.exec(this.flat.text);if(t&&!t[0]&&t.index==e&&(this.re.lastIndex=e+1,t=this.re.exec(this.flat.text)),t){let n=this.flat.from+t.index,s=n+t[0].length;if((this.flat.to>=this.to||t.index+t[0].length<=this.flat.text.length-10)&&(!this.test||this.test(n,s,t)))return this.value={from:n,to:s,match:t},this.matchPos=Na(this.text,s+(n==s?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=_s.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}typeof Symbol<"u"&&($O.prototype[Symbol.iterator]=CO.prototype[Symbol.iterator]=function(){return this});function fP(r){try{return new RegExp(r,ah),!0}catch{return!1}}function Na(r,e){if(e>=r.length)return e;let t=r.lineAt(e),n;for(;e<t.to&&(n=t.text.charCodeAt(e-t.from))>=56320&&n<57344;)e++;return e}const pP=r=>{let{state:e}=r,t=String(e.doc.lineAt(r.state.selection.main.head).number),{close:n,result:s}=M5(r,{label:e.phrase("Go to line"),input:{type:"text",name:"line",value:t},focus:!0,submitLabel:e.phrase("go")});return s.then(i=>{let o=i&&/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(i.elements.line.value);if(!o){r.dispatch({effects:n});return}let a=e.doc.lineAt(e.selection.main.head),[,l,c,u,h]=o,p=u?+u.slice(1):0,f=c?+c:a.number;if(c&&h){let y=f/100;l&&(y=y*(l=="-"?-1:1)+a.number/e.doc.lines),f=Math.round(e.doc.lines*y)}else c&&l&&(f=f*(l=="-"?-1:1)+a.number);let g=e.doc.line(Math.max(1,Math.min(e.doc.lines,f))),O=te.cursor(g.from+Math.max(0,Math.min(p,g.length)));r.dispatch({effects:[n,ke.scrollIntoView(O.from,{y:"center"})],selection:O})}),!0},mP={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},gP=$e.define({combine(r){return en(r,mP,{highlightWordAroundCursor:(e,t)=>e||t,minSelectionLength:Math.min,maxMatches:Math.min})}});function OP(r){return[kP,yP]}const vP=Ee.mark({class:"cm-selectionMatch"}),bP=Ee.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function yf(r,e,t,n){return(t==0||r(e.sliceDoc(t-1,t))!=ft.Word)&&(n==e.doc.length||r(e.sliceDoc(n,n+1))!=ft.Word)}function xP(r,e,t,n){return r(e.sliceDoc(t,t+1))==ft.Word&&r(e.sliceDoc(n-1,n))==ft.Word}const yP=Ot.fromClass(class{constructor(r){this.decorations=this.getDeco(r)}update(r){(r.selectionSet||r.docChanged||r.viewportChanged)&&(this.decorations=this.getDeco(r.view))}getDeco(r){let e=r.state.facet(gP),{state:t}=r,n=t.selection;if(n.ranges.length>1)return Ee.none;let s=n.main,i,o=null;if(s.empty){if(!e.highlightWordAroundCursor)return Ee.none;let l=t.wordAt(s.head);if(!l)return Ee.none;o=t.charCategorizer(s.head),i=t.sliceDoc(l.from,l.to)}else{let l=s.to-s.from;if(l<e.minSelectionLength||l>200)return Ee.none;if(e.wholeWords){if(i=t.sliceDoc(s.from,s.to),o=t.charCategorizer(s.head),!(yf(o,t,s.from,s.to)&&xP(o,t,s.from,s.to)))return Ee.none}else if(i=t.sliceDoc(s.from,s.to),!i)return Ee.none}let a=[];for(let l of r.visibleRanges){let c=new js(t.doc,i,l.from,l.to);for(;!c.next().done;){let{from:u,to:h}=c.value;if((!o||yf(o,t,u,h))&&(s.empty&&u<=s.from&&h>=s.to?a.push(bP.range(u,h)):(u>=s.to||h<=s.from)&&a.push(vP.range(u,h)),a.length>e.maxMatches))return Ee.none}}return Ee.set(a)}},{decorations:r=>r.decorations}),kP=ke.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),wP=({state:r,dispatch:e})=>{let{selection:t}=r,n=te.create(t.ranges.map(s=>r.wordAt(s.head)||te.cursor(s.head)),t.mainIndex);return n.eq(t)?!1:(e(r.update({selection:n})),!0)};function SP(r,e){let{main:t,ranges:n}=r.selection,s=r.wordAt(t.head),i=s&&s.from==t.from&&s.to==t.to;for(let o=!1,a=new js(r.doc,e,n[n.length-1].to);;)if(a.next(),a.done){if(o)return null;a=new js(r.doc,e,0,Math.max(0,n[n.length-1].from-1)),o=!0}else{if(o&&n.some(l=>l.from==a.value.from))continue;if(i){let l=r.wordAt(a.value.from);if(!l||l.from!=a.value.from||l.to!=a.value.to)continue}return a.value}}const $P=({state:r,dispatch:e})=>{let{ranges:t}=r.selection;if(t.some(i=>i.from===i.to))return wP({state:r,dispatch:e});let n=r.sliceDoc(t[0].from,t[0].to);if(r.selection.ranges.some(i=>r.sliceDoc(i.from,i.to)!=n))return!1;let s=SP(r,n);return s?(e(r.update({selection:r.selection.addRange(te.range(s.from,s.to),!1),effects:ke.scrollIntoView(s.to)})),!0):!1},ei=$e.define({combine(r){return en(r,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new XP(e),scrollToMatch:e=>ke.scrollIntoView(e)})}});class QO{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||fP(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord,this.test=e.test}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(t,n)=>n=="n"?`
|
|
22
|
+
`:n=="r"?"\r":n=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord&&this.test==e.test}create(){return this.regexp?new AP(this):new PP(this)}getCursor(e,t=0,n){let s=e.doc?e:Je.create({doc:e});return n==null&&(n=s.doc.length),this.regexp?ks(this,s,t,n):ys(this,s,t,n)}}class PO{constructor(e){this.spec=e}}function CP(r,e,t){return(n,s,i,o)=>{if(t&&!t(n,s,i,o))return!1;let a=n>=o&&s<=o+i.length?i.slice(n-o,s-o):e.doc.sliceString(n,s);return r(a,e,n,s)}}function ys(r,e,t,n){let s;return r.wholeWord&&(s=QP(e.doc,e.charCategorizer(e.selection.main.head))),r.test&&(s=CP(r.test,e,s)),new js(e.doc,r.unquoted,t,n,r.caseSensitive?void 0:i=>i.toLowerCase(),s)}function QP(r,e){return(t,n,s,i)=>((i>t||i+s.length<n)&&(i=Math.max(0,t-2),s=r.sliceString(i,Math.min(r.length,n+2))),(e(Wa(s,t-i))!=ft.Word||e(ja(s,t-i))!=ft.Word)&&(e(ja(s,n-i))!=ft.Word||e(Wa(s,n-i))!=ft.Word))}class PP extends PO{constructor(e){super(e)}nextMatch(e,t,n){let s=ys(this.spec,e,n,e.doc.length).nextOverlapping();if(s.done){let i=Math.min(e.doc.length,t+this.spec.unquoted.length);s=ys(this.spec,e,0,i).nextOverlapping()}return s.done||s.value.from==t&&s.value.to==n?null:s.value}prevMatchInRange(e,t,n){for(let s=n;;){let i=Math.max(t,s-1e4-this.spec.unquoted.length),o=ys(this.spec,e,i,s),a=null;for(;!o.nextOverlapping().done;)a=o.value;if(a)return a;if(i==t)return null;s-=1e4}}prevMatch(e,t,n){let s=this.prevMatchInRange(e,0,t);return s||(s=this.prevMatchInRange(e,Math.max(0,n-this.spec.unquoted.length),e.doc.length)),s&&(s.from!=t||s.to!=n)?s:null}getReplacement(e){return this.spec.unquote(this.spec.replace)}matchAll(e,t){let n=ys(this.spec,e,0,e.doc.length),s=[];for(;!n.next().done;){if(s.length>=t)return null;s.push(n.value)}return s}highlight(e,t,n,s){let i=ys(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(n+this.spec.unquoted.length,e.doc.length));for(;!i.next().done;)s(i.value.from,i.value.to)}}function TP(r,e,t){return(n,s,i)=>(!t||t(n,s,i))&&r(i[0],e,n,s)}function ks(r,e,t,n){let s;return r.wholeWord&&(s=MP(e.charCategorizer(e.selection.main.head))),r.test&&(s=TP(r.test,e,s)),new $O(e.doc,r.search,{ignoreCase:!r.caseSensitive,test:s},t,n)}function Wa(r,e){return r.slice(Qt(r,e,!1),e)}function ja(r,e){return r.slice(e,Qt(r,e))}function MP(r){return(e,t,n)=>!n[0].length||(r(Wa(n.input,n.index))!=ft.Word||r(ja(n.input,n.index))!=ft.Word)&&(r(ja(n.input,n.index+n[0].length))!=ft.Word||r(Wa(n.input,n.index+n[0].length))!=ft.Word)}class AP extends PO{nextMatch(e,t,n){let s=ks(this.spec,e,n,e.doc.length).next();return s.done&&(s=ks(this.spec,e,0,t).next()),s.done?null:s.value}prevMatchInRange(e,t,n){for(let s=1;;s++){let i=Math.max(t,n-s*1e4),o=ks(this.spec,e,i,n),a=null;for(;!o.next().done;)a=o.value;if(a&&(i==t||a.from>i+10))return a;if(i==t)return null}}prevMatch(e,t,n){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,n,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(t,n)=>{if(n=="&")return e.match[0];if(n=="$")return"$";for(let s=n.length;s>0;s--){let i=+n.slice(0,s);if(i>0&&i<e.match.length)return e.match[i]+n.slice(s)}return t})}matchAll(e,t){let n=ks(this.spec,e,0,e.doc.length),s=[];for(;!n.next().done;){if(s.length>=t)return null;s.push(n.value)}return s}highlight(e,t,n,s){let i=ks(this.spec,e,Math.max(0,t-250),Math.min(n+250,e.doc.length));for(;!i.next().done;)s(i.value.from,i.value.to)}}const no=Ne.define(),lh=Ne.define(),Rn=Tt.define({create(r){return new Ul(lu(r).create(),null)},update(r,e){for(let t of e.effects)t.is(no)?r=new Ul(t.value.create(),r.panel):t.is(lh)&&(r=new Ul(r.query,t.value?ch:null));return r},provide:r=>Hi.from(r,e=>e.panel)});class Ul{constructor(e,t){this.query=e,this.panel=t}}const _P=Ee.mark({class:"cm-searchMatch"}),RP=Ee.mark({class:"cm-searchMatch cm-searchMatch-selected"}),BP=Ot.fromClass(class{constructor(r){this.view=r,this.decorations=this.highlight(r.state.field(Rn))}update(r){let e=r.state.field(Rn);(e!=r.startState.field(Rn)||r.docChanged||r.selectionSet||r.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:r,panel:e}){if(!e||!r.spec.valid)return Ee.none;let{view:t}=this,n=new pn;for(let s=0,i=t.visibleRanges,o=i.length;s<o;s++){let{from:a,to:l}=i[s];for(;s<o-1&&l>i[s+1].from-500;)l=i[++s].to;r.highlight(t.state,a,l,(c,u)=>{let h=t.state.selection.ranges.some(p=>p.from==c&&p.to==u);n.add(c,u,h?RP:_P)})}return n.finish()}},{decorations:r=>r.decorations});function Po(r){return e=>{let t=e.state.field(Rn,!1);return t&&t.query.spec.valid?r(e,t):AO(e)}}const qa=Po((r,{query:e})=>{let{to:t}=r.state.selection.main,n=e.nextMatch(r.state,t,t);if(!n)return!1;let s=te.single(n.from,n.to),i=r.state.facet(ei);return r.dispatch({selection:s,effects:[uh(r,n),i.scrollToMatch(s.main,r)],userEvent:"select.search"}),MO(r),!0}),Ya=Po((r,{query:e})=>{let{state:t}=r,{from:n}=t.selection.main,s=e.prevMatch(t,n,n);if(!s)return!1;let i=te.single(s.from,s.to),o=r.state.facet(ei);return r.dispatch({selection:i,effects:[uh(r,s),o.scrollToMatch(i.main,r)],userEvent:"select.search"}),MO(r),!0}),ZP=Po((r,{query:e})=>{let t=e.matchAll(r.state,1e3);return!t||!t.length?!1:(r.dispatch({selection:te.create(t.map(n=>te.range(n.from,n.to))),userEvent:"select.search.matches"}),!0)}),EP=({state:r,dispatch:e})=>{let t=r.selection;if(t.ranges.length>1||t.main.empty)return!1;let{from:n,to:s}=t.main,i=[],o=0;for(let a=new js(r.doc,r.sliceDoc(n,s));!a.next().done;){if(i.length>1e3)return!1;a.value.from==n&&(o=i.length),i.push(te.range(a.value.from,a.value.to))}return e(r.update({selection:te.create(i,o),userEvent:"select.search.matches"})),!0},kf=Po((r,{query:e})=>{let{state:t}=r,{from:n,to:s}=t.selection.main;if(t.readOnly)return!1;let i=e.nextMatch(t,n,n);if(!i)return!1;let o=i,a=[],l,c,u=[];o.from==n&&o.to==s&&(c=t.toText(e.getReplacement(o)),a.push({from:o.from,to:o.to,insert:c}),o=e.nextMatch(t,o.from,o.to),u.push(ke.announce.of(t.phrase("replaced match on line $",t.doc.lineAt(n).number)+".")));let h=r.state.changes(a);return o&&(l=te.single(o.from,o.to).map(h),u.push(uh(r,o)),u.push(t.facet(ei).scrollToMatch(l.main,r))),r.dispatch({changes:h,selection:l,effects:u,userEvent:"input.replace"}),!0}),DP=Po((r,{query:e})=>{if(r.state.readOnly)return!1;let t=e.matchAll(r.state,1e9).map(s=>{let{from:i,to:o}=s;return{from:i,to:o,insert:e.getReplacement(s)}});if(!t.length)return!1;let n=r.state.phrase("replaced $ matches",t.length)+".";return r.dispatch({changes:t,effects:ke.announce.of(n),userEvent:"input.replace.all"}),!0});function ch(r){return r.state.facet(ei).createPanel(r)}function lu(r,e){var t,n,s,i,o;let a=r.selection.main,l=a.empty||a.to>a.from+100?"":r.sliceDoc(a.from,a.to);if(e&&!l)return e;let c=r.facet(ei);return new QO({search:((t=e?.literal)!==null&&t!==void 0?t:c.literal)?l:l.replace(/\n/g,"\\n"),caseSensitive:(n=e?.caseSensitive)!==null&&n!==void 0?n:c.caseSensitive,literal:(s=e?.literal)!==null&&s!==void 0?s:c.literal,regexp:(i=e?.regexp)!==null&&i!==void 0?i:c.regexp,wholeWord:(o=e?.wholeWord)!==null&&o!==void 0?o:c.wholeWord})}function TO(r){let e=Uu(r,ch);return e&&e.dom.querySelector("[main-field]")}function MO(r){let e=TO(r);e&&e==r.root.activeElement&&e.select()}const AO=r=>{let e=r.state.field(Rn,!1);if(e&&e.panel){let t=TO(r);if(t&&t!=r.root.activeElement){let n=lu(r.state,e.query.spec);n.valid&&r.dispatch({effects:no.of(n)}),t.focus(),t.select()}}else r.dispatch({effects:[lh.of(!0),e?no.of(lu(r.state,e.query.spec)):Ne.appendConfig.of(VP)]});return!0},_O=r=>{let e=r.state.field(Rn,!1);if(!e||!e.panel)return!1;let t=Uu(r,ch);return t&&t.dom.contains(r.root.activeElement)&&r.focus(),r.dispatch({effects:lh.of(!1)}),!0},LP=[{key:"Mod-f",run:AO,scope:"editor search-panel"},{key:"F3",run:qa,shift:Ya,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:qa,shift:Ya,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:_O,scope:"editor search-panel"},{key:"Mod-Shift-l",run:EP},{key:"Mod-Alt-g",run:pP},{key:"Mod-d",run:$P,preventDefault:!0}];class XP{constructor(e){this.view=e;let t=this.query=e.state.field(Rn).query.spec;this.commit=this.commit.bind(this),this.searchField=at("input",{value:t.search,placeholder:er(e,"Find"),"aria-label":er(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=at("input",{value:t.replace,placeholder:er(e,"Replace"),"aria-label":er(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=at("input",{type:"checkbox",name:"case",form:"",checked:t.caseSensitive,onchange:this.commit}),this.reField=at("input",{type:"checkbox",name:"re",form:"",checked:t.regexp,onchange:this.commit}),this.wordField=at("input",{type:"checkbox",name:"word",form:"",checked:t.wholeWord,onchange:this.commit});function n(s,i,o){return at("button",{class:"cm-button",name:s,onclick:i,type:"button"},o)}this.dom=at("div",{onkeydown:s=>this.keydown(s),class:"cm-search"},[this.searchField,n("next",()=>qa(e),[er(e,"next")]),n("prev",()=>Ya(e),[er(e,"previous")]),n("select",()=>ZP(e),[er(e,"all")]),at("label",null,[this.caseField,er(e,"match case")]),at("label",null,[this.reField,er(e,"regexp")]),at("label",null,[this.wordField,er(e,"by word")]),...e.state.readOnly?[]:[at("br"),this.replaceField,n("replace",()=>kf(e),[er(e,"replace")]),n("replaceAll",()=>DP(e),[er(e,"replace all")])],at("button",{name:"close",onclick:()=>_O(e),"aria-label":er(e,"close"),type:"button"},["×"])])}commit(){let e=new QO({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:no.of(e)}))}keydown(e){z$(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?Ya:qa)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),kf(this.view))}update(e){for(let t of e.transactions)for(let n of t.effects)n.is(no)&&!n.value.eq(this.query)&&this.setQuery(n.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(ei).top}}function er(r,e){return r.state.phrase(e)}const ea=30,ta=/[\s\.,:;?!]/;function uh(r,{from:e,to:t}){let n=r.state.doc.lineAt(e),s=r.state.doc.lineAt(t).to,i=Math.max(n.from,e-ea),o=Math.min(s,t+ea),a=r.state.sliceDoc(i,o);if(i!=n.from){for(let l=0;l<ea;l++)if(!ta.test(a[l+1])&&ta.test(a[l])){a=a.slice(l);break}}if(o!=s){for(let l=a.length-1;l>a.length-ea;l--)if(!ta.test(a[l-1])&&ta.test(a[l])){a=a.slice(0,l);break}}return ke.announce.of(`${r.state.phrase("current match")}. ${a} ${r.state.phrase("on line")} ${n.number}.`)}const IP=ke.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),VP=[Rn,On.low(BP),IP];class hh{constructor(e,t,n,s){this.state=e,this.pos=t,this.explicit=n,this.view=s,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let t=ht(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),n=Math.max(t.from,this.pos-250),s=t.text.slice(n-t.from,this.pos-t.from),i=s.search(BO(e,!1));return i<0?null:{from:n+i,to:this.pos,text:s.slice(i)}}get aborted(){return this.abortListeners==null}addEventListener(e,t,n){e=="abort"&&this.abortListeners&&(this.abortListeners.push(t),n&&n.onDocChange&&(this.abortOnDocChange=!0))}}function wf(r){let e=Object.keys(r).join(""),t=/\w/.test(e);return t&&(e=e.replace(/\w/g,"")),`[${t?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function zP(r){let e=Object.create(null),t=Object.create(null);for(let{label:s}of r){e[s[0]]=!0;for(let i=1;i<s.length;i++)t[s[i]]=!0}let n=wf(e)+wf(t)+"*$";return[new RegExp("^"+n),new RegExp(n)]}function RO(r){let e=r.map(s=>typeof s=="string"?{label:s}:s),[t,n]=e.every(s=>/^\w+$/.test(s.label))?[/\w*$/,/\w+$/]:zP(e);return s=>{let i=s.matchBefore(n);return i||s.explicit?{from:i?i.from:s.pos,options:e,validFor:t}:null}}function NP(r,e){return t=>{for(let n=ht(t.state).resolveInner(t.pos,-1);n;n=n.parent){if(r.indexOf(n.name)>-1)return null;if(n.type.isTop)break}return e(t)}}class Sf{constructor(e,t,n,s){this.completion=e,this.source=t,this.match=n,this.score=s}}function cs(r){return r.selection.main.from}function BO(r,e){var t;let{source:n}=r,s=e&&n[0]!="^",i=n[n.length-1]!="$";return!s&&!i?r:new RegExp(`${s?"^":""}(?:${n})${i?"$":""}`,(t=r.flags)!==null&&t!==void 0?t:r.ignoreCase?"i":"")}const dh=vn.define();function WP(r,e,t,n){let{main:s}=r.selection,i=t-s.from,o=n-s.from;return{...r.changeByRange(a=>{if(a!=s&&t!=n&&r.sliceDoc(a.from+i,a.from+o)!=r.sliceDoc(t,n))return{range:a};let l=r.toText(e);return{changes:{from:a.from+i,to:n==s.from?a.to:a.from+o,insert:l},range:te.cursor(a.from+i+l.length)}}),scrollIntoView:!0,userEvent:"input.complete"}}const $f=new WeakMap;function jP(r){if(!Array.isArray(r))return r;let e=$f.get(r);return e||$f.set(r,e=RO(r)),e}const Fa=Ne.define(),so=Ne.define();class qP{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let t=0;t<e.length;){let n=qt(e,t),s=qr(n);this.chars.push(n);let i=e.slice(t,t+s),o=i.toUpperCase();this.folded.push(qt(o==i?i.toLowerCase():o,0)),t+=s}this.astral=e.length!=this.chars.length}ret(e,t){return this.score=e,this.matched=t,this}match(e){if(this.pattern.length==0)return this.ret(-100,[]);if(e.length<this.pattern.length)return null;let{chars:t,folded:n,any:s,precise:i,byWord:o}=this;if(t.length==1){let C=qt(e,0),P=qr(C),A=P==e.length?0:-100;if(C!=t[0])if(C==n[0])A+=-200;else return null;return this.ret(A,[0,P])}let a=e.indexOf(this.pattern);if(a==0)return this.ret(e.length==this.pattern.length?0:-100,[0,this.pattern.length]);let l=t.length,c=0;if(a<0){for(let C=0,P=Math.min(e.length,200);C<P&&c<l;){let A=qt(e,C);(A==t[c]||A==n[c])&&(s[c++]=C),C+=qr(A)}if(c<l)return null}let u=0,h=0,p=!1,f=0,g=-1,O=-1,y=/[a-z]/.test(e),b=!0;for(let C=0,P=Math.min(e.length,200),A=0;C<P&&h<l;){let E=qt(e,C);a<0&&(u<l&&E==t[u]&&(i[u++]=C),f<l&&(E==t[f]||E==n[f]?(f==0&&(g=C),O=C+1,f++):f=0));let F,I=E<255?E>=48&&E<=57||E>=97&&E<=122?2:E>=65&&E<=90?1:0:(F=Au(E))!=F.toLowerCase()?1:F!=F.toUpperCase()?2:0;(!C||I==1&&y||A==0&&I!=0)&&(t[h]==E||n[h]==E&&(p=!0)?o[h++]=C:o.length&&(b=!1)),A=I,C+=qr(E)}return h==l&&o[0]==0&&b?this.result(-100+(p?-200:0),o,e):f==l&&g==0?this.ret(-200-e.length+(O==e.length?0:-100),[0,O]):a>-1?this.ret(-700-e.length,[a,a+this.pattern.length]):f==l?this.ret(-900-e.length,[g,O]):h==l?this.result(-100+(p?-200:0)+-700+(b?0:-1100),o,e):t.length==2?null:this.result((s[0]?-700:0)+-200+-1100,s,e)}result(e,t,n){let s=[],i=0;for(let o of t){let a=o+(this.astral?qr(qt(n,o)):1);i&&s[i-1]==o?s[i-1]=a:(s[i++]=o,s[i++]=a)}return this.ret(e-n.length,s)}}class YP{constructor(e){this.pattern=e,this.matched=[],this.score=0,this.folded=e.toLowerCase()}match(e){if(e.length<this.pattern.length)return null;let t=e.slice(0,this.pattern.length),n=t==this.pattern?0:t.toLowerCase()==this.folded?-200:null;return n==null?null:(this.matched=[0,t.length],this.score=n+(e.length==this.pattern.length?0:-100),this)}}const Ct=$e.define({combine(r){return en(r,{activateOnTyping:!0,activateOnCompletion:()=>!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:FP,filterStrict:!1,compareCompletions:(e,t)=>(e.sortText||e.label).localeCompare(t.sortText||t.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(e,t)=>e&&t,closeOnBlur:(e,t)=>e&&t,icons:(e,t)=>e&&t,tooltipClass:(e,t)=>n=>Cf(e(n),t(n)),optionClass:(e,t)=>n=>Cf(e(n),t(n)),addToOptions:(e,t)=>e.concat(t),filterStrict:(e,t)=>e||t})}});function Cf(r,e){return r?e?r+" "+e:r:e}function FP(r,e,t,n,s,i){let o=r.textDirection==ut.RTL,a=o,l=!1,c="top",u,h,p=e.left-s.left,f=s.right-e.right,g=n.right-n.left,O=n.bottom-n.top;if(a&&p<Math.min(g,f)?a=!1:!a&&f<Math.min(g,p)&&(a=!0),g<=(a?p:f))u=Math.max(s.top,Math.min(t.top,s.bottom-O))-e.top,h=Math.min(400,a?p:f);else{l=!0,h=Math.min(400,(o?e.right:s.right-e.left)-30);let C=s.bottom-e.bottom;C>=O||C>e.top?u=t.bottom-e.top:(c="bottom",u=e.bottom-t.top)}let y=(e.bottom-e.top)/i.offsetHeight,b=(e.right-e.left)/i.offsetWidth;return{style:`${c}: ${u/y}px; max-width: ${h/b}px`,class:"cm-completionInfo-"+(l?o?"left-narrow":"right-narrow":a?"left":"right")}}function UP(r){let e=r.addToOptions.slice();return r.icons&&e.push({render(t){let n=document.createElement("div");return n.classList.add("cm-completionIcon"),t.type&&n.classList.add(...t.type.split(/\s+/g).map(s=>"cm-completionIcon-"+s)),n.setAttribute("aria-hidden","true"),n},position:20}),e.push({render(t,n,s,i){let o=document.createElement("span");o.className="cm-completionLabel";let a=t.displayLabel||t.label,l=0;for(let c=0;c<i.length;){let u=i[c++],h=i[c++];u>l&&o.appendChild(document.createTextNode(a.slice(l,u)));let p=o.appendChild(document.createElement("span"));p.appendChild(document.createTextNode(a.slice(u,h))),p.className="cm-completionMatchedText",l=h}return l<a.length&&o.appendChild(document.createTextNode(a.slice(l))),o},position:50},{render(t){if(!t.detail)return null;let n=document.createElement("span");return n.className="cm-completionDetail",n.textContent=t.detail,n},position:80}),e.sort((t,n)=>t.position-n.position).map(t=>t.render)}function Gl(r,e,t){if(r<=t)return{from:0,to:r};if(e<0&&(e=0),e<=r>>1){let s=Math.floor(e/t);return{from:s*t,to:(s+1)*t}}let n=Math.floor((r-e)/t);return{from:r-(n+1)*t,to:r-n*t}}class GP{constructor(e,t,n){this.view=e,this.stateField=t,this.applyCompletion=n,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:l=>this.placeInfo(l),key:this},this.space=null,this.currentClass="";let s=e.state.field(t),{options:i,selected:o}=s.open,a=e.state.facet(Ct);this.optionContent=UP(a),this.optionClass=a.optionClass,this.tooltipClass=a.tooltipClass,this.range=Gl(i.length,o,a.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",l=>{let{options:c}=e.state.field(t).open;for(let u=l.target,h;u&&u!=this.dom;u=u.parentNode)if(u.nodeName=="LI"&&(h=/-(\d+)$/.exec(u.id))&&+h[1]<c.length){this.applyCompletion(e,c[+h[1]]),l.preventDefault();return}}),this.dom.addEventListener("focusout",l=>{let c=e.state.field(this.stateField,!1);c&&c.tooltip&&e.state.facet(Ct).closeOnBlur&&l.relatedTarget!=e.contentDOM&&e.dispatch({effects:so.of(null)})}),this.showOptions(i,s.id)}mount(){this.updateSel()}showOptions(e,t){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(e,t,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(e){var t;let n=e.state.field(this.stateField),s=e.startState.field(this.stateField);if(this.updateTooltipClass(e.state),n!=s){let{options:i,selected:o,disabled:a}=n.open;(!s.open||s.open.options!=i)&&(this.range=Gl(i.length,o,e.state.facet(Ct).maxRenderedOptions),this.showOptions(i,n.id)),this.updateSel(),a!=((t=s.open)===null||t===void 0?void 0:t.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!a)}}updateTooltipClass(e){let t=this.tooltipClass(e);if(t!=this.currentClass){for(let n of this.currentClass.split(" "))n&&this.dom.classList.remove(n);for(let n of t.split(" "))n&&this.dom.classList.add(n);this.currentClass=t}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),t=e.open;(t.selected>-1&&t.selected<this.range.from||t.selected>=this.range.to)&&(this.range=Gl(t.options.length,t.selected,this.view.state.facet(Ct).maxRenderedOptions),this.showOptions(t.options,e.id));let n=this.updateSelectedOption(t.selected);if(n){this.destroyInfo();let{completion:s}=t.options[t.selected],{info:i}=s;if(!i)return;let o=typeof i=="string"?document.createTextNode(i):i(s);if(!o)return;"then"in o?o.then(a=>{a&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(a,s)}).catch(a=>Gt(this.view.state,a,"completion info")):(this.addInfoPane(o,s),n.setAttribute("aria-describedby",this.info.id))}}addInfoPane(e,t){this.destroyInfo();let n=this.info=document.createElement("div");if(n.className="cm-tooltip cm-completionInfo",n.id="cm-completionInfo-"+Math.floor(Math.random()*65535).toString(16),e.nodeType!=null)n.appendChild(e),this.infoDestroy=null;else{let{dom:s,destroy:i}=e;n.appendChild(s),this.infoDestroy=i||null}this.dom.appendChild(n),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let t=null;for(let n=this.list.firstChild,s=this.range.from;n;n=n.nextSibling,s++)n.nodeName!="LI"||!n.id?s--:s==e?n.hasAttribute("aria-selected")||(n.setAttribute("aria-selected","true"),t=n):n.hasAttribute("aria-selected")&&(n.removeAttribute("aria-selected"),n.removeAttribute("aria-describedby"));return t&&KP(this.list,t),t}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let t=this.dom.getBoundingClientRect(),n=this.info.getBoundingClientRect(),s=e.getBoundingClientRect(),i=this.space;if(!i){let o=this.dom.ownerDocument.documentElement;i={left:0,top:0,right:o.clientWidth,bottom:o.clientHeight}}return s.top>Math.min(i.bottom,t.bottom)-10||s.bottom<Math.max(i.top,t.top)+10?null:this.view.state.facet(Ct).positionInfo(this.view,t,s,n,i,this.dom)}placeInfo(e){this.info&&(e?(e.style&&(this.info.style.cssText=e.style),this.info.className="cm-tooltip cm-completionInfo "+(e.class||"")):this.info.style.cssText="top: -1e6px")}createListBox(e,t,n){const s=document.createElement("ul");s.id=t,s.setAttribute("role","listbox"),s.setAttribute("aria-expanded","true"),s.setAttribute("aria-label",this.view.state.phrase("Completions")),s.addEventListener("mousedown",o=>{o.target==s&&o.preventDefault()});let i=null;for(let o=n.from;o<n.to;o++){let{completion:a,match:l}=e[o],{section:c}=a;if(c){let p=typeof c=="string"?c:c.name;if(p!=i&&(o>n.from||n.from==0))if(i=p,typeof c!="string"&&c.header)s.appendChild(c.header(c));else{let f=s.appendChild(document.createElement("completion-section"));f.textContent=p}}const u=s.appendChild(document.createElement("li"));u.id=t+"-"+o,u.setAttribute("role","option");let h=this.optionClass(a);h&&(u.className=h);for(let p of this.optionContent){let f=p(a,this.view.state,this.view,l);f&&u.appendChild(f)}}return n.from&&s.classList.add("cm-completionListIncompleteTop"),n.to<e.length&&s.classList.add("cm-completionListIncompleteBottom"),s}destroyInfo(){this.info&&(this.infoDestroy&&this.infoDestroy(),this.info.remove(),this.info=null)}destroy(){this.destroyInfo()}}function HP(r,e){return t=>new GP(t,r,e)}function KP(r,e){let t=r.getBoundingClientRect(),n=e.getBoundingClientRect(),s=t.height/r.offsetHeight;n.top<t.top?r.scrollTop-=(t.top-n.top)/s:n.bottom>t.bottom&&(r.scrollTop+=(n.bottom-t.bottom)/s)}function Qf(r){return(r.boost||0)*100+(r.apply?10:0)+(r.info?5:0)+(r.type?1:0)}function JP(r,e){let t=[],n=null,s=null,i=u=>{t.push(u);let{section:h}=u.completion;if(h){n||(n=[]);let p=typeof h=="string"?h:h.name;n.some(f=>f.name==p)||n.push(typeof h=="string"?{name:p}:h)}},o=e.facet(Ct);for(let u of r)if(u.hasResult()){let h=u.result.getMatch;if(u.result.filter===!1)for(let p of u.result.options)i(new Sf(p,u.source,h?h(p):[],1e9-t.length));else{let p=e.sliceDoc(u.from,u.to),f,g=o.filterStrict?new YP(p):new qP(p);for(let O of u.result.options)if(f=g.match(O.label)){let y=O.displayLabel?h?h(O,f.matched):[]:f.matched,b=f.score+(O.boost||0);if(i(new Sf(O,u.source,y,b)),typeof O.section=="object"&&O.section.rank==="dynamic"){let{name:C}=O.section;s||(s=Object.create(null)),s[C]=Math.max(b,s[C]||-1e9)}}}}if(n){let u=Object.create(null),h=0,p=(f,g)=>(f.rank==="dynamic"&&g.rank==="dynamic"?s[g.name]-s[f.name]:0)||(typeof f.rank=="number"?f.rank:1e9)-(typeof g.rank=="number"?g.rank:1e9)||(f.name<g.name?-1:1);for(let f of n.sort(p))h-=1e5,u[f.name]=h;for(let f of t){let{section:g}=f.completion;g&&(f.score+=u[typeof g=="string"?g:g.name])}}let a=[],l=null,c=o.compareCompletions;for(let u of t.sort((h,p)=>p.score-h.score||c(h.completion,p.completion))){let h=u.completion;!l||l.label!=h.label||l.detail!=h.detail||l.type!=null&&h.type!=null&&l.type!=h.type||l.apply!=h.apply||l.boost!=h.boost?a.push(u):Qf(u.completion)>Qf(l)&&(a[a.length-1]=u),l=u.completion}return a}class Cs{constructor(e,t,n,s,i,o){this.options=e,this.attrs=t,this.tooltip=n,this.timestamp=s,this.selected=i,this.disabled=o}setSelected(e,t){return e==this.selected||e>=this.options.length?this:new Cs(this.options,Pf(t,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,t,n,s,i,o){if(s&&!o&&e.some(c=>c.isPending))return s.setDisabled();let a=JP(e,t);if(!a.length)return s&&e.some(c=>c.isPending)?s.setDisabled():null;let l=t.facet(Ct).selectOnOpen?0:-1;if(s&&s.selected!=l&&s.selected!=-1){let c=s.options[s.selected].completion;for(let u=0;u<a.length;u++)if(a[u].completion==c){l=u;break}}return new Cs(a,Pf(n,l),{pos:e.reduce((c,u)=>u.hasResult()?Math.min(c,u.from):c,1e8),create:i3,above:i.aboveCursor},s?s.timestamp:Date.now(),l,!1)}map(e){return new Cs(this.options,this.attrs,{...this.tooltip,pos:e.mapPos(this.tooltip.pos)},this.timestamp,this.selected,this.disabled)}setDisabled(){return new Cs(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}}class Ua{constructor(e,t,n){this.active=e,this.id=t,this.open=n}static start(){return new Ua(n3,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:t}=e,n=t.facet(Ct),i=(n.override||t.languageDataAt("autocomplete",cs(t)).map(jP)).map(l=>(this.active.find(u=>u.source==l)||new vr(l,this.active.some(u=>u.state!=0)?1:0)).update(e,n));i.length==this.active.length&&i.every((l,c)=>l==this.active[c])&&(i=this.active);let o=this.open,a=e.effects.some(l=>l.is(fh));o&&e.docChanged&&(o=o.map(e.changes)),e.selection||i.some(l=>l.hasResult()&&e.changes.touchesRange(l.from,l.to))||!e3(i,this.active)||a?o=Cs.build(i,t,this.id,o,n,a):o&&o.disabled&&!i.some(l=>l.isPending)&&(o=null),!o&&i.every(l=>!l.isPending)&&i.some(l=>l.hasResult())&&(i=i.map(l=>l.hasResult()?new vr(l.source,0):l));for(let l of e.effects)l.is(EO)&&(o=o&&o.setSelected(l.value,this.id));return i==this.active&&o==this.open?this:new Ua(i,this.id,o)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?t3:r3}}function e3(r,e){if(r==e)return!0;for(let t=0,n=0;;){for(;t<r.length&&!r[t].hasResult();)t++;for(;n<e.length&&!e[n].hasResult();)n++;let s=t==r.length,i=n==e.length;if(s||i)return s==i;if(r[t++].result!=e[n++].result)return!1}}const t3={"aria-autocomplete":"list"},r3={};function Pf(r,e){let t={"aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":r};return e>-1&&(t["aria-activedescendant"]=r+"-"+e),t}const n3=[];function ZO(r,e){if(r.isUserEvent("input.complete")){let n=r.annotation(dh);if(n&&e.activateOnCompletion(n))return 12}let t=r.isUserEvent("input.type");return t&&e.activateOnTyping?5:t?1:r.isUserEvent("delete.backward")?2:r.selection?8:r.docChanged?16:0}class vr{constructor(e,t,n=!1){this.source=e,this.state=t,this.explicit=n}hasResult(){return!1}get isPending(){return this.state==1}update(e,t){let n=ZO(e,t),s=this;(n&8||n&16&&this.touches(e))&&(s=new vr(s.source,0)),n&4&&s.state==0&&(s=new vr(this.source,1)),s=s.updateFor(e,n);for(let i of e.effects)if(i.is(Fa))s=new vr(s.source,1,i.value);else if(i.is(so))s=new vr(s.source,0);else if(i.is(fh))for(let o of i.value)o.source==s.source&&(s=o);return s}updateFor(e,t){return this.map(e.changes)}map(e){return this}touches(e){return e.changes.touchesRange(cs(e.state))}}class Rs extends vr{constructor(e,t,n,s,i,o){super(e,3,t),this.limit=n,this.result=s,this.from=i,this.to=o}hasResult(){return!0}updateFor(e,t){var n;if(!(t&3))return this.map(e.changes);let s=this.result;s.map&&!e.changes.empty&&(s=s.map(s,e.changes));let i=e.changes.mapPos(this.from),o=e.changes.mapPos(this.to,1),a=cs(e.state);if(a>o||!s||t&2&&(cs(e.startState)==this.from||a<this.limit))return new vr(this.source,t&4?1:0);let l=e.changes.mapPos(this.limit);return s3(s.validFor,e.state,i,o)?new Rs(this.source,this.explicit,l,s,i,o):s.update&&(s=s.update(s,i,o,new hh(e.state,a,!1)))?new Rs(this.source,this.explicit,l,s,s.from,(n=s.to)!==null&&n!==void 0?n:cs(e.state)):new vr(this.source,1,this.explicit)}map(e){return e.empty?this:(this.result.map?this.result.map(this.result,e):this.result)?new Rs(this.source,this.explicit,e.mapPos(this.limit),this.result,e.mapPos(this.from),e.mapPos(this.to,1)):new vr(this.source,0)}touches(e){return e.changes.touchesRange(this.from,this.to)}}function s3(r,e,t,n){if(!r)return!1;let s=e.sliceDoc(t,n);return typeof r=="function"?r(s,t,n,e):BO(r,!0).test(s)}const fh=Ne.define({map(r,e){return r.map(t=>t.map(e))}}),EO=Ne.define(),Yt=Tt.define({create(){return Ua.start()},update(r,e){return r.update(e)},provide:r=>[Fu.from(r,e=>e.tooltip),ke.contentAttributes.from(r,e=>e.attrs)]});function ph(r,e){const t=e.completion.apply||e.completion.label;let n=r.state.field(Yt).active.find(s=>s.source==e.source);return n instanceof Rs?(typeof t=="string"?r.dispatch({...WP(r.state,t,n.from,n.to),annotations:dh.of(e.completion)}):t(r,e.completion,n.from,n.to),!0):!1}const i3=HP(Yt,ph);function ra(r,e="option"){return t=>{let n=t.state.field(Yt,!1);if(!n||!n.open||n.open.disabled||Date.now()-n.open.timestamp<t.state.facet(Ct).interactionDelay)return!1;let s=1,i;e=="page"&&(i=mg(t,n.open.tooltip))&&(s=Math.max(2,Math.floor(i.dom.offsetHeight/i.dom.querySelector("li").offsetHeight)-1));let{length:o}=n.open.options,a=n.open.selected>-1?n.open.selected+s*(r?1:-1):r?0:o-1;return a<0?a=e=="page"?0:o-1:a>=o&&(a=e=="page"?o-1:0),t.dispatch({effects:EO.of(a)}),!0}}const o3=r=>{let e=r.state.field(Yt,!1);return r.state.readOnly||!e||!e.open||e.open.selected<0||e.open.disabled||Date.now()-e.open.timestamp<r.state.facet(Ct).interactionDelay?!1:ph(r,e.open.options[e.open.selected])},Hl=r=>r.state.field(Yt,!1)?(r.dispatch({effects:Fa.of(!0)}),!0):!1,a3=r=>{let e=r.state.field(Yt,!1);return!e||!e.active.some(t=>t.state!=0)?!1:(r.dispatch({effects:so.of(null)}),!0)};class l3{constructor(e,t){this.active=e,this.context=t,this.time=Date.now(),this.updates=[],this.done=void 0}}const c3=50,u3=1e3,h3=Ot.fromClass(class{constructor(r){this.view=r,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let e of r.state.field(Yt).active)e.isPending&&this.startQuery(e)}update(r){let e=r.state.field(Yt),t=r.state.facet(Ct);if(!r.selectionSet&&!r.docChanged&&r.startState.field(Yt)==e)return;let n=r.transactions.some(i=>{let o=ZO(i,t);return o&8||(i.selection||i.docChanged)&&!(o&3)});for(let i=0;i<this.running.length;i++){let o=this.running[i];if(n||o.context.abortOnDocChange&&r.docChanged||o.updates.length+r.transactions.length>c3&&Date.now()-o.time>u3){for(let a of o.context.abortListeners)try{a()}catch(l){Gt(this.view.state,l)}o.context.abortListeners=null,this.running.splice(i--,1)}else o.updates.push(...r.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),r.transactions.some(i=>i.effects.some(o=>o.is(Fa)))&&(this.pendingStart=!0);let s=this.pendingStart?50:t.activateOnTypingDelay;if(this.debounceUpdate=e.active.some(i=>i.isPending&&!this.running.some(o=>o.active.source==i.source))?setTimeout(()=>this.startUpdate(),s):-1,this.composing!=0)for(let i of r.transactions)i.isUserEvent("input.type")?this.composing=2:this.composing==2&&i.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:r}=this.view,e=r.field(Yt);for(let t of e.active)t.isPending&&!this.running.some(n=>n.active.source==t.source)&&this.startQuery(t);this.running.length&&e.open&&e.open.disabled&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(Ct).updateSyncTime))}startQuery(r){let{state:e}=this.view,t=cs(e),n=new hh(e,t,r.explicit,this.view),s=new l3(r,n);this.running.push(s),Promise.resolve(r.source(n)).then(i=>{s.context.aborted||(s.done=i||null,this.scheduleAccept())},i=>{this.view.dispatch({effects:so.of(null)}),Gt(this.view.state,i)})}scheduleAccept(){this.running.every(r=>r.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(Ct).updateSyncTime))}accept(){var r;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],t=this.view.state.facet(Ct),n=this.view.state.field(Yt);for(let s=0;s<this.running.length;s++){let i=this.running[s];if(i.done===void 0)continue;if(this.running.splice(s--,1),i.done){let a=cs(i.updates.length?i.updates[0].startState:this.view.state),l=Math.min(a,i.done.from+(i.active.explicit?0:1)),c=new Rs(i.active.source,i.active.explicit,l,i.done,i.done.from,(r=i.done.to)!==null&&r!==void 0?r:a);for(let u of i.updates)c=c.update(u,t);if(c.hasResult()){e.push(c);continue}}let o=n.active.find(a=>a.source==i.active.source);if(o&&o.isPending)if(i.done==null){let a=new vr(i.active.source,0);for(let l of i.updates)a=a.update(l,t);a.isPending||e.push(a)}else this.startQuery(o)}(e.length||n.open&&n.open.disabled)&&this.view.dispatch({effects:fh.of(e)})}},{eventHandlers:{blur(r){let e=this.view.state.field(Yt,!1);if(e&&e.tooltip&&this.view.state.facet(Ct).closeOnBlur){let t=e.open&&mg(this.view,e.open.tooltip);(!t||!t.dom.contains(r.relatedTarget))&&setTimeout(()=>this.view.dispatch({effects:so.of(null)}),10)}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:Fa.of(!1)}),20),this.composing=0}}}),d3=typeof navigator=="object"&&/Win/.test(navigator.platform),f3=On.highest(ke.domEventHandlers({keydown(r,e){let t=e.state.field(Yt,!1);if(!t||!t.open||t.open.disabled||t.open.selected<0||r.key.length>1||r.ctrlKey&&!(d3&&r.altKey)||r.metaKey)return!1;let n=t.open.options[t.open.selected],s=t.active.find(o=>o.source==n.source),i=n.completion.commitCharacters||s.result.commitCharacters;return i&&i.indexOf(r.key)>-1&&ph(e,n),!1}})),DO=ke.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"···"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});class p3{constructor(e,t,n,s){this.field=e,this.line=t,this.from=n,this.to=s}}class mh{constructor(e,t,n){this.field=e,this.from=t,this.to=n}map(e){let t=e.mapPos(this.from,-1,Rt.TrackDel),n=e.mapPos(this.to,1,Rt.TrackDel);return t==null||n==null?null:new mh(this.field,t,n)}}class gh{constructor(e,t){this.lines=e,this.fieldPositions=t}instantiate(e,t){let n=[],s=[t],i=e.doc.lineAt(t),o=/^\s*/.exec(i.text)[0];for(let l of this.lines){if(n.length){let c=o,u=/^\t*/.exec(l)[0].length;for(let h=0;h<u;h++)c+=e.facet(wo);s.push(t+c.length-u),l=c+l.slice(u)}n.push(l),t+=l.length+1}let a=this.fieldPositions.map(l=>new mh(l.field,s[l.line]+l.from,s[l.line]+l.to));return{text:n,ranges:a}}static parse(e){let t=[],n=[],s=[],i;for(let o of e.split(/\r\n?|\n/)){for(;i=/[#$]\{(?:(\d+)(?::([^{}]*))?|((?:\\[{}]|[^{}])*))\}/.exec(o);){let a=i[1]?+i[1]:null,l=i[2]||i[3]||"",c=-1,u=l.replace(/\\[{}]/g,h=>h[1]);for(let h=0;h<t.length;h++)(a!=null?t[h].seq==a:u&&t[h].name==u)&&(c=h);if(c<0){let h=0;for(;h<t.length&&(a==null||t[h].seq!=null&&t[h].seq<a);)h++;t.splice(h,0,{seq:a,name:u}),c=h;for(let p of s)p.field>=c&&p.field++}for(let h of s)if(h.line==n.length&&h.from>i.index){let p=i[2]?3+(i[1]||"").length:2;h.from-=p,h.to-=p}s.push(new p3(c,n.length,i.index,i.index+u.length)),o=o.slice(0,i.index)+l+o.slice(i.index+i[0].length)}o=o.replace(/\\([{}])/g,(a,l,c)=>{for(let u of s)u.line==n.length&&u.from>c&&(u.from--,u.to--);return l}),n.push(o)}return new gh(n,s)}}let m3=Ee.widget({widget:new class extends tn{toDOM(){let r=document.createElement("span");return r.className="cm-snippetFieldPosition",r}ignoreEvent(){return!1}}}),g3=Ee.mark({class:"cm-snippetField"});class ti{constructor(e,t){this.ranges=e,this.active=t,this.deco=Ee.set(e.map(n=>(n.from==n.to?m3:g3).range(n.from,n.to)),!0)}map(e){let t=[];for(let n of this.ranges){let s=n.map(e);if(!s)return null;t.push(s)}return new ti(t,this.active)}selectionInsideField(e){return e.ranges.every(t=>this.ranges.some(n=>n.field==this.active&&n.from<=t.from&&n.to>=t.to))}}const To=Ne.define({map(r,e){return r&&r.map(e)}}),O3=Ne.define(),io=Tt.define({create(){return null},update(r,e){for(let t of e.effects){if(t.is(To))return t.value;if(t.is(O3)&&r)return new ti(r.ranges,t.value)}return r&&e.docChanged&&(r=r.map(e.changes)),r&&e.selection&&!r.selectionInsideField(e.selection)&&(r=null),r},provide:r=>ke.decorations.from(r,e=>e?e.deco:Ee.none)});function Oh(r,e){return te.create(r.filter(t=>t.field==e).map(t=>te.range(t.from,t.to)))}function v3(r){let e=gh.parse(r);return(t,n,s,i)=>{let{text:o,ranges:a}=e.instantiate(t.state,s),{main:l}=t.state.selection,c={changes:{from:s,to:i==l.from?l.to:i,insert:rt.of(o)},scrollIntoView:!0,annotations:n?[dh.of(n),vt.userEvent.of("input.complete")]:void 0};if(a.length&&(c.selection=Oh(a,0)),a.some(u=>u.field>0)){let u=new ti(a,0),h=c.effects=[To.of(u)];t.state.field(io,!1)===void 0&&h.push(Ne.appendConfig.of([io,w3,S3,DO]))}t.dispatch(t.state.update(c))}}function LO(r){return({state:e,dispatch:t})=>{let n=e.field(io,!1);if(!n||r<0&&n.active==0)return!1;let s=n.active+r,i=r>0&&!n.ranges.some(o=>o.field==s+r);return t(e.update({selection:Oh(n.ranges,s),effects:To.of(i?null:new ti(n.ranges,s)),scrollIntoView:!0})),!0}}const b3=({state:r,dispatch:e})=>r.field(io,!1)?(e(r.update({effects:To.of(null)})),!0):!1,x3=LO(1),y3=LO(-1),k3=[{key:"Tab",run:x3,shift:y3},{key:"Escape",run:b3}],Tf=$e.define({combine(r){return r.length?r[0]:k3}}),w3=On.highest(xo.compute([Tf],r=>r.facet(Tf)));function jt(r,e){return{...e,apply:v3(r)}}const S3=ke.domEventHandlers({mousedown(r,e){let t=e.state.field(io,!1),n;if(!t||(n=e.posAtCoords({x:r.clientX,y:r.clientY}))==null)return!1;let s=t.ranges.find(i=>i.from<=n&&i.to>=n);return!s||s.field==t.active?!1:(e.dispatch({selection:Oh(t.ranges,s.field),effects:To.of(t.ranges.some(i=>i.field>s.field)?new ti(t.ranges,s.field):null),scrollIntoView:!0}),!0)}}),oo={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},is=Ne.define({map(r,e){let t=e.mapPos(r,-1,Rt.TrackAfter);return t??void 0}}),vh=new class extends Bn{};vh.startSide=1;vh.endSide=-1;const XO=Tt.define({create(){return Ke.empty},update(r,e){if(r=r.map(e.changes),e.selection){let t=e.state.doc.lineAt(e.selection.main.head);r=r.update({filter:n=>n>=t.from&&n<=t.to})}for(let t of e.effects)t.is(is)&&(r=r.update({add:[vh.range(t.value,t.value+1)]}));return r}});function $3(){return[Q3,XO]}const Kl="()[]{}<>«»»«[]{}";function IO(r){for(let e=0;e<Kl.length;e+=2)if(Kl.charCodeAt(e)==r)return Kl.charAt(e+1);return Au(r<128?r:r+1)}function VO(r,e){return r.languageDataAt("closeBrackets",e)[0]||oo}const C3=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),Q3=ke.inputHandler.of((r,e,t,n)=>{if((C3?r.composing:r.compositionStarted)||r.state.readOnly)return!1;let s=r.state.selection.main;if(n.length>2||n.length==2&&qr(qt(n,0))==1||e!=s.from||t!=s.to)return!1;let i=M3(r.state,n);return i?(r.dispatch(i),!0):!1}),P3=({state:r,dispatch:e})=>{if(r.readOnly)return!1;let n=VO(r,r.selection.main.head).brackets||oo.brackets,s=null,i=r.changeByRange(o=>{if(o.empty){let a=A3(r.doc,o.head);for(let l of n)if(l==a&&kl(r.doc,o.head)==IO(qt(l,0)))return{changes:{from:o.head-l.length,to:o.head+l.length},range:te.cursor(o.head-l.length)}}return{range:s=o}});return s||e(r.update(i,{scrollIntoView:!0,userEvent:"delete.backward"})),!s},T3=[{key:"Backspace",run:P3}];function M3(r,e){let t=VO(r,r.selection.main.head),n=t.brackets||oo.brackets;for(let s of n){let i=IO(qt(s,0));if(e==s)return i==s?B3(r,s,n.indexOf(s+s+s)>-1,t):_3(r,s,i,t.before||oo.before);if(e==i&&zO(r,r.selection.main.from))return R3(r,s,i)}return null}function zO(r,e){let t=!1;return r.field(XO).between(0,r.doc.length,n=>{n==e&&(t=!0)}),t}function kl(r,e){let t=r.sliceString(e,e+2);return t.slice(0,qr(qt(t,0)))}function A3(r,e){let t=r.sliceString(e-2,e);return qr(qt(t,0))==t.length?t:t.slice(1)}function _3(r,e,t,n){let s=null,i=r.changeByRange(o=>{if(!o.empty)return{changes:[{insert:e,from:o.from},{insert:t,from:o.to}],effects:is.of(o.to+e.length),range:te.range(o.anchor+e.length,o.head+e.length)};let a=kl(r.doc,o.head);return!a||/\s/.test(a)||n.indexOf(a)>-1?{changes:{insert:e+t,from:o.head},effects:is.of(o.head+e.length),range:te.cursor(o.head+e.length)}:{range:s=o}});return s?null:r.update(i,{scrollIntoView:!0,userEvent:"input.type"})}function R3(r,e,t){let n=null,s=r.changeByRange(i=>i.empty&&kl(r.doc,i.head)==t?{changes:{from:i.head,to:i.head+t.length,insert:t},range:te.cursor(i.head+t.length)}:n={range:i});return n?null:r.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function B3(r,e,t,n){let s=n.stringPrefixes||oo.stringPrefixes,i=null,o=r.changeByRange(a=>{if(!a.empty)return{changes:[{insert:e,from:a.from},{insert:e,from:a.to}],effects:is.of(a.to+e.length),range:te.range(a.anchor+e.length,a.head+e.length)};let l=a.head,c=kl(r.doc,l),u;if(c==e){if(Mf(r,l))return{changes:{insert:e+e,from:l},effects:is.of(l+e.length),range:te.cursor(l+e.length)};if(zO(r,l)){let p=t&&r.sliceDoc(l,l+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:l,to:l+p.length,insert:p},range:te.cursor(l+p.length)}}}else{if(t&&r.sliceDoc(l-2*e.length,l)==e+e&&(u=Af(r,l-2*e.length,s))>-1&&Mf(r,u))return{changes:{insert:e+e+e+e,from:l},effects:is.of(l+e.length),range:te.cursor(l+e.length)};if(r.charCategorizer(l)(c)!=ft.Word&&Af(r,l,s)>-1&&!Z3(r,l,e,s))return{changes:{insert:e+e,from:l},effects:is.of(l+e.length),range:te.cursor(l+e.length)}}return{range:i=a}});return i?null:r.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function Mf(r,e){let t=ht(r).resolveInner(e+1);return t.parent&&t.from==e}function Z3(r,e,t,n){let s=ht(r).resolveInner(e,-1),i=n.reduce((o,a)=>Math.max(o,a.length),0);for(let o=0;o<5;o++){let a=r.sliceDoc(s.from,Math.min(s.to,s.from+t.length+i)),l=a.indexOf(t);if(!l||l>-1&&n.indexOf(a.slice(0,l))>-1){let u=s.firstChild;for(;u&&u.from==s.from&&u.to-u.from>t.length+l;){if(r.sliceDoc(u.to-t.length,u.to)==t)return!1;u=u.firstChild}return!0}let c=s.to==e&&s.parent;if(!c)break;s=c}return!1}function Af(r,e,t){let n=r.charCategorizer(e);if(n(r.sliceDoc(e-1,e))!=ft.Word)return e;for(let s of t){let i=e-s.length;if(r.sliceDoc(i,e)==s&&n(r.sliceDoc(i-1,i))!=ft.Word)return i}return-1}function E3(r={}){return[f3,Yt,Ct.of(r),h3,D3,DO]}const NO=[{key:"Ctrl-Space",run:Hl},{mac:"Alt-`",run:Hl},{mac:"Alt-i",run:Hl},{key:"Escape",run:a3},{key:"ArrowDown",run:ra(!0)},{key:"ArrowUp",run:ra(!1)},{key:"PageDown",run:ra(!0,"page")},{key:"PageUp",run:ra(!1,"page")},{key:"Enter",run:o3}],D3=On.highest(xo.computeN([Ct],r=>r.facet(Ct).defaultKeymap?[NO]:[]));class _f{constructor(e,t,n){this.from=e,this.to=t,this.diagnostic=n}}class es{constructor(e,t,n){this.diagnostics=e,this.panel=t,this.selected=n}static init(e,t,n){let s=n.facet(ao).markerFilter;s&&(e=s(e,n));let i=e.slice().sort((f,g)=>f.from-g.from||f.to-g.to),o=new pn,a=[],l=0,c=n.doc.iter(),u=0,h=n.doc.length;for(let f=0;;){let g=f==i.length?null:i[f];if(!g&&!a.length)break;let O,y;if(a.length)O=l,y=a.reduce((P,A)=>Math.min(P,A.to),g&&g.from>O?g.from:1e8);else{if(O=g.from,O>h)break;y=g.to,a.push(g),f++}for(;f<i.length;){let P=i[f];if(P.from==O&&(P.to>P.from||P.to==O))a.push(P),f++,y=Math.min(P.to,y);else{y=Math.min(P.from,y);break}}y=Math.min(y,h);let b=!1;if(a.some(P=>P.from==O&&(P.to==y||y==h))&&(b=O==y,!b&&y-O<10)){let P=O-(u+c.value.length);P>0&&(c.next(P),u=O);for(let A=O;;){if(A>=y){b=!0;break}if(!c.lineBreak&&u+c.value.length>A)break;A=u+c.value.length,u+=c.value.length,c.next()}}let C=G3(a);if(b)o.add(O,O,Ee.widget({widget:new q3(C),diagnostics:a.slice()}));else{let P=a.reduce((A,E)=>E.markClass?A+" "+E.markClass:A,"");o.add(O,y,Ee.mark({class:"cm-lintRange cm-lintRange-"+C+P,diagnostics:a.slice(),inclusiveEnd:a.some(A=>A.to>y)}))}if(l=y,l==h)break;for(let P=0;P<a.length;P++)a[P].to<=l&&a.splice(P--,1)}let p=o.finish();return new es(p,t,In(p))}}function In(r,e=null,t=0){let n=null;return r.between(t,1e9,(s,i,{spec:o})=>{if(!(e&&o.diagnostics.indexOf(e)<0))if(!n)n=new _f(s,i,e||o.diagnostics[0]);else{if(o.diagnostics.indexOf(n.diagnostic)<0)return!1;n=new _f(n.from,i,n.diagnostic)}}),n}function L3(r,e){let t=e.pos,n=e.end||t,s=r.state.facet(ao).hideOn(r,t,n);if(s!=null)return s;let i=r.startState.doc.lineAt(e.pos);return!!(r.effects.some(o=>o.is(WO))||r.changes.touchesRange(i.from,Math.max(i.to,n)))}function X3(r,e){return r.field(ar,!1)?e:e.concat(Ne.appendConfig.of(H3))}const WO=Ne.define(),bh=Ne.define(),jO=Ne.define(),ar=Tt.define({create(){return new es(Ee.none,null,null)},update(r,e){if(e.docChanged&&r.diagnostics.size){let t=r.diagnostics.map(e.changes),n=null,s=r.panel;if(r.selected){let i=e.changes.mapPos(r.selected.from,1);n=In(t,r.selected.diagnostic,i)||In(t,null,i)}!t.size&&s&&e.state.facet(ao).autoPanel&&(s=null),r=new es(t,s,n)}for(let t of e.effects)if(t.is(WO)){let n=e.state.facet(ao).autoPanel?t.value.length?lo.open:null:r.panel;r=es.init(t.value,n,e.state)}else t.is(bh)?r=new es(r.diagnostics,t.value?lo.open:null,r.selected):t.is(jO)&&(r=new es(r.diagnostics,r.panel,t.value));return r},provide:r=>[Hi.from(r,e=>e.panel),ke.decorations.from(r,e=>e.diagnostics)]}),I3=Ee.mark({class:"cm-lintRange cm-lintRange-active"});function V3(r,e,t){let{diagnostics:n}=r.state.field(ar),s,i=-1,o=-1;n.between(e-(t<0?1:0),e+(t>0?1:0),(l,c,{spec:u})=>{if(e>=l&&e<=c&&(l==c||(e>l||t>0)&&(e<c||t<0)))return s=u.diagnostics,i=l,o=c,!1});let a=r.state.facet(ao).tooltipFilter;return s&&a&&(s=a(s,r.state)),s?{pos:i,end:o,above:r.state.doc.lineAt(i).to<o,create(){return{dom:z3(r,s)}}}:null}function z3(r,e){return at("ul",{class:"cm-tooltip-lint"},e.map(t=>YO(r,t,!1)))}const N3=r=>{let e=r.state.field(ar,!1);(!e||!e.panel)&&r.dispatch({effects:X3(r.state,[bh.of(!0)])});let t=Uu(r,lo.open);return t&&t.dom.querySelector(".cm-panel-lint ul").focus(),!0},Rf=r=>{let e=r.state.field(ar,!1);return!e||!e.panel?!1:(r.dispatch({effects:bh.of(!1)}),!0)},W3=r=>{let e=r.state.field(ar,!1);if(!e)return!1;let t=r.state.selection.main,n=In(e.diagnostics,null,t.to+1);return!n&&(n=In(e.diagnostics,null,0),!n||n.from==t.from&&n.to==t.to)?!1:(r.dispatch({selection:{anchor:n.from,head:n.to},scrollIntoView:!0}),!0)},j3=[{key:"Mod-Shift-m",run:N3,preventDefault:!0},{key:"F8",run:W3}],ao=$e.define({combine(r){return{sources:r.map(e=>e.source).filter(e=>e!=null),...en(r.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:Bf,tooltipFilter:Bf,needsRefresh:(e,t)=>e?t?n=>e(n)||t(n):e:t,hideOn:(e,t)=>e?t?(n,s,i)=>e(n,s,i)||t(n,s,i):e:t,autoPanel:(e,t)=>e||t})}}});function Bf(r,e){return r?e?(t,n)=>e(r(t,n),n):r:e}function qO(r){let e=[];if(r)e:for(let{name:t}of r){for(let n=0;n<t.length;n++){let s=t[n];if(/[a-zA-Z]/.test(s)&&!e.some(i=>i.toLowerCase()==s.toLowerCase())){e.push(s);continue e}}e.push("")}return e}function YO(r,e,t){var n;let s=t?qO(e.actions):[];return at("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},at("span",{class:"cm-diagnosticText"},e.renderMessage?e.renderMessage(r):e.message),(n=e.actions)===null||n===void 0?void 0:n.map((i,o)=>{let a=!1,l=f=>{if(f.preventDefault(),a)return;a=!0;let g=In(r.state.field(ar).diagnostics,e);g&&i.apply(r,g.from,g.to)},{name:c}=i,u=s[o]?c.indexOf(s[o]):-1,h=u<0?c:[c.slice(0,u),at("u",c.slice(u,u+1)),c.slice(u+1)],p=i.markClass?" "+i.markClass:"";return at("button",{type:"button",class:"cm-diagnosticAction"+p,onclick:l,onmousedown:l,"aria-label":` Action: ${c}${u<0?"":` (access key "${s[o]})"`}.`},h)}),e.source&&at("div",{class:"cm-diagnosticSource"},e.source))}class q3 extends tn{constructor(e){super(),this.sev=e}eq(e){return e.sev==this.sev}toDOM(){return at("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}}class Zf{constructor(e,t){this.diagnostic=t,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=YO(e,t,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class lo{constructor(e){this.view=e,this.items=[];let t=s=>{if(!(s.ctrlKey||s.altKey||s.metaKey)){if(s.keyCode==27)Rf(this.view),this.view.focus();else if(s.keyCode==38||s.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(s.keyCode==40||s.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(s.keyCode==36)this.moveSelection(0);else if(s.keyCode==35)this.moveSelection(this.items.length-1);else if(s.keyCode==13)this.view.focus();else if(s.keyCode>=65&&s.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:i}=this.items[this.selectedIndex],o=qO(i.actions);for(let a=0;a<o.length;a++)if(o[a].toUpperCase().charCodeAt(0)==s.keyCode){let l=In(this.view.state.field(ar).diagnostics,i);l&&i.actions[a].apply(e,l.from,l.to)}}else return;s.preventDefault()}},n=s=>{for(let i=0;i<this.items.length;i++)this.items[i].dom.contains(s.target)&&this.moveSelection(i)};this.list=at("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:t,onclick:n}),this.dom=at("div",{class:"cm-panel-lint"},this.list,at("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>Rf(this.view)},"×")),this.update()}get selectedIndex(){let e=this.view.state.field(ar).selected;if(!e)return-1;for(let t=0;t<this.items.length;t++)if(this.items[t].diagnostic==e.diagnostic)return t;return-1}update(){let{diagnostics:e,selected:t}=this.view.state.field(ar),n=0,s=!1,i=null,o=new Set;for(e.between(0,this.view.state.doc.length,(a,l,{spec:c})=>{for(let u of c.diagnostics){if(o.has(u))continue;o.add(u);let h=-1,p;for(let f=n;f<this.items.length;f++)if(this.items[f].diagnostic==u){h=f;break}h<0?(p=new Zf(this.view,u),this.items.splice(n,0,p),s=!0):(p=this.items[h],h>n&&(this.items.splice(n,h-n),s=!0)),t&&p.diagnostic==t.diagnostic?p.dom.hasAttribute("aria-selected")||(p.dom.setAttribute("aria-selected","true"),i=p):p.dom.hasAttribute("aria-selected")&&p.dom.removeAttribute("aria-selected"),n++}});n<this.items.length&&!(this.items.length==1&&this.items[0].diagnostic.from<0);)s=!0,this.items.pop();this.items.length==0&&(this.items.push(new Zf(this.view,{from:-1,to:-1,severity:"info",message:this.view.state.phrase("No diagnostics")})),s=!0),i?(this.list.setAttribute("aria-activedescendant",i.id),this.view.requestMeasure({key:this,read:()=>({sel:i.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:a,panel:l})=>{let c=l.height/this.list.offsetHeight;a.top<l.top?this.list.scrollTop-=(l.top-a.top)/c:a.bottom>l.bottom&&(this.list.scrollTop+=(a.bottom-l.bottom)/c)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),s&&this.sync()}sync(){let e=this.list.firstChild;function t(){let n=e;e=n.nextSibling,n.remove()}for(let n of this.items)if(n.dom.parentNode==this.list){for(;e!=n.dom;)t();e=n.dom.nextSibling}else this.list.insertBefore(n.dom,e);for(;e;)t()}moveSelection(e){if(this.selectedIndex<0)return;let t=this.view.state.field(ar),n=In(t.diagnostics,this.items[e].diagnostic);n&&this.view.dispatch({selection:{anchor:n.from,head:n.to},scrollIntoView:!0,effects:jO.of(n)})}static open(e){return new lo(e)}}function Y3(r,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" ${e}>${encodeURIComponent(r)}</svg>')`}function na(r){return Y3(`<path d="m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0" stroke="${r}" fill="none" stroke-width=".7"/>`,'width="6" height="3"')}const F3=ke.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:na("#d11")},".cm-lintRange-warning":{backgroundImage:na("orange")},".cm-lintRange-info":{backgroundImage:na("#999")},".cm-lintRange-hint":{backgroundImage:na("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}});function U3(r){return r=="error"?4:r=="warning"?3:r=="info"?2:1}function G3(r){let e="hint",t=1;for(let n of r){let s=U3(n.severity);s>t&&(t=s,e=n.severity)}return e}const H3=[ar,ke.decorations.compute([ar],r=>{let{selected:e,panel:t}=r.field(ar);return!e||!t||e.from==e.to?Ee.none:Ee.set([I3.range(e.from,e.to)])}),P5(V3,{hideOn:L3}),F3],K3=[V5(),W5(),i5(),lQ(),EC(),F$(),J$(),Je.allowMultipleSelections.of(!0),SC(),zg(IC,{fallback:!0}),YC(),$3(),E3(),O5(),x5(),h5(),OP(),xo.of([...T3,...dP,...LP,...OQ,..._C,...NO,...j3])];class Ga{static create(e,t,n,s,i){let o=s+(s<<8)+e+(t<<4)|0;return new Ga(e,t,n,o,i,[],[])}constructor(e,t,n,s,i,o,a){this.type=e,this.value=t,this.from=n,this.hash=s,this.end=i,this.children=o,this.positions=a,this.hashProp=[[je.contextHash,s]]}addChild(e,t){e.prop(je.contextHash)!=this.hash&&(e=new nt(e.type,e.children,e.positions,e.length,this.hashProp)),this.children.push(e),this.positions.push(t)}toTree(e,t=this.end){let n=this.children.length-1;return n>=0&&(t=Math.max(t,this.positions[n]+this.children[n].length+this.from)),new nt(e.types[this.type],this.children,this.positions,t-this.from).balance({makeTree:(s,i,o)=>new nt($t.none,s,i,o,this.hashProp)})}}var ge;(function(r){r[r.Document=1]="Document",r[r.CodeBlock=2]="CodeBlock",r[r.FencedCode=3]="FencedCode",r[r.Blockquote=4]="Blockquote",r[r.HorizontalRule=5]="HorizontalRule",r[r.BulletList=6]="BulletList",r[r.OrderedList=7]="OrderedList",r[r.ListItem=8]="ListItem",r[r.ATXHeading1=9]="ATXHeading1",r[r.ATXHeading2=10]="ATXHeading2",r[r.ATXHeading3=11]="ATXHeading3",r[r.ATXHeading4=12]="ATXHeading4",r[r.ATXHeading5=13]="ATXHeading5",r[r.ATXHeading6=14]="ATXHeading6",r[r.SetextHeading1=15]="SetextHeading1",r[r.SetextHeading2=16]="SetextHeading2",r[r.HTMLBlock=17]="HTMLBlock",r[r.LinkReference=18]="LinkReference",r[r.Paragraph=19]="Paragraph",r[r.CommentBlock=20]="CommentBlock",r[r.ProcessingInstructionBlock=21]="ProcessingInstructionBlock",r[r.Escape=22]="Escape",r[r.Entity=23]="Entity",r[r.HardBreak=24]="HardBreak",r[r.Emphasis=25]="Emphasis",r[r.StrongEmphasis=26]="StrongEmphasis",r[r.Link=27]="Link",r[r.Image=28]="Image",r[r.InlineCode=29]="InlineCode",r[r.HTMLTag=30]="HTMLTag",r[r.Comment=31]="Comment",r[r.ProcessingInstruction=32]="ProcessingInstruction",r[r.Autolink=33]="Autolink",r[r.HeaderMark=34]="HeaderMark",r[r.QuoteMark=35]="QuoteMark",r[r.ListMark=36]="ListMark",r[r.LinkMark=37]="LinkMark",r[r.EmphasisMark=38]="EmphasisMark",r[r.CodeMark=39]="CodeMark",r[r.CodeText=40]="CodeText",r[r.CodeInfo=41]="CodeInfo",r[r.LinkTitle=42]="LinkTitle",r[r.LinkLabel=43]="LinkLabel",r[r.URL=44]="URL"})(ge||(ge={}));class J3{constructor(e,t){this.start=e,this.content=t,this.marks=[],this.parsers=[]}}class eT{constructor(){this.text="",this.baseIndent=0,this.basePos=0,this.depth=0,this.markers=[],this.pos=0,this.indent=0,this.next=-1}forward(){this.basePos>this.pos&&this.forwardInner()}forwardInner(){let e=this.skipSpace(this.basePos);this.indent=this.countIndent(e,this.pos,this.indent),this.pos=e,this.next=e==this.text.length?-1:this.text.charCodeAt(e)}skipSpace(e){return zi(this.text,e)}reset(e){for(this.text=e,this.baseIndent=this.basePos=this.pos=this.indent=0,this.forwardInner(),this.depth=1;this.markers.length;)this.markers.pop()}moveBase(e){this.basePos=e,this.baseIndent=this.countIndent(e,this.pos,this.indent)}moveBaseColumn(e){this.baseIndent=e,this.basePos=this.findColumn(e)}addMarker(e){this.markers.push(e)}countIndent(e,t=0,n=0){for(let s=t;s<e;s++)n+=this.text.charCodeAt(s)==9?4-n%4:1;return n}findColumn(e){let t=0;for(let n=0;t<this.text.length&&n<e;t++)n+=this.text.charCodeAt(t)==9?4-n%4:1;return t}scrub(){if(!this.baseIndent)return this.text;let e="";for(let t=0;t<this.basePos;t++)e+=" ";return e+this.text.slice(this.basePos)}}function Ef(r,e,t){if(t.pos==t.text.length||r!=e.block&&t.indent>=e.stack[t.depth+1].value+t.baseIndent)return!0;if(t.indent>=t.baseIndent+4)return!1;let n=(r.type==ge.OrderedList?kh:yh)(t,e,!1);return n>0&&(r.type!=ge.BulletList||xh(t,e,!1)<0)&&t.text.charCodeAt(t.pos+n-1)==r.value}const FO={[ge.Blockquote](r,e,t){return t.next!=62?!1:(t.markers.push(et(ge.QuoteMark,e.lineStart+t.pos,e.lineStart+t.pos+1)),t.moveBase(t.pos+(Sr(t.text.charCodeAt(t.pos+1))?2:1)),r.end=e.lineStart+t.text.length,!0)},[ge.ListItem](r,e,t){return t.indent<t.baseIndent+r.value&&t.next>-1?!1:(t.moveBaseColumn(t.baseIndent+r.value),!0)},[ge.OrderedList]:Ef,[ge.BulletList]:Ef,[ge.Document](){return!0}};function Sr(r){return r==32||r==9||r==10||r==13}function zi(r,e=0){for(;e<r.length&&Sr(r.charCodeAt(e));)e++;return e}function Df(r,e,t){for(;e>t&&Sr(r.charCodeAt(e-1));)e--;return e}function UO(r){if(r.next!=96&&r.next!=126)return-1;let e=r.pos+1;for(;e<r.text.length&&r.text.charCodeAt(e)==r.next;)e++;if(e<r.pos+3)return-1;if(r.next==96){for(let t=e;t<r.text.length;t++)if(r.text.charCodeAt(t)==96)return-1}return e}function GO(r){return r.next!=62?-1:r.text.charCodeAt(r.pos+1)==32?2:1}function xh(r,e,t){if(r.next!=42&&r.next!=45&&r.next!=95)return-1;let n=1;for(let s=r.pos+1;s<r.text.length;s++){let i=r.text.charCodeAt(s);if(i==r.next)n++;else if(!Sr(i))return-1}return t&&r.next==45&&JO(r)>-1&&r.depth==e.stack.length&&e.parser.leafBlockParsers.indexOf(n0.SetextHeading)>-1||n<3?-1:1}function HO(r,e){for(let t=r.stack.length-1;t>=0;t--)if(r.stack[t].type==e)return!0;return!1}function yh(r,e,t){return(r.next==45||r.next==43||r.next==42)&&(r.pos==r.text.length-1||Sr(r.text.charCodeAt(r.pos+1)))&&(!t||HO(e,ge.BulletList)||r.skipSpace(r.pos+2)<r.text.length)?1:-1}function kh(r,e,t){let n=r.pos,s=r.next;for(;s>=48&&s<=57;){n++;if(n==r.text.length)return-1;s=r.text.charCodeAt(n)}return n==r.pos||n>r.pos+9||s!=46&&s!=41||n<r.text.length-1&&!Sr(r.text.charCodeAt(n+1))||t&&!HO(e,ge.OrderedList)&&(r.skipSpace(n+1)==r.text.length||n>r.pos+1||r.next!=49)?-1:n+1-r.pos}function KO(r){if(r.next!=35)return-1;let e=r.pos+1;for(;e<r.text.length&&r.text.charCodeAt(e)==35;)e++;if(e<r.text.length&&r.text.charCodeAt(e)!=32)return-1;let t=e-r.pos;return t>6?-1:t}function JO(r){if(r.next!=45&&r.next!=61||r.indent>=r.baseIndent+4)return-1;let e=r.pos+1;for(;e<r.text.length&&r.text.charCodeAt(e)==r.next;)e++;let t=e;for(;e<r.text.length&&Sr(r.text.charCodeAt(e));)e++;return e==r.text.length?t:-1}const cu=/^[ \t]*$/,e0=/-->/,t0=/\?>/,uu=[[/^<(?:script|pre|style)(?:\s|>|$)/i,/<\/(?:script|pre|style)>/i],[/^\s*<!--/,e0],[/^\s*<\?/,t0],[/^\s*<![A-Z]/,/>/],[/^\s*<!\[CDATA\[/,/\]\]>/],[/^\s*<\/?(?:address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul)(?:\s|\/?>|$)/i,cu],[/^\s*(?:<\/[a-z][\w-]*\s*>|<[a-z][\w-]*(\s+[a-z:_][\w-.]*(?:\s*=\s*(?:[^\s"'=<>`]+|'[^']*'|"[^"]*"))?)*\s*>)\s*$/i,cu]];function r0(r,e,t){if(r.next!=60)return-1;let n=r.text.slice(r.pos);for(let s=0,i=uu.length-(t?1:0);s<i;s++)if(uu[s][0].test(n))return s;return-1}function Lf(r,e){let t=r.countIndent(e,r.pos,r.indent),n=r.countIndent(r.skipSpace(e),e,t);return n>=t+5?t+1:n}function Cn(r,e,t){let n=r.length-1;n>=0&&r[n].to==e&&r[n].type==ge.CodeText?r[n].to=t:r.push(et(ge.CodeText,e,t))}const sa={LinkReference:void 0,IndentedCode(r,e){let t=e.baseIndent+4;if(e.indent<t)return!1;let n=e.findColumn(t),s=r.lineStart+n,i=r.lineStart+e.text.length,o=[],a=[];for(Cn(o,s,i);r.nextLine()&&e.depth>=r.stack.length;)if(e.pos==e.text.length){Cn(a,r.lineStart-1,r.lineStart);for(let l of e.markers)a.push(l)}else{if(e.indent<t)break;{if(a.length){for(let c of a)c.type==ge.CodeText?Cn(o,c.from,c.to):o.push(c);a=[]}Cn(o,r.lineStart-1,r.lineStart);for(let c of e.markers)o.push(c);i=r.lineStart+e.text.length;let l=r.lineStart+e.findColumn(e.baseIndent+4);l<i&&Cn(o,l,i)}}return a.length&&(a=a.filter(l=>l.type!=ge.CodeText),a.length&&(e.markers=a.concat(e.markers))),r.addNode(r.buffer.writeElements(o,-s).finish(ge.CodeBlock,i-s),s),!0},FencedCode(r,e){let t=UO(e);if(t<0)return!1;let n=r.lineStart+e.pos,s=e.next,i=t-e.pos,o=e.skipSpace(t),a=Df(e.text,e.text.length,o),l=[et(ge.CodeMark,n,n+i)];o<a&&l.push(et(ge.CodeInfo,r.lineStart+o,r.lineStart+a));for(let c=!0,u=!0,h=!1;r.nextLine()&&e.depth>=r.stack.length;c=!1){let p=e.pos;if(e.indent-e.baseIndent<4)for(;p<e.text.length&&e.text.charCodeAt(p)==s;)p++;if(p-e.pos>=i&&e.skipSpace(p)==e.text.length){for(let f of e.markers)l.push(f);u&&h&&Cn(l,r.lineStart-1,r.lineStart),l.push(et(ge.CodeMark,r.lineStart+e.pos,r.lineStart+p)),r.nextLine();break}else{h=!0,c||(Cn(l,r.lineStart-1,r.lineStart),u=!1);for(let O of e.markers)l.push(O);let f=r.lineStart+e.basePos,g=r.lineStart+e.text.length;f<g&&(Cn(l,f,g),u=!1)}}return r.addNode(r.buffer.writeElements(l,-n).finish(ge.FencedCode,r.prevLineEnd()-n),n),!0},Blockquote(r,e){let t=GO(e);return t<0?!1:(r.startContext(ge.Blockquote,e.pos),r.addNode(ge.QuoteMark,r.lineStart+e.pos,r.lineStart+e.pos+1),e.moveBase(e.pos+t),null)},HorizontalRule(r,e){if(xh(e,r,!1)<0)return!1;let t=r.lineStart+e.pos;return r.nextLine(),r.addNode(ge.HorizontalRule,t),!0},BulletList(r,e){let t=yh(e,r,!1);if(t<0)return!1;r.block.type!=ge.BulletList&&r.startContext(ge.BulletList,e.basePos,e.next);let n=Lf(e,e.pos+1);return r.startContext(ge.ListItem,e.basePos,n-e.baseIndent),r.addNode(ge.ListMark,r.lineStart+e.pos,r.lineStart+e.pos+t),e.moveBaseColumn(n),null},OrderedList(r,e){let t=kh(e,r,!1);if(t<0)return!1;r.block.type!=ge.OrderedList&&r.startContext(ge.OrderedList,e.basePos,e.text.charCodeAt(e.pos+t-1));let n=Lf(e,e.pos+t);return r.startContext(ge.ListItem,e.basePos,n-e.baseIndent),r.addNode(ge.ListMark,r.lineStart+e.pos,r.lineStart+e.pos+t),e.moveBaseColumn(n),null},ATXHeading(r,e){let t=KO(e);if(t<0)return!1;let n=e.pos,s=r.lineStart+n,i=Df(e.text,e.text.length,n),o=i;for(;o>n&&e.text.charCodeAt(o-1)==e.next;)o--;(o==i||o==n||!Sr(e.text.charCodeAt(o-1)))&&(o=e.text.length);let a=r.buffer.write(ge.HeaderMark,0,t).writeElements(r.parser.parseInline(e.text.slice(n+t+1,o),s+t+1),-s);o<e.text.length&&a.write(ge.HeaderMark,o-n,i-n);let l=a.finish(ge.ATXHeading1-1+t,e.text.length-n);return r.nextLine(),r.addNode(l,s),!0},HTMLBlock(r,e){let t=r0(e,r,!1);if(t<0)return!1;let n=r.lineStart+e.pos,s=uu[t][1],i=[],o=s!=cu;for(;!s.test(e.text)&&r.nextLine();){if(e.depth<r.stack.length){o=!1;break}for(let c of e.markers)i.push(c)}o&&r.nextLine();let a=s==e0?ge.CommentBlock:s==t0?ge.ProcessingInstructionBlock:ge.HTMLBlock,l=r.prevLineEnd();return r.addNode(r.buffer.writeElements(i,-n).finish(a,l-n),n),!0},SetextHeading:void 0};class tT{constructor(e){this.stage=0,this.elts=[],this.pos=0,this.start=e.start,this.advance(e.content)}nextLine(e,t,n){if(this.stage==-1)return!1;let s=n.content+`
|
|
23
|
+
`+t.scrub(),i=this.advance(s);return i>-1&&i<s.length?this.complete(e,n,i):!1}finish(e,t){return(this.stage==2||this.stage==3)&&zi(t.content,this.pos)==t.content.length?this.complete(e,t,t.content.length):!1}complete(e,t,n){return e.addLeafElement(t,et(ge.LinkReference,this.start,this.start+n,this.elts)),!0}nextStage(e){return e?(this.pos=e.to-this.start,this.elts.push(e),this.stage++,!0):(e===!1&&(this.stage=-1),!1)}advance(e){for(;;){if(this.stage==-1)return-1;if(this.stage==0){if(!this.nextStage(d0(e,this.pos,this.start,!0)))return-1;if(e.charCodeAt(this.pos)!=58)return this.stage=-1;this.elts.push(et(ge.LinkMark,this.pos+this.start,this.pos+this.start+1)),this.pos++}else if(this.stage==1){if(!this.nextStage(u0(e,zi(e,this.pos),this.start)))return-1}else if(this.stage==2){let t=zi(e,this.pos),n=0;if(t>this.pos){let s=h0(e,t,this.start);if(s){let i=Jl(e,s.to-this.start);i>0&&(this.nextStage(s),n=i)}}return n||(n=Jl(e,this.pos)),n>0&&n<e.length?n:-1}else return Jl(e,this.pos)}}}function Jl(r,e){for(;e<r.length;e++){let t=r.charCodeAt(e);if(t==10)break;if(!Sr(t))return-1}return e}class rT{nextLine(e,t,n){let s=t.depth<e.stack.length?-1:JO(t),i=t.next;if(s<0)return!1;let o=et(ge.HeaderMark,e.lineStart+t.pos,e.lineStart+s);return e.nextLine(),e.addLeafElement(n,et(i==61?ge.SetextHeading1:ge.SetextHeading2,n.start,e.prevLineEnd(),[...e.parser.parseInline(n.content,n.start),o])),!0}finish(){return!1}}const n0={LinkReference(r,e){return e.content.charCodeAt(0)==91?new tT(e):null},SetextHeading(){return new rT}},nT=[(r,e)=>KO(e)>=0,(r,e)=>UO(e)>=0,(r,e)=>GO(e)>=0,(r,e)=>yh(e,r,!0)>=0,(r,e)=>kh(e,r,!0)>=0,(r,e)=>xh(e,r,!0)>=0,(r,e)=>r0(e,r,!0)>=0],sT={text:"",end:0};class iT{constructor(e,t,n,s){this.parser=e,this.input=t,this.ranges=s,this.line=new eT,this.atEnd=!1,this.reusePlaceholders=new Map,this.stoppedAt=null,this.rangeI=0,this.to=s[s.length-1].to,this.lineStart=this.absoluteLineStart=this.absoluteLineEnd=s[0].from,this.block=Ga.create(ge.Document,0,this.lineStart,0,0),this.stack=[this.block],this.fragments=n.length?new lT(n,t):null,this.readLine()}get parsedPos(){return this.absoluteLineStart}advance(){if(this.stoppedAt!=null&&this.absoluteLineStart>this.stoppedAt)return this.finish();let{line:e}=this;for(;;){for(let n=0;;){let s=e.depth<this.stack.length?this.stack[this.stack.length-1]:null;for(;n<e.markers.length&&(!s||e.markers[n].from<s.end);){let i=e.markers[n++];this.addNode(i.type,i.from,i.to)}if(!s)break;this.finishContext()}if(e.pos<e.text.length)break;if(!this.nextLine())return this.finish()}if(this.fragments&&this.reuseFragment(e.basePos))return null;e:for(;;){for(let n of this.parser.blockParsers)if(n){let s=n(this,e);if(s!=!1){if(s==!0)return null;e.forward();continue e}}break}let t=new J3(this.lineStart+e.pos,e.text.slice(e.pos));for(let n of this.parser.leafBlockParsers)if(n){let s=n(this,t);s&&t.parsers.push(s)}e:for(;this.nextLine()&&e.pos!=e.text.length;){if(e.indent<e.baseIndent+4){for(let n of this.parser.endLeafBlock)if(n(this,e,t))break e}for(let n of t.parsers)if(n.nextLine(this,e,t))return null;t.content+=`
|
|
24
|
+
`+e.scrub();for(let n of e.markers)t.marks.push(n)}return this.finishLeaf(t),null}stopAt(e){if(this.stoppedAt!=null&&this.stoppedAt<e)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=e}reuseFragment(e){if(!this.fragments.moveTo(this.absoluteLineStart+e,this.absoluteLineStart)||!this.fragments.matches(this.block.hash))return!1;let t=this.fragments.takeNodes(this);return t?(this.absoluteLineStart+=t,this.lineStart=f0(this.absoluteLineStart,this.ranges),this.moveRangeI(),this.absoluteLineStart<this.to?(this.lineStart++,this.absoluteLineStart++,this.readLine()):(this.atEnd=!0,this.readLine()),!0):!1}get depth(){return this.stack.length}parentType(e=this.depth-1){return this.parser.nodeSet.types[this.stack[e].type]}nextLine(){return this.lineStart+=this.line.text.length,this.absoluteLineEnd>=this.to?(this.absoluteLineStart=this.absoluteLineEnd,this.atEnd=!0,this.readLine(),!1):(this.lineStart++,this.absoluteLineStart=this.absoluteLineEnd+1,this.moveRangeI(),this.readLine(),!0)}peekLine(){return this.scanLine(this.absoluteLineEnd+1).text}moveRangeI(){for(;this.rangeI<this.ranges.length-1&&this.absoluteLineStart>=this.ranges[this.rangeI].to;)this.rangeI++,this.absoluteLineStart=Math.max(this.absoluteLineStart,this.ranges[this.rangeI].from)}scanLine(e){let t=sT;if(t.end=e,e>=this.to)t.text="";else if(t.text=this.lineChunkAt(e),t.end+=t.text.length,this.ranges.length>1){let n=this.absoluteLineStart,s=this.rangeI;for(;this.ranges[s].to<t.end;){s++;let i=this.ranges[s].from,o=this.lineChunkAt(i);t.end=i+o.length,t.text=t.text.slice(0,this.ranges[s-1].to-n)+o,n=t.end-t.text.length}}return t}readLine(){let{line:e}=this,{text:t,end:n}=this.scanLine(this.absoluteLineStart);for(this.absoluteLineEnd=n,e.reset(t);e.depth<this.stack.length;e.depth++){let s=this.stack[e.depth],i=this.parser.skipContextMarkup[s.type];if(!i)throw new Error("Unhandled block context "+ge[s.type]);let o=this.line.markers.length;if(!i(s,this,e)){this.line.markers.length>o&&(s.end=this.line.markers[this.line.markers.length-1].to),e.forward();break}e.forward()}}lineChunkAt(e){let t=this.input.chunk(e),n;if(this.input.lineChunks)n=t==`
|
|
25
|
+
`?"":t;else{let s=t.indexOf(`
|
|
26
|
+
`);n=s<0?t:t.slice(0,s)}return e+n.length>this.to?n.slice(0,this.to-e):n}prevLineEnd(){return this.atEnd?this.lineStart:this.lineStart-1}startContext(e,t,n=0){this.block=Ga.create(e,n,this.lineStart+t,this.block.hash,this.lineStart+this.line.text.length),this.stack.push(this.block)}startComposite(e,t,n=0){this.startContext(this.parser.getNodeType(e),t,n)}addNode(e,t,n){typeof e=="number"&&(e=new nt(this.parser.nodeSet.types[e],qs,qs,(n??this.prevLineEnd())-t)),this.block.addChild(e,t-this.block.from)}addElement(e){this.block.addChild(e.toTree(this.parser.nodeSet),e.from-this.block.from)}addLeafElement(e,t){this.addNode(this.buffer.writeElements(du(t.children,e.marks),-t.from).finish(t.type,t.to-t.from),t.from)}finishContext(){let e=this.stack.pop(),t=this.stack[this.stack.length-1];t.addChild(e.toTree(this.parser.nodeSet),e.from-t.from),this.block=t}finish(){for(;this.stack.length>1;)this.finishContext();return this.addGaps(this.block.toTree(this.parser.nodeSet,this.lineStart))}addGaps(e){return this.ranges.length>1?s0(this.ranges,0,e.topNode,this.ranges[0].from,this.reusePlaceholders):e}finishLeaf(e){for(let n of e.parsers)if(n.finish(this,e))return;let t=du(this.parser.parseInline(e.content,e.start),e.marks);this.addNode(this.buffer.writeElements(t,-e.start).finish(ge.Paragraph,e.content.length),e.start)}elt(e,t,n,s){return typeof e=="string"?et(this.parser.getNodeType(e),t,n,s):new a0(e,t)}get buffer(){return new o0(this.parser.nodeSet)}}function s0(r,e,t,n,s){let i=r[e].to,o=[],a=[],l=t.from+n;function c(u,h){for(;h?u>=i:u>i;){let p=r[e+1].from-i;n+=p,u+=p,e++,i=r[e].to}}for(let u=t.firstChild;u;u=u.nextSibling){c(u.from+n,!0);let h=u.from+n,p,f=s.get(u.tree);f?p=f:u.to+n>i?(p=s0(r,e,u,n,s),c(u.to+n,!1)):p=u.toTree(),o.push(p),a.push(h-l)}return c(t.to+n,!1),new nt(t.type,o,a,t.to+n-l,t.tree?t.tree.propValues:void 0)}class wl extends Ju{constructor(e,t,n,s,i,o,a,l,c){super(),this.nodeSet=e,this.blockParsers=t,this.leafBlockParsers=n,this.blockNames=s,this.endLeafBlock=i,this.skipContextMarkup=o,this.inlineParsers=a,this.inlineNames=l,this.wrappers=c,this.nodeTypes=Object.create(null);for(let u of e.types)this.nodeTypes[u.name]=u.id}createParse(e,t,n){let s=new iT(this,e,t,n);for(let i of this.wrappers)s=i(s,e,t,n);return s}configure(e){let t=hu(e);if(!t)return this;let{nodeSet:n,skipContextMarkup:s}=this,i=this.blockParsers.slice(),o=this.leafBlockParsers.slice(),a=this.blockNames.slice(),l=this.inlineParsers.slice(),c=this.inlineNames.slice(),u=this.endLeafBlock.slice(),h=this.wrappers;if(Pi(t.defineNodes)){s=Object.assign({},s);let p=n.types.slice(),f;for(let g of t.defineNodes){let{name:O,block:y,composite:b,style:C}=typeof g=="string"?{name:g}:g;if(p.some(E=>E.name==O))continue;b&&(s[p.length]=(E,F,I)=>b(F,I,E.value));let P=p.length,A=b?["Block","BlockContext"]:y?P>=ge.ATXHeading1&&P<=ge.SetextHeading2?["Block","LeafBlock","Heading"]:["Block","LeafBlock"]:void 0;p.push($t.define({id:P,name:O,props:A&&[[je.group,A]]})),C&&(f||(f={}),Array.isArray(C)||C instanceof or?f[O]=C:Object.assign(f,C))}n=new ko(p),f&&(n=n.extend(Hs(f)))}if(Pi(t.props)&&(n=n.extend(...t.props)),Pi(t.remove))for(let p of t.remove){let f=this.blockNames.indexOf(p),g=this.inlineNames.indexOf(p);f>-1&&(i[f]=o[f]=void 0),g>-1&&(l[g]=void 0)}if(Pi(t.parseBlock))for(let p of t.parseBlock){let f=a.indexOf(p.name);if(f>-1)i[f]=p.parse,o[f]=p.leaf;else{let g=p.before?ia(a,p.before):p.after?ia(a,p.after)+1:a.length-1;i.splice(g,0,p.parse),o.splice(g,0,p.leaf),a.splice(g,0,p.name)}p.endLeaf&&u.push(p.endLeaf)}if(Pi(t.parseInline))for(let p of t.parseInline){let f=c.indexOf(p.name);if(f>-1)l[f]=p.parse;else{let g=p.before?ia(c,p.before):p.after?ia(c,p.after)+1:c.length-1;l.splice(g,0,p.parse),c.splice(g,0,p.name)}}return t.wrap&&(h=h.concat(t.wrap)),new wl(n,i,o,a,u,s,l,c,h)}getNodeType(e){let t=this.nodeTypes[e];if(t==null)throw new RangeError(`Unknown node type '${e}'`);return t}parseInline(e,t){let n=new wh(this,e,t);e:for(let s=t;s<n.end;){let i=n.char(s);for(let o of this.inlineParsers)if(o){let a=o(n,i,s);if(a>=0){s=a;continue e}}s++}return n.resolveMarkers(0)}}function Pi(r){return r!=null&&r.length>0}function hu(r){if(!Array.isArray(r))return r;if(r.length==0)return null;let e=hu(r[0]);if(r.length==1)return e;let t=hu(r.slice(1));if(!t||!e)return e||t;let n=(o,a)=>(o||qs).concat(a||qs),s=e.wrap,i=t.wrap;return{props:n(e.props,t.props),defineNodes:n(e.defineNodes,t.defineNodes),parseBlock:n(e.parseBlock,t.parseBlock),parseInline:n(e.parseInline,t.parseInline),remove:n(e.remove,t.remove),wrap:s?i?(o,a,l,c)=>s(i(o,a,l,c),a,l,c):s:i}}function ia(r,e){let t=r.indexOf(e);if(t<0)throw new RangeError(`Position specified relative to unknown parser ${e}`);return t}let i0=[$t.none];for(let r=1,e;e=ge[r];r++)i0[r]=$t.define({id:r,name:e,props:r>=ge.Escape?[]:[[je.group,r in FO?["Block","BlockContext"]:["Block","LeafBlock"]]],top:e=="Document"});const qs=[];class o0{constructor(e){this.nodeSet=e,this.content=[],this.nodes=[]}write(e,t,n,s=0){return this.content.push(e,t,n,4+s*4),this}writeElements(e,t=0){for(let n of e)n.writeTo(this,t);return this}finish(e,t){return nt.build({buffer:this.content,nodeSet:this.nodeSet,reused:this.nodes,topID:e,length:t})}}let co=class{constructor(e,t,n,s=qs){this.type=e,this.from=t,this.to=n,this.children=s}writeTo(e,t){let n=e.content.length;e.writeElements(this.children,t),e.content.push(this.type,this.from+t,this.to+t,e.content.length+4-n)}toTree(e){return new o0(e).writeElements(this.children,-this.from).finish(this.type,this.to-this.from)}};class a0{constructor(e,t){this.tree=e,this.from=t}get to(){return this.from+this.tree.length}get type(){return this.tree.type.id}get children(){return qs}writeTo(e,t){e.nodes.push(this.tree),e.content.push(e.nodes.length-1,this.from+t,this.to+t,-1)}toTree(){return this.tree}}function et(r,e,t,n){return new co(r,e,t,n)}const l0={resolve:"Emphasis",mark:"EmphasisMark"},c0={resolve:"Emphasis",mark:"EmphasisMark"},ts={},Ha={};class ir{constructor(e,t,n,s){this.type=e,this.from=t,this.to=n,this.side=s}}const Xf="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~";let uo=/[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~\xA1\u2010-\u2027]/;try{uo=new RegExp("[\\p{S}|\\p{P}]","u")}catch{}const ec={Escape(r,e,t){if(e!=92||t==r.end-1)return-1;let n=r.char(t+1);for(let s=0;s<Xf.length;s++)if(Xf.charCodeAt(s)==n)return r.append(et(ge.Escape,t,t+2));return-1},Entity(r,e,t){if(e!=38)return-1;let n=/^(?:#\d+|#x[a-f\d]+|\w+);/i.exec(r.slice(t+1,t+31));return n?r.append(et(ge.Entity,t,t+1+n[0].length)):-1},InlineCode(r,e,t){if(e!=96||t&&r.char(t-1)==96)return-1;let n=t+1;for(;n<r.end&&r.char(n)==96;)n++;let s=n-t,i=0;for(;n<r.end;n++)if(r.char(n)==96){if(i++,i==s&&r.char(n+1)!=96)return r.append(et(ge.InlineCode,t,n+1,[et(ge.CodeMark,t,t+s),et(ge.CodeMark,n+1-s,n+1)]))}else i=0;return-1},HTMLTag(r,e,t){if(e!=60||t==r.end-1)return-1;let n=r.slice(t+1,r.end),s=/^(?:[a-z][-\w+.]+:[^\s>]+|[a-z\d.!#$%&'*+/=?^_`{|}~-]+@[a-z\d](?:[a-z\d-]{0,61}[a-z\d])?(?:\.[a-z\d](?:[a-z\d-]{0,61}[a-z\d])?)*)>/i.exec(n);if(s)return r.append(et(ge.Autolink,t,t+1+s[0].length,[et(ge.LinkMark,t,t+1),et(ge.URL,t+1,t+s[0].length),et(ge.LinkMark,t+s[0].length,t+1+s[0].length)]));let i=/^!--[^>](?:-[^-]|[^-])*?-->/i.exec(n);if(i)return r.append(et(ge.Comment,t,t+1+i[0].length));let o=/^\?[^]*?\?>/.exec(n);if(o)return r.append(et(ge.ProcessingInstruction,t,t+1+o[0].length));let a=/^(?:![A-Z][^]*?>|!\[CDATA\[[^]*?\]\]>|\/\s*[a-zA-Z][\w-]*\s*>|\s*[a-zA-Z][\w-]*(\s+[a-zA-Z:_][\w-.:]*(?:\s*=\s*(?:[^\s"'=<>`]+|'[^']*'|"[^"]*"))?)*\s*(\/\s*)?>)/.exec(n);return a?r.append(et(ge.HTMLTag,t,t+1+a[0].length)):-1},Emphasis(r,e,t){if(e!=95&&e!=42)return-1;let n=t+1;for(;r.char(n)==e;)n++;let s=r.slice(t-1,t),i=r.slice(n,n+1),o=uo.test(s),a=uo.test(i),l=/\s|^$/.test(s),c=/\s|^$/.test(i),u=!c&&(!a||l||o),h=!l&&(!o||c||a),p=u&&(e==42||!h||o),f=h&&(e==42||!u||a);return r.append(new ir(e==95?l0:c0,t,n,(p?1:0)|(f?2:0)))},HardBreak(r,e,t){if(e==92&&r.char(t+1)==10)return r.append(et(ge.HardBreak,t,t+2));if(e==32){let n=t+1;for(;r.char(n)==32;)n++;if(r.char(n)==10&&n>=t+2)return r.append(et(ge.HardBreak,t,n+1))}return-1},Link(r,e,t){return e==91?r.append(new ir(ts,t,t+1,1)):-1},Image(r,e,t){return e==33&&r.char(t+1)==91?r.append(new ir(Ha,t,t+2,1)):-1},LinkEnd(r,e,t){if(e!=93)return-1;for(let n=r.parts.length-1;n>=0;n--){let s=r.parts[n];if(s instanceof ir&&(s.type==ts||s.type==Ha)){if(!s.side||r.skipSpace(s.to)==t&&!/[(\[]/.test(r.slice(t+1,t+2)))return r.parts[n]=null,-1;let i=r.takeContent(n),o=r.parts[n]=oT(r,i,s.type==ts?ge.Link:ge.Image,s.from,t+1);if(s.type==ts)for(let a=0;a<n;a++){let l=r.parts[a];l instanceof ir&&l.type==ts&&(l.side=0)}return o.to}}return-1}};function oT(r,e,t,n,s){let{text:i}=r,o=r.char(s),a=s;if(e.unshift(et(ge.LinkMark,n,n+(t==ge.Image?2:1))),e.push(et(ge.LinkMark,s-1,s)),o==40){let l=r.skipSpace(s+1),c=u0(i,l-r.offset,r.offset),u;c&&(l=r.skipSpace(c.to),l!=c.to&&(u=h0(i,l-r.offset,r.offset),u&&(l=r.skipSpace(u.to)))),r.char(l)==41&&(e.push(et(ge.LinkMark,s,s+1)),a=l+1,c&&e.push(c),u&&e.push(u),e.push(et(ge.LinkMark,l,a)))}else if(o==91){let l=d0(i,s-r.offset,r.offset,!1);l&&(e.push(l),a=l.to)}return et(t,n,a,e)}function u0(r,e,t){if(r.charCodeAt(e)==60){for(let s=e+1;s<r.length;s++){let i=r.charCodeAt(s);if(i==62)return et(ge.URL,e+t,s+1+t);if(i==60||i==10)return!1}return null}else{let s=0,i=e;for(let o=!1;i<r.length;i++){let a=r.charCodeAt(i);if(Sr(a))break;if(o)o=!1;else if(a==40)s++;else if(a==41){if(!s)break;s--}else a==92&&(o=!0)}return i>e?et(ge.URL,e+t,i+t):i==r.length?null:!1}}function h0(r,e,t){let n=r.charCodeAt(e);if(n!=39&&n!=34&&n!=40)return!1;let s=n==40?41:n;for(let i=e+1,o=!1;i<r.length;i++){let a=r.charCodeAt(i);if(o)o=!1;else{if(a==s)return et(ge.LinkTitle,e+t,i+1+t);a==92&&(o=!0)}}return null}function d0(r,e,t,n){for(let s=!1,i=e+1,o=Math.min(r.length,i+999);i<o;i++){let a=r.charCodeAt(i);if(s)s=!1;else{if(a==93)return n?!1:et(ge.LinkLabel,e+t,i+1+t);if(n&&!Sr(a)&&(n=!1),a==91)return!1;a==92&&(s=!0)}}return null}class wh{constructor(e,t,n){this.parser=e,this.text=t,this.offset=n,this.parts=[]}char(e){return e>=this.end?-1:this.text.charCodeAt(e-this.offset)}get end(){return this.offset+this.text.length}slice(e,t){return this.text.slice(e-this.offset,t-this.offset)}append(e){return this.parts.push(e),e.to}addDelimiter(e,t,n,s,i){return this.append(new ir(e,t,n,(s?1:0)|(i?2:0)))}get hasOpenLink(){for(let e=this.parts.length-1;e>=0;e--){let t=this.parts[e];if(t instanceof ir&&(t.type==ts||t.type==Ha))return!0}return!1}addElement(e){return this.append(e)}resolveMarkers(e){for(let n=e;n<this.parts.length;n++){let s=this.parts[n];if(!(s instanceof ir&&s.type.resolve&&s.side&2))continue;let i=s.type==l0||s.type==c0,o=s.to-s.from,a,l=n-1;for(;l>=e;l--){let O=this.parts[l];if(O instanceof ir&&O.side&1&&O.type==s.type&&!(i&&(s.side&1||O.side&2)&&(O.to-O.from+o)%3==0&&((O.to-O.from)%3||o%3))){a=O;break}}if(!a)continue;let c=s.type.resolve,u=[],h=a.from,p=s.to;if(i){let O=Math.min(2,a.to-a.from,o);h=a.to-O,p=s.from+O,c=O==1?"Emphasis":"StrongEmphasis"}a.type.mark&&u.push(this.elt(a.type.mark,h,a.to));for(let O=l+1;O<n;O++)this.parts[O]instanceof co&&u.push(this.parts[O]),this.parts[O]=null;s.type.mark&&u.push(this.elt(s.type.mark,s.from,p));let f=this.elt(c,h,p,u);this.parts[l]=i&&a.from!=h?new ir(a.type,a.from,h,a.side):null,(this.parts[n]=i&&s.to!=p?new ir(s.type,p,s.to,s.side):null)?this.parts.splice(n,0,f):this.parts[n]=f}let t=[];for(let n=e;n<this.parts.length;n++){let s=this.parts[n];s instanceof co&&t.push(s)}return t}findOpeningDelimiter(e){for(let t=this.parts.length-1;t>=0;t--){let n=this.parts[t];if(n instanceof ir&&n.type==e&&n.side&1)return t}return null}takeContent(e){let t=this.resolveMarkers(e);return this.parts.length=e,t}getDelimiterAt(e){let t=this.parts[e];return t instanceof ir?t:null}skipSpace(e){return zi(this.text,e-this.offset)+this.offset}elt(e,t,n,s){return typeof e=="string"?et(this.parser.getNodeType(e),t,n,s):new a0(e,t)}}wh.linkStart=ts;wh.imageStart=Ha;function du(r,e){if(!e.length)return r;if(!r.length)return e;let t=r.slice(),n=0;for(let s of e){for(;n<t.length&&t[n].to<s.to;)n++;if(n<t.length&&t[n].from<s.from){let i=t[n];i instanceof co&&(t[n]=new co(i.type,i.from,i.to,du(i.children,[s])))}else t.splice(n++,0,s)}return t}const aT=[ge.CodeBlock,ge.ListItem,ge.OrderedList,ge.BulletList];let lT=class{constructor(e,t){this.fragments=e,this.input=t,this.i=0,this.fragment=null,this.fragmentEnd=-1,this.cursor=null,e.length&&(this.fragment=e[this.i++])}nextFragment(){this.fragment=this.i<this.fragments.length?this.fragments[this.i++]:null,this.cursor=null,this.fragmentEnd=-1}moveTo(e,t){for(;this.fragment&&this.fragment.to<=e;)this.nextFragment();if(!this.fragment||this.fragment.from>(e?e-1:0))return!1;if(this.fragmentEnd<0){let i=this.fragment.to;for(;i>0&&this.input.read(i-1,i)!=`
|
|
27
|
+
`;)i--;this.fragmentEnd=i?i-1:0}let n=this.cursor;n||(n=this.cursor=this.fragment.tree.cursor(),n.firstChild());let s=e+this.fragment.offset;for(;n.to<=s;)if(!n.parent())return!1;for(;;){if(n.from>=s)return this.fragment.from<=t;if(!n.childAfter(s))return!1}}matches(e){let t=this.cursor.tree;return t&&t.prop(je.contextHash)==e}takeNodes(e){let t=this.cursor,n=this.fragment.offset,s=this.fragmentEnd-(this.fragment.openEnd?1:0),i=e.absoluteLineStart,o=i,a=e.block.children.length,l=o,c=a;for(;;){if(t.to-n>s){if(t.type.isAnonymous&&t.firstChild())continue;break}let u=f0(t.from-n,e.ranges);if(t.to-n<=e.ranges[e.rangeI].to)e.addNode(t.tree,u);else{let h=new nt(e.parser.nodeSet.types[ge.Paragraph],[],[],0,e.block.hashProp);e.reusePlaceholders.set(h,t.tree),e.addNode(h,u)}if(t.type.is("Block")&&(aT.indexOf(t.type.id)<0?(o=t.to-n,a=e.block.children.length):(o=l,a=c),l=t.to-n,c=e.block.children.length),!t.nextSibling())break}for(;e.block.children.length>a;)e.block.children.pop(),e.block.positions.pop();return o-i}};function f0(r,e){let t=r;for(let n=1;n<e.length;n++){let s=e[n-1].to,i=e[n].from;s<r&&(t-=i-s)}return t}const cT=Hs({"Blockquote/...":Q.quote,HorizontalRule:Q.contentSeparator,"ATXHeading1/... SetextHeading1/...":Q.heading1,"ATXHeading2/... SetextHeading2/...":Q.heading2,"ATXHeading3/...":Q.heading3,"ATXHeading4/...":Q.heading4,"ATXHeading5/...":Q.heading5,"ATXHeading6/...":Q.heading6,"Comment CommentBlock":Q.comment,Escape:Q.escape,Entity:Q.character,"Emphasis/...":Q.emphasis,"StrongEmphasis/...":Q.strong,"Link/... Image/...":Q.link,"OrderedList/... BulletList/...":Q.list,"BlockQuote/...":Q.quote,"InlineCode CodeText":Q.monospace,"URL Autolink":Q.url,"HeaderMark HardBreak QuoteMark ListMark LinkMark EmphasisMark CodeMark":Q.processingInstruction,"CodeInfo LinkLabel":Q.labelName,LinkTitle:Q.string,Paragraph:Q.content}),uT=new wl(new ko(i0).extend(cT),Object.keys(sa).map(r=>sa[r]),Object.keys(sa).map(r=>n0[r]),Object.keys(sa),nT,FO,Object.keys(ec).map(r=>ec[r]),Object.keys(ec),[]);function hT(r,e,t){let n=[];for(let s=r.firstChild,i=e;;s=s.nextSibling){let o=s?s.from:t;if(o>i&&n.push({from:i,to:o}),!s)break;i=s.to}return n}function dT(r){let{codeParser:e,htmlParser:t}=r;return{wrap:Cg((s,i)=>{let o=s.type.id;if(e&&(o==ge.CodeBlock||o==ge.FencedCode)){let a="";if(o==ge.FencedCode){let c=s.node.getChild(ge.CodeInfo);c&&(a=i.read(c.from,c.to))}let l=e(a);if(l)return{parser:l,overlay:c=>c.type.id==ge.CodeText,bracketed:o==ge.FencedCode}}else if(t&&(o==ge.HTMLBlock||o==ge.HTMLTag||o==ge.CommentBlock))return{parser:t,overlay:hT(s.node,s.from,s.to)};return null})}}const fT={resolve:"Strikethrough",mark:"StrikethroughMark"},pT={defineNodes:[{name:"Strikethrough",style:{"Strikethrough/...":Q.strikethrough}},{name:"StrikethroughMark",style:Q.processingInstruction}],parseInline:[{name:"Strikethrough",parse(r,e,t){if(e!=126||r.char(t+1)!=126||r.char(t+2)==126)return-1;let n=r.slice(t-1,t),s=r.slice(t+2,t+3),i=/\s|^$/.test(n),o=/\s|^$/.test(s),a=uo.test(n),l=uo.test(s);return r.addDelimiter(fT,t,t+2,!o&&(!l||i||a),!i&&(!a||o||l))},after:"Emphasis"}]};function Ni(r,e,t=0,n,s=0){let i=0,o=!0,a=-1,l=-1,c=!1,u=()=>{n.push(r.elt("TableCell",s+a,s+l,r.parser.parseInline(e.slice(a,l),s+a)))};for(let h=t;h<e.length;h++){let p=e.charCodeAt(h);p==124&&!c?((!o||a>-1)&&i++,o=!1,n&&(a>-1&&u(),n.push(r.elt("TableDelimiter",h+s,h+s+1))),a=l=-1):(c||p!=32&&p!=9)&&(a<0&&(a=h),l=h+1),c=!c&&p==92}return a>-1&&(i++,n&&u()),i}function If(r,e){for(let t=e;t<r.length;t++){let n=r.charCodeAt(t);if(n==124)return!0;n==92&&t++}return!1}const p0=/^\|?(\s*:?-+:?\s*\|)+(\s*:?-+:?\s*)?$/;class Vf{constructor(){this.rows=null}nextLine(e,t,n){if(this.rows==null){this.rows=!1;let s;if((t.next==45||t.next==58||t.next==124)&&p0.test(s=t.text.slice(t.pos))){let i=[];Ni(e,n.content,0,i,n.start)==Ni(e,s,t.pos)&&(this.rows=[e.elt("TableHeader",n.start,n.start+n.content.length,i),e.elt("TableDelimiter",e.lineStart+t.pos,e.lineStart+t.text.length)])}}else if(this.rows){let s=[];Ni(e,t.text,t.pos,s,e.lineStart),this.rows.push(e.elt("TableRow",e.lineStart+t.pos,e.lineStart+t.text.length,s))}return!1}finish(e,t){return this.rows?(e.addLeafElement(t,e.elt("Table",t.start,t.start+t.content.length,this.rows)),!0):!1}}const mT={defineNodes:[{name:"Table",block:!0},{name:"TableHeader",style:{"TableHeader/...":Q.heading}},"TableRow",{name:"TableCell",style:Q.content},{name:"TableDelimiter",style:Q.processingInstruction}],parseBlock:[{name:"Table",leaf(r,e){return If(e.content,0)?new Vf:null},endLeaf(r,e,t){if(t.parsers.some(s=>s instanceof Vf)||!If(e.text,e.basePos))return!1;let n=r.peekLine();return p0.test(n)&&Ni(r,e.text,e.basePos)==Ni(r,n,e.basePos)},before:"SetextHeading"}]};class gT{nextLine(){return!1}finish(e,t){return e.addLeafElement(t,e.elt("Task",t.start,t.start+t.content.length,[e.elt("TaskMarker",t.start,t.start+3),...e.parser.parseInline(t.content.slice(3),t.start+3)])),!0}}const OT={defineNodes:[{name:"Task",block:!0,style:Q.list},{name:"TaskMarker",style:Q.atom}],parseBlock:[{name:"TaskList",leaf(r,e){return/^\[[ xX]\][ \t]/.test(e.content)&&r.parentType().name=="ListItem"?new gT:null},after:"SetextHeading"}]},zf=/(www\.)|(https?:\/\/)|([\w.+-]{1,100}@)|(mailto:|xmpp:)/gy,Nf=/[\w-]+(\.[\w-]+)+(\/[^\s<]*)?/gy,vT=/[\w-]+\.[\w-]+($|\/)/,Wf=/[\w.+-]+@[\w-]+(\.[\w.-]+)+/gy,jf=/\/[a-zA-Z\d@.]+/gy;function qf(r,e,t,n){let s=0;for(let i=e;i<t;i++)r[i]==n&&s++;return s}function bT(r,e){Nf.lastIndex=e;let t=Nf.exec(r);if(!t||vT.exec(t[0])[0].indexOf("_")>-1)return-1;let n=e+t[0].length;for(;;){let s=r[n-1],i;if(/[?!.,:*_~]/.test(s)||s==")"&&qf(r,e,n,")")>qf(r,e,n,"("))n--;else if(s==";"&&(i=/&(?:#\d+|#x[a-f\d]+|\w+);$/.exec(r.slice(e,n))))n=e+i.index;else break}return n}function Yf(r,e){Wf.lastIndex=e;let t=Wf.exec(r);if(!t)return-1;let n=t[0][t[0].length-1];return n=="_"||n=="-"?-1:e+t[0].length-(n=="."?1:0)}const xT={parseInline:[{name:"Autolink",parse(r,e,t){let n=t-r.offset;if(n&&/\w/.test(r.text[n-1]))return-1;zf.lastIndex=n;let s=zf.exec(r.text),i=-1;if(!s)return-1;if(s[1]||s[2]){if(i=bT(r.text,n+s[0].length),i>-1&&r.hasOpenLink){let o=/([^\[\]]|\[[^\]]*\])*/.exec(r.text.slice(n,i));i=n+o[0].length}}else s[3]?i=Yf(r.text,n):(i=Yf(r.text,n+s[0].length),i>-1&&s[0]=="xmpp:"&&(jf.lastIndex=i,s=jf.exec(r.text),s&&(i=s.index+s[0].length)));return i<0?-1:(r.addElement(r.elt("URL",t,i+r.offset)),i+r.offset)}}]},yT=[mT,OT,pT,xT];function m0(r,e,t){return(n,s,i)=>{if(s!=r||n.char(i+1)==r)return-1;let o=[n.elt(t,i,i+1)];for(let a=i+1;a<n.end;a++){let l=n.char(a);if(l==r)return n.addElement(n.elt(e,i,a+1,o.concat(n.elt(t,a,a+1))));if(l==92&&o.push(n.elt("Escape",a,a+++2)),Sr(l))break}return-1}}const kT={defineNodes:[{name:"Superscript",style:Q.special(Q.content)},{name:"SuperscriptMark",style:Q.processingInstruction}],parseInline:[{name:"Superscript",parse:m0(94,"Superscript","SuperscriptMark")}]},wT={defineNodes:[{name:"Subscript",style:Q.special(Q.content)},{name:"SubscriptMark",style:Q.processingInstruction}],parseInline:[{name:"Subscript",parse:m0(126,"Subscript","SubscriptMark")}]},ST={defineNodes:[{name:"Emoji",style:Q.character}],parseInline:[{name:"Emoji",parse(r,e,t){let n;return e!=58||!(n=/^[a-zA-Z_0-9]+:/.exec(r.slice(t+1,r.end)))?-1:r.addElement(r.elt("Emoji",t,t+1+n[0].length))}}]};var Ff={};class Ka{constructor(e,t,n,s,i,o,a,l,c,u=0,h){this.p=e,this.stack=t,this.state=n,this.reducePos=s,this.pos=i,this.score=o,this.buffer=a,this.bufferBase=l,this.curContext=c,this.lookAhead=u,this.parent=h}toString(){return`[${this.stack.filter((e,t)=>t%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,n=0){let s=e.parser.context;return new Ka(e,[],t,n,n,0,[],0,s?new Uf(s,s.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var t;let n=e>>19,s=e&65535,{parser:i}=this.p,o=this.reducePos<this.pos-25&&this.setLookAhead(this.pos),a=i.dynamicPrecedence(s);if(a&&(this.score+=a),n==0){this.pushState(i.getGoto(this.state,s,!0),this.reducePos),s<i.minRepeatTerm&&this.storeNode(s,this.reducePos,this.reducePos,o?8:4,!0),this.reduceContext(s,this.reducePos);return}let l=this.stack.length-(n-1)*3-(e&262144?6:0),c=l?this.stack[l-2]:this.p.ranges[0].from,u=this.reducePos-c;u>=2e3&&!(!((t=this.p.parser.nodeSet.types[s])===null||t===void 0)&&t.isAnonymous)&&(c==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=u):this.p.lastBigReductionSize<u&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=c,this.p.lastBigReductionSize=u));let h=l?this.stack[l-1]:0,p=this.bufferBase+this.buffer.length-h;if(s<i.minRepeatTerm||e&131072){let f=i.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(s,c,f,p+4,!0)}if(e&262144)this.state=this.stack[l];else{let f=this.stack[l-3];this.state=i.getGoto(f,s,!0)}for(;this.stack.length>l;)this.stack.pop();this.reduceContext(s,c)}storeNode(e,t,n,s=4,i=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let o=this,a=this.buffer.length;if(a==0&&o.parent&&(a=o.bufferBase-o.parent.bufferBase,o=o.parent),a>0&&o.buffer[a-4]==0&&o.buffer[a-1]>-1){if(t==n)return;if(o.buffer[a-2]>=t){o.buffer[a-2]=n;return}}}if(!i||this.pos==n)this.buffer.push(e,t,n,s);else{let o=this.buffer.length;if(o>0&&(this.buffer[o-4]!=0||this.buffer[o-1]<0)){let a=!1;for(let l=o;l>0&&this.buffer[l-2]>n;l-=4)if(this.buffer[l-1]>=0){a=!0;break}if(a)for(;o>0&&this.buffer[o-2]>n;)this.buffer[o]=this.buffer[o-4],this.buffer[o+1]=this.buffer[o-3],this.buffer[o+2]=this.buffer[o-2],this.buffer[o+3]=this.buffer[o-1],o-=4,s>4&&(s-=4)}this.buffer[o]=e,this.buffer[o+1]=t,this.buffer[o+2]=n,this.buffer[o+3]=s}}shift(e,t,n,s){if(e&131072)this.pushState(e&65535,this.pos);else if((e&262144)==0){let i=e,{parser:o}=this.p;this.pos=s;let a=o.stateFlag(i,1);!a&&(s>n||t<=o.maxNode)&&(this.reducePos=s),this.pushState(i,a?n:Math.min(n,this.reducePos)),this.shiftContext(t,n),t<=o.maxNode&&this.buffer.push(t,n,s,4)}else this.pos=s,this.shiftContext(t,n),t<=this.p.parser.maxNode&&this.buffer.push(t,n,s,4)}apply(e,t,n,s){e&65536?this.reduce(e):this.shift(e,t,n,s)}useNode(e,t){let n=this.p.reused.length-1;(n<0||this.p.reused[n]!=e)&&(this.p.reused.push(e),n++);let s=this.pos;this.reducePos=this.pos=s+e.length,this.pushState(t,s),this.buffer.push(n,s,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,t=e.buffer.length;for(;t>0&&e.buffer[t-2]>e.reducePos;)t-=4;let n=e.buffer.slice(t),s=e.bufferBase+t;for(;e&&s==e.bufferBase;)e=e.parent;return new Ka(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,n,s,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let n=e<=this.p.parser.maxNode;n&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,n?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new $T(this);;){let n=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(n==0)return!1;if((n&65536)==0)return!0;t.reduce(n)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>8||this.stack.length>=120){let s=[];for(let i=0,o;i<t.length;i+=2)(o=t[i+1])!=this.state&&this.p.parser.hasAction(o,e)&&s.push(t[i],o);if(this.stack.length<120)for(let i=0;s.length<8&&i<t.length;i+=2){let o=t[i+1];s.some((a,l)=>l&1&&a==o)||s.push(t[i],o)}t=s}let n=[];for(let s=0;s<t.length&&n.length<4;s+=2){let i=t[s+1];if(i==this.state)continue;let o=this.split();o.pushState(i,this.pos),o.storeNode(0,o.pos,o.pos,4,!0),o.shiftContext(t[s],this.pos),o.reducePos=this.pos,o.score-=200,n.push(o)}return n}forceReduce(){let{parser:e}=this.p,t=e.stateSlot(this.state,5);if((t&65536)==0)return!1;if(!e.validAction(this.state,t)){let n=t>>19,s=t&65535,i=this.stack.length-n*3;if(i<0||e.getGoto(this.stack[i],s,!1)<0){let o=this.findForcedReduction();if(o==null)return!1;t=o}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(t),!0}findForcedReduction(){let{parser:e}=this.p,t=[],n=(s,i)=>{if(!t.includes(s))return t.push(s),e.allActions(s,o=>{if(!(o&393216))if(o&65536){let a=(o>>19)-i;if(a>1){let l=o&65535,c=this.stack.length-a*3;if(c>=0&&e.getGoto(this.stack[c],l,!1)>=0)return a<<19|65536|l}}else{let a=n(o,i+1);if(a!=null)return a}})};return n(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;t<this.stack.length;t+=3)if(this.stack[t]!=e.stack[t])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(e){return this.p.parser.dialect.flags[e]}shiftContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,e,this,this.p.stream.reset(t)))}reduceContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,e,this,this.p.stream.reset(t)))}emitContext(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-3)&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-4)&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(e){if(e!=this.curContext.context){let t=new Uf(this.curContext.tracker,e);t.hash!=this.curContext.hash&&this.emitContext(),this.curContext=t}}setLookAhead(e){return e<=this.lookAhead?!1:(this.emitLookAhead(),this.lookAhead=e,!0)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class Uf{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}}class $T{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=e&65535,n=e>>19;n==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(n-1)*3;let s=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=s}}class Ja{constructor(e,t,n){this.stack=e,this.pos=t,this.index=n,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,t=e.bufferBase+e.buffer.length){return new Ja(e,t,t-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new Ja(this.stack,this.pos,this.index)}}function Zi(r,e=Uint16Array){if(typeof r!="string")return r;let t=null;for(let n=0,s=0;n<r.length;){let i=0;for(;;){let o=r.charCodeAt(n++),a=!1;if(o==126){i=65535;break}o>=92&&o--,o>=34&&o--;let l=o-32;if(l>=46&&(l-=46,a=!0),i+=l,a)break;i*=46}t?t[s++]=i:t=new e(i)}return t}class va{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const Gf=new va;class CT{constructor(e,t){this.input=e,this.ranges=t,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=Gf,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let n=this.range,s=this.rangeIndex,i=this.pos+e;for(;i<n.from;){if(!s)return null;let o=this.ranges[--s];i-=n.from-o.to,n=o}for(;t<0?i>n.to:i>=n.to;){if(s==this.ranges.length-1)return null;let o=this.ranges[++s];i+=o.from-n.to,n=o}return i}clipPos(e){if(e>=this.range.from&&e<this.range.to)return e;for(let t of this.ranges)if(t.to>e)return Math.max(e,t.from);return this.end}peek(e){let t=this.chunkOff+e,n,s;if(t>=0&&t<this.chunk.length)n=this.pos+e,s=this.chunk.charCodeAt(t);else{let i=this.resolveOffset(e,1);if(i==null)return-1;if(n=i,n>=this.chunk2Pos&&n<this.chunk2Pos+this.chunk2.length)s=this.chunk2.charCodeAt(n-this.chunk2Pos);else{let o=this.rangeIndex,a=this.range;for(;a.to<=n;)a=this.ranges[++o];this.chunk2=this.input.chunk(this.chunk2Pos=n),n+this.chunk2.length>a.to&&(this.chunk2=this.chunk2.slice(0,a.to-n)),s=this.chunk2.charCodeAt(0)}}return n>=this.token.lookAhead&&(this.token.lookAhead=n+1),s}acceptToken(e,t=0){let n=t?this.resolveOffset(t,-1):this.pos;if(n==null||n<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=e,this.token.end=n}acceptTokenTo(e,t){this.token.value=e,this.token.end=t}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:e,chunkPos:t}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=e,this.chunk2Pos=t,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let e=this.input.chunk(this.pos),t=this.pos+e.length;this.chunk=t>this.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=Gf,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;e>=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e<this.chunkPos+this.chunk.length?this.chunkOff=e-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(e,t){if(e>=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let n="";for(let s of this.ranges){if(s.from>=t)break;s.to>e&&(n+=this.input.read(Math.max(s.from,e),Math.min(s.to,t)))}return n}}class Bs{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:n}=t.p;g0(this.data,e,t,this.id,n.data,n.tokenPrecTable)}}Bs.prototype.contextual=Bs.prototype.fallback=Bs.prototype.extend=!1;class el{constructor(e,t,n){this.precTable=t,this.elseToken=n,this.data=typeof e=="string"?Zi(e):e}token(e,t){let n=e.pos,s=0;for(;;){let i=e.next<0,o=e.resolveOffset(1,1);if(g0(this.data,e,t,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(i||s++,o==null)break;e.reset(o,e.token)}s&&(e.reset(n,e.token),e.acceptToken(this.elseToken,s))}}el.prototype.contextual=Bs.prototype.fallback=Bs.prototype.extend=!1;class cr{constructor(e,t={}){this.token=e,this.contextual=!!t.contextual,this.fallback=!!t.fallback,this.extend=!!t.extend}}function g0(r,e,t,n,s,i){let o=0,a=1<<n,{dialect:l}=t.p.parser;e:for(;(a&r[o])!=0;){let c=r[o+1];for(let f=o+3;f<c;f+=2)if((r[f+1]&a)>0){let g=r[f];if(l.allows(g)&&(e.token.value==-1||e.token.value==g||QT(g,e.token.value,s,i))){e.acceptToken(g);break}}let u=e.next,h=0,p=r[o+2];if(e.next<0&&p>h&&r[c+p*3-3]==65535){o=r[c+p*3-1];continue e}for(;h<p;){let f=h+p>>1,g=c+f+(f<<1),O=r[g],y=r[g+1]||65536;if(u<O)p=f;else if(u>=y)h=f+1;else{o=r[g+2],e.advance();continue e}}break}}function Hf(r,e,t){for(let n=e,s;(s=r[n])!=65535;n++)if(s==t)return n-e;return-1}function QT(r,e,t,n){let s=Hf(t,n,e);return s<0||Hf(t,n,r)<s}const tr=typeof process<"u"&&Ff&&/\bparse\b/.test(Ff.LOG);let tc=null;function Kf(r,e,t){let n=r.cursor(st.IncludeAnonymous);for(n.moveTo(e);;)if(!(t<0?n.childBefore(e):n.childAfter(e)))for(;;){if((t<0?n.to<e:n.from>e)&&!n.type.isError)return t<0?Math.max(0,Math.min(n.to-1,e-25)):Math.min(r.length,Math.max(n.from+1,e+25));if(t<0?n.prevSibling():n.nextSibling())break;if(!n.parent())return t<0?0:r.length}}class PT{constructor(e,t){this.fragments=e,this.nodeSet=t,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?Kf(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?Kf(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(e<this.nextStart)return null;for(;this.fragment&&this.safeTo<=e;)this.nextFragment();if(!this.fragment)return null;for(;;){let t=this.trees.length-1;if(t<0)return this.nextFragment(),null;let n=this.trees[t],s=this.index[t];if(s==n.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let i=n.children[s],o=this.start[t]+n.positions[s];if(o>e)return this.nextStart=o,null;if(i instanceof nt){if(o==e){if(o<this.safeFrom)return null;let a=o+i.length;if(a<=this.safeTo){let l=i.prop(je.lookAhead);if(!l||a+l<this.fragment.to)return i}}this.index[t]++,o+i.length>=Math.max(this.safeFrom,e)&&(this.trees.push(i),this.start.push(o),this.index.push(0))}else this.index[t]++,this.nextStart=o+i.length}}}class TT{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(n=>new va)}getActions(e){let t=0,n=null,{parser:s}=e.p,{tokenizers:i}=s,o=s.stateSlot(e.state,3),a=e.curContext?e.curContext.hash:0,l=0;for(let c=0;c<i.length;c++){if((1<<c&o)==0)continue;let u=i[c],h=this.tokens[c];if(!(n&&!u.fallback)&&((u.contextual||h.start!=e.pos||h.mask!=o||h.context!=a)&&(this.updateCachedToken(h,u,e),h.mask=o,h.context=a),h.lookAhead>h.end+25&&(l=Math.max(h.lookAhead,l)),h.value!=0)){let p=t;if(h.extended>-1&&(t=this.addActions(e,h.extended,h.end,t)),t=this.addActions(e,h.value,h.end,t),!u.extend&&(n=h,t>p))break}}for(;this.actions.length>t;)this.actions.pop();return l&&e.setLookAhead(l),!n&&e.pos==this.stream.end&&(n=new va,n.value=e.p.parser.eofTerm,n.start=n.end=e.pos,t=this.addActions(e,n.value,n.end,t)),this.mainToken=n,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new va,{pos:n,p:s}=e;return t.start=n,t.end=Math.min(n+1,s.stream.end),t.value=n==s.stream.end?s.parser.eofTerm:0,t}updateCachedToken(e,t,n){let s=this.stream.clipPos(n.pos);if(t.token(this.stream.reset(s,e),n),e.value>-1){let{parser:i}=n.p;for(let o=0;o<i.specialized.length;o++)if(i.specialized[o]==e.value){let a=i.specializers[o](this.stream.read(e.start,e.end),n);if(a>=0&&n.p.parser.dialect.allows(a>>1)){(a&1)==0?e.value=a>>1:e.extended=a>>1;break}}}else e.value=0,e.end=this.stream.clipPos(s+1)}putAction(e,t,n,s){for(let i=0;i<s;i+=3)if(this.actions[i]==e)return s;return this.actions[s++]=e,this.actions[s++]=t,this.actions[s++]=n,s}addActions(e,t,n,s){let{state:i}=e,{parser:o}=e.p,{data:a}=o;for(let l=0;l<2;l++)for(let c=o.stateSlot(i,l?2:1);;c+=3){if(a[c]==65535)if(a[c+1]==1)c=ln(a,c+2);else{s==0&&a[c+1]==2&&(s=this.putAction(ln(a,c+2),t,n,s));break}a[c]==t&&(s=this.putAction(ln(a,c+1),t,n,s))}return s}}class MT{constructor(e,t,n,s){this.parser=e,this.input=t,this.ranges=s,this.recovering=0,this.nextStackID=9812,this.minStackPos=0,this.reused=[],this.stoppedAt=null,this.lastBigReductionStart=-1,this.lastBigReductionSize=0,this.bigReductionCount=0,this.stream=new CT(t,s),this.tokens=new TT(e,this.stream),this.topTerm=e.top[1];let{from:i}=s[0];this.stacks=[Ka.start(this,e.top[0],i)],this.fragments=n.length&&this.stream.end-i>e.bufferLength*4?new PT(n,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,t=this.minStackPos,n=this.stacks=[],s,i;if(this.bigReductionCount>300&&e.length==1){let[o]=e;for(;o.forceReduce()&&o.stack.length&&o.stack[o.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let o=0;o<e.length;o++){let a=e[o];for(;;){if(this.tokens.mainToken=null,a.pos>t)n.push(a);else{if(this.advanceStack(a,n,e))continue;{s||(s=[],i=[]),s.push(a);let l=this.tokens.getMainToken(a);i.push(l.value,l.end)}}break}}if(!n.length){let o=s&&_T(s);if(o)return tr&&console.log("Finish with "+this.stackID(o)),this.stackToTree(o);if(this.parser.strict)throw tr&&s&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+t);this.recovering||(this.recovering=5)}if(this.recovering&&s){let o=this.stoppedAt!=null&&s[0].pos>this.stoppedAt?s[0]:this.runRecovery(s,i,n);if(o)return tr&&console.log("Force-finish "+this.stackID(o)),this.stackToTree(o.forceAll())}if(this.recovering){let o=this.recovering==1?1:this.recovering*3;if(n.length>o)for(n.sort((a,l)=>l.score-a.score);n.length>o;)n.pop();n.some(a=>a.reducePos>t)&&this.recovering--}else if(n.length>1){e:for(let o=0;o<n.length-1;o++){let a=n[o];for(let l=o+1;l<n.length;l++){let c=n[l];if(a.sameState(c)||a.buffer.length>500&&c.buffer.length>500)if((a.score-c.score||a.buffer.length-c.buffer.length)>0)n.splice(l--,1);else{n.splice(o--,1);continue e}}}n.length>12&&(n.sort((o,a)=>a.score-o.score),n.splice(12,n.length-12))}this.minStackPos=n[0].pos;for(let o=1;o<n.length;o++)n[o].pos<this.minStackPos&&(this.minStackPos=n[o].pos);return null}stopAt(e){if(this.stoppedAt!=null&&this.stoppedAt<e)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=e}advanceStack(e,t,n){let s=e.pos,{parser:i}=this,o=tr?this.stackID(e)+" -> ":"";if(this.stoppedAt!=null&&s>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let c=e.curContext&&e.curContext.tracker.strict,u=c?e.curContext.hash:0;for(let h=this.fragments.nodeAt(s);h;){let p=this.parser.nodeSet.types[h.type.id]==h.type?i.getGoto(e.state,h.type.id):-1;if(p>-1&&h.length&&(!c||(h.prop(je.contextHash)||0)==u))return e.useNode(h,p),tr&&console.log(o+this.stackID(e)+` (via reuse of ${i.getName(h.type.id)})`),!0;if(!(h instanceof nt)||h.children.length==0||h.positions[0]>0)break;let f=h.children[0];if(f instanceof nt&&h.positions[0]==0)h=f;else break}}let a=i.stateSlot(e.state,4);if(a>0)return e.reduce(a),tr&&console.log(o+this.stackID(e)+` (via always-reduce ${i.getName(a&65535)})`),!0;if(e.stack.length>=8400)for(;e.stack.length>6e3&&e.forceReduce(););let l=this.tokens.getActions(e);for(let c=0;c<l.length;){let u=l[c++],h=l[c++],p=l[c++],f=c==l.length||!n,g=f?e:e.split(),O=this.tokens.mainToken;if(g.apply(u,h,O?O.start:g.pos,p),tr&&console.log(o+this.stackID(g)+` (via ${(u&65536)==0?"shift":`reduce of ${i.getName(u&65535)}`} for ${i.getName(h)} @ ${s}${g==e?"":", split"})`),f)return!0;g.pos>s?t.push(g):n.push(g)}return!1}advanceFully(e,t){let n=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>n)return Jf(e,t),!0}}runRecovery(e,t,n){let s=null,i=!1;for(let o=0;o<e.length;o++){let a=e[o],l=t[o<<1],c=t[(o<<1)+1],u=tr?this.stackID(a)+" -> ":"";if(a.deadEnd&&(i||(i=!0,a.restart(),tr&&console.log(u+this.stackID(a)+" (restarted)"),this.advanceFully(a,n))))continue;let h=a.split(),p=u;for(let f=0;f<10&&h.forceReduce()&&(tr&&console.log(p+this.stackID(h)+" (via force-reduce)"),!this.advanceFully(h,n));f++)tr&&(p=this.stackID(h)+" -> ");for(let f of a.recoverByInsert(l))tr&&console.log(u+this.stackID(f)+" (via recover-insert)"),this.advanceFully(f,n);this.stream.end>a.pos?(c==a.pos&&(c++,l=0),a.recoverByDelete(l,c),tr&&console.log(u+this.stackID(a)+` (via recover-delete ${this.parser.getName(l)})`),Jf(a,n)):(!s||s.score<h.score)&&(s=h)}return s}stackToTree(e){return e.close(),nt.build({buffer:Ja.create(e),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:e.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm})}stackID(e){let t=(tc||(tc=new WeakMap)).get(e);return t||tc.set(e,t=String.fromCodePoint(this.nextStackID++)),t+e}}function Jf(r,e){for(let t=0;t<e.length;t++){let n=e[t];if(n.pos==r.pos&&n.sameState(r)){e[t].score<r.score&&(e[t]=r);return}}e.push(r)}class AT{constructor(e,t,n){this.source=e,this.flags=t,this.disabled=n}allows(e){return!this.disabled||this.disabled[e]==0}}const rc=r=>r;class O0{constructor(e){this.start=e.start,this.shift=e.shift||rc,this.reduce=e.reduce||rc,this.reuse=e.reuse||rc,this.hash=e.hash||(()=>0),this.strict=e.strict!==!1}}class Ys extends Ju{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let t=e.nodeNames.split(" ");this.minRepeatTerm=t.length;for(let a=0;a<e.repeatNodeCount;a++)t.push("");let n=Object.keys(e.topRules).map(a=>e.topRules[a][1]),s=[];for(let a=0;a<t.length;a++)s.push([]);function i(a,l,c){s[a].push([l,l.deserialize(String(c))])}if(e.nodeProps)for(let a of e.nodeProps){let l=a[0];typeof l=="string"&&(l=je[l]);for(let c=1;c<a.length;){let u=a[c++];if(u>=0)i(u,l,a[c++]);else{let h=a[c+-u];for(let p=-u;p>0;p--)i(a[c++],l,h);c++}}}this.nodeSet=new ko(t.map((a,l)=>$t.define({name:l>=this.minRepeatTerm?void 0:a,id:l,props:s[l],top:n.indexOf(l)>-1,error:l==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(l)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=yg;let o=Zi(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let a=0;a<this.specializerSpecs.length;a++)this.specialized[a]=this.specializerSpecs[a].term;this.specializers=this.specializerSpecs.map(ep),this.states=Zi(e.states,Uint32Array),this.data=Zi(e.stateData),this.goto=Zi(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(a=>typeof a=="number"?new Bs(o,a):a),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,n){let s=new MT(this,e,t,n);for(let i of this.wrappers)s=i(s,e,t,n);return s}getGoto(e,t,n=!1){let s=this.goto;if(t>=s[0])return-1;for(let i=s[t+1];;){let o=s[i++],a=o&1,l=s[i++];if(a&&n)return l;for(let c=i+(o>>1);i<c;i++)if(s[i]==e)return l;if(a)return-1}}hasAction(e,t){let n=this.data;for(let s=0;s<2;s++)for(let i=this.stateSlot(e,s?2:1),o;;i+=3){if((o=n[i])==65535)if(n[i+1]==1)o=n[i=ln(n,i+2)];else{if(n[i+1]==2)return ln(n,i+2);break}if(o==t||o==0)return ln(n,i+1)}return 0}stateSlot(e,t){return this.states[e*6+t]}stateFlag(e,t){return(this.stateSlot(e,0)&t)>0}validAction(e,t){return!!this.allActions(e,n=>n==t?!0:null)}allActions(e,t){let n=this.stateSlot(e,4),s=n?t(n):void 0;for(let i=this.stateSlot(e,1);s==null;i+=3){if(this.data[i]==65535)if(this.data[i+1]==1)i=ln(this.data,i+2);else break;s=t(ln(this.data,i+1))}return s}nextStates(e){let t=[];for(let n=this.stateSlot(e,1);;n+=3){if(this.data[n]==65535)if(this.data[n+1]==1)n=ln(this.data,n+2);else break;if((this.data[n+2]&1)==0){let s=this.data[n+1];t.some((i,o)=>o&1&&i==s)||t.push(this.data[n],s)}}return t}configure(e){let t=Object.assign(Object.create(Ys.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let n=this.topRules[e.top];if(!n)throw new RangeError(`Invalid top rule name ${e.top}`);t.top=n}return e.tokenizers&&(t.tokenizers=this.tokenizers.map(n=>{let s=e.tokenizers.find(i=>i.from==n);return s?s.to:n})),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map((n,s)=>{let i=e.specializers.find(a=>a.from==n.external);if(!i)return n;let o=Object.assign(Object.assign({},n),{external:i.to});return t.specializers[s]=ep(o),o})),e.contextTracker&&(t.context=e.contextTracker),e.dialect&&(t.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(t.strict=e.strict),e.wrap&&(t.wrappers=t.wrappers.concat(e.wrap)),e.bufferLength!=null&&(t.bufferLength=e.bufferLength),t}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let t=this.dynamicPrecedences;return t==null?0:t[e]||0}parseDialect(e){let t=Object.keys(this.dialects),n=t.map(()=>!1);if(e)for(let i of e.split(" ")){let o=t.indexOf(i);o>=0&&(n[o]=!0)}let s=null;for(let i=0;i<t.length;i++)if(!n[i])for(let o=this.dialects[t[i]],a;(a=this.data[o++])!=65535;)(s||(s=new Uint8Array(this.maxTerm+1)))[a]=1;return new AT(e,n,s)}static deserialize(e){return new Ys(e)}}function ln(r,e){return r[e]|r[e+1]<<16}function _T(r){let e=null;for(let t of r){let n=t.p.stoppedAt;(t.pos==t.p.stream.end||n!=null&&t.pos>n)&&t.p.parser.stateFlag(t.state,2)&&(!e||e.score<t.score)&&(e=t)}return e}function ep(r){if(r.external){let e=r.extend?1:0;return(t,n)=>r.external(t,n)<<1|e}return r.get}const RT=55,BT=1,ZT=56,ET=2,DT=57,LT=3,tp=4,XT=5,Sh=6,v0=7,b0=8,x0=9,y0=10,IT=11,VT=12,zT=13,nc=58,NT=14,WT=15,rp=59,k0=21,jT=23,w0=24,qT=25,fu=27,S0=28,YT=29,FT=32,UT=35,GT=37,HT=38,KT=0,JT=1,eM={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},tM={dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},np={dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}};function rM(r){return r==45||r==46||r==58||r>=65&&r<=90||r==95||r>=97&&r<=122||r>=161}let sp=null,ip=null,op=0;function pu(r,e){let t=r.pos+e;if(op==t&&ip==r)return sp;let n=r.peek(e),s="";for(;rM(n);)s+=String.fromCharCode(n),n=r.peek(++e);return ip=r,op=t,sp=s?s.toLowerCase():n==nM||n==sM?void 0:null}const $0=60,tl=62,$h=47,nM=63,sM=33,iM=45;function ap(r,e){this.name=r,this.parent=e}const oM=[Sh,y0,v0,b0,x0],aM=new O0({start:null,shift(r,e,t,n){return oM.indexOf(e)>-1?new ap(pu(n,1)||"",r):r},reduce(r,e){return e==k0&&r?r.parent:r},reuse(r,e,t,n){let s=e.type.id;return s==Sh||s==GT?new ap(pu(n,1)||"",r):r},strict:!1}),lM=new cr((r,e)=>{if(r.next!=$0){r.next<0&&e.context&&r.acceptToken(nc);return}r.advance();let t=r.next==$h;t&&r.advance();let n=pu(r,0);if(n===void 0)return;if(!n)return r.acceptToken(t?WT:NT);let s=e.context?e.context.name:null;if(t){if(n==s)return r.acceptToken(IT);if(s&&tM[s])return r.acceptToken(nc,-2);if(e.dialectEnabled(KT))return r.acceptToken(VT);for(let i=e.context;i;i=i.parent)if(i.name==n)return;r.acceptToken(zT)}else{if(n=="script")return r.acceptToken(v0);if(n=="style")return r.acceptToken(b0);if(n=="textarea")return r.acceptToken(x0);if(eM.hasOwnProperty(n))return r.acceptToken(y0);s&&np[s]&&np[s][n]?r.acceptToken(nc,-1):r.acceptToken(Sh)}},{contextual:!0}),cM=new cr(r=>{for(let e=0,t=0;;t++){if(r.next<0){t&&r.acceptToken(rp);break}if(r.next==iM)e++;else if(r.next==tl&&e>=2){t>=3&&r.acceptToken(rp,-2);break}else e=0;r.advance()}});function uM(r){for(;r;r=r.parent)if(r.name=="svg"||r.name=="math")return!0;return!1}const hM=new cr((r,e)=>{if(r.next==$h&&r.peek(1)==tl){let t=e.dialectEnabled(JT)||uM(e.context);r.acceptToken(t?XT:tp,2)}else r.next==tl&&r.acceptToken(tp,1)});function Ch(r,e,t){let n=2+r.length;return new cr(s=>{for(let i=0,o=0,a=0;;a++){if(s.next<0){a&&s.acceptToken(e);break}if(i==0&&s.next==$0||i==1&&s.next==$h||i>=2&&i<n&&s.next==r.charCodeAt(i-2))i++,o++;else if(i==n&&s.next==tl){a>o?s.acceptToken(e,-o):s.acceptToken(t,-(o-2));break}else if((s.next==10||s.next==13)&&a){s.acceptToken(e,1);break}else i=o=0;s.advance()}})}const dM=Ch("script",RT,BT),fM=Ch("style",ZT,ET),pM=Ch("textarea",DT,LT),mM=Hs({"Text RawText IncompleteTag IncompleteCloseTag":Q.content,"StartTag StartCloseTag SelfClosingEndTag EndTag":Q.angleBracket,TagName:Q.tagName,"MismatchedCloseTag/TagName":[Q.tagName,Q.invalid],AttributeName:Q.attributeName,"AttributeValue UnquotedAttributeValue":Q.attributeValue,Is:Q.definitionOperator,"EntityReference CharacterReference":Q.character,Comment:Q.blockComment,ProcessingInst:Q.processingInstruction,DoctypeDecl:Q.documentMeta}),gM=Ys.deserialize({version:14,states:",xOVO!rOOO!ZQ#tO'#CrO!`Q#tO'#C{O!eQ#tO'#DOO!jQ#tO'#DRO!oQ#tO'#DTO!tOaO'#CqO#PObO'#CqO#[OdO'#CqO$kO!rO'#CqOOO`'#Cq'#CqO$rO$fO'#DUO$zQ#tO'#DWO%PQ#tO'#DXOOO`'#Dl'#DlOOO`'#DZ'#DZQVO!rOOO%UQ&rO,59^O%aQ&rO,59gO%lQ&rO,59jO%wQ&rO,59mO&SQ&rO,59oOOOa'#D_'#D_O&_OaO'#CyO&jOaO,59]OOOb'#D`'#D`O&rObO'#C|O&}ObO,59]OOOd'#Da'#DaO'VOdO'#DPO'bOdO,59]OOO`'#Db'#DbO'jO!rO,59]O'qQ#tO'#DSOOO`,59],59]OOOp'#Dc'#DcO'vO$fO,59pOOO`,59p,59pO(OQ#|O,59rO(TQ#|O,59sOOO`-E7X-E7XO(YQ&rO'#CtOOQW'#D['#D[O(hQ&rO1G.xOOOa1G.x1G.xOOO`1G/Z1G/ZO(sQ&rO1G/ROOOb1G/R1G/RO)OQ&rO1G/UOOOd1G/U1G/UO)ZQ&rO1G/XOOO`1G/X1G/XO)fQ&rO1G/ZOOOa-E7]-E7]O)qQ#tO'#CzOOO`1G.w1G.wOOOb-E7^-E7^O)vQ#tO'#C}OOOd-E7_-E7_O){Q#tO'#DQOOO`-E7`-E7`O*QQ#|O,59nOOOp-E7a-E7aOOO`1G/[1G/[OOO`1G/^1G/^OOO`1G/_1G/_O*VQ,UO,59`OOQW-E7Y-E7YOOOa7+$d7+$dOOO`7+$u7+$uOOOb7+$m7+$mOOOd7+$p7+$pOOO`7+$s7+$sO*bQ#|O,59fO*gQ#|O,59iO*lQ#|O,59lOOO`1G/Y1G/YO*qO7[O'#CwO+SOMhO'#CwOOQW1G.z1G.zOOO`1G/Q1G/QOOO`1G/T1G/TOOO`1G/W1G/WOOOO'#D]'#D]O+eO7[O,59cOOQW,59c,59cOOOO'#D^'#D^O+vOMhO,59cOOOO-E7Z-E7ZOOQW1G.}1G.}OOOO-E7[-E7[",stateData:",c~O!_OS~OUSOVPOWQOXROYTO[]O][O^^O_^Oa^Ob^Oc^Od^Oy^O|_O!eZO~OgaO~OgbO~OgcO~OgdO~OgeO~O!XfOPmP![mP~O!YiOQpP![pP~O!ZlORsP![sP~OUSOVPOWQOXROYTOZqO[]O][O^^O_^Oa^Ob^Oc^Od^Oy^O!eZO~O![rO~P#gO!]sO!fuO~OgvO~OgwO~OS|OT}OiyO~OS!POT}OiyO~OS!ROT}OiyO~OS!TOT}OiyO~OS}OT}OiyO~O!XfOPmX![mX~OP!WO![!XO~O!YiOQpX![pX~OQ!ZO![!XO~O!ZlORsX![sX~OR!]O![!XO~O![!XO~P#gOg!_O~O!]sO!f!aO~OS!bO~OS!cO~Oj!dOShXThXihX~OS!fOT!gOiyO~OS!hOT!gOiyO~OS!iOT!gOiyO~OS!jOT!gOiyO~OS!gOT!gOiyO~Og!kO~Og!lO~Og!mO~OS!nO~Ol!qO!a!oO!c!pO~OS!rO~OS!sO~OS!tO~Ob!uOc!uOd!uO!a!wO!b!uO~Ob!xOc!xOd!xO!c!wO!d!xO~Ob!uOc!uOd!uO!a!{O!b!uO~Ob!xOc!xOd!xO!c!{O!d!xO~OT~cbd!ey|!e~",goto:"%q!aPPPPPPPPPPPPPPPPPPPPP!b!hP!nPP!zP!}#Q#T#Z#^#a#g#j#m#s#y!bP!b!bP$P$V$m$s$y%P%V%]%cPPPPPPPP%iX^OX`pXUOX`pezabcde{!O!Q!S!UR!q!dRhUR!XhXVOX`pRkVR!XkXWOX`pRnWR!XnXXOX`pQrXR!XpXYOX`pQ`ORx`Q{aQ!ObQ!QcQ!SdQ!UeZ!e{!O!Q!S!UQ!v!oR!z!vQ!y!pR!|!yQgUR!VgQjVR!YjQmWR![mQpXR!^pQtZR!`tS_O`ToXp",nodeNames:"⚠ StartCloseTag StartCloseTag StartCloseTag EndTag SelfClosingEndTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteTag IncompleteCloseTag Document Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl",maxTerm:68,context:aM,nodeProps:[["closedBy",-10,1,2,3,7,8,9,10,11,12,13,"EndTag",6,"EndTag SelfClosingEndTag",-4,22,31,34,37,"CloseTag"],["openedBy",4,"StartTag StartCloseTag",5,"StartTag",-4,30,33,36,38,"OpenTag"],["group",-10,14,15,18,19,20,21,40,41,42,43,"Entity",17,"Entity TextContent",-3,29,32,35,"TextContent Entity"],["isolate",-11,22,30,31,33,34,36,37,38,39,42,43,"ltr",-3,27,28,40,""]],propSources:[mM],skippedNodes:[0],repeatNodeCount:9,tokenData:"!<p!aR!YOX$qXY,QYZ,QZ[$q[]&X]^,Q^p$qpq,Qqr-_rs3_sv-_vw3}wxHYx}-_}!OH{!O!P-_!P!Q$q!Q![-_![!]Mz!]!^-_!^!_!$S!_!`!;x!`!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4U-_4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!Z$|caPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr$qrs&}sv$qvw+Pwx(tx!^$q!^!_*V!_!a&X!a#S$q#S#T&X#T;'S$q;'S;=`+z<%lO$q!R&bXaP!b`!dpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&Xq'UVaP!dpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}P'pTaPOv'kw!^'k!_;'S'k;'S;=`(P<%lO'kP(SP;=`<%l'kp([S!dpOv(Vx;'S(V;'S;=`(h<%lO(Vp(kP;=`<%l(Vq(qP;=`<%l&}a({WaP!b`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t`)jT!b`Or)esv)ew;'S)e;'S;=`)y<%lO)e`)|P;=`<%l)ea*SP;=`<%l(t!Q*^V!b`!dpOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!Q*vP;=`<%l*V!R*|P;=`<%l&XW+UYlWOX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+PW+wP;=`<%l+P!Z+}P;=`<%l$q!a,]`aP!b`!dp!_^OX&XXY,QYZ,QZ]&X]^,Q^p&Xpq,Qqr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!_-ljiSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q[/ebiSlWOX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+PS0rXiSqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0mS1bP;=`<%l0m[1hP;=`<%l/^!V1vciSaP!b`!dpOq&Xqr1krs&}sv1kvw0mwx(tx!P1k!P!Q&X!Q!^1k!^!_*V!_!a&X!a#s1k#s$f&X$f;'S1k;'S;=`3R<%l?Ah1k?Ah?BY&X?BY?Mn1k?MnO&X!V3UP;=`<%l1k!_3[P;=`<%l-_!Z3hV!ahaP!dpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}!_4WiiSlWd!ROX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst>]tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^/^!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!Z5zblWOX5uXZ7SZ[5u[^7S^p5uqr5urs7Sst+Ptw5uwx7Sx!]5u!]!^7w!^!a7S!a#S5u#S#T7S#T;'S5u;'S;=`8n<%lO5u!R7VVOp7Sqs7St!]7S!]!^7l!^;'S7S;'S;=`7q<%lO7S!R7qOb!R!R7tP;=`<%l7S!Z8OYlWb!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!Z8qP;=`<%l5u!_8{iiSlWOX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst/^tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^:j!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!_:sbiSlWb!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!V<QciSOp7Sqr;{rs7Sst0mtw;{wx7Sx!P;{!P!Q7S!Q!];{!]!^=]!^!a7S!a#s;{#s$f7S$f;'S;{;'S;=`>P<%l?Ah;{?Ah?BY7S?BY?Mn;{?MnO7S!V=dXiSb!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!V>SP;=`<%l;{!_>YP;=`<%l8t!_>dhiSlWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^/^!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!Z@TalWOX@OXZAYZ[@O[^AY^p@Oqr@OrsAYsw@OwxAYx!]@O!]!^Az!^!aAY!a#S@O#S#TAY#T;'S@O;'S;=`Bq<%lO@O!RA]UOpAYq!]AY!]!^Ao!^;'SAY;'S;=`At<%lOAY!RAtOc!R!RAwP;=`<%lAY!ZBRYlWc!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!ZBtP;=`<%l@O!_COhiSlWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^Dj!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!_DsbiSlWc!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VFQbiSOpAYqrE{rsAYswE{wxAYx!PE{!P!QAY!Q!]E{!]!^GY!^!aAY!a#sE{#s$fAY$f;'SE{;'S;=`G|<%l?AhE{?Ah?BYAY?BY?MnE{?MnOAY!VGaXiSc!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!VHPP;=`<%lE{!_HVP;=`<%lBw!ZHcW!cxaP!b`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t!aIYliSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OKQ!O!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!aK_kiSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!`&X!`!aMS!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!TM_XaP!b`!dp!fQOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!aNZ!ZiSgQaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OMz!O!PMz!P!Q$q!Q![Mz![!]Mz!]!^-_!^!_*V!_!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f$}-_$}%OMz%O%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4UMz4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Je-_$Je$JgMz$Jg$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!a!$PP;=`<%lMz!R!$ZY!b`!dpOq*Vqr!$yrs(Vsv*Vwx)ex!a*V!a!b!4t!b;'S*V;'S;=`*s<%lO*V!R!%Q]!b`!dpOr*Vrs(Vsv*Vwx)ex}*V}!O!%y!O!f*V!f!g!']!g#W*V#W#X!0`#X;'S*V;'S;=`*s<%lO*V!R!&QX!b`!dpOr*Vrs(Vsv*Vwx)ex}*V}!O!&m!O;'S*V;'S;=`*s<%lO*V!R!&vV!b`!dp!ePOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!'dX!b`!dpOr*Vrs(Vsv*Vwx)ex!q*V!q!r!(P!r;'S*V;'S;=`*s<%lO*V!R!(WX!b`!dpOr*Vrs(Vsv*Vwx)ex!e*V!e!f!(s!f;'S*V;'S;=`*s<%lO*V!R!(zX!b`!dpOr*Vrs(Vsv*Vwx)ex!v*V!v!w!)g!w;'S*V;'S;=`*s<%lO*V!R!)nX!b`!dpOr*Vrs(Vsv*Vwx)ex!{*V!{!|!*Z!|;'S*V;'S;=`*s<%lO*V!R!*bX!b`!dpOr*Vrs(Vsv*Vwx)ex!r*V!r!s!*}!s;'S*V;'S;=`*s<%lO*V!R!+UX!b`!dpOr*Vrs(Vsv*Vwx)ex!g*V!g!h!+q!h;'S*V;'S;=`*s<%lO*V!R!+xY!b`!dpOr!+qrs!,hsv!+qvw!-Swx!.[x!`!+q!`!a!/j!a;'S!+q;'S;=`!0Y<%lO!+qq!,mV!dpOv!,hvx!-Sx!`!,h!`!a!-q!a;'S!,h;'S;=`!.U<%lO!,hP!-VTO!`!-S!`!a!-f!a;'S!-S;'S;=`!-k<%lO!-SP!-kO|PP!-nP;=`<%l!-Sq!-xS!dp|POv(Vx;'S(V;'S;=`(h<%lO(Vq!.XP;=`<%l!,ha!.aX!b`Or!.[rs!-Ssv!.[vw!-Sw!`!.[!`!a!.|!a;'S!.[;'S;=`!/d<%lO!.[a!/TT!b`|POr)esv)ew;'S)e;'S;=`)y<%lO)ea!/gP;=`<%l!.[!R!/sV!b`!dp|POr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!0]P;=`<%l!+q!R!0gX!b`!dpOr*Vrs(Vsv*Vwx)ex#c*V#c#d!1S#d;'S*V;'S;=`*s<%lO*V!R!1ZX!b`!dpOr*Vrs(Vsv*Vwx)ex#V*V#V#W!1v#W;'S*V;'S;=`*s<%lO*V!R!1}X!b`!dpOr*Vrs(Vsv*Vwx)ex#h*V#h#i!2j#i;'S*V;'S;=`*s<%lO*V!R!2qX!b`!dpOr*Vrs(Vsv*Vwx)ex#m*V#m#n!3^#n;'S*V;'S;=`*s<%lO*V!R!3eX!b`!dpOr*Vrs(Vsv*Vwx)ex#d*V#d#e!4Q#e;'S*V;'S;=`*s<%lO*V!R!4XX!b`!dpOr*Vrs(Vsv*Vwx)ex#X*V#X#Y!+q#Y;'S*V;'S;=`*s<%lO*V!R!4{Y!b`!dpOr!4trs!5ksv!4tvw!6Vwx!8]x!a!4t!a!b!:]!b;'S!4t;'S;=`!;r<%lO!4tq!5pV!dpOv!5kvx!6Vx!a!5k!a!b!7W!b;'S!5k;'S;=`!8V<%lO!5kP!6YTO!a!6V!a!b!6i!b;'S!6V;'S;=`!7Q<%lO!6VP!6lTO!`!6V!`!a!6{!a;'S!6V;'S;=`!7Q<%lO!6VP!7QOyPP!7TP;=`<%l!6Vq!7]V!dpOv!5kvx!6Vx!`!5k!`!a!7r!a;'S!5k;'S;=`!8V<%lO!5kq!7yS!dpyPOv(Vx;'S(V;'S;=`(h<%lO(Vq!8YP;=`<%l!5ka!8bX!b`Or!8]rs!6Vsv!8]vw!6Vw!a!8]!a!b!8}!b;'S!8];'S;=`!:V<%lO!8]a!9SX!b`Or!8]rs!6Vsv!8]vw!6Vw!`!8]!`!a!9o!a;'S!8];'S;=`!:V<%lO!8]a!9vT!b`yPOr)esv)ew;'S)e;'S;=`)y<%lO)ea!:YP;=`<%l!8]!R!:dY!b`!dpOr!4trs!5ksv!4tvw!6Vwx!8]x!`!4t!`!a!;S!a;'S!4t;'S;=`!;r<%lO!4t!R!;]V!b`!dpyPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!;uP;=`<%l!4t!V!<TXjSaP!b`!dpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X",tokenizers:[dM,fM,pM,hM,lM,cM,0,1,2,3,4,5],topRules:{Document:[0,16]},dialects:{noMatch:0,selfClosing:515},tokenPrec:517});function C0(r,e){let t=Object.create(null);for(let n of r.getChildren(w0)){let s=n.getChild(qT),i=n.getChild(fu)||n.getChild(S0);s&&(t[e.read(s.from,s.to)]=i?i.type.id==fu?e.read(i.from+1,i.to-1):e.read(i.from,i.to):"")}return t}function lp(r,e){let t=r.getChild(jT);return t?e.read(t.from,t.to):" "}function sc(r,e,t){let n;for(let s of t)if(!s.attrs||s.attrs(n||(n=C0(r.node.parent.firstChild,e))))return{parser:s.parser,bracketed:!0};return null}function Q0(r=[],e=[]){let t=[],n=[],s=[],i=[];for(let a of r)(a.tag=="script"?t:a.tag=="style"?n:a.tag=="textarea"?s:i).push(a);let o=e.length?Object.create(null):null;for(let a of e)(o[a.name]||(o[a.name]=[])).push(a);return Cg((a,l)=>{let c=a.type.id;if(c==YT)return sc(a,l,t);if(c==FT)return sc(a,l,n);if(c==UT)return sc(a,l,s);if(c==k0&&i.length){let u=a.node,h=u.firstChild,p=h&&lp(h,l),f;if(p){for(let g of i)if(g.tag==p&&(!g.attrs||g.attrs(f||(f=C0(h,l))))){let O=u.lastChild,y=O.type.id==HT?O.from:u.to;if(y>h.to)return{parser:g.parser,overlay:[{from:h.to,to:y}]}}}}if(o&&c==w0){let u=a.node,h;if(h=u.firstChild){let p=o[l.read(h.from,h.to)];if(p)for(let f of p){if(f.tagName&&f.tagName!=lp(u.parent,l))continue;let g=u.lastChild;if(g.type.id==fu){let O=g.from+1,y=g.lastChild,b=g.to-(y&&y.isError?0:1);if(b>O)return{parser:f.parser,overlay:[{from:O,to:b}],bracketed:!0}}else if(g.type.id==S0)return{parser:f.parser,overlay:[{from:g.from,to:g.to}]}}}}return null})}const OM=122,cp=1,vM=123,bM=124,P0=2,xM=125,yM=3,kM=4,T0=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],wM=58,SM=40,M0=95,$M=91,ba=45,CM=46,QM=35,PM=37,TM=38,MM=92,AM=10,_M=42;function ho(r){return r>=65&&r<=90||r>=97&&r<=122||r>=161}function Qh(r){return r>=48&&r<=57}function up(r){return Qh(r)||r>=97&&r<=102||r>=65&&r<=70}const A0=(r,e,t)=>(n,s)=>{for(let i=!1,o=0,a=0;;a++){let{next:l}=n;if(ho(l)||l==ba||l==M0||i&&Qh(l))!i&&(l!=ba||a>0)&&(i=!0),o===a&&l==ba&&o++,n.advance();else if(l==MM&&n.peek(1)!=AM){if(n.advance(),up(n.next)){do n.advance();while(up(n.next));n.next==32&&n.advance()}else n.next>-1&&n.advance();i=!0}else{i&&n.acceptToken(o==2&&s.canShift(P0)?e:l==SM?t:r);break}}},RM=new cr(A0(vM,P0,bM)),BM=new cr(A0(xM,yM,kM)),ZM=new cr(r=>{if(T0.includes(r.peek(-1))){let{next:e}=r;(ho(e)||e==M0||e==QM||e==CM||e==_M||e==$M||e==wM&&ho(r.peek(1))||e==ba||e==TM)&&r.acceptToken(OM)}}),EM=new cr(r=>{if(!T0.includes(r.peek(-1))){let{next:e}=r;if(e==PM&&(r.advance(),r.acceptToken(cp)),ho(e)){do r.advance();while(ho(r.next)||Qh(r.next));r.acceptToken(cp)}}}),DM=Hs({"AtKeyword import charset namespace keyframes media supports":Q.definitionKeyword,"from to selector":Q.keyword,NamespaceName:Q.namespace,KeyframeName:Q.labelName,KeyframeRangeName:Q.operatorKeyword,TagName:Q.tagName,ClassName:Q.className,PseudoClassName:Q.constant(Q.className),IdName:Q.labelName,"FeatureName PropertyName":Q.propertyName,AttributeName:Q.attributeName,NumberLiteral:Q.number,KeywordQuery:Q.keyword,UnaryQueryOp:Q.operatorKeyword,"CallTag ValueName":Q.atom,VariableName:Q.variableName,Callee:Q.operatorKeyword,Unit:Q.unit,"UniversalSelector NestingSelector":Q.definitionOperator,"MatchOp CompareOp":Q.compareOperator,"ChildOp SiblingOp, LogicOp":Q.logicOperator,BinOp:Q.arithmeticOperator,Important:Q.modifier,Comment:Q.blockComment,ColorLiteral:Q.color,"ParenthesizedContent StringLiteral":Q.string,":":Q.punctuation,"PseudoOp #":Q.derefOperator,"; ,":Q.separator,"( )":Q.paren,"[ ]":Q.squareBracket,"{ }":Q.brace}),LM={__proto__:null,lang:38,"nth-child":38,"nth-last-child":38,"nth-of-type":38,"nth-last-of-type":38,dir:38,"host-context":38,if:84,url:124,"url-prefix":124,domain:124,regexp:124},XM={__proto__:null,or:98,and:98,not:106,only:106,layer:170},IM={__proto__:null,selector:112,layer:166},VM={__proto__:null,"@import":162,"@media":174,"@charset":178,"@namespace":182,"@keyframes":188,"@supports":200,"@scope":204},zM={__proto__:null,to:207},NM=Ys.deserialize({version:14,states:"EbQYQdOOO#qQdOOP#xO`OOOOQP'#Cf'#CfOOQP'#Ce'#CeO#}QdO'#ChO$nQaO'#CcO$xQdO'#CkO%TQdO'#DpO%YQdO'#DrO%_QdO'#DuO%_QdO'#DxOOQP'#FV'#FVO&eQhO'#EhOOQS'#FU'#FUOOQS'#Ek'#EkQYQdOOO&lQdO'#EOO&PQhO'#EUO&lQdO'#EWO'aQdO'#EYO'lQdO'#E]O'tQhO'#EcO(VQdO'#EeO(bQaO'#CfO)VQ`O'#D{O)[Q`O'#F`O)gQdO'#F`QOQ`OOP)qO&jO'#CaPOOO)C@t)C@tOOQP'#Cj'#CjOOQP,59S,59SO#}QdO,59SO)|QdO,59VO%TQdO,5:[O%YQdO,5:^O%_QdO,5:aO%_QdO,5:cO%_QdO,5:dO%_QdO'#ErO*XQ`O,58}O*aQdO'#DzOOQS,58},58}OOQP'#Cn'#CnOOQO'#Dn'#DnOOQP,59V,59VO*hQ`O,59VO*mQ`O,59VOOQP'#Dq'#DqOOQP,5:[,5:[OOQO'#Ds'#DsO*rQpO,5:^O+]QaO,5:aO+sQaO,5:dOOQW'#DZ'#DZO,ZQhO'#DdO,xQhO'#FaO'tQhO'#DbO-WQ`O'#DhOOQW'#F['#F[O-]Q`O,5;SO-eQ`O'#DeOOQS-E8i-E8iOOQ['#Cs'#CsO-jQdO'#CtO.QQdO'#CzO.hQdO'#C}O/OQ!pO'#DPO1RQ!jO,5:jOOQO'#DU'#DUO*mQ`O'#DTO1cQ!nO'#FXO3`Q`O'#DVO3eQ`O'#DkOOQ['#FX'#FXO-`Q`O,5:pO3jQ!bO,5:rOOQS'#E['#E[O3rQ`O,5:tO3wQdO,5:tOOQO'#E_'#E_O4PQ`O,5:wO4UQhO,5:}O%_QdO'#DgOOQS,5;P,5;PO-eQ`O,5;PO4^QdO,5;PO4fQdO,5:gO4vQdO'#EtO5TQ`O,5;zO5TQ`O,5;zPOOO'#Ej'#EjP5`O&jO,58{POOO,58{,58{OOQP1G.n1G.nOOQP1G.q1G.qO*hQ`O1G.qO*mQ`O1G.qOOQP1G/v1G/vO5kQpO1G/xO5sQaO1G/{O6ZQaO1G/}O6qQaO1G0OO7XQaO,5;^OOQO-E8p-E8pOOQS1G.i1G.iO7cQ`O,5:fO7hQdO'#DoO7oQdO'#CrOOQP1G/x1G/xO&lQdO1G/xO7vQ!jO'#DZO8UQ!bO,59vO8^QhO,5:OOOQO'#F]'#F]O8XQ!bO,59zO'tQhO,59xO8fQhO'#EvO8sQ`O,5;{O9OQhO,59|O9uQhO'#DiOOQW,5:S,5:SOOQS1G0n1G0nOOQW,5:P,5:PO9|Q!fO'#FYOOQS'#FY'#FYOOQS'#Em'#EmO;^QdO,59`OOQ[,59`,59`O;tQdO,59fOOQ[,59f,59fO<[QdO,59iOOQ[,59i,59iOOQ[,59k,59kO&lQdO,59mO<rQhO'#EQOOQW'#EQ'#EQO=WQ`O1G0UO1[QhO1G0UOOQ[,59o,59oO'tQhO'#DXOOQ[,59q,59qO=]Q#tO,5:VOOQS1G0[1G0[OOQS1G0^1G0^OOQS1G0`1G0`O=hQ`O1G0`O=mQdO'#E`OOQS1G0c1G0cOOQS1G0i1G0iO=xQaO,5:RO-`Q`O1G0kOOQS1G0k1G0kO-eQ`O1G0kO>PQ!fO1G0ROOQO1G0R1G0ROOQO,5;`,5;`O>gQdO,5;`OOQO-E8r-E8rO>tQ`O1G1fPOOO-E8h-E8hPOOO1G.g1G.gOOQP7+$]7+$]OOQP7+%d7+%dO&lQdO7+%dOOQS1G0Q1G0QO?PQaO'#F_O?ZQ`O,5:ZO?`Q!fO'#ElO@^QdO'#FWO@hQ`O,59^O@mQ!bO7+%dO&lQdO1G/bO@uQhO1G/fOOQW1G/j1G/jOOQW1G/d1G/dOAWQhO,5;bOOQO-E8t-E8tOAfQhO'#DZOAtQhO'#F^OBPQ`O'#F^OBUQ`O,5:TOOQS-E8k-E8kOOQ[1G.z1G.zOOQ[1G/Q1G/QOOQ[1G/T1G/TOOQ[1G/X1G/XOBZQdO,5:lOOQS7+%p7+%pOB`Q`O7+%pOBeQhO'#DYOBmQ`O,59sO'tQhO,59sOOQ[1G/q1G/qOBuQ`O1G/qOOQS7+%z7+%zOBzQbO'#DPOOQO'#Eb'#EbOCYQ`O'#EaOOQO'#Ea'#EaOCeQ`O'#EwOCmQdO,5:zOOQS,5:z,5:zOOQ[1G/m1G/mOOQS7+&V7+&VO-`Q`O7+&VOCxQ!fO'#EsO&lQdO'#EsOEPQdO7+%mOOQO7+%m7+%mOOQO1G0z1G0zOEdQ!bO<<IOOElQdO'#EqOEvQ`O,5;yOOQP1G/u1G/uOOQS-E8j-E8jOFOQdO'#EpOFYQ`O,5;rOOQ]1G.x1G.xOOQP<<IO<<IOOFbQdO7+$|OOQO'#D]'#D]OFiQ!bO7+%QOFqQhO'#EoOF{Q`O,5;xO&lQdO,5;xOOQW1G/o1G/oOOQO'#ES'#ESOGTQ`O1G0WOOQS<<I[<<I[O&lQdO,59tOGnQhO1G/_OOQ[1G/_1G/_OGuQ`O1G/_OOQW-E8l-E8lOOQ[7+%]7+%]OOQO,5:{,5:{O=pQdO'#ExOCeQ`O,5;cOOQS,5;c,5;cOOQS-E8u-E8uOOQS1G0f1G0fOOQS<<Iq<<IqOG}Q!fO,5;_OOQS-E8q-E8qOOQO<<IX<<IXOOQPAN>jAN>jOIUQaO,5;]OOQO-E8o-E8oOI`QdO,5;[OOQO-E8n-E8nOOQW<<Hh<<HhOOQW<<Hl<<HlOIjQhO<<HlOI{QhO,5;ZOJWQ`O,5;ZOOQO-E8m-E8mOJ]QdO1G1dOBZQdO'#EuOJgQ`O7+%rOOQW7+%r7+%rOJoQ!bO1G/`OOQ[7+$y7+$yOJzQhO7+$yPKRQ`O'#EnOOQO,5;d,5;dOOQO-E8v-E8vOOQS1G0}1G0}OKWQ`OAN>WO&lQdO1G0uOK]Q`O7+'OOOQO,5;a,5;aOOQO-E8s-E8sOOQW<<I^<<I^OOQ[<<He<<HePOQW,5;Y,5;YOOQWG23rG23rOKeQdO7+&a",stateData:"Kx~O#sOS#tQQ~OW[OZ[O]TO`VOaVOi]OjWOmXO!jYO!mZO!saO!ybO!{cO!}dO#QeO#WfO#YgO#oRO~OQiOW[OZ[O]TO`VOaVOi]OjWOmXO!jYO!mZO!saO!ybO!{cO!}dO#QeO#WfO#YgO#ohO~O#m$SP~P!dO#tmO~O#ooO~O]qO`rOarOjsOmtO!juO!mwO#nvO~OpzO!^xO~P$SOc!QO#o|O#p}O~O#o!RO~O#o!TO~OW[OZ[O]TO`VOaVOjWOmXO!jYO!mZO#oRO~OS!]Oe!YO!V![O!Y!`O#q!XOp$TP~Ok$TP~P&POQ!jOe!cOm!dOp!eOr!mOt!mOz!kO!`!lO#o!bO#p!hO#}!fO~Ot!qO!`!lO#o!pO~Ot!sO#o!sO~OS!]Oe!YO!V![O!Y!`O#q!XO~Oe!vOpzO#Z!xO~O]YX`YX`!pXaYXjYXmYXpYX!^YX!jYX!mYX#nYX~O`!zO~Ok!{O#m$SXo$SX~O#m$SXo$SX~P!dO#u#OO#v#OO#w#QO~Oc#UO#o|O#p}O~OpzO!^xO~Oo$SP~P!dOe#`O~Oe#aO~Ol#bO!h#cO~O]qO`rOarOjsOmtO~Op!ia!^!ia!j!ia!m!ia#n!iad!ia~P*zOp!la!^!la!j!la!m!la#n!lad!la~P*zOR#gOS!]Oe!YOr#gOt#gO!V![O!Y!`O#q#dO#}!fO~O!R#iO!^#jOk$TXp$TX~Oe#mO~Ok#oOpzO~Oe!vO~O]#rO`#rOd#uOi#rOj#rOk#rO~P&lO]#rO`#rOi#rOj#rOk#rOl#wO~P&lO]#rO`#rOi#rOj#rOk#rOo#yO~P&lOP#zOSsXesXksXvsX!VsX!YsX!usX!wsX#qsX!TsXQsX]sX`sXdsXisXjsXmsXpsXrsXtsXzsX!`sX#osX#psX#}sXlsXosX!^sX!qsX#msX~Ov#{O!u#|O!w#}Ok$TP~P'tOe#aOS#{Xk#{Xv#{X!V#{X!Y#{X!u#{X!w#{X#q#{XQ#{X]#{X`#{Xd#{Xi#{Xj#{Xm#{Xp#{Xr#{Xt#{Xz#{X!`#{X#o#{X#p#{X#}#{Xl#{Xo#{X!^#{X!q#{X#m#{X~Oe$RO~Oe$TO~Ok$VOv#{O~Ok$WO~Ot$XO!`!lO~Op$YO~OpzO!R#iO~OpzO#Z$`O~O!q$bOk!oa#m!oao!oa~P&lOk#hX#m#hXo#hX~P!dOk!{O#m$Sao$Sa~O#u#OO#v#OO#w$hO~Ol$jO!h$kO~Op!ii!^!ii!j!ii!m!ii#n!iid!ii~P*zOp!ki!^!ki!j!ki!m!ki#n!kid!ki~P*zOp!li!^!li!j!li!m!li#n!lid!li~P*zOp#fa!^#fa~P$SOo$lO~Od$RP~P%_Od#zP~P&lO`!PXd}X!R}X!T!PX~O`$sO!T$tO~Od$uO!R#iO~Ok#jXp#jX!^#jX~P'tO!^#jOk$Tap$Ta~O!R#iOk!Uap!Ua!^!Uad!Ua`!Ua~OS!]Oe!YO!V![O!Y!`O#q$yO~Od$QP~P9dOv#{OQ#|X]#|X`#|Xd#|Xe#|Xi#|Xj#|Xk#|Xm#|Xp#|Xr#|Xt#|Xz#|X!`#|X#o#|X#p#|X#}#|Xl#|Xo#|X~O]#rO`#rOd%OOi#rOj#rOk#rO~P&lO]#rO`#rOi#rOj#rOk#rOl%PO~P&lO]#rO`#rOi#rOj#rOk#rOo%QO~P&lOe%SOS!tXk!tX!V!tX!Y!tX#q!tX~Ok%TO~Od%YOt%ZO!a%ZO~Ok%[O~Oo%cO#o%^O#}%]O~Od%dO~P$SOv#{O!^%hO!q%jOk!oi#m!oio!oi~P&lOk#ha#m#hao#ha~P!dOk!{O#m$Sio$Si~O!^%mOd$RX~P$SOd%oO~Ov#{OQ#`Xd#`Xe#`Xm#`Xp#`Xr#`Xt#`Xz#`X!^#`X!`#`X#o#`X#p#`X#}#`X~O!^%qOd#zX~P&lOd%sO~Ol%tOv#{O~OR#gOr#gOt#gO#q%vO#}!fO~O!R#iOk#jap#ja!^#ja~O`!PXd}X!R}X!^}X~O!R#iO!^%xOd$QX~O`%zO~Od%{O~O#o%|O~Ok&OO~O`&PO!R#iO~Od&ROk&QO~Od&UO~OP#zOpsX!^sXdsX~O#}%]Op#TX!^#TX~OpzO!^&WO~Oo&[O#o%^O#}%]O~Ov#{OQ#gXe#gXk#gXm#gXp#gXr#gXt#gXz#gX!^#gX!`#gX!q#gX#m#gX#o#gX#p#gX#}#gXo#gX~O!^%hO!q&`Ok!oq#m!oqo!oq~P&lOl&aOv#{O~Od#eX!^#eX~P%_O!^%mOd$Ra~Od#dX!^#dX~P&lO!^%qOd#za~Od&fO~P&lOd&gO!T&hO~Od#cX!^#cX~P9dO!^%xOd$Qa~O]&mOd&oO~OS#bae#ba!V#ba!Y#ba#q#ba~Od&qO~PG]Od&qOk&rO~Ov#{OQ#gae#gak#gam#gap#gar#gat#gaz#ga!^#ga!`#ga!q#ga#m#ga#o#ga#p#ga#}#gao#ga~Od#ea!^#ea~P$SOd#da!^#da~P&lOR#gOr#gOt#gO#q%vO#}%]O~O!R#iOd#ca!^#ca~O`&xO~O!^%xOd$Qi~P&lO]&mOd&|O~Ov#{Od|ik|i~Od&}O~PG]Ok'OO~Od'PO~O!^%xOd$Qq~Od#cq!^#cq~P&lO#s!a#t#}]#}v!m~",goto:"2h$UPPPPP$VP$YP$c$uP$cP%X$cPP%_PPP%e%o%oPPPPP%oPP%oP&]P%oP%o'W%oP't'w'}'}(^'}P'}P'}P'}'}P(m'}(yP(|PP)p)v$c)|$c*SP$cP$c$cP*Y*{+YP$YP+aP+dP$YP$YP$YP+j$YP+m+p+s+z$YP$YPP$YP,P,V,f,|-[-b-l-r-x.O.U.`.f.l.rPPPPPPPPPPP.x/R/w/z0|P1U1u2O2R2U2[RnQ_^OP`kz!{$dq[OPYZ`kuvwxz!v!{#`$d%mqSOPYZ`kuvwxz!v!{#`$d%mQpTR#RqQ!OVR#SrQ#S!QS$Q!i!jR$i#U!V!mac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'Q!U!mac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'QU#g!Y$t&hU%`$Y%b&WR&V%_!V!iac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'QR$S!kQ%W$RR&S%Xk!^]bf!Y![!g#i#j#m$P$R%X%xQ#e!YQ${#mQ%w$tQ&j%xR&w&hQ!ygQ#p!`Q$^!xR%f$`R#n!]!U!mac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'QQ!qdR$X!rQ!PVR#TrQ#S!PR$i#TQ!SWR#VsQ!UXR#WtQ{UQ!wgQ#^yQ#o!_Q$U!nQ$[!uQ$_!yQ%e$^Q&Y%aQ&]%fR&v&XSjPzQ!}kQ$c!{R%k$dZiPkz!{$dR$P!gQ%}%SR&z&mR!rdR!teR$Z!tS%a$Y%bR&t&WV%_$Y%b&WQ#PmR$g#PQ`OSkPzU!a`k$dR$d!{Q$p#aY%p$p%u&d&l'QQ%u$sQ&d%qQ&l%zR'Q&xQ#t!cQ#v!dQ#x!eV$}#t#v#xQ%X$RR&T%XQ%y$zS&k%y&yR&y&lQ%r$pR&e%rQ%n$mR&c%nQyUR#]yQ%i$aR&_%iQ!|jS$e!|$fR$f!}Q&n%}R&{&nQ#k!ZR$x#kQ%b$YR&Z%bQ&X%aR&u&X__OP`kz!{$d^UOP`kz!{$dQ!VYQ!WZQ#XuQ#YvQ#ZwQ#[xQ$]!vQ$m#`R&b%mR$q#aQ!gaQ!oc[#q!c!d!e#t#v#xQ$a!zd$o#a$p$s%q%u%z&d&l&x'QQ$r#cQ%R#{S%g$a%iQ%l$kQ&^%hR&p&P]#s!c!d!e#t#v#xW!Z]b!g$PQ!ufQ#f!YQ#l![Q$v#iQ$w#jQ$z#mS%V$R%XR&i%xQ#h!YQ%w$tR&w&hR$|#mR$n#`QlPR#_zQ!_]Q!nbQ$O!gR%U$P",nodeNames:"⚠ Unit VariableName VariableName QueryCallee Comment StyleSheet RuleSet UniversalSelector TagSelector TagName NestingSelector ClassSelector . ClassName PseudoClassSelector : :: PseudoClassName PseudoClassName ) ( ArgList ValueName ParenthesizedValue AtKeyword # ; ] [ BracketedValue } { BracedValue ColorLiteral NumberLiteral StringLiteral BinaryExpression BinOp CallExpression Callee IfExpression if ArgList IfBranch KeywordQuery FeatureQuery FeatureName BinaryQuery LogicOp ComparisonQuery CompareOp UnaryQuery UnaryQueryOp ParenthesizedQuery SelectorQuery selector ParenthesizedSelector CallQuery ArgList , CallLiteral CallTag ParenthesizedContent PseudoClassName ArgList IdSelector IdName AttributeSelector AttributeName MatchOp ChildSelector ChildOp DescendantSelector SiblingSelector SiblingOp Block Declaration PropertyName Important ImportStatement import Layer layer LayerName layer MediaStatement media CharsetStatement charset NamespaceStatement namespace NamespaceName KeyframesStatement keyframes KeyframeName KeyframeList KeyframeSelector KeyframeRangeName SupportsStatement supports ScopeStatement scope to AtRule Styles",maxTerm:143,nodeProps:[["isolate",-2,5,36,""],["openedBy",20,"(",28,"[",31,"{"],["closedBy",21,")",29,"]",32,"}"]],propSources:[DM],skippedNodes:[0,5,106],repeatNodeCount:15,tokenData:"JQ~R!YOX$qX^%i^p$qpq%iqr({rs-ust/itu6Wuv$qvw7Qwx7cxy9Qyz9cz{9h{|:R|}>t}!O?V!O!P?t!P!Q@]!Q![AU![!]BP!]!^B{!^!_C^!_!`DY!`!aDm!a!b$q!b!cEn!c!}$q!}#OG{#O#P$q#P#QH^#Q#R6W#R#o$q#o#pHo#p#q6W#q#rIQ#r#sIc#s#y$q#y#z%i#z$f$q$f$g%i$g#BY$q#BY#BZ%i#BZ$IS$q$IS$I_%i$I_$I|$q$I|$JO%i$JO$JT$q$JT$JU%i$JU$KV$q$KV$KW%i$KW&FU$q&FU&FV%i&FV;'S$q;'S;=`Iz<%lO$q`$tSOy%Qz;'S%Q;'S;=`%c<%lO%Q`%VS!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Q`%fP;=`<%l%Q~%nh#s~OX%QX^'Y^p%Qpq'Yqy%Qz#y%Q#y#z'Y#z$f%Q$f$g'Y$g#BY%Q#BY#BZ'Y#BZ$IS%Q$IS$I_'Y$I_$I|%Q$I|$JO'Y$JO$JT%Q$JT$JU'Y$JU$KV%Q$KV$KW'Y$KW&FU%Q&FU&FV'Y&FV;'S%Q;'S;=`%c<%lO%Q~'ah#s~!a`OX%QX^'Y^p%Qpq'Yqy%Qz#y%Q#y#z'Y#z$f%Q$f$g'Y$g#BY%Q#BY#BZ'Y#BZ$IS%Q$IS$I_'Y$I_$I|%Q$I|$JO'Y$JO$JT%Q$JT$JU'Y$JU$KV%Q$KV$KW'Y$KW&FU%Q&FU&FV'Y&FV;'S%Q;'S;=`%c<%lO%Qj)OUOy%Qz#]%Q#]#^)b#^;'S%Q;'S;=`%c<%lO%Qj)gU!a`Oy%Qz#a%Q#a#b)y#b;'S%Q;'S;=`%c<%lO%Qj*OU!a`Oy%Qz#d%Q#d#e*b#e;'S%Q;'S;=`%c<%lO%Qj*gU!a`Oy%Qz#c%Q#c#d*y#d;'S%Q;'S;=`%c<%lO%Qj+OU!a`Oy%Qz#f%Q#f#g+b#g;'S%Q;'S;=`%c<%lO%Qj+gU!a`Oy%Qz#h%Q#h#i+y#i;'S%Q;'S;=`%c<%lO%Qj,OU!a`Oy%Qz#T%Q#T#U,b#U;'S%Q;'S;=`%c<%lO%Qj,gU!a`Oy%Qz#b%Q#b#c,y#c;'S%Q;'S;=`%c<%lO%Qj-OU!a`Oy%Qz#h%Q#h#i-b#i;'S%Q;'S;=`%c<%lO%Qj-iS!qY!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Q~-xWOY-uZr-urs.bs#O-u#O#P.g#P;'S-u;'S;=`/c<%lO-u~.gOt~~.jRO;'S-u;'S;=`.s;=`O-u~.vXOY-uZr-urs.bs#O-u#O#P.g#P;'S-u;'S;=`/c;=`<%l-u<%lO-u~/fP;=`<%l-uj/nYjYOy%Qz!Q%Q!Q![0^![!c%Q!c!i0^!i#T%Q#T#Z0^#Z;'S%Q;'S;=`%c<%lO%Qj0cY!a`Oy%Qz!Q%Q!Q![1R![!c%Q!c!i1R!i#T%Q#T#Z1R#Z;'S%Q;'S;=`%c<%lO%Qj1WY!a`Oy%Qz!Q%Q!Q![1v![!c%Q!c!i1v!i#T%Q#T#Z1v#Z;'S%Q;'S;=`%c<%lO%Qj1}YrY!a`Oy%Qz!Q%Q!Q![2m![!c%Q!c!i2m!i#T%Q#T#Z2m#Z;'S%Q;'S;=`%c<%lO%Qj2tYrY!a`Oy%Qz!Q%Q!Q![3d![!c%Q!c!i3d!i#T%Q#T#Z3d#Z;'S%Q;'S;=`%c<%lO%Qj3iY!a`Oy%Qz!Q%Q!Q![4X![!c%Q!c!i4X!i#T%Q#T#Z4X#Z;'S%Q;'S;=`%c<%lO%Qj4`YrY!a`Oy%Qz!Q%Q!Q![5O![!c%Q!c!i5O!i#T%Q#T#Z5O#Z;'S%Q;'S;=`%c<%lO%Qj5TY!a`Oy%Qz!Q%Q!Q![5s![!c%Q!c!i5s!i#T%Q#T#Z5s#Z;'S%Q;'S;=`%c<%lO%Qj5zSrY!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Qd6ZUOy%Qz!_%Q!_!`6m!`;'S%Q;'S;=`%c<%lO%Qd6tS!hS!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Qb7VSZQOy%Qz;'S%Q;'S;=`%c<%lO%Q~7fWOY7cZw7cwx.bx#O7c#O#P8O#P;'S7c;'S;=`8z<%lO7c~8RRO;'S7c;'S;=`8[;=`O7c~8_XOY7cZw7cwx.bx#O7c#O#P8O#P;'S7c;'S;=`8z;=`<%l7c<%lO7c~8}P;=`<%l7cj9VSeYOy%Qz;'S%Q;'S;=`%c<%lO%Q~9hOd~n9oUWQvWOy%Qz!_%Q!_!`6m!`;'S%Q;'S;=`%c<%lO%Qj:YWvW!mQOy%Qz!O%Q!O!P:r!P!Q%Q!Q![=w![;'S%Q;'S;=`%c<%lO%Qj:wU!a`Oy%Qz!Q%Q!Q![;Z![;'S%Q;'S;=`%c<%lO%Qj;bY!a`#}YOy%Qz!Q%Q!Q![;Z![!g%Q!g!h<Q!h#X%Q#X#Y<Q#Y;'S%Q;'S;=`%c<%lO%Qj<VY!a`Oy%Qz{%Q{|<u|}%Q}!O<u!O!Q%Q!Q![=^![;'S%Q;'S;=`%c<%lO%Qj<zU!a`Oy%Qz!Q%Q!Q![=^![;'S%Q;'S;=`%c<%lO%Qj=eU!a`#}YOy%Qz!Q%Q!Q![=^![;'S%Q;'S;=`%c<%lO%Qj>O[!a`#}YOy%Qz!O%Q!O!P;Z!P!Q%Q!Q![=w![!g%Q!g!h<Q!h#X%Q#X#Y<Q#Y;'S%Q;'S;=`%c<%lO%Qj>yS!^YOy%Qz;'S%Q;'S;=`%c<%lO%Qj?[WvWOy%Qz!O%Q!O!P:r!P!Q%Q!Q![=w![;'S%Q;'S;=`%c<%lO%Qj?yU]YOy%Qz!Q%Q!Q![;Z![;'S%Q;'S;=`%c<%lO%Q~@bTvWOy%Qz{@q{;'S%Q;'S;=`%c<%lO%Q~@xS!a`#t~Oy%Qz;'S%Q;'S;=`%c<%lO%QjAZ[#}YOy%Qz!O%Q!O!P;Z!P!Q%Q!Q![=w![!g%Q!g!h<Q!h#X%Q#X#Y<Q#Y;'S%Q;'S;=`%c<%lO%QjBUU`YOy%Qz![%Q![!]Bh!];'S%Q;'S;=`%c<%lO%QbBoSaQ!a`Oy%Qz;'S%Q;'S;=`%c<%lO%QjCQSkYOy%Qz;'S%Q;'S;=`%c<%lO%QhCcU!TWOy%Qz!_%Q!_!`Cu!`;'S%Q;'S;=`%c<%lO%QhC|S!TW!a`Oy%Qz;'S%Q;'S;=`%c<%lO%QlDaS!TW!hSOy%Qz;'S%Q;'S;=`%c<%lO%QjDtV!jQ!TWOy%Qz!_%Q!_!`Cu!`!aEZ!a;'S%Q;'S;=`%c<%lO%QbEbS!jQ!a`Oy%Qz;'S%Q;'S;=`%c<%lO%QjEqYOy%Qz}%Q}!OFa!O!c%Q!c!}GO!}#T%Q#T#oGO#o;'S%Q;'S;=`%c<%lO%QjFfW!a`Oy%Qz!c%Q!c!}GO!}#T%Q#T#oGO#o;'S%Q;'S;=`%c<%lO%QjGV[iY!a`Oy%Qz}%Q}!OGO!O!Q%Q!Q![GO![!c%Q!c!}GO!}#T%Q#T#oGO#o;'S%Q;'S;=`%c<%lO%QjHQSmYOy%Qz;'S%Q;'S;=`%c<%lO%QnHcSl^Oy%Qz;'S%Q;'S;=`%c<%lO%QjHtSpYOy%Qz;'S%Q;'S;=`%c<%lO%QjIVSoYOy%Qz;'S%Q;'S;=`%c<%lO%QfIhU!mQOy%Qz!_%Q!_!`6m!`;'S%Q;'S;=`%c<%lO%Q`I}P;=`<%l$q",tokenizers:[ZM,EM,RM,BM,1,2,3,4,new el("m~RRYZ[z{a~~g~aO#v~~dP!P!Qg~lO#w~~",28,129)],topRules:{StyleSheet:[0,6],Styles:[1,105]},dynamicPrecedences:{76:1},specialized:[{term:124,get:r=>LM[r]||-1},{term:125,get:r=>XM[r]||-1},{term:4,get:r=>IM[r]||-1},{term:25,get:r=>VM[r]||-1},{term:123,get:r=>zM[r]||-1}],tokenPrec:1963});let ic=null;function oc(){if(!ic&&typeof document=="object"&&document.body){let{style:r}=document.body,e=[],t=new Set;for(let n in r)n!="cssText"&&n!="cssFloat"&&typeof r[n]=="string"&&(/[A-Z]/.test(n)&&(n=n.replace(/[A-Z]/g,s=>"-"+s.toLowerCase())),t.has(n)||(e.push(n),t.add(n)));ic=e.sort().map(n=>({type:"property",label:n,apply:n+": "}))}return ic||[]}const hp=["active","after","any-link","autofill","backdrop","before","checked","cue","default","defined","disabled","empty","enabled","file-selector-button","first","first-child","first-letter","first-line","first-of-type","focus","focus-visible","focus-within","fullscreen","has","host","host-context","hover","in-range","indeterminate","invalid","is","lang","last-child","last-of-type","left","link","marker","modal","not","nth-child","nth-last-child","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","part","placeholder","placeholder-shown","read-only","read-write","required","right","root","scope","selection","slotted","target","target-text","valid","visited","where"].map(r=>({type:"class",label:r})),dp=["above","absolute","activeborder","additive","activecaption","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","antialiased","appworkspace","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic-abegede-gez","ethiopic-halehame-aa-er","ethiopic-halehame-gez","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","graytext","grid","groove","hand","hard-light","help","hidden","hide","higher","highlight","highlighttext","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","justify","keep-all","landscape","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-hexadecimal","lower-latin","lower-norwegian","lowercase","ltr","luminosity","manipulation","match","matrix","matrix3d","medium","menu","menutext","message-box","middle","min-intrinsic","mix","monospace","move","multiple","multiple_mask_images","multiply","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","opacity","open-quote","optimizeLegibility","optimizeSpeed","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","text","text-bottom","text-top","textarea","textfield","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","to","top","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-latin","uppercase","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"].map(r=>({type:"keyword",label:r})).concat(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"].map(r=>({type:"constant",label:r}))),WM=["a","abbr","address","article","aside","b","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","dd","del","details","dfn","dialog","div","dl","dt","em","figcaption","figure","footer","form","header","hgroup","h1","h2","h3","h4","h5","h6","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","main","meter","nav","ol","output","p","pre","ruby","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","tr","u","ul"].map(r=>({type:"type",label:r})),jM=["@charset","@color-profile","@container","@counter-style","@font-face","@font-feature-values","@font-palette-values","@import","@keyframes","@layer","@media","@namespace","@page","@position-try","@property","@scope","@starting-style","@supports","@view-transition"].map(r=>({type:"keyword",label:r})),an=/^(\w[\w-]*|-\w[\w-]*|)$/,qM=/^-(-[\w-]*)?$/;function YM(r,e){var t;if((r.name=="("||r.type.isError)&&(r=r.parent||r),r.name!="ArgList")return!1;let n=(t=r.parent)===null||t===void 0?void 0:t.firstChild;return n?.name!="Callee"?!1:e.sliceString(n.from,n.to)=="var"}const fp=new $g,FM=["Declaration"];function UM(r){for(let e=r;;){if(e.type.isTop)return e;if(!(e=e.parent))return r}}function _0(r,e,t){if(e.to-e.from>4096){let n=fp.get(e);if(n)return n;let s=[],i=new Set,o=e.cursor(st.IncludeAnonymous);if(o.firstChild())do for(let a of _0(r,o.node,t))i.has(a.label)||(i.add(a.label),s.push(a));while(o.nextSibling());return fp.set(e,s),s}else{let n=[],s=new Set;return e.cursor().iterate(i=>{var o;if(t(i)&&i.matchContext(FM)&&((o=i.node.nextSibling)===null||o===void 0?void 0:o.name)==":"){let a=r.sliceString(i.from,i.to);s.has(a)||(s.add(a),n.push({label:a,type:"variable"}))}}),n}}const GM=r=>e=>{let{state:t,pos:n}=e,s=ht(t).resolveInner(n,-1),i=s.type.isError&&s.from==s.to-1&&t.doc.sliceString(s.from,s.to)=="-";if(s.name=="PropertyName"||(i||s.name=="TagName")&&/^(Block|Styles)$/.test(s.resolve(s.to).name))return{from:s.from,options:oc(),validFor:an};if(s.name=="ValueName")return{from:s.from,options:dp,validFor:an};if(s.name=="PseudoClassName")return{from:s.from,options:hp,validFor:an};if(r(s)||(e.explicit||i)&&YM(s,t.doc))return{from:r(s)||i?s.from:n,options:_0(t.doc,UM(s),r),validFor:qM};if(s.name=="TagName"){for(let{parent:l}=s;l;l=l.parent)if(l.name=="Block")return{from:s.from,options:oc(),validFor:an};return{from:s.from,options:WM,validFor:an}}if(s.name=="AtKeyword")return{from:s.from,options:jM,validFor:an};if(!e.explicit)return null;let o=s.resolve(n),a=o.childBefore(n);return a&&a.name==":"&&o.name=="PseudoClassSelector"?{from:n,options:hp,validFor:an}:a&&a.name==":"&&o.name=="Declaration"||o.name=="ArgList"?{from:n,options:dp,validFor:an}:o.name=="Block"||o.name=="Styles"?{from:n,options:oc(),validFor:an}:null},HM=GM(r=>r.name=="VariableName"),rl=Ns.define({name:"css",parser:NM.configure({props:[So.add({Declaration:Oa()}),Ks.add({"Block KeyframeList":Rg})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"}},indentOnInput:/^\s*\}$/,wordChars:"-"}});function KM(){return new to(rl,rl.data.of({autocomplete:HM}))}const JM=316,e4=317,pp=1,t4=2,r4=3,n4=4,s4=318,i4=320,o4=321,a4=5,l4=6,c4=0,mu=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],R0=125,u4=59,gu=47,h4=42,d4=43,f4=45,p4=60,m4=44,g4=63,O4=46,v4=91,b4=new O0({start:!1,shift(r,e){return e==a4||e==l4||e==i4?r:e==o4},strict:!1}),x4=new cr((r,e)=>{let{next:t}=r;(t==R0||t==-1||e.context)&&r.acceptToken(s4)},{contextual:!0,fallback:!0}),y4=new cr((r,e)=>{let{next:t}=r,n;mu.indexOf(t)>-1||t==gu&&((n=r.peek(1))==gu||n==h4)||t!=R0&&t!=u4&&t!=-1&&!e.context&&r.acceptToken(JM)},{contextual:!0}),k4=new cr((r,e)=>{r.next==v4&&!e.context&&r.acceptToken(e4)},{contextual:!0}),w4=new cr((r,e)=>{let{next:t}=r;if(t==d4||t==f4){if(r.advance(),t==r.next){r.advance();let n=!e.context&&e.canShift(pp);r.acceptToken(n?pp:t4)}}else t==g4&&r.peek(1)==O4&&(r.advance(),r.advance(),(r.next<48||r.next>57)&&r.acceptToken(r4))},{contextual:!0});function ac(r,e){return r>=65&&r<=90||r>=97&&r<=122||r==95||r>=192||!e&&r>=48&&r<=57}const S4=new cr((r,e)=>{if(r.next!=p4||!e.dialectEnabled(c4)||(r.advance(),r.next==gu))return;let t=0;for(;mu.indexOf(r.next)>-1;)r.advance(),t++;if(ac(r.next,!0)){for(r.advance(),t++;ac(r.next,!1);)r.advance(),t++;for(;mu.indexOf(r.next)>-1;)r.advance(),t++;if(r.next==m4)return;for(let n=0;;n++){if(n==7){if(!ac(r.next,!0))return;break}if(r.next!="extends".charCodeAt(n))break;r.advance(),t++}}r.acceptToken(n4,-t)}),$4=Hs({"get set async static":Q.modifier,"for while do if else switch try catch finally return throw break continue default case defer":Q.controlKeyword,"in of await yield void typeof delete instanceof as satisfies":Q.operatorKeyword,"let var const using function class extends":Q.definitionKeyword,"import export from":Q.moduleKeyword,"with debugger new":Q.keyword,TemplateString:Q.special(Q.string),super:Q.atom,BooleanLiteral:Q.bool,this:Q.self,null:Q.null,Star:Q.modifier,VariableName:Q.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":Q.function(Q.variableName),VariableDefinition:Q.definition(Q.variableName),Label:Q.labelName,PropertyName:Q.propertyName,PrivatePropertyName:Q.special(Q.propertyName),"CallExpression/MemberExpression/PropertyName":Q.function(Q.propertyName),"FunctionDeclaration/VariableDefinition":Q.function(Q.definition(Q.variableName)),"ClassDeclaration/VariableDefinition":Q.definition(Q.className),"NewExpression/VariableName":Q.className,PropertyDefinition:Q.definition(Q.propertyName),PrivatePropertyDefinition:Q.definition(Q.special(Q.propertyName)),UpdateOp:Q.updateOperator,"LineComment Hashbang":Q.lineComment,BlockComment:Q.blockComment,Number:Q.number,String:Q.string,Escape:Q.escape,ArithOp:Q.arithmeticOperator,LogicOp:Q.logicOperator,BitOp:Q.bitwiseOperator,CompareOp:Q.compareOperator,RegExp:Q.regexp,Equals:Q.definitionOperator,Arrow:Q.function(Q.punctuation),": Spread":Q.punctuation,"( )":Q.paren,"[ ]":Q.squareBracket,"{ }":Q.brace,"InterpolationStart InterpolationEnd":Q.special(Q.brace),".":Q.derefOperator,", ;":Q.separator,"@":Q.meta,TypeName:Q.typeName,TypeDefinition:Q.definition(Q.typeName),"type enum interface implements namespace module declare":Q.definitionKeyword,"abstract global Privacy readonly override":Q.modifier,"is keyof unique infer asserts":Q.operatorKeyword,JSXAttributeValue:Q.attributeValue,JSXText:Q.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":Q.angleBracket,"JSXIdentifier JSXNameSpacedName":Q.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":Q.attributeName,"JSXBuiltin/JSXIdentifier":Q.standard(Q.tagName)}),C4={__proto__:null,export:20,as:25,from:33,default:36,async:41,function:42,in:52,out:55,const:56,extends:60,this:64,true:72,false:72,null:84,void:88,typeof:92,super:108,new:142,delete:154,yield:163,await:167,class:172,public:235,private:235,protected:235,readonly:237,instanceof:256,satisfies:259,import:292,keyof:349,unique:353,infer:359,asserts:395,is:397,abstract:417,implements:419,type:421,let:424,var:426,using:429,interface:435,enum:439,namespace:445,module:447,declare:451,global:455,defer:471,for:476,of:485,while:488,with:492,do:496,if:500,else:502,switch:506,case:512,try:518,catch:522,finally:526,return:530,throw:534,break:538,continue:542,debugger:546},Q4={__proto__:null,async:129,get:131,set:133,declare:195,public:197,private:197,protected:197,static:199,abstract:201,override:203,readonly:209,accessor:211,new:401},P4={__proto__:null,"<":193},T4=Ys.deserialize({version:14,states:"$F|Q%TQlOOO%[QlOOO'_QpOOP(lO`OOO*zQ!0MxO'#CiO+RO#tO'#CjO+aO&jO'#CjO+oO#@ItO'#DaO.QQlO'#DgO.bQlO'#DrO%[QlO'#DzO0fQlO'#ESOOQ!0Lf'#E['#E[O1PQ`O'#EXOOQO'#Ep'#EpOOQO'#Il'#IlO1XQ`O'#GsO1dQ`O'#EoO1iQ`O'#EoO3hQ!0MxO'#JrO6[Q!0MxO'#JsO6uQ`O'#F]O6zQ,UO'#FtOOQ!0Lf'#Ff'#FfO7VO7dO'#FfO9XQMhO'#F|O9`Q`O'#F{OOQ!0Lf'#Js'#JsOOQ!0Lb'#Jr'#JrO9eQ`O'#GwOOQ['#K_'#K_O9pQ`O'#IYO9uQ!0LrO'#IZOOQ['#J`'#J`OOQ['#I_'#I_Q`QlOOQ`QlOOO9}Q!L^O'#DvO:UQlO'#EOO:]QlO'#EQO9kQ`O'#GsO:dQMhO'#CoO:rQ`O'#EnO:}Q`O'#EyO;hQMhO'#FeO;xQ`O'#GsOOQO'#K`'#K`O;}Q`O'#K`O<]Q`O'#G{O<]Q`O'#G|O<]Q`O'#HOO9kQ`O'#HRO=SQ`O'#HUO>kQ`O'#CeO>{Q`O'#HcO?TQ`O'#HiO?TQ`O'#HkO`QlO'#HmO?TQ`O'#HoO?TQ`O'#HrO?YQ`O'#HxO?_Q!0LsO'#IOO%[QlO'#IQO?jQ!0LsO'#ISO?uQ!0LsO'#IUO9uQ!0LrO'#IWO@QQ!0MxO'#CiOASQpO'#DlQOQ`OOO%[QlO'#EQOAjQ`O'#ETO:dQMhO'#EnOAuQ`O'#EnOBQQ!bO'#FeOOQ['#Cg'#CgOOQ!0Lb'#Dq'#DqOOQ!0Lb'#Jv'#JvO%[QlO'#JvOOQO'#Jy'#JyOOQO'#Ih'#IhOCQQpO'#EgOOQ!0Lb'#Ef'#EfOOQ!0Lb'#J}'#J}OC|Q!0MSO'#EgODWQpO'#EWOOQO'#Jx'#JxODlQpO'#JyOEyQpO'#EWODWQpO'#EgPFWO&2DjO'#CbPOOO)CD})CD}OOOO'#I`'#I`OFcO#tO,59UOOQ!0Lh,59U,59UOOOO'#Ia'#IaOFqO&jO,59UOGPQ!L^O'#DcOOOO'#Ic'#IcOGWO#@ItO,59{OOQ!0Lf,59{,59{OGfQlO'#IdOGyQ`O'#JtOIxQ!fO'#JtO+}QlO'#JtOJPQ`O,5:ROJgQ`O'#EpOJtQ`O'#KTOKPQ`O'#KSOKPQ`O'#KSOKXQ`O,5;^OK^Q`O'#KROOQ!0Ln,5:^,5:^OKeQlO,5:^OMcQ!0MxO,5:fONSQ`O,5:nONmQ!0LrO'#KQONtQ`O'#KPO9eQ`O'#KPO! YQ`O'#KPO! bQ`O,5;]O! gQ`O'#KPO!#lQ!fO'#JsOOQ!0Lh'#Ci'#CiO%[QlO'#ESO!$[Q!fO,5:sOOQS'#Jz'#JzOOQO-E<j-E<jO9kQ`O,5=_O!$rQ`O,5=_O!$wQlO,5;ZO!&zQMhO'#EkO!(eQ`O,5;ZO!(jQlO'#DyO!(tQpO,5;dO!(|QpO,5;dO%[QlO,5;dOOQ['#FT'#FTOOQ['#FV'#FVO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eOOQ['#FZ'#FZO!)[QlO,5;tOOQ!0Lf,5;y,5;yOOQ!0Lf,5;z,5;zOOQ!0Lf,5;|,5;|O%[QlO'#IpO!+_Q!0LrO,5<iO%[QlO,5;eO!&zQMhO,5;eO!+|QMhO,5;eO!-nQMhO'#E^O%[QlO,5;wOOQ!0Lf,5;{,5;{O!-uQ,UO'#FjO!.rQ,UO'#KXO!.^Q,UO'#KXO!.yQ,UO'#KXOOQO'#KX'#KXO!/_Q,UO,5<SOOOW,5<`,5<`O!/pQlO'#FvOOOW'#Io'#IoO7VO7dO,5<QO!/wQ,UO'#FxOOQ!0Lf,5<Q,5<QO!0hQ$IUO'#CyOOQ!0Lh'#C}'#C}O!0{O#@ItO'#DRO!1iQMjO,5<eO!1pQ`O,5<hO!3YQ(CWO'#GXO!3jQ`O'#GYO!3oQ`O'#GYO!5_Q(CWO'#G^O!6dQpO'#GbOOQO'#Gn'#GnO!,TQMhO'#GmOOQO'#Gp'#GpO!,TQMhO'#GoO!7VQ$IUO'#JlOOQ!0Lh'#Jl'#JlO!7aQ`O'#JkO!7oQ`O'#JjO!7wQ`O'#CuOOQ!0Lh'#C{'#C{O!8YQ`O'#C}OOQ!0Lh'#DV'#DVOOQ!0Lh'#DX'#DXO!8_Q`O,5<eO1SQ`O'#DZO!,TQMhO'#GPO!,TQMhO'#GRO!8gQ`O'#GTO!8lQ`O'#GUO!3oQ`O'#G[O!,TQMhO'#GaO<]Q`O'#JkO!8qQ`O'#EqO!9`Q`O,5<gOOQ!0Lb'#Cr'#CrO!9hQ`O'#ErO!:bQpO'#EsOOQ!0Lb'#KR'#KRO!:iQ!0LrO'#KaO9uQ!0LrO,5=cO`QlO,5>tOOQ['#Jh'#JhOOQ[,5>u,5>uOOQ[-E<]-E<]O!<hQ!0MxO,5:bO!:]QpO,5:`O!?RQ!0MxO,5:jO%[QlO,5:jO!AiQ!0MxO,5:lOOQO,5@z,5@zO!BYQMhO,5=_O!BhQ!0LrO'#JiO9`Q`O'#JiO!ByQ!0LrO,59ZO!CUQpO,59ZO!C^QMhO,59ZO:dQMhO,59ZO!CiQ`O,5;ZO!CqQ`O'#HbO!DVQ`O'#KdO%[QlO,5;}O!:]QpO,5<PO!D_Q`O,5=zO!DdQ`O,5=zO!DiQ`O,5=zO!DwQ`O,5=zO9uQ!0LrO,5=zO<]Q`O,5=jOOQO'#Cy'#CyO!EOQpO,5=gO!EWQMhO,5=hO!EcQ`O,5=jO!EhQ!bO,5=mO!EpQ`O'#K`O?YQ`O'#HWO9kQ`O'#HYO!EuQ`O'#HYO:dQMhO'#H[O!EzQ`O'#H[OOQ[,5=p,5=pO!FPQ`O'#H]O!FbQ`O'#CoO!FgQ`O,59PO!FqQ`O,59PO!HvQlO,59POOQ[,59P,59PO!IWQ!0LrO,59PO%[QlO,59PO!KcQlO'#HeOOQ['#Hf'#HfOOQ['#Hg'#HgO`QlO,5=}O!KyQ`O,5=}O`QlO,5>TO`QlO,5>VO!LOQ`O,5>XO`QlO,5>ZO!LTQ`O,5>^O!LYQlO,5>dOOQ[,5>j,5>jO%[QlO,5>jO9uQ!0LrO,5>lOOQ[,5>n,5>nO#!dQ`O,5>nOOQ[,5>p,5>pO#!dQ`O,5>pOOQ[,5>r,5>rO##QQpO'#D_O%[QlO'#JvO##sQpO'#JvO##}QpO'#DmO#$`QpO'#DmO#&qQlO'#DmO#&xQ`O'#JuO#'QQ`O,5:WO#'VQ`O'#EtO#'eQ`O'#KUO#'mQ`O,5;_O#'rQpO'#DmO#(PQpO'#EVOOQ!0Lf,5:o,5:oO%[QlO,5:oO#(WQ`O,5:oO?YQ`O,5;YO!CUQpO,5;YO!C^QMhO,5;YO:dQMhO,5;YO#(`Q`O,5@bO#(eQ07dO,5:sOOQO-E<f-E<fO#)kQ!0MSO,5;RODWQpO,5:rO#)uQpO,5:rODWQpO,5;RO!ByQ!0LrO,5:rOOQ!0Lb'#Ej'#EjOOQO,5;R,5;RO%[QlO,5;RO#*SQ!0LrO,5;RO#*_Q!0LrO,5;RO!CUQpO,5:rOOQO,5;X,5;XO#*mQ!0LrO,5;RPOOO'#I^'#I^P#+RO&2DjO,58|POOO,58|,58|OOOO-E<^-E<^OOQ!0Lh1G.p1G.pOOOO-E<_-E<_OOOO,59},59}O#+^Q!bO,59}OOOO-E<a-E<aOOQ!0Lf1G/g1G/gO#+cQ!fO,5?OO+}QlO,5?OOOQO,5?U,5?UO#+mQlO'#IdOOQO-E<b-E<bO#+zQ`O,5@`O#,SQ!fO,5@`O#,ZQ`O,5@nOOQ!0Lf1G/m1G/mO%[QlO,5@oO#,cQ`O'#IjOOQO-E<h-E<hO#,ZQ`O,5@nOOQ!0Lb1G0x1G0xOOQ!0Ln1G/x1G/xOOQ!0Ln1G0Y1G0YO%[QlO,5@lO#,wQ!0LrO,5@lO#-YQ!0LrO,5@lO#-aQ`O,5@kO9eQ`O,5@kO#-iQ`O,5@kO#-wQ`O'#ImO#-aQ`O,5@kOOQ!0Lb1G0w1G0wO!(tQpO,5:uO!)PQpO,5:uOOQS,5:w,5:wO#.iQdO,5:wO#.qQMhO1G2yO9kQ`O1G2yOOQ!0Lf1G0u1G0uO#/PQ!0MxO1G0uO#0UQ!0MvO,5;VOOQ!0Lh'#GW'#GWO#0rQ!0MzO'#JlO!$wQlO1G0uO#2}Q!fO'#JwO%[QlO'#JwO#3XQ`O,5:eOOQ!0Lh'#D_'#D_OOQ!0Lf1G1O1G1OO%[QlO1G1OOOQ!0Lf1G1f1G1fO#3^Q`O1G1OO#5rQ!0MxO1G1PO#5yQ!0MxO1G1PO#8aQ!0MxO1G1PO#8hQ!0MxO1G1PO#;OQ!0MxO1G1PO#=fQ!0MxO1G1PO#=mQ!0MxO1G1PO#=tQ!0MxO1G1PO#@[Q!0MxO1G1PO#@cQ!0MxO1G1PO#BpQ?MtO'#CiO#DkQ?MtO1G1`O#DrQ?MtO'#JsO#EVQ!0MxO,5?[OOQ!0Lb-E<n-E<nO#GdQ!0MxO1G1PO#HaQ!0MzO1G1POOQ!0Lf1G1P1G1PO#IdQMjO'#J|O#InQ`O,5:xO#IsQ!0MxO1G1cO#JgQ,UO,5<WO#JoQ,UO,5<XO#JwQ,UO'#FoO#K`Q`O'#FnOOQO'#KY'#KYOOQO'#In'#InO#KeQ,UO1G1nOOQ!0Lf1G1n1G1nOOOW1G1y1G1yO#KvQ?MtO'#JrO#LQQ`O,5<bO!)[QlO,5<bOOOW-E<m-E<mOOQ!0Lf1G1l1G1lO#LVQpO'#KXOOQ!0Lf,5<d,5<dO#L_QpO,5<dO#LdQMhO'#DTOOOO'#Ib'#IbO#LkO#@ItO,59mOOQ!0Lh,59m,59mO%[QlO1G2PO!8lQ`O'#IrO#LvQ`O,5<zOOQ!0Lh,5<w,5<wO!,TQMhO'#IuO#MdQMjO,5=XO!,TQMhO'#IwO#NVQMjO,5=ZO!&zQMhO,5=]OOQO1G2S1G2SO#NaQ!dO'#CrO#NtQ(CWO'#ErO$ |QpO'#GbO$!dQ!dO,5<sO$!kQ`O'#K[O9eQ`O'#K[O$!yQ`O,5<uO$#aQ!dO'#C{O!,TQMhO,5<tO$#kQ`O'#GZO$$PQ`O,5<tO$$UQ!dO'#GWO$$cQ!dO'#K]O$$mQ`O'#K]O!&zQMhO'#K]O$$rQ`O,5<xO$$wQlO'#JvO$%RQpO'#GcO#$`QpO'#GcO$%dQ`O'#GgO!3oQ`O'#GkO$%iQ!0LrO'#ItO$%tQpO,5<|OOQ!0Lp,5<|,5<|O$%{QpO'#GcO$&YQpO'#GdO$&kQpO'#GdO$&pQMjO,5=XO$'QQMjO,5=ZOOQ!0Lh,5=^,5=^O!,TQMhO,5@VO!,TQMhO,5@VO$'bQ`O'#IyO$'vQ`O,5@UO$(OQ`O,59aOOQ!0Lh,59i,59iO$(TQ`O,5@VO$)TQ$IYO,59uOOQ!0Lh'#Jp'#JpO$)vQMjO,5<kO$*iQMjO,5<mO@zQ`O,5<oOOQ!0Lh,5<p,5<pO$*sQ`O,5<vO$*xQMjO,5<{O$+YQ`O'#KPO!$wQlO1G2RO$+_Q`O1G2RO9eQ`O'#KSO9eQ`O'#EtO%[QlO'#EtO9eQ`O'#I{O$+dQ!0LrO,5@{OOQ[1G2}1G2}OOQ[1G4`1G4`OOQ!0Lf1G/|1G/|OOQ!0Lf1G/z1G/zO$-fQ!0MxO1G0UOOQ[1G2y1G2yO!&zQMhO1G2yO%[QlO1G2yO#.tQ`O1G2yO$/jQMhO'#EkOOQ!0Lb,5@T,5@TO$/wQ!0LrO,5@TOOQ[1G.u1G.uO!ByQ!0LrO1G.uO!CUQpO1G.uO!C^QMhO1G.uO$0YQ`O1G0uO$0_Q`O'#CiO$0jQ`O'#KeO$0rQ`O,5=|O$0wQ`O'#KeO$0|Q`O'#KeO$1[Q`O'#JRO$1jQ`O,5AOO$1rQ!fO1G1iOOQ!0Lf1G1k1G1kO9kQ`O1G3fO@zQ`O1G3fO$1yQ`O1G3fO$2OQ`O1G3fO!DiQ`O1G3fO9uQ!0LrO1G3fOOQ[1G3f1G3fO!EcQ`O1G3UO!&zQMhO1G3RO$2TQ`O1G3ROOQ[1G3S1G3SO!&zQMhO1G3SO$2YQ`O1G3SO$2bQpO'#HQOOQ[1G3U1G3UO!6_QpO'#I}O!EhQ!bO1G3XOOQ[1G3X1G3XOOQ[,5=r,5=rO$2jQMhO,5=tO9kQ`O,5=tO$%dQ`O,5=vO9`Q`O,5=vO!CUQpO,5=vO!C^QMhO,5=vO:dQMhO,5=vO$2xQ`O'#KcO$3TQ`O,5=wOOQ[1G.k1G.kO$3YQ!0LrO1G.kO@zQ`O1G.kO$3eQ`O1G.kO9uQ!0LrO1G.kO$5mQ!fO,5AQO$5zQ`O,5AQO9eQ`O,5AQO$6VQlO,5>PO$6^Q`O,5>POOQ[1G3i1G3iO`QlO1G3iOOQ[1G3o1G3oOOQ[1G3q1G3qO?TQ`O1G3sO$6cQlO1G3uO$:gQlO'#HtOOQ[1G3x1G3xO$:tQ`O'#HzO?YQ`O'#H|OOQ[1G4O1G4OO$:|QlO1G4OO9uQ!0LrO1G4UOOQ[1G4W1G4WOOQ!0Lb'#G_'#G_O9uQ!0LrO1G4YO9uQ!0LrO1G4[O$?TQ`O,5@bO!)[QlO,5;`O9eQ`O,5;`O?YQ`O,5:XO!)[QlO,5:XO!CUQpO,5:XO$?YQ?MtO,5:XOOQO,5;`,5;`O$?dQpO'#IeO$?zQ`O,5@aOOQ!0Lf1G/r1G/rO$@SQpO'#IkO$@^Q`O,5@pOOQ!0Lb1G0y1G0yO#$`QpO,5:XOOQO'#Ig'#IgO$@fQpO,5:qOOQ!0Ln,5:q,5:qO#(ZQ`O1G0ZOOQ!0Lf1G0Z1G0ZO%[QlO1G0ZOOQ!0Lf1G0t1G0tO?YQ`O1G0tO!CUQpO1G0tO!C^QMhO1G0tOOQ!0Lb1G5|1G5|O!ByQ!0LrO1G0^OOQO1G0m1G0mO%[QlO1G0mO$@mQ!0LrO1G0mO$@xQ!0LrO1G0mO!CUQpO1G0^ODWQpO1G0^O$AWQ!0LrO1G0mOOQO1G0^1G0^O$AlQ!0MxO1G0mPOOO-E<[-E<[POOO1G.h1G.hOOOO1G/i1G/iO$AvQ!bO,5<iO$BOQ!fO1G4jOOQO1G4p1G4pO%[QlO,5?OO$BYQ`O1G5zO$BbQ`O1G6YO$BjQ!fO1G6ZO9eQ`O,5?UO$BtQ!0MxO1G6WO%[QlO1G6WO$CUQ!0LrO1G6WO$CgQ`O1G6VO$CgQ`O1G6VO9eQ`O1G6VO$CoQ`O,5?XO9eQ`O,5?XOOQO,5?X,5?XO$DTQ`O,5?XO$+YQ`O,5?XOOQO-E<k-E<kOOQS1G0a1G0aOOQS1G0c1G0cO#.lQ`O1G0cOOQ[7+(e7+(eO!&zQMhO7+(eO%[QlO7+(eO$DcQ`O7+(eO$DnQMhO7+(eO$D|Q!0MzO,5=XO$GXQ!0MzO,5=ZO$IdQ!0MzO,5=XO$KuQ!0MzO,5=ZO$NWQ!0MzO,59uO%!]Q!0MzO,5<kO%$hQ!0MzO,5<mO%&sQ!0MzO,5<{OOQ!0Lf7+&a7+&aO%)UQ!0MxO7+&aO%)xQlO'#IfO%*VQ`O,5@cO%*_Q!fO,5@cOOQ!0Lf1G0P1G0PO%*iQ`O7+&jOOQ!0Lf7+&j7+&jO%*nQ?MtO,5:fO%[QlO7+&zO%*xQ?MtO,5:bO%+VQ?MtO,5:jO%+aQ?MtO,5:lO%+kQMhO'#IiO%+uQ`O,5@hOOQ!0Lh1G0d1G0dOOQO1G1r1G1rOOQO1G1s1G1sO%+}Q!jO,5<ZO!)[QlO,5<YOOQO-E<l-E<lOOQ!0Lf7+'Y7+'YOOOW7+'e7+'eOOOW1G1|1G1|O%,YQ`O1G1|OOQ!0Lf1G2O1G2OOOOO,59o,59oO%,_Q!dO,59oOOOO-E<`-E<`OOQ!0Lh1G/X1G/XO%,fQ!0MxO7+'kOOQ!0Lh,5?^,5?^O%-YQMhO1G2fP%-aQ`O'#IrPOQ!0Lh-E<p-E<pO%-}QMjO,5?aOOQ!0Lh-E<s-E<sO%.pQMjO,5?cOOQ!0Lh-E<u-E<uO%.zQ!dO1G2wO%/RQ!dO'#CrO%/iQMhO'#KSO$$wQlO'#JvOOQ!0Lh1G2_1G2_O%/sQ`O'#IqO%0[Q`O,5@vO%0[Q`O,5@vO%0dQ`O,5@vO%0oQ`O,5@vOOQO1G2a1G2aO%0}QMjO1G2`O$+YQ`O'#K[O!,TQMhO1G2`O%1_Q(CWO'#IsO%1lQ`O,5@wO!&zQMhO,5@wO%1tQ!dO,5@wOOQ!0Lh1G2d1G2dO%4UQ!fO'#CiO%4`Q`O,5=POOQ!0Lb,5<},5<}O%4hQpO,5<}OOQ!0Lb,5=O,5=OOCwQ`O,5<}O%4sQpO,5<}OOQ!0Lb,5=R,5=RO$+YQ`O,5=VOOQO,5?`,5?`OOQO-E<r-E<rOOQ!0Lp1G2h1G2hO#$`QpO,5<}O$$wQlO,5=PO%5RQ`O,5=OO%5^QpO,5=OO!,TQMhO'#IuO%6WQMjO1G2sO!,TQMhO'#IwO%6yQMjO1G2uO%7TQMjO1G5qO%7_QMjO1G5qOOQO,5?e,5?eOOQO-E<w-E<wOOQO1G.{1G.{O!,TQMhO1G5qO!,TQMhO1G5qO!:]QpO,59wO%[QlO,59wOOQ!0Lh,5<j,5<jO%7lQ`O1G2ZO!,TQMhO1G2bO%7qQ!0MxO7+'mOOQ!0Lf7+'m7+'mO!$wQlO7+'mO%8eQ`O,5;`OOQ!0Lb,5?g,5?gOOQ!0Lb-E<y-E<yO%8jQ!dO'#K^O#(ZQ`O7+(eO4UQ!fO7+(eO$DfQ`O7+(eO%8tQ!0MvO'#CiO%9XQ!0MvO,5=SO%9lQ`O,5=SO%9tQ`O,5=SOOQ!0Lb1G5o1G5oOOQ[7+$a7+$aO!ByQ!0LrO7+$aO!CUQpO7+$aO!$wQlO7+&aO%9yQ`O'#JQO%:bQ`O,5APOOQO1G3h1G3hO9kQ`O,5APO%:bQ`O,5APO%:jQ`O,5APOOQO,5?m,5?mOOQO-E=P-E=POOQ!0Lf7+'T7+'TO%:oQ`O7+)QO9uQ!0LrO7+)QO9kQ`O7+)QO@zQ`O7+)QO%:tQ`O7+)QOOQ[7+)Q7+)QOOQ[7+(p7+(pO%:yQ!0MvO7+(mO!&zQMhO7+(mO!E^Q`O7+(nOOQ[7+(n7+(nO!&zQMhO7+(nO%;TQ`O'#KbO%;`Q`O,5=lOOQO,5?i,5?iOOQO-E<{-E<{OOQ[7+(s7+(sO%<rQpO'#HZOOQ[1G3`1G3`O!&zQMhO1G3`O%[QlO1G3`O%<yQ`O1G3`O%=UQMhO1G3`O9uQ!0LrO1G3bO$%dQ`O1G3bO9`Q`O1G3bO!CUQpO1G3bO!C^QMhO1G3bO%=dQ`O'#JPO%=xQ`O,5@}O%>QQpO,5@}OOQ!0Lb1G3c1G3cOOQ[7+$V7+$VO@zQ`O7+$VO9uQ!0LrO7+$VO%>]Q`O7+$VO%[QlO1G6lO%[QlO1G6mO%>bQ!0LrO1G6lO%>lQlO1G3kO%>sQ`O1G3kO%>xQlO1G3kOOQ[7+)T7+)TO9uQ!0LrO7+)_O`QlO7+)aOOQ['#Kh'#KhOOQ['#JS'#JSO%?PQlO,5>`OOQ[,5>`,5>`O%[QlO'#HuO%?^Q`O'#HwOOQ[,5>f,5>fO9eQ`O,5>fOOQ[,5>h,5>hOOQ[7+)j7+)jOOQ[7+)p7+)pOOQ[7+)t7+)tOOQ[7+)v7+)vO%?cQpO1G5|O%?}Q?MtO1G0zO%@XQ`O1G0zOOQO1G/s1G/sO%@dQ?MtO1G/sO?YQ`O1G/sO!)[QlO'#DmOOQO,5?P,5?POOQO-E<c-E<cOOQO,5?V,5?VOOQO-E<i-E<iO!CUQpO1G/sOOQO-E<e-E<eOOQ!0Ln1G0]1G0]OOQ!0Lf7+%u7+%uO#(ZQ`O7+%uOOQ!0Lf7+&`7+&`O?YQ`O7+&`O!CUQpO7+&`OOQO7+%x7+%xO$AlQ!0MxO7+&XOOQO7+&X7+&XO%[QlO7+&XO%@nQ!0LrO7+&XO!ByQ!0LrO7+%xO!CUQpO7+%xO%@yQ!0LrO7+&XO%AXQ!0MxO7++rO%[QlO7++rO%AiQ`O7++qO%AiQ`O7++qOOQO1G4s1G4sO9eQ`O1G4sO%AqQ`O1G4sOOQS7+%}7+%}O#(ZQ`O<<LPO4UQ!fO<<LPO%BPQ`O<<LPOOQ[<<LP<<LPO!&zQMhO<<LPO%[QlO<<LPO%BXQ`O<<LPO%BdQ!0MzO,5?aO%DoQ!0MzO,5?cO%FzQ!0MzO1G2`O%I]Q!0MzO1G2sO%KhQ!0MzO1G2uO%MsQ!fO,5?QO%[QlO,5?QOOQO-E<d-E<dO%M}Q`O1G5}OOQ!0Lf<<JU<<JUO%NVQ?MtO1G0uO&!^Q?MtO1G1PO&!eQ?MtO1G1PO&$fQ?MtO1G1PO&$mQ?MtO1G1PO&&nQ?MtO1G1PO&(oQ?MtO1G1PO&(vQ?MtO1G1PO&(}Q?MtO1G1PO&+OQ?MtO1G1PO&+VQ?MtO1G1PO&+^Q!0MxO<<JfO&-UQ?MtO1G1PO&.RQ?MvO1G1PO&/UQ?MvO'#JlO&1[Q?MtO1G1cO&1iQ?MtO1G0UO&1sQMjO,5?TOOQO-E<g-E<gO!)[QlO'#FqOOQO'#KZ'#KZOOQO1G1u1G1uO&1}Q`O1G1tO&2SQ?MtO,5?[OOOW7+'h7+'hOOOO1G/Z1G/ZO&2^Q!dO1G4xOOQ!0Lh7+(Q7+(QP!&zQMhO,5?^O!,TQMhO7+(cO&2eQ`O,5?]O9eQ`O,5?]O$+YQ`O,5?]OOQO-E<o-E<oO&2sQ`O1G6bO&2sQ`O1G6bO&2{Q`O1G6bO&3WQMjO7+'zO&3hQ!dO,5?_O&3rQ`O,5?_O!&zQMhO,5?_OOQO-E<q-E<qO&3wQ!dO1G6cO&4RQ`O1G6cO&4ZQ`O1G2kO!&zQMhO1G2kOOQ!0Lb1G2i1G2iOOQ!0Lb1G2j1G2jO%4hQpO1G2iO!CUQpO1G2iOCwQ`O1G2iOOQ!0Lb1G2q1G2qO&4`QpO1G2iO&4nQ`O1G2kO$+YQ`O1G2jOCwQ`O1G2jO$$wQlO1G2kO&4vQ`O1G2jO&5jQMjO,5?aOOQ!0Lh-E<t-E<tO&6]QMjO,5?cOOQ!0Lh-E<v-E<vO!,TQMhO7++]O&6gQMjO7++]O&6qQMjO7++]OOQ!0Lh1G/c1G/cO&7OQ`O1G/cOOQ!0Lh7+'u7+'uO&7TQMjO7+'|O&7eQ!0MxO<<KXOOQ!0Lf<<KX<<KXO&8XQ`O1G0zO!&zQMhO'#IzO&8^Q`O,5@xO&:`Q!fO<<LPO!&zQMhO1G2nO&:gQ!0LrO1G2nOOQ[<<G{<<G{O!ByQ!0LrO<<G{O&:xQ!0MxO<<I{OOQ!0Lf<<I{<<I{OOQO,5?l,5?lO&;lQ`O,5?lO&;qQ`O,5?lOOQO-E=O-E=OO&<PQ`O1G6kO&<PQ`O1G6kO9kQ`O1G6kO@zQ`O<<LlOOQ[<<Ll<<LlO&<XQ`O<<LlO9uQ!0LrO<<LlO9kQ`O<<LlOOQ[<<LX<<LXO%:yQ!0MvO<<LXOOQ[<<LY<<LYO!E^Q`O<<LYO&<^QpO'#I|O&<iQ`O,5@|O!)[QlO,5@|OOQ[1G3W1G3WOOQO'#JO'#JOO9uQ!0LrO'#JOO&<qQpO,5=uOOQ[,5=u,5=uO&<xQpO'#EgO&=PQpO'#GeO&=UQ`O7+(zO&=ZQ`O7+(zOOQ[7+(z7+(zO!&zQMhO7+(zO%[QlO7+(zO&=cQ`O7+(zOOQ[7+(|7+(|O9uQ!0LrO7+(|O$%dQ`O7+(|O9`Q`O7+(|O!CUQpO7+(|O&=nQ`O,5?kOOQO-E<}-E<}OOQO'#H^'#H^O&=yQ`O1G6iO9uQ!0LrO<<GqOOQ[<<Gq<<GqO@zQ`O<<GqO&>RQ`O7+,WO&>WQ`O7+,XO%[QlO7+,WO%[QlO7+,XOOQ[7+)V7+)VO&>]Q`O7+)VO&>bQlO7+)VO&>iQ`O7+)VOOQ[<<Ly<<LyOOQ[<<L{<<L{OOQ[-E=Q-E=QOOQ[1G3z1G3zO&>nQ`O,5>aOOQ[,5>c,5>cO&>sQ`O1G4QO9eQ`O7+&fO!)[QlO7+&fOOQO7+%_7+%_O&>xQ?MtO1G6ZO?YQ`O7+%_OOQ!0Lf<<Ia<<IaOOQ!0Lf<<Iz<<IzO?YQ`O<<IzOOQO<<Is<<IsO$AlQ!0MxO<<IsO%[QlO<<IsOOQO<<Id<<IdO!ByQ!0LrO<<IdO&?SQ!0LrO<<IsO&?_Q!0MxO<= ^O&?oQ`O<= ]OOQO7+*_7+*_O9eQ`O7+*_OOQ[ANAkANAkO&?wQ!fOANAkO!&zQMhOANAkO#(ZQ`OANAkO4UQ!fOANAkO&@OQ`OANAkO%[QlOANAkO&@WQ!0MzO7+'zO&BiQ!0MzO,5?aO&DtQ!0MzO,5?cO&GPQ!0MzO7+'|O&IbQ!fO1G4lO&IlQ?MtO7+&aO&KpQ?MvO,5=XO&MwQ?MvO,5=ZO&NXQ?MvO,5=XO&NiQ?MvO,5=ZO&NyQ?MvO,59uO'#PQ?MvO,5<kO'%SQ?MvO,5<mO''hQ?MvO,5<{O')^Q?MtO7+'kO')kQ?MtO7+'mO')xQ`O,5<]OOQO7+'`7+'`OOQ!0Lh7+*d7+*dO')}QMjO<<K}OOQO1G4w1G4wO'*UQ`O1G4wO'*aQ`O1G4wO'*oQ`O7++|O'*oQ`O7++|O!&zQMhO1G4yO'*wQ!dO1G4yO'+RQ`O7++}O'+ZQ`O7+(VO'+fQ!dO7+(VOOQ!0Lb7+(T7+(TOOQ!0Lb7+(U7+(UO!CUQpO7+(TOCwQ`O7+(TO'+pQ`O7+(VO!&zQMhO7+(VO$+YQ`O7+(UO'+uQ`O7+(VOCwQ`O7+(UO'+}QMjO<<NwO!,TQMhO<<NwOOQ!0Lh7+$}7+$}O',XQ!dO,5?fOOQO-E<x-E<xO',cQ!0MvO7+(YO!&zQMhO7+(YOOQ[AN=gAN=gO9kQ`O1G5WOOQO1G5W1G5WO',sQ`O1G5WO',xQ`O7+,VO',xQ`O7+,VO9uQ!0LrOANBWO@zQ`OANBWOOQ[ANBWANBWO'-QQ`OANBWOOQ[ANAsANAsOOQ[ANAtANAtO'-VQ`O,5?hOOQO-E<z-E<zO'-bQ?MtO1G6hOOQO,5?j,5?jOOQO-E<|-E<|OOQ[1G3a1G3aO'-lQ`O,5=POOQ[<<Lf<<LfO!&zQMhO<<LfO&=UQ`O<<LfO'-qQ`O<<LfO%[QlO<<LfOOQ[<<Lh<<LhO9uQ!0LrO<<LhO$%dQ`O<<LhO9`Q`O<<LhO'-yQpO1G5VO'.UQ`O7+,TOOQ[AN=]AN=]O9uQ!0LrOAN=]OOQ[<= r<= rOOQ[<= s<= sO'.^Q`O<= rO'.cQ`O<= sOOQ[<<Lq<<LqO'.hQ`O<<LqO'.mQlO<<LqOOQ[1G3{1G3{O?YQ`O7+)lO'.tQ`O<<JQO'/PQ?MtO<<JQOOQO<<Hy<<HyOOQ!0LfAN?fAN?fOOQOAN?_AN?_O$AlQ!0MxOAN?_OOQOAN?OAN?OO%[QlOAN?_OOQO<<My<<MyOOQ[G27VG27VO!&zQMhOG27VO#(ZQ`OG27VO'/ZQ!fOG27VO4UQ!fOG27VO'/bQ`OG27VO'/jQ?MtO<<JfO'/wQ?MvO1G2`O'1mQ?MvO,5?aO'3pQ?MvO,5?cO'5sQ?MvO1G2sO'7vQ?MvO1G2uO'9yQ?MtO<<KXO':WQ?MtO<<I{OOQO1G1w1G1wO!,TQMhOANAiOOQO7+*c7+*cO':eQ`O7+*cO':pQ`O<= hO':xQ!dO7+*eOOQ!0Lb<<Kq<<KqO$+YQ`O<<KqOCwQ`O<<KqO';SQ`O<<KqO!&zQMhO<<KqOOQ!0Lb<<Ko<<KoO!CUQpO<<KoO';_Q!dO<<KqOOQ!0Lb<<Kp<<KpO';iQ`O<<KqO!&zQMhO<<KqO$+YQ`O<<KpO';nQMjOANDcO';xQ!0MvO<<KtOOQO7+*r7+*rO9kQ`O7+*rO'<YQ`O<= qOOQ[G27rG27rO9uQ!0LrOG27rO@zQ`OG27rO!)[QlO1G5SO'<bQ`O7+,SO'<jQ`O1G2kO&=UQ`OANBQOOQ[ANBQANBQO!&zQMhOANBQO'<oQ`OANBQOOQ[ANBSANBSO9uQ!0LrOANBSO$%dQ`OANBSOOQO'#H_'#H_OOQO7+*q7+*qOOQ[G22wG22wOOQ[ANE^ANE^OOQ[ANE_ANE_OOQ[ANB]ANB]O'<wQ`OANB]OOQ[<<MW<<MWO!)[QlOAN?lOOQOG24yG24yO$AlQ!0MxOG24yO#(ZQ`OLD,qOOQ[LD,qLD,qO!&zQMhOLD,qO'<|Q!fOLD,qO'=TQ?MvO7+'zO'>yQ?MvO,5?aO'@|Q?MvO,5?cO'CPQ?MvO7+'|O'DuQMjOG27TOOQO<<M}<<M}OOQ!0LbANA]ANA]O$+YQ`OANA]OCwQ`OANA]O'EVQ!dOANA]OOQ!0LbANAZANAZO'E^Q`OANA]O!&zQMhOANA]O'EiQ!dOANA]OOQ!0LbANA[ANA[OOQO<<N^<<N^OOQ[LD-^LD-^O9uQ!0LrOLD-^O'EsQ?MtO7+*nOOQO'#Gf'#GfOOQ[G27lG27lO&=UQ`OG27lO!&zQMhOG27lOOQ[G27nG27nO9uQ!0LrOG27nOOQ[G27wG27wO'E}Q?MtOG25WOOQOLD*eLD*eOOQ[!$(!]!$(!]O#(ZQ`O!$(!]O!&zQMhO!$(!]O'FXQ!0MzOG27TOOQ!0LbG26wG26wO$+YQ`OG26wO'HjQ`OG26wOCwQ`OG26wO'HuQ!dOG26wO!&zQMhOG26wOOQ[!$(!x!$(!xOOQ[LD-WLD-WO&=UQ`OLD-WOOQ[LD-YLD-YOOQ[!)9Ew!)9EwO#(ZQ`O!)9EwOOQ!0LbLD,cLD,cO$+YQ`OLD,cOCwQ`OLD,cO'H|Q`OLD,cO'IXQ!dOLD,cOOQ[!$(!r!$(!rOOQ[!.K;c!.K;cO'I`Q?MvOG27TOOQ!0Lb!$( }!$( }O$+YQ`O!$( }OCwQ`O!$( }O'KUQ`O!$( }OOQ!0Lb!)9Ei!)9EiO$+YQ`O!)9EiOCwQ`O!)9EiOOQ!0Lb!.K;T!.K;TO$+YQ`O!.K;TOOQ!0Lb!4/0o!4/0oO!)[QlO'#DzO1PQ`O'#EXO'KaQ!fO'#JrO'KhQ!L^O'#DvO'KoQlO'#EOO'KvQ!fO'#CiO'N^Q!fO'#CiO!)[QlO'#EQO'NnQlO,5;ZO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO'#IpO(!qQ`O,5<iO!)[QlO,5;eO(!yQMhO,5;eO($dQMhO,5;eO!)[QlO,5;wO!&zQMhO'#GmO(!yQMhO'#GmO!&zQMhO'#GoO(!yQMhO'#GoO1SQ`O'#DZO1SQ`O'#DZO!&zQMhO'#GPO(!yQMhO'#GPO!&zQMhO'#GRO(!yQMhO'#GRO!&zQMhO'#GaO(!yQMhO'#GaO!)[QlO,5:jO($kQpO'#D_O($uQpO'#JvO!)[QlO,5@oO'NnQlO1G0uO(%PQ?MtO'#CiO!)[QlO1G2PO!&zQMhO'#IuO(!yQMhO'#IuO!&zQMhO'#IwO(!yQMhO'#IwO(%ZQ!dO'#CrO!&zQMhO,5<tO(!yQMhO,5<tO'NnQlO1G2RO!)[QlO7+&zO!&zQMhO1G2`O(!yQMhO1G2`O!&zQMhO'#IuO(!yQMhO'#IuO!&zQMhO'#IwO(!yQMhO'#IwO!&zQMhO1G2bO(!yQMhO1G2bO'NnQlO7+'mO'NnQlO7+&aO!&zQMhOANAiO(!yQMhOANAiO(%nQ`O'#EoO(%sQ`O'#EoO(%{Q`O'#F]O(&QQ`O'#EyO(&VQ`O'#KTO(&bQ`O'#KRO(&mQ`O,5;ZO(&rQMjO,5<eO(&yQ`O'#GYO('OQ`O'#GYO('TQ`O,5<eO(']Q`O,5<gO('eQ`O,5;ZO('mQ?MtO1G1`O('tQ`O,5<tO('yQ`O,5<tO((OQ`O,5<vO((TQ`O,5<vO((YQ`O1G2RO((_Q`O1G0uO((dQMjO<<K}O((kQMjO<<K}O((rQMhO'#F|O9`Q`O'#F{OAuQ`O'#EnO!)[QlO,5;tO!3oQ`O'#GYO!3oQ`O'#GYO!3oQ`O'#G[O!3oQ`O'#G[O!,TQMhO7+(cO!,TQMhO7+(cO%.zQ!dO1G2wO%.zQ!dO1G2wO!&zQMhO,5=]O!&zQMhO,5=]",stateData:"()x~O'|OS'}OSTOS(ORQ~OPYOQYOSfOY!VOaqOdzOeyOl!POpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_XO!iuO!lZO!oYO!pYO!qYO!svO!uwO!xxO!|]O$W|O$niO%h}O%j!QO%l!OO%m!OO%n!OO%q!RO%s!SO%v!TO%w!TO%y!UO&W!WO&^!XO&`!YO&b!ZO&d![O&g!]O&m!^O&s!_O&u!`O&w!aO&y!bO&{!cO(TSO(VTO(YUO(aVO(o[O~OWtO~P`OPYOQYOSfOd!jOe!iOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_!eO!iuO!lZO!oYO!pYO!qYO!svO!u!gO!x!hO$W!kO$niO(T!dO(VTO(YUO(aVO(o[O~Oa!wOs!nO!S!oO!b!yO!c!vO!d!vO!|<VO#T!pO#U!pO#V!xO#W!pO#X!pO#[!zO#]!zO(U!lO(VTO(YUO(e!mO(o!sO~O(O!{O~OP]XR]X[]Xa]Xj]Xr]X!Q]X!S]X!]]X!l]X!p]X#R]X#S]X#`]X#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X'z]X(a]X(r]X(y]X(z]X~O!g%RX~P(qO_!}O(V#PO(W!}O(X#PO~O_#QO(X#PO(Y#PO(Z#QO~Ox#SO!U#TO(b#TO(c#VO~OPYOQYOSfOd!jOe!iOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_!eO!iuO!lZO!oYO!pYO!qYO!svO!u!gO!x!hO$W!kO$niO(T<ZO(VTO(YUO(aVO(o[O~O![#ZO!]#WO!Y(hP!Y(vP~P+}O!^#cO~P`OPYOQYOSfOd!jOe!iOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_!eO!iuO!lZO!oYO!pYO!qYO!svO!u!gO!x!hO$W!kO$niO(VTO(YUO(aVO(o[O~Op#mO![#iO!|]O#i#lO#j#iO(T<[O!k(sP~P.iO!l#oO(T#nO~O!x#sO!|]O%h#tO~O#k#uO~O!g#vO#k#uO~OP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!]$_O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO#z$WO#{$XO(aVO(r$YO(y#|O(z#}O~Oa(fX'z(fX'w(fX!k(fX!Y(fX!_(fX%i(fX!g(fX~P1qO#S$dO#`$eO$Q$eOP(gXR(gX[(gXj(gXr(gX!Q(gX!S(gX!](gX!l(gX!p(gX#R(gX#n(gX#o(gX#p(gX#q(gX#r(gX#s(gX#t(gX#u(gX#v(gX#x(gX#z(gX#{(gX(a(gX(r(gX(y(gX(z(gX!_(gX%i(gX~Oa(gX'z(gX'w(gX!Y(gX!k(gXv(gX!g(gX~P4UO#`$eO~O$]$hO$_$gO$f$mO~OSfO!_$nO$i$oO$k$qO~Oh%VOj%dOk%dOp%WOr%XOs$tOt$tOz%YO|%ZO!O%]O!S${O!_$|O!i%bO!l$xO#j%cO$W%`O$t%^O$v%_O$y%aO(T$sO(VTO(YUO(a$uO(y$}O(z%POg(^P~Ol%[O~P7eO!l%eO~O!S%hO!_%iO(T%gO~O!g%mO~Oa%nO'z%nO~O!Q%rO~P%[O(U!lO~P%[O%n%vO~P%[Oh%VO!l%eO(T%gO(U!lO~Oe%}O!l%eO(T%gO~Oj$RO~O!_&PO(T%gO(U!lO(VTO(YUO`)WP~O!Q&SO!l&RO%j&VO&T&WO~P;SO!x#sO~O%s&YO!S)SX!_)SX(T)SX~O(T&ZO~Ol!PO!u&`O%j!QO%l!OO%m!OO%n!OO%q!RO%s!SO%v!TO%w!TO~Od&eOe&dO!x&bO%h&cO%{&aO~P<bOd&hOeyOl!PO!_&gO!u&`O!xxO!|]O%h}O%l!OO%m!OO%n!OO%q!RO%s!SO%v!TO%w!TO%y!UO~Ob&kO#`&nO%j&iO(U!lO~P=gO!l&oO!u&sO~O!l#oO~O!_XO~Oa%nO'x&{O'z%nO~Oa%nO'x'OO'z%nO~Oa%nO'x'QO'z%nO~O'w]X!Y]Xv]X!k]X&[]X!_]X%i]X!g]X~P(qO!b'_O!c'WO!d'WO(U!lO(VTO(YUO~Os'UO!S'TO!['XO(e'SO!^(iP!^(xP~P@nOn'bO!_'`O(T%gO~Oe'gO!l%eO(T%gO~O!Q&SO!l&RO~Os!nO!S!oO!|<VO#T!pO#U!pO#W!pO#X!pO(U!lO(VTO(YUO(e!mO(o!sO~O!b'mO!c'lO!d'lO#V!pO#['nO#]'nO~PBYOa%nOh%VO!g#vO!l%eO'z%nO(r'pO~O!p'tO#`'rO~PChOs!nO!S!oO(VTO(YUO(e!mO(o!sO~O!_XOs(mX!S(mX!b(mX!c(mX!d(mX!|(mX#T(mX#U(mX#V(mX#W(mX#X(mX#[(mX#](mX(U(mX(V(mX(Y(mX(e(mX(o(mX~O!c'lO!d'lO(U!lO~PDWO(P'xO(Q'xO(R'zO~O_!}O(V'|O(W!}O(X'|O~O_#QO(X'|O(Y'|O(Z#QO~Ov(OO~P%[Ox#SO!U#TO(b#TO(c(RO~O![(TO!Y'WX!Y'^X!]'WX!]'^X~P+}O!](VO!Y(hX~OP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!](VO!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO#z$WO#{$XO(aVO(r$YO(y#|O(z#}O~O!Y(hX~PHRO!Y([O~O!Y(uX!](uX!g(uX!k(uX(r(uX~O#`(uX#k#dX!^(uX~PJUO#`(]O!Y(wX!](wX~O!](^O!Y(vX~O!Y(aO~O#`$eO~PJUO!^(bO~P`OR#zO!Q#yO!S#{O!l#xO(aVOP!na[!naj!nar!na!]!na!p!na#R!na#n!na#o!na#p!na#q!na#r!na#s!na#t!na#u!na#v!na#x!na#z!na#{!na(r!na(y!na(z!na~Oa!na'z!na'w!na!Y!na!k!nav!na!_!na%i!na!g!na~PKlO!k(cO~O!g#vO#`(dO(r'pO!](tXa(tX'z(tX~O!k(tX~PNXO!S%hO!_%iO!|]O#i(iO#j(hO(T%gO~O!](jO!k(sX~O!k(lO~O!S%hO!_%iO#j(hO(T%gO~OP(gXR(gX[(gXj(gXr(gX!Q(gX!S(gX!](gX!l(gX!p(gX#R(gX#n(gX#o(gX#p(gX#q(gX#r(gX#s(gX#t(gX#u(gX#v(gX#x(gX#z(gX#{(gX(a(gX(r(gX(y(gX(z(gX~O!g#vO!k(gX~P! uOR(nO!Q(mO!l#xO#S$dO!|!{a!S!{a~O!x!{a%h!{a!_!{a#i!{a#j!{a(T!{a~P!#vO!x(rO~OPYOQYOSfOd!jOe!iOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_XO!iuO!lZO!oYO!pYO!qYO!svO!u!gO!x!hO$W!kO$niO(T!dO(VTO(YUO(aVO(o[O~Oh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O<sO!S${O!_$|O!i>VO!l$xO#j<yO$W%`O$t<uO$v<wO$y%aO(T(vO(VTO(YUO(a$uO(y$}O(z%PO~O#k(xO~O![(zO!k(kP~P%[O(e(|O(o[O~O!S)OO!l#xO(e(|O(o[O~OP<UOQ<UOSfOd>ROe!iOpkOr<UOskOtkOzkO|<UO!O<UO!SWO!WkO!XkO!_!eO!i<XO!lZO!o<UO!p<UO!q<UO!s<YO!u<]O!x!hO$W!kO$n>PO(T)]O(VTO(YUO(aVO(o[O~O!]$_Oa$qa'z$qa'w$qa!k$qa!Y$qa!_$qa%i$qa!g$qa~Ol)dO~P!&zOh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O%]O!S${O!_$|O!i%bO!l$xO#j%cO$W%`O$t%^O$v%_O$y%aO(T(vO(VTO(YUO(a$uO(y$}O(z%PO~Og(pP~P!,TO!Q)iO!g)hO!_$^X$Z$^X$]$^X$_$^X$f$^X~O!g)hO!_({X$Z({X$]({X$_({X$f({X~O!Q)iO~P!.^O!Q)iO!_({X$Z({X$]({X$_({X$f({X~O!_)kO$Z)oO$])jO$_)jO$f)pO~O![)sO~P!)[O$]$hO$_$gO$f)wO~On$zX!Q$zX#S$zX'y$zX(y$zX(z$zX~OgmXg$zXnmX!]mX#`mX~P!0SOx)yO(b)zO(c)|O~On*VO!Q*OO'y*PO(y$}O(z%PO~Og)}O~P!1WOg*WO~Oh%VOr%XOs$tOt$tOz%YO|%ZO!O<sO!S*YO!_*ZO!i>VO!l$xO#j<yO$W%`O$t<uO$v<wO$y%aO(VTO(YUO(a$uO(y$}O(z%PO~Op*`O}O(T&ZO~O!l+SO~O(T(vO~Op+WO!S%hO![#iO!_%iO!|]O#i#lO#j#iO(T%gO!k(sP~O!g#vO#k+XO~O!S%hOTX'z)TX~OP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO#z$WO#{$XO(aVO(r$YO(y#|O(z#}O~Oa!ja!]!ja'z!ja'w!ja!Y!ja!k!jav!ja!_!ja%i!ja!g!ja~P!:tOR#zO!Q#yO!S#{O!l#xO(aVOP!ra[!raj!rar!ra!]!ra!p!ra#R!ra#n!ra#o!ra#p!ra#q!ra#r!ra#s!ra#t!ra#u!ra#v!ra#x!ra#z!ra#{!ra(r!ra(y!ra(z!ra~Oa!ra'z!ra'w!ra!Y!ra!k!rav!ra!_!ra%i!ra!g!ra~P!=[OR#zO!Q#yO!S#{O!l#xO(aVOP!ta[!taj!tar!ta!]!ta!p!ta#R!ta#n!ta#o!ta#p!ta#q!ta#r!ta#s!ta#t!ta#u!ta#v!ta#x!ta#z!ta#{!ta(r!ta(y!ta(z!ta~Oa!ta'z!ta'w!ta!Y!ta!k!tav!ta!_!ta%i!ta!g!ta~P!?rOh%VOn+gO!_'`O%i+fO~O!g+iOa(]X!_(]X'z(]X!](]X~Oa%nO!_XO'z%nO~Oh%VO!l%eO~Oh%VO!l%eO(T%gO~O!g#vO#k(xO~Ob+tO%j+uO(T+qO(VTO(YUO!^)XP~O!]+vO`)WX~O[+zO~O`+{O~O!_&PO(T%gO(U!lO`)WP~O%j,OO~P;SOh%VO#`,SO~Oh%VOn,VO!_$|O~O!_,XO~O!Q,ZO!_XO~O%n%vO~O!x,`O~Oe,eO~Ob,fO(T#nO(VTO(YUO!^)VP~Oe%}O~O%j!QO(T&ZO~P=gO[,kO`,jO~OPYOQYOSfOdzOeyOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!iuO!lZO!oYO!pYO!qYO!svO!xxO!|]O$niO%h}O(VTO(YUO(aVO(o[O~O!_!eO!u!gO$W!kO(T!dO~P!FyO`,jOa%nO'z%nO~OPYOQYOSfOd!jOe!iOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_!eO!iuO!lZO!oYO!pYO!qYO!svO!x!hO$W!kO$niO(T!dO(VTO(YUO(aVO(o[O~Oa,pOl!OO!uwO%l!OO%m!OO%n!OO~P!IcO!l&oO~O&^,vO~O!_,xO~O&o,zO&q,{OP&laQ&laS&laY&laa&lad&lae&lal&lap&lar&las&lat&laz&la|&la!O&la!S&la!W&la!X&la!_&la!i&la!l&la!o&la!p&la!q&la!s&la!u&la!x&la!|&la$W&la$n&la%h&la%j&la%l&la%m&la%n&la%q&la%s&la%v&la%w&la%y&la&W&la&^&la&`&la&b&la&d&la&g&la&m&la&s&la&u&la&w&la&y&la&{&la'w&la(T&la(V&la(Y&la(a&la(o&la!^&la&e&lab&la&j&la~O(T-QO~Oh!eX!]!RX!^!RX!g!RX!g!eX!l!eX#`!RX~O!]!eX!^!eX~P#!iO!g-VO#`-UOh(jX!]#hX!^#hX!g(jX!l(jX~O!](jX!^(jX~P##[Oh%VO!g-XO!l%eO!]!aX!^!aX~Os!nO!S!oO(VTO(YUO(e!mO~OP<UOQ<UOSfOd>ROe!iOpkOr<UOskOtkOzkO|<UO!O<UO!SWO!WkO!XkO!_!eO!i<XO!lZO!o<UO!p<UO!q<UO!s<YO!u<]O!x!hO$W!kO$n>PO(VTO(YUO(aVO(o[O~O(T=QO~P#$qO!]-]O!^(iX~O!^-_O~O!g-VO#`-UO!]#hX!^#hX~O!]-`O!^(xX~O!^-bO~O!c-cO!d-cO(U!lO~P#$`O!^-fO~P'_On-iO!_'`O~O!Y-nO~Os!{a!b!{a!c!{a!d!{a#T!{a#U!{a#V!{a#W!{a#X!{a#[!{a#]!{a(U!{a(V!{a(Y!{a(e!{a(o!{a~P!#vO!p-sO#`-qO~PChO!c-uO!d-uO(U!lO~PDWOa%nO#`-qO'z%nO~Oa%nO!g#vO#`-qO'z%nO~Oa%nO!g#vO!p-sO#`-qO'z%nO(r'pO~O(P'xO(Q'xO(R-zO~Ov-{O~O!Y'Wa!]'Wa~P!:tO![.PO!Y'WX!]'WX~P%[O!](VO!Y(ha~O!Y(ha~PHRO!](^O!Y(va~O!S%hO![.TO!_%iO(T%gO!Y'^X!]'^X~O#`.VO!](ta!k(taa(ta'z(ta~O!g#vO~P#,wO!](jO!k(sa~O!S%hO!_%iO#j.ZO(T%gO~Op.`O!S%hO![.]O!_%iO!|]O#i._O#j.]O(T%gO!]'aX!k'aX~OR.dO!l#xO~Oh%VOn.gO!_'`O%i.fO~Oa#ci!]#ci'z#ci'w#ci!Y#ci!k#civ#ci!_#ci%i#ci!g#ci~P!:tOn>]O!Q*OO'y*PO(y$}O(z%PO~O#k#_aa#_a#`#_a'z#_a!]#_a!k#_a!_#_a!Y#_a~P#/sO#k(`XP(`XR(`X[(`Xa(`Xj(`Xr(`X!S(`X!l(`X!p(`X#R(`X#n(`X#o(`X#p(`X#q(`X#r(`X#s(`X#t(`X#u(`X#v(`X#x(`X#z(`X#{(`X'z(`X(a(`X(r(`X!k(`X!Y(`X'w(`Xv(`X!_(`X%i(`X!g(`X~P!6kO!].tO!k(kX~P!:tO!k.wO~O!Y.yO~OP$[OR#zO!Q#yO!S#{O!l#xO!p$[O(aVO[#mia#mij#mir#mi!]#mi#R#mi#o#mi#p#mi#q#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#n#mi~P#3cO#n$OO~P#3cOP$[OR#zOr$aO!Q#yO!S#{O!l#xO!p$[O#n$OO#o$PO#p$PO#q$PO(aVO[#mia#mij#mi!]#mi#R#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#r#mi~P#6QO#r$QO~P#6QOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO(aVOa#mi!]#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#v#mi~P#8oOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO(aVO(z#}Oa#mi!]#mi#z#mi#{#mi'z#mi(r#mi(y#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#x$UO~P#;VO#x#mi~P#;VO#v$SO~P#8oOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO(aVO(y#|O(z#}Oa#mi!]#mi#{#mi'z#mi(r#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#z#mi~P#={O#z$WO~P#={OP]XR]X[]Xj]Xr]X!Q]X!S]X!l]X!p]X#R]X#S]X#`]X#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X(a]X(r]X(y]X(z]X!]]X!^]X~O$O]X~P#@jOP$[OR#zO[<mOj<bOr<kO!Q#yO!S#{O!l#xO!p$[O#R<bO#n<_O#o<`O#p<`O#q<`O#r<aO#s<bO#t<bO#u<lO#v<cO#x<eO#z<gO#{<hO(aVO(r$YO(y#|O(z#}O~O$O.{O~P#BwO#S$dO#`<nO$Q<nO$O(gX!^(gX~P! uOa'da!]'da'z'da'w'da!k'da!Y'dav'da!_'da%i'da!g'da~P!:tO[#mia#mij#mir#mi!]#mi#R#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'z#mi(r#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~OP$[OR#zO!Q#yO!S#{O!l#xO!p$[O#n$OO#o$PO#p$PO#q$PO(aVO(y#mi(z#mi~P#EyOn>]O!Q*OO'y*PO(y$}O(z%POP#miR#mi!S#mi!l#mi!p#mi#n#mi#o#mi#p#mi#q#mi(a#mi~P#EyO!]/POg(pX~P!1WOg/RO~Oa$Pi!]$Pi'z$Pi'w$Pi!Y$Pi!k$Piv$Pi!_$Pi%i$Pi!g$Pi~P!:tO$]/SO$_/SO~O$]/TO$_/TO~O!g)hO#`/UO!_$cX$Z$cX$]$cX$_$cX$f$cX~O![/VO~O!_)kO$Z/XO$])jO$_)jO$f/YO~O!]<iO!^(fX~P#BwO!^/ZO~O!g)hO$f({X~O$f/]O~Ov/^O~P!&zOx)yO(b)zO(c/aO~O!S/dO~O(y$}On%aa!Q%aa'y%aa(z%aa!]%aa#`%aa~Og%aa$O%aa~P#L{O(z%POn%ca!Q%ca'y%ca(y%ca!]%ca#`%ca~Og%ca$O%ca~P#MnO!]fX!gfX!kfX!k$zX(rfX~P!0SOp%WOPP~P!1uOr*sO!b*qO!c*kO!d*kO!l*bO#[*rO%`*mO(U!lO(VTO(YUO~Os<}O!S/nO![+[O!^*pO(e<|O!^(xP~P$ [O!k/oO~P#/sO!]/pO!g#vO(r'pO!k)OX~O!k/uO~OnoX!QoX'yoX(yoX(zoX~O!g#vO!koX~P$#OOp/wO!S%hO![*^O!_%iO(T%gO!k)OP~O#k/xO~O!Y$zX!]$zX!g%RX~P!0SO!]/yO!Y)PX~P#/sO!g/{O~O!Y/}O~OpkO(T0OO~P.iOh%VOr0TO!g#vO!l%eO(r'pO~O!g+iO~Oa%nO!]0XO'z%nO~O!^0ZO~P!5iO!c0[O!d0[O(U!lO~P#$`Os!nO!S0]O(VTO(YUO(e!mO~O#[0_O~Og%aa!]%aa#`%aa$O%aa~P!1WOg%ca!]%ca#`%ca$O%ca~P!1WOj%dOk%dOl%dO(T&ZOg'mX!]'mX~O!]*yOg(^a~Og0hO~On0jO#`0iOg(_a!](_a~OR0kO!Q0kO!S0lO#S$dOn}a'y}a(y}a(z}a!]}a#`}a~Og}a$O}a~P$(cO!Q*OO'y*POn$sa(y$sa(z$sa!]$sa#`$sa~Og$sa$O$sa~P$)_O!Q*OO'y*POn$ua(y$ua(z$ua!]$ua#`$ua~Og$ua$O$ua~P$*QO#k0oO~Og%Ta!]%Ta#`%Ta$O%Ta~P!1WO!g#vO~O#k0rO~O!]+^Oa)Ta'z)Ta~OR#zO!Q#yO!S#{O!l#xO(aVOP!ri[!rij!rir!ri!]!ri!p!ri#R!ri#n!ri#o!ri#p!ri#q!ri#r!ri#s!ri#t!ri#u!ri#v!ri#x!ri#z!ri#{!ri(r!ri(y!ri(z!ri~Oa!ri'z!ri'w!ri!Y!ri!k!riv!ri!_!ri%i!ri!g!ri~P$+oOh%VOr%XOs$tOt$tOz%YO|%ZO!O<sO!S${O!_$|O!i>VO!l$xO#j<yO$W%`O$t<uO$v<wO$y%aO(VTO(YUO(a$uO(y$}O(z%PO~Op0{O%]0|O(T0zO~P$.VO!g+iOa(]a!_(]a'z(]a!](]a~O#k1SO~O[]X!]fX!^fX~O!]1TO!^)XX~O!^1VO~O[1WO~Ob1YO(T+qO(VTO(YUO~O!_&PO(T%gO`'uX!]'uX~O!]+vO`)Wa~O!k1]O~P!:tO[1`O~O`1aO~O#`1fO~On1iO!_$|O~O(e(|O!^)UP~Oh%VOn1rO!_1oO%i1qO~O[1|O!]1zO!^)VX~O!^1}O~O`2POa%nO'z%nO~O(T#nO(VTO(YUO~O#S$dO#`$eO$Q$eOP(gXR(gX[(gXr(gX!Q(gX!S(gX!](gX!l(gX!p(gX#R(gX#n(gX#o(gX#p(gX#q(gX#r(gX#s(gX#t(gX#u(gX#v(gX#x(gX#z(gX#{(gX(a(gX(r(gX(y(gX(z(gX~Oj2SO&[2TOa(gX~P$3pOj2SO#`$eO&[2TO~Oa2VO~P%[Oa2XO~O&e2[OP&ciQ&ciS&ciY&cia&cid&cie&cil&cip&cir&cis&cit&ciz&ci|&ci!O&ci!S&ci!W&ci!X&ci!_&ci!i&ci!l&ci!o&ci!p&ci!q&ci!s&ci!u&ci!x&ci!|&ci$W&ci$n&ci%h&ci%j&ci%l&ci%m&ci%n&ci%q&ci%s&ci%v&ci%w&ci%y&ci&W&ci&^&ci&`&ci&b&ci&d&ci&g&ci&m&ci&s&ci&u&ci&w&ci&y&ci&{&ci'w&ci(T&ci(V&ci(Y&ci(a&ci(o&ci!^&cib&ci&j&ci~Ob2bO!^2`O&j2aO~P`O!_XO!l2dO~O&q,{OP&liQ&liS&liY&lia&lid&lie&lil&lip&lir&lis&lit&liz&li|&li!O&li!S&li!W&li!X&li!_&li!i&li!l&li!o&li!p&li!q&li!s&li!u&li!x&li!|&li$W&li$n&li%h&li%j&li%l&li%m&li%n&li%q&li%s&li%v&li%w&li%y&li&W&li&^&li&`&li&b&li&d&li&g&li&m&li&s&li&u&li&w&li&y&li&{&li'w&li(T&li(V&li(Y&li(a&li(o&li!^&li&e&lib&li&j&li~O!Y2jO~O!]!aa!^!aa~P#BwOs!nO!S!oO![2pO(e!mO!]'XX!^'XX~P@nO!]-]O!^(ia~O!]'_X!^'_X~P!9|O!]-`O!^(xa~O!^2wO~P'_Oa%nO#`3QO'z%nO~Oa%nO!g#vO#`3QO'z%nO~Oa%nO!g#vO!p3UO#`3QO'z%nO(r'pO~Oa%nO'z%nO~P!:tO!]$_Ov$qa~O!Y'Wi!]'Wi~P!:tO!](VO!Y(hi~O!](^O!Y(vi~O!Y(wi!](wi~P!:tO!](ti!k(tia(ti'z(ti~P!:tO#`3WO!](ti!k(tia(ti'z(ti~O!](jO!k(si~O!S%hO!_%iO!|]O#i3]O#j3[O(T%gO~O!S%hO!_%iO#j3[O(T%gO~On3dO!_'`O%i3cO~Oh%VOn3dO!_'`O%i3cO~O#k%aaP%aaR%aa[%aaa%aaj%aar%aa!S%aa!l%aa!p%aa#R%aa#n%aa#o%aa#p%aa#q%aa#r%aa#s%aa#t%aa#u%aa#v%aa#x%aa#z%aa#{%aa'z%aa(a%aa(r%aa!k%aa!Y%aa'w%aav%aa!_%aa%i%aa!g%aa~P#L{O#k%caP%caR%ca[%caa%caj%car%ca!S%ca!l%ca!p%ca#R%ca#n%ca#o%ca#p%ca#q%ca#r%ca#s%ca#t%ca#u%ca#v%ca#x%ca#z%ca#{%ca'z%ca(a%ca(r%ca!k%ca!Y%ca'w%cav%ca!_%ca%i%ca!g%ca~P#MnO#k%aaP%aaR%aa[%aaa%aaj%aar%aa!S%aa!]%aa!l%aa!p%aa#R%aa#n%aa#o%aa#p%aa#q%aa#r%aa#s%aa#t%aa#u%aa#v%aa#x%aa#z%aa#{%aa'z%aa(a%aa(r%aa!k%aa!Y%aa'w%aa#`%aav%aa!_%aa%i%aa!g%aa~P#/sO#k%caP%caR%ca[%caa%caj%car%ca!S%ca!]%ca!l%ca!p%ca#R%ca#n%ca#o%ca#p%ca#q%ca#r%ca#s%ca#t%ca#u%ca#v%ca#x%ca#z%ca#{%ca'z%ca(a%ca(r%ca!k%ca!Y%ca'w%ca#`%cav%ca!_%ca%i%ca!g%ca~P#/sO#k}aP}a[}aa}aj}ar}a!l}a!p}a#R}a#n}a#o}a#p}a#q}a#r}a#s}a#t}a#u}a#v}a#x}a#z}a#{}a'z}a(a}a(r}a!k}a!Y}a'w}av}a!_}a%i}a!g}a~P$(cO#k$saP$saR$sa[$saa$saj$sar$sa!S$sa!l$sa!p$sa#R$sa#n$sa#o$sa#p$sa#q$sa#r$sa#s$sa#t$sa#u$sa#v$sa#x$sa#z$sa#{$sa'z$sa(a$sa(r$sa!k$sa!Y$sa'w$sav$sa!_$sa%i$sa!g$sa~P$)_O#k$uaP$uaR$ua[$uaa$uaj$uar$ua!S$ua!l$ua!p$ua#R$ua#n$ua#o$ua#p$ua#q$ua#r$ua#s$ua#t$ua#u$ua#v$ua#x$ua#z$ua#{$ua'z$ua(a$ua(r$ua!k$ua!Y$ua'w$uav$ua!_$ua%i$ua!g$ua~P$*QO#k%TaP%TaR%Ta[%Taa%Taj%Tar%Ta!S%Ta!]%Ta!l%Ta!p%Ta#R%Ta#n%Ta#o%Ta#p%Ta#q%Ta#r%Ta#s%Ta#t%Ta#u%Ta#v%Ta#x%Ta#z%Ta#{%Ta'z%Ta(a%Ta(r%Ta!k%Ta!Y%Ta'w%Ta#`%Tav%Ta!_%Ta%i%Ta!g%Ta~P#/sOa#cq!]#cq'z#cq'w#cq!Y#cq!k#cqv#cq!_#cq%i#cq!g#cq~P!:tO![3lO!]'YX!k'YX~P%[O!].tO!k(ka~O!].tO!k(ka~P!:tO!Y3oO~O$O!na!^!na~PKlO$O!ja!]!ja!^!ja~P#BwO$O!ra!^!ra~P!=[O$O!ta!^!ta~P!?rOg']X!]']X~P!,TO!]/POg(pa~OSfO!_4TO$d4UO~O!^4YO~Ov4ZO~P#/sOa$mq!]$mq'z$mq'w$mq!Y$mq!k$mqv$mq!_$mq%i$mq!g$mq~P!:tO!Y4]O~P!&zO!S4^O~O!Q*OO'y*PO(z%POn'ia(y'ia!]'ia#`'ia~Og'ia$O'ia~P%-fO!Q*OO'y*POn'ka(y'ka(z'ka!]'ka#`'ka~Og'ka$O'ka~P%.XO(r$YO~P#/sO!YfX!Y$zX!]fX!]$zX!g%RX#`fX~P!0SOp%WO(T=WO~P!1uOp4bO!S%hO![4aO!_%iO(T%gO!]'eX!k'eX~O!]/pO!k)Oa~O!]/pO!g#vO!k)Oa~O!]/pO!g#vO(r'pO!k)Oa~Og$|i!]$|i#`$|i$O$|i~P!1WO![4jO!Y'gX!]'gX~P!3tO!]/yO!Y)Pa~O!]/yO!Y)Pa~P#/sOP]XR]X[]Xj]Xr]X!Q]X!S]X!Y]X!]]X!l]X!p]X#R]X#S]X#`]X#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X(a]X(r]X(y]X(z]X~Oj%YX!g%YX~P%2OOj4oO!g#vO~Oh%VO!g#vO!l%eO~Oh%VOr4tO!l%eO(r'pO~Or4yO!g#vO(r'pO~Os!nO!S4zO(VTO(YUO(e!mO~O(y$}On%ai!Q%ai'y%ai(z%ai!]%ai#`%ai~Og%ai$O%ai~P%5oO(z%POn%ci!Q%ci'y%ci(y%ci!]%ci#`%ci~Og%ci$O%ci~P%6bOg(_i!](_i~P!1WO#`5QOg(_i!](_i~P!1WO!k5VO~Oa$oq!]$oq'z$oq'w$oq!Y$oq!k$oqv$oq!_$oq%i$oq!g$oq~P!:tO!Y5ZO~O!]5[O!_)QX~P#/sOa$zX!_$zX%^]X'z$zX!]$zX~P!0SO%^5_OaoX!_oX'zoX!]oX~P$#OOp5`O(T#nO~O%^5_O~Ob5fO%j5gO(T+qO(VTO(YUO!]'tX!^'tX~O!]1TO!^)Xa~O[5kO~O`5lO~O[5pO~Oa%nO'z%nO~P#/sO!]5uO#`5wO!^)UX~O!^5xO~Or6OOs!nO!S*iO!b!yO!c!vO!d!vO!|<VO#T!pO#U!pO#V!pO#W!pO#X!pO#[5}O#]!zO(U!lO(VTO(YUO(e!mO(o!sO~O!^5|O~P%;eOn6TO!_1oO%i6SO~Oh%VOn6TO!_1oO%i6SO~Ob6[O(T#nO(VTO(YUO!]'sX!^'sX~O!]1zO!^)Va~O(VTO(YUO(e6^O~O`6bO~Oj6eO&[6fO~PNXO!k6gO~P%[Oa6iO~Oa6iO~P%[Ob2bO!^6nO&j2aO~P`O!g6pO~O!g6rOh(ji!](ji!^(ji!g(ji!l(jir(ji(r(ji~O!]#hi!^#hi~P#BwO#`6sO!]#hi!^#hi~O!]!ai!^!ai~P#BwOa%nO#`6|O'z%nO~Oa%nO!g#vO#`6|O'z%nO~O!](tq!k(tqa(tq'z(tq~P!:tO!](jO!k(sq~O!S%hO!_%iO#j7TO(T%gO~O!_'`O%i7WO~On7[O!_'`O%i7WO~O#k'iaP'iaR'ia['iaa'iaj'iar'ia!S'ia!l'ia!p'ia#R'ia#n'ia#o'ia#p'ia#q'ia#r'ia#s'ia#t'ia#u'ia#v'ia#x'ia#z'ia#{'ia'z'ia(a'ia(r'ia!k'ia!Y'ia'w'iav'ia!_'ia%i'ia!g'ia~P%-fO#k'kaP'kaR'ka['kaa'kaj'kar'ka!S'ka!l'ka!p'ka#R'ka#n'ka#o'ka#p'ka#q'ka#r'ka#s'ka#t'ka#u'ka#v'ka#x'ka#z'ka#{'ka'z'ka(a'ka(r'ka!k'ka!Y'ka'w'kav'ka!_'ka%i'ka!g'ka~P%.XO#k$|iP$|iR$|i[$|ia$|ij$|ir$|i!S$|i!]$|i!l$|i!p$|i#R$|i#n$|i#o$|i#p$|i#q$|i#r$|i#s$|i#t$|i#u$|i#v$|i#x$|i#z$|i#{$|i'z$|i(a$|i(r$|i!k$|i!Y$|i'w$|i#`$|iv$|i!_$|i%i$|i!g$|i~P#/sO#k%aiP%aiR%ai[%aia%aij%air%ai!S%ai!l%ai!p%ai#R%ai#n%ai#o%ai#p%ai#q%ai#r%ai#s%ai#t%ai#u%ai#v%ai#x%ai#z%ai#{%ai'z%ai(a%ai(r%ai!k%ai!Y%ai'w%aiv%ai!_%ai%i%ai!g%ai~P%5oO#k%ciP%ciR%ci[%cia%cij%cir%ci!S%ci!l%ci!p%ci#R%ci#n%ci#o%ci#p%ci#q%ci#r%ci#s%ci#t%ci#u%ci#v%ci#x%ci#z%ci#{%ci'z%ci(a%ci(r%ci!k%ci!Y%ci'w%civ%ci!_%ci%i%ci!g%ci~P%6bO!]'Ya!k'Ya~P!:tO!].tO!k(ki~O$O#ci!]#ci!^#ci~P#BwOP$[OR#zO!Q#yO!S#{O!l#xO!p$[O(aVO[#mij#mir#mi#R#mi#o#mi#p#mi#q#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi$O#mi(r#mi(y#mi(z#mi!]#mi!^#mi~O#n#mi~P%NdO#n<_O~P%NdOP$[OR#zOr<kO!Q#yO!S#{O!l#xO!p$[O#n<_O#o<`O#p<`O#q<`O(aVO[#mij#mi#R#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi$O#mi(r#mi(y#mi(z#mi!]#mi!^#mi~O#r#mi~P&!lO#r<aO~P&!lOP$[OR#zO[<mOj<bOr<kO!Q#yO!S#{O!l#xO!p$[O#R<bO#n<_O#o<`O#p<`O#q<`O#r<aO#s<bO#t<bO#u<lO(aVO#x#mi#z#mi#{#mi$O#mi(r#mi(y#mi(z#mi!]#mi!^#mi~O#v#mi~P&$tOP$[OR#zO[<mOj<bOr<kO!Q#yO!S#{O!l#xO!p$[O#R<bO#n<_O#o<`O#p<`O#q<`O#r<aO#s<bO#t<bO#u<lO#v<cO(aVO(z#}O#z#mi#{#mi$O#mi(r#mi(y#mi!]#mi!^#mi~O#x<eO~P&&uO#x#mi~P&&uO#v<cO~P&$tOP$[OR#zO[<mOj<bOr<kO!Q#yO!S#{O!l#xO!p$[O#R<bO#n<_O#o<`O#p<`O#q<`O#r<aO#s<bO#t<bO#u<lO#v<cO#x<eO(aVO(y#|O(z#}O#{#mi$O#mi(r#mi!]#mi!^#mi~O#z#mi~P&)UO#z<gO~P&)UOa#|y!]#|y'z#|y'w#|y!Y#|y!k#|yv#|y!_#|y%i#|y!g#|y~P!:tO[#mij#mir#mi#R#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi$O#mi(r#mi!]#mi!^#mi~OP$[OR#zO!Q#yO!S#{O!l#xO!p$[O#n<_O#o<`O#p<`O#q<`O(aVO(y#mi(z#mi~P&,QOn>^O!Q*OO'y*PO(y$}O(z%POP#miR#mi!S#mi!l#mi!p#mi#n#mi#o#mi#p#mi#q#mi(a#mi~P&,QO#S$dOP(`XR(`X[(`Xj(`Xn(`Xr(`X!Q(`X!S(`X!l(`X!p(`X#R(`X#n(`X#o(`X#p(`X#q(`X#r(`X#s(`X#t(`X#u(`X#v(`X#x(`X#z(`X#{(`X$O(`X'y(`X(a(`X(r(`X(y(`X(z(`X!](`X!^(`X~O$O$Pi!]$Pi!^$Pi~P#BwO$O!ri!^!ri~P$+oOg']a!]']a~P!1WO!^7nO~O!]'da!^'da~P#BwO!Y7oO~P#/sO!g#vO(r'pO!]'ea!k'ea~O!]/pO!k)Oi~O!]/pO!g#vO!k)Oi~Og$|q!]$|q#`$|q$O$|q~P!1WO!Y'ga!]'ga~P#/sO!g7vO~O!]/yO!Y)Pi~P#/sO!]/yO!Y)Pi~O!Y7yO~Oh%VOr8OO!l%eO(r'pO~Oj8QO!g#vO~Or8TO!g#vO(r'pO~O!Q*OO'y*PO(z%POn'ja(y'ja!]'ja#`'ja~Og'ja$O'ja~P&5RO!Q*OO'y*POn'la(y'la(z'la!]'la#`'la~Og'la$O'la~P&5tOg(_q!](_q~P!1WO#`8VOg(_q!](_q~P!1WO!Y8WO~Og%Oq!]%Oq#`%Oq$O%Oq~P!1WOa$oy!]$oy'z$oy'w$oy!Y$oy!k$oyv$oy!_$oy%i$oy!g$oy~P!:tO!g6rO~O!]5[O!_)Qa~O!_'`OP$TaR$Ta[$Taj$Tar$Ta!Q$Ta!S$Ta!]$Ta!l$Ta!p$Ta#R$Ta#n$Ta#o$Ta#p$Ta#q$Ta#r$Ta#s$Ta#t$Ta#u$Ta#v$Ta#x$Ta#z$Ta#{$Ta(a$Ta(r$Ta(y$Ta(z$Ta~O%i7WO~P&8fO%^8[Oa%[i!_%[i'z%[i!]%[i~Oa#cy!]#cy'z#cy'w#cy!Y#cy!k#cyv#cy!_#cy%i#cy!g#cy~P!:tO[8^O~Ob8`O(T+qO(VTO(YUO~O!]1TO!^)Xi~O`8dO~O(e(|O!]'pX!^'pX~O!]5uO!^)Ua~O!^8nO~P%;eO(o!sO~P$&YO#[8oO~O!_1oO~O!_1oO%i8qO~On8tO!_1oO%i8qO~O[8yO!]'sa!^'sa~O!]1zO!^)Vi~O!k8}O~O!k9OO~O!k9RO~O!k9RO~P%[Oa9TO~O!g9UO~O!k9VO~O!](wi!^(wi~P#BwOa%nO#`9_O'z%nO~O!](ty!k(tya(ty'z(ty~P!:tO!](jO!k(sy~O%i9bO~P&8fO!_'`O%i9bO~O#k$|qP$|qR$|q[$|qa$|qj$|qr$|q!S$|q!]$|q!l$|q!p$|q#R$|q#n$|q#o$|q#p$|q#q$|q#r$|q#s$|q#t$|q#u$|q#v$|q#x$|q#z$|q#{$|q'z$|q(a$|q(r$|q!k$|q!Y$|q'w$|q#`$|qv$|q!_$|q%i$|q!g$|q~P#/sO#k'jaP'jaR'ja['jaa'jaj'jar'ja!S'ja!l'ja!p'ja#R'ja#n'ja#o'ja#p'ja#q'ja#r'ja#s'ja#t'ja#u'ja#v'ja#x'ja#z'ja#{'ja'z'ja(a'ja(r'ja!k'ja!Y'ja'w'jav'ja!_'ja%i'ja!g'ja~P&5RO#k'laP'laR'la['laa'laj'lar'la!S'la!l'la!p'la#R'la#n'la#o'la#p'la#q'la#r'la#s'la#t'la#u'la#v'la#x'la#z'la#{'la'z'la(a'la(r'la!k'la!Y'la'w'lav'la!_'la%i'la!g'la~P&5tO#k%OqP%OqR%Oq[%Oqa%Oqj%Oqr%Oq!S%Oq!]%Oq!l%Oq!p%Oq#R%Oq#n%Oq#o%Oq#p%Oq#q%Oq#r%Oq#s%Oq#t%Oq#u%Oq#v%Oq#x%Oq#z%Oq#{%Oq'z%Oq(a%Oq(r%Oq!k%Oq!Y%Oq'w%Oq#`%Oqv%Oq!_%Oq%i%Oq!g%Oq~P#/sO!]'Yi!k'Yi~P!:tO$O#cq!]#cq!^#cq~P#BwO(y$}OP%aaR%aa[%aaj%aar%aa!S%aa!l%aa!p%aa#R%aa#n%aa#o%aa#p%aa#q%aa#r%aa#s%aa#t%aa#u%aa#v%aa#x%aa#z%aa#{%aa$O%aa(a%aa(r%aa!]%aa!^%aa~On%aa!Q%aa'y%aa(z%aa~P&IyO(z%POP%caR%ca[%caj%car%ca!S%ca!l%ca!p%ca#R%ca#n%ca#o%ca#p%ca#q%ca#r%ca#s%ca#t%ca#u%ca#v%ca#x%ca#z%ca#{%ca$O%ca(a%ca(r%ca!]%ca!^%ca~On%ca!Q%ca'y%ca(y%ca~P&LQOn>^O!Q*OO'y*PO(z%PO~P&IyOn>^O!Q*OO'y*PO(y$}O~P&LQOR0kO!Q0kO!S0lO#S$dOP}a[}aj}an}ar}a!l}a!p}a#R}a#n}a#o}a#p}a#q}a#r}a#s}a#t}a#u}a#v}a#x}a#z}a#{}a$O}a'y}a(a}a(r}a(y}a(z}a!]}a!^}a~O!Q*OO'y*POP$saR$sa[$saj$san$sar$sa!S$sa!l$sa!p$sa#R$sa#n$sa#o$sa#p$sa#q$sa#r$sa#s$sa#t$sa#u$sa#v$sa#x$sa#z$sa#{$sa$O$sa(a$sa(r$sa(y$sa(z$sa!]$sa!^$sa~O!Q*OO'y*POP$uaR$ua[$uaj$uan$uar$ua!S$ua!l$ua!p$ua#R$ua#n$ua#o$ua#p$ua#q$ua#r$ua#s$ua#t$ua#u$ua#v$ua#x$ua#z$ua#{$ua$O$ua(a$ua(r$ua(y$ua(z$ua!]$ua!^$ua~On>^O!Q*OO'y*PO(y$}O(z%PO~OP%TaR%Ta[%Taj%Tar%Ta!S%Ta!l%Ta!p%Ta#R%Ta#n%Ta#o%Ta#p%Ta#q%Ta#r%Ta#s%Ta#t%Ta#u%Ta#v%Ta#x%Ta#z%Ta#{%Ta$O%Ta(a%Ta(r%Ta!]%Ta!^%Ta~P''VO$O$mq!]$mq!^$mq~P#BwO$O$oq!]$oq!^$oq~P#BwO!^9oO~O$O9pO~P!1WO!g#vO!]'ei!k'ei~O!g#vO(r'pO!]'ei!k'ei~O!]/pO!k)Oq~O!Y'gi!]'gi~P#/sO!]/yO!Y)Pq~Or9wO!g#vO(r'pO~O[9yO!Y9xO~P#/sO!Y9xO~Oj:PO!g#vO~Og(_y!](_y~P!1WO!]'na!_'na~P#/sOa%[q!_%[q'z%[q!]%[q~P#/sO[:UO~O!]1TO!^)Xq~O`:YO~O#`:ZO!]'pa!^'pa~O!]5uO!^)Ui~P#BwO!S:]O~O!_1oO%i:`O~O(VTO(YUO(e:eO~O!]1zO!^)Vq~O!k:hO~O!k:iO~O!k:jO~O!k:jO~P%[O#`:mO!]#hy!^#hy~O!]#hy!^#hy~P#BwO%i:rO~P&8fO!_'`O%i:rO~O$O#|y!]#|y!^#|y~P#BwOP$|iR$|i[$|ij$|ir$|i!S$|i!l$|i!p$|i#R$|i#n$|i#o$|i#p$|i#q$|i#r$|i#s$|i#t$|i#u$|i#v$|i#x$|i#z$|i#{$|i$O$|i(a$|i(r$|i!]$|i!^$|i~P''VO!Q*OO'y*PO(z%POP'iaR'ia['iaj'ian'iar'ia!S'ia!l'ia!p'ia#R'ia#n'ia#o'ia#p'ia#q'ia#r'ia#s'ia#t'ia#u'ia#v'ia#x'ia#z'ia#{'ia$O'ia(a'ia(r'ia(y'ia!]'ia!^'ia~O!Q*OO'y*POP'kaR'ka['kaj'kan'kar'ka!S'ka!l'ka!p'ka#R'ka#n'ka#o'ka#p'ka#q'ka#r'ka#s'ka#t'ka#u'ka#v'ka#x'ka#z'ka#{'ka$O'ka(a'ka(r'ka(y'ka(z'ka!]'ka!^'ka~O(y$}OP%aiR%ai[%aij%ain%air%ai!Q%ai!S%ai!l%ai!p%ai#R%ai#n%ai#o%ai#p%ai#q%ai#r%ai#s%ai#t%ai#u%ai#v%ai#x%ai#z%ai#{%ai$O%ai'y%ai(a%ai(r%ai(z%ai!]%ai!^%ai~O(z%POP%ciR%ci[%cij%cin%cir%ci!Q%ci!S%ci!l%ci!p%ci#R%ci#n%ci#o%ci#p%ci#q%ci#r%ci#s%ci#t%ci#u%ci#v%ci#x%ci#z%ci#{%ci$O%ci'y%ci(a%ci(r%ci(y%ci!]%ci!^%ci~O$O$oy!]$oy!^$oy~P#BwO$O#cy!]#cy!^#cy~P#BwO!g#vO!]'eq!k'eq~O!]/pO!k)Oy~O!Y'gq!]'gq~P#/sOr:|O!g#vO(r'pO~O[;QO!Y;PO~P#/sO!Y;PO~Og(_!R!](_!R~P!1WOa%[y!_%[y'z%[y!]%[y~P#/sO!]1TO!^)Xy~O!]5uO!^)Uq~O(T;XO~O!_1oO%i;[O~O!k;_O~O%i;dO~P&8fOP$|qR$|q[$|qj$|qr$|q!S$|q!l$|q!p$|q#R$|q#n$|q#o$|q#p$|q#q$|q#r$|q#s$|q#t$|q#u$|q#v$|q#x$|q#z$|q#{$|q$O$|q(a$|q(r$|q!]$|q!^$|q~P''VO!Q*OO'y*PO(z%POP'jaR'ja['jaj'jan'jar'ja!S'ja!l'ja!p'ja#R'ja#n'ja#o'ja#p'ja#q'ja#r'ja#s'ja#t'ja#u'ja#v'ja#x'ja#z'ja#{'ja$O'ja(a'ja(r'ja(y'ja!]'ja!^'ja~O!Q*OO'y*POP'laR'la['laj'lan'lar'la!S'la!l'la!p'la#R'la#n'la#o'la#p'la#q'la#r'la#s'la#t'la#u'la#v'la#x'la#z'la#{'la$O'la(a'la(r'la(y'la(z'la!]'la!^'la~OP%OqR%Oq[%Oqj%Oqr%Oq!S%Oq!l%Oq!p%Oq#R%Oq#n%Oq#o%Oq#p%Oq#q%Oq#r%Oq#s%Oq#t%Oq#u%Oq#v%Oq#x%Oq#z%Oq#{%Oq$O%Oq(a%Oq(r%Oq!]%Oq!^%Oq~P''VOg%e!Z!]%e!Z#`%e!Z$O%e!Z~P!1WO!Y;hO~P#/sOr;iO!g#vO(r'pO~O[;kO!Y;hO~P#/sO!]'pq!^'pq~P#BwO!]#h!Z!^#h!Z~P#BwO#k%e!ZP%e!ZR%e!Z[%e!Za%e!Zj%e!Zr%e!Z!S%e!Z!]%e!Z!l%e!Z!p%e!Z#R%e!Z#n%e!Z#o%e!Z#p%e!Z#q%e!Z#r%e!Z#s%e!Z#t%e!Z#u%e!Z#v%e!Z#x%e!Z#z%e!Z#{%e!Z'z%e!Z(a%e!Z(r%e!Z!k%e!Z!Y%e!Z'w%e!Z#`%e!Zv%e!Z!_%e!Z%i%e!Z!g%e!Z~P#/sOr;tO!g#vO(r'pO~O!Y;uO~P#/sOr;|O!g#vO(r'pO~O!Y;}O~P#/sOP%e!ZR%e!Z[%e!Zj%e!Zr%e!Z!S%e!Z!l%e!Z!p%e!Z#R%e!Z#n%e!Z#o%e!Z#p%e!Z#q%e!Z#r%e!Z#s%e!Z#t%e!Z#u%e!Z#v%e!Z#x%e!Z#z%e!Z#{%e!Z$O%e!Z(a%e!Z(r%e!Z!]%e!Z!^%e!Z~P''VOr<QO!g#vO(r'pO~Ov(fX~P1qO!Q%rO~P!)[O(U!lO~P!)[O!YfX!]fX#`fX~P%2OOP]XR]X[]Xj]Xr]X!Q]X!S]X!]]X!]fX!l]X!p]X#R]X#S]X#`]X#`fX#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X(a]X(r]X(y]X(z]X~O!gfX!k]X!kfX(rfX~P'LTOP<UOQ<UOSfOd>ROe!iOpkOr<UOskOtkOzkO|<UO!O<UO!SWO!WkO!XkO!_XO!i<XO!lZO!o<UO!p<UO!q<UO!s<YO!u<]O!x!hO$W!kO$n>PO(T)]O(VTO(YUO(aVO(o[O~O!]<iO!^$qa~Oh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O<tO!S${O!_$|O!i>WO!l$xO#j<zO$W%`O$t<vO$v<xO$y%aO(T(vO(VTO(YUO(a$uO(y$}O(z%PO~Ol)dO~P(!yOr!eX(r!eX~P#!iOr(jX(r(jX~P##[O!^]X!^fX~P'LTO!YfX!Y$zX!]fX!]$zX#`fX~P!0SO#k<^O~O!g#vO#k<^O~O#`<nO~Oj<bO~O#`=OO!](wX!^(wX~O#`<nO!](uX!^(uX~O#k=PO~Og=RO~P!1WO#k=XO~O#k=YO~Og=RO(T&ZO~O!g#vO#k=ZO~O!g#vO#k=PO~O$O=[O~P#BwO#k=]O~O#k=^O~O#k=cO~O#k=dO~O#k=eO~O#k=fO~O$O=gO~P!1WO$O=hO~P!1WOl=sO~P7eOk#S#T#U#W#X#[#i#j#u$n$t$v$y%]%^%h%i%j%q%s%v%w%y%{~(OT#o!X'|(U#ps#n#qr!Q'}$]'}(T$_(e~",goto:"$9Y)]PPPPPP)^PP)aP)rP+W/]PPPP6mPP7TPP=QPPP@tPA^PA^PPPA^PCfPA^PA^PA^PCjPCoPD^PIWPPPI[PPPPI[L_PPPLeMVPI[PI[PP! eI[PPPI[PI[P!#lI[P!'S!(X!(bP!)U!)Y!)U!,gPPPPPPP!-W!(XPP!-h!/YP!2iI[I[!2n!5z!:h!:h!>gPPP!>oI[PPPPPPPPP!BOP!C]PPI[!DnPI[PI[I[I[I[I[PI[!FQP!I[P!LbP!Lf!Lp!Lt!LtP!IXP!Lx!LxP#!OP#!SI[PI[#!Y#%_CjA^PA^PA^A^P#&lA^A^#)OA^#+vA^#.SA^A^#.r#1W#1W#1]#1f#1W#1qPP#1WPA^#2ZA^#6YA^A^6mPPP#:_PPP#:x#:xP#:xP#;`#:xPP#;fP#;]P#;]#;y#;]#<e#<k#<n)aP#<q)aP#<z#<z#<zP)aP)aP)aP)aPP)aP#=Q#=TP#=T)aP#=XP#=[P)aP)aP)aP)aP)aP)a)aPP#=b#=h#=s#=y#>P#>V#>]#>k#>q#>{#?R#?]#?c#?s#?y#@k#@}#AT#AZ#Ai#BO#Cs#DR#DY#Et#FS#Gt#HS#HY#H`#Hf#Hp#Hv#H|#IW#Ij#IpPPPPPPPPPPP#IvPPPPPPP#Jk#Mx$ b$ i$ qPPP$']P$'f$*_$0x$0{$1O$1}$2Q$2X$2aP$2g$2jP$3W$3[$4S$5b$5g$5}PP$6S$6Y$6^$6a$6e$6i$7e$7|$8e$8i$8l$8o$8y$8|$9Q$9UR!|RoqOXst!Z#d%m&r&t&u&w,s,x2[2_Y!vQ'`-e1o5{Q%tvQ%|yQ&T|Q&j!VS'W!e-]Q'f!iS'l!r!yU*k$|*Z*oQ+o%}S+|&V&WQ,d&dQ-c'_Q-m'gQ-u'mQ0[*qQ1b,OQ1y,eR<{<Y%SdOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+],p,s,x-i-q.P.V.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3l4z6T6e6f6i6|8t9T9_S#q]<V!r)_$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SU+P%]<s<tQ+t&PQ,f&gQ,m&oQ0x+gQ0}+iQ1Y+uQ2R,kQ3`.gQ5`0|Q5f1TQ6[1zQ7Y3dQ8`5gR9e7['QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>S!S!nQ!r!v!y!z$|'W'_'`'l'm'n*k*o*q*r-]-c-e-u0[0_1o5{5}%[$ti#v$b$c$d$x${%O%Q%^%_%c)y*R*T*V*Y*a*g*w*x+f+i,S,V.f/P/d/m/x/y/{0`0b0i0j0o1f1i1q3c4^4_4j4o5Q5[5_6S7W7v8Q8V8[8q9b9p9y:P:`:r;Q;[;d;k<l<m<o<p<q<r<u<v<w<x<y<z=S=T=U=V=X=Y=]=^=_=`=a=b=c=d=g=h>P>X>Y>]>^Q&X|Q'U!eS'[%i-`Q+t&PQ,P&WQ,f&gQ0n+SQ1Y+uQ1_+{Q2Q,jQ2R,kQ5f1TQ5o1aQ6[1zQ6_1|Q6`2PQ8`5gQ8c5lQ8|6bQ:X8dQ:f8yQ;V:YR<}*ZrnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_R,h&k&z^OPXYstuvwz!Z!`!g!j!o#S#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'b'r(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>R>S[#]WZ#W#Z'X(T!b%jm#h#i#l$x%e%h(^(h(i(j*Y*^*b+Z+[+^,o-V.T.Z.[.]._/m/p2d3[3]4a6r7TQ%wxQ%{yW&Q|&V&W,OQ&_!TQ'c!hQ'e!iQ(q#sS+n%|%}Q+r&PQ,_&bQ,c&dS-l'f'gQ.i(rQ1R+oQ1X+uQ1Z+vQ1^+zQ1t,`S1x,d,eQ2|-mQ5e1TQ5i1WQ5n1`Q6Z1yQ8_5gQ8b5kQ8f5pQ:T8^R;T:U!U$zi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y!^%yy!i!u%{%|%}'V'e'f'g'k'u*j+n+o-Y-l-m-t0R0U1R2u2|3T4r4s4v7}9{Q+h%wQ,T&[Q,W&]Q,b&dQ.h(qQ1s,_U1w,c,d,eQ3e.iQ6U1tS6Y1x1yQ8x6Z#f>T#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^o>U<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=hW%Ti%V*y>PS&[!Q&iQ&]!RQ&^!SU*}%[%d=sR,R&Y%]%Si#v$b$c$d$x${%O%Q%^%_%c)y*R*T*V*Y*a*g*w*x+f+i,S,V.f/P/d/m/x/y/{0`0b0i0j0o1f1i1q3c4^4_4j4o5Q5[5_6S7W7v8Q8V8[8q9b9p9y:P:`:r;Q;[;d;k<l<m<o<p<q<r<u<v<w<x<y<z=S=T=U=V=X=Y=]=^=_=`=a=b=c=d=g=h>P>X>Y>]>^T)z$u){V+P%]<s<tW'[!e%i*Z-`S(}#y#zQ+c%rQ+y&SS.b(m(nQ1j,XQ5T0kR8i5u'QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>S$i$^c#Y#e%q%s%u(S(Y(t(y)R)S)T)U)V)W)X)Y)Z)[)^)`)b)g)q+d+x-Z-x-}.S.U.s.v.z.|.}/O/b0p2k2n3O3V3k3p3q3r3s3t3u3v3w3x3y3z3{3|4P4Q4X5X5c6u6{7Q7a7b7k7l8k9X9]9g9m9n:o;W;`<W=vT#TV#U'RkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SQ'Y!eR2q-]!W!nQ!e!r!v!y!z$|'W'_'`'l'm'n*Z*k*o*q*r-]-c-e-u0[0_1o5{5}R1l,ZnqOXst!Z#d%m&r&t&u&w,s,x2[2_Q&y!^Q'v!xS(s#u<^Q+l%zQ,]&_Q,^&aQ-j'dQ-w'oS.r(x=PS0q+X=ZQ1P+mQ1n,[Q2c,zQ2e,{Q2m-WQ2z-kQ2}-oS5Y0r=eQ5a1QS5d1S=fQ6t2oQ6x2{Q6}3SQ8]5bQ9Y6vQ9Z6yQ9^7OR:l9V$d$]c#Y#e%s%u(S(Y(t(y)R)S)T)U)V)W)X)Y)Z)[)^)`)b)g)q+d+x-Z-x-}.S.U.s.v.z.}/O/b0p2k2n3O3V3k3p3q3r3s3t3u3v3w3x3y3z3{3|4P4Q4X5X5c6u6{7Q7a7b7k7l8k9X9]9g9m9n:o;W;`<W=vS(o#p'iQ)P#zS+b%q.|S.c(n(pR3^.d'QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SS#q]<VQ&t!XQ&u!YQ&w![Q&x!]R2Z,vQ'a!hQ+e%wQ-h'cS.e(q+hQ2x-gW3b.h.i0w0yQ6w2yW7U3_3a3e5^U9a7V7X7ZU:q9c9d9fS;b:p:sQ;p;cR;x;qU!wQ'`-eT5y1o5{!Q_OXZ`st!V!Z#d#h%e%m&i&k&r&t&u&w(j,s,x.[2[2_]!pQ!r'`-e1o5{T#q]<V%^{OPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_S(}#y#zS.b(m(n!s=l$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SU$fd)_,mS(p#p'iU*v%R(w4OU0m+O.n7gQ5^0xQ7V3`Q9d7YR:s9em!tQ!r!v!y!z'`'l'm'n-e-u1o5{5}Q't!uS(f#g2US-s'k'wQ/s*]Q0R*jQ3U-vQ4f/tQ4r0TQ4s0UQ4x0^Q7r4`S7}4t4vS8R4y4{Q9r7sQ9v7yQ9{8OQ:Q8TS:{9w9xS;g:|;PS;s;h;iS;{;t;uS<P;|;}R<S<QQ#wbQ's!uS(e#g2US(g#m+WQ+Y%fQ+j%xQ+p&OU-r'k't'wQ.W(fU/r*]*`/wQ0S*jQ0V*lQ1O+kQ1u,aS3R-s-vQ3Z.`S4e/s/tQ4n0PS4q0R0^Q4u0WQ6W1vQ7P3US7q4`4bQ7u4fU7|4r4x4{Q8P4wQ8v6XS9q7r7sQ9u7yQ9}8RQ:O8SQ:c8wQ:y9rS:z9v9xQ;S:QQ;^:dS;f:{;PS;r;g;hS;z;s;uS<O;{;}Q<R<PQ<T<SQ=o=jQ={=tR=|=uV!wQ'`-e%^aOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_S#wz!j!r=i$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SR=o>R%^bOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_Q%fj!^%xy!i!u%{%|%}'V'e'f'g'k'u*j+n+o-Y-l-m-t0R0U1R2u2|3T4r4s4v7}9{S&Oz!jQ+k%yQ,a&dW1v,b,c,d,eU6X1w1x1yS8w6Y6ZQ:d8x!r=j$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SQ=t>QR=u>R%QeOPXYstuvw!Z!`!g!o#S#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&r&t&u&w&{'T'b'r(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_Y#bWZ#W#Z(T!b%jm#h#i#l$x%e%h(^(h(i(j*Y*^*b+Z+[+^,o-V.T.Z.[.]._/m/p2d3[3]4a6r7TQ,n&o!p=k$Z$n)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SR=n'XU']!e%i*ZR2s-`%SdOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+],p,s,x-i-q.P.V.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3l4z6T6e6f6i6|8t9T9_!r)_$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SQ,m&oQ0x+gQ3`.gQ7Y3dR9e7[!b$Tc#Y%q(S(Y(t(y)Z)[)`)g+x-x-}.S.U.s.v/b0p3O3V3k3{5X5c6{7Q7a9]:o<W!P<d)^)q-Z.|2k2n3p3y3z4P4X6u7b7k7l8k9X9g9m9n;W;`=v!f$Vc#Y%q(S(Y(t(y)W)X)Z)[)`)g+x-x-}.S.U.s.v/b0p3O3V3k3{5X5c6{7Q7a9]:o<W!T<f)^)q-Z.|2k2n3p3v3w3y3z4P4X6u7b7k7l8k9X9g9m9n;W;`=v!^$Zc#Y%q(S(Y(t(y)`)g+x-x-}.S.U.s.v/b0p3O3V3k3{5X5c6{7Q7a9]:o<WQ4_/kz>S)^)q-Z.|2k2n3p4P4X6u7b7k7l8k9X9g9m9n;W;`=vQ>X>ZR>Y>['QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SS$oh$pR4U/U'XgOPWXYZhstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n$p%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/U/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>ST$kf$qQ$ifS)j$l)nR)v$qT$jf$qT)l$l)n'XhOPWXYZhstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n$p%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/U/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>ST$oh$pQ$rhR)u$p%^jOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_!s>Q$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>S#glOPXZst!Z!`!o#S#d#o#{$n%m&k&n&o&r&t&u&w&{'T'b)O)s*i+]+g,p,s,x-i.g/V/n0]0l1r2S2T2V2X2[2_2a3d4T4z6T6e6f6i7[8t9T!U%Ri$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y#f(w#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^Q+T%aQ/c*Oo4O<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=h!U$yi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>YQ*c$zU*l$|*Z*oQ+U%bQ0W*m#f=q#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^n=r<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=hQ=w>TQ=x>UQ=y>VR=z>W!U%Ri$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y#f(w#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^o4O<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=hnoOXst!Z#d%m&r&t&u&w,s,x2[2_S*f${*YQ-R'OQ-S'QR4i/y%[%Si#v$b$c$d$x${%O%Q%^%_%c)y*R*T*V*Y*a*g*w*x+f+i,S,V.f/P/d/m/x/y/{0`0b0i0j0o1f1i1q3c4^4_4j4o5Q5[5_6S7W7v8Q8V8[8q9b9p9y:P:`:r;Q;[;d;k<l<m<o<p<q<r<u<v<w<x<y<z=S=T=U=V=X=Y=]=^=_=`=a=b=c=d=g=h>P>X>Y>]>^Q,U&]Q1h,WQ5s1gR8h5tV*n$|*Z*oU*n$|*Z*oT5z1o5{S0P*i/nQ4w0]T8S4z:]Q+j%xQ0V*lQ1O+kQ1u,aQ6W1vQ8v6XQ:c8wR;^:d!U%Oi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Yx*R$v)e*S*u+V/v0d0e4R4g5R5S5W7p8U:R:x=p=}>OS0`*t0a#f<o#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^n<p<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=h!d=S(u)c*[*e.j.m.q/_/k/|0v1e3h4[4h4l5r7]7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[`=T3}7c7f7j9h:t:w;yS=_.l3iT=`7e9k!U%Qi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y|*T$v)e*U*t+V/g/v0d0e4R4g4|5R5S5W7p8U:R:x=p=}>OS0b*u0c#f<q#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^n<r<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=h!h=U(u)c*[*e.k.l.q/_/k/|0v1e3f3h4[4h4l5r7]7^7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[d=V3}7d7e7j9h9i:t:u:w;yS=a.m3jT=b7f9lrnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_Q&f!UR,p&ornOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_R&f!UQ,Y&^R1d,RsnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_Q1p,_S6R1s1tU8p6P6Q6US:_8r8sS;Y:^:aQ;m;ZR;w;nQ&m!VR,i&iR6_1|R:f8yW&Q|&V&W,OR1Z+vQ&r!WR,s&sR,y&xT2],x2_R,}&yQ,|&yR2f,}Q'y!{R-y'ySsOtQ#dXT%ps#dQ#OTR'{#OQ#RUR'}#RQ){$uR/`){Q#UVR(Q#UQ#XWU(W#X(X.QQ(X#YR.Q(YQ-^'YR2r-^Q.u(yS3m.u3nR3n.vQ-e'`R2v-eY!rQ'`-e1o5{R'j!rQ/Q)eR4S/QU#_W%h*YU(_#_(`.RQ(`#`R.R(ZQ-a']R2t-at`OXst!V!Z#d%m&i&k&r&t&u&w,s,x2[2_S#hZ%eU#r`#h.[R.[(jQ(k#jQ.X(gW.a(k.X3X7RQ3X.YR7R3YQ)n$lR/W)nQ$phR)t$pQ$`cU)a$`-|<jQ-|<WR<j)qQ/q*]W4c/q4d7t9sU4d/r/s/tS7t4e4fR9s7u$e*Q$v(u)c)e*[*e*t*u+Q+R+V.l.m.o.p.q/_/g/i/k/v/|0d0e0v1e3f3g3h3}4R4[4g4h4l4|5O5R5S5W5r7]7^7_7`7e7f7h7i7j7p7w7z8U8X8Z9h9i9j9t9|:R:S:t:u:v:w:x:};R;e;j;v;y=p=}>O>Z>[Q/z*eU4k/z4m7xQ4m/|R7x4lS*o$|*ZR0Y*ox*S$v)e*t*u+V/v0d0e4R4g5R5S5W7p8U:R:x=p=}>O!d.j(u)c*[*e.l.m.q/_/k/|0v1e3h4[4h4l5r7]7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[U/h*S.j7ca7c3}7e7f7j9h:t:w;yQ0a*tQ3i.lU4}0a3i9kR9k7e|*U$v)e*t*u+V/g/v0d0e4R4g4|5R5S5W7p8U:R:x=p=}>O!h.k(u)c*[*e.l.m.q/_/k/|0v1e3f3h4[4h4l5r7]7^7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[U/j*U.k7de7d3}7e7f7j9h9i:t:u:w;yQ0c*uQ3j.mU5P0c3j9lR9l7fQ*z%UR0g*zQ5]0vR8Y5]Q+_%kR0u+_Q5v1jS8j5v:[R:[8kQ,[&_R1m,[Q5{1oR8m5{Q1{,fS6]1{8zR8z6_Q1U+rW5h1U5j8a:VQ5j1XQ8a5iR:V8bQ+w&QR1[+wQ2_,xR6m2_YrOXst#dQ&v!ZQ+a%mQ,r&rQ,t&tQ,u&uQ,w&wQ2Y,sS2],x2_R6l2[Q%opQ&z!_Q&}!aQ'P!bQ'R!cQ'q!uQ+`%lQ+l%zQ,Q&XQ,h&mQ-P&|W-p'k's't'wQ-w'oQ0X*nQ1P+mQ1c,PS2O,i,lQ2g-OQ2h-RQ2i-SQ2}-oW3P-r-s-v-xQ5a1QQ5m1_Q5q1eQ6V1uQ6a2QQ6k2ZU6z3O3R3UQ6}3SQ8]5bQ8e5oQ8g5rQ8l5zQ8u6WQ8{6`S9[6{7PQ9^7OQ:W8cQ:b8vQ:g8|Q:n9]Q;U:XQ;]:cQ;a:oQ;l;VR;o;^Q%zyQ'd!iQ'o!uU+m%{%|%}Q-W'VU-k'e'f'gS-o'k'uQ0Q*jS1Q+n+oQ2o-YS2{-l-mQ3S-tS4p0R0UQ5b1RQ6v2uQ6y2|Q7O3TU7{4r4s4vQ9z7}R;O9{S$wi>PR*{%VU%Ui%V>PR0f*yQ$viS(u#v+iS)c$b$cQ)e$dQ*[$xS*e${*YQ*t%OQ*u%QQ+Q%^Q+R%_Q+V%cQ.l<oQ.m<qQ.o<uQ.p<wQ.q<yQ/_)yQ/g*RQ/i*TQ/k*VQ/v*aS/|*g/mQ0d*wQ0e*xl0v+f,V.f1i1q3c6S7W8q9b:`:r;[;dQ1e,SQ3f=SQ3g=UQ3h=XS3}<l<mQ4R/PS4[/d4^Q4g/xQ4h/yQ4l/{Q4|0`Q5O0bQ5R0iQ5S0jQ5W0oQ5r1fQ7]=]Q7^=_Q7_=aQ7`=cQ7e<pQ7f<rQ7h<vQ7i<xQ7j<zQ7p4_Q7w4jQ7z4oQ8U5QQ8X5[Q8Z5_Q9h=YQ9i=TQ9j=VQ9t7vQ9|8QQ:R8VQ:S8[Q:t=^Q:u=`Q:v=bQ:w=dQ:x9pQ:}9yQ;R:PQ;e=gQ;j;QQ;v;kQ;y=hQ=p>PQ=}>XQ>O>YQ>Z>]R>[>^Q+O%]Q.n<sR7g<tnpOXst!Z#d%m&r&t&u&w,s,x2[2_Q!fPS#fZ#oQ&|!`W'h!o*i0]4zQ(P#SQ)Q#{Q)r$nS,l&k&nQ,q&oQ-O&{S-T'T/nQ-g'bQ.x)OQ/[)sQ0s+]Q0y+gQ2W,pQ2y-iQ3a.gQ4W/VQ5U0lQ6Q1rQ6c2SQ6d2TQ6h2VQ6j2XQ6o2aQ7Z3dQ7m4TQ8s6TQ9P6eQ9Q6fQ9S6iQ9f7[Q:a8tR:k9T#[cOPXZst!Z!`!o#d#o#{%m&k&n&o&r&t&u&w&{'T'b)O*i+]+g,p,s,x-i.g/n0]0l1r2S2T2V2X2[2_2a3d4z6T6e6f6i7[8t9TQ#YWQ#eYQ%quQ%svS%uw!gS(S#W(VQ(Y#ZQ(t#uQ(y#xQ)R$OQ)S$PQ)T$QQ)U$RQ)V$SQ)W$TQ)X$UQ)Y$VQ)Z$WQ)[$XQ)^$ZQ)`$_Q)b$aQ)g$eW)q$n)s/V4TQ+d%tQ+x&RS-Z'X2pQ-x'rS-}(T.PQ.S(]Q.U(dQ.s(xQ.v(zQ.z<UQ.|<XQ.}<YQ/O<]Q/b)}Q0p+XQ2k-UQ2n-XQ3O-qQ3V.VQ3k.tQ3p<^Q3q<_Q3r<`Q3s<aQ3t<bQ3u<cQ3v<dQ3w<eQ3x<fQ3y<gQ3z<hQ3{.{Q3|<kQ4P<nQ4Q<{Q4X<iQ5X0rQ5c1SQ6u=OQ6{3QQ7Q3WQ7a3lQ7b=PQ7k=RQ7l=ZQ8k5wQ9X6sQ9]6|Q9g=[Q9m=eQ9n=fQ:o9_Q;W:ZQ;`:mQ<W#SR=v>SR#[WR'Z!el!tQ!r!v!y!z'`'l'm'n-e-u1o5{5}S'V!e-]U*j$|*Z*oS-Y'W'_S0U*k*qQ0^*rQ2u-cQ4v0[R4{0_R({#xQ!fQT-d'`-e]!qQ!r'`-e1o5{Q#p]R'i<VR)f$dY!uQ'`-e1o5{Q'k!rS'u!v!yS'w!z5}S-t'l'mQ-v'nR3T-uT#kZ%eS#jZ%eS%km,oU(g#h#i#lS.Y(h(iQ.^(jQ0t+^Q3Y.ZU3Z.[.]._S7S3[3]R9`7Td#^W#W#Z%h(T(^*Y+Z.T/mr#gZm#h#i#l%e(h(i(j+^.Z.[.]._3[3]7TS*]$x*bQ/t*^Q2U,oQ2l-VQ4`/pQ6q2dQ7s4aQ9W6rT=m'X+[V#aW%h*YU#`W%h*YS(U#W(^U(Z#Z+Z/mS-['X+[T.O(T.TV'^!e%i*ZQ$lfR)x$qT)m$l)nR4V/UT*_$x*bT*h${*YQ0w+fQ1g,VQ3_.fQ5t1iQ6P1qQ7X3cQ8r6SQ9c7WQ:^8qQ:p9bQ;Z:`Q;c:rQ;n;[R;q;dnqOXst!Z#d%m&r&t&u&w,s,x2[2_Q&l!VR,h&itmOXst!U!V!Z#d%m&i&r&t&u&w,s,x2[2_R,o&oT%lm,oR1k,XR,g&gQ&U|S+}&V&WR1^,OR+s&PT&p!W&sT&q!W&sT2^,x2_",nodeNames:"⚠ ArithOp ArithOp ?. JSXStartTag LineComment BlockComment Script Hashbang ExportDeclaration export Star as VariableName String Escape from ; default FunctionDeclaration async function VariableDefinition > < TypeParamList in out const TypeDefinition extends ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation InterpolationStart NullType null VoidType void TypeofType typeof MemberExpression . PropertyName [ TemplateString Escape Interpolation super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewTarget new NewExpression ) ( ArgList UnaryExpression delete LogicOp BitOp YieldExpression yield AwaitExpression await ParenthesizedExpression ClassExpression class ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression TypeArgList CompareOp < declare Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly accessor Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof satisfies CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression InstantiationExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast < ArrowFunction TypeParamList SequenceExpression InstantiationExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature PropertyDefinition CallSignature TypePredicate asserts is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var using TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration defer ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement SingleExpression SingleClassItem",maxTerm:380,context:b4,nodeProps:[["isolate",-8,5,6,14,37,39,51,53,55,""],["group",-26,9,17,19,68,207,211,215,216,218,221,224,234,237,243,245,247,249,252,258,264,266,268,270,272,274,275,"Statement",-34,13,14,32,35,36,42,51,54,55,57,62,70,72,76,80,82,84,85,110,111,120,121,136,139,141,142,143,144,145,147,148,167,169,171,"Expression",-23,31,33,37,41,43,45,173,175,177,178,180,181,182,184,185,186,188,189,190,201,203,205,206,"Type",-3,88,103,109,"ClassItem"],["openedBy",23,"<",38,"InterpolationStart",56,"[",60,"{",73,"(",160,"JSXStartCloseTag"],["closedBy",-2,24,168,">",40,"InterpolationEnd",50,"]",61,"}",74,")",165,"JSXEndTag"]],propSources:[$4],skippedNodes:[0,5,6,278],repeatNodeCount:37,tokenData:"$Fq07[R!bOX%ZXY+gYZ-yZ[+g[]%Z]^.c^p%Zpq+gqr/mrs3cst:_tuEruvJSvwLkwx! Yxy!'iyz!(sz{!)}{|!,q|}!.O}!O!,q!O!P!/Y!P!Q!9j!Q!R#:O!R![#<_![!]#I_!]!^#Jk!^!_#Ku!_!`$![!`!a$$v!a!b$*T!b!c$,r!c!}Er!}#O$-|#O#P$/W#P#Q$4o#Q#R$5y#R#SEr#S#T$7W#T#o$8b#o#p$<r#p#q$=h#q#r$>x#r#s$@U#s$f%Z$f$g+g$g#BYEr#BY#BZ$A`#BZ$ISEr$IS$I_$A`$I_$I|Er$I|$I}$Dk$I}$JO$Dk$JO$JTEr$JT$JU$A`$JU$KVEr$KV$KW$A`$KW&FUEr&FU&FV$A`&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$A`?HUOEr(n%d_$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&j&hT$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c&j&zP;=`<%l&c'|'U]$i&j(Z!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!b(SU(Z!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!b(iP;=`<%l'}'|(oP;=`<%l&}'[(y]$i&j(WpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rp)wU(WpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)rp*^P;=`<%l)r'[*dP;=`<%l(r#S*nX(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g#S+^P;=`<%l*g(n+dP;=`<%l%Z07[+rq$i&j(Wp(Z!b'|0/lOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p$f%Z$f$g+g$g#BY%Z#BY#BZ+g#BZ$IS%Z$IS$I_+g$I_$JT%Z$JT$JU+g$JU$KV%Z$KV$KW+g$KW&FU%Z&FU&FV+g&FV;'S%Z;'S;=`+a<%l?HT%Z?HT?HU+g?HUO%Z07[.ST(X#S$i&j'}0/lO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c07[.n_$i&j(Wp(Z!b'}0/lOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)3p/x`$i&j!p),Q(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW1V`#v(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`2X!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW2d_#v(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'At3l_(V':f$i&j(Z!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k(^4r_$i&j(Z!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k&z5vX$i&jOr5qrs6cs!^5q!^!_6y!_#o5q#o#p6y#p;'S5q;'S;=`7h<%lO5q&z6jT$d`$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c`6|TOr6yrs7]s;'S6y;'S;=`7b<%lO6y`7bO$d``7eP;=`<%l6y&z7kP;=`<%l5q(^7w]$d`$i&j(Z!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!r8uZ(Z!bOY8pYZ6yZr8prs9hsw8pwx6yx#O8p#O#P6y#P;'S8p;'S;=`:R<%lO8p!r9oU$d`(Z!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!r:UP;=`<%l8p(^:[P;=`<%l4k%9[:hh$i&j(Wp(Z!bOY%ZYZ&cZq%Zqr<Srs&}st%ZtuCruw%Zwx(rx!^%Z!^!_*g!_!c%Z!c!}Cr!}#O%Z#O#P&c#P#R%Z#R#SCr#S#T%Z#T#oCr#o#p*g#p$g%Z$g;'SCr;'S;=`El<%lOCr(r<__WS$i&j(Wp(Z!bOY<SYZ&cZr<Srs=^sw<Swx@nx!^<S!^!_Bm!_#O<S#O#P>`#P#o<S#o#pBm#p;'S<S;'S;=`Cl<%lO<S(Q=g]WS$i&j(Z!bOY=^YZ&cZw=^wx>`x!^=^!^!_?q!_#O=^#O#P>`#P#o=^#o#p?q#p;'S=^;'S;=`@h<%lO=^&n>gXWS$i&jOY>`YZ&cZ!^>`!^!_?S!_#o>`#o#p?S#p;'S>`;'S;=`?k<%lO>`S?XSWSOY?SZ;'S?S;'S;=`?e<%lO?SS?hP;=`<%l?S&n?nP;=`<%l>`!f?xWWS(Z!bOY?qZw?qwx?Sx#O?q#O#P?S#P;'S?q;'S;=`@b<%lO?q!f@eP;=`<%l?q(Q@kP;=`<%l=^'`@w]WS$i&j(WpOY@nYZ&cZr@nrs>`s!^@n!^!_Ap!_#O@n#O#P>`#P#o@n#o#pAp#p;'S@n;'S;=`Bg<%lO@ntAwWWS(WpOYApZrAprs?Ss#OAp#O#P?S#P;'SAp;'S;=`Ba<%lOAptBdP;=`<%lAp'`BjP;=`<%l@n#WBvYWS(Wp(Z!bOYBmZrBmrs?qswBmwxApx#OBm#O#P?S#P;'SBm;'S;=`Cf<%lOBm#WCiP;=`<%lBm(rCoP;=`<%l<S%9[C}i$i&j(o%1l(Wp(Z!bOY%ZYZ&cZr%Zrs&}st%ZtuCruw%Zwx(rx!Q%Z!Q![Cr![!^%Z!^!_*g!_!c%Z!c!}Cr!}#O%Z#O#P&c#P#R%Z#R#SCr#S#T%Z#T#oCr#o#p*g#p$g%Z$g;'SCr;'S;=`El<%lOCr%9[EoP;=`<%lCr07[FRk$i&j(Wp(Z!b$]#t(T,2j(e$I[OY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr+dHRk$i&j(Wp(Z!b$]#tOY%ZYZ&cZr%Zrs&}st%ZtuGvuw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Gv![!^%Z!^!_*g!_!c%Z!c!}Gv!}#O%Z#O#P&c#P#R%Z#R#SGv#S#T%Z#T#oGv#o#p*g#p$g%Z$g;'SGv;'S;=`Iv<%lOGv+dIyP;=`<%lGv07[JPP;=`<%lEr(KWJ_`$i&j(Wp(Z!b#p(ChOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KWKl_$i&j$Q(Ch(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z,#xLva(z+JY$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sv%ZvwM{wx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KWNW`$i&j#z(Ch(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'At! c_(Y';W$i&j(WpOY!!bYZ!#hZr!!brs!#hsw!!bwx!$xx!^!!b!^!_!%z!_#O!!b#O#P!#h#P#o!!b#o#p!%z#p;'S!!b;'S;=`!'c<%lO!!b'l!!i_$i&j(WpOY!!bYZ!#hZr!!brs!#hsw!!bwx!$xx!^!!b!^!_!%z!_#O!!b#O#P!#h#P#o!!b#o#p!%z#p;'S!!b;'S;=`!'c<%lO!!b&z!#mX$i&jOw!#hwx6cx!^!#h!^!_!$Y!_#o!#h#o#p!$Y#p;'S!#h;'S;=`!$r<%lO!#h`!$]TOw!$Ywx7]x;'S!$Y;'S;=`!$l<%lO!$Y`!$oP;=`<%l!$Y&z!$uP;=`<%l!#h'l!%R]$d`$i&j(WpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(r!Q!&PZ(WpOY!%zYZ!$YZr!%zrs!$Ysw!%zwx!&rx#O!%z#O#P!$Y#P;'S!%z;'S;=`!']<%lO!%z!Q!&yU$d`(WpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)r!Q!'`P;=`<%l!%z'l!'fP;=`<%l!!b/5|!'t_!l/.^$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#&U!)O_!k!Lf$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z-!n!*[b$i&j(Wp(Z!b(U%&f#q(ChOY%ZYZ&cZr%Zrs&}sw%Zwx(rxz%Zz{!+d{!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW!+o`$i&j(Wp(Z!b#n(ChOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z+;x!,|`$i&j(Wp(Z!br+4YOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z,$U!.Z_!]+Jf$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[!/ec$i&j(Wp(Z!b!Q.2^OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!0p!P!Q%Z!Q![!3Y![!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#%|!0ya$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!2O!P!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#%|!2Z_![!L^$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!3eg$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!3Y![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S!3Y#S#X%Z#X#Y!4|#Y#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!5Vg$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx{%Z{|!6n|}%Z}!O!6n!O!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!6wc$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!8_c$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[!9uf$i&j(Wp(Z!b#o(ChOY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcxz!;Zz{#-}{!P!;Z!P!Q#/d!Q!^!;Z!^!_#(i!_!`#7S!`!a#8i!a!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z?O!;fb$i&j(Wp(Z!b!X7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z>^!<w`$i&j(Z!b!X7`OY!<nYZ&cZw!<nwx!=yx!P!<n!P!Q!Eq!Q!^!<n!^!_!Gr!_!}!<n!}#O!KS#O#P!Dy#P#o!<n#o#p!Gr#p;'S!<n;'S;=`!L]<%lO!<n<z!>Q^$i&j!X7`OY!=yYZ&cZ!P!=y!P!Q!>|!Q!^!=y!^!_!@c!_!}!=y!}#O!CW#O#P!Dy#P#o!=y#o#p!@c#p;'S!=y;'S;=`!Ek<%lO!=y<z!?Td$i&j!X7`O!^&c!_#W&c#W#X!>|#X#Z&c#Z#[!>|#[#]&c#]#^!>|#^#a&c#a#b!>|#b#g&c#g#h!>|#h#i&c#i#j!>|#j#k!>|#k#m&c#m#n!>|#n#o&c#p;'S&c;'S;=`&w<%lO&c7`!@hX!X7`OY!@cZ!P!@c!P!Q!AT!Q!}!@c!}#O!Ar#O#P!Bq#P;'S!@c;'S;=`!CQ<%lO!@c7`!AYW!X7`#W#X!AT#Z#[!AT#]#^!AT#a#b!AT#g#h!AT#i#j!AT#j#k!AT#m#n!AT7`!AuVOY!ArZ#O!Ar#O#P!B[#P#Q!@c#Q;'S!Ar;'S;=`!Bk<%lO!Ar7`!B_SOY!ArZ;'S!Ar;'S;=`!Bk<%lO!Ar7`!BnP;=`<%l!Ar7`!BtSOY!@cZ;'S!@c;'S;=`!CQ<%lO!@c7`!CTP;=`<%l!@c<z!C][$i&jOY!CWYZ&cZ!^!CW!^!_!Ar!_#O!CW#O#P!DR#P#Q!=y#Q#o!CW#o#p!Ar#p;'S!CW;'S;=`!Ds<%lO!CW<z!DWX$i&jOY!CWYZ&cZ!^!CW!^!_!Ar!_#o!CW#o#p!Ar#p;'S!CW;'S;=`!Ds<%lO!CW<z!DvP;=`<%l!CW<z!EOX$i&jOY!=yYZ&cZ!^!=y!^!_!@c!_#o!=y#o#p!@c#p;'S!=y;'S;=`!Ek<%lO!=y<z!EnP;=`<%l!=y>^!Ezl$i&j(Z!b!X7`OY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#W&}#W#X!Eq#X#Z&}#Z#[!Eq#[#]&}#]#^!Eq#^#a&}#a#b!Eq#b#g&}#g#h!Eq#h#i&}#i#j!Eq#j#k!Eq#k#m&}#m#n!Eq#n#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}8r!GyZ(Z!b!X7`OY!GrZw!Grwx!@cx!P!Gr!P!Q!Hl!Q!}!Gr!}#O!JU#O#P!Bq#P;'S!Gr;'S;=`!J|<%lO!Gr8r!Hse(Z!b!X7`OY'}Zw'}x#O'}#P#W'}#W#X!Hl#X#Z'}#Z#[!Hl#[#]'}#]#^!Hl#^#a'}#a#b!Hl#b#g'}#g#h!Hl#h#i'}#i#j!Hl#j#k!Hl#k#m'}#m#n!Hl#n;'S'};'S;=`(f<%lO'}8r!JZX(Z!bOY!JUZw!JUwx!Arx#O!JU#O#P!B[#P#Q!Gr#Q;'S!JU;'S;=`!Jv<%lO!JU8r!JyP;=`<%l!JU8r!KPP;=`<%l!Gr>^!KZ^$i&j(Z!bOY!KSYZ&cZw!KSwx!CWx!^!KS!^!_!JU!_#O!KS#O#P!DR#P#Q!<n#Q#o!KS#o#p!JU#p;'S!KS;'S;=`!LV<%lO!KS>^!LYP;=`<%l!KS>^!L`P;=`<%l!<n=l!Ll`$i&j(Wp!X7`OY!LcYZ&cZr!Lcrs!=ys!P!Lc!P!Q!Mn!Q!^!Lc!^!_# o!_!}!Lc!}#O#%P#O#P!Dy#P#o!Lc#o#p# o#p;'S!Lc;'S;=`#&Y<%lO!Lc=l!Mwl$i&j(Wp!X7`OY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#W(r#W#X!Mn#X#Z(r#Z#[!Mn#[#](r#]#^!Mn#^#a(r#a#b!Mn#b#g(r#g#h!Mn#h#i(r#i#j!Mn#j#k!Mn#k#m(r#m#n!Mn#n#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(r8Q# vZ(Wp!X7`OY# oZr# ors!@cs!P# o!P!Q#!i!Q!}# o!}#O#$R#O#P!Bq#P;'S# o;'S;=`#$y<%lO# o8Q#!pe(Wp!X7`OY)rZr)rs#O)r#P#W)r#W#X#!i#X#Z)r#Z#[#!i#[#])r#]#^#!i#^#a)r#a#b#!i#b#g)r#g#h#!i#h#i)r#i#j#!i#j#k#!i#k#m)r#m#n#!i#n;'S)r;'S;=`*Z<%lO)r8Q#$WX(WpOY#$RZr#$Rrs!Ars#O#$R#O#P!B[#P#Q# o#Q;'S#$R;'S;=`#$s<%lO#$R8Q#$vP;=`<%l#$R8Q#$|P;=`<%l# o=l#%W^$i&j(WpOY#%PYZ&cZr#%Prs!CWs!^#%P!^!_#$R!_#O#%P#O#P!DR#P#Q!Lc#Q#o#%P#o#p#$R#p;'S#%P;'S;=`#&S<%lO#%P=l#&VP;=`<%l#%P=l#&]P;=`<%l!Lc?O#&kn$i&j(Wp(Z!b!X7`OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#W%Z#W#X#&`#X#Z%Z#Z#[#&`#[#]%Z#]#^#&`#^#a%Z#a#b#&`#b#g%Z#g#h#&`#h#i%Z#i#j#&`#j#k#&`#k#m%Z#m#n#&`#n#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z9d#(r](Wp(Z!b!X7`OY#(iZr#(irs!Grsw#(iwx# ox!P#(i!P!Q#)k!Q!}#(i!}#O#+`#O#P!Bq#P;'S#(i;'S;=`#,`<%lO#(i9d#)th(Wp(Z!b!X7`OY*gZr*grs'}sw*gwx)rx#O*g#P#W*g#W#X#)k#X#Z*g#Z#[#)k#[#]*g#]#^#)k#^#a*g#a#b#)k#b#g*g#g#h#)k#h#i*g#i#j#)k#j#k#)k#k#m*g#m#n#)k#n;'S*g;'S;=`+Z<%lO*g9d#+gZ(Wp(Z!bOY#+`Zr#+`rs!JUsw#+`wx#$Rx#O#+`#O#P!B[#P#Q#(i#Q;'S#+`;'S;=`#,Y<%lO#+`9d#,]P;=`<%l#+`9d#,cP;=`<%l#(i?O#,o`$i&j(Wp(Z!bOY#,fYZ&cZr#,frs!KSsw#,fwx#%Px!^#,f!^!_#+`!_#O#,f#O#P!DR#P#Q!;Z#Q#o#,f#o#p#+`#p;'S#,f;'S;=`#-q<%lO#,f?O#-tP;=`<%l#,f?O#-zP;=`<%l!;Z07[#.[b$i&j(Wp(Z!b(O0/l!X7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z07[#/o_$i&j(Wp(Z!bT0/lOY#/dYZ&cZr#/drs#0nsw#/dwx#4Ox!^#/d!^!_#5}!_#O#/d#O#P#1p#P#o#/d#o#p#5}#p;'S#/d;'S;=`#6|<%lO#/d06j#0w]$i&j(Z!bT0/lOY#0nYZ&cZw#0nwx#1px!^#0n!^!_#3R!_#O#0n#O#P#1p#P#o#0n#o#p#3R#p;'S#0n;'S;=`#3x<%lO#0n05W#1wX$i&jT0/lOY#1pYZ&cZ!^#1p!^!_#2d!_#o#1p#o#p#2d#p;'S#1p;'S;=`#2{<%lO#1p0/l#2iST0/lOY#2dZ;'S#2d;'S;=`#2u<%lO#2d0/l#2xP;=`<%l#2d05W#3OP;=`<%l#1p01O#3YW(Z!bT0/lOY#3RZw#3Rwx#2dx#O#3R#O#P#2d#P;'S#3R;'S;=`#3r<%lO#3R01O#3uP;=`<%l#3R06j#3{P;=`<%l#0n05x#4X]$i&j(WpT0/lOY#4OYZ&cZr#4Ors#1ps!^#4O!^!_#5Q!_#O#4O#O#P#1p#P#o#4O#o#p#5Q#p;'S#4O;'S;=`#5w<%lO#4O00^#5XW(WpT0/lOY#5QZr#5Qrs#2ds#O#5Q#O#P#2d#P;'S#5Q;'S;=`#5q<%lO#5Q00^#5tP;=`<%l#5Q05x#5zP;=`<%l#4O01p#6WY(Wp(Z!bT0/lOY#5}Zr#5}rs#3Rsw#5}wx#5Qx#O#5}#O#P#2d#P;'S#5};'S;=`#6v<%lO#5}01p#6yP;=`<%l#5}07[#7PP;=`<%l#/d)3h#7ab$i&j$Q(Ch(Wp(Z!b!X7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;ZAt#8vb$Z#t$i&j(Wp(Z!b!X7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z'Ad#:Zp$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!3Y!P!Q%Z!Q![#<_![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S#<_#S#U%Z#U#V#?i#V#X%Z#X#Y!4|#Y#b%Z#b#c#>_#c#d#Bq#d#l%Z#l#m#Es#m#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#<jk$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!3Y!P!Q%Z!Q![#<_![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S#<_#S#X%Z#X#Y!4|#Y#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#>j_$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#?rd$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#AQ!R!S#AQ!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#AQ#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#A]f$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#AQ!R!S#AQ!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#AQ#S#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Bzc$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#DV!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#DV#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Dbe$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#DV!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#DV#S#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#E|g$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#Ge![!^%Z!^!_*g!_!c%Z!c!i#Ge!i#O%Z#O#P&c#P#R%Z#R#S#Ge#S#T%Z#T#Z#Ge#Z#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Gpi$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#Ge![!^%Z!^!_*g!_!c%Z!c!i#Ge!i#O%Z#O#P&c#P#R%Z#R#S#Ge#S#T%Z#T#Z#Ge#Z#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z*)x#Il_!g$b$i&j$O)Lv(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)[#Jv_al$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z04f#LS^h#)`#R-<U(Wp(Z!b$n7`OY*gZr*grs'}sw*gwx)rx!P*g!P!Q#MO!Q!^*g!^!_#Mt!_!`$ f!`#O*g#P;'S*g;'S;=`+Z<%lO*g(n#MXX$k&j(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g(El#M}Z#r(Ch(Wp(Z!bOY*gZr*grs'}sw*gwx)rx!_*g!_!`#Np!`#O*g#P;'S*g;'S;=`+Z<%lO*g(El#NyX$Q(Ch(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g(El$ oX#s(Ch(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g*)x$!ga#`*!Y$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`!a$#l!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(K[$#w_#k(Cl$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z*)x$%Vag!*r#s(Ch$f#|$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`$&[!`!a$'f!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$&g_#s(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$'qa#r(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`!a$(v!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$)R`#r(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(Kd$*`a(r(Ct$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!a%Z!a!b$+e!b#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$+p`$i&j#{(Ch(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#`$,}_!|$Ip$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z04f$.X_!S0,v$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(n$/]Z$i&jO!^$0O!^!_$0f!_#i$0O#i#j$0k#j#l$0O#l#m$2^#m#o$0O#o#p$0f#p;'S$0O;'S;=`$4i<%lO$0O(n$0VT_#S$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c#S$0kO_#S(n$0p[$i&jO!Q&c!Q![$1f![!^&c!_!c&c!c!i$1f!i#T&c#T#Z$1f#Z#o&c#o#p$3|#p;'S&c;'S;=`&w<%lO&c(n$1kZ$i&jO!Q&c!Q![$2^![!^&c!_!c&c!c!i$2^!i#T&c#T#Z$2^#Z#o&c#p;'S&c;'S;=`&w<%lO&c(n$2cZ$i&jO!Q&c!Q![$3U![!^&c!_!c&c!c!i$3U!i#T&c#T#Z$3U#Z#o&c#p;'S&c;'S;=`&w<%lO&c(n$3ZZ$i&jO!Q&c!Q![$0O![!^&c!_!c&c!c!i$0O!i#T&c#T#Z$0O#Z#o&c#p;'S&c;'S;=`&w<%lO&c#S$4PR!Q![$4Y!c!i$4Y#T#Z$4Y#S$4]S!Q![$4Y!c!i$4Y#T#Z$4Y#q#r$0f(n$4lP;=`<%l$0O#1[$4z_!Y#)l$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$6U`#x(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z+;p$7c_$i&j(Wp(Z!b(a+4QOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[$8qk$i&j(Wp(Z!b(T,2j$_#t(e$I[OY%ZYZ&cZr%Zrs&}st%Ztu$8buw%Zwx(rx}%Z}!O$:f!O!Q%Z!Q![$8b![!^%Z!^!_*g!_!c%Z!c!}$8b!}#O%Z#O#P&c#P#R%Z#R#S$8b#S#T%Z#T#o$8b#o#p*g#p$g%Z$g;'S$8b;'S;=`$<l<%lO$8b+d$:qk$i&j(Wp(Z!b$_#tOY%ZYZ&cZr%Zrs&}st%Ztu$:fuw%Zwx(rx}%Z}!O$:f!O!Q%Z!Q![$:f![!^%Z!^!_*g!_!c%Z!c!}$:f!}#O%Z#O#P&c#P#R%Z#R#S$:f#S#T%Z#T#o$:f#o#p*g#p$g%Z$g;'S$:f;'S;=`$<f<%lO$:f+d$<iP;=`<%l$:f07[$<oP;=`<%l$8b#Jf$<{X!_#Hb(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g,#x$=sa(y+JY$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p#q$+e#q;'S%Z;'S;=`+a<%lO%Z)>v$?V_!^(CdvBr$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z?O$@a_!q7`$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[$Aq|$i&j(Wp(Z!b'|0/l$]#t(T,2j(e$I[OX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$f%Z$f$g+g$g#BYEr#BY#BZ$A`#BZ$ISEr$IS$I_$A`$I_$JTEr$JT$JU$A`$JU$KVEr$KV$KW$A`$KW&FUEr&FU&FV$A`&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$A`?HUOEr07[$D|k$i&j(Wp(Z!b'}0/l$]#t(T,2j(e$I[OY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr",tokenizers:[y4,k4,w4,S4,2,3,4,5,6,7,8,9,10,11,12,13,14,x4,new el("$S~RRtu[#O#Pg#S#T#|~_P#o#pb~gOx~~jVO#i!P#i#j!U#j#l!P#l#m!q#m;'S!P;'S;=`#v<%lO!P~!UO!U~~!XS!Q![!e!c!i!e#T#Z!e#o#p#Z~!hR!Q![!q!c!i!q#T#Z!q~!tR!Q![!}!c!i!}#T#Z!}~#QR!Q![!P!c!i!P#T#Z!P~#^R!Q![#g!c!i#g#T#Z#g~#jS!Q![#g!c!i#g#T#Z#g#q#r!P~#yP;=`<%l!P~$RO(c~~",141,340),new el("j~RQYZXz{^~^O(Q~~aP!P!Qd~iO(R~~",25,323)],topRules:{Script:[0,7],SingleExpression:[1,276],SingleClassItem:[2,277]},dialects:{jsx:0,ts:15175},dynamicPrecedences:{80:1,82:1,94:1,169:1,199:1},specialized:[{term:327,get:r=>C4[r]||-1},{term:343,get:r=>Q4[r]||-1},{term:95,get:r=>P4[r]||-1}],tokenPrec:15201}),B0=[jt("function ${name}(${params}) {\n ${}\n}",{label:"function",detail:"definition",type:"keyword"}),jt("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n ${}\n}",{label:"for",detail:"loop",type:"keyword"}),jt("for (let ${name} of ${collection}) {\n ${}\n}",{label:"for",detail:"of loop",type:"keyword"}),jt("do {\n ${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),jt("while (${}) {\n ${}\n}",{label:"while",detail:"loop",type:"keyword"}),jt(`try {
|
|
28
|
+
\${}
|
|
29
|
+
} catch (\${error}) {
|
|
30
|
+
\${}
|
|
31
|
+
}`,{label:"try",detail:"/ catch block",type:"keyword"}),jt("if (${}) {\n ${}\n}",{label:"if",detail:"block",type:"keyword"}),jt(`if (\${}) {
|
|
32
|
+
\${}
|
|
33
|
+
} else {
|
|
34
|
+
\${}
|
|
35
|
+
}`,{label:"if",detail:"/ else block",type:"keyword"}),jt(`class \${name} {
|
|
36
|
+
constructor(\${params}) {
|
|
37
|
+
\${}
|
|
38
|
+
}
|
|
39
|
+
}`,{label:"class",detail:"definition",type:"keyword"}),jt('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),jt('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],M4=B0.concat([jt("interface ${name} {\n ${}\n}",{label:"interface",detail:"definition",type:"keyword"}),jt("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),jt("enum ${name} {\n ${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),mp=new $g,Z0=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function Ti(r){return(e,t)=>{let n=e.node.getChild("VariableDefinition");return n&&t(n,r),!0}}const A4=["FunctionDeclaration"],_4={FunctionDeclaration:Ti("function"),ClassDeclaration:Ti("class"),ClassExpression:()=>!0,EnumDeclaration:Ti("constant"),TypeAliasDeclaration:Ti("type"),NamespaceDeclaration:Ti("namespace"),VariableDefinition(r,e){r.matchContext(A4)||e(r,"variable")},TypeDefinition(r,e){e(r,"type")},__proto__:null};function E0(r,e){let t=mp.get(e);if(t)return t;let n=[],s=!0;function i(o,a){let l=r.sliceString(o.from,o.to);n.push({label:l,type:a})}return e.cursor(st.IncludeAnonymous).iterate(o=>{if(s)s=!1;else if(o.name){let a=_4[o.name];if(a&&a(o,i)||Z0.has(o.name))return!1}else if(o.to-o.from>8192){for(let a of E0(r,o.node))n.push(a);return!1}}),mp.set(e,n),n}const gp=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,D0=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName","JSXText","JSXAttributeValue","JSXOpenTag","JSXCloseTag","JSXSelfClosingTag",".","?."];function R4(r){let e=ht(r.state).resolveInner(r.pos,-1);if(D0.indexOf(e.name)>-1)return null;let t=e.name=="VariableName"||e.to-e.from<20&&gp.test(r.state.sliceDoc(e.from,e.to));if(!t&&!r.explicit)return null;let n=[];for(let s=e;s;s=s.parent)Z0.has(s.name)&&(n=n.concat(E0(r.state.doc,s)));return{options:n,from:t?e.from:r.pos,validFor:gp}}const Jr=Ns.define({name:"javascript",parser:T4.configure({props:[So.add({IfStatement:Oa({except:/^\s*({|else\b)/}),TryStatement:Oa({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:kC,SwitchBody:r=>{let e=r.textAfter,t=/^\s*\}/.test(e),n=/^\s*(case|default)\b/.test(e);return r.baseIndent+(t?0:n?1:2)*r.unit},Block:yC({closing:"}"}),ArrowFunction:r=>r.baseIndent+r.unit,"TemplateString BlockComment":()=>null,"Statement Property":Oa({except:/^\s*{/}),JSXElement(r){let e=/^\s*<\//.test(r.textAfter);return r.lineIndent(r.node.from)+(e?0:r.unit)},JSXEscape(r){let e=/\s*\}/.test(r.textAfter);return r.lineIndent(r.node.from)+(e?0:r.unit)},"JSXOpenTag JSXSelfClosingTag"(r){return r.column(r.node.from)+r.unit}}),Ks.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":Rg,BlockComment(r){return{from:r.from+2,to:r.to-2}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),L0={test:r=>/^JSX/.test(r.name),facet:eh({commentTokens:{block:{open:"{/*",close:"*/}"}}})},X0=Jr.configure({dialect:"ts"},"typescript"),I0=Jr.configure({dialect:"jsx",props:[th.add(r=>r.isTop?[L0]:void 0)]}),V0=Jr.configure({dialect:"jsx ts",props:[th.add(r=>r.isTop?[L0]:void 0)]},"typescript");let z0=r=>({label:r,type:"keyword"});const N0="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(z0),B4=N0.concat(["declare","implements","private","protected","public"].map(z0));function Z4(r={}){let e=r.jsx?r.typescript?V0:I0:r.typescript?X0:Jr,t=r.typescript?M4.concat(B4):B0.concat(N0);return new to(e,[Jr.data.of({autocomplete:NP(D0,RO(t))}),Jr.data.of({autocomplete:R4}),r.jsx?L4:[]])}function E4(r){for(;;){if(r.name=="JSXOpenTag"||r.name=="JSXSelfClosingTag"||r.name=="JSXFragmentTag")return r;if(r.name=="JSXEscape"||!r.parent)return null;r=r.parent}}function Op(r,e,t=r.length){for(let n=e?.firstChild;n;n=n.nextSibling)if(n.name=="JSXIdentifier"||n.name=="JSXBuiltin"||n.name=="JSXNamespacedName"||n.name=="JSXMemberExpression")return r.sliceString(n.from,Math.min(n.to,t));return""}const D4=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),L4=ke.inputHandler.of((r,e,t,n,s)=>{if((D4?r.composing:r.compositionStarted)||r.state.readOnly||e!=t||n!=">"&&n!="/"||!Jr.isActiveAt(r.state,e,-1))return!1;let i=s(),{state:o}=i,a=o.changeByRange(l=>{var c;let{head:u}=l,h=ht(o).resolveInner(u-1,-1),p;if(h.name=="JSXStartTag"&&(h=h.parent),!(o.doc.sliceString(u-1,u)!=n||h.name=="JSXAttributeValue"&&h.to>u)){if(n==">"&&h.name=="JSXFragmentTag")return{range:l,changes:{from:u,insert:"</>"}};if(n=="/"&&h.name=="JSXStartCloseTag"){let f=h.parent,g=f.parent;if(g&&f.from==u-2&&((p=Op(o.doc,g.firstChild,u))||((c=g.firstChild)===null||c===void 0?void 0:c.name)=="JSXFragmentTag")){let O=`${p}>`;return{range:te.cursor(u+O.length,-1),changes:{from:u,insert:O}}}}else if(n==">"){let f=E4(h);if(f&&f.name=="JSXOpenTag"&&!/^\/?>|^<\//.test(o.doc.sliceString(u,u+2))&&(p=Op(o.doc,f,u)))return{range:l,changes:{from:u,insert:`</${p}>`}}}}return{range:l}});return a.changes.empty?!1:(r.dispatch([i,o.update(a,{userEvent:"input.complete",scrollIntoView:!0})]),!0)}),Mi=["_blank","_self","_top","_parent"],lc=["ascii","utf-8","utf-16","latin1","latin1"],cc=["get","post","put","delete"],uc=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],rr=["true","false"],Be={},X4={a:{attrs:{href:null,ping:null,type:null,media:null,target:Mi,hreflang:null}},abbr:Be,address:Be,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:Be,aside:Be,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:Be,base:{attrs:{href:null,target:Mi}},bdi:Be,bdo:Be,blockquote:{attrs:{cite:null}},body:Be,br:Be,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:uc,formmethod:cc,formnovalidate:["novalidate"],formtarget:Mi,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:Be,center:Be,cite:Be,code:Be,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:Be,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:Be,div:Be,dl:Be,dt:Be,em:Be,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:Be,figure:Be,footer:Be,form:{attrs:{action:null,name:null,"accept-charset":lc,autocomplete:["on","off"],enctype:uc,method:cc,novalidate:["novalidate"],target:Mi}},h1:Be,h2:Be,h3:Be,h4:Be,h5:Be,h6:Be,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:Be,hgroup:Be,hr:Be,html:{attrs:{manifest:null}},i:Be,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:uc,formmethod:cc,formnovalidate:["novalidate"],formtarget:Mi,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:Be,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:Be,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:Be,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:lc,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:Be,noscript:Be,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:Be,param:{attrs:{name:null,value:null}},pre:Be,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:Be,rt:Be,ruby:Be,samp:Be,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:lc}},section:Be,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:Be,source:{attrs:{src:null,type:null,media:null}},span:Be,strong:Be,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:Be,summary:Be,sup:Be,table:Be,tbody:Be,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:Be,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:Be,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:Be,time:{attrs:{datetime:null}},title:Be,tr:Be,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:Be,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:Be},W0={accesskey:null,class:null,contenteditable:rr,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:rr,autocorrect:rr,autocapitalize:rr,style:null,tabindex:null,title:null,translate:["yes","no"],rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":rr,"aria-autocomplete":["inline","list","both","none"],"aria-busy":rr,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":rr,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":rr,"aria-hidden":rr,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":rr,"aria-multiselectable":rr,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":rr,"aria-relevant":null,"aria-required":rr,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},j0="beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map(r=>"on"+r);for(let r of j0)W0[r]=null;class fo{constructor(e,t){this.tags={...X4,...e},this.globalAttrs={...W0,...t},this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}}fo.default=new fo;function Fs(r,e,t=r.length){if(!e)return"";let n=e.firstChild,s=n&&n.getChild("TagName");return s?r.sliceString(s.from,Math.min(s.to,t)):""}function Us(r,e=!1){for(;r;r=r.parent)if(r.name=="Element")if(e)e=!1;else return r;return null}function q0(r,e,t){let n=t.tags[Fs(r,Us(e))];return n?.children||t.allTags}function Ph(r,e){let t=[];for(let n=Us(e);n&&!n.type.isTop;n=Us(n.parent)){let s=Fs(r,n);if(s&&n.lastChild.name=="CloseTag")break;s&&t.indexOf(s)<0&&(e.name=="EndTag"||e.from>=n.firstChild.to)&&t.push(s)}return t}const Y0=/^[:\-\.\w\u00b7-\uffff]*$/;function vp(r,e,t,n,s){let i=/\s*>/.test(r.sliceDoc(s,s+5))?"":">",o=Us(t,t.name=="StartTag"||t.name=="TagName");return{from:n,to:s,options:q0(r.doc,o,e).map(a=>({label:a,type:"type"})).concat(Ph(r.doc,t).map((a,l)=>({label:"/"+a,apply:"/"+a+i,type:"type",boost:99-l}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function bp(r,e,t,n){let s=/\s*>/.test(r.sliceDoc(n,n+5))?"":">";return{from:t,to:n,options:Ph(r.doc,e).map((i,o)=>({label:i,apply:i+s,type:"type",boost:99-o})),validFor:Y0}}function I4(r,e,t,n){let s=[],i=0;for(let o of q0(r.doc,t,e))s.push({label:"<"+o,type:"type"});for(let o of Ph(r.doc,t))s.push({label:"</"+o+">",type:"type",boost:99-i++});return{from:n,to:n,options:s,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function V4(r,e,t,n,s){let i=Us(t),o=i?e.tags[Fs(r.doc,i)]:null,a=o&&o.attrs?Object.keys(o.attrs):[],l=o&&o.globalAttrs===!1?a:a.length?a.concat(e.globalAttrNames):e.globalAttrNames;return{from:n,to:s,options:l.map(c=>({label:c,type:"property"})),validFor:Y0}}function z4(r,e,t,n,s){var i;let o=(i=t.parent)===null||i===void 0?void 0:i.getChild("AttributeName"),a=[],l;if(o){let c=r.sliceDoc(o.from,o.to),u=e.globalAttrs[c];if(!u){let h=Us(t),p=h?e.tags[Fs(r.doc,h)]:null;u=p?.attrs&&p.attrs[c]}if(u){let h=r.sliceDoc(n,s).toLowerCase(),p='"',f='"';/^['"]/.test(h)?(l=h[0]=='"'?/^[^"]*$/:/^[^']*$/,p="",f=r.sliceDoc(s,s+1)==h[0]?"":h[0],h=h.slice(1),n++):l=/^[^\s<>='"]*$/;for(let g of u)a.push({label:g,apply:p+g+f,type:"constant"})}}return{from:n,to:s,options:a,validFor:l}}function F0(r,e){let{state:t,pos:n}=e,s=ht(t).resolveInner(n,-1),i=s.resolve(n);for(let o=n,a;i==s&&(a=s.childBefore(o));){let l=a.lastChild;if(!l||!l.type.isError||l.from<l.to)break;i=s=a,o=l.from}return s.name=="TagName"?s.parent&&/CloseTag$/.test(s.parent.name)?bp(t,s,s.from,n):vp(t,r,s,s.from,n):s.name=="StartTag"||s.name=="IncompleteTag"?vp(t,r,s,n,n):s.name=="StartCloseTag"||s.name=="IncompleteCloseTag"?bp(t,s,n,n):s.name=="OpenTag"||s.name=="SelfClosingTag"||s.name=="AttributeName"?V4(t,r,s,s.name=="AttributeName"?s.from:n,n):s.name=="Is"||s.name=="AttributeValue"||s.name=="UnquotedAttributeValue"?z4(t,r,s,s.name=="Is"?n:s.from,n):e.explicit&&(i.name=="Element"||i.name=="Text"||i.name=="Document")?I4(t,r,s,n):null}function N4(r){return F0(fo.default,r)}function W4(r){let{extraTags:e,extraGlobalAttributes:t}=r,n=t||e?new fo(e,t):fo.default;return s=>F0(n,s)}const j4=Jr.parser.configure({top:"SingleExpression"}),U0=[{tag:"script",attrs:r=>r.type=="text/typescript"||r.lang=="ts",parser:X0.parser},{tag:"script",attrs:r=>r.type=="text/babel"||r.type=="text/jsx",parser:I0.parser},{tag:"script",attrs:r=>r.type=="text/typescript-jsx",parser:V0.parser},{tag:"script",attrs(r){return/^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(r.type)},parser:j4},{tag:"script",attrs(r){return!r.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(r.type)},parser:Jr.parser},{tag:"style",attrs(r){return(!r.lang||r.lang=="css")&&(!r.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(r.type))},parser:rl.parser}],G0=[{name:"style",parser:rl.parser.configure({top:"Styles"})}].concat(j0.map(r=>({name:r,parser:Jr.parser}))),H0=Ns.define({name:"html",parser:gM.configure({props:[So.add({Element(r){let e=/^(\s*)(<\/)?/.exec(r.textAfter);return r.node.to<=r.pos+e[0].length?r.continue():r.lineIndent(r.node.from)+(e[2]?0:r.unit)},"OpenTag CloseTag SelfClosingTag"(r){return r.column(r.node.from)+r.unit},Document(r){if(r.pos+/\s*/.exec(r.textAfter)[0].length<r.node.to)return r.continue();let e=null,t;for(let n=r.node;;){let s=n.lastChild;if(!s||s.name!="Element"||s.to!=n.to)break;e=n=s}return e&&!((t=e.lastChild)&&(t.name=="CloseTag"||t.name=="SelfClosingTag"))?r.lineIndent(e.from)+r.unit:null}}),Ks.add({Element(r){let e=r.firstChild,t=r.lastChild;return!e||e.name!="OpenTag"?null:{from:e.to,to:t.name=="CloseTag"?t.from:r.to}}}),qg.add({"OpenTag CloseTag":r=>r.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:"<!--",close:"-->"}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-_"}}),xa=H0.configure({wrap:Q0(U0,G0)});function q4(r={}){let e="",t;r.matchClosingTags===!1&&(e="noMatch"),r.selfClosingTags===!0&&(e=(e?e+" ":"")+"selfClosing"),(r.nestedLanguages&&r.nestedLanguages.length||r.nestedAttributes&&r.nestedAttributes.length)&&(t=Q0((r.nestedLanguages||[]).concat(U0),(r.nestedAttributes||[]).concat(G0)));let n=t?H0.configure({wrap:t,dialect:e}):e?xa.configure({dialect:e}):xa;return new to(n,[xa.data.of({autocomplete:W4(r)}),r.autoCloseTags!==!1?Y4:[],Z4().support,KM().support])}const xp=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),Y4=ke.inputHandler.of((r,e,t,n,s)=>{if(r.composing||r.state.readOnly||e!=t||n!=">"&&n!="/"||!xa.isActiveAt(r.state,e,-1))return!1;let i=s(),{state:o}=i,a=o.changeByRange(l=>{var c,u,h;let p=o.doc.sliceString(l.from-1,l.to)==n,{head:f}=l,g=ht(o).resolveInner(f,-1),O;if(p&&n==">"&&g.name=="EndTag"){let y=g.parent;if(((u=(c=y.parent)===null||c===void 0?void 0:c.lastChild)===null||u===void 0?void 0:u.name)!="CloseTag"&&(O=Fs(o.doc,y.parent,f))&&!xp.has(O)){let b=f+(o.doc.sliceString(f,f+1)===">"?1:0),C=`</${O}>`;return{range:l,changes:{from:f,to:b,insert:C}}}}else if(p&&n=="/"&&g.name=="IncompleteCloseTag"){let y=g.parent;if(g.from==f-2&&((h=y.lastChild)===null||h===void 0?void 0:h.name)!="CloseTag"&&(O=Fs(o.doc,y,f))&&!xp.has(O)){let b=f+(o.doc.sliceString(f,f+1)===">"?1:0),C=`${O}>`;return{range:te.cursor(f+C.length,-1),changes:{from:f,to:b,insert:C}}}}return{range:l}});return a.changes.empty?!1:(r.dispatch([i,o.update(a,{userEvent:"input.complete",scrollIntoView:!0})]),!0)}),K0=eh({commentTokens:{block:{open:"<!--",close:"-->"}}}),J0=new je,e1=uT.configure({props:[Ks.add(r=>!r.is("Block")||r.is("Document")||Ou(r)!=null||F4(r)?void 0:(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.to})),J0.add(Ou),So.add({Document:()=>null}),ss.add({Document:K0})]});function Ou(r){let e=/^(?:ATX|Setext)Heading(\d)$/.exec(r.name);return e?+e[1]:void 0}function F4(r){return r.name=="OrderedList"||r.name=="BulletList"}function U4(r,e){let t=r;for(;;){let n=t.nextSibling,s;if(!n||(s=Ou(n.type))!=null&&s<=e)break;t=n}return t.to}const G4=_g.of((r,e,t)=>{for(let n=ht(r).resolveInner(t,-1);n&&!(n.from<e);n=n.parent){let s=n.type.prop(J0);if(s==null)continue;let i=U4(n,s);if(i>t)return{from:t,to:i}}return null});function Th(r){return new gr(K0,r,[],"markdown")}const H4=Th(e1),K4=e1.configure([yT,wT,kT,ST,{props:[Ks.add({Table:(r,e)=>({from:e.doc.lineAt(r.from).to,to:r.to})})]}]),nl=Th(K4);function J4(r,e){return t=>{if(t&&r){let n=null;if(t=/\S*/.exec(t)[0],typeof r=="function"?n=r(t):n=La.matchLanguageName(r,t,!0),n instanceof La)return n.support?n.support.language.parser:eo.getSkippingParser(n.load());if(n)return n.parser}return e?e.parser:null}}class hc{constructor(e,t,n,s,i,o,a){this.node=e,this.from=t,this.to=n,this.spaceBefore=s,this.spaceAfter=i,this.type=o,this.item=a}blank(e,t=!0){let n=this.spaceBefore+(this.node.name=="Blockquote"?">":"");if(e!=null){for(;n.length<e;)n+=" ";return n}else{for(let s=this.to-this.from-n.length-this.spaceAfter.length;s>0;s--)n+=" ";return n+(t?this.spaceAfter:"")}}marker(e,t){let n=this.node.name=="OrderedList"?String(+r1(this.item,e)[2]+t):"";return this.spaceBefore+n+this.type+this.spaceAfter}}function t1(r,e){let t=[],n=[];for(let s=r;s;s=s.parent){if(s.name=="FencedCode")return n;(s.name=="ListItem"||s.name=="Blockquote")&&t.push(s)}for(let s=t.length-1;s>=0;s--){let i=t[s],o,a=e.lineAt(i.from),l=i.from-a.from;if(i.name=="Blockquote"&&(o=/^ *>( ?)/.exec(a.text.slice(l))))n.push(new hc(i,l,l+o[0].length,"",o[1],">",null));else if(i.name=="ListItem"&&i.parent.name=="OrderedList"&&(o=/^( *)\d+([.)])( *)/.exec(a.text.slice(l)))){let c=o[3],u=o[0].length;c.length>=4&&(c=c.slice(0,c.length-4),u-=4),n.push(new hc(i.parent,l,l+u,o[1],c,o[2],i))}else if(i.name=="ListItem"&&i.parent.name=="BulletList"&&(o=/^( *)([-+*])( {1,4}\[[ xX]\])?( +)/.exec(a.text.slice(l)))){let c=o[4],u=o[0].length;c.length>4&&(c=c.slice(0,c.length-4),u-=4);let h=o[2];o[3]&&(h+=o[3].replace(/[xX]/," ")),n.push(new hc(i.parent,l,l+u,o[1],c,h,i))}}return n}function r1(r,e){return/^(\s*)(\d+)(?=[.)])/.exec(e.sliceString(r.from,r.from+10))}function dc(r,e,t,n=0){for(let s=-1,i=r;;){if(i.name=="ListItem"){let a=r1(i,e),l=+a[2];if(s>=0){if(l!=s+1)return;t.push({from:i.from+a[1].length,to:i.from+a[0].length,insert:String(s+2+n)})}s=l}let o=i.nextSibling;if(!o)break;i=o}}function Mh(r,e){let t=/^[ \t]*/.exec(r)[0].length;if(!t||e.facet(wo)!=" ")return r;let n=_r(r,4,t),s="";for(let i=n;i>0;)i>=4?(s+=" ",i-=4):(s+=" ",i--);return s+r.slice(t)}const eA=(r={})=>({state:e,dispatch:t})=>{let n=ht(e),{doc:s}=e,i=null,o=e.changeByRange(a=>{if(!a.empty||!nl.isActiveAt(e,a.from,-1)&&!nl.isActiveAt(e,a.from,1))return i={range:a};let l=a.from,c=s.lineAt(l),u=t1(n.resolveInner(l,-1),s);for(;u.length&&u[u.length-1].from>l-c.from;)u.pop();if(!u.length)return i={range:a};let h=u[u.length-1];if(h.to-h.spaceAfter.length>l-c.from)return i={range:a};let p=l>=h.to-h.spaceAfter.length&&!/\S/.test(c.text.slice(h.to));if(h.item&&p){let b=h.node.firstChild,C=h.node.getChild("ListItem","ListItem");if(b.to>=l||C&&C.to<l||c.from>0&&!/[^\s>]/.test(s.lineAt(c.from-1).text)||r.nonTightLists===!1){let P=u.length>1?u[u.length-2]:null,A,E="";P&&P.item?(A=c.from+P.from,E=P.marker(s,1)):A=c.from+(P?P.to:0);let F=[{from:A,to:l,insert:E}];return h.node.name=="OrderedList"&&dc(h.item,s,F,-2),P&&P.node.name=="OrderedList"&&dc(P.item,s,F),{range:te.cursor(A+E.length),changes:F}}else{let P=kp(u,e,c);return{range:te.cursor(l+P.length+1),changes:{from:c.from,insert:P+e.lineBreak}}}}if(h.node.name=="Blockquote"&&p&&c.from){let b=s.lineAt(c.from-1),C=/>\s*$/.exec(b.text);if(C&&C.index==h.from){let P=e.changes([{from:b.from+C.index,to:b.to},{from:c.from+h.from,to:c.to}]);return{range:a.map(P),changes:P}}}let f=[];h.node.name=="OrderedList"&&dc(h.item,s,f);let g=h.item&&h.item.from<c.from,O="";if(!g||/^[\s\d.)\-+*>]*/.exec(c.text)[0].length>=h.to)for(let b=0,C=u.length-1;b<=C;b++)O+=b==C&&!g?u[b].marker(s,1):u[b].blank(b<C?_r(c.text,4,u[b+1].from)-O.length:null);let y=l;for(;y>c.from&&/\s/.test(c.text.charAt(y-c.from-1));)y--;return O=Mh(O,e),rA(h.node,e.doc)&&(O=kp(u,e,c)+e.lineBreak+O),f.push({from:y,to:l,insert:e.lineBreak+O}),{range:te.cursor(y+O.length+1),changes:f}});return i?!1:(t(e.update(o,{scrollIntoView:!0,userEvent:"input"})),!0)},tA=eA();function yp(r){return r.name=="QuoteMark"||r.name=="ListMark"}function rA(r,e){if(r.name!="OrderedList"&&r.name!="BulletList")return!1;let t=r.firstChild,n=r.getChild("ListItem","ListItem");if(!n)return!1;let s=e.lineAt(t.to),i=e.lineAt(n.from),o=/^[\s>]*$/.test(s.text);return s.number+(o?0:1)<i.number}function kp(r,e,t){let n="";for(let s=0,i=r.length-2;s<=i;s++)n+=r[s].blank(s<i?_r(t.text,4,r[s+1].from)-n.length:null,s<i);return Mh(n,e)}function nA(r,e){let t=r.resolveInner(e,-1),n=e;yp(t)&&(n=t.from,t=t.parent);for(let s;s=t.childBefore(n);)if(yp(s))n=s.from;else if(s.name=="OrderedList"||s.name=="BulletList")t=s.lastChild,n=t.to;else break;return t}const sA=({state:r,dispatch:e})=>{let t=ht(r),n=null,s=r.changeByRange(i=>{let o=i.from,{doc:a}=r;if(i.empty&&nl.isActiveAt(r,i.from)){let l=a.lineAt(o),c=t1(nA(t,o),a);if(c.length){let u=c[c.length-1],h=u.to-u.spaceAfter.length+(u.spaceAfter?1:0);if(o-l.from>h&&!/\S/.test(l.text.slice(h,o-l.from)))return{range:te.cursor(l.from+h),changes:{from:l.from+h,to:o}};if(o-l.from==h&&(!u.item||l.from<=u.item.from||!/\S/.test(l.text.slice(0,u.to)))){let p=l.from+u.from;if(u.item&&u.node.from<u.item.from&&/\S/.test(l.text.slice(u.from,u.to))){let f=u.blank(_r(l.text,4,u.to)-_r(l.text,4,u.from));return p==l.from&&(f=Mh(f,r)),{range:te.cursor(p+f.length),changes:{from:p,to:l.from+u.to,insert:f}}}if(p<o)return{range:te.cursor(p),changes:{from:p,to:o}}}}}return n={range:i}});return n?!1:(e(r.update(s,{scrollIntoView:!0,userEvent:"delete"})),!0)},iA=[{key:"Enter",run:tA},{key:"Backspace",run:sA}],n1=q4({matchClosingTags:!1});function oA(r={}){let{codeLanguages:e,defaultCodeLanguage:t,addKeymap:n=!0,base:{parser:s}=H4,completeHTMLTags:i=!0,pasteURLAsLink:o=!0,htmlTagLanguage:a=n1}=r;if(!(s instanceof wl))throw new RangeError("Base parser provided to `markdown` should be a Markdown parser");let l=r.extensions?[r.extensions]:[],c=[a.support,G4],u;o&&c.push(uA),t instanceof to?(c.push(t.support),u=t.language):t&&(u=t);let h=e||u?J4(e,u):void 0;l.push(dT({codeParser:h,htmlParser:a.language.parser})),n&&c.push(On.high(xo.of(iA)));let p=Th(s.configure(l));return i&&c.push(p.data.of({autocomplete:aA})),new to(p,c)}function aA(r){let{state:e,pos:t}=r,n=/<[:\-\.\w\u00b7-\uffff]*$/.exec(e.sliceDoc(t-25,t));if(!n)return null;let s=ht(e).resolveInner(t,-1);for(;s&&!s.type.isTop;){if(s.name=="CodeBlock"||s.name=="FencedCode"||s.name=="ProcessingInstructionBlock"||s.name=="CommentBlock"||s.name=="Link"||s.name=="Image")return null;s=s.parent}return{from:t-n[0].length,to:t,options:lA(),validFor:/^<[:\-\.\w\u00b7-\uffff]*$/}}let fc=null;function lA(){if(fc)return fc;let r=N4(new hh(Je.create({extensions:n1}),0,!0));return fc=r?r.options:[]}const cA=/code|horizontalrule|html|link|comment|processing|escape|entity|image|mark|url/i,uA=ke.domEventHandlers({paste:(r,e)=>{var t;let{main:n}=e.state.selection;if(n.empty)return!1;let s=(t=r.clipboardData)===null||t===void 0?void 0:t.getData("text/plain");if(!s||!/^(https?:\/\/|mailto:|xmpp:|www\.)/.test(s)||(/^www\./.test(s)&&(s="https://"+s),!nl.isActiveAt(e.state,n.from,1)))return!1;let i=ht(e.state),o=!1;return i.iterate({from:n.from,to:n.to,enter:a=>{(a.from>n.from||cA.test(a.name))&&(o=!0)},leave:a=>{a.to<n.to&&(o=!0)}}),o?!1:(e.dispatch({changes:[{from:n.from,insert:"["},{from:n.to,insert:`](${s})`}],userEvent:"input.paste",scrollIntoView:!0}),!0)}}),hA="#e5c07b",wp="#e06c75",dA="#56b6c2",fA="#ffffff",ya="#abb2bf",vu="#7d8799",pA="#61afef",mA="#98c379",Sp="#d19a66",gA="#c678dd",OA="#21252b",$p="#2c313a",Cp="#282c34",pc="#353a42",vA="#3E4451",Qp="#528bff",bA=ke.theme({"&":{color:ya,backgroundColor:Cp},".cm-content":{caretColor:Qp},".cm-cursor, .cm-dropCursor":{borderLeftColor:Qp},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:vA},".cm-panels":{backgroundColor:OA,color:ya},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:"#6699ff0b"},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847"},".cm-gutters":{backgroundColor:Cp,color:vu,border:"none"},".cm-activeLineGutter":{backgroundColor:$p},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:pc},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:pc,borderBottomColor:pc},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:$p,color:ya}}},{dark:!0}),xA=Co.define([{tag:Q.keyword,color:gA},{tag:[Q.name,Q.deleted,Q.character,Q.propertyName,Q.macroName],color:wp},{tag:[Q.function(Q.variableName),Q.labelName],color:pA},{tag:[Q.color,Q.constant(Q.name),Q.standard(Q.name)],color:Sp},{tag:[Q.definition(Q.name),Q.separator],color:ya},{tag:[Q.typeName,Q.className,Q.number,Q.changed,Q.annotation,Q.modifier,Q.self,Q.namespace],color:hA},{tag:[Q.operator,Q.operatorKeyword,Q.url,Q.escape,Q.regexp,Q.link,Q.special(Q.string)],color:dA},{tag:[Q.meta,Q.comment],color:vu},{tag:Q.strong,fontWeight:"bold"},{tag:Q.emphasis,fontStyle:"italic"},{tag:Q.strikethrough,textDecoration:"line-through"},{tag:Q.link,color:vu,textDecoration:"underline"},{tag:Q.heading,fontWeight:"bold",color:wp},{tag:[Q.atom,Q.bool,Q.special(Q.variableName)],color:Sp},{tag:[Q.processingInstruction,Q.string,Q.inserted],color:mA},{tag:Q.invalid,color:fA}]),yA=[bA,zg(xA)],kA=Ie({__name:"MarkdownCodeEditor",props:{modelValue:{},readOnly:{type:Boolean,default:!1},lineToReveal:{default:null}},emits:["update:modelValue"],setup(r,{emit:e}){const t=r,n=e,s=_(null);let i=null,o=!1,a=null;const l=Ne.define(),c=Ne.define(),u=Tt.define({create(){return Ee.none},update(g,O){let y=g.map(O.changes);for(const b of O.effects)if(b.is(c)&&(y=Ee.none),b.is(l)){const C=Math.max(1,Math.min(b.value,O.state.doc.lines)),P=O.state.doc.line(C);y=Ee.set([Ee.line({class:"cm-target-line"}).range(P.from)])}return y},provide:g=>ke.decorations.from(g)});function h(){i&&(a&&clearTimeout(a),a=setTimeout(()=>{i&&i.dispatch({effects:c.of(void 0)})},1600))}function p(g){if(!i)return;const O=Math.max(1,Math.min(g,i.state.doc.lines)),y=i.state.doc.line(O);i.dispatch({selection:{anchor:y.from},effects:[ke.scrollIntoView(y.from,{y:"center"}),l.of(O)]}),i.focus(),h()}function f(g,O){return Je.create({doc:g,extensions:[K3,oA(),yA,ke.lineWrapping,u,ke.updateListener.of(y=>{!y.docChanged||o||n("update:modelValue",y.state.doc.toString())}),ke.theme({"&":{height:"100%",fontFamily:"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace",fontSize:"13px",backgroundColor:"rgb(var(--color-retro-black))",color:"rgb(var(--color-retro-text))"},".cm-scroller":{overflow:"auto",lineHeight:"1.6"},".cm-gutters":{backgroundColor:"rgb(var(--color-retro-dark))",color:"rgb(var(--color-retro-subtle))",borderRight:"1px solid rgb(var(--color-retro-border))"},".cm-content":{caretColor:"rgb(var(--color-retro-cyan))",padding:"12px 0"},".cm-activeLine":{backgroundColor:"rgba(34, 211, 238, 0.08)"},".cm-selectionBackground, &.cm-focused .cm-selectionBackground":{backgroundColor:"rgba(34, 211, 238, 0.22)"}}),Je.readOnly.of(O)]})}return mt(()=>{s.value&&(i=new ke({state:f(t.modelValue,t.readOnly),parent:s.value}),t.lineToReveal&&p(t.lineToReveal))}),ze(()=>t.modelValue,g=>{if(!i)return;const O=i.state.doc.toString();O!==g&&(o=!0,i.dispatch({changes:{from:0,to:O.length,insert:g}}),o=!1)}),ze(()=>t.lineToReveal,g=>{g&&p(g)}),p1(()=>{a&&clearTimeout(a),i&&(i.destroy(),i=null)}),(g,O)=>(v(),x("div",{ref_key:"rootRef",ref:s,class:"h-full w-full"},null,512))}}),wA=Gs(kA,[["__scopeId","data-v-d77d4160"]]),SA={class:"fixed inset-0 z-50 flex items-center justify-center"},$A={class:"relative w-[96vw] h-[94vh] bg-retro-black border border-retro-border rounded-lg shadow-2xl flex flex-col overflow-hidden"},CA={class:"flex-shrink-0 flex items-center justify-between px-4 h-12 border-b border-retro-border bg-retro-dark"},QA={class:"flex items-center gap-3 min-w-0"},PA={class:"text-sm font-mono font-bold text-retro-cyan truncate"},TA={class:"text-xs font-mono text-retro-subtle"},MA={class:"flex items-center gap-2"},AA=["disabled"],_A={class:"flex-shrink-0 flex items-center gap-0 border-b border-retro-border bg-retro-dark overflow-x-auto"},RA=["onClick"],BA={class:"flex-1 min-h-0 overflow-y-auto"},ZA={key:0,class:"p-5 max-w-6xl mx-auto"},EA={key:0,class:"flex items-center justify-center py-12"},DA={key:1,class:"flex flex-col items-center justify-center py-12 text-center px-4"},LA={class:"text-sm font-mono text-retro-red"},XA={key:2,class:"space-y-4"},IA={key:0,class:"rounded border border-retro-cyan/40 bg-retro-cyan/10 px-3 py-2 text-xs font-mono text-retro-cyan"},VA={class:"grid grid-cols-2 lg:grid-cols-5 gap-2"},zA={class:"rounded border border-retro-border bg-retro-panel px-3 py-2"},NA={class:"text-sm font-mono text-retro-text"},WA={class:"rounded border border-retro-border bg-retro-panel px-3 py-2"},jA={class:"text-sm font-mono text-retro-cyan"},qA={class:"rounded border border-retro-border bg-retro-panel px-3 py-2"},YA={class:"text-sm font-mono text-retro-yellow"},FA={class:"rounded border border-retro-border bg-retro-panel px-3 py-2"},UA={class:"text-sm font-mono text-retro-green"},GA={class:"rounded border border-retro-border bg-retro-panel px-3 py-2"},HA={class:"text-sm font-mono text-retro-text"},KA={class:"rounded border border-retro-border bg-retro-panel px-3 py-3"},JA={class:"flex items-center justify-between gap-2 mb-2"},e_={class:"text-[11px] font-mono text-retro-subtle"},t_={key:0,class:"text-xs font-mono text-retro-green"},r_={key:1,class:"space-y-2"},n_={class:"uppercase tracking-wide mr-2"},s_={class:"rounded border border-retro-border bg-retro-panel p-3 overflow-x-auto"},i_={class:"min-w-[760px]"},o_={class:"text-retro-text"},a_=["disabled","onClick"],l_=["disabled","onClick"],c_=["disabled","onClick"],u_={class:"text-retro-muted"},h_={key:1,class:"flex items-center justify-center py-12"},d_={key:2,class:"flex flex-col items-center justify-center py-12 text-center px-4"},f_={class:"text-sm font-mono text-retro-red"},p_={key:3,class:"flex flex-col items-center justify-center py-12 text-center"},m_={key:4,class:"h-full flex flex-col"},g_=["innerHTML"],O_=Ie({__name:"SpecViewerModal",props:{feature:{}},emits:["close"],setup(r,{emit:e}){const t=r,n=e,s=mo(),{renderMarkdown:i}=Ep(),o=_(t.feature.files[0]?.filename||""),a=_("document"),l=_(""),c=_(!1),u=_(null),h=_(!1),p=_(""),f=_(!1),g=_(null),O=_(null),y=_(!1),b=_(null),C=_(null),P=J(()=>{const X={critical:0,major:1,minor:2};return[...C.value?.alerts??[]].sort((N,me)=>X[N.severity]-X[me.severity])});function A(X){return X.status==="covered"?"text-retro-green border-retro-green/40 bg-retro-green/10":X.status==="partial"?"text-retro-yellow border-retro-yellow/40 bg-retro-yellow/10":"text-retro-red border-retro-red/40 bg-retro-red/10"}function E(X){return X.severity==="critical"?"text-retro-red border-retro-red/40 bg-retro-red/10":X.severity==="major"?"text-retro-yellow border-retro-yellow/40 bg-retro-yellow/10":"text-retro-cyan border-retro-cyan/40 bg-retro-cyan/10"}async function F(){y.value=!0,b.value=null;try{C.value=await $fetch(`/api/specs/traceability/${t.feature.id}`)}catch{b.value="Failed to load traceability data",C.value=null}finally{y.value=!1}}async function I(X=o.value){if(X){c.value=!0,u.value=null;try{const N=`/api/specs/${t.feature.id}/${X}`,me=await $fetch(N);l.value=me.content}catch{u.value="Failed to load file",l.value=""}finally{c.value=!1}}}function oe(){I()}const ie=J(()=>l.value?i(l.value):"");function ne(X){O.value=null,a.value="document",h.value&&(h.value=!1),o.value=X,I()}function L(){h.value&&z(),a.value="traceability",!C.value&&!y.value&&F()}async function D(X,N,me){N&&(o.value!==X?(o.value=X,await I(X)):l.value||await I(X),a.value="document",h.value=!0,p.value=l.value,g.value=null,O.value={filename:X,line:N,requirementId:me},await br(),g.value=N)}function Z(){p.value=l.value,g.value=null,h.value=!0}function z(){h.value=!1,p.value=""}async function q(){f.value=!0;try{const X=`/api/specs/${t.feature.id}/${o.value}`;await $fetch(X,{method:"PUT",body:{content:p.value}}),l.value=p.value,h.value=!1,s.success("Saved")}catch{s.error("Failed to save")}finally{f.value=!1}}function V(X){X.key==="Escape"&&(h.value?z():n("close"))}return mt(()=>{window.addEventListener("keydown",V),I(),F()}),St(()=>{window.removeEventListener("keydown",V)}),(X,N)=>{const me=wA;return v(),Oe(xr,{to:"body"},[d("div",SA,[d("div",{class:"absolute inset-0 bg-black/80",onClick:N[0]||(N[0]=K=>n("close"))}),d("div",$A,[d("div",CA,[d("div",QA,[d("span",PA,B(r.feature.name),1),d("span",TA,B(r.feature.id),1)]),d("div",MA,[m(h)?(v(),x(we,{key:0},[d("button",{type:"button",class:"px-3 py-1 text-xs font-mono rounded border border-retro-border text-retro-muted hover:text-retro-text hover:border-retro-muted transition-colors",onClick:z}," Cancel "),d("button",{type:"button",class:"px-3 py-1 text-xs font-mono rounded border border-retro-cyan text-retro-cyan hover:bg-retro-cyan/10 transition-colors disabled:opacity-50",disabled:m(f),onClick:q},B(m(f)?"Saving...":"Save"),9,AA)],64)):m(a)==="document"&&m(l)&&!m(c)&&!m(u)?(v(),x("button",{key:1,type:"button",class:"p-1.5 rounded text-retro-muted hover:text-retro-cyan hover:bg-retro-panel transition-colors",title:"Edit",onClick:Z},[ee(m(Cu),{class:"h-4 w-4"})])):U("",!0),d("button",{type:"button",class:"p-1.5 rounded text-retro-muted hover:text-retro-text hover:bg-retro-panel transition-colors",title:"Close (ESC)",onClick:N[1]||(N[1]=K=>n("close"))},[ee(m(Pt),{class:"h-4 w-4"})])])]),d("div",_A,[d("button",{type:"button",class:Re(["px-4 py-2 text-xs font-mono border-b-2 transition-colors whitespace-nowrap flex items-center gap-1",[m(a)==="traceability"?"border-retro-magenta text-retro-magenta bg-retro-black":"border-transparent text-retro-muted hover:text-retro-text hover:bg-retro-panel"]]),onClick:L},[ee(m(W1),{class:"h-3.5 w-3.5"}),N[3]||(N[3]=Xe(" Traceability ",-1))],2),(v(!0),x(we,null,Fe(r.feature.files,K=>(v(),x("button",{key:K.filename,type:"button",class:Re(["px-4 py-2 text-xs font-mono border-b-2 transition-colors whitespace-nowrap",[m(a)==="document"&&m(o)===K.filename?"border-retro-cyan text-retro-cyan bg-retro-black":"border-transparent text-retro-muted hover:text-retro-text hover:bg-retro-panel"]]),onClick:he=>ne(K.filename)},B(K.label),11,RA))),128))]),d("div",BA,[m(a)==="traceability"?(v(),x("div",ZA,[m(y)?(v(),x("div",EA,[...N[4]||(N[4]=[d("span",{class:"text-sm font-mono text-retro-muted animate-pulse"},"Loading traceability...",-1)])])):m(b)?(v(),x("div",DA,[d("p",LA,B(m(b)),1),d("button",{type:"button",class:"mt-3 px-3 py-1.5 text-xs font-mono bg-retro-panel border border-retro-border rounded text-retro-muted hover:text-retro-cyan hover:border-retro-cyan transition-colors",onClick:F}," Retry ")])):m(C)?(v(),x("div",XA,[m(O)?(v(),x("div",IA," Jump target: "+B(m(O).requirementId)+" → "+B(m(O).filename)+":"+B(m(O).line),1)):U("",!0),d("div",VA,[d("div",zA,[N[5]||(N[5]=d("p",{class:"text-[11px] font-mono text-retro-subtle"},"FR total",-1)),d("p",NA,B(m(C).summary.frTotal),1)]),d("div",WA,[N[6]||(N[6]=d("p",{class:"text-[11px] font-mono text-retro-subtle"},"Plan coverage",-1)),d("p",jA,B(m(C).summary.frWithPlan)+"/"+B(m(C).summary.frTotal),1)]),d("div",qA,[N[7]||(N[7]=d("p",{class:"text-[11px] font-mono text-retro-subtle"},"Task mapping",-1)),d("p",YA,B(m(C).summary.frWithTasks)+"/"+B(m(C).summary.frTotal),1)]),d("div",FA,[N[8]||(N[8]=d("p",{class:"text-[11px] font-mono text-retro-subtle"},"Fully covered",-1)),d("p",UA,B(m(C).summary.frFullyCovered)+"/"+B(m(C).summary.frTotal),1)]),d("div",GA,[N[9]||(N[9]=d("p",{class:"text-[11px] font-mono text-retro-subtle"},"Task progress",-1)),d("p",HA,B(m(C).summary.taskCompleted)+"/"+B(m(C).summary.taskTotal),1)])]),d("div",KA,[d("div",JA,[N[10]||(N[10]=d("h3",{class:"text-xs font-mono text-retro-text"},"Gap Alerts",-1)),d("span",e_,B(m(P).length)+" issues",1)]),m(P).length===0?(v(),x("div",t_," No traceability gaps detected. ")):(v(),x("div",r_,[(v(!0),x(we,null,Fe(m(P),K=>(v(),x("div",{key:K.id,class:Re(["rounded border px-2.5 py-2 text-xs font-mono",E(K)])},[d("span",n_,B(K.severity),1),d("span",null,B(K.message),1)],2))),128))]))]),d("div",s_,[d("div",i_,[N[11]||(N[11]=d("div",{class:"grid grid-cols-[140px_1fr_1fr_1fr_120px] gap-2 text-[11px] font-mono text-retro-subtle px-2 pb-2 border-b border-retro-border"},[d("span",null,"Requirement"),d("span",null,"Spec"),d("span",null,"Plan"),d("span",null,"Tasks"),d("span",null,"Progress")],-1)),(v(!0),x(we,null,Fe(m(C).requirements,K=>(v(),x("div",{key:K.id,class:"grid grid-cols-[140px_1fr_1fr_1fr_120px] gap-2 items-center px-2 py-2 border-b border-retro-border/60 text-xs font-mono"},[d("span",o_,B(K.id),1),d("button",{type:"button",class:"h-6 rounded border border-retro-green/40 bg-retro-green/10 flex items-center px-2 text-retro-green disabled:opacity-50 disabled:cursor-not-allowed",disabled:!K.locations.specLine,onClick:he=>D("spec.md",K.locations.specLine,K.id)},[d("span",null,B(K.locations.specLine?`L${K.locations.specLine}`:"Defined"),1)],8,a_),d("button",{type:"button",class:Re(["h-6 rounded border flex items-center px-2 disabled:opacity-50 disabled:cursor-not-allowed",K.inPlan?"text-retro-cyan border-retro-cyan/40 bg-retro-cyan/10":"text-retro-subtle border-retro-border bg-retro-black/50"]),disabled:!K.locations.planLine,onClick:he=>D("plan.md",K.locations.planLine,K.id)},[d("span",null,B(K.locations.planLine?`L${K.locations.planLine}`:K.inPlan?"Linked":"Missing"),1)],10,l_),d("button",{type:"button",class:Re(["h-6 rounded border flex items-center px-2 disabled:opacity-50 disabled:cursor-not-allowed",A(K)]),disabled:K.locations.taskLines.length===0,onClick:he=>D("tasks.md",K.locations.taskLines[0],K.id)},[d("span",null,B(K.locations.taskLines.length>0?`L${K.locations.taskLines[0]}`:K.inTasks?"Mapped":"Missing"),1)],10,c_),d("span",u_,B(K.taskCompleted)+"/"+B(K.taskTotal),1)]))),128))])])])):U("",!0)])):m(c)?(v(),x("div",h_,[...N[12]||(N[12]=[d("span",{class:"text-sm font-mono text-retro-muted animate-pulse"},"Loading...",-1)])])):m(u)?(v(),x("div",d_,[d("p",f_,B(m(u)),1),d("button",{type:"button",class:"mt-3 px-3 py-1.5 text-xs font-mono bg-retro-panel border border-retro-border rounded text-retro-muted hover:text-retro-cyan hover:border-retro-cyan transition-colors",onClick:oe}," Retry ")])):r.feature.files.length===0?(v(),x("div",p_,[...N[13]||(N[13]=[d("p",{class:"text-sm font-mono text-retro-muted"},"No spec files found",-1),d("p",{class:"mt-1 text-xs font-mono text-retro-subtle"}," This feature directory has no .md files ",-1)])])):m(h)?(v(),x("div",m_,[ee(me,{modelValue:m(p),"onUpdate:modelValue":N[2]||(N[2]=K=>tt(p)?p.value=K:null),"line-to-reveal":m(g),class:"flex-1"},null,8,["modelValue","line-to-reveal"])])):(v(),x("div",{key:5,class:"spec-markdown p-6 text-sm font-mono text-retro-text max-w-4xl mx-auto",innerHTML:m(ie)},null,8,g_))])])])])}}}),v_={class:"w-full max-w-2xl rounded-xl border border-retro-border/80 bg-retro-black shadow-[0_24px_70px_rgba(0,0,0,0.55)] overflow-hidden"},b_={class:"flex items-center justify-between px-4 py-2 border-b border-retro-border/60 bg-retro-dark/70"},x_={class:"flex items-center gap-2 px-4 py-3 border-b border-retro-border/60"},y_={class:"flex items-center justify-between px-4 py-1.5 border-b border-retro-border/40 bg-retro-dark/30 text-[10px] font-mono text-retro-subtle"},k_={class:"flex items-center gap-3"},w_={class:"inline-flex items-center gap-1"},S_={key:0},$_={key:0,class:"truncate max-w-[42%]"},C_={class:"max-h-[58vh] overflow-y-auto"},Q_={key:0,class:"px-4 py-3 text-xs font-mono text-retro-subtle animate-pulse"},P_={key:1,class:"px-4 py-4 text-xs font-mono text-retro-subtle"},T_={key:2,class:"px-4 py-4 text-xs font-mono text-retro-subtle"},M_={key:3,class:"px-4 py-3 text-xs font-mono text-retro-red"},A_={key:4,class:"py-2 px-2 space-y-2"},__=["onMouseenter","onClick"],R_={class:"flex items-center justify-between gap-3 text-[10px] font-mono"},B_={class:"text-retro-cyan/90"},Z_={class:"text-retro-subtle truncate"},E_=["innerHTML"],D_={key:5,class:"px-4 py-3 text-xs font-mono text-retro-subtle"},L_={class:"flex items-center justify-between gap-3 px-4 py-2 border-t border-retro-border/60 bg-retro-dark/50 text-[11px] font-mono text-retro-subtle"},X_={key:0,class:"text-retro-yellow"},I_={key:0,class:"px-4 pb-3 text-xs font-mono text-retro-red flex items-center gap-2"},V_=400,z_=Ie({__name:"FeatureSearchModal",props:{availableFeatureIds:{}},emits:["close","select"],setup(r,{emit:e}){const t=r,n=e,{renderMarkdown:s}=Ep(),i=_(""),o=_(!1),a=_(!1),l=_(null),c=_(null),u=_(null),h=_(null),p=_([]),f=_(-1),g=_(null),O=_([]);let y=null,b=0;const C=J(()=>i.value.trim()),P=J(()=>{const q=C.value.toLowerCase().split(/\s+/).map(V=>V.trim()).filter(V=>V.length>=2);return Array.from(new Set(q)).slice(0,8)}),A=J(()=>l.value||c.value?"error":!C.value&&a.value?"empty-query":p.value.length>0?"results":a.value&&!o.value?"no-results":"idle");function E(q){return{featureId:q.chunk.featureId,sourcePath:q.chunk.sourcePath,headingHierarchy:q.chunk.headingHierarchy,snippet:q.chunk.content,matchType:q.matchType,score:q.score,lineStart:q.chunk.lineStart,lineEnd:q.chunk.lineEnd}}async function F(){const q=C.value;if(c.value=null,!q){a.value=!0,u.value=null,h.value=null,l.value=null,p.value=[],f.value=-1;return}const V=++b;a.value=!0,l.value=null,o.value=!0;try{const X=await $fetch("/api/specs/search",{query:{q,mode:"keyword",limit:20}});if(V!==b)return;u.value=X.warning??null,h.value=X.searchTime,p.value=X.results.map(E),f.value=p.value.length>0?0:-1}catch(X){if(V!==b)return;const N=X instanceof Error?X.message:"Failed to search specs";l.value=N,h.value=null,p.value=[],f.value=-1}finally{V===b&&(o.value=!1)}}ze(i,()=>{l.value=null,c.value=null,y&&clearTimeout(y),y=setTimeout(()=>{F()},V_)}),ze(p,()=>{O.value=[]}),ze(f,async q=>{q<0||(await br(),O.value[q]?.scrollIntoView({block:"nearest"}))});function I(){n("close")}function oe(q){const V=p.value[q];if(V){if(!t.availableFeatureIds.includes(V.featureId)){c.value="Feature unavailable";return}n("select",V.featureId),n("close")}}function ie(q){if(p.value.length===0)return;if(f.value<0){f.value=0;return}const V=f.value+q;if(V<0){f.value=p.value.length-1;return}if(V>=p.value.length){f.value=0;return}f.value=V}function ne(q){if(q.key==="ArrowDown"){q.preventDefault(),ie(1);return}if(q.key==="ArrowUp"){q.preventDefault(),ie(-1);return}if(q.key==="Enter"){q.preventDefault(),f.value>=0&&oe(f.value);return}q.key==="Escape"&&(q.preventDefault(),I())}function L(q){q.target===q.currentTarget&&I()}function D(q,V){if(!V){O.value[q]=null;return}if(V instanceof HTMLElement){O.value[q]=V;return}const X=V.$el;O.value[q]=X instanceof HTMLElement?X:null}function Z(){F()}function z(q){const V=q.trim();if(!V)return"";const X=V.length>700?`${V.slice(0,700)}...`:V,N=s(X);if(P.value.length===0)return N;const me=P.value.map(he=>he.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")),K=new RegExp(`(${me.join("|")})`,"gi");return N.split(/(<[^>]+>)/g).map(he=>he.startsWith("<")?he:he.replace(K,"<mark>$1</mark>")).join("")}return mt(()=>{br(()=>{g.value?.focus()})}),St(()=>{y&&clearTimeout(y)}),(q,V)=>(v(),Oe(xr,{to:"body"},[ee(dn,{appear:"","enter-active-class":"transition duration-150 ease-out","enter-from-class":"opacity-0","enter-to-class":"opacity-100","leave-active-class":"transition duration-120 ease-in","leave-from-class":"opacity-100","leave-to-class":"opacity-0"},{default:ct(()=>[d("div",{class:"fixed inset-0 z-50 flex items-start justify-center pt-16 px-4 bg-black/75 backdrop-blur-[1px]",onClick:L},[ee(dn,{appear:"","enter-active-class":"transition duration-150 ease-out","enter-from-class":"opacity-0 translate-y-2 scale-[0.99]","enter-to-class":"opacity-100 translate-y-0 scale-100","leave-active-class":"transition duration-120 ease-in","leave-from-class":"opacity-100 translate-y-0 scale-100","leave-to-class":"opacity-0 translate-y-1 scale-[0.995]"},{default:ct(()=>[d("div",v_,[d("div",b_,[V[1]||(V[1]=d("div",{class:"flex items-center gap-2"},[d("span",{class:"inline-flex items-center rounded px-2 py-0.5 text-[10px] font-mono border border-retro-cyan/50 text-retro-cyan bg-retro-cyan/10"}," Command Palette "),d("span",{class:"text-[10px] font-mono text-retro-subtle"},"Global spec search")],-1)),d("button",{type:"button",class:"p-1 rounded text-retro-muted hover:text-retro-text hover:bg-retro-panel transition-colors",title:"Close (Escape)",onClick:I},[ee(m(Pt),{class:"h-4 w-4"})])]),d("div",x_,[ee(m(ls),{class:"h-4 w-4 text-retro-cyan"}),He(d("input",{ref_key:"inputRef",ref:g,"onUpdate:modelValue":V[0]||(V[0]=X=>tt(i)?i.value=X:null),type:"text",placeholder:"Search specs across all features...",class:"flex-1 bg-transparent text-sm font-mono text-retro-text placeholder:text-retro-subtle focus:outline-none",onKeydown:ne},null,544),[[Xt,m(i)]]),V[2]||(V[2]=d("span",{class:"text-[10px] font-mono text-retro-subtle border border-retro-border/60 rounded px-1.5 py-0.5"},"400ms",-1))]),d("div",y_,[d("div",k_,[d("span",w_,[ee(m(Ds),{class:"h-3.5 w-3.5"}),Xe(" "+B(m(p).length)+" results ",1)]),m(h)!==null?(v(),x("span",S_,B(m(h))+"ms",1)):U("",!0)]),m(C)?(v(),x("span",$_,"“"+B(m(C))+"”",1)):U("",!0)]),d("div",C_,[m(o)?(v(),x("div",Q_," Searching... ")):m(A)==="empty-query"?(v(),x("div",P_," Enter a search term to search across all feature specs. ")):m(A)==="no-results"?(v(),x("div",T_," No matching features found. ")):m(A)==="error"?(v(),x("div",M_,[d("p",null,B(m(c)||m(l)),1),m(l)?(v(),x("button",{key:0,type:"button",class:"mt-2 px-2 py-1 rounded border border-retro-border text-retro-muted hover:text-retro-cyan hover:border-retro-cyan transition-colors",onClick:Z}," Retry ")):U("",!0)])):m(p).length>0?(v(),x("ul",A_,[(v(!0),x(we,null,Fe(m(p),(X,N)=>(v(),x("li",{key:`${X.featureId}:${X.sourcePath}:${N}`},[d("button",{type:"button",ref_for:!0,ref:me=>D(N,me),class:Re(["w-full text-left px-4 py-3 min-h-[132px] rounded-lg border border-retro-border/40 border-l-2 transition-colors",N===m(f)?"border-retro-cyan bg-retro-panel/95 text-retro-text shadow-[0_0_0_1px_rgba(34,211,238,0.18)]":"text-retro-muted hover:text-retro-text hover:bg-retro-panel/90"]),onMouseenter:me=>f.value=N,onClick:me=>oe(N)},[d("div",R_,[d("span",B_,B(X.featureId),1),d("span",Z_,B(X.sourcePath)+":"+B(X.lineStart)+"-"+B(X.lineEnd),1)]),d("div",{class:"snippet-markdown mt-2 max-h-20 overflow-hidden text-xs text-retro-text",innerHTML:z(X.snippet)},null,8,E_),V[3]||(V[3]=d("div",{class:"mt-2 text-[10px] font-mono text-retro-subtle"}," Select feature ",-1))],42,__)]))),128))])):(v(),x("div",D_," Start typing to search. "))]),d("div",L_,[V[4]||(V[4]=d("div",{class:"flex items-center gap-2"},[d("span",{class:"border border-retro-border/70 rounded px-1.5 py-0.5"},"↑↓ move"),d("span",{class:"border border-retro-border/70 rounded px-1.5 py-0.5"},"Enter select"),d("span",{class:"border border-retro-border/70 rounded px-1.5 py-0.5"},"Esc close")],-1)),m(u)?(v(),x("span",X_,B(m(u)),1)):U("",!0)]),m(c)?(v(),x("div",I_,[ee(m(_n),{class:"h-3.5 w-3.5"}),d("span",null,B(m(c)),1)])):U("",!0)])]),_:1})])]),_:1})]))}}),N_=Gs(z_,[["__scopeId","data-v-5199b408"]]);function W_(r){return/^\/speckit\.(clarify|plan|tasks|implement)(\s|$)/.test(r)}function j_(r=Date.now,e=Math.random){return`req-${r()}-${e().toString(36).slice(2,8)}`}function Pp(r=Date.now){return`session-${r()}`}function ka(r,e=!1){const t={};return(!e||r?.hasWorktree)&&r?.worktreePath&&(t.cwd=r.worktreePath,t.worktreeBranch=r.worktreeBranch),r?.featureId&&(t.featureId=r.featureId),Object.keys(t).length>0?t:void 0}function Tp(r){if(r.file_path)return String(r.file_path);if(r.path)return String(r.path);if(r.command)return String(r.command).slice(0,50);if(r.pattern)return String(r.pattern);for(const e of Object.values(r))if(typeof e=="string"&&e.length<100)return e;return""}function Mp(r,e="Permission"){const t=r||"",n=t.match(/write to (.+?)(?:[\s,?]|$)/i),s=t.match(/read (.+?)(?:[\s,?]|$)/i),i=t.match(/run (.+?)(?:[?,]|$)/i);return n?.[1]?{tool:"Write",description:t,filePath:n[1].trim()}:s?.[1]?{tool:"Read",description:t,filePath:s[1].trim()}:i?.[1]?{tool:"Bash",description:t,command:i[1].trim()}:{tool:e,description:t}}const pt=new Map;let oa=0;const Qn=new Map,aa=new Set,q_=3e4,s1=18e4,Y_=Math.round(s1/1e3);function F_(r){switch(r){case 1e3:return"Normal closure";case 1001:return"Endpoint is going away (server shutdown or page navigation)";case 1002:return"Protocol error";case 1003:return"Unsupported data";case 1005:return"No status code received from peer (close frame had no code)";case 1006:return"Abnormal closure (connection dropped without close frame)";case 1007:return"Invalid payload data";case 1008:return"Policy violation";case 1009:return"Message too big";case 1010:return"Missing required extension";case 1011:return"Internal server error";case 1012:return"Service restart";case 1013:return"Try again later (temporary overload)";case 1015:return"TLS handshake failure";default:return r>=4e3&&r<=4999?"Application-specific close code":"Unknown close code"}}function U_(r,e){const t=[];return r.reason?t.push(r.reason):t.push(F_(r.code)),e?.lastServerError?t.push(`Last server error: ${e.lastServerError}`):e?.lastSocketError&&t.push(`Last socket error: ${e.lastSocketError}`),t.push(`wasClean: ${r.wasClean?"yes":"no"}`),t.join(" | ")}function Sl(){const r=kr(),e=il();oa++;function t(){return typeof document>"u"||typeof document.hasFocus!="function"?!1:document.visibilityState==="visible"&&document.hasFocus()}function n($){const M=r.conversations.find(R=>R.id===$)?.title?.trim()||"Chat";return new Notification("Spec Cat",{body:`${M} response completed.`,tag:`chat-complete-${$}`})}async function s($){if(!(typeof window>"u"||typeof Notification>"u")&&!t()){if(Notification.permission==="granted"){n($);return}if(Notification.permission==="default")try{await Notification.requestPermission()==="granted"&&n($)}catch(w){console.warn("[useChatStream] Failed to request browser notification permission:",w)}}}function i(){return typeof window>"u"?"":`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/_ws`}function o($){$.healthCheckInterval&&(clearInterval($.healthCheckInterval),$.healthCheckInterval=null)}function a($){o($),$.lastMessageTime=Date.now(),$.healthCheckInterval=Mu(()=>{const w=$.conversationId;if($.ws.readyState!==WebSocket.OPEN){console.warn(`[useChatStream] Health check: WebSocket not open for ${w}`),o($),r.isConversationStreaming(w)&&(h($.currentMessageId,w,"error"),r.updateMessage($.currentMessageId,{status:"error"},w),r.setSessionError("Connection lost during streaming",w),r.endSession(w),r.endConversationStreaming(w)),pt.delete(w);return}if(r.isConversationStreaming(w)){const M=Date.now()-$.lastMessageTime;M>s1&&(console.warn(`[useChatStream] Health check: streaming timeout for ${w} (${Math.round(M/1e3)}s)`),o($),h($.currentMessageId,w,"error"),r.updateMessage($.currentMessageId,{status:"error"},w),r.setSessionError(`Streaming timed out — no response from server for ${Y_} seconds`,w),r.endSession(w),r.endConversationStreaming(w),$.ws.close(),pt.delete(w))}},q_)}function l($,w){return r.conversations.find(R=>R.id===$)?.messages.find(R=>R.id===w)?.status}function c($,w=!0){const M=pt.get($);M&&(o(M),w&&M.ws.readyState===WebSocket.OPEN&&M.ws.close(),pt.delete($))}function u($,w,M){!M||!$.currentTextBlockId||(r.updateBlockWithSave($.currentMessageId,$.currentTextBlockId,R=>{R.type==="text"&&(R.text+=M)},w,{syncContent:!1}),r.appendToMessage($.currentMessageId,M,w))}function h($,w,M){const G=r.conversations.find(ae=>ae.id===w)?.messages.find(ae=>ae.id===$);if(G?.contentBlocks)for(const ae of G.contentBlocks)ae.type==="tool_use"&&(ae.status==="running"||ae.status==="pending")&&r.updateBlockById($,ae.id,xe=>{xe.type==="tool_use"&&(xe.status=M)},w)}async function p($){try{(await f($)).send(JSON.stringify({type:"reset_context"})),r.clearProviderSession($),console.log("[useChatStream] Context reset requested for conversation:",$)}catch(w){throw console.error("[useChatStream] Failed to reset context:",w),w}}function f($){return new Promise((w,M)=>{let R=!1;const G=Ye=>{R||(R=!0,w(Ye))},ae=Ye=>{R||(R=!0,M(Ye))},xe=pt.get($);if(xe&&xe.ws.readyState===WebSocket.OPEN){G(xe.ws);return}xe&&(xe.ws.close(),pt.delete($));const De=i(),Ae=new WebSocket(De),Ue={ws:Ae,currentMessageId:"",conversationId:$,activeTools:new Map,currentTextBlockId:null,currentThinkingBlockId:null,healthCheckInterval:null,lastMessageTime:Date.now(),lastServerError:null,lastSocketError:null,isReplaying:!1,replayBuffer:[]};pt.set($,Ue),Ae.onopen=()=>{G(Ae)},Ae.onerror=Ye=>{console.error(`[useChatStream] WebSocket error for conversation ${$}:`,Ye);const pe=pt.get($);pe&&pe.ws!==Ae||(pe&&(pe.lastSocketError="Browser reported a WebSocket transport error (network/proxy/server)"),r.isConversationStreaming($)&&(pe?.currentMessageId&&(h(pe.currentMessageId,$,"error"),r.updateMessage(pe.currentMessageId,{status:"error"},$)),r.setSessionError("Connection error during streaming",$),r.endSession($),r.endConversationStreaming($)),pt.delete($),ae(new Error("WebSocket connection failed. Server may be unavailable.")))},Ae.onclose=Ye=>{const pe=pt.get($);if(!(pe&&pe.ws!==Ae)){if(pe&&o(pe),pt.delete($),Qn.delete($),!R){ae(new Error(`WebSocket closed before connection was established (code: ${Ye.code})`));return}if(r.isConversationStreaming($)){pe?.currentMessageId&&(h(pe.currentMessageId,$,"error"),r.updateMessage(pe.currentMessageId,{status:"error"},$));const Ce=U_(Ye,pe);r.setSessionError(`Connection closed: ${Ce} (code: ${Ye.code})`,$),r.endSession($),r.endConversationStreaming($)}}},Ae.onmessage=Ye=>{const pe=pt.get($);pe&&pe.ws!==Ae||b(Ye.data,$)}})}async function g($,w=3){for(let M=0;M<w;M++){const R=r.conversations.find(G=>G.id===$);if(R)return R;M<w-1&&await new Promise(G=>setTimeout(G,100))}console.error("[useChatStream] Conversation not found after retries:",$)}function O($,w){return`${$}:${w}`}function y($,w){const M=r.conversations.find(G=>G.id===$);if(!M)return null;const R=M.messages.findIndex(G=>G.id===w);if(R<=0)return null;for(let G=R-1;G>=0;G--){const ae=M.messages[G];if(ae.role==="user"&&ae.content.trim().length>0)return ae.content}return null}async function b($,w){const M=pt.get(w);if(M){M.lastMessageTime=Date.now();try{r.pushDebugEvent({direction:"in",channel:"ws",eventType:"ws.raw",payload:$},w);const R=JSON.parse($);if(r.pushDebugEvent({direction:"in",channel:"ws",eventType:R.type,payload:R},w),M.isReplaying&&((R.type==="ui_event"||R.type==="done"||R.type==="error")&&M.replayBuffer.push(R),R.type!=="replay_end"))return;if(R.type==="error"){console.error(`[useChatStream] Server error for ${w}:`,R.error);const G=R.error||"Unknown server error";M.lastServerError=G;const ae=/codex cannot access session files|failed to clean up stale arg0 temp dirs: Permission denied|failed to initialize rollout recorder: Permission denied|failed to create session: Permission denied|\/\.codex\/.*permission denied/i.test(G);if(/state db missing rollout path for thread/i.test(G)&&!ae){const De=O(w,M.currentMessageId);if(!aa.has(De)){const Ae=y(w,M.currentMessageId);if(Ae){aa.add(De),r.setProviderSessionId("",w),ie(M.currentMessageId,`
|
|
40
|
+
|
|
41
|
+
> **Session Reset**: Codex resume state was corrupted. Retrying once with a fresh session...
|
|
42
|
+
|
|
43
|
+
`,w);try{const Ue=r.conversations.find(pe=>pe.id===w),Ye=ka(Ue);await ne(Ae,M.currentMessageId,w,Ye);return}catch(Ue){console.error(`[useChatStream] Rollout-path recovery retry failed for ${w}:`,Ue)}}}}o(M),h(M.currentMessageId,w,"error"),r.updateMessage(M.currentMessageId,{status:"error"},w),/state db missing rollout path for thread/i.test(G)&&r.setProviderSessionId("",w),aa.delete(O(w,M.currentMessageId)),r.setSessionError(G,w),r.endSession(w),r.endConversationStreaming(w),Z(w),r.saveConversation(w,!0),c(w);return}if(R.type==="done"){o(M);const G=l(w,M.currentMessageId);if(aa.delete(O(w,M.currentMessageId)),R.denied){h(M.currentMessageId,w,"error"),r.updateMessage(M.currentMessageId,{status:"stopped"},w),r.endSession(w),r.endConversationStreaming(w),Z(w),r.clearPendingPermission(w),M.activeTools.clear(),r.saveConversation(w,!0);return}if(G==="error"||G==="stopped"){h(M.currentMessageId,w,"error"),r.endSession(w),r.endConversationStreaming(w),Z(w),r.clearPendingPermission(w),M.activeTools.clear(),r.saveConversation(w,!0);return}h(M.currentMessageId,w,"complete"),r.completeMessageWithSave(M.currentMessageId,w),r.endSession(w),r.endConversationStreaming(w),s(w);const ae=await g(w),xe=ae?.hasWorktree&&ae.worktreePath?$fetch("/api/chat/worktree-commit",{method:"POST",body:{worktreePath:ae.worktreePath,conversationId:w,previousBranch:ae.worktreeBranch}}).then(Ae=>ae.previewBranch&&ae.worktreePath?$fetch("/api/chat/preview-sync",{method:"POST",body:{previewBranch:ae.previewBranch,worktreePath:ae.worktreePath}}).then(Ue=>{if(!Ue.success)throw new Error(Ue.error||"Unknown preview sync failure");return Ae}):Ae).then(async Ae=>{if(Ae?.success&&Ae.currentBranch!==ae.worktreeBranch){const Ue=ae.worktreeBranch||"unknown";r.updateWorktreeBranch(w,Ae.currentBranch);const Ye=await r.syncConversationFeatureFromBranch(w),pe=Ae.deletedPreviousBranch?` and deleted \`${Ue}\``:"",Ce=Ye?` and linked to feature \`${Ye}\``:"";ie(M.currentMessageId,`
|
|
44
|
+
|
|
45
|
+
> **Branch changed**: AI switched from \`${Ue}\` to \`${Ae.currentBranch}\`${pe}${Ce}
|
|
46
|
+
|
|
47
|
+
`,w)}else Ae?.success&&ae.worktreeBranch&&r.updateWorktreeBranch(w,ae.worktreeBranch);return r.saveConversation(w,!1),Ae}).catch(Ae=>{console.warn("[useChatStream] Auto-commit/preview-sync failed:",Ae)}):Promise.resolve(),De=Qn.get(w);if(De&&De.queue.length>0){const Ae=De.queue.shift(),Ue=De.featureId;xe.then(()=>{setTimeout(()=>{z(w,Ue,Ae)},1500)}),De.queue.length===0&&Qn.delete(w)}r.clearPendingPermission(w),r.saveConversation(w,!0),M.activeTools.clear();return}if(R.type==="pong")return;if(R.type==="session_reset"){console.warn(`[useChatStream] Session reset for ${w}:`,R.reason),r.setProviderSessionId("",w),ie(M.currentMessageId,`
|
|
48
|
+
|
|
49
|
+
> **Session Reset**: Previous session could not be resumed. Retrying with a fresh session...
|
|
50
|
+
|
|
51
|
+
`,w);return}if(R.type==="worktree_recovered"){console.log(`[useChatStream] Worktree recovered for ${w}`),ie(M.currentMessageId,`
|
|
52
|
+
|
|
53
|
+
> **Worktree recovered**: The work directory was restored after a system restart.
|
|
54
|
+
|
|
55
|
+
`,w);return}if(R.type==="context_reset"){console.log(`[useChatStream] Context reset confirmed for ${w}`);return}if(R.type==="aborted"){console.log(`[useChatStream] Abort confirmed for ${w}`);return}if(R.type==="subscribed"){console.log(`[useChatStream] Subscribed to ${w}`,R.jobId?`(job: ${R.jobId}, status: ${R.jobStatus})`:"(no active job)"),R.jobId||(r.endSession(w),r.endConversationStreaming(w));return}if(R.type==="replay_start"){console.log(`[useChatStream] Replay start for ${w}: ${R.eventCount} events from job ${R.jobId}`),M.isReplaying=!0,M.replayBuffer=[];return}if(R.type==="replay_end"){console.log(`[useChatStream] Replay end for ${w}: nextCursor=${R.nextCursor}`),F(M,w),M.isReplaying=!1,M.replayBuffer=[];return}if(R.type==="notification"){A(R);return}if(R.type==="permission_request"){o(M),r.endConversationStreaming(w);const G=Mp(R.description||"",R.tool||"Permission");r.setPendingPermission(G,w);let ae=`
|
|
56
|
+
|
|
57
|
+
**Permission Required**: ${G.tool}`;G.filePath&&(ae+=` - ${G.filePath}`),ie(M.currentMessageId,ae+`
|
|
58
|
+
`,w);return}if(R.type==="permission_prompt"&&R.text){o(M),r.endConversationStreaming(w);const G=Mp(R.text,"Permission");r.setPendingPermission(G,w);const ae=`
|
|
59
|
+
|
|
60
|
+
**${G.tool}**: ${G.filePath||G.command||G.description}
|
|
61
|
+
`;ie(M.currentMessageId,ae,w);return}R.type==="ui_event"&&R.event?E(R.event,w):R.type==="provider_json"&&R.data}catch(R){console.error(`[useChatStream] Failed to parse WebSocket message for ${w}:`,R,"Raw data:",$?.slice(0,200)),h(M.currentMessageId,w,"error"),r.updateMessage(M.currentMessageId,{status:"error"},w),r.setSessionError(`Failed to parse server response: ${R instanceof Error?R.message:"Invalid JSON"}`,w),r.endSession(w),r.endConversationStreaming(w),Z(w),r.saveConversation(w,!0),c(w)}}}let C=null;const P=500;function A($){const w=$.notificationEvent,M=$.source;console.log(`[useChatStream] Global notification: ${w}`,{jobId:$.jobId,conversationId:$.conversationId,source:M,status:$.status}),(w==="job_created"&&M!=="user"||w==="job_completed"||w==="job_persisted")&&(C&&clearTimeout(C),C=setTimeout(()=>{C=null,r.refreshServerConversations()},P))}function E($,w){const M=pt.get(w);if(M)switch(r.pushDebugEvent({direction:"in",channel:"ui",eventType:$.type,payload:$},w),$.sessionId&&r.setProviderSessionId($.sessionId,w),$.type){case"session_init":{oe(M.currentMessageId,w);const R={id:Tr(),type:"session_init",model:$.model,tools:$.tools,permissionMode:$.permissionMode,cwd:$.cwd};r.appendContentBlockWithSave(M.currentMessageId,R,w);break}case"block_start":{oe(M.currentMessageId,w);const R=$.blockId||Tr();if($.blockType==="text"){const G={id:R,type:"text",text:$.text||""};r.appendContentBlockWithSave(M.currentMessageId,G,w),M.currentTextBlockId=R}else if($.blockType==="thinking"){const G={id:R,type:"thinking",thinking:$.thinking||""};r.appendContentBlockWithSave(M.currentMessageId,G,w),M.currentThinkingBlockId=R}else if($.blockType==="tool_use"&&$.toolUseId&&$.name){const G={id:R,type:"tool_use",toolUseId:$.toolUseId,name:$.name,input:{},inputSummary:"",status:"running"};r.appendContentBlockWithSave(M.currentMessageId,G,w),M.activeTools.set($.index??0,{blockId:R,toolUseId:$.toolUseId,name:$.name,inputJson:""})}break}case"block_delta":{if($.text&&M.currentTextBlockId&&u(M,w,$.text),$.thinking&&M.currentThinkingBlockId&&r.updateBlockWithSave(M.currentMessageId,M.currentThinkingBlockId,R=>{R.type==="thinking"&&(R.thinking+=$.thinking)},w,{syncContent:!1}),$.partialJson){let R;if($.index!==void 0&&(R=M.activeTools.get($.index)),!R&&$.blockId){for(const[,G]of M.activeTools)if(G.blockId===$.blockId){R=G;break}}R&&(R.inputJson+=$.partialJson)}break}case"block_end":{let R;if($.index!==void 0&&(R=M.activeTools.get($.index)),!R&&$.blockId){for(const[,G]of M.activeTools)if(G.blockId===$.blockId){R=G;break}}if(R||(M.currentTextBlockId&&(M.currentTextBlockId=null),M.currentThinkingBlockId&&(M.currentThinkingBlockId=null)),R){let G={};try{G=JSON.parse(R.inputJson)}catch{}if(R.name==="ExitPlanMode"){const ae={allowedPrompts:G.allowedPrompts};r.setPendingPlanApproval(ae,w)}r.updateBlockWithSave(M.currentMessageId,R.blockId,ae=>{if(ae.type==="tool_use"){const xe=ae;xe.input=G,xe.inputSummary=Tp(G),xe.status="pending"}},w)}break}case"tool_result":{oe(M.currentMessageId,w);const R=r.findToolUseBlock(M.currentMessageId,$.toolUseId,w);R&&R.type==="tool_use"&&r.updateBlockById(M.currentMessageId,R.id,ae=>{ae.type==="tool_use"&&(ae.status=$.isError?"error":"complete")},w);const G={id:Tr(),type:"tool_result",toolUseId:$.toolUseId,content:$.content||"",isError:!!$.isError};r.appendContentBlockWithSave(M.currentMessageId,G,w);break}case"permission_request":{o(M),r.endConversationStreaming(w);const R={tool:$.tool,description:$.description,input:$.input,tools:$.tools};r.setPendingPermission(R,w);let G=`
|
|
62
|
+
|
|
63
|
+
**Permission Required**: ${R.tool}`;ie(M.currentMessageId,G+`
|
|
64
|
+
`,w);break}case"turn_result":{if($.subtype!=="success"&&(r.updateMessage(M.currentMessageId,{status:"error"},w),Z(w),$.subtype==="max_turns"?r.setSessionError("Maximum conversation turns reached. Please start a new conversation.",w):r.setSessionError("Provider reported an execution error.",w)),$.subtype==="success"&&$.usage){oe(M.currentMessageId,w);const R={id:Tr(),type:"result_summary",totalCostUsd:$.totalCostUsd??0,durationMs:$.durationMs??0,numTurns:$.numTurns??0,usage:$.usage};r.appendContentBlockWithSave(M.currentMessageId,R,w)}break}case"error":{r.updateMessage(M.currentMessageId,{status:"error"},w),r.setSessionError($.error,w);break}}}function F($,w){const M=$.replayBuffer;if(M.length===0)return;const R=[];let G="",ae=null,xe=null;const De=new Map;let Ae="streaming",Ue=!1;for(const Ye of M){if(Ye.type==="done"){Ye.denied?(I(R,"error"),Ae="stopped"):Ae==="error"||Ae==="stopped"?I(R,"error"):(I(R,"complete"),Ae="complete"),Ue=!0;continue}if(Ye.type==="error"){I(R,"error"),Ae="error";continue}if(Ye.type!=="ui_event"||!Ye.event)continue;const pe=Ye.event;switch(pe.sessionId&&r.setProviderSessionId(pe.sessionId,w),pe.type){case"session_init":{const Ce={id:Tr(),type:"session_init",model:pe.model,tools:pe.tools,permissionMode:pe.permissionMode,cwd:pe.cwd};R.push(Ce);break}case"block_start":{const Ce=pe.blockId||Tr();if(pe.blockType==="text"){const ce={id:Ce,type:"text",text:pe.text||""};R.push(ce),ae=Ce,pe.text&&(G+=pe.text)}else if(pe.blockType==="thinking"){const ce={id:Ce,type:"thinking",thinking:pe.thinking||""};R.push(ce),xe=Ce}else if(pe.blockType==="tool_use"&&pe.toolUseId&&pe.name){const ce={id:Ce,type:"tool_use",toolUseId:pe.toolUseId,name:pe.name,input:{},inputSummary:"",status:"running"};R.push(ce),De.set(pe.index??0,{blockId:Ce,toolUseId:pe.toolUseId,name:pe.name,inputJson:""})}break}case"block_delta":{if(pe.text&&ae){const Ce=R.find(ce=>ce.id===ae);Ce&&Ce.type==="text"&&(Ce.text+=pe.text,G+=pe.text)}if(pe.thinking&&xe){const Ce=R.find(ce=>ce.id===xe);Ce&&Ce.type==="thinking"&&(Ce.thinking+=pe.thinking)}if(pe.partialJson){let Ce;if(pe.index!==void 0&&(Ce=De.get(pe.index)),!Ce&&pe.blockId){for(const[,ce]of De)if(ce.blockId===pe.blockId){Ce=ce;break}}Ce&&(Ce.inputJson+=pe.partialJson)}break}case"block_end":{let Ce;if(pe.index!==void 0&&(Ce=De.get(pe.index)),!Ce&&pe.blockId){for(const[,ce]of De)if(ce.blockId===pe.blockId){Ce=ce;break}}if(Ce||(ae&&(ae=null),xe&&(xe=null)),Ce){let ce={};try{ce=JSON.parse(Ce.inputJson)}catch{}const ue=R.find(Y=>Y.id===Ce.blockId);if(ue&&ue.type==="tool_use"){const Y=ue;Y.input=ce,Y.inputSummary=Tp(ce),Y.status="pending"}}break}case"tool_result":{const Ce=R.find(ue=>ue.type==="tool_use"&&ue.toolUseId===pe.toolUseId);Ce&&Ce.type==="tool_use"&&(Ce.status=pe.isError?"error":"complete");const ce={id:Tr(),type:"tool_result",toolUseId:pe.toolUseId,content:pe.content||"",isError:!!pe.isError};R.push(ce);break}case"turn_result":{if(pe.subtype!=="success"&&(Ae="error"),pe.subtype==="success"&&pe.usage){const Ce={id:Tr(),type:"result_summary",totalCostUsd:pe.totalCostUsd??0,durationMs:pe.durationMs??0,numTurns:pe.numTurns??0,usage:pe.usage};R.push(Ce)}break}case"error":{Ae="error";break}}}r.batchSetMessageBlocks($.currentMessageId,R,G,Ae,w),$.currentTextBlockId=ae,$.currentThinkingBlockId=xe,$.activeTools=De,Ue&&(o($),r.endSession(w),r.endConversationStreaming(w),s(w)),console.log(`[useChatStream] Replay batch processed: ${M.length} events → ${R.length} blocks, status=${Ae}`)}function I($,w){for(const M of $)if(M.type==="tool_use"){const R=M;(R.status==="running"||R.status==="pending")&&(R.status=w)}}function oe($,w){r.initContentBlocks($,w)}function ie($,w,M){oe($,M);const R={id:Tr(),type:"text",text:w};r.appendContentBlockWithSave($,R,M)}async function ne($,w,M,R){if(typeof window>"u")return;const G=j_();try{const ae=await f(M),xe=pt.get(M);xe&&(xe.currentMessageId=w,xe.activeTools.clear(),xe.currentTextBlockId=null,xe.currentThinkingBlockId=null,a(xe)),W_($)&&r.setProviderSessionId("",M);const Ae=r.getProviderSessionId(M),Ue=r.conversations.find(ce=>ce.id===M),Ye=Ue?.providerId||e.providerSelection.providerId||Lp,pe=Ue?.providerModelKey||e.providerSelection.modelKey||Dp;Ue&&(!Ue.providerId||!Ue.providerModelKey)&&(r.setConversationProviderSelection(M,Ye,pe),r.saveConversation(M,!0));const Ce={type:"chat",message:$,attachments:R?.attachments,requestId:G,sessionId:Ae||void 0,permissionMode:r.permissionMode,conversationId:M,cwd:R?.cwd,worktreeBranch:R?.worktreeBranch,featureId:R?.featureId,providerId:Ye,providerModelKey:pe};r.pushDebugEvent({direction:"out",channel:"ws",eventType:"chat",payload:Ce},M),ae.send(JSON.stringify(Ce))}catch(ae){r.updateMessage(w,{status:"error"},M),r.setSessionError(ae.message||"Connection failed",M),r.endSession(M),r.endConversationStreaming(M),r.saveConversation(M,!0),c(M)}}function L($,w){const M=w??r.activeConversationId;if(!M)return;const R=pt.get(M);if(!R||R.ws.readyState!==WebSocket.OPEN)return;const G={type:"permission_response",allow:$};r.pushDebugEvent({direction:"out",channel:"ws",eventType:"permission_response",payload:G},M),R.ws.send(JSON.stringify(G)),$&&(r.startConversationStreaming(M),a(R));const ae=$?"Allowed":"Denied";ie(R.currentMessageId,`${ae}
|
|
65
|
+
`,M),r.clearPendingPermission(M)}function D($,w,M){Qn.set(w,{featureId:$,queue:[...M]})}function Z($){$?Qn.delete($):Qn.clear()}async function z($,w,M){r.activeConversationId!==$&&r.selectConversation($);const R=r.conversations.find(De=>De.id===$);let G;if(M.startsWith("skill:")){const De=M.replace("skill:","");try{G=(await $fetch(`/api/skills/${De}/prompt`,{method:"POST",body:{featureId:w,cwd:R?.worktreePath}})).prompt}catch(Ae){console.error(`[useChatStream] Failed to render skill prompt for ${De}:`,Ae);return}}else G=`/speckit.${M} ${w}`;r.addUserMessage(G,$),r.saveConversation($,!0);const ae=r.addAssistantMessage($);r.startSession(Pp(),$),r.startConversationStreaming($);const xe=ka(R);await ne(G,ae.id,$,xe)}async function q($,w,M=0){if(!(typeof window>"u"))try{const R=await f($),G=pt.get($);G&&(G.currentMessageId=w,G.activeTools.clear(),G.currentTextBlockId=null,G.currentThinkingBlockId=null,a(G)),r.startConversationStreaming($);const ae={type:"subscribe",conversationId:$,cursor:M};r.pushDebugEvent({direction:"out",channel:"ws",eventType:"subscribe",payload:ae},$),R.send(JSON.stringify(ae))}catch(R){console.error(`[useChatStream] Failed to subscribe to ${$}:`,R),r.setSessionError(R.message||"Subscribe failed",$)}}function V($){const w=$??r.activeConversationId;if(!w)return;const M=pt.get(w);if(M){if(M.ws.readyState===WebSocket.OPEN){const R={type:"abort"};r.pushDebugEvent({direction:"out",channel:"ws",eventType:"abort",payload:R},w),M.ws.send(JSON.stringify(R)),M.ws.close()}M.currentMessageId&&(h(M.currentMessageId,w,"error"),r.updateMessage(M.currentMessageId,{status:"stopped"},w),r.endSession(w),r.saveConversation(w,!0)),pt.delete(w)}r.endConversationStreaming(w),r.clearPendingPermission(w),Z(w)}function X($){const w=pt.get($);w&&(o(w),w.ws.close(),pt.delete($)),Qn.delete($)}function N(){for(const[$,w]of pt)o(w),w.ws.close(),pt.delete($);Qn.clear()}async function me($){const w=$??r.activeConversationId;if(!w)return;r.clearPendingPlanApproval(w),r.setPermissionMode("auto");const M="Approved. Proceed with the implementation.";r.addUserMessage(M,w),r.saveConversation(w,!0);const R=r.addAssistantMessage(w);r.startSession(Pp(),w),r.startConversationStreaming(w);const G=r.conversations.find(xe=>xe.id===w),ae=ka(G,!0);await ne(M,R.id,w,ae)}function K($){const w=$??r.activeConversationId;w&&r.clearPendingPlanApproval(w)}async function he($){if(typeof window>"u")return!1;try{const w=await $fetch("/api/jobs",{params:{conversationId:$}}),R=w.find(xe=>xe.status==="running"||xe.status==="waiting_permission"||xe.status==="queued")||[...w].sort((xe,De)=>De.eventCount-xe.eventCount).find(xe=>xe.eventCount>0),G=r.conversations.find(xe=>xe.id===$);if(!G)return!1;const ae=[...G.messages].reverse().find(xe=>xe.role==="assistant");return R?!ae||ae.status!=="streaming"?!1:(console.log("[useChatStream] Resuming streaming for",$,"job:",R.id,"status:",R.status,"events:",R.eventCount),r.resetMessageForReplay(ae.id,$),r.startSession(`resume-${Date.now()}`,$),await q($,ae.id,0),!0):(ae&&ae.status==="streaming"&&(r.updateMessage(ae.id,{status:"error"},$),r.setSessionError("Streaming was interrupted (server job no longer active)",$)),!1)}catch(w){return console.error("[useChatStream] Failed to resume streaming:",w),!1}}return St(()=>{oa--,oa<=0&&(oa=0,N())}),{sendMessage:ne,sendPermissionResponse:L,subscribe:q,tryResumeStreaming:he,approvePlan:me,rejectPlan:K,abort:V,disconnect:N,disconnectConversation:X,enableCascade:D,disableCascade:Z,resetContext:p}}const G_={class:"w-full max-w-md mx-4 bg-retro-dark border border-retro-border rounded-lg shadow-xl"},H_={class:"px-4 py-3 border-b border-retro-border flex items-center justify-between"},K_=["disabled"],J_={class:"px-4 py-4 space-y-3"},eR={class:"relative"},tR=["disabled"],rR={key:0,value:""},nR=["value"],sR={key:0,class:"text-xs font-mono text-retro-red"},iR={key:1,class:"text-xs font-mono text-retro-muted"},oR={class:"px-4 py-3 border-t border-retro-border flex items-center gap-2 justify-end"},aR=["disabled"],lR=["disabled"],bu=Ie({__name:"NewConversationModal",props:{show:{type:Boolean},creating:{type:Boolean}},emits:["close","create"],setup(r,{emit:e}){const t=yu(),n=r,s=e,i=_([]),o=_(""),a=_(!1),l=_(""),c=J(()=>!a.value&&!n.creating&&o.value.length>0&&i.value.length>0);async function u(){a.value=!0,l.value="";try{await t.initialize();const p=await $fetch("/api/git/branches",{query:{excludeSc:!0,workingDirectory:t.workingDirectory}}),f=p.branches.filter(O=>!O.isRemote).map(O=>O.name);if(i.value=f,!f.length){o.value="",l.value="No local branches available for chat creation.";return}const g=(p.current&&f.includes(p.current)?p.current:"")||(f.includes("main")?"main":"")||(f.includes("master")?"master":"")||f[0];o.value=g}catch(p){i.value=[],o.value="",l.value=p instanceof Error?p.message:"Failed to load branches"}finally{a.value=!1}}ze(()=>n.show,p=>{p&&u()});function h(){c.value&&s("create",o.value)}return(p,f)=>(v(),Oe(xr,{to:"body"},[ee(dn,{"enter-active-class":"transition-opacity duration-200","enter-from-class":"opacity-0","enter-to-class":"opacity-100","leave-active-class":"transition-opacity duration-200","leave-from-class":"opacity-100","leave-to-class":"opacity-0"},{default:ct(()=>[r.show?(v(),x("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/60",onClick:f[3]||(f[3]=fr(g=>s("close"),["self"]))},[d("div",G_,[d("div",H_,[f[4]||(f[4]=d("h3",{class:"text-sm font-mono text-retro-text font-semibold"},"New Conversation",-1)),d("button",{type:"button",class:"p-1 text-retro-muted hover:text-retro-text transition-colors",disabled:r.creating,onClick:f[0]||(f[0]=g=>s("close"))},[ee(m(Pt),{class:"w-4 h-4"})],8,K_)]),d("div",J_,[f[5]||(f[5]=d("label",{class:"block text-xs font-mono text-retro-muted"},"Base Branch",-1)),d("div",eR,[He(d("select",{"onUpdate:modelValue":f[1]||(f[1]=g=>o.value=g),disabled:a.value||r.creating||i.value.length===0,class:"w-full appearance-none bg-retro-black border border-retro-border rounded px-2 py-1.5 pr-7 text-xs font-mono text-retro-cyan focus:outline-none focus:border-retro-cyan disabled:opacity-40"},[a.value?(v(),x("option",rR,"Loading branches...")):U("",!0),(v(!0),x(we,null,Fe(i.value,g=>(v(),x("option",{key:g,value:g},B(g),9,nR))),128))],8,tR),[[ms,o.value]]),ee(m(Su),{class:"absolute right-2 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-retro-muted pointer-events-none"})]),l.value?(v(),x("p",sR,B(l.value),1)):(v(),x("p",iR," The conversation worktree will be created from the selected branch. "))]),d("div",oR,[d("button",{type:"button",class:"px-3 py-1.5 text-xs font-mono rounded border border-retro-border text-retro-muted hover:text-retro-text hover:border-retro-text/30 transition-colors disabled:opacity-40",disabled:r.creating,onClick:f[2]||(f[2]=g=>s("close"))}," Cancel ",8,aR),d("button",{type:"button",disabled:!c.value,class:"px-3 py-1.5 text-xs font-mono rounded border bg-retro-cyan/10 border-retro-cyan/50 text-retro-cyan hover:bg-retro-cyan/20 transition-colors disabled:opacity-40 disabled:cursor-not-allowed",onClick:h},B(r.creating?"Creating...":"Create"),9,lR)])])])):U("",!0)]),_:1})]))}}),cR={class:"h-full flex flex-col bg-retro-black"},uR={class:"flex-shrink-0 flex items-center justify-between px-4 py-2 border-b border-retro-border"},hR={class:"flex items-center gap-1"},dR={class:"flex-shrink-0 px-3 pt-3"},fR={class:"relative"},pR={class:"flex-1 overflow-y-auto p-3"},mR={class:"space-y-2"},gR={key:0,class:"flex items-center justify-center py-12"},OR={key:1,class:"flex flex-col items-center justify-center py-12 text-center"},vR={key:2,class:"flex flex-col items-center justify-center py-12 text-center"},bR=Ie({__name:"FeaturesPanel",setup(r){const e=kr(),t=ll(),{sendMessage:n,enableCascade:s}=Sl(),i=mo(),o=_("features"),a=_(null),l=_(null),c=_([]),u=_([]),h=_(!1),p=_({}),f=_(!1),g=_(null),O=_(!1),y=_(!1),b=_(!1),C=_(null),P=_(""),A=_("");let E=null;ze(P,ce=>{E&&clearTimeout(E),E=setTimeout(()=>{A.value=ce},300)});const F=J(()=>{const ce=A.value.trim().toLowerCase();return ce?c.value.filter(ue=>ue.name.toLowerCase().includes(ce)||ue.id.toLowerCase().includes(ce)):c.value}),I=_({}),oe=J(()=>{const ce=e.activeConversation;if(!ce)return null;if(ce.featureId)return ce.featureId;const ue=ce.worktreeBranch?.trim();return ue&&c.value.some(Y=>Y.id===ue)?ue:null}),ie=J(()=>oe.value||a.value);ze(()=>e.activeConversationId,()=>{a.value=null;const ce=oe.value;t.setSelectedFeatureId(ce),ce&&br(()=>{const ue=I.value[ce];ue&&ue.scrollIntoView({behavior:"auto",block:"nearest"})})}),ze(a,ce=>{ce&&br(()=>{const ue=I.value[ce];ue&&ue.scrollIntoView({behavior:"auto",block:"nearest"})})});async function ne(){h.value=!0;try{const ce=await $fetch("/api/specs/features");c.value=ce.features,L(ce.features)}catch{i.error("Failed to load features"),c.value=[],p.value={}}finally{h.value=!1}}async function L(ce){if(ce.length===0){p.value={};return}const ue=await Promise.allSettled(ce.map(async Me=>{const Le=await $fetch(`/api/specs/traceability/${Me.id}`),Ve=Le.alerts.filter(Zt=>Zt.severity==="critical").length,Mt=Le.alerts.filter(Zt=>Zt.severity==="major").length;return{featureId:Me.id,critical:Ve,major:Mt}})),Y={};for(const Me of ue)Me.status==="fulfilled"&&(Y[Me.value.featureId]={critical:Me.value.critical,major:Me.value.major});p.value=Y}async function D(){try{const ce=await $fetch("/api/skills");u.value=ce.skills}catch{u.value=[]}}mt(()=>{ne(),D(),window.addEventListener("keydown",q)}),St(()=>{window.removeEventListener("keydown",q)});function Z(ce,ue={}){if(a.value=ce,l.value=null,o.value="files",t.setSelectedFeatureId(ce),ue.openViewer!==!1){const Y=c.value.find(Me=>Me.id===ce);Y&&(g.value=Y,f.value=!0)}}function z(){f.value=!1,g.value=null}function q(ce){(ce.ctrlKey||ce.metaKey)&&ce.key.toLowerCase()==="k"&&(ce.preventDefault(),O.value||(O.value=!0))}function V(){O.value=!1}function X(ce){Z(ce,{openViewer:!1}),O.value=!1}function N(){O.value=!0}const me=J(()=>c.value.map(ce=>ce.id));function K(ce){return p.value[ce]??{critical:0,major:0}}const he={plan:["tasks","implement"],tasks:["implement"],implement:[],clarify:[],analyze:[]},$={analyze:["skill:better-spec"]};async function w(ce,ue,Y){if(ce.startsWith("skill:")){const Me=ce.replace("skill:",""),Le=Y?e.conversations.find(Mt=>Mt.id===Y):null;return(await $fetch(`/api/skills/${Me}/prompt`,{method:"POST",body:{featureId:ue,cwd:Le?.worktreePath}})).prompt}return`/speckit.${ce} ${ue}`}function M(ce,ue){if(ue)return null;const Y=e.findConversationByFeature(ce);return Y&&!e.isConversationStreaming(Y.id)&&!Y.finalized?(e.selectConversation(Y.id),Y.id):null}function R(ce){const ue=e.findConversationByFeature(ce);return ue&&ue.finalized?(i.error(`This feature has a finalized conversation "${ue.title}". Please archive it first to start a new conversation.`),e.selectConversation(ue.id),!0):!1}async function G(ce,ue,Y){const Me=await e.createConversation({featureId:ce,baseBranch:Y});if(!Me)throw new Error("Failed to create conversation");return e.renameConversation(Me,ue),e.selectConversation(Me),Me}async function ae(ce,ue){e.addUserMessage(ue,ce),e.saveConversation(ce,!0);const Y=e.conversations.find(Ve=>Ve.id===ce),Me=e.addAssistantMessage(ce);e.startSession(`session-${Date.now()}`,ce),e.startConversationStreaming(ce);const Le={};Y?.worktreePath&&(Le.cwd=Y.worktreePath,Le.worktreeBranch=Y.worktreeBranch),Y?.featureId&&(Le.featureId=Y.featureId),await n(ue,Me.id,ce,Object.keys(Le).length>0?Le:void 0)}async function xe(ce,ue,Y){const Me=$[ue];let Le;if(Me&&Me.length>0){const Ve=[...Me.slice(1),ue,...he[ue]||[]];s(ce,Y,Ve);const Mt=Me[0];try{Le=await w(Mt,ce,Y)}catch(Zt){i.error(Zt instanceof Error?Zt.message:"Failed to resolve prerequisite step");return}}else{const Ve=he[ue]||[];Ve.length>0&&s(ce,Y,Ve),Le=`/speckit.${ue} ${ce}`}await ae(Y,Le)}async function De(ce,ue,Y){const Me=ce.shiftKey;if(!Me&&R(ue))return;const Le=M(ue,Me);if(Le){try{await xe(ue,Y,Le)}catch(Ve){i.error(Ve instanceof Error?Ve.message:"Failed to run cascade action")}return}C.value={type:"cascade",featureId:ue,command:Y,title:`${Y}: ${ue}`},y.value=!0}async function Ae(ce,ue){R(ue)||(C.value={type:"open-chat",featureId:ue,title:`spec: ${ue}`},y.value=!0)}async function Ue(ce,ue,Y){let Me;try{const Le=e.conversations.find(Ve=>Ve.id===Y);Me=await $fetch(`/api/skills/${ue}/prompt`,{method:"POST",body:{featureId:ce,cwd:Le?.worktreePath}})}catch(Le){throw new Error(Le instanceof Error?Le.message:"Failed to render skill prompt")}await ae(Y,Me.prompt)}async function Ye(ce,ue,Y){const Me=ce.shiftKey;if(!Me&&R(ue))return;const Le=M(ue,Me);if(Le){try{await Ue(ue,Y,Le)}catch(Ve){i.error(Ve instanceof Error?Ve.message:"Failed to run skill")}return}C.value={type:"skill",featureId:ue,skillId:Y,title:`skill: ${Y} — ${ue}`},y.value=!0}function pe(){y.value=!1,C.value=null}async function Ce(ce){if(C.value){b.value=!0;try{const ue=C.value,Y=await G(ue.featureId,ue.title,ce);ue.type==="cascade"?await xe(ue.featureId,ue.command,Y):ue.type==="skill"&&await Ue(ue.featureId,ue.skillId,Y),y.value=!1,C.value=null}catch(ue){i.error(ue instanceof Error?ue.message:"Failed to create conversation")}finally{b.value=!1}}}return(ce,ue)=>{const Y=BS,Me=O_,Le=N_;return v(),x("div",cR,[d("div",uR,[ue[2]||(ue[2]=d("div",{class:"flex items-center gap-2 min-w-0"},null,-1)),d("div",hR,[d("button",{type:"button",class:"p-1.5 rounded text-retro-muted hover:text-retro-cyan hover:bg-retro-panel transition-colors",title:"Search (Ctrl/Cmd+K)",onClick:N},[ee(m(ls),{class:"h-4 w-4"})]),d("button",{type:"button",class:"p-1.5 rounded text-retro-muted hover:text-retro-cyan hover:bg-retro-panel transition-colors",title:"Refresh",onClick:ne},[ee(m(us),{class:Re(["h-4 w-4",{"animate-spin":m(h)}])},null,8,["class"])])])]),d("div",dR,[d("div",fR,[ee(m(ls),{class:"absolute left-2.5 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-retro-subtle"}),He(d("input",{"onUpdate:modelValue":ue[0]||(ue[0]=Ve=>tt(P)?P.value=Ve:null),type:"text",placeholder:"Search features...",class:"w-full pl-8 pr-3 py-1.5 text-xs font-mono rounded border border-retro-border bg-retro-panel text-retro-text placeholder:text-retro-subtle focus:outline-none focus:border-retro-cyan transition-colors"},null,512),[[Xt,m(P)]])])]),d("div",pR,[d("div",mR,[(v(!0),x(we,null,Fe(m(F),Ve=>(v(),x("div",{key:Ve.id,ref_for:!0,ref:Mt=>{m(I)[Ve.id]=Mt}},[ee(Y,{feature:Ve,skills:m(u),"is-active":m(ie)===Ve.id,"critical-alerts":K(Ve.id).critical,"major-alerts":K(Ve.id).major,onSelect:ue[1]||(ue[1]=Mt=>Z(Mt,{openViewer:!0})),onCascade:De,onOpenChat:Ae,onSkill:Ye},null,8,["feature","skills","is-active","critical-alerts","major-alerts"])]))),128))]),m(h)&&m(c).length===0?(v(),x("div",gR,[...ue[3]||(ue[3]=[d("span",{class:"text-sm font-mono text-retro-muted animate-pulse"},"Loading features...",-1)])])):U("",!0),!m(h)&&m(c).length>0&&m(F).length===0?(v(),x("div",OR,[ee(m(ls),{class:"h-10 w-10 text-retro-subtle mb-3"}),ue[4]||(ue[4]=d("p",{class:"text-sm font-mono text-retro-muted"},"No matching features",-1)),ue[5]||(ue[5]=d("p",{class:"mt-1 text-xs font-mono text-retro-subtle"}," Try a different search term ",-1))])):U("",!0),!m(h)&&m(c).length===0?(v(),x("div",vR,[ee(m(ev),{class:"h-10 w-10 text-retro-subtle mb-3"}),ue[6]||(ue[6]=d("p",{class:"text-sm font-mono text-retro-muted"},"No features found",-1)),ue[7]||(ue[7]=d("p",{class:"mt-1 text-xs font-mono text-retro-subtle"}," Create a feature in specs/ to get started ",-1))])):U("",!0)]),m(f)&&m(g)?(v(),Oe(Me,{key:0,feature:m(g),onClose:z},null,8,["feature"])):U("",!0),m(O)?(v(),Oe(Le,{key:1,"available-feature-ids":m(me),onClose:V,onSelect:X},null,8,["available-feature-ids"])):U("",!0),ee(bu,{show:m(y),creating:m(b),onClose:pe,onCreate:Ce},null,8,["show","creating"])])}}}),xR={class:"h-full flex flex-col bg-retro-black"},yR={class:"flex-shrink-0 px-3 py-2 border-b border-retro-border space-y-2"},kR={class:"flex items-center justify-between gap-2"},wR={class:"flex items-center gap-1"},SR={class:"relative"},$R=["placeholder"],CR={key:0,class:"flex-shrink-0 flex items-center gap-2 px-3 py-2 bg-retro-yellow/10 border-b border-retro-yellow/30 text-xs"},QR={class:"text-retro-yellow font-mono"},PR={class:"flex-1 overflow-y-auto p-2"},TR={key:0,class:"space-y-1"},MR={key:1,class:"text-center py-6 text-retro-muted"},AR={class:"font-mono text-xs"},_R={key:1,class:"text-center py-8 text-retro-muted"},RR={key:0,class:"space-y-2"},BR={class:"flex items-start justify-between gap-2"},ZR={class:"min-w-0"},ER={class:"text-sm font-mono text-retro-text truncate"},DR={class:"text-xs text-retro-muted mt-1 truncate"},LR={class:"text-xs text-retro-muted/70 mt-1"},XR={class:"text-xs text-retro-muted/70"},IR={class:"flex items-center gap-1 flex-shrink-0"},VR=["onClick"],zR=["onClick"],NR={key:1,class:"text-center py-6 text-retro-muted"},WR={class:"font-mono text-xs"},jR={key:1,class:"text-center py-8 text-retro-muted"},qR=Ie({__name:"ConversationsPanel",setup(r){const e=kr(),t=mo(),n=_(""),s=_(""),i=_(!1),o=_(!1),a=_(!1),l=_(!1),c=_(null);let u=null;ze(n,V=>{u&&clearTimeout(u),u=setTimeout(()=>{s.value=V},180)},{immediate:!0}),St(()=>{u&&(clearTimeout(u),u=null)});const h=new Map,p=new Map;ze(()=>e.sortedConversations.map(V=>V.id),V=>{const X=new Set(V);for(const N of h.keys())X.has(N)||h.delete(N)},{immediate:!0}),ze(()=>e.sortedArchivedConversations.map(V=>V.id),V=>{const X=new Set(V);for(const N of p.keys())X.has(N)||p.delete(N)},{immediate:!0});function f(V){const X=V.messages[V.messages.length-1];return[V.updatedAt,V.title,V.messages.length,X?.id||"",X?.content?.length||0].join("|")}function g(V){const X=V.messages[V.messages.length-1];return[V.updatedAt,V.archivedAt,V.title,V.messages.length,X?.id||"",X?.content?.length||0].join("|")}function O(V){const X=f(V),N=h.get(V.id);if(N&&N.signature===X)return N.text;const me=[V.title,...V.messages.map(K=>K.content||"")].join(`
|
|
66
|
+
`).toLowerCase();return h.set(V.id,{signature:X,text:me}),me}function y(V){const X=g(V),N=p.get(V.id);if(N&&N.signature===X)return N.text;const me=[V.title,...V.messages.map(K=>K.content||"")].join(`
|
|
67
|
+
`).toLowerCase();return p.set(V.id,{signature:X,text:me}),me}const b=J(()=>e.conversationViewMode==="archive"),C=J(()=>{const V=e.sortedConversations;if(!s.value.trim())return V;const X=s.value.toLowerCase().trim();return V.filter(N=>O(N).includes(X))}),P=J(()=>{const V=e.sortedArchivedConversations;if(!s.value.trim())return V;const X=s.value.toLowerCase().trim();return V.filter(N=>y(N).includes(X))}),A=J(()=>e.previewingConversationId);async function E(){if(e.checkStorageLimits().atLimit){t.error("Delete or archive a conversation first (limit: 100).");return}i.value=!0}async function F(V){o.value=!0;try{if(!await e.createConversation({baseBranch:V})){t.error("Failed to create conversation");return}i.value=!1}catch(X){t.error(X instanceof Error?X.message:"Failed to create conversation")}finally{o.value=!1}}function I(V){e.selectConversation(V),e.setConversationViewMode("active")}async function oe(V){const X=await e.archiveConversation(V);if(!X.success){t.error(X.error||"Failed to archive conversation");return}t.success("Conversation archived")}async function ie(V){c.value=V,a.value=!0}function ne(){a.value=!1,c.value=null}async function L(V){if(c.value){l.value=!0;try{const X=await e.restoreArchivedConversation(c.value,V);if(!X.success){t.error(X.error||"Failed to restore archived conversation");return}t.success("Archived conversation restored"),a.value=!1,c.value=null}finally{l.value=!1}}}async function D(V){const X=await e.deleteArchivedConversation(V);if(!X.success){t.error(X.error||"Failed to delete archived conversation");return}t.success("Archived conversation deleted")}function Z(V,X){e.renameConversation(V,X)}function z(V){return new Date(V).toLocaleString()}function q(V){if(!V.length)return"No messages";const N=(V[V.length-1].content||"").trim();return N?N.length>80?`${N.slice(0,80)}...`:N:"No messages"}return(V,X)=>(v(),x("div",xR,[d("div",yR,[d("div",kR,[d("button",{onClick:E,class:"p-1.5 rounded text-retro-muted hover:text-retro-cyan hover:bg-retro-panel transition-colors",title:"New conversation","aria-label":"New conversation"},[ee(m(sl),{class:"w-4 h-4"})]),d("div",wR,[d("button",{onClick:X[0]||(X[0]=N=>m(e).setConversationViewMode("active")),class:Re(["p-1.5 rounded transition-colors",b.value?"text-retro-muted hover:text-retro-cyan hover:bg-retro-panel":"text-retro-cyan bg-retro-cyan/10"]),title:"Active conversations","aria-label":"Active conversations"},[ee(m(j1),{class:"w-4 h-4"})],2),d("button",{onClick:X[1]||(X[1]=N=>m(e).setConversationViewMode("archive")),class:Re(["p-1.5 rounded transition-colors",b.value?"text-retro-cyan bg-retro-cyan/10":"text-retro-muted hover:text-retro-cyan hover:bg-retro-panel"]),title:"Archived conversations","aria-label":"Archived conversations"},[ee(m(Zh),{class:"w-4 h-4"})],2)])]),d("div",SR,[ee(m(ls),{class:"absolute left-2.5 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-retro-muted"}),He(d("input",{"onUpdate:modelValue":X[2]||(X[2]=N=>n.value=N),type:"text",placeholder:b.value?"Search archive...":"Search conversations...",class:"w-full pl-8 pr-3 py-1.5 text-xs font-mono bg-retro-black border border-retro-border rounded focus:border-retro-cyan focus:outline-none focus:ring-1 focus:ring-retro-cyan text-retro-text placeholder-retro-muted"},null,8,$R),[[Xt,n.value]])])]),m(e).isNearStorageLimit?(v(),x("div",CR,[ee(m(_n),{class:"w-4 h-4 text-retro-yellow flex-shrink-0"}),d("p",QR,B(m(e).conversationCount)+" active conversations. Limit is 100. ",1)])):U("",!0),d("div",PR,[b.value?(v(),x(we,{key:1},[m(e).hasArchivedConversations?(v(),x("div",RR,[P.value.length>0?(v(!0),x(we,{key:0},Fe(P.value,(N,me,K,he)=>{const $=[N.id,N.title,N.updatedAt,N.archivedAt,N.messages.length];if(he&&he.key===N.id&&_h(he,$))return he;const w=(v(),x("div",{key:N.id,onClick:M=>ie(N.id),onKeydown:[os(fr(M=>ie(N.id),["prevent"]),["enter"]),os(fr(M=>ie(N.id),["prevent"]),["space"])],class:"w-full text-left p-3 rounded border border-retro-border hover:border-retro-cyan/50 hover:bg-retro-cyan/5 transition-colors",role:"button",tabindex:"0"},[d("div",BR,[d("div",ZR,[d("h3",ER,B(N.title),1),d("p",DR,B(q(N.messages)),1),d("p",LR," Archived: "+B(z(N.archivedAt)),1),d("p",XR," Updated: "+B(z(N.updatedAt)),1)]),d("div",IR,[d("button",{onClick:fr(M=>ie(N.id),["stop"]),class:"inline-flex items-center gap-1 px-2 py-1 text-xs font-mono border border-retro-cyan/40 text-retro-cyan rounded hover:bg-retro-cyan/10 transition-colors",title:"Restore archived conversation"},[ee(m(Zh),{class:"w-3.5 h-3.5"}),X[9]||(X[9]=Xe(" Restore ",-1))],8,VR),d("button",{onClick:fr(M=>D(N.id),["stop"]),class:"inline-flex items-center gap-1 px-2 py-1 text-xs font-mono border border-red-400/40 text-red-300 rounded hover:bg-red-500/10 transition-colors",title:"Delete archived conversation"},[ee(m(fn),{class:"w-3.5 h-3.5"}),X[10]||(X[10]=Xe(" Delete ",-1))],8,zR)])])],40,["onClick","onKeydown"]));return w.memo=$,w},X,5),128)):(v(),x("div",NR,[d("p",WR,'No archived results for "'+B(n.value)+'"',1)]))])):(v(),x("div",jR,[...X[11]||(X[11]=[d("p",{class:"font-mono text-sm"},"No archived conversations",-1),d("p",{class:"text-xs mt-1"},"Archived conversations will appear here",-1)])]))],64)):(v(),x(we,{key:0},[m(e).hasConversations?(v(),x("div",TR,[C.value.length>0?(v(!0),x(we,{key:0},Fe(C.value,(N,me,K,he)=>{const $=[N.id,N.title,N.updatedAt,N.messages.length,N.finalized,N.id===m(e).activeConversationId,m(e).isConversationStreaming(N.id),A.value===N.id];if(he&&he.key===N.id&&_h(he,$))return he;const w=(v(),x("div",{key:N.id},[ee(C1,{conversation:N,"is-active":N.id===m(e).activeConversationId,"is-streaming":m(e).isConversationStreaming(N.id),"is-previewing":A.value===N.id,onSelect:M=>I(N.id),onArchive:M=>oe(N.id),onRename:M=>Z(N.id,M)},null,8,["conversation","is-active","is-streaming","is-previewing","onSelect","onArchive","onRename"])]));return w.memo=$,w},X,3),128)):(v(),x("div",MR,[d("p",AR,'No results for "'+B(n.value)+'"',1)]))])):(v(),x("div",_R,[...X[8]||(X[8]=[d("p",{class:"font-mono text-sm"},"No conversations",-1),d("p",{class:"text-xs mt-1"},'Click "New" to start',-1)])]))],64))]),ee(bu,{show:i.value,creating:o.value,onClose:X[7]||(X[7]=N=>i.value=!1),onCreate:F},null,8,["show","creating"]),ee(bu,{show:a.value,creating:l.value,onClose:ne,onCreate:L},null,8,["show","creating"])]))}}),YR={mobile:768,tablet:1024};function FR(r,e){return r<e.mobile?"mobile":r<e.tablet?"tablet":"desktop"}const i1=xu("layout",{state:()=>({currentViewport:"desktop",chatFullscreen:!1}),getters:{isMobile:r=>r.currentViewport==="mobile",isTablet:r=>r.currentViewport==="tablet",isDesktop:r=>r.currentViewport==="desktop",isChatFullscreen:r=>r.chatFullscreen},actions:{updateViewport(r){this.currentViewport=FR(r,YR)},toggleChatFullscreen(){this.chatFullscreen=!this.chatFullscreen},setChatFullscreen(r){this.chatFullscreen=r}}});function UR(){const r=_(null),e=_(!0);let t=null,n="smooth";const s=50;function i(){const p=r.value;return p?p.scrollHeight-p.scrollTop-p.clientHeight<s:!0}function o(){e.value=i()}function a(p="smooth"){if(n=p,t!==null)return;t=(typeof window<"u"&&typeof window.requestAnimationFrame=="function"?window.requestAnimationFrame.bind(window):g=>setTimeout(()=>g(Date.now()),16))(()=>{t=null,br(()=>{const g=r.value;g&&g.scrollTo({top:g.scrollHeight,behavior:n})})})}function l(p="smooth"){a(p),e.value=!0}function c(p="smooth"){e.value&&a(p)}function u(){e.value=!0}function h(){e.value=!1}return{containerRef:r,shouldAutoScroll:Te(e),onScroll:o,scrollToBottom:a,forceScrollToBottom:l,maybeScrollToBottom:c,enableAutoScroll:u,disableAutoScroll:h}}function GR(r){if(!r)return null;if(r instanceof HTMLElement)return r;if(typeof r=="object"&&"$el"in r){const e=r.$el;return e instanceof HTMLElement?e:null}return null}function HR(r){const{allMessages:e,containerRef:t,estimateItemHeight:n=120,overscan:s=6}=r,i=_(0),o=_(0),a=_(new Map),l=new Map;let c=null;function u(C,P){if(!Number.isFinite(P)||P<=0)return;const A=Math.ceil(P);if(a.value.get(C)===A)return;const E=new Map(a.value);E.set(C,A),a.value=E}function h(C,P){u(C,P.getBoundingClientRect().height)}function p(C,P){const A=l.get(C);A&&c&&c.unobserve(A),A&&delete A.dataset.virtualMessageId,l.delete(C);const E=GR(P);E&&(E.dataset.virtualMessageId=C,l.set(C,E),h(C,E),c&&c.observe(E))}function f(){const C=t.value;C&&(i.value=C.scrollTop)}const g=J(()=>{const C=e.value,P=new Array(C.length);let A=0;for(let E=0;E<C.length;E++)P[E]=A,A+=a.value.get(C[E].id)??n;return{offsets:P,totalHeight:A}});function O(C,P){let A=0,E=C.length-1,F=C.length;for(;A<=E;){const I=Math.floor((A+E)/2);C[I]>=P?(F=I,E=I-1):A=I+1}return F===C.length?Math.max(0,C.length-1):F}const y=J(()=>{const C=e.value;if(C.length===0)return[];const{offsets:P}=g.value,A=i.value,E=A+Math.max(o.value,1),F=O(P,Math.max(0,A-n));let I=F;for(;I<C.length&&P[I]<E;)I++;const oe=Math.max(0,F-s),ie=Math.min(C.length,I+s),ne=[];for(let L=oe;L<ie;L++)ne.push({message:C[L],index:L,top:P[L]});return ne}),b=J(()=>g.value.totalHeight);return mt(()=>{const C=t.value;C&&(o.value=C.clientHeight,i.value=C.scrollTop),c=new ResizeObserver(P=>{for(const A of P){const E=A.target;if(t.value&&E===t.value){o.value=A.contentRect.height;continue}const F=E.dataset.virtualMessageId;F&&u(F,A.contentRect.height)}}),t.value&&c.observe(t.value);for(const[P,A]of l)A.dataset.virtualMessageId=P,c.observe(A),h(P,A)}),St(()=>{c&&(c.disconnect(),c=null),l.clear()}),{visibleItems:y,totalHeight:b,onVirtualScroll:f,setItemRef:p}}const KR={key:0,class:"flex flex-col items-center justify-center h-full p-8 text-center"},JR={key:1,class:"relative"},eB={class:"sticky bottom-0"},tB={key:0,class:"px-4 py-2 bg-retro-dark/90 border-t border-retro-border/50 backdrop-blur-sm"},rB={key:1,class:"px-4 py-2.5 bg-retro-red/20 border-t border-retro-red/50"},nB={class:"flex items-start gap-2"},sB={class:"flex-1 min-w-0"},iB={class:"flex items-center justify-between gap-2 mb-0.5"},oB={class:"text-xs font-mono text-retro-red/80 break-words whitespace-pre-wrap"},aB={key:2,class:"px-4 py-2 bg-retro-dark/90 border-t border-retro-border/50"},lB=Ie({__name:"ChatMessages",setup(r){const e=kr(),{containerRef:t,onScroll:n,maybeScrollToBottom:s,scrollToBottom:i,forceScrollToBottom:o}=UR(),{visibleItems:a,totalHeight:l,onVirtualScroll:c,setItemRef:u}=HR({allMessages:J(()=>e.messages),containerRef:t});function h(){n(),c()}const p=J(()=>e.isActiveConversationStreaming),f=J(()=>{const C=e.lastMessage;return!C||C.role!=="assistant"?null:C.status}),g=_(!1);function O(C){const P=C.contentBlocks;return!P||P.length===0?"":P.map(A=>{switch(A.type){case"tool_use":return`u:${A.id}:${A.status}:${A.inputSummary}`;case"tool_result":return`r:${A.id}:${A.toolUseId}:${A.isError?1:0}:${A.content.length}`;case"text":return`t:${A.id}:${A.text.length}`;case"thinking":return`k:${A.id}:${A.thinking.length}`;case"result_summary":return`s:${A.id}:${A.numTurns}:${A.durationMs}`;case"session_init":return`i:${A.id}:${A.model}:${A.tools.length}`;default:return""}}).join("|")}const y=_(null);function b(){if(y.value&&(y.value(),y.value=null),!t.value||typeof ResizeObserver>"u")return;const C=new ResizeObserver(()=>{s("instant")});C.observe(t.value),y.value=()=>{C.disconnect()}}return mt(()=>{i("instant"),b()}),St(()=>{y.value&&y.value()}),ze(()=>e.activeConversationId,()=>{g.value=!1,i("instant")}),ze(t,()=>{b()}),ze(()=>[e.activeConversationId,e.messages.length],([C,P])=>{!C||P===0||g.value||(g.value=!0,o("instant"))},{immediate:!0}),ze(()=>e.messages.length,()=>{s("instant")}),ze(()=>e.lastMessage?.content,()=>{s("instant")}),ze([p,()=>e.lastError],()=>{s("instant")}),ze(l,()=>{s("instant")}),(C,P)=>(v(),x("div",{ref_key:"containerRef",ref:t,class:"flex-1 overflow-y-auto",onScroll:h},[m(e).hasMessages?(v(),x("div",JR,[d("div",{class:"relative",style:Ut({height:`${m(l)}px`})},[(v(!0),x(we,null,Fe(m(a),A=>(v(),x("div",{key:A.message.id,class:"absolute left-0 right-0 border-b border-retro-border/30",style:Ut({transform:`translateY(${A.top}px)`})},[d("div",{ref_for:!0,ref:E=>m(u)(A.message.id,E)},[Rp([A.message.id,A.message.status,A.message.content,A.message.contentBlocks?.length||0,O(A.message),A.message.tools?.length||0],()=>ee(Q1,{message:A.message},null,8,["message"]),P,0)],512)],4))),128))],4)])):(v(),x("div",KR,[...P[2]||(P[2]=[d("div",{class:"text-retro-muted text-sm font-mono mb-2"}," No messages yet ",-1),d("div",{class:"text-retro-muted text-xs font-mono"}," Send a message to start chatting ",-1)])])),d("div",eB,[m(p)&&!m(e).lastError?(v(),x("div",tB,[...P[3]||(P[3]=[Zp('<div class="flex items-center gap-2"><div class="flex gap-1"><span class="w-1.5 h-1.5 rounded-full bg-retro-cyan animate-bounce" style="animation-delay:0ms;"></span><span class="w-1.5 h-1.5 rounded-full bg-retro-cyan animate-bounce" style="animation-delay:150ms;"></span><span class="w-1.5 h-1.5 rounded-full bg-retro-cyan animate-bounce" style="animation-delay:300ms;"></span></div><span class="text-xs font-mono text-retro-muted">Processing...</span></div>',1)])])):U("",!0),m(e).lastError?(v(),x("div",rB,[d("div",nB,[ee(m(po),{class:"w-4 h-4 text-retro-red flex-shrink-0 mt-0.5"}),d("div",sB,[d("div",iB,[P[4]||(P[4]=d("p",{class:"text-xs font-mono font-semibold text-retro-red"},"Error",-1)),d("button",{class:"text-xs font-mono text-retro-red/60 hover:text-retro-red underline",onClick:P[1]||(P[1]=A=>m(e).clearError())}," Dismiss ")]),d("p",oB,B(m(e).lastError),1),P[5]||(P[5]=d("p",{class:"text-xs font-mono text-retro-muted mt-1"}," Check browser console (F12) for more details ",-1))])])])):m(f)==="stopped"?(v(),x("div",aB,[...P[6]||(P[6]=[d("div",{class:"flex items-center gap-2"},[d("span",{class:"w-2 h-2 rounded-full bg-retro-muted"}),d("span",{class:"text-xs font-mono text-retro-muted"},"Stopped")],-1)])])):U("",!0)])],544))}});function cB(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"fill-rule":"evenodd",d:"M4.755 10.059a7.5 7.5 0 0 1 12.548-3.364l1.903 1.903h-3.183a.75.75 0 1 0 0 1.5h4.992a.75.75 0 0 0 .75-.75V4.356a.75.75 0 0 0-1.5 0v3.18l-1.9-1.9A9 9 0 0 0 3.306 9.67a.75.75 0 1 0 1.45.388Zm15.408 3.352a.75.75 0 0 0-.919.53 7.5 7.5 0 0 1-12.548 3.364l-1.902-1.903h3.183a.75.75 0 0 0 0-1.5H2.984a.75.75 0 0 0-.75.75v4.992a.75.75 0 0 0 1.5 0v-3.18l1.9 1.9a9 9 0 0 0 15.059-4.035.75.75 0 0 0-.53-.918Z","clip-rule":"evenodd"})])}function Ap(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"fill-rule":"evenodd",d:"M12.53 16.28a.75.75 0 0 1-1.06 0l-7.5-7.5a.75.75 0 0 1 1.06-1.06L12 14.69l6.97-6.97a.75.75 0 1 1 1.06 1.06l-7.5 7.5Z","clip-rule":"evenodd"})])}function uB(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{d:"M3.478 2.404a.75.75 0 0 0-.926.941l2.432 7.905H13.5a.75.75 0 0 1 0 1.5H4.984l-2.432 7.905a.75.75 0 0 0 .926.94 60.519 60.519 0 0 0 18.445-8.986.75.75 0 0 0 0-1.218A60.517 60.517 0 0 0 3.478 2.404Z"})])}function hB(r,e){return v(),x("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"fill-rule":"evenodd",d:"M4.5 7.5a3 3 0 0 1 3-3h9a3 3 0 0 1 3 3v9a3 3 0 0 1-3 3h-9a3 3 0 0 1-3-3v-9Z","clip-rule":"evenodd"})])}const dB={class:"flex-shrink-0 flex-grow-0 border-t border-retro-border bg-retro-dark p-3"},fB={class:"flex items-center gap-2 mb-2"},pB={class:"relative min-w-0 flex-1 max-w-[154px] model-selector"},mB=["disabled"],gB={class:"truncate text-left"},OB={key:0,class:"absolute bottom-full left-0 mb-1 py-1 bg-retro-dark border border-retro-border rounded shadow-lg z-10 min-w-[220px] max-w-[280px]"},vB={key:0,class:"px-3 py-1.5 text-xs font-mono text-retro-muted"},bB={class:"px-3 py-1 text-[11px] font-mono uppercase tracking-wide text-retro-cyan/80 select-none"},xB=["disabled","onClick"],yB={class:"truncate"},kB={class:"relative mode-selector"},wB={key:0,class:"absolute bottom-full left-0 mb-1 py-1 bg-retro-dark border border-retro-border rounded shadow-lg z-10 min-w-[140px]"},SB=["onClick"],$B={class:"text-xs font-mono text-retro-muted"},CB={key:0,class:"mb-3 p-3 bg-retro-yellow/10 border border-retro-yellow/50 rounded"},QB={class:"flex items-center justify-between gap-3"},PB={class:"flex-1 min-w-0"},TB={class:"text-xs font-mono text-retro-text truncate"},MB={class:"text-retro-cyan"},AB={key:0,class:"text-retro-muted"},_B={key:1,class:"text-retro-muted"},RB={key:1,class:"mb-3 p-3 bg-retro-cyan/10 border border-retro-cyan/50 rounded"},BB={key:2,class:"mb-2 flex flex-wrap gap-2"},ZB=["src","alt"],EB={class:"mt-1 truncate text-[10px] font-mono text-retro-muted"},DB={class:"truncate text-[10px] font-mono text-retro-muted/80"},LB=["onClick"],XB={class:"flex gap-2 items-start"},IB=["disabled"],VB={class:"flex-1 relative min-h-[40px]"},zB=["disabled","placeholder"],NB=["disabled"],_p=4,WB=5*1024*1024,jB=Ie({__name:"ChatInput",props:{disabled:{type:Boolean}},setup(r){const e=r,t=kr(),n=il(),{sendMessage:s,sendPermissionResponse:i,approvePlan:o,rejectPlan:a,abort:l,resetContext:c}=Sl(),u=_(""),h=_(null),p=_(null),f=_(!1),g=_(!1),O=_(!1),y=_([]);let b=null;const C=_(null),{data:P,pending:A}=gc("chat-input-ai-providers",()=>$fetch("/api/ai/providers"),{server:!1,default:()=>({providers:[]})}),E=J(()=>P.value?.providers??[]),F=J(()=>t.permissionMode==="ask"||t.permissionMode==="plan"),I=J(()=>{const H=new Map;for(const se of E.value)for(const ve of se.models)H.set(ve.label,(H.get(ve.label)??0)+1);return E.value.flatMap(se=>se.models.map(ve=>{const _e=se.capabilities.streaming&&(!F.value||se.capabilities.permissions),We=(H.get(ve.label)??0)>1;return{key:`${se.id}::${ve.key}`,providerId:se.id,providerName:se.name,modelKey:ve.key,modelLabel:ve.label,label:We?`${ve.label} · ${se.name}`:ve.label,compatible:_e}})).sort((se,ve)=>se.modelLabel.localeCompare(ve.modelLabel,void 0,{sensitivity:"base"})||se.providerName.localeCompare(ve.providerName,void 0,{sensitivity:"base"}))}),oe=J(()=>{const H=new Map;for(const ve of I.value){const _e=H.get(ve.providerId);if(_e){_e.options.push(ve);continue}H.set(ve.providerId,{providerId:ve.providerId,providerName:ve.providerName,options:[ve]})}const fe=new Map([["codex",0],["claude",1]]),se=Array.from(H.values());return se.sort((ve,_e)=>{const We=fe.get(ve.providerId)??99,Ge=fe.get(_e.providerId)??99;return We!==Ge?We-Ge:ve.providerName.localeCompare(_e.providerName,void 0,{sensitivity:"base"})}),se});function ie(H){return`${H.providerId}::${H.modelKey}`}const ne=J(()=>{const H=t.activeConversation;return H?.providerId&&H.providerModelKey?{providerId:H.providerId,modelKey:H.providerModelKey}:C.value?C.value:n.providerSelection}),L=J(()=>ie(ne.value)),D=J(()=>I.value.find(H=>H.key===L.value)||null),Z=J(()=>D.value?.label||"Select model");function z(H,fe){t.setConversationProviderSelection(H,fe.providerId,fe.modelKey),t.clearProviderSession(H),t.saveConversation(H,!0)}function q(H){C.value&&(z(H,C.value),C.value=null)}function V(H){if(!H||!H.compatible)return;const fe={providerId:H.providerId,modelKey:H.modelKey},se=t.activeConversationId;if(se){z(se,fe),C.value=null,O.value=!1;return}C.value=fe,O.value=!1}const X={plan:$u,ask:Qu,auto:jp,bypass:Pu},N={plan:"text-retro-cyan",ask:"text-retro-green",auto:"text-retro-yellow",bypass:"text-retro-red"};function me(H){t.setPermissionMode(H),g.value=!1}function K(H){const fe=H.target;fe.closest(".mode-selector")||(g.value=!1),fe.closest(".model-selector")||(O.value=!1)}mt(()=>{document.addEventListener("click",K),n.hydrate()}),St(()=>{document.removeEventListener("click",K),b!==null&&typeof window<"u"&&typeof window.cancelAnimationFrame=="function"&&(window.cancelAnimationFrame(b),b=null)});const he=J(()=>(u.value.trim().length>0||y.value.length>0)&&!t.isActiveConversationStreaming&&!f.value&&!t.pendingPermission&&!M.value),$=J(()=>t.isActiveConversationStreaming&&!t.pendingPermission),w=J(()=>t.pendingPermission!==null),M=J(()=>t.pendingPlanApproval!==null);function R(){i(!0,t.activeConversationId)}function G(){i(!1,t.activeConversationId)}function ae(){o(t.activeConversationId)}function xe(){a(t.activeConversationId)}function De(){y.value=[],p.value&&(p.value.value="")}function Ae(H){y.value=y.value.filter(fe=>fe.id!==H)}function Ue(H){return H<1024?`${H} B`:H<1024*1024?`${(H/1024).toFixed(1)} KB`:`${(H/(1024*1024)).toFixed(1)} MB`}function Ye(H){return new Promise((fe,se)=>{const ve=new FileReader;ve.onload=()=>{typeof ve.result=="string"?fe(ve.result):se(new Error("Failed to read image"))},ve.onerror=()=>se(ve.error||new Error("Failed to read image")),ve.readAsDataURL(H)})}async function pe(H){const fe=H.target,se=fe.files?Array.from(fe.files):[];if(se.length===0)return;const{useToast:ve}=await as(async()=>{const{useToast:Ge}=await import("./Bze5ywup.js").then(it=>it.n);return{useToast:Ge}},__vite__mapDeps([0,1,2]),import.meta.url),_e=ve();let We=_p-y.value.length;if(We<=0){_e.warning(`You can attach up to ${_p} images per message.`),fe.value="";return}for(const Ge of se){if(We<=0)break;if(!Ge.type.startsWith("image/")){_e.warning(`Skipped "${Ge.name}": only image files are supported.`);continue}if(Ge.size>WB){_e.warning(`Skipped "${Ge.name}": max size is 5 MB.`);continue}try{const it=await Ye(Ge);y.value.push({id:`att-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,name:Ge.name,mimeType:Ge.type,size:Ge.size,dataUrl:it}),We--}catch{_e.error(`Failed to attach "${Ge.name}".`)}}fe.value=""}const Ce=J(()=>{if(t.isActiveConversationStreaming||f.value)return!1;const H=t.lastMessage;return H?.role==="assistant"&&H?.status==="error"});function ce(H){const fe=H.instructionFiles.length>0?H.instructionFiles.map(ve=>{const _e=ve.source==="cwd"?"cwd":"ancestor",We=ve.mtime?` (mtime: ${ve.mtime})`:"";return`- \`${ve.path}\` [${_e}] - ${ve.hint}${We}`}):["- (none detected from current cwd ancestry)"],se=H.specContext.files.length>0?H.specContext.files.map(ve=>`- \`${ve}\``):["- (none)"];return["## Context Snapshot","",`- Time: ${H.generatedAt}`,`- Session state: **${H.sessionState}**`,`- Provider session ID: \`${H.providerSessionId??"(empty)"}\``,`- Provider: \`${H.providerId}\` / \`${H.providerModelKey}\``,`- Permission mode: \`${H.permissionMode}\``,`- CWD (requested): \`${H.requestedCwd}\``,`- CWD (effective): \`${H.effectiveCwd}\``,`- Feature: \`${H.featureId??"(none)"}\``,"","### Spec Context Injection",`- Active on next turn: **${H.specContext.active?"yes":"no"}**`,`- Reason: ${H.specContext.reason}`,...se,"","### Detected Instruction Files",...fe].join(`
|
|
68
|
+
`)}function ue(H){return(H.match(/"[^"]*"|'[^']*'|\S+/g)??[]).map(se=>se.startsWith('"')&&se.endsWith('"')||se.startsWith("'")&&se.endsWith("'")?se.slice(1,-1):se)}function Y(H){const fe=H.match(/^\/(?:spec-search|specsearch)\b(.*)$/i);if(!fe)return null;const se=ue(fe[1]?.trim()??""),ve=[],_e={q:""};for(let We=0;We<se.length;We++){const Ge=se[We];if(Ge==="--mode"&&se[We+1]){const it=se[++We];(it==="keyword"||it==="semantic"||it==="hybrid")&&(_e.mode=it);continue}if(Ge.startsWith("--mode=")){const it=Ge.slice(7);(it==="keyword"||it==="semantic"||it==="hybrid")&&(_e.mode=it);continue}if(Ge==="--feature"&&se[We+1]){_e.featureId=se[++We];continue}if(Ge.startsWith("--feature=")){_e.featureId=Ge.slice(10);continue}if(Ge==="--file-type"&&se[We+1]){_e.fileType=se[++We];continue}if(Ge.startsWith("--file-type=")){_e.fileType=Ge.slice(12);continue}if(Ge==="--limit"&&se[We+1]){const it=Number.parseInt(se[++We],10);Number.isFinite(it)&&it>0&&(_e.limit=it);continue}if(Ge.startsWith("--limit=")){const it=Number.parseInt(Ge.slice(8),10);Number.isFinite(it)&&it>0&&(_e.limit=it);continue}ve.push(Ge)}return _e.q=ve.join(" ").trim(),_e}function Me(H,fe=1400){const se=H.trim();return se.length<=fe?se:`${se.slice(0,fe)}
|
|
69
|
+
...`}function Le(H,fe){const se=[];if(se.push("## Spec Search Results"),se.push(""),se.push(`- Query: \`${H.q}\``),se.push(`- Mode: \`${fe.mode}\``),H.featureId&&se.push(`- Feature filter: \`${H.featureId}\``),H.fileType&&se.push(`- File type filter: \`${H.fileType}\``),se.push(`- Hits: **${fe.totalCount}** (${fe.searchTime}ms)`),fe.warning&&se.push(`- Warning: ${fe.warning}`),fe.results.length===0)return se.push(""),se.push("No matching indexed chunks were found."),se.join(`
|
|
70
|
+
`);se.push("");for(const[ve,_e]of fe.results.entries()){const We=_e.chunk;se.push(`### ${ve+1}. \`${We.sourcePath}:${We.lineStart}\``),se.push(`- Match: \`${_e.matchType}\` (score: ${_e.score.toFixed(3)})`),We.headingHierarchy.length>0&&se.push(`- Headings: ${We.headingHierarchy.join(" > ")}`),se.push(""),se.push(Me(We.content)),se.push("")}return se.join(`
|
|
71
|
+
`)}async function Ve(H){const fe=t.activeConversationId??await t.createConversation(),se=t.addAssistantMessage(fe);if(!H.q){t.updateMessage(se.id,{content:["Usage: `/spec-search <query> [--mode keyword|semantic|hybrid] [--feature <feature-id>] [--file-type <type>] [--limit <n>]`","","Examples:","- `/spec-search FR-001`",'- `/spec-search "indexing indicator" --mode hybrid --feature 008-spec-search --limit 5`'].join(`
|
|
72
|
+
`),status:"complete"},fe);return}const ve=t.activeConversation,_e={q:H.q,mode:H.mode??"hybrid",featureId:H.featureId??ve?.featureId,fileType:H.fileType,limit:String(H.limit??5)};try{const We=await $fetch("/api/specs/search",{query:_e});t.updateMessage(se.id,{content:Le({...H,mode:_e.mode,featureId:_e.featureId},We),status:"complete"},fe)}catch(We){const Ge=We instanceof Error?We.message:"Failed to run spec search";t.updateMessage(se.id,{content:`Spec search failed: ${Ge}`,status:"error"},fe)}}async function Mt(){const H=t.activeConversation,fe={permissionMode:t.permissionMode};H?.hasWorktree&&H.worktreePath?fe.cwd=H.worktreePath:H?.cwd&&(fe.cwd=H.cwd),H?.featureId&&(fe.featureId=H.featureId),H?.providerId&&(fe.providerId=H.providerId),H?.providerModelKey&&(fe.providerModelKey=H.providerModelKey),H?.providerSessionId&&(fe.providerSessionId=H.providerSessionId);const se=await $fetch("/api/chat/context",{query:fe}),ve=t.activeConversationId??await t.createConversation(),_e=t.addAssistantMessage(ve);t.updateMessage(_e.id,{content:ce(se),status:"complete"},ve)}function Zt(H=[]){const fe=ka(t.activeConversation,!0)??{};return H.length>0?{...fe,attachments:H}:Object.keys(fe).length>0?fe:void 0}function bn(H){const fe=t.addAssistantMessage(H);return t.startSession(`session-${Date.now()}`,H),t.startConversationStreaming(H),t.saveConversation(H,!0),fe}function Kt(H,fe,se,ve){const _e=se instanceof Error?se.message:ve;t.setSessionError(_e,H),t.updateMessage(fe,{status:"error"},H),t.endSession(H),t.endConversationStreaming(H)}async function Er(){const H=u.value.trim(),fe=[...y.value];if(H.length===0&&fe.length===0||t.isActiveConversationStreaming||f.value||e.disabled)return;const se=!!t.activeConversationId;let ve=null,_e=null;if(H==="/reset"||H==="/reset-context"||H==="/new"||H==="/clear"){await zn();return}if(H==="/context"||H==="/ctx"){await Mt(),u.value="",De(),xt();return}const We=Y(H);if(We){await Ve(We),u.value="",De(),xt();return}f.value=!0,u.value="",De(),xt();try{if(await t.addUserMessageWithConversation(H,fe),ve=t.activeConversationId,!ve)throw new Error("Failed to create or select a conversation");se||q(ve);const Ge=bn(ve);_e=Ge.id,await s(H,Ge.id,ve,Zt(fe))}catch(Ge){if(ve&&_e)Kt(ve,_e,Ge,"Failed to send message");else{const it=Ge instanceof Error?Ge.message:"Failed to send message";t.setSessionError(it)}}finally{f.value=!1}}async function $r(){try{l(t.activeConversationId)}catch{}}async function zn(){if(t.activeConversationId){u.value="",De(),xt(),f.value=!0;try{await c(t.activeConversationId);const H=t.addAssistantMessage(t.activeConversationId);t.updateMessage(H.id,{content:"✨ **Context cleared** — The AI conversation context has been reset. Starting fresh from here.",status:"complete"},t.activeConversationId);const{useToast:fe}=await as(async()=>{const{useToast:ve}=await import("./Bze5ywup.js").then(_e=>_e.n);return{useToast:ve}},__vite__mapDeps([0,1,2]),import.meta.url);fe().success("AI context has been reset. The conversation will start fresh.")}catch(H){console.error("Failed to reset context:",H);const{useToast:fe}=await as(async()=>{const{useToast:ve}=await import("./Bze5ywup.js").then(_e=>_e.n);return{useToast:ve}},__vite__mapDeps([0,1,2]),import.meta.url);fe().error("Failed to reset context. Please try again.")}finally{f.value=!1}}}async function Cr(){const H=t.messages;let fe=null;for(let _e=H.length-1;_e>=0;_e--)if(H[_e].role==="user"){fe={content:H[_e].content,attachments:H[_e].attachments??[]};break}if(!fe||!t.activeConversationId)return;const se=t.activeConversationId;t.clearError(),f.value=!0;let ve=null;try{const _e=bn(se);ve=_e.id,await s(fe.content,_e.id,se,Zt(fe.attachments))}catch(_e){if(ve)Kt(se,ve,_e,"Failed to retry message");else{const We=_e instanceof Error?_e.message:"Failed to retry message";t.setSessionError(We,se)}}finally{f.value=!1}}function xn(H){H.key==="Enter"&&!H.shiftKey&&(H.preventDefault(),Er())}function Nn(){const H=h.value;if(H){if(!u.value.trim()){H.style.height="";return}H.style.height="auto",H.style.height=Math.min(H.scrollHeight,200)+"px"}}function yn(){if(b!==null)return;b=(typeof window<"u"&&typeof window.requestAnimationFrame=="function"?window.requestAnimationFrame.bind(window):fe=>setTimeout(()=>fe(Date.now()),16))(()=>{b=null,Nn()})}function xt(){const H=h.value;H&&(H.style.height="")}function Qr(){br(()=>{h.value?.focus()})}return ze(u,yn),ze(()=>t.isActiveConversationStreaming,(H,fe)=>{fe&&!H&&Qr()}),ze(()=>t.activeConversationId,()=>{t.activeConversationId&&(C.value=null),De(),Qr()}),(H,fe)=>(v(),x("div",dB,[d("div",fB,[d("div",pB,[d("button",{disabled:r.disabled||m(t).isActiveConversationStreaming||m(w)||m(M)||m(A)||m(I).length===0,class:"flex items-center justify-between gap-1.5 w-full px-2 py-1 rounded border border-retro-border/50 hover:border-retro-border text-xs font-mono text-retro-muted transition-colors disabled:opacity-60 disabled:cursor-not-allowed",onClick:fe[0]||(fe[0]=se=>O.value=!m(O))},[d("span",gB,B(m(Z)),1),ee(m(Ap),{class:"w-3 h-3 flex-shrink-0"})],8,mB),m(O)?(v(),x("div",OB,[m(I).length===0?(v(),x("div",vB," Loading models... ")):U("",!0),(v(!0),x(we,null,Fe(m(oe),se=>(v(),x("div",{key:se.providerId,class:"py-0.5"},[d("div",bB,B(se.providerName),1),(v(!0),x(we,null,Fe(se.options,ve=>(v(),x("button",{key:ve.key,disabled:!ve.compatible,class:Re(["flex items-center gap-2 w-full px-3 py-1.5 text-xs font-mono text-left hover:bg-retro-panel transition-colors disabled:opacity-50 disabled:cursor-not-allowed",m(L)===ve.key?"bg-retro-panel text-retro-text":"text-retro-muted"]),onClick:_e=>V(ve)},[d("span",yB,B(ve.modelLabel)+B(ve.compatible?"":" (unsupported for current permission mode)"),1)],10,xB))),128))]))),128))])):U("",!0)]),d("div",kB,[d("button",{class:Re(["flex items-center gap-1.5 px-2 py-1 rounded border border-retro-border/50 hover:border-retro-border text-xs font-mono transition-colors",N[m(t).permissionMode]]),onClick:fe[1]||(fe[1]=se=>g.value=!m(g))},[(v(),Oe(Zs(X[m(t).permissionMode]),{class:"w-4 h-4"})),d("span",null,B(m(ws)[m(t).permissionMode]),1),ee(m(Ap),{class:"w-3 h-3"})],2),m(g)?(v(),x("div",wB,[(v(),x(we,null,Fe(["plan","ask","auto","bypass"],se=>d("button",{key:se,class:Re(["flex items-center gap-2 w-full px-3 py-1.5 text-xs font-mono text-left hover:bg-retro-panel transition-colors",[N[se],m(t).permissionMode===se?"bg-retro-panel":""]]),onClick:ve=>me(se)},[(v(),Oe(Zs(X[se]),{class:"w-4 h-4"})),d("span",null,B(m(ws)[se]),1)],10,SB)),64))])):U("",!0)]),d("span",$B,B(m(t).permissionMode==="plan"?"Plan only":m(t).permissionMode==="ask"?"Ask before actions":m(t).permissionMode==="auto"?"Auto approve":"All permissions"),1)]),m(w)?(v(),x("div",CB,[d("div",QB,[d("div",PB,[fe[4]||(fe[4]=d("div",{class:"text-xs font-mono text-retro-yellow font-bold mb-1"}," Permission Required ",-1)),d("div",TB,[d("span",MB,B(m(t).pendingPermission?.tool),1),m(t).pendingPermission?.filePath?(v(),x("span",AB," - "+B(m(t).pendingPermission.filePath),1)):m(t).pendingPermission?.command?(v(),x("span",_B," - "+B(m(t).pendingPermission.command),1)):U("",!0)])]),d("div",{class:"flex gap-2 flex-shrink-0"},[d("button",{class:"px-3 py-1.5 text-xs font-mono rounded bg-retro-green/20 text-retro-green border border-retro-green/50 hover:bg-retro-green/30 transition-colors",onClick:R}," Allow "),d("button",{class:"px-3 py-1.5 text-xs font-mono rounded bg-retro-red/20 text-retro-red border border-retro-red/50 hover:bg-retro-red/30 transition-colors",onClick:G}," Deny ")])])])):U("",!0),m(M)?(v(),x("div",RB,[d("div",{class:"flex items-center justify-between gap-3"},[fe[5]||(fe[5]=d("div",{class:"flex-1 min-w-0"},[d("div",{class:"text-xs font-mono text-retro-cyan font-bold mb-1"}," Plan Ready for Review "),d("div",{class:"text-xs font-mono text-retro-muted"}," Approve to switch to Auto mode and start implementation. ")],-1)),d("div",{class:"flex gap-2 flex-shrink-0"},[d("button",{class:"px-3 py-1.5 text-xs font-mono rounded bg-retro-green/20 text-retro-green border border-retro-green/50 hover:bg-retro-green/30 transition-colors",onClick:ae}," Approve & Implement "),d("button",{class:"px-3 py-1.5 text-xs font-mono rounded bg-retro-red/20 text-retro-red border border-retro-red/50 hover:bg-retro-red/30 transition-colors",onClick:xe}," Reject ")])])])):U("",!0),m(y).length>0?(v(),x("div",BB,[(v(!0),x(we,null,Fe(m(y),se=>(v(),x("div",{key:se.id,class:"relative w-24 rounded border border-retro-border/70 bg-retro-black/80 p-1"},[d("img",{src:se.dataUrl,alt:se.name,class:"h-16 w-full rounded object-cover"},null,8,ZB),d("div",EB,B(se.name),1),d("div",DB,B(Ue(se.size)),1),d("button",{class:"absolute -right-2 -top-2 rounded-full border border-retro-border bg-retro-panel p-0.5 text-retro-red hover:bg-retro-red/20",type:"button",onClick:ve=>Ae(se.id)},[ee(m(Pt),{class:"h-3 w-3"})],8,LB)]))),128))])):U("",!0),d("div",XB,[d("input",{ref_key:"fileInputRef",ref:p,type:"file",accept:"image/*",multiple:"",class:"hidden",onChange:pe},null,544),d("button",{class:"flex-shrink-0 h-10 w-10 inline-flex items-center justify-center p-0 rounded bg-retro-panel/70 text-retro-muted hover:text-retro-cyan hover:bg-retro-panel disabled:opacity-50 disabled:cursor-not-allowed transition-colors",type:"button",title:"Attach images",disabled:r.disabled||m(t).isActiveConversationStreaming||m(w)||m(M),onClick:fe[2]||(fe[2]=se=>m(p)?.click())},[ee(m(ov),{class:"w-5 h-5"})],8,IB),d("div",VB,[He(d("textarea",{ref_key:"inputRef",ref:h,"onUpdate:modelValue":fe[3]||(fe[3]=se=>tt(u)?u.value=se:null),disabled:r.disabled||m(t).isActiveConversationStreaming||m(w)||m(M),placeholder:r.disabled?"This conversation is finalized (read-only)":"Type a message...",rows:"1",class:"w-full h-full min-h-[40px] px-3 py-2 bg-retro-black border border-retro-border rounded text-sm font-mono text-retro-text placeholder-retro-muted focus:outline-none focus:border-retro-cyan disabled:opacity-50 disabled:cursor-not-allowed resize-none overflow-hidden",onKeydown:xn},null,40,zB),[[Xt,m(u)]])]),m(Ce)?(v(),x("button",{key:0,class:"flex-shrink-0 h-10 w-10 inline-flex items-center justify-center p-0 rounded bg-retro-yellow/20 text-retro-yellow hover:bg-retro-yellow/30 transition-colors",title:"Retry last message",onClick:Cr},[ee(m(cB),{class:"w-5 h-5"})])):U("",!0),!m($)&&!m(w)?(v(),x("button",{key:1,disabled:!m(he),class:"flex-shrink-0 h-10 w-10 inline-flex items-center justify-center p-0 rounded bg-retro-cyan/20 text-retro-cyan hover:bg-retro-cyan/30 disabled:opacity-50 disabled:cursor-not-allowed transition-colors",onClick:Er},[ee(m(uB),{class:"w-5 h-5"})],8,NB)):m($)?(v(),x("button",{key:2,class:"flex-shrink-0 h-10 w-10 inline-flex items-center justify-center p-0 rounded bg-retro-red/20 text-retro-red hover:bg-retro-red/30 transition-colors",onClick:$r},[ee(m(hB),{class:"w-5 h-5"})])):U("",!0)]),fe[6]||(fe[6]=d("div",{class:"mt-1 text-xs font-mono text-retro-muted"}," Press Enter to send, Shift+Enter for new line. Slash commands: `/context`, `/reset`, `/new`, `/clear`, `/spec-search`. You can attach up to 4 images (5 MB each). ",-1))]))}}),qB={class:"h-64 border-t border-retro-border bg-retro-dark/50 flex flex-col"},YB={class:"h-9 flex items-center justify-between px-3 border-b border-retro-border/40"},FB={key:0,class:"flex-1 flex items-center justify-center text-xs font-mono text-retro-muted"},UB={key:1,class:"flex-1 overflow-y-auto scrollbar-custom"},GB={class:"flex items-center gap-2 text-[10px] font-mono"},HB={class:"text-retro-muted"},KB={class:"text-retro-muted"},JB={class:"text-retro-green truncate"},e7={class:"mt-1 text-[11px] font-mono text-retro-text whitespace-pre-wrap break-words"},t7=Ie({__name:"ChatDebugPanel",setup(r){const e=kr(),{debugEvents:t}=m1(e);function n(i){return new Date(i).toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}function s(i){return i==="in"?"text-retro-cyan":i==="out"?"text-retro-yellow":"text-retro-muted"}return(i,o)=>(v(),x("div",qB,[d("div",YB,[o[1]||(o[1]=d("div",{class:"text-[11px] font-mono text-retro-text"}," Debug Stream (CLI/Provider) ",-1)),d("button",{class:"p-1 rounded hover:bg-retro-panel transition-colors",title:"Clear debug events",onClick:o[0]||(o[0]=a=>m(e).clearDebugEvents())},[ee(m(fn),{class:"w-3.5 h-3.5 text-retro-muted"})])]),m(t).length===0?(v(),x("div",FB," No debug events yet ")):(v(),x("div",UB,[(v(!0),x(we,null,Fe(m(t),a=>(v(),x("div",{key:a.id,class:"px-3 py-2 border-b border-retro-border/20"},[d("div",GB,[d("span",HB,B(n(a.timestamp)),1),d("span",{class:Re(s(a.direction))},B(a.direction.toUpperCase()),3),d("span",KB,B(a.channel),1),d("span",JB,B(a.eventType),1)]),d("pre",e7,B(a.payload),1)]))),128))]))]))}}),r7={class:"px-4 py-3 border-b border-retro-border bg-retro-dark/80 space-y-3"},n7={class:"flex items-center justify-between"},s7={class:"space-y-1 text-xs font-mono"},i7={class:"flex items-center gap-2"},o7={class:"relative"},a7=["disabled"],l7=["value"],c7=["value"],u7={class:"flex items-center gap-2"},h7={class:"text-retro-text"},d7={class:"relative"},f7=["disabled"],p7=["disabled"],m7={class:"flex items-center gap-2"},g7=["disabled"],O7=["disabled"],v7=Ie({__name:"FinalizeConfirm",props:{baseBranch:{},worktreeBranch:{},worktreePath:{}},emits:["confirm","cancel"],setup(r,{emit:e}){const t=r,n=e,s=_(""),i=_(null),o=_(!1),a=_(!1),l=_(t.baseBranch),c=_([]),u=_(!1),h=yu();async function p(){a.value=!0;try{const g=await $fetch("/api/chat/generate-commit-message",{method:"POST",body:{conversationId:t.worktreePath.split("/").pop()?.replace("sc-","")||"",worktreePath:t.worktreePath}});g.success&&g.message&&(s.value=g.message)}catch{}finally{a.value=!1}}mt(async()=>{const g=(async()=>{try{const y=t.worktreePath.split("/").pop()||"",b=await $fetch(`/api/commits/${encodeURIComponent(y)}`,{params:{workingDirectory:t.worktreePath}});i.value=b.aheadCount}catch{i.value=null}})(),O=(async()=>{u.value=!0;try{await h.initialize();const y=await $fetch("/api/git/branches",{query:{workingDirectory:h.workingDirectory}});c.value=y.branches.filter(b=>!b.isRemote&&!b.name.startsWith("sc/")).map(b=>b.name),c.value.length>0&&!c.value.includes(l.value)&&(l.value=c.value.includes("main")?"main":c.value.includes("master")?"master":c.value[0])}catch{c.value=[]}finally{u.value=!1}})();await Promise.all([g,O])});function f(){s.value.trim()&&(o.value=!0,n("confirm",s.value.trim(),l.value))}return(g,O)=>(v(),x("div",r7,[d("div",n7,[O[4]||(O[4]=d("span",{class:"text-xs font-mono text-retro-text font-semibold uppercase tracking-wide"}," Finalize ",-1)),d("button",{type:"button",class:"p-0.5 text-retro-muted hover:text-retro-text transition-colors",title:"Cancel",onClick:O[0]||(O[0]=y=>n("cancel"))},[ee(m(Pt),{class:"w-4 h-4"})])]),d("div",s7,[d("div",i7,[O[5]||(O[5]=d("span",{class:"text-retro-muted"},"target:",-1)),d("div",o7,[He(d("select",{"onUpdate:modelValue":O[1]||(O[1]=y=>l.value=y),disabled:o.value||u.value,class:"appearance-none bg-retro-black border border-retro-border rounded px-2 py-0.5 pr-6 text-xs font-mono text-retro-cyan focus:outline-none focus:border-retro-cyan cursor-pointer disabled:opacity-40"},[u.value?(v(),x("option",{key:0,value:r.baseBranch},B(r.baseBranch),9,l7)):U("",!0),(v(!0),x(we,null,Fe(c.value,y=>(v(),x("option",{key:y,value:y},B(y),9,c7))),128))],8,a7),[[ms,l.value]]),ee(m(Su),{class:"absolute right-1 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-retro-muted pointer-events-none"})])]),d("div",u7,[O[6]||(O[6]=d("span",{class:"text-retro-muted"},"commits:",-1)),d("span",h7,B(i.value!==null?i.value:"..."),1)])]),d("div",d7,[He(d("textarea",{"onUpdate:modelValue":O[2]||(O[2]=y=>s.value=y),placeholder:"Squash commit message...",rows:"2",class:"w-full px-2 py-1.5 pr-8 text-xs font-mono bg-retro-black border border-retro-border rounded text-retro-text placeholder-retro-subtle focus:outline-none focus:border-retro-cyan resize-none",disabled:o.value||a.value},null,8,f7),[[Xt,s.value]]),d("button",{type:"button",disabled:o.value||a.value,class:"absolute right-1.5 top-1.5 p-0.5 rounded text-retro-muted hover:text-retro-cyan transition-colors disabled:opacity-40",title:"Generate commit message",onClick:p},[ee(m(ol),{class:Re(["w-4 h-4",{"animate-spin":a.value}])},null,8,["class"])],8,p7)]),d("div",m7,[d("button",{type:"button",disabled:!s.value.trim()||o.value,class:"flex items-center gap-1 px-3 py-1 text-xs font-mono rounded border transition-colors bg-retro-green/10 border-retro-green/50 text-retro-green hover:bg-retro-green/20 disabled:opacity-40 disabled:cursor-not-allowed",onClick:f},[ee(m(wu),{class:"w-3.5 h-3.5"}),Xe(" "+B(o.value?"Finalizing...":"Confirm"),1)],8,g7),d("button",{type:"button",disabled:o.value,class:"px-3 py-1 text-xs font-mono rounded border border-retro-border text-retro-muted hover:text-retro-text hover:border-retro-text/30 transition-colors disabled:opacity-40",onClick:O[3]||(O[3]=y=>n("cancel"))}," Cancel ",8,O7)])]))}}),b7={class:"px-4 py-3 border-b border-retro-border bg-retro-dark/80 space-y-3"},x7={class:"flex items-center justify-between"},y7={class:"space-y-1 text-xs font-mono"},k7={class:"flex items-center gap-2"},w7={class:"text-retro-cyan"},S7={class:"flex items-center gap-2"},$7={class:"relative"},C7=["disabled"],Q7=["value"],P7=["value"],T7={class:"flex items-center gap-2"},M7={class:"text-retro-text"},A7={class:"flex items-center gap-2"},_7=["disabled"],R7=["disabled"],B7=Ie({__name:"RebaseConfirm",props:{baseBranch:{},worktreeBranch:{},worktreePath:{}},emits:["confirm","cancel"],setup(r,{emit:e}){const t=r,n=e,s=_(null),i=_(!1),o=_(t.baseBranch),a=_([]),l=_(!1),c=yu();async function u(p){try{const f=await $fetch("/api/chat/compare",{params:{worktreePath:t.worktreePath,baseBranch:p}});s.value=f.ahead}catch{s.value=null}}mt(async()=>{const p=u(o.value),f=(async()=>{l.value=!0;try{await c.initialize();const g=await $fetch("/api/git/branches",{query:{workingDirectory:c.workingDirectory}});a.value=g.branches.filter(O=>!O.isRemote&&!O.name.startsWith("sc/")).map(O=>O.name),a.value.length>0&&!a.value.includes(o.value)&&(o.value=a.value.includes("main")?"main":a.value.includes("master")?"master":a.value[0])}catch{a.value=[]}finally{l.value=!1}})();await Promise.all([p,f])}),ze(o,p=>{u(p)});function h(){i.value=!0,n("confirm",o.value)}return(p,f)=>(v(),x("div",b7,[d("div",x7,[f[3]||(f[3]=d("span",{class:"text-xs font-mono text-retro-text font-semibold uppercase tracking-wide"}," Rebase Worktree ",-1)),d("button",{type:"button",class:"p-0.5 text-retro-muted hover:text-retro-text transition-colors",title:"Cancel",onClick:f[0]||(f[0]=g=>n("cancel"))},[ee(m(Pt),{class:"w-4 h-4"})])]),d("div",y7,[d("div",k7,[f[4]||(f[4]=d("span",{class:"text-retro-muted"},"worktree:",-1)),d("span",w7,B(r.worktreeBranch),1)]),d("div",S7,[f[5]||(f[5]=d("span",{class:"text-retro-muted"},"target:",-1)),d("div",$7,[He(d("select",{"onUpdate:modelValue":f[1]||(f[1]=g=>o.value=g),disabled:i.value||l.value,class:"appearance-none bg-retro-black border border-retro-border rounded px-2 py-0.5 pr-6 text-xs font-mono text-retro-cyan focus:outline-none focus:border-retro-cyan cursor-pointer disabled:opacity-40"},[l.value?(v(),x("option",{key:0,value:r.baseBranch},B(r.baseBranch),9,Q7)):U("",!0),(v(!0),x(we,null,Fe(a.value,g=>(v(),x("option",{key:g,value:g},B(g),9,P7))),128))],8,C7),[[ms,o.value]]),ee(m(Su),{class:"absolute right-1 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-retro-muted pointer-events-none"})])]),d("div",T7,[f[6]||(f[6]=d("span",{class:"text-retro-muted"},"commits ahead:",-1)),d("span",M7,B(s.value!==null?s.value:"..."),1)])]),d("div",A7,[d("button",{type:"button",disabled:i.value,class:"flex items-center gap-1 px-3 py-1 text-xs font-mono rounded border transition-colors bg-retro-cyan/10 border-retro-cyan/50 text-retro-cyan hover:bg-retro-cyan/20 disabled:opacity-40 disabled:cursor-not-allowed",onClick:h},[ee(m(wu),{class:"w-3.5 h-3.5"}),Xe(" "+B(i.value?"Rebasing...":"Confirm"),1)],8,_7),d("button",{type:"button",disabled:i.value,class:"px-3 py-1 text-xs font-mono rounded border border-retro-border text-retro-muted hover:text-retro-text hover:border-retro-text/30 transition-colors disabled:opacity-40",onClick:f[2]||(f[2]=g=>n("cancel"))}," Cancel ",8,R7)])]))}}),Z7={class:"flex-1 flex flex-col overflow-hidden"},E7={class:"flex-shrink-0 px-4 py-2 border-b border-retro-border flex items-center justify-between bg-retro-dark"},D7={class:"text-xs font-mono text-retro-text truncate"},L7={class:"flex items-center gap-2 flex-shrink-0"},X7=["title"],I7=["disabled"],V7=["disabled"],z7={key:5,class:"text-xs font-mono text-retro-green"},N7={key:6,class:"text-[11px] font-mono text-retro-muted"},W7={key:0,class:"flex items-center justify-center h-full text-retro-muted text-xs font-mono"},j7=["innerHTML"],q7=["value","readonly"],Y7={key:2,class:"flex-shrink-0 px-4 py-2 border-t border-retro-border bg-retro-yellow/10 text-retro-yellow text-xs font-mono"},F7=Ie({__name:"ConflictFileEditor",props:{file:{},resolved:{type:Boolean},aiResolving:{type:Boolean}},emits:["resolve","aiResolve"],setup(r,{emit:e}){const t=r,n=e,s=_(t.file.content),i=_(!1),o=_(""),a=_(!1);ze(()=>t.file.path,()=>{s.value=t.file.content,i.value=!1,f()}),ze(()=>t.file.content,()=>{i.value||(s.value=t.file.content,f())});const l=/^<{7}\s.*\n([\s\S]*?)^={7}\n([\s\S]*?)^>{7}\s.*\n/gm,c=/^<{7}[^\n]*\n([\s\S]*?)^={7}[^\n]*\n([\s\S]*?)^>{7}[^\n]*\n?/gm,u=J(()=>/^<{7}\s/m.test(s.value)),h=J(()=>b(s.value).length);function p(ne){const L=ne.split(".").pop()?.toLowerCase()||"";return{ts:"typescript",tsx:"tsx",js:"javascript",jsx:"jsx",vue:"vue",html:"html",css:"css",scss:"scss",less:"less",json:"json",yaml:"yaml",yml:"yaml",md:"markdown",py:"python",rb:"ruby",go:"go",rs:"rust",java:"java",kt:"kotlin",swift:"swift",sh:"bash",zsh:"bash",sql:"sql",graphql:"graphql",xml:"xml",svg:"xml",toml:"toml",ini:"ini",dockerfile:"dockerfile"}[L]||"text"}async function f(){a.value=!0;try{const{codeToHtml:ne}=await as(async()=>{const{codeToHtml:me}=await import("./ovAaTTn7.js");return{codeToHtml:me}},__vite__mapDeps([3,1,2]),import.meta.url),L=p(t.file.path),Z=s.value.split(`
|
|
73
|
+
`);let z="",q=!1,V=!1,X=0,N=-1;for(const me of Z){X++;const K=/^<{7}\s/.test(me),he=/^={7}$/.test(me),$=/^>{7}\s/.test(me);if(K){N++,q=!0,V=!1,z+=`<div class="conflict-line conflict-marker-line" data-line="${X}"><span class="line-number">${X}</span><span class="line-content conflict-marker">${g(me)}</span></div>
|
|
74
|
+
`,t.resolved||(z+=A(N));continue}if(he&&q){q=!1,V=!0,z+=`<div class="conflict-line conflict-marker-line" data-line="${X}"><span class="line-number">${X}</span><span class="line-content conflict-marker">${g(me)}</span></div>
|
|
75
|
+
`;continue}if($){V=!1,z+=`<div class="conflict-line conflict-marker-line" data-line="${X}"><span class="line-number">${X}</span><span class="line-content conflict-marker">${g(me)}</span></div>
|
|
76
|
+
`;continue}let w=g(me);try{const G=(await ne(me||" ",{lang:L,theme:"vitesse-dark"})).match(/<code[^>]*><span class="line">(.*?)<\/span><\/code>/s);G&&(w=G[1])}catch{}let M="";q?M="conflict-ours":V&&(M="conflict-theirs"),z+=`<div class="conflict-line ${M}" data-line="${X}"><span class="line-number">${X}</span><span class="line-content">${w}</span></div>
|
|
77
|
+
`}o.value=z}catch{const ne=s.value.split(`
|
|
78
|
+
`);o.value=ne.map((L,D)=>{const Z=D+1;return`<div class="conflict-line" data-line="${Z}"><span class="line-number">${Z}</span><span class="line-content">${g(L)}</span></div>`}).join(`
|
|
79
|
+
`)}finally{a.value=!1}}function g(ne){return ne.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function O(){P("ours")}function y(){P("theirs")}function b(ne){const L=[],D=new RegExp(c.source,c.flags);let Z=null,z=0;for(;(Z=D.exec(ne))!==null;)L.push({index:z,start:Z.index,end:D.lastIndex,ours:Z[1]??"",theirs:Z[2]??""}),z++;return L}function C(ne,L){return ne?L?ne.endsWith(`
|
|
80
|
+
`)||L.startsWith(`
|
|
81
|
+
`)?`${ne}${L}`:`${ne}
|
|
82
|
+
${L}`:ne:L}function P(ne,L){const D=s.value,Z=b(D);if(Z.length){if(typeof L=="number"){const z=Z.find(V=>V.index===L);if(!z)return;const q=ne==="ours"?z.ours:ne==="theirs"?z.theirs:C(z.ours,z.theirs);s.value=D.slice(0,z.start)+q+D.slice(z.end)}else s.value=D.replace(l,(z,q,V)=>ne==="ours"?q:ne==="theirs"?V:C(q,V));f()}}function A(ne){return`<div class="conflict-inline-actions" data-conflict-controls="${ne}">
|
|
83
|
+
<button type="button" class="conflict-inline-button conflict-inline-button-ours" data-conflict-index="${ne}" data-conflict-action="ours">Accept Ours</button>
|
|
84
|
+
<button type="button" class="conflict-inline-button conflict-inline-button-theirs" data-conflict-index="${ne}" data-conflict-action="theirs">Accept Theirs</button>
|
|
85
|
+
<button type="button" class="conflict-inline-button conflict-inline-button-both" data-conflict-index="${ne}" data-conflict-action="both">Accept Both</button>
|
|
86
|
+
</div>
|
|
87
|
+
`}function E(ne){const L=ne.target?.closest("button[data-conflict-action]");if(!L||t.resolved)return;const D=L.dataset.conflictAction,Z=L.dataset.conflictIndex;if(!D||Z===void 0)return;const z=Number.parseInt(Z,10);Number.isNaN(z)||P(D,z)}function F(){u.value||n("resolve",t.file.path,s.value)}function I(){n("aiResolve",t.file.path)}function oe(){i.value=!i.value,i.value||f()}function ie(ne){const L=ne.target;s.value=L.value}return mt(()=>{f()}),(ne,L)=>(v(),x("div",Z7,[d("div",E7,[d("span",D7,B(r.file.path),1),d("div",L7,[r.resolved?U("",!0):(v(),x("button",{key:0,type:"button",class:Re(["px-2 py-0.5 text-xs font-mono rounded border transition-colors",i.value?"border-retro-yellow/50 text-retro-yellow hover:bg-retro-yellow/10":"border-retro-subtle/50 text-retro-muted hover:bg-retro-subtle/10"]),title:i.value?"Switch to highlighted view":"Switch to edit mode",onClick:oe},[i.value?(v(),Oe(m(Fp),{key:0,class:"w-3.5 h-3.5 inline-block"})):(v(),Oe(m(Cu),{key:1,class:"w-3.5 h-3.5 inline-block"}))],10,X7)),!r.resolved&&u.value?(v(),x("button",{key:1,type:"button",disabled:r.aiResolving,class:"flex items-center gap-1 px-2 py-0.5 text-xs font-mono rounded border border-retro-orange/50 text-retro-orange hover:bg-retro-orange/10 transition-colors disabled:opacity-40 disabled:cursor-not-allowed",onClick:I},[ee(m(ol),{class:"w-3.5 h-3.5"}),Xe(" "+B(r.aiResolving?"Resolving...":"AI Resolve"),1)],8,I7)):U("",!0),!r.resolved&&u.value?(v(),x("button",{key:2,type:"button",class:"px-2 py-0.5 text-xs font-mono rounded border border-retro-cyan/50 text-retro-cyan hover:bg-retro-cyan/10 transition-colors",onClick:O}," Accept All Ours ")):U("",!0),!r.resolved&&u.value?(v(),x("button",{key:3,type:"button",class:"px-2 py-0.5 text-xs font-mono rounded border border-retro-magenta/50 text-retro-magenta hover:bg-retro-magenta/10 transition-colors",onClick:y}," Accept All Theirs ")):U("",!0),r.resolved?U("",!0):(v(),x("button",{key:4,type:"button",disabled:u.value,class:"px-2 py-0.5 text-xs font-mono rounded border border-retro-green/50 text-retro-green hover:bg-retro-green/10 transition-colors disabled:opacity-40 disabled:cursor-not-allowed",onClick:F}," Mark Resolved ",8,V7)),r.resolved?(v(),x("span",z7," Resolved ")):h.value>0?(v(),x("span",N7,B(h.value)+" conflict "+B(h.value===1?"block":"blocks"),1)):U("",!0)])]),i.value?U("",!0):(v(),x("div",{key:0,class:Re(["flex-1 overflow-auto bg-retro-black conflict-viewer",{"opacity-60":r.resolved}]),onClick:E},[a.value?(v(),x("div",W7," Highlighting... ")):(v(),x("div",{key:1,class:"conflict-code",innerHTML:o.value},null,8,j7))],2)),i.value?(v(),x("textarea",{key:1,value:s.value,readonly:r.resolved,class:Re(["flex-1 w-full p-4 font-mono text-xs bg-retro-black text-retro-text resize-none focus:outline-none leading-relaxed",{"opacity-60":r.resolved}]),spellcheck:"false",onInput:ie},null,42,q7)):U("",!0),u.value&&!r.resolved?(v(),x("div",Y7," File still contains conflict markers. Remove all <<<<<<<, =======, >>>>>>> markers to resolve. ")):U("",!0)]))}}),U7={key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/60"},G7={class:"w-full max-w-5xl mx-4 my-8 h-[80vh] bg-retro-dark border border-retro-border rounded-lg shadow-xl flex flex-col overflow-hidden"},H7={class:"flex-shrink-0 px-4 py-3 border-b border-retro-border flex items-center justify-between"},K7={class:"flex items-center gap-3"},J7={class:"text-xs font-mono text-retro-muted"},eZ={class:"flex items-center gap-2"},tZ=["disabled"],rZ=["disabled"],nZ=["disabled"],sZ={key:0,class:"flex-1 flex items-center justify-center text-retro-muted text-sm font-mono"},iZ={key:1,class:"flex-1 flex items-center justify-center text-retro-red text-sm font-mono"},oZ={key:2,class:"flex-1 flex overflow-hidden"},aZ={class:"w-64 flex-shrink-0 border-r border-retro-border overflow-y-auto bg-retro-dark"},lZ={class:"py-1"},cZ=["onClick"],uZ={key:1,class:"flex-1 flex items-center justify-center text-retro-muted text-sm font-mono"},hZ=Ie({__name:"ConflictResolutionModal",emits:["close"],setup(r,{emit:e}){const t=e,n=kr(),s=_(null),i=_(!1),o=_(!1),a=_(null),l=_(!1),c=J(()=>n.conflictState?.files??[]),u=J(()=>n.conflictState?.resolvedFiles??new Set),h=J(()=>c.value.length),p=J(()=>u.value.size),f=J(()=>h.value>0&&p.value>=h.value),g=J(()=>h.value-p.value),O=J(()=>s.value?c.value.find(I=>I.path===s.value)??null:null);function y(I){return u.value.has(I)}function b(I){s.value=I}async function C(I,oe){await n.resolveConflictFile(I,oe)}async function P(I){a.value=I,await n.aiResolveConflictFile(I),a.value=null}async function A(){l.value=!0,await n.aiResolveAllConflicts(),l.value=!1}async function E(){i.value=!0;const I=await n.continueRebase();i.value=!1,I.success&&t("close")}async function F(){o.value=!0,await n.abortRebase(),o.value=!1,t("close")}return(I,oe)=>(v(),Oe(xr,{to:"body"},[ee(dn,{"enter-active-class":"transition-opacity duration-200","enter-from-class":"opacity-0","enter-to-class":"opacity-100","leave-active-class":"transition-opacity duration-200","leave-from-class":"opacity-100","leave-to-class":"opacity-0"},{default:ct(()=>[m(n).conflictState?(v(),x("div",U7,[d("div",G7,[d("div",H7,[d("div",K7,[ee(m(_n),{class:"w-5 h-5 text-retro-yellow"}),oe[0]||(oe[0]=d("h3",{class:"text-sm font-mono text-retro-text font-semibold"},"Resolve Rebase Conflicts",-1)),d("span",J7,B(p.value)+"/"+B(h.value)+" resolved ",1)]),d("div",eZ,[g.value>0?(v(),x("button",{key:0,type:"button",disabled:l.value||i.value||o.value,class:"flex items-center gap-1 px-3 py-1.5 text-xs font-mono rounded border transition-colors bg-retro-orange/10 border-retro-orange/50 text-retro-orange hover:bg-retro-orange/20 disabled:opacity-40 disabled:cursor-not-allowed",onClick:A},[ee(m(ol),{class:"w-3.5 h-3.5"}),Xe(" "+B(l.value?"AI Resolving...":`AI Resolve All (${g.value})`),1)],8,tZ)):U("",!0),d("button",{type:"button",disabled:!f.value||i.value||o.value,class:"flex items-center gap-1 px-3 py-1.5 text-xs font-mono rounded border transition-colors bg-retro-green/10 border-retro-green/50 text-retro-green hover:bg-retro-green/20 disabled:opacity-40 disabled:cursor-not-allowed",onClick:E},B(i.value?"Continuing...":"Continue Rebase"),9,rZ),d("button",{type:"button",disabled:i.value||o.value,class:"px-3 py-1.5 text-xs font-mono rounded border border-retro-red/50 text-retro-red hover:bg-retro-red/10 transition-colors disabled:opacity-40",onClick:F},B(o.value?"Aborting...":"Abort"),9,nZ)])]),m(n).conflictState?.loading?(v(),x("div",sZ," Loading conflict files... ")):m(n).conflictState?.error?(v(),x("div",iZ,B(m(n).conflictState.error),1)):(v(),x("div",oZ,[d("div",aZ,[d("div",lZ,[(v(!0),x(we,null,Fe(c.value,ie=>(v(),x("button",{key:ie.path,type:"button",class:Re(["w-full text-left px-3 py-2 text-xs font-mono flex items-center gap-2 transition-colors hover:bg-retro-panel",{"bg-retro-panel":s.value===ie.path}]),onClick:ne=>b(ie.path)},[y(ie.path)?(v(),Oe(m(ku),{key:0,class:"w-3.5 h-3.5 text-retro-green flex-shrink-0"})):(v(),Oe(m(po),{key:1,class:"w-3.5 h-3.5 text-retro-yellow flex-shrink-0"})),d("span",{class:Re(["truncate",y(ie.path)?"text-retro-green":"text-retro-yellow"])},B(ie.path),3)],10,cZ))),128))])]),O.value?(v(),Oe(F7,{key:0,file:O.value,resolved:y(O.value.path),"ai-resolving":a.value===O.value.path||l.value,onResolve:C,onAiResolve:P},null,8,["file","resolved","ai-resolving"])):(v(),x("div",uZ," Select a file to resolve "))]))])])):U("",!0)]),_:1})]))}}),dZ={key:0,class:"w-full max-w-md mx-4 bg-retro-dark border border-retro-border rounded-lg shadow-xl"},fZ={class:"flex items-center justify-between p-4 border-b border-retro-border"},pZ={class:"flex items-center gap-2"},mZ={class:"p-4"},gZ={class:"mt-2 text-sm text-retro-text font-mono truncate"},OZ={class:"flex justify-end gap-3 p-4 border-t border-retro-border"},vZ=Ie({__name:"DeleteConfirmModal",props:{show:{type:Boolean},title:{}},emits:["confirm","cancel"],setup(r,{emit:e}){const t=e;function n(s){s.target===s.currentTarget&&t("cancel")}return(s,i)=>(v(),Oe(xr,{to:"body"},[ee(dn,{"enter-active-class":"transition-opacity duration-200","enter-from-class":"opacity-0","enter-to-class":"opacity-100","leave-active-class":"transition-opacity duration-200","leave-from-class":"opacity-100","leave-to-class":"opacity-0"},{default:ct(()=>[r.show?(v(),x("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/60",onClick:n},[ee(dn,{"enter-active-class":"transition-all duration-200","enter-from-class":"opacity-0 scale-95","enter-to-class":"opacity-100 scale-100","leave-active-class":"transition-all duration-200","leave-from-class":"opacity-100 scale-100","leave-to-class":"opacity-0 scale-95"},{default:ct(()=>[r.show?(v(),x("div",dZ,[d("div",fZ,[d("div",pZ,[ee(m(_n),{class:"w-5 h-5 text-retro-red"}),i[3]||(i[3]=d("h3",{class:"text-lg font-mono text-retro-text"},"Delete Conversation",-1))]),d("button",{onClick:i[0]||(i[0]=o=>t("cancel")),class:"p-1 hover:bg-retro-panel rounded transition-colors"},[ee(m(Pt),{class:"w-5 h-5 text-retro-muted"})])]),d("div",mZ,[i[4]||(i[4]=d("p",{class:"text-sm text-retro-muted font-mono"}," Are you sure you want to delete this conversation? ",-1)),d("p",gZ,' "'+B(r.title)+'" ',1),i[5]||(i[5]=d("p",{class:"mt-3 text-xs text-retro-muted"}," This action cannot be undone. ",-1))]),d("div",OZ,[d("button",{onClick:i[1]||(i[1]=o=>t("cancel")),class:"px-4 py-2 text-sm font-mono text-retro-muted border border-retro-border rounded hover:bg-retro-panel transition-colors"}," Cancel "),d("button",{onClick:i[2]||(i[2]=o=>t("confirm")),class:"px-4 py-2 text-sm font-mono text-white bg-retro-red/80 border border-retro-red rounded hover:bg-retro-red transition-colors"}," Delete ")])])):U("",!0)]),_:1})])):U("",!0)]),_:1})]))}}),bZ={class:"h-full flex flex-col bg-retro-black"},xZ={class:"flex-shrink-0 h-12 flex items-center justify-between px-4 border-b border-retro-border bg-retro-dark"},yZ={class:"flex items-center gap-2 min-w-0"},kZ={class:"text-xs font-mono text-retro-text truncate"},wZ={class:"flex items-center gap-1"},SZ=["disabled","title"],$Z=["title"],CZ=["title"],QZ=["disabled"],PZ={key:4,class:"flex-shrink-0 px-4 py-2 border-b border-retro-border bg-retro-green/10 text-retro-green text-xs font-mono text-center"},TZ={class:"flex-1 min-h-0 flex flex-col"},MZ=Ie({__name:"ChatPanel",setup(r){const e=kr(),t=i1(),{disconnectConversation:n}=Sl();mt(async()=>{try{const X=await $fetch("/api/cwd");e.setCwd(X.cwd)}catch{}});const s=J(()=>e.activeConversation?.title||"New Chat"),i=_(!1),o=J(()=>t.isChatFullscreen),a=_(!1);ze(a,X=>{e.setDebugStreamEnabled(X)}),St(()=>{e.setDebugStreamEnabled(!1)});function l(){t.toggleChatFullscreen()}async function c(){i.value=!1;const X=e.activeConversationId;X&&(n(X),await e.deleteConversation(X)),e.clearMessages()}function u(){e.hasMessages&&(i.value=!0)}function h(){i.value=!1}const p=_(!1),f=_(null),g=J(()=>e.activeConversation?.finalized===!0),O=J(()=>g.value),y=_(null),b=_(!1);async function C(){const X=e.activeConversation;if(!X?.worktreePath||!X?.baseBranch){y.value=null;return}b.value=!0;try{const N=await $fetch("/api/chat/compare",{params:{worktreePath:X.worktreePath,baseBranch:X.baseBranch}});y.value=N}catch{y.value=null}finally{b.value=!1}}ze(()=>[e.activeConversationId,e.activeConversation?.worktreePath,e.activeConversation?.baseBranch,e.activeConversation?.lastCommitTime],()=>{C()},{immediate:!0});const P=J(()=>y.value?y.value.ahead===0&&y.value.behind===0:!1),A=J(()=>{const X=e.activeConversation;return X?.hasWorktree&&!X?.finalized}),E=J(()=>{const X=e.activeConversation;return!!X?.hasWorktree&&!X?.finalized&&!e.isActiveConversationStreaming&&!P.value});function F(){p.value=!0,f.value=null}async function I(X,N){const me=e.activeConversationId;if(!me)return;const K=await e.finalizeConversation(me,X,N);if(p.value=!1,K.success)f.value={type:"success",message:`Merged to ${N}`},setTimeout(()=>{f.value=null},5e3);else if(K.rebaseInProgress)f.value=null;else{const he=K.conflictFiles?.length?`Conflict in: ${K.conflictFiles.join(", ")}`:K.error||"Finalize failed";f.value={type:"error",message:he}}}function oe(){p.value=!1}function ie(){if(!e.conflictState&&e.activeConversation?.hasWorktree){const X=e.activeConversation?.baseBranch||"main";f.value={type:"success",message:`Rebased onto ${X}`},setTimeout(()=>{f.value=null},5e3)}else f.value=null}const ne=_(!1),L=J(()=>!!e.activeConversation?.previewBranch);async function D(){const X=e.activeConversationId;if(!X)return;ne.value=!0,f.value=null;const N=L.value,me=await e.togglePreview(X);if(me.success){const K=N?`Switched back to ${e.activeConversation?.baseBranch}`:"Preview active — main worktree updated";f.value={type:"success",message:K},setTimeout(()=>{f.value=null},3e3)}else f.value={type:"error",message:me.error||"Preview toggle failed"};ne.value=!1}const Z=_(!1);function z(){Z.value=!0,f.value=null}async function q(X){const N=e.activeConversationId;if(!N)return;const me=await e.rebaseConversation(N,X);Z.value=!1,me.success?(f.value={type:"success",message:`Rebased onto ${X}`},setTimeout(()=>{f.value=null},5e3)):me.rebaseInProgress?f.value=null:f.value={type:"error",message:me.error||"Rebase failed"}}function V(){Z.value=!1}return(X,N)=>(v(),x("div",bZ,[d("div",xZ,[d("div",yZ,[d("span",kZ,B(m(s)),1)]),d("div",wZ,[m(A)?(v(),x("button",{key:0,disabled:m(ne),class:"p-1.5 rounded text-retro-muted hover:text-retro-cyan hover:bg-retro-panel transition-colors disabled:opacity-40 disabled:cursor-not-allowed",title:m(L)?"End preview: switch back to base branch":"Preview: test worktree changes in main worktree",onClick:D},[m(L)?(v(),Oe(m(J1),{key:0,class:"w-4 h-4 text-retro-cyan"})):(v(),Oe(m(Fp),{key:1,class:"w-4 h-4"}))],8,SZ)):U("",!0),m(E)?(v(),x("button",{key:1,class:"p-1.5 rounded text-retro-muted hover:text-retro-cyan hover:bg-retro-panel transition-colors",title:"Rebase: sync worktree onto target base branch",onClick:z},[...N[2]||(N[2]=[Zp('<svg class="w-4 h-4" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><circle cx="7" cy="4.5" r="1.5" fill="currentColor"></circle><circle cx="18" cy="20" r="1.5" fill="currentColor"></circle><circle cx="12" cy="7" r="1.4" fill="currentColor" opacity="0.9"></circle><path d="M7 6V16M7 16L4.5 13.5M7 16L9.5 13.5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"></path><path d="M8.4 7H12.5C15.5376 7 18 9.46243 18 12.5V18.5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"></path><path d="M15.5 16L18 18.5L20.5 16" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"></path></svg>',1)])])):U("",!0),m(E)?(v(),x("button",{key:2,class:"p-1.5 rounded text-retro-muted hover:text-retro-cyan hover:bg-retro-panel transition-colors",title:"Finalize: squash & merge to base branch",onClick:F},[ee(m(ku),{class:"w-4 h-4"})])):U("",!0),d("button",{class:"p-1.5 rounded text-retro-muted hover:text-retro-cyan hover:bg-retro-panel transition-colors",title:m(o)?"Exit fullscreen chat":"Fullscreen chat",onClick:l},[m(o)?(v(),Oe(m(zp),{key:0,class:"w-4 h-4"})):(v(),Oe(m(Np),{key:1,class:"w-4 h-4"}))],8,$Z),d("button",{class:"p-1.5 rounded text-retro-muted hover:text-retro-cyan hover:bg-retro-panel transition-colors",title:m(a)?"Hide debug stream":"Show debug stream",onClick:N[0]||(N[0]=me=>a.value=!m(a))},[ee(m(N1),{class:Re(["w-4 h-4",m(a)?"text-retro-cyan":""])},null,8,["class"])],8,CZ),d("button",{disabled:!m(e).hasMessages,class:"p-1.5 rounded text-retro-muted hover:text-retro-cyan hover:bg-retro-panel disabled:opacity-30 disabled:cursor-not-allowed transition-colors",title:"New conversation",onClick:u},[ee(m(fn),{class:"w-4 h-4"})],8,QZ)])]),ee(vZ,{show:m(i),title:m(s),onConfirm:c,onCancel:h},null,8,["show","title"]),m(p)&&m(e).activeConversation?.hasWorktree?(v(),Oe(v7,{key:0,"base-branch":m(e).activeConversation.baseBranch||"main","worktree-branch":m(e).activeConversation.worktreeBranch||"","worktree-path":m(e).activeConversation.worktreePath||"",onConfirm:I,onCancel:oe},null,8,["base-branch","worktree-branch","worktree-path"])):U("",!0),m(Z)&&m(e).activeConversation?.hasWorktree?(v(),Oe(B7,{key:1,"base-branch":m(e).activeConversation.baseBranch||"main","worktree-branch":m(e).activeConversation.worktreeBranch||"","worktree-path":m(e).activeConversation.worktreePath||"",onConfirm:q,onCancel:V},null,8,["base-branch","worktree-branch","worktree-path"])):U("",!0),m(e).conflictState?(v(),Oe(hZ,{key:2,onClose:ie})):U("",!0),m(f)?(v(),x("div",{key:3,class:Re(["flex-shrink-0 px-4 py-2 border-b border-retro-border text-xs font-mono",m(f).type==="success"?"bg-retro-green/10 text-retro-green":"bg-retro-red/10 text-retro-red"])},[Xe(B(m(f).message)+" ",1),m(f).type==="error"?(v(),x("button",{key:0,class:"ml-2 underline hover:no-underline",onClick:N[1]||(N[1]=me=>f.value=null)}," dismiss ")):U("",!0)],2)):U("",!0),m(g)?(v(),x("div",PZ," This conversation has been finalized and is read-only. ")):U("",!0),d("div",TZ,[ee(lB,{class:"flex-1 overflow-hidden"}),m(a)?(v(),Oe(t7,{key:0})):U("",!0)]),ee(jB,{disabled:m(O)},null,8,["disabled"])]))}}),AZ={class:"flex-shrink-0 flex items-center justify-between px-4 py-2 border-b border-retro-border bg-retro-panel"},_Z={class:"flex items-center gap-2 min-w-0"},RZ=["title"],BZ={class:"text-retro-text font-mono text-sm truncate"},ZZ={class:"text-retro-muted"},EZ={class:"text-retro-text"},DZ={class:"text-retro-muted font-mono text-xs flex-shrink-0"},LZ={class:"flex-1 overflow-auto"},XZ={key:0,class:"flex items-center justify-center gap-2 text-retro-muted text-sm py-8"},IZ={key:1,class:"flex items-center justify-center text-retro-muted text-sm py-8"},VZ={key:2,class:"flex items-center justify-center text-retro-muted text-sm py-8"},zZ={key:3,class:"w-full text-xs font-mono border-collapse diff-table"},NZ={key:0,class:"diff-warning"},WZ={key:0,colspan:"3",class:"diff-hunk-header px-4 py-1"},jZ={class:"diff-line-num select-none text-right px-2 w-12"},qZ={class:"diff-line-num select-none text-right px-2 w-12 border-r border-retro-border"},YZ={class:"diff-line-content px-3 whitespace-pre-wrap break-all"},FZ={key:0,class:"diff-sign"},UZ={key:1,class:"diff-sign"},GZ={key:2,class:"diff-sign"},HZ={key:4,class:"flex items-center justify-center text-retro-muted text-sm py-8"},KZ=Ie({__name:"GitFileDiffViewer",props:{file:{},commitHash:{},content:{},loading:{type:Boolean}},emits:["close"],setup(r,{emit:e}){const t=r,n=e,s=_(null),i=J(()=>t.commitHash.substring(0,7)),o=J(()=>Ls[t.file.status]||{label:t.file.status,colorClass:"text-retro-muted"}),a=J(()=>t.file.status==="R"&&t.file.oldPath);function l(c){c.key==="Escape"&&(c.preventDefault(),c.stopPropagation(),n("close"))}return mt(()=>{s.value?.focus()}),(c,u)=>(v(),x("div",{ref_key:"containerRef",ref:s,tabindex:0,onKeydown:l,class:"flex flex-col h-full bg-retro-dark focus:outline-none","aria-label":"File diff viewer",role:"region"},[d("div",AZ,[d("div",_Z,[d("span",{class:Re(["flex-shrink-0 w-5 h-5 flex items-center justify-center text-xs font-bold rounded",o.value.colorClass]),title:o.value.label},B(r.file.status),11,RZ),d("span",BZ,[a.value&&r.file.oldPath?(v(),x(we,{key:0},[d("span",ZZ,B(r.file.oldPath),1),u[1]||(u[1]=d("span",{class:"text-retro-yellow mx-1"},"→",-1)),d("span",EZ,B(r.file.path),1)],64)):(v(),x(we,{key:1},[Xe(B(r.file.path),1)],64))]),d("span",DZ," @ "+B(i.value),1)]),d("button",{onClick:u[0]||(u[0]=h=>n("close")),class:"p-1 hover:bg-retro-dark rounded transition-colors flex-shrink-0 focus:outline-none focus:ring-2 focus:ring-retro-cyan","aria-label":"Close diff viewer",title:"Close (Esc)"},[ee(m(Pt),{class:"w-5 h-5 text-retro-muted hover:text-retro-text"})])]),d("div",LZ,[r.loading?(v(),x("div",XZ,[...u[2]||(u[2]=[d("div",{class:"w-4 h-4 border-2 border-retro-muted border-t-retro-cyan rounded-full animate-spin"},null,-1),Xe(" Loading diff... ",-1)])])):r.content&&r.content.binary?(v(),x("div",IZ,[...u[3]||(u[3]=[d("span",{class:"bg-retro-panel px-4 py-2 rounded font-mono"}," Binary file — cannot display diff ",-1)])])):r.content&&r.content.lines.length===0?(v(),x("div",VZ,[...u[4]||(u[4]=[d("span",{class:"bg-retro-panel px-4 py-2 rounded font-mono"}," No changes in this file ",-1)])])):r.content?(v(),x("table",zZ,[d("tbody",null,[r.content.truncated?(v(),x("tr",NZ,[...u[5]||(u[5]=[d("td",{colspan:"3",class:"px-4 py-2 text-retro-yellow bg-retro-panel text-center"}," Diff truncated — file has more than 10,000 lines ",-1)])])):U("",!0),(v(!0),x(we,null,Fe(r.content.lines,(h,p)=>(v(),x("tr",{key:p,class:Re({"diff-add":h.type==="add","diff-delete":h.type==="delete","diff-context":h.type==="context","diff-header":h.type==="header"})},[h.type==="header"?(v(),x("td",WZ,B(h.content),1)):(v(),x(we,{key:1},[d("td",jZ,B(h.oldLineNumber??""),1),d("td",qZ,B(h.newLineNumber??""),1),d("td",YZ,[h.type==="add"?(v(),x("span",FZ,"+")):h.type==="delete"?(v(),x("span",UZ,"-")):(v(),x("span",GZ," ")),Xe(" "+B(h.content),1)])],64))],2))),128))])])):(v(),x("div",HZ," Failed to load diff content. "))])],544))}}),JZ=Gs(KZ,[["__scopeId","data-v-74bf9bf3"]]),e8={class:"fixed inset-0 z-50 flex items-center justify-center"},t8={class:"relative w-[90vw] max-w-lg bg-retro-black border border-retro-border rounded-lg shadow-2xl flex flex-col overflow-hidden"},r8={class:"flex-shrink-0 h-12 flex items-center justify-between px-4 border-b border-retro-border bg-retro-dark"},n8={class:"flex items-center gap-2"},s8={class:"text-sm font-mono text-retro-text"},i8={class:"p-6 overflow-y-auto max-h-[70vh] space-y-6"},o8={key:0},a8={class:"space-y-6"},l8={class:"space-y-1.5"},c8=["value","checked","onChange"],u8={class:"flex-1"},h8={class:"text-sm font-mono text-retro-text"},d8={class:"text-xs text-retro-muted leading-tight"},f8={class:"text-xs font-mono text-retro-muted"},p8={class:"text-xs text-retro-muted mb-3"},m8=["disabled"],g8={class:"space-y-1.5"},O8=["value","checked","onChange"],v8={class:"flex-1"},b8={class:"text-sm font-mono text-retro-text"},x8={class:"text-xs text-retro-muted leading-tight"},y8={key:1,class:"space-y-4"},k8={class:"space-y-1.5"},w8=["checked"],S8=["checked"],$8={class:"flex items-center justify-between px-3 py-2 rounded border border-retro-border bg-retro-panel"},C8={class:"text-xs font-mono text-retro-cyan"},Q8=Ie({__name:"SettingsModal",emits:["close"],setup(r,{emit:e}){const t=e,n=il(),s=g1(),i=mo(),o=_("main"),a=_(!1),l=J(()=>s.public.appVersion||"unknown"),c=[{value:"dark",label:"Dark",description:"Retro terminal theme with dark backgrounds"},{value:"light",label:"Light",description:"Bright theme for well-lit environments"}],u=[{value:"plan",label:ws.plan,description:_o.plan,icon:$u,color:"text-retro-cyan"},{value:"ask",label:ws.ask,description:_o.ask,icon:Qu,color:"text-retro-green"},{value:"auto",label:ws.auto,description:_o.auto,icon:jp,color:"text-retro-yellow"},{value:"bypass",label:ws.bypass,description:_o.bypass,icon:Pu,color:"text-retro-red"}],{data:h,pending:p,error:f}=gc("ai-providers",()=>$fetch("/api/ai/providers"),{server:!1}),g=J(()=>h.value?.providers??[]),O=J(()=>{const Z=f.value;return Z?Z instanceof Error?Z.message:String(Z):null}),{data:y,refresh:b}=gc("spec-search-status",()=>$fetch("/api/specs/status"),{server:!1,default:()=>null}),C=J(()=>{const Z=y.value;return Z?Z.isIndexing?`Indexing (${Z.currentJob||"running"})`:Z.schedulerActive?`Indexed ${Z.fileCount} files / ${Z.chunkCount} chunks`:"Scheduler inactive":"Status unavailable"});mt(()=>{n.hydrate()});const P=Z=>{n.setProviderSelection(Z),i.success("Settings saved")},A=()=>{o.value="provider"},E=()=>{o.value="main"},F=Z=>{n.setTheme(Z),i.success("Settings saved")},I=Z=>{n.setPermissionMode(Z),i.success("Settings saved")},oe=Z=>{n.setAutoGenerateCommitMessages(Z),i.success("Settings saved")},ie=()=>{t("close")},ne=async()=>{if(!a.value){a.value=!0;try{const Z=await $fetch("/api/specs/reindex",{method:"POST",body:{}});!Z.success&&Z.status==="already-indexing"?i.info("Spec index is already running"):i.success("Spec reindex started"),await b()}catch(Z){i.error(Z instanceof Error?Z.message:"Failed to start spec reindex")}finally{a.value=!1}}},L=Z=>{Z.key==="Escape"&&t("close")};mt(()=>{window.addEventListener("keydown",L)}),St(()=>{window.removeEventListener("keydown",L)});let D=null;return mt(()=>{D=Mu(()=>{b()},5e3)}),St(()=>{D&&clearInterval(D)}),(Z,z)=>(v(),Oe(xr,{to:"body"},[d("div",e8,[d("div",{class:"absolute inset-0 bg-black/70",onClick:ie}),d("div",t8,[d("div",r8,[d("div",n8,[o.value==="provider"?(v(),x("button",{key:0,type:"button",class:"p-1.5 rounded text-retro-muted hover:text-retro-text hover:bg-retro-panel transition-colors",title:"Back",onClick:E},[ee(m(V1),{class:"h-4 w-4"})])):U("",!0),d("h2",s8,B(o.value==="provider"?"AI Provider Settings":"Settings"),1)]),d("button",{type:"button",class:"p-1.5 rounded text-retro-muted hover:text-retro-text hover:bg-retro-panel transition-colors",title:"Close",onClick:z[0]||(z[0]=q=>t("close"))},[ee(m(Pt),{class:"h-4 w-4"})])]),d("div",i8,[o.value==="main"?(v(),x("section",o8,[d("div",a8,[d("section",null,[z[3]||(z[3]=d("h3",{class:"text-sm font-mono font-semibold text-retro-text mb-1"},"Theme",-1)),z[4]||(z[4]=d("p",{class:"text-xs text-retro-muted mb-3"}," Choose between dark and light appearance. ",-1)),d("div",l8,[(v(),x(we,null,Fe(c,q=>d("label",{key:q.value,class:Re(["flex items-center gap-3 px-3 py-2 rounded border cursor-pointer transition-colors",[m(n).theme===q.value?"border-retro-cyan bg-retro-cyan/10":"border-retro-border bg-retro-panel hover:border-retro-muted"]])},[d("input",{type:"radio",name:"theme",value:q.value,checked:m(n).theme===q.value,class:"w-3.5 h-3.5 text-retro-cyan accent-retro-cyan",onChange:V=>F(q.value)},null,40,c8),d("div",u8,[d("div",h8,B(q.label),1),d("div",d8,B(q.description),1)])],2)),64))])]),z[11]||(z[11]=d("div",{class:"border-t border-retro-border"},null,-1)),d("section",null,[z[6]||(z[6]=d("h3",{class:"text-sm font-mono font-semibold text-retro-text mb-1"},"AI Provider",-1)),z[7]||(z[7]=d("p",{class:"text-xs text-retro-muted mb-3"}," Configure provider and model settings for new conversations. ",-1)),d("button",{type:"button",class:"w-full flex items-center justify-between px-3 py-2 rounded border border-retro-border bg-retro-panel hover:border-retro-muted transition-colors",onClick:A},[z[5]||(z[5]=d("span",{class:"text-sm font-mono text-retro-text"},"Provider Settings",-1)),d("span",f8,B(m(n).providerSelection.providerId)+" / "+B(m(n).providerSelection.modelKey),1)])]),z[12]||(z[12]=d("div",{class:"border-t border-retro-border"},null,-1)),d("section",null,[z[8]||(z[8]=d("h3",{class:"text-sm font-mono font-semibold text-retro-text mb-1"},"Spec Search Index",-1)),d("p",p8,B(C.value),1),d("button",{type:"button",class:"w-full flex items-center justify-center px-3 py-2 rounded border border-retro-border bg-retro-panel text-retro-text hover:border-retro-muted transition-colors disabled:opacity-60",disabled:a.value||m(y)?.isIndexing,onClick:ne},B(a.value?"Starting reindex...":"Reindex Specs"),9,m8)]),z[13]||(z[13]=d("div",{class:"border-t border-retro-border"},null,-1)),d("section",null,[z[9]||(z[9]=d("h3",{class:"text-sm font-mono font-semibold text-retro-text mb-1"},"Default Permission Mode",-1)),z[10]||(z[10]=d("p",{class:"text-xs text-retro-muted mb-3"}," Set the default permission mode for all new chat conversations. ",-1)),d("div",g8,[(v(),x(we,null,Fe(u,q=>d("label",{key:q.value,class:Re(["flex items-center gap-3 px-3 py-2 rounded border cursor-pointer transition-colors",[m(n).permissionMode===q.value?"border-retro-cyan bg-retro-cyan/10":"border-retro-border bg-retro-panel hover:border-retro-muted"]])},[d("input",{type:"radio",name:"permission-mode",value:q.value,checked:m(n).permissionMode===q.value,class:"w-3.5 h-3.5 text-retro-cyan accent-retro-cyan",onChange:V=>I(q.value)},null,40,O8),(v(),Oe(Zs(q.icon),{class:Re(["w-4 h-4 flex-shrink-0",q.color])},null,8,["class"])),d("div",v8,[d("div",b8,B(q.label),1),d("div",x8,B(q.description),1)])],2)),64))])]),z[14]||(z[14]=d("div",{class:"border-t border-retro-border"},null,-1))])])):(v(),x("section",y8,[z[15]||(z[15]=d("div",null,[d("h3",{class:"text-sm font-mono font-semibold text-retro-text mb-1"},"AI Provider"),d("p",{class:"text-xs text-retro-muted mb-3"}," Choose which registered provider and model powers new conversations. ")],-1)),ee(E1,{providers:g.value,selected:m(n).providerSelection,permissionMode:m(n).permissionMode,pending:m(p),errorMessage:O.value,onSelect:P},null,8,["providers","selected","permissionMode","pending","errorMessage"])])),z[23]||(z[23]=d("div",{class:"border-t border-retro-border"},null,-1)),d("section",null,[z[18]||(z[18]=d("h3",{class:"text-sm font-mono font-semibold text-retro-text mb-1"},"Commit Messages",-1)),z[19]||(z[19]=d("p",{class:"text-xs text-retro-muted mb-3"}," Choose whether to use AI to generate commit messages automatically. ",-1)),d("div",k8,[d("label",{class:Re(["flex items-center gap-3 px-3 py-2 rounded border cursor-pointer transition-colors",[m(n).autoGenerateCommitMessages?"border-retro-border bg-retro-panel hover:border-retro-muted":"border-retro-cyan bg-retro-cyan/10"]])},[d("input",{type:"radio",name:"commit-messages",value:!1,checked:!m(n).autoGenerateCommitMessages,class:"w-3.5 h-3.5 text-retro-cyan accent-retro-cyan",onChange:z[1]||(z[1]=q=>oe(!1))},null,40,w8),z[16]||(z[16]=d("div",{class:"flex-1"},[d("div",{class:"text-sm font-mono text-retro-text"},"Template (Recommended)"),d("div",{class:"text-xs text-retro-muted leading-tight"},"Simple template-based messages. No token usage.")],-1))],2),d("label",{class:Re(["flex items-center gap-3 px-3 py-2 rounded border cursor-pointer transition-colors",[m(n).autoGenerateCommitMessages?"border-retro-cyan bg-retro-cyan/10":"border-retro-border bg-retro-panel hover:border-retro-muted"]])},[d("input",{type:"radio",name:"commit-messages",value:!0,checked:m(n).autoGenerateCommitMessages,class:"w-3.5 h-3.5 text-retro-cyan accent-retro-cyan",onChange:z[2]||(z[2]=q=>oe(!0))},null,40,S8),z[17]||(z[17]=d("div",{class:"flex-1"},[d("div",{class:"text-sm font-mono text-retro-text"},"AI-Generated"),d("div",{class:"text-xs text-retro-muted leading-tight"},"Uses Claude Haiku to create meaningful commit messages. ~300-500 tokens per commit.")],-1))],2)])]),z[24]||(z[24]=d("div",{class:"border-t border-retro-border"},null,-1)),d("section",null,[z[21]||(z[21]=d("h3",{class:"text-sm font-mono font-semibold text-retro-text mb-1"},"Spec-Cat",-1)),z[22]||(z[22]=d("p",{class:"text-xs text-retro-muted mb-3"}," Application version. ",-1)),d("div",$8,[z[20]||(z[20]=d("span",{class:"text-sm font-mono text-retro-text"},"Version",-1)),d("span",C8,B(l.value),1)])])])])])]))}}),P8={class:"fixed top-4 right-4 z-50 flex flex-col gap-2 max-w-sm"},T8={class:"flex-1 text-sm font-mono text-retro-text"},M8=["onClick"],A8=Ie({__name:"ToastContainer",setup(r){const{toasts:e,remove:t}=mo(),n={success:{bg:"bg-retro-green/20",icon:"text-retro-green",border:"border-retro-green/50"},error:{bg:"bg-retro-red/20",icon:"text-retro-red",border:"border-retro-red/50"},info:{bg:"bg-retro-cyan/20",icon:"text-retro-cyan",border:"border-retro-cyan/50"},warning:{bg:"bg-retro-yellow/20",icon:"text-retro-yellow",border:"border-retro-yellow/50"}},s=i=>{switch(i){case"success":return ku;case"error":return po;case"warning":return _n;default:return nv}};return(i,o)=>(v(),Oe(xr,{to:"body"},[d("div",P8,[ee(O1,{"enter-active-class":"transition-all duration-300 ease-out","leave-active-class":"transition-all duration-200 ease-in","enter-from-class":"opacity-0 translate-x-4","enter-to-class":"opacity-100 translate-x-0","leave-from-class":"opacity-100 translate-x-0","leave-to-class":"opacity-0 translate-x-4"},{default:ct(()=>[(v(!0),x(we,null,Fe(m(e),a=>(v(),x("div",{key:a.id,class:Re(["flex items-start gap-3 p-3 rounded-lg border shadow-lg",[n[a.type].bg,n[a.type].border]])},[(v(),Oe(Zs(s(a.type)),{class:Re(["h-5 w-5 flex-shrink-0 mt-0.5",n[a.type].icon])},null,8,["class"])),d("p",T8,B(a.message),1),d("button",{type:"button",class:"p-0.5 rounded text-retro-muted hover:text-retro-text transition-colors",onClick:l=>m(t)(a.id)},[ee(m(Pt),{class:"h-4 w-4"})],8,M8)],2))),128))]),_:1})])]))}}),_8=Ie({__name:"SplashScreen",setup(r){const e=_(!0),t=_(!1);return mt(()=>{setTimeout(()=>{t.value=!0,setTimeout(()=>{e.value=!1},600)},1800)}),(n,s)=>(v(),Oe(xr,{to:"body"},[e.value?(v(),x("div",{key:0,class:Re(["fixed inset-0 z-[9999] flex items-center justify-center bg-retro-black transition-opacity duration-500",{"opacity-0":t.value}])},[...s[0]||(s[0]=[d("div",{class:"flex flex-col items-center gap-6"},[d("pre",{class:"text-retro-cyan font-mono text-xs leading-tight select-none splash-glow"},` ____ ____ _
|
|
88
|
+
/ ___| _ __ ___ ___ / ___|__ _| |_
|
|
89
|
+
\\___ \\| '_ \\ / _ \\/ __|| | / _\` | __|
|
|
90
|
+
___) | |_) | __/ (__ | |__| (_| | |_
|
|
91
|
+
|____/| .__/ \\___|\\___| \\____\\__,_|\\__|
|
|
92
|
+
|_|
|
|
93
|
+
`),d("div",{class:"flex items-center gap-2"},[d("span",{class:"inline-block w-2 h-2 rounded-full bg-retro-cyan animate-pulse"}),d("span",{class:"text-retro-muted font-mono text-xs tracking-widest uppercase"},"initializing")])],-1)])],2)):U("",!0)]))}}),R8=Gs(_8,[["__scopeId","data-v-7fddb179"]]);let Dt=null,xs=null,Hn=null;const B8=5e3,Z8=500;let nr=null;const la=new Map;function E8(){return typeof window>"u"?"":`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/_ws`}function D8(){const r=kr();async function e(){console.log("[GlobalNotifications] Executing debounced refresh");const f=await r.refreshServerConversations();console.log("[GlobalNotifications] Refresh result:",f);for(const[g,O]of la)la.delete(g),n(g,O)}function t(){Hn&&clearTimeout(Hn),Hn=setTimeout(()=>{Hn=null,e()},Z8)}function n(f,g){if(!Dt||Dt.readyState!==WebSocket.OPEN||r.isConversationStreaming(f))return;const O=r.conversations.find(C=>C.id===f);if(!O){console.warn("[GlobalNotifications] Conversation not found for streaming:",f);return}O.messages.length===0&&g&&r.addUserMessage(g,f);const y=[...O.messages].reverse().find(C=>C.role==="assistant");if(y){r.resetMessageForReplay(y.id,f),r.startConversationStreaming(f),nr={conversationId:f,messageId:y.id,currentTextBlockId:null,isReplaying:!1,replayBuffer:[]},Dt.send(JSON.stringify({type:"subscribe",conversationId:f,cursor:0})),console.log("[GlobalNotifications] Resumed server job streaming (existing msg):",f);return}const b=r.addAssistantMessage(f);r.initContentBlocks(b.id,f),r.startConversationStreaming(f),nr={conversationId:f,messageId:b.id,currentTextBlockId:null,isReplaying:!1,replayBuffer:[]},Dt.send(JSON.stringify({type:"subscribe",conversationId:f,cursor:0})),console.log("[GlobalNotifications] Subscribed to server job streaming:",f)}function s(f){try{const g=JSON.parse(f.data);if(g.type==="notification"){i(g);return}nr&&o(g)}catch{}}function i(f){if(console.log("[GlobalNotifications] Received:",f.notificationEvent,f.conversationId),f.notificationEvent==="job_created"){la.set(f.conversationId,f.message||""),t();return}if(f.notificationEvent==="job_persisted"){nr?.conversationId===f.conversationId&&(r.endConversationStreaming(f.conversationId),nr=null),la.delete(f.conversationId),t();return}if(f.notificationEvent!=="job_completed"&&f.notificationEvent==="conversation_archived"){t();return}}function o(f){const g=nr,O=g.conversationId;if(f.type==="replay_start"){g.isReplaying=!0,g.replayBuffer=[];return}if(f.type==="replay_end"){a(g),g.isReplaying=!1,g.replayBuffer=[];return}if(g.isReplaying){(f.type==="ui_event"||f.type==="done"||f.type==="error")&&g.replayBuffer.push(f);return}if(f.type==="ui_event"&&f.event){l(g,f.event,O);return}if(f.type!=="done"&&f.type==="error"){r.updateMessage(g.messageId,{status:"error"},O),r.setSessionError(f.error||"Server job error",O),r.endConversationStreaming(O),nr=null;return}}function a(f){const g=[];let O="",y=null;for(const b of f.replayBuffer){if(b.type!=="ui_event"||!b.event)continue;const C=b.event;switch(C.type){case"block_start":if(C.blockType==="text"){const P=C.blockId||Tr();g.push({id:P,type:"text",text:C.text||""}),y=P,C.text&&(O+=C.text)}break;case"block_delta":if(C.text&&y){const P=g.find(A=>A.id===y);P&&(P.text+=C.text,O+=C.text)}break;case"block_end":y&&(y=null);break}}g.length>0&&r.batchSetMessageBlocks(f.messageId,g,O,"streaming",f.conversationId),f.currentTextBlockId=y,console.log(`[GlobalNotifications] Replay batch: ${f.replayBuffer.length} events → ${g.length} text blocks`)}function l(f,g,O){switch(g.type){case"block_start":{if(g.blockType==="text"){const y=g.blockId||Tr(),b={id:y,type:"text",text:g.text||""};r.appendContentBlock(f.messageId,b,O),f.currentTextBlockId=y,g.text&&r.appendToMessage(f.messageId,g.text,O)}break}case"block_delta":{g.text&&f.currentTextBlockId&&(r.updateBlockById(f.messageId,f.currentTextBlockId,y=>{y.type==="text"&&(y.text+=g.text)},O),r.appendToMessage(f.messageId,g.text,O));break}case"block_end":{f.currentTextBlockId&&(f.currentTextBlockId=null);break}}}function c(){if(typeof window>"u"||Dt&&(Dt.readyState===WebSocket.OPEN||Dt.readyState===WebSocket.CONNECTING))return;const f=E8();Dt=new WebSocket(f),Dt.onopen=()=>{console.log("[GlobalNotifications] WebSocket connected")},Dt.onmessage=s,Dt.onclose=g=>{console.log("[GlobalNotifications] WebSocket closed",{code:g.code,reason:g.reason}),Dt=null,nr&&(r.endConversationStreaming(nr.conversationId),nr=null),u()},Dt.onerror=g=>{console.warn("[GlobalNotifications] WebSocket error",g)}}function u(){xs||(xs=setTimeout(()=>{xs=null,c()},B8))}function h(){xs&&(clearTimeout(xs),xs=null),Hn&&(clearTimeout(Hn),Hn=null),nr&&(r.endConversationStreaming(nr.conversationId),nr=null),Dt&&(Dt.close(),Dt=null)}async function p(){try{const g=(await $fetch("/api/jobs")).filter(O=>O.source!=="user"&&(O.status==="running"||O.status==="waiting_permission"||O.status==="queued"||O.status==="completed"&&O.eventCount>0));if(g.length===0)return;await r.refreshServerConversations();for(const O of g){if(r.isConversationStreaming(O.conversationId))continue;const y=r.conversations.find(C=>C.id===O.conversationId);if(!y)continue;const b=[...y.messages].reverse().find(C=>C.role==="assistant");b&&(b.status==="complete"||b.status==="error"||b.status==="stopped")||(console.log("[GlobalNotifications] Resuming active server job:",O.id,"for conversation:",O.conversationId),n(O.conversationId,""))}}catch(f){console.warn("[GlobalNotifications] Failed to check for active server jobs:",f)}}return mt(()=>{c(),p()}),St(()=>{h()}),{connect:c,disconnect:h}}const L8={class:"flex h-screen min-w-[320px] overflow-x-auto bg-retro-black text-retro-text"},X8={class:"flex flex-col overflow-hidden",style:{flex:"3"}},I8={class:"flex-shrink-0 h-14 flex items-center justify-between px-4 border-b border-retro-border bg-retro-panel"},V8={class:"flex items-center gap-2 min-w-0"},z8={key:0,class:"text-xs text-retro-muted font-mono truncate"},N8={class:"flex items-center gap-1"},W8=["title"],j8={class:"flex-1 min-h-0 overflow-y-auto"},q8={class:"relative flex min-w-0",style:{flex:"7"}},Y8={key:0,class:"flex flex-col overflow-hidden border-l border-retro-border",style:{flex:"2"}},F8={key:1,class:"flex flex-col overflow-hidden border-l border-retro-border",style:{flex:"2"}},U8={key:2,class:"absolute inset-0 z-30 flex flex-col overflow-hidden border-l border-retro-border bg-retro-black"},lE=Ie({__name:"default",setup(r){const e=i1(),t=il(),n=kr(),s=ll(),{isDark:i,toggleTheme:o}=P1(),{tryResumeStreaming:a}=Sl();D8();const l=J(()=>s.diffViewerFile!==null),c=J(()=>e.isChatFullscreen),u=J(()=>c.value),h=J(()=>c.value?7:3),p=_(!1),f=_(""),g=J(()=>{if(!f.value)return"";const b=f.value.replace(/\/+$/,"").split("/");return b[b.length-1]||""}),O=J(()=>g.value?`spec cat :: ${g.value}`:"spec cat");v1(()=>({title:O.value}));const y=()=>{typeof window<"u"&&e.updateViewport(window.innerWidth)};return mt(async()=>{typeof window<"u"&&(e.updateViewport(window.innerWidth),window.addEventListener("resize",y)),await t.hydrate(),await n.initialize(),await n.loadConversations(),n.activeConversationId&&a(n.activeConversationId);try{const b=await $fetch("/api/cwd");f.value=b.cwd}catch{f.value=""}}),St(()=>{typeof window<"u"&&window.removeEventListener("resize",y)}),(b,C)=>{const P=OS;return v(),x("div",L8,[d("div",X8,[d("div",I8,[d("div",V8,[C[4]||(C[4]=d("img",{alt:"SpecCat",src:vS,class:"w-5 h-5 text-retro-cyan mb-1"},null,-1)),C[5]||(C[5]=d("span",{class:"text-sm font-bold text-retro-cyan font-mono uppercase tracking-wider flex-shrink-0"},"SPECCAT",-1)),g.value?(v(),x("span",z8,"/ "+B(g.value),1)):U("",!0)]),d("div",N8,[d("button",{type:"button",class:"p-2 rounded transition-colors text-retro-muted hover:text-retro-text hover:bg-retro-panel",title:m(i)?"Switch to light theme":"Switch to dark theme",onClick:C[0]||(C[0]=(...A)=>m(o)&&m(o)(...A))},[m(i)?(v(),Oe(m(T1),{key:0,class:"w-5 h-5"})):(v(),Oe(m(M1),{key:1,class:"w-5 h-5"}))],8,W8),d("button",{type:"button",class:"p-2 rounded transition-colors text-retro-muted hover:text-retro-text hover:bg-retro-panel",title:"Settings",onClick:C[1]||(C[1]=A=>p.value=!0)},[ee(m(Yp),{class:"w-5 h-5"})])])]),d("div",j8,[ee(P,{"working-directory":f.value},null,8,["working-directory"])])]),d("div",q8,[u.value?U("",!0):(v(),x("div",Y8,[ee(bR)])),u.value?U("",!0):(v(),x("div",F8,[ee(qR)])),d("div",{class:"flex flex-col overflow-hidden border-l border-retro-border",style:Ut({flex:h.value})},[ee(MZ)],4),l.value?(v(),x("div",U8,[ee(JZ,{file:m(s).diffViewerFile,"commit-hash":m(s).diffViewerCommitHash,content:m(s).diffViewerContent,loading:m(s).diffViewerLoading,onClose:C[2]||(C[2]=A=>m(s).closeFileDiff())},null,8,["file","commit-hash","content","loading"])])):U("",!0)]),p.value?(v(),Oe(Q8,{key:0,onClose:C[3]||(C[3]=A=>p.value=!1)})):U("",!0),ee(A8),ee(R8),Bp(b.$slots,"default")])}}});export{lE as default};
|