numbl 0.4.14 → 0.4.15

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.
@@ -1,2 +1,2 @@
1
1
  /** Numbl version, used for JIT disk cache invalidation. */
2
- export declare const NUMBL_VERSION = "0.4.14";
2
+ export declare const NUMBL_VERSION = "0.4.15";
package/dist-cli/cli.js CHANGED
@@ -64277,7 +64277,7 @@ function getSourceLine(getSource, file, line) {
64277
64277
  }
64278
64278
 
64279
64279
  // src/numbl-core/version.ts
64280
- var NUMBL_VERSION = "0.4.14";
64280
+ var NUMBL_VERSION = "0.4.15";
64281
64281
 
64282
64282
  // src/cli-repl.ts
64283
64283
  import { createInterface } from "readline";
@@ -66415,6 +66415,9 @@ function execStmtInner(stmt) {
66415
66415
  const signal = this.execBlockStmts(stmt.tryBody);
66416
66416
  if (signal) return signal;
66417
66417
  } catch (e) {
66418
+ if (e instanceof CancellationError) {
66419
+ throw e;
66420
+ }
66418
66421
  if (stmt.catchVar) {
66419
66422
  this.env.set(stmt.catchVar, this.rt.wrapError(e));
66420
66423
  }
@@ -97193,6 +97196,9 @@ ${sections.join("\n\n")}` : `// No ${label} generated`;
97193
97196
  result.implicitCwdPath = implicitCwdPath;
97194
97197
  return result;
97195
97198
  } catch (e) {
97199
+ if (e instanceof CancellationError) {
97200
+ throw e;
97201
+ }
97196
97202
  const generatedJS = buildDump(jsSections, "JS");
97197
97203
  const generatedC = buildDump(cSections, "C");
97198
97204
  if (e instanceof RuntimeError) {
package/dist-lib/lib.js CHANGED
@@ -65601,6 +65601,9 @@ function execStmtInner(stmt) {
65601
65601
  const signal = this.execBlockStmts(stmt.tryBody);
65602
65602
  if (signal) return signal;
65603
65603
  } catch (e) {
65604
+ if (e instanceof CancellationError) {
65605
+ throw e;
65606
+ }
65604
65607
  if (stmt.catchVar) {
65605
65608
  this.env.set(stmt.catchVar, this.rt.wrapError(e));
65606
65609
  }
@@ -93059,6 +93062,9 @@ ${sections.join("\n\n")}` : `// No ${label} generated`;
93059
93062
  result.implicitCwdPath = implicitCwdPath;
93060
93063
  return result;
93061
93064
  } catch (e) {
93065
+ if (e instanceof CancellationError) {
93066
+ throw e;
93067
+ }
93062
93068
  const generatedJS = buildDump(jsSections, "JS");
93063
93069
  const generatedC = buildDump(cSections, "C");
93064
93070
  if (e instanceof RuntimeError) {
@@ -1,2 +1,2 @@
1
1
  /** Numbl version, used for JIT disk cache invalidation. */
2
- export declare const NUMBL_VERSION = "0.4.14";
2
+ export declare const NUMBL_VERSION = "0.4.15";
@@ -4810,7 +4810,7 @@ directive is a comment, so MATLAB ignores it.`},disp:{signatures:["disp(X)"],des
4810
4810
 
4811
4811
  `);u=p.pop()||"";for(const m of p){const y=m.trim();if(!y.startsWith("data: "))continue;const _=y.slice(6);try{const b=JSON.parse(_);b.type==="output"?t.onOutput(b.text):b.type==="drawnow"?t.onDrawnow(b.plotInstructions):b.type==="done"?h={...h,generatedJS:b.generatedJS}:b.type==="error"?h={success:!1,error:b.message,timedOut:b.timedOut}:b.type==="close"&&(h={...h,success:b.success})}catch{}}}return h}catch(o){return o instanceof DOMException&&o.name==="AbortError"?{success:!1,error:"Execution aborted"}:(console.error("Remote execution failed:",o),{success:!1,error:o instanceof Error?`Connection failed: ${o.message}`:"Unknown error occurred"})}}const cPe="https://magland.github.io/numbl-wasm-bridge/",yY="numbl_wasm_bridge_url";function _Y(){return localStorage.getItem(yY)||cPe}function uPe(e){localStorage.setItem(yY,e)}let vY=!0;function bY(){return vY}function hPe(e){vY=e}function x3(){return bY()?_Y():null}const WN="/system/";function fPe(e){return e.startsWith("/project/")?e.slice(9):e.startsWith("/")?e.slice(1):e}function xY(e){return e.startsWith(WN)?e.slice(WN.length):e}function w3(e){return e.startsWith(WN)||e==="/system"}function wY(e){const t={created:[],modified:[],deleted:[]},n={created:[],modified:[],deleted:[]};for(const r of e.created)(w3(r.path)?n:t).created.push(r);for(const r of e.modified)(w3(r.path)?n:t).modified.push(r);for(const r of e.deleted)(w3(r)?n:t).deleted.push(r);return{projectChanges:t,systemChanges:n}}async function qN(e,t,n){const r=[],i=[],s=[];return await Dn.transaction("rw",Dn.files,Dn.fileContents,Dn.projects,async()=>{for(const{path:o,content:a}of t.created){const l=n(o),c=Date.now(),u=crypto.randomUUID();await Dn.files.add({id:u,projectName:e,path:l,createdAt:c,updatedAt:c}),await Dn.fileContents.add({id:u,data:a}),r.push({id:u,name:l})}for(const{path:o,content:a}of t.modified){const l=n(o),c=await Dn.files.where("[projectName+path]").equals([e,l]).first();c&&(await Dn.fileContents.put({id:c.id,data:a}),await Dn.files.update(c.id,{updatedAt:Date.now()}),i.push({path:l,data:a}))}for(const o of t.deleted){const a=n(o),l=await Dn.files.where("[projectName+path]").equals([e,a]).first();l&&(await Dn.files.delete(l.id),await Dn.fileContents.delete(l.id),s.push(a))}(r.length>0||i.length>0||s.length>0)&&await Dn.projects.update(e,{updatedAt:Date.now()})}),r.length===0&&i.length===0&&s.length===0?null:{addedFiles:r,modifiedFiles:i,deletedPaths:s}}async function SY(e){const{systemChanges:t}=wY(e);return t.created.length===0&&t.modified.length===0&&t.deleted.length===0?!1:(await j0(),await qN(Wl,t,xY)!==null)}async function dPe(e,t){const{projectChanges:n,systemChanges:r}=wY(t),i=await qN(e,n,fPe);let s=null;return(r.created.length>0||r.modified.length>0||r.deleted.length>0)&&(await j0(),s=await qN(Wl,r,xY)),{projectResult:i,systemResult:s}}const sa="system/";function MY(){const[e,t]=ne.useState([]),n=ne.useRef(new Map),r=ne.useCallback(async()=>{const _=await qA();t(_.map(b=>({id:b.id,name:sa+b.path})))},[]);ne.useEffect(()=>{r()},[r]);const i=ne.useCallback(async _=>{const b=n.current.get(_);if(b!==void 0)return b;const x=await bF(_);return n.current.set(_,x),x},[]),s=ne.useCallback(async()=>{const _=await GA();for(const[b,x]of _)n.current.set(b,x);return _},[]),o=ne.useCallback(async()=>{const[_,b]=await Promise.all([qA(),GA()]);return _.map(x=>({path:"/system/"+x.path,content:b.get(x.id)??new Uint8Array(0)}))},[]),a=ne.useCallback(async()=>{const _=new TextDecoder("utf-8"),[b,x]=await Promise.all([qA(),GA()]);return b.filter(S=>S.path.endsWith(".m")).map(S=>({name:"/system/"+S.path,source:_.decode(x.get(S.id)??new Uint8Array(0))}))},[]),l=ne.useCallback(async(_,b)=>{n.current.set(_,b),await Aae(_,b)},[]),c=ne.useCallback(async _=>{await j0();const b=_?.startsWith(sa)?_.slice(sa.length):_,x=z7(e,_),S=b?`${b}/${x}`:x,M=Date.now(),E=crypto.randomUUID(),T=new Uint8Array(0);return await Dn.transaction("rw",Dn.files,Dn.fileContents,async()=>{await Dn.files.add({id:E,projectName:Wl,path:S,createdAt:M,updatedAt:M}),await Dn.fileContents.add({id:E,data:T})}),n.current.set(E,T),t(k=>[...k,{id:E,name:sa+S}]),E},[e]),u=ne.useCallback(async _=>{await j0();const b=_?.startsWith(sa)?_.slice(sa.length):_,x=pPe(e,_),S=b?`${b}/${x}`:x,M=z7(e,sa+S),E=`${S}/${M}`,T=Date.now(),k=crypto.randomUUID(),R=new Uint8Array(0);return await Dn.transaction("rw",Dn.files,Dn.fileContents,async()=>{await Dn.files.add({id:k,projectName:Wl,path:E,createdAt:T,updatedAt:T}),await Dn.fileContents.add({id:k,data:R})}),n.current.set(k,R),t(P=>[...P,{id:k,name:sa+E}]),sa+S},[e]),h=ne.useCallback(async _=>{await Dn.transaction("rw",Dn.files,Dn.fileContents,async()=>{await Dn.files.delete(_),await Dn.fileContents.delete(_)}),n.current.delete(_),t(b=>b.filter(x=>x.id!==_))},[]),f=ne.useCallback(async _=>{const b=e.filter(x=>x.name.startsWith(_+"/"));await Dn.transaction("rw",Dn.files,Dn.fileContents,async()=>{for(const x of b)await Dn.files.delete(x.id),await Dn.fileContents.delete(x.id)});for(const x of b)n.current.delete(x.id);t(x=>x.filter(S=>!S.name.startsWith(_+"/")))},[e]),d=ne.useCallback(async(_,b)=>{const x=b.startsWith(sa)?b.slice(sa.length):b;await Dn.files.update(_,{path:x,updatedAt:Date.now()}),t(S=>S.map(M=>M.id===_?{...M,name:b}:M))},[]),p=ne.useCallback(async(_,b)=>{const x=_.split("/");x[x.length-1]=b;const S=x.join("/"),M=e.filter(E=>E.name.startsWith(_+"/"));await Promise.all(M.map(E=>{const T=S+E.name.slice(_.length),k=T.startsWith(sa)?T.slice(sa.length):T;return Dn.files.update(E.id,{path:k,updatedAt:Date.now()})})),t(E=>E.map(T=>T.name.startsWith(_+"/")?{...T,name:S+T.name.slice(_.length)}:T))},[e]),m=ne.useCallback(async _=>{const b=e.find(R=>R.id===_);if(!b)return"";const x=jH(e,b.name),S=x.startsWith(sa)?x.slice(sa.length):x,M=n.current.get(_)??await bF(_),E=new Uint8Array(M),T=Date.now(),k=crypto.randomUUID();return await j0(),await Dn.transaction("rw",Dn.files,Dn.fileContents,async()=>{await Dn.files.add({id:k,projectName:Wl,path:S,createdAt:T,updatedAt:T}),await Dn.fileContents.add({id:k,data:E})}),n.current.set(k,E),t(R=>[...R,{id:k,name:x}]),k},[e]),y=ne.useCallback(async(_,b)=>{const x=e.find(k=>k.id===_);if(!x)return;const S=x.name.split("/"),M=S[S.length-1],E=b?`${b}/${M}`:M;if(E===x.name)return;const T=E.startsWith(sa)?E.slice(sa.length):E;await Dn.files.update(_,{path:T,updatedAt:Date.now()}),t(k=>k.map(R=>R.id===_?{...R,name:E}:R))},[e]);return{systemFiles:e,reloadSystemFiles:r,updateSystemFileContent:l,addSystemFile:c,addSystemFolder:u,deleteSystemFile:h,deleteSystemFolder:f,renameSystemFile:d,renameSystemFolder:p,moveSystemFile:y,duplicateSystemFile:m,loadSystemFileContent:i,loadAllSystemContents:s,getSystemVfsFiles:o,getSystemWorkspaceFiles:a,systemContentCache:n}}function z7(e,t){const n=new Set(e.map(r=>r.name));for(let r=1;;r++){const i=`untitled${r===1?"":r}.m`,s=t?`${t}/${i}`:i;if(!n.has(s))return i}}function pPe(e,t){const n=new Set;for(const r of e)if(t){if(r.name.startsWith(t+"/")){const i=r.name.slice(t.length+1).split("/");i.length>1&&n.add(i[0])}}else{const i=r.name.split("/");i.length>1&&n.add(i[0])}for(let r=1;;r++){const i=`folder${r===1?"":r}`;if(!n.has(i))return i}}const mPe="https://github.com/mip-org/mip-core/releases/download/mip-numbl/mip-numbl-any.mhl",gPe="mip/packages/gh/mip-org/core/mip/";function yPe(e){if(/^https:\/\/github\.com\/.+\/releases\/download\/.+/.test(e)){let t=e.replace("https://github.com/","https://mip-cors-proxy.figurl.workers.dev/gh/");return t+=t.includes("?")?"&":"?",t+="t="+Date.now(),t}return e}async function _Pe(){const e=await fetch(yPe(mPe));if(!e.ok)throw new Error(`HTTP ${e.status}`);const t=await e.arrayBuffer();return XH(new Uint8Array(t)).map(r=>({path:"/system/"+gPe+r.path,content:r.content}))}const vPe=600*1e3,EY="numbl:systemLastActivity";function CY(){try{localStorage.setItem(EY,String(Date.now()))}catch{}}function bPe(){try{const e=localStorage.getItem(EY),t=e?parseInt(e,10):0;return Number.isFinite(t)?t:0}catch{return 0}}function AY(e){ne.useEffect(()=>{let t=!1;return(async()=>{try{if(Date.now()-bPe()>vPe&&await kae(),CY(),t)return;if(await j0(),!await Tae()){const n=await _Pe();if(t)return;const r=Date.now();await Dn.transaction("rw",Dn.files,Dn.fileContents,async()=>{const i=n.map(o=>{const a=o.path.replace(/^\/system\//,"");return{id:"mip:"+a,projectName:Wl,path:a,createdAt:r,updatedAt:r}}),s=n.map(o=>({id:"mip:"+o.path.replace(/^\/system\//,""),data:o.content}));await Dn.files.bulkPut(i),await Dn.fileContents.bulkPut(s)})}t||e()}catch(n){console.warn("Failed to ensure mip core package:",n)}})(),()=>{t=!0}},[])}Qu.registerLanguage("javascript",VL);Qu.registerLanguage("c",cue);const xPe=new TextEncoder;function wPe({files:e,activeFileId:t,setActiveFileId:n,updateFileContent:r,addFile:i,addFolder:s,deleteFile:o,deleteFolder:a,renameFile:l,renameFolder:c,moveFile:u,duplicateFile:h,uploadFiles:f,headerContent:d,projectName:p,loadFileContent:m,loadAllContents:y,contentCache:_,maxInitialOutputPanelHeight:b,mergeVfsChanges:x}){const{systemFiles:S,reloadSystemFiles:M,updateSystemFileContent:E,addSystemFile:T,addSystemFolder:k,deleteSystemFile:R,deleteSystemFolder:P,renameSystemFile:F,renameSystemFolder:L,moveSystemFile:j,duplicateSystemFile:V,loadSystemFileContent:U,getSystemVfsFiles:B,getSystemWorkspaceFiles:N,loadAllSystemContents:H}=MY();AY(M);const O=ne.useCallback(ut=>ut==="system"||ut.startsWith("system/"),[]),G=ne.useCallback(ut=>S.some(Lt=>Lt.id===ut),[S]),Z=ne.useMemo(()=>[...e,...S],[e,S]),[ie,Y]=ne.useState("1"),[ce,pe]=ne.useState(""),[te,X]=ne.useState(null),[de,fe]=ne.useState(""),[le,J]=ne.useState(!1),[K,Se]=ne.useReducer(SI,rE),[ye,Xe]=ne.useState(0),[Fe,Oe]=ne.useState("js"),[Ee,ke]=ne.useState([]),_e=ne.useCallback(ut=>{const Lt=[];ut?.mainFile&&Lt.push({name:ut.mainFile.name,ast:ut.mainFile.ast,irProgram:ut.mainFile.irProgram});for(const pn of ut?.workspaceFiles??[])Lt.push({name:pn.name,ast:pn.ast,irProgram:pn.irProgram});return Lt},[]),we=ne.useMemo(()=>{if(Ee.length===0)return null;if(Ee.length===1)return Ee[0].ast;const ut={};for(const Lt of Ee)ut[Lt.name]=Lt.ast;return ut},[Ee]),[Le,ae]=ne.useState(null),[Q,xe]=ne.useState(0),[ge,be]=ne.useState(!1),[ve,Be]=ne.useState(),[He,je]=ne.useState("rendered"),[st,We]=ne.useState(0),[lt,Tt]=ne.useState(!1),rt=ne.useRef(null),ot=xae("(max-width:768px)"),Pe=ne.useRef(ot);Pe.current=ot;const[Ae,ze]=ne.useState(!1),[_t,zt]=ne.useState(0),[xt,vt]=ne.useState(!1),[Ct,Wt]=ne.useState(yM()),[Ut,Yt]=ne.useState(!1),[Ot,hn]=ne.useState(yM()),[Zn,Mn]=ne.useState(bY),[Kn,Ts]=ne.useState(_Y),ds=ne.useCallback(()=>{const ut=crypto.randomUUID().replace(/-/g,"").slice(0,16);return sessionStorage.setItem("numbl_passkey",ut),ut},[]),[Ci,Lo]=ne.useState(()=>{const ut=sessionStorage.getItem("numbl_passkey");return ut||ds()}),Hi=ne.useRef(Ci);Hi.current=Ci;const Kr=xt?"localhost":"browser",[Or,ps]=ne.useState(null),[ms,Yo]=ne.useState("unknown");ne.useEffect(()=>{if(!xt){ps(null),Yo("unknown");return}let ut=!1;return F7(Ct,Hi.current).then(Lt=>{ut||(Lt?(ps(Lt.nativeAddon===!0),Yo("connected")):Yo("disconnected"))}),()=>{ut=!0}},[xt,Ct,Ci]);const vi=ne.useRef(null),za=ne.useRef(ZH()),Yi=ne.useRef(typeof SharedArrayBuffer<"u"?new SharedArrayBuffer(4):null),mo=ne.useRef(null),Zs=ne.useRef(null),lr=ne.useRef(null),[$i,Ce]=ne.useState(!1);ne.useEffect(()=>{vi.current?.postMessage({type:"set_optimization",optimization:ie})},[ie]);const Ye=window.innerWidth>=1200?260:200,[St,yt]=ne.useState(Ye),[mt,rn]=ne.useState((window.innerWidth-Ye)/2),[ht,Rt]=ne.useState(()=>b!=null?Math.min(window.innerHeight/2,b):window.innerHeight/2),Gt=b!=null?Math.min(150,b):150,qt=ne.useMemo(()=>Z.find(ut=>ut.id===t),[Z,t]),Xt=ne.useCallback(ut=>{let Lt=ut.split(/[?#]/)[0];try{Lt=decodeURIComponent(Lt)}catch{}if(Lt=Lt.replace(/^\.\//,""),!Lt)return;const pn=jr=>jr.split("/").pop()??jr,tr=Z.find(jr=>jr.name===Lt)??Z.find(jr=>pn(jr.name)===pn(Lt));tr&&(n(tr.id),ot&&ze(!1))},[Z,n,ot]),En=ne.useMemo(()=>Object.keys(K.figs).map(ut=>Number(ut)).sort((ut,Lt)=>ut-Lt),[K.figs]),[cn,In]=ne.useState(!1),_r=ne.useCallback(async()=>{const ut=En[Q],Lt=K.figs[ut];if(Lt){In(!0);try{await Oxe(Lt,ut)}catch(pn){console.error("Figure HDF5 export failed:",pn)}finally{In(!1)}}},[K.figs,En,Q]),[fr,dr]=ne.useState(null),Ki=ne.useCallback(async()=>{const ut=K.figs[En[Q]];if(!ut)return;const Lt=Yxe(ut);if(Lt.url){window.open(Lt.url,"_blank"),dr(null);return}dr({kind:"uploading"});try{const pn=await twe(ut);dr({kind:"ready",url:pn})}catch{dr({kind:"failed",baseUrl:Lt.baseUrl})}},[K.figs,En,Q]);ne.useEffect(()=>{const ut=Object.keys(K.figs).map(Number).sort((Lt,pn)=>Lt-pn);if(ut.length>0){const Lt=ut.indexOf(K.currentHandle);Lt>=0&&xe(Lt)}},[K.figs,K.currentHandle]);const Zt=ne.useCallback(ut=>{if(Se(ut),!Pe.current)return;const Lt=ut.type;Lt.startsWith("set_")||Lt==="cla"||Lt==="clf"||Lt==="close"||Lt==="close_all"||zt(1)},[]);ne.useEffect(()=>{const ut=Lt=>{const pn=Lt.data;!pn||pn.source!=="numbl-uihtml"||vi.current?.postMessage({type:"html_event",compId:pn.compId,kind:pn.kind,name:pn.name,data:pn.data})};return window.addEventListener("message",ut),()=>window.removeEventListener("message",ut)},[]),ne.useEffect(()=>{if(!ge)return;const ut=Lt=>{Lt.key==="Escape"&&be(!1)};return window.addEventListener("keydown",ut),()=>window.removeEventListener("keydown",ut)},[ge]);const Ii=ne.useCallback(async(ut,Lt)=>{const[pn,tr,jr]=await Promise.all([y(),B(),N()]),Ko=await H(),Oa=[...ut.map(ni=>({path:ni.name,content:pn.get(ni.id)??new Uint8Array(0)})),...tr],yo=new TextDecoder("utf-8"),ja=[...ut.filter(ni=>!Lt||ni.id!==Lt).filter(ni=>ni.name.endsWith(".m")).map(ni=>({name:ni.name,source:yo.decode(pn.get(ni.id)??new Uint8Array(0))})),...jr];return{vfsFiles:Oa,workspaceFiles:ja,projectContents:pn,systemContents:Ko}},[y,B,N,H]),Nn=ne.useCallback(async ut=>{if(!ut)return;const{created:Lt,modified:pn,deleted:tr}=ut;if(!(Lt.length===0&&pn.length===0&&tr.length===0))if(p){const{projectResult:jr,systemResult:Ko}=await dPe(p,ut);jr&&x&&x(jr),Ko&&M()}else await SY(ut)&&M()},[p,x,M]),bi=ne.useCallback(ut=>{ut.onmessage=Lt=>{const pn=Lt.data;if(pn.type==="request-input"){const tr=prompt(pn.prompt??"")??"",jr=za.current;jr&&QH(jr,tr);return}if(pn.type==="output"){if(mo.current==="repl"){const tr=rt.current;tr?.writeOutput&&tr.writeOutput(pn.text,!1)}else pe(tr=>tr+pn.text);return}if(pn.type==="drawnow"){if(pn.plotInstructions?.length)for(const tr of pn.plotInstructions)Zt(tr);return}if(pn.type==="html_source_event"){document.querySelectorAll(`iframe[title="uihtml-${pn.compId}"]`).forEach(jr=>jr.contentWindow?.postMessage({source:"numbl-host",compId:pn.compId,name:pn.name,dataJson:pn.dataJson},"*"));return}if(pn.type==="done"){if(mo.current=null,fe(pn.generatedJS||""),ke(_e(pn.workspaceRep)),ae(pn.workspaceRep?.fileSources??null),X(pn.dispatchUnknownCounts??null),J(!1),pn.plotInstructions?.length)for(const tr of pn.plotInstructions)Zt(tr);Nn(pn.vfsChanges);return}if(pn.type==="error"){mo.current=null,pn.generatedJS&&fe(pn.generatedJS),ke(_e(pn.workspaceRep)),ae(pn.workspaceRep?.fileSources??null),J(!1),pe(tr=>tr+`
4812
4812
  ${NV(pn)}
4813
- `),Nn(pn.vfsChanges);return}if(pn.type==="result"){mo.current=null;const tr=rt.current;if(pn.success){if(pn.plotInstructions?.length)for(const jr of pn.plotInstructions)Zt(jr)}else pn.error&&tr?.writeOutput&&tr.writeOutput(pn.error,!0);Nn(pn.vfsChanges),tr?.writePrompt&&tr.writePrompt(),Tt(!1);return}},ut.onerror=Lt=>{mo.current=null;const pn=rt.current;pn?.writeOutput&&pn.writeOutput(`Worker error: ${Lt.message}`,!0),J(!1),Tt(!1)}},[Zt,_e,Nn]);ne.useEffect(()=>{const ut=new Worker(new URL(""+new URL("numbl-worker-B-MPuV6f.js",import.meta.url).href,import.meta.url),{type:"module"});return vi.current=ut,ut.postMessage({type:"set_wasm_bridge",url:x3()}),za.current&&ut.postMessage({type:"set_input_sab",inputSAB:za.current}),bi(ut),()=>{ut.terminate()}},[bi]);const fi=ne.useRef(!0);ne.useEffect(()=>{fi.current=!0},[e,S]),ne.useEffect(()=>{if(ve){const ut=setTimeout(()=>{Be(void 0)},100);return()=>clearTimeout(ut)}},[ve]);const go=ne.useCallback(async()=>{if(!qt||!qt.name.toLowerCase().endsWith(".m"))return;J(!0),pe(""),X(null),ke([]),ae(null),Se({type:"clear"}),zt(0);const{vfsFiles:ut,workspaceFiles:Lt,projectContents:pn}=await Ii(e,t),tr=pn.get(t)??_.current.get(t)??new Uint8Array(0),jr=L_(tr);try{const Ko=RV(jr);console.info("AST:",Ko)}catch{console.info("Parse check skipped - error will be handled by worker")}if(xt){const Ko=new AbortController;Zs.current=Ko;try{const Oa=new TextDecoder("utf-8"),yo=[];for(const ni of e){if(ni.name==="system"||ni.name.startsWith("system/"))continue;const Ml=pn.get(ni.id)??_.current.get(ni.id)??new Uint8Array(0);XA(Ml)||yo.push({name:ni.name,content:Oa.decode(Ml)})}if(!yo.some(ni=>ni.name===qt.name))yo.push({name:qt.name,content:jr});else{const ni=yo.findIndex(Ml=>Ml.name===qt.name);yo[ni]={name:qt.name,content:jr}}const ja=await lPe({files:yo,mainScript:qt.name,optimization:ie},{onOutput:ni=>{pe(Ml=>Ml+ni)},onDrawnow:ni=>{for(const Ml of ni)Zt(Ml)}},Ct,Ko.signal,Hi.current);fe(ja.generatedJS||""),ja.success||pe(ni=>ni+`
4813
+ `),Nn(pn.vfsChanges);return}if(pn.type==="result"){mo.current=null;const tr=rt.current;if(pn.success){if(pn.plotInstructions?.length)for(const jr of pn.plotInstructions)Zt(jr)}else pn.error&&tr?.writeOutput&&tr.writeOutput(pn.error,!0);Nn(pn.vfsChanges),tr?.writePrompt&&tr.writePrompt(),Tt(!1);return}},ut.onerror=Lt=>{mo.current=null;const pn=rt.current;pn?.writeOutput&&pn.writeOutput(`Worker error: ${Lt.message}`,!0),J(!1),Tt(!1)}},[Zt,_e,Nn]);ne.useEffect(()=>{const ut=new Worker(new URL(""+new URL("numbl-worker-F20FKX9r.js",import.meta.url).href,import.meta.url),{type:"module"});return vi.current=ut,ut.postMessage({type:"set_wasm_bridge",url:x3()}),za.current&&ut.postMessage({type:"set_input_sab",inputSAB:za.current}),bi(ut),()=>{ut.terminate()}},[bi]);const fi=ne.useRef(!0);ne.useEffect(()=>{fi.current=!0},[e,S]),ne.useEffect(()=>{if(ve){const ut=setTimeout(()=>{Be(void 0)},100);return()=>clearTimeout(ut)}},[ve]);const go=ne.useCallback(async()=>{if(!qt||!qt.name.toLowerCase().endsWith(".m"))return;J(!0),pe(""),X(null),ke([]),ae(null),Se({type:"clear"}),zt(0);const{vfsFiles:ut,workspaceFiles:Lt,projectContents:pn}=await Ii(e,t),tr=pn.get(t)??_.current.get(t)??new Uint8Array(0),jr=L_(tr);try{const Ko=RV(jr);console.info("AST:",Ko)}catch{console.info("Parse check skipped - error will be handled by worker")}if(xt){const Ko=new AbortController;Zs.current=Ko;try{const Oa=new TextDecoder("utf-8"),yo=[];for(const ni of e){if(ni.name==="system"||ni.name.startsWith("system/"))continue;const Ml=pn.get(ni.id)??_.current.get(ni.id)??new Uint8Array(0);XA(Ml)||yo.push({name:ni.name,content:Oa.decode(Ml)})}if(!yo.some(ni=>ni.name===qt.name))yo.push({name:qt.name,content:jr});else{const ni=yo.findIndex(Ml=>Ml.name===qt.name);yo[ni]={name:qt.name,content:jr}}const ja=await lPe({files:yo,mainScript:qt.name,optimization:ie},{onOutput:ni=>{pe(Ml=>Ml+ni)},onDrawnow:ni=>{for(const Ml of ni)Zt(Ml)}},Ct,Ko.signal,Hi.current);fe(ja.generatedJS||""),ja.success||pe(ni=>ni+`
4814
4814
  Error: ${ja.error}${ja.timedOut?" (timed out)":""}
4815
4815
  `)}catch(Oa){pe(yo=>yo+`
4816
4816
  Remote execution failed: ${Oa instanceof Error?Oa.message:"Unknown error"}
@@ -4818,7 +4818,7 @@ Remote execution failed: ${Oa instanceof Error?Oa.message:"Unknown error"}
4818
4818
  --- Execution stopped ---
4819
4819
  `);return}if(vi.current)if($i){if(Yi.current){const ut=new Int32Array(Yi.current);Atomics.store(ut,0,1)}pe(ut=>ut+`
4820
4820
  --- Cancelling execution... ---
4821
- `)}else{vi.current.terminate(),mo.current=null;const ut=new Worker(new URL(""+new URL("numbl-worker-B-MPuV6f.js",import.meta.url).href,import.meta.url),{type:"module"});vi.current=ut,ut.postMessage({type:"set_wasm_bridge",url:x3()}),za.current&&ut.postMessage({type:"set_input_sab",inputSAB:za.current}),bi(ut),fi.current=!0,J(!1),pe(Lt=>Lt+`
4821
+ `)}else{vi.current.terminate(),mo.current=null;const ut=new Worker(new URL(""+new URL("numbl-worker-F20FKX9r.js",import.meta.url).href,import.meta.url),{type:"module"});vi.current=ut,ut.postMessage({type:"set_wasm_bridge",url:x3()}),za.current&&ut.postMessage({type:"set_input_sab",inputSAB:za.current}),bi(ut),fi.current=!0,J(!1),pe(Lt=>Lt+`
4822
4822
  --- Execution stopped ---
4823
4823
  `)}},[$i,bi]),_n=ne.useCallback(()=>{Wt(Ot),aPe(Ot),hPe(Zn),uPe(Kn),vi.current?.postMessage({type:"set_wasm_bridge",url:x3()}),Yt(!1)},[Ot,Zn,Kn]),xi=ne.useCallback((ut,Lt)=>{Lt!==null&&vt(Lt==="local")},[]),qr=ne.useCallback(async ut=>{if(!(lt||le)){if(Tt(!0),fi.current&&vi.current){const{vfsFiles:Lt,workspaceFiles:pn}=await Ii(e);vi.current.postMessage({type:"update_workspace",workspaceFiles:pn,vfsFiles:Lt}),fi.current=!1}if(Yi.current){const Lt=new Int32Array(Yi.current);Atomics.store(Lt,0,0)}mo.current="repl",vi.current?.postMessage({type:"execute",code:ut,cancelSAB:Yi.current??void 0})}},[lt,le,e,Ii]),cr=ne.useCallback(()=>{lt||vi.current?.postMessage({type:"clear"})},[lt]),Gn=ne.useCallback(ut=>{rt.current=ut},[]),ys=ne.useRef(""),[ts,Yl]=ne.useState(null),fn=ne.useRef(""),kn=ts?XA(ts):!1,Un=!!qt?.name.toLowerCase().endsWith(".md"),vr=!!qt?.name.toLowerCase().endsWith(".m");ne.useEffect(()=>{if(!t){Yl(null),fn.current="";return}Yl(null),fn.current="";let ut=!1;return(S.some(tr=>tr.id===t)?U:m)(t).then(tr=>{ut||(fn.current=t,Yl(tr))}),()=>{ut=!0}},[t,S,U,m]);const _s=kn||Un&&He==="rendered";ne.useEffect(()=>{_s&&(lr.current=null,ys.current="")},[_s]),ne.useEffect(()=>{if(!lr.current||!qt||t===ys.current||!ts||fn.current!==t)return;ys.current=t;const ut=XA(ts)?"":L_(ts);lr.current.value!==ut&&lr.current.setValue(ut)},[t,qt,ts]);const ga=(ut,Lt)=>{lr.current=ut,ts&&fn.current===t&&(ys.current=t),Lt.languages.register({id:"numbl"}),Lt.languages.setLanguageConfiguration("numbl",Sme),Lt.languages.setMonarchTokensProvider("numbl",Mme()),Lt.editor.defineTheme("numbl-dark",{base:"vs-dark",inherit:!0,rules:[{token:"comment",foreground:"6A9955"},{token:"keyword",foreground:"C586C0"},{token:"number",foreground:"B5CEA8"},{token:"string",foreground:"CE9178"},{token:"operator",foreground:"D4D4D4"}],colors:{}}),Lt.editor.setTheme("numbl-dark")},wi=re.jsxs(An,{sx:{height:"100%",display:"flex",flexDirection:"column"},children:[re.jsxs(Qy,{value:xt?0:st,onChange:(ut,Lt)=>We(Lt),sx:{borderBottom:1,borderColor:"divider",minHeight:34,"& .MuiTab-root":{textTransform:"none",fontWeight:500,fontSize:"0.8rem",minHeight:34,py:0}},children:[re.jsx(pu,{label:"Script"}),!xt&&re.jsx(pu,{label:"REPL"})]}),re.jsx(An,{sx:{flexGrow:1,overflow:"hidden"},children:(st===0||xt)&&!qt?re.jsxs(An,{sx:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",flexDirection:"column",gap:2,p:3},children:[re.jsx(Sr,{variant:"body2",color:"text.secondary",children:"No file open"}),re.jsx(kd,{variant:"contained",size:"small",startIcon:re.jsx(pue,{}),onClick:()=>i(),sx:{textTransform:"none"},children:"New file"})]}):st===0||xt?re.jsxs(An,{sx:{height:"100%",display:"flex",flexDirection:"column"},children:[re.jsxs(An,{sx:{px:1.5,py:.5,borderBottom:1,borderColor:"divider",display:"flex",alignItems:"center",gap:1,bgcolor:"background.default"},children:[vr&&re.jsxs(re.Fragment,{children:[re.jsx(kd,{variant:"contained",color:le?"error":"success",size:"small",startIcon:le?re.jsx(fue,{}):re.jsx(hue,{}),onClick:le?gs:go,sx:{py:.25,px:2,fontSize:"0.8rem",fontWeight:600,textTransform:"none",borderRadius:1.5,boxShadow:"none","&:hover":{boxShadow:"none"}},children:le?"Stop":"Run"}),re.jsx(ku,{title:Kr==="browser"?"Executing in browser":"Executing on local server"+(ms==="disconnected"?" (not connected)":"")+(Or===!0?" (native)":Or===!1?" (no native addon)":""),children:re.jsx(lo,{size:"small",onClick:()=>{hn(Ct),Yt(!0)},sx:{opacity:.5,"&:hover":{opacity:1}},children:Kr==="browser"?re.jsx(KF,{sx:{fontSize:"0.9rem"}}):re.jsx(ZF,{sx:{fontSize:"0.9rem",color:"error.main"}})})}),Kr==="localhost"&&re.jsx(Sr,{variant:"caption",sx:{fontSize:"0.65rem",opacity:.5,color:"error.main"},children:ms==="disconnected"?"no server":Or?"native":Or===!1?"no native":"local"}),!xt&&re.jsx(ku,{title:$i?"Workspace persists across runs and REPL (click for fresh each run)":"Fresh workspace each run (click to persist across runs and REPL)",children:re.jsx(Sr,{variant:"caption",onClick:()=>Ce(ut=>!ut),sx:{cursor:"pointer",fontSize:"0.7rem",px:.5,py:.1,borderRadius:.5,bgcolor:$i?"action.selected":"transparent",opacity:$i?1:.5,"&:hover":{opacity:1},userSelect:"none"},children:$i?"persist":"1x"})}),re.jsx(ku,{title:ie==="0"?"Interpreter only (click for JIT)":"JIT (click to disable)",children:re.jsx(Sr,{variant:"caption",onClick:()=>Y(ut=>ut==="0"?"1":"0"),sx:{cursor:"pointer",fontSize:"0.7rem",px:.5,py:.1,borderRadius:.5,bgcolor:ie!=="0"?"action.selected":"transparent",opacity:ie!=="0"?1:.5,"&:hover":{opacity:1},userSelect:"none"},children:ie==="0"?"no jit":"jit"})})]}),Un&&re.jsxs(WA,{value:He,exclusive:!0,size:"small",onChange:(ut,Lt)=>{Lt&&je(Lt)},sx:{"& .MuiToggleButton-root":{py:0,px:1,fontSize:"0.7rem",textTransform:"none",lineHeight:1.6}},children:[re.jsx(Np,{value:"rendered",children:"Rendered"}),re.jsx(Np,{value:"source",children:"Source"})]}),qt&&re.jsx(Sr,{variant:"caption",color:"text.secondary",sx:{fontFamily:"monospace",fontWeight:"bold"},children:qt.name})]}),re.jsx(An,{sx:{flexGrow:1,minHeight:0},children:kn?re.jsx(An,{sx:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%",color:"text.secondary"},children:re.jsxs(Sr,{variant:"body2",children:["Binary file (",ts?.length??0," bytes)"]})}):Un&&He==="rendered"?re.jsx(An,{sx:{height:"100%",overflow:"auto",p:3},children:re.jsx(sPe,{source:ts?L_(ts):"",onFileLink:Xt})}):re.jsx(pce,{height:"100%",language:qt?.name.endsWith(".js")?"javascript":Un?"markdown":"numbl",defaultValue:ts?L_(ts):"",onChange:ut=>{const Lt=xPe.encode(ut||"");Yl(Lt),fi.current=!0,G(t)?E(t,Lt):r(ut||"")},onMount:ga,options:{minimap:{enabled:!1},fontSize:14,lineNumbers:"on",scrollBeyondLastLine:!1}})})]}):re.jsx(_Me,{onExecute:qr,onClear:cr,isExecuting:lt,onTerminalReady:Gn})})]}),Ua=re.jsxs(An,{sx:{height:"100%",display:"flex",flexDirection:"column"},children:[re.jsxs(Qy,{value:ye,onChange:(ut,Lt)=>Xe(Lt),sx:{borderBottom:1,borderColor:"divider",minHeight:34,"& .MuiTab-root":{textTransform:"none",fontWeight:500,fontSize:"0.8rem",minHeight:34,py:0}},children:[re.jsx(pu,{label:"Output"}),re.jsx(pu,{label:"Internals"})]}),re.jsxs(An,{sx:{flexGrow:1,overflow:"hidden"},children:[ye===0&&re.jsx(An,{sx:{height:"100%",overflow:"auto",p:1.5},children:ce?re.jsx("pre",{style:{margin:0,fontFamily:'Menlo, Monaco, "Courier New", monospace',fontSize:"13px",lineHeight:1.5,whiteSpace:"pre-wrap"},children:ce}):re.jsx(Sr,{variant:"body2",color:"text.disabled",sx:{fontStyle:"italic",mt:2,textAlign:"center"},children:"Run a script to see output here"})}),ye===1&&re.jsxs(An,{sx:{height:"100%",display:"flex",flexDirection:"column"},children:[re.jsx(An,{sx:{display:"flex",alignItems:"center",px:1,py:.5},children:re.jsxs(WA,{value:Fe,exclusive:!0,onChange:(ut,Lt)=>{Lt&&Oe(Lt)},size:"small",children:[re.jsx(Np,{value:"js",sx:{py:0,px:1,fontSize:"0.75rem",textTransform:"none"},children:"JavaScript"}),re.jsx(Np,{value:"ast",sx:{py:0,px:1,fontSize:"0.75rem",textTransform:"none"},children:"AST"}),re.jsx(Np,{value:"dispatch",sx:{py:0,px:1,fontSize:"0.75rem",textTransform:"none"},children:"Dispatch"})]})}),re.jsxs(An,{sx:{flexGrow:1,overflow:"hidden"},children:[Fe==="js"&&re.jsx(An,{sx:{height:"100%",overflow:"auto"},children:re.jsx(Qu,{language:"javascript",style:YF,customStyle:{margin:0,fontSize:12},children:de||""})}),Fe==="ast"&&re.jsx(G9,{data:we,label:"ast",fileSources:Le}),Fe==="dispatch"&&re.jsx(An,{sx:{height:"100%",overflow:"auto",p:1},children:te&&Object.keys(te).length>0?re.jsx("pre",{style:{margin:0,fontFamily:"monospace",fontSize:"13px",whiteSpace:"pre-wrap"},children:Object.entries(te).sort(([,ut],[,Lt])=>Lt-ut).map(([ut,Lt])=>`${ut}: ${Lt}`).join(`
4824
4824
  `)}):re.jsx(Sr,{variant:"body2",color:"text.secondary",children:"No dispatchUnknown calls"})})]})]})]})]}),Nc=re.jsxs(re.Fragment,{children:[re.jsxs(An,{sx:ge?{position:"fixed",inset:0,zIndex:1250,bgcolor:"background.paper",display:"flex",flexDirection:"column"}:{height:"100%",display:"flex",flexDirection:"column"},children:[re.jsxs(An,{sx:{display:"flex",alignItems:"center",borderBottom:1,borderColor:"divider"},children:[re.jsx(Qy,{value:Q,onChange:(ut,Lt)=>xe(Lt),variant:"scrollable",scrollButtons:"auto",sx:{flexGrow:1,minHeight:34,"& .MuiTab-root":{textTransform:"none",fontWeight:500,fontSize:"0.8rem",minHeight:34,py:0}},children:En.map(ut=>re.jsx(pu,{label:`Figure ${ut}`},ut))}),re.jsx(ku,{title:"Open this figure in the numbl figure viewer (new tab)",children:re.jsx("span",{children:re.jsx(lo,{size:"small",onClick:Ki,disabled:En.length===0,sx:{mx:.5,flexShrink:0},children:re.jsx(yue,{fontSize:"small"})})})}),re.jsx(ku,{title:"Download this figure's data as HDF5 (.h5)",children:re.jsx("span",{children:re.jsx(lo,{size:"small",onClick:_r,disabled:cn||En.length===0,sx:{mx:.5,flexShrink:0},children:re.jsx(QF,{fontSize:"small"})})})}),re.jsx(ku,{title:ge?"Collapse figures (Esc)":"Expand figures to full window",children:re.jsx(lo,{size:"small",onClick:()=>be(ut=>!ut),sx:{mx:.5,flexShrink:0},children:ge?re.jsx(gue,{fontSize:"small"}):re.jsx(mue,{fontSize:"small"})})})]}),re.jsx(An,{sx:{flexGrow:1,overflow:"auto",p:1},children:En.length>0?re.jsx(LD,{figure:K.figs[En[Q]]}):re.jsx(Sr,{variant:"body2",color:"text.disabled",sx:{p:2,textAlign:"center",fontStyle:"italic"},children:"No figures"})})]}),re.jsx(koe,{open:fr!==null,onClose:()=>dr(null),anchorOrigin:{vertical:"bottom",horizontal:"center"},children:re.jsxs(Qte,{severity:fr?.kind==="failed"?"warning":"info",onClose:()=>dr(null),sx:{width:"100%"},children:[fr?.kind==="uploading"&&"Preparing a temporary link to the figure viewer…",fr?.kind==="ready"&&re.jsxs(re.Fragment,{children:["Figure too large for a direct link — uploaded (encrypted, temporary)."," ",re.jsx(Tv,{href:fr.url,target:"_blank",rel:"noreferrer",children:"Open in figure viewer"})]}),fr?.kind==="failed"&&re.jsxs(re.Fragment,{children:["This figure is too large to open through a link, and the temporary upload failed. Download it (",re.jsx(QF,{fontSize:"inherit",sx:{verticalAlign:"middle"}}),") and"," ",re.jsx(Tv,{href:fr.baseUrl,target:"_blank",rel:"noreferrer",children:"open the figure viewer"}),", then load the file."]})]})})]}),Lc=re.jsx(cge,{files:Z,activeFileId:t,onSelectFile:ut=>{n(ut),ot&&ze(!1)},onAddFile:async ut=>{if(ut&&O(ut)){const Lt=await T(ut);Lt&&Be(Lt)}else{const Lt=await i(ut);Lt&&Be(Lt)}},onAddFolder:async ut=>{if(ut&&O(ut)){const Lt=await k(ut);Lt&&Be(`folder:${Lt}`)}else{const Lt=await s(ut);Lt&&Be(`folder:${Lt}`)}},onDeleteFile:ut=>G(ut)?R(ut):o(ut),onDeleteFolder:ut=>O(ut)?P(ut):a(ut),onRenameFile:(ut,Lt)=>G(ut)?F(ut,Lt):l(ut,Lt),onRenameFolder:(ut,Lt)=>O(ut)?L(ut,Lt):c(ut,Lt),onMoveFile:(ut,Lt)=>G(ut)?j(ut,Lt):u(ut,Lt),onDuplicateFile:async ut=>{const Lt=G(ut)?await V(ut):await h(ut);Lt&&Be(Lt)},onUploadFiles:f,fileCount:Z.length,triggerRenameId:ve});return re.jsxs(re.Fragment,{children:[re.jsxs(An,{sx:{height:"100vh",display:"flex",flexDirection:"column"},children:[re.jsxs(An,{sx:{display:"flex",alignItems:"center",px:1.5,py:.5,borderBottom:1,borderColor:"divider",bgcolor:"#1e1e2e",color:"#cdd6f4",minHeight:40,flexShrink:0,"& .MuiIconButton-root":{color:"#cdd6f4"},"& .MuiTypography-root":{color:"#cdd6f4"}},children:[ot&&re.jsx(lo,{size:"small",onClick:()=>ze(!0),sx:{mr:.5},children:re.jsx(due,{fontSize:"small"})}),d]}),ot?re.jsxs(re.Fragment,{children:[re.jsx(Kie,{open:Ae,onClose:()=>ze(!1),slotProps:{paper:{sx:{width:260}}},children:Lc}),re.jsxs(Sw,{direction:"horizontal",initialSize:Math.round(window.innerHeight*.55),minSize:100,children:[wi,re.jsxs(An,{sx:{height:"100%",display:"flex",flexDirection:"column"},children:[re.jsxs(Qy,{value:_t,onChange:(ut,Lt)=>zt(Lt),variant:"scrollable",scrollButtons:"auto",sx:{borderBottom:1,borderColor:"divider",minHeight:32},children:[re.jsx(pu,{label:"Output",sx:{minHeight:32,py:0,fontSize:"0.75rem",minWidth:0,px:1}}),re.jsx(pu,{label:"Figures",sx:{minHeight:32,py:0,fontSize:"0.75rem",minWidth:0,px:1}}),re.jsx(pu,{label:"JS",sx:{minHeight:32,py:0,fontSize:"0.75rem",minWidth:0,px:1}}),re.jsx(pu,{label:"AST",sx:{minHeight:32,py:0,fontSize:"0.75rem",minWidth:0,px:1}})]}),re.jsxs(An,{sx:{flexGrow:1,overflow:"hidden"},children:[_t===0&&re.jsx(An,{sx:{height:"100%",overflow:"auto",p:1},children:re.jsx("pre",{style:{margin:0,fontFamily:"monospace",fontSize:"13px",whiteSpace:"pre-wrap"},children:ce})}),_t===1&&re.jsx(An,{sx:{height:"100%",overflow:"auto",p:1},children:En.length>0?re.jsxs(re.Fragment,{children:[En.length>1&&re.jsx(Qy,{value:Q,onChange:(ut,Lt)=>xe(Lt),variant:"scrollable",scrollButtons:"auto",sx:{minHeight:28,mb:.5},children:En.map(ut=>re.jsx(pu,{label:`Fig ${ut}`,sx:{minHeight:28,py:0,fontSize:"0.7rem"}},ut))}),re.jsx(LD,{figure:K.figs[En[Q]]})]}):re.jsx(Sr,{variant:"body2",color:"text.secondary",children:"No figures"})}),_t===2&&re.jsx(An,{sx:{height:"100%",overflow:"auto"},children:re.jsx(Qu,{language:"javascript",style:YF,customStyle:{margin:0,fontSize:12},children:de||""})}),_t===3&&re.jsx(G9,{data:we,label:"ast",fileSources:Le})]})]})]})]}):re.jsxs(Sw,{direction:"vertical",initialSize:St,minSize:150,maxSize:400,onSizeChange:yt,children:[Lc,re.jsxs(Sw,{direction:"vertical",initialSize:mt,onSizeChange:rn,children:[wi,re.jsxs(Sw,{direction:"horizontal",initialSize:ht,minSize:Gt,onSizeChange:Rt,children:[Ua,Nc]})]})]})]}),re.jsxs(wie,{open:Ut,onClose:()=>Yt(!1),maxWidth:"sm",fullWidth:!0,children:[re.jsx(Pie,{children:"Execution Settings"}),re.jsxs(Nie,{sx:{display:"flex",flexDirection:"column",gap:2,pt:3,overflow:"visible"},children:[re.jsxs(WA,{value:xt?"local":"browser",exclusive:!0,onChange:xi,size:"small",children:[re.jsxs(Np,{value:"browser",sx:{px:2},children:[re.jsx(KF,{sx:{fontSize:"1rem",mr:.5}}),"In browser"]}),re.jsxs(Np,{value:"local",sx:{px:2},children:[re.jsx(ZF,{sx:{fontSize:"1rem",mr:.5}}),"Local server"]})]}),re.jsx(yF,{label:"Server URL",value:Ot,onChange:ut=>hn(ut.target.value),size:"small",fullWidth:!0,disabled:!xt,slotProps:{input:{style:{fontFamily:"monospace",fontSize:"0.85rem"}}},helperText:"Default: http://localhost:3001"}),re.jsxs(An,{sx:{display:"flex",alignItems:"center",gap:1},children:[re.jsx(Sr,{variant:"body2",color:xt?ms==="connected"?"success.main":ms==="disconnected"?"warning.main":"text.secondary":"text.disabled",children:xt?ms==="connected"?"Connected"+(Or===!0?" (native addon available)":Or===!1?" (no native addon)":""):ms==="disconnected"?"Not connected":"Checking...":"Server status: n/a"}),re.jsx(kd,{size:"small",disabled:!xt,onClick:()=>{Yo("unknown"),F7(Ot,Hi.current).then(ut=>{ut?(ps(ut.nativeAddon===!0),Yo("connected")):Yo("disconnected")})},sx:{minWidth:0,textTransform:"none"},children:"Check"})]}),re.jsxs(An,{sx:{opacity:xt?1:.4},children:[re.jsx(Sr,{variant:"body2",color:"text.secondary",gutterBottom:!0,children:"Start a local server in a terminal:"}),re.jsx(An,{component:"pre",sx:{bgcolor:"#1e1e1e",color:"#ccc",p:1.5,borderRadius:1,fontSize:"0.8rem",m:0,whiteSpace:"pre-wrap"},children:`# If installed globally:
@@ -4827,5 +4827,5 @@ npx numbl serve --passkey ${Ci}
4827
4827
  # Or from the repo (dev mode):
4828
4828
  npx tsx src/cli.ts serve --passkey ${Ci}`}),re.jsx(Sr,{variant:"caption",color:"text.disabled",onClick:()=>{Lo(ds()),Yo("disconnected")},sx:{cursor:"pointer",mt:.5,"&:hover":{color:"text.secondary"}},children:"regenerate passkey"})]}),re.jsx(nR,{}),re.jsxs(An,{children:[re.jsx(lse,{control:re.jsx(Hoe,{checked:Zn,onChange:ut=>Mn(ut.target.checked),size:"small"}),label:"Accelerate matrix math (WASM)"}),re.jsx(Sr,{variant:"caption",color:"text.secondary",component:"p",children:"Loads an external WebAssembly LAPACK/BLAS bridge to speed up matrix multiplication in the browser. Falls back to the built-in pure-JS implementation when off or unavailable. Turning it off is temporary — it re-enables on page reload."}),re.jsx(yF,{label:"Bridge URL",value:Kn,onChange:ut=>Ts(ut.target.value),size:"small",fullWidth:!0,disabled:!Zn,sx:{mt:1},slotProps:{input:{style:{fontFamily:"monospace",fontSize:"0.85rem"}}},helperText:"Base URL serving numbl-bridge.json"})]})]}),re.jsxs(Cie,{children:[re.jsx(kd,{onClick:()=>Yt(!1),children:"Cancel"}),re.jsx(kd,{variant:"contained",onClick:_n,children:"Save"})]})]})]})}const SPe=4,U7=0,O7=1,MPe=2;function X1(e){let t=e.length;for(;--t>=0;)e[t]=0}const EPe=0,TY=1,CPe=2,APe=3,TPe=258,RP=29,Hb=256,ib=Hb+1+RP,J0=30,DP=19,kY=2*ib+1,mm=15,S3=16,kPe=7,NP=256,RY=16,DY=17,NY=18,GN=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),c2=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),RPe=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),LY=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),DPe=512,of=new Array((ib+2)*2);X1(of);const gv=new Array(J0*2);X1(gv);const sb=new Array(DPe);X1(sb);const ob=new Array(TPe-APe+1);X1(ob);const LP=new Array(RP);X1(LP);const _M=new Array(J0);X1(_M);function M3(e,t,n,r,i){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=e&&e.length}let IY,PY,BY;function E3(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}const FY=e=>e<256?sb[e]:sb[256+(e>>>7)],ab=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},gl=(e,t,n)=>{e.bi_valid>S3-n?(e.bi_buf|=t<<e.bi_valid&65535,ab(e,e.bi_buf),e.bi_buf=t>>S3-e.bi_valid,e.bi_valid+=n-S3):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)},Bu=(e,t,n)=>{gl(e,n[t*2],n[t*2+1])},zY=(e,t)=>{let n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1},NPe=e=>{e.bi_valid===16?(ab(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)},LPe=(e,t)=>{const n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,s=t.stat_desc.has_stree,o=t.stat_desc.extra_bits,a=t.stat_desc.extra_base,l=t.stat_desc.max_length;let c,u,h,f,d,p,m=0;for(f=0;f<=mm;f++)e.bl_count[f]=0;for(n[e.heap[e.heap_max]*2+1]=0,c=e.heap_max+1;c<kY;c++)u=e.heap[c],f=n[n[u*2+1]*2+1]+1,f>l&&(f=l,m++),n[u*2+1]=f,!(u>r)&&(e.bl_count[f]++,d=0,u>=a&&(d=o[u-a]),p=n[u*2],e.opt_len+=p*(f+d),s&&(e.static_len+=p*(i[u*2+1]+d)));if(m!==0){do{for(f=l-1;e.bl_count[f]===0;)f--;e.bl_count[f]--,e.bl_count[f+1]+=2,e.bl_count[l]--,m-=2}while(m>0);for(f=l;f!==0;f--)for(u=e.bl_count[f];u!==0;)h=e.heap[--c],!(h>r)&&(n[h*2+1]!==f&&(e.opt_len+=(f-n[h*2+1])*n[h*2],n[h*2+1]=f),u--)}},UY=(e,t,n)=>{const r=new Array(mm+1);let i=0,s,o;for(s=1;s<=mm;s++)i=i+n[s-1]<<1,r[s]=i;for(o=0;o<=t;o++){let a=e[o*2+1];a!==0&&(e[o*2]=zY(r[a]++,a))}},IPe=()=>{let e,t,n,r,i;const s=new Array(mm+1);for(n=0,r=0;r<RP-1;r++)for(LP[r]=n,e=0;e<1<<GN[r];e++)ob[n++]=r;for(ob[n-1]=r,i=0,r=0;r<16;r++)for(_M[r]=i,e=0;e<1<<c2[r];e++)sb[i++]=r;for(i>>=7;r<J0;r++)for(_M[r]=i<<7,e=0;e<1<<c2[r]-7;e++)sb[256+i++]=r;for(t=0;t<=mm;t++)s[t]=0;for(e=0;e<=143;)of[e*2+1]=8,e++,s[8]++;for(;e<=255;)of[e*2+1]=9,e++,s[9]++;for(;e<=279;)of[e*2+1]=7,e++,s[7]++;for(;e<=287;)of[e*2+1]=8,e++,s[8]++;for(UY(of,ib+1,s),e=0;e<J0;e++)gv[e*2+1]=5,gv[e*2]=zY(e,5);IY=new M3(of,GN,Hb+1,ib,mm),PY=new M3(gv,c2,0,J0,mm),BY=new M3(new Array(0),RPe,0,DP,kPe)},OY=e=>{let t;for(t=0;t<ib;t++)e.dyn_ltree[t*2]=0;for(t=0;t<J0;t++)e.dyn_dtree[t*2]=0;for(t=0;t<DP;t++)e.bl_tree[t*2]=0;e.dyn_ltree[NP*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},jY=e=>{e.bi_valid>8?ab(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},j7=(e,t,n,r)=>{const i=t*2,s=n*2;return e[i]<e[s]||e[i]===e[s]&&r[t]<=r[n]},C3=(e,t,n)=>{const r=e.heap[n];let i=n<<1;for(;i<=e.heap_len&&(i<e.heap_len&&j7(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!j7(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r},H7=(e,t,n)=>{let r,i,s=0,o,a;if(e.sym_next!==0)do r=e.pending_buf[e.sym_buf+s++]&255,r+=(e.pending_buf[e.sym_buf+s++]&255)<<8,i=e.pending_buf[e.sym_buf+s++],r===0?Bu(e,i,t):(o=ob[i],Bu(e,o+Hb+1,t),a=GN[o],a!==0&&(i-=LP[o],gl(e,i,a)),r--,o=FY(r),Bu(e,o,n),a=c2[o],a!==0&&(r-=_M[o],gl(e,r,a)));while(s<e.sym_next);Bu(e,NP,t)},XN=(e,t)=>{const n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,s=t.stat_desc.elems;let o,a,l=-1,c;for(e.heap_len=0,e.heap_max=kY,o=0;o<s;o++)n[o*2]!==0?(e.heap[++e.heap_len]=l=o,e.depth[o]=0):n[o*2+1]=0;for(;e.heap_len<2;)c=e.heap[++e.heap_len]=l<2?++l:0,n[c*2]=1,e.depth[c]=0,e.opt_len--,i&&(e.static_len-=r[c*2+1]);for(t.max_code=l,o=e.heap_len>>1;o>=1;o--)C3(e,n,o);c=s;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],C3(e,n,1),a=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=a,n[c*2]=n[o*2]+n[a*2],e.depth[c]=(e.depth[o]>=e.depth[a]?e.depth[o]:e.depth[a])+1,n[o*2+1]=n[a*2+1]=c,e.heap[1]=c++,C3(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],LPe(e,t),UY(n,l,e.bl_count)},$7=(e,t,n)=>{let r,i=-1,s,o=t[1],a=0,l=7,c=4;for(o===0&&(l=138,c=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)s=o,o=t[(r+1)*2+1],!(++a<l&&s===o)&&(a<c?e.bl_tree[s*2]+=a:s!==0?(s!==i&&e.bl_tree[s*2]++,e.bl_tree[RY*2]++):a<=10?e.bl_tree[DY*2]++:e.bl_tree[NY*2]++,a=0,i=s,o===0?(l=138,c=3):s===o?(l=6,c=3):(l=7,c=4))},V7=(e,t,n)=>{let r,i=-1,s,o=t[1],a=0,l=7,c=4;for(o===0&&(l=138,c=3),r=0;r<=n;r++)if(s=o,o=t[(r+1)*2+1],!(++a<l&&s===o)){if(a<c)do Bu(e,s,e.bl_tree);while(--a!==0);else s!==0?(s!==i&&(Bu(e,s,e.bl_tree),a--),Bu(e,RY,e.bl_tree),gl(e,a-3,2)):a<=10?(Bu(e,DY,e.bl_tree),gl(e,a-3,3)):(Bu(e,NY,e.bl_tree),gl(e,a-11,7));a=0,i=s,o===0?(l=138,c=3):s===o?(l=6,c=3):(l=7,c=4)}},PPe=e=>{let t;for($7(e,e.dyn_ltree,e.l_desc.max_code),$7(e,e.dyn_dtree,e.d_desc.max_code),XN(e,e.bl_desc),t=DP-1;t>=3&&e.bl_tree[LY[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},BPe=(e,t,n,r)=>{let i;for(gl(e,t-257,5),gl(e,n-1,5),gl(e,r-4,4),i=0;i<r;i++)gl(e,e.bl_tree[LY[i]*2+1],3);V7(e,e.dyn_ltree,t-1),V7(e,e.dyn_dtree,n-1)},FPe=e=>{let t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return U7;if(e.dyn_ltree[18]!==0||e.dyn_ltree[20]!==0||e.dyn_ltree[26]!==0)return O7;for(n=32;n<Hb;n++)if(e.dyn_ltree[n*2]!==0)return O7;return U7};let W7=!1;const zPe=e=>{W7||(IPe(),W7=!0),e.l_desc=new E3(e.dyn_ltree,IY),e.d_desc=new E3(e.dyn_dtree,PY),e.bl_desc=new E3(e.bl_tree,BY),e.bi_buf=0,e.bi_valid=0,OY(e)},HY=(e,t,n,r)=>{gl(e,(EPe<<1)+(r?1:0),3),jY(e),ab(e,n),ab(e,~n),n&&e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n},UPe=e=>{gl(e,TY<<1,3),Bu(e,NP,of),NPe(e)},OPe=(e,t,n,r)=>{let i,s,o=0;e.level>0?(e.strm.data_type===MPe&&(e.strm.data_type=FPe(e)),XN(e,e.l_desc),XN(e,e.d_desc),o=PPe(e),i=e.opt_len+3+7>>>3,s=e.static_len+3+7>>>3,s<=i&&(i=s)):i=s=n+5,n+4<=i&&t!==-1?HY(e,t,n,r):e.strategy===SPe||s===i?(gl(e,(TY<<1)+(r?1:0),3),H7(e,of,gv)):(gl(e,(CPe<<1)+(r?1:0),3),BPe(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),H7(e,e.dyn_ltree,e.dyn_dtree)),OY(e),r&&jY(e)},jPe=(e,t,n)=>(e.pending_buf[e.sym_buf+e.sym_next++]=t,e.pending_buf[e.sym_buf+e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+e.sym_next++]=n,t===0?e.dyn_ltree[n*2]++:(e.matches++,t--,e.dyn_ltree[(ob[n]+Hb+1)*2]++,e.dyn_dtree[FY(t)*2]++),e.sym_next===e.sym_end);var HPe=zPe,$Pe=HY,VPe=OPe,WPe=jPe,qPe=UPe,GPe={_tr_init:HPe,_tr_stored_block:$Pe,_tr_flush_block:VPe,_tr_tally:WPe,_tr_align:qPe};const XPe=(e,t,n,r)=>{let i=e&65535|0,s=e>>>16&65535|0,o=0;for(;n!==0;){o=n>2e3?2e3:n,n-=o;do i=i+t[r++]|0,s=s+i|0;while(--o);i%=65521,s%=65521}return i|s<<16|0};var lb=XPe;const YPe=()=>{let e,t=[];for(var n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=e&1?3988292384^e>>>1:e>>>1;t[n]=e}return t},KPe=new Uint32Array(YPe()),ZPe=(e,t,n,r)=>{const i=KPe,s=r+n;e^=-1;for(let o=r;o<s;o++)e=e>>>8^i[(e^t[o])&255];return e^-1};var zo=ZPe,Om={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},$b={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:QPe,_tr_stored_block:YN,_tr_flush_block:JPe,_tr_tally:qd,_tr_align:e5e}=GPe,{Z_NO_FLUSH:Gd,Z_PARTIAL_FLUSH:t5e,Z_FULL_FLUSH:n5e,Z_FINISH:bc,Z_BLOCK:q7,Z_OK:aa,Z_STREAM_END:G7,Z_STREAM_ERROR:Yu,Z_DATA_ERROR:r5e,Z_BUF_ERROR:A3,Z_DEFAULT_COMPRESSION:i5e,Z_FILTERED:s5e,Z_HUFFMAN_ONLY:CS,Z_RLE:o5e,Z_FIXED:a5e,Z_DEFAULT_STRATEGY:l5e,Z_UNKNOWN:c5e,Z_DEFLATED:LE}=$b,u5e=9,h5e=15,f5e=8,d5e=29,p5e=256,KN=p5e+1+d5e,m5e=30,g5e=19,y5e=2*KN+1,_5e=15,Qr=3,jd=258,Ku=jd+Qr+1,v5e=32,T1=42,IP=57,ZN=69,QN=73,JN=91,eL=103,gm=113,X_=666,Qa=1,Y1=2,jm=3,K1=4,b5e=3,ym=(e,t)=>(e.msg=Om[t],t),X7=e=>e*2-(e>4?9:0),Ld=e=>{let t=e.length;for(;--t>=0;)e[t]=0},x5e=e=>{let t,n,r,i=e.w_size;t=e.hash_size,r=t;do n=e.head[--r],e.head[r]=n>=i?n-i:0;while(--t);t=i,r=t;do n=e.prev[--r],e.prev[r]=n>=i?n-i:0;while(--t)};let w5e=(e,t,n)=>(t<<e.hash_shift^n)&e.hash_mask,Xd=w5e;const Bl=e=>{const t=e.state;let n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+n),e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,t.pending===0&&(t.pending_out=0))},$l=(e,t)=>{JPe(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Bl(e.strm)},pi=(e,t)=>{e.pending_buf[e.pending++]=t},T_=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},tL=(e,t,n,r)=>{let i=e.avail_in;return i>r&&(i=r),i===0?0:(e.avail_in-=i,t.set(e.input.subarray(e.next_in,e.next_in+i),n),e.state.wrap===1?e.adler=lb(e.adler,t,i,n):e.state.wrap===2&&(e.adler=zo(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)},$Y=(e,t)=>{let n=e.max_chain_length,r=e.strstart,i,s,o=e.prev_length,a=e.nice_match;const l=e.strstart>e.w_size-Ku?e.strstart-(e.w_size-Ku):0,c=e.window,u=e.w_mask,h=e.prev,f=e.strstart+jd;let d=c[r+o-1],p=c[r+o];e.prev_length>=e.good_match&&(n>>=2),a>e.lookahead&&(a=e.lookahead);do if(i=t,!(c[i+o]!==p||c[i+o-1]!==d||c[i]!==c[r]||c[++i]!==c[r+1])){r+=2,i++;do;while(c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&r<f);if(s=jd-(f-r),r=f-jd,s>o){if(e.match_start=t,o=s,s>=a)break;d=c[r+o-1],p=c[r+o]}}while((t=h[t&u])>l&&--n!==0);return o<=e.lookahead?o:e.lookahead},k1=e=>{const t=e.w_size;let n,r,i;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Ku)&&(e.window.set(e.window.subarray(t,t+t-r),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),x5e(e),r+=t),e.strm.avail_in===0)break;if(n=tL(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=n,e.lookahead+e.insert>=Qr)for(i=e.strstart-e.insert,e.ins_h=e.window[i],e.ins_h=Xd(e,e.ins_h,e.window[i+1]);e.insert&&(e.ins_h=Xd(e,e.ins_h,e.window[i+Qr-1]),e.prev[i&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=i,i++,e.insert--,!(e.lookahead+e.insert<Qr)););}while(e.lookahead<Ku&&e.strm.avail_in!==0)},VY=(e,t)=>{let n=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,r,i,s,o=0,a=e.strm.avail_in;do{if(r=65535,s=e.bi_valid+42>>3,e.strm.avail_out<s||(s=e.strm.avail_out-s,i=e.strstart-e.block_start,r>i+e.strm.avail_in&&(r=i+e.strm.avail_in),r>s&&(r=s),r<n&&(r===0&&t!==bc||t===Gd||r!==i+e.strm.avail_in)))break;o=t===bc&&r===i+e.strm.avail_in?1:0,YN(e,0,0,o),e.pending_buf[e.pending-4]=r,e.pending_buf[e.pending-3]=r>>8,e.pending_buf[e.pending-2]=~r,e.pending_buf[e.pending-1]=~r>>8,Bl(e.strm),i&&(i>r&&(i=r),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+i),e.strm.next_out),e.strm.next_out+=i,e.strm.avail_out-=i,e.strm.total_out+=i,e.block_start+=i,r-=i),r&&(tL(e.strm,e.strm.output,e.strm.next_out,r),e.strm.next_out+=r,e.strm.avail_out-=r,e.strm.total_out+=r)}while(o===0);return a-=e.strm.avail_in,a&&(a>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=a&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-a,e.strm.next_in),e.strstart),e.strstart+=a,e.insert+=a>e.w_size-e.insert?e.w_size-e.insert:a),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),o?K1:t!==Gd&&t!==bc&&e.strm.avail_in===0&&e.strstart===e.block_start?Y1:(s=e.window_size-e.strstart,e.strm.avail_in>s&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,s+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),s>e.strm.avail_in&&(s=e.strm.avail_in),s&&(tL(e.strm,e.window,e.strstart,s),e.strstart+=s,e.insert+=s>e.w_size-e.insert?e.w_size-e.insert:s),e.high_water<e.strstart&&(e.high_water=e.strstart),s=e.bi_valid+42>>3,s=e.pending_buf_size-s>65535?65535:e.pending_buf_size-s,n=s>e.w_size?e.w_size:s,i=e.strstart-e.block_start,(i>=n||(i||t===bc)&&t!==Gd&&e.strm.avail_in===0&&i<=s)&&(r=i>s?s:i,o=t===bc&&e.strm.avail_in===0&&r===i?1:0,YN(e,e.block_start,r,o),e.block_start+=r,Bl(e.strm)),o?jm:Qa)},T3=(e,t)=>{let n,r;for(;;){if(e.lookahead<Ku){if(k1(e),e.lookahead<Ku&&t===Gd)return Qa;if(e.lookahead===0)break}if(n=0,e.lookahead>=Qr&&(e.ins_h=Xd(e,e.ins_h,e.window[e.strstart+Qr-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),n!==0&&e.strstart-n<=e.w_size-Ku&&(e.match_length=$Y(e,n)),e.match_length>=Qr)if(r=qd(e,e.strstart-e.match_start,e.match_length-Qr),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=Qr){e.match_length--;do e.strstart++,e.ins_h=Xd(e,e.ins_h,e.window[e.strstart+Qr-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=Xd(e,e.ins_h,e.window[e.strstart+1]);else r=qd(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&($l(e,!1),e.strm.avail_out===0))return Qa}return e.insert=e.strstart<Qr-1?e.strstart:Qr-1,t===bc?($l(e,!0),e.strm.avail_out===0?jm:K1):e.sym_next&&($l(e,!1),e.strm.avail_out===0)?Qa:Y1},C0=(e,t)=>{let n,r,i;for(;;){if(e.lookahead<Ku){if(k1(e),e.lookahead<Ku&&t===Gd)return Qa;if(e.lookahead===0)break}if(n=0,e.lookahead>=Qr&&(e.ins_h=Xd(e,e.ins_h,e.window[e.strstart+Qr-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=Qr-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-Ku&&(e.match_length=$Y(e,n),e.match_length<=5&&(e.strategy===s5e||e.match_length===Qr&&e.strstart-e.match_start>4096)&&(e.match_length=Qr-1)),e.prev_length>=Qr&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-Qr,r=qd(e,e.strstart-1-e.prev_match,e.prev_length-Qr),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=Xd(e,e.ins_h,e.window[e.strstart+Qr-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=Qr-1,e.strstart++,r&&($l(e,!1),e.strm.avail_out===0))return Qa}else if(e.match_available){if(r=qd(e,0,e.window[e.strstart-1]),r&&$l(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return Qa}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=qd(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<Qr-1?e.strstart:Qr-1,t===bc?($l(e,!0),e.strm.avail_out===0?jm:K1):e.sym_next&&($l(e,!1),e.strm.avail_out===0)?Qa:Y1},S5e=(e,t)=>{let n,r,i,s;const o=e.window;for(;;){if(e.lookahead<=jd){if(k1(e),e.lookahead<=jd&&t===Gd)return Qa;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=Qr&&e.strstart>0&&(i=e.strstart-1,r=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){s=e.strstart+jd;do;while(r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&i<s);e.match_length=jd-(s-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=Qr?(n=qd(e,1,e.match_length-Qr),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=qd(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&($l(e,!1),e.strm.avail_out===0))return Qa}return e.insert=0,t===bc?($l(e,!0),e.strm.avail_out===0?jm:K1):e.sym_next&&($l(e,!1),e.strm.avail_out===0)?Qa:Y1},M5e=(e,t)=>{let n;for(;;){if(e.lookahead===0&&(k1(e),e.lookahead===0)){if(t===Gd)return Qa;break}if(e.match_length=0,n=qd(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&($l(e,!1),e.strm.avail_out===0))return Qa}return e.insert=0,t===bc?($l(e,!0),e.strm.avail_out===0?jm:K1):e.sym_next&&($l(e,!1),e.strm.avail_out===0)?Qa:Y1};function xu(e,t,n,r,i){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=i}const Y_=[new xu(0,0,0,0,VY),new xu(4,4,8,4,T3),new xu(4,5,16,8,T3),new xu(4,6,32,32,T3),new xu(4,4,16,16,C0),new xu(8,16,32,32,C0),new xu(8,16,128,128,C0),new xu(8,32,128,256,C0),new xu(32,128,258,1024,C0),new xu(32,258,258,4096,C0)],E5e=e=>{e.window_size=2*e.w_size,Ld(e.head),e.max_lazy_match=Y_[e.level].max_lazy,e.good_match=Y_[e.level].good_length,e.nice_match=Y_[e.level].nice_length,e.max_chain_length=Y_[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=Qr-1,e.match_available=0,e.ins_h=0};function C5e(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=LE,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(y5e*2),this.dyn_dtree=new Uint16Array((2*m5e+1)*2),this.bl_tree=new Uint16Array((2*g5e+1)*2),Ld(this.dyn_ltree),Ld(this.dyn_dtree),Ld(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(_5e+1),this.heap=new Uint16Array(2*KN+1),Ld(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*KN+1),Ld(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const Vb=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==T1&&t.status!==IP&&t.status!==ZN&&t.status!==QN&&t.status!==JN&&t.status!==eL&&t.status!==gm&&t.status!==X_?1:0},WY=e=>{if(Vb(e))return ym(e,Yu);e.total_in=e.total_out=0,e.data_type=c5e;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?IP:t.wrap?T1:gm,e.adler=t.wrap===2?0:1,t.last_flush=-2,QPe(t),aa},qY=e=>{const t=WY(e);return t===aa&&E5e(e.state),t},A5e=(e,t)=>Vb(e)||e.state.wrap!==2?Yu:(e.state.gzhead=t,aa),GY=(e,t,n,r,i,s)=>{if(!e)return Yu;let o=1;if(t===i5e&&(t=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),i<1||i>u5e||n!==LE||r<8||r>15||t<0||t>9||s<0||s>a5e||r===8&&o!==1)return ym(e,Yu);r===8&&(r=9);const a=new C5e;return e.state=a,a.strm=e,a.status=T1,a.wrap=o,a.gzhead=null,a.w_bits=r,a.w_size=1<<a.w_bits,a.w_mask=a.w_size-1,a.hash_bits=i+7,a.hash_size=1<<a.hash_bits,a.hash_mask=a.hash_size-1,a.hash_shift=~~((a.hash_bits+Qr-1)/Qr),a.window=new Uint8Array(a.w_size*2),a.head=new Uint16Array(a.hash_size),a.prev=new Uint16Array(a.w_size),a.lit_bufsize=1<<i+6,a.pending_buf_size=a.lit_bufsize*4,a.pending_buf=new Uint8Array(a.pending_buf_size),a.sym_buf=a.lit_bufsize,a.sym_end=(a.lit_bufsize-1)*3,a.level=t,a.strategy=s,a.method=n,qY(e)},T5e=(e,t)=>GY(e,t,LE,h5e,f5e,l5e),k5e=(e,t)=>{if(Vb(e)||t>q7||t<0)return e?ym(e,Yu):Yu;const n=e.state;if(!e.output||e.avail_in!==0&&!e.input||n.status===X_&&t!==bc)return ym(e,e.avail_out===0?A3:Yu);const r=n.last_flush;if(n.last_flush=t,n.pending!==0){if(Bl(e),e.avail_out===0)return n.last_flush=-1,aa}else if(e.avail_in===0&&X7(t)<=X7(r)&&t!==bc)return ym(e,A3);if(n.status===X_&&e.avail_in!==0)return ym(e,A3);if(n.status===T1&&n.wrap===0&&(n.status=gm),n.status===T1){let i=LE+(n.w_bits-8<<4)<<8,s=-1;if(n.strategy>=CS||n.level<2?s=0:n.level<6?s=1:n.level===6?s=2:s=3,i|=s<<6,n.strstart!==0&&(i|=v5e),i+=31-i%31,T_(n,i),n.strstart!==0&&(T_(n,e.adler>>>16),T_(n,e.adler&65535)),e.adler=1,n.status=gm,Bl(e),n.pending!==0)return n.last_flush=-1,aa}if(n.status===IP){if(e.adler=0,pi(n,31),pi(n,139),pi(n,8),n.gzhead)pi(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),pi(n,n.gzhead.time&255),pi(n,n.gzhead.time>>8&255),pi(n,n.gzhead.time>>16&255),pi(n,n.gzhead.time>>24&255),pi(n,n.level===9?2:n.strategy>=CS||n.level<2?4:0),pi(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(pi(n,n.gzhead.extra.length&255),pi(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=zo(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=ZN;else if(pi(n,0),pi(n,0),pi(n,0),pi(n,0),pi(n,0),pi(n,n.level===9?2:n.strategy>=CS||n.level<2?4:0),pi(n,b5e),n.status=gm,Bl(e),n.pending!==0)return n.last_flush=-1,aa}if(n.status===ZN){if(n.gzhead.extra){let i=n.pending,s=(n.gzhead.extra.length&65535)-n.gzindex;for(;n.pending+s>n.pending_buf_size;){let a=n.pending_buf_size-n.pending;if(n.pending_buf.set(n.gzhead.extra.subarray(n.gzindex,n.gzindex+a),n.pending),n.pending=n.pending_buf_size,n.gzhead.hcrc&&n.pending>i&&(e.adler=zo(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex+=a,Bl(e),n.pending!==0)return n.last_flush=-1,aa;i=0,s-=a}let o=new Uint8Array(n.gzhead.extra);n.pending_buf.set(o.subarray(n.gzindex,n.gzindex+s),n.pending),n.pending+=s,n.gzhead.hcrc&&n.pending>i&&(e.adler=zo(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=QN}if(n.status===QN){if(n.gzhead.name){let i=n.pending,s;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(e.adler=zo(e.adler,n.pending_buf,n.pending-i,i)),Bl(e),n.pending!==0)return n.last_flush=-1,aa;i=0}n.gzindex<n.gzhead.name.length?s=n.gzhead.name.charCodeAt(n.gzindex++)&255:s=0,pi(n,s)}while(s!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=zo(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=JN}if(n.status===JN){if(n.gzhead.comment){let i=n.pending,s;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(e.adler=zo(e.adler,n.pending_buf,n.pending-i,i)),Bl(e),n.pending!==0)return n.last_flush=-1,aa;i=0}n.gzindex<n.gzhead.comment.length?s=n.gzhead.comment.charCodeAt(n.gzindex++)&255:s=0,pi(n,s)}while(s!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=zo(e.adler,n.pending_buf,n.pending-i,i))}n.status=eL}if(n.status===eL){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&(Bl(e),n.pending!==0))return n.last_flush=-1,aa;pi(n,e.adler&255),pi(n,e.adler>>8&255),e.adler=0}if(n.status=gm,Bl(e),n.pending!==0)return n.last_flush=-1,aa}if(e.avail_in!==0||n.lookahead!==0||t!==Gd&&n.status!==X_){let i=n.level===0?VY(n,t):n.strategy===CS?M5e(n,t):n.strategy===o5e?S5e(n,t):Y_[n.level].func(n,t);if((i===jm||i===K1)&&(n.status=X_),i===Qa||i===jm)return e.avail_out===0&&(n.last_flush=-1),aa;if(i===Y1&&(t===t5e?e5e(n):t!==q7&&(YN(n,0,0,!1),t===n5e&&(Ld(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),Bl(e),e.avail_out===0))return n.last_flush=-1,aa}return t!==bc?aa:n.wrap<=0?G7:(n.wrap===2?(pi(n,e.adler&255),pi(n,e.adler>>8&255),pi(n,e.adler>>16&255),pi(n,e.adler>>24&255),pi(n,e.total_in&255),pi(n,e.total_in>>8&255),pi(n,e.total_in>>16&255),pi(n,e.total_in>>24&255)):(T_(n,e.adler>>>16),T_(n,e.adler&65535)),Bl(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?aa:G7)},R5e=e=>{if(Vb(e))return Yu;const t=e.state.status;return e.state=null,t===gm?ym(e,r5e):aa},D5e=(e,t)=>{let n=t.length;if(Vb(e))return Yu;const r=e.state,i=r.wrap;if(i===2||i===1&&r.status!==T1||r.lookahead)return Yu;if(i===1&&(e.adler=lb(e.adler,t,n,0)),r.wrap=0,n>=r.w_size){i===0&&(Ld(r.head),r.strstart=0,r.block_start=0,r.insert=0);let l=new Uint8Array(r.w_size);l.set(t.subarray(n-r.w_size,n),0),t=l,n=r.w_size}const s=e.avail_in,o=e.next_in,a=e.input;for(e.avail_in=n,e.next_in=0,e.input=t,k1(r);r.lookahead>=Qr;){let l=r.strstart,c=r.lookahead-(Qr-1);do r.ins_h=Xd(r,r.ins_h,r.window[l+Qr-1]),r.prev[l&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=l,l++;while(--c);r.strstart=l,r.lookahead=Qr-1,k1(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=Qr-1,r.match_available=0,e.next_in=o,e.input=a,e.avail_in=s,r.wrap=i,aa};var N5e=T5e,L5e=GY,I5e=qY,P5e=WY,B5e=A5e,F5e=k5e,z5e=R5e,U5e=D5e,O5e="pako deflate (from Nodeca project)",yv={deflateInit:N5e,deflateInit2:L5e,deflateReset:I5e,deflateResetKeep:P5e,deflateSetHeader:B5e,deflate:F5e,deflateEnd:z5e,deflateSetDictionary:U5e,deflateInfo:O5e};const j5e=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var H5e=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const n=t.shift();if(n){if(typeof n!="object")throw new TypeError(n+"must be non-object");for(const r in n)j5e(n,r)&&(e[r]=n[r])}}return e},$5e=e=>{let t=0;for(let r=0,i=e.length;r<i;r++)t+=e[r].length;const n=new Uint8Array(t);for(let r=0,i=0,s=e.length;r<s;r++){let o=e[r];n.set(o,i),i+=o.length}return n},IE={assign:H5e,flattenChunks:$5e};let XY=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{XY=!1}const cb=new Uint8Array(256);for(let e=0;e<256;e++)cb[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;cb[254]=cb[254]=1;var V5e=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let t,n,r,i,s,o=e.length,a=0;for(i=0;i<o;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),a+=n<128?1:n<2048?2:n<65536?3:4;for(t=new Uint8Array(a),s=0,i=0;s<a;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?t[s++]=n:n<2048?(t[s++]=192|n>>>6,t[s++]=128|n&63):n<65536?(t[s++]=224|n>>>12,t[s++]=128|n>>>6&63,t[s++]=128|n&63):(t[s++]=240|n>>>18,t[s++]=128|n>>>12&63,t[s++]=128|n>>>6&63,t[s++]=128|n&63);return t};const W5e=(e,t)=>{if(t<65534&&e.subarray&&XY)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let n="";for(let r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n};var q5e=(e,t)=>{const n=t||e.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,t));let r,i;const s=new Array(n*2);for(i=0,r=0;r<n;){let o=e[r++];if(o<128){s[i++]=o;continue}let a=cb[o];if(a>4){s[i++]=65533,r+=a-1;continue}for(o&=a===2?31:a===3?15:7;a>1&&r<n;)o=o<<6|e[r++]&63,a--;if(a>1){s[i++]=65533;continue}o<65536?s[i++]=o:(o-=65536,s[i++]=55296|o>>10&1023,s[i++]=56320|o&1023)}return W5e(s,i)},G5e=(e,t)=>{t=t||e.length,t>e.length&&(t=e.length);let n=t-1;for(;n>=0&&(e[n]&192)===128;)n--;return n<0||n===0?t:n+cb[e[n]]>t?n:t},ub={string2buf:V5e,buf2string:q5e,utf8border:G5e};function X5e(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var YY=X5e;const KY=Object.prototype.toString,{Z_NO_FLUSH:Y5e,Z_SYNC_FLUSH:K5e,Z_FULL_FLUSH:Z5e,Z_FINISH:Q5e,Z_OK:vM,Z_STREAM_END:J5e,Z_DEFAULT_COMPRESSION:e4e,Z_DEFAULT_STRATEGY:t4e,Z_DEFLATED:n4e}=$b;function Wb(e){this.options=IE.assign({level:e4e,method:n4e,chunkSize:16384,windowBits:15,memLevel:8,strategy:t4e},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new YY,this.strm.avail_out=0;let n=yv.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==vM)throw new Error(Om[n]);if(t.header&&yv.deflateSetHeader(this.strm,t.header),t.dictionary){let r;if(typeof t.dictionary=="string"?r=ub.string2buf(t.dictionary):KY.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=yv.deflateSetDictionary(this.strm,r),n!==vM)throw new Error(Om[n]);this._dict_set=!0}}Wb.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize;let i,s;if(this.ended)return!1;for(t===~~t?s=t:s=t===!0?Q5e:Y5e,typeof e=="string"?n.input=ub.string2buf(e):KY.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){if(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),(s===K5e||s===Z5e)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(i=yv.deflate(n,s),i===J5e)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),i=yv.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===vM;if(n.avail_out===0){this.onData(n.output);continue}if(s>0&&n.next_out>0){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(n.avail_in===0)break}return!0};Wb.prototype.onData=function(e){this.chunks.push(e)};Wb.prototype.onEnd=function(e){e===vM&&(this.result=IE.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function PP(e,t){const n=new Wb(t);if(n.push(e,!0),n.err)throw n.msg||Om[n.err];return n.result}function r4e(e,t){return t=t||{},t.raw=!0,PP(e,t)}function i4e(e,t){return t=t||{},t.gzip=!0,PP(e,t)}var s4e=Wb,o4e=PP,a4e=r4e,l4e=i4e,c4e={Deflate:s4e,deflate:o4e,deflateRaw:a4e,gzip:l4e};const AS=16209,u4e=16191;var h4e=function(t,n){let r,i,s,o,a,l,c,u,h,f,d,p,m,y,_,b,x,S,M,E,T,k,R,P;const F=t.state;r=t.next_in,R=t.input,i=r+(t.avail_in-5),s=t.next_out,P=t.output,o=s-(n-t.avail_out),a=s+(t.avail_out-257),l=F.dmax,c=F.wsize,u=F.whave,h=F.wnext,f=F.window,d=F.hold,p=F.bits,m=F.lencode,y=F.distcode,_=(1<<F.lenbits)-1,b=(1<<F.distbits)-1;e:do{p<15&&(d+=R[r++]<<p,p+=8,d+=R[r++]<<p,p+=8),x=m[d&_];t:for(;;){if(S=x>>>24,d>>>=S,p-=S,S=x>>>16&255,S===0)P[s++]=x&65535;else if(S&16){M=x&65535,S&=15,S&&(p<S&&(d+=R[r++]<<p,p+=8),M+=d&(1<<S)-1,d>>>=S,p-=S),p<15&&(d+=R[r++]<<p,p+=8,d+=R[r++]<<p,p+=8),x=y[d&b];n:for(;;){if(S=x>>>24,d>>>=S,p-=S,S=x>>>16&255,S&16){if(E=x&65535,S&=15,p<S&&(d+=R[r++]<<p,p+=8,p<S&&(d+=R[r++]<<p,p+=8)),E+=d&(1<<S)-1,E>l){t.msg="invalid distance too far back",F.mode=AS;break e}if(d>>>=S,p-=S,S=s-o,E>S){if(S=E-S,S>u&&F.sane){t.msg="invalid distance too far back",F.mode=AS;break e}if(T=0,k=f,h===0){if(T+=c-S,S<M){M-=S;do P[s++]=f[T++];while(--S);T=s-E,k=P}}else if(h<S){if(T+=c+h-S,S-=h,S<M){M-=S;do P[s++]=f[T++];while(--S);if(T=0,h<M){S=h,M-=S;do P[s++]=f[T++];while(--S);T=s-E,k=P}}}else if(T+=h-S,S<M){M-=S;do P[s++]=f[T++];while(--S);T=s-E,k=P}for(;M>2;)P[s++]=k[T++],P[s++]=k[T++],P[s++]=k[T++],M-=3;M&&(P[s++]=k[T++],M>1&&(P[s++]=k[T++]))}else{T=s-E;do P[s++]=P[T++],P[s++]=P[T++],P[s++]=P[T++],M-=3;while(M>2);M&&(P[s++]=P[T++],M>1&&(P[s++]=P[T++]))}}else if((S&64)===0){x=y[(x&65535)+(d&(1<<S)-1)];continue n}else{t.msg="invalid distance code",F.mode=AS;break e}break}}else if((S&64)===0){x=m[(x&65535)+(d&(1<<S)-1)];continue t}else if(S&32){F.mode=u4e;break e}else{t.msg="invalid literal/length code",F.mode=AS;break e}break}}while(r<i&&s<a);M=p>>3,r-=M,p-=M<<3,d&=(1<<p)-1,t.next_in=r,t.next_out=s,t.avail_in=r<i?5+(i-r):5-(r-i),t.avail_out=s<a?257+(a-s):257-(s-a),F.hold=d,F.bits=p};const A0=15,Y7=852,K7=592,Z7=0,k3=1,Q7=2,f4e=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),d4e=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),p4e=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),m4e=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),g4e=(e,t,n,r,i,s,o,a)=>{const l=a.bits;let c=0,u=0,h=0,f=0,d=0,p=0,m=0,y=0,_=0,b=0,x,S,M,E,T,k=null,R;const P=new Uint16Array(A0+1),F=new Uint16Array(A0+1);let L=null,j,V,U;for(c=0;c<=A0;c++)P[c]=0;for(u=0;u<r;u++)P[t[n+u]]++;for(d=l,f=A0;f>=1&&P[f]===0;f--);if(d>f&&(d=f),f===0)return i[s++]=1<<24|64<<16|0,i[s++]=1<<24|64<<16|0,a.bits=1,0;for(h=1;h<f&&P[h]===0;h++);for(d<h&&(d=h),y=1,c=1;c<=A0;c++)if(y<<=1,y-=P[c],y<0)return-1;if(y>0&&(e===Z7||f!==1))return-1;for(F[1]=0,c=1;c<A0;c++)F[c+1]=F[c]+P[c];for(u=0;u<r;u++)t[n+u]!==0&&(o[F[t[n+u]]++]=u);if(e===Z7?(k=L=o,R=20):e===k3?(k=f4e,L=d4e,R=257):(k=p4e,L=m4e,R=0),b=0,u=0,c=h,T=s,p=d,m=0,M=-1,_=1<<d,E=_-1,e===k3&&_>Y7||e===Q7&&_>K7)return 1;for(;;){j=c-m,o[u]+1<R?(V=0,U=o[u]):o[u]>=R?(V=L[o[u]-R],U=k[o[u]-R]):(V=96,U=0),x=1<<c-m,S=1<<p,h=S;do S-=x,i[T+(b>>m)+S]=j<<24|V<<16|U|0;while(S!==0);for(x=1<<c-1;b&x;)x>>=1;if(x!==0?(b&=x-1,b+=x):b=0,u++,--P[c]===0){if(c===f)break;c=t[n+o[u]]}if(c>d&&(b&E)!==M){for(m===0&&(m=d),T+=h,p=c-m,y=1<<p;p+m<f&&(y-=P[p+m],!(y<=0));)p++,y<<=1;if(_+=1<<p,e===k3&&_>Y7||e===Q7&&_>K7)return 1;M=b&E,i[M]=d<<24|p<<16|T-s|0}}return b!==0&&(i[T+b]=c-m<<24|64<<16|0),a.bits=d,0};var _v=g4e;const y4e=0,ZY=1,QY=2,{Z_FINISH:J7,Z_BLOCK:_4e,Z_TREES:TS,Z_OK:Hm,Z_STREAM_END:v4e,Z_NEED_DICT:b4e,Z_STREAM_ERROR:kc,Z_DATA_ERROR:JY,Z_MEM_ERROR:eK,Z_BUF_ERROR:x4e,Z_DEFLATED:ej}=$b,PE=16180,tj=16181,nj=16182,rj=16183,ij=16184,sj=16185,oj=16186,aj=16187,lj=16188,cj=16189,bM=16190,Jh=16191,R3=16192,uj=16193,D3=16194,hj=16195,fj=16196,dj=16197,pj=16198,kS=16199,RS=16200,mj=16201,gj=16202,yj=16203,_j=16204,vj=16205,N3=16206,bj=16207,xj=16208,ws=16209,tK=16210,nK=16211,w4e=852,S4e=592,M4e=15,E4e=M4e,wj=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function C4e(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Jm=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<PE||t.mode>nK?1:0},rK=e=>{if(Jm(e))return kc;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=PE,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(w4e),t.distcode=t.distdyn=new Int32Array(S4e),t.sane=1,t.back=-1,Hm},iK=e=>{if(Jm(e))return kc;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,rK(e)},sK=(e,t)=>{let n;if(Jm(e))return kc;const r=e.state;return t<0?(n=0,t=-t):(n=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?kc:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,iK(e))},oK=(e,t)=>{if(!e)return kc;const n=new C4e;e.state=n,n.strm=e,n.window=null,n.mode=PE;const r=sK(e,t);return r!==Hm&&(e.state=null),r},A4e=e=>oK(e,E4e);let Sj=!0,L3,I3;const T4e=e=>{if(Sj){L3=new Int32Array(512),I3=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(_v(ZY,e.lens,0,288,L3,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;_v(QY,e.lens,0,32,I3,0,e.work,{bits:5}),Sj=!1}e.lencode=L3,e.lenbits=9,e.distcode=I3,e.distbits=5},aK=(e,t,n,r)=>{let i;const s=e.state;return s.window===null&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new Uint8Array(s.wsize)),r>=s.wsize?(s.window.set(t.subarray(n-s.wsize,n),0),s.wnext=0,s.whave=s.wsize):(i=s.wsize-s.wnext,i>r&&(i=r),s.window.set(t.subarray(n-r,n-r+i),s.wnext),r-=i,r?(s.window.set(t.subarray(n-r,n),0),s.wnext=r,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=i))),0},k4e=(e,t)=>{let n,r,i,s,o,a,l,c,u,h,f,d,p,m,y=0,_,b,x,S,M,E,T,k;const R=new Uint8Array(4);let P,F;const L=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Jm(e)||!e.output||!e.input&&e.avail_in!==0)return kc;n=e.state,n.mode===Jh&&(n.mode=R3),o=e.next_out,i=e.output,l=e.avail_out,s=e.next_in,r=e.input,a=e.avail_in,c=n.hold,u=n.bits,h=a,f=l,k=Hm;e:for(;;)switch(n.mode){case PE:if(n.wrap===0){n.mode=R3;break}for(;u<16;){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}if(n.wrap&2&&c===35615){n.wbits===0&&(n.wbits=15),n.check=0,R[0]=c&255,R[1]=c>>>8&255,n.check=zo(n.check,R,2,0),c=0,u=0,n.mode=tj;break}if(n.head&&(n.head.done=!1),!(n.wrap&1)||(((c&255)<<8)+(c>>8))%31){e.msg="incorrect header check",n.mode=ws;break}if((c&15)!==ej){e.msg="unknown compression method",n.mode=ws;break}if(c>>>=4,u-=4,T=(c&15)+8,n.wbits===0&&(n.wbits=T),T>15||T>n.wbits){e.msg="invalid window size",n.mode=ws;break}n.dmax=1<<n.wbits,n.flags=0,e.adler=n.check=1,n.mode=c&512?cj:Jh,c=0,u=0;break;case tj:for(;u<16;){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}if(n.flags=c,(n.flags&255)!==ej){e.msg="unknown compression method",n.mode=ws;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=ws;break}n.head&&(n.head.text=c>>8&1),n.flags&512&&n.wrap&4&&(R[0]=c&255,R[1]=c>>>8&255,n.check=zo(n.check,R,2,0)),c=0,u=0,n.mode=nj;case nj:for(;u<32;){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}n.head&&(n.head.time=c),n.flags&512&&n.wrap&4&&(R[0]=c&255,R[1]=c>>>8&255,R[2]=c>>>16&255,R[3]=c>>>24&255,n.check=zo(n.check,R,4,0)),c=0,u=0,n.mode=rj;case rj:for(;u<16;){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}n.head&&(n.head.xflags=c&255,n.head.os=c>>8),n.flags&512&&n.wrap&4&&(R[0]=c&255,R[1]=c>>>8&255,n.check=zo(n.check,R,2,0)),c=0,u=0,n.mode=ij;case ij:if(n.flags&1024){for(;u<16;){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}n.length=c,n.head&&(n.head.extra_len=c),n.flags&512&&n.wrap&4&&(R[0]=c&255,R[1]=c>>>8&255,n.check=zo(n.check,R,2,0)),c=0,u=0}else n.head&&(n.head.extra=null);n.mode=sj;case sj:if(n.flags&1024&&(d=n.length,d>a&&(d=a),d&&(n.head&&(T=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(r.subarray(s,s+d),T)),n.flags&512&&n.wrap&4&&(n.check=zo(n.check,r,d,s)),a-=d,s+=d,n.length-=d),n.length))break e;n.length=0,n.mode=oj;case oj:if(n.flags&2048){if(a===0)break e;d=0;do T=r[s+d++],n.head&&T&&n.length<65536&&(n.head.name+=String.fromCharCode(T));while(T&&d<a);if(n.flags&512&&n.wrap&4&&(n.check=zo(n.check,r,d,s)),a-=d,s+=d,T)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=aj;case aj:if(n.flags&4096){if(a===0)break e;d=0;do T=r[s+d++],n.head&&T&&n.length<65536&&(n.head.comment+=String.fromCharCode(T));while(T&&d<a);if(n.flags&512&&n.wrap&4&&(n.check=zo(n.check,r,d,s)),a-=d,s+=d,T)break e}else n.head&&(n.head.comment=null);n.mode=lj;case lj:if(n.flags&512){for(;u<16;){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}if(n.wrap&4&&c!==(n.check&65535)){e.msg="header crc mismatch",n.mode=ws;break}c=0,u=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=Jh;break;case cj:for(;u<32;){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}e.adler=n.check=wj(c),c=0,u=0,n.mode=bM;case bM:if(n.havedict===0)return e.next_out=o,e.avail_out=l,e.next_in=s,e.avail_in=a,n.hold=c,n.bits=u,b4e;e.adler=n.check=1,n.mode=Jh;case Jh:if(t===_4e||t===TS)break e;case R3:if(n.last){c>>>=u&7,u-=u&7,n.mode=N3;break}for(;u<3;){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}switch(n.last=c&1,c>>>=1,u-=1,c&3){case 0:n.mode=uj;break;case 1:if(T4e(n),n.mode=kS,t===TS){c>>>=2,u-=2;break e}break;case 2:n.mode=fj;break;case 3:e.msg="invalid block type",n.mode=ws}c>>>=2,u-=2;break;case uj:for(c>>>=u&7,u-=u&7;u<32;){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}if((c&65535)!==(c>>>16^65535)){e.msg="invalid stored block lengths",n.mode=ws;break}if(n.length=c&65535,c=0,u=0,n.mode=D3,t===TS)break e;case D3:n.mode=hj;case hj:if(d=n.length,d){if(d>a&&(d=a),d>l&&(d=l),d===0)break e;i.set(r.subarray(s,s+d),o),a-=d,s+=d,l-=d,o+=d,n.length-=d;break}n.mode=Jh;break;case fj:for(;u<14;){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}if(n.nlen=(c&31)+257,c>>>=5,u-=5,n.ndist=(c&31)+1,c>>>=5,u-=5,n.ncode=(c&15)+4,c>>>=4,u-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=ws;break}n.have=0,n.mode=dj;case dj:for(;n.have<n.ncode;){for(;u<3;){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}n.lens[L[n.have++]]=c&7,c>>>=3,u-=3}for(;n.have<19;)n.lens[L[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,P={bits:n.lenbits},k=_v(y4e,n.lens,0,19,n.lencode,0,n.work,P),n.lenbits=P.bits,k){e.msg="invalid code lengths set",n.mode=ws;break}n.have=0,n.mode=pj;case pj:for(;n.have<n.nlen+n.ndist;){for(;y=n.lencode[c&(1<<n.lenbits)-1],_=y>>>24,b=y>>>16&255,x=y&65535,!(_<=u);){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}if(x<16)c>>>=_,u-=_,n.lens[n.have++]=x;else{if(x===16){for(F=_+2;u<F;){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}if(c>>>=_,u-=_,n.have===0){e.msg="invalid bit length repeat",n.mode=ws;break}T=n.lens[n.have-1],d=3+(c&3),c>>>=2,u-=2}else if(x===17){for(F=_+3;u<F;){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}c>>>=_,u-=_,T=0,d=3+(c&7),c>>>=3,u-=3}else{for(F=_+7;u<F;){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}c>>>=_,u-=_,T=0,d=11+(c&127),c>>>=7,u-=7}if(n.have+d>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=ws;break}for(;d--;)n.lens[n.have++]=T}}if(n.mode===ws)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=ws;break}if(n.lenbits=9,P={bits:n.lenbits},k=_v(ZY,n.lens,0,n.nlen,n.lencode,0,n.work,P),n.lenbits=P.bits,k){e.msg="invalid literal/lengths set",n.mode=ws;break}if(n.distbits=6,n.distcode=n.distdyn,P={bits:n.distbits},k=_v(QY,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,P),n.distbits=P.bits,k){e.msg="invalid distances set",n.mode=ws;break}if(n.mode=kS,t===TS)break e;case kS:n.mode=RS;case RS:if(a>=6&&l>=258){e.next_out=o,e.avail_out=l,e.next_in=s,e.avail_in=a,n.hold=c,n.bits=u,h4e(e,f),o=e.next_out,i=e.output,l=e.avail_out,s=e.next_in,r=e.input,a=e.avail_in,c=n.hold,u=n.bits,n.mode===Jh&&(n.back=-1);break}for(n.back=0;y=n.lencode[c&(1<<n.lenbits)-1],_=y>>>24,b=y>>>16&255,x=y&65535,!(_<=u);){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}if(b&&(b&240)===0){for(S=_,M=b,E=x;y=n.lencode[E+((c&(1<<S+M)-1)>>S)],_=y>>>24,b=y>>>16&255,x=y&65535,!(S+_<=u);){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}c>>>=S,u-=S,n.back+=S}if(c>>>=_,u-=_,n.back+=_,n.length=x,b===0){n.mode=vj;break}if(b&32){n.back=-1,n.mode=Jh;break}if(b&64){e.msg="invalid literal/length code",n.mode=ws;break}n.extra=b&15,n.mode=mj;case mj:if(n.extra){for(F=n.extra;u<F;){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}n.length+=c&(1<<n.extra)-1,c>>>=n.extra,u-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=gj;case gj:for(;y=n.distcode[c&(1<<n.distbits)-1],_=y>>>24,b=y>>>16&255,x=y&65535,!(_<=u);){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}if((b&240)===0){for(S=_,M=b,E=x;y=n.distcode[E+((c&(1<<S+M)-1)>>S)],_=y>>>24,b=y>>>16&255,x=y&65535,!(S+_<=u);){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}c>>>=S,u-=S,n.back+=S}if(c>>>=_,u-=_,n.back+=_,b&64){e.msg="invalid distance code",n.mode=ws;break}n.offset=x,n.extra=b&15,n.mode=yj;case yj:if(n.extra){for(F=n.extra;u<F;){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}n.offset+=c&(1<<n.extra)-1,c>>>=n.extra,u-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=ws;break}n.mode=_j;case _j:if(l===0)break e;if(d=f-l,n.offset>d){if(d=n.offset-d,d>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=ws;break}d>n.wnext?(d-=n.wnext,p=n.wsize-d):p=n.wnext-d,d>n.length&&(d=n.length),m=n.window}else m=i,p=o-n.offset,d=n.length;d>l&&(d=l),l-=d,n.length-=d;do i[o++]=m[p++];while(--d);n.length===0&&(n.mode=RS);break;case vj:if(l===0)break e;i[o++]=n.length,l--,n.mode=RS;break;case N3:if(n.wrap){for(;u<32;){if(a===0)break e;a--,c|=r[s++]<<u,u+=8}if(f-=l,e.total_out+=f,n.total+=f,n.wrap&4&&f&&(e.adler=n.check=n.flags?zo(n.check,i,f,o-f):lb(n.check,i,f,o-f)),f=l,n.wrap&4&&(n.flags?c:wj(c))!==n.check){e.msg="incorrect data check",n.mode=ws;break}c=0,u=0}n.mode=bj;case bj:if(n.wrap&&n.flags){for(;u<32;){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}if(n.wrap&4&&c!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=ws;break}c=0,u=0}n.mode=xj;case xj:k=v4e;break e;case ws:k=JY;break e;case tK:return eK;case nK:default:return kc}return e.next_out=o,e.avail_out=l,e.next_in=s,e.avail_in=a,n.hold=c,n.bits=u,(n.wsize||f!==e.avail_out&&n.mode<ws&&(n.mode<N3||t!==J7))&&aK(e,e.output,e.next_out,f-e.avail_out),h-=e.avail_in,f-=e.avail_out,e.total_in+=h,e.total_out+=f,n.total+=f,n.wrap&4&&f&&(e.adler=n.check=n.flags?zo(n.check,i,f,e.next_out-f):lb(n.check,i,f,e.next_out-f)),e.data_type=n.bits+(n.last?64:0)+(n.mode===Jh?128:0)+(n.mode===kS||n.mode===D3?256:0),(h===0&&f===0||t===J7)&&k===Hm&&(k=x4e),k},R4e=e=>{if(Jm(e))return kc;let t=e.state;return t.window&&(t.window=null),e.state=null,Hm},D4e=(e,t)=>{if(Jm(e))return kc;const n=e.state;return(n.wrap&2)===0?kc:(n.head=t,t.done=!1,Hm)},N4e=(e,t)=>{const n=t.length;let r,i,s;return Jm(e)||(r=e.state,r.wrap!==0&&r.mode!==bM)?kc:r.mode===bM&&(i=1,i=lb(i,t,n,0),i!==r.check)?JY:(s=aK(e,t,n,n),s?(r.mode=tK,eK):(r.havedict=1,Hm))};var L4e=iK,I4e=sK,P4e=rK,B4e=A4e,F4e=oK,z4e=k4e,U4e=R4e,O4e=D4e,j4e=N4e,H4e="pako inflate (from Nodeca project)",af={inflateReset:L4e,inflateReset2:I4e,inflateResetKeep:P4e,inflateInit:B4e,inflateInit2:F4e,inflate:z4e,inflateEnd:U4e,inflateGetHeader:O4e,inflateSetDictionary:j4e,inflateInfo:H4e};function $4e(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var V4e=$4e;const lK=Object.prototype.toString,{Z_NO_FLUSH:W4e,Z_FINISH:q4e,Z_OK:hb,Z_STREAM_END:P3,Z_NEED_DICT:B3,Z_STREAM_ERROR:G4e,Z_DATA_ERROR:Mj,Z_MEM_ERROR:X4e}=$b;function qb(e){this.options=IE.assign({chunkSize:1024*64,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(e&&e.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15)===0&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new YY,this.strm.avail_out=0;let n=af.inflateInit2(this.strm,t.windowBits);if(n!==hb)throw new Error(Om[n]);if(this.header=new V4e,af.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=ub.string2buf(t.dictionary):lK.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=af.inflateSetDictionary(this.strm,t.dictionary),n!==hb)))throw new Error(Om[n])}qb.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize,i=this.options.dictionary;let s,o,a;if(this.ended)return!1;for(t===~~t?o=t:o=t===!0?q4e:W4e,lK.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){for(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),s=af.inflate(n,o),s===B3&&i&&(s=af.inflateSetDictionary(n,i),s===hb?s=af.inflate(n,o):s===Mj&&(s=B3));n.avail_in>0&&s===P3&&n.state.wrap>0&&e[n.next_in]!==0;)af.inflateReset(n),s=af.inflate(n,o);switch(s){case G4e:case Mj:case B3:case X4e:return this.onEnd(s),this.ended=!0,!1}if(a=n.avail_out,n.next_out&&(n.avail_out===0||s===P3))if(this.options.to==="string"){let l=ub.utf8border(n.output,n.next_out),c=n.next_out-l,u=ub.buf2string(n.output,l);n.next_out=c,n.avail_out=r-c,c&&n.output.set(n.output.subarray(l,l+c),0),this.onData(u)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(!(s===hb&&a===0)){if(s===P3)return s=af.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(n.avail_in===0)break}}return!0};qb.prototype.onData=function(e){this.chunks.push(e)};qb.prototype.onEnd=function(e){e===hb&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=IE.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function BP(e,t){const n=new qb(t);if(n.push(e),n.err)throw n.msg||Om[n.err];return n.result}function Y4e(e,t){return t=t||{},t.raw=!0,BP(e,t)}var K4e=qb,Z4e=BP,Q4e=Y4e,J4e=BP,eBe={Inflate:K4e,inflate:Z4e,inflateRaw:Q4e,ungzip:J4e};const{Deflate:tBe,deflate:nBe,deflateRaw:rBe,gzip:iBe}=c4e,{Inflate:sBe,inflate:oBe,inflateRaw:aBe,ungzip:lBe}=eBe;var cBe=tBe,uBe=nBe,hBe=rBe,fBe=iBe,dBe=sBe,pBe=oBe,mBe=aBe,gBe=lBe,yBe=$b,_Be={Deflate:cBe,deflate:uBe,deflateRaw:hBe,gzip:fBe,Inflate:dBe,inflate:pBe,inflateRaw:mBe,ungzip:gBe,constants:yBe};const vBe=new TextEncoder;function bBe(e,t,n){const r=e.find(l=>l.id===n),i={files:e.map(l=>({name:l.name,content:L_(t.get(l.id)??new Uint8Array(0))})),activeFileName:r?.name??null},s=JSON.stringify(i),o=_Be.deflate(vBe.encode(s));let a=btoa(String.fromCharCode(...o));return a=a.replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),a}const xBe="https://numbl.org";function wBe(){const{files:e,activeFileId:t,loading:n,title:r,repository:i,maxInitialOutputPanelHeight:s,loadError:o,setActiveFileId:a,updateFileContent:l,addFile:c,addFolder:u,deleteFile:h,deleteFolder:f,renameFile:d,renameFolder:p,moveFile:m,duplicateFile:y,uploadFiles:_,loadFileContent:b,loadAllContents:x,contentCache:S}=YH(),[M,E]=ne.useState(!1);ne.useEffect(()=>{r&&(document.title=r)},[r]);const T=ne.useCallback(async()=>{try{const R=await x(),P=bBe(e,R,t),F=`${xBe}/share#${P}`;if(F.length>64e3){alert("Project is too large to share via URL. Try reducing the number or size of files.");return}await navigator.clipboard.writeText(F),E(!0),setTimeout(()=>E(!1),2e3)}catch(R){console.error("Failed to generate share URL:",R),alert("Failed to generate share URL.")}},[e,t,x]);if(n)return re.jsx(An,{sx:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:re.jsx(O0,{})});const k=re.jsxs(re.Fragment,{children:[re.jsxs(Sr,{variant:"body2",fontWeight:"medium",sx:{flexGrow:1},noWrap:!0,children:[r||"numbl project",o&&re.jsx(Sr,{component:"span",variant:"caption",color:"warning.main",sx:{ml:1},children:"(bundle failed to load)"})]}),i&&re.jsx(ku,{title:"View source repository",children:re.jsx(lo,{size:"small",component:"a",href:i,target:"_blank",rel:"noopener noreferrer",sx:{mr:.5},children:re.jsx(lH,{fontSize:"small"})})}),re.jsx(ku,{title:M?"Copied!":"Copy shareable URL",children:re.jsx(lo,{size:"small",onClick:T,sx:{mr:.5},children:re.jsx(ete,{fontSize:"small"})})}),re.jsx(Tv,{href:"https://numbl.org",target:"_blank",rel:"noopener noreferrer",variant:"caption",underline:"hover",sx:{opacity:.7,"&:hover":{opacity:1}},children:"powered by numbl"})]});return re.jsx(wPe,{files:e,activeFileId:t,setActiveFileId:a,updateFileContent:l,addFile:c,addFolder:u,deleteFile:h,deleteFolder:f,renameFile:d,renameFolder:p,moveFile:m,duplicateFile:y,uploadFiles:_,headerContent:k,loadFileContent:b,loadAllContents:x,contentCache:S,maxInitialOutputPanelHeight:s??void 0})}const SBe=oi(re.jsx("path",{d:"M9.4 16.6 4.8 12l4.6-4.6L8 6l-6 6 6 6zm5.2 0 4.6-4.6-4.6-4.6L16 6l6 6-6 6z"})),MBe="https://numbl.org";function EBe(e,t){if(e.length===0)return{spec:null,unknownSlug:!1};if(!t)return{spec:e[0],unknownSlug:!1};const n=e.find(r=>r.id===t);return n?{spec:n,unknownSlug:!1}:{spec:e[0],unknownSlug:!0}}function CBe({figureId:e}){const{files:t,loading:n,title:r,repository:i,figures:s,loadError:o,loadAllContents:a}=YH(),{reloadSystemFiles:l,getSystemVfsFiles:c,getSystemWorkspaceFiles:u}=MY();AY(l);const{spec:h,unknownSlug:f}=ne.useMemo(()=>EBe(s,e),[s,e]),[d,p]=ne.useState(""),[m,y]=ne.useState(!1),[_,b]=ne.useState(!1),[x,S]=ne.useState(!1),[M,E]=ne.useReducer(SI,rE),T=ne.useRef(null),k=ne.useRef(ZH()),R=ne.useRef(null),P=h?.name||r||"Figure";ne.useEffect(()=>{document.title=P},[P]);const F=ne.useMemo(()=>{const H=Object.keys(M.figs).map(Number).sort((O,G)=>O-G);return H.length===0?null:M.figs[H[H.length-1]]},[M.figs]),L=F!==null,j=ne.useCallback(H=>{E(H)},[]),V=ne.useCallback(H=>{H.onmessage=O=>{const G=O.data;if(G.type==="request-input"){const Z=prompt(G.prompt??"")??"";k.current&&QH(k.current,Z);return}if(G.type==="output"){p(Z=>Z+G.text);return}if(G.type==="drawnow"){if(G.plotInstructions?.length)for(const Z of G.plotInstructions)j(Z);return}if(G.type==="html_source_event"){document.querySelectorAll(`iframe[title="uihtml-${G.compId}"]`).forEach(ie=>ie.contentWindow?.postMessage({source:"numbl-host",compId:G.compId,name:G.name,dataJson:G.dataJson},"*"));return}if(G.type==="done"){if(y(!1),G.vfsChanges&&SY(G.vfsChanges).then(Z=>{Z&&l()}),G.plotInstructions?.length)for(const Z of G.plotInstructions)j(Z);return}if(G.type==="error"){y(!1),b(!0),S(!0),p(Z=>Z+`
4829
4829
  ${NV(G)}
4830
- `);return}}},[j,l]);ne.useEffect(()=>{const H=new Worker(new URL(""+new URL("numbl-worker-B-MPuV6f.js",import.meta.url).href,import.meta.url),{type:"module"});return T.current=H,V(H),R.current=null,()=>{H.terminate(),T.current=null}},[V]),ne.useEffect(()=>{const H=O=>{const G=O.data;!G||G.source!=="numbl-uihtml"||T.current?.postMessage({type:"html_event",compId:G.compId,kind:G.kind,name:G.name,data:G.data})};return window.addEventListener("message",H),()=>window.removeEventListener("message",H)},[]);const U=ne.useCallback(async()=>{const H=T.current;if(!H||!h)return;const O=t.find(X=>X.name===h.entry);if(!O){b(!0),S(!0),p(`Figure script not found in the project bundle: ${h.entry}
4830
+ `);return}}},[j,l]);ne.useEffect(()=>{const H=new Worker(new URL(""+new URL("numbl-worker-F20FKX9r.js",import.meta.url).href,import.meta.url),{type:"module"});return T.current=H,V(H),R.current=null,()=>{H.terminate(),T.current=null}},[V]),ne.useEffect(()=>{const H=O=>{const G=O.data;!G||G.source!=="numbl-uihtml"||T.current?.postMessage({type:"html_event",compId:G.compId,kind:G.kind,name:G.name,data:G.data})};return window.addEventListener("message",H),()=>window.removeEventListener("message",H)},[]);const U=ne.useCallback(async()=>{const H=T.current;if(!H||!h)return;const O=t.find(X=>X.name===h.entry);if(!O){b(!0),S(!0),p(`Figure script not found in the project bundle: ${h.entry}
4831
4831
  `);return}y(!0),b(!1),p(""),E({type:"clear"}),CY();const G=new TextDecoder("utf-8"),[Z,ie,Y]=await Promise.all([a(),c(),u()]),ce=[...t.map(X=>({path:X.name,content:Z.get(X.id)??new Uint8Array(0)})),...ie],pe=[...t.filter(X=>X.name.endsWith(".m")).map(X=>({name:X.name,source:G.decode(Z.get(X.id)??new Uint8Array(0))})),...Y],te=G.decode(Z.get(O.id)??new Uint8Array(0));H.postMessage({type:"update_workspace",workspaceFiles:pe,vfsFiles:ce}),H.postMessage({type:"run",code:te,options:{displayResults:!0,maxIterations:1e7,optimization:1},workspaceFiles:pe,vfsFiles:ce,mainFileName:O.name,persistent:!0,inputSAB:k.current??void 0})},[h,t,a,c,u]);ne.useEffect(()=>{n||!h||!T.current||R.current!==h.id&&(R.current=h.id,U())},[n,h,U]);const B=ne.useMemo(()=>window.location.pathname+window.location.search,[]);if(n)return re.jsx(An,{sx:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:re.jsx(O0,{})});if(!h)return re.jsxs(An,{sx:{display:"flex",flexDirection:"column",gap:1,justifyContent:"center",alignItems:"center",height:"100vh",textAlign:"center",px:2},children:[re.jsx(Sr,{variant:"h6",children:"No figure view configured"}),re.jsx(Sr,{variant:"body2",color:"text.secondary",children:o?"The project bundle failed to load.":'This project declares no "figures" in numbl-project.json.'}),re.jsx(Tv,{href:B,underline:"hover",children:"Open the full IDE"})]});const N=x||!L;return re.jsxs(An,{sx:{display:"flex",flexDirection:"column",height:"100vh"},children:[re.jsxs(An,{sx:{display:"flex",alignItems:"center",gap:1,px:1.5,py:.5,bgcolor:"grey.100",borderBottom:1,borderColor:"divider",minHeight:40},children:[re.jsx(Sr,{variant:"body2",fontWeight:"medium",noWrap:!0,children:P}),m&&re.jsxs(An,{sx:{display:"flex",alignItems:"center",gap:.5},children:[re.jsx(O0,{size:12}),re.jsx(Sr,{variant:"caption",color:"text.secondary",children:"Running…"})]}),re.jsx(An,{sx:{flexGrow:1}}),L&&re.jsx(kd,{size:"small",onClick:()=>S(H=>!H),sx:{textTransform:"none",fontSize:"0.75rem"},children:x?"Hide output":"Show output"}),re.jsx(ku,{title:"View / edit the code in the full IDE",children:re.jsx(kd,{size:"small",href:B,startIcon:re.jsx(SBe,{fontSize:"small"}),sx:{textTransform:"none",fontSize:"0.75rem"},children:"Code"})}),i&&re.jsx(ku,{title:"View source repository",children:re.jsx(lo,{size:"small",component:"a",href:i,target:"_blank",rel:"noopener noreferrer",children:re.jsx(lH,{fontSize:"small"})})}),re.jsx(Tv,{href:MBe,target:"_blank",rel:"noopener noreferrer",variant:"caption",underline:"hover",sx:{opacity:.7,"&:hover":{opacity:1}},children:"powered by numbl"})]}),f&&re.jsxs(An,{sx:{px:1.5,py:.5,bgcolor:"#fff8e1",borderBottom:"1px solid #f0e0a0",fontSize:13,color:"#5c4a00"},children:["Unknown figure “",e,"”. Showing “",P,"” instead."]}),re.jsxs(An,{sx:{flexGrow:1,position:"relative",minHeight:0},children:[L&&re.jsx(An,{sx:{position:"absolute",inset:0,display:"flex",justifyContent:"center",alignItems:"center",bgcolor:"#fff"},children:F&&re.jsx(LD,{figure:F})}),N&&re.jsxs(An,{sx:{position:"absolute",left:0,right:0,bottom:0,top:L?"auto":0,maxHeight:L?"45%":"100%",overflow:"auto",p:1.5,bgcolor:"#1e1e1e",fontFamily:"monospace",fontSize:13,color:_?"#f48771":"#d4d4d4",whiteSpace:"pre-wrap",wordBreak:"break-word",borderTop:L?"1px solid #333":void 0},children:[m&&!d&&re.jsxs(An,{sx:{display:"flex",alignItems:"center",gap:1},children:[re.jsx(O0,{size:14,sx:{color:"#d4d4d4"}}),re.jsx("span",{children:"Running…"})]}),d||!m&&re.jsx("span",{style:{opacity:.5},children:"—"})]})]})]})}function ABe(){const[e,t]=ne.useState(()=>window.location.hash);return ne.useEffect(()=>{const n=()=>t(window.location.hash);return window.addEventListener("hashchange",n),()=>window.removeEventListener("hashchange",n)},[]),e}function TBe(){const e=ABe(),t=/^#figure(?:\/(.*))?$/.exec(e);if(t){const n=t[1]?.split(/[?#]/)[0],r=n?decodeURIComponent(n):void 0;return re.jsx(CBe,{figureId:r})}return re.jsx(wBe,{})}BZ.createRoot(document.getElementById("root")).render(re.jsx(ne.StrictMode,{children:re.jsx(TBe,{})}));