knitting 0.1.62 → 0.1.63
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/knitting.browser.js +1 -1
- package/package.json +1 -1
- package/src/api.js +5 -1
- package/src/ipc/transport/shared-memory.d.ts +9 -1
- package/src/ipc/transport/shared-memory.js +13 -1
- package/src/memory/lock.js +31 -39
- package/src/runtime/pool.d.ts +7 -1
- package/src/runtime/pool.js +41 -7
- package/src/runtime/worker-common.d.ts +2 -1
- package/src/runtime/worker-common.js +19 -5
- package/src/types.d.ts +2 -0
- package/src/worker/loop.js +16 -5
package/knitting.browser.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var $s=Object.defineProperty;var zs=(e)=>e;function Ys(e,r){this[e]=zs.bind(null,r)}var Vs=(e,r)=>{for(var t in r)$s(e,t,{get:r[t],enumerable:!0,configurable:!0,set:Ys.bind(r,t)})};var qs=(e,r)=>()=>(e&&(r=e(e=0)),r);var uo=()=>({keys:new Set(Reflect.ownKeys(globalThis))}),za=(e,r)=>{let t=[],n=[];for(let a of r.keys)if(!e.keys.has(a))t.push(a);for(let a of e.keys)if(!r.keys.has(a))n.push(a);return{added:t,removed:n}},Ya=(e)=>{let r=typeof e==="symbol"?e.toString():e,t;try{t=Object.getOwnPropertyDescriptor(globalThis,e)}catch{return r}if(t===void 0)return r;let n=t.get!==void 0||t.set!==void 0?"accessor":typeof t.value,a=`${t.writable===!1?"":"w"}${t.configurable?"c":""}${t.enumerable?"e":""}`;return a.length>0?`${r} (${n} ${a})`:`${r} (${n})`};var Va={};Vs(Va,{initDebug:()=>Gu});var Gu=({name:e,runtime:r,namespaces:t})=>{let n=t.has("*"),a=(P)=>n||t.has(P),u=performance.now(),c=`${e}·${r}`,f=(P,H)=>{if(!a(P))return;let k=(performance.now()-u).toFixed(1);console.error(`[${c}·+${k}ms] ${P}: ${H}`)},S=a("globals")?uo():void 0;return{enabled:a,log:f,envPhase:(P)=>{if(S===void 0)return;let H=uo(),{added:k,removed:m}=za(S,H);if(S=H,k.length===0&&m.length===0){f("globals",`${P}: no new globals`);return}if(k.length>0)f("globals",`${P} +${k.length}: ${k.map(Ya).join(" ")}`);if(m.length>0)f("globals",`${P} -${m.length}: ${m.map(String).join(" ")}`)}}};var qa=()=>{};var St=(()=>{let e=globalThis.process;return typeof e?.versions?.node==="string"?e:void 0})(),$e=()=>St,At=(e)=>{let r=St?.getBuiltinModule;if(typeof r!=="function")return;try{return r.call(St,e)}catch{}if(!e.startsWith("node:"))return;try{return r.call(St,e.slice(5))}catch{return}};var kr=globalThis,Qs=$e(),So=typeof kr.Deno?.version?.deno==="string",Zr=typeof kr.Bun?.version==="string",Ao=typeof Qs?.versions?.node==="string",Er=typeof kr.__andromeda__<"u",fn=!So&&!Zr&&!Ao&&!Er&&(typeof kr.document<"u"||typeof kr.WorkerGlobalScope==="function"),Oe=So?"deno":Zr?"bun":Ao?"node":Er?"andromeda":fn?"browser":"unknown",cn=kr.WebAssembly,et=typeof kr.setImmediate==="function"?kr.setImmediate:void 0,Js=65536,Bt=new WeakMap,wt=new WeakMap,ln=(()=>{if(typeof cn?.Memory!=="function")return!1;try{return new cn.Memory({initial:0,maximum:1,shared:!0}),!0}catch{return!1}})();var Xr=(e)=>Math.ceil(Math.max(0,e)/Js),Bo=(e,r)=>{let t=new cn.Memory({initial:Xr(e),maximum:Math.max(Xr(e),Xr(r)),shared:!0}),n=t.buffer;return Bt.set(n,t),wt.set(n,r),n},Fr=(e,r=e)=>{if(ln)return Bo(e,r);return new SharedArrayBuffer(e)},dn=typeof SharedArrayBuffer==="function"&&typeof SharedArrayBuffer.prototype.grow==="function",Tt=dn||ln,ze=(e,r)=>{if(dn&&typeof r==="number")return new SharedArrayBuffer(e,{maxByteLength:r});if(ln&&typeof r==="number")return Bo(e,r);return new SharedArrayBuffer(e)};var wo=(e)=>{let r=e;return dn&&typeof r.grow==="function"&&r.growable===!0||Bt.has(e)},To=(e)=>{let r=e;if(typeof r.maxByteLength==="number")return r.maxByteLength;return wt.get(e)??e.byteLength},ko=(e,r)=>{let t=e;if(typeof t.grow==="function")return t.grow(r),e;let n=Bt.get(e);if(n==null)throw TypeError("SharedArrayBuffer is not growable");let a=n.buffer;if(a.byteLength>=r)return a;let u=Xr(r),c=Xr(a.byteLength);n.grow(u-c);let f=n.buffer,S=wt.get(e)??a.byteLength;return Bt.set(f,n),wt.set(f,S),f};var Xs="KNITTING_PROCESS_WORKER";var Zs="KNITTING_POOL_DEPTH",kt=$e(),Rr=kt?.env?.[Xs]==="1",ei=()=>{let e=kt?.env?.[Zs];if(typeof e!=="string")return 0;let r=Number.parseInt(e,10);return Number.isFinite(r)&&r>0?r:0},yn=ei(),Or=At("node:worker_threads"),ri=()=>{let e=globalThis.WorkerGlobalScope;if(typeof e==="function")try{if(globalThis instanceof e)return!0}catch{}if(Er&&typeof globalThis.self<"u")return!0;return!1},Ro=Or?.Worker??globalThis.Worker,Eo=Or?.MessageChannel??globalThis.MessageChannel,pn=Or!=null,xr=Rr?!1:Or?.isMainThread??!ri(),rt=Or?.workerData,tt=Or?.parentPort??(Rr&&typeof kt?.send==="function"?{postMessage:(e)=>kt.send(e)}:void 0),Nr=()=>{if(typeof Eo!=="function")throw Error("MessageChannel is not available in this runtime");return new Eo},xo=(e,r)=>{if(typeof e.on==="function"){e.on("message",r);return}if(typeof e.addEventListener==="function"){e.addEventListener("message",(t)=>r(t?.data));return}e.onmessage=(t)=>r(t?.data)};var nt=(e)=>e instanceof SharedArrayBuffer||e instanceof ArrayBuffer,ti=(e)=>{if(!e||typeof e!=="object")return!1;let r=e;return nt(r.sab)&&typeof r.byteOffset==="number"&&Number.isInteger(r.byteOffset)&&r.byteOffset>=0&&typeof r.byteLength==="number"&&Number.isInteger(r.byteLength)&&r.byteLength>=0},rr=(e)=>nt(e)||ti(e),Ye=(e)=>nt(e)?{sab:e,byteOffset:0,byteLength:e.byteLength}:e;var Lo=new TextEncoder,ni=new TextDecoder,Po=(e)=>e instanceof TypeError,oi=(e)=>{let r=Ye(e),t=Math.min(1,r.byteLength);return new Uint8Array(r.sab,r.byteOffset,t)},vo=(e)=>{if(!e||typeof e!=="object")return!1;let r=e;return typeof r.encodeInto==="boolean"&&typeof r.decode==="boolean"},Et=(e)=>{if(!e||typeof e!=="object")return!1;let r=e;return vo(r.headers)&&vo(r.payload)},_o=(e)=>{let r=oi(e),t=(()=>{if(typeof Lo.encodeInto!=="function")return!1;let a=r.byteLength>0?r:r.subarray(0,0),u=a.byteLength>0?a[0]:void 0;try{return Lo.encodeInto(a.byteLength>0?"a":"",a),!0}catch(c){if(!Po(c))throw c;return!1}finally{if(u!==void 0)a[0]=u}})(),n=(()=>{try{return ni.decode(r),!0}catch(a){if(!Po(a))throw a;return!1}})();return{encodeInto:t,decode:n}},Dr=({headers:e,payload:r})=>({headers:_o(e),payload:_o(r)});class cr{#e;#r;#n=0;#o=0;#t=0;constructor(e=512){let r=2;while(r<e)r<<=1;this.#e=Array(r).fill(null),this.#r=r-1}get size(){return this.#t}get isEmpty(){return this.#t===0}get capacity(){return this.#r+1}clear(){this.#n=0,this.#o=0,this.#t=0}peek(){return this.#t===0?void 0:this.#e[this.#n]}reserve(e){if(e<=this.capacity)return;let r=this.capacity;while(r<e)r<<=1;this.#s(r)}#a(){if(this.#t!==this.#r+1)return;this.#s(this.#r+1<<1)}#s(e){let r=this.#e,t=this.#r+1,n=this.#t,a=Array(e).fill(null),u=this.#n,c=Math.min(n,t-u);for(let f=0;f<c;f++)a[f]=r[u+f];for(let f=c;f<n;f++)a[f]=r[f-c];this.#e=a,this.#r=e-1,this.#n=0,this.#o=n}push(e){this.#a();let r=this.#e,t=this.#r,n=this.#o;return r[n]=e,this.#o=n+1&t,this.#t++,!0}unshift(e){this.#a();let r=this.#e,t=this.#r,n=this.#n-1&t;return this.#n=n,r[n]=e,this.#t++,!0}shift(){let e=this.#t;if(e===0)return;let r=this.#n,t=this.#e,n=t[r];return t[r]=null,this.#n=r+1&this.#r,this.#t=e-1,n}shiftNoClear(){let e=this.#t;if(e===0)return;let r=this.#n,t=this.#e[r];return this.#n=r+1&this.#r,this.#t=e-1,t}*[Symbol.iterator](){let e=this.#e,r=this.#r,t=this.#n,n=0,a=this.#t;while(n<a){let u=e[t];if(u!==null)yield u;t=t+1&r,n++}}toArray(){let e=Array(this.#t),r=this.#e,t=this.#r,n=this.#n;for(let a=0;a<e.length;a++)e[a]=r[n],n=n+1&t;return e}get[Symbol.toStringTag](){return`RingQueue(size=${this.#t}, cap=${this.capacity})`}}var ai=67108864,si=4194304,Wr=(e)=>{if(!Number.isFinite(e))return;let r=Math.floor(e);return r>0?r:void 0},ii=(e)=>{if(e==null)return!1;return e instanceof SharedArrayBuffer&&Tt&&wo(e)},ui=(e)=>{if(e==null)return;if(e instanceof SharedArrayBuffer)return Wr(To(e));return Wr(e.byteLength)},dr=({options:e,sab:r})=>{let t=r===void 0?void 0:Ye(r),n=t?.sab,c=e?.mode??(Tt?"growable":"fixed");if(c==="growable"&&n!=null&&!ii(n))c="fixed";if(c==="growable"&&!Tt)c="fixed";let f=Wr(e?.payloadMaxByteLength)??Wr(t?.byteLength)??ui(n)??ai,S=Wr(e?.payloadInitialBytes),N=c==="fixed"?f:Math.min(S??si,f),P=f>>3;if(P<=0)throw RangeError("payloadMaxByteLength is too small; must be at least 8 bytes.");let H=e?.maxPayloadBytes;if(H!==void 0){let m=Math.floor(H);if(!Number.isFinite(m)||m<=0)throw RangeError(`maxPayloadBytes must be > 0 and <= ${P}.`)}let k=Wr(H)??P;if(k<=0||k>P)throw RangeError(`maxPayloadBytes must be > 0 and <= ${P}.`);return{mode:c,payloadInitialBytes:N,payloadMaxByteLength:f,maxPayloadBytes:k}};var gn,hn,Co=(e,r)=>{gn=e,hn=r},Ve={UNREACHABLE:0,BigInt:2,True:3,False:4,Undefined:5,NaN:6,Float64:9,Null:10},v={BORDER_SIGNAL_BUFFER:11,String:11,Json:12,StaticString:15,StaticJson:16,Binary:17,StaticBinary:18,Int32Array:19,Float64Array:20,BigInt64Array:21,BigUint64Array:22,DataView:23,Error:24,Date:25,Symbol:26,StaticSymbol:27,BigInt:28,StaticBigInt:29,StaticInt32Array:31,StaticFloat64Array:32,StaticBigInt64Array:33,StaticBigUint64Array:34,StaticDataView:35,ArrayBuffer:36,StaticArrayBuffer:37,Buffer:38,StaticBuffer:39,EnvelopeStaticHeader:40,EnvelopeDynamicHeader:41,EnvelopeStaticHeaderString:42,EnvelopeDynamicHeaderString:43,ExternalPayload:44,StaticExternalPayload:45,ProcessSharedBuffer:46,BufferReference:47,SharedArrayBuffer:48,EnvelopeStaticHeaderExternal:49,EnvelopeDynamicHeaderExternal:50,EnvelopeStaticHeaderStringExternal:51,EnvelopeDynamicHeaderStringExternal:52,NumericArray:53,StaticNumericArray:54},Io={};for(let e of Object.keys(v))Io[v[e]]=e;var Mo=(e)=>Io[e]??String(e),Te={paddingLock:0,padding:0,slots:32,header:0},Pt=64,ci=256,fi=Symbol.for("knitting.payloadCodec.transportFinalizer");var Ze=7,Lt=1,Rt=2,vt=(e)=>{let r=e[Ze];if((r&Lt)!==0)return!1;return e[Ze]=(r|Lt)>>>0,!0},at=(e)=>{e[Ze]=(e[Ze]&~Lt)>>>0},mn=(e)=>(e[Ze]&Lt)!==0,Sn=(e)=>{e[Ze]=0},li=(e,r)=>{let t=e.finalize;e.finalize=t===void 0?r:()=>{try{t()}finally{r()}}},Lr=(e,r)=>{if(e.finalize!==void 0||r===null||typeof r!=="object")return;let t=r[fi]?.();if(typeof t==="function")li(e,t)},Ur=(e)=>{let r=e.finalize;if(e.finalize=void 0,r!==void 0)try{r()}catch{}},i={FlagsToHost:0,FunctionID:0,ID:1,Type:2,Start:3,End:4,PayloadLen:5,slotBuffer:6,Size:8,TotalBuff:144},_t=5,Hr=(1<<_t)-1,nf=32-_t,Ct=4294967295>>>_t,of=~Hr>>>0,It=16,di=(1<<It)-1,af=32-It,yi=4294967295>>>It,sf=~di>>>0;var Fo=(e)=>e[i.FunctionID]>>>It&yi;var Oo=(e)=>e[i.slotBuffer]&Hr;var No=(e)=>e[i.slotBuffer]>>>_t&Ct;var Mt={Reject:1},uf=Int32Array.BYTES_PER_ELEMENT,pi=Te.paddingLock,mi=Pt,jr=ci,Do=Pt*2,Wo=Pt*3;var yr=Te.header+i.TotalBuff,cf=yr*Uint32Array.BYTES_PER_ELEMENT,gi=Pt/Uint32Array.BYTES_PER_ELEMENT,st=i.TotalBuff-gi,Uo=st,An=Uo+i.Size,hi=An+1,bi=An+2,Ho=bi+1,Si=Ho+1,Ai=Te.header+yr*Te.slots,Bn=Ai*Uint32Array.BYTES_PER_ELEMENT,Bi=0,ff=Ve.UNREACHABLE,ot=(e)=>{},jo=()=>{let e=new Uint32Array(i.Size);return e.value=null,e.finalize=void 0,e.resolve=ot,e.reject=ot,e[Ze]=0,e},Ko=()=>{let e=jo();return e[i.ID]=Bi++,e},bn=(e,r,t)=>{e[0]=r[t],e[1]=r[t+1],e[2]=r[t+2],e[3]=r[t+3],e[4]=r[t+4],e[5]=r[t+5],e[6]=r[t+6],e[Ze]=0},wi=(e,r)=>{let t=jo();return bn(t,e,r),t},xt=(e)=>{if(e[i.FlagsToHost]===0)e.resolve(e.value);else e.reject(e.value),e[i.FlagsToHost]=0},Pr=({headers:e,headerSlotStrideU32:r,LockBoundSector:t,payload:n,payloadConfig:a,payloadSector:u,textCompat:c,resultList:f,toSentList:S,recycleList:N,processBoundary:P,consumers:H,consumerId:k,regionLanes:m,notifyOnHostPublish:O})=>{let x=Ye(t??Fr(jr)),w=x.sab,M=new Int32Array(w,x.byteOffset+pi,1),J=new Int32Array(w,x.byteOffset+mi,1),_=Ye(e??Fr(Bn)),q=new Uint32Array(_.sab,_.byteOffset,_.byteLength>>>2),j=r??yr,te=new Int32Array(_.sab,_.byteOffset+Si*Uint32Array.BYTES_PER_ELEMENT,1),oe=dr({sab:n,options:a}),K=n??(oe.mode==="growable"?ze(oe.payloadInitialBytes,oe.payloadMaxByteLength):ze(oe.payloadInitialBytes)),ee=Ye(u??x),G=c??Dr({headers:_,payload:K}),C=Math.max(1,(H??1)|0),Q=C>1,ue=k===void 0,X=(k??0)|0,ce=(m??8)|0,s=Te.slots/ce|0;if(Q){if(ce<1||(ce&ce-1)!==0)throw RangeError("regionLanes must be a power of two");if(s<C)throw RangeError(`regionLanes=${ce} yields ${s} regions, too few for ${C} consumers`);if(X<0||X>=C)throw RangeError(`consumerId ${X} out of range`)}let L=new Int32Array(_.sab,_.byteOffset,_.byteLength>>>2),g=new Int32Array(C),B=new Int32Array(C);for(let A=0;A<C;A++){let F=A*j+Te.header;g[A]=F+An,B[A]=F+hi}let l=Te.header+Ho,p=C===32?-1:(1<<C)-1|0;if(Q&&ue)Atomics.store(L,l,p);let h=(A,F)=>(A&1<<F)!==0,z=()=>{let A=0;for(let F=0;F<C;F++)A=A^be(L,g[F])|0;return A},b;if(gn===void 0||hn===void 0)throw Error('Payload codec not registered before lock2(). Ensure the module that builds locks imports "./payloadCodec.ts" (it self-registers on load).');let y=gn({payload:{sab:K,config:oe},headersBuffer:q,headerSlotStrideU32:j,lockSector:ee,textCompat:G,processBoundary:P,onPromise:(A,F,ae)=>{if((A[Ze]&Rt)!==0&&he>0)A[Ze]=(A[Ze]&~Rt)>>>0,he=he-1|0;b(A,F,ae)}}),D=hn({payload:{sab:K,config:oe},headersBuffer:q,headerSlotStrideU32:j,lockSector:ee,textCompat:G,processBoundary:P}),ne=0,re=0,me=32,ge=S??new cr,ve=N??new cr,Ne=f??new cr,fe=0,he=0,be=Atomics.load,de=Atomics.store,De=Atomics.notify,xe=O===!0,He=typeof Atomics.waitAsync==="function"?Atomics.waitAsync.bind(Atomics):void 0,We=0,Le=Q?()=>We=z():()=>We=be(J,0)|0;Le();let je=(A)=>~A!==0?A:ne^Le()|0,qe=(A)=>ge.push(A),er=()=>ge.shiftNoClear(),sr=(A)=>ge.unshift(A),mr=()=>ve.shiftNoClear(),o=(A)=>Ne.push(A),E=Math.clz32,T=Te.header+Uo,d=({queue:A})=>(F)=>{let ae=F*j+T,ie=A[q[ae+i.ID]];return bn(ie,q,ae),ie},W=(A)=>qe(A),V=(A)=>{let F=A[Ze];if((F&Rt)!==0)return;A[Ze]=(F|Rt)>>>0,he=he+1|0},Y=(A,F)=>y(A,F),I=0,se=0,Z=(A,F)=>{let ae=~F;if(ae===0)return 0;if(!Y(A,I=31-E(ae)))return 0;return Ae(A,I,se=1<<I),se},we=(A)=>{let F=je(ne^We|0),ae=0;if(A===ge)while(!0){let ie=er();if(!ie)break;F=je(F);let Ue=Z(ie,F)|0;if(Ue===0){sr(ie);break}F=F^Ue|0,ae=ae+1|0}else while(!0){let ie=A.shiftNoClear();if(!ie)break;F=je(F);let Ue=Z(ie,F)|0;if(Ue===0){A.unshift(ie);break}F=F^Ue|0,ae=ae+1|0}return ae},ke=(A)=>{let F=je(ne^We|0),ae=0;if(fe=0,A===ge)while(!0){let ie=er();if(!ie)break;F=je(F);let Ue=Z(ie,F)|0;if(Ue===0){if(mn(ie)){fe=fe+1|0,V(ie);continue}sr(ie);break}F=F^Ue|0,ae=ae+1|0}else while(!0){let ie=A.shiftNoClear();if(!ie)break;F=je(F);let Ue=Z(ie,F)|0;if(Ue===0){if(mn(ie)){fe=fe+1|0,V(ie);continue}A.unshift(ie);break}F=F^Ue|0,ae=ae+1|0}return ae},R=()=>{if(ge.isEmpty)return!0;return ke(ge),fe=0,ge.isEmpty},U=(A)=>{if(de(M,0,ne=ne^A|0),xe&&be(te,0)!==0)De(M,0,1)},le=(A)=>de(J,0,re=re^A|0),Se=(A,F=ne^We|0)=>{F=je(F);let ae=~F;if(ae===0)return!1;if(!Y(A,I=31-E(ae)))return!1;return Ae(A,I,se=1<<I)},Pe=(A,F=ne^We|0)=>{fe=0,F=je(F);let ae=~F;if(ae===0)return!1;if(!Y(A,I=31-E(ae))){if(mn(A))fe=1,V(A);return!1}return Ae(A,I,se=1<<I)},Ae=(A,F,ae)=>{let ie=F*j+T;return q[ie]=A[0],q[ie+1]=A[1],q[ie+2]=A[2],q[ie+3]=A[3],q[ie+4]=A[4],q[ie+5]=A[5],q[ie+6]=A[6],q[ie+Ze]=0,U(ae),!0},_e=()=>(M[0]^re)!==0,Qe=()=>{let A=be(M,0)^re|0;if(A===0)return!1;let F=me,ae=0;try{if(F===32)gt(I=31-E(A)),se=1<<(F=I),A^=se,ae=ae^se|0;while(A!==0){let ie=A&(1<<F)-1;if(ie===0)ie=A;gt(I=31-E(ie)),se=1<<(F=I),A^=se,ae=ae^se|0}}finally{if(ae!==0)le(ae)}return me=F,!0},tr=(A)=>ce===32?-1:(1<<ce)-1<<A*ce|0,wr=()=>{let A=0;for(let F=0;F<C;F++)if(F!==X)A=A^be(L,g[F])|0;return A},Tr=(A)=>{let F=be(L,l)|0;for(let ae=X+1;ae<C;ae++){if(!h(F,ae))continue;if((be(L,B[ae])&A)!==0)return!0}return!1},Ce=s*X/C|0,ir=()=>{let A=be(M,0)^re^wr()|0;if(A===0)return!1;let F=0;if(s===1)F=1;else for(let pe=0;pe<s;pe++)if((A&tr(pe))!==0)F|=1<<pe;let ae=be(L,l)|0,ie=0,Ue=0;for(let pe=0;pe<C;pe++){if(pe===X||!h(ae,pe))continue;let Fe=be(L,B[pe])|0;if(ie|=Fe,pe<X)Ue|=Fe}let Mr=F&~Ue;if(Mr===0)return!1;let Jr=F&~ie,ht=Jr!==0?Jr:Mr,lr=-1;for(let pe=0;pe<s;pe++){let Fe=(Ce+pe)%s;if((ht&1<<Fe)!==0){lr=Fe;break}}if(lr<0)return!1;let Je=1<<lr|0;de(L,B[X],Je);let ur=!1,Ie=!1;for(let pe=0;pe<C;pe++){if(pe===X||!h(ae,pe))continue;if((be(L,B[pe])&Je)===0)continue;if(pe<X)ur=!0;else Ie=!0}if(ur)return de(L,B[X],0),!1;if(Ie)while(Tr(Je));let Ge=(be(M,0)^re^wr())&tr(lr)|0;if(Ge===0)return de(L,B[X],0),!1;let Re=Ge;while(Re!==0)gt(31-E((Re&-Re)>>>0)),Re=Re&Re-1|0;return re=re^Ge|0,de(L,g[X],re),de(L,B[X],0),Ce=(lr+1)%s,!0},nr=({queue:A,onResolved:F,shouldSettle:ae,activeRejectPlaceholder:ie})=>{let Ue=d({queue:A}),Mr=32;if(ie!==void 0&&F){let Je=F,ur=ie;return()=>{let Ie=be(M,0)^re|0;if(Ie===0)return 0;let Ge=0,Re=0,pe=Mr;if(pe===32){let Fe=31-E(Ie),gr=1<<Fe,Xe=Ue(Fe);if(D(Xe,Fe),Re=Re^gr|0,Xe.reject!==ur)xt(Xe),Je(Xe);if(Ie^=gr,Ge++,(Ge&7)===0&&Re!==0)re=re^Re|0,de(J,0,re),Re=0;pe=Fe}while(Ie!==0){let Fe=pe===31?2147483647:(1<<pe)-1,gr=Ie&Fe;if(gr===0)gr=Ie;let Xe=31-E(gr),bo=1<<Xe,bt=Ue(Xe);if(D(bt,Xe),Re=Re^bo|0,bt.reject!==ur)xt(bt),Je(bt);if(Ie^=bo,Ge++,(Ge&7)===0&&Re!==0)re=re^Re|0,de(J,0,re),Re=0;pe=Xe}if(Re!==0)re=re^Re|0,de(J,0,re);return Mr=pe,Ge}}let Jr=F!==void 0,ht=F??ot,lr=ae;return()=>{let Je=be(M,0)^re|0;if(Je===0)return 0;let ur=0,Ie=0,Ge=Mr;if(Ge===32){let Re=31-E(Je),pe=1<<Re,Fe=Ue(Re);if(D(Fe,Re),Ie=Ie^pe|0,lr===void 0||lr(Fe)){if(xt(Fe),Jr)ht(Fe)}if(Je^=pe,ur++,(ur&7)===0&&Ie!==0)re=re^Ie|0,de(J,0,re),Ie=0;Ge=Re}while(Je!==0){let Re=Ge===31?2147483647:(1<<Ge)-1,pe=Jeℜif(pe===0)pe=Je;let Fe=31-E(pe),gr=1<<Fe,Xe=Ue(Fe);if(D(Xe,Fe),Ie=Ie^gr|0,lr===void 0||lr(Xe)){if(xt(Xe),Jr)ht(Xe)}if(Je^=gr,ur++,(ur&7)===0&&Ie!==0)re=re^Ie|0,de(J,0,re),Ie=0;Ge=Fe}if(Ie!==0)re=re^Ie|0,de(J,0,re);return Mr=Ge,ur}},mt=(A)=>{if(He===void 0){de(te,0,0);return}de(te,0,1);try{let F=He(M,0,re|0,A);if(!F.async)de(te,0,0);return F}catch{de(te,0,0);return}},gt=(A)=>{let F=A*j+T,ae=mr(),ie;if(ae)bn(ae,q,F),ae.value=null,ae.finalize=void 0,ae.resolve=ot,ae.reject=ot,ie=ae;else ie=wi(q,F);return D(ie,A),o(ie),!0};return{enlist:W,encode:Se,encodeManyFrom:we,encodeAll:R,publish:(A)=>{if(Pe(A))return!0;if((fe|0)!==0)return fe=0,!1;return qe(A),!1},flushPending:()=>{if(ge.isEmpty)return!1;let A=ke(ge)|0;return fe=0,A!==0},decode:Q?ir:Qe,hasSpace:_e,resolved:Ne,hostBits:M,workerBits:J,recyclecList:ve,resolveHost:nr,waitForHostChange:mt,setHostWaiterArmed:(A)=>{de(te,0,A?1:0)},hasPendingFrames:()=>ge.size!==0,getPendingFrameCount:()=>ge.size|0,getPendingPromiseCount:()=>he|0,resetPendingState:()=>{ge.clear(),fe=0,he=0},deactivateStealConsumer:(A)=>{if(!Q||!ue)return!1;if(!Number.isInteger(A)||A<0||A>=C)throw RangeError(`consumerId ${A} out of range`);let F=1<<A;return(Atomics.and(L,l,~F)&F)!==0},takeDeferredCount:()=>{let A=fe|0;return fe=0,A},setPromiseHandler:(A)=>{b=A}}};var Ti=1,Go=1,ki=performance.now.bind(performance),Ei=(e,r,t,n)=>new Promise((a,u)=>{let c=!1,f=setTimeout(()=>{if(c)return;if(c=!0,t)a(n);else u(n)},r);e.then((S)=>{if(c)return;c=!0,clearTimeout(f),a(S)},(S)=>{if(c)return;c=!0,clearTimeout(f),u(S)})}),Ri=(e)=>(Math.floor(e())&Ct)>>>0,$o=(e,r,t,n)=>{let a=Ri(n)-No(r)&Ct,u=t.ms-a;if(!(u>0))return e.then(()=>{},()=>{}),t.kind===Go?Promise.resolve(t.value):Promise.reject(t.value);let c=Math.max(1,Math.floor(u));return Ei(e,c,t.kind===Go,t.value)},Ft=-1,zo=(e)=>{let r=Fo(e);if(r===0)return Ft;let t=r-Ti|0;return t>=0?t:Ft},xi=(e,r)=>{let t=[];return(n)=>{let a=t[n];if(a)return a;return a={hasAborted:()=>e(n),now:r},t[n]=a,a}},Yo=({job:e,timeout:r,hasAborted:t,now:n})=>{let a=n??ki;if(!t){if(!r)return(c)=>e(c.value);return(c)=>{let f=e(c.value);if(!(f instanceof Promise))return f;return $o(f,c,r,a)}}let u=xi(t,a);if(!r)return(c)=>{let f=zo(c);if(f===Ft)return e(c.value);return e(c.value,u(f))};return(c)=>{let f=zo(c),S=f===Ft?e(c.value):e(c.value,u(f));if(!(S instanceof Promise))return S;return $o(S,c,r,a)}};var wn=Symbol.for("knitting.bufferReference.numericTransfer"),Vo=Symbol.for("knitting.bufferReference.returnReleaseToken"),Ot=()=>{throw Error('BufferReference cannot run in runtime "browser"')};class Nt{constructor(){Ot()}static fromMetadata=Ot}var it=(e)=>!1,Tn=(e,r)=>r(),qo=(e)=>{return},Qo=Ot,Jo=Ot;var Xo=({listOfFunctions:e,workerOptions:r,lock:t,returnLock:n,borrowReturnedBufferReferences:a,hasAborted:u,now:c,stealing:f})=>{let S=(b)=>{throw"UNREACHABLE FROM PLACE HOLDER (thread)"},N=0,P=0,H=e.reduce((b,y)=>(b.push(y.run),b),[]),k=new cr,m=new cr,O=(b)=>k.push(b),x=()=>k.shiftNoClear(),w=()=>m.shiftNoClear(),M=(b)=>m.unshift(b),J=(b)=>m.push(b),_=(b)=>t.recyclecList.push(b),q=65535,j=i.FlagsToHost,te=Mt.Reject,oe=Atomics.load,K=n.hostBits,ee=n.workerBits,G=[],C=new Map,Q=()=>{if(G.length===0)return;if((oe(K,0)^oe(ee,0))!==0)return;for(let b=0;b<G.length;b++)try{G[b]()}catch{}G.length=0},ue=(b)=>{let y=b.toString(),D=C.get(y);if(D===void 0)return;C.delete(y);try{D()}catch{}},X=e.reduce((b,y,D)=>{let ne=H[D];return b.push(Yo({job:ne,timeout:y.timeout,hasAborted:u,now:c})),b},[]),ce=r?.resolveAfterFinishingAll===!0?()=>N!==0&&k.size===0:()=>N!==0,{decode:s,resolved:L}=t,g=()=>L.shiftNoClear(),B=()=>{if(f&&k.size!==0)return!1;if(!s())return!1;let b=g();while(b)b.resolve=S,b.reject=S,Lr(b,b.value),O(b),b=g();return!0},l=(b)=>{if(!n.encode(b))return!1;return!0},p=(b,y)=>{if(b[j]=y?te:0,!l(b))return!1;if(b.finalize!==void 0){let D=b.finalize[Vo];if(D===void 0||a!==!0)G.push(b.finalize);else C.set(D.toString(),b.finalize);b.finalize=void 0}return N--,_(b),!0},h=(b,y,D,ne)=>{if(Ur(b),b.value=D,N++,ne&&P>0)P--;let re=y||b[j]===te;if(!p(b,re))J(b)},z=()=>{let b=w();if(!b)return!1;if(!p(b,b[j]===te))return M(b),!1;return!0};return{hasCompleted:ce,hasPending:()=>k.size!==0,writeBatch:(b)=>{let y=0;while(y<b){if(!z())break;y++}return y},serviceBatchImmediate:()=>{let b=0;while(b<5&&k.size!==0){let y=x();try{let D=y[i.FunctionID]&q,ne=X[D](y);if(y[j]=0,y.value=null,ne instanceof Promise)P++,ne.then((re)=>h(y,!1,re,!0),(re)=>h(y,!0,re,!0));else h(y,!1,ne,!1)}catch(D){h(y,!0,D,!1)}++b}return b},enqueueLock:B,drainReturnReleases:Q,releaseReturnedBufferReference:ue,hasAwaiting:()=>P>0,getAwaiting:()=>P}};var Kr=4096,En=64,kn={op:0,rxStatus:En,txStatus:En*2},ut=En*3,Zo=Atomics.store,Dt=({sabObject:e,isMain:r,startTime:t})=>{let n=e?.size??Kr,a=n+(Kr-n%Kr)%Kr,u=Ye(e?.sharedSab?e.sharedSab:ze(a,Kr*Kr)),c=u.sab,f=u.byteOffset,S=t??performance.now(),N=new Int32Array(c,f+kn.op,1);if(r)Zo(N,0,0);let P=new Int32Array(c,f+kn.rxStatus,1);return Zo(P,0,1),{sab:u,op:N,startAt:S,opView:N,rxStatus:P,txStatus:new Int32Array(c,f+kn.txStatus,1)}};var vr=4294967264,Rn=({lockSector:e})=>{let r=Ye(e??Fr(jr)),t=r.sab,n=new Int32Array(t,r.byteOffset+Do,1),a=new Int32Array(t,r.byteOffset+Wo,1),u=new Uint32Array(Te.slots),c=new Uint32Array(Te.slots),f=Math.clz32,S=Atomics.load,N=Atomics.store,P=Atomics.xor,H=4294967295,k=Hr,m=~k>>>0;u.fill(4294967295);let O=0,x=0,w=0,M=(K)=>u.slice(0,K),J=(K,ee)=>{let G=u,C=0;K=K|0,ee=ee>>>0;for(let ue=0;ue<K;ue++){let X=G[ue];if(X===4294967295)continue;if((ee&1<<(X&k))!==0)continue;if(C!==ue)G[C]=X;C++}let Q=C;for(;C<K;C++)G[C]=4294967295;return Q},_=()=>{let K=S(a,0)|0,G=~((w^K)>>>0)>>>0;if(O===0||G===0)return;if(G===4294967295){O=0,x=0;return}if(G&=x,G===0)return;x&=~G,O=J(O,G)},q=(K,ee)=>{let G=u,C=c,Q=O,ue=-1,X=0,ce=0,s=!1;if(Q===0&&x===0)return G[0]=0,C[0]=ee,K[i.Start]=0,K[i.slotBuffer]=(K[i.slotBuffer]&vr|0)>>>0,O=1,x=1,w^=1,0;if(Q!==0){let l=S(a,0)|0,p=~(w^l)>>>0;if(p!==0)p&=x;if(p===x>>>0)O=0,x=0,Q=0,p=0;else if(p!==0)for(let h=0;h<Q;h++){let z=G[h],b=z&k,y=1<<b;if((p&y)===0)continue;if(C[b]>>>0!==ee>>>0)continue;let D=~x>>>0,ne=(D&-D)>>>0;if(ne===0)return-1;let re=31-f(ne),me=z&m;return G[h]=(me|re)>>>0,C[re]=ee,K[i.Start]=me,K[i.slotBuffer]=(K[i.slotBuffer]&vr|re)>>>0,x=x&~y|ne,w^=ne,re}if(Q!==0&&p!==0&&p!==4294967295){s=!0;let h=0;for(let z=0;z<Q;z++){let b=G[z],y=b&k;if((p&1<<y)!==0)continue;let D=b&m;if(ue===-1&&D-ce>>>0>=ee>>>0)ue=h,X=ce;if(h!==z)G[h]=b;h++,ce=D+(C[y]>>>0)>>>0}for(let z=h;z<Q;z++)G[z]=4294967295;if(p!==0)x&=~p;O=Q=h}}if(Q>=Te.slots)return-1;let L=~x>>>0,g=(L&-L)>>>0;if(g===0)return-1;let B=31-f(g);if(!s&&Q!==0){if((G[0]&m)>=ee>>>0){for(let b=Q;b>0;b--)G[b]=G[b-1];return G[0]=B,C[B]=ee,K[i.Start]=0,K[i.slotBuffer]=(K[i.slotBuffer]&vr|B)>>>0,O=Q+1,x|=g,w^=g,B}for(let b=0;b+1<Q;b++){let y=G[b],ne=(y&m)+(C[y&k]>>>0)>>>0;if((G[b+1]&m)-ne>>>0<ee>>>0)continue;for(let me=Q;me>b+1;me--)G[me]=G[me-1];return G[b+1]=(ne|B)>>>0,C[B]=ee,K[i.Start]=ne,K[i.slotBuffer]=(K[i.slotBuffer]&vr|B)>>>0,O=Q+1,x|=g,w^=g,B}let p=G[Q-1],z=(p&m)+(C[p&k]>>>0)>>>0;return G[Q]=(z|B)>>>0,C[B]=ee,K[i.Start]=z,K[i.slotBuffer]=(K[i.slotBuffer]&vr|B)>>>0,O=Q+1,x|=g,w^=g,B}if(Q===0)return G[0]=B,C[B]=ee,K[i.Start]=0,K[i.slotBuffer]=(K[i.slotBuffer]&vr|B)>>>0,O=1,x|=g,w^=g,B;if(ue!==-1){for(let l=Q;l>ue;l--)G[l]=G[l-1];return G[ue]=(X|B)>>>0,C[B]=ee,K[i.Start]=X,K[i.slotBuffer]=(K[i.slotBuffer]&vr|B)>>>0,O=Q+1,x|=g,w^=g,B}return G[Q]=(ce|B)>>>0,C[B]=ee,K[i.Start]=ce,K[i.slotBuffer]=(K[i.slotBuffer]&vr|B)>>>0,O=Q+1,x|=g,w^=g,B};return{allocTask:(K)=>{let G=(K[i.PayloadLen]|0)+63&-64,C=q(K,G);if(C===-1)return-1;return N(n,0,w),C},setSlotLength:(K,ee)=>{K=K&Hr;let G=(ee|0)+63&-64;return c[K]=G>>>0,!0},lockSAB:t,free:(K)=>{P(a,0,1<<(K&Hr))},hostBits:n,workerBits:a,updateTable:_,startAndIndexToArray:M}};var Wt=Uint32Array.BYTES_PER_ELEMENT,pr=(e,r)=>{if(!Number.isInteger(e)||e<0)throw RangeError(`${r} must be a non-negative integer`);return e},Ln=(e,r=64)=>{let t=pr(e,"value"),n=pr(r,"alignment");if(n===0)throw RangeError("alignment must be greater than zero");return Math.ceil(t/n)*n},Pn=(e,r,t)=>({sab:e,byteOffset:pr(r,"byteOffset"),byteLength:pr(t,"byteLength")}),Li=({alignTo:e=64,startByteOffset:r=0}={})=>{let t=pr(e,"alignTo");if(t===0)throw RangeError("alignTo must be greater than zero");let n=pr(r,"startByteOffset"),a=[];return{slices:a,take:(c,f,{alignTo:S=t,reserveByteLength:N}={})=>{let P=pr(f,`${c} byteLength`),H=pr(S,`${c} alignTo`);if(H===0)throw RangeError(`${c} alignTo must be greater than zero`);let k=N==null?Ln(P,H):pr(N,`${c} reserveByteLength`);if(k<P)throw RangeError(`${c} reserveByteLength must cover byteLength`);let m=Ln(n,H),O={name:c,byteOffset:m,byteLength:P,reservedByteLength:k};return a.push(O),n=m+k,O},byteLength:()=>n,bind:(c,f)=>Pn(c,f.byteOffset,f.byteLength)}},ea=({slotIndex:e,slotStrideU32:r,baseU32:t=0,extraU32:n=0})=>e*r+t+n,ra=({slotIndex:e,slotStrideU32:r,baseByteOffset:t=0,baseU32:n=0,extraU32:a=0})=>t+ea({slotIndex:e,slotStrideU32:r,baseU32:n,extraU32:a})*Wt,vn=({slotCount:e,slotStrideU32:r,slotLengthU32:t,baseU32:n=0})=>{let a=pr(e,"slotCount");if(a===0)return 0;return(ea({slotIndex:a-1,slotStrideU32:r,baseU32:n})+t)*Wt},Pi=(e)=>e*2,xn=({slotCount:e,slotStrideU32:r,queues:t=1,alignTo:n=64})=>Ln(e*r*Wt*t,n),vi=({sab:e,byteOffset:r,slotCount:t,slotStrideU32:n})=>{let a=Pi(n),u=n*Wt,c=vn({slotCount:t,slotStrideU32:a,slotLengthU32:n});return{headerSlotStrideU32:a,requestHeaders:Pn(e,r,c),returnHeaders:Pn(e,r+u,c)}},_n=({signalBytes:e,abortBytes:r,lockSectorBytes:t,headerSlotStrideU32:n,slotCount:a,headerLayout:u="interleaved",alignTo:c=64,createBuffer:f=(S)=>new SharedArrayBuffer(S)})=>{let S=Li({alignTo:c}),N=S.take("signals",e),P=S.take("requestLockSector",t),H=S.take("returnLockSector",t),k,m,O;if(u==="interleaved")O=S.take("interleavedHeaders",xn({slotCount:a,slotStrideU32:n,queues:2,alignTo:c}));else k=S.take("requestHeaders",xn({slotCount:a,slotStrideU32:n,alignTo:c})),m=S.take("returnHeaders",xn({slotCount:a,slotStrideU32:n,alignTo:c}));let x=S.take("abortSignals",r),w=f(S.byteLength()),M=S.bind(w,N),J=S.bind(w,x),_=S.bind(w,P),q=S.bind(w,H),j=u==="interleaved"?vi({sab:w,byteOffset:O.byteOffset,slotCount:a,slotStrideU32:n}):{headerSlotStrideU32:n,requestHeaders:S.bind(w,k),returnHeaders:S.bind(w,m)};return{controlSAB:w,signals:M,abortSignals:J,lock:{headers:j.requestHeaders,headerSlotStrideU32:j.headerSlotStrideU32,lockSector:_,payloadSector:_},returnLock:{headers:j.returnHeaders,headerSlotStrideU32:j.headerSlotStrideU32,lockSector:q,payloadSector:q},slices:S.slices}};var _i=4096,_r=new TextEncoder,In=new TextDecoder,fr=64,Ci=_i,Ii=(e)=>e+63&-64,na=(e)=>e.constructor===Uint8Array,Mi=(e)=>na(e)?e:new Uint8Array(e.buffer,e.byteOffset,e.byteLength),Fi=(e)=>e instanceof TypeError,Oi=(e)=>e instanceof TypeError,oa=()=>{let e=globalThis.Buffer;if(typeof e?.from!=="function"||typeof e?.allocUnsafe!=="function"||typeof e?.allocUnsafeSlow!=="function")return;return e},Ni=(e,r)=>{let t=0,n=0;for(let a of e){let u=_r.encode(a);if(n+u.byteLength>r.byteLength)break;r.set(u,n),n+=u.byteLength,t+=a.length}return{read:t,written:n}},Cn=(e,r)=>{let t=new Uint8Array(r.byteLength),n=typeof _r.encodeInto==="function"?_r.encodeInto(e,t):Ni(e,t);if(n.written>0)r.set(t.subarray(0,n.written),0);return n},ta=(e)=>In.decode(e.slice()),aa=(e,r,t)=>{if(typeof _r.encodeInto!=="function")return Cn(e,r);if(t?.encodeInto===!0)return _r.encodeInto(e,r);if(t?.encodeInto===!1)return Cn(e,r);try{return _r.encodeInto(e,r)}catch(n){if(!Fi(n))throw n;return Cn(e,r)}},sa=(e,r)=>{if(r?.decode===!0)return In.decode(e);if(r?.decode===!1)return ta(e);try{return In.decode(e)}catch(t){if(!Oi(t))throw t;return ta(e)}},Mn=({sab:e,payloadConfig:r,textCompat:t})=>{let n=e===void 0?void 0:Ye(e),a=e!==void 0&&!nt(e),u=n?.sab instanceof ArrayBuffer&&!(n.sab instanceof SharedArrayBuffer),c=a||u,f=n?.byteLength,S=Zr&&n?.sab instanceof ArrayBuffer&&!(n.sab instanceof SharedArrayBuffer)?void 0:oa(),N=dr({sab:n?.sab,options:!c||f===void 0?r:{...r,mode:"fixed",payloadInitialBytes:r?.payloadInitialBytes??f,payloadMaxByteLength:r?.payloadMaxByteLength??f}}),P=N.mode==="growable",H=n?.sab??(P?ze(N.payloadInitialBytes,N.payloadMaxByteLength):ze(N.payloadInitialBytes)),k=n?.byteOffset??0,m=n?.byteLength??H.byteLength,O=new Uint8Array(H,k+fr,Math.max(0,m-fr)),x=S?(s,L)=>{let g=S.from(s,L+fr);if(g.buffer!==s)throw Error("Buffer view does not alias shared buffer");return g}:void 0,w=x?.(H,k),M=new Float64Array(H,k+fr,Math.max(0,m-fr)>>>3),J=()=>m-fr,_=(s)=>{if(J()>=s)return!0;if(!P)return!1;try{if(!(H instanceof SharedArrayBuffer))return!1;H=ko(H,Ii(fr+s+Ci))}catch{return!1}return k=0,m=H.byteLength,O=new Uint8Array(H,k+fr,m-fr),w=x?.(H,k),M=new Float64Array(H,k+fr,m-fr>>>3),!0},q=(s,L)=>{if(!w)return sa(O.subarray(s,L),t);return w.toString("utf8",s,L)},j=(s,L=0)=>{let g=Mi(s);if(!_(L+g.byteLength))return-1;return O.set(g,L),g.byteLength},te=(s,L=0)=>{let g=s.byteLength;if(!_(L+g))return-1;return O.set(s,L),g},oe=(s,L=0)=>{let g=s.byteLength;if(!_(L+g))return-1;return O.set(new Uint8Array(s),L),g},K=(s,L=0)=>{let g=s.byteLength;if(!_(L+g))return-1;return M.set(s,L>>>3),g},ee=(s,L)=>O.slice(s,L),G=(s,L)=>O.subarray(s,L),C=(s,L)=>{if(!S||!w)return ee(s,L);let g=Math.max(0,L-s|0),B=S.allocUnsafe(g);if(g===0)return B;return w.copy(B,0,s,L),B},Q=(s,L)=>{if(!S||!w)return ee(s,L).buffer;let g=Math.max(0,L-s|0);if(g===0)return new ArrayBuffer(0);let B=S.allocUnsafeSlow(g);return w.copy(B,0,s,L),B.buffer};return{readUtf8:q,writeBinary:j,writeBuffer:te,writeArrayBuffer:oe,write8Binary:K,readBytesCopy:ee,readBytesView:G,readBytesBufferCopy:C,readBufferCopy:C,readBytesArrayBufferCopy:Q,readArrayBufferCopy:Q,read8BytesFloatCopy:(s,L)=>M.slice(s>>>3,L>>>3),read8BytesFloatView:(s,L)=>M.subarray(s>>>3,L>>>3),writeUtf8:(s,L,g=s.length*3)=>{if(!_(L+g))return-1;let B=O.subarray(L,L+g);if(!w){let{read:h,written:z}=aa(s,B,t);if(h!==s.length)return-1;return z}let{read:l,written:p}=_r.encodeInto(s,B);if(l!==s.length)return-1;return p}}},ia=({headersBuffer:e,slotStrideU32:r,textCompat:t})=>{let n=oa(),a=e instanceof Uint32Array?e.buffer:e,u=e instanceof Uint32Array?e.byteOffset:0,c=Uint32Array.BYTES_PER_ELEMENT,f=r??yr,S=st*c,N=new Uint8Array(a,u),P=n?.from(a,u),H=new Float64Array(a,u,a.byteLength-u>>>3),k=(l)=>ra({slotIndex:l,slotStrideU32:f,baseByteOffset:u,baseU32:Te.header}),m=new Uint32Array(Te.slots);for(let l=0;l<Te.slots;l++)m[l]=k(l)-u;let O=new Uint32Array(a,u,a.byteLength-u>>>2),x=new Uint32Array(Te.slots);for(let l=0;l<Te.slots;l++)x[l]=m[l]>>>2;let w=(l,p,h)=>{let z=x[h];for(let b=0;b<p;b++)O[z+b]=l[b];return p*c},M=(l,p,h)=>{let z=x[h];for(let b=0;b<p;b++)l[b]=O[z+b];return l},J=(l,p)=>(l|0)>=0&&l+p<=S,_=(l,p)=>{let h=m[p],z=N.subarray(h,h+S);if(!P){let{read:D,written:ne}=aa(l,z,t);if(D!==l.length)return-1;return ne}let{read:b,written:y}=_r.encodeInto(l,z);if(b!==l.length)return-1;return y},q=(l,p,h)=>{let z=m[h];if(!P)return sa(N.subarray(z+l,z+p),t);return P.toString("utf8",z+l,z+p)},j=(l,p,h=0)=>(N.set(l,m[p]+h),l.byteLength),te=(l,p,h=0)=>(N.set(l,m[p]+h),l.byteLength),oe=(l,p,h=0)=>{let z=l.byteLength;return N.set(new Uint8Array(l),m[p]+h),z},K=(l,p,h=0)=>(N.set(l,m[p]+h),l.byteLength),ee=(l,p,h=0)=>{if(!na(l))return-1;return K(l,p,h)},G=(l,p,h=0)=>{let z=l.byteLength;if(!J(h,z))return-1;return H.set(l,m[p]+h>>>3),z},C=(l,p,h)=>N.slice(m[h]+l,m[h]+p),Q=(l,p,h)=>N.subarray(m[h]+l,m[h]+p),ue=(l,p,h)=>{if(!n||!P)return C(l,p,h);let z=p-l,b=n.allocUnsafe(z),y=m[h];return P.copy(b,0,y+l,y+p),b},X=(l,p,h)=>{if(!n)return C(l,p,h);let z=ue(l,p,h);return new Uint8Array(z.buffer,z.byteOffset,z.byteLength)},s=Zr?(l,p,h)=>C(l,p,h):X,L=(l,p,h)=>{if(!n||!P)return C(l,p,h).buffer;let z=Math.max(0,p-l|0);if(z===0)return new ArrayBuffer(0);let b=n.allocUnsafeSlow(z),y=m[h];return P.copy(b,0,y+l,y+p),b.buffer};return{writeUtf8:_,readUtf8:q,writeBinary:j,writeBuffer:te,writeArrayBuffer:oe,writeExactUint8Array:K,writeUint8Array:ee,writeU32Words:w,readU32Words:M,write8Binary:G,readBytesCopy:C,readBytesView:Q,readBytesBufferCopy:ue,readBufferCopy:ue,readUint8ArrayCopy:s,readUint8ArrayBufferCopy:X,readBytesArrayBufferCopy:L,readArrayBufferCopy:L,read8BytesFloatCopy:(l,p,h)=>H.slice(m[h]+l>>>3,m[h]+p>>>3),read8BytesFloatView:(l,p,h)=>H.subarray(m[h]+l>>>3,m[h]+p>>>3),maxBytes:S}};var Ee={Function:0,Symbol:1,Json:2,Serializable:3},Di=(e,r,t)=>{switch(r){case Ee.Function:return`KNT_ERROR_0: Function is not a valid type; name: ${typeof e.value==="function"?e.value.name||"<anonymous>":"<unknown>"}`;case Ee.Symbol:return"KNT_ERROR_1: Symbol must use Symbol.for(...) keys";case Ee.Json:return t==null||t.length===0?"KNT_ERROR_2: JSON stringify failed; payload must be JSON-safe":`KNT_ERROR_2: JSON stringify failed; ${t}`;case Ee.Serializable:return t==null||t.length===0?"KNT_ERROR_3: Unsupported payload type; serialize it yourself":`KNT_ERROR_3: Unsupported payload type; ${t}`}},Me=({task:e,type:r,onPromise:t,detail:n})=>{let a=Di(e,r,n);if(!xr)return e.value=a,e[i.FlagsToHost]=Mt.Reject,!1;if(t==null)throw TypeError(a);if(!vt(e))return!1;return queueMicrotask(()=>{at(e),e.value=a,t(e,!0,a)}),!1};var ua=Symbol.for("knitting.payloadCodec.transportFinalizer");class hr{header;payload;constructor(e,r){this.header=e,this.payload=r}[Symbol.dispose](){let e=this.payload;if(e!==null&&typeof e==="object")e[Symbol.dispose]?.()}[ua](){let e=this.payload;if(e===null||typeof e!=="object")return;let r=e[ua];return typeof r==="function"?r.call(e):void 0}}var Ut=()=>{throw Error('BufferReference cannot run in runtime "browser"')};var br="knitting.sharedArrayBuffer",Wn=Symbol.for("knitting.sharedArrayBuffer.numericTransfer"),jt=8,Wi=2,Ui=Symbol.for("knitting.payloadCodec"),la=()=>{let e=$e();if(e!==void 0&&typeof e.pid==="number")return e.pid;let r=globalThis.Deno;if(typeof r?.pid==="number")return r.pid;return 0},On=`${Oe}:${la()}`,Hi=typeof SharedArrayBuffer==="function",ji=(e)=>Hi&&e instanceof SharedArrayBuffer,ca=new WeakMap,Ht=new WeakMap,fa=new WeakMap,Nn=new Map,Ki=typeof FinalizationRegistry==="function"?new FinalizationRegistry((e)=>{try{Ut().releaseShared(e)}catch{}}):void 0,Dn=(e)=>[Number(e&0xffffffffn)>>>0,Number(e>>32n&0xffffffffn)>>>0],Fn=(e,r)=>BigInt(r>>>0)<<32n|BigInt(e>>>0),Gi=(e)=>{switch(e){case"node":return 1;case"deno":return 2;case"bun":return 3;default:return 0}},$i=(e)=>{switch(e){case 1:return"node";case 2:return"deno";case 3:return"bun";default:return}},zi=(e)=>{if(e===void 0)return;let r=fa.get(e);if(r===void 0)r=new Set,fa.set(e,r);return r},Yi=(e)=>{let r=ca.get(e);if(r===void 0){let t=Ut().produceShared(e);r={token:t.token,pointer:t.pointer,byteLength:t.byteLength},ca.set(e,r),Ki?.register(e,r.token)}return r},Vi=(e)=>({kind:br,origin:On,runtime:Oe,pointer:e.pointer.toString(),token:e.token.toString(),byteLength:e.byteLength}),qi=(e)=>{if(e.byteLength>4294967295)return;let[r,t]=Dn(e.token),[n,a]=Dn(e.pointer);return[r,t,n,a,e.byteLength>>>0,Gi(Oe),la()>>>0,0]},Qi=(e)=>{let[r,t]=Dn(e.token);return[r,t]},Ji=(e)=>{let r=Ht.get(e);if(r!==void 0)return r;let t=Yi(e);return r=da(e,t,Vi(t)),r},da=(e,r,t)=>{let n=Ht.get(e);if(n!==void 0)return n;let a=qi(r),u=Qi(r);return n={[Ui]:br,toMetadata:()=>t,[Wn]:(c)=>{if(a===void 0)return;let f=zi(c);if(f===void 0)return a;if(f.has(r.token))return u;return f.add(r.token),a}},Ht.set(e,n),n},Un=(e)=>{if(ji(e))return Ji(e);return Ht.get(e)},Xi=(e)=>{if(e===null||typeof e!=="object")return!1;let r=e;return r.kind===br&&typeof r.origin==="string"&&typeof r.runtime==="string"&&typeof r.pointer==="string"&&typeof r.token==="string"&&typeof r.byteLength==="number"&&Number.isInteger(r.byteLength)&&r.byteLength>=0},ya=(e,r)=>{if(e.origin!==On)throw Error(`SharedArrayBuffer cannot cross a process boundary (origin ${e.origin} != ${On}); it is shared by reference to thread workers only.`);let t=BigInt(e.token),n=Nn.get(t);if(n!==void 0)return n;if(r)throw TypeError("SharedArrayBuffer cache miss for warm token payload");let a=Ut().adoptShared({token:t,pointer:BigInt(e.pointer),byteOffset:0,byteLength:e.byteLength});return Nn.set(t,a.buffer),da(a.buffer,{token:t,pointer:BigInt(e.pointer),byteLength:e.byteLength},e),a.buffer},Zi=(e)=>{if(!Xi(e))throw TypeError("Invalid SharedArrayBuffer payload metadata");return ya(e,!1)},eu=(e)=>{if(e.length===Wi){let a=Fn(e[0]??0,e[1]??0),u=Nn.get(a);if(u!==void 0)return u;throw TypeError("SharedArrayBuffer cache miss for warm token payload")}let r=$i(e[5]??0);if(r===void 0)throw TypeError("Invalid SharedArrayBuffer numeric runtime");let t=e[6];if(t===void 0||!Number.isInteger(t)||t<0)throw TypeError("Invalid SharedArrayBuffer numeric origin");if(e.length!==jt)throw TypeError("Invalid SharedArrayBuffer numeric word count");let n={kind:br,origin:`${r}:${t>>>0}`,runtime:r,pointer:Fn(e[2]??0,e[3]??0).toString(),token:Fn(e[0]??0,e[1]??0).toString(),byteLength:e[4]??0};return ya(n,!1)},ru=globalThis,tu=ru.__KNITTING_PAYLOAD_CODECS__??=Object.create(null);tu[br]={decode:Zi,decodeNumeric:eu};var Gt=(e)=>!1,Kt=()=>{throw Error("ProcessSharedBuffer is unavailable in the browser build")};class Cr{constructor(){Kt()}static create=Kt;static fromMetadata=Kt;toMetadata=Kt}var pa=Symbol.for("knitting.numericArray");class $t extends Array{}Object.defineProperty($t.prototype,pa,{value:!0,enumerable:!1,writable:!1,configurable:!1});var Hn=(e)=>e[pa]===!0,jn=(e)=>{let r=e.length,t=new $t(r);for(let n=0;n<r;n++)t[n]=e[n];return t};var zn=new ArrayBuffer(8),Yt=new Float64Array(zn),ka=new BigInt64Array(zn),ar=new Uint32Array(zn),Ea=new TextEncoder,Vt=globalThis.Buffer,ma=typeof Vt?.byteLength==="function"?(e,r)=>Vt.byteLength(e,r):void 0,nu=(e)=>typeof Vt?.isBuffer==="function"&&Vt.isBuffer(e),ou=(e)=>e!=null&&typeof e==="object"&&Object.getPrototypeOf(e)===Uint8Array.prototype,au=!ma?(e)=>Ea.encode(e).byteLength:(e)=>ma(e,"utf8"),su=-(1n<<63n),iu=(1n<<63n)-1n,{parse:Sr,stringify:$r}=JSON,{for:Kn,keyFor:uu}=Symbol,Ra=Kn("knitting.payloadCodec"),Yn="knitting.bufferReference",Vn="knitting.processSharedBuffer",xa=globalThis,La=Object.getPrototypeOf,Jt=Object.prototype.hasOwnProperty,qt=Array.isArray,Pa=Object.prototype,ga="Unsupported object type. Allowed: plain object, array, Error, Date, Envelope, Buffer, ArrayBuffer, DataView, typed arrays, and registered external payloads. Serialize it yourself.",ha="Envelope payload must be an ArrayBuffer, SharedArrayBuffer, ProcessSharedBuffer, or BufferReference.",cu="Envelope header must be a JSON-like value or string.",fu="Envelope header cannot contain Promise values.",lu="Dynamic payload exceeds maxPayloadBytes.",du="Dynamic payload buffer capacity exceeded.",zr="SharedArrayBuffer and BufferReference are process-local pointer payloads and cannot cross a process-worker boundary; use ProcessSharedBuffer instead.",ba="Reserved Knitting external payload codec cannot be forged.",Yr=(e)=>e===br||e===Yn,Sa=(e)=>Yr(e)||e===Vn,yu=(e)=>{let r=La(e);return r===Pa||r===null},Aa=(e)=>{let r=e[Ra];return typeof r==="string"?r:void 0},pu=(e)=>{switch(e){case"node":return 1;case"deno":return 2;case"bun":return 3;default:return 0}},mu=(e)=>{switch(e){case"shared-array-buffer":return 1;case"external-array-buffer":return 2;default:return 0}},Gr=(e)=>typeof e==="number"&&Number.isInteger(e)&&e>=0&&e<=4294967295,Ba=(e)=>typeof e.toMetadata==="function"&&typeof e[Ra]==="string",wa=(e)=>{if(it(e))return Nt.prototype.toMetadata.call(e);if(Gt(e))return Cr.prototype.toMetadata.call(e);return e.toMetadata()},zt=(e,r)=>{let t=Sr(e);if(!qt(t)||t.length!==2)return t;let n=t[0],a=t[1];if(typeof n!=="string")return{codec:n,metadata:a};if(r&&Yr(n))throw TypeError(zr);let u=xa.__KNITTING_PAYLOAD_CODECS__?.[n];return typeof u?.decode==="function"?u.decode(a):{codec:n,metadata:a}},Qt=8,Gn=8,gu=4294967295,qn=(e,r)=>{let t=xa.__KNITTING_PAYLOAD_CODECS__?.[e];if(typeof t?.decodeNumeric==="function")return t.decodeNumeric(r);return{codec:e,metadata:Array.from(r)}},hu=(e)=>qn(Vn,e),bu=(e)=>qn(Yn,e),Su=(e)=>qn(br,e),Au=(e)=>{let r=e.value;switch(typeof r){case"number":if(r!==r)return e[i.Type]=Ve.NaN,!0;return Yt[0]=r,e[i.Type]=Ve.Float64,e[i.Start]=ar[0],e[i.End]=ar[1],!0;case"boolean":return e[i.Type]=r?Ve.True:Ve.False,!0;case"undefined":return e[i.Type]=Ve.Undefined,!0;case"bigint":if(r<su||r>iu)return!1;return ka[0]=r,e[i.Type]=Ve.BigInt,e[i.Start]=ar[0],e[i.End]=ar[1],!0;case"object":if(r===null)return e[i.Type]=Ve.Null,!0;return!1;default:return!1}},$n=(e,r)=>{if(e instanceof Promise)return!0;if(e===null||typeof e!=="object")return!1;let t=e,n=r??new Set;if(n.has(t))return!1;if(n.add(t),qt(t)){let u=t;for(let c=0;c<u.length;c++)if($n(u[c],n))return!0;return!1}if(!yu(t))return!1;let a=t;for(let u in a){if(!Jt.call(a,u))continue;if($n(a[u],n))return!0}return!1},va=(e)=>{if(e===null||e===void 0)return e;switch(typeof e){case"string":case"number":case"boolean":return e;case"bigint":return e.toString();case"symbol":case"function":return String(e)}if(e instanceof Error){let r={name:e.name,message:e.message};if(typeof e.stack==="string")r.stack=e.stack;if(Jt.call(e,"cause"))r.cause=va(e.cause);return r}try{return Sr($r(e))}catch{return String(e)}},Bu=(e)=>{let r={name:e.name,message:e.message};if(typeof e.stack==="string")r.stack=e.stack;if(Jt.call(e,"cause"))r.cause=va(e.cause);return r},wu=(e)=>{let r;try{r=Sr(e)}catch{return Error(e)}if(r==null||typeof r!=="object")return Error(String(r));let t=r,n=Error(typeof t.message==="string"?t.message:"");if(typeof t.name==="string"&&t.name.length>0)n.name=t.name;if(typeof t.stack==="string")try{n.stack=t.stack}catch{}if(Jt.call(t,"cause"))n.cause=t.cause;return n},Ta=(e)=>{let r=e[0],t=0n;for(let n=e.length-1;n>=1;n--)t=t<<8n|BigInt(e[n]);return r===1?-t:t},Tu=(e,r,t)=>{let n=r??yr,a=vn({slotCount:Te.slots,slotStrideU32:n,slotLengthU32:st,baseU32:Te.header});if(e.byteLength<Math.max(a,Bn))return null;return ia({headersBuffer:e,slotStrideU32:n,textCompat:t})},_a=(e,r,t)=>{let n=Tu(e,r,t);if(n===null)throw RangeError("headersBuffer is too small for static payload IO");return n},ku=({lockSector:e,payload:r,sab:t,payloadConfig:n,headersBuffer:a,headerSlotStrideU32:u,textCompat:c,onPromise:f,processBoundary:S=!1})=>{let N=r?.sab??t,P=dr({sab:N,options:r?.config??n}),H=P.maxPayloadBytes,{allocTask:k,setSlotLength:m,free:O}=Rn({lockSector:e}),{writeBinary:x,writeBuffer:w,writeArrayBuffer:M,write8Binary:J,writeUtf8:_}=Mn({sab:N,payloadConfig:P,textCompat:c?.payload}),{maxBytes:q,writeBinary:j,writeBuffer:te,writeArrayBuffer:oe,writeExactUint8Array:K,writeU32Words:ee,write8Binary:G,writeUtf8:C}=_a(a,u,c?.headers),Q=(o,E,T)=>Me({task:o,type:Ee.Serializable,onPromise:f,detail:`${lu} limit=${H}; actual=${E}; type=${T}.`}),ue=(o)=>Me({task:o,type:Ee.Serializable,onPromise:f,detail:du}),X=(o,E,T)=>{if(E<=H)return!0;return Q(o,E,T)},ce=(o,E,T,d)=>{let W=E.length*3;if(W+T<=H)return W;let Y=au(E),I=Y+T;if(I>H)return Q(o,I,d),-1;return Y},s=(o,E,T)=>ce(o,E,0,T),L=(o,E)=>(o[i.PayloadLen]=E,k(o)),g=-1,B=(o,E)=>{o[i.PayloadLen]=E;let T=k(o);return g=T,T},l=()=>{if(g!==-1)O(g),g=-1},p=(o,E)=>{if(O(E),g===E)g=-1;return ue(o)},h=new Uint8Array(16),z=(o)=>{let E=0,T=o;if(o<0n)E=1,T=-o;let d=1;while(T>0n){if(d>=h.byteLength){let W=new Uint8Array(h.byteLength<<1);W.set(h,0),h=W}h[d++]=Number(T&0xffn),T>>=8n}return h[0]=E,d},b=(o)=>{h.fill(0,0,o)},y=(o,E)=>{let T;try{T=$r(Bu(E))}catch(Y){let I=Y instanceof Error?Y.message:String(Y);return Me({task:o,type:Ee.Serializable,onPromise:f,detail:I})}let d=s(o,T,"Error");if(d<0)return!1;o[i.Type]=v.Error;let W=B(o,d),V=_(T,o[i.Start],d);if(V<0)return p(o,W);return o[i.PayloadLen]=V,m(W,V),o.value=null,!0},D=(o,E,T,d,W)=>{let V=T.byteLength;if(V<=q){let se=j(T,E);if(se!==-1)return o[i.Type]=W,o[i.PayloadLen]=se,o.value=null,!0}if(o[i.Type]=d,!X(o,V,Mo(d)))return!1;let Y=B(o,V),I=x(T,o[i.Start]);if(I<0)return p(o,Y);return o[i.PayloadLen]=I,m(Y,I),o.value=null,!0},ne=(o,E,T)=>{let d=T.byteLength;if(d<=q)return K(T,E),o[i.Type]=v.StaticBinary,o[i.PayloadLen]=d,o.value=null,!0;if(o[i.Type]=v.Binary,!X(o,d,"Binary"))return!1;let W=B(o,d),V=x(T,o[i.Start]);if(V<0)return p(o,W);return o[i.PayloadLen]=V,m(W,V),o.value=null,!0},re=(o,E,T)=>{let d=T.byteLength;if(d<=q){let Y=te(T,E);if(Y!==-1)return o[i.Type]=v.StaticBuffer,o[i.PayloadLen]=Y,o.value=null,!0}if(o[i.Type]=v.Buffer,!X(o,d,"Buffer"))return!1;let W=B(o,d),V=w(T,o[i.Start]);if(V<0)return p(o,W);return o[i.PayloadLen]=V,m(W,V),o.value=null,!0},me=(o,E,T)=>{let d=T.byteLength;if(d<=q){let Y=G(T,E);if(Y!==-1)return o[i.Type]=v.StaticFloat64Array,o[i.PayloadLen]=Y,o.value=null,!0}if(o[i.Type]=v.Float64Array,!X(o,d,"Float64Array"))return!1;let W=B(o,d),V=J(T,o[i.Start]);if(V<0)return p(o,W);return o[i.PayloadLen]=V,m(W,V),o.value=null,!0},ge=new Float64Array(0),ve=(o,E,T)=>{let d=T.length;if(ge.length<d)ge=new Float64Array(d);for(let se=0;se<d;se++)ge[se]=T[se];let W=ge.subarray(0,d),V=W.byteLength;if(V<=q){let se=G(W,E);if(se!==-1)return o[i.Type]=v.StaticNumericArray,o[i.PayloadLen]=se,o.value=null,!0}if(o[i.Type]=v.NumericArray,!X(o,V,"NumericArray"))return!1;let Y=B(o,V),I=J(W,o[i.Start]);if(I<0)return p(o,Y);return o[i.PayloadLen]=I,m(Y,I),o.value=null,!0},Ne=(o,E,T)=>{let d=T.byteLength;if(d<=q){let Y=oe(T,E);if(Y!==-1)return o[i.Type]=v.StaticArrayBuffer,o[i.PayloadLen]=Y,o.value=null,!0}if(o[i.Type]=v.ArrayBuffer,!X(o,d,"ArrayBuffer"))return!1;let W=B(o,d),V=M(T,o[i.Start]);if(V<0)return p(o,W);return o[i.PayloadLen]=V,m(W,V),o.value=null,!0},fe=new Uint32Array(Qt),he=new Uint32Array(jt),be=(o,E,T)=>{let d=T.descriptor;if(d===void 0||d.name!==void 0||!Gr(d.fd)||!Gr(d.size)||!Gr(d.byteLength)||!Gr(T.byteOffset)||!Gr(T.byteLength))return!1;let W=d.baseAddressMod64;if(W!==void 0&&!Gr(W))return!1;return fe[0]=d.fd,fe[1]=d.size,fe[2]=d.byteLength,fe[3]=T.byteOffset,fe[4]=T.byteLength,fe[5]=pu(d.runtime),fe[6]=mu(d.kind),fe[7]=W===void 0?gu:W,o[i.Type]=v.ProcessSharedBuffer,o[i.PayloadLen]=ee(fe,Qt,E),o.value=null,!0},de=(o,E,T)=>{let d=it(T)?Nt.prototype[wn].call(T):T[wn]?.();if(d===void 0)return!1;return o[i.Type]=v.BufferReference,o[i.PayloadLen]=ee(d,Gn,E),Lr(o,T),o.value=null,!0},De=(o,E,T)=>{let d=T[Wn]?.(e);if(d===void 0)return!1;return he[0]=d[0]??0,he[1]=d[1]??0,he[2]=d[2]??0,he[3]=d[3]??0,he[4]=d[4]??0,he[5]=d[5]??0,he[6]=d[6]??0,he[7]=d[7]??0,o[i.Type]=v.SharedArrayBuffer,o[i.PayloadLen]=ee(he,d.length,E),o.value=null,!0},xe=(o,E,T,d=!1)=>{let W=Aa(T);if(W===void 0)return Me({task:o,type:Ee.Serializable,onPromise:f,detail:ga});if(d){if(S&&Yr(W))return Me({task:o,type:Ee.Serializable,onPromise:f,detail:zr});if(W===br&&De(o,E,T))return!0;if(W===Yn&&de(o,E,T))return!0;if(W===Vn&&be(o,E,T))return!0}else if(Sa(W))return Me({task:o,type:Ee.Serializable,onPromise:f,detail:S&&Yr(W)?zr:ba});let V;try{V=$r([W,d?wa(T):T.toMetadata()])}catch(Z){let we=Z instanceof Error?Z.message:String(Z);return Me({task:o,type:Ee.Serializable,onPromise:f,detail:we})}if(typeof V!=="string")return Me({task:o,type:Ee.Serializable,onPromise:f,detail:"External payload metadata must be JSON serializable."});if(V.length<=q){let Z=C(V,E);if(Z!==-1)return o[i.Type]=v.StaticExternalPayload,o[i.PayloadLen]=Z,Lr(o,T),o.value=null,!0}o[i.Type]=v.ExternalPayload;let Y=s(o,V,"ExternalPayload");if(Y<0)return!1;let I=B(o,Y),se=_(V,o[i.Start],Y);if(se<0)return p(o,I);return o[i.PayloadLen]=se,m(I,se),Lr(o,T),o.value=null,!0},He=(o,E)=>(Yt[0]=E.getTime(),o[i.Type]=v.Date,o[i.Start]=ar[0],o[i.End]=ar[1],o.value=null,!0),We=(o,E,T)=>{if($n(E)){Me({task:o,type:Ee.Serializable,onPromise:f,detail:fu});return}if(T)return E;let d;try{d=$r(E)}catch(W){let V=W instanceof Error?W.message:String(W);Me({task:o,type:Ee.Json,onPromise:f,detail:V});return}if(typeof d!=="string"){Me({task:o,type:Ee.Serializable,onPromise:f,detail:cu});return}return d},Le=(o)=>{if(o===null||typeof o!=="object")return;let E=Un(o);if(E!==void 0)return{payload:E,trustedReservedCodec:!0};if(it(o)||Gt(o))return{payload:o,trustedReservedCodec:!0};if(Ba(o))return{payload:o,trustedReservedCodec:!1};return},je=(o,E,T,d,W)=>{let V=new Uint8Array(W),Y=V.byteLength,I=Y>0?Y:1,se=C(T,E);if(se!==-1){if(!X(o,I,"EnvelopeStaticHeaderPayload"))return!1;let U=B(o,I);if(o[i.Type]=d?v.EnvelopeStaticHeaderString:v.EnvelopeStaticHeader,o[i.PayloadLen]=se,o[i.End]=Y,Y>0){let le=x(V,o[i.Start]);if(le<0)return p(o,U);m(U,le)}return o.value=null,!0}let Z=ce(o,T,Y,d?"EnvelopeDynamicHeaderString":"EnvelopeDynamicHeader");if(Z<0)return!1;o[i.Type]=d?v.EnvelopeDynamicHeaderString:v.EnvelopeDynamicHeader;let we=B(o,Z+Y),ke=o[i.Start],R=_(T,ke,Z);if(R<0)return p(o,we);if(Y>0){if(x(V,ke+R)<0)return p(o,we)}return o[i.PayloadLen]=R,o[i.End]=Y,m(we,R+Y),o.value=null,!0},qe=(o,E,T,d,W,V)=>{let Y=Aa(W);if(Y===void 0)return Me({task:o,type:Ee.Serializable,onPromise:f,detail:ha});if(V){if(S&&Yr(Y))return Me({task:o,type:Ee.Serializable,onPromise:f,detail:zr})}else if(Sa(Y))return Me({task:o,type:Ee.Serializable,onPromise:f,detail:S&&Yr(Y)?zr:ba});let I;try{I=$r([Y,V?wa(W):W.toMetadata()])}catch(Pe){let Ae=Pe instanceof Error?Pe.message:String(Pe);return Me({task:o,type:Ee.Serializable,onPromise:f,detail:Ae})}if(typeof I!=="string")return Me({task:o,type:Ee.Serializable,onPromise:f,detail:"Envelope body metadata must be JSON serializable."});let se=Ea.encode(I),Z=se.byteLength,we=C(T,E);if(we!==-1){if(!X(o,Z,"EnvelopeStaticHeaderExternal"))return!1;let Pe=B(o,Z);o[i.Type]=d?v.EnvelopeStaticHeaderStringExternal:v.EnvelopeStaticHeaderExternal,o[i.PayloadLen]=we,o[i.End]=Z;let Ae=x(se,o[i.Start]);if(Ae<0)return p(o,Pe);return m(Pe,Ae),Lr(o,W),o.value=null,!0}let ke=ce(o,T,Z,d?"EnvelopeDynamicHeaderStringExternal":"EnvelopeDynamicHeaderExternal");if(ke<0)return!1;o[i.Type]=d?v.EnvelopeDynamicHeaderStringExternal:v.EnvelopeDynamicHeaderExternal;let R=B(o,ke+Z),U=o[i.Start],le=_(T,U,ke);if(le<0)return p(o,R);if(x(se,U+le)<0)return p(o,R);return o[i.PayloadLen]=le,o[i.End]=Z,m(R,le+Z),Lr(o,W),o.value=null,!0},er=(o,E,T)=>{let{header:d,payload:W}=T,V=typeof d==="string";if(W instanceof ArrayBuffer){let I=We(o,d,V);if(I===void 0)return!1;return je(o,E,I,V,W)}let Y=Le(W);if(Y!==void 0){let I=We(o,d,V);if(I===void 0)return!1;return qe(o,E,I,V,Y.payload,Y.trustedReservedCodec)}return Me({task:o,type:Ee.Serializable,onPromise:f,detail:ha})},sr=(o,E)=>{if(vt(o))E.then((T)=>{at(o),o.value=T,f(o,!1,T)},(T)=>{at(o),o.value=T,f(o,!0,T)});return!1};return(o,E)=>{let T=o.value;if(Au(o))return!0;switch(typeof T){case"bigint":{let d=z(T),W=h.subarray(0,d);if(d<=q){let I=j(W,E);if(I!==-1)return o[i.Type]=v.StaticBigInt,o[i.PayloadLen]=I,b(d),o.value=null,!0}if(o[i.Type]=v.BigInt,!X(o,d,"BigInt"))return b(d),!1;let V=L(o,d),Y=x(W,o[i.Start]);if(Y<0)return b(d),p(o,V);return o[i.PayloadLen]=Y,m(V,Y),b(d),o.value=null,!0}case"function":return Me({task:o,type:Ee.Function,onPromise:f});case"object":g=-1;try{let d=T,W=Un(d);if(W!==void 0)return xe(o,E,W,!0);let V=La(d);if(ou(d))return ne(o,E,d);if(qt(d)&&Hn(d))return ve(o,E,d);if(qt(d)||V===Pa||V===null){let I;try{I=$r(d)}catch(ke){let R=ke instanceof Error?ke.message:String(ke);return Me({task:o,type:Ee.Json,onPromise:f,detail:R})}if(I.length<=q){let ke=C(I,E);if(ke!==-1)return o[i.Type]=v.StaticJson,o[i.PayloadLen]=ke,o.value=null,!0}o[i.Type]=v.Json;let se=s(o,I,"Json");if(se<0)return!1;let Z=B(o,se),we=_(I,o[i.Start],se);if(we<0)return p(o,Z);return o[i.PayloadLen]=we,m(Z,we),o.value=null,!0}if(it(d)||Gt(d))return xe(o,E,d,!0);let Y=d.constructor;if(nu(d))return re(o,E,d);switch(Y){case ArrayBuffer:return Ne(o,E,d);case Int32Array:{let I=d;return D(o,E,new Uint8Array(I.buffer,I.byteOffset,I.byteLength),v.Int32Array,v.StaticInt32Array)}case Float64Array:return me(o,E,d);case BigInt64Array:{let I=d;return D(o,E,new Uint8Array(I.buffer,I.byteOffset,I.byteLength),v.BigInt64Array,v.StaticBigInt64Array)}case BigUint64Array:{let I=d;return D(o,E,new Uint8Array(I.buffer,I.byteOffset,I.byteLength),v.BigUint64Array,v.StaticBigUint64Array)}case DataView:{let I=d;return D(o,E,new Uint8Array(I.buffer,I.byteOffset,I.byteLength),v.DataView,v.StaticDataView)}case Date:return He(o,d);case hr:return er(o,E,d);case Promise:return sr(o,d);case Error:return y(o,d)}if(d instanceof Date)return He(o,d);if(d instanceof hr)return er(o,E,d);if(d instanceof Promise)return sr(o,d);if(d instanceof Error)return y(o,d);if(Ba(d))return xe(o,E,d);return Me({task:o,type:Ee.Serializable,onPromise:f,detail:ga})}catch(d){l();let W=d instanceof Error?d.message:String(d);return Me({task:o,type:Ee.Serializable,onPromise:f,detail:W})}case"string":{let d=T;if(d.length<=q){let I=C(d,E);if(I!==-1)return o[i.Type]=v.StaticString,o[i.PayloadLen]=I,o.value=null,!0}o[i.Type]=v.String;let W=s(o,d,"String");if(W<0)return!1;let V=L(o,W),Y=_(d,o[i.Start],W);if(Y<0)return p(o,V);return o[i.PayloadLen]=Y,m(V,Y),o.value=null,!0}case"symbol":{let d=uu(T);if(d===void 0)return Me({task:o,type:Ee.Symbol,onPromise:f});if(d.length*3<=q){let I=C(d,E);if(I!==-1)return o[i.Type]=v.StaticSymbol,o[i.PayloadLen]=I,o.value=null,!0}o[i.Type]=v.Symbol;let W=s(o,d,"Symbol");if(W<0)return!1;let V=L(o,W),Y=_(d,o[i.Start],W);if(Y<0)return p(o,V);return o[i.PayloadLen]=Y,m(V,Y),o.value=null,!0}}return!1}},Eu=({lockSector:e,payload:r,sab:t,payloadConfig:n,headersBuffer:a,headerSlotStrideU32:u,textCompat:c,host:f,processBoundary:S=!1})=>{let N=r?.sab??t,P=dr({sab:N,options:r?.config??n}),{free:H}=Rn({lockSector:e}),k=(s)=>H(Oo(s)),{readUtf8:m,readBytesCopy:O,readBytesBufferCopy:x,readBufferCopy:w,readBytesArrayBufferCopy:M,readArrayBufferCopy:J,read8BytesFloatCopy:_,read8BytesFloatView:q}=Mn({sab:N,payloadConfig:P,textCompat:c?.payload}),{readUtf8:j,readBytesBufferCopy:te,readBufferCopy:oe,readUint8ArrayCopy:K,readBytesArrayBufferCopy:ee,readArrayBufferCopy:G,read8BytesFloatCopy:C,readU32Words:Q}=_a(a,u,c?.headers),ue=new Uint32Array(Qt),X=new Uint32Array(jt),ce=new Uint32Array(Gn);return(s,L,g)=>{let B=s[i.Type];if(S&&(B===v.SharedArrayBuffer||B===v.BufferReference))throw TypeError(zr);switch(B){case Ve.BigInt:ar[0]=s[i.Start],ar[1]=s[i.End],s.value=ka[0];return;case Ve.True:s.value=!0;return;case Ve.False:s.value=!1;return;case Ve.Float64:ar[0]=s[i.Start],ar[1]=s[i.End],s.value=Yt[0];return;case Ve.NaN:s.value=NaN;return;case Ve.Null:s.value=null;return;case Ve.Undefined:s.value=void 0;return;case v.String:s.value=m(s[i.Start],s[i.Start]+s[i.PayloadLen]),k(s);return;case v.StaticString:s.value=j(0,s[i.PayloadLen],L);return;case v.Json:s.value=Sr(m(s[i.Start],s[i.Start]+s[i.PayloadLen])),k(s);return;case v.StaticJson:s.value=Sr(j(0,s[i.PayloadLen],L));return;case v.EnvelopeStaticHeader:case v.EnvelopeStaticHeaderString:{let l=j(0,s[i.PayloadLen],L),p=s[i.Type]===v.EnvelopeStaticHeaderString?l:Sr(l),h=s[i.End],z=h>0?M(s[i.Start],s[i.Start]+h):new ArrayBuffer(0);s.value=new hr(p,z),k(s);return}case v.EnvelopeDynamicHeader:case v.EnvelopeDynamicHeaderString:{let l=s[i.Start],p=l+s[i.PayloadLen],h=s[i.End],z=m(l,p),b=s[i.Type]===v.EnvelopeDynamicHeaderString?z:Sr(z),y=h>0?M(p,p+h):new ArrayBuffer(0);s.value=new hr(b,y),k(s);return}case v.EnvelopeStaticHeaderExternal:case v.EnvelopeStaticHeaderStringExternal:{let l=j(0,s[i.PayloadLen],L),p=s[i.Type]===v.EnvelopeStaticHeaderStringExternal?l:Sr(l),h=s[i.Start],z=zt(m(h,h+s[i.End]),S);s.value=new hr(p,z),k(s);return}case v.EnvelopeDynamicHeaderExternal:case v.EnvelopeDynamicHeaderStringExternal:{let l=s[i.Start],p=l+s[i.PayloadLen],h=m(l,p),z=s[i.Type]===v.EnvelopeDynamicHeaderStringExternal?h:Sr(h),b=zt(m(p,p+s[i.End]),S);s.value=new hr(z,b),k(s);return}case v.BigInt:s.value=Ta(x(s[i.Start],s[i.Start]+s[i.PayloadLen])),k(s);return;case v.StaticBigInt:s.value=Ta(te(0,s[i.PayloadLen],L));return;case v.Symbol:s.value=Kn(m(s[i.Start],s[i.Start]+s[i.PayloadLen])),k(s);return;case v.StaticSymbol:s.value=Kn(j(0,s[i.PayloadLen],L));return;case v.Int32Array:{let l=x(s[i.Start],s[i.Start]+s[i.PayloadLen]);s.value=new Int32Array(l.buffer,l.byteOffset,l.byteLength>>>2),k(s);return}case v.StaticInt32Array:{let l=te(0,s[i.PayloadLen],L);s.value=new Int32Array(l.buffer,l.byteOffset,l.byteLength>>>2);return}case v.Float64Array:{s.value=_(s[i.Start],s[i.Start]+s[i.PayloadLen]),k(s);return}case v.StaticFloat64Array:s.value=C(0,s[i.PayloadLen],L);return;case v.NumericArray:{s.value=jn(q(s[i.Start],s[i.Start]+s[i.PayloadLen])),k(s);return}case v.StaticNumericArray:s.value=jn(C(0,s[i.PayloadLen],L));return;case v.BigInt64Array:{let l=x(s[i.Start],s[i.Start]+s[i.PayloadLen]);s.value=new BigInt64Array(l.buffer,l.byteOffset,l.byteLength>>>3),k(s);return}case v.StaticBigInt64Array:{let l=te(0,s[i.PayloadLen],L);s.value=new BigInt64Array(l.buffer,l.byteOffset,l.byteLength>>>3);return}case v.BigUint64Array:{let l=x(s[i.Start],s[i.Start]+s[i.PayloadLen]);s.value=new BigUint64Array(l.buffer,l.byteOffset,l.byteLength>>>3),k(s);return}case v.StaticBigUint64Array:{let l=te(0,s[i.PayloadLen],L);s.value=new BigUint64Array(l.buffer,l.byteOffset,l.byteLength>>>3);return}case v.DataView:{let l=x(s[i.Start],s[i.Start]+s[i.PayloadLen]);s.value=new DataView(l.buffer,l.byteOffset,l.byteLength),k(s);return}case v.StaticDataView:{let l=te(0,s[i.PayloadLen],L);s.value=new DataView(l.buffer,l.byteOffset,l.byteLength);return}case v.ExternalPayload:s.value=zt(m(s[i.Start],s[i.Start]+s[i.PayloadLen]),S),k(s);return;case v.StaticExternalPayload:s.value=zt(j(0,s[i.PayloadLen],L),S);return;case v.ProcessSharedBuffer:s.value=hu(Q(ue,Qt,L));return;case v.SharedArrayBuffer:s.value=Su(Q(X,s[i.PayloadLen]>>>2,L));return;case v.BufferReference:s.value=bu(Q(ce,Gn,L));return;case v.Date:ar[0]=s[i.Start],ar[1]=s[i.End],s.value=new Date(Yt[0]);return;case v.Error:s.value=wu(m(s[i.Start],s[i.Start]+s[i.PayloadLen])),k(s);return;case v.Binary:{let l=x(s[i.Start],s[i.Start]+s[i.PayloadLen]);s.value=new Uint8Array(l.buffer,l.byteOffset,l.byteLength)}k(s);return;case v.StaticBinary:s.value=K(0,s[i.PayloadLen],L);return;case v.ArrayBuffer:s.value=J(s[i.Start],s[i.Start]+s[i.PayloadLen]),k(s);return;case v.StaticArrayBuffer:s.value=G(0,s[i.PayloadLen],L);return;case v.Buffer:s.value=w(s[i.Start],s[i.Start]+s[i.PayloadLen]),k(s);return;case v.StaticBuffer:s.value=oe(0,s[i.PayloadLen],L);return}}};Co(ku,Eu);var Vr=Symbol.for("task");var Ru=/^[A-Za-z]:[\\/]/,xu=/^\\\\[^\\/?]+\\[^\\/?]+/,Qn=(e)=>encodeURI(e).replace(/\?/g,"%3F").replace(/#/g,"%23"),Lu=()=>At("node:url")?.pathToFileURL,Pu=(e)=>{let r=e.startsWith("/")?e:`/${e}`;return`file://${Qn(r)}`},Ar=(e)=>{if(Ru.test(e)){let r=e.replace(/\\/g,"/");return`file:///${Qn(r)}`}if(xu.test(e)){let r=e.replace(/^\\\\+/,"").replace(/\\/g,"/");return`file://${Qn(r)}`}try{return new URL(e).href}catch{let r=Lu();return r?r(e).href:Pu(e)}},Ca=(e)=>{if(!Er||!e.startsWith("file://"))return e;let r=e.slice(7),t=r.startsWith("/")?r:`/${r}`;try{return decodeURIComponent(t)}catch{return t}};var ct={Reject:0,Resolve:1},vu=(e)=>{if(e==null)return;if(typeof e==="number"){let t=Math.floor(e);return t>=0?{ms:t,kind:ct.Reject,value:Error("Task timeout")}:void 0}let r=Math.floor(e.time);if(!(r>=0))return;if("default"in e)return{ms:r,kind:ct.Resolve,value:e.default};if(e.maybe===!0)return{ms:r,kind:ct.Resolve,value:void 0};if("error"in e)return{ms:r,kind:ct.Reject,value:e.error};return{ms:r,kind:ct.Reject,value:Error("Task timeout")}},_u=(e,r)=>e.f,Ia=async({list:e,ids:r,names:t,at:n,permission:a})=>{let u=e.map((m)=>Ar(m)),c=new Set(t),S=(await Promise.all(u.map(async(m)=>{let O=await import(Ca(m)),x=Object.entries(O).filter(([M,J])=>J!=null&&typeof J==="object"&&J?.[Vr]===!0).map(([M,J])=>({...J,name:M})),w=Object.entries(O).filter(([M,J])=>c.has(M)&&typeof J==="function").map(([M,J])=>({f:J,id:-1,importedFrom:m,at:-1,name:M,[Vr]:!0}));return[...x,...w]}))).flat(),N=u.length===1&&n.length>0,P=N?new Set(n):null,H=N?u[0]:null;return S.filter((m)=>N?m.importedFrom===H&&P.has(m.at):r.includes(m.id)).sort((m,O)=>m.name.localeCompare(O.name)).map((m)=>({...m,run:_u(m,a),timeout:vu(m.timeout)}))};var Cu={thisIsAHint:0},Iu=(()=>{let e=globalThis,r=typeof e.gc==="function"?()=>e.gc():void 0;if(r){try{delete e.gc}catch{e.gc=void 0}if(e.global)try{delete e.global.gc}catch{e.global.gc=void 0}}return r??(()=>{})})();var{load:Mu,store:Ma}=Atomics,ft=typeof Atomics.wait==="function"?Atomics.wait:void 0,Fa=performance.now.bind(performance),Oa=ft===void 0||typeof SharedArrayBuffer!=="function"?void 0:new Int32Array(new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT)),Na="pause"in Atomics?Atomics.pause:void 0,Xt=globalThis,Fu=Xt.process?.platform==="win32"&&typeof Xt.process?.versions?.node==="string"&&Xt.process?.versions?.bun===void 0&&Xt.Deno===void 0,Ou=(e)=>Fu?1:Number.isFinite(e)?e:1/0,Nu=(e)=>Number.isFinite(e)?Math.min(Math.max(e,0),1):1,Zt=({pauseInNanoseconds:e})=>{let r=e??250;if(!Na||r<=0)return()=>{};return()=>Na(r)},Jn=Zt({}),Da=({at:e,opView:r,pauseInNanoseconds:t,rxStatus:n,txStatus:a,enqueueLock:u,write:c,nativeWaitU32:f,useSharedMemoryWait:S=!0,flushBeforeClaim:N=!1})=>{let P=t===void 0?Jn:Zt({pauseInNanoseconds:t}),H=()=>{if(!c)return!1;let m=c();if(typeof m==="number")return m>0;return m===!0},k=N?()=>{let m=H();return u()||m}:()=>{let m=u();return H()||m};return(m,O,x)=>{let w=Fa()+O/1000;Iu();let M=0;while(!0){if(Mu(r,e)!==m||a[Cu.thisIsAHint]===1)return;if(k())return;if(P(),(M++&63)===0&&Fa()>=w)break}if(k())return;if(Ma(n,0,0),f!==void 0)f(r.buffer,r.byteOffset+e*Int32Array.BYTES_PER_ELEMENT,m>>>0,Ou(x));else if(S&&ft&&r.buffer instanceof SharedArrayBuffer)ft(r,e,m,x??1/0);else if(ft&&Oa)ft(Oa,0,0,Nu(x));Ma(n,0,1)}};var lt=(e)=>e instanceof Error?e.message:String(e),en=(e,r,t)=>{let n=t===void 0?"":`: ${lt(t)}`;throw Error(`KNT_ERROR_PROCESS_GUARD_INSTALL: ${e} ${r}${n}`)},Xn=()=>{let e=$e();if(!e)return;if(e.__knittingTerminationGuard===!0)return;let r=(a)=>{throw Error(`KNT_ERROR_PROCESS_GUARD: ${a} is disabled in worker tasks`)},t=(a)=>{try{Object.defineProperty(e,a,{configurable:!1,writable:!1,value:(...u)=>r(`process.${a}`)})}catch(u){try{e[a]=(...c)=>r(`process.${a}`)}catch(c){en(`process.${a}`,"install failed",[lt(u),lt(c)].join("; "))}}if(typeof e[a]!=="function")en(`process.${a}`,"install verification failed")};t("exit"),t("kill"),t("abort"),t("reallyExit");let n=globalThis;if(n.Deno&&typeof n.Deno.exit==="function"){try{Object.defineProperty(n.Deno,"exit",{configurable:!1,writable:!1,value:(a)=>r("Deno.exit")})}catch(a){try{n.Deno.exit=(u)=>r("Deno.exit")}catch(u){en("Deno.exit","install failed",[lt(a),lt(u)].join("; "))}}if(typeof n.Deno.exit!=="function")en("Deno.exit","install verification failed")}e.__knittingTerminationGuard=!0},Zn=()=>{let e=$e();if(!e||typeof e.on!=="function")return;if(e.__knittingUnhandledRejectionSilencer===!0)return;e.__knittingUnhandledRejectionSilencer=!0,e.on("unhandledRejection",()=>{})};var eo=()=>{let e=globalThis;if(e.__knittingPerformanceNowGuardInstalled===!0)return;e.__knittingPerformanceNowGuardInstalled=!0;let r=globalThis.performance;if(!r||typeof r.now!=="function")return;try{r.now()}catch{}};var ro=(e)=>{let r=e;try{r.sab=void 0,r.lock=void 0,r.returnLock=void 0,r.permission=void 0}catch{}try{delete r.sab}catch{}try{delete r.lock}catch{}try{delete r.returnLock}catch{}try{delete r.permission}catch{}try{Object.freeze(r)}catch{}};var Wa=(e)=>rr(e?.headers)&&rr(e?.lockSector)&&rr(e?.payload)&&rr(e?.payloadSector)&&(e?.textCompat===void 0||Et(e.textCompat)),to=({sab:e,lock:r,returnLock:t})=>{if(!rr(e))throw Error("worker missing transport SAB");if(!Wa(r))throw Error("worker missing lock SABs");if(!Wa(t))throw Error("worker missing return lock SABs")},no=({list:e,ids:r,names:t,listOfFunctions:n})=>{if(n.length>0&&(t===void 0||n.length===t.length))return;if(console.log(e),console.log(r),t!==void 0)console.log(t);throw console.log(n),Error("No imports were found.")};var ao=32,oo=ao-1,Ua=Symbol.for("knitting.abortSignal.poolExhausted");var dt=({sab:e,maxSignals:r})=>{let t=Ye(e),n=new Uint32Array(t.sab,t.byteOffset,t.byteLength/Uint32Array.BYTES_PER_ELEMENT),a=n.length,u=new Uint32Array(a),c=a*ao,f=(()=>{if(!Number.isFinite(r))return c;let w=Math.floor(r);if(w<=0)return c;return Math.min(w,c)})(),S=f+1,N=0,P=0;return{max:f,closeNow:S,getSignal:()=>{if(N>=f)return S;for(let w=0;w<a;w++){let M=(P+w)%a,J=M<<5,_=f-J;if(_<=0)continue;let q=_>=ao?4294967295:(1<<_)-1>>>0,j=(~u[M]&q)>>>0;if(j===0)continue;let te=(j&-j)>>>0;u[M]=(u[M]|te)>>>0,N=N+1|0,P=(M+1)%a,Atomics.and(n,M,~te);let oe=31-Math.clz32(te);return(M<<5)+oe}return S},setSignal:(w)=>{if(w===S)return 0;if(!Number.isInteger(w))return-1;if(w<0||w>=f)return-1;let M=w>>>5,J=1<<(w&oo);return Atomics.or(n,M,J),1},abortAll:()=>{for(let w=0;w<a;w++)Atomics.store(n,w,u[w]);return N},hasAborted:(w)=>{if(w===S)return!0;if(!Number.isInteger(w))return!1;if(w<0||w>=f)return!1;let M=w>>>5,J=1<<(w&oo);return(Atomics.load(n,M)&J)!==0},resetSignal:(w)=>{if(w===S)return!1;if(!Number.isInteger(w))return!1;if(w<0||w>=f)return!1;let M=w>>>5,J=1<<(w&oo);if((u[M]&J)===0)return!1;if(u[M]=(u[M]&~J)>>>0,N>0)N=N-1|0;return P=M,Atomics.and(n,M,~J),!0},inUseCount:()=>N}};class so{#e=!1;constructor(e,r,t){let n=(a)=>(...u)=>{if(this.#e)return;this.#e=!0,r(),a(...u)};e.resolve=n(e.resolve),e.reject=n(e.reject),e.promise.reject=(a)=>{if(this.#e)return;if(a===void 0&&t!==void 0){t();return}e.reject(a)}}}var Du="default",Wu=(e)=>{if(!e||typeof e!=="object")return!1;let r=e;return typeof r.href==="string"&&r.href.length>0&&(r.name===void 0||typeof r.name==="string"&&r.name.length>0)},Uu=(e)=>{try{return Cr.fromMetadata(e),!0}catch{return!1}},io=(e,r=new WeakMap)=>{if(Uu(e))return Cr.fromMetadata(e);if(e===null||typeof e!=="object")return e;let t=r.get(e);if(t!==void 0)return t;if(Array.isArray(e)){let u=[];r.set(e,u);for(let c of e)u.push(io(c,r));return u}let n=Object.getPrototypeOf(e);if(n!==Object.prototype&&n!==null)return e;let a={};r.set(e,a);for(let[u,c]of Object.entries(e))a[u]=io(c,r);return a},Ha=async({bootstrap:e,thread:r,totalNumberOfThread:t})=>{if(e===void 0)return;if(!Wu(e))throw TypeError("worker.bootstrap must include a non-empty href");let n=await import(Ar(e.href)),a=e.name??Du,u=n[a];if(typeof u!=="function"){let f=Object.keys(n).join(", ");throw TypeError(`worker.bootstrap expected export "${a}" from "${e.href}" to be a function. Available exports: ${f||"(none)"}`)}let c=Object.freeze({thread:r,totalNumberOfThread:t,runtime:Oe});await u(io(e.data),c)};var ja=()=>{return},Ka=()=>{};var Hu=(e)=>{let r=globalThis.Deno?.env;if(typeof r?.get==="function")try{return r.get(e)}catch{}try{return $e()?.env?.[e]}catch{return}},ju=Hu("KNITTING_DEBUG"),Ga=new Set((ju??"").split(",").map((e)=>e.trim()).filter((e)=>e.length>0)),$a=Ga.size>0,rn=(e)=>{let r=new Set(Ga);if(e===!0)r.add("*");else if(e!==void 0&&e!==!1){for(let[t,n]of Object.entries(e))if(n===!0)r.add(t)}return r};var $u="__knittingWorkerFatal",tn=(e)=>{let r=String(e?.message??e),t={[$u]:r},n=!1;try{tt?.postMessage?.(t),n=tt!==void 0}catch{}if(!n)try{globalThis.postMessage(t),n=!0}catch{}if(!n){try{console.error(`Worker startup failed: ${r}`)}catch{}if(Rr)try{$e()?.exit?.(1)}catch{}}},zu=(e)=>{let r=(n)=>{let a=qo(n);if(a!==void 0)e(a)};if(tt!==void 0){xo(tt,r);return}globalThis.addEventListener?.("message",(n)=>{r(n?.data)})},nn=async(e)=>{Xn(),Zn(),eo();let{debug:r,sab:t,thread:n,startAt:a,workerOptions:u,lock:c,returnLock:f,abortSignalSAB:S,abortSignalMax:N,payloadConfig:P,bufferReferenceReturn:H,permission:k,notifyOnHostPublish:m,totalNumberOfThread:O,list:x,ids:w,names:M,at:J,steal:_}=e;ro(e),to({sab:t,lock:c,returnLock:f});let q=rn(r),j=q.size>0?await Promise.resolve().then(() => (qa(),Va)).then((Z)=>Z.initDebug({name:`w${n}`,runtime:Oe,namespaces:q})):void 0,te={thisIsAHint:0},oe=Dt({sabObject:{sharedSab:t},isMain:!1,thread:n,startTime:a}),K=Pr({headers:c.headers,headerSlotStrideU32:c.headerSlotStrideU32,LockBoundSector:c.lockSector,payload:c.payload,payloadSector:c.payloadSector,payloadConfig:P,textCompat:c.textCompat,processBoundary:Rr,consumers:_?.consumers,consumerId:_?.consumerId,regionLanes:_?.regionLanes}),ee=Pr({headers:f.headers,headerSlotStrideU32:f.headerSlotStrideU32,LockBoundSector:f.lockSector,payload:f.payload,payloadSector:f.payloadSector,payloadConfig:P,textCompat:f.textCompat,processBoundary:Rr,notifyOnHostPublish:m}),G=u?.timers,C=G?.spinMicroseconds??Math.max(1,O)*50,Q=j!==void 0?Number.POSITIVE_INFINITY:G?.parkMs??Math.max(1,O)*50,ue=(()=>{let Z=typeof G?.pauseNanoseconds==="number"?Zt({pauseInNanoseconds:G.pauseNanoseconds}):Jn;return()=>Z()})(),{opView:X,rxStatus:ce,txStatus:s}=oe,L=Atomics.store,g=Atomics.load,B=ja();await Ha({bootstrap:u?.bootstrap,thread:n,totalNumberOfThread:O}),j?.envPhase("bootstrap");let l=await Ia({list:x,isWorker:!0,ids:w,names:M,at:J,permission:k});j?.envPhase("tasks"),j?.log("imports",`${l.length} task(s) from ${x.map((Z)=>Z.split(/[\\/]/).pop()||Z).join(", ")}`),no({list:x,ids:w,names:M,listOfFunctions:l});let p=S?dt({sab:S,maxSignals:N}):void 0,{enqueueLock:h,serviceBatchImmediate:z,hasCompleted:b,writeBatch:y,hasPending:D,getAwaiting:ne,drainReturnReleases:re,releaseReturnedBufferReference:me}=Xo({listOfFunctions:l,workerOptions:u,lock:K,returnLock:ee,borrowReturnedBufferReferences:H==="borrow",hasAborted:p?.hasAborted,stealing:_!==void 0});zu(me),L(ce,0,1);let ge=64,ve=Da({opView:X,at:0,rxStatus:ce,txStatus:s,pauseInNanoseconds:G?.pauseNanoseconds,enqueueLock:h,write:()=>b()?y(ge):0,flushBeforeClaim:_!==void 0,nativeWaitU32:B,useSharedMemoryWait:!(Rr&&Oe==="node"&&B===void 0)}),Ne=Nr(),fe=Ne.port1,he=Ne.port2,be=(Z)=>he.postMessage(Z),de=!1,De=0,xe=0,He=10,We=g(X,0),Le=()=>{if(de)return;de=!0,be(null)},je=(Z)=>{if(de)return;if(de=!0,Z<=0&&typeof et==="function"){et(I);return}if(Z<=0){be(null);return}if(typeof setTimeout==="function"){setTimeout(I,Z);return}be(null)},qe=j?.enabled("signals")===!0,er=b,sr=D,mr=ne,o=re,E=ue,T=qe?()=>{let Z=h();if(Z)j.log("signals","work from=host");return Z}:h,d=qe?(Z)=>{let we=y(Z);if(we>0)j.log("signals",`result count=${we}`);return we}:y,W=qe?()=>{let Z=z();if(Z>0)j.log("signals",`run count=${Z}`);return Z}:z,V=qe?(Z,we,ke)=>{j.log("signals",`idle token=${Z}`),ve(Z,we,ke)}:ve,Y=_!==void 0,I=()=>{de=!1;let Z=!0,we=0;while(!0){if(Y){if(Z=!1,er()){if(d(ge)>0)Z=!0}Z=T()||Z}else if(Z=T(),er()){if(d(ge)>0)Z=!0}if(o(),sr()){if(W()>0)Z=!0}if((we=mr())>0){if(we!==xe)De=0;xe=we,De++;let ke=Math.min(He,Math.max(0,De-1));je(ke);return}if(De=xe=0,!Z){if(s[te.thisIsAHint]===1){E();continue}V(We,C,Q),We=g(X,0)}}},se=fe;if(typeof se.on==="function")se.on("message",I);else se.onmessage=I;se.start?.(),he.start?.(),j?.log("lifecycle",`ready: ${l.length} task(s) on thread ${n}/${O}, entering dispatch loop`),Le()},Yu=()=>{let e=globalThis.WorkerGlobalScope;if(typeof e==="function")try{if(globalThis instanceof e)return!0}catch{}if(Er&&typeof globalThis.self<"u")return!0;return!1},Qa=(e)=>{if(!e||typeof e!=="object")return!1;let r=e;return rr(r.headers)&&rr(r.lockSector)&&rr(r.payload)&&rr(r.payloadSector)&&(r.textCompat===void 0||Et(r.textCompat))},yt=(e)=>{if(!e||typeof e!=="object")return!1;let r=e;return rr(r.sab)&&Array.isArray(r.list)&&Array.isArray(r.ids)&&Array.isArray(r.names)&&Array.isArray(r.at)&&typeof r.thread==="number"&&typeof r.totalNumberOfThread==="number"&&typeof r.startAt==="number"&&(r.abortSignalSAB===void 0||rr(r.abortSignalSAB))&&Qa(r.lock)&&Qa(r.returnLock)},Vu=()=>{let e=globalThis,r=(t)=>{if(!yt(t))return;nn(t).catch(tn)};if(typeof e.addEventListener==="function"&&typeof e.removeEventListener==="function"){let t=(n)=>{let a=n?.data;if(!yt(a))return;try{e.removeEventListener?.("message",t)}catch{}r(a)};e.addEventListener("message",t);return}e.onmessage=(t)=>{let n=t?.data;if(!yt(n))return;e.onmessage=null,r(n)}};if(xr===!1&&yt(rt))nn(rt).catch(tn);else if(Rr)Ka({isWorkerBootPayload:yt,reportWorkerStartupFatal:tn,startWorker:(e)=>{nn(e).catch(tn)}});else if(Yu())Vu();var es=((e)=>()=>e++)(0),rs=(e,r)=>{let t=2166136261;for(let n=0;n<e.length;n++)t=Math.imul(t^e.charCodeAt(n),16777619);return Math.imul(t^r,16777619)>>>0},qu=["/src/common/task-source.ts","/src/common/task-source.js","\\src\\common\\task-source.ts","\\src\\common\\task-source.js","/src/api.ts","/src/api.js","\\src\\api.ts","\\src\\api.js"],Ja=new Set(["collectStackFrames","resolveCallerHref","getCallerFilePath","buildTaskDefinition","buildTaskDefinitionFromCaller","task","importTask"]),Qu=(e)=>e!==void 0,Ju=(e)=>qu.some((r)=>e.includes(r)),ts=(e)=>e.startsWith("node:")||e.startsWith("native:")||e.startsWith("bun:")||e.startsWith("internal/"),Xu=(e,r)=>e!==void 0&&Ja.has(e)||r!==void 0&&Ja.has(r),Zu=()=>{let e=Error,r=e.prepareStackTrace;try{e.prepareStackTrace=(a,u)=>u;let t=Error().stack;if(!Array.isArray(t))return[];return t.map((a)=>{try{let u=a?.getFileName?.();if(typeof u!=="string"||u.length===0)return;return{file:u,functionName:a?.getFunctionName?.()??void 0,methodName:a?.getMethodName?.()??void 0}}catch{return}}).filter(Qu)}finally{e.prepareStackTrace=r}},Xa=(e)=>ts(e.file)||Ju(e.file)||Xu(e.functionName,e.methodName),co,ns=(e)=>{co=typeof e==="string"&&e.length>0?Ar(e):void 0};var os=(e)=>{if(co!==void 0)return co;let r=Zu(),t=r[e],n=(t&&!Xa(t)?t.file:void 0)??r.find((a)=>!Xa(a))?.file??r.find((a)=>!ts(a.file))?.file;if(!n)throw Error("Unable to determine caller file. This runtime exposes no stack traces (e.g. Andromeda); call setModuleUrl(import.meta.url) at the top of the module that defines your tasks before creating a pool.");return Ar(n)},Za=new Map,as=(e=3)=>os(e),fo=(e=3)=>{let r=os(e),t=Za.get(r)??0;return Za.set(r,t+1),[r,t]};var ss=(e,r)=>{let t=e;return t.reject=r,t},on=()=>{let e=Promise.withResolvers;if(typeof e==="function"){let a=e.call(Promise);return{promise:ss(a.promise,a.reject),resolve:a.resolve,reject:a.reject}}let r,t;return{promise:ss(new Promise((a,u)=>{r=a,t=u}),t),resolve:r,reject:t}};var ec=31,rc=134217727,tc=5,nc=65535,oc=65535,ac=16,sc=1;var ic=performance.now.bind(performance);function lo({max:e,lock:r,returnLock:t,extraReturnLocks:n,releaseBufferReferenceReturn:a,abortSignals:u,now:c}){let f=(y)=>{throw"UNREACHABLE FROM PLACE HOLDER (main)"},S=(y)=>{let D=Ko();return D[i.ID]=y,D[i.FunctionID]=0,D.value=null,D.resolve=f,D.reject=f,D},N=e??10,P=Array.from({length:N},(y,D)=>S(D)),H=Array.from({length:N},(y,D)=>D),k=(y)=>H.push(y),m=()=>H.pop(),O=(y)=>P.push(y),{publish:x,flushPending:w,hasPendingFrames:M,getPendingFrameCount:J,getPendingPromiseCount:_,resetPendingState:q}=r,j=0,te=u?.resetSignal,oe=c??ic,K=(y)=>{j=j-1|0,Sn(y),Ur(y),y.value=null,y.resolve=f,y.reject=f,k(y[i.ID])},ee=[t,...n??[]].map((y)=>y.resolveHost({queue:P,activeRejectPlaceholder:f,onResolved:K})),G=[t,...n??[]].map((y)=>typeof y.waitForHostChange==="function"?y.waitForHostChange:()=>{return}),C=[t,...n??[]].map((y)=>typeof y.setHostWaiterArmed==="function"?y.setHostWaiterArmed:(D)=>{}),Q=Array(ee.length);if(a!==void 0)Q[0]=a;let ue=(y)=>{let D=ee[y],ne=Q[y];return ne===void 0?D():Tn(ne,D)},X=ee.length===1?a===void 0?ee[0]:()=>Tn(a,ee[0]):()=>{let y=0;for(let D=0;D<ee.length;D++)y=y+ue(D)|0;return y},ce=new Uint8Array(G.length),s,L=0,g=(y)=>{for(let D of C)D(y)},B=(y,D)=>{s=y,g(!0);let ne=!0;for(let re=0;re<G.length;re++){if(ce[re]!==0)continue;let me;try{me=G[re](D)}catch{me=void 0}if(me===void 0){ne=!1;break}ce[re]=1;let ge=L,ve=()=>{if(ce[re]===0)return;if(ce[re]=0,C[re](!1),ge!==L)return;s?.()};if(!me.async)ve();else Promise.resolve(me.value).then(ve,ve)}if(!ne)s=void 0,g(!1),L=L+1|0;return ne},l=()=>(j-_()|0)>0,p=()=>J()===0&&!l(),h=(y)=>{for(let D=0;D<P.length;D++){let ne=P[D];if(ne.reject!==f){try{ne.reject(y)}catch{}Ur(ne),ne.resolve=f,ne.reject=f,P[D]=S(D)}}q(),j=0},z=()=>w(),b=(y)=>x(y);return{rejectAll:h,hasPendingFrames:M,txIdle:p,completeFrame:X,waitForCompletion:B,setCompletionWaiterArmed:g,setReturnHooks:(y,D)=>{if(!Number.isInteger(y)||y<0||y>=Q.length)throw RangeError(`return lane ${y} out of range`);Q[y]=D},enqueue:(y,D,ne)=>{let re=D!==void 0,me=y&nc,ge=ne!==void 0&&u!==void 0;return(ve)=>{if(j===P.length){let be=j+32,de=P.length;while(be>de)O(S(de)),k(de),de++}let Ne=m(),fe=P[Ne],he=on();if(fe[i.FunctionID]=me,ge){let be=u.getSignal();if(be===u.closeNow)return Promise.reject(Ua);new so(he,()=>te(be),()=>{u.setSignal(be)});let de=(be+sc&oc)>>>0;fe[i.FunctionID]=(de<<ac|me)>>>0}if(fe.value=ve,fe[i.ID]=Ne,fe.resolve=he.resolve,fe.reject=he.reject,re)fe[i.slotBuffer]=(fe[i.slotBuffer]&ec|(oe()>>>0&rc)<<tc>>>0)>>>0;return x(fe),j=j+1|0,he.promise}},flushToWorker:z,enqueueKnown:b,settlePromisePayload:(y,D,ne)=>{if(y.reject===f)return!1;if(D){try{y.reject(ne)}catch{}return Sn(y),Ur(y),y.value=null,y.resolve=f,y.reject=f,j=j-1|0,k(y[i.ID]),!1}return y.value=ne,b(y)}}}var is=()=>{return},us=()=>{return},cs=()=>{},Ir=()=>{throw Error("process workers are unavailable in the browser build")},fs=Ir,ls=Ir,an=Ir,ds=Ir,ys=Ir,sn=Ir,ps=Ir,ms=Ir;var gs=(e)=>e.split("=",1)[0],hs=new Set(["--permission","--experimental-permission","--allow-fs-read","--allow-fs-write","--allow-worker","--allow-child-process","--allow-net","--allow-addons","--allow-ffi","--allow-wasi"]),uc=new Set(["--experimental-ffi","--experimental-transform-types","--expose-gc","--no-warnings",...hs]),cc=(e)=>uc.has(gs(e)),fc=(e)=>hs.has(gs(e)),po=(e)=>{if(!e||e.length===0)return;let r=e.filter(cc);if(r.length===0)return;let t=new Set,n=[];for(let a of r){if(t.has(a))continue;t.add(a),n.push(a)}return n},bs=(e)=>{let r=po(e);if(!r||r.length===0)return;let t=r.filter((n)=>!fc(n));return t.length>0?t:void 0},lc=(e)=>{if(e===null||typeof e!=="object")return!1;let r=Object.getPrototypeOf(e);return r===Object.prototype||r===null},yo=(e,r=new WeakMap)=>{if(e instanceof Cr)return e.toMetadata();if(e===null||typeof e!=="object")return e;let t=r.get(e);if(t!==void 0)return t;if(Array.isArray(e)){let a=[];r.set(e,a);for(let u of e)a.push(yo(u,r));return a}if(!lc(e))return e;let n={};r.set(e,n);for(let[a,u]of Object.entries(e))n[a]=yo(u,r);return n},Ss=(e)=>{let r=e.bootstrap;if(r===void 0||r.data===void 0)return e;return{...e,bootstrap:{...r,data:yo(r.data)}}},As=(e)=>{try{return e.unref?.(),Promise.resolve(e.terminate()).then(()=>{},()=>{})}catch{return Promise.resolve()}};var Bs=Oe==="deno"||Oe==="node"?et:void 0,ws=128,dc=1,un=({signalBox:{opView:e,txStatus:r,rxStatus:t},queue:{completeFrame:n,hasPendingFrames:a,flushToWorker:u,txIdle:c,waitForCompletion:f,setCompletionWaiterArmed:S},channelHandler:N,dispatcherOptions:P,notifySignal:H,crossProcess:k})=>{let{load:m,store:O,notify:x}=Atomics,w=e.buffer instanceof SharedArrayBuffer,M=H??(()=>{if(w)x(e,0,1)}),J=()=>N.notify(),_=k!==!0&&(P?.doorbell??!0)&&(Oe==="bun"||Oe==="node")&&typeof Atomics.waitAsync==="function",q=_,j=!1,te=0,oe=1000,K=0,ee=P?.stallFreeLoops,G=ee!==void 0?Math.max(0,ee|0):_?dc:ws,C=Math.max(0,(P?.maxBackoffMs??10)|0),Q,ue=!1,X=()=>{if(!j)return;te=te+1|0,j=!1,S(!1)},ce=()=>{if(!q||j===!0){if(!q)J();return}let g=te+1|0;te=g,j=!0;let B=!1,l=()=>{if(!j||te!==g||B)return;B=!0,j=!1,te=te+1|0,S(!1),J()},p=!1;try{p=f(l,oe)}catch{p=!1}if(!p){if(q=!1,ee===void 0)G=ws;j=!1,te=te+1|0,S(!1),J()}},s=()=>{if(ue){s.rerun=!0;return}if(X(),c()){s.isRunning=!1;return}if(ue=!0,Q!==void 0)clearTimeout(Q),Q=void 0;do{if(s.rerun=!1,r[0]=1,m(t,0)===0)O(e,0,1),M();let g=!1,B=!0;while(B){if(B=!1,n()>0)B=!0,g=!0;while(a()){if(!u())break;B=!0}}if(r[0]=0,!c()){if(g||a())K=0;else K=K+1|0;ue=!1,L();return}K=0}while(s.rerun);s.isRunning=!1,ue=!1};s.isRunning=!1,s.rerun=!1;let L=()=>{if(K<=G){J();return}if(q){s.isRunning=!1,ce();return}if(Q!==void 0)return;let g=K-G-1|0;if(g<0)g=0;else if(g>C)g=C;s.isRunning=!1,Q=setTimeout(()=>{if(Q=void 0,!s.isRunning)s.isRunning=!0,s()},g)};return{check:s}};class qr{channel;port1;port2;#e;#r;constructor(e="auto"){if(e==="auto"&&Bs!==void 0){let n=Bs,a=()=>{this.#e?.()};this.#r=()=>{n(a)};return}let r=Nr(),t=r.port2;this.channel=r,this.port1=r.port1,this.port2=t,this.#r=()=>{t.postMessage(null)}}notify(){this.#r()}open(e){this.#e=e;let r=this.port1;if(r===void 0)return;if(typeof r.on==="function")r.on("message",e);else r.onmessage=e;this.port1?.start?.(),this.port2?.start?.()}close(){if(this.#e=void 0,this.port1===void 0||this.port2===void 0)return;this.port1.onmessage=null,this.port2.onmessage=null,this.port1.close?.(),this.port2.close?.()}}var Ts=()=>{throw Error("compiled workers are unavailable in the browser build")};var ks="__knittingWorkerFatal",yc=(e)=>!!e&&typeof e==="object"&&typeof e[ks]==="string",pc=1,mc=258,Es=(e)=>{if(!Number.isFinite(e))return;let r=Math.floor(e);return r>0?r:void 0},Rs=(e)=>Es(e)??mc,mo=(e)=>Math.max(1,Math.ceil(e/32))*Uint32Array.BYTES_PER_ELEMENT,gc=(e)=>{let r=e?.timers?.parkMs??pc;if(e===void 0)return{timers:{parkMs:r}};return{...e,timers:{...e.timers,parkMs:r}}},xs=(e)=>({...e,mode:"fixed",payloadInitialBytes:e.payloadMaxByteLength}),hc=(e)=>{for(let r=Te.slots;r>=1;r>>=1)if(Te.slots/r>=e+1)return r;throw RangeError(`${e} stealing workers need more than ${Te.slots} lanes`)},Ls=Te.slots-1,Ps=({threads:e,payload:r,regionLanes:t,abortSignalCapacity:n,usesAbortSignal:a,processWorker:u})=>{let c=dr({options:r}),f=u===void 0?c:xs(c),S=()=>f.mode==="growable"?ze(f.payloadInitialBytes,f.payloadMaxByteLength):ze(f.payloadInitialBytes),N=()=>_n({signalBytes:0,abortBytes:0,lockSectorBytes:jr,headerSlotStrideU32:yr,slotCount:Te.slots,headerLayout:"split"}),P=(te,oe)=>({...te,payload:oe,textCompat:Dr({headers:te.headers,payload:oe})}),H=hc(e),k=t===void 0?H:Math.min(Math.max(1,t|0),H),m=Rs(n),O=u===void 0?void 0:ls({threads:e,signalBytes:u.signalBytes,abortBytes:a===!0?mo(m):0,abortSignalMax:a===!0?m:void 0,payloadBytes:f.payloadMaxByteLength,sharedMemory:u.sharedMemory}),x=O===void 0?(()=>{let te=N();return P(te.lock,S())})():P(O.workers[0].controlLayout.lock,O.workers[0].lockPayload),w=Pr({headers:x.headers,headerSlotStrideU32:x.headerSlotStrideU32,LockBoundSector:x.lockSector,payload:x.payload,payloadSector:x.payloadSector,payloadConfig:f,textCompat:x.textCompat,consumers:e,regionLanes:k,processBoundary:O!==void 0}),M=[],J=[];for(let te=0;te<e;te++){let oe=O===void 0?P(N().returnLock,S()):P(O.workers[te].controlLayout.returnLock,O.workers[te].returnPayload);M.push(oe),J.push(Pr({headers:oe.headers,headerSlotStrideU32:oe.headerSlotStrideU32,LockBoundSector:oe.lockSector,payload:oe.payload,payloadSector:oe.payloadSector,payloadConfig:f,textCompat:oe.textCompat,processBoundary:O!==void 0}))}let _=a===!0?O?.workers[0]?.controlLayout.abortSignals??ze(mo(m)):void 0,q=_===void 0?void 0:dt({sab:_,maxSignals:m}),j=lo({lock:w,returnLock:J[0],extraReturnLocks:J.slice(1),abortSignals:q});return{submitBuffers:x,returnBuffers:M,hostSubmitLock:w,hostReturnLocks:J,sharedQueue:j,regionLanes:k,processMemory:O,abortSignalSAB:_,abortSignalMax:O?.abortSignalMax??(_===void 0?void 0:m)}},vs=({list:e,ids:r,names:t,sab:n,thread:a,debug:u,hostDebug:c,totalNumberOfThread:f,source:S,at:N,workerOptions:P,workerExecArgv:H,permission:k,host:m,payload:O,bufferReferenceReturn:x,abortSignalCapacity:w,usesAbortSignal:M,sharedChannelHandler:J,stealPool:_})=>{if(P?.runtime==="compiled")return Ts({list:e,names:t,workerOptions:P,hostDebug:c,abortSignalCapacity:w,usesAbortSignal:M});let q=new URL(import.meta.url),j=Ro,te=Ss(gc(P)),oe=te.runtime==="process",K=oe?sn(te):void 0,ee=oe?ds(te):void 0,G=oe?an(te):void 0;if(!oe&&typeof j!=="function")throw Error("Worker is not available in this runtime");if(fn&&typeof SharedArrayBuffer!=="function")throw Error("SharedArrayBuffer is unavailable: serve the page cross-origin isolated (Cross-Origin-Opener-Policy: same-origin, Cross-Origin-Embedder-Policy: require-corp).");let C=j,Q=Es,ue=dr({options:O}),X=oe?xs(ue):ue,ce=Rs(w),s=Q(n?.size),L=n?.sharedSab;if(oe&&L!=null)throw Error("process worker runtime cannot use an external signal buffer");let g=Math.max(ut,s??ut),B=_===void 0&&M===!0?mo(ce):0,l=_?.processMemory,p=!oe?void 0:l===void 0?fs({signalBytes:g,abortBytes:B,payloadBytes:X.payloadMaxByteLength,thread:a,sharedMemory:G}):l.workers[a]??(()=>{throw RangeError(`stealing process pool has no shared-memory slice for worker ${a}`)})(),h=p===void 0?is(u):void 0,z=h?.createBuffer??Fr,b=h?.createBuffer,y=()=>b?b(X.payloadMaxByteLength):X.mode==="growable"?ze(X.payloadInitialBytes,X.payloadMaxByteLength):ze(X.payloadInitialBytes),D=()=>_n({signalBytes:g,abortBytes:B,lockSectorBytes:jr,headerSlotStrideU32:yr,slotCount:Te.slots,headerLayout:"split",createBuffer:z}),ne=p?.controlLayout??D(),re=p?.lockPayload??y(),me=_?.submitBuffers??{...ne.lock,payload:re,textCompat:Dr({headers:ne.lock.headers,payload:re})},ge=p?.returnPayload??y(),ve=_?.returnBuffers??{...ne.returnLock,payload:ge,textCompat:Dr({headers:ne.returnLock.headers,payload:ge})},Ne=_?.hostSubmitLock??Pr({headers:me.headers,headerSlotStrideU32:me.headerSlotStrideU32,LockBoundSector:me.lockSector,payload:me.payload,payloadSector:me.payloadSector,payloadConfig:X,textCompat:me.textCompat,processBoundary:oe}),fe=_?.hostReturnLock??Pr({headers:ve.headers,headerSlotStrideU32:ve.headerSlotStrideU32,LockBoundSector:ve.lockSector,payload:ve.payload,payloadSector:ve.payloadSector,payloadConfig:X,textCompat:ve.textCompat,processBoundary:oe}),he=_?.abortSignalSAB??(M===!0?ne.abortSignals:void 0),be=he&&_===void 0?dt({sab:he,maxSignals:ce}):void 0,de=Dt({sabObject:L==null?{size:s,sharedSab:ne.signals}:n,isMain:!0,thread:a}),De=de,xe=us({processRuntime:K,signal:De.opView}),He=x==="borrow"&&typeof WeakRef==="function"?new Map:void 0,We=(ye)=>{He?.delete(ye),U?.postMessage?.(Qo(ye))},Le=(ye)=>{if(He===void 0)return;for(let[Be,Ke]of He)try{let or=Ke.ref.deref();if(or!==void 0){or.revokeBorrow(ye);continue}let A=Ke.aliasBuffer?.deref();if(A!==void 0&&Jo(Ke.runtime,A)&&ye)We(Be)}catch{}He.clear()},je=x==="borrow"?{release:We,track:(ye,Be,Ke)=>{if(He===void 0)return;let or=He.get(Be);if(or!==void 0){if(Ke!==void 0)or.aliasBuffer=new WeakRef(Ke);return}He.set(Be,{ref:new WeakRef(ye),aliasBuffer:Ke===void 0?void 0:new WeakRef(Ke),runtime:ye.runtime})}}:void 0,qe=_?.sharedQueue??lo({lock:Ne,returnLock:fe,abortSignals:be,releaseBufferReferenceReturn:je});if(_!==void 0)_.sharedQueue.setReturnHooks(_.consumerId,je);let{enqueue:er,rejectAll:sr,txIdle:mr}=qe,o=De.opView,E=Atomics.add,T=Atomics.load,d=Atomics.notify,W=o.buffer instanceof SharedArrayBuffer,V=xe??(W?()=>d(o,0,1):void 0),Y=()=>{if(T(De.rxStatus,0)===0)E(o,0,1),V?.()},I=()=>{},se=()=>I(),Z,we=J===void 0&&_===void 0,ke=J??new qr,{check:R}=_!==void 0?{check:void 0}:un({signalBox:De,queue:qe,channelHandler:ke,dispatcherOptions:m,notifySignal:xe,crossProcess:oe});if(we&&R!==void 0)ke.open(R),Z=ke,I=()=>{if(R.isRunning===!0)return;R.isRunning=!0,Promise.resolve().then(R),Y()};let U,le=S??q;c?.(`worker thread=${a} mode=${oe?"process":pn?"worker_threads":"worker"}${K?` runtime=${K}`:""} url=${String(le)}`);let Pe={sab:de.sab,abortSignalSAB:he,abortSignalMax:_?.abortSignalMax??(M===!0?ce:void 0),list:e,ids:r,names:t,at:N,thread:a,debug:u,workerOptions:te,totalNumberOfThread:f,startAt:De.startAt,lock:me,returnLock:ve,payloadConfig:X,bufferReferenceReturn:x,permission:k,notifyOnHostPublish:!oe&&m?.doorbell!==!1&&(Oe==="bun"||Oe==="node")&&typeof Atomics.waitAsync==="function",steal:_===void 0?void 0:{consumers:_.consumers,consumerId:_.consumerId,regionLanes:_.regionLanes}},Ae={type:"module",workerData:Pe},_e=H&&H.length>0?{...Ae,execArgv:H}:Ae;if(p!==void 0)U=ps({workerUrl:le,bootPayload:ms(Pe,p),memory:p,processRuntime:K,commandPrefix:ee,permission:k});else if(pn)try{U=new C(le,_e)}catch(ye){if(ye?.code==="ERR_WORKER_INVALID_EXEC_ARGV"){let Be=po(_e.execArgv);if(Be&&Be.length>0)try{U=new C(le,{...Ae,execArgv:Be})}catch(Ke){if(Ke?.code==="ERR_WORKER_INVALID_EXEC_ARGV"){let or=bs(Be);if(or&&or.length>0)try{U=new C(le,{...Ae,execArgv:or})}catch{U=new C(le,Ae)}else U=new C(le,Ae)}else throw Ke}else U=new C(le,Ae)}else throw ye}else U=new C(le,{type:"module"}),U.postMessage?.(Pe);let Qe,tr=()=>{_?.hostSubmitLock.deactivateStealConsumer(_.consumerId)},wr=()=>{try{U.unref?.(),Promise.resolve(U.terminate()).catch(()=>{}).finally(tr)}catch{tr()}},Tr=(ye,Be=!1)=>{if(Qe)return;Qe=ye,Le(Be),sr(ye),Z?.close()},Ce=(ye)=>{if(!yc(ye))return;Tr(`Worker startup failed: ${ye[ks]}`,!0),wr()},ir=(ye)=>{let Be=String(ye?.message??ye);Tr(`Worker crashed: ${Be}`),wr()},nr=U;if(typeof nr.on==="function")nr.on("message",Ce),nr.on("error",ir),nr.on("exit",(ye)=>{if(tr(),Qe!==void 0)return;Tr(`Worker exited with code ${typeof ye==="number"?ye:-1}`)});else{let ye=U;if(typeof ye.addEventListener==="function")ye.addEventListener("message",(Be)=>{Ce(Be?.data)}),ye.addEventListener("error",(Be)=>{ir(Be?.error??Be?.message??Be)});else ye.onmessage=(Be)=>{Ce(Be?.data)},ye.onerror=(Be)=>{ir(Be)}}return Ne.setPromiseHandler((ye,Be,Ke)=>{qe.settlePromisePayload(ye,Be,Ke),se()}),{txIdle:mr,call:({fnNumber:ye,timeout:Be,abortSignal:Ke})=>{let or=er(ye,Be,Ke);return(A)=>{let F=or(A);return se(),F}},kills:async()=>{Tr("Thread closed",!0);let ye=As(U);if(p!==void 0)await ye;cs(p)},lock:Ne,processSharedMemoryBackings:h?.backings,dispatcherCheck:R,laneWake:J!==void 0||_!==void 0?Y:void 0,bindSend:J!==void 0||_!==void 0?(ye)=>void(I=ye):void 0}};var _s=()=>{return},Cs=()=>[],Is=()=>{throw Error("process workers are unavailable in the browser build")},Ms=Is,Fs=Is;var Os=(e,r,t)=>{switch(t??"roundRobin"){case"roundRobin":case"robinRound":return bc(e)(r)(r.length);case"firstIdle":return Sc(e)(r)(r.length);case"randomLane":return Ac(e)(r)(r.length);case"firstIdleOrRandom":return Bc(e)(r)(r.length)}throw Error(`Unknown balancer: ${t}`)},go=({contexts:e,balancer:r,handlers:t,inlinerGate:n})=>{let a=typeof r==="object"&&r!=null?r.strategy:r;if(e.length<2)throw Error(e.length===0?"No threads available.":"Cannot rotate with a single thread.");if(t.length===0)throw Error("No handlers provided.");let u=Os(e,t,a);if(!n)return u;let c=n.index|0,f=Number.isFinite(n.threshold)?Math.max(1,Math.floor(n.threshold)):1;if(f<=1||c<0||c>=t.length)return u;let S=t.length-1;if(S<=0)return u;let N=Array(S),P=Array(S);for(let x=0,w=0;x<t.length;x+=1){if(x===c)continue;N[w]=t[x],P[w]=e[x],w+=1}let H=Os(P,N,a),k=0,m=(x)=>(k-=1,x),O=(x)=>{throw k-=1,x};return(x)=>{k+=1;let w=k>=f?u:H;try{return w(x).then(m,O)}catch(M){throw k-=1,M}}};function bc(e){return(r)=>(t)=>{let n=Math.min(t,r.length);if(n<=1)return(u)=>r[0](u);let a=0;return(u)=>{let c=a;if(a+=1,a===n)a=0;return r[c](u)}}}function Sc(e){let r=e.map((t)=>t.txIdle);return(t)=>(n)=>{let a=Math.min(n,t.length);if(a<=1)return(c)=>t[0](c);let u=0;return(c)=>{for(let S=0;S<a;S+=1)if(r[S]())return t[S](c);let f=u;if(u+=1,u===a)u=0;return t[f](c)}}}var Ac=(e)=>(r)=>(t)=>{let n=Math.min(t,r.length);if(n<=1)return(a)=>r[0](a);return(a)=>{let u=Math.random()*n|0;return r[u](a)}};function Bc(e){let r=e.map((t)=>t.txIdle);return(t)=>(n)=>{let a=Math.min(n,t.length);if(a<=1)return(u)=>t[0](u);return(u)=>{for(let f=0;f<a;f+=1)if(r[f]())return t[f](u);let c=Math.random()*a|0;return t[c](u)}}}var Br={Free:-1,Pending:0},Qr={Reject:0,Resolve:1},wc=(e)=>{if(e==null)return;if(typeof e==="number")return e>=0?{ms:e,kind:Qr.Reject,value:Error("Task timeout")}:void 0;let r=e.time;if(!(r>=0))return;if("default"in e)return{ms:r,kind:Qr.Resolve,value:e.default};if(e.maybe===!0)return{ms:r,kind:Qr.Resolve,value:void 0};if("error"in e)return{ms:r,kind:Qr.Reject,value:e.error};return{ms:r,kind:Qr.Reject,value:Error("Task timeout")}},Tc=(e,r)=>new Promise((t,n)=>{let a=!1,u=setTimeout(()=>{if(a)return;if(a=!0,r.kind===Qr.Resolve)t(r.value);else n(r.value)},r.ms);e.then((c)=>{if(a)return;a=!0,clearTimeout(u),t(c)},(c)=>{if(a)return;a=!0,clearTimeout(u),n(c)})}),kc=(()=>({hasAborted:()=>!1,now:()=>performance.now()}))(),Ec=(e,r,t=!1)=>{let n=wc(r),a=t?(u)=>e(u,kc):e;if(!n)return a;return(u)=>{let c=a(u);return c instanceof Promise?Tc(c,n):c}},Ns=({tasks:e,genTaskID:r,batchSize:t})=>{let a=(Array.isArray(e)?e:Object.values(e).sort((g,B)=>g.name.localeCompare(B.name))).map((g)=>{if(g.imported===!0)return()=>{throw Error("Imported task cannot run on the host inline lane")};return Ec(g.f,g.timeout,g.abortSignal!==void 0)}),u=16,c=new Int32Array(16),f=new Int8Array(16).fill(Br.Free),S=Array(16),N=Array(16).fill(-1),P=Array(16),H=Array(16),k=16;for(let g=0;g<16;g++)H[g]=15-g;let m=new cr(16),O=0,x=!1,w=!1,M=Number.isFinite(t)?Math.max(1,Math.floor(t??1)):Number.POSITIVE_INFINITY,J=Nr(),_=J.port1,q=J.port2,j=(g)=>q.postMessage(g),te=()=>m.isEmpty===!1,oe=typeof queueMicrotask==="function"?queueMicrotask:(g)=>Promise.resolve().then(g),K=()=>{if(O===0||x)return;x=!0,j(null)},ee=()=>{if(O===0||x||w)return;w=!0,oe(ce)},G=(g)=>{m.push(g),ee()},C=(g,B)=>{if(f[g]!==Br.Pending||N[g]!==B)return;G(g)},Q=(g,B,l,p)=>{if(f[g]!==Br.Pending||N[g]!==B)return;let h=P[g];if(h)if(l)h.reject(p);else h.resolve(p);s(g)};function ue(){if(k>0)return H[--k];let g=c.length,B=g<<1,l=new Int32Array(B);l.set(c),c=l;let p=new Int8Array(B);p.fill(Br.Free),p.set(f),f=p,S.length=B,N.length=B,N.fill(-1,g),P.length=B;for(let h=B-1;h>=g;--h)H[k++]=h;return H[--k]}function X(g=!1){let B=0;while(B<M){let l=m.shiftNoClear();if(l===void 0)break;let p=l|0;if(f[p]!==Br.Pending)continue;let h=N[p];try{let z=S[p],b=c[p],y=a[b](z);if(!(y instanceof Promise)){Q(p,h,!1,y),B++;continue}y.then((D)=>Q(p,h,!1,D),(D)=>Q(p,h,!0,D)),B++}catch(z){Q(p,h,!0,z),B++}}if(te()){if(g)K();else j(null);return}if(!g)x=!1}function ce(){if(!w)return;X(!0),w=!1}function s(g){if(O--,f[g]=Br.Free,c[g]=0,N[g]=-1,S[g]=void 0,P[g]=void 0,H[k++]=g,O===0)x=!1}let L=({fnNumber:g})=>(B)=>{let l=r(),p=on(),h=ue();if(N[h]=l,S[h]=B,c[h]=g|0,P[h]=p,f[h]=Br.Pending,O++,B instanceof Promise)B.then((z)=>{if(N[h]!==l)return;S[h]=z,C(h,l)},(z)=>Q(h,l,!0,z));else G(h);return p.promise};return _.onmessage=()=>X(!1),{kills:async()=>{for(let g=0;g<f.length;g++){if(f[g]!==Br.Pending)continue;try{P[g]?.reject("Thread closed")}catch{}}_.onmessage=null,_.close?.(),q.onmessage=null,q.close?.(),m.clear(),k=0,H.length=0,S.fill(void 0),N.fill(-1),P.fill(void 0),c.fill(0),f.fill(Br.Free),O=0,x=!1,w=!1},call:L,txIdle:()=>O===0}};var Hs=(e,r)=>e.has("*")||e.has(r),Rc=(e)=>{if(!((u)=>Hs(e,u))("host"))return;let t=performance.now(),n=`host·${Oe}`;return{log:(u)=>{let c=(performance.now()-t).toFixed(1);console.error(`[${n}·+${c}ms] host: ${u}`)}}},xc=()=>{let e=globalThis.Deno?.cwd;if(typeof e==="function")try{return e()}catch{}let r=$e();if(typeof r?.cwd==="function")try{return r.cwd()}catch{return}return},Ds=(e,r="(none)")=>e&&e.length>0?e.join(","):r,js=65535,Ws=js+1,ho="default",Lc=xr;var Pc=(e)=>{let r=e.reduce((t,n)=>(t[0].add(n.importedFrom),t[1].add(n.id),t[2].add(n.at),t[3].push(n.name),t),[new Set,new Set,new Set,[]]);return{list:[...r[0]],ids:[...r[1]],at:[...r[2]],names:r[3]}},pt=(e,r)=>{try{return new URL(e,r).href}catch{return Ar(e)}},vc=(e,r)=>{if(e===void 0)return;let t=e.processRuntime==="porffor";if(t&&e.runtime!==void 0&&e.runtime!=="compiled")throw Error('worker.processRuntime "porffor" requires worker.runtime to be compiled or omitted');let n=t&&e.runtime===void 0,a=t?{...e,runtime:"compiled",processRuntime:void 0,compiled:n?{...e.compiled,build:"always"}:e.compiled}:e,u=a.bootstrap;if(u!==void 0){let f=u.name??ho;if(typeof u.href!=="string"||u.href.length===0)throw TypeError("worker.bootstrap.href must be a non-empty string");if(typeof f!=="string"||f.length===0)throw TypeError("worker.bootstrap.name must be a non-empty string");a={...a,bootstrap:{...u,href:pt(u.href,r),name:f}}}let c=a.compiled;if(c!==void 0){if(c.build!==void 0&&typeof c.build!=="boolean"&&c.build!=="always")throw TypeError('worker.compiled.build must be a boolean or "always"');for(let[f,S]of Object.entries({artifact:c.artifact,manifest:c.manifest,compiler:c.compiler}))if(S!==void 0&&(typeof S!=="string"||S.length===0))throw TypeError("worker.compiled."+f+" must be a non-empty string");a={...a,compiled:{build:c.build,compiler:c.compiler===void 0?void 0:c.compiler.startsWith(".")||c.compiler.startsWith("/")||c.compiler.startsWith("file:")||/^[A-Za-z]:[\\/]/.test(c.compiler)?pt(c.compiler,r):c.compiler,artifact:c.artifact===void 0?void 0:pt(c.artifact,r),manifest:c.manifest===void 0?void 0:pt(c.manifest,r)}}}return a};var _c=(e)=>e!=null&&typeof e==="object"&&typeof e.f==="function",Cc=(e,r)=>Object.entries(e).map(([t,n])=>{if(_c(n))return{...n,name:t};if(typeof n==="function")return{f:n,id:-1,importedFrom:new URL(r).href,at:-1,name:t,[Vr]:!0};throw TypeError(`createPool task "${t}" must be a task definition or exported function`)}),Ks=({threads:e,debug:r,inliner:t,balancer:n,payload:a,unsafe:u,abortSignalCapacity:c,source:f,worker:S,workerExecArgv:N,permission:P,host:H})=>(k)=>{let m=u?.BufferReferenceReturn,O=$a||r!==void 0&&r!==!1,x,w=()=>x??=rn(r),M=O?Rc(w()):void 0,J=(R)=>O&&Hs(w(),R);if(xr===!1){if(J("lifecycle"))console.warn("createPool has been called with : "+JSON.stringify(rt));let R=()=>{throw Error("createPool can only be called in the main thread.")},Se=new Proxy(function(){return R()},{get:function(){return R}});return{shutdown:Se,[Symbol.dispose]:()=>{},call:Se}}let _=as(3),q=Cc(k,_).sort((R,U)=>R.name.localeCompare(U.name)),{list:j,ids:te,names:oe,at:K}=Pc(q);if(M?.log(`cwd=${xc()??"(unknown)"} caller=${_}`),q.forEach((R)=>{M?.log(`task name=${R.name} id=${R.id} from=${R.importedFrom}`)}),q.length>Ws)throw RangeError(`Too many tasks: received ${q.length}. Maximum is ${Ws} (Uint16 function IDs: 0..${js}).`);let ee=typeof t==="object"&&t!=null,G=(e??1)+(ee?1:0),C=_s({permission:P??{mode:"strict",allowImport:!0},modules:j}),Q=Cs(C),ue=$e(),X=ue?.allowedNodeEnvironmentFlags??null,ce=(R)=>{let U=R.split("=",1)[0];return U==="--permission"||U==="--experimental-permission"||U==="--allow-fs-read"||U==="--allow-fs-write"||U==="--allow-worker"||U==="--allow-child-process"||U==="--allow-net"||U==="--allow-addons"||U==="--allow-ffi"||U==="--allow-wasi"},s=(R)=>R?.filter((U)=>!ce(U)),L=(R)=>{let U=[],le=new Set;for(let Se of R){if(le.has(Se))continue;le.add(Se),U.push(Se)}return U},g=(R)=>{if(!R||R.length===0)return;if(!X)return R;let U=R.filter((le)=>{let Se=le.split("=",1)[0];return X.has(Se)});return U.length>0?U:void 0},B=Array.isArray(ue?.execArgv)?ue.execArgv:void 0,l=N??(B?X?.has("--expose-gc")===!0?B.includes("--expose-gc")?B:[...B,"--expose-gc"]:B:void 0),p=C?.unsafe===!0?s(l):l,h=L([...Q,...p??[]]),z=g(h.length>0?h:void 0);M?.log(`pool runtime=${Oe} workers=${e??1} lanes=${G} inliner=${ee?"on":"off"}`),M?.log(`modules=${Ds(j)}`),M?.log(`permission=${C?.mode??"off"} execArgv=${Ds(z)}`);let b=q.some((R)=>R.abortSignal!==void 0),y=vc(S,_),D=ue?.env?.KNITTING_DISPATCHER,ne=ue?.env?.KNITTING_STEAL?.trim().toLowerCase(),re=ne==="1"||ne==="true"?!0:ne==="0"||ne==="false"?!1:void 0,me=H?.dispatcher!==void 0||D==="serial-channel"||D==="per-thread",ge=n===void 0&&!me&&(e??1)<=Ls,ve=H?.steal??re??ge,Ne=y?.runtime==="compiled";if(y?.compiled!==void 0&&!Ne)throw Error("worker.compiled requires worker.runtime to be compiled");if(Ne){let R=[];if(ee)R.push("inliner");if(a!==void 0)R.push("payload");if(u!==void 0)R.push("unsafe");if(f!==void 0)R.push("source");if(N!==void 0)R.push("workerExecArgv");if(P!==void 0)R.push("permission");if(H!==void 0)R.push("host");if(y.bootstrap!==void 0)R.push("worker.bootstrap");if(y.timers!==void 0)R.push("worker.timers");if(y.processRuntime!==void 0)R.push("worker.processRuntime");if(y.processCommandPrefix!==void 0)R.push("worker.processCommandPrefix");if(y.processSharedMemory!==void 0)R.push("worker.processSharedMemory");if(y.resolveAfterFinishingAll!==void 0)R.push("worker.resolveAfterFinishingAll");if(q.some((U)=>U.timeout!==void 0))R.push("task timeout");if(q.some((U)=>U.imported===!0))R.push("importTask");if(R.length>0)throw Error("Compiled workers do not support: "+R.join(", "))}if(y?.bootstrap!==void 0)M?.log(`bootstrap href=${y.bootstrap.href} name=${y.bootstrap.name}`);if(ee&&y?.bootstrap!==void 0)throw Error("worker.bootstrap cannot be used with the inliner");if(y?.runtime==="process"){let R=sn(y);Fs(Ms({permission:P,resolved:C,target:{runtime:R,nodeMajor:R==="node"?ys(y):void 0}}))}let fe=Number.isFinite(y?.hardTimeoutMs)?Math.max(1,Math.floor(y?.hardTimeoutMs)):void 0;if(yn>=1)throw Error(`createPool() tried to spawn workers from inside a worker process (pool depth ${yn}). This usually means a pool is created at module scope in a module your workers import, so every worker spawns its own pool recursively. Is your createPool protected by isMain? Guard pool creation behind \`if (isMain) { ... }\` (import { isMain } from "knitting") so only the main program starts the pool.`);let he=H?.dispatcher??(D==="serial-channel"||D==="per-thread"?D:void 0),be=(()=>{if(Oe==="bun")return"per-thread";if((e??1)<=1)return"per-thread";return"serial-channel"})(),de=he??be,De=ve&&!Ne&&(e??1)>1&&!ee,xe=De?Ps({threads:e??1,payload:a,regionLanes:H?.stealRegionLanes,abortSignalCapacity:c,usesAbortSignal:b,processWorker:y?.runtime==="process"?{signalBytes:ut,sharedMemory:an(y)}:void 0}):void 0,He=!Ne&&!De&&de==="serial-channel",We=He?new qr("channel"):void 0,Le=Array.from({length:e??1}).map((R,U)=>vs({list:j,ids:te,names:oe,at:K,thread:U,debug:r,hostDebug:M?.log,totalNumberOfThread:G,source:f,workerOptions:y,workerExecArgv:z,host:H,payload:a,bufferReferenceReturn:m,abortSignalCapacity:c,usesAbortSignal:b,permission:C,sharedChannelHandler:We,stealPool:xe===void 0?void 0:{submitBuffers:xe.submitBuffers,returnBuffers:xe.returnBuffers[U],hostSubmitLock:xe.hostSubmitLock,hostReturnLock:xe.hostReturnLocks[U],sharedQueue:xe.sharedQueue,consumers:e??1,consumerId:U,regionLanes:xe.regionLanes,abortSignalSAB:xe.abortSignalSAB,abortSignalMax:xe.abortSignalMax,processMemory:xe.processMemory}})),je=De?new qr:void 0;if(De){let R=je,U=xe.sharedQueue,le=0,Se=()=>{let _e=Le.length;if(_e===0)return;let Qe=le;le=le+1<_e?le+1:0,Le[Qe].laneWake?.()},Pe=new Int32Array(ze(3*Int32Array.BYTES_PER_ELEMENT)),{check:Ae}=un({signalBox:{opView:Pe.subarray(0,1),txStatus:Pe.subarray(1,2),rxStatus:Pe.subarray(2,3)},queue:U,channelHandler:R,dispatcherOptions:H,notifySignal:Se,crossProcess:y?.runtime==="process"});R.open(Ae),Le.forEach((_e)=>{_e.bindSend(()=>{if(Ae.isRunning!==!0)Ae.isRunning=!0,Promise.resolve().then(Ae);Se()})}),M?.log(`dispatcher=steal lanes=${Le.length} g=${xe.regionLanes}`)}let qe=We;if(He){let R=We,U=Le.map((Ce)=>Ce.dispatcherCheck),le=Le.map((Ce)=>Ce.txIdle),Se=!1,Pe=!1,Ae=!1,_e=[],Qe=new Uint8Array(U.length),tr=(Ce)=>{if(Qe[Ce]===1)return;Qe[Ce]=1,_e.push(Ce)},wr=()=>{if(Pe){Ae=!0;return}Pe=!0;do{Ae=!1,Se=!1;for(let Ce=_e.length-1;Ce>=0;Ce--){let ir=_e[Ce],nr=U[ir];if(nr.isRunning!==!0)nr.isRunning=!0;if(nr(),le[ir]()){Qe[ir]=0;let mt=_e.pop();if(Ce<_e.length)_e[Ce]=mt}}}while(Ae);Pe=!1},Tr=()=>{if(Pe){Ae=!0;return}if(Se)return;Se=!0,Promise.resolve().then(wr)};R.open(wr),Le.forEach((Ce,ir)=>{let nr=Ce.laneWake;Ce.bindSend(()=>{tr(ir),Tr(),nr()})}),M?.log(`dispatcher=serial-channel lanes=${U.length}`)}else M?.log(`dispatcher=per-thread lanes=${Le.length}`);if(ee){let R=Ns({tasks:q,genTaskID:es,batchSize:t?.batchSize??1});if(t?.position==="first")Le=[R,...Le];else Le.push(R)}let er=ee?t?.position==="first"?0:Le.length-1:-1,sr=Number.isFinite(t?.dispatchThreshold)?Math.max(1,Math.floor(t?.dispatchThreshold??1)):1,mr=!1,o,E,T=()=>{if(o)return o;return mr=!0,o=Promise.allSettled(Le.map((R)=>R.kills())).then(()=>{qe?.close(),je?.close()}),o},d=({invoke:R,taskName:U})=>(le)=>{if(mr)return Promise.reject(Error("Pool is shut down"));let Se=R(le);if(!fe)return Se;return new Promise((Pe,Ae)=>{let _e=!1,Qe=setTimeout(()=>{if(_e)return;_e=!0,Ae(Error(`Task hard timeout after ${fe}ms (${U}); pool force-shutdown`)),T()},fe);Se.then((tr)=>{if(_e)return;_e=!0,clearTimeout(Qe),Pe(tr)},(tr)=>{if(_e)return;_e=!0,clearTimeout(Qe),Ae(tr)})})},W=(R)=>{if(o)return o;if(E)return E;let U=Number.isFinite(R)?Math.max(0,Math.floor(R)):0;return E=(async()=>{if(o)return await o;if(U>0)await new Promise((le)=>setTimeout(le,U));if(o)return await o;await T()})(),E},V=()=>{W()},Y=q.map((R,U)=>({name:R.name,index:U,timeout:R.timeout,abortSignal:R.abortSignal,imported:R.imported===!0})),I=new Map;for(let{name:R}of Y)I.set(R,[]);for(let R of Le)for(let{name:U,index:le,timeout:Se,abortSignal:Pe}of Y)I.get(U).push(d({taskName:U,invoke:R.call({fnNumber:le,timeout:Se,abortSignal:Pe})}));let se=(e??1)===1&&!ee,Z=(R)=>{let U=[],le=[];for(let Se=0;Se<R.length;Se+=1){if(Se===er)continue;U.push(R[Se]),le.push(Le[Se])}if(U.length===0)throw Error("Imported task has no worker lane to run on: the pool only has the host inliner. Imported tasks are never inlined on the host; add at least one worker thread.");if(U.length===1)return U[0];return go({contexts:le,balancer:n,handlers:U})},we=(R,U)=>{if(U&&ee)return Z(R);return se?R[0]:go({contexts:Le,balancer:n,handlers:R,inlinerGate:ee?{index:er,threshold:sr}:void 0})},ke;try{ke=Y.map(({name:R,imported:U})=>[R,we(I.get(R),U)])}catch(R){throw T(),R}return{shutdown:W,[Symbol.dispose]:V,call:Object.fromEntries(ke)}},Us="__task__",Ic=(e,r)=>{let t=Ks(r??{})({[Us]:e});return{call:t.call[Us],shutdown:t.shutdown,[Symbol.dispose]:t[Symbol.dispose]}},Gs=(e,r,t,n=!1)=>{let a=new URL(r).href,u={...e,id:rs(a,t),importedFrom:a,at:t,imported:n,[Vr]:!0};return u.createPool=(c)=>{if(xr===!1)return u;return Ic(u,c)},u},Mc=(e,r)=>{let[t,n]=fo(r);return Gs(e,t,n)},Fc=(e,r)=>{let t,n,a=async()=>{if(t)return t;if(!n)n=import(e).then((u)=>{let c=u,f=r===ho?c.default:c[r];if(typeof f!=="function"){let S=Object.keys(c).join(", ");throw TypeError(`importTask expected export "${r}" from "${e}" to be a function. Available exports: ${S||"(none)"}`)}return t=f,t});return n};return async(...u)=>(await a())(...u)};function Oc(e){return Mc(e,4)}function Nc(e){let[r,t]=fo(3),{href:n,name:a=ho,...u}=e,c=pt(n,r);return Gs({...u,f:Fc(c,a)},r,t,!0)}export{hr as Envelope,$t as NumericArray,Ks as createPool,Nc as importTask,Lc as isMain,Hn as isNumericArray,ns as setModuleUrl,Oc as task,nn as workerMainLoop};
|
|
1
|
+
var Gs=Object.defineProperty;var $s=(e)=>e;function zs(e,r){this[e]=$s.bind(null,r)}var Ys=(e,r)=>{for(var t in r)Gs(e,t,{get:r[t],enumerable:!0,configurable:!0,set:zs.bind(r,t)})};var Vs=(e,r)=>()=>(e&&(r=e(e=0)),r);var oo=()=>({keys:new Set(Reflect.ownKeys(globalThis))}),ja=(e,r)=>{let t=[],n=[];for(let a of r.keys)if(!e.keys.has(a))t.push(a);for(let a of e.keys)if(!r.keys.has(a))n.push(a);return{added:t,removed:n}},Ka=(e)=>{let r=typeof e==="symbol"?e.toString():e,t;try{t=Object.getOwnPropertyDescriptor(globalThis,e)}catch{return r}if(t===void 0)return r;let n=t.get!==void 0||t.set!==void 0?"accessor":typeof t.value,a=`${t.writable===!1?"":"w"}${t.configurable?"c":""}${t.enumerable?"e":""}`;return a.length>0?`${r} (${n} ${a})`:`${r} (${n})`};var Ga={};Ys(Ga,{initDebug:()=>Ku});var Ku=({name:e,runtime:r,namespaces:t})=>{let n=t.has("*"),a=(v)=>n||t.has(v),u=performance.now(),c=`${e}·${r}`,f=(v,W)=>{if(!a(v))return;let R=(performance.now()-u).toFixed(1);console.error(`[${c}·+${R}ms] ${v}: ${W}`)},A=a("globals")?oo():void 0;return{enabled:a,log:f,envPhase:(v)=>{if(A===void 0)return;let W=oo(),{added:R,removed:h}=ja(A,W);if(A=W,R.length===0&&h.length===0){f("globals",`${v}: no new globals`);return}if(R.length>0)f("globals",`${v} +${R.length}: ${R.map(Ka).join(" ")}`);if(h.length>0)f("globals",`${v} -${h.length}: ${h.map(String).join(" ")}`)}}};var $a=()=>{};var mt=(()=>{let e=globalThis.process;return typeof e?.versions?.node==="string"?e:void 0})(),He=()=>mt,gt=(e)=>{let r=mt?.getBuiltinModule;if(typeof r!=="function")return;try{return r.call(mt,e)}catch{}if(!e.startsWith("node:"))return;try{return r.call(mt,e.slice(5))}catch{return}};var Ar=globalThis,qs=He(),mo=typeof Ar.Deno?.version?.deno==="string",Jr=typeof Ar.Bun?.version==="string",go=typeof qs?.versions?.node==="string",Br=typeof Ar.__andromeda__<"u",un=!mo&&!Jr&&!go&&!Br&&(typeof Ar.document<"u"||typeof Ar.WorkerGlobalScope==="function"),Me=mo?"deno":Jr?"bun":go?"node":Br?"andromeda":un?"browser":"unknown",sn=Ar.WebAssembly,Xr=typeof Ar.setImmediate==="function"?Ar.setImmediate:void 0,Qs=65536,ht=new WeakMap,bt=new WeakMap,cn=(()=>{if(typeof sn?.Memory!=="function")return!1;try{return new sn.Memory({initial:0,maximum:1,shared:!0}),!0}catch{return!1}})();var Qr=(e)=>Math.ceil(Math.max(0,e)/Qs),ho=(e,r)=>{let t=new sn.Memory({initial:Qr(e),maximum:Math.max(Qr(e),Qr(r)),shared:!0}),n=t.buffer;return ht.set(n,t),bt.set(n,r),n},_r=(e,r=e)=>{if(cn)return ho(e,r);return new SharedArrayBuffer(e)},fn=typeof SharedArrayBuffer==="function"&&typeof SharedArrayBuffer.prototype.grow==="function",St=fn||cn,je=(e,r)=>{if(fn&&typeof r==="number")return new SharedArrayBuffer(e,{maxByteLength:r});if(cn&&typeof r==="number")return ho(e,r);return new SharedArrayBuffer(e)};var bo=(e)=>{let r=e;return fn&&typeof r.grow==="function"&&r.growable===!0||ht.has(e)},So=(e)=>{let r=e;if(typeof r.maxByteLength==="number")return r.maxByteLength;return bt.get(e)??e.byteLength},Ao=(e,r)=>{let t=e;if(typeof t.grow==="function")return t.grow(r),e;let n=ht.get(e);if(n==null)throw TypeError("SharedArrayBuffer is not growable");let a=n.buffer;if(a.byteLength>=r)return a;let u=Qr(r),c=Qr(a.byteLength);n.grow(u-c);let f=n.buffer,A=bt.get(e)??a.byteLength;return ht.set(f,n),bt.set(f,A),f};var Js="KNITTING_PROCESS_WORKER";var Xs="KNITTING_POOL_DEPTH",At=He(),wr=At?.env?.[Js]==="1",Zs=()=>{let e=At?.env?.[Xs];if(typeof e!=="string")return 0;let r=Number.parseInt(e,10);return Number.isFinite(r)&&r>0?r:0},ln=Zs(),Mr=gt("node:worker_threads"),ei=()=>{let e=globalThis.WorkerGlobalScope;if(typeof e==="function")try{if(globalThis instanceof e)return!0}catch{}if(Br&&typeof globalThis.self<"u")return!0;return!1},wo=Mr?.Worker??globalThis.Worker,Bo=Mr?.MessageChannel??globalThis.MessageChannel,dn=Mr!=null,Tr=wr?!1:Mr?.isMainThread??!ei(),Zr=Mr?.workerData,et=Mr?.parentPort??(wr&&typeof At?.send==="function"?{postMessage:(e)=>At.send(e)}:void 0),Or=()=>{if(typeof Bo!=="function")throw Error("MessageChannel is not available in this runtime");return new Bo},To=(e,r)=>{if(typeof e.on==="function"){e.on("message",r);return}if(typeof e.addEventListener==="function"){e.addEventListener("message",(t)=>r(t?.data));return}e.onmessage=(t)=>r(t?.data)};var rt=(e)=>e instanceof SharedArrayBuffer||e instanceof ArrayBuffer,ri=(e)=>{if(!e||typeof e!=="object")return!1;let r=e;return rt(r.sab)&&typeof r.byteOffset==="number"&&Number.isInteger(r.byteOffset)&&r.byteOffset>=0&&typeof r.byteLength==="number"&&Number.isInteger(r.byteLength)&&r.byteLength>=0},Ze=(e)=>rt(e)||ri(e),Ke=(e)=>rt(e)?{sab:e,byteOffset:0,byteLength:e.byteLength}:e;var ko=new TextEncoder,ti=new TextDecoder,Eo=(e)=>e instanceof TypeError,ni=(e)=>{let r=Ke(e),t=Math.min(1,r.byteLength);return new Uint8Array(r.sab,r.byteOffset,t)},Ro=(e)=>{if(!e||typeof e!=="object")return!1;let r=e;return typeof r.encodeInto==="boolean"&&typeof r.decode==="boolean"},Bt=(e)=>{if(!e||typeof e!=="object")return!1;let r=e;return Ro(r.headers)&&Ro(r.payload)},xo=(e)=>{let r=ni(e),t=(()=>{if(typeof ko.encodeInto!=="function")return!1;let a=r.byteLength>0?r:r.subarray(0,0),u=a.byteLength>0?a[0]:void 0;try{return ko.encodeInto(a.byteLength>0?"a":"",a),!0}catch(c){if(!Eo(c))throw c;return!1}finally{if(u!==void 0)a[0]=u}})(),n=(()=>{try{return ti.decode(r),!0}catch(a){if(!Eo(a))throw a;return!1}})();return{encodeInto:t,decode:n}},Fr=({headers:e,payload:r})=>({headers:xo(e),payload:xo(r)});class ir{#e;#r;#n=0;#o=0;#t=0;constructor(e=512){let r=2;while(r<e)r<<=1;this.#e=Array(r).fill(null),this.#r=r-1}get size(){return this.#t}get isEmpty(){return this.#t===0}get capacity(){return this.#r+1}clear(){this.#n=0,this.#o=0,this.#t=0}peek(){return this.#t===0?void 0:this.#e[this.#n]}reserve(e){if(e<=this.capacity)return;let r=this.capacity;while(r<e)r<<=1;this.#s(r)}#a(){if(this.#t!==this.#r+1)return;this.#s(this.#r+1<<1)}#s(e){let r=this.#e,t=this.#r+1,n=this.#t,a=Array(e).fill(null),u=this.#n,c=Math.min(n,t-u);for(let f=0;f<c;f++)a[f]=r[u+f];for(let f=c;f<n;f++)a[f]=r[f-c];this.#e=a,this.#r=e-1,this.#n=0,this.#o=n}push(e){this.#a();let r=this.#e,t=this.#r,n=this.#o;return r[n]=e,this.#o=n+1&t,this.#t++,!0}unshift(e){this.#a();let r=this.#e,t=this.#r,n=this.#n-1&t;return this.#n=n,r[n]=e,this.#t++,!0}shift(){let e=this.#t;if(e===0)return;let r=this.#n,t=this.#e,n=t[r];return t[r]=null,this.#n=r+1&this.#r,this.#t=e-1,n}shiftNoClear(){let e=this.#t;if(e===0)return;let r=this.#n,t=this.#e[r];return this.#n=r+1&this.#r,this.#t=e-1,t}*[Symbol.iterator](){let e=this.#e,r=this.#r,t=this.#n,n=0,a=this.#t;while(n<a){let u=e[t];if(u!==null)yield u;t=t+1&r,n++}}toArray(){let e=Array(this.#t),r=this.#e,t=this.#r,n=this.#n;for(let a=0;a<e.length;a++)e[a]=r[n],n=n+1&t;return e}get[Symbol.toStringTag](){return`RingQueue(size=${this.#t}, cap=${this.capacity})`}}var oi=67108864,ai=4194304,Nr=(e)=>{if(!Number.isFinite(e))return;let r=Math.floor(e);return r>0?r:void 0},si=(e)=>{if(e==null)return!1;return e instanceof SharedArrayBuffer&&St&&bo(e)},ii=(e)=>{if(e==null)return;if(e instanceof SharedArrayBuffer)return Nr(So(e));return Nr(e.byteLength)},cr=({options:e,sab:r})=>{let t=r===void 0?void 0:Ke(r),n=t?.sab,c=e?.mode??(St?"growable":"fixed");if(c==="growable"&&n!=null&&!si(n))c="fixed";if(c==="growable"&&!St)c="fixed";let f=Nr(e?.payloadMaxByteLength)??Nr(t?.byteLength)??ii(n)??oi,A=Nr(e?.payloadInitialBytes),N=c==="fixed"?f:Math.min(A??ai,f),v=f>>3;if(v<=0)throw RangeError("payloadMaxByteLength is too small; must be at least 8 bytes.");let W=e?.maxPayloadBytes;if(W!==void 0){let h=Math.floor(W);if(!Number.isFinite(h)||h<=0)throw RangeError(`maxPayloadBytes must be > 0 and <= ${v}.`)}let R=Nr(W)??v;if(R<=0||R>v)throw RangeError(`maxPayloadBytes must be > 0 and <= ${v}.`);return{mode:c,payloadInitialBytes:N,payloadMaxByteLength:f,maxPayloadBytes:R}};var pn,mn,Lo=(e,r)=>{pn=e,mn=r},Ge={UNREACHABLE:0,BigInt:2,True:3,False:4,Undefined:5,NaN:6,Float64:9,Null:10},I={BORDER_SIGNAL_BUFFER:11,String:11,Json:12,StaticString:15,StaticJson:16,Binary:17,StaticBinary:18,Int32Array:19,Float64Array:20,BigInt64Array:21,BigUint64Array:22,DataView:23,Error:24,Date:25,Symbol:26,StaticSymbol:27,BigInt:28,StaticBigInt:29,StaticInt32Array:31,StaticFloat64Array:32,StaticBigInt64Array:33,StaticBigUint64Array:34,StaticDataView:35,ArrayBuffer:36,StaticArrayBuffer:37,Buffer:38,StaticBuffer:39,EnvelopeStaticHeader:40,EnvelopeDynamicHeader:41,EnvelopeStaticHeaderString:42,EnvelopeDynamicHeaderString:43,ExternalPayload:44,StaticExternalPayload:45,ProcessSharedBuffer:46,BufferReference:47,SharedArrayBuffer:48,EnvelopeStaticHeaderExternal:49,EnvelopeDynamicHeaderExternal:50,EnvelopeStaticHeaderStringExternal:51,EnvelopeDynamicHeaderStringExternal:52,NumericArray:53,StaticNumericArray:54},Po={};for(let e of Object.keys(I))Po[I[e]]=e;var vo=(e)=>Po[e]??String(e),we={paddingLock:0,padding:0,slots:32,header:0},Et=64,ui=256,ci=Symbol.for("knitting.payloadCodec.transportFinalizer");var Qe=7,kt=1,wt=2,Rt=(e)=>{let r=e[Qe];if((r&kt)!==0)return!1;return e[Qe]=(r|kt)>>>0,!0},nt=(e)=>{e[Qe]=(e[Qe]&~kt)>>>0},yn=(e)=>(e[Qe]&kt)!==0,hn=(e)=>{e[Qe]=0},fi=(e,r)=>{let t=e.finalize;e.finalize=t===void 0?r:()=>{try{t()}finally{r()}}},kr=(e,r)=>{if(e.finalize!==void 0||r===null||typeof r!=="object")return;let t=r[ci]?.();if(typeof t==="function")fi(e,t)},Dr=(e)=>{let r=e.finalize;if(e.finalize=void 0,r!==void 0)try{r()}catch{}},i={FlagsToHost:0,FunctionID:0,ID:1,Type:2,Start:3,End:4,PayloadLen:5,slotBuffer:6,Size:8,TotalBuff:144},xt=5,Wr=(1<<xt)-1,sf=32-xt,Lt=4294967295>>>xt,uf=~Wr>>>0,Pt=16,li=(1<<Pt)-1,cf=32-Pt,di=4294967295>>>Pt,ff=~li>>>0;var _o=(e)=>e[i.FunctionID]>>>Pt&di;var Co=(e)=>e[i.slotBuffer]&Wr;var Io=(e)=>e[i.slotBuffer]>>>xt≪var vt={Reject:1},lf=Int32Array.BYTES_PER_ELEMENT,yi=we.paddingLock,pi=Et,Ur=ui,Mo=Et*2,Oo=Et*3;var fr=we.header+i.TotalBuff,df=fr*Uint32Array.BYTES_PER_ELEMENT,mi=Et/Uint32Array.BYTES_PER_ELEMENT,ot=i.TotalBuff-mi,Fo=ot,No=Fo+i.Size,gi=No+1,hi=No+2,Do=hi+1,bi=Do+1,Si=we.header+fr*we.slots,bn=Si*Uint32Array.BYTES_PER_ELEMENT,Ai=0,yf=Ge.UNREACHABLE,tt=(e)=>{},Wo=()=>{let e=new Uint32Array(i.Size);return e.value=null,e.finalize=void 0,e.resolve=tt,e.reject=tt,e[Qe]=0,e},Uo=()=>{let e=Wo();return e[i.ID]=Ai++,e},gn=(e,r,t)=>{e[0]=r[t],e[1]=r[t+1],e[2]=r[t+2],e[3]=r[t+3],e[4]=r[t+4],e[5]=r[t+5],e[6]=r[t+6],e[Qe]=0},Bi=(e,r)=>{let t=Wo();return gn(t,e,r),t},Tt=(e)=>{if(e[i.FlagsToHost]===0)e.resolve(e.value);else e.reject(e.value),e[i.FlagsToHost]=0},Er=({headers:e,headerSlotStrideU32:r,LockBoundSector:t,payload:n,payloadConfig:a,payloadSector:u,textCompat:c,resultList:f,toSentList:A,recycleList:N,processBoundary:v,consumers:W,consumerId:R,regionLanes:h,notifyOnHostPublish:O})=>{let L=Ke(t??_r(Ur)),T=L.sab,D=new Int32Array(T,L.byteOffset+yi,1),Q=new Int32Array(T,L.byteOffset+pi,1),X=Ke(e??_r(bn)),C=new Uint32Array(X.sab,X.byteOffset,X.byteLength>>>2),z=r??fr,ee=new Int32Array(X.sab,X.byteOffset+bi*Uint32Array.BYTES_PER_ELEMENT,1),ie=cr({sab:n,options:a}),M=n??(ie.mode==="growable"?je(ie.payloadInitialBytes,ie.payloadMaxByteLength):je(ie.payloadInitialBytes)),Z=Ke(u??L),G=c??Fr({headers:X,payload:M}),j=Math.max(1,(W??1)|0),V=j>1,fe=R===void 0,te=(R??0)|0,ae=(h??8)|0,s=we.slots/ae|0;if(V){if(ae<1||(ae&ae-1)!==0)throw RangeError("regionLanes must be a power of two");if(s<j)throw RangeError(`regionLanes=${ae} yields ${s} regions, too few for ${j} consumers`);if(te<0||te>=j)throw RangeError(`consumerId ${te} out of range`)}let P=new Int32Array(X.sab,X.byteOffset,X.byteLength>>>2),m=new Int32Array(j);for(let p=0;p<j;p++)m[p]=p*z+we.header+gi;let k=we.header+Do,l=j===32?-1:(1<<j)-1|0;if(V&&fe)Atomics.store(P,k,l);let g=(p,E)=>(p&1<<E)!==0,b;if(pn===void 0||mn===void 0)throw Error('Payload codec not registered before lock2(). Ensure the module that builds locks imports "./payloadCodec.ts" (it self-registers on load).');let K=pn({payload:{sab:M,config:ie},headersBuffer:C,headerSlotStrideU32:z,lockSector:Z,textCompat:G,processBoundary:v,onPromise:(p,E,J)=>{if((p[Qe]&wt)!==0&&Ae>0)p[Qe]=(p[Qe]&~wt)>>>0,Ae=Ae-1|0;b(p,E,J)}}),S=mn({payload:{sab:M,config:ie},headersBuffer:C,headerSlotStrideU32:z,lockSector:Z,textCompat:G,processBoundary:v}),y=0,w=0,oe=32,se=A??new ir,Se=N??new ir,Le=f??new ir,he=0,Ae=0,ce=Atomics.load,ye=Atomics.store,Oe=Atomics.notify,Ne=O===!0,De=typeof Atomics.waitAsync==="function"?Atomics.waitAsync.bind(Atomics):void 0,me=0,$e=()=>me=ce(Q,0)|0;$e();let Ee=(p)=>~p!==0?p:y^$e()|0,Be=(p)=>se.push(p),tr=()=>se.shiftNoClear(),nr=(p)=>se.unshift(p),Ue=()=>Se.shiftNoClear(),or=(p)=>Le.push(p),We=Math.clz32,o=we.header+Fo,_=({queue:p})=>(E)=>{let J=E*z+o,re=p[C[J+i.ID]];return gn(re,C,J),re},x=(p)=>Be(p),d=(p)=>{let E=p[Qe];if((E&wt)!==0)return;p[Qe]=(E|wt)>>>0,Ae=Ae+1|0},F=(p,E)=>K(p,E),U=0,H=0,q=(p,E)=>{let J=~E;if(J===0)return 0;if(!F(p,U=31-We(J)))return 0;return de(p,U,H=1<<U),H},pe=(p)=>{let E=Ee(y^me|0),J=0;if(p===se)while(!0){let re=tr();if(!re)break;E=Ee(E);let xe=q(re,E)|0;if(xe===0){nr(re);break}E=E^xe|0,J=J+1|0}else while(!0){let re=p.shiftNoClear();if(!re)break;E=Ee(E);let xe=q(re,E)|0;if(xe===0){p.unshift(re);break}E=E^xe|0,J=J+1|0}return J},ge=(p)=>{let E=Ee(y^me|0),J=0;if(he=0,p===se)while(!0){let re=tr();if(!re)break;E=Ee(E);let xe=q(re,E)|0;if(xe===0){if(yn(re)){he=he+1|0,d(re);continue}nr(re);break}E=E^xe|0,J=J+1|0}else while(!0){let re=p.shiftNoClear();if(!re)break;E=Ee(E);let xe=q(re,E)|0;if(xe===0){if(yn(re)){he=he+1|0,d(re);continue}p.unshift(re);break}E=E^xe|0,J=J+1|0}return J},Re=()=>{if(se.isEmpty)return!0;return ge(se),he=0,se.isEmpty},ne=(p)=>{if(ye(D,0,y=y^p|0),Ne&&ce(ee,0)!==0)Oe(D,0,1)},B=(p)=>ye(Q,0,w=w^p|0),Y=(p,E=y^me|0)=>{E=Ee(E);let J=~E;if(J===0)return!1;if(!F(p,U=31-We(J)))return!1;return de(p,U,H=1<<U)},ue=(p,E=y^me|0)=>{he=0,E=Ee(E);let J=~E;if(J===0)return!1;if(!F(p,U=31-We(J))){if(yn(p))he=1,d(p);return!1}return de(p,U,H=1<<U)},de=(p,E,J)=>{let re=E*z+o;return C[re]=p[0],C[re+1]=p[1],C[re+2]=p[2],C[re+3]=p[3],C[re+4]=p[4],C[re+5]=p[5],C[re+6]=p[6],C[re+Qe]=0,ne(J),!0},Ie=()=>(D[0]^w)!==0,Pe=()=>{let p=ce(D,0)^w|0;if(p===0)return!1;let E=oe,J=0;try{if(E===32)Xe(U=31-We(p)),H=1<<(E=U),p^=H,J=J^H|0;while(p!==0){let re=p&(1<<E)-1;if(re===0)re=p;Xe(U=31-We(re)),H=1<<(E=U),p^=H,J=J^H|0}}finally{if(J!==0)B(J)}return oe=E,!0},be=(p)=>ae===32?-1:(1<<ae)-1<<p*ae|0,Je=(p)=>{let E=ce(P,k)|0;for(let J=te+1;J<j;J++){if(!g(E,J))continue;if((ce(P,m[J])&p)!==0)return!0}return!1},er=s*te/j|0,dr=er,Ir=()=>{let p=ce(D,0)^ce(Q,0)|0;if(p===0)return!1;let E=0;if(s===1)E=1;else for(let le=0;le<s;le++)if((p&be(le))!==0)E|=1<<le;let J=ce(P,k)|0,re=0,xe=0;for(let le=0;le<j;le++){if(le===te||!g(J,le))continue;let Ye=ce(P,m[le])|0;if(re|=Ye,le<te)xe|=Ye}let yr=E&~xe;if(yr===0)return!1;let qr=E&~re,yt=qr!==0?qr:yr,pr=-1;for(let le=0;le<s;le++){let Ye=(dr+le)%s;if((yt&1<<Ye)!==0){pr=Ye;break}}if(pr<0)return!1;let Ve=1<<pr|0;ye(P,m[te],Ve);let sr=!1,_e=!1;for(let le=0;le<j;le++){if(le===te||!g(J,le))continue;if((ce(P,m[le])&Ve)===0)continue;if(le<te)sr=!0;else _e=!0}if(sr)return ye(P,m[te],0),!1;if(_e)while(Je(Ve));let ze=(ce(D,0)^ce(Q,0))&be(pr)|0;if(ze===0)return ye(P,m[te],0),!1;let ke=ze,Fe=0;try{while(ke!==0){let le=ke&-ke|0;Xe(31-We(le>>>0)),ke=ke&ke-1|0,Fe=Fe^le|0}}finally{if(w=w^Fe|0,Fe!==0)Atomics.xor(Q,0,Fe);ye(P,m[te],0),dr=er}return!0},ve=({queue:p,onResolved:E,shouldSettle:J,activeRejectPlaceholder:re})=>{let xe=_({queue:p}),yr=32;if(re!==void 0&&E){let Ve=E,sr=re;return()=>{let _e=ce(D,0)^w|0;if(_e===0)return 0;let ze=0,ke=0,Fe=yr;if(Fe===32){let le=31-We(_e),Ye=1<<le,qe=xe(le);if(S(qe,le),ke=ke^Ye|0,qe.reject!==sr)Tt(qe),Ve(qe);if(_e^=Ye,ze++,(ze&7)===0&&ke!==0)w=w^ke|0,ye(Q,0,w),ke=0;Fe=le}while(_e!==0){let le=Fe===31?2147483647:(1<<Fe)-1,Ye=_e≤if(Ye===0)Ye=_e;let qe=31-We(Ye),po=1<<qe,pt=xe(qe);if(S(pt,qe),ke=ke^po|0,pt.reject!==sr)Tt(pt),Ve(pt);if(_e^=po,ze++,(ze&7)===0&&ke!==0)w=w^ke|0,ye(Q,0,w),ke=0;Fe=qe}if(ke!==0)w=w^ke|0,ye(Q,0,w);return yr=Fe,ze}}let qr=E!==void 0,yt=E??tt,pr=J;return()=>{let Ve=ce(D,0)^w|0;if(Ve===0)return 0;let sr=0,_e=0,ze=yr;if(ze===32){let ke=31-We(Ve),Fe=1<<ke,le=xe(ke);if(S(le,ke),_e=_e^Fe|0,pr===void 0||pr(le)){if(Tt(le),qr)yt(le)}if(Ve^=Fe,sr++,(sr&7)===0&&_e!==0)w=w^_e|0,ye(Q,0,w),_e=0;ze=ke}while(Ve!==0){let ke=ze===31?2147483647:(1<<ze)-1,Fe=Ve&ke;if(Fe===0)Fe=Ve;let le=31-We(Fe),Ye=1<<le,qe=xe(le);if(S(qe,le),_e=_e^Ye|0,pr===void 0||pr(qe)){if(Tt(qe),qr)yt(qe)}if(Ve^=Ye,sr++,(sr&7)===0&&_e!==0)w=w^_e|0,ye(Q,0,w),_e=0;ze=le}if(_e!==0)w=w^_e|0,ye(Q,0,w);return yr=ze,sr}},ar=(p)=>{if(De===void 0){ye(ee,0,0);return}ye(ee,0,1);try{let E=De(D,0,w|0,p);if(!E.async)ye(ee,0,0);return E}catch{ye(ee,0,0);return}},Xe=(p)=>{let E=p*z+o,J=Ue(),re;if(J)gn(J,C,E),J.value=null,J.finalize=void 0,J.resolve=tt,J.reject=tt,re=J;else re=Bi(C,E);return S(re,p),or(re),!0};return{enlist:x,encode:Y,encodeManyFrom:pe,encodeAll:Re,publish:(p)=>{if(ue(p))return!0;if((he|0)!==0)return he=0,!1;return Be(p),!1},flushPending:()=>{if(se.isEmpty)return!1;let p=ge(se)|0;return he=0,p!==0},decode:V?Ir:Pe,hasSpace:Ie,resolved:Le,hostBits:D,workerBits:Q,recyclecList:Se,resolveHost:ve,waitForHostChange:ar,setHostWaiterArmed:(p)=>{ye(ee,0,p?1:0)},hasPendingFrames:()=>se.size!==0,getPendingFrameCount:()=>se.size|0,getPendingPromiseCount:()=>Ae|0,resetPendingState:()=>{se.clear(),he=0,Ae=0},deactivateStealConsumer:(p)=>{if(!V||!fe)return!1;if(!Number.isInteger(p)||p<0||p>=j)throw RangeError(`consumerId ${p} out of range`);let E=1<<p;return(Atomics.and(P,k,~E)&E)!==0},takeDeferredCount:()=>{let p=he|0;return he=0,p},setPromiseHandler:(p)=>{b=p}}};var wi=1,Ho=1,Ti=performance.now.bind(performance),ki=(e,r,t,n)=>new Promise((a,u)=>{let c=!1,f=setTimeout(()=>{if(c)return;if(c=!0,t)a(n);else u(n)},r);e.then((A)=>{if(c)return;c=!0,clearTimeout(f),a(A)},(A)=>{if(c)return;c=!0,clearTimeout(f),u(A)})}),Ei=(e)=>(Math.floor(e())&Lt)>>>0,jo=(e,r,t,n)=>{let a=Ei(n)-Io(r)&Lt,u=t.ms-a;if(!(u>0))return e.then(()=>{},()=>{}),t.kind===Ho?Promise.resolve(t.value):Promise.reject(t.value);let c=Math.max(1,Math.floor(u));return ki(e,c,t.kind===Ho,t.value)},_t=-1,Ko=(e)=>{let r=_o(e);if(r===0)return _t;let t=r-wi|0;return t>=0?t:_t},Ri=(e,r)=>{let t=[];return(n)=>{let a=t[n];if(a)return a;return a={hasAborted:()=>e(n),now:r},t[n]=a,a}},Go=({job:e,timeout:r,hasAborted:t,now:n})=>{let a=n??Ti;if(!t){if(!r)return(c)=>e(c.value);return(c)=>{let f=e(c.value);if(!(f instanceof Promise))return f;return jo(f,c,r,a)}}let u=Ri(t,a);if(!r)return(c)=>{let f=Ko(c);if(f===_t)return e(c.value);return e(c.value,u(f))};return(c)=>{let f=Ko(c),A=f===_t?e(c.value):e(c.value,u(f));if(!(A instanceof Promise))return A;return jo(A,c,r,a)}};var Sn=Symbol.for("knitting.bufferReference.numericTransfer"),$o=Symbol.for("knitting.bufferReference.returnReleaseToken"),Ct=()=>{throw Error('BufferReference cannot run in runtime "browser"')};class It{constructor(){Ct()}static fromMetadata=Ct}var at=(e)=>!1,An=(e,r)=>r(),zo=(e)=>{return},Yo=Ct,Vo=Ct;var qo=({listOfFunctions:e,workerOptions:r,lock:t,returnLock:n,borrowReturnedBufferReferences:a,hasAborted:u,now:c,stealing:f})=>{let A=(S)=>{throw"UNREACHABLE FROM PLACE HOLDER (thread)"},N=0,v=0,W=e.reduce((S,y)=>(S.push(y.run),S),[]),R=new ir,h=new ir,O=(S)=>R.push(S),L=()=>R.shiftNoClear(),T=()=>h.shiftNoClear(),D=(S)=>h.unshift(S),Q=(S)=>h.push(S),X=(S)=>t.recyclecList.push(S),C=65535,z=i.FlagsToHost,ee=vt.Reject,ie=Atomics.load,M=n.hostBits,Z=n.workerBits,G=[],j=new Map,V=()=>{if(G.length===0)return;if((ie(M,0)^ie(Z,0))!==0)return;for(let S=0;S<G.length;S++)try{G[S]()}catch{}G.length=0},fe=(S)=>{let y=S.toString(),w=j.get(y);if(w===void 0)return;j.delete(y);try{w()}catch{}},te=e.reduce((S,y,w)=>{let oe=W[w];return S.push(Go({job:oe,timeout:y.timeout,hasAborted:u,now:c})),S},[]),ae=r?.resolveAfterFinishingAll===!0?()=>N!==0&&R.size===0:()=>N!==0,{decode:s,resolved:P}=t,m=()=>P.shiftNoClear(),k=()=>{if(f&&R.size!==0)return!1;if(!s())return!1;let S=m();while(S)S.resolve=A,S.reject=A,kr(S,S.value),O(S),S=m();return!0},l=(S)=>{if(!n.encode(S))return!1;return!0},g=(S,y)=>{if(S[z]=y?ee:0,!l(S))return!1;if(S.finalize!==void 0){let w=S.finalize[$o];if(w===void 0||a!==!0)G.push(S.finalize);else j.set(w.toString(),S.finalize);S.finalize=void 0}return N--,X(S),!0},b=(S,y,w,oe)=>{if(Dr(S),S.value=w,N++,oe&&v>0)v--;let se=y||S[z]===ee;if(!g(S,se))Q(S)},K=()=>{let S=T();if(!S)return!1;if(!g(S,S[z]===ee))return D(S),!1;return!0};return{hasCompleted:ae,hasPending:()=>R.size!==0,writeBatch:(S)=>{let y=0;while(y<S){if(!K())break;y++}return y},serviceBatchImmediate:()=>{let S=0;while(S<5&&R.size!==0){let y=L();try{let w=y[i.FunctionID]&C,oe=te[w](y);if(y[z]=0,y.value=null,oe instanceof Promise)v++,oe.then((se)=>b(y,!1,se,!0),(se)=>b(y,!0,se,!0));else b(y,!1,oe,!1)}catch(w){b(y,!0,w,!1)}++S}return S},enqueueLock:k,drainReturnReleases:V,releaseReturnedBufferReference:fe,hasAwaiting:()=>v>0,getAwaiting:()=>v}};var Hr=4096,Ot=64,Mt={op:0,rxStatus:Ot,txStatus:Ot*2,stop:Ot*3},st=Ot*4,Cr={running:0,requested:1,acknowledged:2},Bn=Atomics.store,Ft=({sabObject:e,isMain:r,startTime:t})=>{let n=e?.size??Hr,a=n+(Hr-n%Hr)%Hr,u=Ke(e?.sharedSab?e.sharedSab:je(a,Hr*Hr)),c=u.sab,f=u.byteOffset,A=t??performance.now(),N=new Int32Array(c,f+Mt.op,1);if(r)Bn(N,0,0);let v=new Int32Array(c,f+Mt.rxStatus,1);Bn(v,0,1);let W=new Int32Array(c,f+Mt.stop,1);if(r)Bn(W,0,Cr.running);return{sab:u,op:N,startAt:A,opView:N,rxStatus:v,txStatus:new Int32Array(c,f+Mt.txStatus,1),stopView:W}};var Rr=4294967264,wn=({lockSector:e})=>{let r=Ke(e??_r(Ur)),t=r.sab,n=new Int32Array(t,r.byteOffset+Mo,1),a=new Int32Array(t,r.byteOffset+Oo,1),u=new Uint32Array(we.slots),c=new Uint32Array(we.slots),f=Math.clz32,A=Atomics.load,N=Atomics.store,v=Atomics.xor,W=4294967295,R=Wr,h=~R>>>0;u.fill(4294967295);let O=0,L=0,T=0,D=(M)=>u.slice(0,M),Q=(M,Z)=>{let G=u,j=0;M=M|0,Z=Z>>>0;for(let fe=0;fe<M;fe++){let te=G[fe];if(te===4294967295)continue;if((Z&1<<(te&R))!==0)continue;if(j!==fe)G[j]=te;j++}let V=j;for(;j<M;j++)G[j]=4294967295;return V},X=()=>{let M=A(a,0)|0,G=~((T^M)>>>0)>>>0;if(O===0||G===0)return;if(G===4294967295){O=0,L=0;return}if(G&=L,G===0)return;L&=~G,O=Q(O,G)},C=(M,Z)=>{let G=u,j=c,V=O,fe=-1,te=0,ae=0,s=!1;if(V===0&&L===0)return G[0]=0,j[0]=Z,M[i.Start]=0,M[i.slotBuffer]=(M[i.slotBuffer]&Rr|0)>>>0,O=1,L=1,T^=1,0;if(V!==0){let l=A(a,0)|0,g=~(T^l)>>>0;if(g!==0)g&=L;if(g===L>>>0)O=0,L=0,V=0,g=0;else if(g!==0)for(let b=0;b<V;b++){let K=G[b],S=K&R,y=1<<S;if((g&y)===0)continue;if(j[S]>>>0!==Z>>>0)continue;let w=~L>>>0,oe=(w&-w)>>>0;if(oe===0)return-1;let se=31-f(oe),Se=K&h;return G[b]=(Se|se)>>>0,j[se]=Z,M[i.Start]=Se,M[i.slotBuffer]=(M[i.slotBuffer]&Rr|se)>>>0,L=L&~y|oe,T^=oe,se}if(V!==0&&g!==0&&g!==4294967295){s=!0;let b=0;for(let K=0;K<V;K++){let S=G[K],y=S&R;if((g&1<<y)!==0)continue;let w=S&h;if(fe===-1&&w-ae>>>0>=Z>>>0)fe=b,te=ae;if(b!==K)G[b]=S;b++,ae=w+(j[y]>>>0)>>>0}for(let K=b;K<V;K++)G[K]=4294967295;if(g!==0)L&=~g;O=V=b}}if(V>=we.slots)return-1;let P=~L>>>0,m=(P&-P)>>>0;if(m===0)return-1;let k=31-f(m);if(!s&&V!==0){if((G[0]&h)>=Z>>>0){for(let S=V;S>0;S--)G[S]=G[S-1];return G[0]=k,j[k]=Z,M[i.Start]=0,M[i.slotBuffer]=(M[i.slotBuffer]&Rr|k)>>>0,O=V+1,L|=m,T^=m,k}for(let S=0;S+1<V;S++){let y=G[S],oe=(y&h)+(j[y&R]>>>0)>>>0;if((G[S+1]&h)-oe>>>0<Z>>>0)continue;for(let Se=V;Se>S+1;Se--)G[Se]=G[Se-1];return G[S+1]=(oe|k)>>>0,j[k]=Z,M[i.Start]=oe,M[i.slotBuffer]=(M[i.slotBuffer]&Rr|k)>>>0,O=V+1,L|=m,T^=m,k}let g=G[V-1],K=(g&h)+(j[g&R]>>>0)>>>0;return G[V]=(K|k)>>>0,j[k]=Z,M[i.Start]=K,M[i.slotBuffer]=(M[i.slotBuffer]&Rr|k)>>>0,O=V+1,L|=m,T^=m,k}if(V===0)return G[0]=k,j[k]=Z,M[i.Start]=0,M[i.slotBuffer]=(M[i.slotBuffer]&Rr|k)>>>0,O=1,L|=m,T^=m,k;if(fe!==-1){for(let l=V;l>fe;l--)G[l]=G[l-1];return G[fe]=(te|k)>>>0,j[k]=Z,M[i.Start]=te,M[i.slotBuffer]=(M[i.slotBuffer]&Rr|k)>>>0,O=V+1,L|=m,T^=m,k}return G[V]=(ae|k)>>>0,j[k]=Z,M[i.Start]=ae,M[i.slotBuffer]=(M[i.slotBuffer]&Rr|k)>>>0,O=V+1,L|=m,T^=m,k};return{allocTask:(M)=>{let G=(M[i.PayloadLen]|0)+63&-64,j=C(M,G);if(j===-1)return-1;return N(n,0,T),j},setSlotLength:(M,Z)=>{M=M&Wr;let G=(Z|0)+63&-64;return c[M]=G>>>0,!0},lockSAB:t,free:(M)=>{v(a,0,1<<(M&Wr))},hostBits:n,workerBits:a,updateTable:X,startAndIndexToArray:D}};var Nt=Uint32Array.BYTES_PER_ELEMENT,lr=(e,r)=>{if(!Number.isInteger(e)||e<0)throw RangeError(`${r} must be a non-negative integer`);return e},kn=(e,r=64)=>{let t=lr(e,"value"),n=lr(r,"alignment");if(n===0)throw RangeError("alignment must be greater than zero");return Math.ceil(t/n)*n},En=(e,r,t)=>({sab:e,byteOffset:lr(r,"byteOffset"),byteLength:lr(t,"byteLength")}),xi=({alignTo:e=64,startByteOffset:r=0}={})=>{let t=lr(e,"alignTo");if(t===0)throw RangeError("alignTo must be greater than zero");let n=lr(r,"startByteOffset"),a=[];return{slices:a,take:(c,f,{alignTo:A=t,reserveByteLength:N}={})=>{let v=lr(f,`${c} byteLength`),W=lr(A,`${c} alignTo`);if(W===0)throw RangeError(`${c} alignTo must be greater than zero`);let R=N==null?kn(v,W):lr(N,`${c} reserveByteLength`);if(R<v)throw RangeError(`${c} reserveByteLength must cover byteLength`);let h=kn(n,W),O={name:c,byteOffset:h,byteLength:v,reservedByteLength:R};return a.push(O),n=h+R,O},byteLength:()=>n,bind:(c,f)=>En(c,f.byteOffset,f.byteLength)}},Qo=({slotIndex:e,slotStrideU32:r,baseU32:t=0,extraU32:n=0})=>e*r+t+n,Jo=({slotIndex:e,slotStrideU32:r,baseByteOffset:t=0,baseU32:n=0,extraU32:a=0})=>t+Qo({slotIndex:e,slotStrideU32:r,baseU32:n,extraU32:a})*Nt,Rn=({slotCount:e,slotStrideU32:r,slotLengthU32:t,baseU32:n=0})=>{let a=lr(e,"slotCount");if(a===0)return 0;return(Qo({slotIndex:a-1,slotStrideU32:r,baseU32:n})+t)*Nt},Li=(e)=>e*2,Tn=({slotCount:e,slotStrideU32:r,queues:t=1,alignTo:n=64})=>kn(e*r*Nt*t,n),Pi=({sab:e,byteOffset:r,slotCount:t,slotStrideU32:n})=>{let a=Li(n),u=n*Nt,c=Rn({slotCount:t,slotStrideU32:a,slotLengthU32:n});return{headerSlotStrideU32:a,requestHeaders:En(e,r,c),returnHeaders:En(e,r+u,c)}},xn=({signalBytes:e,abortBytes:r,lockSectorBytes:t,headerSlotStrideU32:n,slotCount:a,headerLayout:u="interleaved",alignTo:c=64,createBuffer:f=(A)=>new SharedArrayBuffer(A)})=>{let A=xi({alignTo:c}),N=A.take("signals",e),v=A.take("requestLockSector",t),W=A.take("returnLockSector",t),R,h,O;if(u==="interleaved")O=A.take("interleavedHeaders",Tn({slotCount:a,slotStrideU32:n,queues:2,alignTo:c}));else R=A.take("requestHeaders",Tn({slotCount:a,slotStrideU32:n,alignTo:c})),h=A.take("returnHeaders",Tn({slotCount:a,slotStrideU32:n,alignTo:c}));let L=A.take("abortSignals",r),T=f(A.byteLength()),D=A.bind(T,N),Q=A.bind(T,L),X=A.bind(T,v),C=A.bind(T,W),z=u==="interleaved"?Pi({sab:T,byteOffset:O.byteOffset,slotCount:a,slotStrideU32:n}):{headerSlotStrideU32:n,requestHeaders:A.bind(T,R),returnHeaders:A.bind(T,h)};return{controlSAB:T,signals:D,abortSignals:Q,lock:{headers:z.requestHeaders,headerSlotStrideU32:z.headerSlotStrideU32,lockSector:X,payloadSector:X},returnLock:{headers:z.returnHeaders,headerSlotStrideU32:z.headerSlotStrideU32,lockSector:C,payloadSector:C},slices:A.slices}};var vi=4096,xr=new TextEncoder,Pn=new TextDecoder,ur=64,_i=vi,Ci=(e)=>e+63&-64,Zo=(e)=>e.constructor===Uint8Array,Ii=(e)=>Zo(e)?e:new Uint8Array(e.buffer,e.byteOffset,e.byteLength),Mi=(e)=>e instanceof TypeError,Oi=(e)=>e instanceof TypeError,ea=()=>{let e=globalThis.Buffer;if(typeof e?.from!=="function"||typeof e?.allocUnsafe!=="function"||typeof e?.allocUnsafeSlow!=="function")return;return e},Fi=(e,r)=>{let t=0,n=0;for(let a of e){let u=xr.encode(a);if(n+u.byteLength>r.byteLength)break;r.set(u,n),n+=u.byteLength,t+=a.length}return{read:t,written:n}},Ln=(e,r)=>{let t=new Uint8Array(r.byteLength),n=typeof xr.encodeInto==="function"?xr.encodeInto(e,t):Fi(e,t);if(n.written>0)r.set(t.subarray(0,n.written),0);return n},Xo=(e)=>Pn.decode(e.slice()),ra=(e,r,t)=>{if(typeof xr.encodeInto!=="function")return Ln(e,r);if(t?.encodeInto===!0)return xr.encodeInto(e,r);if(t?.encodeInto===!1)return Ln(e,r);try{return xr.encodeInto(e,r)}catch(n){if(!Mi(n))throw n;return Ln(e,r)}},ta=(e,r)=>{if(r?.decode===!0)return Pn.decode(e);if(r?.decode===!1)return Xo(e);try{return Pn.decode(e)}catch(t){if(!Oi(t))throw t;return Xo(e)}},vn=({sab:e,payloadConfig:r,textCompat:t})=>{let n=e===void 0?void 0:Ke(e),a=e!==void 0&&!rt(e),u=n?.sab instanceof ArrayBuffer&&!(n.sab instanceof SharedArrayBuffer),c=a||u,f=n?.byteLength,A=Jr&&n?.sab instanceof ArrayBuffer&&!(n.sab instanceof SharedArrayBuffer)?void 0:ea(),N=cr({sab:n?.sab,options:!c||f===void 0?r:{...r,mode:"fixed",payloadInitialBytes:r?.payloadInitialBytes??f,payloadMaxByteLength:r?.payloadMaxByteLength??f}}),v=N.mode==="growable",W=n?.sab??(v?je(N.payloadInitialBytes,N.payloadMaxByteLength):je(N.payloadInitialBytes)),R=n?.byteOffset??0,h=n?.byteLength??W.byteLength,O=new Uint8Array(W,R+ur,Math.max(0,h-ur)),L=A?(s,P)=>{let m=A.from(s,P+ur);if(m.buffer!==s)throw Error("Buffer view does not alias shared buffer");return m}:void 0,T=L?.(W,R),D=new Float64Array(W,R+ur,Math.max(0,h-ur)>>>3),Q=()=>h-ur,X=(s)=>{if(Q()>=s)return!0;if(!v)return!1;try{if(!(W instanceof SharedArrayBuffer))return!1;W=Ao(W,Ci(ur+s+_i))}catch{return!1}return R=0,h=W.byteLength,O=new Uint8Array(W,R+ur,h-ur),T=L?.(W,R),D=new Float64Array(W,R+ur,h-ur>>>3),!0},C=(s,P)=>{if(!T)return ta(O.subarray(s,P),t);return T.toString("utf8",s,P)},z=(s,P=0)=>{let m=Ii(s);if(!X(P+m.byteLength))return-1;return O.set(m,P),m.byteLength},ee=(s,P=0)=>{let m=s.byteLength;if(!X(P+m))return-1;return O.set(s,P),m},ie=(s,P=0)=>{let m=s.byteLength;if(!X(P+m))return-1;return O.set(new Uint8Array(s),P),m},M=(s,P=0)=>{let m=s.byteLength;if(!X(P+m))return-1;return D.set(s,P>>>3),m},Z=(s,P)=>O.slice(s,P),G=(s,P)=>O.subarray(s,P),j=(s,P)=>{if(!A||!T)return Z(s,P);let m=Math.max(0,P-s|0),k=A.allocUnsafe(m);if(m===0)return k;return T.copy(k,0,s,P),k},V=(s,P)=>{if(!A||!T)return Z(s,P).buffer;let m=Math.max(0,P-s|0);if(m===0)return new ArrayBuffer(0);let k=A.allocUnsafeSlow(m);return T.copy(k,0,s,P),k.buffer};return{readUtf8:C,writeBinary:z,writeBuffer:ee,writeArrayBuffer:ie,write8Binary:M,readBytesCopy:Z,readBytesView:G,readBytesBufferCopy:j,readBufferCopy:j,readBytesArrayBufferCopy:V,readArrayBufferCopy:V,read8BytesFloatCopy:(s,P)=>D.slice(s>>>3,P>>>3),read8BytesFloatView:(s,P)=>D.subarray(s>>>3,P>>>3),writeUtf8:(s,P,m=s.length*3)=>{if(!X(P+m))return-1;let k=O.subarray(P,P+m);if(!T){let{read:b,written:K}=ra(s,k,t);if(b!==s.length)return-1;return K}let{read:l,written:g}=xr.encodeInto(s,k);if(l!==s.length)return-1;return g}}},na=({headersBuffer:e,slotStrideU32:r,textCompat:t})=>{let n=ea(),a=e instanceof Uint32Array?e.buffer:e,u=e instanceof Uint32Array?e.byteOffset:0,c=Uint32Array.BYTES_PER_ELEMENT,f=r??fr,A=ot*c,N=new Uint8Array(a,u),v=n?.from(a,u),W=new Float64Array(a,u,a.byteLength-u>>>3),R=(l)=>Jo({slotIndex:l,slotStrideU32:f,baseByteOffset:u,baseU32:we.header}),h=new Uint32Array(we.slots);for(let l=0;l<we.slots;l++)h[l]=R(l)-u;let O=new Uint32Array(a,u,a.byteLength-u>>>2),L=new Uint32Array(we.slots);for(let l=0;l<we.slots;l++)L[l]=h[l]>>>2;let T=(l,g,b)=>{let K=L[b];for(let S=0;S<g;S++)O[K+S]=l[S];return g*c},D=(l,g,b)=>{let K=L[b];for(let S=0;S<g;S++)l[S]=O[K+S];return l},Q=(l,g)=>(l|0)>=0&&l+g<=A,X=(l,g)=>{let b=h[g],K=N.subarray(b,b+A);if(!v){let{read:w,written:oe}=ra(l,K,t);if(w!==l.length)return-1;return oe}let{read:S,written:y}=xr.encodeInto(l,K);if(S!==l.length)return-1;return y},C=(l,g,b)=>{let K=h[b];if(!v)return ta(N.subarray(K+l,K+g),t);return v.toString("utf8",K+l,K+g)},z=(l,g,b=0)=>(N.set(l,h[g]+b),l.byteLength),ee=(l,g,b=0)=>(N.set(l,h[g]+b),l.byteLength),ie=(l,g,b=0)=>{let K=l.byteLength;return N.set(new Uint8Array(l),h[g]+b),K},M=(l,g,b=0)=>(N.set(l,h[g]+b),l.byteLength),Z=(l,g,b=0)=>{if(!Zo(l))return-1;return M(l,g,b)},G=(l,g,b=0)=>{let K=l.byteLength;if(!Q(b,K))return-1;return W.set(l,h[g]+b>>>3),K},j=(l,g,b)=>N.slice(h[b]+l,h[b]+g),V=(l,g,b)=>N.subarray(h[b]+l,h[b]+g),fe=(l,g,b)=>{if(!n||!v)return j(l,g,b);let K=g-l,S=n.allocUnsafe(K),y=h[b];return v.copy(S,0,y+l,y+g),S},te=(l,g,b)=>{if(!n)return j(l,g,b);let K=fe(l,g,b);return new Uint8Array(K.buffer,K.byteOffset,K.byteLength)},s=Jr?(l,g,b)=>j(l,g,b):te,P=(l,g,b)=>{if(!n||!v)return j(l,g,b).buffer;let K=Math.max(0,g-l|0);if(K===0)return new ArrayBuffer(0);let S=n.allocUnsafeSlow(K),y=h[b];return v.copy(S,0,y+l,y+g),S.buffer};return{writeUtf8:X,readUtf8:C,writeBinary:z,writeBuffer:ee,writeArrayBuffer:ie,writeExactUint8Array:M,writeUint8Array:Z,writeU32Words:T,readU32Words:D,write8Binary:G,readBytesCopy:j,readBytesView:V,readBytesBufferCopy:fe,readBufferCopy:fe,readUint8ArrayCopy:s,readUint8ArrayBufferCopy:te,readBytesArrayBufferCopy:P,readArrayBufferCopy:P,read8BytesFloatCopy:(l,g,b)=>W.slice(h[b]+l>>>3,h[b]+g>>>3),read8BytesFloatView:(l,g,b)=>W.subarray(h[b]+l>>>3,h[b]+g>>>3),maxBytes:A}};var Te={Function:0,Symbol:1,Json:2,Serializable:3},Ni=(e,r,t)=>{switch(r){case Te.Function:return`KNT_ERROR_0: Function is not a valid type; name: ${typeof e.value==="function"?e.value.name||"<anonymous>":"<unknown>"}`;case Te.Symbol:return"KNT_ERROR_1: Symbol must use Symbol.for(...) keys";case Te.Json:return t==null||t.length===0?"KNT_ERROR_2: JSON stringify failed; payload must be JSON-safe":`KNT_ERROR_2: JSON stringify failed; ${t}`;case Te.Serializable:return t==null||t.length===0?"KNT_ERROR_3: Unsupported payload type; serialize it yourself":`KNT_ERROR_3: Unsupported payload type; ${t}`}},Ce=({task:e,type:r,onPromise:t,detail:n})=>{let a=Ni(e,r,n);if(!Tr)return e.value=a,e[i.FlagsToHost]=vt.Reject,!1;if(t==null)throw TypeError(a);if(!Rt(e))return!1;return queueMicrotask(()=>{nt(e),e.value=a,t(e,!0,a)}),!1};var oa=Symbol.for("knitting.payloadCodec.transportFinalizer");class mr{header;payload;constructor(e,r){this.header=e,this.payload=r}[Symbol.dispose](){let e=this.payload;if(e!==null&&typeof e==="object")e[Symbol.dispose]?.()}[oa](){let e=this.payload;if(e===null||typeof e!=="object")return;let r=e[oa];return typeof r==="function"?r.call(e):void 0}}var Dt=()=>{throw Error('BufferReference cannot run in runtime "browser"')};var gr="knitting.sharedArrayBuffer",On=Symbol.for("knitting.sharedArrayBuffer.numericTransfer"),Ut=8,Di=2,Wi=Symbol.for("knitting.payloadCodec"),ia=()=>{let e=He();if(e!==void 0&&typeof e.pid==="number")return e.pid;let r=globalThis.Deno;if(typeof r?.pid==="number")return r.pid;return 0},Cn=`${Me}:${ia()}`,Ui=typeof SharedArrayBuffer==="function",Hi=(e)=>Ui&&e instanceof SharedArrayBuffer,aa=new WeakMap,Wt=new WeakMap,sa=new WeakMap,In=new Map,ji=typeof FinalizationRegistry==="function"?new FinalizationRegistry((e)=>{try{Dt().releaseShared(e)}catch{}}):void 0,Mn=(e)=>[Number(e&0xffffffffn)>>>0,Number(e>>32n&0xffffffffn)>>>0],_n=(e,r)=>BigInt(r>>>0)<<32n|BigInt(e>>>0),Ki=(e)=>{switch(e){case"node":return 1;case"deno":return 2;case"bun":return 3;default:return 0}},Gi=(e)=>{switch(e){case 1:return"node";case 2:return"deno";case 3:return"bun";default:return}},$i=(e)=>{if(e===void 0)return;let r=sa.get(e);if(r===void 0)r=new Set,sa.set(e,r);return r},zi=(e)=>{let r=aa.get(e);if(r===void 0){let t=Dt().produceShared(e);r={token:t.token,pointer:t.pointer,byteLength:t.byteLength},aa.set(e,r),ji?.register(e,r.token)}return r},Yi=(e)=>({kind:gr,origin:Cn,runtime:Me,pointer:e.pointer.toString(),token:e.token.toString(),byteLength:e.byteLength}),Vi=(e)=>{if(e.byteLength>4294967295)return;let[r,t]=Mn(e.token),[n,a]=Mn(e.pointer);return[r,t,n,a,e.byteLength>>>0,Ki(Me),ia()>>>0,0]},qi=(e)=>{let[r,t]=Mn(e.token);return[r,t]},Qi=(e)=>{let r=Wt.get(e);if(r!==void 0)return r;let t=zi(e);return r=ua(e,t,Yi(t)),r},ua=(e,r,t)=>{let n=Wt.get(e);if(n!==void 0)return n;let a=Vi(r),u=qi(r);return n={[Wi]:gr,toMetadata:()=>t,[On]:(c)=>{if(a===void 0)return;let f=$i(c);if(f===void 0)return a;if(f.has(r.token))return u;return f.add(r.token),a}},Wt.set(e,n),n},Fn=(e)=>{if(Hi(e))return Qi(e);return Wt.get(e)},Ji=(e)=>{if(e===null||typeof e!=="object")return!1;let r=e;return r.kind===gr&&typeof r.origin==="string"&&typeof r.runtime==="string"&&typeof r.pointer==="string"&&typeof r.token==="string"&&typeof r.byteLength==="number"&&Number.isInteger(r.byteLength)&&r.byteLength>=0},ca=(e,r)=>{if(e.origin!==Cn)throw Error(`SharedArrayBuffer cannot cross a process boundary (origin ${e.origin} != ${Cn}); it is shared by reference to thread workers only.`);let t=BigInt(e.token),n=In.get(t);if(n!==void 0)return n;if(r)throw TypeError("SharedArrayBuffer cache miss for warm token payload");let a=Dt().adoptShared({token:t,pointer:BigInt(e.pointer),byteOffset:0,byteLength:e.byteLength});return In.set(t,a.buffer),ua(a.buffer,{token:t,pointer:BigInt(e.pointer),byteLength:e.byteLength},e),a.buffer},Xi=(e)=>{if(!Ji(e))throw TypeError("Invalid SharedArrayBuffer payload metadata");return ca(e,!1)},Zi=(e)=>{if(e.length===Di){let a=_n(e[0]??0,e[1]??0),u=In.get(a);if(u!==void 0)return u;throw TypeError("SharedArrayBuffer cache miss for warm token payload")}let r=Gi(e[5]??0);if(r===void 0)throw TypeError("Invalid SharedArrayBuffer numeric runtime");let t=e[6];if(t===void 0||!Number.isInteger(t)||t<0)throw TypeError("Invalid SharedArrayBuffer numeric origin");if(e.length!==Ut)throw TypeError("Invalid SharedArrayBuffer numeric word count");let n={kind:gr,origin:`${r}:${t>>>0}`,runtime:r,pointer:_n(e[2]??0,e[3]??0).toString(),token:_n(e[0]??0,e[1]??0).toString(),byteLength:e[4]??0};return ca(n,!1)},eu=globalThis,ru=eu.__KNITTING_PAYLOAD_CODECS__??=Object.create(null);ru[gr]={decode:Xi,decodeNumeric:Zi};var jt=(e)=>!1,Ht=()=>{throw Error("ProcessSharedBuffer is unavailable in the browser build")};class Lr{constructor(){Ht()}static create=Ht;static fromMetadata=Ht;toMetadata=Ht}var fa=Symbol.for("knitting.numericArray");class Kt extends Array{}Object.defineProperty(Kt.prototype,fa,{value:!0,enumerable:!1,writable:!1,configurable:!1});var Nn=(e)=>e[fa]===!0,Dn=(e)=>{let r=e.length,t=new Kt(r);for(let n=0;n<r;n++)t[n]=e[n];return t};var jn=new ArrayBuffer(8),$t=new Float64Array(jn),Aa=new BigInt64Array(jn),rr=new Uint32Array(jn),Ba=new TextEncoder,zt=globalThis.Buffer,la=typeof zt?.byteLength==="function"?(e,r)=>zt.byteLength(e,r):void 0,tu=(e)=>typeof zt?.isBuffer==="function"&&zt.isBuffer(e),nu=(e)=>e!=null&&typeof e==="object"&&Object.getPrototypeOf(e)===Uint8Array.prototype,ou=!la?(e)=>Ba.encode(e).byteLength:(e)=>la(e,"utf8"),au=-(1n<<63n),su=(1n<<63n)-1n,{parse:hr,stringify:Kr}=JSON,{for:Wn,keyFor:iu}=Symbol,wa=Wn("knitting.payloadCodec"),Kn="knitting.bufferReference",Gn="knitting.processSharedBuffer",Ta=globalThis,ka=Object.getPrototypeOf,qt=Object.prototype.hasOwnProperty,Yt=Array.isArray,Ea=Object.prototype,da="Unsupported object type. Allowed: plain object, array, Error, Date, Envelope, Buffer, ArrayBuffer, DataView, typed arrays, and registered external payloads. Serialize it yourself.",ya="Envelope payload must be an ArrayBuffer, SharedArrayBuffer, ProcessSharedBuffer, or BufferReference.",uu="Envelope header must be a JSON-like value or string.",cu="Envelope header cannot contain Promise values.",fu="Dynamic payload exceeds maxPayloadBytes.",lu="Dynamic payload buffer capacity exceeded.",Gr="SharedArrayBuffer and BufferReference are process-local pointer payloads and cannot cross a process-worker boundary; use ProcessSharedBuffer instead.",pa="Reserved Knitting external payload codec cannot be forged.",$r=(e)=>e===gr||e===Kn,ma=(e)=>$r(e)||e===Gn,du=(e)=>{let r=ka(e);return r===Ea||r===null},ga=(e)=>{let r=e[wa];return typeof r==="string"?r:void 0},yu=(e)=>{switch(e){case"node":return 1;case"deno":return 2;case"bun":return 3;default:return 0}},pu=(e)=>{switch(e){case"shared-array-buffer":return 1;case"external-array-buffer":return 2;default:return 0}},jr=(e)=>typeof e==="number"&&Number.isInteger(e)&&e>=0&&e<=4294967295,ha=(e)=>typeof e.toMetadata==="function"&&typeof e[wa]==="string",ba=(e)=>{if(at(e))return It.prototype.toMetadata.call(e);if(jt(e))return Lr.prototype.toMetadata.call(e);return e.toMetadata()},Gt=(e,r)=>{let t=hr(e);if(!Yt(t)||t.length!==2)return t;let n=t[0],a=t[1];if(typeof n!=="string")return{codec:n,metadata:a};if(r&&$r(n))throw TypeError(Gr);let u=Ta.__KNITTING_PAYLOAD_CODECS__?.[n];return typeof u?.decode==="function"?u.decode(a):{codec:n,metadata:a}},Vt=8,Un=8,mu=4294967295,$n=(e,r)=>{let t=Ta.__KNITTING_PAYLOAD_CODECS__?.[e];if(typeof t?.decodeNumeric==="function")return t.decodeNumeric(r);return{codec:e,metadata:Array.from(r)}},gu=(e)=>$n(Gn,e),hu=(e)=>$n(Kn,e),bu=(e)=>$n(gr,e),Su=(e)=>{let r=e.value;switch(typeof r){case"number":if(r!==r)return e[i.Type]=Ge.NaN,!0;return $t[0]=r,e[i.Type]=Ge.Float64,e[i.Start]=rr[0],e[i.End]=rr[1],!0;case"boolean":return e[i.Type]=r?Ge.True:Ge.False,!0;case"undefined":return e[i.Type]=Ge.Undefined,!0;case"bigint":if(r<au||r>su)return!1;return Aa[0]=r,e[i.Type]=Ge.BigInt,e[i.Start]=rr[0],e[i.End]=rr[1],!0;case"object":if(r===null)return e[i.Type]=Ge.Null,!0;return!1;default:return!1}},Hn=(e,r)=>{if(e instanceof Promise)return!0;if(e===null||typeof e!=="object")return!1;let t=e,n=r??new Set;if(n.has(t))return!1;if(n.add(t),Yt(t)){let u=t;for(let c=0;c<u.length;c++)if(Hn(u[c],n))return!0;return!1}if(!du(t))return!1;let a=t;for(let u in a){if(!qt.call(a,u))continue;if(Hn(a[u],n))return!0}return!1},Ra=(e)=>{if(e===null||e===void 0)return e;switch(typeof e){case"string":case"number":case"boolean":return e;case"bigint":return e.toString();case"symbol":case"function":return String(e)}if(e instanceof Error){let r={name:e.name,message:e.message};if(typeof e.stack==="string")r.stack=e.stack;if(qt.call(e,"cause"))r.cause=Ra(e.cause);return r}try{return hr(Kr(e))}catch{return String(e)}},Au=(e)=>{let r={name:e.name,message:e.message};if(typeof e.stack==="string")r.stack=e.stack;if(qt.call(e,"cause"))r.cause=Ra(e.cause);return r},Bu=(e)=>{let r;try{r=hr(e)}catch{return Error(e)}if(r==null||typeof r!=="object")return Error(String(r));let t=r,n=Error(typeof t.message==="string"?t.message:"");if(typeof t.name==="string"&&t.name.length>0)n.name=t.name;if(typeof t.stack==="string")try{n.stack=t.stack}catch{}if(qt.call(t,"cause"))n.cause=t.cause;return n},Sa=(e)=>{let r=e[0],t=0n;for(let n=e.length-1;n>=1;n--)t=t<<8n|BigInt(e[n]);return r===1?-t:t},wu=(e,r,t)=>{let n=r??fr,a=Rn({slotCount:we.slots,slotStrideU32:n,slotLengthU32:ot,baseU32:we.header});if(e.byteLength<Math.max(a,bn))return null;return na({headersBuffer:e,slotStrideU32:n,textCompat:t})},xa=(e,r,t)=>{let n=wu(e,r,t);if(n===null)throw RangeError("headersBuffer is too small for static payload IO");return n},Tu=({lockSector:e,payload:r,sab:t,payloadConfig:n,headersBuffer:a,headerSlotStrideU32:u,textCompat:c,onPromise:f,processBoundary:A=!1})=>{let N=r?.sab??t,v=cr({sab:N,options:r?.config??n}),W=v.maxPayloadBytes,{allocTask:R,setSlotLength:h,free:O}=wn({lockSector:e}),{writeBinary:L,writeBuffer:T,writeArrayBuffer:D,write8Binary:Q,writeUtf8:X}=vn({sab:N,payloadConfig:v,textCompat:c?.payload}),{maxBytes:C,writeBinary:z,writeBuffer:ee,writeArrayBuffer:ie,writeExactUint8Array:M,writeU32Words:Z,write8Binary:G,writeUtf8:j}=xa(a,u,c?.headers),V=(o,_,x)=>Ce({task:o,type:Te.Serializable,onPromise:f,detail:`${fu} limit=${W}; actual=${_}; type=${x}.`}),fe=(o)=>Ce({task:o,type:Te.Serializable,onPromise:f,detail:lu}),te=(o,_,x)=>{if(_<=W)return!0;return V(o,_,x)},ae=(o,_,x,d)=>{let F=_.length*3;if(F+x<=W)return F;let H=ou(_),q=H+x;if(q>W)return V(o,q,d),-1;return H},s=(o,_,x)=>ae(o,_,0,x),P=(o,_)=>(o[i.PayloadLen]=_,R(o)),m=-1,k=(o,_)=>{o[i.PayloadLen]=_;let x=R(o);return m=x,x},l=()=>{if(m!==-1)O(m),m=-1},g=(o,_)=>{if(O(_),m===_)m=-1;return fe(o)},b=new Uint8Array(16),K=(o)=>{let _=0,x=o;if(o<0n)_=1,x=-o;let d=1;while(x>0n){if(d>=b.byteLength){let F=new Uint8Array(b.byteLength<<1);F.set(b,0),b=F}b[d++]=Number(x&0xffn),x>>=8n}return b[0]=_,d},S=(o)=>{b.fill(0,0,o)},y=(o,_)=>{let x;try{x=Kr(Au(_))}catch(H){let q=H instanceof Error?H.message:String(H);return Ce({task:o,type:Te.Serializable,onPromise:f,detail:q})}let d=s(o,x,"Error");if(d<0)return!1;o[i.Type]=I.Error;let F=k(o,d),U=X(x,o[i.Start],d);if(U<0)return g(o,F);return o[i.PayloadLen]=U,h(F,U),o.value=null,!0},w=(o,_,x,d,F)=>{let U=x.byteLength;if(U<=C){let pe=z(x,_);if(pe!==-1)return o[i.Type]=F,o[i.PayloadLen]=pe,o.value=null,!0}if(o[i.Type]=d,!te(o,U,vo(d)))return!1;let H=k(o,U),q=L(x,o[i.Start]);if(q<0)return g(o,H);return o[i.PayloadLen]=q,h(H,q),o.value=null,!0},oe=(o,_,x)=>{let d=x.byteLength;if(d<=C)return M(x,_),o[i.Type]=I.StaticBinary,o[i.PayloadLen]=d,o.value=null,!0;if(o[i.Type]=I.Binary,!te(o,d,"Binary"))return!1;let F=k(o,d),U=L(x,o[i.Start]);if(U<0)return g(o,F);return o[i.PayloadLen]=U,h(F,U),o.value=null,!0},se=(o,_,x)=>{let d=x.byteLength;if(d<=C){let H=ee(x,_);if(H!==-1)return o[i.Type]=I.StaticBuffer,o[i.PayloadLen]=H,o.value=null,!0}if(o[i.Type]=I.Buffer,!te(o,d,"Buffer"))return!1;let F=k(o,d),U=T(x,o[i.Start]);if(U<0)return g(o,F);return o[i.PayloadLen]=U,h(F,U),o.value=null,!0},Se=(o,_,x)=>{let d=x.byteLength;if(d<=C){let H=G(x,_);if(H!==-1)return o[i.Type]=I.StaticFloat64Array,o[i.PayloadLen]=H,o.value=null,!0}if(o[i.Type]=I.Float64Array,!te(o,d,"Float64Array"))return!1;let F=k(o,d),U=Q(x,o[i.Start]);if(U<0)return g(o,F);return o[i.PayloadLen]=U,h(F,U),o.value=null,!0},Le=new Float64Array(0),he=(o,_,x)=>{let d=x.length;if(Le.length<d)Le=new Float64Array(d);for(let pe=0;pe<d;pe++)Le[pe]=x[pe];let F=Le.subarray(0,d),U=F.byteLength;if(U<=C){let pe=G(F,_);if(pe!==-1)return o[i.Type]=I.StaticNumericArray,o[i.PayloadLen]=pe,o.value=null,!0}if(o[i.Type]=I.NumericArray,!te(o,U,"NumericArray"))return!1;let H=k(o,U),q=Q(F,o[i.Start]);if(q<0)return g(o,H);return o[i.PayloadLen]=q,h(H,q),o.value=null,!0},Ae=(o,_,x)=>{let d=x.byteLength;if(d<=C){let H=ie(x,_);if(H!==-1)return o[i.Type]=I.StaticArrayBuffer,o[i.PayloadLen]=H,o.value=null,!0}if(o[i.Type]=I.ArrayBuffer,!te(o,d,"ArrayBuffer"))return!1;let F=k(o,d),U=D(x,o[i.Start]);if(U<0)return g(o,F);return o[i.PayloadLen]=U,h(F,U),o.value=null,!0},ce=new Uint32Array(Vt),ye=new Uint32Array(Ut),Oe=(o,_,x)=>{let d=x.descriptor;if(d===void 0||d.name!==void 0||!jr(d.fd)||!jr(d.size)||!jr(d.byteLength)||!jr(x.byteOffset)||!jr(x.byteLength))return!1;let F=d.baseAddressMod64;if(F!==void 0&&!jr(F))return!1;return ce[0]=d.fd,ce[1]=d.size,ce[2]=d.byteLength,ce[3]=x.byteOffset,ce[4]=x.byteLength,ce[5]=yu(d.runtime),ce[6]=pu(d.kind),ce[7]=F===void 0?mu:F,o[i.Type]=I.ProcessSharedBuffer,o[i.PayloadLen]=Z(ce,Vt,_),o.value=null,!0},Ne=(o,_,x)=>{let d=at(x)?It.prototype[Sn].call(x):x[Sn]?.();if(d===void 0)return!1;return o[i.Type]=I.BufferReference,o[i.PayloadLen]=Z(d,Un,_),kr(o,x),o.value=null,!0},De=(o,_,x)=>{let d=x[On]?.(e);if(d===void 0)return!1;return ye[0]=d[0]??0,ye[1]=d[1]??0,ye[2]=d[2]??0,ye[3]=d[3]??0,ye[4]=d[4]??0,ye[5]=d[5]??0,ye[6]=d[6]??0,ye[7]=d[7]??0,o[i.Type]=I.SharedArrayBuffer,o[i.PayloadLen]=Z(ye,d.length,_),o.value=null,!0},me=(o,_,x,d=!1)=>{let F=ga(x);if(F===void 0)return Ce({task:o,type:Te.Serializable,onPromise:f,detail:da});if(d){if(A&&$r(F))return Ce({task:o,type:Te.Serializable,onPromise:f,detail:Gr});if(F===gr&&De(o,_,x))return!0;if(F===Kn&&Ne(o,_,x))return!0;if(F===Gn&&Oe(o,_,x))return!0}else if(ma(F))return Ce({task:o,type:Te.Serializable,onPromise:f,detail:A&&$r(F)?Gr:pa});let U;try{U=Kr([F,d?ba(x):x.toMetadata()])}catch(ge){let Re=ge instanceof Error?ge.message:String(ge);return Ce({task:o,type:Te.Serializable,onPromise:f,detail:Re})}if(typeof U!=="string")return Ce({task:o,type:Te.Serializable,onPromise:f,detail:"External payload metadata must be JSON serializable."});if(U.length<=C){let ge=j(U,_);if(ge!==-1)return o[i.Type]=I.StaticExternalPayload,o[i.PayloadLen]=ge,kr(o,x),o.value=null,!0}o[i.Type]=I.ExternalPayload;let H=s(o,U,"ExternalPayload");if(H<0)return!1;let q=k(o,H),pe=X(U,o[i.Start],H);if(pe<0)return g(o,q);return o[i.PayloadLen]=pe,h(q,pe),kr(o,x),o.value=null,!0},$e=(o,_)=>($t[0]=_.getTime(),o[i.Type]=I.Date,o[i.Start]=rr[0],o[i.End]=rr[1],o.value=null,!0),Ee=(o,_,x)=>{if(Hn(_)){Ce({task:o,type:Te.Serializable,onPromise:f,detail:cu});return}if(x)return _;let d;try{d=Kr(_)}catch(F){let U=F instanceof Error?F.message:String(F);Ce({task:o,type:Te.Json,onPromise:f,detail:U});return}if(typeof d!=="string"){Ce({task:o,type:Te.Serializable,onPromise:f,detail:uu});return}return d},Be=(o)=>{if(o===null||typeof o!=="object")return;let _=Fn(o);if(_!==void 0)return{payload:_,trustedReservedCodec:!0};if(at(o)||jt(o))return{payload:o,trustedReservedCodec:!0};if(ha(o))return{payload:o,trustedReservedCodec:!1};return},tr=(o,_,x,d,F)=>{let U=new Uint8Array(F),H=U.byteLength,q=H>0?H:1,pe=j(x,_);if(pe!==-1){if(!te(o,q,"EnvelopeStaticHeaderPayload"))return!1;let Y=k(o,q);if(o[i.Type]=d?I.EnvelopeStaticHeaderString:I.EnvelopeStaticHeader,o[i.PayloadLen]=pe,o[i.End]=H,H>0){let ue=L(U,o[i.Start]);if(ue<0)return g(o,Y);h(Y,ue)}return o.value=null,!0}let ge=ae(o,x,H,d?"EnvelopeDynamicHeaderString":"EnvelopeDynamicHeader");if(ge<0)return!1;o[i.Type]=d?I.EnvelopeDynamicHeaderString:I.EnvelopeDynamicHeader;let Re=k(o,ge+H),ne=o[i.Start],B=X(x,ne,ge);if(B<0)return g(o,Re);if(H>0){if(L(U,ne+B)<0)return g(o,Re)}return o[i.PayloadLen]=B,o[i.End]=H,h(Re,B+H),o.value=null,!0},nr=(o,_,x,d,F,U)=>{let H=ga(F);if(H===void 0)return Ce({task:o,type:Te.Serializable,onPromise:f,detail:ya});if(U){if(A&&$r(H))return Ce({task:o,type:Te.Serializable,onPromise:f,detail:Gr})}else if(ma(H))return Ce({task:o,type:Te.Serializable,onPromise:f,detail:A&&$r(H)?Gr:pa});let q;try{q=Kr([H,U?ba(F):F.toMetadata()])}catch(Ie){let Pe=Ie instanceof Error?Ie.message:String(Ie);return Ce({task:o,type:Te.Serializable,onPromise:f,detail:Pe})}if(typeof q!=="string")return Ce({task:o,type:Te.Serializable,onPromise:f,detail:"Envelope body metadata must be JSON serializable."});let pe=Ba.encode(q),ge=pe.byteLength,Re=j(x,_);if(Re!==-1){if(!te(o,ge,"EnvelopeStaticHeaderExternal"))return!1;let Ie=k(o,ge);o[i.Type]=d?I.EnvelopeStaticHeaderStringExternal:I.EnvelopeStaticHeaderExternal,o[i.PayloadLen]=Re,o[i.End]=ge;let Pe=L(pe,o[i.Start]);if(Pe<0)return g(o,Ie);return h(Ie,Pe),kr(o,F),o.value=null,!0}let ne=ae(o,x,ge,d?"EnvelopeDynamicHeaderStringExternal":"EnvelopeDynamicHeaderExternal");if(ne<0)return!1;o[i.Type]=d?I.EnvelopeDynamicHeaderStringExternal:I.EnvelopeDynamicHeaderExternal;let B=k(o,ne+ge),Y=o[i.Start],ue=X(x,Y,ne);if(ue<0)return g(o,B);if(L(pe,Y+ue)<0)return g(o,B);return o[i.PayloadLen]=ue,o[i.End]=ge,h(B,ue+ge),kr(o,F),o.value=null,!0},Ue=(o,_,x)=>{let{header:d,payload:F}=x,U=typeof d==="string";if(F instanceof ArrayBuffer){let q=Ee(o,d,U);if(q===void 0)return!1;return tr(o,_,q,U,F)}let H=Be(F);if(H!==void 0){let q=Ee(o,d,U);if(q===void 0)return!1;return nr(o,_,q,U,H.payload,H.trustedReservedCodec)}return Ce({task:o,type:Te.Serializable,onPromise:f,detail:ya})},or=(o,_)=>{if(Rt(o))_.then((x)=>{nt(o),o.value=x,f(o,!1,x)},(x)=>{nt(o),o.value=x,f(o,!0,x)});return!1};return(o,_)=>{let x=o.value;if(Su(o))return!0;switch(typeof x){case"bigint":{let d=K(x),F=b.subarray(0,d);if(d<=C){let q=z(F,_);if(q!==-1)return o[i.Type]=I.StaticBigInt,o[i.PayloadLen]=q,S(d),o.value=null,!0}if(o[i.Type]=I.BigInt,!te(o,d,"BigInt"))return S(d),!1;let U=P(o,d),H=L(F,o[i.Start]);if(H<0)return S(d),g(o,U);return o[i.PayloadLen]=H,h(U,H),S(d),o.value=null,!0}case"function":return Ce({task:o,type:Te.Function,onPromise:f});case"object":m=-1;try{let d=x,F=Fn(d);if(F!==void 0)return me(o,_,F,!0);let U=ka(d);if(nu(d))return oe(o,_,d);if(Yt(d)&&Nn(d))return he(o,_,d);if(Yt(d)||U===Ea||U===null){let q;try{q=Kr(d)}catch(ne){let B=ne instanceof Error?ne.message:String(ne);return Ce({task:o,type:Te.Json,onPromise:f,detail:B})}if(q.length<=C){let ne=j(q,_);if(ne!==-1)return o[i.Type]=I.StaticJson,o[i.PayloadLen]=ne,o.value=null,!0}o[i.Type]=I.Json;let pe=s(o,q,"Json");if(pe<0)return!1;let ge=k(o,pe),Re=X(q,o[i.Start],pe);if(Re<0)return g(o,ge);return o[i.PayloadLen]=Re,h(ge,Re),o.value=null,!0}if(at(d)||jt(d))return me(o,_,d,!0);let H=d.constructor;if(tu(d))return se(o,_,d);switch(H){case ArrayBuffer:return Ae(o,_,d);case Int32Array:{let q=d;return w(o,_,new Uint8Array(q.buffer,q.byteOffset,q.byteLength),I.Int32Array,I.StaticInt32Array)}case Float64Array:return Se(o,_,d);case BigInt64Array:{let q=d;return w(o,_,new Uint8Array(q.buffer,q.byteOffset,q.byteLength),I.BigInt64Array,I.StaticBigInt64Array)}case BigUint64Array:{let q=d;return w(o,_,new Uint8Array(q.buffer,q.byteOffset,q.byteLength),I.BigUint64Array,I.StaticBigUint64Array)}case DataView:{let q=d;return w(o,_,new Uint8Array(q.buffer,q.byteOffset,q.byteLength),I.DataView,I.StaticDataView)}case Date:return $e(o,d);case mr:return Ue(o,_,d);case Promise:return or(o,d);case Error:return y(o,d)}if(d instanceof Date)return $e(o,d);if(d instanceof mr)return Ue(o,_,d);if(d instanceof Promise)return or(o,d);if(d instanceof Error)return y(o,d);if(ha(d))return me(o,_,d);return Ce({task:o,type:Te.Serializable,onPromise:f,detail:da})}catch(d){l();let F=d instanceof Error?d.message:String(d);return Ce({task:o,type:Te.Serializable,onPromise:f,detail:F})}case"string":{let d=x;if(d.length<=C){let q=j(d,_);if(q!==-1)return o[i.Type]=I.StaticString,o[i.PayloadLen]=q,o.value=null,!0}o[i.Type]=I.String;let F=s(o,d,"String");if(F<0)return!1;let U=P(o,F),H=X(d,o[i.Start],F);if(H<0)return g(o,U);return o[i.PayloadLen]=H,h(U,H),o.value=null,!0}case"symbol":{let d=iu(x);if(d===void 0)return Ce({task:o,type:Te.Symbol,onPromise:f});if(d.length*3<=C){let q=j(d,_);if(q!==-1)return o[i.Type]=I.StaticSymbol,o[i.PayloadLen]=q,o.value=null,!0}o[i.Type]=I.Symbol;let F=s(o,d,"Symbol");if(F<0)return!1;let U=P(o,F),H=X(d,o[i.Start],F);if(H<0)return g(o,U);return o[i.PayloadLen]=H,h(U,H),o.value=null,!0}}return!1}},ku=({lockSector:e,payload:r,sab:t,payloadConfig:n,headersBuffer:a,headerSlotStrideU32:u,textCompat:c,host:f,processBoundary:A=!1})=>{let N=r?.sab??t,v=cr({sab:N,options:r?.config??n}),{free:W}=wn({lockSector:e}),R=(s)=>W(Co(s)),{readUtf8:h,readBytesCopy:O,readBytesBufferCopy:L,readBufferCopy:T,readBytesArrayBufferCopy:D,readArrayBufferCopy:Q,read8BytesFloatCopy:X,read8BytesFloatView:C}=vn({sab:N,payloadConfig:v,textCompat:c?.payload}),{readUtf8:z,readBytesBufferCopy:ee,readBufferCopy:ie,readUint8ArrayCopy:M,readBytesArrayBufferCopy:Z,readArrayBufferCopy:G,read8BytesFloatCopy:j,readU32Words:V}=xa(a,u,c?.headers),fe=new Uint32Array(Vt),te=new Uint32Array(Ut),ae=new Uint32Array(Un);return(s,P,m)=>{let k=s[i.Type];if(A&&(k===I.SharedArrayBuffer||k===I.BufferReference))throw TypeError(Gr);switch(k){case Ge.BigInt:rr[0]=s[i.Start],rr[1]=s[i.End],s.value=Aa[0];return;case Ge.True:s.value=!0;return;case Ge.False:s.value=!1;return;case Ge.Float64:rr[0]=s[i.Start],rr[1]=s[i.End],s.value=$t[0];return;case Ge.NaN:s.value=NaN;return;case Ge.Null:s.value=null;return;case Ge.Undefined:s.value=void 0;return;case I.String:s.value=h(s[i.Start],s[i.Start]+s[i.PayloadLen]),R(s);return;case I.StaticString:s.value=z(0,s[i.PayloadLen],P);return;case I.Json:s.value=hr(h(s[i.Start],s[i.Start]+s[i.PayloadLen])),R(s);return;case I.StaticJson:s.value=hr(z(0,s[i.PayloadLen],P));return;case I.EnvelopeStaticHeader:case I.EnvelopeStaticHeaderString:{let l=z(0,s[i.PayloadLen],P),g=s[i.Type]===I.EnvelopeStaticHeaderString?l:hr(l),b=s[i.End],K=b>0?D(s[i.Start],s[i.Start]+b):new ArrayBuffer(0);s.value=new mr(g,K),R(s);return}case I.EnvelopeDynamicHeader:case I.EnvelopeDynamicHeaderString:{let l=s[i.Start],g=l+s[i.PayloadLen],b=s[i.End],K=h(l,g),S=s[i.Type]===I.EnvelopeDynamicHeaderString?K:hr(K),y=b>0?D(g,g+b):new ArrayBuffer(0);s.value=new mr(S,y),R(s);return}case I.EnvelopeStaticHeaderExternal:case I.EnvelopeStaticHeaderStringExternal:{let l=z(0,s[i.PayloadLen],P),g=s[i.Type]===I.EnvelopeStaticHeaderStringExternal?l:hr(l),b=s[i.Start],K=Gt(h(b,b+s[i.End]),A);s.value=new mr(g,K),R(s);return}case I.EnvelopeDynamicHeaderExternal:case I.EnvelopeDynamicHeaderStringExternal:{let l=s[i.Start],g=l+s[i.PayloadLen],b=h(l,g),K=s[i.Type]===I.EnvelopeDynamicHeaderStringExternal?b:hr(b),S=Gt(h(g,g+s[i.End]),A);s.value=new mr(K,S),R(s);return}case I.BigInt:s.value=Sa(L(s[i.Start],s[i.Start]+s[i.PayloadLen])),R(s);return;case I.StaticBigInt:s.value=Sa(ee(0,s[i.PayloadLen],P));return;case I.Symbol:s.value=Wn(h(s[i.Start],s[i.Start]+s[i.PayloadLen])),R(s);return;case I.StaticSymbol:s.value=Wn(z(0,s[i.PayloadLen],P));return;case I.Int32Array:{let l=L(s[i.Start],s[i.Start]+s[i.PayloadLen]);s.value=new Int32Array(l.buffer,l.byteOffset,l.byteLength>>>2),R(s);return}case I.StaticInt32Array:{let l=ee(0,s[i.PayloadLen],P);s.value=new Int32Array(l.buffer,l.byteOffset,l.byteLength>>>2);return}case I.Float64Array:{s.value=X(s[i.Start],s[i.Start]+s[i.PayloadLen]),R(s);return}case I.StaticFloat64Array:s.value=j(0,s[i.PayloadLen],P);return;case I.NumericArray:{s.value=Dn(C(s[i.Start],s[i.Start]+s[i.PayloadLen])),R(s);return}case I.StaticNumericArray:s.value=Dn(j(0,s[i.PayloadLen],P));return;case I.BigInt64Array:{let l=L(s[i.Start],s[i.Start]+s[i.PayloadLen]);s.value=new BigInt64Array(l.buffer,l.byteOffset,l.byteLength>>>3),R(s);return}case I.StaticBigInt64Array:{let l=ee(0,s[i.PayloadLen],P);s.value=new BigInt64Array(l.buffer,l.byteOffset,l.byteLength>>>3);return}case I.BigUint64Array:{let l=L(s[i.Start],s[i.Start]+s[i.PayloadLen]);s.value=new BigUint64Array(l.buffer,l.byteOffset,l.byteLength>>>3),R(s);return}case I.StaticBigUint64Array:{let l=ee(0,s[i.PayloadLen],P);s.value=new BigUint64Array(l.buffer,l.byteOffset,l.byteLength>>>3);return}case I.DataView:{let l=L(s[i.Start],s[i.Start]+s[i.PayloadLen]);s.value=new DataView(l.buffer,l.byteOffset,l.byteLength),R(s);return}case I.StaticDataView:{let l=ee(0,s[i.PayloadLen],P);s.value=new DataView(l.buffer,l.byteOffset,l.byteLength);return}case I.ExternalPayload:s.value=Gt(h(s[i.Start],s[i.Start]+s[i.PayloadLen]),A),R(s);return;case I.StaticExternalPayload:s.value=Gt(z(0,s[i.PayloadLen],P),A);return;case I.ProcessSharedBuffer:s.value=gu(V(fe,Vt,P));return;case I.SharedArrayBuffer:s.value=bu(V(te,s[i.PayloadLen]>>>2,P));return;case I.BufferReference:s.value=hu(V(ae,Un,P));return;case I.Date:rr[0]=s[i.Start],rr[1]=s[i.End],s.value=new Date($t[0]);return;case I.Error:s.value=Bu(h(s[i.Start],s[i.Start]+s[i.PayloadLen])),R(s);return;case I.Binary:{let l=L(s[i.Start],s[i.Start]+s[i.PayloadLen]);s.value=new Uint8Array(l.buffer,l.byteOffset,l.byteLength)}R(s);return;case I.StaticBinary:s.value=M(0,s[i.PayloadLen],P);return;case I.ArrayBuffer:s.value=Q(s[i.Start],s[i.Start]+s[i.PayloadLen]),R(s);return;case I.StaticArrayBuffer:s.value=G(0,s[i.PayloadLen],P);return;case I.Buffer:s.value=T(s[i.Start],s[i.Start]+s[i.PayloadLen]),R(s);return;case I.StaticBuffer:s.value=ie(0,s[i.PayloadLen],P);return}}};Lo(Tu,ku);var zr=Symbol.for("task");var Eu=/^[A-Za-z]:[\\/]/,Ru=/^\\\\[^\\/?]+\\[^\\/?]+/,zn=(e)=>encodeURI(e).replace(/\?/g,"%3F").replace(/#/g,"%23"),xu=()=>gt("node:url")?.pathToFileURL,Lu=(e)=>{let r=e.startsWith("/")?e:`/${e}`;return`file://${zn(r)}`},br=(e)=>{if(Eu.test(e)){let r=e.replace(/\\/g,"/");return`file:///${zn(r)}`}if(Ru.test(e)){let r=e.replace(/^\\\\+/,"").replace(/\\/g,"/");return`file://${zn(r)}`}try{return new URL(e).href}catch{let r=xu();return r?r(e).href:Lu(e)}},La=(e)=>{if(!Br||!e.startsWith("file://"))return e;let r=e.slice(7),t=r.startsWith("/")?r:`/${r}`;try{return decodeURIComponent(t)}catch{return t}};var it={Reject:0,Resolve:1},Pu=(e)=>{if(e==null)return;if(typeof e==="number"){let t=Math.floor(e);return t>=0?{ms:t,kind:it.Reject,value:Error("Task timeout")}:void 0}let r=Math.floor(e.time);if(!(r>=0))return;if("default"in e)return{ms:r,kind:it.Resolve,value:e.default};if(e.maybe===!0)return{ms:r,kind:it.Resolve,value:void 0};if("error"in e)return{ms:r,kind:it.Reject,value:e.error};return{ms:r,kind:it.Reject,value:Error("Task timeout")}},vu=(e,r)=>e.f,Pa=async({list:e,ids:r,names:t,at:n,permission:a})=>{let u=e.map((h)=>br(h)),c=new Set(t),A=(await Promise.all(u.map(async(h)=>{let O=await import(La(h)),L=Object.entries(O).filter(([D,Q])=>Q!=null&&typeof Q==="object"&&Q?.[zr]===!0).map(([D,Q])=>({...Q,name:D})),T=Object.entries(O).filter(([D,Q])=>c.has(D)&&typeof Q==="function").map(([D,Q])=>({f:Q,id:-1,importedFrom:h,at:-1,name:D,[zr]:!0}));return[...L,...T]}))).flat(),N=u.length===1&&n.length>0,v=N?new Set(n):null,W=N?u[0]:null;return A.filter((h)=>N?h.importedFrom===W&&v.has(h.at):r.includes(h.id)).sort((h,O)=>h.name.localeCompare(O.name)).map((h)=>({...h,run:vu(h,a),timeout:Pu(h.timeout)}))};var _u={thisIsAHint:0},Cu=(()=>{let e=globalThis,r=typeof e.gc==="function"?()=>e.gc():void 0;if(r){try{delete e.gc}catch{e.gc=void 0}if(e.global)try{delete e.global.gc}catch{e.global.gc=void 0}}return r??(()=>{})})();var{load:Iu,store:va}=Atomics,ut=typeof Atomics.wait==="function"?Atomics.wait:void 0,_a=performance.now.bind(performance),Ca=ut===void 0||typeof SharedArrayBuffer!=="function"?void 0:new Int32Array(new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT)),Ia="pause"in Atomics?Atomics.pause:void 0,Qt=globalThis,Mu=Qt.process?.platform==="win32"&&typeof Qt.process?.versions?.node==="string"&&Qt.process?.versions?.bun===void 0&&Qt.Deno===void 0,Ou=(e)=>Mu?1:Number.isFinite(e)?e:1/0,Fu=(e)=>Number.isFinite(e)?Math.min(Math.max(e,0),1):1,Jt=({pauseInNanoseconds:e})=>{let r=e??250;if(!Ia||r<=0)return()=>{};return()=>Ia(r)},Yn=Jt({}),Ma=({at:e,opView:r,pauseInNanoseconds:t,rxStatus:n,txStatus:a,enqueueLock:u,write:c,nativeWaitU32:f,useSharedMemoryWait:A=!0,flushBeforeClaim:N=!1})=>{let v=t===void 0?Yn:Jt({pauseInNanoseconds:t}),W=()=>{if(!c)return!1;let h=c();if(typeof h==="number")return h>0;return h===!0},R=N?()=>{let h=W();return u()||h}:()=>{let h=u();return W()||h};return(h,O,L)=>{let T=_a()+O/1000;Cu();let D=0;while(!0){if(Iu(r,e)!==h||a[_u.thisIsAHint]===1)return;if(R())return;if(v(),(D++&63)===0&&_a()>=T)break}if(R())return;if(va(n,0,0),f!==void 0)f(r.buffer,r.byteOffset+e*Int32Array.BYTES_PER_ELEMENT,h>>>0,Ou(L));else if(A&&ut&&r.buffer instanceof SharedArrayBuffer)ut(r,e,h,L??1/0);else if(ut&&Ca)ut(Ca,0,0,Fu(L));va(n,0,1)}};var ct=(e)=>e instanceof Error?e.message:String(e),Xt=(e,r,t)=>{let n=t===void 0?"":`: ${ct(t)}`;throw Error(`KNT_ERROR_PROCESS_GUARD_INSTALL: ${e} ${r}${n}`)},Vn=()=>{let e=He();if(!e)return;if(e.__knittingTerminationGuard===!0)return;let r=(a)=>{throw Error(`KNT_ERROR_PROCESS_GUARD: ${a} is disabled in worker tasks`)},t=(a)=>{try{Object.defineProperty(e,a,{configurable:!1,writable:!1,value:(...u)=>r(`process.${a}`)})}catch(u){try{e[a]=(...c)=>r(`process.${a}`)}catch(c){Xt(`process.${a}`,"install failed",[ct(u),ct(c)].join("; "))}}if(typeof e[a]!=="function")Xt(`process.${a}`,"install verification failed")};t("exit"),t("kill"),t("abort"),t("reallyExit");let n=globalThis;if(n.Deno&&typeof n.Deno.exit==="function"){try{Object.defineProperty(n.Deno,"exit",{configurable:!1,writable:!1,value:(a)=>r("Deno.exit")})}catch(a){try{n.Deno.exit=(u)=>r("Deno.exit")}catch(u){Xt("Deno.exit","install failed",[ct(a),ct(u)].join("; "))}}if(typeof n.Deno.exit!=="function")Xt("Deno.exit","install verification failed")}e.__knittingTerminationGuard=!0},qn=()=>{let e=He();if(!e||typeof e.on!=="function")return;if(e.__knittingUnhandledRejectionSilencer===!0)return;e.__knittingUnhandledRejectionSilencer=!0,e.on("unhandledRejection",()=>{})};var Qn=()=>{let e=globalThis;if(e.__knittingPerformanceNowGuardInstalled===!0)return;e.__knittingPerformanceNowGuardInstalled=!0;let r=globalThis.performance;if(!r||typeof r.now!=="function")return;try{r.now()}catch{}};var Jn=(e)=>{let r=e;try{r.sab=void 0,r.lock=void 0,r.returnLock=void 0,r.permission=void 0}catch{}try{delete r.sab}catch{}try{delete r.lock}catch{}try{delete r.returnLock}catch{}try{delete r.permission}catch{}try{Object.freeze(r)}catch{}};var Oa=(e)=>Ze(e?.headers)&&Ze(e?.lockSector)&&Ze(e?.payload)&&Ze(e?.payloadSector)&&(e?.textCompat===void 0||Bt(e.textCompat)),Xn=({sab:e,lock:r,returnLock:t})=>{if(!Ze(e))throw Error("worker missing transport SAB");if(!Oa(r))throw Error("worker missing lock SABs");if(!Oa(t))throw Error("worker missing return lock SABs")},Zn=({list:e,ids:r,names:t,listOfFunctions:n})=>{if(n.length>0&&(t===void 0||n.length===t.length))return;if(console.log(e),console.log(r),t!==void 0)console.log(t);throw console.log(n),Error("No imports were found.")};var ro=32,eo=ro-1,Fa=Symbol.for("knitting.abortSignal.poolExhausted");var ft=({sab:e,maxSignals:r})=>{let t=Ke(e),n=new Uint32Array(t.sab,t.byteOffset,t.byteLength/Uint32Array.BYTES_PER_ELEMENT),a=n.length,u=new Uint32Array(a),c=a*ro,f=(()=>{if(!Number.isFinite(r))return c;let T=Math.floor(r);if(T<=0)return c;return Math.min(T,c)})(),A=f+1,N=0,v=0;return{max:f,closeNow:A,getSignal:()=>{if(N>=f)return A;for(let T=0;T<a;T++){let D=(v+T)%a,Q=D<<5,X=f-Q;if(X<=0)continue;let C=X>=ro?4294967295:(1<<X)-1>>>0,z=(~u[D]&C)>>>0;if(z===0)continue;let ee=(z&-z)>>>0;u[D]=(u[D]|ee)>>>0,N=N+1|0,v=(D+1)%a,Atomics.and(n,D,~ee);let ie=31-Math.clz32(ee);return(D<<5)+ie}return A},setSignal:(T)=>{if(T===A)return 0;if(!Number.isInteger(T))return-1;if(T<0||T>=f)return-1;let D=T>>>5,Q=1<<(T&eo);return Atomics.or(n,D,Q),1},abortAll:()=>{for(let T=0;T<a;T++)Atomics.store(n,T,u[T]);return N},hasAborted:(T)=>{if(T===A)return!0;if(!Number.isInteger(T))return!1;if(T<0||T>=f)return!1;let D=T>>>5,Q=1<<(T&eo);return(Atomics.load(n,D)&Q)!==0},resetSignal:(T)=>{if(T===A)return!1;if(!Number.isInteger(T))return!1;if(T<0||T>=f)return!1;let D=T>>>5,Q=1<<(T&eo);if((u[D]&Q)===0)return!1;if(u[D]=(u[D]&~Q)>>>0,N>0)N=N-1|0;return v=D,Atomics.and(n,D,~Q),!0},inUseCount:()=>N}};class to{#e=!1;constructor(e,r,t){let n=(a)=>(...u)=>{if(this.#e)return;this.#e=!0,r(),a(...u)};e.resolve=n(e.resolve),e.reject=n(e.reject),e.promise.reject=(a)=>{if(this.#e)return;if(a===void 0&&t!==void 0){t();return}e.reject(a)}}}var Nu="default",Du=(e)=>{if(!e||typeof e!=="object")return!1;let r=e;return typeof r.href==="string"&&r.href.length>0&&(r.name===void 0||typeof r.name==="string"&&r.name.length>0)},Wu=(e)=>{try{return Lr.fromMetadata(e),!0}catch{return!1}},no=(e,r=new WeakMap)=>{if(Wu(e))return Lr.fromMetadata(e);if(e===null||typeof e!=="object")return e;let t=r.get(e);if(t!==void 0)return t;if(Array.isArray(e)){let u=[];r.set(e,u);for(let c of e)u.push(no(c,r));return u}let n=Object.getPrototypeOf(e);if(n!==Object.prototype&&n!==null)return e;let a={};r.set(e,a);for(let[u,c]of Object.entries(e))a[u]=no(c,r);return a},Na=async({bootstrap:e,thread:r,totalNumberOfThread:t})=>{if(e===void 0)return;if(!Du(e))throw TypeError("worker.bootstrap must include a non-empty href");let n=await import(br(e.href)),a=e.name??Nu,u=n[a];if(typeof u!=="function"){let f=Object.keys(n).join(", ");throw TypeError(`worker.bootstrap expected export "${a}" from "${e.href}" to be a function. Available exports: ${f||"(none)"}`)}let c=Object.freeze({thread:r,totalNumberOfThread:t,runtime:Me});await u(no(e.data),c)};var Da=()=>{return},Wa=()=>{};var Uu=(e)=>{let r=globalThis.Deno?.env;if(typeof r?.get==="function")try{return r.get(e)}catch{}try{return He()?.env?.[e]}catch{return}},Hu=Uu("KNITTING_DEBUG"),Ua=new Set((Hu??"").split(",").map((e)=>e.trim()).filter((e)=>e.length>0)),Ha=Ua.size>0,Zt=(e)=>{let r=new Set(Ua);if(e===!0)r.add("*");else if(e!==void 0&&e!==!1){for(let[t,n]of Object.entries(e))if(n===!0)r.add(t)}return r};var Gu="__knittingWorkerFatal",en=(e)=>{let r=String(e?.message??e),t={[Gu]:r},n=!1;try{et?.postMessage?.(t),n=et!==void 0}catch{}if(!n)try{globalThis.postMessage(t),n=!0}catch{}if(!n){try{console.error(`Worker startup failed: ${r}`)}catch{}if(wr)try{He()?.exit?.(1)}catch{}}},$u=(e)=>{let r=(n)=>{let a=zo(n);if(a!==void 0)e(a)};if(et!==void 0){To(et,r);return}globalThis.addEventListener?.("message",(n)=>{r(n?.data)})},rn=async(e)=>{Vn(),qn(),Qn();let{debug:r,sab:t,thread:n,startAt:a,workerOptions:u,lock:c,returnLock:f,abortSignalSAB:A,abortSignalMax:N,payloadConfig:v,bufferReferenceReturn:W,permission:R,notifyOnHostPublish:h,totalNumberOfThread:O,list:L,ids:T,names:D,at:Q,steal:X}=e;Jn(e),Xn({sab:t,lock:c,returnLock:f});let C=Zt(r),z=C.size>0?await Promise.resolve().then(() => ($a(),Ga)).then((ne)=>ne.initDebug({name:`w${n}`,runtime:Me,namespaces:C})):void 0,ee={thisIsAHint:0},ie=Ft({sabObject:{sharedSab:t},isMain:!1,thread:n,startTime:a}),M=Er({headers:c.headers,headerSlotStrideU32:c.headerSlotStrideU32,LockBoundSector:c.lockSector,payload:c.payload,payloadSector:c.payloadSector,payloadConfig:v,textCompat:c.textCompat,processBoundary:wr,consumers:X?.consumers,consumerId:X?.consumerId,regionLanes:X?.regionLanes}),Z=Er({headers:f.headers,headerSlotStrideU32:f.headerSlotStrideU32,LockBoundSector:f.lockSector,payload:f.payload,payloadSector:f.payloadSector,payloadConfig:v,textCompat:f.textCompat,processBoundary:wr,notifyOnHostPublish:h}),G=u?.timers,j=G?.spinMicroseconds??(O<=1?50:0),V=z!==void 0?Number.POSITIVE_INFINITY:G?.parkMs??1,fe=(()=>{let ne=typeof G?.pauseNanoseconds==="number"?Jt({pauseInNanoseconds:G.pauseNanoseconds}):Yn;return()=>ne()})(),{opView:te,rxStatus:ae,txStatus:s,stopView:P}=ie,m=Atomics.store,k=Atomics.load,l=Da();await Na({bootstrap:u?.bootstrap,thread:n,totalNumberOfThread:O}),z?.envPhase("bootstrap");let g=await Pa({list:L,isWorker:!0,ids:T,names:D,at:Q,permission:R});z?.envPhase("tasks"),z?.log("imports",`${g.length} task(s) from ${L.map((ne)=>ne.split(/[\\/]/).pop()||ne).join(", ")}`),Zn({list:L,ids:T,names:D,listOfFunctions:g});let b=A?ft({sab:A,maxSignals:N}):void 0,{enqueueLock:K,serviceBatchImmediate:S,hasCompleted:y,writeBatch:w,hasPending:oe,getAwaiting:se,drainReturnReleases:Se,releaseReturnedBufferReference:Le}=qo({listOfFunctions:g,workerOptions:u,lock:M,returnLock:Z,borrowReturnedBufferReferences:W==="borrow",hasAborted:b?.hasAborted,stealing:X!==void 0});$u(Le),m(ae,0,1);let he=64,Ae=Ma({opView:te,at:0,rxStatus:ae,txStatus:s,pauseInNanoseconds:G?.pauseNanoseconds,enqueueLock:K,write:()=>y()?w(he):0,flushBeforeClaim:X!==void 0,nativeWaitU32:l,useSharedMemoryWait:!(wr&&Me==="node"&&l===void 0)}),ce=Or(),ye=ce.port1,Oe=ce.port2,Ne=(ne)=>Oe.postMessage(ne),De=!1,me=0,$e=0,Ee=10,Be=k(te,0),tr=()=>{if(De)return;De=!0,Ne(null)},nr=(ne)=>{if(De)return;if(De=!0,ne<=0&&typeof Xr==="function"){Xr(ge);return}if(ne<=0){Ne(null);return}if(typeof setTimeout==="function"){setTimeout(ge,ne);return}Ne(null)},Ue=z?.enabled("signals")===!0,or=y,We=oe,o=se,_=Se,x=fe,d=Ue?()=>{let ne=K();if(ne)z.log("signals","work from=host");return ne}:K,F=Ue?(ne)=>{let B=w(ne);if(B>0)z.log("signals",`result count=${B}`);return B}:w,U=Ue?()=>{let ne=S();if(ne>0)z.log("signals",`run count=${ne}`);return ne}:S,H=Ue?(ne,B,Y)=>{z.log("signals",`idle token=${ne}`),Ae(ne,B,Y)}:Ae,q=X!==void 0,pe=()=>{m(P,0,Cr.acknowledged),m(ae,0,0);try{ye.close?.(),Oe.close?.()}catch{}},ge=()=>{De=!1;let ne=!0,B=0;while(!0){if(P[0]!==Cr.running)return pe();if(q){if(ne=!1,or()){if(F(he)>0)ne=!0}ne=d()||ne}else if(ne=d(),or()){if(F(he)>0)ne=!0}if(_(),We()){if(U()>0)ne=!0}if((B=o())>0){if(B!==$e)me=0;$e=B,me++;let Y=Math.min(Ee,Math.max(0,me-1));nr(Y);return}if(me=$e=0,!ne){if(s[ee.thisIsAHint]===1){x();continue}H(Be,j,V),Be=k(te,0)}}},Re=ye;if(typeof Re.on==="function")Re.on("message",ge);else Re.onmessage=ge;Re.start?.(),Oe.start?.(),z?.log("lifecycle",`ready: ${g.length} task(s) on thread ${n}/${O}, entering dispatch loop`),tr()},zu=()=>{let e=globalThis.WorkerGlobalScope;if(typeof e==="function")try{if(globalThis instanceof e)return!0}catch{}if(Br&&typeof globalThis.self<"u")return!0;return!1},za=(e)=>{if(!e||typeof e!=="object")return!1;let r=e;return Ze(r.headers)&&Ze(r.lockSector)&&Ze(r.payload)&&Ze(r.payloadSector)&&(r.textCompat===void 0||Bt(r.textCompat))},lt=(e)=>{if(!e||typeof e!=="object")return!1;let r=e;return Ze(r.sab)&&Array.isArray(r.list)&&Array.isArray(r.ids)&&Array.isArray(r.names)&&Array.isArray(r.at)&&typeof r.thread==="number"&&typeof r.totalNumberOfThread==="number"&&typeof r.startAt==="number"&&(r.abortSignalSAB===void 0||Ze(r.abortSignalSAB))&&za(r.lock)&&za(r.returnLock)},Yu=()=>{let e=globalThis,r=(t)=>{if(!lt(t))return;rn(t).catch(en)};if(typeof e.addEventListener==="function"&&typeof e.removeEventListener==="function"){let t=(n)=>{let a=n?.data;if(!lt(a))return;try{e.removeEventListener?.("message",t)}catch{}r(a)};e.addEventListener("message",t);return}e.onmessage=(t)=>{let n=t?.data;if(!lt(n))return;e.onmessage=null,r(n)}};if(Tr===!1&<(Zr))rn(Zr).catch(en);else if(wr)Wa({isWorkerBootPayload:lt,reportWorkerStartupFatal:en,startWorker:(e)=>{rn(e).catch(en)}});else if(zu())Yu();var Qa=((e)=>()=>e++)(0),Ja=(e,r)=>{let t=2166136261;for(let n=0;n<e.length;n++)t=Math.imul(t^e.charCodeAt(n),16777619);return Math.imul(t^r,16777619)>>>0},Vu=["/src/common/task-source.ts","/src/common/task-source.js","\\src\\common\\task-source.ts","\\src\\common\\task-source.js","/src/api.ts","/src/api.js","\\src\\api.ts","\\src\\api.js"],Ya=new Set(["collectStackFrames","resolveCallerHref","getCallerFilePath","buildTaskDefinition","buildTaskDefinitionFromCaller","task","importTask"]),qu=(e)=>e!==void 0,Qu=(e)=>Vu.some((r)=>e.includes(r)),Xa=(e)=>e.startsWith("node:")||e.startsWith("native:")||e.startsWith("bun:")||e.startsWith("internal/"),Ju=(e,r)=>e!==void 0&&Ya.has(e)||r!==void 0&&Ya.has(r),Xu=()=>{let e=Error,r=e.prepareStackTrace;try{e.prepareStackTrace=(a,u)=>u;let t=Error().stack;if(!Array.isArray(t))return[];return t.map((a)=>{try{let u=a?.getFileName?.();if(typeof u!=="string"||u.length===0)return;return{file:u,functionName:a?.getFunctionName?.()??void 0,methodName:a?.getMethodName?.()??void 0}}catch{return}}).filter(qu)}finally{e.prepareStackTrace=r}},Va=(e)=>Xa(e.file)||Qu(e.file)||Ju(e.functionName,e.methodName),ao,Za=(e)=>{ao=typeof e==="string"&&e.length>0?br(e):void 0};var es=(e)=>{if(ao!==void 0)return ao;let r=Xu(),t=r[e],n=(t&&!Va(t)?t.file:void 0)??r.find((a)=>!Va(a))?.file??r.find((a)=>!Xa(a.file))?.file;if(!n)throw Error("Unable to determine caller file. This runtime exposes no stack traces (e.g. Andromeda); call setModuleUrl(import.meta.url) at the top of the module that defines your tasks before creating a pool.");return br(n)},qa=new Map,rs=(e=3)=>es(e),so=(e=3)=>{let r=es(e),t=qa.get(r)??0;return qa.set(r,t+1),[r,t]};var ts=(e,r)=>{let t=e;return t.reject=r,t},tn=()=>{let e=Promise.withResolvers;if(typeof e==="function"){let a=e.call(Promise);return{promise:ts(a.promise,a.reject),resolve:a.resolve,reject:a.reject}}let r,t;return{promise:ts(new Promise((a,u)=>{r=a,t=u}),t),resolve:r,reject:t}};var Zu=31,ec=134217727,rc=5,tc=65535,nc=65535,oc=16,ac=1;var sc=performance.now.bind(performance);function io({max:e,lock:r,returnLock:t,extraReturnLocks:n,releaseBufferReferenceReturn:a,abortSignals:u,now:c}){let f=(y)=>{throw"UNREACHABLE FROM PLACE HOLDER (main)"},A=(y)=>{let w=Uo();return w[i.ID]=y,w[i.FunctionID]=0,w.value=null,w.resolve=f,w.reject=f,w},N=e??10,v=Array.from({length:N},(y,w)=>A(w)),W=Array.from({length:N},(y,w)=>w),R=(y)=>W.push(y),h=()=>W.pop(),O=(y)=>v.push(y),{publish:L,flushPending:T,hasPendingFrames:D,getPendingFrameCount:Q,getPendingPromiseCount:X,resetPendingState:C}=r,z=0,ee=u?.resetSignal,ie=c??sc,M=(y)=>{z=z-1|0,hn(y),Dr(y),y.value=null,y.resolve=f,y.reject=f,R(y[i.ID])},Z=[t,...n??[]].map((y)=>y.resolveHost({queue:v,activeRejectPlaceholder:f,onResolved:M})),G=[t,...n??[]].map((y)=>typeof y.waitForHostChange==="function"?y.waitForHostChange:()=>{return}),j=[t,...n??[]].map((y)=>typeof y.setHostWaiterArmed==="function"?y.setHostWaiterArmed:(w)=>{}),V=Array(Z.length);if(a!==void 0)V[0]=a;let fe=(y)=>{let w=Z[y],oe=V[y];return oe===void 0?w():An(oe,w)},te=Z.length===1?a===void 0?Z[0]:()=>An(a,Z[0]):()=>{let y=0;for(let w=0;w<Z.length;w++)y=y+fe(w)|0;return y},ae=new Uint8Array(G.length),s,P=0,m=(y)=>{for(let w of j)w(y)},k=(y,w)=>{s=y,m(!0);let oe=!0;for(let se=0;se<G.length;se++){if(ae[se]!==0)continue;let Se;try{Se=G[se](w)}catch{Se=void 0}if(Se===void 0){oe=!1;break}ae[se]=1;let Le=P,he=()=>{if(ae[se]===0)return;if(ae[se]=0,j[se](!1),Le!==P)return;s?.()};if(!Se.async)he();else Promise.resolve(Se.value).then(he,he)}if(!oe)s=void 0,m(!1),P=P+1|0;return oe},l=()=>(z-X()|0)>0,g=()=>Q()===0&&!l(),b=(y)=>{for(let w=0;w<v.length;w++){let oe=v[w];if(oe.reject!==f){try{oe.reject(y)}catch{}Dr(oe),oe.resolve=f,oe.reject=f,v[w]=A(w)}}C(),z=0},K=()=>T(),S=(y)=>L(y);return{rejectAll:b,hasPendingFrames:D,txIdle:g,completeFrame:te,waitForCompletion:k,setCompletionWaiterArmed:m,setReturnHooks:(y,w)=>{if(!Number.isInteger(y)||y<0||y>=V.length)throw RangeError(`return lane ${y} out of range`);V[y]=w},enqueue:(y,w,oe)=>{let se=w!==void 0,Se=y&tc,Le=oe!==void 0&&u!==void 0;return(he)=>{if(z===v.length){let Oe=z+32,Ne=v.length;while(Oe>Ne)O(A(Ne)),R(Ne),Ne++}let Ae=h(),ce=v[Ae],ye=tn();if(ce[i.FunctionID]=Se,Le){let Oe=u.getSignal();if(Oe===u.closeNow)return Promise.reject(Fa);new to(ye,()=>ee(Oe),()=>{u.setSignal(Oe)});let Ne=(Oe+ac&nc)>>>0;ce[i.FunctionID]=(Ne<<oc|Se)>>>0}if(ce.value=he,ce[i.ID]=Ae,ce.resolve=ye.resolve,ce.reject=ye.reject,se)ce[i.slotBuffer]=(ce[i.slotBuffer]&Zu|(ie()>>>0&ec)<<rc>>>0)>>>0;return L(ce),z=z+1|0,ye.promise}},flushToWorker:K,enqueueKnown:S,settlePromisePayload:(y,w,oe)=>{if(y.reject===f)return!1;if(w){try{y.reject(oe)}catch{}return hn(y),Dr(y),y.value=null,y.resolve=f,y.reject=f,z=z-1|0,R(y[i.ID]),!1}return y.value=oe,S(y)}}}var ns=()=>{return},os=()=>{return},as=()=>{},Pr=()=>{throw Error("process workers are unavailable in the browser build")},ss=Pr,is=Pr,nn=Pr,us=Pr,cs=Pr,on=Pr,fs=Pr,ls=Pr;var ds=(e)=>e.split("=",1)[0],ys=new Set(["--permission","--experimental-permission","--allow-fs-read","--allow-fs-write","--allow-worker","--allow-child-process","--allow-net","--allow-addons","--allow-ffi","--allow-wasi"]),ic=new Set(["--experimental-ffi","--experimental-transform-types","--expose-gc","--no-warnings",...ys]),uc=(e)=>ic.has(ds(e)),cc=(e)=>ys.has(ds(e)),co=(e)=>{if(!e||e.length===0)return;let r=e.filter(uc);if(r.length===0)return;let t=new Set,n=[];for(let a of r){if(t.has(a))continue;t.add(a),n.push(a)}return n},ps=(e)=>{let r=co(e);if(!r||r.length===0)return;let t=r.filter((n)=>!cc(n));return t.length>0?t:void 0},fc=(e)=>{if(e===null||typeof e!=="object")return!1;let r=Object.getPrototypeOf(e);return r===Object.prototype||r===null},uo=(e,r=new WeakMap)=>{if(e instanceof Lr)return e.toMetadata();if(e===null||typeof e!=="object")return e;let t=r.get(e);if(t!==void 0)return t;if(Array.isArray(e)){let a=[];r.set(e,a);for(let u of e)a.push(uo(u,r));return a}if(!fc(e))return e;let n={};r.set(e,n);for(let[a,u]of Object.entries(e))n[a]=uo(u,r);return n},ms=(e)=>{let r=e.bootstrap;if(r===void 0||r.data===void 0)return e;return{...e,bootstrap:{...r,data:uo(r.data)}}},lc=2000,gs=(e,r=!1)=>{try{if(!r)e.unref?.();let t=Promise.resolve(e.terminate()).then(()=>{},()=>{});if(!r)return t;return new Promise((n)=>{let a=setTimeout(()=>{e.unref?.(),n()},lc);t.then(()=>{clearTimeout(a),n()})})}catch{return Promise.resolve()}};var hs=Me==="deno"||Me==="node"?Xr:void 0,bs=128,dc=1,an=({signalBox:{opView:e,txStatus:r,rxStatus:t},queue:{completeFrame:n,hasPendingFrames:a,flushToWorker:u,txIdle:c,waitForCompletion:f,setCompletionWaiterArmed:A},channelHandler:N,dispatcherOptions:v,notifySignal:W,crossProcess:R})=>{let{load:h,store:O,notify:L}=Atomics,T=e.buffer instanceof SharedArrayBuffer,D=W??(()=>{if(T)L(e,0,1)}),Q=()=>N.notify(),X=R!==!0&&(v?.doorbell??!0)&&(Me==="bun"||Me==="node")&&typeof Atomics.waitAsync==="function",C=X,z=!1,ee=0,ie=1000,M=0,Z=v?.stallFreeLoops,G=Z!==void 0?Math.max(0,Z|0):X?dc:bs,j=Math.max(0,(v?.maxBackoffMs??10)|0),V,fe=!1,te=()=>{if(!z)return;ee=ee+1|0,z=!1,A(!1)},ae=()=>{if(!C||z===!0){if(!C)Q();return}let m=ee+1|0;ee=m,z=!0;let k=!1,l=()=>{if(!z||ee!==m||k)return;k=!0,z=!1,ee=ee+1|0,A(!1),Q()},g=!1;try{g=f(l,ie)}catch{g=!1}if(!g){if(C=!1,Z===void 0)G=bs;z=!1,ee=ee+1|0,A(!1),Q()}},s=()=>{if(fe){s.rerun=!0;return}if(te(),c()){s.isRunning=!1;return}if(fe=!0,V!==void 0)clearTimeout(V),V=void 0;do{if(s.rerun=!1,r[0]=1,h(t,0)===0)O(e,0,1),D();let m=!1,k=!0;while(k){if(k=!1,n()>0)k=!0,m=!0;while(a()){if(!u())break;k=!0}}if(r[0]=0,!c()){if(m||a())M=0;else M=M+1|0;fe=!1,P();return}M=0}while(s.rerun);s.isRunning=!1,fe=!1};s.isRunning=!1,s.rerun=!1;let P=()=>{if(M<=G){Q();return}if(C){s.isRunning=!1,ae();return}if(V!==void 0)return;let m=M-G-1|0;if(m<0)m=0;else if(m>j)m=j;s.isRunning=!1,V=setTimeout(()=>{if(V=void 0,!s.isRunning)s.isRunning=!0,s()},m)};return{check:s}};class Yr{channel;port1;port2;#e;#r;constructor(e="auto"){if(e==="auto"&&hs!==void 0){let n=hs,a=()=>{this.#e?.()};this.#r=()=>{n(a)};return}let r=Or(),t=r.port2;this.channel=r,this.port1=r.port1,this.port2=t,this.#r=()=>{t.postMessage(null)}}notify(){this.#r()}open(e){this.#e=e;let r=this.port1;if(r===void 0)return;if(typeof r.on==="function")r.on("message",e);else r.onmessage=e;this.port1?.start?.(),this.port2?.start?.()}close(){if(this.#e=void 0,this.port1===void 0||this.port2===void 0)return;this.port1.onmessage=null,this.port2.onmessage=null,this.port1.close?.(),this.port2.close?.()}}var Ss=()=>{throw Error("compiled workers are unavailable in the browser build")};var As="__knittingWorkerFatal",yc=(e)=>!!e&&typeof e==="object"&&typeof e[As]==="string",pc=50,mc=Me==="deno",gc=1,hc=50,bc=258,Bs=(e)=>{if(!Number.isFinite(e))return;let r=Math.floor(e);return r>0?r:void 0},ws=(e)=>Bs(e)??bc,fo=(e)=>Math.max(1,Math.ceil(e/32))*Uint32Array.BYTES_PER_ELEMENT,Sc=(e,r)=>{let t=e?.timers?.parkMs??gc,n=e?.timers?.spinMicroseconds??(r<=1?hc:0);if(e===void 0)return{timers:{parkMs:t,spinMicroseconds:n}};return{...e,timers:{...e.timers,parkMs:t,spinMicroseconds:n}}},Ts=(e)=>({...e,mode:"fixed",payloadInitialBytes:e.payloadMaxByteLength}),Ac=(e)=>{for(let r=we.slots;r>=1;r>>=1)if(we.slots/r>=e+1)return r;throw RangeError(`${e} stealing workers need more than ${we.slots} lanes`)},ks=we.slots-1,Es=({threads:e,payload:r,regionLanes:t,abortSignalCapacity:n,usesAbortSignal:a,processWorker:u})=>{let c=cr({options:r}),f=u===void 0?c:Ts(c),A=()=>f.mode==="growable"?je(f.payloadInitialBytes,f.payloadMaxByteLength):je(f.payloadInitialBytes),N=()=>xn({signalBytes:0,abortBytes:0,lockSectorBytes:Ur,headerSlotStrideU32:fr,slotCount:we.slots,headerLayout:"split"}),v=(ee,ie)=>({...ee,payload:ie,textCompat:Fr({headers:ee.headers,payload:ie})}),W=Ac(e),R=t===void 0?W:Math.min(Math.max(1,t|0),W),h=ws(n),O=u===void 0?void 0:is({threads:e,signalBytes:u.signalBytes,abortBytes:a===!0?fo(h):0,abortSignalMax:a===!0?h:void 0,payloadBytes:f.payloadMaxByteLength,sharedMemory:u.sharedMemory}),L=O===void 0?(()=>{let ee=N();return v(ee.lock,A())})():v(O.workers[0].controlLayout.lock,O.workers[0].lockPayload),T=Er({headers:L.headers,headerSlotStrideU32:L.headerSlotStrideU32,LockBoundSector:L.lockSector,payload:L.payload,payloadSector:L.payloadSector,payloadConfig:f,textCompat:L.textCompat,consumers:e,regionLanes:R,processBoundary:O!==void 0}),D=[],Q=[];for(let ee=0;ee<e;ee++){let ie=O===void 0?v(N().returnLock,A()):v(O.workers[ee].controlLayout.returnLock,O.workers[ee].returnPayload);D.push(ie),Q.push(Er({headers:ie.headers,headerSlotStrideU32:ie.headerSlotStrideU32,LockBoundSector:ie.lockSector,payload:ie.payload,payloadSector:ie.payloadSector,payloadConfig:f,textCompat:ie.textCompat,processBoundary:O!==void 0}))}let X=a===!0?O?.workers[0]?.controlLayout.abortSignals??je(fo(h)):void 0,C=X===void 0?void 0:ft({sab:X,maxSignals:h}),z=io({lock:T,returnLock:Q[0],extraReturnLocks:Q.slice(1),abortSignals:C});return{submitBuffers:L,returnBuffers:D,hostSubmitLock:T,hostReturnLocks:Q,sharedQueue:z,regionLanes:R,processMemory:O,abortSignalSAB:X,abortSignalMax:O?.abortSignalMax??(X===void 0?void 0:h)}},Rs=({list:e,ids:r,names:t,sab:n,thread:a,debug:u,hostDebug:c,totalNumberOfThread:f,workerCount:A,source:N,at:v,workerOptions:W,workerExecArgv:R,permission:h,host:O,payload:L,bufferReferenceReturn:T,abortSignalCapacity:D,usesAbortSignal:Q,sharedChannelHandler:X,stealPool:C})=>{if(W?.runtime==="compiled")return Ss({list:e,names:t,workerOptions:W,hostDebug:c,abortSignalCapacity:D,usesAbortSignal:Q});let z=new URL(import.meta.url),ee=wo,ie=ms(Sc(W,A??f)),M=ie.runtime==="process",Z=M?on(ie):void 0,G=M?us(ie):void 0,j=M?nn(ie):void 0;if(!M&&typeof ee!=="function")throw Error("Worker is not available in this runtime");if(un&&typeof SharedArrayBuffer!=="function")throw Error("SharedArrayBuffer is unavailable: serve the page cross-origin isolated (Cross-Origin-Opener-Policy: same-origin, Cross-Origin-Embedder-Policy: require-corp).");let V=ee,fe=Bs,te=cr({options:L}),ae=M?Ts(te):te,s=ws(D),P=fe(n?.size),m=n?.sharedSab;if(M&&m!=null)throw Error("process worker runtime cannot use an external signal buffer");let k=Math.max(st,P??st),l=C===void 0&&Q===!0?fo(s):0,g=C?.processMemory,b=!M?void 0:g===void 0?ss({signalBytes:k,abortBytes:l,payloadBytes:ae.payloadMaxByteLength,thread:a,sharedMemory:j}):g.workers[a]??(()=>{throw RangeError(`stealing process pool has no shared-memory slice for worker ${a}`)})(),K=b===void 0?ns(u):void 0,S=K?.createBuffer??_r,y=K?.createBuffer,w=()=>y?y(ae.payloadMaxByteLength):ae.mode==="growable"?je(ae.payloadInitialBytes,ae.payloadMaxByteLength):je(ae.payloadInitialBytes),oe=()=>xn({signalBytes:k,abortBytes:l,lockSectorBytes:Ur,headerSlotStrideU32:fr,slotCount:we.slots,headerLayout:"split",createBuffer:S}),se=b?.controlLayout??oe(),Se=b?.lockPayload??w(),Le=C?.submitBuffers??{...se.lock,payload:Se,textCompat:Fr({headers:se.lock.headers,payload:Se})},he=b?.returnPayload??w(),Ae=C?.returnBuffers??{...se.returnLock,payload:he,textCompat:Fr({headers:se.returnLock.headers,payload:he})},ce=C?.hostSubmitLock??Er({headers:Le.headers,headerSlotStrideU32:Le.headerSlotStrideU32,LockBoundSector:Le.lockSector,payload:Le.payload,payloadSector:Le.payloadSector,payloadConfig:ae,textCompat:Le.textCompat,processBoundary:M}),ye=C?.hostReturnLock??Er({headers:Ae.headers,headerSlotStrideU32:Ae.headerSlotStrideU32,LockBoundSector:Ae.lockSector,payload:Ae.payload,payloadSector:Ae.payloadSector,payloadConfig:ae,textCompat:Ae.textCompat,processBoundary:M}),Oe=C?.abortSignalSAB??(Q===!0?se.abortSignals:void 0),Ne=Oe&&C===void 0?ft({sab:Oe,maxSignals:s}):void 0,De=Ft({sabObject:m==null?{size:P,sharedSab:se.signals}:n,isMain:!0,thread:a}),me=De,$e=os({processRuntime:Z,signal:me.opView}),Ee=T==="borrow"&&typeof WeakRef==="function"?new Map:void 0,Be=(p)=>{Ee?.delete(p),ue?.postMessage?.(Yo(p))},tr=(p)=>{if(Ee===void 0)return;for(let[E,J]of Ee)try{let re=J.ref.deref();if(re!==void 0){re.revokeBorrow(p);continue}let xe=J.aliasBuffer?.deref();if(xe!==void 0&&Vo(J.runtime,xe)&&p)Be(E)}catch{}Ee.clear()},nr=T==="borrow"?{release:Be,track:(p,E,J)=>{if(Ee===void 0)return;let re=Ee.get(E);if(re!==void 0){if(J!==void 0)re.aliasBuffer=new WeakRef(J);return}Ee.set(E,{ref:new WeakRef(p),aliasBuffer:J===void 0?void 0:new WeakRef(J),runtime:p.runtime})}}:void 0,Ue=C?.sharedQueue??io({lock:ce,returnLock:ye,abortSignals:Ne,releaseBufferReferenceReturn:nr});if(C!==void 0)C.sharedQueue.setReturnHooks(C.consumerId,nr);let{enqueue:or,rejectAll:We,txIdle:o}=Ue,_=me.opView,x=Atomics.add,d=Atomics.load,F=Atomics.notify,U=_.buffer instanceof SharedArrayBuffer,H=$e??(U?()=>F(_,0,1):void 0),q=()=>{if(d(me.rxStatus,0)===0)x(_,0,1),H?.()},pe=()=>{},ge=()=>pe(),Re,ne=X===void 0&&C===void 0,B=X??new Yr,{check:Y}=C!==void 0?{check:void 0}:an({signalBox:me,queue:Ue,channelHandler:B,dispatcherOptions:O,notifySignal:$e,crossProcess:M});if(ne&&Y!==void 0)B.open(Y),Re=B,pe=()=>{if(Y.isRunning===!0)return;Y.isRunning=!0,Promise.resolve().then(Y),q()};let ue,de=N??z;c?.(`worker thread=${a} mode=${M?"process":dn?"worker_threads":"worker"}${Z?` runtime=${Z}`:""} url=${String(de)}`);let Pe={sab:De.sab,abortSignalSAB:Oe,abortSignalMax:C?.abortSignalMax??(Q===!0?s:void 0),list:e,ids:r,names:t,at:v,thread:a,debug:u,workerOptions:ie,totalNumberOfThread:f,startAt:me.startAt,lock:Le,returnLock:Ae,payloadConfig:ae,bufferReferenceReturn:T,permission:h,notifyOnHostPublish:!M&&O?.doorbell!==!1&&(Me==="bun"||Me==="node")&&typeof Atomics.waitAsync==="function",steal:C===void 0?void 0:{consumers:C.consumers,consumerId:C.consumerId,regionLanes:C.regionLanes}},be={type:"module",workerData:Pe},Je=R&&R.length>0?{...be,execArgv:R}:be;if(b!==void 0)ue=fs({workerUrl:de,bootPayload:ls(Pe,b),memory:b,processRuntime:Z,commandPrefix:G,permission:h});else if(dn)try{ue=new V(de,Je)}catch(p){if(p?.code==="ERR_WORKER_INVALID_EXEC_ARGV"){let E=co(Je.execArgv);if(E&&E.length>0)try{ue=new V(de,{...be,execArgv:E})}catch(J){if(J?.code==="ERR_WORKER_INVALID_EXEC_ARGV"){let re=ps(E);if(re&&re.length>0)try{ue=new V(de,{...be,execArgv:re})}catch{ue=new V(de,be)}else ue=new V(de,be)}else throw J}else ue=new V(de,be)}else throw p}else ue=new V(de,{type:"module"}),ue.postMessage?.(Pe);let er,dr=()=>{C?.hostSubmitLock.deactivateStealConsumer(C.consumerId)},Ir=()=>{try{ue.unref?.(),Promise.resolve(ue.terminate()).catch(()=>{}).finally(dr)}catch{dr()}},ve=(p,E=!1)=>{if(er)return;er=p,tr(E),We(p),Re?.close()},ar=(p)=>{if(!yc(p))return;ve(`Worker startup failed: ${p[As]}`,!0),Ir()},Xe=(p)=>{let E=String(p?.message??p);ve(`Worker crashed: ${E}`),Ir()},vr=ue;if(typeof vr.on==="function")vr.on("message",ar),vr.on("error",Xe),vr.on("exit",(p)=>{if(dr(),er!==void 0)return;ve(`Worker exited with code ${typeof p==="number"?p:-1}`)});else{let p=ue;if(typeof p.addEventListener==="function")p.addEventListener("message",(E)=>{ar(E?.data)}),p.addEventListener("error",(E)=>{Xe(E?.error??E?.message??E)});else p.onmessage=(E)=>{ar(E?.data)},p.onerror=(E)=>{Xe(E)}}return ce.setPromiseHandler((p,E,J)=>{Ue.settlePromisePayload(p,E,J),ge()}),{txIdle:o,call:({fnNumber:p,timeout:E,abortSignal:J})=>{let re=or(p,E,J);return(xe)=>{let yr=re(xe);return ge(),yr}},requestStop:async()=>{let p=me.stopView;if(p===void 0)return;try{Atomics.store(p,0,Cr.requested),q(),H?.()}catch{return}if(!mc)return;let E=Date.now()+pc;while(Atomics.load(p,0)!==Cr.acknowledged){if(Date.now()>=E)return;await new Promise((J)=>setTimeout(J,1))}},kills:async()=>{ve("Thread closed",!0);let p=b!==void 0,E=gs(ue,p);if(p)await E;as(b)},lock:ce,processSharedMemoryBackings:K?.backings,dispatcherCheck:Y,laneWake:X!==void 0||C!==void 0?q:void 0,bindSend:X!==void 0||C!==void 0?(p)=>void(pe=p):void 0}};var xs=()=>{return},Ls=()=>[],Ps=()=>{throw Error("process workers are unavailable in the browser build")},vs=Ps,_s=Ps;var Cs=(e,r,t)=>{switch(t??"roundRobin"){case"roundRobin":case"robinRound":return Bc(e)(r)(r.length);case"firstIdle":return wc(e)(r)(r.length);case"randomLane":return Tc(e)(r)(r.length);case"firstIdleOrRandom":return kc(e)(r)(r.length)}throw Error(`Unknown balancer: ${t}`)},lo=({contexts:e,balancer:r,handlers:t,inlinerGate:n})=>{let a=typeof r==="object"&&r!=null?r.strategy:r;if(e.length<2)throw Error(e.length===0?"No threads available.":"Cannot rotate with a single thread.");if(t.length===0)throw Error("No handlers provided.");let u=Cs(e,t,a);if(!n)return u;let c=n.index|0,f=Number.isFinite(n.threshold)?Math.max(1,Math.floor(n.threshold)):1;if(f<=1||c<0||c>=t.length)return u;let A=t.length-1;if(A<=0)return u;let N=Array(A),v=Array(A);for(let L=0,T=0;L<t.length;L+=1){if(L===c)continue;N[T]=t[L],v[T]=e[L],T+=1}let W=Cs(v,N,a),R=0,h=(L)=>(R-=1,L),O=(L)=>{throw R-=1,L};return(L)=>{R+=1;let T=R>=f?u:W;try{return T(L).then(h,O)}catch(D){throw R-=1,D}}};function Bc(e){return(r)=>(t)=>{let n=Math.min(t,r.length);if(n<=1)return(u)=>r[0](u);let a=0;return(u)=>{let c=a;if(a+=1,a===n)a=0;return r[c](u)}}}function wc(e){let r=e.map((t)=>t.txIdle);return(t)=>(n)=>{let a=Math.min(n,t.length);if(a<=1)return(c)=>t[0](c);let u=0;return(c)=>{for(let A=0;A<a;A+=1)if(r[A]())return t[A](c);let f=u;if(u+=1,u===a)u=0;return t[f](c)}}}var Tc=(e)=>(r)=>(t)=>{let n=Math.min(t,r.length);if(n<=1)return(a)=>r[0](a);return(a)=>{let u=Math.random()*n|0;return r[u](a)}};function kc(e){let r=e.map((t)=>t.txIdle);return(t)=>(n)=>{let a=Math.min(n,t.length);if(a<=1)return(u)=>t[0](u);return(u)=>{for(let f=0;f<a;f+=1)if(r[f]())return t[f](u);let c=Math.random()*a|0;return t[c](u)}}}var Sr={Free:-1,Pending:0},Vr={Reject:0,Resolve:1},Ec=(e)=>{if(e==null)return;if(typeof e==="number")return e>=0?{ms:e,kind:Vr.Reject,value:Error("Task timeout")}:void 0;let r=e.time;if(!(r>=0))return;if("default"in e)return{ms:r,kind:Vr.Resolve,value:e.default};if(e.maybe===!0)return{ms:r,kind:Vr.Resolve,value:void 0};if("error"in e)return{ms:r,kind:Vr.Reject,value:e.error};return{ms:r,kind:Vr.Reject,value:Error("Task timeout")}},Rc=(e,r)=>new Promise((t,n)=>{let a=!1,u=setTimeout(()=>{if(a)return;if(a=!0,r.kind===Vr.Resolve)t(r.value);else n(r.value)},r.ms);e.then((c)=>{if(a)return;a=!0,clearTimeout(u),t(c)},(c)=>{if(a)return;a=!0,clearTimeout(u),n(c)})}),xc=(()=>({hasAborted:()=>!1,now:()=>performance.now()}))(),Lc=(e,r,t=!1)=>{let n=Ec(r),a=t?(u)=>e(u,xc):e;if(!n)return a;return(u)=>{let c=a(u);return c instanceof Promise?Rc(c,n):c}},Is=({tasks:e,genTaskID:r,batchSize:t})=>{let a=(Array.isArray(e)?e:Object.values(e).sort((m,k)=>m.name.localeCompare(k.name))).map((m)=>{if(m.imported===!0)return()=>{throw Error("Imported task cannot run on the host inline lane")};return Lc(m.f,m.timeout,m.abortSignal!==void 0)}),u=16,c=new Int32Array(16),f=new Int8Array(16).fill(Sr.Free),A=Array(16),N=Array(16).fill(-1),v=Array(16),W=Array(16),R=16;for(let m=0;m<16;m++)W[m]=15-m;let h=new ir(16),O=0,L=!1,T=!1,D=Number.isFinite(t)?Math.max(1,Math.floor(t??1)):Number.POSITIVE_INFINITY,Q=Or(),X=Q.port1,C=Q.port2,z=(m)=>C.postMessage(m),ee=()=>h.isEmpty===!1,ie=typeof queueMicrotask==="function"?queueMicrotask:(m)=>Promise.resolve().then(m),M=()=>{if(O===0||L)return;L=!0,z(null)},Z=()=>{if(O===0||L||T)return;T=!0,ie(ae)},G=(m)=>{h.push(m),Z()},j=(m,k)=>{if(f[m]!==Sr.Pending||N[m]!==k)return;G(m)},V=(m,k,l,g)=>{if(f[m]!==Sr.Pending||N[m]!==k)return;let b=v[m];if(b)if(l)b.reject(g);else b.resolve(g);s(m)};function fe(){if(R>0)return W[--R];let m=c.length,k=m<<1,l=new Int32Array(k);l.set(c),c=l;let g=new Int8Array(k);g.fill(Sr.Free),g.set(f),f=g,A.length=k,N.length=k,N.fill(-1,m),v.length=k;for(let b=k-1;b>=m;--b)W[R++]=b;return W[--R]}function te(m=!1){let k=0;while(k<D){let l=h.shiftNoClear();if(l===void 0)break;let g=l|0;if(f[g]!==Sr.Pending)continue;let b=N[g];try{let K=A[g],S=c[g],y=a[S](K);if(!(y instanceof Promise)){V(g,b,!1,y),k++;continue}y.then((w)=>V(g,b,!1,w),(w)=>V(g,b,!0,w)),k++}catch(K){V(g,b,!0,K),k++}}if(ee()){if(m)M();else z(null);return}if(!m)L=!1}function ae(){if(!T)return;te(!0),T=!1}function s(m){if(O--,f[m]=Sr.Free,c[m]=0,N[m]=-1,A[m]=void 0,v[m]=void 0,W[R++]=m,O===0)L=!1}let P=({fnNumber:m})=>(k)=>{let l=r(),g=tn(),b=fe();if(N[b]=l,A[b]=k,c[b]=m|0,v[b]=g,f[b]=Sr.Pending,O++,k instanceof Promise)k.then((K)=>{if(N[b]!==l)return;A[b]=K,j(b,l)},(K)=>V(b,l,!0,K));else G(b);return g.promise};return X.onmessage=()=>te(!1),{kills:async()=>{for(let m=0;m<f.length;m++){if(f[m]!==Sr.Pending)continue;try{v[m]?.reject("Thread closed")}catch{}}X.onmessage=null,X.close?.(),C.onmessage=null,C.close?.(),h.clear(),R=0,W.length=0,A.fill(void 0),N.fill(-1),v.fill(void 0),c.fill(0),f.fill(Sr.Free),O=0,L=!1,T=!1},call:P,txIdle:()=>O===0}};var Ns=(e,r)=>e.has("*")||e.has(r),Pc=(e)=>{if(!((u)=>Ns(e,u))("host"))return;let t=performance.now(),n=`host·${Me}`;return{log:(u)=>{let c=(performance.now()-t).toFixed(1);console.error(`[${n}·+${c}ms] host: ${u}`)}}},vc=()=>{let e=globalThis.Deno?.cwd;if(typeof e==="function")try{return e()}catch{}let r=He();if(typeof r?.cwd==="function")try{return r.cwd()}catch{return}return},Ms=(e,r="(none)")=>e&&e.length>0?e.join(","):r,Ds=65535,Os=Ds+1,yo="default",_c=Tr;var Cc=(e)=>{let r=e.reduce((t,n)=>(t[0].add(n.importedFrom),t[1].add(n.id),t[2].add(n.at),t[3].push(n.name),t),[new Set,new Set,new Set,[]]);return{list:[...r[0]],ids:[...r[1]],at:[...r[2]],names:r[3]}},dt=(e,r)=>{try{return new URL(e,r).href}catch{return br(e)}},Ic=(e,r)=>{if(e===void 0)return;let t=e.processRuntime==="porffor";if(t&&e.runtime!==void 0&&e.runtime!=="compiled")throw Error('worker.processRuntime "porffor" requires worker.runtime to be compiled or omitted');let n=t&&e.runtime===void 0,a=t?{...e,runtime:"compiled",processRuntime:void 0,compiled:n?{...e.compiled,build:"always"}:e.compiled}:e,u=a.bootstrap;if(u!==void 0){let f=u.name??yo;if(typeof u.href!=="string"||u.href.length===0)throw TypeError("worker.bootstrap.href must be a non-empty string");if(typeof f!=="string"||f.length===0)throw TypeError("worker.bootstrap.name must be a non-empty string");a={...a,bootstrap:{...u,href:dt(u.href,r),name:f}}}let c=a.compiled;if(c!==void 0){if(c.build!==void 0&&typeof c.build!=="boolean"&&c.build!=="always")throw TypeError('worker.compiled.build must be a boolean or "always"');for(let[f,A]of Object.entries({artifact:c.artifact,manifest:c.manifest,compiler:c.compiler}))if(A!==void 0&&(typeof A!=="string"||A.length===0))throw TypeError("worker.compiled."+f+" must be a non-empty string");a={...a,compiled:{build:c.build,compiler:c.compiler===void 0?void 0:c.compiler.startsWith(".")||c.compiler.startsWith("/")||c.compiler.startsWith("file:")||/^[A-Za-z]:[\\/]/.test(c.compiler)?dt(c.compiler,r):c.compiler,artifact:c.artifact===void 0?void 0:dt(c.artifact,r),manifest:c.manifest===void 0?void 0:dt(c.manifest,r)}}}return a};var Mc=(e)=>e!=null&&typeof e==="object"&&typeof e.f==="function",Oc=(e,r)=>Object.entries(e).map(([t,n])=>{if(Mc(n))return{...n,name:t};if(typeof n==="function")return{f:n,id:-1,importedFrom:new URL(r).href,at:-1,name:t,[zr]:!0};throw TypeError(`createPool task "${t}" must be a task definition or exported function`)}),Ws=({threads:e,debug:r,inliner:t,balancer:n,payload:a,unsafe:u,abortSignalCapacity:c,source:f,worker:A,workerExecArgv:N,permission:v,host:W})=>(R)=>{let h=u?.BufferReferenceReturn,O=Ha||r!==void 0&&r!==!1,L,T=()=>L??=Zt(r),D=O?Pc(T()):void 0,Q=(B)=>O&&Ns(T(),B);if(Tr===!1){if(Q("lifecycle"))console.warn("createPool has been called with : "+JSON.stringify(Zr));let B=()=>{throw Error("createPool can only be called in the main thread.")},de=new Proxy(function(){return B()},{get:function(){return B}});return{shutdown:de,[Symbol.dispose]:()=>{},call:de}}let X=rs(3),C=Oc(R,X).sort((B,Y)=>B.name.localeCompare(Y.name)),{list:z,ids:ee,names:ie,at:M}=Cc(C);if(D?.log(`cwd=${vc()??"(unknown)"} caller=${X}`),C.forEach((B)=>{D?.log(`task name=${B.name} id=${B.id} from=${B.importedFrom}`)}),C.length>Os)throw RangeError(`Too many tasks: received ${C.length}. Maximum is ${Os} (Uint16 function IDs: 0..${Ds}).`);let Z=typeof t==="object"&&t!=null,G=(e??1)+(Z?1:0),j=xs({permission:v??{mode:"strict",allowImport:!0},modules:z}),V=Ls(j),fe=He(),te=fe?.allowedNodeEnvironmentFlags??null,ae=(B)=>{let Y=B.split("=",1)[0];return Y==="--permission"||Y==="--experimental-permission"||Y==="--allow-fs-read"||Y==="--allow-fs-write"||Y==="--allow-worker"||Y==="--allow-child-process"||Y==="--allow-net"||Y==="--allow-addons"||Y==="--allow-ffi"||Y==="--allow-wasi"},s=(B)=>B?.filter((Y)=>!ae(Y)),P=(B)=>{let Y=[],ue=new Set;for(let de of B){if(ue.has(de))continue;ue.add(de),Y.push(de)}return Y},m=(B)=>{if(!B||B.length===0)return;if(!te)return B;let Y=B.filter((ue)=>{let de=ue.split("=",1)[0];return te.has(de)});return Y.length>0?Y:void 0},k=Array.isArray(fe?.execArgv)?fe.execArgv:void 0,l=N??(k?te?.has("--expose-gc")===!0?k.includes("--expose-gc")?k:[...k,"--expose-gc"]:k:void 0),g=j?.unsafe===!0?s(l):l,b=P([...V,...g??[]]),K=m(b.length>0?b:void 0);D?.log(`pool runtime=${Me} workers=${e??1} lanes=${G} inliner=${Z?"on":"off"}`),D?.log(`modules=${Ms(z)}`),D?.log(`permission=${j?.mode??"off"} execArgv=${Ms(K)}`);let S=C.some((B)=>B.abortSignal!==void 0),y=Ic(A,X),w=fe?.env?.KNITTING_DISPATCHER,oe=fe?.env?.KNITTING_STEAL?.trim().toLowerCase(),se=oe==="1"||oe==="true"?!0:oe==="0"||oe==="false"?!1:void 0,Se=W?.dispatcher!==void 0||w==="serial-channel"||w==="per-thread",Le=n===void 0&&!Se&&(e??1)<=ks,he=W?.steal??se??Le,Ae=y?.runtime==="compiled";if(y?.compiled!==void 0&&!Ae)throw Error("worker.compiled requires worker.runtime to be compiled");if(Ae){let B=[];if(Z)B.push("inliner");if(a!==void 0)B.push("payload");if(u!==void 0)B.push("unsafe");if(f!==void 0)B.push("source");if(N!==void 0)B.push("workerExecArgv");if(v!==void 0)B.push("permission");if(W!==void 0)B.push("host");if(y.bootstrap!==void 0)B.push("worker.bootstrap");if(y.timers!==void 0)B.push("worker.timers");if(y.processRuntime!==void 0)B.push("worker.processRuntime");if(y.processCommandPrefix!==void 0)B.push("worker.processCommandPrefix");if(y.processSharedMemory!==void 0)B.push("worker.processSharedMemory");if(y.resolveAfterFinishingAll!==void 0)B.push("worker.resolveAfterFinishingAll");if(C.some((Y)=>Y.timeout!==void 0))B.push("task timeout");if(C.some((Y)=>Y.imported===!0))B.push("importTask");if(B.length>0)throw Error("Compiled workers do not support: "+B.join(", "))}if(y?.bootstrap!==void 0)D?.log(`bootstrap href=${y.bootstrap.href} name=${y.bootstrap.name}`);if(Z&&y?.bootstrap!==void 0)throw Error("worker.bootstrap cannot be used with the inliner");if(y?.runtime==="process"){let B=on(y);_s(vs({permission:v,resolved:j,target:{runtime:B,nodeMajor:B==="node"?cs(y):void 0}}))}let ce=Number.isFinite(y?.hardTimeoutMs)?Math.max(1,Math.floor(y?.hardTimeoutMs)):void 0;if(ln>=1)throw Error(`createPool() tried to spawn workers from inside a worker process (pool depth ${ln}). This usually means a pool is created at module scope in a module your workers import, so every worker spawns its own pool recursively. Is your createPool protected by isMain? Guard pool creation behind \`if (isMain) { ... }\` (import { isMain } from "knitting") so only the main program starts the pool.`);let ye=W?.dispatcher??(w==="serial-channel"||w==="per-thread"?w:void 0),Oe=(()=>{if(Me==="bun")return"per-thread";if((e??1)<=1)return"per-thread";return"serial-channel"})(),Ne=ye??Oe,De=he&&!Ae&&(e??1)>1&&!Z,me=De?Es({threads:e??1,payload:a,regionLanes:W?.stealRegionLanes,abortSignalCapacity:c,usesAbortSignal:S,processWorker:y?.runtime==="process"?{signalBytes:st,sharedMemory:nn(y)}:void 0}):void 0,$e=!Ae&&!De&&Ne==="serial-channel",Ee=$e?new Yr("channel"):void 0,Be=Array.from({length:e??1}).map((B,Y)=>Rs({list:z,ids:ee,names:ie,at:M,thread:Y,debug:r,hostDebug:D?.log,totalNumberOfThread:G,workerCount:e??1,source:f,workerOptions:y,workerExecArgv:K,host:W,payload:a,bufferReferenceReturn:h,abortSignalCapacity:c,usesAbortSignal:S,permission:j,sharedChannelHandler:Ee,stealPool:me===void 0?void 0:{submitBuffers:me.submitBuffers,returnBuffers:me.returnBuffers[Y],hostSubmitLock:me.hostSubmitLock,hostReturnLock:me.hostReturnLocks[Y],sharedQueue:me.sharedQueue,consumers:e??1,consumerId:Y,regionLanes:me.regionLanes,abortSignalSAB:me.abortSignalSAB,abortSignalMax:me.abortSignalMax,processMemory:me.processMemory}})),tr=De?new Yr:void 0;if(De){let B=tr,Y=me.sharedQueue,ue=0,de=()=>{let be=Be.length;if(be===0)return;let Je=ue;ue=ue+1<be?ue+1:0,Be[Je].laneWake?.()},Ie=new Int32Array(je(3*Int32Array.BYTES_PER_ELEMENT)),{check:Pe}=an({signalBox:{opView:Ie.subarray(0,1),txStatus:Ie.subarray(1,2),rxStatus:Ie.subarray(2,3)},queue:Y,channelHandler:B,dispatcherOptions:W,notifySignal:de,crossProcess:y?.runtime==="process"});B.open(Pe),Be.forEach((be)=>{be.bindSend(()=>{if(Pe.isRunning!==!0)Pe.isRunning=!0,Promise.resolve().then(Pe);de()})}),D?.log(`dispatcher=steal lanes=${Be.length} g=${me.regionLanes}`)}let nr=Ee;if($e){let B=Ee,Y=Be.map((ve)=>ve.dispatcherCheck),ue=Be.map((ve)=>ve.txIdle),de=!1,Ie=!1,Pe=!1,be=[],Je=new Uint8Array(Y.length),er=(ve)=>{if(Je[ve]===1)return;Je[ve]=1,be.push(ve)},dr=()=>{if(Ie){Pe=!0;return}Ie=!0;do{Pe=!1,de=!1;for(let ve=be.length-1;ve>=0;ve--){let ar=be[ve],Xe=Y[ar];if(Xe.isRunning!==!0)Xe.isRunning=!0;if(Xe(),ue[ar]()){Je[ar]=0;let vr=be.pop();if(ve<be.length)be[ve]=vr}}}while(Pe);Ie=!1},Ir=()=>{if(Ie){Pe=!0;return}if(de)return;de=!0,Promise.resolve().then(dr)};B.open(dr),Be.forEach((ve,ar)=>{let Xe=ve.laneWake;ve.bindSend(()=>{er(ar),Ir(),Xe()})}),D?.log(`dispatcher=serial-channel lanes=${Y.length}`)}else D?.log(`dispatcher=per-thread lanes=${Be.length}`);if(Z){let B=Is({tasks:C,genTaskID:Qa,batchSize:t?.batchSize??1});if(t?.position==="first")Be=[B,...Be];else Be.push(B)}let Ue=Z?t?.position==="first"?0:Be.length-1:-1,or=Number.isFinite(t?.dispatchThreshold)?Math.max(1,Math.floor(t?.dispatchThreshold??1)):1,We=!1,o,_,x=()=>{if(o)return o;return We=!0,o=Promise.allSettled(Be.map((B)=>B.requestStop?.())).then(()=>Promise.allSettled(Be.map((B)=>B.kills()))).then(()=>{nr?.close(),tr?.close()}),o},d=({invoke:B,taskName:Y})=>(ue)=>{if(We)return Promise.reject(Error("Pool is shut down"));let de=B(ue);if(!ce)return de;return new Promise((Ie,Pe)=>{let be=!1,Je=setTimeout(()=>{if(be)return;be=!0,Pe(Error(`Task hard timeout after ${ce}ms (${Y}); pool force-shutdown`)),x()},ce);de.then((er)=>{if(be)return;be=!0,clearTimeout(Je),Ie(er)},(er)=>{if(be)return;be=!0,clearTimeout(Je),Pe(er)})})},F=(B)=>{if(o)return o;if(_)return _;let Y=Number.isFinite(B)?Math.max(0,Math.floor(B)):0;return _=(async()=>{if(o)return await o;if(Y>0)await new Promise((ue)=>setTimeout(ue,Y));if(o)return await o;await x()})(),_},U=()=>{F()},H=C.map((B,Y)=>({name:B.name,index:Y,timeout:B.timeout,abortSignal:B.abortSignal,imported:B.imported===!0})),q=new Map;for(let{name:B}of H)q.set(B,[]);for(let B of Be)for(let{name:Y,index:ue,timeout:de,abortSignal:Ie}of H)q.get(Y).push(d({taskName:Y,invoke:B.call({fnNumber:ue,timeout:de,abortSignal:Ie})}));let pe=(e??1)===1&&!Z,ge=(B)=>{let Y=[],ue=[];for(let de=0;de<B.length;de+=1){if(de===Ue)continue;Y.push(B[de]),ue.push(Be[de])}if(Y.length===0)throw Error("Imported task has no worker lane to run on: the pool only has the host inliner. Imported tasks are never inlined on the host; add at least one worker thread.");if(Y.length===1)return Y[0];return lo({contexts:ue,balancer:n,handlers:Y})},Re=(B,Y)=>{if(Y&&Z)return ge(B);return pe?B[0]:lo({contexts:Be,balancer:n,handlers:B,inlinerGate:Z?{index:Ue,threshold:or}:void 0})},ne;try{ne=H.map(({name:B,imported:Y})=>[B,Re(q.get(B),Y)])}catch(B){throw x(),B}return{shutdown:F,[Symbol.dispose]:U,call:Object.fromEntries(ne)}},Fs="__task__",Fc=(e,r)=>{let t=Ws(r??{})({[Fs]:e});return{call:t.call[Fs],shutdown:t.shutdown,[Symbol.dispose]:t[Symbol.dispose]}},Us=(e,r,t,n=!1)=>{let a=new URL(r).href,u={...e,id:Ja(a,t),importedFrom:a,at:t,imported:n,[zr]:!0};return u.createPool=(c)=>{if(Tr===!1)return u;return Fc(u,c)},u},Nc=(e,r)=>{let[t,n]=so(r);return Us(e,t,n)},Dc=(e,r)=>{let t,n,a=async()=>{if(t)return t;if(!n)n=import(e).then((u)=>{let c=u,f=r===yo?c.default:c[r];if(typeof f!=="function"){let A=Object.keys(c).join(", ");throw TypeError(`importTask expected export "${r}" from "${e}" to be a function. Available exports: ${A||"(none)"}`)}return t=f,t});return n};return async(...u)=>(await a())(...u)};function Wc(e){return Nc(e,4)}function Uc(e){let[r,t]=so(3),{href:n,name:a=yo,...u}=e,c=dt(n,r);return Us({...u,f:Dc(c,a)},r,t,!0)}export{mr as Envelope,Kt as NumericArray,Ws as createPool,Uc as importTask,_c as isMain,Nn as isNumericArray,Za as setModuleUrl,Wc as task,rn as workerMainLoop};
|
package/package.json
CHANGED
package/src/api.js
CHANGED
|
@@ -516,6 +516,9 @@ export const createPool = ({ threads, debug, inliner, balancer, payload, unsafe,
|
|
|
516
516
|
debug,
|
|
517
517
|
hostDebug: hostDebug?.log,
|
|
518
518
|
totalNumberOfThread,
|
|
519
|
+
// Worker count without the inline lane. The inliner runs on the host
|
|
520
|
+
// thread and never spins, so it must not count towards the spin policy.
|
|
521
|
+
workerCount: threads ?? 1,
|
|
519
522
|
source,
|
|
520
523
|
workerOptions: resolvedWorker,
|
|
521
524
|
workerExecArgv: execArgv,
|
|
@@ -687,7 +690,8 @@ export const createPool = ({ threads, debug, inliner, balancer, payload, unsafe,
|
|
|
687
690
|
if (closePromise)
|
|
688
691
|
return closePromise;
|
|
689
692
|
closing = true;
|
|
690
|
-
closePromise = Promise.allSettled(workers.map((context) => context.
|
|
693
|
+
closePromise = Promise.allSettled(workers.map((context) => context.requestStop?.()))
|
|
694
|
+
.then(() => Promise.allSettled(workers.map((context) => context.kills())))
|
|
691
695
|
.then(() => {
|
|
692
696
|
sharedDispatcherChannel?.close();
|
|
693
697
|
stealChannel?.close();
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
export type SignalArguments = ReturnType<typeof createSharedMemoryTransport>;
|
|
2
2
|
import { type SharedBufferSource } from "../../common/shared-buffer-region.js";
|
|
3
3
|
export declare const TRANSPORT_SIGNAL_BYTES: number;
|
|
4
|
+
/** States of the worker-stop word. */
|
|
5
|
+
export declare const WORKER_STOP: {
|
|
6
|
+
readonly running: 0;
|
|
7
|
+
readonly requested: 1;
|
|
8
|
+
/** The worker has left its dispatch loop. */
|
|
9
|
+
readonly acknowledged: 2;
|
|
10
|
+
};
|
|
4
11
|
export type Sab = {
|
|
5
12
|
size?: number;
|
|
6
13
|
sharedSab?: SharedBufferSource;
|
|
@@ -18,6 +25,7 @@ export declare const createSharedMemoryTransport: ({ sabObject, isMain, startTim
|
|
|
18
25
|
opView: Int32Array<import("../../common/shared-buffer-region.js").SharedBuffer>;
|
|
19
26
|
rxStatus: Int32Array<import("../../common/shared-buffer-region.js").SharedBuffer>;
|
|
20
27
|
txStatus: Int32Array<import("../../common/shared-buffer-region.js").SharedBuffer>;
|
|
28
|
+
stopView: Int32Array<import("../../common/shared-buffer-region.js").SharedBuffer>;
|
|
21
29
|
};
|
|
22
|
-
export type MainSignal = Pick<SignalArguments, "opView" | "startAt" | "rxStatus" | "txStatus">;
|
|
30
|
+
export type MainSignal = Pick<SignalArguments, "opView" | "startAt" | "rxStatus" | "txStatus" | "stopView">;
|
|
23
31
|
export {};
|
|
@@ -7,8 +7,16 @@ const SIGNAL_OFFSETS = {
|
|
|
7
7
|
op: 0,
|
|
8
8
|
rxStatus: CACHE_LINE_BYTES,
|
|
9
9
|
txStatus: CACHE_LINE_BYTES * 2,
|
|
10
|
+
stop: CACHE_LINE_BYTES * 3,
|
|
11
|
+
};
|
|
12
|
+
export const TRANSPORT_SIGNAL_BYTES = CACHE_LINE_BYTES * 4;
|
|
13
|
+
/** States of the worker-stop word. */
|
|
14
|
+
export const WORKER_STOP = {
|
|
15
|
+
running: 0,
|
|
16
|
+
requested: 1,
|
|
17
|
+
/** The worker has left its dispatch loop. */
|
|
18
|
+
acknowledged: 2,
|
|
10
19
|
};
|
|
11
|
-
export const TRANSPORT_SIGNAL_BYTES = CACHE_LINE_BYTES * 3;
|
|
12
20
|
const a_store = Atomics.store;
|
|
13
21
|
export const createSharedMemoryTransport = ({ sabObject, isMain, startTime }) => {
|
|
14
22
|
const toGrow = sabObject?.size ?? page;
|
|
@@ -24,6 +32,9 @@ export const createSharedMemoryTransport = ({ sabObject, isMain, startTime }) =>
|
|
|
24
32
|
a_store(opView, 0, 0);
|
|
25
33
|
const rxStatus = new Int32Array(sab, baseByteOffset + SIGNAL_OFFSETS.rxStatus, 1);
|
|
26
34
|
a_store(rxStatus, 0, 1);
|
|
35
|
+
const stopView = new Int32Array(sab, baseByteOffset + SIGNAL_OFFSETS.stop, 1);
|
|
36
|
+
if (isMain)
|
|
37
|
+
a_store(stopView, 0, WORKER_STOP.running);
|
|
27
38
|
return {
|
|
28
39
|
sab: signalRegion,
|
|
29
40
|
op: opView,
|
|
@@ -31,5 +42,6 @@ export const createSharedMemoryTransport = ({ sabObject, isMain, startTime }) =>
|
|
|
31
42
|
opView,
|
|
32
43
|
rxStatus,
|
|
33
44
|
txStatus: new Int32Array(sab, baseByteOffset + SIGNAL_OFFSETS.txStatus, 1),
|
|
45
|
+
stopView,
|
|
34
46
|
};
|
|
35
47
|
};
|
package/src/memory/lock.js
CHANGED
|
@@ -228,10 +228,9 @@ export const HEADER_STATIC_PAYLOAD_U32 = TaskIndex.TotalBuff -
|
|
|
228
228
|
export const HEADER_TASK_OFFSET_IN_SLOT_U32 = HEADER_STATIC_PAYLOAD_U32;
|
|
229
229
|
// Work-stealing control words live in the unused tail of each slot's header
|
|
230
230
|
// cache line. Task words occupy 0..7 (`TASK_LOCAL_FLAGS_INDEX = 7`) of the
|
|
231
|
-
// 16-word line, leaving words 8..15 free. Consumer `c` owns slot `c`'s
|
|
232
|
-
//
|
|
233
|
-
//
|
|
234
|
-
// and a peer reading one pulls the other for free.
|
|
231
|
+
// 16-word line, leaving words 8..15 free. Consumer `c` owns slot `c`'s words,
|
|
232
|
+
// and the slot stride keeps those words on separate cache lines.
|
|
233
|
+
// The ACK word was removed; retirement is folded into `workerBits`.
|
|
235
234
|
export const STEAL_ACK_SLOT_OFFSET_U32 = HEADER_TASK_OFFSET_IN_SLOT_U32 +
|
|
236
235
|
TaskIndex.Size;
|
|
237
236
|
export const STEAL_WANT_SLOT_OFFSET_U32 = STEAL_ACK_SLOT_OFFSET_U32 + 1;
|
|
@@ -363,12 +362,10 @@ export const lock2 = ({ headers, headerSlotStrideU32, LockBoundSector, payload,
|
|
|
363
362
|
// Int32 alias over the headers SAB so the control words get signed bit math
|
|
364
363
|
// consistent with the rest of the protocol.
|
|
365
364
|
const stealView = new Int32Array(headersRegion.sab, headersRegion.byteOffset, headersRegion.byteLength >>> 2);
|
|
366
|
-
const stealAckIndex = new Int32Array(stealConsumers);
|
|
367
365
|
const stealWantIndex = new Int32Array(stealConsumers);
|
|
368
366
|
for (let c = 0; c < stealConsumers; c++) {
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
stealWantIndex[c] = slotBase + STEAL_WANT_SLOT_OFFSET_U32;
|
|
367
|
+
stealWantIndex[c] = (c * headersSlotStride) + LockBound.header +
|
|
368
|
+
STEAL_WANT_SLOT_OFFSET_U32;
|
|
372
369
|
}
|
|
373
370
|
const stealLiveIndex = LockBound.header + STEAL_LIVE_SLOT_OFFSET_U32;
|
|
374
371
|
const stealAllLiveMask = stealConsumers === 32
|
|
@@ -378,13 +375,6 @@ export const lock2 = ({ headers, headerSlotStrideU32, LockBoundSector, payload,
|
|
|
378
375
|
Atomics.store(stealView, stealLiveIndex, stealAllLiveMask);
|
|
379
376
|
}
|
|
380
377
|
const stealIsLive = (mask, consumer) => (mask & (1 << consumer)) !== 0;
|
|
381
|
-
const stealAckXorAll = () => {
|
|
382
|
-
let x = 0 | 0;
|
|
383
|
-
for (let c = 0; c < stealConsumers; c++) {
|
|
384
|
-
x = (x ^ a_load(stealView, stealAckIndex[c])) | 0;
|
|
385
|
-
}
|
|
386
|
-
return x;
|
|
387
|
-
};
|
|
388
378
|
let promiseHandler;
|
|
389
379
|
if (registeredEncodePayload === undefined ||
|
|
390
380
|
registeredDecodePayload === undefined) {
|
|
@@ -445,9 +435,8 @@ export const lock2 = ({ headers, headerSlotStrideU32, LockBoundSector, payload,
|
|
|
445
435
|
// lanes but cannot make a genuinely pending lane appear free. Refresh only
|
|
446
436
|
// when the cached free set is exhausted.
|
|
447
437
|
let workerShadow = 0 | 0;
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
: () => workerShadow = a_load(workerBits, 0) | 0;
|
|
438
|
+
// Under stealing, workerBits also records retired lanes.
|
|
439
|
+
const refreshWorkerShadow = () => workerShadow = a_load(workerBits, 0) | 0;
|
|
451
440
|
refreshWorkerShadow();
|
|
452
441
|
const ensureSenderStateHasFree = (state) => (~state) !== 0 ? state : (LastLocal ^ refreshWorkerShadow()) | 0;
|
|
453
442
|
// RingQueue method aliases (hot path)
|
|
@@ -666,14 +655,6 @@ export const lock2 = ({ headers, headerSlotStrideU32, LockBoundSector, payload,
|
|
|
666
655
|
const stealLaneMask = (region) => stealRegionLanes === 32
|
|
667
656
|
? -1
|
|
668
657
|
: ((((1 << stealRegionLanes) - 1) << (region * stealRegionLanes)) | 0);
|
|
669
|
-
const stealPeerAcks = () => {
|
|
670
|
-
let x = 0 | 0;
|
|
671
|
-
for (let c = 0; c < stealConsumers; c++) {
|
|
672
|
-
if (c !== stealId)
|
|
673
|
-
x = (x ^ a_load(stealView, stealAckIndex[c])) | 0;
|
|
674
|
-
}
|
|
675
|
-
return x;
|
|
676
|
-
};
|
|
677
658
|
const stealJuniorWants = (intent) => {
|
|
678
659
|
const live = a_load(stealView, stealLiveIndex) | 0;
|
|
679
660
|
for (let c = stealId + 1; c < stealConsumers; c++) {
|
|
@@ -684,9 +665,11 @@ export const lock2 = ({ headers, headerSlotStrideU32, LockBoundSector, payload,
|
|
|
684
665
|
}
|
|
685
666
|
return false;
|
|
686
667
|
};
|
|
687
|
-
|
|
668
|
+
const stealHome = ((stealRegions * stealId) / stealConsumers) | 0;
|
|
669
|
+
let stealCursor = stealHome;
|
|
688
670
|
const decodeSteal = () => {
|
|
689
|
-
|
|
671
|
+
// workerBits includes retired lanes under stealing.
|
|
672
|
+
const pending = (a_load(hostBits, 0) ^ a_load(workerBits, 0)) | 0;
|
|
690
673
|
if (pending === 0)
|
|
691
674
|
return false;
|
|
692
675
|
let pendingRegions = 0 | 0;
|
|
@@ -748,23 +731,32 @@ export const lock2 = ({ headers, headerSlotStrideU32, LockBoundSector, payload,
|
|
|
748
731
|
}
|
|
749
732
|
// Last control loads before ownership. After this no control word is read
|
|
750
733
|
// until every slot in `take` has been decoded.
|
|
751
|
-
const take = ((a_load(hostBits, 0) ^
|
|
734
|
+
const take = ((a_load(hostBits, 0) ^ a_load(workerBits, 0)) &
|
|
752
735
|
stealLaneMask(region)) | 0;
|
|
753
736
|
if (take === 0) {
|
|
754
737
|
a_store(stealView, stealWantIndex[stealId], 0);
|
|
755
738
|
return false;
|
|
756
739
|
}
|
|
740
|
+
// Retire decoded lanes and release the region even if decoding throws.
|
|
757
741
|
let lanes = take;
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
742
|
+
let done = 0 | 0;
|
|
743
|
+
try {
|
|
744
|
+
while (lanes !== 0) {
|
|
745
|
+
const bit = (lanes & -lanes) | 0;
|
|
746
|
+
decodeAt(31 - clz32(bit >>> 0));
|
|
747
|
+
lanes = (lanes & (lanes - 1)) | 0;
|
|
748
|
+
done = (done ^ bit) | 0;
|
|
749
|
+
}
|
|
750
|
+
}
|
|
751
|
+
finally {
|
|
752
|
+
// ACK before clearing intent.
|
|
753
|
+
LastWorker = (LastWorker ^ done) | 0;
|
|
754
|
+
if (done !== 0)
|
|
755
|
+
Atomics.xor(workerBits, 0, done);
|
|
756
|
+
a_store(stealView, stealWantIndex[stealId], 0);
|
|
757
|
+
// Restart from this consumer's home region.
|
|
758
|
+
stealCursor = stealHome;
|
|
759
|
+
}
|
|
768
760
|
return true;
|
|
769
761
|
};
|
|
770
762
|
/**
|
package/src/runtime/pool.d.ts
CHANGED
|
@@ -109,7 +109,7 @@ export declare const createStealPoolBuffers: ({ threads, payload, regionLanes, a
|
|
|
109
109
|
abortSignalSAB: SharedArrayBuffer | import("../types.js").SharedBufferRegion;
|
|
110
110
|
abortSignalMax: number;
|
|
111
111
|
};
|
|
112
|
-
export declare const spawnWorkerContext: ({ list, ids, names, sab, thread, debug, hostDebug, totalNumberOfThread, source, at, workerOptions, workerExecArgv, permission, host, payload, bufferReferenceReturn, abortSignalCapacity, usesAbortSignal, sharedChannelHandler, stealPool, }: {
|
|
112
|
+
export declare const spawnWorkerContext: ({ list, ids, names, sab, thread, debug, hostDebug, totalNumberOfThread, workerCount, source, at, workerOptions, workerExecArgv, permission, host, payload, bufferReferenceReturn, abortSignalCapacity, usesAbortSignal, sharedChannelHandler, stealPool, }: {
|
|
113
113
|
list: string[];
|
|
114
114
|
ids: number[];
|
|
115
115
|
names: string[];
|
|
@@ -119,6 +119,12 @@ export declare const spawnWorkerContext: ({ list, ids, names, sab, thread, debug
|
|
|
119
119
|
debug?: DebugOptions;
|
|
120
120
|
hostDebug?: (message: string) => void;
|
|
121
121
|
totalNumberOfThread: number;
|
|
122
|
+
/**
|
|
123
|
+
* Workers only, excluding any host inline lane. Drives the spin policy:
|
|
124
|
+
* the inliner runs on the host thread and never spins, so counting it
|
|
125
|
+
* would strip a one-worker pool of the budget it should keep.
|
|
126
|
+
*/
|
|
127
|
+
workerCount?: number;
|
|
122
128
|
source?: string;
|
|
123
129
|
workerOptions?: WorkerSettings;
|
|
124
130
|
workerExecArgv?: string[];
|
package/src/runtime/pool.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createHostTxQueue } from "./tx-queue.js";
|
|
2
2
|
import { cleanupProcessWorkerMemoryQuietly, createProcessSharedMemoryAllocator, createProcessStealMemoryLayout, createProcessWorkerMemoryLayout, createProcessWorkerNativeSignalNotifier, readProcessSharedMemorySettings, readProcessWorkerCommandPrefix, readProcessWorkerRuntime, spawnProcessWorker, toProcessWorkerBootPayload, } from "./process-worker.js";
|
|
3
3
|
import { serializeWorkerBootstrapData, terminateWorkerQuietly, toWorkerCompatExecArgv, toWorkerSafeExecArgv, } from "./worker-common.js";
|
|
4
|
-
import { createSharedMemoryTransport, TRANSPORT_SIGNAL_BYTES, } from "../ipc/transport/shared-memory.js";
|
|
4
|
+
import { createSharedMemoryTransport, TRANSPORT_SIGNAL_BYTES, WORKER_STOP, } from "../ipc/transport/shared-memory.js";
|
|
5
5
|
import { ChannelHandler, hostDispatcherLoop, } from "./dispatcher.js";
|
|
6
6
|
import { HEADER_SLOT_STRIDE_U32, lock2, LOCK_SECTOR_BYTE_LENGTH, LockBound, } from "../memory/lock.js";
|
|
7
7
|
// Side-effect import: registers the payload codec (cycle break for Andromeda;
|
|
@@ -20,8 +20,12 @@ const WORKER_FATAL_MESSAGE_KEY = "__knittingWorkerFatal";
|
|
|
20
20
|
const isWorkerFatalMessage = (value) => !!value &&
|
|
21
21
|
typeof value === "object" &&
|
|
22
22
|
typeof value[WORKER_FATAL_MESSAGE_KEY] === "string";
|
|
23
|
+
// Bound the wait for a worker to acknowledge loop exit.
|
|
24
|
+
const WORKER_STOP_ACK_TIMEOUT_MS = 50;
|
|
25
|
+
const WORKER_STOP_NEEDS_ACK = RUNTIME === "deno";
|
|
23
26
|
// Keep idle workers self-healing if an Atomics.notify wake is missed.
|
|
24
27
|
const DEFAULT_WORKER_PARK_MS = 1;
|
|
28
|
+
const SINGLE_WORKER_SPIN_US = 50;
|
|
25
29
|
const DEFAULT_ABORT_SIGNAL_CAPACITY = 258;
|
|
26
30
|
const sanitizePositiveInteger = (value) => {
|
|
27
31
|
if (!Number.isFinite(value))
|
|
@@ -31,15 +35,20 @@ const sanitizePositiveInteger = (value) => {
|
|
|
31
35
|
};
|
|
32
36
|
const resolveAbortSignalCapacity = (value) => sanitizePositiveInteger(value) ?? DEFAULT_ABORT_SIGNAL_CAPACITY;
|
|
33
37
|
const abortSignalByteLength = (capacity) => Math.max(1, Math.ceil(capacity / 32)) * Uint32Array.BYTES_PER_ELEMENT;
|
|
34
|
-
const withDefaultWorkerTimers = (options) => {
|
|
38
|
+
const withDefaultWorkerTimers = (options, workerCount) => {
|
|
35
39
|
const parkMs = options?.timers?.parkMs ?? DEFAULT_WORKER_PARK_MS;
|
|
40
|
+
// `??` and not `||`: an explicit `spinMicroseconds: 0` is the whole point of
|
|
41
|
+
// the multi-worker default and must not fall through to it.
|
|
42
|
+
const spinMicroseconds = options?.timers?.spinMicroseconds ??
|
|
43
|
+
(workerCount <= 1 ? SINGLE_WORKER_SPIN_US : 0);
|
|
36
44
|
if (options === undefined)
|
|
37
|
-
return { timers: { parkMs } };
|
|
45
|
+
return { timers: { parkMs, spinMicroseconds } };
|
|
38
46
|
return {
|
|
39
47
|
...options,
|
|
40
48
|
timers: {
|
|
41
49
|
...options.timers,
|
|
42
50
|
parkMs,
|
|
51
|
+
spinMicroseconds,
|
|
43
52
|
},
|
|
44
53
|
};
|
|
45
54
|
};
|
|
@@ -176,7 +185,7 @@ export const createStealPoolBuffers = ({ threads, payload, regionLanes, abortSig
|
|
|
176
185
|
(abortSignalSAB === undefined ? undefined : resolvedAbortSignalCapacity),
|
|
177
186
|
};
|
|
178
187
|
};
|
|
179
|
-
export const spawnWorkerContext = ({ list, ids, names, sab, thread, debug, hostDebug, totalNumberOfThread, source, at, workerOptions, workerExecArgv, permission, host, payload, bufferReferenceReturn, abortSignalCapacity, usesAbortSignal, sharedChannelHandler, stealPool, }) => {
|
|
188
|
+
export const spawnWorkerContext = ({ list, ids, names, sab, thread, debug, hostDebug, totalNumberOfThread, workerCount, source, at, workerOptions, workerExecArgv, permission, host, payload, bufferReferenceReturn, abortSignalCapacity, usesAbortSignal, sharedChannelHandler, stealPool, }) => {
|
|
180
189
|
if (workerOptions?.runtime === "compiled") {
|
|
181
190
|
return spawnCompiledWorkerContext({
|
|
182
191
|
list,
|
|
@@ -189,7 +198,7 @@ export const spawnWorkerContext = ({ list, ids, names, sab, thread, debug, hostD
|
|
|
189
198
|
}
|
|
190
199
|
const tsFileUrl = new URL(import.meta.url);
|
|
191
200
|
const poliWorker = RUNTIME_WORKER;
|
|
192
|
-
const resolvedWorkerOptions = serializeWorkerBootstrapData(withDefaultWorkerTimers(workerOptions));
|
|
201
|
+
const resolvedWorkerOptions = serializeWorkerBootstrapData(withDefaultWorkerTimers(workerOptions, workerCount ?? totalNumberOfThread));
|
|
193
202
|
const useProcessWorkerRuntime = resolvedWorkerOptions.runtime === "process";
|
|
194
203
|
const processWorkerRuntime = useProcessWorkerRuntime
|
|
195
204
|
? readProcessWorkerRuntime(resolvedWorkerOptions)
|
|
@@ -637,13 +646,38 @@ export const spawnWorkerContext = ({ list, ids, names, sab, thread, debug, hostD
|
|
|
637
646
|
return pending;
|
|
638
647
|
};
|
|
639
648
|
};
|
|
649
|
+
// Ask the worker to leave its loop before termination.
|
|
650
|
+
const requestWorkerStop = async () => {
|
|
651
|
+
const stopView = signalBox.stopView;
|
|
652
|
+
if (stopView === undefined)
|
|
653
|
+
return;
|
|
654
|
+
try {
|
|
655
|
+
Atomics.store(stopView, 0, WORKER_STOP.requested);
|
|
656
|
+
laneWake();
|
|
657
|
+
notifySignal?.();
|
|
658
|
+
}
|
|
659
|
+
catch {
|
|
660
|
+
return;
|
|
661
|
+
}
|
|
662
|
+
if (!WORKER_STOP_NEEDS_ACK)
|
|
663
|
+
return;
|
|
664
|
+
const deadline = Date.now() + WORKER_STOP_ACK_TIMEOUT_MS;
|
|
665
|
+
while (Atomics.load(stopView, 0) !== WORKER_STOP.acknowledged) {
|
|
666
|
+
if (Date.now() >= deadline)
|
|
667
|
+
return;
|
|
668
|
+
await new Promise((resolve) => setTimeout(resolve, 1));
|
|
669
|
+
}
|
|
670
|
+
};
|
|
640
671
|
const context = {
|
|
641
672
|
txIdle,
|
|
642
673
|
call,
|
|
674
|
+
requestStop: requestWorkerStop,
|
|
643
675
|
kills: async () => {
|
|
644
676
|
markWorkerClosed("Thread closed", true);
|
|
645
|
-
|
|
646
|
-
|
|
677
|
+
// Process workers must exit before their shared memory is unmapped.
|
|
678
|
+
const awaitExit = processWorkerMemory !== undefined;
|
|
679
|
+
const termination = terminateWorkerQuietly(worker, awaitExit);
|
|
680
|
+
if (awaitExit)
|
|
647
681
|
await termination;
|
|
648
682
|
cleanupProcessWorkerMemoryQuietly(processWorkerMemory);
|
|
649
683
|
},
|
|
@@ -10,4 +10,5 @@ export type NodeWorkerLike = {
|
|
|
10
10
|
export declare const toWorkerSafeExecArgv: (flags: string[] | undefined) => string[] | undefined;
|
|
11
11
|
export declare const toWorkerCompatExecArgv: (flags: string[] | undefined) => string[] | undefined;
|
|
12
12
|
export declare const serializeWorkerBootstrapData: (options: WorkerSettings) => WorkerSettings;
|
|
13
|
-
|
|
13
|
+
/** Terminate a worker, optionally waiting for it to exit. */
|
|
14
|
+
export declare const terminateWorkerQuietly: (worker: SpawnedWorker, awaitExit?: boolean) => Promise<void>;
|
|
@@ -90,12 +90,26 @@ export const serializeWorkerBootstrapData = (options) => {
|
|
|
90
90
|
},
|
|
91
91
|
};
|
|
92
92
|
};
|
|
93
|
-
|
|
93
|
+
// Bound the wait for process-worker exit.
|
|
94
|
+
const WORKER_EXIT_WAIT_MS = 2_000;
|
|
95
|
+
/** Terminate a worker, optionally waiting for it to exit. */
|
|
96
|
+
export const terminateWorkerQuietly = (worker, awaitExit = false) => {
|
|
94
97
|
try {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
worker.
|
|
98
|
-
|
|
98
|
+
if (!awaitExit)
|
|
99
|
+
worker.unref?.();
|
|
100
|
+
const exited = Promise.resolve(worker.terminate()).then(() => { }, () => { });
|
|
101
|
+
if (!awaitExit)
|
|
102
|
+
return exited;
|
|
103
|
+
return new Promise((resolve) => {
|
|
104
|
+
const timer = setTimeout(() => {
|
|
105
|
+
worker.unref?.();
|
|
106
|
+
resolve();
|
|
107
|
+
}, WORKER_EXIT_WAIT_MS);
|
|
108
|
+
void exited.then(() => {
|
|
109
|
+
clearTimeout(timer);
|
|
110
|
+
resolve();
|
|
111
|
+
});
|
|
112
|
+
});
|
|
99
113
|
}
|
|
100
114
|
catch {
|
|
101
115
|
return Promise.resolve();
|
package/src/types.d.ts
CHANGED
|
@@ -13,6 +13,8 @@ type WorkerInvoke = (args: Uint8Array) => Promise<unknown>;
|
|
|
13
13
|
interface WorkerContext {
|
|
14
14
|
txIdle(): boolean;
|
|
15
15
|
call(descriptor: WorkerCall): WorkerInvoke;
|
|
16
|
+
/** Ask the worker to leave its dispatch loop before termination. */
|
|
17
|
+
requestStop?(): Promise<void>;
|
|
16
18
|
kills(): Promise<void>;
|
|
17
19
|
}
|
|
18
20
|
type CreateContext = WorkerContext;
|
package/src/worker/loop.js
CHANGED
|
@@ -2,7 +2,7 @@ import { addRuntimeDataListener, createRuntimeMessageChannel, RUNTIME_IS_MAIN_TH
|
|
|
2
2
|
import { isSharedBufferSource } from "../common/shared-buffer-region.js";
|
|
3
3
|
import { isLockBufferTextCompat } from "../common/shared-buffer-text.js";
|
|
4
4
|
import { createWorkerRxQueue } from "./rx-queue.js";
|
|
5
|
-
import { createSharedMemoryTransport } from "../ipc/transport/shared-memory.js";
|
|
5
|
+
import { createSharedMemoryTransport, WORKER_STOP, } from "../ipc/transport/shared-memory.js";
|
|
6
6
|
import { lock2 } from "../memory/lock.js";
|
|
7
7
|
// Side-effect import: registers the payload codec (cycle break for Andromeda;
|
|
8
8
|
// see lock.ts). Must run before any lock2() call.
|
|
@@ -126,18 +126,17 @@ export const workerMainLoop = async (startupData) => {
|
|
|
126
126
|
});
|
|
127
127
|
const timers = workerOptions?.timers;
|
|
128
128
|
const spinMicroseconds = timers?.spinMicroseconds ??
|
|
129
|
-
|
|
129
|
+
(totalNumberOfThread <= 1 ? 50 : 0);
|
|
130
130
|
const parkMs = dbg !== undefined
|
|
131
131
|
? Number.POSITIVE_INFINITY
|
|
132
|
-
: (timers?.parkMs ??
|
|
133
|
-
Math.max(1, totalNumberOfThread) * 50);
|
|
132
|
+
: (timers?.parkMs ?? 1);
|
|
134
133
|
const pauseSpin = (() => {
|
|
135
134
|
const fn = typeof timers?.pauseNanoseconds === "number"
|
|
136
135
|
? whilePausing({ pauseInNanoseconds: timers.pauseNanoseconds })
|
|
137
136
|
: pauseGeneric;
|
|
138
137
|
return () => fn(); // always a closure wrapper
|
|
139
138
|
})();
|
|
140
|
-
const { opView, rxStatus, txStatus } = signals;
|
|
139
|
+
const { opView, rxStatus, txStatus, stopView } = signals;
|
|
141
140
|
const a_store = Atomics.store;
|
|
142
141
|
const a_load = Atomics.load;
|
|
143
142
|
const nativeWaitU32 = getProcessWorkerNativeWaitU32();
|
|
@@ -261,11 +260,23 @@ export const workerMainLoop = async (startupData) => {
|
|
|
261
260
|
}
|
|
262
261
|
: pauseUntil;
|
|
263
262
|
const flushBeforeClaim = steal !== undefined;
|
|
263
|
+
/** Leave the dispatch loop and acknowledge shutdown. */
|
|
264
|
+
const stopLoop = () => {
|
|
265
|
+
a_store(stopView, 0, WORKER_STOP.acknowledged);
|
|
266
|
+
a_store(rxStatus, 0, 0);
|
|
267
|
+
try {
|
|
268
|
+
port1.close?.();
|
|
269
|
+
port2.close?.();
|
|
270
|
+
}
|
|
271
|
+
catch { }
|
|
272
|
+
};
|
|
264
273
|
const loop = () => {
|
|
265
274
|
isInMacro = false;
|
|
266
275
|
let progressed = true;
|
|
267
276
|
let awaiting = 0;
|
|
268
277
|
while (true) {
|
|
278
|
+
if (stopView[0] !== WORKER_STOP.running)
|
|
279
|
+
return stopLoop();
|
|
269
280
|
if (flushBeforeClaim) {
|
|
270
281
|
// Stealing only. Flush finished work before taking more on: a computed
|
|
271
282
|
// response should not wait behind a claim, and that claim can block on
|