@banou/ripple 0.0.28 → 0.0.30

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.
Binary file
@@ -1 +1 @@
1
- if(self.name.startsWith(`em-pthread`)){let e=self.name.split(`-`).slice(2).join(`-`),t=globalThis.fetch;globalThis.fetch=n=>t(e),self.name=`em-pthread`}async function e(e={}){var t=e,n=!0,r=!!globalThis.WorkerGlobalScope,i=(...e)=>console.log(...e),a=(...e)=>console.error(...e);function o(){s&&h()}var s=r&&globalThis.name==`em-pthread`;r&&(c=self.location.href);var c;let l=!!WebAssembly.Memory.prototype.toResizableBuffer;if(_=()=>{if(!(l&&self.HEAPU8RAW)){var e=l?D.toResizableBuffer():D.buffer;v=new Int8Array(e),F=new Int16Array(e),E=new Uint8Array(e),I=new Uint16Array(e),C=new Int32Array(e),T=new Uint32Array(e),jt=new Float32Array(e),b=new Float64Array(e),x=new BigInt64Array(e),Pe=new BigUint64Array(e),self.HEAPU8RAW=new Uint8Array(e),self.WASMMEMORY=D}},e.__out&&(i=e.__out),e.__err&&(a=e.__err),!self.name.startsWith(`em-pthread`)){let t=globalThis.Worker;globalThis.Worker=class extends t{constructor(t,n={}){super(t,{...n,name:`em-pthread-`+e.__url})}}}let u=$;$=function(){u(),er=new Proxy({},{get(){return e=>be(Y.toValue(e))}})};function d(e){throw e}class f{}class p extends f{}function m(){D.buffer!=v.buffer&&_()}var h;if(s){var g=!1;self.onunhandledrejection=e=>{throw e.reason||e};function e(n){try{var r=n.data,o=r.cmd;if(o==1){let n=[];self.onmessage=e=>n.push(e),h=()=>{postMessage({cmd:3});for(let t of n)e(t);self.onmessage=e};for(let e of r.handlers)(!t[e]||t[e].proxy)&&(t[e]=(...t)=>{postMessage({cmd:9,handler:e,args:t})},e==`print`&&(i=t[e]),e==`printErr`&&(a=t[e]));D=r.wasmMemory,_(),t.wasm=r.wasmModule,$()}else if(o==2){pe(r.pthread_ptr),ar(r.pthread_ptr,0,0,1,0,0),w.threadInitTLS(),Jt(r.pthread_ptr),g||=(ir(),!0);try{ge(r.start_routine,r.arg)}catch(e){if(e!=`unwind`)throw e}}else o==4?g&&Yt():o&&(a(`worker: received unknown command ${o}`),a(r))}catch(e){throw ee&&sr(),e}}self.onmessage=e}var ee=!1;function te(){return D.buffer}function _(){if(!v?.buffer?.growable){var e=te();v=new Int8Array(e),F=new Int16Array(e),E=new Uint8Array(e),I=new Uint16Array(e),C=new Int32Array(e),T=new Uint32Array(e),jt=new Float32Array(e),b=new Float64Array(e),x=new BigInt64Array(e),Pe=new BigUint64Array(e)}}function ne(){s||(D=new WebAssembly.Memory({initial:512,maximum:32768,shared:!0}),_())}ne();var v,re=e=>{e.terminate(),e.onmessage=e=>{}},ie=e=>{var t=w.pthreads[e];w.returnWorkerToPool(t)},ae=e=>{for(;e.length>0;)e.shift()(t)},oe=[],se=e=>{var t=w.getNewWorker();if(!t)return 6;w.pthreads[e.pthread_ptr]=t,t.pthread_ptr=e.pthread_ptr;var n={cmd:2,start_routine:e.startRoutine,arg:e.arg,pthread_ptr:e.pthread_ptr};return t.postMessage(n,e.transferList),0},ce=()=>vr(),y=e=>gr(e),le=e=>_r(e),b,x,S=(e,t,n,...r)=>{var i=8*r.length*2,a=ce(),o=le(i),s=o>>3;for(var c of r)typeof c==`bigint`?((m(),x)[s++]=1n,(m(),x)[s++]=c):((m(),x)[s++]=0n,(m(),b)[s++]=c);var l=lr(e,t,i,o,n);return y(a),l};function ue(e){if(s)return S(0,0,1,e);throw`exit(${e})`}var de=ue,fe=!Atomics.waitAsync||globalThis.navigator?.userAgent&&Number((navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)||[])[2])<91,C,w={unusedWorkers:[],tlsInitFunctions:[],pthreads:{},init(){s||w.initMainThread()},initMainThread(){for(var e=!navigator.userAgent.toLowerCase().includes(`firefox`)&&self.crossOriginIsolated?Math.min(Math.max(0,navigator.hardwareConcurrency-2),8):0;e--;)w.allocateUnusedWorker()},terminateAllThreads:()=>{for(var e of Object.values(w.pthreads))re(e);for(var e of w.unusedWorkers)re(e);w.unusedWorkers=[],w.pthreads={}},terminateRuntime:()=>{w.terminateAllThreads();var e=tr();or(0,0,0,1),fe||Atomics.notify((m(),C),e>>2)},returnWorkerToPool:e=>{var t=e.pthread_ptr;delete w.pthreads[t],w.unusedWorkers.push(e),e.pthread_ptr=0,ur(t)},threadInitTLS(){w.tlsInitFunctions.forEach(e=>e())},loadWasmModuleToWorker:e=>new Promise(n=>{e.onmessage=r=>{var i=r.data,o=i.cmd;if(i.targetThread&&i.targetThread!=tr()){w.pthreads[i.targetThread]?.postMessage(i);return}if(i===`setimmediate`||i===`_si`){e.postMessage(i);return}switch(o){case 4:Yt();break;case 5:se(i);break;case 6:qt(()=>ie(i.thread));break;case 3:n(e);break;case 9:t[i.handler](...i.args);break;default:o&&a(`worker sent an unknown command ${o}`)}},e.onerror=e=>{throw a(`worker sent an error! ${e.filename}:${e.lineno}: ${e.message}`),e};var r=[];for(var i of[])t.propertyIsEnumerable(i)&&r.push(i);e.postMessage({cmd:1,handlers:r,wasmMemory:D,wasmModule:Dr})}),async loadWasmModuleToAllWorkers(){if(!s)return Promise.all(w.unusedWorkers.map(w.loadWasmModuleToWorker))},allocateUnusedWorker(){var e=new Worker(self.location.href,{type:`module`,name:`em-pthread`});return w.unusedWorkers.push(e),e},getNewWorker(){if(w.unusedWorkers.length==0){var e=w.allocateUnusedWorker();w.loadWasmModuleToWorker(e)}return w.unusedWorkers.pop()}},T;function pe(e){var t=(m(),T)[e+48>>2],n=t-(m(),T)[e+52>>2];hr(t,n),y(t)}var me=[],he=e=>{var t=me[e];return t||(me[e]=t=yr.get(e)),t},ge=(e,t)=>{var n=he(e)(t);function r(e){dr(e)}r(n)},_e=e=>{for(var t=0,n=0;n<e.length;++n){var r=e.charCodeAt(n);r<=127?t++:r<=2047?t+=2:r>=55296&&r<=57343?(t+=4,++n):t+=3}return t},ve=(e,t,n,r)=>{if(!(r>0))return 0;for(var i=n,a=n+r-1,o=0;o<e.length;++o){var s=e.codePointAt(o);if(s<=127){if(n>=a)break;t[n++]=s}else if(s<=2047){if(n+1>=a)break;t[n++]=192|s>>6,t[n++]=128|s&63}else if(s<=65535){if(n+2>=a)break;t[n++]=224|s>>12,t[n++]=128|s>>6&63,t[n++]=128|s&63}else{if(n+3>=a)break;t[n++]=240|s>>18,t[n++]=128|s>>12&63,t[n++]=128|s>>6&63,t[n++]=128|s&63,o++}}return t[n]=0,n-i},E,ye=(e,t,n)=>ve(e,(m(),E),t,n),be=e=>{var t=_e(e)+1,n=nr(t);return n&&ye(e,n,t),n},D,xe=new TextDecoder,Se=(e,t,n,r)=>{var i=t+n;if(r)return i;for(;e[t]&&!(t>=i);)++t;return t},O=(e,t,n)=>{if(!e)return``;var r=Se((m(),E),e,t,n);return xe.decode((m(),E).slice(e,r))},Ce=(e,t,n,r)=>d(`Assertion failed: ${O(e)}, at: `+[t?O(t):`unknown filename`,n,r?O(r):`unknown function`]);function we(e,t,n,r){return s?S(1,0,1,e,t,n,r):Ee(e,t,n,r)}var Te=()=>!!globalThis.SharedArrayBuffer,Ee=(e,t,n,r)=>{if(!Te())return 6;var i=[];if(s&&i.length===0)return we(e,t,n,r);var a={startRoutine:n,pthread_ptr:e,arg:r,transferList:i};return s?(a.cmd=5,postMessage(a,i),0):se(a)};function De(e,t,n){return s?S(2,0,1,e,t,n):0}function Oe(e,t,n){if(s)return S(3,0,1,e,t,n)}function ke(e,t,n){return s?S(4,0,1,e,t,n):0}function Ae(e,t,n,r){if(s)return S(5,0,1,e,t,n,r)}var je=()=>d(``),k=e=>{for(var t=``;;){var n=(m(),E)[e++];if(!n)return t;t+=String.fromCharCode(n)}},A={},j={},Me={};class M extends Error{constructor(e){super(e),this.name=`BindingError`}}var N=e=>{throw new M(e)};function Ne(e,t,n={}){var r=t.name;if(e||N(`type "${r}" must have a positive integer typeid pointer`),j.hasOwnProperty(e)){if(n.ignoreDuplicateRegistrations)return;N(`Cannot register type '${r}' twice`)}if(j[e]=t,delete Me[e],A.hasOwnProperty(e)){var i=A[e];delete A[e],i.forEach(e=>e())}}function P(e,t,n={}){return Ne(e,t,n)}var F,I,Pe,Fe=(e,t,n)=>{switch(t){case 1:return n?e=>(m(),v)[e]:e=>(m(),E)[e];case 2:return n?e=>(m(),F)[e>>1]:e=>(m(),I)[e>>1];case 4:return n?e=>(m(),C)[e>>2]:e=>(m(),T)[e>>2];case 8:return n?e=>(m(),x)[e>>3]:e=>(m(),Pe)[e>>3];default:throw TypeError(`invalid integer width (${t}): ${e}`)}},Ie=(e,t,n,r,i)=>{t=k(t);let a=r===0n,o=e=>e;if(a){let e=n*8;o=t=>BigInt.asUintN(e,t),i=o(i)}P(e,{name:t,fromWireType:o,toWireType:(e,t)=>(typeof t==`number`&&(t=BigInt(t)),t),readValueFromPointer:Fe(t,n,!a),destructorFunction:null})},Le=(e,t,n,r)=>{t=k(t),P(e,{name:t,fromWireType:function(e){return!!e},toWireType:function(e,t){return t?n:r},readValueFromPointer:function(e){return this.fromWireType((m(),E)[e])},destructorFunction:null})},Re=e=>({count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType}),ze=e=>{function t(e){return e.$$.ptrType.registeredClass.name}N(t(e)+` instance already deleted`)},Be=!1,Ve=e=>{},He=e=>{e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)},Ue=e=>{--e.count.value,e.count.value===0&&He(e)},L=e=>globalThis.FinalizationRegistry?(Be=new FinalizationRegistry(e=>{Ue(e.$$)}),L=e=>{var t=e.$$;if(t.smartPtr){var n={$$:t};Be.register(e,n,e)}return e},Ve=e=>Be.unregister(e),L(e)):(L=e=>e,e),R=[],We=()=>{for(;R.length;){var e=R.pop();e.$$.deleteScheduled=!1,e.delete()}},Ge,Ke=()=>{let e=z.prototype;Object.assign(e,{isAliasOf(e){if(!(this instanceof z)||!(e instanceof z))return!1;var t=this.$$.ptrType.registeredClass,n=this.$$.ptr;e.$$=e.$$;for(var r=e.$$.ptrType.registeredClass,i=e.$$.ptr;t.baseClass;)n=t.upcast(n),t=t.baseClass;for(;r.baseClass;)i=r.upcast(i),r=r.baseClass;return t===r&&n===i},clone(){if(this.$$.ptr||ze(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e=L(Object.create(Object.getPrototypeOf(this),{$$:{value:Re(this.$$)}}));return e.$$.count.value+=1,e.$$.deleteScheduled=!1,e},delete(){this.$$.ptr||ze(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&N(`Object already scheduled for deletion`),Ve(this),Ue(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||ze(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&N(`Object already scheduled for deletion`),R.push(this),R.length===1&&Ge&&Ge(We),this.$$.deleteScheduled=!0,this}});let t=Symbol.dispose;t&&(e[t]=e.delete)};function z(){}var qe=(e,t)=>Object.defineProperty(t,"name",{value:e}),Je={},Ye=(e,t,n)=>{if(e[t].overloadTable===void 0){var r=e[t];e[t]=function(...r){return e[t].overloadTable.hasOwnProperty(r.length)||N(`Function '${n}' called with an invalid number of arguments (${r.length}) - expects one of (${e[t].overloadTable})!`),e[t].overloadTable[r.length].apply(this,r)},e[t].overloadTable=[],e[t].overloadTable[r.argCount]=r}},Xe=(e,n,r)=>{t.hasOwnProperty(e)?((r===void 0||t[e].overloadTable!==void 0&&t[e].overloadTable[r]!==void 0)&&N(`Cannot register public name '${e}' twice`),Ye(t,e,e),t[e].overloadTable.hasOwnProperty(r)&&N(`Cannot register multiple overloads of a function with the same number of arguments (${r})!`),t[e].overloadTable[r]=n):(t[e]=n,t[e].argCount=r)},Ze=48,Qe=57,$e=e=>{e=e.replace(/[^a-zA-Z0-9_]/g,`$`);var t=e.charCodeAt(0);return t>=Ze&&t<=Qe?`_${e}`:e};function et(e,t,n,r,i,a,o,s){this.name=e,this.constructor=t,this.instancePrototype=n,this.rawDestructor=r,this.baseClass=i,this.getActualType=a,this.upcast=o,this.downcast=s,this.pureVirtualFunctions=[]}var B=(e,t,n)=>{for(;t!==n;)t.upcast||N(`Expected null or instance of ${n.name}, got an instance of ${t.name}`),e=t.upcast(e),t=t.baseClass;return e},tt=e=>{if(e===null)return`null`;var t=typeof e;return t===`object`||t===`array`||t===`function`?e.toString():``+e};function nt(e,t){if(t===null)return this.isReference&&N(`null is not a valid ${this.name}`),0;t.$$||N(`Cannot pass "${tt(t)}" as a ${this.name}`),t.$$.ptr||N(`Cannot pass deleted object as a pointer of type ${this.name}`);var n=t.$$.ptrType.registeredClass;return B(t.$$.ptr,n,this.registeredClass)}function rt(e,t){var n;if(t===null)return this.isReference&&N(`null is not a valid ${this.name}`),this.isSmartPointer?(n=this.rawConstructor(),e!==null&&e.push(this.rawDestructor,n),n):0;(!t||!t.$$)&&N(`Cannot pass "${tt(t)}" as a ${this.name}`),t.$$.ptr||N(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&t.$$.ptrType.isConst&&N(`Cannot convert argument of type ${t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name} to parameter type ${this.name}`);var r=t.$$.ptrType.registeredClass;if(n=B(t.$$.ptr,r,this.registeredClass),this.isSmartPointer)switch(t.$$.smartPtr===void 0&&N(`Passing raw pointer to smart pointer is illegal`),this.sharingPolicy){case 0:t.$$.smartPtrType===this?n=t.$$.smartPtr:N(`Cannot convert argument of type ${t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:n=t.$$.smartPtr;break;case 2:if(t.$$.smartPtrType===this)n=t.$$.smartPtr;else{var i=t.clone();n=this.rawShare(n,Y.toHandle(()=>i.delete())),e!==null&&e.push(this.rawDestructor,n)}break;default:N(`Unsupported sharing policy`)}return n}function it(e,t){if(t===null)return this.isReference&&N(`null is not a valid ${this.name}`),0;t.$$||N(`Cannot pass "${tt(t)}" as a ${this.name}`),t.$$.ptr||N(`Cannot pass deleted object as a pointer of type ${this.name}`),t.$$.ptrType.isConst&&N(`Cannot convert argument of type ${t.$$.ptrType.name} to parameter type ${this.name}`);var n=t.$$.ptrType.registeredClass;return B(t.$$.ptr,n,this.registeredClass)}function V(e){return this.fromWireType((m(),T)[e>>2])}var at=(e,t,n)=>{if(t===n)return e;if(n.baseClass===void 0)return null;var r=at(e,t,n.baseClass);return r===null?null:n.downcast(r)},ot={},st=(e,t)=>{for(t===void 0&&N(`ptr should not be undefined`);e.baseClass;)t=e.upcast(t),e=e.baseClass;return t},ct=(e,t)=>(t=st(e,t),ot[t]);class lt extends Error{constructor(e){super(e),this.name=`InternalError`}}var H=e=>{throw new lt(e)},U=(e,t)=>((!t.ptrType||!t.ptr)&&H(`makeClassHandle requires ptr and ptrType`),!!t.smartPtrType!=!!t.smartPtr&&H(`Both smartPtrType and smartPtr must be specified`),t.count={value:1},L(Object.create(e,{$$:{value:t,writable:!0}})));function ut(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var n=ct(this.registeredClass,t);if(n!==void 0){if(n.$$.count.value===0)return n.$$.ptr=t,n.$$.smartPtr=e,n.clone();var r=n.clone();return this.destructor(e),r}function i(){return this.isSmartPointer?U(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):U(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var a=Je[this.registeredClass.getActualType(t)];if(!a)return i.call(this);var o=this.isConst?a.constPointerType:a.pointerType,s=at(t,this.registeredClass,o.registeredClass);return s===null?i.call(this):this.isSmartPointer?U(o.registeredClass.instancePrototype,{ptrType:o,ptr:s,smartPtrType:this,smartPtr:e}):U(o.registeredClass.instancePrototype,{ptrType:o,ptr:s})}var dt=()=>{Object.assign(W.prototype,{getPointee(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e},destructor(e){this.rawDestructor?.(e)},readValueFromPointer:V,fromWireType:ut})};function W(e,t,n,r,i,a,o,s,c,l,u){this.name=e,this.registeredClass=t,this.isReference=n,this.isConst=r,this.isSmartPointer=i,this.pointeeType=a,this.sharingPolicy=o,this.rawGetPointee=s,this.rawConstructor=c,this.rawShare=l,this.rawDestructor=u,!i&&t.baseClass===void 0?r?(this.toWireType=nt,this.destructorFunction=null):(this.toWireType=it,this.destructorFunction=null):this.toWireType=rt}var ft=(e,n,r)=>{t.hasOwnProperty(e)||H(`Replacing nonexistent public symbol`),t[e].overloadTable!==void 0&&r!==void 0?t[e].overloadTable[r]=n:(t[e]=n,t[e].argCount=r)},G=(e,t,n=!1)=>{e=k(e);function r(){return he(t)}var i=r();return typeof i!=`function`&&N(`unknown function pointer with signature ${e}: ${t}`),i};class pt extends Error{}var mt=e=>{var t=rr(e),n=k(t);return Q(t),n},K=(e,t)=>{var n=[],r={};function i(e){if(!r[e]&&!j[e]){if(Me[e]){Me[e].forEach(i);return}n.push(e),r[e]=!0}}throw t.forEach(i),new pt(`${e}: `+n.map(mt).join([`, `]))},q=(e,t,n)=>{e.forEach(e=>Me[e]=t);function r(t){var r=n(t);r.length!==e.length&&H(`Mismatched type converter count`);for(var i=0;i<e.length;++i)P(e[i],r[i])}var i=Array(t.length),a=[],o=0;for(let[e,n]of t.entries())j.hasOwnProperty(n)?i[e]=j[n]:(a.push(n),A.hasOwnProperty(n)||(A[n]=[]),A[n].push(()=>{i[e]=j[n],++o,o===a.length&&r(i)}));a.length===0&&r(i)},ht=(e,t,n,r,i,a,o,s,c,l,u,d,f)=>{u=k(u),a=G(i,a),s&&=G(o,s),l&&=G(c,l),f=G(d,f);var p=$e(u);Xe(p,function(){K(`Cannot construct ${u} due to unbound types`,[r])}),q([e,t,n],r?[r]:[],t=>{t=t[0];var n,i;r?(n=t.registeredClass,i=n.instancePrototype):i=z.prototype;var o=qe(u,function(...e){if(Object.getPrototypeOf(this)!==c)throw new M(`Use 'new' to construct ${u}`);if(d.constructor_body===void 0)throw new M(`${u} has no accessible constructor`);var t=d.constructor_body[e.length];if(t===void 0)throw new M(`Tried to invoke ctor of ${u} with invalid number of parameters (${e.length}) - expected (${Object.keys(d.constructor_body).toString()}) parameters instead!`);return t.apply(this,e)}),c=Object.create(i,{constructor:{value:o}});o.prototype=c;var d=new et(u,o,c,f,n,a,s,l);d.baseClass&&(d.baseClass.__derivedClasses??=[],d.baseClass.__derivedClasses.push(d));var m=new W(u,d,!0,!1,!1),h=new W(u+`*`,d,!1,!1,!1),g=new W(u+` const*`,d,!1,!0,!1);return Je[e]={pointerType:h,constPointerType:g},ft(p,o),[m,h,g]})},gt=(e,t)=>{for(var n=[],r=0;r<e;r++)n.push((m(),T)[t+r*4>>2]);return n},_t=e=>{for(;e.length;){var t=e.pop();e.pop()(t)}};function vt(e){for(var t=1;t<e.length;++t)if(e[t]!==null&&e[t].destructorFunction===void 0)return!0;return!1}var yt={ftfnnn:function(e,t,n,r,i,a,o,s,c,l){return function(e,t,i){return a(n(r,s(null,e),c(null,t),l(null,i)))}},tffn:function(e,t,n,r,i,a,o){return function(){n(r,o(null,this))}},tffnn:function(e,t,n,r,i,a,o,s){return function(e){n(r,o(null,this),s(null,e))}},tffnnnnn:function(e,t,n,r,i,a,o,s,c,l,u){return function(e,t,i,a){n(r,o(null,this),s(null,e),c(null,t),l(null,i),u(null,a))}},tffnnn:function(e,t,n,r,i,a,o,s,c){return function(e,t){n(r,o(null,this),s(null,e),c(null,t))}},ttfnn:function(e,t,n,r,i,a,o,s){return function(e){return a(n(r,o(null,this),s(null,e)))}},tffnt:function(e,t,n,r,i,a,o,s,c){return function(e){var t=o(null,this),i=s(null,e);n(r,t,i),c(i)}},tffntnn:function(e,t,n,r,i,a,o,s,c,l,u){return function(e,t,i){var a=o(null,this),d=s(null,e);n(r,a,d,c(null,t),l(null,i)),u(d)}},tffnnnn:function(e,t,n,r,i,a,o,s,c,l){return function(e,t,i){n(r,o(null,this),s(null,e),c(null,t),l(null,i))}},ttfn:function(e,t,n,r,i,a,o){return function(){return a(n(r,o(null,this)))}},ttfnnn:function(e,t,n,r,i,a,o,s,c){return function(e,t){return a(n(r,o(null,this),s(null,e),c(null,t)))}}};function bt(e,t,n,r){let i=[t?`t`:`f`,n?`t`:`f`,r?`t`:`f`];for(let n=t?1:2;n<e.length;++n){let t=e[n],r=``;r=t.destructorFunction===void 0?`u`:t.destructorFunction===null?`n`:`t`,i.push(r)}return i.join(``)}function xt(e,t,n,r,i,a){var o=t.length;o<2&&N(`argTypes array size mismatch! Must at least get return value and receiver (this) types!`);for(var s=t[1]!==null&&n!==null,c=vt(t),l=!t[0].isVoid,u=t[0],d=t[1],f=[e,N,r,i,_t,u.fromWireType.bind(u),d?.toWireType.bind(d)],p=2;p<o;++p){var m=t[p];f.push(m.toWireType.bind(m))}if(!c)for(var p=s?1:2;p<t.length;++p)t[p].destructorFunction!==null&&f.push(t[p].destructorFunction);return qe(e,yt[bt(t,s,l,a)](...f))}var St=(e,t,n,r,i,a)=>{var o=gt(t,n);i=G(r,i),q([],[e],e=>{e=e[0];var n=`constructor ${e.name}`;if(e.registeredClass.constructor_body===void 0&&(e.registeredClass.constructor_body=[]),e.registeredClass.constructor_body[t-1]!==void 0)throw new M(`Cannot register multiple constructors with identical number of parameters (${t-1}) for class '${e.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return e.registeredClass.constructor_body[t-1]=()=>{K(`Cannot construct ${e.name} due to unbound types`,o)},q([],o,r=>(r.splice(1,0,null),e.registeredClass.constructor_body[t-1]=xt(n,r,null,i,a),[])),[]})},Ct=e=>{e=e.trim();let t=e.indexOf(`(`);return t===-1?e:e.slice(0,t)},wt=(e,t,n,r,i,a,o,s,c,l)=>{var u=gt(n,r);t=k(t),t=Ct(t),a=G(i,a,c),q([],[e],e=>{e=e[0];var r=`${e.name}.${t}`;t.startsWith(`@@`)&&(t=Symbol[t.substring(2)]),s&&e.registeredClass.pureVirtualFunctions.push(t);function i(){K(`Cannot call ${r} due to unbound types`,u)}var l=e.registeredClass.instancePrototype,d=l[t];return d===void 0||d.overloadTable===void 0&&d.className!==e.name&&d.argCount===n-2?(i.argCount=n-2,i.className=e.name,l[t]=i):(Ye(l,t,r),l[t].overloadTable[n-2]=i),q([],u,i=>{var s=xt(r,i,e,a,o,c);return l[t].overloadTable===void 0?(s.argCount=n-2,l[t]=s):l[t].overloadTable[n-2]=s,[]}),[]})},Tt=(e,t,n)=>(e instanceof Object||N(`${n} with invalid "this": ${e}`),e instanceof t.registeredClass.constructor||N(`${n} incompatible with "this" of type ${e.constructor.name}`),e.$$.ptr||N(`cannot call emscripten binding method ${n} on deleted object`),B(e.$$.ptr,e.$$.ptrType.registeredClass,t.registeredClass)),Et=(e,t,n,r,i,a,o,s,c,l)=>{t=k(t),i=G(r,i),q([],[e],e=>{e=e[0];var r=`${e.name}.${t}`,u={get(){K(`Cannot access ${r} due to unbound types`,[n,o])},enumerable:!0,configurable:!0};return u.set=c?()=>K(`Cannot access ${r} due to unbound types`,[n,o]):e=>N(r+` is a read-only property`),Object.defineProperty(e.registeredClass.instancePrototype,t,u),q([],c?[n,o]:[n],n=>{var o=n[0],u={get(){var t=Tt(this,e,r+` getter`);return o.fromWireType(i(a,t))},enumerable:!0};if(c){c=G(s,c);var d=n[1];u.set=function(t){var n=Tt(this,e,r+` setter`),i=[];c(l,n,d.toWireType(i,t)),_t(i)}}return Object.defineProperty(e.registeredClass.instancePrototype,t,u),[]}),[]})},Dt=[],J=[0,1,,1,null,1,!0,1,!1,1],Ot=e=>{e>9&&--J[e+1]===0&&(J[e],J[e]=void 0,Dt.push(e))},Y={toValue:e=>(e||N(`Cannot use deleted val. handle = ${e}`),J[e]),toHandle:e=>{switch(e){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{let t=Dt.pop()||J.length;return J[t]=e,J[t+1]=1,t}}}},kt={name:`emscripten::val`,fromWireType:e=>{var t=Y.toValue(e);return Ot(e),t},toWireType:(e,t)=>Y.toHandle(t),readValueFromPointer:V,destructorFunction:null},At=e=>P(e,kt),jt,Mt=(e,t)=>{switch(t){case 4:return function(e){return this.fromWireType((m(),jt)[e>>2])};case 8:return function(e){return this.fromWireType((m(),b)[e>>3])};default:throw TypeError(`invalid float width (${t}): ${e}`)}},Nt=(e,t,n)=>{t=k(t),P(e,{name:t,fromWireType:e=>e,toWireType:(e,t)=>t,readValueFromPointer:Mt(t,n),destructorFunction:null})},Pt=(e,t,n,r,i)=>{t=k(t);let a=r===0,o=e=>e;if(a){var s=32-8*n;o=e=>e<<s>>>s,i=o(i)}P(e,{name:t,fromWireType:o,toWireType:(e,t)=>t,readValueFromPointer:Fe(t,n,r!==0),destructorFunction:null})},Ft=(e,t,n)=>{var r=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][t];function i(e){var t=(m(),T)[e>>2],n=(m(),T)[e+4>>2];return new r((m(),v).buffer,n,t)}n=k(n),P(e,{name:n,fromWireType:i,readValueFromPointer:i},{ignoreDuplicateRegistrations:!0})},It=(e,t)=>{t=k(t);var n=!0;P(e,{name:t,fromWireType(e){var t=(m(),T)[e>>2],r=e+4,i;if(n)i=O(r,t,!0);else{i=``;for(var a=0;a<t;++a)i+=String.fromCharCode((m(),E)[r+a])}return Q(e),i},toWireType(e,t){t instanceof ArrayBuffer&&(t=new Uint8Array(t));var r,i=typeof t==`string`;i||ArrayBuffer.isView(t)&&t.BYTES_PER_ELEMENT==1||N(`Cannot pass non-string to std::string`),r=n&&i?_e(t):t.length;var a=nr(4+r+1),o=a+4;if((m(),T)[a>>2]=r,i){if(n)ye(t,o,r+1);else for(var s=0;s<r;++s){var c=t.charCodeAt(s);c>255&&(Q(a),N(`String has UTF-16 code units that do not fit in 8 bits`)),(m(),E)[o+s]=c}}else(m(),E).set(t,o);return e!==null&&e.push(Q,a),a},readValueFromPointer:V,destructorFunction(e){Q(e)}})},Lt=new TextDecoder(`utf-16le`),Rt=(e,t,n)=>{var r=e>>1,i=Se((m(),I),r,t/2,n);return Lt.decode((m(),I).slice(r,i))},zt=(e,t,n=2147483647)=>{if(n<2)return 0;n-=2;for(var r=t,i=n<e.length*2?n/2:e.length,a=0;a<i;++a){var o=e.charCodeAt(a);(m(),F)[t>>1]=o,t+=2}return(m(),F)[t>>1]=0,t-r},Bt=e=>e.length*2,Vt=(e,t,n)=>{for(var r=``,i=e>>2,a=0;!(a>=t/4);a++){var o=(m(),T)[i+a];if(!o&&!n)break;r+=String.fromCodePoint(o)}return r},Ht=(e,t,n=2147483647)=>{if(n<4)return 0;for(var r=t,i=r+n-4,a=0;a<e.length;++a){var o=e.codePointAt(a);if(o>65535&&a++,(m(),C)[t>>2]=o,t+=4,t+4>i)break}return(m(),C)[t>>2]=0,t-r},Ut=e=>{for(var t=0,n=0;n<e.length;++n)e.codePointAt(n)>65535&&n++,t+=4;return t},Wt=(e,t,n)=>{n=k(n);var r,i,a;t===2?(r=Rt,i=zt,a=Bt):(r=Vt,i=Ht,a=Ut),P(e,{name:n,fromWireType:e=>{var n=(m(),T)[e>>2],i=r(e+4,n*t,!0);return Q(e),i},toWireType:(e,r)=>{typeof r!=`string`&&N(`Cannot pass non-string to C++ string type ${n}`);var o=a(r),s=nr(4+o+t);return(m(),T)[s>>2]=o/t,i(r,s+4,o+t),e!==null&&e.push(Q,s),s},readValueFromPointer:V,destructorFunction(e){Q(e)}})},Gt=(e,t)=>{t=k(t),P(e,{isVoid:!0,name:t,fromWireType:()=>void 0,toWireType:(e,t)=>void 0})},Kt=e=>{ar(e,!r,1,!n,262144,!1),w.threadInitTLS()},qt=e=>{e()},Jt=e=>{if(!fe){Atomics.waitAsync((m(),C),e>>2,e).value.then(Yt);var t=e+112;Atomics.store((m(),C),t>>2,1)}},Yt=()=>{var e=tr();e&&qt(()=>{Jt(e),pr()})},Xt=(e,t)=>{if(e==t)setTimeout(Yt);else if(s)postMessage({targetThread:e,cmd:4});else{var n=w.pthreads[e];if(!n)return;n.postMessage({cmd:4})}},Zt=[],Qt=(e,t,n,r,i,a,o)=>{Zt.length=0;for(var s=i>>3,c=i+r>>3;s<c;){var l=(m(),x)[s++]?(m(),x)[s++]:(m(),b)[s++];Zt.push(l)}var u=t?er[t]:$n[e];w.currentProxiedOperationCallerThread=n;var d=u(...Zt);if(w.currentProxiedOperationCallerThread=0,a){d.then(e=>cr(a,o,e));return}return d},$t=()=>{},en=e=>{s?postMessage({cmd:6,thread:e}):ie(e)},tn=e=>{},nn=()=>{throw new p},rn=[],an=e=>{var t=rn.length;return rn.push(e),t},on=(e,t)=>{var n=j[e];return n===void 0&&N(`${t} has unknown type ${mt(e)}`),n},sn=(e,t)=>{for(var n=Array(e),r=0;r<e;++r)n[r]=on((m(),T)[t+r*4>>2],`parameter ${r}`);return n},cn=(e,t,n)=>{var r=[],i=e(r,n);return r.length&&((m(),T)[t>>2]=Y.toHandle(r)),i},ln={},un=e=>{var t=ln[e];return t===void 0?k(e):t},dn=(e,t,n)=>{var[r,...i]=sn(e,t),a=r.toWireType.bind(r),o=i.map(e=>e.readValueFromPointer.bind(e));e--;var s=Array(e);return an(qe(`methodCaller<(${i.map(e=>e.name)}) => ${r.name}>`,(t,r,i,c)=>{for(var l=0,u=0;u<e;++u)s[u]=o[u](c+l),l+=8;var d;switch(n){case 0:d=Y.toValue(t).apply(null,s);break;case 2:d=Reflect.construct(Y.toValue(t),s);break;case 3:d=s[0];break;case 1:d=Y.toValue(t)[un(r)](...s)}return cn(a,i,d)}))},fn=(e,t)=>(e=Y.toValue(e),t=Y.toValue(t),Y.toHandle(e[t])),pn=e=>{e>9&&(J[e+1]+=1)},mn=(e,t,n,r,i)=>rn[e](t,n,r,i),hn=()=>Y.toHandle([]),gn=e=>Y.toHandle(un(e)),_n=()=>Y.toHandle({}),vn=e=>{_t(Y.toValue(e)),Ot(e)},yn=(e,t,n)=>{e=Y.toValue(e),t=Y.toValue(t),n=Y.toValue(n),e[t]=n},X={},bn=()=>performance.timeOrigin+performance.now();function xn(e,t){return s?S(6,0,1,e,t):(X[e]&&(clearTimeout(X[e].id),delete X[e]),t&&(X[e]={id:setTimeout(()=>{delete X[e],qt(()=>fr(e,bn()))},t),timeout_ms:t}),0)}var Sn=()=>Date.now(),Cn=9007199254740992,wn=-9007199254740992,Tn=e=>e<wn||e>Cn?NaN:Number(e),En=[],Dn=(e,t)=>{En.length=0;for(var n;n=(m(),E)[e++];){var r=n!=105;r&=n!=112,t+=r&&t%8?4:0,En.push(n==112?(m(),T)[t>>2]:n==106?(m(),x)[t>>3]:n==105?(m(),C)[t>>2]:(m(),b)[t>>3]),t+=r?8:4}return En},On=(e,t,n)=>{var r=Dn(t,n);return er[e](...r)},kn=(e,t,n)=>On(e,t,n),An=()=>{},jn=e=>a(O(e)),Mn=()=>{throw`unwind`},Nn=()=>2147483648,Pn=()=>Nn(),Fn=()=>navigator.hardwareConcurrency,In=(e,t)=>Math.ceil(e/t)*t,Ln=e=>{var t=(e-D.buffer.byteLength+65535)/65536|0;try{return D.grow(t),_(),1}catch{}},Rn=e=>{var t=(m(),E).length;if(e>>>=0,e<=t)return!1;var n=Nn();if(e>n)return!1;for(var r=1;r<=4;r*=2){var i=t*(1+.2/r);if(i=Math.min(i,e+100663296),Ln(Math.min(n,In(Math.max(e,i),65536))))return!0}return!1},zn={},Bn=()=>`./this.program`,Z=()=>{if(!Z.strings){var e={USER:`web_user`,LOGNAME:`web_user`,PATH:`/`,PWD:`/`,HOME:`/home/web_user`,LANG:(globalThis.navigator?.language??`C`).replace(`-`,`_`)+`.UTF-8`,_:Bn()};for(var t in zn)zn[t]===void 0?delete e[t]:e[t]=zn[t];var n=[];for(var t in e)n.push(`${t}=${e[t]}`);Z.strings=n}return Z.strings};function Vn(e,t){if(s)return S(7,0,1,e,t);var n=0,r=0;for(var i of Z()){var a=t+n;(m(),T)[e+r>>2]=a,n+=ye(i,a,1/0)+1,r+=4}return 0}function Hn(e,t){if(s)return S(8,0,1,e,t);var n=Z();(m(),T)[e>>2]=n.length;var r=0;for(var i of n)r+=_e(i)+1;return(m(),T)[t>>2]=r,0}function Un(e){return s?S(9,0,1,e):52}function Wn(e,t,n,r){return s?S(10,0,1,e,t,n,r):52}function Gn(e,t,n,r){return s?S(11,0,1,e,t,n,r):(t=Tn(t),70)}var Kn=[null,[],[]],qn=(e,t=0,n,r)=>{var i=Se(e,t,n,r);return xe.decode(e.buffer?e.buffer instanceof ArrayBuffer?e.subarray(t,i):e.slice(t,i):new Uint8Array(e.slice(t,i)))},Jn=(e,t)=>{var n=Kn[e];t===0||t===10?((e===1?i:a)(qn(n)),n.length=0):n.push(t)};function Yn(e,t,n,r){if(s)return S(12,0,1,e,t,n,r);for(var i=0,a=0;a<n;a++){var o=(m(),T)[t>>2],c=(m(),T)[t+4>>2];t+=8;for(var l=0;l<c;l++)Jn(e,(m(),E)[o+l]);i+=c}return(m(),T)[r>>2]=i,0}var Xn=()=>e=>(e.set(crypto.getRandomValues(new Uint8Array(e.byteLength))),0),Zn=e=>(Zn=Xn())(e),Qn=(e,t)=>Zn((m(),E).subarray(e,e+t));w.init(),Ke(),dt();var $n=[ue,we,De,Oe,ke,Ae,xn,Vn,Hn,Un,Wn,Gn,Yn],er={624229:e=>be(Y.toValue(e))},tr,Q,nr,rr,ir,ar,or,sr,cr,lr,ur,dr,fr,pr,mr,hr,gr,_r,vr,yr;function br(e){t.__ZdlPvm=e.ha,tr=e.ia,t.__Znwm=e.ja,Q=e.ka,nr=t._malloc=e.la,t._calloc=e.ma,rr=e.na,ir=e.oa,t._emscripten_builtin_free=e.pa,e.qa,ar=e.sa,or=e.ta,sr=e.ua,t.___libc_free=e.va,t._emscripten_builtin_malloc=e.wa,t.___libc_malloc=e.xa,cr=e.ya,lr=e.za,ur=e.Aa,dr=e.Ba,fr=e.Ca,pr=e.Da,t.__ZdaPv=e.Ea,t.__ZdaPvm=e.Fa,t.__ZdlPv=e.Ga,t.__Znam=e.Ha,t.__ZnamSt11align_val_t=e.Ia,t.__ZnwmSt11align_val_t=e.Ja,t.___libc_calloc=e.Ka,t.___libc_realloc=e.La,t._emscripten_builtin_calloc=e.Ma,t._emscripten_builtin_realloc=e.Na,t._malloc_size=e.Oa,t._malloc_usable_size=e.Pa,t._reallocf=e.Qa,mr=e.Ra,hr=e.Sa,gr=e.Ta,_r=e.Ua,vr=e.Va,yr=e.ra}var xr;function Sr(){xr={b:Ce,P:Ee,y:De,O:Oe,X:ke,z:Ae,K:je,B:Ie,aa:Le,fa:ht,ea:St,d:wt,ca:Et,_:At,A:Nt,l:Pt,e:Ft,$:It,t:Wt,ba:Gt,S:Kt,L:Xt,x:Qt,G:$t,v:en,R:Jt,Z:tn,E:nn,h:dn,c:Ot,da:fn,i:pn,g:mn,p:hn,j:gn,s:_n,f:vn,k:yn,H:xn,n:kn,w:An,m:Sn,u:jn,Y:Mn,M:Pn,o:bn,N:Fn,I:Rn,T:Vn,U:Hn,q:de,r:Un,W:Wn,Q:Gn,V:Yn,D:Cr,C:wr,a:D,F:ue,J:Qn}}function Cr(e,t,n){var r=ce();try{return he(e)(t,n)}catch(e){if(y(r),!(e instanceof f))throw e;mr(1,0)}}function wr(e,t,n,r,i){var a=ce();try{return he(e)(t,n,r,i)}catch(e){if(y(a),!(e instanceof f))throw e;mr(1,0)}}function Tr(e){ee=!0,w.tlsInitFunctions.push(e.qa),!s&&e.ga()}var Er,Dr;function $(){Sr();var e={a:xr};Er=WebAssembly.instantiateStreaming(fetch(new URL(new URL(`jassub-worker.wasm`,import.meta.url).href,``+import.meta.url)),e).then(e=>{var n=(e.instance||e).exports;return Dr=e.module||t.wasm,br(n),ae(oe),Tr(n),w.loadWasmModuleToAllWorkers().then(o)})}return s||$(),await Er,t}globalThis.name==`em-pthread`&&e();
1
+ if(self.name.startsWith(`em-pthread`)){let e=self.name.split(`-`).slice(2).join(`-`),t=globalThis.fetch;globalThis.fetch=n=>t(e),self.name=`em-pthread`}async function e(e={}){var t=e,n=!0,r=!!globalThis.WorkerGlobalScope,i=(...e)=>console.log(...e),a=(...e)=>console.error(...e);function o(){s&&m()}var s=r&&globalThis.name==`em-pthread`;r&&(c=self.location.href);var c;if(n=!1,_=(e=>()=>{e(),self.HEAPU8RAW=(p(),D),self.WASMMEMORY=O})(_),i=e.__out||i,!self.name.startsWith(`em-pthread`)){let t=globalThis.Worker;globalThis.Worker=class extends t{constructor(t,n={}){super(t,{...n,name:`em-pthread-`+e.__url})}}}let l=Dr;Dr=function(){l(),$n=new Proxy({},{get(){return e=>ve(X.toValue(e))}})};function u(e){throw e}class d{}class f extends d{}function p(){O.buffer!=v.buffer&&_()}var m;if(s){var h=!1;self.onunhandledrejection=e=>{throw e.reason||e};function e(n){try{var r=n.data,o=r.cmd;if(o==1){let n=[];self.onmessage=e=>n.push(e),m=()=>{postMessage({cmd:3});for(let t of n)e(t);self.onmessage=e};for(let e of r.handlers)(!t[e]||t[e].proxy)&&(t[e]=(...t)=>{postMessage({cmd:9,handler:e,args:t})},e==`print`&&(i=t[e]),e==`printErr`&&(a=t[e]));O=r.wasmMemory,_(),t.wasm=r.wasmModule,Dr()}else if(o==2){de(r.pthread_ptr),ir(r.pthread_ptr,0,0,1,0,0),T.threadInitTLS(),qt(r.pthread_ptr),h||=(rr(),!0);try{me(r.start_routine,r.arg)}catch(e){if(e!=`unwind`)throw e}}else o==4?h&&Jt():o&&(a(`worker: received unknown command ${o}`),a(r))}catch(e){throw g&&or(),e}}self.onmessage=e}var g=!1;function ee(){var e=globalThis.navigator?.userAgent?.match(/Firefox\/(\d+)/);if(!e||Number(e[1])>=154)try{var t=O.toResizableBuffer();return p=()=>{},t}catch{}return O.buffer}function _(){if(!v?.buffer?.growable){var e=ee();v=new Int8Array(e),L=new Int16Array(e),D=new Uint8Array(e),je=new Uint16Array(e),w=new Int32Array(e),E=new Uint32Array(e),At=new Float32Array(e),x=new Float64Array(e),S=new BigInt64Array(e),Me=new BigUint64Array(e)}}function te(){s||(O=new WebAssembly.Memory({initial:512,maximum:32768,shared:!0}),_())}te();var v,ne=e=>{e.terminate(),e.onmessage=e=>{}},re=e=>{var t=T.pthreads[e];T.returnWorkerToPool(t)},ie=e=>{for(;e.length>0;)e.shift()(t)},ae=[],oe=e=>{var t=T.getNewWorker();if(!t)return 6;T.pthreads[e.pthread_ptr]=t,t.pthread_ptr=e.pthread_ptr;var n={cmd:2,start_routine:e.startRoutine,arg:e.arg,pthread_ptr:e.pthread_ptr};return t.postMessage(n,e.transferList),0},y=()=>_r(),b=e=>hr(e),se=e=>gr(e),x,S,C=(e,t,n,...r)=>{var i=8*r.length*2,a=y(),o=se(i),s=o>>3;for(var c of r)typeof c==`bigint`?((p(),S)[s++]=1n,(p(),S)[s++]=c):((p(),S)[s++]=0n,(p(),x)[s++]=c);var l=cr(e,t,i,o,n);return b(a),l};function ce(e){if(s)return C(0,0,1,e);throw`exit(${e})`}var le=ce,ue=!Atomics.waitAsync||globalThis.navigator?.userAgent&&Number((navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)||[])[2])<91,w,T={unusedWorkers:[],tlsInitFunctions:[],pthreads:{},init(){s||T.initMainThread()},initMainThread(){for(var t=e.__poolSize|0;t--;)T.allocateUnusedWorker()},terminateAllThreads:()=>{for(var e of Object.values(T.pthreads))ne(e);for(var e of T.unusedWorkers)ne(e);T.unusedWorkers=[],T.pthreads={}},clearMailboxAwait:e=>{ue||Atomics.notify((p(),w),e>>2)},terminateRuntime:()=>{T.terminateAllThreads();var e=er();ar(0,0,0,1),T.clearMailboxAwait(e)},returnWorkerToPool:e=>{var t=e.pthread_ptr;delete T.pthreads[t],T.unusedWorkers.push(e),e.pthread_ptr=0,T.clearMailboxAwait(t),lr(t)},threadInitTLS(){T.tlsInitFunctions.forEach(e=>e())},loadWasmModuleToWorker:e=>new Promise(n=>{e.onmessage=r=>{var i=r.data,o=i.cmd;if(i.targetThread&&i.targetThread!=er()){T.pthreads[i.targetThread]?.postMessage(i);return}if(i===`setimmediate`||i===`_si`){e.postMessage(i);return}switch(o){case 4:Jt();break;case 5:oe(i);break;case 6:Kt(()=>re(i.thread));break;case 3:n(e);break;case 9:t[i.handler](...i.args);break;default:o&&a(`worker sent an unknown command ${o}`)}},e.onerror=e=>{throw a(`worker sent an error! ${e.filename}:${e.lineno}: ${e.message}`),e};var r=[];for(var i of[])t.propertyIsEnumerable(i)&&r.push(i);e.postMessage({cmd:1,handlers:r,wasmMemory:O,wasmModule:Er})}),async loadWasmModuleToAllWorkers(){if(!s)return Promise.all(T.unusedWorkers.map(T.loadWasmModuleToWorker))},allocateUnusedWorker(){var e=new Worker(self.location.href,{type:`module`,name:`em-pthread`});return T.unusedWorkers.push(e),e},getNewWorker(){if(T.unusedWorkers.length==0){var e=T.allocateUnusedWorker();T.loadWasmModuleToWorker(e)}return T.unusedWorkers.pop()}},E;function de(e){var t=(p(),E)[e+48>>2],n=t-(p(),E)[e+52>>2];mr(t,n),b(t)}var fe=[],pe=e=>{var t=fe[e];return t||(fe[e]=t=vr.get(e)),t},me=(e,t)=>{var n=pe(e)(t);function r(e){ur(e)}r(n)},he=e=>{for(var t=0,n=0;n<e.length;++n){var r=e.charCodeAt(n);r<=127?t++:r<=2047?t+=2:r>=55296&&r<=57343?(t+=4,++n):t+=3}return t},ge=(e,t,n,r)=>{if(!(r>0))return 0;for(var i=n,a=n+r-1,o=0;o<e.length;++o){var s=e.codePointAt(o);if(s<=127){if(n>=a)break;t[n++]=s}else if(s<=2047){if(n+1>=a)break;t[n++]=192|s>>6,t[n++]=128|s&63}else if(s<=65535){if(n+2>=a)break;t[n++]=224|s>>12,t[n++]=128|s>>6&63,t[n++]=128|s&63}else{if(n+3>=a)break;t[n++]=240|s>>18,t[n++]=128|s>>12&63,t[n++]=128|s>>6&63,t[n++]=128|s&63,o++}}return t[n]=0,n-i},D,_e=(e,t,n)=>ge(e,(p(),D),t,n),ve=e=>{var t=he(e)+1,n=tr(t);return n&&_e(e,n,t),n},O,ye=new TextDecoder,be=(e,t,n,r)=>{var i=t+n;if(r)return i;for(;e[t]&&!(t>=i);)++t;return t},k=(e,t,n)=>{if(!e)return``;var r=be((p(),D),e,t,n);return ye.decode((p(),D).slice(e,r))},xe=(e,t,n,r)=>u(`Assertion failed: ${k(e)}, at: `+[t?k(t):`unknown filename`,n,r?k(r):`unknown function`]);function Se(e,t,n,r){return s?C(1,0,1,e,t,n,r):we(e,t,n,r)}var Ce=()=>!!globalThis.SharedArrayBuffer,we=(e,t,n,r)=>{if(!Ce())return 6;var i=[];if(s&&!i.length)return Se(e,t,n,r);var a={startRoutine:n,pthread_ptr:e,arg:r,transferList:i};return s?(a.cmd=5,postMessage(a,i),0):oe(a)};function Te(e,t,n){return s?C(2,0,1,e,t,n):0}function Ee(e,t,n){if(s)return C(3,0,1,e,t,n)}function De(e,t,n){return s?C(4,0,1,e,t,n):0}function Oe(e,t,n,r){if(s)return C(5,0,1,e,t,n,r)}var ke=()=>u(``),A=e=>{for(var t=``;;){var n=(p(),D)[e++];if(!n)return t;t+=String.fromCharCode(n)}},j={},M={},N={};class P extends Error{constructor(e){super(e),this.name=`BindingError`}}var F=e=>{throw new P(e)};function Ae(e,t,n={}){var r=t.name;if(e||F(`type "${r}" must have a positive integer typeid pointer`),M.hasOwnProperty(e)){if(n.ignoreDuplicateRegistrations)return;F(`Cannot register type '${r}' twice`)}if(M[e]=t,delete N[e],j.hasOwnProperty(e)){var i=j[e];delete j[e],i.forEach(e=>e())}}function I(e,t,n={}){return Ae(e,t,n)}var L,je,Me,Ne=(e,t,n)=>{switch(t){case 1:return n?e=>(p(),v)[e]:e=>(p(),D)[e];case 2:return n?e=>(p(),L)[e>>1]:e=>(p(),je)[e>>1];case 4:return n?e=>(p(),w)[e>>2]:e=>(p(),E)[e>>2];case 8:return n?e=>(p(),S)[e>>3]:e=>(p(),Me)[e>>3];default:throw TypeError(`invalid integer width (${t}): ${e}`)}},Pe=(e,t,n,r,i)=>{t=A(t);let a=r===0n,o=e=>e;if(a){let e=n*8;o=t=>BigInt.asUintN(e,t),i=o(i)}I(e,{name:t,fromWireType:o,toWireType:(e,t)=>(typeof t==`number`&&(t=BigInt(t)),t),readValueFromPointer:Ne(t,n,!a),destructorFunction:null})},Fe=(e,t,n,r)=>{t=A(t),I(e,{name:t,fromWireType:function(e){return!!e},toWireType:function(e,t){return t?n:r},readValueFromPointer:function(e){return this.fromWireType((p(),D)[e])},destructorFunction:null})},Ie=e=>({count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType}),Le=e=>{function t(e){return e.$$.ptrType.registeredClass.name}F(t(e)+` instance already deleted`)},Re=!1,ze=e=>{},Be=e=>{e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)},Ve=e=>{--e.count.value,e.count.value===0&&Be(e)},R=e=>globalThis.FinalizationRegistry?(Re=new FinalizationRegistry(e=>{Ve(e.$$)}),R=e=>{var t=e.$$;if(t.smartPtr){var n={$$:t};Re.register(e,n,e)}return e},ze=e=>Re.unregister(e),R(e)):(R=e=>e,e),z=[],He=()=>{for(;z.length;){var e=z.pop();e.$$.deleteScheduled=!1,e.delete()}},Ue,We=()=>{let e=B.prototype;Object.assign(e,{isAliasOf(e){if(!(this instanceof B)||!(e instanceof B))return!1;var t=this.$$.ptrType.registeredClass,n=this.$$.ptr;e.$$=e.$$;for(var r=e.$$.ptrType.registeredClass,i=e.$$.ptr;t.baseClass;)n=t.upcast(n),t=t.baseClass;for(;r.baseClass;)i=r.upcast(i),r=r.baseClass;return t===r&&n===i},clone(){if(this.$$.ptr||Le(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e=R(Object.create(Object.getPrototypeOf(this),{$$:{value:Ie(this.$$)}}));return e.$$.count.value+=1,e.$$.deleteScheduled=!1,e},delete(){this.$$.ptr||Le(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&F(`Object already scheduled for deletion`),ze(this),Ve(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||Le(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&F(`Object already scheduled for deletion`),z.push(this),z.length===1&&Ue&&Ue(He),this.$$.deleteScheduled=!0,this}});let t=Symbol.dispose;t&&(e[t]=e.delete)};function B(){}var Ge=(e,t)=>Object.defineProperty(t,"name",{value:e}),Ke={},qe=(e,t,n)=>{if(e[t].overloadTable===void 0){var r=e[t];e[t]=function(...r){return e[t].overloadTable.hasOwnProperty(r.length)||F(`Function '${n}' called with an invalid number of arguments (${r.length}) - expects one of (${e[t].overloadTable})!`),e[t].overloadTable[r.length].apply(this,r)},e[t].overloadTable=[],e[t].overloadTable[r.argCount]=r}},Je=(e,n,r)=>{t.hasOwnProperty(e)?((r===void 0||t[e].overloadTable!==void 0&&t[e].overloadTable[r]!==void 0)&&F(`Cannot register public name '${e}' twice`),qe(t,e,e),t[e].overloadTable.hasOwnProperty(r)&&F(`Cannot register multiple overloads of a function with the same number of arguments (${r})!`),t[e].overloadTable[r]=n):(t[e]=n,t[e].argCount=r)},Ye=48,Xe=57,Ze=e=>{e=e.replace(/[^a-zA-Z0-9_]/g,`$`);var t=e.charCodeAt(0);return t>=Ye&&t<=Xe?`_${e}`:e};function Qe(e,t,n,r,i,a,o,s){this.name=e,this.constructor=t,this.instancePrototype=n,this.rawDestructor=r,this.baseClass=i,this.getActualType=a,this.upcast=o,this.downcast=s,this.pureVirtualFunctions=[]}var V=(e,t,n)=>{for(;t!==n;)t.upcast||F(`Expected null or instance of ${n.name}, got an instance of ${t.name}`),e=t.upcast(e),t=t.baseClass;return e},$e=e=>{if(e===null)return`null`;var t=typeof e;return t===`object`||t===`array`||t===`function`?e.toString():``+e};function et(e,t){if(t===null)return this.isReference&&F(`null is not a valid ${this.name}`),0;t.$$||F(`Cannot pass "${$e(t)}" as a ${this.name}`),t.$$.ptr||F(`Cannot pass deleted object as a pointer of type ${this.name}`);var n=t.$$.ptrType.registeredClass;return V(t.$$.ptr,n,this.registeredClass)}function tt(e,t){var n;if(t===null)return this.isReference&&F(`null is not a valid ${this.name}`),this.isSmartPointer?(n=this.rawConstructor(),e!==null&&e.push(this.rawDestructor,n),n):0;(!t||!t.$$)&&F(`Cannot pass "${$e(t)}" as a ${this.name}`),t.$$.ptr||F(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&t.$$.ptrType.isConst&&F(`Cannot convert argument of type ${t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name} to parameter type ${this.name}`);var r=t.$$.ptrType.registeredClass;if(n=V(t.$$.ptr,r,this.registeredClass),this.isSmartPointer)switch(t.$$.smartPtr===void 0&&F(`Passing raw pointer to smart pointer is illegal`),this.sharingPolicy){case 0:t.$$.smartPtrType===this?n=t.$$.smartPtr:F(`Cannot convert argument of type ${t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:n=t.$$.smartPtr;break;case 2:if(t.$$.smartPtrType===this)n=t.$$.smartPtr;else{var i=t.clone();n=this.rawShare(n,X.toHandle(()=>i.delete())),e!==null&&e.push(this.rawDestructor,n)}break;default:F(`Unsupported sharing policy`)}return n}function nt(e,t){if(t===null)return this.isReference&&F(`null is not a valid ${this.name}`),0;t.$$||F(`Cannot pass "${$e(t)}" as a ${this.name}`),t.$$.ptr||F(`Cannot pass deleted object as a pointer of type ${this.name}`),t.$$.ptrType.isConst&&F(`Cannot convert argument of type ${t.$$.ptrType.name} to parameter type ${this.name}`);var n=t.$$.ptrType.registeredClass;return V(t.$$.ptr,n,this.registeredClass)}function H(e){return this.fromWireType((p(),E)[e>>2])}var rt=(e,t,n)=>{if(t===n)return e;if(n.baseClass===void 0)return null;var r=rt(e,t,n.baseClass);return r===null?null:n.downcast(r)},it={},at=(e,t)=>{for(t===void 0&&F(`ptr should not be undefined`);e.baseClass;)t=e.upcast(t),e=e.baseClass;return t},ot=(e,t)=>(t=at(e,t),it[t]);class st extends Error{constructor(e){super(e),this.name=`InternalError`}}var U=e=>{throw new st(e)},W=(e,t)=>((!t.ptrType||!t.ptr)&&U(`makeClassHandle requires ptr and ptrType`),!!t.smartPtrType!=!!t.smartPtr&&U(`Both smartPtrType and smartPtr must be specified`),t.count={value:1},R(Object.create(e,{$$:{value:t,writable:!0}})));function ct(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var n=ot(this.registeredClass,t);if(n!==void 0){if(n.$$.count.value===0)return n.$$.ptr=t,n.$$.smartPtr=e,n.clone();var r=n.clone();return this.destructor(e),r}function i(){return this.isSmartPointer?W(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):W(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var a=Ke[this.registeredClass.getActualType(t)];if(!a)return i.call(this);var o=this.isConst?a.constPointerType:a.pointerType,s=rt(t,this.registeredClass,o.registeredClass);return s===null?i.call(this):this.isSmartPointer?W(o.registeredClass.instancePrototype,{ptrType:o,ptr:s,smartPtrType:this,smartPtr:e}):W(o.registeredClass.instancePrototype,{ptrType:o,ptr:s})}var lt=()=>{Object.assign(G.prototype,{getPointee(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e},destructor(e){this.rawDestructor?.(e)},readValueFromPointer:H,fromWireType:ct})};function G(e,t,n,r,i,a,o,s,c,l,u){this.name=e,this.registeredClass=t,this.isReference=n,this.isConst=r,this.isSmartPointer=i,this.pointeeType=a,this.sharingPolicy=o,this.rawGetPointee=s,this.rawConstructor=c,this.rawShare=l,this.rawDestructor=u,!i&&t.baseClass===void 0?r?(this.toWireType=et,this.destructorFunction=null):(this.toWireType=nt,this.destructorFunction=null):this.toWireType=tt}var ut=(e,n,r)=>{t.hasOwnProperty(e)||U(`Replacing nonexistent public symbol`),t[e].overloadTable!==void 0&&r!==void 0?t[e].overloadTable[r]=n:(t[e]=n,t[e].argCount=r)},K=(e,t,n=!1)=>{e=A(e);function r(){return pe(t)}var i=r();return typeof i!=`function`&&F(`unknown function pointer with signature ${e}: ${t}`),i};class dt extends Error{}var ft=e=>{var t=nr(e),n=A(t);return $(t),n},q=(e,t)=>{var n=[],r={};function i(e){if(!r[e]&&!M[e]){if(N[e]){N[e].forEach(i);return}n.push(e),r[e]=!0}}throw t.forEach(i),new dt(`${e}: `+n.map(ft).join([`, `]))},J=(e,t,n)=>{e.forEach(e=>N[e]=t);function r(t){var r=n(t);r.length!==e.length&&U(`Mismatched type converter count`);for(var i=0;i<e.length;++i)I(e[i],r[i])}var i=Array(t.length),a=[],o=0;for(let[e,n]of t.entries())M.hasOwnProperty(n)?i[e]=M[n]:(a.push(n),j.hasOwnProperty(n)||(j[n]=[]),j[n].push(()=>{i[e]=M[n],++o,o===a.length&&r(i)}));a.length===0&&r(i)},pt=(e,t,n,r,i,a,o,s,c,l,u,d,f)=>{u=A(u),a=K(i,a),s&&=K(o,s),l&&=K(c,l),f=K(d,f);var p=Ze(u);Je(p,function(){q(`Cannot construct ${u} due to unbound types`,[r])}),J([e,t,n],r?[r]:[],t=>{t=t[0];var n,i;r?(n=t.registeredClass,i=n.instancePrototype):i=B.prototype;var o=Ge(u,function(...e){if(Object.getPrototypeOf(this)!==c)throw new P(`Use 'new' to construct ${u}`);if(d.constructor_body===void 0)throw new P(`${u} has no accessible constructor`);var t=d.constructor_body[e.length];if(t===void 0)throw new P(`Tried to invoke ctor of ${u} with invalid number of parameters (${e.length}) - expected (${Object.keys(d.constructor_body).toString()}) parameters instead!`);return t.apply(this,e)}),c=Object.create(i,{constructor:{value:o}});o.prototype=c;var d=new Qe(u,o,c,f,n,a,s,l);d.baseClass&&(d.baseClass.__derivedClasses??=[],d.baseClass.__derivedClasses.push(d));var m=new G(u,d,!0,!1,!1),h=new G(u+`*`,d,!1,!1,!1),g=new G(u+` const*`,d,!1,!0,!1);return Ke[e]={pointerType:h,constPointerType:g},ut(p,o),[m,h,g]})},mt=(e,t)=>{for(var n=[],r=0;r<e;r++)n.push((p(),E)[t+r*4>>2]);return n},ht=e=>{for(;e.length;){var t=e.pop();e.pop()(t)}};function gt(e){for(var t=1;t<e.length;++t)if(e[t]!==null&&e[t].destructorFunction===void 0)return!0;return!1}function _t(e){for(var t=1;t<e.length;++t)if(e[t]!==null&&e[t].argStackAlloc)return!0;return!1}var vt={ftfnnn:function(e,t,n,r,i,a,o,s,c,l){return function(e,t,i){return a(n(r,s(null,e),c(null,t),l(null,i)))}},tffn:function(e,t,n,r,i,a,o){return function(){n(r,o(null,this))}},tffnn:function(e,t,n,r,i,a,o,s){return function(e){n(r,o(null,this),s(null,e))}},tffnnnnn:function(e,t,n,r,i,a,o,s,c,l,u){return function(e,t,i,a){n(r,o(null,this),s(null,e),c(null,t),l(null,i),u(null,a))}},tffnnn:function(e,t,n,r,i,a,o,s,c){return function(e,t){n(r,o(null,this),s(null,e),c(null,t))}},ttfnn:function(e,t,n,r,i,a,o,s){return function(e){return a(n(r,o(null,this),s(null,e)))}},tffnt:function(e,t,n,r,i,a,o,s,c){return function(e){var t=o(null,this),i=s(null,e);n(r,t,i),c(i)}},tffntnn:function(e,t,n,r,i,a,o,s,c,l,u){return function(e,t,i){var a=o(null,this),d=s(null,e);n(r,a,d,c(null,t),l(null,i)),u(d)}},tffnnnn:function(e,t,n,r,i,a,o,s,c,l){return function(e,t,i){n(r,o(null,this),s(null,e),c(null,t),l(null,i))}},ttfn:function(e,t,n,r,i,a,o){return function(){return a(n(r,o(null,this)))}},ttfnnn:function(e,t,n,r,i,a,o,s,c){return function(e,t){return a(n(r,o(null,this),s(null,e),c(null,t)))}}};function yt(e,t,n,r){let i=[t?`t`:`f`,n?`t`:`f`,r?`t`:`f`];for(let n=t?1:2;n<e.length;++n){let t=e[n],r=``;r=t.argStackAlloc?`s`:t.destructorFunction===void 0?`u`:t.destructorFunction===null?`n`:`t`,i.push(r)}return i.join(``)}function bt(e,t,n,r,i,a){var o=t.length;o<2&&F(`argTypes array size mismatch! Must at least get return value and receiver (this) types!`);var s=t[1]!==null&&n!==null,c=gt(t),l=_t(t),u=l&&!a&&!c;l&&!u&&(c=!0);var d=!t[0].isVoid,f=t[0],p=t[1],m=[e,F,r,i,ht,f.fromWireType.bind(f),p?.toWireType.bind(p)];u&&m.push(y,b);for(var h=2;h<o;++h){var g=t[h];m.push(g.toWireType.bind(g))}if(!c)for(var h=s?1:2;h<t.length;++h)t[h].destructorFunction!==null&&m.push(t[h].destructorFunction);return Ge(e,vt[yt(t,s,d,a)](...m))}var xt=(e,t,n,r,i,a)=>{var o=mt(t,n);i=K(r,i),J([],[e],e=>{e=e[0];var n=`constructor ${e.name}`;if(e.registeredClass.constructor_body===void 0&&(e.registeredClass.constructor_body=[]),e.registeredClass.constructor_body[t-1]!==void 0)throw new P(`Cannot register multiple constructors with identical number of parameters (${t-1}) for class '${e.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return e.registeredClass.constructor_body[t-1]=()=>{q(`Cannot construct ${e.name} due to unbound types`,o)},J([],o,r=>(r.splice(1,0,null),e.registeredClass.constructor_body[t-1]=bt(n,r,null,i,a),[])),[]})},St=e=>{e=e.trim();let t=e.indexOf(`(`);return t===-1?e:e.slice(0,t)},Ct=(e,t,n,r,i,a,o,s,c,l)=>{var u=mt(n,r);t=A(t),t=St(t),a=K(i,a,c),J([],[e],e=>{e=e[0];var r=`${e.name}.${t}`;t.startsWith(`@@`)&&(t=Symbol[t.substring(2)]),s&&e.registeredClass.pureVirtualFunctions.push(t);function i(){q(`Cannot call ${r} due to unbound types`,u)}var l=e.registeredClass.instancePrototype,d=l[t];return d===void 0||d.overloadTable===void 0&&d.className!==e.name&&d.argCount===n-2?(i.argCount=n-2,i.className=e.name,l[t]=i):(qe(l,t,r),l[t].overloadTable[n-2]=i),J([],u,i=>{var s=bt(r,i,e,a,o,c);return l[t].overloadTable===void 0?(s.argCount=n-2,l[t]=s):l[t].overloadTable[n-2]=s,[]}),[]})},wt=(e,t,n)=>(e instanceof Object||F(`${n} with invalid "this": ${e}`),e instanceof t.registeredClass.constructor||F(`${n} incompatible with "this" of type ${e.constructor.name}`),e.$$.ptr||F(`cannot call emscripten binding method ${n} on deleted object`),V(e.$$.ptr,e.$$.ptrType.registeredClass,t.registeredClass)),Tt=(e,t,n,r,i,a,o,s,c,l)=>{t=A(t),i=K(r,i),J([],[e],e=>{e=e[0];var r=`${e.name}.${t}`,u={get(){q(`Cannot access ${r} due to unbound types`,[n,o])},enumerable:!0,configurable:!0};return u.set=c?()=>q(`Cannot access ${r} due to unbound types`,[n,o]):e=>F(r+` is a read-only property`),Object.defineProperty(e.registeredClass.instancePrototype,t,u),J([],c?[n,o]:[n],n=>{var o=n[0],u={get(){var t=wt(this,e,r+` getter`);return o.fromWireType(i(a,t))},enumerable:!0};if(c){c=K(s,c);var d=n[1];u.set=function(t){var n=wt(this,e,r+` setter`),i=[];c(l,n,d.toWireType(i,t)),ht(i)}}return Object.defineProperty(e.registeredClass.instancePrototype,t,u),[]}),[]})},Et=[],Y=[0,1,,1,null,1,!0,1,!1,1],Dt=e=>{e>9&&--Y[e+1]===0&&(Y[e],Y[e]=void 0,Et.push(e))},X={toValue:e=>(e||F(`Cannot use deleted val. handle = ${e}`),Y[e]),toHandle:e=>{switch(e){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{let t=Et.pop()||Y.length;return Y[t]=e,Y[t+1]=1,t}}}},Ot={name:`emscripten::val`,fromWireType:e=>{var t=X.toValue(e);return Dt(e),t},toWireType:(e,t)=>X.toHandle(t),readValueFromPointer:H,destructorFunction:null},kt=e=>I(e,Ot),At,jt=(e,t)=>{switch(t){case 4:return function(e){return this.fromWireType((p(),At)[e>>2])};case 8:return function(e){return this.fromWireType((p(),x)[e>>3])};default:throw TypeError(`invalid float width (${t}): ${e}`)}},Mt=(e,t,n)=>{t=A(t),I(e,{name:t,fromWireType:e=>e,toWireType:(e,t)=>t,readValueFromPointer:jt(t,n),destructorFunction:null})},Nt=(e,t,n,r,i)=>{t=A(t);let a=r===0,o=e=>e;if(a){var s=32-8*n;o=e=>e<<s>>>s,i=o(i)}I(e,{name:t,fromWireType:o,toWireType:(e,t)=>t,readValueFromPointer:Ne(t,n,r!==0),destructorFunction:null})},Pt=(e,t,n)=>{var r=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][t];function i(e){var t=(p(),E)[e>>2],n=(p(),E)[e+4>>2];return new r((p(),v).buffer,n,t)}n=A(n),I(e,{name:n,fromWireType:i,readValueFromPointer:i},{ignoreDuplicateRegistrations:!0})},Ft=(e,t)=>{t=A(t);var n=!0;I(e,{name:t,fromWireType(e){var t=(p(),E)[e>>2],r=e+4,i;if(n)i=k(r,t,!0);else{i=``;for(var a=0;a<t;++a)i+=String.fromCharCode((p(),D)[r+a])}return $(e),i},toWireType(e,t){t instanceof ArrayBuffer&&(t=new Uint8Array(t));var r,i=typeof t==`string`;i||ArrayBuffer.isView(t)&&t.BYTES_PER_ELEMENT==1||F(`Cannot pass non-string to std::string`),r=n&&i?he(t):t.length;var a=tr(4+r+1),o=a+4;if((p(),E)[a>>2]=r,i){if(n)_e(t,o,r+1);else for(var s=0;s<r;++s){var c=t.charCodeAt(s);c>255&&($(a),F(`String has UTF-16 code units that do not fit in 8 bits`)),(p(),D)[o+s]=c}}else(p(),D).set(t,o);return e!==null&&e.push($,a),a},readValueFromPointer:H,destructorFunction(e){$(e)}})},It=new TextDecoder(`utf-16le`),Lt=(e,t,n)=>{var r=e>>1,i=be((p(),je),r,t/2,n);return It.decode((p(),je).slice(r,i))},Rt=(e,t,n=2147483647)=>{if(n<2)return 0;n-=2;for(var r=t,i=n<e.length*2?n/2:e.length,a=0;a<i;++a){var o=e.charCodeAt(a);(p(),L)[t>>1]=o,t+=2}return(p(),L)[t>>1]=0,t-r},zt=e=>e.length*2,Bt=(e,t,n)=>{for(var r=``,i=e>>2,a=0;!(a>=t/4);a++){var o=(p(),E)[i+a];if(!o&&!n)break;r+=String.fromCodePoint(o)}return r},Vt=(e,t,n=2147483647)=>{if(n<4)return 0;for(var r=t,i=r+n-4,a=0;a<e.length;++a){var o=e.codePointAt(a);if(o>65535&&a++,(p(),w)[t>>2]=o,t+=4,t+4>i)break}return(p(),w)[t>>2]=0,t-r},Ht=e=>{for(var t=0,n=0;n<e.length;++n)e.codePointAt(n)>65535&&n++,t+=4;return t},Ut=(e,t,n)=>{n=A(n);var r,i,a;t===2?(r=Lt,i=Rt,a=zt):(r=Bt,i=Vt,a=Ht),I(e,{name:n,fromWireType:e=>{var n=(p(),E)[e>>2],i=r(e+4,n*t,!0);return $(e),i},toWireType:(e,r)=>{typeof r!=`string`&&F(`Cannot pass non-string to C++ string type ${n}`);var o=a(r),s=tr(4+o+t);return(p(),E)[s>>2]=o/t,i(r,s+4,o+t),e!==null&&e.push($,s),s},readValueFromPointer:H,destructorFunction(e){$(e)}})},Wt=(e,t)=>{t=A(t),I(e,{isVoid:!0,name:t,fromWireType:()=>void 0,toWireType:(e,t)=>void 0})},Gt=e=>{ir(e,!r,1,!n,262144,!1),T.threadInitTLS()},Kt=(e,...t)=>{e(...t)},qt=e=>{if(!ue){Atomics.waitAsync((p(),w),e>>2,e).value.then(Jt);var t=e+112;Atomics.store((p(),w),t>>2,1)}},Jt=()=>{var e=er();e&&Kt(()=>{qt(e),fr()})},Yt=(e,t)=>{if(e==t)setTimeout(Jt);else if(s)postMessage({targetThread:e,cmd:4});else{var n=T.pthreads[e];if(!n)return;n.postMessage({cmd:4})}},Xt=[],Zt=(e,t,n,r,i,a,o)=>{Xt.length=0;for(var s=i>>3,c=i+r>>3;s<c;){var l=(p(),S)[s++]?(p(),S)[s++]:(p(),x)[s++];Xt.push(l)}var u=t?$n[t]:Qn[e];T.currentProxiedOperationCallerThread=n;var d=u(...Xt);if(T.currentProxiedOperationCallerThread=0,a){Promise.resolve(d).then(e=>sr(a,o,e));return}return d},Qt=()=>{},$t=e=>{s?postMessage({cmd:6,thread:e}):re(e)},en=e=>{},tn=()=>{throw new f},nn=[],rn=e=>{var t=nn.length;return nn.push(e),t},an=(e,t)=>{var n=M[e];return n===void 0&&F(`${t} has unknown type ${ft(e)}`),n},on=(e,t)=>{for(var n=Array(e),r=0;r<e;++r)n[r]=an((p(),E)[t+r*4>>2],`parameter ${r}`);return n},sn=(e,t,n)=>{var r=[],i=e(r,n);return r.length&&((p(),E)[t>>2]=X.toHandle(r)),i},cn={},ln=e=>{var t=cn[e];return t===void 0?A(e):t},un=(e,t,n)=>{var[r,...i]=on(e,t),a=r.toWireType.bind(r),o=i.map(e=>e.readValueFromPointer.bind(e));e--;var s=Array(e);return rn(Ge(`methodCaller<(${i.map(e=>e.name)}) => ${r.name}>`,(t,r,i,c)=>{for(var l=0,u=0;u<e;++u)s[u]=o[u](c+l),l+=8;var d;switch(n){case 0:d=X.toValue(t).apply(null,s);break;case 2:d=Reflect.construct(X.toValue(t),s);break;case 3:d=s[0];break;case 1:d=X.toValue(t)[ln(r)](...s)}return sn(a,i,d)}))},dn=(e,t)=>(e=X.toValue(e),t=X.toValue(t),X.toHandle(e[t])),fn=e=>{e>9&&(Y[e+1]+=1)},pn=(e,t,n,r,i)=>nn[e](t,n,r,i),mn=()=>X.toHandle([]),hn=e=>X.toHandle(ln(e)),gn=()=>X.toHandle({}),_n=e=>{ht(X.toValue(e)),Dt(e)},vn=(e,t,n)=>{e=X.toValue(e),t=X.toValue(t),n=X.toValue(n),e[t]=n},Z={},yn=()=>performance.timeOrigin+performance.now();function bn(e,t){return s?C(6,0,1,e,t):(Z[e]&&(clearTimeout(Z[e].id),delete Z[e]),t&&(Z[e]={id:setTimeout(()=>{delete Z[e],Kt(dr,e,yn())},t),timeout_ms:t}),0)}var xn=()=>Date.now(),Sn=9007199254740992,Cn=-9007199254740992,wn=e=>e<Cn||e>Sn?NaN:Number(e),Tn=[],En=(e,t)=>{Tn.length=0;for(var n;n=(p(),D)[e++];){var r=n!=105;r&=n!=112,t+=r&&t%8?4:0,Tn.push(n==112?(p(),E)[t>>2]:n==106?(p(),S)[t>>3]:n==105?(p(),w)[t>>2]:(p(),x)[t>>3]),t+=r?8:4}return Tn},Dn=(e,t,n)=>{var r=En(t,n);return $n[e](...r)},On=(e,t,n)=>Dn(e,t,n),kn=()=>{},An=e=>a(k(e)),jn=()=>{throw`unwind`},Mn=()=>2147483648,Nn=()=>Mn(),Pn=()=>navigator.hardwareConcurrency,Fn=(e,t)=>Math.ceil(e/t)*t,In=e=>{var t=(e-O.buffer.byteLength+65535)/65536|0;try{return O.grow(t),_(),1}catch{}},Ln=e=>{var t=(p(),D).length;if(e>>>=0,e<=t)return!1;var n=Mn();if(e>n)return!1;for(var r=1;r<=4;r*=2){var i=t*(1+.2/r);if(i=Math.min(i,e+100663296),In(Math.min(n,Fn(Math.max(e,i),65536))))return!0}return!1},Rn={},zn=()=>`./this.program`,Q=()=>{if(!Q.strings){var e={USER:`web_user`,LOGNAME:`web_user`,PATH:`/`,PWD:`/`,HOME:`/home/web_user`,LANG:(globalThis.navigator?.language??`C`).replace(`-`,`_`)+`.UTF-8`,_:zn()};for(var t in Rn)Rn[t]===void 0?delete e[t]:e[t]=Rn[t];var n=[];for(var t in e)n.push(`${t}=${e[t]}`);Q.strings=n}return Q.strings};function Bn(e,t){if(s)return C(7,0,1,e,t);var n=0,r=0;for(var i of Q()){var a=t+n;(p(),E)[e+r>>2]=a,n+=_e(i,a,1/0)+1,r+=4}return 0}function Vn(e,t){if(s)return C(8,0,1,e,t);var n=Q();(p(),E)[e>>2]=n.length;var r=0;for(var i of n)r+=he(i)+1;return(p(),E)[t>>2]=r,0}function Hn(e){return s?C(9,0,1,e):52}function Un(e,t,n,r){return s?C(10,0,1,e,t,n,r):52}function Wn(e,t,n,r){return s?C(11,0,1,e,t,n,r):(t=wn(t),70)}var Gn=[null,[],[]],Kn=(e,t=0,n,r)=>{var i=be(e,t,n,r);return ye.decode(e.buffer?e.buffer instanceof ArrayBuffer?e.subarray(t,i):e.slice(t,i):new Uint8Array(e.slice(t,i)))},qn=(e,t)=>{var n=Gn[e];!t||t===10?((e===1?i:a)(Kn(n)),n.length=0):n.push(t)};function Jn(e,t,n,r){if(s)return C(12,0,1,e,t,n,r);for(var i=0,a=0;a<n;a++){var o=(p(),E)[t>>2],c=(p(),E)[t+4>>2];t+=8;for(var l=0;l<c;l++)qn(e,(p(),D)[o+l]);i+=c}return(p(),E)[r>>2]=i,0}var Yn=()=>e=>(e.set(crypto.getRandomValues(new Uint8Array(e.byteLength))),0),Xn=e=>(Xn=Yn())(e),Zn=(e,t)=>Xn((p(),D).subarray(e,e+t));T.init(),We(),lt();var Qn=[ce,Se,Te,Ee,De,Oe,bn,Bn,Vn,Hn,Un,Wn,Jn],$n={614605:e=>ve(X.toValue(e))},er,$,tr,nr,rr,ir,ar,or,sr,cr,lr,ur,dr,fr,pr,mr,hr,gr,_r,vr;function yr(e){t.__ZdlPvm=e.ha,er=e.ia,t.__Znwm=e.ja,$=e.ka,tr=t._malloc=e.la,t._calloc=e.ma,nr=e.na,rr=e.oa,t._emscripten_builtin_free=e.pa,e.qa,ir=e.sa,ar=e.ta,or=e.ua,t.___libc_free=e.va,t._emscripten_builtin_malloc=e.wa,t.___libc_malloc=e.xa,sr=e.ya,cr=e.za,lr=e.Aa,ur=e.Ba,dr=e.Ca,fr=e.Da,t.__ZdaPv=e.Ea,t.__ZdaPvm=e.Fa,t.__ZdlPv=e.Ga,t.__Znam=e.Ha,t.__ZnamSt11align_val_t=e.Ia,t.__ZnwmSt11align_val_t=e.Ja,t.___libc_calloc=e.Ka,t.___libc_realloc=e.La,t._emscripten_builtin_calloc=e.Ma,t._emscripten_builtin_realloc=e.Na,t._malloc_size=e.Oa,t._malloc_usable_size=e.Pa,t._reallocf=e.Qa,pr=e.Ra,mr=e.Sa,hr=e.Ta,gr=e.Ua,_r=e.Va,vr=e.ra}var br;function xr(){br={b:xe,P:we,y:Te,O:Ee,X:De,z:Oe,K:ke,B:Pe,aa:Fe,fa:pt,ea:xt,d:Ct,ca:Tt,_:kt,A:Mt,l:Nt,e:Pt,$:Ft,t:Ut,ba:Wt,S:Gt,L:Yt,x:Zt,G:Qt,v:$t,R:qt,Z:en,E:tn,i:un,c:Dt,da:dn,f:fn,h:pn,p:mn,j:hn,s:gn,g:_n,k:vn,H:bn,n:On,w:kn,m:xn,u:An,Y:jn,M:Nn,o:yn,N:Pn,I:Ln,T:Bn,U:Vn,q:le,r:Hn,W:Un,Q:Wn,V:Jn,D:Sr,C:Cr,a:O,F:ce,J:Zn}}function Sr(e,t,n){var r=y();try{return pe(e)(t,n)}catch(e){if(b(r),!(e instanceof d))throw e;pr(1,0)}}function Cr(e,t,n,r,i){var a=y();try{return pe(e)(t,n,r,i)}catch(e){if(b(a),!(e instanceof d))throw e;pr(1,0)}}function wr(e){g=!0,T.tlsInitFunctions.push(e.qa),!s&&e.ga()}var Tr,Er;function Dr(){xr();var e={a:br};Tr=WebAssembly.instantiateStreaming(fetch(new URL(new URL(`jassub-worker.wasm`,import.meta.url).href,``+import.meta.url)),e).then(e=>{var n=(e.instance||e).exports;return Er=e.module||t.wasm,yr(n),ie(ae),wr(n),T.loadWasmModuleToAllWorkers().then(o)})}return s||Dr(),await Tr,t}globalThis.name==`em-pthread`&&e();
Binary file
package/jassub/worker.js CHANGED
@@ -1,26 +1,23 @@
1
- const e={RAW:`RAW`,PROXY:`PROXY`,THROW:`THROW`,HANDLER:`HANDLER`},t={GET:`GET`,SET:`SET`,APPLY:`APPLY`,CONSTRUCT:`CONSTRUCT`,RELEASE:`RELEASE`},n=Symbol(`Abslink.proxy`),r=Symbol(`Abslink.releaseProxy`),i=Symbol(`Abslink.finalizer`),a=Symbol(`Abslink.thrown`),o=e=>typeof e==`object`&&!!e||typeof e==`function`,s=/* @__PURE__ */ new Map([[`proxy`,{canHandle:e=>o(e)&&n in e,serialize(e,t){let r=e[n];return l(e,t,r),[r,[]]},deserialize(e,t){return u(t,e)}}],[`throw`,{canHandle:e=>o(e)&&a in e,serialize({value:e}){let t;return t=e instanceof Error?{isError:!0,value:{message:e.message,name:e.name,stack:e.stack}}:{isError:!1,value:e},[t,[]]},deserialize(e){throw e.isError?Object.assign(Error(e.value.message),e.value):e.value}}]]);function c(e,t){let n=t,r=e.slice(0,-1);for(let e of r)Object.prototype.hasOwnProperty.call(n,e)&&(n=n[e]);let i=e[e.length-1],a=i?n[i]:n;return{parent:n,RawValue:a,lastSegment:i}}function l(e,n,r){return n.on(`message`,function o(s){if(!s)return;let{id:l,type:u,path:d,markerID:f}={path:[],...s};if(f!==r)return;let p=(s.argumentList??[]).map(e=>y(e,n)),m;try{let{parent:r,RawValue:i,lastSegment:a}=c(d,e);switch(u){case t.GET:m=i;break;case t.SET:r[a]=y(s.value,n),m=!0;break;case t.APPLY:m=i.apply(r,p);break;case t.CONSTRUCT:m=new i(...p);break;case t.RELEASE:m=void 0;break;default:return}}catch(e){m={value:e,[a]:0}}Promise.resolve(m).catch(e=>({value:e,[a]:0})).then(a=>{u===t.CONSTRUCT&&(a=ne(a));let[s,c]=v(a,n);n.postMessage({...s,id:l,markerID:r},c),u===t.RELEASE&&(n.off(`message`,o),e[i]?.(),n.close?.())}).catch(e=>{let[t,i]=v({value:/* @__PURE__ */ TypeError(`Unserializable return value`),[a]:0},n);n.postMessage({...t,id:l,markerID:r},i)})}),e}function u(e,t){let n=/* @__PURE__ */ new Map;return e.on(`message`,e=>{if(!e?.id)return;let t=n.get(e.id);if(t)try{t(e)}finally{n.delete(e.id)}}),ee({endpoint:e,pendingListeners:n,rootMarkerID:t})}function d(e){if(e)throw Error(`Proxy has been released and is not useable`)}async function f(e){await b(e,{type:t.RELEASE}),e.endpoint.close?.()}const p=/* @__PURE__ */ new WeakMap,m=`FinalizationRegistry`in globalThis&&new FinalizationRegistry(e=>{let t=(p.get(e)??0)-1;p.set(e,t),t===0&&f(e).finally(()=>{e.pendingListeners.clear()})});function h(e,t){let n=(p.get(t)??0)+1;p.set(t,n),m&&m.register(e,t,e)}function g(e){m&&m.unregister(e)}function ee(e,n=[]){let i=!1,a=/* @__PURE__ */ new Map,o=new Proxy(function(){},{get(s,c){if(d(i),c===r)return async()=>{for(let e of a.values())e[r]();a.clear(),g(o),f(e).finally(()=>{e.pendingListeners.clear()}),i=!0};if(c===`then`){if(n.length===0)return{then:()=>o};let r=b(e,{type:t.GET,path:n.map(e=>e.toString())}).then(t=>y(t,e.endpoint));return r.then.bind(r)}let l=a.get(c);if(l)return l;let u=ee(e,[...n,c]);return a.set(c,u),u},set(r,a,o){d(i);let[s,c]=v(o,e.endpoint);return b(e,{type:t.SET,path:[...n,a].map(e=>e.toString()),value:s},c).then(t=>y(t,e.endpoint))},apply(r,a,o){if(d(i),n[n.length-1]===`bind`)return ee(e,n.slice(0,-1));let[s,c]=_(o,e);return b(e,{type:t.APPLY,path:n.map(e=>e.toString()),argumentList:s},c).then(t=>y(t,e.endpoint))},construct(r,a){d(i);let[o,s]=_(a,e);return b(e,{type:t.CONSTRUCT,path:n.map(e=>e.toString()),argumentList:o},s).then(t=>y(t,e.endpoint))}});return h(o,e),o}const te=/* @__PURE__ */ new WeakMap;function _(e,t){let n=[],r=[];for(let i of e){let[e,a]=v(i,t.endpoint);n.push(e),r.push(...a)}return[n,r]}function ne(e){return Object.assign(e,{[n]:C()})}function v(t,n){for(let[r,i]of s)if(i.canHandle(t)){let[a,o]=i.serialize(t,n);return[{type:e.HANDLER,name:r,value:a},o]}return[{type:e.RAW,value:t},te.get(t)??[]]}function y(t,n){switch(t.type){case e.HANDLER:return s.get(t.name).deserialize(t.value,n);case e.RAW:return t.value}}function b(e,t,n){return new Promise(r=>{let i=C();e.pendingListeners.set(i,r),e.endpoint.postMessage({id:i,...t,markerID:e.rootMarkerID},n)})}const re=[],ie=`0123456789abcdef`;for(let e=0;e<256;e++)re[e]=ie[e>>4&15]+ie[e&15];let x=0,S=``;function C(){let e=0;if(!S||x+16>512)for(S=``,x=0;e<256;++e)S+=re[Math.random()*256|0];return S.substring(x,++x+16)}function ae(e,t){let n=/* @__PURE__ */ new WeakMap;return e.start?.(),t.start?.(),{on(t,r){let i=e=>r(e.data);`addEventListener`in e?e.addEventListener(t,i):`addListener`in e?e.addListener(t,i):e.on(t,i),n.set(r,i)},off(t,r){let i=n.get(r);`removeEventListener`in e?e.removeEventListener(t,i):`removeListener`in e?e.removeListener(t,i):e.off(t,i),n.delete(r)},postMessage(e,n){t.postMessage(e,n)},close(){e!==globalThis&&e.close?.(),t!==globalThis&&t.close?.()}}}function w(e,t=globalThis,n=t){return l(e,ae(t,n))}`queryLocalFonts`in globalThis&&globalThis.queryLocalFonts;const T={100:`Thin`,200:`ExtraLight`,300:`Light`,400:`Regular`,500:`Medium`,600:`SemiBold`,700:`Bold`,800:`ExtraBold`,900:`Black`,1e3:`UltraBlack`};var E=class{family;fullName;postscriptName;style;#e;#t;constructor({family:e,weight:t,isItalic:n,weightName:r}){this.family=e,this.#e=t,this.#t=n,this.style=r===`Regular`?n?`Italic`:`Regular`:r+(n?` Italic`:``),this.fullName=this.style===`Regular`?e:`${e} ${this.style}`,this.postscriptName=this.fullName.replace(/ /g,`-`)}async blob(){let e=await(await fetch(`https://fonts.googleapis.com/css2?family=${this.family}:${this.#t?`ital,`:``}wght@${this.#t?`1,`:``}${this.#e}`)).text();for(let t of[/\/\* latin-ext \*\/[\s\S]+url\(([^)]+)\)/,/\/\* latin \*\/[\s\S]+url\(([^)]+)\)/,/url\(([^)]+)\)/]){let n=e.match(t)?.[1];if(n){let e=await fetch(n);if(e.ok)return e.blob()}}throw Error(`Failed to load font blob`)}};function oe([e,t]){let n=[];for(let r of t){let t=``+r,i=t.endsWith(`i`),a=t.replace(`i`,``);if(a.includes(`a`)){let[t,r]=a.split(`a`).map(e=>parseInt(e)*100);for(let a=t;a<=r;a+=100)n.push(new E({family:e,weight:`${t}..${r}`,isItalic:i,weightName:T[a]}))}else n.push(new E({family:e,weight:`${a}00`,isItalic:i,weightName:T[parseInt(a)*100]}))}return n}let se=/* @__PURE__ */ new Map;async function ce(){if(se.size===0){let e=await import(`./fonts.js`);for(let t of e.default.flatMap(e=>oe(e)))se.set(t.postscriptName.toLowerCase().replace(/-/g,``),t)}return se}async function D({postscriptNames:e}={}){let t=await ce();return e?e.length===0?[]:e.reduce((e,n)=>{let r=t.get(n.toLowerCase().replace(/regular$/,``).replace(/-reg$/,``).replace(/[- ]/g,``));return r&&e.push(r),e},[]):[...t.values()]}if(self.name.startsWith(`em-pthread`)){let e=self.name.split(`-`).slice(2).join(`-`),t=globalThis.fetch;globalThis.fetch=n=>t(e),self.name=`em-pthread`}async function O(e={}){var t=e,n=!0,r=!!globalThis.WorkerGlobalScope,i=(...e)=>console.log(...e),a=(...e)=>console.error(...e);function o(){s&&h()}var s=r&&globalThis.name==`em-pthread`;r&&(c=self.location.href);var c;let l=!!WebAssembly.Memory.prototype.toResizableBuffer;if(_=()=>{if(!(l&&self.HEAPU8RAW)){var e=l?F.toResizableBuffer():F.buffer;v=new Int8Array(e),W=new Int16Array(e),N=new Uint8Array(e),G=new Uint16Array(e),D=new Int32Array(e),k=new Uint32Array(e),kt=new Float32Array(e),w=new Float64Array(e),T=new BigInt64Array(e),Te=new BigUint64Array(e),self.HEAPU8RAW=new Uint8Array(e),self.WASMMEMORY=F}},e.__out&&(i=e.__out),e.__err&&(a=e.__err),!self.name.startsWith(`em-pthread`)){let t=globalThis.Worker;globalThis.Worker=class extends t{constructor(t,n={}){super(t,{...n,name:`em-pthread-`+e.__url})}}}let u=Dr;Dr=function(){u(),$n=new Proxy({},{get(){return e=>fe(Z.toValue(e))}})};function d(e){throw e}class f{}class p extends f{}function m(){F.buffer!=v.buffer&&_()}var h;if(s){var g=!1;self.onunhandledrejection=e=>{throw e.reason||e};function e(n){try{var r=n.data,o=r.cmd;if(o==1){let n=[];self.onmessage=e=>n.push(e),h=()=>{postMessage({cmd:3});for(let t of n)e(t);self.onmessage=e};for(let e of r.handlers)(!t[e]||t[e].proxy)&&(t[e]=(...t)=>{postMessage({cmd:9,handler:e,args:t})},e==`print`&&(i=t[e]),e==`printErr`&&(a=t[e]));F=r.wasmMemory,_(),t.wasm=r.wasmModule,Dr()}else if(o==2){le(r.pthread_ptr),ir(r.pthread_ptr,0,0,1,0,0),O.threadInitTLS(),Kt(r.pthread_ptr),g||=(rr(),!0);try{ue(r.start_routine,r.arg)}catch(e){if(e!=`unwind`)throw e}}else o==4?g&&qt():o&&(a(`worker: received unknown command ${o}`),a(r))}catch(e){throw ee&&or(),e}}self.onmessage=e}var ee=!1;function te(){return F.buffer}function _(){if(!v?.buffer?.growable){var e=te();v=new Int8Array(e),W=new Int16Array(e),N=new Uint8Array(e),G=new Uint16Array(e),D=new Int32Array(e),k=new Uint32Array(e),kt=new Float32Array(e),w=new Float64Array(e),T=new BigInt64Array(e),Te=new BigUint64Array(e)}}function ne(){s||(F=new WebAssembly.Memory({initial:512,maximum:32768,shared:!0}),_())}ne();var v,y=e=>{e.terminate(),e.onmessage=e=>{}},b=e=>{var t=O.pthreads[e];O.returnWorkerToPool(t)},re=e=>{for(;e.length>0;)e.shift()(t)},ie=[],x=e=>{var t=O.getNewWorker();if(!t)return 6;O.pthreads[e.pthread_ptr]=t,t.pthread_ptr=e.pthread_ptr;var n={cmd:2,start_routine:e.startRoutine,arg:e.arg,pthread_ptr:e.pthread_ptr};return t.postMessage(n,e.transferList),0},S=()=>_r(),C=e=>hr(e),ae=e=>gr(e),w,T,E=(e,t,n,...r)=>{var i=8*r.length*2,a=S(),o=ae(i),s=o>>3;for(var c of r)typeof c==`bigint`?((m(),T)[s++]=1n,(m(),T)[s++]=c):((m(),T)[s++]=0n,(m(),w)[s++]=c);var l=cr(e,t,i,o,n);return C(a),l};function oe(e){if(s)return E(0,0,1,e);throw`exit(${e})`}var se=oe,ce=!Atomics.waitAsync||globalThis.navigator?.userAgent&&Number((navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)||[])[2])<91,D,O={unusedWorkers:[],tlsInitFunctions:[],pthreads:{},init(){s||O.initMainThread()},initMainThread(){for(var e=!navigator.userAgent.toLowerCase().includes(`firefox`)&&self.crossOriginIsolated?Math.min(Math.max(0,navigator.hardwareConcurrency-2),8):0;e--;)O.allocateUnusedWorker()},terminateAllThreads:()=>{for(var e of Object.values(O.pthreads))y(e);for(var e of O.unusedWorkers)y(e);O.unusedWorkers=[],O.pthreads={}},terminateRuntime:()=>{O.terminateAllThreads();var e=er();ar(0,0,0,1),ce||Atomics.notify((m(),D),e>>2)},returnWorkerToPool:e=>{var t=e.pthread_ptr;delete O.pthreads[t],O.unusedWorkers.push(e),e.pthread_ptr=0,lr(t)},threadInitTLS(){O.tlsInitFunctions.forEach(e=>e())},loadWasmModuleToWorker:e=>new Promise(n=>{e.onmessage=r=>{var i=r.data,o=i.cmd;if(i.targetThread&&i.targetThread!=er()){O.pthreads[i.targetThread]?.postMessage(i);return}if(i===`setimmediate`||i===`_si`){e.postMessage(i);return}switch(o){case 4:qt();break;case 5:x(i);break;case 6:Gt(()=>b(i.thread));break;case 3:n(e);break;case 9:t[i.handler](...i.args);break;default:o&&a(`worker sent an unknown command ${o}`)}},e.onerror=e=>{throw a(`worker sent an error! ${e.filename}:${e.lineno}: ${e.message}`),e};var r=[];for(var i of[])t.propertyIsEnumerable(i)&&r.push(i);e.postMessage({cmd:1,handlers:r,wasmMemory:F,wasmModule:Er})}),async loadWasmModuleToAllWorkers(){if(!s)return Promise.all(O.unusedWorkers.map(O.loadWasmModuleToWorker))},allocateUnusedWorker(){var e=new Worker(new URL(
1
+ const e={RAW:`RAW`,PROXY:`PROXY`,THROW:`THROW`,HANDLER:`HANDLER`},t={GET:`GET`,SET:`SET`,APPLY:`APPLY`,CONSTRUCT:`CONSTRUCT`,RELEASE:`RELEASE`},n=Symbol(`Abslink.proxy`),r=Symbol(`Abslink.releaseProxy`),i=Symbol(`Abslink.finalizer`),a=Symbol(`Abslink.thrown`),o=e=>typeof e==`object`&&!!e||typeof e==`function`,s=/* @__PURE__ */ new Map([[`proxy`,{canHandle:e=>o(e)&&n in e,serialize(e,t){let r=e[n];return l(e,t,r),[r,[]]},deserialize(e,t){return u(t,e)}}],[`throw`,{canHandle:e=>o(e)&&a in e,serialize({value:e}){let t;return t=e instanceof Error?{isError:!0,value:{message:e.message,name:e.name,stack:e.stack}}:{isError:!1,value:e},[t,[]]},deserialize(e){throw e.isError?Object.assign(Error(e.value.message),e.value):e.value}}]]);function c(e,t){let n=t,r=e.slice(0,-1);for(let e of r)Object.prototype.hasOwnProperty.call(n,e)&&(n=n[e]);let i=e[e.length-1],a=i?n[i]:n;return{parent:n,RawValue:a,lastSegment:i}}function l(e,n,r){return n.on(`message`,function s(l){if(!l)return;let{id:u,type:d,path:f,markerID:p}={path:[],...l};if(p!==r)return;let m=(l.argumentList??[]).map(e=>b(e,n)),h;try{let{parent:r,RawValue:i,lastSegment:a}=c(f,e);switch(d){case t.GET:h=i;break;case t.SET:r[a]=b(l.value,n),h=!0;break;case t.APPLY:h=i.apply(r,m);break;case t.CONSTRUCT:h=new i(...m);break;case t.RELEASE:h=void 0;break;default:return}}catch(e){h={value:e,[a]:0}}Promise.resolve(h).catch(e=>({value:e,[a]:0})).then(c=>{d===t.CONSTRUCT&&!(o(c)&&a in c)&&(c=v(c));let[l,f]=y(c,n);n.postMessage({...l,id:u,markerID:r},f),d===t.RELEASE&&(n.off(`message`,s),e[i]?.())}).catch(e=>{let[t,i]=y({value:/* @__PURE__ */ TypeError(`Unserializable return value`),[a]:0},n);n.postMessage({...t,id:u,markerID:r},i)})}),e}function u(e,t){let n=/* @__PURE__ */ new Map;return e.on(`message`,e=>{if(!e?.id)return;let t=n.get(e.id);if(t)try{t(e)}finally{n.delete(e.id)}}),ee({endpoint:e,pendingListeners:n,rootMarkerID:t})}function d(e){if(e)throw Error(`Proxy has been released and is not useable`)}async function f(e){await x(e,{type:t.RELEASE})}const p=/* @__PURE__ */ new WeakMap,m=`FinalizationRegistry`in globalThis&&new FinalizationRegistry(e=>{let t=(p.get(e)??0)-1;p.set(e,t),t===0&&f(e).finally(()=>{e.pendingListeners.clear()})});function h(e,t){let n=(p.get(t)??0)+1;p.set(t,n),m&&m.register(e,t,e)}function g(e){m&&m.unregister(e)}function ee(e,n=[]){let i=!1,a=/* @__PURE__ */ new Map,o=new Proxy(function(){},{get(s,c){if(d(i),c===r)return async()=>{for(let e of a.values())e[r]();a.clear(),g(o),f(e).finally(()=>{e.pendingListeners.clear()}),i=!0};if(c===`then`){if(n.length===0)return{then:()=>o};let r=x(e,{type:t.GET,path:n.map(e=>e.toString())}).then(t=>b(t,e.endpoint));return r.then.bind(r)}let l=a.get(c);if(l)return l;let u=ee(e,[...n,c]);return a.set(c,u),u},set(r,a,o){d(i);let[s,c]=y(o,e.endpoint);return x(e,{type:t.SET,path:[...n,a].map(e=>e.toString()),value:s},c).then(t=>b(t,e.endpoint))},apply(r,a,o){if(d(i),n[n.length-1]===`bind`)return ee(e,n.slice(0,-1));let[s,c]=te(o,e);return x(e,{type:t.APPLY,path:n.map(e=>e.toString()),argumentList:s},c).then(t=>b(t,e.endpoint))},construct(r,a){d(i);let[o,s]=te(a,e);return x(e,{type:t.CONSTRUCT,path:n.map(e=>e.toString()),argumentList:o},s).then(t=>b(t,e.endpoint))}});return h(o,e),o}const _=/* @__PURE__ */ new WeakMap;function te(e,t){let n=[],r=[];for(let i of e){let[e,a]=y(i,t.endpoint);n.push(e),r.push(...a)}return[n,r]}function v(e){return Object.assign(e,{[n]:ie()})}function y(t,n){for(let[r,i]of s)if(i.canHandle(t)){let[a,o]=i.serialize(t,n);return[{type:e.HANDLER,name:r,value:a},o]}return[{type:e.RAW,value:t},_.get(t)??[]]}function b(t,n){switch(t.type){case e.HANDLER:return s.get(t.name).deserialize(t.value,n);case e.RAW:return t.value}}function x(e,t,n=[]){return new Promise(r=>{let i=ie();e.pendingListeners.set(i,r),e.endpoint.postMessage({id:i,...t,markerID:e.rootMarkerID},n)})}const ne=[],re=`0123456789abcdef`;for(let e=0;e<256;e++)ne[e]=re[e>>4&15]+re[e&15];let S=0,C=``;function ie(){let e=0;if(!C||S+16>512)for(C=``,S=0;e<256;++e)C+=ne[Math.random()*256|0];return C.substring(S,++S+16)}function w(e,t){let n=/* @__PURE__ */ new WeakMap;return e.start?.(),t.start?.(),{on(t,r){let i=e=>r(e.data);`addEventListener`in e?e.addEventListener(t,i):`addListener`in e?e.addListener(t,i):e.on(t,i),n.set(r,i)},off(t,r){let i=n.get(r);`removeEventListener`in e?e.removeEventListener(t,i):`removeListener`in e?e.removeListener(t,i):e.off(t,i),n.delete(r)},postMessage(e,n=[]){t.postMessage(e,n)}}}function T(e,t=globalThis,n=t){return l(e,w(t,n))}`queryLocalFonts`in globalThis&&globalThis.queryLocalFonts;const E={100:`Thin`,200:`ExtraLight`,300:`Light`,400:`Regular`,500:`Medium`,600:`SemiBold`,700:`Bold`,800:`ExtraBold`,900:`Black`,1e3:`UltraBlack`};var D=class{family;fullName;postscriptName;style;#e;#t;constructor({family:e,weight:t,isItalic:n,weightName:r}){this.family=e,this.#e=t,this.#t=n,this.style=r===`Regular`?n?`Italic`:`Regular`:r+(n?` Italic`:``),this.fullName=this.style===`Regular`?e:`${e} ${this.style}`,this.postscriptName=this.fullName.replace(/ /g,`-`)}async blob(){let e=await(await fetch(`https://fonts.googleapis.com/css2?family=${this.family}:${this.#t?`ital,`:``}wght@${this.#t?`1,`:``}${this.#e}`)).text();for(let t of[/\/\* latin-ext \*\/[\s\S]+url\(([^)]+)\)/,/\/\* latin \*\/[\s\S]+url\(([^)]+)\)/,/url\(([^)]+)\)/]){let n=e.match(t)?.[1];if(n){let e=await fetch(n);if(e.ok)return e.blob()}}throw Error(`Failed to load font blob`)}};function ae([e,t]){let n=[];for(let r of t){let t=``+r,i=t.endsWith(`i`),a=t.replace(`i`,``);if(a.includes(`a`)){let[t,r]=a.split(`a`).map(e=>parseInt(e)*100);for(let a=t;a<=r;a+=100)n.push(new D({family:e,weight:`${t}..${r}`,isItalic:i,weightName:E[a]}))}else n.push(new D({family:e,weight:`${a}00`,isItalic:i,weightName:E[parseInt(a)*100]}))}return n}let O=/* @__PURE__ */ new Map;async function k(){if(O.size===0){let e=await import(`./fonts.js`);for(let t of e.default.flatMap(e=>ae(e)))O.set(t.postscriptName.toLowerCase().replace(/-/g,``),t)}return O}async function A({postscriptNames:e}={}){let t=await k();return e?e.length===0?[]:e.reduce((e,n)=>{let r=t.get(n.toLowerCase().replace(/regular$/,``).replace(/-reg$/,``).replace(/[- ]/g,``));return r&&e.push(r),e},[]):[...t.values()]}if(self.name.startsWith(`em-pthread`)){let e=self.name.split(`-`).slice(2).join(`-`),t=globalThis.fetch;globalThis.fetch=n=>t(e),self.name=`em-pthread`}async function j(e={}){var t=e,n=!0,r=!!globalThis.WorkerGlobalScope,i=(...e)=>console.log(...e),a=(...e)=>console.error(...e);function o(){s&&m()}var s=r&&globalThis.name==`em-pthread`;r&&(c=self.location.href);var c;if(n=!1,_=(e=>()=>{e(),self.HEAPU8RAW=(p(),P),self.WASMMEMORY=I})(_),i=e.__out||i,!self.name.startsWith(`em-pthread`)){let t=globalThis.Worker;globalThis.Worker=class extends t{constructor(t,n={}){super(t,{...n,name:`em-pthread-`+e.__url})}}}let l=Dr;Dr=function(){l(),$n=new Proxy({},{get(){return e=>ue(Q.toValue(e))}})};function u(e){throw e}class d{}class f extends d{}function p(){I.buffer!=v.buffer&&_()}var m;if(s){var h=!1;self.onunhandledrejection=e=>{throw e.reason||e};function e(n){try{var r=n.data,o=r.cmd;if(o==1){let n=[];self.onmessage=e=>n.push(e),m=()=>{postMessage({cmd:3});for(let t of n)e(t);self.onmessage=e};for(let e of r.handlers)(!t[e]||t[e].proxy)&&(t[e]=(...t)=>{postMessage({cmd:9,handler:e,args:t})},e==`print`&&(i=t[e]),e==`printErr`&&(a=t[e]));I=r.wasmMemory,_(),t.wasm=r.wasmModule,Dr()}else if(o==2){oe(r.pthread_ptr),ir(r.pthread_ptr,0,0,1,0,0),A.threadInitTLS(),Gt(r.pthread_ptr),h||=(rr(),!0);try{ce(r.start_routine,r.arg)}catch(e){if(e!=`unwind`)throw e}}else o==4?h&&Kt():o&&(a(`worker: received unknown command ${o}`),a(r))}catch(e){throw g&&or(),e}}self.onmessage=e}var g=!1;function ee(){var e=globalThis.navigator?.userAgent?.match(/Firefox\/(\d+)/);if(!e||Number(e[1])>=154)try{var t=I.toResizableBuffer();return p=()=>{},t}catch{}return I.buffer}function _(){if(!v?.buffer?.growable){var e=ee();v=new Int8Array(e),xe=new Int16Array(e),P=new Uint8Array(e),Se=new Uint16Array(e),k=new Int32Array(e),j=new Uint32Array(e),Ot=new Float32Array(e),w=new Float64Array(e),T=new BigInt64Array(e),Ce=new BigUint64Array(e)}}function te(){s||(I=new WebAssembly.Memory({initial:512,maximum:32768,shared:!0}),_())}te();var v,y=e=>{e.terminate(),e.onmessage=e=>{}},b=e=>{var t=A.pthreads[e];A.returnWorkerToPool(t)},x=e=>{for(;e.length>0;)e.shift()(t)},ne=[],re=e=>{var t=A.getNewWorker();if(!t)return 6;A.pthreads[e.pthread_ptr]=t,t.pthread_ptr=e.pthread_ptr;var n={cmd:2,start_routine:e.startRoutine,arg:e.arg,pthread_ptr:e.pthread_ptr};return t.postMessage(n,e.transferList),0},S=()=>_r(),C=e=>hr(e),ie=e=>gr(e),w,T,E=(e,t,n,...r)=>{var i=8*r.length*2,a=S(),o=ie(i),s=o>>3;for(var c of r)typeof c==`bigint`?((p(),T)[s++]=1n,(p(),T)[s++]=c):((p(),T)[s++]=0n,(p(),w)[s++]=c);var l=cr(e,t,i,o,n);return C(a),l};function D(e){if(s)return E(0,0,1,e);throw`exit(${e})`}var ae=D,O=!Atomics.waitAsync||globalThis.navigator?.userAgent&&Number((navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)||[])[2])<91,k,A={unusedWorkers:[],tlsInitFunctions:[],pthreads:{},init(){s||A.initMainThread()},initMainThread(){for(var t=e.__poolSize|0;t--;)A.allocateUnusedWorker()},terminateAllThreads:()=>{for(var e of Object.values(A.pthreads))y(e);for(var e of A.unusedWorkers)y(e);A.unusedWorkers=[],A.pthreads={}},clearMailboxAwait:e=>{O||Atomics.notify((p(),k),e>>2)},terminateRuntime:()=>{A.terminateAllThreads();var e=er();ar(0,0,0,1),A.clearMailboxAwait(e)},returnWorkerToPool:e=>{var t=e.pthread_ptr;delete A.pthreads[t],A.unusedWorkers.push(e),e.pthread_ptr=0,A.clearMailboxAwait(t),lr(t)},threadInitTLS(){A.tlsInitFunctions.forEach(e=>e())},loadWasmModuleToWorker:e=>new Promise(n=>{e.onmessage=r=>{var i=r.data,o=i.cmd;if(i.targetThread&&i.targetThread!=er()){A.pthreads[i.targetThread]?.postMessage(i);return}if(i===`setimmediate`||i===`_si`){e.postMessage(i);return}switch(o){case 4:Kt();break;case 5:re(i);break;case 6:Wt(()=>b(i.thread));break;case 3:n(e);break;case 9:t[i.handler](...i.args);break;default:o&&a(`worker sent an unknown command ${o}`)}},e.onerror=e=>{throw a(`worker sent an error! ${e.filename}:${e.lineno}: ${e.message}`),e};var r=[];for(var i of[])t.propertyIsEnumerable(i)&&r.push(i);e.postMessage({cmd:1,handlers:r,wasmMemory:I,wasmModule:Er})}),async loadWasmModuleToAllWorkers(){if(!s)return Promise.all(A.unusedWorkers.map(A.loadWasmModuleToWorker))},allocateUnusedWorker(){var e=new Worker(new URL(
2
2
  /* @vite-ignore */
3
- new URL(`jassub-worker.js`,import.meta.url).href,``+import.meta.url),{type:`module`,name:`em-pthread`});return O.unusedWorkers.push(e),e},getNewWorker(){if(O.unusedWorkers.length==0){var e=O.allocateUnusedWorker();O.loadWasmModuleToWorker(e)}return O.unusedWorkers.pop()}},k;function le(e){var t=(m(),k)[e+48>>2],n=t-(m(),k)[e+52>>2];mr(t,n),C(t)}var A=[],j=e=>{var t=A[e];return t||(A[e]=t=vr.get(e)),t},ue=(e,t)=>{var n=j(e)(t);function r(e){ur(e)}r(n)},M=e=>{for(var t=0,n=0;n<e.length;++n){var r=e.charCodeAt(n);r<=127?t++:r<=2047?t+=2:r>=55296&&r<=57343?(t+=4,++n):t+=3}return t},de=(e,t,n,r)=>{if(!(r>0))return 0;for(var i=n,a=n+r-1,o=0;o<e.length;++o){var s=e.codePointAt(o);if(s<=127){if(n>=a)break;t[n++]=s}else if(s<=2047){if(n+1>=a)break;t[n++]=192|s>>6,t[n++]=128|s&63}else if(s<=65535){if(n+2>=a)break;t[n++]=224|s>>12,t[n++]=128|s>>6&63,t[n++]=128|s&63}else{if(n+3>=a)break;t[n++]=240|s>>18,t[n++]=128|s>>12&63,t[n++]=128|s>>6&63,t[n++]=128|s&63,o++}}return t[n]=0,n-i},N,P=(e,t,n)=>de(e,(m(),N),t,n),fe=e=>{var t=M(e)+1,n=tr(t);return n&&P(e,n,t),n},F,pe=new TextDecoder,me=(e,t,n,r)=>{var i=t+n;if(r)return i;for(;e[t]&&!(t>=i);)++t;return t},I=(e,t,n)=>{if(!e)return``;var r=me((m(),N),e,t,n);return pe.decode((m(),N).slice(e,r))},he=(e,t,n,r)=>d(`Assertion failed: ${I(e)}, at: `+[t?I(t):`unknown filename`,n,r?I(r):`unknown function`]);function L(e,t,n,r){return s?E(1,0,1,e,t,n,r):_e(e,t,n,r)}var ge=()=>!!globalThis.SharedArrayBuffer,_e=(e,t,n,r)=>{if(!ge())return 6;var i=[];if(s&&i.length===0)return L(e,t,n,r);var a={startRoutine:n,pthread_ptr:e,arg:r,transferList:i};return s?(a.cmd=5,postMessage(a,i),0):x(a)};function ve(e,t,n){return s?E(2,0,1,e,t,n):0}function ye(e,t,n){if(s)return E(3,0,1,e,t,n)}function be(e,t,n){return s?E(4,0,1,e,t,n):0}function xe(e,t,n,r){if(s)return E(5,0,1,e,t,n,r)}var Se=()=>d(``),R=e=>{for(var t=``;;){var n=(m(),N)[e++];if(!n)return t;t+=String.fromCharCode(n)}},z={},B={},Ce={};class V extends Error{constructor(e){super(e),this.name=`BindingError`}}var H=e=>{throw new V(e)};function we(e,t,n={}){var r=t.name;if(e||H(`type "${r}" must have a positive integer typeid pointer`),B.hasOwnProperty(e)){if(n.ignoreDuplicateRegistrations)return;H(`Cannot register type '${r}' twice`)}if(B[e]=t,delete Ce[e],z.hasOwnProperty(e)){var i=z[e];delete z[e],i.forEach(e=>e())}}function U(e,t,n={}){return we(e,t,n)}var W,G,Te,Ee=(e,t,n)=>{switch(t){case 1:return n?e=>(m(),v)[e]:e=>(m(),N)[e];case 2:return n?e=>(m(),W)[e>>1]:e=>(m(),G)[e>>1];case 4:return n?e=>(m(),D)[e>>2]:e=>(m(),k)[e>>2];case 8:return n?e=>(m(),T)[e>>3]:e=>(m(),Te)[e>>3];default:throw TypeError(`invalid integer width (${t}): ${e}`)}},De=(e,t,n,r,i)=>{t=R(t);let a=r===0n,o=e=>e;if(a){let e=n*8;o=t=>BigInt.asUintN(e,t),i=o(i)}U(e,{name:t,fromWireType:o,toWireType:(e,t)=>(typeof t==`number`&&(t=BigInt(t)),t),readValueFromPointer:Ee(t,n,!a),destructorFunction:null})},Oe=(e,t,n,r)=>{t=R(t),U(e,{name:t,fromWireType:function(e){return!!e},toWireType:function(e,t){return t?n:r},readValueFromPointer:function(e){return this.fromWireType((m(),N)[e])},destructorFunction:null})},ke=e=>({count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType}),Ae=e=>{function t(e){return e.$$.ptrType.registeredClass.name}H(t(e)+` instance already deleted`)},je=!1,Me=e=>{},Ne=e=>{e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)},Pe=e=>{--e.count.value,e.count.value===0&&Ne(e)},K=e=>globalThis.FinalizationRegistry?(je=new FinalizationRegistry(e=>{Pe(e.$$)}),K=e=>{var t=e.$$;if(t.smartPtr){var n={$$:t};je.register(e,n,e)}return e},Me=e=>je.unregister(e),K(e)):(K=e=>e,e),Fe=[],Ie=()=>{for(;Fe.length;){var e=Fe.pop();e.$$.deleteScheduled=!1,e.delete()}},Le,Re=()=>{let e=ze.prototype;Object.assign(e,{isAliasOf(e){if(!(this instanceof ze)||!(e instanceof ze))return!1;var t=this.$$.ptrType.registeredClass,n=this.$$.ptr;e.$$=e.$$;for(var r=e.$$.ptrType.registeredClass,i=e.$$.ptr;t.baseClass;)n=t.upcast(n),t=t.baseClass;for(;r.baseClass;)i=r.upcast(i),r=r.baseClass;return t===r&&n===i},clone(){if(this.$$.ptr||Ae(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e=K(Object.create(Object.getPrototypeOf(this),{$$:{value:ke(this.$$)}}));return e.$$.count.value+=1,e.$$.deleteScheduled=!1,e},delete(){this.$$.ptr||Ae(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&H(`Object already scheduled for deletion`),Me(this),Pe(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||Ae(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&H(`Object already scheduled for deletion`),Fe.push(this),Fe.length===1&&Le&&Le(Ie),this.$$.deleteScheduled=!0,this}});let t=Symbol.dispose;t&&(e[t]=e.delete)};function ze(){}var Be=(e,t)=>Object.defineProperty(t,"name",{value:e}),Ve={},He=(e,t,n)=>{if(e[t].overloadTable===void 0){var r=e[t];e[t]=function(...r){return e[t].overloadTable.hasOwnProperty(r.length)||H(`Function '${n}' called with an invalid number of arguments (${r.length}) - expects one of (${e[t].overloadTable})!`),e[t].overloadTable[r.length].apply(this,r)},e[t].overloadTable=[],e[t].overloadTable[r.argCount]=r}},Ue=(e,n,r)=>{t.hasOwnProperty(e)?((r===void 0||t[e].overloadTable!==void 0&&t[e].overloadTable[r]!==void 0)&&H(`Cannot register public name '${e}' twice`),He(t,e,e),t[e].overloadTable.hasOwnProperty(r)&&H(`Cannot register multiple overloads of a function with the same number of arguments (${r})!`),t[e].overloadTable[r]=n):(t[e]=n,t[e].argCount=r)},We=48,Ge=57,Ke=e=>{e=e.replace(/[^a-zA-Z0-9_]/g,`$`);var t=e.charCodeAt(0);return t>=We&&t<=Ge?`_${e}`:e};function qe(e,t,n,r,i,a,o,s){this.name=e,this.constructor=t,this.instancePrototype=n,this.rawDestructor=r,this.baseClass=i,this.getActualType=a,this.upcast=o,this.downcast=s,this.pureVirtualFunctions=[]}var Je=(e,t,n)=>{for(;t!==n;)t.upcast||H(`Expected null or instance of ${n.name}, got an instance of ${t.name}`),e=t.upcast(e),t=t.baseClass;return e},Ye=e=>{if(e===null)return`null`;var t=typeof e;return t===`object`||t===`array`||t===`function`?e.toString():``+e};function Xe(e,t){if(t===null)return this.isReference&&H(`null is not a valid ${this.name}`),0;t.$$||H(`Cannot pass "${Ye(t)}" as a ${this.name}`),t.$$.ptr||H(`Cannot pass deleted object as a pointer of type ${this.name}`);var n=t.$$.ptrType.registeredClass;return Je(t.$$.ptr,n,this.registeredClass)}function Ze(e,t){var n;if(t===null)return this.isReference&&H(`null is not a valid ${this.name}`),this.isSmartPointer?(n=this.rawConstructor(),e!==null&&e.push(this.rawDestructor,n),n):0;(!t||!t.$$)&&H(`Cannot pass "${Ye(t)}" as a ${this.name}`),t.$$.ptr||H(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&t.$$.ptrType.isConst&&H(`Cannot convert argument of type ${t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name} to parameter type ${this.name}`);var r=t.$$.ptrType.registeredClass;if(n=Je(t.$$.ptr,r,this.registeredClass),this.isSmartPointer)switch(t.$$.smartPtr===void 0&&H(`Passing raw pointer to smart pointer is illegal`),this.sharingPolicy){case 0:t.$$.smartPtrType===this?n=t.$$.smartPtr:H(`Cannot convert argument of type ${t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:n=t.$$.smartPtr;break;case 2:if(t.$$.smartPtrType===this)n=t.$$.smartPtr;else{var i=t.clone();n=this.rawShare(n,Z.toHandle(()=>i.delete())),e!==null&&e.push(this.rawDestructor,n)}break;default:H(`Unsupported sharing policy`)}return n}function Qe(e,t){if(t===null)return this.isReference&&H(`null is not a valid ${this.name}`),0;t.$$||H(`Cannot pass "${Ye(t)}" as a ${this.name}`),t.$$.ptr||H(`Cannot pass deleted object as a pointer of type ${this.name}`),t.$$.ptrType.isConst&&H(`Cannot convert argument of type ${t.$$.ptrType.name} to parameter type ${this.name}`);var n=t.$$.ptrType.registeredClass;return Je(t.$$.ptr,n,this.registeredClass)}function $e(e){return this.fromWireType((m(),k)[e>>2])}var et=(e,t,n)=>{if(t===n)return e;if(n.baseClass===void 0)return null;var r=et(e,t,n.baseClass);return r===null?null:n.downcast(r)},tt={},nt=(e,t)=>{for(t===void 0&&H(`ptr should not be undefined`);e.baseClass;)t=e.upcast(t),e=e.baseClass;return t},rt=(e,t)=>(t=nt(e,t),tt[t]);class it extends Error{constructor(e){super(e),this.name=`InternalError`}}var at=e=>{throw new it(e)},ot=(e,t)=>((!t.ptrType||!t.ptr)&&at(`makeClassHandle requires ptr and ptrType`),!!t.smartPtrType!=!!t.smartPtr&&at(`Both smartPtrType and smartPtr must be specified`),t.count={value:1},K(Object.create(e,{$$:{value:t,writable:!0}})));function st(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var n=rt(this.registeredClass,t);if(n!==void 0){if(n.$$.count.value===0)return n.$$.ptr=t,n.$$.smartPtr=e,n.clone();var r=n.clone();return this.destructor(e),r}function i(){return this.isSmartPointer?ot(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):ot(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var a=Ve[this.registeredClass.getActualType(t)];if(!a)return i.call(this);var o=this.isConst?a.constPointerType:a.pointerType,s=et(t,this.registeredClass,o.registeredClass);return s===null?i.call(this):this.isSmartPointer?ot(o.registeredClass.instancePrototype,{ptrType:o,ptr:s,smartPtrType:this,smartPtr:e}):ot(o.registeredClass.instancePrototype,{ptrType:o,ptr:s})}var ct=()=>{Object.assign(lt.prototype,{getPointee(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e},destructor(e){this.rawDestructor?.(e)},readValueFromPointer:$e,fromWireType:st})};function lt(e,t,n,r,i,a,o,s,c,l,u){this.name=e,this.registeredClass=t,this.isReference=n,this.isConst=r,this.isSmartPointer=i,this.pointeeType=a,this.sharingPolicy=o,this.rawGetPointee=s,this.rawConstructor=c,this.rawShare=l,this.rawDestructor=u,!i&&t.baseClass===void 0?r?(this.toWireType=Xe,this.destructorFunction=null):(this.toWireType=Qe,this.destructorFunction=null):this.toWireType=Ze}var ut=(e,n,r)=>{t.hasOwnProperty(e)||at(`Replacing nonexistent public symbol`),t[e].overloadTable!==void 0&&r!==void 0?t[e].overloadTable[r]=n:(t[e]=n,t[e].argCount=r)},q=(e,t,n=!1)=>{e=R(e);function r(){return j(t)}var i=r();return typeof i!=`function`&&H(`unknown function pointer with signature ${e}: ${t}`),i};class dt extends Error{}var ft=e=>{var t=nr(e),n=R(t);return $(t),n},J=(e,t)=>{var n=[],r={};function i(e){if(!r[e]&&!B[e]){if(Ce[e]){Ce[e].forEach(i);return}n.push(e),r[e]=!0}}throw t.forEach(i),new dt(`${e}: `+n.map(ft).join([`, `]))},Y=(e,t,n)=>{e.forEach(e=>Ce[e]=t);function r(t){var r=n(t);r.length!==e.length&&at(`Mismatched type converter count`);for(var i=0;i<e.length;++i)U(e[i],r[i])}var i=Array(t.length),a=[],o=0;for(let[e,n]of t.entries())B.hasOwnProperty(n)?i[e]=B[n]:(a.push(n),z.hasOwnProperty(n)||(z[n]=[]),z[n].push(()=>{i[e]=B[n],++o,o===a.length&&r(i)}));a.length===0&&r(i)},pt=(e,t,n,r,i,a,o,s,c,l,u,d,f)=>{u=R(u),a=q(i,a),s&&=q(o,s),l&&=q(c,l),f=q(d,f);var p=Ke(u);Ue(p,function(){J(`Cannot construct ${u} due to unbound types`,[r])}),Y([e,t,n],r?[r]:[],t=>{t=t[0];var n,i;r?(n=t.registeredClass,i=n.instancePrototype):i=ze.prototype;var o=Be(u,function(...e){if(Object.getPrototypeOf(this)!==c)throw new V(`Use 'new' to construct ${u}`);if(d.constructor_body===void 0)throw new V(`${u} has no accessible constructor`);var t=d.constructor_body[e.length];if(t===void 0)throw new V(`Tried to invoke ctor of ${u} with invalid number of parameters (${e.length}) - expected (${Object.keys(d.constructor_body).toString()}) parameters instead!`);return t.apply(this,e)}),c=Object.create(i,{constructor:{value:o}});o.prototype=c;var d=new qe(u,o,c,f,n,a,s,l);d.baseClass&&(d.baseClass.__derivedClasses??=[],d.baseClass.__derivedClasses.push(d));var m=new lt(u,d,!0,!1,!1),h=new lt(u+`*`,d,!1,!1,!1),g=new lt(u+` const*`,d,!1,!0,!1);return Ve[e]={pointerType:h,constPointerType:g},ut(p,o),[m,h,g]})},mt=(e,t)=>{for(var n=[],r=0;r<e;r++)n.push((m(),k)[t+r*4>>2]);return n},ht=e=>{for(;e.length;){var t=e.pop();e.pop()(t)}};function gt(e){for(var t=1;t<e.length;++t)if(e[t]!==null&&e[t].destructorFunction===void 0)return!0;return!1}var _t={ftfnnn:function(e,t,n,r,i,a,o,s,c,l){return function(e,t,i){return a(n(r,s(null,e),c(null,t),l(null,i)))}},tffn:function(e,t,n,r,i,a,o){return function(){n(r,o(null,this))}},tffnn:function(e,t,n,r,i,a,o,s){return function(e){n(r,o(null,this),s(null,e))}},tffnnnnn:function(e,t,n,r,i,a,o,s,c,l,u){return function(e,t,i,a){n(r,o(null,this),s(null,e),c(null,t),l(null,i),u(null,a))}},tffnnn:function(e,t,n,r,i,a,o,s,c){return function(e,t){n(r,o(null,this),s(null,e),c(null,t))}},ttfnn:function(e,t,n,r,i,a,o,s){return function(e){return a(n(r,o(null,this),s(null,e)))}},tffnt:function(e,t,n,r,i,a,o,s,c){return function(e){var t=o(null,this),i=s(null,e);n(r,t,i),c(i)}},tffntnn:function(e,t,n,r,i,a,o,s,c,l,u){return function(e,t,i){var a=o(null,this),d=s(null,e);n(r,a,d,c(null,t),l(null,i)),u(d)}},tffnnnn:function(e,t,n,r,i,a,o,s,c,l){return function(e,t,i){n(r,o(null,this),s(null,e),c(null,t),l(null,i))}},ttfn:function(e,t,n,r,i,a,o){return function(){return a(n(r,o(null,this)))}},ttfnnn:function(e,t,n,r,i,a,o,s,c){return function(e,t){return a(n(r,o(null,this),s(null,e),c(null,t)))}}};function vt(e,t,n,r){let i=[t?`t`:`f`,n?`t`:`f`,r?`t`:`f`];for(let n=t?1:2;n<e.length;++n){let t=e[n],r=``;r=t.destructorFunction===void 0?`u`:t.destructorFunction===null?`n`:`t`,i.push(r)}return i.join(``)}function yt(e,t,n,r,i,a){var o=t.length;o<2&&H(`argTypes array size mismatch! Must at least get return value and receiver (this) types!`);for(var s=t[1]!==null&&n!==null,c=gt(t),l=!t[0].isVoid,u=t[0],d=t[1],f=[e,H,r,i,ht,u.fromWireType.bind(u),d?.toWireType.bind(d)],p=2;p<o;++p){var m=t[p];f.push(m.toWireType.bind(m))}if(!c)for(var p=s?1:2;p<t.length;++p)t[p].destructorFunction!==null&&f.push(t[p].destructorFunction);return Be(e,_t[vt(t,s,l,a)](...f))}var bt=(e,t,n,r,i,a)=>{var o=mt(t,n);i=q(r,i),Y([],[e],e=>{e=e[0];var n=`constructor ${e.name}`;if(e.registeredClass.constructor_body===void 0&&(e.registeredClass.constructor_body=[]),e.registeredClass.constructor_body[t-1]!==void 0)throw new V(`Cannot register multiple constructors with identical number of parameters (${t-1}) for class '${e.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return e.registeredClass.constructor_body[t-1]=()=>{J(`Cannot construct ${e.name} due to unbound types`,o)},Y([],o,r=>(r.splice(1,0,null),e.registeredClass.constructor_body[t-1]=yt(n,r,null,i,a),[])),[]})},xt=e=>{e=e.trim();let t=e.indexOf(`(`);return t===-1?e:e.slice(0,t)},St=(e,t,n,r,i,a,o,s,c,l)=>{var u=mt(n,r);t=R(t),t=xt(t),a=q(i,a,c),Y([],[e],e=>{e=e[0];var r=`${e.name}.${t}`;t.startsWith(`@@`)&&(t=Symbol[t.substring(2)]),s&&e.registeredClass.pureVirtualFunctions.push(t);function i(){J(`Cannot call ${r} due to unbound types`,u)}var l=e.registeredClass.instancePrototype,d=l[t];return d===void 0||d.overloadTable===void 0&&d.className!==e.name&&d.argCount===n-2?(i.argCount=n-2,i.className=e.name,l[t]=i):(He(l,t,r),l[t].overloadTable[n-2]=i),Y([],u,i=>{var s=yt(r,i,e,a,o,c);return l[t].overloadTable===void 0?(s.argCount=n-2,l[t]=s):l[t].overloadTable[n-2]=s,[]}),[]})},Ct=(e,t,n)=>(e instanceof Object||H(`${n} with invalid "this": ${e}`),e instanceof t.registeredClass.constructor||H(`${n} incompatible with "this" of type ${e.constructor.name}`),e.$$.ptr||H(`cannot call emscripten binding method ${n} on deleted object`),Je(e.$$.ptr,e.$$.ptrType.registeredClass,t.registeredClass)),wt=(e,t,n,r,i,a,o,s,c,l)=>{t=R(t),i=q(r,i),Y([],[e],e=>{e=e[0];var r=`${e.name}.${t}`,u={get(){J(`Cannot access ${r} due to unbound types`,[n,o])},enumerable:!0,configurable:!0};return u.set=c?()=>J(`Cannot access ${r} due to unbound types`,[n,o]):e=>H(r+` is a read-only property`),Object.defineProperty(e.registeredClass.instancePrototype,t,u),Y([],c?[n,o]:[n],n=>{var o=n[0],u={get(){var t=Ct(this,e,r+` getter`);return o.fromWireType(i(a,t))},enumerable:!0};if(c){c=q(s,c);var d=n[1];u.set=function(t){var n=Ct(this,e,r+` setter`),i=[];c(l,n,d.toWireType(i,t)),ht(i)}}return Object.defineProperty(e.registeredClass.instancePrototype,t,u),[]}),[]})},Tt=[],X=[0,1,,1,null,1,!0,1,!1,1],Et=e=>{e>9&&--X[e+1]===0&&(X[e],X[e]=void 0,Tt.push(e))},Z={toValue:e=>(e||H(`Cannot use deleted val. handle = ${e}`),X[e]),toHandle:e=>{switch(e){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{let t=Tt.pop()||X.length;return X[t]=e,X[t+1]=1,t}}}},Dt={name:`emscripten::val`,fromWireType:e=>{var t=Z.toValue(e);return Et(e),t},toWireType:(e,t)=>Z.toHandle(t),readValueFromPointer:$e,destructorFunction:null},Ot=e=>U(e,Dt),kt,At=(e,t)=>{switch(t){case 4:return function(e){return this.fromWireType((m(),kt)[e>>2])};case 8:return function(e){return this.fromWireType((m(),w)[e>>3])};default:throw TypeError(`invalid float width (${t}): ${e}`)}},jt=(e,t,n)=>{t=R(t),U(e,{name:t,fromWireType:e=>e,toWireType:(e,t)=>t,readValueFromPointer:At(t,n),destructorFunction:null})},Mt=(e,t,n,r,i)=>{t=R(t);let a=r===0,o=e=>e;if(a){var s=32-8*n;o=e=>e<<s>>>s,i=o(i)}U(e,{name:t,fromWireType:o,toWireType:(e,t)=>t,readValueFromPointer:Ee(t,n,r!==0),destructorFunction:null})},Nt=(e,t,n)=>{var r=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][t];function i(e){var t=(m(),k)[e>>2],n=(m(),k)[e+4>>2];return new r((m(),v).buffer,n,t)}n=R(n),U(e,{name:n,fromWireType:i,readValueFromPointer:i},{ignoreDuplicateRegistrations:!0})},Pt=(e,t)=>{t=R(t);var n=!0;U(e,{name:t,fromWireType(e){var t=(m(),k)[e>>2],r=e+4,i;if(n)i=I(r,t,!0);else{i=``;for(var a=0;a<t;++a)i+=String.fromCharCode((m(),N)[r+a])}return $(e),i},toWireType(e,t){t instanceof ArrayBuffer&&(t=new Uint8Array(t));var r,i=typeof t==`string`;i||ArrayBuffer.isView(t)&&t.BYTES_PER_ELEMENT==1||H(`Cannot pass non-string to std::string`),r=n&&i?M(t):t.length;var a=tr(4+r+1),o=a+4;if((m(),k)[a>>2]=r,i){if(n)P(t,o,r+1);else for(var s=0;s<r;++s){var c=t.charCodeAt(s);c>255&&($(a),H(`String has UTF-16 code units that do not fit in 8 bits`)),(m(),N)[o+s]=c}}else(m(),N).set(t,o);return e!==null&&e.push($,a),a},readValueFromPointer:$e,destructorFunction(e){$(e)}})},Ft=new TextDecoder(`utf-16le`),It=(e,t,n)=>{var r=e>>1,i=me((m(),G),r,t/2,n);return Ft.decode((m(),G).slice(r,i))},Lt=(e,t,n=2147483647)=>{if(n<2)return 0;n-=2;for(var r=t,i=n<e.length*2?n/2:e.length,a=0;a<i;++a){var o=e.charCodeAt(a);(m(),W)[t>>1]=o,t+=2}return(m(),W)[t>>1]=0,t-r},Rt=e=>e.length*2,zt=(e,t,n)=>{for(var r=``,i=e>>2,a=0;!(a>=t/4);a++){var o=(m(),k)[i+a];if(!o&&!n)break;r+=String.fromCodePoint(o)}return r},Bt=(e,t,n=2147483647)=>{if(n<4)return 0;for(var r=t,i=r+n-4,a=0;a<e.length;++a){var o=e.codePointAt(a);if(o>65535&&a++,(m(),D)[t>>2]=o,t+=4,t+4>i)break}return(m(),D)[t>>2]=0,t-r},Vt=e=>{for(var t=0,n=0;n<e.length;++n)e.codePointAt(n)>65535&&n++,t+=4;return t},Ht=(e,t,n)=>{n=R(n);var r,i,a;t===2?(r=It,i=Lt,a=Rt):(r=zt,i=Bt,a=Vt),U(e,{name:n,fromWireType:e=>{var n=(m(),k)[e>>2],i=r(e+4,n*t,!0);return $(e),i},toWireType:(e,r)=>{typeof r!=`string`&&H(`Cannot pass non-string to C++ string type ${n}`);var o=a(r),s=tr(4+o+t);return(m(),k)[s>>2]=o/t,i(r,s+4,o+t),e!==null&&e.push($,s),s},readValueFromPointer:$e,destructorFunction(e){$(e)}})},Ut=(e,t)=>{t=R(t),U(e,{isVoid:!0,name:t,fromWireType:()=>void 0,toWireType:(e,t)=>void 0})},Wt=e=>{ir(e,!r,1,!n,262144,!1),O.threadInitTLS()},Gt=e=>{e()},Kt=e=>{if(!ce){Atomics.waitAsync((m(),D),e>>2,e).value.then(qt);var t=e+112;Atomics.store((m(),D),t>>2,1)}},qt=()=>{var e=er();e&&Gt(()=>{Kt(e),fr()})},Jt=(e,t)=>{if(e==t)setTimeout(qt);else if(s)postMessage({targetThread:e,cmd:4});else{var n=O.pthreads[e];if(!n)return;n.postMessage({cmd:4})}},Yt=[],Xt=(e,t,n,r,i,a,o)=>{Yt.length=0;for(var s=i>>3,c=i+r>>3;s<c;){var l=(m(),T)[s++]?(m(),T)[s++]:(m(),w)[s++];Yt.push(l)}var u=t?$n[t]:Qn[e];O.currentProxiedOperationCallerThread=n;var d=u(...Yt);if(O.currentProxiedOperationCallerThread=0,a){d.then(e=>sr(a,o,e));return}return d},Zt=()=>{},Qt=e=>{s?postMessage({cmd:6,thread:e}):b(e)},$t=e=>{},en=()=>{throw new p},tn=[],nn=e=>{var t=tn.length;return tn.push(e),t},rn=(e,t)=>{var n=B[e];return n===void 0&&H(`${t} has unknown type ${ft(e)}`),n},an=(e,t)=>{for(var n=Array(e),r=0;r<e;++r)n[r]=rn((m(),k)[t+r*4>>2],`parameter ${r}`);return n},on=(e,t,n)=>{var r=[],i=e(r,n);return r.length&&((m(),k)[t>>2]=Z.toHandle(r)),i},sn={},cn=e=>{var t=sn[e];return t===void 0?R(e):t},ln=(e,t,n)=>{var[r,...i]=an(e,t),a=r.toWireType.bind(r),o=i.map(e=>e.readValueFromPointer.bind(e));e--;var s=Array(e);return nn(Be(`methodCaller<(${i.map(e=>e.name)}) => ${r.name}>`,(t,r,i,c)=>{for(var l=0,u=0;u<e;++u)s[u]=o[u](c+l),l+=8;var d;switch(n){case 0:d=Z.toValue(t).apply(null,s);break;case 2:d=Reflect.construct(Z.toValue(t),s);break;case 3:d=s[0];break;case 1:d=Z.toValue(t)[cn(r)](...s)}return on(a,i,d)}))},un=(e,t)=>(e=Z.toValue(e),t=Z.toValue(t),Z.toHandle(e[t])),dn=e=>{e>9&&(X[e+1]+=1)},fn=(e,t,n,r,i)=>tn[e](t,n,r,i),pn=()=>Z.toHandle([]),mn=e=>Z.toHandle(cn(e)),hn=()=>Z.toHandle({}),gn=e=>{ht(Z.toValue(e)),Et(e)},_n=(e,t,n)=>{e=Z.toValue(e),t=Z.toValue(t),n=Z.toValue(n),e[t]=n},Q={},vn=()=>performance.timeOrigin+performance.now();function yn(e,t){return s?E(6,0,1,e,t):(Q[e]&&(clearTimeout(Q[e].id),delete Q[e]),t&&(Q[e]={id:setTimeout(()=>{delete Q[e],Gt(()=>dr(e,vn()))},t),timeout_ms:t}),0)}var bn=()=>Date.now(),xn=9007199254740992,Sn=-9007199254740992,Cn=e=>e<Sn||e>xn?NaN:Number(e),wn=[],Tn=(e,t)=>{wn.length=0;for(var n;n=(m(),N)[e++];){var r=n!=105;r&=n!=112,t+=r&&t%8?4:0,wn.push(n==112?(m(),k)[t>>2]:n==106?(m(),T)[t>>3]:n==105?(m(),D)[t>>2]:(m(),w)[t>>3]),t+=r?8:4}return wn},En=(e,t,n)=>{var r=Tn(t,n);return $n[e](...r)},Dn=(e,t,n)=>En(e,t,n),On=()=>{},kn=e=>a(I(e)),An=()=>{throw`unwind`},jn=()=>2147483648,Mn=()=>jn(),Nn=()=>navigator.hardwareConcurrency,Pn=(e,t)=>Math.ceil(e/t)*t,Fn=e=>{var t=(e-F.buffer.byteLength+65535)/65536|0;try{return F.grow(t),_(),1}catch{}},In=e=>{var t=(m(),N).length;if(e>>>=0,e<=t)return!1;var n=jn();if(e>n)return!1;for(var r=1;r<=4;r*=2){var i=t*(1+.2/r);if(i=Math.min(i,e+100663296),Fn(Math.min(n,Pn(Math.max(e,i),65536))))return!0}return!1},Ln={},Rn=()=>`./this.program`,zn=()=>{if(!zn.strings){var e={USER:`web_user`,LOGNAME:`web_user`,PATH:`/`,PWD:`/`,HOME:`/home/web_user`,LANG:(globalThis.navigator?.language??`C`).replace(`-`,`_`)+`.UTF-8`,_:Rn()};for(var t in Ln)Ln[t]===void 0?delete e[t]:e[t]=Ln[t];var n=[];for(var t in e)n.push(`${t}=${e[t]}`);zn.strings=n}return zn.strings};function Bn(e,t){if(s)return E(7,0,1,e,t);var n=0,r=0;for(var i of zn()){var a=t+n;(m(),k)[e+r>>2]=a,n+=P(i,a,1/0)+1,r+=4}return 0}function Vn(e,t){if(s)return E(8,0,1,e,t);var n=zn();(m(),k)[e>>2]=n.length;var r=0;for(var i of n)r+=M(i)+1;return(m(),k)[t>>2]=r,0}function Hn(e){return s?E(9,0,1,e):52}function Un(e,t,n,r){return s?E(10,0,1,e,t,n,r):52}function Wn(e,t,n,r){return s?E(11,0,1,e,t,n,r):(t=Cn(t),70)}var Gn=[null,[],[]],Kn=(e,t=0,n,r)=>{var i=me(e,t,n,r);return pe.decode(e.buffer?e.buffer instanceof ArrayBuffer?e.subarray(t,i):e.slice(t,i):new Uint8Array(e.slice(t,i)))},qn=(e,t)=>{var n=Gn[e];t===0||t===10?((e===1?i:a)(Kn(n)),n.length=0):n.push(t)};function Jn(e,t,n,r){if(s)return E(12,0,1,e,t,n,r);for(var i=0,a=0;a<n;a++){var o=(m(),k)[t>>2],c=(m(),k)[t+4>>2];t+=8;for(var l=0;l<c;l++)qn(e,(m(),N)[o+l]);i+=c}return(m(),k)[r>>2]=i,0}var Yn=()=>e=>(e.set(crypto.getRandomValues(new Uint8Array(e.byteLength))),0),Xn=e=>(Xn=Yn())(e),Zn=(e,t)=>Xn((m(),N).subarray(e,e+t));O.init(),Re(),ct();var Qn=[oe,L,ve,ye,be,xe,yn,Bn,Vn,Hn,Un,Wn,Jn],$n={624229:e=>fe(Z.toValue(e))},er,$,tr,nr,rr,ir,ar,or,sr,cr,lr,ur,dr,fr,pr,mr,hr,gr,_r,vr;function yr(e){t.__ZdlPvm=e.ha,er=e.ia,t.__Znwm=e.ja,$=e.ka,tr=t._malloc=e.la,t._calloc=e.ma,nr=e.na,rr=e.oa,t._emscripten_builtin_free=e.pa,e.qa,ir=e.sa,ar=e.ta,or=e.ua,t.___libc_free=e.va,t._emscripten_builtin_malloc=e.wa,t.___libc_malloc=e.xa,sr=e.ya,cr=e.za,lr=e.Aa,ur=e.Ba,dr=e.Ca,fr=e.Da,t.__ZdaPv=e.Ea,t.__ZdaPvm=e.Fa,t.__ZdlPv=e.Ga,t.__Znam=e.Ha,t.__ZnamSt11align_val_t=e.Ia,t.__ZnwmSt11align_val_t=e.Ja,t.___libc_calloc=e.Ka,t.___libc_realloc=e.La,t._emscripten_builtin_calloc=e.Ma,t._emscripten_builtin_realloc=e.Na,t._malloc_size=e.Oa,t._malloc_usable_size=e.Pa,t._reallocf=e.Qa,pr=e.Ra,mr=e.Sa,hr=e.Ta,gr=e.Ua,_r=e.Va,vr=e.ra}var br;function xr(){br={b:he,P:_e,y:ve,O:ye,X:be,z:xe,K:Se,B:De,aa:Oe,fa:pt,ea:bt,d:St,ca:wt,_:Ot,A:jt,l:Mt,e:Nt,$:Pt,t:Ht,ba:Ut,S:Wt,L:Jt,x:Xt,G:Zt,v:Qt,R:Kt,Z:$t,E:en,h:ln,c:Et,da:un,i:dn,g:fn,p:pn,j:mn,s:hn,f:gn,k:_n,H:yn,n:Dn,w:On,m:bn,u:kn,Y:An,M:Mn,o:vn,N:Nn,I:In,T:Bn,U:Vn,q:se,r:Hn,W:Un,Q:Wn,V:Jn,D:Sr,C:Cr,a:F,F:oe,J:Zn}}function Sr(e,t,n){var r=S();try{return j(e)(t,n)}catch(e){if(C(r),!(e instanceof f))throw e;pr(1,0)}}function Cr(e,t,n,r,i){var a=S();try{return j(e)(t,n,r,i)}catch(e){if(C(a),!(e instanceof f))throw e;pr(1,0)}}function wr(e){ee=!0,O.tlsInitFunctions.push(e.qa),!s&&e.ga()}var Tr,Er;function Dr(){xr();var e={a:br};Tr=WebAssembly.instantiateStreaming(fetch(new URL(new URL(`jassub-worker.wasm`,import.meta.url).href,``+import.meta.url)),e).then(e=>{var n=(e.instance||e).exports;return Er=e.module||t.wasm,yr(n),re(ie),wr(n),O.loadWasmModuleToAllWorkers().then(o)})}return s||Dr(),await Tr,t}globalThis.name==`em-pthread`&&O();const k=[`thin`,`extralight`,`light`,`regular`,`medium`,`semibold`,`bold`,`extrabold`,`black`,`ultrablack`],le=navigator.userAgent.toLowerCase(),A=le.includes(`firefox`),j=/applewebkit\/[\d.]+ \(khtml, like gecko\)(?!.*chrome\/)/.test(le),ue=`BT601`,M=`BT709`,de=`SMPTE240M`,N=[null,ue,null,ue,ue,M,M,de,de,`FCC`,`FCC`],P=globalThis.fetch;async function fe(e){return await(await P(e)).text()}const F=!A&&self.crossOriginIsolated?Math.min(Math.max(1,navigator.hardwareConcurrency-2),8):1,pe=!!WebAssembly.Memory.prototype.toResizableBuffer,me=!A&&!j&&(pe||F>1),I=new Float32Array([1,0,0,0,1,0,0,0,1]),he={BT601:{BT709:new Float32Array([1.0863,.0965,-.01411,-.0723,.8451,-.0277,-.0141,.0584,1.0418]),BT601:I},BT709:{BT601:new Float32Array([.9137,.0784,.0079,-.1049,1.1722,-.0671,.0096,.0322,.9582]),BT709:I},FCC:{BT709:new Float32Array([1.0873,-.0736,-.0137,.0974,.8494,.0531,-.0127,-.0251,1.0378]),BT601:new Float32Array([1.001,-8e-4,-2e-4,9e-4,1.005,-.006,.0013,.0027,.996])},SMPTE240M:{BT709:new Float32Array([.9993,6e-4,1e-4,-4e-4,.9812,.0192,-.0034,-.0114,1.0148]),BT601:new Float32Array([.913,.0774,.0096,-.1051,1.1508,-.0456,.0063,.0207,.973])}},L=e=>e<0?0:e>1?255:Math.round(e*255);var ge=class{canvas=null;ctx=null;bufferCanvas=new OffscreenCanvas(1,1);bufferCtx=this.bufferCanvas.getContext(`2d`,{alpha:!0,desynchronized:!0,willReadFrequently:!1});colorMatrix=I;_scheduledResize;resizeCanvas(e,t){e&&t&&(this.canvas?.width!==e||this.canvas?.height!==t)&&(this._scheduledResize={width:e,height:t})}setCanvas(e){if(this.canvas=e,this.ctx=e.getContext(`2d`,{alpha:!0,desynchronized:!0,willReadFrequently:!1}),!this.ctx)throw Error(`Could not get 2D context`)}setColorMatrix(e,t){this.colorMatrix=(e&&t&&he[e]?.[t])??I}render(e,t){if(this.ctx&&this.canvas){if(this._scheduledResize){let{width:e,height:t}=this._scheduledResize;this._scheduledResize=void 0,this.canvas.width=e,this.canvas.height=t}else this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height);for(let n of e){if(n.w<=0||n.h<=0)continue;let e=new ImageData(n.w,n.h),r=new Uint32Array(e.data.buffer),i=this.colorMatrix,a=(n.color>>>24&255)/255,o=(n.color>>>16&255)/255,s=(n.color>>>8&255)/255,c=L(i[0]*a+i[3]*o+i[6]*s),l=L(i[1]*a+i[4]*o+i[7]*s),u=L(i[2]*a+i[5]*o+i[8]*s)<<16|l<<8|c,d=(255-(n.color&255))/255,f=n.stride,p=n.h,m=n.w;for(let e=p+1,i=n.bitmap,a=0;--e;i+=f)for(let e=0;e<m;++e,++a){let n=t[i+e];n!==0&&(r[a]=Math.round(d*n)<<24|u)}this.bufferCanvas.width=m,this.bufferCanvas.height=p,this.bufferCtx.putImageData(e,0,0),this.ctx.drawImage(this.bufferCanvas,n.dst_x,n.dst_y)}}}destroy(){this.ctx=null,this.canvas=null,this.bufferCtx=null,this.bufferCanvas=null}},_e=class{canvas=null;gl=null;program=null;instancedArraysExt=null;u_resolution=null;u_tex=null;u_colorMatrix=null;u_texDimensions=null;a_quadPos=-1;a_destRect=-1;a_color=-1;a_texLayer=-1;quadPosBuffer=null;instanceDestRectBuffer=null;instanceColorBuffer=null;instanceTexLayerBuffer=null;instanceDestRectData;instanceColorData;instanceTexLayerData;textureCache=/* @__PURE__ */ new Map;textureWidth=0;textureHeight=0;colorMatrix=I;constructor(){this.instanceDestRectData=/* @__PURE__ */ new Float32Array(1024),this.instanceColorData=/* @__PURE__ */ new Float32Array(1024),this.instanceTexLayerData=/* @__PURE__ */ new Float32Array(256)}_scheduledResize;resizeCanvas(e,t){e&&t&&(this.canvas?.width!==e||this.canvas?.height!==t)&&(this._scheduledResize={width:e,height:t})}setCanvas(e){this._initGL(e),e.addEventListener(`webglcontextlost`,e=>{e.preventDefault(),this.gl=null}),e.addEventListener(`webglcontextrestored`,()=>this._initGL(e))}_initGL(e){if(this.canvas=e,this.gl=e.getContext(`webgl`,{alpha:!0,premultipliedAlpha:!0,antialias:!1,depth:!1,preserveDrawingBuffer:!1,stencil:!1,desynchronized:!0,powerPreference:`high-performance`}),!this.gl)throw Error(`Could not get WebGL context`);if(this.instancedArraysExt=this.gl.getExtension(`ANGLE_instanced_arrays`),!this.instancedArraysExt)throw Error(`ANGLE_instanced_arrays extension not supported`);let t=this.createShader(this.gl.VERTEX_SHADER,`
4
- precision mediump float;
3
+ new URL(`jassub-worker.js`,import.meta.url).href,``+import.meta.url),{type:`module`,name:`em-pthread`});return A.unusedWorkers.push(e),e},getNewWorker(){if(A.unusedWorkers.length==0){var e=A.allocateUnusedWorker();A.loadWasmModuleToWorker(e)}return A.unusedWorkers.pop()}},j;function oe(e){var t=(p(),j)[e+48>>2],n=t-(p(),j)[e+52>>2];mr(t,n),C(t)}var se=[],M=e=>{var t=se[e];return t||(se[e]=t=vr.get(e)),t},ce=(e,t)=>{var n=M(e)(t);function r(e){ur(e)}r(n)},N=e=>{for(var t=0,n=0;n<e.length;++n){var r=e.charCodeAt(n);r<=127?t++:r<=2047?t+=2:r>=55296&&r<=57343?(t+=4,++n):t+=3}return t},le=(e,t,n,r)=>{if(!(r>0))return 0;for(var i=n,a=n+r-1,o=0;o<e.length;++o){var s=e.codePointAt(o);if(s<=127){if(n>=a)break;t[n++]=s}else if(s<=2047){if(n+1>=a)break;t[n++]=192|s>>6,t[n++]=128|s&63}else if(s<=65535){if(n+2>=a)break;t[n++]=224|s>>12,t[n++]=128|s>>6&63,t[n++]=128|s&63}else{if(n+3>=a)break;t[n++]=240|s>>18,t[n++]=128|s>>12&63,t[n++]=128|s>>6&63,t[n++]=128|s&63,o++}}return t[n]=0,n-i},P,F=(e,t,n)=>le(e,(p(),P),t,n),ue=e=>{var t=N(e)+1,n=tr(t);return n&&F(e,n,t),n},I,L=new TextDecoder,de=(e,t,n,r)=>{var i=t+n;if(r)return i;for(;e[t]&&!(t>=i);)++t;return t},R=(e,t,n)=>{if(!e)return``;var r=de((p(),P),e,t,n);return L.decode((p(),P).slice(e,r))},z=(e,t,n,r)=>u(`Assertion failed: ${R(e)}, at: `+[t?R(t):`unknown filename`,n,r?R(r):`unknown function`]);function fe(e,t,n,r){return s?E(1,0,1,e,t,n,r):me(e,t,n,r)}var pe=()=>!!globalThis.SharedArrayBuffer,me=(e,t,n,r)=>{if(!pe())return 6;var i=[];if(s&&!i.length)return fe(e,t,n,r);var a={startRoutine:n,pthread_ptr:e,arg:r,transferList:i};return s?(a.cmd=5,postMessage(a,i),0):re(a)};function B(e,t,n){return s?E(2,0,1,e,t,n):0}function he(e,t,n){if(s)return E(3,0,1,e,t,n)}function ge(e,t,n){return s?E(4,0,1,e,t,n):0}function _e(e,t,n,r){if(s)return E(5,0,1,e,t,n,r)}var ve=()=>u(``),V=e=>{for(var t=``;;){var n=(p(),P)[e++];if(!n)return t;t+=String.fromCharCode(n)}},H={},U={},ye={};class W extends Error{constructor(e){super(e),this.name=`BindingError`}}var G=e=>{throw new W(e)};function be(e,t,n={}){var r=t.name;if(e||G(`type "${r}" must have a positive integer typeid pointer`),U.hasOwnProperty(e)){if(n.ignoreDuplicateRegistrations)return;G(`Cannot register type '${r}' twice`)}if(U[e]=t,delete ye[e],H.hasOwnProperty(e)){var i=H[e];delete H[e],i.forEach(e=>e())}}function K(e,t,n={}){return be(e,t,n)}var xe,Se,Ce,we=(e,t,n)=>{switch(t){case 1:return n?e=>(p(),v)[e]:e=>(p(),P)[e];case 2:return n?e=>(p(),xe)[e>>1]:e=>(p(),Se)[e>>1];case 4:return n?e=>(p(),k)[e>>2]:e=>(p(),j)[e>>2];case 8:return n?e=>(p(),T)[e>>3]:e=>(p(),Ce)[e>>3];default:throw TypeError(`invalid integer width (${t}): ${e}`)}},Te=(e,t,n,r,i)=>{t=V(t);let a=r===0n,o=e=>e;if(a){let e=n*8;o=t=>BigInt.asUintN(e,t),i=o(i)}K(e,{name:t,fromWireType:o,toWireType:(e,t)=>(typeof t==`number`&&(t=BigInt(t)),t),readValueFromPointer:we(t,n,!a),destructorFunction:null})},Ee=(e,t,n,r)=>{t=V(t),K(e,{name:t,fromWireType:function(e){return!!e},toWireType:function(e,t){return t?n:r},readValueFromPointer:function(e){return this.fromWireType((p(),P)[e])},destructorFunction:null})},De=e=>({count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType}),Oe=e=>{function t(e){return e.$$.ptrType.registeredClass.name}G(t(e)+` instance already deleted`)},ke=!1,Ae=e=>{},je=e=>{e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)},Me=e=>{--e.count.value,e.count.value===0&&je(e)},q=e=>globalThis.FinalizationRegistry?(ke=new FinalizationRegistry(e=>{Me(e.$$)}),q=e=>{var t=e.$$;if(t.smartPtr){var n={$$:t};ke.register(e,n,e)}return e},Ae=e=>ke.unregister(e),q(e)):(q=e=>e,e),Ne=[],Pe=()=>{for(;Ne.length;){var e=Ne.pop();e.$$.deleteScheduled=!1,e.delete()}},Fe,Ie=()=>{let e=Le.prototype;Object.assign(e,{isAliasOf(e){if(!(this instanceof Le)||!(e instanceof Le))return!1;var t=this.$$.ptrType.registeredClass,n=this.$$.ptr;e.$$=e.$$;for(var r=e.$$.ptrType.registeredClass,i=e.$$.ptr;t.baseClass;)n=t.upcast(n),t=t.baseClass;for(;r.baseClass;)i=r.upcast(i),r=r.baseClass;return t===r&&n===i},clone(){if(this.$$.ptr||Oe(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e=q(Object.create(Object.getPrototypeOf(this),{$$:{value:De(this.$$)}}));return e.$$.count.value+=1,e.$$.deleteScheduled=!1,e},delete(){this.$$.ptr||Oe(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&G(`Object already scheduled for deletion`),Ae(this),Me(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||Oe(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&G(`Object already scheduled for deletion`),Ne.push(this),Ne.length===1&&Fe&&Fe(Pe),this.$$.deleteScheduled=!0,this}});let t=Symbol.dispose;t&&(e[t]=e.delete)};function Le(){}var Re=(e,t)=>Object.defineProperty(t,"name",{value:e}),ze={},Be=(e,t,n)=>{if(e[t].overloadTable===void 0){var r=e[t];e[t]=function(...r){return e[t].overloadTable.hasOwnProperty(r.length)||G(`Function '${n}' called with an invalid number of arguments (${r.length}) - expects one of (${e[t].overloadTable})!`),e[t].overloadTable[r.length].apply(this,r)},e[t].overloadTable=[],e[t].overloadTable[r.argCount]=r}},Ve=(e,n,r)=>{t.hasOwnProperty(e)?((r===void 0||t[e].overloadTable!==void 0&&t[e].overloadTable[r]!==void 0)&&G(`Cannot register public name '${e}' twice`),Be(t,e,e),t[e].overloadTable.hasOwnProperty(r)&&G(`Cannot register multiple overloads of a function with the same number of arguments (${r})!`),t[e].overloadTable[r]=n):(t[e]=n,t[e].argCount=r)},He=48,Ue=57,We=e=>{e=e.replace(/[^a-zA-Z0-9_]/g,`$`);var t=e.charCodeAt(0);return t>=He&&t<=Ue?`_${e}`:e};function Ge(e,t,n,r,i,a,o,s){this.name=e,this.constructor=t,this.instancePrototype=n,this.rawDestructor=r,this.baseClass=i,this.getActualType=a,this.upcast=o,this.downcast=s,this.pureVirtualFunctions=[]}var Ke=(e,t,n)=>{for(;t!==n;)t.upcast||G(`Expected null or instance of ${n.name}, got an instance of ${t.name}`),e=t.upcast(e),t=t.baseClass;return e},qe=e=>{if(e===null)return`null`;var t=typeof e;return t===`object`||t===`array`||t===`function`?e.toString():``+e};function Je(e,t){if(t===null)return this.isReference&&G(`null is not a valid ${this.name}`),0;t.$$||G(`Cannot pass "${qe(t)}" as a ${this.name}`),t.$$.ptr||G(`Cannot pass deleted object as a pointer of type ${this.name}`);var n=t.$$.ptrType.registeredClass;return Ke(t.$$.ptr,n,this.registeredClass)}function Ye(e,t){var n;if(t===null)return this.isReference&&G(`null is not a valid ${this.name}`),this.isSmartPointer?(n=this.rawConstructor(),e!==null&&e.push(this.rawDestructor,n),n):0;(!t||!t.$$)&&G(`Cannot pass "${qe(t)}" as a ${this.name}`),t.$$.ptr||G(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&t.$$.ptrType.isConst&&G(`Cannot convert argument of type ${t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name} to parameter type ${this.name}`);var r=t.$$.ptrType.registeredClass;if(n=Ke(t.$$.ptr,r,this.registeredClass),this.isSmartPointer)switch(t.$$.smartPtr===void 0&&G(`Passing raw pointer to smart pointer is illegal`),this.sharingPolicy){case 0:t.$$.smartPtrType===this?n=t.$$.smartPtr:G(`Cannot convert argument of type ${t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:n=t.$$.smartPtr;break;case 2:if(t.$$.smartPtrType===this)n=t.$$.smartPtr;else{var i=t.clone();n=this.rawShare(n,Q.toHandle(()=>i.delete())),e!==null&&e.push(this.rawDestructor,n)}break;default:G(`Unsupported sharing policy`)}return n}function Xe(e,t){if(t===null)return this.isReference&&G(`null is not a valid ${this.name}`),0;t.$$||G(`Cannot pass "${qe(t)}" as a ${this.name}`),t.$$.ptr||G(`Cannot pass deleted object as a pointer of type ${this.name}`),t.$$.ptrType.isConst&&G(`Cannot convert argument of type ${t.$$.ptrType.name} to parameter type ${this.name}`);var n=t.$$.ptrType.registeredClass;return Ke(t.$$.ptr,n,this.registeredClass)}function Ze(e){return this.fromWireType((p(),j)[e>>2])}var Qe=(e,t,n)=>{if(t===n)return e;if(n.baseClass===void 0)return null;var r=Qe(e,t,n.baseClass);return r===null?null:n.downcast(r)},$e={},et=(e,t)=>{for(t===void 0&&G(`ptr should not be undefined`);e.baseClass;)t=e.upcast(t),e=e.baseClass;return t},tt=(e,t)=>(t=et(e,t),$e[t]);class nt extends Error{constructor(e){super(e),this.name=`InternalError`}}var rt=e=>{throw new nt(e)},it=(e,t)=>((!t.ptrType||!t.ptr)&&rt(`makeClassHandle requires ptr and ptrType`),!!t.smartPtrType!=!!t.smartPtr&&rt(`Both smartPtrType and smartPtr must be specified`),t.count={value:1},q(Object.create(e,{$$:{value:t,writable:!0}})));function at(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var n=tt(this.registeredClass,t);if(n!==void 0){if(n.$$.count.value===0)return n.$$.ptr=t,n.$$.smartPtr=e,n.clone();var r=n.clone();return this.destructor(e),r}function i(){return this.isSmartPointer?it(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):it(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var a=ze[this.registeredClass.getActualType(t)];if(!a)return i.call(this);var o=this.isConst?a.constPointerType:a.pointerType,s=Qe(t,this.registeredClass,o.registeredClass);return s===null?i.call(this):this.isSmartPointer?it(o.registeredClass.instancePrototype,{ptrType:o,ptr:s,smartPtrType:this,smartPtr:e}):it(o.registeredClass.instancePrototype,{ptrType:o,ptr:s})}var ot=()=>{Object.assign(st.prototype,{getPointee(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e},destructor(e){this.rawDestructor?.(e)},readValueFromPointer:Ze,fromWireType:at})};function st(e,t,n,r,i,a,o,s,c,l,u){this.name=e,this.registeredClass=t,this.isReference=n,this.isConst=r,this.isSmartPointer=i,this.pointeeType=a,this.sharingPolicy=o,this.rawGetPointee=s,this.rawConstructor=c,this.rawShare=l,this.rawDestructor=u,!i&&t.baseClass===void 0?r?(this.toWireType=Je,this.destructorFunction=null):(this.toWireType=Xe,this.destructorFunction=null):this.toWireType=Ye}var ct=(e,n,r)=>{t.hasOwnProperty(e)||rt(`Replacing nonexistent public symbol`),t[e].overloadTable!==void 0&&r!==void 0?t[e].overloadTable[r]=n:(t[e]=n,t[e].argCount=r)},J=(e,t,n=!1)=>{e=V(e);function r(){return M(t)}var i=r();return typeof i!=`function`&&G(`unknown function pointer with signature ${e}: ${t}`),i};class lt extends Error{}var ut=e=>{var t=nr(e),n=V(t);return $(t),n},Y=(e,t)=>{var n=[],r={};function i(e){if(!r[e]&&!U[e]){if(ye[e]){ye[e].forEach(i);return}n.push(e),r[e]=!0}}throw t.forEach(i),new lt(`${e}: `+n.map(ut).join([`, `]))},X=(e,t,n)=>{e.forEach(e=>ye[e]=t);function r(t){var r=n(t);r.length!==e.length&&rt(`Mismatched type converter count`);for(var i=0;i<e.length;++i)K(e[i],r[i])}var i=Array(t.length),a=[],o=0;for(let[e,n]of t.entries())U.hasOwnProperty(n)?i[e]=U[n]:(a.push(n),H.hasOwnProperty(n)||(H[n]=[]),H[n].push(()=>{i[e]=U[n],++o,o===a.length&&r(i)}));a.length===0&&r(i)},dt=(e,t,n,r,i,a,o,s,c,l,u,d,f)=>{u=V(u),a=J(i,a),s&&=J(o,s),l&&=J(c,l),f=J(d,f);var p=We(u);Ve(p,function(){Y(`Cannot construct ${u} due to unbound types`,[r])}),X([e,t,n],r?[r]:[],t=>{t=t[0];var n,i;r?(n=t.registeredClass,i=n.instancePrototype):i=Le.prototype;var o=Re(u,function(...e){if(Object.getPrototypeOf(this)!==c)throw new W(`Use 'new' to construct ${u}`);if(d.constructor_body===void 0)throw new W(`${u} has no accessible constructor`);var t=d.constructor_body[e.length];if(t===void 0)throw new W(`Tried to invoke ctor of ${u} with invalid number of parameters (${e.length}) - expected (${Object.keys(d.constructor_body).toString()}) parameters instead!`);return t.apply(this,e)}),c=Object.create(i,{constructor:{value:o}});o.prototype=c;var d=new Ge(u,o,c,f,n,a,s,l);d.baseClass&&(d.baseClass.__derivedClasses??=[],d.baseClass.__derivedClasses.push(d));var m=new st(u,d,!0,!1,!1),h=new st(u+`*`,d,!1,!1,!1),g=new st(u+` const*`,d,!1,!0,!1);return ze[e]={pointerType:h,constPointerType:g},ct(p,o),[m,h,g]})},ft=(e,t)=>{for(var n=[],r=0;r<e;r++)n.push((p(),j)[t+r*4>>2]);return n},pt=e=>{for(;e.length;){var t=e.pop();e.pop()(t)}};function mt(e){for(var t=1;t<e.length;++t)if(e[t]!==null&&e[t].destructorFunction===void 0)return!0;return!1}function ht(e){for(var t=1;t<e.length;++t)if(e[t]!==null&&e[t].argStackAlloc)return!0;return!1}var gt={ftfnnn:function(e,t,n,r,i,a,o,s,c,l){return function(e,t,i){return a(n(r,s(null,e),c(null,t),l(null,i)))}},tffn:function(e,t,n,r,i,a,o){return function(){n(r,o(null,this))}},tffnn:function(e,t,n,r,i,a,o,s){return function(e){n(r,o(null,this),s(null,e))}},tffnnnnn:function(e,t,n,r,i,a,o,s,c,l,u){return function(e,t,i,a){n(r,o(null,this),s(null,e),c(null,t),l(null,i),u(null,a))}},tffnnn:function(e,t,n,r,i,a,o,s,c){return function(e,t){n(r,o(null,this),s(null,e),c(null,t))}},ttfnn:function(e,t,n,r,i,a,o,s){return function(e){return a(n(r,o(null,this),s(null,e)))}},tffnt:function(e,t,n,r,i,a,o,s,c){return function(e){var t=o(null,this),i=s(null,e);n(r,t,i),c(i)}},tffntnn:function(e,t,n,r,i,a,o,s,c,l,u){return function(e,t,i){var a=o(null,this),d=s(null,e);n(r,a,d,c(null,t),l(null,i)),u(d)}},tffnnnn:function(e,t,n,r,i,a,o,s,c,l){return function(e,t,i){n(r,o(null,this),s(null,e),c(null,t),l(null,i))}},ttfn:function(e,t,n,r,i,a,o){return function(){return a(n(r,o(null,this)))}},ttfnnn:function(e,t,n,r,i,a,o,s,c){return function(e,t){return a(n(r,o(null,this),s(null,e),c(null,t)))}}};function _t(e,t,n,r){let i=[t?`t`:`f`,n?`t`:`f`,r?`t`:`f`];for(let n=t?1:2;n<e.length;++n){let t=e[n],r=``;r=t.argStackAlloc?`s`:t.destructorFunction===void 0?`u`:t.destructorFunction===null?`n`:`t`,i.push(r)}return i.join(``)}function vt(e,t,n,r,i,a){var o=t.length;o<2&&G(`argTypes array size mismatch! Must at least get return value and receiver (this) types!`);var s=t[1]!==null&&n!==null,c=mt(t),l=ht(t),u=l&&!a&&!c;l&&!u&&(c=!0);var d=!t[0].isVoid,f=t[0],p=t[1],m=[e,G,r,i,pt,f.fromWireType.bind(f),p?.toWireType.bind(p)];u&&m.push(S,C);for(var h=2;h<o;++h){var g=t[h];m.push(g.toWireType.bind(g))}if(!c)for(var h=s?1:2;h<t.length;++h)t[h].destructorFunction!==null&&m.push(t[h].destructorFunction);return Re(e,gt[_t(t,s,d,a)](...m))}var yt=(e,t,n,r,i,a)=>{var o=ft(t,n);i=J(r,i),X([],[e],e=>{e=e[0];var n=`constructor ${e.name}`;if(e.registeredClass.constructor_body===void 0&&(e.registeredClass.constructor_body=[]),e.registeredClass.constructor_body[t-1]!==void 0)throw new W(`Cannot register multiple constructors with identical number of parameters (${t-1}) for class '${e.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return e.registeredClass.constructor_body[t-1]=()=>{Y(`Cannot construct ${e.name} due to unbound types`,o)},X([],o,r=>(r.splice(1,0,null),e.registeredClass.constructor_body[t-1]=vt(n,r,null,i,a),[])),[]})},bt=e=>{e=e.trim();let t=e.indexOf(`(`);return t===-1?e:e.slice(0,t)},xt=(e,t,n,r,i,a,o,s,c,l)=>{var u=ft(n,r);t=V(t),t=bt(t),a=J(i,a,c),X([],[e],e=>{e=e[0];var r=`${e.name}.${t}`;t.startsWith(`@@`)&&(t=Symbol[t.substring(2)]),s&&e.registeredClass.pureVirtualFunctions.push(t);function i(){Y(`Cannot call ${r} due to unbound types`,u)}var l=e.registeredClass.instancePrototype,d=l[t];return d===void 0||d.overloadTable===void 0&&d.className!==e.name&&d.argCount===n-2?(i.argCount=n-2,i.className=e.name,l[t]=i):(Be(l,t,r),l[t].overloadTable[n-2]=i),X([],u,i=>{var s=vt(r,i,e,a,o,c);return l[t].overloadTable===void 0?(s.argCount=n-2,l[t]=s):l[t].overloadTable[n-2]=s,[]}),[]})},St=(e,t,n)=>(e instanceof Object||G(`${n} with invalid "this": ${e}`),e instanceof t.registeredClass.constructor||G(`${n} incompatible with "this" of type ${e.constructor.name}`),e.$$.ptr||G(`cannot call emscripten binding method ${n} on deleted object`),Ke(e.$$.ptr,e.$$.ptrType.registeredClass,t.registeredClass)),Ct=(e,t,n,r,i,a,o,s,c,l)=>{t=V(t),i=J(r,i),X([],[e],e=>{e=e[0];var r=`${e.name}.${t}`,u={get(){Y(`Cannot access ${r} due to unbound types`,[n,o])},enumerable:!0,configurable:!0};return u.set=c?()=>Y(`Cannot access ${r} due to unbound types`,[n,o]):e=>G(r+` is a read-only property`),Object.defineProperty(e.registeredClass.instancePrototype,t,u),X([],c?[n,o]:[n],n=>{var o=n[0],u={get(){var t=St(this,e,r+` getter`);return o.fromWireType(i(a,t))},enumerable:!0};if(c){c=J(s,c);var d=n[1];u.set=function(t){var n=St(this,e,r+` setter`),i=[];c(l,n,d.toWireType(i,t)),pt(i)}}return Object.defineProperty(e.registeredClass.instancePrototype,t,u),[]}),[]})},wt=[],Z=[0,1,,1,null,1,!0,1,!1,1],Tt=e=>{e>9&&--Z[e+1]===0&&(Z[e],Z[e]=void 0,wt.push(e))},Q={toValue:e=>(e||G(`Cannot use deleted val. handle = ${e}`),Z[e]),toHandle:e=>{switch(e){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{let t=wt.pop()||Z.length;return Z[t]=e,Z[t+1]=1,t}}}},Et={name:`emscripten::val`,fromWireType:e=>{var t=Q.toValue(e);return Tt(e),t},toWireType:(e,t)=>Q.toHandle(t),readValueFromPointer:Ze,destructorFunction:null},Dt=e=>K(e,Et),Ot,kt=(e,t)=>{switch(t){case 4:return function(e){return this.fromWireType((p(),Ot)[e>>2])};case 8:return function(e){return this.fromWireType((p(),w)[e>>3])};default:throw TypeError(`invalid float width (${t}): ${e}`)}},At=(e,t,n)=>{t=V(t),K(e,{name:t,fromWireType:e=>e,toWireType:(e,t)=>t,readValueFromPointer:kt(t,n),destructorFunction:null})},jt=(e,t,n,r,i)=>{t=V(t);let a=r===0,o=e=>e;if(a){var s=32-8*n;o=e=>e<<s>>>s,i=o(i)}K(e,{name:t,fromWireType:o,toWireType:(e,t)=>t,readValueFromPointer:we(t,n,r!==0),destructorFunction:null})},Mt=(e,t,n)=>{var r=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][t];function i(e){var t=(p(),j)[e>>2],n=(p(),j)[e+4>>2];return new r((p(),v).buffer,n,t)}n=V(n),K(e,{name:n,fromWireType:i,readValueFromPointer:i},{ignoreDuplicateRegistrations:!0})},Nt=(e,t)=>{t=V(t);var n=!0;K(e,{name:t,fromWireType(e){var t=(p(),j)[e>>2],r=e+4,i;if(n)i=R(r,t,!0);else{i=``;for(var a=0;a<t;++a)i+=String.fromCharCode((p(),P)[r+a])}return $(e),i},toWireType(e,t){t instanceof ArrayBuffer&&(t=new Uint8Array(t));var r,i=typeof t==`string`;i||ArrayBuffer.isView(t)&&t.BYTES_PER_ELEMENT==1||G(`Cannot pass non-string to std::string`),r=n&&i?N(t):t.length;var a=tr(4+r+1),o=a+4;if((p(),j)[a>>2]=r,i){if(n)F(t,o,r+1);else for(var s=0;s<r;++s){var c=t.charCodeAt(s);c>255&&($(a),G(`String has UTF-16 code units that do not fit in 8 bits`)),(p(),P)[o+s]=c}}else(p(),P).set(t,o);return e!==null&&e.push($,a),a},readValueFromPointer:Ze,destructorFunction(e){$(e)}})},Pt=new TextDecoder(`utf-16le`),Ft=(e,t,n)=>{var r=e>>1,i=de((p(),Se),r,t/2,n);return Pt.decode((p(),Se).slice(r,i))},It=(e,t,n=2147483647)=>{if(n<2)return 0;n-=2;for(var r=t,i=n<e.length*2?n/2:e.length,a=0;a<i;++a){var o=e.charCodeAt(a);(p(),xe)[t>>1]=o,t+=2}return(p(),xe)[t>>1]=0,t-r},Lt=e=>e.length*2,Rt=(e,t,n)=>{for(var r=``,i=e>>2,a=0;!(a>=t/4);a++){var o=(p(),j)[i+a];if(!o&&!n)break;r+=String.fromCodePoint(o)}return r},zt=(e,t,n=2147483647)=>{if(n<4)return 0;for(var r=t,i=r+n-4,a=0;a<e.length;++a){var o=e.codePointAt(a);if(o>65535&&a++,(p(),k)[t>>2]=o,t+=4,t+4>i)break}return(p(),k)[t>>2]=0,t-r},Bt=e=>{for(var t=0,n=0;n<e.length;++n)e.codePointAt(n)>65535&&n++,t+=4;return t},Vt=(e,t,n)=>{n=V(n);var r,i,a;t===2?(r=Ft,i=It,a=Lt):(r=Rt,i=zt,a=Bt),K(e,{name:n,fromWireType:e=>{var n=(p(),j)[e>>2],i=r(e+4,n*t,!0);return $(e),i},toWireType:(e,r)=>{typeof r!=`string`&&G(`Cannot pass non-string to C++ string type ${n}`);var o=a(r),s=tr(4+o+t);return(p(),j)[s>>2]=o/t,i(r,s+4,o+t),e!==null&&e.push($,s),s},readValueFromPointer:Ze,destructorFunction(e){$(e)}})},Ht=(e,t)=>{t=V(t),K(e,{isVoid:!0,name:t,fromWireType:()=>void 0,toWireType:(e,t)=>void 0})},Ut=e=>{ir(e,!r,1,!n,262144,!1),A.threadInitTLS()},Wt=(e,...t)=>{e(...t)},Gt=e=>{if(!O){Atomics.waitAsync((p(),k),e>>2,e).value.then(Kt);var t=e+112;Atomics.store((p(),k),t>>2,1)}},Kt=()=>{var e=er();e&&Wt(()=>{Gt(e),fr()})},qt=(e,t)=>{if(e==t)setTimeout(Kt);else if(s)postMessage({targetThread:e,cmd:4});else{var n=A.pthreads[e];if(!n)return;n.postMessage({cmd:4})}},Jt=[],Yt=(e,t,n,r,i,a,o)=>{Jt.length=0;for(var s=i>>3,c=i+r>>3;s<c;){var l=(p(),T)[s++]?(p(),T)[s++]:(p(),w)[s++];Jt.push(l)}var u=t?$n[t]:Qn[e];A.currentProxiedOperationCallerThread=n;var d=u(...Jt);if(A.currentProxiedOperationCallerThread=0,a){Promise.resolve(d).then(e=>sr(a,o,e));return}return d},Xt=()=>{},Zt=e=>{s?postMessage({cmd:6,thread:e}):b(e)},Qt=e=>{},$t=()=>{throw new f},en=[],tn=e=>{var t=en.length;return en.push(e),t},nn=(e,t)=>{var n=U[e];return n===void 0&&G(`${t} has unknown type ${ut(e)}`),n},rn=(e,t)=>{for(var n=Array(e),r=0;r<e;++r)n[r]=nn((p(),j)[t+r*4>>2],`parameter ${r}`);return n},an=(e,t,n)=>{var r=[],i=e(r,n);return r.length&&((p(),j)[t>>2]=Q.toHandle(r)),i},on={},sn=e=>{var t=on[e];return t===void 0?V(e):t},cn=(e,t,n)=>{var[r,...i]=rn(e,t),a=r.toWireType.bind(r),o=i.map(e=>e.readValueFromPointer.bind(e));e--;var s=Array(e);return tn(Re(`methodCaller<(${i.map(e=>e.name)}) => ${r.name}>`,(t,r,i,c)=>{for(var l=0,u=0;u<e;++u)s[u]=o[u](c+l),l+=8;var d;switch(n){case 0:d=Q.toValue(t).apply(null,s);break;case 2:d=Reflect.construct(Q.toValue(t),s);break;case 3:d=s[0];break;case 1:d=Q.toValue(t)[sn(r)](...s)}return an(a,i,d)}))},ln=(e,t)=>(e=Q.toValue(e),t=Q.toValue(t),Q.toHandle(e[t])),un=e=>{e>9&&(Z[e+1]+=1)},dn=(e,t,n,r,i)=>en[e](t,n,r,i),fn=()=>Q.toHandle([]),pn=e=>Q.toHandle(sn(e)),mn=()=>Q.toHandle({}),hn=e=>{pt(Q.toValue(e)),Tt(e)},gn=(e,t,n)=>{e=Q.toValue(e),t=Q.toValue(t),n=Q.toValue(n),e[t]=n},_n={},vn=()=>performance.timeOrigin+performance.now();function yn(e,t){return s?E(6,0,1,e,t):(_n[e]&&(clearTimeout(_n[e].id),delete _n[e]),t&&(_n[e]={id:setTimeout(()=>{delete _n[e],Wt(dr,e,vn())},t),timeout_ms:t}),0)}var bn=()=>Date.now(),xn=9007199254740992,Sn=-9007199254740992,Cn=e=>e<Sn||e>xn?NaN:Number(e),wn=[],Tn=(e,t)=>{wn.length=0;for(var n;n=(p(),P)[e++];){var r=n!=105;r&=n!=112,t+=r&&t%8?4:0,wn.push(n==112?(p(),j)[t>>2]:n==106?(p(),T)[t>>3]:n==105?(p(),k)[t>>2]:(p(),w)[t>>3]),t+=r?8:4}return wn},En=(e,t,n)=>{var r=Tn(t,n);return $n[e](...r)},Dn=(e,t,n)=>En(e,t,n),On=()=>{},kn=e=>a(R(e)),An=()=>{throw`unwind`},jn=()=>2147483648,Mn=()=>jn(),Nn=()=>navigator.hardwareConcurrency,Pn=(e,t)=>Math.ceil(e/t)*t,Fn=e=>{var t=(e-I.buffer.byteLength+65535)/65536|0;try{return I.grow(t),_(),1}catch{}},In=e=>{var t=(p(),P).length;if(e>>>=0,e<=t)return!1;var n=jn();if(e>n)return!1;for(var r=1;r<=4;r*=2){var i=t*(1+.2/r);if(i=Math.min(i,e+100663296),Fn(Math.min(n,Pn(Math.max(e,i),65536))))return!0}return!1},Ln={},Rn=()=>`./this.program`,zn=()=>{if(!zn.strings){var e={USER:`web_user`,LOGNAME:`web_user`,PATH:`/`,PWD:`/`,HOME:`/home/web_user`,LANG:(globalThis.navigator?.language??`C`).replace(`-`,`_`)+`.UTF-8`,_:Rn()};for(var t in Ln)Ln[t]===void 0?delete e[t]:e[t]=Ln[t];var n=[];for(var t in e)n.push(`${t}=${e[t]}`);zn.strings=n}return zn.strings};function Bn(e,t){if(s)return E(7,0,1,e,t);var n=0,r=0;for(var i of zn()){var a=t+n;(p(),j)[e+r>>2]=a,n+=F(i,a,1/0)+1,r+=4}return 0}function Vn(e,t){if(s)return E(8,0,1,e,t);var n=zn();(p(),j)[e>>2]=n.length;var r=0;for(var i of n)r+=N(i)+1;return(p(),j)[t>>2]=r,0}function Hn(e){return s?E(9,0,1,e):52}function Un(e,t,n,r){return s?E(10,0,1,e,t,n,r):52}function Wn(e,t,n,r){return s?E(11,0,1,e,t,n,r):(t=Cn(t),70)}var Gn=[null,[],[]],Kn=(e,t=0,n,r)=>{var i=de(e,t,n,r);return L.decode(e.buffer?e.buffer instanceof ArrayBuffer?e.subarray(t,i):e.slice(t,i):new Uint8Array(e.slice(t,i)))},qn=(e,t)=>{var n=Gn[e];!t||t===10?((e===1?i:a)(Kn(n)),n.length=0):n.push(t)};function Jn(e,t,n,r){if(s)return E(12,0,1,e,t,n,r);for(var i=0,a=0;a<n;a++){var o=(p(),j)[t>>2],c=(p(),j)[t+4>>2];t+=8;for(var l=0;l<c;l++)qn(e,(p(),P)[o+l]);i+=c}return(p(),j)[r>>2]=i,0}var Yn=()=>e=>(e.set(crypto.getRandomValues(new Uint8Array(e.byteLength))),0),Xn=e=>(Xn=Yn())(e),Zn=(e,t)=>Xn((p(),P).subarray(e,e+t));A.init(),Ie(),ot();var Qn=[D,fe,B,he,ge,_e,yn,Bn,Vn,Hn,Un,Wn,Jn],$n={614605:e=>ue(Q.toValue(e))},er,$,tr,nr,rr,ir,ar,or,sr,cr,lr,ur,dr,fr,pr,mr,hr,gr,_r,vr;function yr(e){t.__ZdlPvm=e.ha,er=e.ia,t.__Znwm=e.ja,$=e.ka,tr=t._malloc=e.la,t._calloc=e.ma,nr=e.na,rr=e.oa,t._emscripten_builtin_free=e.pa,e.qa,ir=e.sa,ar=e.ta,or=e.ua,t.___libc_free=e.va,t._emscripten_builtin_malloc=e.wa,t.___libc_malloc=e.xa,sr=e.ya,cr=e.za,lr=e.Aa,ur=e.Ba,dr=e.Ca,fr=e.Da,t.__ZdaPv=e.Ea,t.__ZdaPvm=e.Fa,t.__ZdlPv=e.Ga,t.__Znam=e.Ha,t.__ZnamSt11align_val_t=e.Ia,t.__ZnwmSt11align_val_t=e.Ja,t.___libc_calloc=e.Ka,t.___libc_realloc=e.La,t._emscripten_builtin_calloc=e.Ma,t._emscripten_builtin_realloc=e.Na,t._malloc_size=e.Oa,t._malloc_usable_size=e.Pa,t._reallocf=e.Qa,pr=e.Ra,mr=e.Sa,hr=e.Ta,gr=e.Ua,_r=e.Va,vr=e.ra}var br;function xr(){br={b:z,P:me,y:B,O:he,X:ge,z:_e,K:ve,B:Te,aa:Ee,fa:dt,ea:yt,d:xt,ca:Ct,_:Dt,A:At,l:jt,e:Mt,$:Nt,t:Vt,ba:Ht,S:Ut,L:qt,x:Yt,G:Xt,v:Zt,R:Gt,Z:Qt,E:$t,i:cn,c:Tt,da:ln,f:un,h:dn,p:fn,j:pn,s:mn,g:hn,k:gn,H:yn,n:Dn,w:On,m:bn,u:kn,Y:An,M:Mn,o:vn,N:Nn,I:In,T:Bn,U:Vn,q:ae,r:Hn,W:Un,Q:Wn,V:Jn,D:Sr,C:Cr,a:I,F:D,J:Zn}}function Sr(e,t,n){var r=S();try{return M(e)(t,n)}catch(e){if(C(r),!(e instanceof d))throw e;pr(1,0)}}function Cr(e,t,n,r,i){var a=S();try{return M(e)(t,n,r,i)}catch(e){if(C(a),!(e instanceof d))throw e;pr(1,0)}}function wr(e){g=!0,A.tlsInitFunctions.push(e.qa),!s&&e.ga()}var Tr,Er;function Dr(){xr();var e={a:br};Tr=WebAssembly.instantiateStreaming(fetch(new URL(new URL(`jassub-worker.wasm`,import.meta.url).href,``+import.meta.url)),e).then(e=>{var n=(e.instance||e).exports;return Er=e.module||t.wasm,yr(n),x(ne),wr(n),A.loadWasmModuleToAllWorkers().then(o)})}return s||Dr(),await Tr,t}globalThis.name==`em-pthread`&&j();const oe=[`thin`,`extralight`,`light`,`regular`,`medium`,`semibold`,`bold`,`extrabold`,`black`,`ultrablack`],se=navigator.userAgent.toLowerCase(),M=se.includes(`firefox`),ce=/applewebkit\/[\d.]+ \(khtml, like gecko\)(?!.*chrome\/)/.test(se),N=`BT601`,le=`BT709`,P=`SMPTE240M`,F=[null,N,null,N,N,le,le,P,P,`FCC`,`FCC`],ue=globalThis.fetch;async function I(e){return await(await ue(e)).text()}const L=self.crossOriginIsolated?Math.min(Math.max(1,navigator.hardwareConcurrency-2),8):1,de=!!WebAssembly.Memory.prototype.toResizableBuffer,R=!M&&!ce&&(de||L>1),z=new Float32Array([1,0,0,0,1,0,0,0,1]),fe={BT601:{BT709:new Float32Array([1.0863,.0965,-.01411,-.0723,.8451,-.0277,-.0141,.0584,1.0418]),BT601:z},BT709:{BT601:new Float32Array([.9137,.0784,.0079,-.1049,1.1722,-.0671,.0096,.0322,.9582]),BT709:z},FCC:{BT709:new Float32Array([1.0873,-.0736,-.0137,.0974,.8494,.0531,-.0127,-.0251,1.0378]),BT601:new Float32Array([1.001,-8e-4,-2e-4,9e-4,1.005,-.006,.0013,.0027,.996])},SMPTE240M:{BT709:new Float32Array([.9993,6e-4,1e-4,-4e-4,.9812,.0192,-.0034,-.0114,1.0148]),BT601:new Float32Array([.913,.0774,.0096,-.1051,1.1508,-.0456,.0063,.0207,.973])}};function pe(e,t){return!e||!t?z:fe[e][t]}var me=class{canvas;_scheduledResize;constructor(e){this.canvas=e}resizeCanvas(e,t){e&&t&&(this.canvas.width!==e||this.canvas.height!==t)&&(this._scheduledResize={width:e,height:t})}applyScheduledResize(){if(!this._scheduledResize)return;let e=this._scheduledResize;return this._scheduledResize=void 0,this.canvas.width=e.width,this.canvas.height=e.height,e}};const B=e=>e<0?0:e>1?255:Math.round(e*255);var he=class extends me{ctx;bufferCanvas=new OffscreenCanvas(1,1);bufferCtx=this.bufferCanvas.getContext(`2d`,{alpha:!0,desynchronized:!0,willReadFrequently:!1});colorMatrix=z;constructor(e){if(super(e),this.ctx=e.getContext(`2d`,{alpha:!0,desynchronized:!0,willReadFrequently:!1}),!this.ctx||!this.bufferCtx)throw Error(`Could not get 2D context`)}setColorMatrix(e,t){this.colorMatrix=pe(e,t)}render(e,t){this.applyScheduledResize(),this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height);for(let n of e){if(n.w<=0||n.h<=0)continue;let e=new ImageData(n.w,n.h),r=new Uint32Array(e.data.buffer),i=this.colorMatrix,a=(n.color>>>24&255)/255,o=(n.color>>>16&255)/255,s=(n.color>>>8&255)/255,c=B(i[0]*a+i[3]*o+i[6]*s),l=B(i[1]*a+i[4]*o+i[7]*s),u=B(i[2]*a+i[5]*o+i[8]*s)<<16|l<<8|c,d=(255-(n.color&255))/255,f=n.stride,p=n.h,m=n.w;for(let e=p+1,i=n.bitmap,a=0;--e;i+=f)for(let e=0;e<m;++e,++a){let n=t[i+e];n!==0&&(r[a]=Math.round(d*n)<<24|u)}this.bufferCanvas.width=m,this.bufferCanvas.height=p,this.bufferCtx.putImageData(e,0,0),this.ctx.drawImage(this.bufferCanvas,n.dst_x,n.dst_y)}}destroy(){this.ctx=this.bufferCtx=this.bufferCanvas=null}},ge=class extends me{gl;program;u_resolution=null;u_colorMatrix=null;colorMatrix=z;constructor(e){super(e),e.addEventListener(`webglcontextlost`,e=>{e.preventDefault(),this.gl=null}),e.addEventListener(`webglcontextrestored`,()=>this._initGL())}packAtlas(e,t,n=0,r=!1){let i=/* @__PURE__ */ new Map,a=0,o=0,s=0,c=0;for(let l of e){let{img:e,sourceKey:u}=l,d=l.packW??e.w,f=u&&i.get(u);if(f){l.x=f.x,l.y=f.y,l.layer=f.layer;continue}o+d>t&&(o=0,s+=c+n,c=0),s+e.h>t&&(a++,o=0,s=0,c=0,r||(i=/* @__PURE__ */ new Map)),l.x=o,l.y=s,l.layer=a,c=Math.max(c,e.h),u&&i.set(u,l),o+=d+n}return a+1}createProgram(e,t){let n=this.createShader(this.gl.VERTEX_SHADER,e),r=this.createShader(this.gl.FRAGMENT_SHADER,t),i=this.gl.createProgram();if(this.gl.attachShader(i,n),this.gl.attachShader(i,r),this.gl.linkProgram(i),!this.gl.getProgramParameter(i,this.gl.LINK_STATUS)){let e=this.gl.getProgramInfoLog(i);throw this.gl.deleteProgram(i),Error(`Failed to link program: `+e)}this.gl.deleteShader(n),this.gl.deleteShader(r),this.program=i}createShader(e,t){let n=this.gl.createShader(e);if(!n)throw Error(`Failed to create shader`);if(this.gl.shaderSource(n,t),this.gl.compileShader(n),!this.gl.getShaderParameter(n,this.gl.COMPILE_STATUS)){let e=this.gl.getShaderInfoLog(n);throw this.gl.deleteShader(n),Error(`Failed to compile shader: `+e)}return n}setColorMatrix(e,t){this.colorMatrix=pe(e,t),this.gl&&this.u_colorMatrix&&(this.gl.useProgram(this.program),this.gl.uniformMatrix3fv(this.u_colorMatrix,!1,this.colorMatrix))}beginFrame(e){let t=this.applyScheduledResize();return t&&(this.gl.viewport(0,0,t.width,t.height),this.gl.uniform2f(this.u_resolution,t.width,t.height)),this.gl.clear(this.gl.COLOR_BUFFER_BIT),e.length!==0||(this.gl.flush(),!1)}applyCommonState(e){this.gl.enable(this.gl.BLEND),this.gl.blendFunc(this.gl.ONE,this.gl.ONE_MINUS_SRC_ALPHA),this.gl.useProgram(this.program),this.gl.uniform1i(e,0),this.gl.uniformMatrix3fv(this.u_colorMatrix,!1,this.colorMatrix),this.gl.pixelStorei(this.gl.UNPACK_ALIGNMENT,1),this.gl.clearColor(0,0,0,0),this.gl.activeTexture(this.gl.TEXTURE0),this.gl.viewport(0,0,this.canvas.width,this.canvas.height),this.gl.uniform2f(this.u_resolution,this.canvas.width,this.canvas.height)}};const _e=268435456;var ve=class extends ge{instancedArraysExt;u_tex=null;u_atlasSize=null;a_quadPos=-1;a_destRect=-1;a_srcXY=-1;a_color=-1;quadPosBuffer;instanceDestRectBuffer;instanceSrcBuffer;instanceColorBuffer;instanceDestRectData=/* @__PURE__ */ new Float32Array(1024);instanceSrcData=/* @__PURE__ */ new Float32Array(512);instanceColorData=/* @__PURE__ */ new Float32Array(1024);instanceCapacity=0;atlasPages=[];atlasSize=0;maxTextureSize=0;uploadCache=/* @__PURE__ */ new Set;tightData=null;constructor(e){super(e),this._initGL()}_initGL(){let e=this.canvas.getContext(`webgl`,{alpha:!0,premultipliedAlpha:!0,antialias:!1,depth:!1,preserveDrawingBuffer:!1,stencil:!1,desynchronized:!0,powerPreference:`default`});if(!e)throw Error(`Could not get WebGL context`);if(this.gl=e,!e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.HIGH_FLOAT)?.precision)throw Error(`WebGL1 does not support highp texture coordinates`);this.atlasPages=[],this.atlasSize=0,this.uploadCache.clear(),this.maxTextureSize=e.getParameter(e.MAX_TEXTURE_SIZE);let t=this.gl.getExtension(`ANGLE_instanced_arrays`);if(!t)throw Error(`ANGLE_instanced_arrays extension not supported`);this.instancedArraysExt=t,this.createProgram(`
4
+ precision highp float;
5
5
 
6
6
  // Quad position attribute (0,0), (1,0), (0,1), (1,0), (1,1), (0,1)
7
7
  attribute vec2 a_quadPos;
8
8
 
9
9
  uniform vec2 u_resolution;
10
+ uniform vec2 u_atlasSize;
10
11
 
11
12
  // Instance attributes
12
13
  attribute vec4 a_destRect; // x, y, w, h
14
+ attribute vec2 a_srcXY; // atlas x, y
13
15
  attribute vec4 a_color; // r, g, b, a
14
- attribute float a_texLayer;
15
16
 
16
- varying vec2 v_destXY;
17
+ varying highp vec2 v_quadPos;
18
+ varying highp vec2 v_srcUV;
19
+ varying highp vec2 v_sizeUV;
17
20
  varying vec4 v_color;
18
- varying vec2 v_texSize;
19
- varying float v_texLayer;
20
- varying vec2 v_texCoord;
21
- varying vec2 v_normalizedImageSize;
22
-
23
- uniform vec2 u_texDimensions;
24
21
 
25
22
  void main() {
26
23
  vec2 pixelPos = a_destRect.xy + a_quadPos * a_destRect.zw;
@@ -28,30 +25,25 @@ void main() {
28
25
  clipPos.y = -clipPos.y;
29
26
 
30
27
  gl_Position = vec4(clipPos, 0.0, 1.0);
31
- v_destXY = a_destRect.xy;
28
+ v_quadPos = a_quadPos;
29
+ v_srcUV = a_srcXY / u_atlasSize;
30
+ v_sizeUV = a_destRect.zw / u_atlasSize;
32
31
  v_color = a_color;
33
- v_texSize = a_destRect.zw;
34
- v_texLayer = a_texLayer;
35
- v_texCoord = a_quadPos;
36
- v_normalizedImageSize = a_destRect.zw / u_texDimensions;
37
32
  }
38
- `),n=this.createShader(this.gl.FRAGMENT_SHADER,`
33
+ `,`
39
34
  precision mediump float;
40
35
 
41
36
  uniform sampler2D u_tex;
42
37
  uniform mat3 u_colorMatrix;
43
- uniform vec2 u_resolution;
44
38
 
45
- varying vec2 v_destXY;
39
+ varying highp vec2 v_quadPos;
40
+ varying highp vec2 v_srcUV;
41
+ varying highp vec2 v_sizeUV;
46
42
  varying vec4 v_color;
47
- varying vec2 v_texSize;
48
- varying float v_texLayer;
49
- varying vec2 v_texCoord;
50
- varying vec2 v_normalizedImageSize;
51
43
 
52
44
  void main() {
53
- // Sample texture (r channel contains mask)
54
- float mask = texture2D(u_tex, v_texCoord * v_normalizedImageSize).r;
45
+ // The alpha channel contains the mask.
46
+ float mask = texture2D(u_tex, v_srcUV + v_quadPos * v_sizeUV).a;
55
47
 
56
48
  // Apply color matrix conversion (identity if no conversion needed)
57
49
  vec3 correctedColor = u_colorMatrix * v_color.rgb;
@@ -65,7 +57,7 @@ void main() {
65
57
  // Premultiplied alpha output
66
58
  gl_FragColor = vec4(correctedColor * a, a);
67
59
  }
68
- `);if(!t||!n)throw Error(`Failed to create shaders`);if(this.program=this.gl.createProgram(),this.gl.attachShader(this.program,t),this.gl.attachShader(this.program,n),this.gl.linkProgram(this.program),!this.gl.getProgramParameter(this.program,this.gl.LINK_STATUS)){let e=this.gl.getProgramInfoLog(this.program);throw Error(`Failed to link program: `+e)}this.u_resolution=this.gl.getUniformLocation(this.program,`u_resolution`),this.u_tex=this.gl.getUniformLocation(this.program,`u_tex`),this.u_colorMatrix=this.gl.getUniformLocation(this.program,`u_colorMatrix`),this.u_texDimensions=this.gl.getUniformLocation(this.program,`u_texDimensions`),this.a_quadPos=this.gl.getAttribLocation(this.program,`a_quadPos`),this.a_destRect=this.gl.getAttribLocation(this.program,`a_destRect`),this.a_color=this.gl.getAttribLocation(this.program,`a_color`),this.a_texLayer=this.gl.getAttribLocation(this.program,`a_texLayer`),this.quadPosBuffer=this.gl.createBuffer(),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.quadPosBuffer);let r=new Float32Array([0,0,1,0,0,1,1,0,1,1,0,1]);this.gl.bufferData(this.gl.ARRAY_BUFFER,r,this.gl.STATIC_DRAW),this.instanceDestRectBuffer=this.gl.createBuffer(),this.instanceColorBuffer=this.gl.createBuffer(),this.instanceTexLayerBuffer=this.gl.createBuffer(),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.quadPosBuffer),this.gl.enableVertexAttribArray(this.a_quadPos),this.gl.vertexAttribPointer(this.a_quadPos,2,this.gl.FLOAT,!1,0,0),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceDestRectBuffer),this.gl.enableVertexAttribArray(this.a_destRect),this.gl.vertexAttribPointer(this.a_destRect,4,this.gl.FLOAT,!1,0,0),this.instancedArraysExt.vertexAttribDivisorANGLE(this.a_destRect,1),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceColorBuffer),this.gl.enableVertexAttribArray(this.a_color),this.gl.vertexAttribPointer(this.a_color,4,this.gl.FLOAT,!1,0,0),this.instancedArraysExt.vertexAttribDivisorANGLE(this.a_color,1),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceTexLayerBuffer),this.gl.enableVertexAttribArray(this.a_texLayer),this.gl.vertexAttribPointer(this.a_texLayer,1,this.gl.FLOAT,!1,0,0),this.instancedArraysExt.vertexAttribDivisorANGLE(this.a_texLayer,1),this.gl.enable(this.gl.BLEND),this.gl.blendFunc(this.gl.ONE,this.gl.ONE_MINUS_SRC_ALPHA),this.gl.useProgram(this.program),this.gl.uniform1i(this.u_tex,0),this.gl.uniformMatrix3fv(this.u_colorMatrix,!1,this.colorMatrix),this.gl.pixelStorei(this.gl.UNPACK_ALIGNMENT,1),this.gl.clearColor(0,0,0,0),this.gl.activeTexture(this.gl.TEXTURE0),this.gl.viewport(0,0,e.width,e.height),this.gl.uniform2f(this.u_resolution,e.width,e.height)}createShader(e,t){let n=this.gl.createShader(e);if(this.gl.shaderSource(n,t),this.gl.compileShader(n),!this.gl.getShaderParameter(n,this.gl.COMPILE_STATUS)){let e=this.gl.getShaderInfoLog(n);return console.log(e),this.gl.deleteShader(n),null}return n}setColorMatrix(e,t){this.colorMatrix=(e&&t&&he[e]?.[t])??I,this.gl&&this.u_colorMatrix&&this.program&&(this.gl.useProgram(this.program),this.gl.uniformMatrix3fv(this.u_colorMatrix,!1,this.colorMatrix))}createTexture(e,t){let n=this.gl.createTexture();return this.gl.bindTexture(this.gl.TEXTURE_2D,n),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.LUMINANCE,e,t,0,this.gl.LUMINANCE,this.gl.UNSIGNED_BYTE,null),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MIN_FILTER,this.gl.NEAREST),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.NEAREST),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE),n}render(e,t){if(!this.gl||!this.program||!this.instancedArraysExt)return;if(this._scheduledResize){let{width:e,height:t}=this._scheduledResize;this._scheduledResize=void 0,this.canvas.width=e,this.canvas.height=t,this.gl.viewport(0,0,e,t),this.gl.uniform2f(this.u_resolution,e,t)}else this.gl.clear(this.gl.COLOR_BUFFER_BIT);let n=this.textureWidth,r=this.textureHeight,i=[];for(let t of e)t.w<=0||t.h<=0||(i.push(t),t.w>n&&(n=t.w),t.h>r&&(r=t.h));if(i.length!==0){if(n>this.textureWidth||r>this.textureHeight){this.textureWidth=n,this.textureHeight=r;for(let e of this.textureCache.values())this.gl.deleteTexture(e);this.textureCache.clear()}for(let e=0;e<i.length;e++){let n=i[e],r=this.textureCache.get(e);r||(r=this.createTexture(this.textureWidth,this.textureHeight),this.textureCache.set(e,r)),this.gl.bindTexture(this.gl.TEXTURE_2D,r);let a=new Uint8Array(t.buffer,n.bitmap,n.stride*n.h),o=new Uint8Array(n.w*n.h);for(let e=0;e<n.h;e++){let t=e*n.stride,r=e*n.w;o.set(a.subarray(t,t+n.w),r)}this.gl.texSubImage2D(this.gl.TEXTURE_2D,0,0,0,n.w,n.h,this.gl.LUMINANCE,this.gl.UNSIGNED_BYTE,o),this.instanceDestRectData[0]=n.dst_x,this.instanceDestRectData[1]=n.dst_y,this.instanceDestRectData[2]=n.w,this.instanceDestRectData[3]=n.h,this.instanceColorData[0]=(n.color>>>24&255)/255,this.instanceColorData[1]=(n.color>>>16&255)/255,this.instanceColorData[2]=(n.color>>>8&255)/255,this.instanceColorData[3]=(n.color&255)/255,this.instanceTexLayerData[0]=0,this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceDestRectBuffer),this.gl.bufferData(this.gl.ARRAY_BUFFER,this.instanceDestRectData.subarray(0,4),this.gl.DYNAMIC_DRAW),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceColorBuffer),this.gl.bufferData(this.gl.ARRAY_BUFFER,this.instanceColorData.subarray(0,4),this.gl.DYNAMIC_DRAW),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceTexLayerBuffer),this.gl.bufferData(this.gl.ARRAY_BUFFER,this.instanceTexLayerData.subarray(0,1),this.gl.DYNAMIC_DRAW),this.gl.uniform2f(this.u_texDimensions,this.textureWidth,this.textureHeight),this.instancedArraysExt.drawArraysInstancedANGLE(this.gl.TRIANGLES,0,6,1)}}}destroy(){if(this.gl){for(let e of this.textureCache.values())this.gl.deleteTexture(e);this.textureCache.clear(),this.quadPosBuffer&&=(this.gl.deleteBuffer(this.quadPosBuffer),null),this.instanceDestRectBuffer&&=(this.gl.deleteBuffer(this.instanceDestRectBuffer),null),this.instanceColorBuffer&&=(this.gl.deleteBuffer(this.instanceColorBuffer),null),this.instanceTexLayerBuffer&&=(this.gl.deleteBuffer(this.instanceTexLayerBuffer),null),this.program&&=(this.gl.deleteProgram(this.program),null),this.gl=null}}},ve=class{canvas=null;gl=null;program=null;vao=null;u_resolution=null;u_texArray=null;u_colorMatrix=null;instanceDestRectBuffer=null;instanceColorBuffer=null;instanceTexLayerBuffer=null;instanceDestRectData;instanceColorData;instanceTexLayerData;texArray=null;texArrayWidth=0;texArrayHeight=0;colorMatrix=I;constructor(){this.instanceDestRectData=/* @__PURE__ */ new Float32Array(1024),this.instanceColorData=/* @__PURE__ */ new Float32Array(1024),this.instanceTexLayerData=/* @__PURE__ */ new Float32Array(256)}_scheduledResize;resizeCanvas(e,t){e&&t&&(this.canvas?.width!==e||this.canvas?.height!==t)&&(this._scheduledResize={width:e,height:t})}setCanvas(e){this.canvas=e,this._initGL(e),e.addEventListener(`webglcontextlost`,e=>{e.preventDefault(),this.gl=null}),e.addEventListener(`webglcontextrestored`,()=>this._initGL(e))}_initGL(e){if(this.canvas=e,this.gl=e.getContext(`webgl2`,{alpha:!0,premultipliedAlpha:!0,antialias:!1,depth:!1,preserveDrawingBuffer:!1,stencil:!1,desynchronized:!0,powerPreference:`high-performance`}),!this.gl)throw Error(`Could not get WebGL2 context`);let t=this.createShader(this.gl.VERTEX_SHADER,`#version 300 es
60
+ `),this.u_resolution=this.gl.getUniformLocation(this.program,`u_resolution`),this.u_tex=this.gl.getUniformLocation(this.program,`u_tex`),this.u_colorMatrix=this.gl.getUniformLocation(this.program,`u_colorMatrix`),this.u_atlasSize=this.gl.getUniformLocation(this.program,`u_atlasSize`),this.a_quadPos=this.gl.getAttribLocation(this.program,`a_quadPos`),this.a_destRect=this.gl.getAttribLocation(this.program,`a_destRect`),this.a_srcXY=this.gl.getAttribLocation(this.program,`a_srcXY`),this.a_color=this.gl.getAttribLocation(this.program,`a_color`),this.quadPosBuffer=this.gl.createBuffer(),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.quadPosBuffer);let n=new Float32Array([0,0,1,0,0,1,1,0,1,1,0,1]);this.gl.bufferData(this.gl.ARRAY_BUFFER,n,this.gl.STATIC_DRAW),this.instanceDestRectBuffer=this.gl.createBuffer(),this.instanceSrcBuffer=this.gl.createBuffer(),this.instanceColorBuffer=this.gl.createBuffer(),this.instanceCapacity=0,this.ensureInstanceCapacity(256),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.quadPosBuffer),this.gl.enableVertexAttribArray(this.a_quadPos),this.gl.vertexAttribPointer(this.a_quadPos,2,this.gl.FLOAT,!1,0,0),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceDestRectBuffer),this.gl.enableVertexAttribArray(this.a_destRect),this.gl.vertexAttribPointer(this.a_destRect,4,this.gl.FLOAT,!1,0,0),this.instancedArraysExt.vertexAttribDivisorANGLE(this.a_destRect,1),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceSrcBuffer),this.gl.enableVertexAttribArray(this.a_srcXY),this.gl.vertexAttribPointer(this.a_srcXY,2,this.gl.FLOAT,!1,0,0),this.instancedArraysExt.vertexAttribDivisorANGLE(this.a_srcXY,1),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceColorBuffer),this.gl.enableVertexAttribArray(this.a_color),this.gl.vertexAttribPointer(this.a_color,4,this.gl.FLOAT,!1,0,0),this.instancedArraysExt.vertexAttribDivisorANGLE(this.a_color,1),this.applyCommonState(this.u_tex),this.gl.uniform2f(this.u_atlasSize,1,1)}ensureInstanceCapacity(e){e<=this.instanceCapacity||(this.instanceCapacity=Math.max(e,this.instanceCapacity*2,256),this.instanceDestRectData=new Float32Array(this.instanceCapacity*4),this.instanceSrcData=new Float32Array(this.instanceCapacity*2),this.instanceColorData=new Float32Array(this.instanceCapacity*4),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceDestRectBuffer),this.gl.bufferData(this.gl.ARRAY_BUFFER,this.instanceCapacity*16,this.gl.DYNAMIC_DRAW),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceSrcBuffer),this.gl.bufferData(this.gl.ARRAY_BUFFER,this.instanceCapacity*8,this.gl.DYNAMIC_DRAW),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceColorBuffer),this.gl.bufferData(this.gl.ARRAY_BUFFER,this.instanceCapacity*16,this.gl.DYNAMIC_DRAW))}createAtlasPage(e){let t=this.gl.createTexture();return this.gl.bindTexture(this.gl.TEXTURE_2D,t),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.ALPHA,e,e,0,this.gl.ALPHA,this.gl.UNSIGNED_BYTE,null),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MIN_FILTER,this.gl.NEAREST),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.NEAREST),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE),t}ensureAtlas(e,t){if(this.atlasSize!==e){for(let e of this.atlasPages)this.gl.deleteTexture(e);this.atlasPages=[],this.atlasSize=e,this.uploadCache.clear()}for(;this.atlasPages.length<t;)this.atlasPages.push(this.createAtlasPage(e))}render(e,t){if(!this.gl||!this.beginFrame(e))return;let n=[],r=0,i=0;for(let a of e){if(a.w<=0||a.h<=0||a.w>this.maxTextureSize||a.h>this.maxTextureSize)continue;let e=a.stride>=a.w&&a.stride<=this.maxTextureSize&&a.bitmap+a.stride*a.h<=t.length,o=e?a.stride:a.w;o>this.maxTextureSize&&(e=!1,o=a.w),n.push({img:a,packW:o,uploadStrided:e,x:0,y:0,layer:0,sourceKey:a.cache_id&&`${a.cache_id}:${a.bitmap}:${a.w}:${a.h}:${a.stride}`}),r=Math.max(r,o,a.h),i+=o*a.h}if(n.length===0){this.gl.flush();return}let a=Math.max(64,Math.ceil(Math.max(r,Math.ceil(Math.sqrt(i)))/64)*64),o=Math.min(this.maxTextureSize,Math.max(this.atlasSize,a)),s=Math.max(1,Math.min(64,Math.floor(_e/(o*o)))),c=this.packAtlas(n,o);if(c>s&&o<this.maxTextureSize&&(o=this.maxTextureSize,s=Math.max(1,Math.min(64,Math.floor(_e/(o*o)))),c=this.packAtlas(n,o)),c>s){console.warn(`JASSUB: frame exceeds WebGL1 atlas capacity`),this.gl.flush();return}this.ensureAtlas(o,c),this.ensureInstanceCapacity(n.length);let l=this.uploadCache;this.uploadCache=/* @__PURE__ */ new Set;let u=Array.from({length:c},()=>[]);for(let e of n)u[e.layer].push(e);for(let e=0;e<c;e++){let n=u[e];if(n.length){this.gl.bindTexture(this.gl.TEXTURE_2D,this.atlasPages[e]);for(let e of n){let n=e.sourceKey&&`${e.sourceKey}:${e.layer}:${e.x}:${e.y}`;if(n){if(l.has(n)||this.uploadCache.has(n)){this.uploadCache.add(n);continue}this.uploadCache.add(n)}let{img:r}=e;if(e.uploadStrided)this.gl.texSubImage2D(this.gl.TEXTURE_2D,0,e.x,e.y,e.packW,r.h,this.gl.ALPHA,this.gl.UNSIGNED_BYTE,t.subarray(r.bitmap,r.bitmap+r.stride*r.h));else{let n=r.w*r.h,i=this.tightData;(!i||i.length<n)&&(i=this.tightData=new Uint8Array(n));let a=t.subarray(r.bitmap,r.bitmap+r.stride*r.h);for(let e=0;e<r.h;e++){let t=e*r.stride;i.set(a.subarray(t,t+r.w),e*r.w)}this.gl.texSubImage2D(this.gl.TEXTURE_2D,0,e.x,e.y,r.w,r.h,this.gl.ALPHA,this.gl.UNSIGNED_BYTE,i.subarray(0,n))}}}}for(let e=0;e<c;e++){let t=u[e];if(t.length){for(let e=0;e<t.length;e++){let{img:n,x:r,y:i}=t[e],a=e*4,o=e*2,s=e*4;this.instanceDestRectData[a]=n.dst_x,this.instanceDestRectData[a+1]=n.dst_y,this.instanceDestRectData[a+2]=n.w,this.instanceDestRectData[a+3]=n.h,this.instanceSrcData[o]=r,this.instanceSrcData[o+1]=i,this.instanceColorData[s]=(n.color>>>24&255)/255,this.instanceColorData[s+1]=(n.color>>>16&255)/255,this.instanceColorData[s+2]=(n.color>>>8&255)/255,this.instanceColorData[s+3]=(n.color&255)/255}this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceDestRectBuffer),this.gl.bufferSubData(this.gl.ARRAY_BUFFER,0,this.instanceDestRectData.subarray(0,t.length*4)),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceSrcBuffer),this.gl.bufferSubData(this.gl.ARRAY_BUFFER,0,this.instanceSrcData.subarray(0,t.length*2)),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceColorBuffer),this.gl.bufferSubData(this.gl.ARRAY_BUFFER,0,this.instanceColorData.subarray(0,t.length*4)),this.gl.bindTexture(this.gl.TEXTURE_2D,this.atlasPages[e]),this.gl.uniform2f(this.u_atlasSize,this.atlasSize,this.atlasSize),this.instancedArraysExt.drawArraysInstancedANGLE(this.gl.TRIANGLES,0,6,t.length)}}this.gl.flush()}destroy(){if(this.gl){for(let e of this.atlasPages)this.gl.deleteTexture(e);this.atlasPages=[],this.uploadCache.clear(),this.gl.deleteBuffer(this.quadPosBuffer),this.gl.deleteBuffer(this.instanceDestRectBuffer),this.gl.deleteBuffer(this.instanceSrcBuffer),this.gl.deleteBuffer(this.instanceColorBuffer),this.gl.deleteProgram(this.program),this.quadPosBuffer=this.instanceDestRectBuffer=this.instanceSrcBuffer=this.instanceColorBuffer=this.program=this.gl=this.tightData=null}}},V=class extends ge{vao;u_atlas=null;instanceBuffer;instanceData;instanceFloats;instanceBytes;instanceCapacity=0;atlas=null;maxTextureSize=0;maxArrayTextureLayers=0;uploadCache=/* @__PURE__ */ new Set;_createInstanceData(){this.instanceData=/* @__PURE__ */ new ArrayBuffer(this.instanceCapacity*32),this.instanceFloats=new Float32Array(this.instanceData),this.instanceBytes=new Uint8Array(this.instanceData)}ensureInstanceCapacity(e){e<=this.instanceCapacity||(this.instanceCapacity=Math.max(e,this.instanceCapacity*2,256),this._createInstanceData(),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceBuffer),this.gl.bufferData(this.gl.ARRAY_BUFFER,this.instanceCapacity*32,this.gl.DYNAMIC_DRAW))}constructor(e){super(e),this._initGL()}_initGL(){let e=this.canvas.getContext(`webgl2`,{alpha:!0,premultipliedAlpha:!0,antialias:!1,depth:!1,preserveDrawingBuffer:!1,stencil:!1,desynchronized:!0,powerPreference:`default`});if(!e)throw Error(`Could not get WebGL2 context`);this.gl=e,this.maxTextureSize=this.gl.getParameter(this.gl.MAX_TEXTURE_SIZE),this.maxArrayTextureLayers=this.gl.getParameter(this.gl.MAX_ARRAY_TEXTURE_LAYERS),this.atlas=null,this.uploadCache.clear(),this.createProgram(`#version 300 es
69
61
  precision highp float;
70
62
 
71
63
  const vec2 QUAD_POSITIONS[6] = vec2[6](
@@ -81,13 +73,15 @@ uniform vec2 u_resolution;
81
73
 
82
74
  // Instance attributes
83
75
  in vec4 a_destRect; // x, y, w, h
76
+ in vec2 a_srcXY; // atlas x, y
84
77
  in vec4 a_color; // r, g, b, a
85
- in float a_texLayer;
78
+ in float a_layer; // atlas layer
86
79
 
87
80
  flat out vec2 v_destXY;
88
81
  flat out vec4 v_color;
89
82
  flat out vec2 v_texSize;
90
- flat out float v_texLayer;
83
+ flat out vec2 v_srcXY;
84
+ flat out float v_layer;
91
85
 
92
86
  void main() {
93
87
  vec2 quadPos = QUAD_POSITIONS[gl_VertexID];
@@ -99,20 +93,22 @@ void main() {
99
93
  v_destXY = a_destRect.xy;
100
94
  v_color = a_color;
101
95
  v_texSize = a_destRect.zw;
102
- v_texLayer = a_texLayer;
96
+ v_srcXY = a_srcXY;
97
+ v_layer = a_layer;
103
98
  }
104
- `),n=this.createShader(this.gl.FRAGMENT_SHADER,`#version 300 es
99
+ `,`#version 300 es
105
100
  precision highp float;
106
101
  precision highp sampler2DArray;
107
102
 
108
- uniform sampler2DArray u_texArray;
103
+ uniform sampler2DArray u_atlas;
109
104
  uniform mat3 u_colorMatrix;
110
105
  uniform vec2 u_resolution;
111
106
 
112
107
  flat in vec2 v_destXY;
113
108
  flat in vec4 v_color;
114
109
  flat in vec2 v_texSize;
115
- flat in float v_texLayer;
110
+ flat in vec2 v_srcXY;
111
+ flat in float v_layer;
116
112
 
117
113
  out vec4 fragColor;
118
114
 
@@ -133,7 +129,7 @@ void main() {
133
129
  }
134
130
 
135
131
  // texelFetch: integer coords, no interpolation, no precision issues
136
- float mask = texelFetch(u_texArray, ivec3(texCoord, int(v_texLayer)), 0).r;
132
+ float mask = texelFetch(u_atlas, ivec3(ivec2(v_srcXY) + texCoord, int(v_layer)), 0).r;
137
133
 
138
134
  // Apply color matrix conversion (identity if no conversion needed)
139
135
  vec3 correctedColor = u_colorMatrix * v_color.rgb;
@@ -147,4 +143,4 @@ void main() {
147
143
  // Premultiplied alpha output
148
144
  fragColor = vec4(correctedColor * a, a);
149
145
  }
150
- `);if(!t||!n)throw Error(`Failed to create shaders`);if(this.program=this.gl.createProgram(),this.gl.attachShader(this.program,t),this.gl.attachShader(this.program,n),this.gl.linkProgram(this.program),!this.gl.getProgramParameter(this.program,this.gl.LINK_STATUS)){let e=this.gl.getProgramInfoLog(this.program);throw Error(`Failed to link program: `+e)}this.gl.deleteShader(t),this.gl.deleteShader(n),this.u_resolution=this.gl.getUniformLocation(this.program,`u_resolution`),this.u_texArray=this.gl.getUniformLocation(this.program,`u_texArray`),this.u_colorMatrix=this.gl.getUniformLocation(this.program,`u_colorMatrix`),this.instanceDestRectBuffer=this.gl.createBuffer(),this.instanceColorBuffer=this.gl.createBuffer(),this.instanceTexLayerBuffer=this.gl.createBuffer(),this.vao=this.gl.createVertexArray(),this.gl.bindVertexArray(this.vao);let r=this.gl.getAttribLocation(this.program,`a_destRect`);this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceDestRectBuffer),this.gl.enableVertexAttribArray(r),this.gl.vertexAttribPointer(r,4,this.gl.FLOAT,!1,0,0),this.gl.vertexAttribDivisor(r,1);let i=this.gl.getAttribLocation(this.program,`a_color`);this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceColorBuffer),this.gl.enableVertexAttribArray(i),this.gl.vertexAttribPointer(i,4,this.gl.FLOAT,!1,0,0),this.gl.vertexAttribDivisor(i,1);let a=this.gl.getAttribLocation(this.program,`a_texLayer`);this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceTexLayerBuffer),this.gl.enableVertexAttribArray(a),this.gl.vertexAttribPointer(a,1,this.gl.FLOAT,!1,0,0),this.gl.vertexAttribDivisor(a,1),this.gl.enable(this.gl.BLEND),this.gl.blendFunc(this.gl.ONE,this.gl.ONE_MINUS_SRC_ALPHA),this.gl.useProgram(this.program),this.gl.uniform1i(this.u_texArray,0),this.gl.uniformMatrix3fv(this.u_colorMatrix,!1,this.colorMatrix),this.gl.pixelStorei(this.gl.UNPACK_ALIGNMENT,1),this.gl.clearColor(0,0,0,0),this.gl.activeTexture(this.gl.TEXTURE0),this.gl.viewport(0,0,e.width,e.height),this.gl.uniform2f(this.u_resolution,e.width,e.height),this.createTexArray(256,256)}createShader(e,t){let n=this.gl.createShader(e);if(this.gl.shaderSource(n,t),this.gl.compileShader(n),!this.gl.getShaderParameter(n,this.gl.COMPILE_STATUS)){let e=this.gl.getShaderInfoLog(n);return console.log(e),this.gl.deleteShader(n),null}return n}setColorMatrix(e,t){this.colorMatrix=(e&&t&&he[e]?.[t])??I,this.gl&&this.u_colorMatrix&&this.program&&(this.gl.useProgram(this.program),this.gl.uniformMatrix3fv(this.u_colorMatrix,!1,this.colorMatrix))}createTexArray(e,t){this.texArray&&this.gl.deleteTexture(this.texArray),this.texArray=this.gl.createTexture(),this.gl.bindTexture(this.gl.TEXTURE_2D_ARRAY,this.texArray),this.gl.texImage3D(this.gl.TEXTURE_2D_ARRAY,0,this.gl.R8,e,t,64,0,this.gl.RED,this.gl.UNSIGNED_BYTE,null),this.gl.texParameteri(this.gl.TEXTURE_2D_ARRAY,this.gl.TEXTURE_MIN_FILTER,this.gl.NEAREST),this.gl.texParameteri(this.gl.TEXTURE_2D_ARRAY,this.gl.TEXTURE_MAG_FILTER,this.gl.NEAREST),this.gl.texParameteri(this.gl.TEXTURE_2D_ARRAY,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D_ARRAY,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE),this.texArrayWidth=e,this.texArrayHeight=t}render(e,t){if(!this.gl||!this.program||!this.vao||!this.texArray)return;if((self.HEAPU8RAW.buffer!==self.WASMMEMORY.buffer||me)&&(t=self.HEAPU8RAW=new Uint8Array(self.WASMMEMORY.buffer)),this._scheduledResize){let{width:e,height:t}=this._scheduledResize;this._scheduledResize=void 0,this.canvas.width=e,this.canvas.height=t,this.gl.viewport(0,0,e,t),this.gl.uniform2f(this.u_resolution,e,t)}else this.gl.clear(this.gl.COLOR_BUFFER_BIT);let n=this.texArrayWidth,r=this.texArrayHeight,i=[];for(let t of e)t.w<=0||t.h<=0||(i.push(t),t.w>n&&(n=t.w),t.h>r&&(r=t.h));if(i.length!==0){(n>this.texArrayWidth||r>this.texArrayHeight)&&this.createTexArray(n,r);for(let e=0;e<i.length;e+=64){let n=Math.min(e+64,i.length),r=0;for(let a=e;a<n;a++){let e=i[a],n=r;if(this.gl.pixelStorei(this.gl.UNPACK_ROW_LENGTH,e.stride),A||j){let r=new Uint8Array(t.buffer,e.bitmap,e.stride*e.h),i=new Uint8Array(r);this.gl.texSubImage3D(this.gl.TEXTURE_2D_ARRAY,0,0,0,n,e.w,e.h,1,this.gl.RED,this.gl.UNSIGNED_BYTE,i)}else this.gl.texSubImage3D(this.gl.TEXTURE_2D_ARRAY,0,0,0,n,e.w,e.h,1,this.gl.RED,this.gl.UNSIGNED_BYTE,t,e.bitmap);let o=r*4;this.instanceDestRectData[o]=e.dst_x,this.instanceDestRectData[o+1]=e.dst_y,this.instanceDestRectData[o+2]=e.w,this.instanceDestRectData[o+3]=e.h,this.instanceColorData[o]=(e.color>>>24&255)/255,this.instanceColorData[o+1]=(e.color>>>16&255)/255,this.instanceColorData[o+2]=(e.color>>>8&255)/255,this.instanceColorData[o+3]=(e.color&255)/255,this.instanceTexLayerData[r]=n,r++}this.gl.pixelStorei(this.gl.UNPACK_ROW_LENGTH,0),r!==0&&(this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceDestRectBuffer),this.gl.bufferData(this.gl.ARRAY_BUFFER,this.instanceDestRectData.subarray(0,r*4),this.gl.DYNAMIC_DRAW),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceColorBuffer),this.gl.bufferData(this.gl.ARRAY_BUFFER,this.instanceColorData.subarray(0,r*4),this.gl.DYNAMIC_DRAW),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceTexLayerBuffer),this.gl.bufferData(this.gl.ARRAY_BUFFER,this.instanceTexLayerData.subarray(0,r),this.gl.DYNAMIC_DRAW),this.gl.drawArraysInstanced(this.gl.TRIANGLES,0,6,r))}}}destroy(){this.gl&&=(this.texArray&&=(this.gl.deleteTexture(this.texArray),null),this.instanceDestRectBuffer&&=(this.gl.deleteBuffer(this.instanceDestRectBuffer),null),this.instanceColorBuffer&&=(this.gl.deleteBuffer(this.instanceColorBuffer),null),this.instanceTexLayerBuffer&&=(this.gl.deleteBuffer(this.instanceTexLayerBuffer),null),this.vao&&=(this.gl.deleteVertexArray(this.vao),null),this.program&&=(this.gl.deleteProgram(this.program),null),null)}};const ye=Symbol.for(`constructor`);var be=class{_wasm;_subtitleColorSpace;_videoColorSpace;_malloc;_gpurender;debug=!1;constructor(...e){return this[ye](...e).catch(console.error)}async[ye](e,t,n){this._availableFonts=Object.fromEntries(Object.entries(e.availableFonts).map(([e,t])=>[e.trim().toLowerCase(),t])),this.debug=e.debug,this.queryFonts=e.queryFonts,this._getFont=t,this._defaultFont=e.defaultFont.trim().toLowerCase();let r=globalThis.fetch;globalThis.fetch=t=>r(e.wasmUrl);try{let e=new OffscreenCanvas(1,1);this._gpurender=e.getContext(`webgl2`)?new ve:e.getContext(`webgl`)?.getExtension(`ANGLE_instanced_arrays`)?new _e:new ge}catch{this._gpurender=new ge}this._gpurender.setCanvas(n),this._loadedInitialFonts=!e.fonts.length;let{_malloc:i,JASSUB:a}=await O({__url:e.wasmUrl,__out:e=>this._log(e)});return this._malloc=i,this._wasm=new a(e.width,e.height,this._defaultFont),this._wasm.setThreads(F),this._loadedInitialFonts||await this._loadInitialFonts(e.fonts),this._wasm.createTrackMem(e.subContent??await fe(e.subUrl)),this._subtitleColorSpace=N[this._wasm.trackColorSpace],(e.libassMemoryLimit>0||e.libassGlyphLimit>0)&&this._wasm.setMemoryLimits(e.libassGlyphLimit||0,e.libassMemoryLimit||0),this._checkColorSpace(),this}processData(e){this._wasm.processData(e)}processChunk(e,t,n){this._wasm.processChunk(e,t,n)}createEvent(e){this._wasm.createEvent(e)}getEvents(){return this._wasm.getEvents()}setEvent(e,t){this._wasm.setEvent(t,e)}removeEvent(e){this._wasm.removeEvent(e)}createStyle(e){this._wasm.createStyle(e)}getStyles(){return this._wasm.getStyles()}setStyle(e,t){this._wasm.setStyle(t,e)}removeStyle(e){this._wasm.removeStyle(e)}styleOverride(e){this._wasm.styleOverride(e)}disableStyleOverride(){this._wasm.disableStyleOverride()}setTrack(e){this._wasm.createTrackMem(e),this._subtitleColorSpace=N[this._wasm.trackColorSpace]}freeTrack(){this._wasm.removeTrack()}async setTrackByUrl(e){this.setTrack(await fe(e))}_checkColorSpace(){this._subtitleColorSpace&&this._videoColorSpace&&this._gpurender.setColorMatrix(this._subtitleColorSpace,this._videoColorSpace)}_defaultFont;setDefaultFont(e){this._defaultFont=e.trim().toLowerCase(),this._wasm.setDefaultFont(this._defaultFont)}async _log(e){console.debug(e);let t=e.match(/JASSUB: fontselect:[^(]+: \(([^,]+), (\d{1,4}), \d\)/);t&&!await this._findAvailableFont(t[1].trim().toLowerCase(),k[Math.ceil(parseInt(t[2])/100)-1])&&await this._findAvailableFont(this._defaultFont)}async addFonts(e){if(!e.length)return!1;let t=[],n=[];for(let r of e)typeof r==`string`?t.push(r):n.push(r);return n.length&&this._allocFonts(n),!!await Promise.allSettled(t.map(e=>this._asyncWrite(e)))}_loadedInitialFonts=!1;async _loadInitialFonts(e){await this.addFonts(e),this._loadedInitialFonts=!0,this._wasm.reloadFonts()}_getFont;_availableFonts={};_checkedFonts=/* @__PURE__ */ new Set;async _findAvailableFont(e,t){if(!this._loadedInitialFonts)return;for(let n of k)if(e.includes(n)){e=e.replace(n,``).trim(),t??=n;break}t??=`regular`;let n=e+` `+t;if(!this._checkedFonts.has(n)){this._checkedFonts.add(n);try{let r=this._availableFonts[n]??this._availableFonts[e]??await this._queryLocalFont(e,t)??await this._queryRemoteFont([n,e]);if(r)return await this.addFonts([r])}catch(n){console.warn(`Error querying font`,e,t,n)}}}queryFonts;async _queryLocalFont(e,t){if(this.queryFonts)return await this._getFont(e,t)}async _queryRemoteFont(e){if(this.queryFonts!==`localandremote`)return;let t=await D({postscriptNames:e});if(!t.length)return;let n=await t[0].blob();return new Uint8Array(await n.arrayBuffer())}async _asyncWrite(e){let t=await P(e);this._allocFonts([new Uint8Array(await t.arrayBuffer())])}_fontId=0;_allocFonts(e){for(let t of e){let e=this._malloc(t.byteLength);self.HEAPU8RAW.set(t,e),this._wasm.addFont(`font-`+this._fontId++,e,t.byteLength)}this._wasm.reloadFonts()}_resizeCanvas(e,t,n,r){this._wasm.resizeCanvas(e,t,n,r),this._gpurender.resizeCanvas(e,t)}async[i](){this._wasm.quitLibrary(),this._gpurender.destroy(),this._wasm=null,this._gpurender=null,this._availableFonts={}}_draw(e,t=!1){let n=this._wasm.rawRender(e,Number(t));n&&this._gpurender.render(n,self.HEAPU8RAW)}_setColorSpace(e){e!==`RGB`&&(this._videoColorSpace=e,this._checkColorSpace())}};self.name===`jassub-worker`&&w(be);
146
+ `),this.u_resolution=this.gl.getUniformLocation(this.program,`u_resolution`),this.u_atlas=this.gl.getUniformLocation(this.program,`u_atlas`),this.u_colorMatrix=this.gl.getUniformLocation(this.program,`u_colorMatrix`),this.instanceBuffer=this.gl.createBuffer(),this.instanceCapacity=0,this.ensureInstanceCapacity(256),this.vao=this.gl.createVertexArray(),this.gl.bindVertexArray(this.vao);let t=this.gl.getAttribLocation(this.program,`a_destRect`);this.gl.enableVertexAttribArray(t),this.gl.vertexAttribPointer(t,4,this.gl.FLOAT,!1,32,0),this.gl.vertexAttribDivisor(t,1);let n=this.gl.getAttribLocation(this.program,`a_srcXY`);this.gl.enableVertexAttribArray(n),this.gl.vertexAttribPointer(n,2,this.gl.FLOAT,!1,32,16),this.gl.vertexAttribDivisor(n,1);let r=this.gl.getAttribLocation(this.program,`a_color`);this.gl.enableVertexAttribArray(r),this.gl.vertexAttribPointer(r,4,this.gl.UNSIGNED_BYTE,!0,32,24),this.gl.vertexAttribDivisor(r,1);let i=this.gl.getAttribLocation(this.program,`a_layer`);this.gl.enableVertexAttribArray(i),this.gl.vertexAttribPointer(i,1,this.gl.FLOAT,!1,32,28),this.gl.vertexAttribDivisor(i,1),this.applyCommonState(this.u_atlas)}createAtlasTexture(e,t){this.atlas&&this.gl.deleteTexture(this.atlas.texture);let n=this.gl.createTexture();this.gl.bindTexture(this.gl.TEXTURE_2D_ARRAY,n),this.gl.texImage3D(this.gl.TEXTURE_2D_ARRAY,0,this.gl.R8,e,e,t,0,this.gl.RED,this.gl.UNSIGNED_BYTE,null),this.gl.texParameteri(this.gl.TEXTURE_2D_ARRAY,this.gl.TEXTURE_MIN_FILTER,this.gl.NEAREST),this.gl.texParameteri(this.gl.TEXTURE_2D_ARRAY,this.gl.TEXTURE_MAG_FILTER,this.gl.NEAREST),this.gl.texParameteri(this.gl.TEXTURE_2D_ARRAY,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D_ARRAY,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D_ARRAY,this.gl.TEXTURE_MAX_LEVEL,0),this.atlas={texture:n,size:e,depth:t}}render(e,t){if(!this.gl||!this.beginFrame(e))return;let n=0,r=[];for(let t of e)t.w<=0||t.h<=0||t.w>this.maxTextureSize||t.h>this.maxTextureSize||(r.push({img:t,x:0,y:0,layer:0,sourceKey:t.cache_id&&`${t.cache_id}:${t.bitmap}:${t.w}:${t.h}:${t.stride}`}),n=Math.max(n,t.w,t.h));if(r.length===0){this.gl.flush();return}let i=Math.min(this.maxTextureSize,2**Math.max(0,Math.ceil(Math.log2(n)))),a=Math.max(this.atlas?.size??0,i),o=this.maxArrayTextureLayers||256,s=[...r].sort((e,t)=>t.img.h-e.img.h),c=this.packAtlas(s,a,1,!0);for(;c>o&&a<this.maxTextureSize;)a=Math.min(this.maxTextureSize,a*2),c=this.packAtlas(s,a,1,!0);if(c>o){console.warn(`JASSUB: frame exceeds texture array capacity`),this.gl.flush();return}let l=this.uploadCache;(!this.atlas||this.atlas.size<a||this.atlas.depth<c)&&(this.createAtlasTexture(a,Math.max(this.atlas?.depth??0,c)),l.clear()),this.ensureInstanceCapacity(r.length),this.uploadCache=/* @__PURE__ */ new Set;let u=0;(self.HEAPU8RAW.buffer!==self.WASMMEMORY.buffer||R)&&(t=self.HEAPU8RAW=new Uint8Array(self.WASMMEMORY.buffer));for(let{img:e,x:n,y:i,layer:a,sourceKey:o}of r){let r=o&&`${o}:${n}:${i}:${a}`,s=!1;if(r&&(s=l.has(r)||this.uploadCache.has(r),this.uploadCache.add(r)),!s){if(this.gl.pixelStorei(this.gl.UNPACK_ROW_LENGTH,e.stride),M||ce){let r=new Uint8Array(t.buffer,e.bitmap,e.stride*e.h),o=new Uint8Array(r);this.gl.texSubImage3D(this.gl.TEXTURE_2D_ARRAY,0,n,i,a,e.w,e.h,1,this.gl.RED,this.gl.UNSIGNED_BYTE,o)}else this.gl.texSubImage3D(this.gl.TEXTURE_2D_ARRAY,0,n,i,a,e.w,e.h,1,this.gl.RED,this.gl.UNSIGNED_BYTE,t,e.bitmap)}let c=u*8;this.instanceFloats[c]=e.dst_x,this.instanceFloats[c+1]=e.dst_y,this.instanceFloats[c+2]=e.w,this.instanceFloats[c+3]=e.h,this.instanceFloats[c+4]=n,this.instanceFloats[c+5]=i,this.instanceFloats[c+7]=a;let d=u*32+24;this.instanceBytes[d]=e.color>>>24&255,this.instanceBytes[d+1]=e.color>>>16&255,this.instanceBytes[d+2]=e.color>>>8&255,this.instanceBytes[d+3]=e.color&255,u++}this.gl.pixelStorei(this.gl.UNPACK_ROW_LENGTH,0),u!==0&&(this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.instanceBuffer),this.gl.bufferSubData(this.gl.ARRAY_BUFFER,0,this.instanceBytes,0,u*32),this.gl.drawArraysInstanced(this.gl.TRIANGLES,0,6,u)),this.gl.flush()}destroy(){this.uploadCache.clear(),this.gl&&(this.atlas&&this.gl.deleteTexture(this.atlas.texture),this.gl.deleteBuffer(this.instanceBuffer),this.gl.deleteVertexArray(this.vao),this.gl.deleteProgram(this.program),this.instanceBuffer=this.vao=this.program=this.gl=this.atlas=null)}};const H=Symbol.for(`constructor`);var U=class{_wasm;_subtitleColorSpace;_videoColorSpace;_malloc;_gpurender;debug=!1;constructor(...e){return this[H](...e)}async[H](e,t,n){this._availableFonts=Object.fromEntries(Object.entries(e.availableFonts).map(([e,t])=>[e.trim().toLowerCase(),t])),this.debug=e.debug,this.queryFonts=e.queryFonts,this._getFont=t,this._defaultFont=e.defaultFont.trim().toLowerCase();let r=globalThis.fetch;globalThis.fetch=t=>r(e.wasmUrl);try{let e=new OffscreenCanvas(1,1);this._gpurender=e.getContext(`webgl2`)?new V(n):e.getContext(`webgl`)?.getExtension(`ANGLE_instanced_arrays`)?new ve(n):new he(n)}catch{this._gpurender=new he(n)}this._loadedInitialFonts=!e.fonts.length;let{_malloc:i,JASSUB:a}=await j({__url:e.wasmUrl,__poolSize:L>1?L:0,__out:e=>this._log(e)});return this._malloc=i,this._wasm=new a(e.width,e.height,this._defaultFont),this._wasm.setThreads(L),this._loadedInitialFonts||await this._loadInitialFonts(e.fonts),this._wasm.createTrackMem(e.subContent??await I(e.subUrl)),this._subtitleColorSpace=F[this._wasm.trackColorSpace],(e.libassMemoryLimit>0||e.libassGlyphLimit>0)&&this._wasm.setMemoryLimits(e.libassGlyphLimit||0,e.libassMemoryLimit||0),this._checkColorSpace(),this}processData(e){this._wasm.processData(e)}processChunk(e,t,n){this._wasm.processChunk(e,t,n)}createEvent(e){this._wasm.createEvent(e)}getEvents(){return this._wasm.getEvents()}setEvent(e,t){this._wasm.setEvent(t,e)}removeEvent(e){this._wasm.removeEvent(e)}createStyle(e){this._wasm.createStyle(e)}getStyles(){return this._wasm.getStyles()}setStyle(e,t){this._wasm.setStyle(t,e)}removeStyle(e){this._wasm.removeStyle(e)}styleOverride(e){this._wasm.styleOverride(e)}disableStyleOverride(){this._wasm.disableStyleOverride()}setTrack(e){this._wasm.createTrackMem(e),this._subtitleColorSpace=F[this._wasm.trackColorSpace]}freeTrack(){this._wasm.removeTrack()}async setTrackByUrl(e){this.setTrack(await I(e))}_checkColorSpace(){this._subtitleColorSpace&&this._videoColorSpace&&this._gpurender.setColorMatrix(this._subtitleColorSpace,this._videoColorSpace)}_defaultFont;setDefaultFont(e){this._defaultFont=e.trim().toLowerCase(),this._wasm.setDefaultFont(this._defaultFont)}async _log(e){console.debug(e);let t=e.match(/JASSUB: fontselect:[^(]+: \(([^,]*), (\d{1,4}), \d+\)/);t&&!await this._findAvailableFont(t[1].trim().toLowerCase(),oe[Math.ceil(parseInt(t[2])/100)-1])&&await this._findAvailableFont(this._defaultFont)}async addFonts(e){if(!e.length)return!1;let t=[],n=[];for(let r of e)typeof r==`string`?t.push(r):n.push(r);return n.length&&this._allocFonts(n),!!await Promise.allSettled(t.map(e=>this._asyncWrite(e)))}_loadedInitialFonts=!1;async _loadInitialFonts(e){await this.addFonts(e),this._loadedInitialFonts=!0,this._wasm.reloadFonts()}_getFont;_availableFonts={};_checkedFonts=/* @__PURE__ */ new Set;async _findAvailableFont(e,t){if(!this._loadedInitialFonts)return;for(let n of oe)if(e.includes(n)){e=e.replace(n,``).trim(),t??=n;break}t??=`regular`;let n=e+` `+t;if(!this._checkedFonts.has(n)){this._checkedFonts.add(n);try{let r=this._availableFonts[n]??this._availableFonts[e]??await this._queryLocalFont(e,t)??await this._queryRemoteFont([n,e]);if(r)return await this.addFonts([r])}catch(n){console.warn(`Error querying font`,e,t,n)}}}queryFonts;async _queryLocalFont(e,t){if(this.queryFonts)return await this._getFont(e,t)}async _queryRemoteFont(e){if(this.queryFonts!==`localandremote`)return;let t=await A({postscriptNames:e});if(!t.length)return;let n=await t[0].blob();return new Uint8Array(await n.arrayBuffer())}async _asyncWrite(e){let t=await ue(e);this._allocFonts([new Uint8Array(await t.arrayBuffer())])}_fontId=0;_allocFonts(e){for(let t of e){let e=this._malloc(t.byteLength);self.HEAPU8RAW.set(t,e),this._wasm.addFont(`font-`+this._fontId++,e,t.byteLength)}this._wasm.reloadFonts()}_resizeCanvas(e,t,n,r){this._wasm.resizeCanvas(e,t,n,r),this._gpurender.resizeCanvas(e,t)}async[i](){this._wasm.quitLibrary(),this._gpurender.destroy(),this._wasm=null,this._gpurender=null,this._availableFonts={}}_draw(e,t=!1){let n=this._wasm.rawRender(e,Number(t));n&&this._gpurender.render(n,self.HEAPU8RAW)}_drawCapture(e){let t=this._wasm.rawRender(e,1)??[];this._gpurender.render(t,self.HEAPU8RAW);let n=this._gpurender.canvas;if(!n)return;let{width:r,height:i}=n,a=new OffscreenCanvas(r,i).getContext(`2d`);if(a)return a.drawImage(n,0,0),{data:a.getImageData(0,0,r,i).data,width:r,height:i}}_setColorSpace(e){e!==`RGB`&&(this._videoColorSpace=e,this._checkColorSpace())}};self.name===`jassub-worker`&&T(U);
package/libav-jspi.wasm CHANGED
Binary file
package/libav.wasm CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@banou/ripple",
3
- "version": "0.0.28",
3
+ "version": "0.0.30",
4
4
  "type": "module",
5
5
  "repository": {
6
6
  "type": "git",