From 444edff8a800274b5d8001c35c6256df8eceb688 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 6 Oct 2026 11:51:27 +0000 Subject: [PATCH] Bump version to 1.2.191, rebuild web + Godot API --- amy/__init__.py | 2 +- docs/amy.js | 2 +- docs/amy.wasm | Bin 4851960 -> 4852777 bytes library.properties | 2 +- pyproject.toml | 2 +- 5 files changed, 4 insertions(+), 4 deletions(-) diff --git a/amy/__init__.py b/amy/__init__.py index 9bc5dbff..15062a57 100644 --- a/amy/__init__.py +++ b/amy/__init__.py @@ -13,7 +13,7 @@ # .github/workflows/release.yml, which rewrites the line below in the same commit # it tags -- so amy.version always matches the release tag it shipped in. Edit # with the workflow, not by hand. -version = '1.2.190' +version = '1.2.191' # BEGIN GENERATED - scripts/gen_amy_c_api.py # One backend resolver per C API function: prefer the CPython c_amy diff --git a/docs/amy.js b/docs/amy.js index 8d77e93e..64ea2719 100644 --- a/docs/amy.js +++ b/docs/amy.js @@ -1,4 +1,4 @@ -var amyModule=(()=>{var _scriptName=globalThis.document?.currentScript?.src;return async function(moduleArg={}){var moduleRtn;var Module=moduleArg;var ENVIRONMENT_IS_WASM_WORKER=globalThis.name=="em-ww";var ENVIRONMENT_IS_AUDIO_WORKLET=!!globalThis.AudioWorkletGlobalScope;if(ENVIRONMENT_IS_AUDIO_WORKLET)ENVIRONMENT_IS_WASM_WORKER=true;var ENVIRONMENT_IS_WEB=!!globalThis.window;var ENVIRONMENT_IS_WORKER=!!globalThis.WorkerGlobalScope;var ENVIRONMENT_IS_NODE=globalThis.process?.versions?.node&&globalThis.process?.type!="renderer";if(ENVIRONMENT_IS_NODE){var worker_threads=require("worker_threads");global.Worker=worker_threads.Worker;ENVIRONMENT_IS_WORKER=!worker_threads.isMainThread;ENVIRONMENT_IS_WASM_WORKER=ENVIRONMENT_IS_WORKER&&worker_threads["workerData"]=="em-ww"}var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};if(typeof __filename!="undefined"){_scriptName=__filename}else if(ENVIRONMENT_IS_WORKER){_scriptName=self.location.href}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("fs");scriptDirectory=__dirname+"/";readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename);return ret};readAsync=async(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename,binary?undefined:"utf8");return ret};if(process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(".",_scriptName).href}catch{}{if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=async url=>{if(isFileURI(url)){return new Promise((resolve,reject)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){resolve(xhr.response);return}reject(xhr.status)};xhr.onerror=reject;xhr.send(null)})}var response=await fetch(url,{credentials:"same-origin"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+" : "+response.url)}}}else{}var defaultPrint=console.log.bind(console);var defaultPrintErr=console.error.bind(console);if(ENVIRONMENT_IS_NODE){var utils=require("util");var stringify=a=>typeof a=="object"?utils.inspect(a):a;defaultPrint=(...args)=>fs.writeSync(1,args.map(stringify).join(" ")+"\n");defaultPrintErr=(...args)=>fs.writeSync(2,args.map(stringify).join(" ")+"\n")}var out=defaultPrint;var err=defaultPrintErr;var wasmBinary;var wasmModule;var ABORT=false;var EXITSTATUS;var isFileURI=filename=>filename.startsWith("file://");function growMemViews(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}}var readyPromiseResolve,readyPromiseReject;if(ENVIRONMENT_IS_NODE&&ENVIRONMENT_IS_WASM_WORKER){var parentPort=worker_threads["parentPort"];parentPort.on("message",msg=>global.onmessage?.({data:msg}));Object.assign(globalThis,{self:global,postMessage:msg=>parentPort["postMessage"](msg)});process.on("uncaughtException",err=>{postMessage({cmd:"uncaughtException",error:err});process.exit(1)})}var wwParams;function startWasmWorker(props){wwParams=props;wasmMemory=props.wasmMemory;updateMemoryViews();wasmModule=props.wasm;createWasm();run();props.wasm=props.memMemory=0}if(ENVIRONMENT_IS_WASM_WORKER&&!ENVIRONMENT_IS_AUDIO_WORKLET){if(ENVIRONMENT_IS_NODE){var wrappedHandlers=new WeakMap;globalThis.onmessage=null;function wrapMsgHandler(h){var f=wrappedHandlers.get(h);if(!f){f=msg=>h({data:msg});wrappedHandlers.set(h,f)}return f}Object.assign(globalThis,{addEventListener:(name,handler)=>parentPort["on"](name,wrapMsgHandler(handler)),removeEventListener:(name,handler)=>parentPort["off"](name,wrapMsgHandler(handler))})}onmessage=d=>{onmessage=null;startWasmWorker(d.data)}}if(ENVIRONMENT_IS_AUDIO_WORKLET){function createWasmAudioWorkletProcessor(audioParams){class WasmAudioWorkletProcessor extends AudioWorkletProcessor{constructor(args){super();let opts=args.processorOptions;this.callback=(a1,a2,a3,a4,a5,a6,a7)=>dynCall_iiiiiiii(opts.callback,a1,a2,a3,a4,a5,a6,a7);this.userData=opts.userData;this.samplesPerChannel=opts.samplesPerChannel;this.bytesPerChannel=this.samplesPerChannel*4;this.outputViews=new Array(Math.min((wwParams.stackSize-16)/this.bytesPerChannel|0,64));this.createOutputViews()}createOutputViews(){var oldStackPtr=stackSave();var viewDataIdx=stackAlloc(this.outputViews.length*this.bytesPerChannel)>>2;for(var n=this.outputViews.length-1;n>=0;n--){this.outputViews[n]=(growMemViews(),HEAPF32).subarray(viewDataIdx,viewDataIdx+=this.samplesPerChannel)}stackRestore(oldStackPtr)}static get parameterDescriptors(){return audioParams}process(inputList,outputList,parameters){if((growMemViews(),HEAPF32).buffer!=this.outputViews[0].buffer){this.createOutputViews()}var numInputs=inputList.length;var numOutputs=outputList.length;var entry;var subentry;var stackMemoryStruct=(numInputs+numOutputs)*12;var stackMemoryData=0;for(entry of inputList){stackMemoryData+=entry.length}stackMemoryData*=this.bytesPerChannel;var outputViewsNeeded=0;for(entry of outputList){outputViewsNeeded+=entry.length}stackMemoryData+=outputViewsNeeded*this.bytesPerChannel;var numParams=0;for(entry in parameters){++numParams;stackMemoryStruct+=8;stackMemoryData+=parameters[entry].byteLength}var oldStackPtr=stackSave();var stackMemoryAligned=stackMemoryStruct+stackMemoryData+15&~15;var structPtr=stackAlloc(stackMemoryAligned);var dataPtr=structPtr+(stackMemoryAligned-stackMemoryData);var inputsPtr=structPtr;for(entry of inputList){(growMemViews(),HEAPU32)[structPtr>>2]=entry.length;(growMemViews(),HEAPU32)[structPtr+4>>2]=this.samplesPerChannel;(growMemViews(),HEAPU32)[structPtr+8>>2]=dataPtr;structPtr+=12;for(subentry of entry){(growMemViews(),HEAPF32).set(subentry,dataPtr>>2);dataPtr+=this.bytesPerChannel}}var paramsPtr=structPtr;for(entry=0;subentry=parameters[entry++];){(growMemViews(),HEAPU32)[structPtr>>2]=subentry.length;(growMemViews(),HEAPU32)[structPtr+4>>2]=dataPtr;structPtr+=8;(growMemViews(),HEAPF32).set(subentry,dataPtr>>2);dataPtr+=subentry.length*4}var outputsPtr=structPtr;for(entry of outputList){(growMemViews(),HEAPU32)[structPtr>>2]=entry.length;(growMemViews(),HEAPU32)[structPtr+4>>2]=this.samplesPerChannel;(growMemViews(),HEAPU32)[structPtr+8>>2]=dataPtr;structPtr+=12;dataPtr+=this.bytesPerChannel*entry.length}var didProduceAudio=this.callback(numInputs,inputsPtr,numOutputs,outputsPtr,numParams,paramsPtr,this.userData);if(didProduceAudio){for(entry of outputList){for(subentry of entry){subentry.set(this.outputViews[--outputViewsNeeded])}}}stackRestore(oldStackPtr);return!!didProduceAudio}}return WasmAudioWorkletProcessor}var port=globalThis.port||{};class BootstrapMessages extends AudioWorkletProcessor{constructor(arg){super();startWasmWorker(arg.processorOptions);if(!(port instanceof MessagePort)){this.port.onmessage=port.onmessage;port=this.port}}process(){}}registerProcessor("em-bootstrap",BootstrapMessages);port.onmessage=async msg=>{let d=msg.data;if(d["_boot"]){startWasmWorker(d)}else if(d["_wpn"]){registerProcessor(d["_wpn"],createWasmAudioWorkletProcessor(d.audioParams));port.postMessage({_wsc:d.callback,args:[d.contextHandle,1,d.userData]})}else if(d["_wsc"]){getWasmTableEntry(d["_wsc"])(...d.args)}}}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var HEAP64,HEAPU64;var runtimeInitialized=false;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);HEAPU16=new Uint16Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b);HEAPU64=new BigUint64Array(b)}function initMemory(){if(ENVIRONMENT_IS_WASM_WORKER){return}if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||134217728;wasmMemory=new WebAssembly.Memory({initial:INITIAL_MEMORY/65536,maximum:32768,shared:true})}updateMemoryViews()}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_WASM_WORKER)return _wasmWorkerInitializeRuntime();wasmExports["D"]()}function postRun(){if(ENVIRONMENT_IS_WASM_WORKER){return}if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(onPostRuns)}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject?.(e);throw e}var wasmBinaryFile;function findWasmBinary(){return locateFile("amy.wasm")}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE){try{var response=fetch(binaryFile,{credentials:"same-origin"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){assignWasmImports();var imports={a:wasmImports};return imports}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;wasmExports=Asyncify.instrumentWasmExports(wasmExports);assignWasmExports(wasmExports);wasmModule=module;return wasmExports}function receiveInstantiationResult(result){return receiveInstance(result["instance"],result["module"])}var info=getWasmImports();if(Module["instantiateWasm"]){return new Promise((resolve,reject)=>{Module["instantiateWasm"](info,(inst,mod)=>{resolve(receiveInstance(inst,mod))})})}if(ENVIRONMENT_IS_WASM_WORKER){var instance=new WebAssembly.Instance(wasmModule,getWasmImports());return receiveInstance(instance,wasmModule)}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}class ExitStatus{name="ExitStatus";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var _wasmWorkerDelayedMessageQueue=[];var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module["onExit"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var _exit=exitJS;var maybeExit=()=>{if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};var wasmTableMirror=[];var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func};var _wasmWorkerRunPostMessage=e=>{let data=e.data;let wasmCall=data["_wsc"];wasmCall&&callUserCallback(()=>getWasmTableEntry(wasmCall)(...data["x"]))};var _wasmWorkerAppendToQueue=e=>{_wasmWorkerDelayedMessageQueue.push(e)};var _wasmWorkerInitializeRuntime=()=>{noExitRuntime=1;__emscripten_wasm_worker_initialize(wwParams.stackLowestAddress,wwParams.stackSize);__embind_initialize_bindings();if(!ENVIRONMENT_IS_AUDIO_WORKLET){removeEventListener("message",_wasmWorkerAppendToQueue);_wasmWorkerDelayedMessageQueue=_wasmWorkerDelayedMessageQueue.forEach(_wasmWorkerRunPostMessage);addEventListener("message",_wasmWorkerRunPostMessage)}};var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);var dynCalls={};var noExitRuntime=true;var stackRestore=val=>__emscripten_stack_restore(val);var stackSave=()=>_emscripten_stack_get_current();var wasmMemory;var UTF8Decoder=globalThis.TextDecoder&&new TextDecoder;var findStringEnd=(heapOrArray,idx,maxBytesToRead,ignoreNul)=>{var maxIdx=idx+maxBytesToRead;if(ignoreNul)return maxIdx;while(heapOrArray[idx]&&!(idx>=maxIdx))++idx;return idx};var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead,ignoreNul)=>{var endPtr=findStringEnd(heapOrArray,idx,maxBytesToRead,ignoreNul);if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.buffer instanceof ArrayBuffer?heapOrArray.subarray(idx,endPtr):heapOrArray.slice(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>ptr?UTF8ArrayToString((growMemViews(),HEAPU8),ptr,maxBytesToRead,ignoreNul):"";var ___assert_fail=(condition,filename,line,func)=>abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"]);var __abort_js=()=>abort("");var AsciiToString=ptr=>{var str="";while(1){var ch=(growMemViews(),HEAPU8)[ptr++];if(!ch)return str;str+=String.fromCharCode(ch)}};var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var BindingError=class BindingError extends Error{constructor(message){super(message);this.name="BindingError"}};var throwBindingError=message=>{throw new BindingError(message)};function sharedRegisterType(rawType,registeredInstance,options={}){var name=registeredInstance.name;if(!rawType){throwBindingError(`type "${name}" must have a positive integer typeid pointer`)}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError(`Cannot register type '${name}' twice`)}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function registerType(rawType,registeredInstance,options={}){return sharedRegisterType(rawType,registeredInstance,options)}var integerReadValueFromPointer=(name,width,signed)=>{switch(width){case 1:return signed?pointer=>(growMemViews(),HEAP8)[pointer]:pointer=>(growMemViews(),HEAPU8)[pointer];case 2:return signed?pointer=>(growMemViews(),HEAP16)[pointer>>1]:pointer=>(growMemViews(),HEAPU16)[pointer>>1];case 4:return signed?pointer=>(growMemViews(),HEAP32)[pointer>>2]:pointer=>(growMemViews(),HEAPU32)[pointer>>2];case 8:return signed?pointer=>(growMemViews(),HEAP64)[pointer>>3]:pointer=>(growMemViews(),HEAPU64)[pointer>>3];default:throw new TypeError(`invalid integer width (${width}): ${name}`)}};var __embind_register_bigint=(primitiveType,name,size,minRange,maxRange)=>{name=AsciiToString(name);const isUnsignedType=minRange===0n;let fromWireType=value=>value;if(isUnsignedType){const bitSize=size*8;fromWireType=value=>BigInt.asUintN(bitSize,value);maxRange=fromWireType(maxRange)}registerType(primitiveType,{name,fromWireType,toWireType:(destructors,value)=>{if(typeof value=="number"){value=BigInt(value)}return value},readValueFromPointer:integerReadValueFromPointer(name,size,!isUnsignedType),destructorFunction:null})};var __embind_register_bool=(rawType,name,trueValue,falseValue)=>{name=AsciiToString(name);registerType(rawType,{name,fromWireType:function(wt){return!!wt},toWireType:function(destructors,o){return o?trueValue:falseValue},readValueFromPointer:function(pointer){return this.fromWireType((growMemViews(),HEAPU8)[pointer])},destructorFunction:null})};var emval_freelist=[];var emval_handles=[0,1,,1,null,1,true,1,false,1];var __emval_decref=handle=>{if(handle>9&&0===--emval_handles[handle+1]){emval_handles[handle]=undefined;emval_freelist.push(handle)}};var Emval={toValue:handle=>{if(!handle){throwBindingError(`Cannot use deleted val. handle = ${handle}`)}return emval_handles[handle]},toHandle:value=>{switch(value){case undefined:return 2;case null:return 4;case true:return 6;case false:return 8;default:{const handle=emval_freelist.pop()||emval_handles.length;emval_handles[handle]=value;emval_handles[handle+1]=1;return handle}}}};function readPointer(pointer){return this.fromWireType((growMemViews(),HEAPU32)[pointer>>2])}var EmValType={name:"emscripten::val",fromWireType:handle=>{var rv=Emval.toValue(handle);__emval_decref(handle);return rv},toWireType:(destructors,value)=>Emval.toHandle(value),readValueFromPointer:readPointer,destructorFunction:null};var __embind_register_emval=rawType=>registerType(rawType,EmValType);var floatReadValueFromPointer=(name,width)=>{switch(width){case 4:return function(pointer){return this.fromWireType((growMemViews(),HEAPF32)[pointer>>2])};case 8:return function(pointer){return this.fromWireType((growMemViews(),HEAPF64)[pointer>>3])};default:throw new TypeError(`invalid float width (${width}): ${name}`)}};var __embind_register_float=(rawType,name,size)=>{name=AsciiToString(name);registerType(rawType,{name,fromWireType:value=>value,toWireType:(destructors,value)=>value,readValueFromPointer:floatReadValueFromPointer(name,size),destructorFunction:null})};var __embind_register_integer=(primitiveType,name,size,minRange,maxRange)=>{name=AsciiToString(name);const isUnsignedType=minRange===0;let fromWireType=value=>value;if(isUnsignedType){var bitshift=32-8*size;fromWireType=value=>value<>>bitshift;maxRange=fromWireType(maxRange)}registerType(primitiveType,{name,fromWireType,toWireType:(destructors,value)=>value,readValueFromPointer:integerReadValueFromPointer(name,size,minRange!==0),destructorFunction:null})};var __embind_register_memory_view=(rawType,dataTypeIndex,name)=>{var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){var size=(growMemViews(),HEAPU32)[handle>>2];var data=(growMemViews(),HEAPU32)[handle+4>>2];return new TA((growMemViews(),HEAP8).buffer,data,size)}name=AsciiToString(name);registerType(rawType,{name,fromWireType:decodeMemoryView,readValueFromPointer:decodeMemoryView},{ignoreDuplicateRegistrations:true})};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63;i++}}heap[outIdx]=0;return outIdx-startIdx};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,(growMemViews(),HEAPU8),outPtr,maxBytesToWrite);var lengthBytesUTF8=str=>{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var __embind_register_std_string=(rawType,name)=>{name=AsciiToString(name);var stdStringIsUTF8=true;registerType(rawType,{name,fromWireType(value){var length=(growMemViews(),HEAPU32)[value>>2];var payload=value+4;var str;if(stdStringIsUTF8){str=UTF8ToString(payload,length,true)}else{str="";for(var i=0;i>2]=length;if(valueIsOfTypeString){if(stdStringIsUTF8){stringToUTF8(value,ptr,length+1)}else{for(var i=0;i255){_free(base);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}(growMemViews(),HEAPU8)[ptr+i]=charCode}}}else{(growMemViews(),HEAPU8).set(value,ptr)}if(destructors!==null){destructors.push(_free,base)}return base},readValueFromPointer:readPointer,destructorFunction(ptr){_free(ptr)}})};var UTF16Decoder=globalThis.TextDecoder?new TextDecoder("utf-16le"):undefined;var UTF16ToString=(ptr,maxBytesToRead,ignoreNul)=>{var idx=ptr>>1;var endIdx=findStringEnd((growMemViews(),HEAPU16),idx,maxBytesToRead/2,ignoreNul);if(endIdx-idx>16&&UTF16Decoder)return UTF16Decoder.decode((growMemViews(),HEAPU16).slice(idx,endIdx));var str="";for(var i=idx;i{maxBytesToWrite??=2147483647;if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}(growMemViews(),HEAP16)[outPtr>>1]=0;return outPtr-startPtr};var lengthBytesUTF16=str=>str.length*2;var UTF32ToString=(ptr,maxBytesToRead,ignoreNul)=>{var str="";var startIdx=ptr>>2;for(var i=0;!(i>=maxBytesToRead/4);i++){var utf32=(growMemViews(),HEAPU32)[startIdx+i];if(!utf32&&!ignoreNul)break;str+=String.fromCodePoint(utf32)}return str};var stringToUTF32=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i65535){i++}(growMemViews(),HEAP32)[outPtr>>2]=codePoint;outPtr+=4;if(outPtr+4>endPtr)break}(growMemViews(),HEAP32)[outPtr>>2]=0;return outPtr-startPtr};var lengthBytesUTF32=str=>{var len=0;for(var i=0;i65535){i++}len+=4}return len};var __embind_register_std_wstring=(rawType,charSize,name)=>{name=AsciiToString(name);var decodeString,encodeString,lengthBytesUTF;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16}else{decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32}registerType(rawType,{name,fromWireType:value=>{var length=(growMemViews(),HEAPU32)[value>>2];var str=decodeString(value+4,length*charSize,true);_free(value);return str},toWireType:(destructors,value)=>{if(!(typeof value=="string")){throwBindingError(`Cannot pass non-string to C++ string type ${name}`)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);(growMemViews(),HEAPU32)[ptr>>2]=length/charSize;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},readValueFromPointer:readPointer,destructorFunction(ptr){_free(ptr)}})};var __embind_register_void=(rawType,name)=>{name=AsciiToString(name);registerType(rawType,{isVoid:true,name,fromWireType:()=>undefined,toWireType:(destructors,o)=>undefined})};var _emscripten_get_now;if(globalThis.performance&&performance.now){_emscripten_get_now=()=>performance.now()}else{_emscripten_get_now=Date.now}var nowIsMonotonic=!!globalThis.performance?.now;var INT53_MAX=9007199254740992;var INT53_MIN=-9007199254740992;var bigintToI53Checked=num=>numINT53_MAX?NaN:Number(num);var readEmAsmArgsArray=[];var readEmAsmArgs=(sigPtr,buf)=>{readEmAsmArgsArray.length=0;var ch;while(ch=(growMemViews(),HEAPU8)[sigPtr++]){var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?(growMemViews(),HEAPU32)[buf>>2]:ch==106?(growMemViews(),HEAP64)[buf>>3]:ch==105?(growMemViews(),HEAP32)[buf>>2]:(growMemViews(),HEAPF64)[buf>>3]);buf+=wide?8:4}return readEmAsmArgsArray};var runEmAsmFunction=(code,sigPtr,argbuf)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code](...args)};var _emscripten_asm_const_double=(code,sigPtr,argbuf)=>runEmAsmFunction(code,sigPtr,argbuf);var _emscripten_asm_const_int=(code,sigPtr,argbuf)=>runEmAsmFunction(code,sigPtr,argbuf);var _emscripten_set_main_loop_timing=(mode,value)=>{MainLoop.timingMode=mode;MainLoop.timingValue=value;if(!MainLoop.func){return 1}if(!MainLoop.running){MainLoop.running=true}if(mode==0){MainLoop.scheduler=function MainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,MainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(MainLoop.runner,timeUntilNextTick)};MainLoop.method="timeout"}else if(mode==1){MainLoop.scheduler=function MainLoop_scheduler_rAF(){MainLoop.requestAnimationFrame(MainLoop.runner)};MainLoop.method="rAF"}else if(mode==2){if(!MainLoop.setImmediate){if(globalThis.setImmediate){MainLoop.setImmediate=setImmediate}else{var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var MainLoop_setImmediate_messageHandler=event=>{if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",MainLoop_setImmediate_messageHandler,true);MainLoop.setImmediate=func=>{setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){Module["setImmediates"]??=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}}MainLoop.scheduler=function MainLoop_scheduler_setImmediate(){MainLoop.setImmediate(MainLoop.runner)};MainLoop.method="immediate"}return 0};var setMainLoop=(iterFunc,fps,simulateInfiniteLoop,arg,noSetTiming)=>{MainLoop.func=iterFunc;MainLoop.arg=arg;var thisMainLoopId=MainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=MainLoop.queue.shift();blocker.func(blocker.arg);if(MainLoop.remainingBlockers){var remaining=MainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){MainLoop.remainingBlockers=next}else{next=next+.5;MainLoop.remainingBlockers=(8*remaining+next)/9}}MainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(MainLoop.runner,0);return}if(!checkIsRunning())return;MainLoop.currentFrameNumber=MainLoop.currentFrameNumber+1|0;if(MainLoop.timingMode==1&&MainLoop.timingValue>1&&MainLoop.currentFrameNumber%MainLoop.timingValue!=0){MainLoop.scheduler();return}else if(MainLoop.timingMode==0){MainLoop.tickStartTime=_emscripten_get_now()}MainLoop.runIter(iterFunc);if(!checkIsRunning())return;MainLoop.scheduler()};if(!noSetTiming){if(fps>0){_emscripten_set_main_loop_timing(0,1e3/fps)}else{_emscripten_set_main_loop_timing(1,1)}MainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}};var MainLoop={running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],preMainLoop:[],postMainLoop:[],pause(){MainLoop.scheduler=null;MainLoop.currentlyRunningMainloop++},resume(){MainLoop.currentlyRunningMainloop++;var timingMode=MainLoop.timingMode;var timingValue=MainLoop.timingValue;var func=MainLoop.func;MainLoop.func=null;setMainLoop(func,0,false,MainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);MainLoop.scheduler()},updateStatus(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=MainLoop.remainingBlockers??0;var expected=MainLoop.expectedBlockers??0;if(remaining){if(remaining=MainLoop.nextRAF){MainLoop.nextRAF+=1e3/60}}var delay=Math.max(MainLoop.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame(func){if(globalThis.requestAnimationFrame){requestAnimationFrame(func)}else{MainLoop.fakeRequestAnimationFrame(func)}}};var _emscripten_cancel_main_loop=()=>{MainLoop.pause();MainLoop.func=null};var emAudio={};var emAudioCounter=0;var emscriptenRegisterAudioObject=object=>{emAudio[++emAudioCounter]=object;return emAudioCounter};var emscriptenGetAudioObject=objectHandle=>emAudio[objectHandle];var _emscripten_create_audio_context=options=>{var ctx=window.AudioContext||window.webkitAudioContext;function readRenderSizeHint(val){return val<0?"hardware":val||"default"}var opts=options?{latencyHint:UTF8ToString((growMemViews(),HEAPU32)[options>>2])||undefined,sampleRate:(growMemViews(),HEAPU32)[options+4>>2]||undefined,renderSizeHint:readRenderSizeHint((growMemViews(),HEAP32)[options+8>>2])}:undefined;return ctx&&emscriptenRegisterAudioObject(new ctx(opts))};var emscriptenGetContextQuantumSize=contextHandle=>emAudio[contextHandle]["renderQuantumSize"]||128;var _emscripten_create_wasm_audio_worklet_node=(contextHandle,name,options,callback,userData)=>{function readChannelCountArray(heapIndex,numOutputs){if(!heapIndex)return undefined;heapIndex=heapIndex>>2;var channelCounts=[];while(numOutputs--)channelCounts.push((growMemViews(),HEAPU32)[heapIndex++]);return channelCounts}var optionsOutputs=options?(growMemViews(),HEAP32)[options+4>>2]:0;var opts=options?{numberOfInputs:(growMemViews(),HEAP32)[options>>2],numberOfOutputs:optionsOutputs,outputChannelCount:readChannelCountArray((growMemViews(),HEAPU32)[options+8>>2],optionsOutputs),channelCount:(growMemViews(),HEAPU32)[options+12>>2]||undefined,channelCountMode:[,"clamped-max","explicit"][(growMemViews(),HEAP32)[options+16>>2]],channelInterpretation:[,"discrete"][(growMemViews(),HEAP32)[options+20>>2]],processorOptions:{callback,userData,samplesPerChannel:emscriptenGetContextQuantumSize(contextHandle)}}:undefined;return emscriptenRegisterAudioObject(new AudioWorkletNode(emAudio[contextHandle],UTF8ToString(name),opts))};var _emscripten_create_wasm_audio_worklet_processor_async=(contextHandle,options,callback,userData)=>{var processorName=UTF8ToString((growMemViews(),HEAPU32)[options>>2]);var numAudioParams=(growMemViews(),HEAP32)[options+4>>2];var audioParamDescriptors=(growMemViews(),HEAPU32)[options+8>>2];var audioParams=[];var paramIndex=0;while(numAudioParams--){audioParams.push({name:paramIndex++,defaultValue:(growMemViews(),HEAPF32)[audioParamDescriptors>>2],minValue:(growMemViews(),HEAPF32)[audioParamDescriptors+4>>2],maxValue:(growMemViews(),HEAPF32)[audioParamDescriptors+8>>2],automationRate:((growMemViews(),HEAP32)[audioParamDescriptors+12>>2]?"k":"a")+"-rate"});audioParamDescriptors+=16}emAudio[contextHandle].audioWorklet["port"].postMessage({_wpn:processorName,audioParams,contextHandle,callback,userData})};var _emscripten_destroy_audio_context=contextHandle=>{emAudio[contextHandle].suspend();delete emAudio[contextHandle]};var _emscripten_destroy_web_audio_node=objectHandle=>{emAudio[objectHandle].disconnect();delete emAudio[objectHandle]};var getHeapMax=()=>2147483648;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=(growMemViews(),HEAPU8).length;requestedSize>>>=0;if(requestedSize<=oldSize){return false}var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var _emscripten_set_main_loop=(func,fps,simulateInfiniteLoop)=>{var iterFunc=()=>dynCall_v(func);setMainLoop(iterFunc,fps,simulateInfiniteLoop)};var safeSetTimeout=(func,timeout)=>setTimeout(()=>{callUserCallback(func)},timeout);var _emscripten_sleep=ms=>Asyncify.handleSleep(wakeUp=>safeSetTimeout(wakeUp,ms));_emscripten_sleep.isAsync=true;var _wasmWorkersID=1;var _emAudioDispatchProcessorCallback=e=>{var data=e.data;var wasmCall=data["_wsc"];wasmCall&&getWasmTableEntry(wasmCall)(...data.args)};var stackAlloc=sz=>__emscripten_stack_alloc(sz);var _emscripten_start_wasm_audio_worklet_thread_async=(contextHandle,stackLowestAddress,stackSize,callback,userData)=>{var audioContext=emAudio[contextHandle];var audioWorklet=audioContext.audioWorklet;var audioWorkletCreationFailed=()=>{((a1,a2,a3)=>dynCall_viii(callback,a1,a2,a3))(contextHandle,0,userData)};if(!audioWorklet){return audioWorkletCreationFailed()}audioWorklet.addModule(locateFile("amy.js")).then(()=>{if(!audioWorklet["port"]){audioWorklet["port"]={postMessage:msg=>{if(msg["_boot"]){audioWorklet.bootstrapMessage=new AudioWorkletNode(audioContext,"em-bootstrap",{processorOptions:msg});audioWorklet.bootstrapMessage["port"].onmessage=msg=>{audioWorklet["port"].onmessage(msg)}}else{audioWorklet.bootstrapMessage["port"].postMessage(msg)}}}}audioWorklet["port"].postMessage({_boot:1,wwID:_wasmWorkersID++,wasm:wasmModule,wasmMemory,stackLowestAddress,stackSize});audioWorklet["port"].onmessage=_emAudioDispatchProcessorCallback;((a1,a2,a3)=>dynCall_viii(callback,a1,a2,a3))(contextHandle,1,userData)}).catch(audioWorkletCreationFailed)};var _fd_close=fd=>52;function _fd_seek(fd,offset,whence,newOffset){offset=bigintToI53Checked(offset);return 70}var printCharBuffers=[null,[],[]];var printChar=(stream,curr)=>{var buffer=printCharBuffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer));buffer.length=0}else{buffer.push(curr)}};var _fd_write=(fd,iov,iovcnt,pnum)=>{var num=0;for(var i=0;i>2];var len=(growMemViews(),HEAPU32)[iov+4>>2];iov+=8;for(var j=0;j>2]=num;return 0};var runAndAbortIfError=func=>{try{return func()}catch(e){abort(e)}};var runtimeKeepalivePush=()=>{runtimeKeepaliveCounter+=1};var runtimeKeepalivePop=()=>{runtimeKeepaliveCounter-=1};var Asyncify={instrumentWasmImports(imports){var importPattern=/^(invoke_.*|__asyncjs__.*)$/;for(let[x,original]of Object.entries(imports)){if(typeof original=="function"){let isAsyncifyImport=original.isAsync||importPattern.test(x)}}},instrumentFunction(original){var wrapper=(...args)=>{Asyncify.exportCallStack.push(original);try{return original(...args)}finally{if(!ABORT){var top=Asyncify.exportCallStack.pop();Asyncify.maybeStopUnwind()}}};Asyncify.funcWrappers.set(original,wrapper);return wrapper},instrumentWasmExports(exports){var ret={};for(let[x,original]of Object.entries(exports)){if(typeof original=="function"){var wrapper=Asyncify.instrumentFunction(original);ret[x]=wrapper}else{ret[x]=original}}return ret},State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:128e3,currData:null,handleSleepReturnValue:0,exportCallStack:[],callstackFuncToId:new Map,callStackIdToFunc:new Map,funcWrappers:new Map,callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId(func){if(!Asyncify.callstackFuncToId.has(func)){var id=Asyncify.callStackId++;Asyncify.callstackFuncToId.set(func,id);Asyncify.callStackIdToFunc.set(id,func)}return Asyncify.callstackFuncToId.get(func)},maybeStopUnwind(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(_asyncify_stop_unwind);if(typeof Fibers!="undefined"){Fibers.trampoline()}}},whenDone(){return new Promise((resolve,reject)=>{Asyncify.asyncPromiseHandlers={resolve,reject}})},allocateData(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader(ptr,stack,stackSize){(growMemViews(),HEAPU32)[ptr>>2]=stack;(growMemViews(),HEAPU32)[ptr+4>>2]=stack+stackSize},setDataRewindFunc(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);(growMemViews(),HEAP32)[ptr+8>>2]=rewindId},getDataRewindFunc(ptr){var id=(growMemViews(),HEAP32)[ptr+8>>2];var func=Asyncify.callStackIdToFunc.get(id);return func},doRewind(ptr){var original=Asyncify.getDataRewindFunc(ptr);var func=Asyncify.funcWrappers.get(original);return func()},handleSleep(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync((handleSleepReturnValue=0)=>{if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(()=>_asyncify_start_rewind(Asyncify.currData));if(typeof MainLoop!="undefined"&&MainLoop.func){MainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();if(typeof MainLoop!="undefined"&&MainLoop.func){MainLoop.pause()}runAndAbortIfError(()=>_asyncify_start_unwind(Asyncify.currData))}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(_asyncify_stop_rewind);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(callUserCallback)}else{abort(`invalid state: ${Asyncify.state}`)}return Asyncify.handleSleepReturnValue},handleAsync:startAsync=>Asyncify.handleSleep(wakeUp=>{startAsync().then(wakeUp)})};var getCFunc=ident=>{var func=Module["_"+ident];return func};var writeArrayToMemory=(array,buffer)=>{(growMemViews(),HEAP8).set(array,buffer)};var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i{var numericArgs=!argTypes||argTypes.every(type=>type==="number"||type==="boolean");var numericRet=returnType!=="string";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return(...args)=>ccall(ident,returnType,argTypes,args,opts)};Module["requestAnimationFrame"]=MainLoop.requestAnimationFrame;Module["pauseMainLoop"]=MainLoop.pause;Module["resumeMainLoop"]=MainLoop.resume;MainLoop.init();{initMemory();if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(Module["print"])out=Module["print"];if(Module["printErr"])err=Module["printErr"];if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].shift()()}}}Module["wasmMemory"]=wasmMemory;Module["ccall"]=ccall;Module["cwrap"]=cwrap;var ASM_CONSTS={4502452:()=>typeof amy_render_js_hook==="function"?1:0,4502513:($0,$1,$2,$3,$4)=>{if(!Module.wasmMemory)Module.wasmMemory=wasmMemory;return amy_render_js_hook($0,$1,$2,$3,$4,Module)},4502628:()=>{if(typeof amy_block_processed_js_hook==="function"){amy_block_processed_js_hook()}},4502721:($0,$1,$2,$3)=>{if(typeof amy_bus_postprocess_js_hook==="function"){if(!Module.wasmMemory)Module.wasmMemory=wasmMemory;amy_bus_postprocess_js_hook($0,$1,$2,$3,Module)}},4502893:($0,$1)=>{if(typeof amy_shared_open==="function"){return amy_shared_open(UTF8ToString($0),UTF8ToString($1))}return 0},4503014:$0=>{if(typeof amy_shared_close==="function"){amy_shared_close($0)}},4503088:($0,$1,$2,$3)=>{if(typeof amy_shared_read==="function"){return amy_shared_read($0,$1,$2,$3)}return 0},4503189:($0,$1,$2)=>{if(typeof amy_shared_write==="function"){return amy_shared_write($0,$1,$2)}return 0},4503288:$0=>{if(typeof amy_shared_close==="function"){amy_shared_close($0)}},4503362:$0=>{if(typeof amy_sequencer_js_hook==="function"){amy_sequencer_js_hook($0)}},4503445:()=>{if(typeof cv_1_voltage!="undefined"){return cv_1_voltage}else{return 0}},4503532:()=>{if(typeof cv_2_voltage!="undefined"){return cv_2_voltage}else{return 0}},4503619:($0,$1,$2,$3,$4)=>{if(typeof window==="undefined"||(window.AudioContext||window.webkitAudioContext)===undefined){return 0}if(typeof window.miniaudio==="undefined"){window.miniaudio={referenceCount:0};window.miniaudio.device_type={};window.miniaudio.device_type.playback=$0;window.miniaudio.device_type.capture=$1;window.miniaudio.device_type.duplex=$2;window.miniaudio.device_state={};window.miniaudio.device_state.stopped=$3;window.miniaudio.device_state.started=$4;miniaudio.devices=[];miniaudio.track_device=function(device){for(var iDevice=0;iDevice0){if(miniaudio.devices[miniaudio.devices.length-1]==null){miniaudio.devices.pop()}else{break}}};miniaudio.untrack_device=function(device){for(var iDevice=0;iDevice{Module._ma_device__on_notification_unlocked(device.pDevice)},error=>{console.error("Failed to resume audiocontext",error)})}}miniaudio.unlock_event_types.map(function(event_type){document.removeEventListener(event_type,miniaudio.unlock,true)})};miniaudio.unlock_event_types.map(function(event_type){document.addEventListener(event_type,miniaudio.unlock,true)})}window.miniaudio.referenceCount+=1;return 1},4505777:()=>{if(typeof window.miniaudio!=="undefined"){window.miniaudio.referenceCount-=1;if(window.miniaudio.referenceCount===0){delete window.miniaudio}}},4505941:()=>navigator.mediaDevices!==undefined&&navigator.mediaDevices.getUserMedia!==undefined,4506045:()=>{try{var temp=new(window.AudioContext||window.webkitAudioContext);var sampleRate=temp.sampleRate;temp.close();return sampleRate}catch(e){return 0}},4506216:$0=>miniaudio.track_device({webaudio:emscriptenGetAudioObject($0),state:1}),4506305:($0,$1)=>{var getUserMediaResult=0;var audioWorklet=emscriptenGetAudioObject($0);var audioContext=emscriptenGetAudioObject($1);navigator.mediaDevices.getUserMedia({audio:true,video:false}).then(function(stream){audioContext.streamNode=audioContext.createMediaStreamSource(stream);audioContext.streamNode.connect(audioWorklet);audioWorklet.connect(audioContext.destination);getUserMediaResult=0}).catch(function(error){console.log("navigator.mediaDevices.getUserMedia Failed: "+error);getUserMediaResult=-1});return getUserMediaResult},4506867:($0,$1)=>{var audioWorklet=emscriptenGetAudioObject($0);var audioContext=emscriptenGetAudioObject($1);audioWorklet.connect(audioContext.destination);return 0},4507027:$0=>emscriptenGetAudioObject($0).sampleRate,4507079:$0=>{var device=miniaudio.get_device_by_index($0);if(device.streamNode!==undefined){device.streamNode.disconnect();device.streamNode=undefined}},4507235:$0=>{miniaudio.untrack_device_by_index($0)},4507278:$0=>{var device=miniaudio.get_device_by_index($0);device.webaudio.resume();device.state=miniaudio.device_state.started},4507403:$0=>{var device=miniaudio.get_device_by_index($0);device.webaudio.suspend();device.state=miniaudio.device_state.stopped},4507529:($0,$1,$2)=>{if(typeof amy_external_midi_input_js_hook==="function"){amy_external_midi_input_js_hook((growMemViews(),HEAPU8).subarray($0,$0+$1),$1,$2)}},4507660:($0,$1)=>{if(midiOutputDevice!=null){midiOutputDevice.send((growMemViews(),HEAPU8).subarray($0,$0+$1))}}};var _free,_malloc,_amy_set_render_load_threshold,_amy_sysclock,_amy_add_event,_cos_lut,_yield_synth_commands,_size_of_amy_event,_amy_dump_state_to_string,_sequencer_ticks,_ma_device__on_notification_unlocked,_ma_malloc_emscripten,_ma_free_emscripten,_ma_device_process_pcm_frames_capture__webaudio,_ma_device_process_pcm_frames_playback__webaudio,_amy_live_start_web_audioin,_amy_live_start_web,_amy_live_stop,_amy_add_message,_amy_process_single_midi_byte,_amy_get_output_buffer,_amy_get_input_buffer,_amy_set_external_input_buffer,_amy_set_external_hook_context,_amy_get_external_hook_context,_amy_send_wire_from_sysex,_amy_start_web,_amy_bleep,_amy_start_web_no_synths,_amy_get_render_load,_set_cv_from_osc,__embind_initialize_bindings,__emscripten_stack_restore,__emscripten_stack_alloc,_emscripten_stack_get_current,__emscripten_wasm_worker_initialize,dynCall_iiii,dynCall_iii,dynCall_vi,dynCall_vii,dynCall_ii,dynCall_iiiii,dynCall_viii,dynCall_viiii,dynCall_v,dynCall_iiiiiiii,dynCall_iiiji,dynCall_iiiiiii,dynCall_jii,dynCall_fi,dynCall_jiji,dynCall_iidiiii,dynCall_viiiiii,dynCall_viiiii,_asyncify_start_unwind,_asyncify_stop_unwind,_asyncify_start_rewind,_asyncify_stop_rewind,__indirect_function_table,wasmTable;function assignWasmExports(wasmExports){_free=Module["_free"]=wasmExports["E"];_malloc=Module["_malloc"]=wasmExports["F"];_amy_set_render_load_threshold=Module["_amy_set_render_load_threshold"]=wasmExports["H"];_amy_sysclock=Module["_amy_sysclock"]=wasmExports["I"];_amy_add_event=Module["_amy_add_event"]=wasmExports["J"];_cos_lut=Module["_cos_lut"]=wasmExports["K"];_yield_synth_commands=Module["_yield_synth_commands"]=wasmExports["L"];_size_of_amy_event=Module["_size_of_amy_event"]=wasmExports["M"];_amy_dump_state_to_string=Module["_amy_dump_state_to_string"]=wasmExports["N"];_sequencer_ticks=Module["_sequencer_ticks"]=wasmExports["O"];_ma_device__on_notification_unlocked=Module["_ma_device__on_notification_unlocked"]=wasmExports["P"];_ma_malloc_emscripten=Module["_ma_malloc_emscripten"]=wasmExports["Q"];_ma_free_emscripten=Module["_ma_free_emscripten"]=wasmExports["R"];_ma_device_process_pcm_frames_capture__webaudio=Module["_ma_device_process_pcm_frames_capture__webaudio"]=wasmExports["S"];_ma_device_process_pcm_frames_playback__webaudio=Module["_ma_device_process_pcm_frames_playback__webaudio"]=wasmExports["T"];_amy_live_start_web_audioin=Module["_amy_live_start_web_audioin"]=wasmExports["U"];_amy_live_start_web=Module["_amy_live_start_web"]=wasmExports["V"];_amy_live_stop=Module["_amy_live_stop"]=wasmExports["W"];_amy_add_message=Module["_amy_add_message"]=wasmExports["X"];_amy_process_single_midi_byte=Module["_amy_process_single_midi_byte"]=wasmExports["Y"];_amy_get_output_buffer=Module["_amy_get_output_buffer"]=wasmExports["Z"];_amy_get_input_buffer=Module["_amy_get_input_buffer"]=wasmExports["_"];_amy_set_external_input_buffer=Module["_amy_set_external_input_buffer"]=wasmExports["$"];_amy_set_external_hook_context=Module["_amy_set_external_hook_context"]=wasmExports["aa"];_amy_get_external_hook_context=Module["_amy_get_external_hook_context"]=wasmExports["ba"];_amy_send_wire_from_sysex=Module["_amy_send_wire_from_sysex"]=wasmExports["ca"];_amy_start_web=Module["_amy_start_web"]=wasmExports["da"];_amy_bleep=Module["_amy_bleep"]=wasmExports["ea"];_amy_start_web_no_synths=Module["_amy_start_web_no_synths"]=wasmExports["fa"];_amy_get_render_load=Module["_amy_get_render_load"]=wasmExports["ga"];_set_cv_from_osc=Module["_set_cv_from_osc"]=wasmExports["ha"];__embind_initialize_bindings=wasmExports["ia"];__emscripten_stack_restore=wasmExports["ja"];__emscripten_stack_alloc=wasmExports["ka"];_emscripten_stack_get_current=wasmExports["la"];__emscripten_wasm_worker_initialize=wasmExports["ma"];dynCall_iiii=dynCalls["iiii"]=wasmExports["na"];dynCall_iii=dynCalls["iii"]=wasmExports["oa"];dynCall_vi=dynCalls["vi"]=wasmExports["pa"];dynCall_vii=dynCalls["vii"]=wasmExports["qa"];dynCall_ii=dynCalls["ii"]=wasmExports["ra"];dynCall_iiiii=dynCalls["iiiii"]=wasmExports["sa"];dynCall_viii=dynCalls["viii"]=wasmExports["ta"];dynCall_viiii=dynCalls["viiii"]=wasmExports["ua"];dynCall_v=dynCalls["v"]=wasmExports["va"];dynCall_iiiiiiii=dynCalls["iiiiiiii"]=wasmExports["wa"];dynCall_iiiji=dynCalls["iiiji"]=wasmExports["xa"];dynCall_iiiiiii=dynCalls["iiiiiii"]=wasmExports["ya"];dynCall_jii=dynCalls["jii"]=wasmExports["za"];dynCall_fi=dynCalls["fi"]=wasmExports["Aa"];dynCall_jiji=dynCalls["jiji"]=wasmExports["Ba"];dynCall_iidiiii=dynCalls["iidiiii"]=wasmExports["Ca"];dynCall_viiiiii=dynCalls["viiiiii"]=wasmExports["Da"];dynCall_viiiii=dynCalls["viiiii"]=wasmExports["Ea"];_asyncify_start_unwind=wasmExports["Fa"];_asyncify_stop_unwind=wasmExports["Ga"];_asyncify_start_rewind=wasmExports["Ha"];_asyncify_stop_rewind=wasmExports["Ia"];__indirect_function_table=wasmTable=wasmExports["G"]}var wasmImports;function assignWasmImports(){wasmImports={b:___assert_fail,A:__abort_js,l:__embind_register_bigint,v:__embind_register_bool,t:__embind_register_emval,k:__embind_register_float,f:__embind_register_integer,d:__embind_register_memory_view,u:__embind_register_std_string,i:__embind_register_std_wstring,w:__embind_register_void,m:_emscripten_asm_const_double,c:_emscripten_asm_const_int,h:_emscripten_cancel_main_loop,r:_emscripten_create_audio_context,B:_emscripten_create_wasm_audio_worklet_node,C:_emscripten_create_wasm_audio_worklet_processor_async,g:_emscripten_destroy_audio_context,o:_emscripten_destroy_web_audio_node,e:_emscripten_get_now,x:_emscripten_resize_heap,j:_emscripten_set_main_loop,p:_emscripten_sleep,q:_emscripten_start_wasm_audio_worklet_thread_async,s:_exit,z:_fd_close,y:_fd_seek,n:_fd_write,a:wasmMemory}}function run(){if(ENVIRONMENT_IS_WASM_WORKER){readyPromiseResolve?.(Module);initRuntime();return}preRun();function doRun(){Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve?.(Module);Module["onRuntimeInitialized"]?.();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun()},1)}else{doRun()}}var wasmExports;if(!ENVIRONMENT_IS_WASM_WORKER){wasmExports=await (createWasm());run()}if(runtimeInitialized){moduleRtn=Module}else{moduleRtn=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject})} +var amyModule=(()=>{var _scriptName=globalThis.document?.currentScript?.src;return async function(moduleArg={}){var moduleRtn;var Module=moduleArg;var ENVIRONMENT_IS_WASM_WORKER=globalThis.name=="em-ww";var ENVIRONMENT_IS_AUDIO_WORKLET=!!globalThis.AudioWorkletGlobalScope;if(ENVIRONMENT_IS_AUDIO_WORKLET)ENVIRONMENT_IS_WASM_WORKER=true;var ENVIRONMENT_IS_WEB=!!globalThis.window;var ENVIRONMENT_IS_WORKER=!!globalThis.WorkerGlobalScope;var ENVIRONMENT_IS_NODE=globalThis.process?.versions?.node&&globalThis.process?.type!="renderer";if(ENVIRONMENT_IS_NODE){var worker_threads=require("worker_threads");global.Worker=worker_threads.Worker;ENVIRONMENT_IS_WORKER=!worker_threads.isMainThread;ENVIRONMENT_IS_WASM_WORKER=ENVIRONMENT_IS_WORKER&&worker_threads["workerData"]=="em-ww"}var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};if(typeof __filename!="undefined"){_scriptName=__filename}else if(ENVIRONMENT_IS_WORKER){_scriptName=self.location.href}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("fs");scriptDirectory=__dirname+"/";readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename);return ret};readAsync=async(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename,binary?undefined:"utf8");return ret};if(process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(".",_scriptName).href}catch{}{if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=async url=>{if(isFileURI(url)){return new Promise((resolve,reject)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){resolve(xhr.response);return}reject(xhr.status)};xhr.onerror=reject;xhr.send(null)})}var response=await fetch(url,{credentials:"same-origin"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+" : "+response.url)}}}else{}var defaultPrint=console.log.bind(console);var defaultPrintErr=console.error.bind(console);if(ENVIRONMENT_IS_NODE){var utils=require("util");var stringify=a=>typeof a=="object"?utils.inspect(a):a;defaultPrint=(...args)=>fs.writeSync(1,args.map(stringify).join(" ")+"\n");defaultPrintErr=(...args)=>fs.writeSync(2,args.map(stringify).join(" ")+"\n")}var out=defaultPrint;var err=defaultPrintErr;var wasmBinary;var wasmModule;var ABORT=false;var EXITSTATUS;var isFileURI=filename=>filename.startsWith("file://");function growMemViews(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}}var readyPromiseResolve,readyPromiseReject;if(ENVIRONMENT_IS_NODE&&ENVIRONMENT_IS_WASM_WORKER){var parentPort=worker_threads["parentPort"];parentPort.on("message",msg=>global.onmessage?.({data:msg}));Object.assign(globalThis,{self:global,postMessage:msg=>parentPort["postMessage"](msg)});process.on("uncaughtException",err=>{postMessage({cmd:"uncaughtException",error:err});process.exit(1)})}var wwParams;function startWasmWorker(props){wwParams=props;wasmMemory=props.wasmMemory;updateMemoryViews();wasmModule=props.wasm;createWasm();run();props.wasm=props.memMemory=0}if(ENVIRONMENT_IS_WASM_WORKER&&!ENVIRONMENT_IS_AUDIO_WORKLET){if(ENVIRONMENT_IS_NODE){var wrappedHandlers=new WeakMap;globalThis.onmessage=null;function wrapMsgHandler(h){var f=wrappedHandlers.get(h);if(!f){f=msg=>h({data:msg});wrappedHandlers.set(h,f)}return f}Object.assign(globalThis,{addEventListener:(name,handler)=>parentPort["on"](name,wrapMsgHandler(handler)),removeEventListener:(name,handler)=>parentPort["off"](name,wrapMsgHandler(handler))})}onmessage=d=>{onmessage=null;startWasmWorker(d.data)}}if(ENVIRONMENT_IS_AUDIO_WORKLET){function createWasmAudioWorkletProcessor(audioParams){class WasmAudioWorkletProcessor extends AudioWorkletProcessor{constructor(args){super();let opts=args.processorOptions;this.callback=(a1,a2,a3,a4,a5,a6,a7)=>dynCall_iiiiiiii(opts.callback,a1,a2,a3,a4,a5,a6,a7);this.userData=opts.userData;this.samplesPerChannel=opts.samplesPerChannel;this.bytesPerChannel=this.samplesPerChannel*4;this.outputViews=new Array(Math.min((wwParams.stackSize-16)/this.bytesPerChannel|0,64));this.createOutputViews()}createOutputViews(){var oldStackPtr=stackSave();var viewDataIdx=stackAlloc(this.outputViews.length*this.bytesPerChannel)>>2;for(var n=this.outputViews.length-1;n>=0;n--){this.outputViews[n]=(growMemViews(),HEAPF32).subarray(viewDataIdx,viewDataIdx+=this.samplesPerChannel)}stackRestore(oldStackPtr)}static get parameterDescriptors(){return audioParams}process(inputList,outputList,parameters){if((growMemViews(),HEAPF32).buffer!=this.outputViews[0].buffer){this.createOutputViews()}var numInputs=inputList.length;var numOutputs=outputList.length;var entry;var subentry;var stackMemoryStruct=(numInputs+numOutputs)*12;var stackMemoryData=0;for(entry of inputList){stackMemoryData+=entry.length}stackMemoryData*=this.bytesPerChannel;var outputViewsNeeded=0;for(entry of outputList){outputViewsNeeded+=entry.length}stackMemoryData+=outputViewsNeeded*this.bytesPerChannel;var numParams=0;for(entry in parameters){++numParams;stackMemoryStruct+=8;stackMemoryData+=parameters[entry].byteLength}var oldStackPtr=stackSave();var stackMemoryAligned=stackMemoryStruct+stackMemoryData+15&~15;var structPtr=stackAlloc(stackMemoryAligned);var dataPtr=structPtr+(stackMemoryAligned-stackMemoryData);var inputsPtr=structPtr;for(entry of inputList){(growMemViews(),HEAPU32)[structPtr>>2]=entry.length;(growMemViews(),HEAPU32)[structPtr+4>>2]=this.samplesPerChannel;(growMemViews(),HEAPU32)[structPtr+8>>2]=dataPtr;structPtr+=12;for(subentry of entry){(growMemViews(),HEAPF32).set(subentry,dataPtr>>2);dataPtr+=this.bytesPerChannel}}var paramsPtr=structPtr;for(entry=0;subentry=parameters[entry++];){(growMemViews(),HEAPU32)[structPtr>>2]=subentry.length;(growMemViews(),HEAPU32)[structPtr+4>>2]=dataPtr;structPtr+=8;(growMemViews(),HEAPF32).set(subentry,dataPtr>>2);dataPtr+=subentry.length*4}var outputsPtr=structPtr;for(entry of outputList){(growMemViews(),HEAPU32)[structPtr>>2]=entry.length;(growMemViews(),HEAPU32)[structPtr+4>>2]=this.samplesPerChannel;(growMemViews(),HEAPU32)[structPtr+8>>2]=dataPtr;structPtr+=12;dataPtr+=this.bytesPerChannel*entry.length}var didProduceAudio=this.callback(numInputs,inputsPtr,numOutputs,outputsPtr,numParams,paramsPtr,this.userData);if(didProduceAudio){for(entry of outputList){for(subentry of entry){subentry.set(this.outputViews[--outputViewsNeeded])}}}stackRestore(oldStackPtr);return!!didProduceAudio}}return WasmAudioWorkletProcessor}var port=globalThis.port||{};class BootstrapMessages extends AudioWorkletProcessor{constructor(arg){super();startWasmWorker(arg.processorOptions);if(!(port instanceof MessagePort)){this.port.onmessage=port.onmessage;port=this.port}}process(){}}registerProcessor("em-bootstrap",BootstrapMessages);port.onmessage=async msg=>{let d=msg.data;if(d["_boot"]){startWasmWorker(d)}else if(d["_wpn"]){registerProcessor(d["_wpn"],createWasmAudioWorkletProcessor(d.audioParams));port.postMessage({_wsc:d.callback,args:[d.contextHandle,1,d.userData]})}else if(d["_wsc"]){getWasmTableEntry(d["_wsc"])(...d.args)}}}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var HEAP64,HEAPU64;var runtimeInitialized=false;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);HEAPU16=new Uint16Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b);HEAPU64=new BigUint64Array(b)}function initMemory(){if(ENVIRONMENT_IS_WASM_WORKER){return}if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||134217728;wasmMemory=new WebAssembly.Memory({initial:INITIAL_MEMORY/65536,maximum:32768,shared:true})}updateMemoryViews()}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_WASM_WORKER)return _wasmWorkerInitializeRuntime();wasmExports["D"]()}function postRun(){if(ENVIRONMENT_IS_WASM_WORKER){return}if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(onPostRuns)}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject?.(e);throw e}var wasmBinaryFile;function findWasmBinary(){return locateFile("amy.wasm")}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE){try{var response=fetch(binaryFile,{credentials:"same-origin"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){assignWasmImports();var imports={a:wasmImports};return imports}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;wasmExports=Asyncify.instrumentWasmExports(wasmExports);assignWasmExports(wasmExports);wasmModule=module;return wasmExports}function receiveInstantiationResult(result){return receiveInstance(result["instance"],result["module"])}var info=getWasmImports();if(Module["instantiateWasm"]){return new Promise((resolve,reject)=>{Module["instantiateWasm"](info,(inst,mod)=>{resolve(receiveInstance(inst,mod))})})}if(ENVIRONMENT_IS_WASM_WORKER){var instance=new WebAssembly.Instance(wasmModule,getWasmImports());return receiveInstance(instance,wasmModule)}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}class ExitStatus{name="ExitStatus";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var _wasmWorkerDelayedMessageQueue=[];var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module["onExit"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var _exit=exitJS;var maybeExit=()=>{if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};var wasmTableMirror=[];var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func};var _wasmWorkerRunPostMessage=e=>{let data=e.data;let wasmCall=data["_wsc"];wasmCall&&callUserCallback(()=>getWasmTableEntry(wasmCall)(...data["x"]))};var _wasmWorkerAppendToQueue=e=>{_wasmWorkerDelayedMessageQueue.push(e)};var _wasmWorkerInitializeRuntime=()=>{noExitRuntime=1;__emscripten_wasm_worker_initialize(wwParams.stackLowestAddress,wwParams.stackSize);__embind_initialize_bindings();if(!ENVIRONMENT_IS_AUDIO_WORKLET){removeEventListener("message",_wasmWorkerAppendToQueue);_wasmWorkerDelayedMessageQueue=_wasmWorkerDelayedMessageQueue.forEach(_wasmWorkerRunPostMessage);addEventListener("message",_wasmWorkerRunPostMessage)}};var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);var dynCalls={};var noExitRuntime=true;var stackRestore=val=>__emscripten_stack_restore(val);var stackSave=()=>_emscripten_stack_get_current();var wasmMemory;var UTF8Decoder=globalThis.TextDecoder&&new TextDecoder;var findStringEnd=(heapOrArray,idx,maxBytesToRead,ignoreNul)=>{var maxIdx=idx+maxBytesToRead;if(ignoreNul)return maxIdx;while(heapOrArray[idx]&&!(idx>=maxIdx))++idx;return idx};var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead,ignoreNul)=>{var endPtr=findStringEnd(heapOrArray,idx,maxBytesToRead,ignoreNul);if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.buffer instanceof ArrayBuffer?heapOrArray.subarray(idx,endPtr):heapOrArray.slice(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>ptr?UTF8ArrayToString((growMemViews(),HEAPU8),ptr,maxBytesToRead,ignoreNul):"";var ___assert_fail=(condition,filename,line,func)=>abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"]);var __abort_js=()=>abort("");var AsciiToString=ptr=>{var str="";while(1){var ch=(growMemViews(),HEAPU8)[ptr++];if(!ch)return str;str+=String.fromCharCode(ch)}};var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var BindingError=class BindingError extends Error{constructor(message){super(message);this.name="BindingError"}};var throwBindingError=message=>{throw new BindingError(message)};function sharedRegisterType(rawType,registeredInstance,options={}){var name=registeredInstance.name;if(!rawType){throwBindingError(`type "${name}" must have a positive integer typeid pointer`)}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError(`Cannot register type '${name}' twice`)}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function registerType(rawType,registeredInstance,options={}){return sharedRegisterType(rawType,registeredInstance,options)}var integerReadValueFromPointer=(name,width,signed)=>{switch(width){case 1:return signed?pointer=>(growMemViews(),HEAP8)[pointer]:pointer=>(growMemViews(),HEAPU8)[pointer];case 2:return signed?pointer=>(growMemViews(),HEAP16)[pointer>>1]:pointer=>(growMemViews(),HEAPU16)[pointer>>1];case 4:return signed?pointer=>(growMemViews(),HEAP32)[pointer>>2]:pointer=>(growMemViews(),HEAPU32)[pointer>>2];case 8:return signed?pointer=>(growMemViews(),HEAP64)[pointer>>3]:pointer=>(growMemViews(),HEAPU64)[pointer>>3];default:throw new TypeError(`invalid integer width (${width}): ${name}`)}};var __embind_register_bigint=(primitiveType,name,size,minRange,maxRange)=>{name=AsciiToString(name);const isUnsignedType=minRange===0n;let fromWireType=value=>value;if(isUnsignedType){const bitSize=size*8;fromWireType=value=>BigInt.asUintN(bitSize,value);maxRange=fromWireType(maxRange)}registerType(primitiveType,{name,fromWireType,toWireType:(destructors,value)=>{if(typeof value=="number"){value=BigInt(value)}return value},readValueFromPointer:integerReadValueFromPointer(name,size,!isUnsignedType),destructorFunction:null})};var __embind_register_bool=(rawType,name,trueValue,falseValue)=>{name=AsciiToString(name);registerType(rawType,{name,fromWireType:function(wt){return!!wt},toWireType:function(destructors,o){return o?trueValue:falseValue},readValueFromPointer:function(pointer){return this.fromWireType((growMemViews(),HEAPU8)[pointer])},destructorFunction:null})};var emval_freelist=[];var emval_handles=[0,1,,1,null,1,true,1,false,1];var __emval_decref=handle=>{if(handle>9&&0===--emval_handles[handle+1]){emval_handles[handle]=undefined;emval_freelist.push(handle)}};var Emval={toValue:handle=>{if(!handle){throwBindingError(`Cannot use deleted val. handle = ${handle}`)}return emval_handles[handle]},toHandle:value=>{switch(value){case undefined:return 2;case null:return 4;case true:return 6;case false:return 8;default:{const handle=emval_freelist.pop()||emval_handles.length;emval_handles[handle]=value;emval_handles[handle+1]=1;return handle}}}};function readPointer(pointer){return this.fromWireType((growMemViews(),HEAPU32)[pointer>>2])}var EmValType={name:"emscripten::val",fromWireType:handle=>{var rv=Emval.toValue(handle);__emval_decref(handle);return rv},toWireType:(destructors,value)=>Emval.toHandle(value),readValueFromPointer:readPointer,destructorFunction:null};var __embind_register_emval=rawType=>registerType(rawType,EmValType);var floatReadValueFromPointer=(name,width)=>{switch(width){case 4:return function(pointer){return this.fromWireType((growMemViews(),HEAPF32)[pointer>>2])};case 8:return function(pointer){return this.fromWireType((growMemViews(),HEAPF64)[pointer>>3])};default:throw new TypeError(`invalid float width (${width}): ${name}`)}};var __embind_register_float=(rawType,name,size)=>{name=AsciiToString(name);registerType(rawType,{name,fromWireType:value=>value,toWireType:(destructors,value)=>value,readValueFromPointer:floatReadValueFromPointer(name,size),destructorFunction:null})};var __embind_register_integer=(primitiveType,name,size,minRange,maxRange)=>{name=AsciiToString(name);const isUnsignedType=minRange===0;let fromWireType=value=>value;if(isUnsignedType){var bitshift=32-8*size;fromWireType=value=>value<>>bitshift;maxRange=fromWireType(maxRange)}registerType(primitiveType,{name,fromWireType,toWireType:(destructors,value)=>value,readValueFromPointer:integerReadValueFromPointer(name,size,minRange!==0),destructorFunction:null})};var __embind_register_memory_view=(rawType,dataTypeIndex,name)=>{var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){var size=(growMemViews(),HEAPU32)[handle>>2];var data=(growMemViews(),HEAPU32)[handle+4>>2];return new TA((growMemViews(),HEAP8).buffer,data,size)}name=AsciiToString(name);registerType(rawType,{name,fromWireType:decodeMemoryView,readValueFromPointer:decodeMemoryView},{ignoreDuplicateRegistrations:true})};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63;i++}}heap[outIdx]=0;return outIdx-startIdx};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,(growMemViews(),HEAPU8),outPtr,maxBytesToWrite);var lengthBytesUTF8=str=>{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var __embind_register_std_string=(rawType,name)=>{name=AsciiToString(name);var stdStringIsUTF8=true;registerType(rawType,{name,fromWireType(value){var length=(growMemViews(),HEAPU32)[value>>2];var payload=value+4;var str;if(stdStringIsUTF8){str=UTF8ToString(payload,length,true)}else{str="";for(var i=0;i>2]=length;if(valueIsOfTypeString){if(stdStringIsUTF8){stringToUTF8(value,ptr,length+1)}else{for(var i=0;i255){_free(base);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}(growMemViews(),HEAPU8)[ptr+i]=charCode}}}else{(growMemViews(),HEAPU8).set(value,ptr)}if(destructors!==null){destructors.push(_free,base)}return base},readValueFromPointer:readPointer,destructorFunction(ptr){_free(ptr)}})};var UTF16Decoder=globalThis.TextDecoder?new TextDecoder("utf-16le"):undefined;var UTF16ToString=(ptr,maxBytesToRead,ignoreNul)=>{var idx=ptr>>1;var endIdx=findStringEnd((growMemViews(),HEAPU16),idx,maxBytesToRead/2,ignoreNul);if(endIdx-idx>16&&UTF16Decoder)return UTF16Decoder.decode((growMemViews(),HEAPU16).slice(idx,endIdx));var str="";for(var i=idx;i{maxBytesToWrite??=2147483647;if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}(growMemViews(),HEAP16)[outPtr>>1]=0;return outPtr-startPtr};var lengthBytesUTF16=str=>str.length*2;var UTF32ToString=(ptr,maxBytesToRead,ignoreNul)=>{var str="";var startIdx=ptr>>2;for(var i=0;!(i>=maxBytesToRead/4);i++){var utf32=(growMemViews(),HEAPU32)[startIdx+i];if(!utf32&&!ignoreNul)break;str+=String.fromCodePoint(utf32)}return str};var stringToUTF32=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i65535){i++}(growMemViews(),HEAP32)[outPtr>>2]=codePoint;outPtr+=4;if(outPtr+4>endPtr)break}(growMemViews(),HEAP32)[outPtr>>2]=0;return outPtr-startPtr};var lengthBytesUTF32=str=>{var len=0;for(var i=0;i65535){i++}len+=4}return len};var __embind_register_std_wstring=(rawType,charSize,name)=>{name=AsciiToString(name);var decodeString,encodeString,lengthBytesUTF;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16}else{decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32}registerType(rawType,{name,fromWireType:value=>{var length=(growMemViews(),HEAPU32)[value>>2];var str=decodeString(value+4,length*charSize,true);_free(value);return str},toWireType:(destructors,value)=>{if(!(typeof value=="string")){throwBindingError(`Cannot pass non-string to C++ string type ${name}`)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);(growMemViews(),HEAPU32)[ptr>>2]=length/charSize;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},readValueFromPointer:readPointer,destructorFunction(ptr){_free(ptr)}})};var __embind_register_void=(rawType,name)=>{name=AsciiToString(name);registerType(rawType,{isVoid:true,name,fromWireType:()=>undefined,toWireType:(destructors,o)=>undefined})};var _emscripten_get_now;if(globalThis.performance&&performance.now){_emscripten_get_now=()=>performance.now()}else{_emscripten_get_now=Date.now}var nowIsMonotonic=!!globalThis.performance?.now;var INT53_MAX=9007199254740992;var INT53_MIN=-9007199254740992;var bigintToI53Checked=num=>numINT53_MAX?NaN:Number(num);var readEmAsmArgsArray=[];var readEmAsmArgs=(sigPtr,buf)=>{readEmAsmArgsArray.length=0;var ch;while(ch=(growMemViews(),HEAPU8)[sigPtr++]){var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?(growMemViews(),HEAPU32)[buf>>2]:ch==106?(growMemViews(),HEAP64)[buf>>3]:ch==105?(growMemViews(),HEAP32)[buf>>2]:(growMemViews(),HEAPF64)[buf>>3]);buf+=wide?8:4}return readEmAsmArgsArray};var runEmAsmFunction=(code,sigPtr,argbuf)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code](...args)};var _emscripten_asm_const_double=(code,sigPtr,argbuf)=>runEmAsmFunction(code,sigPtr,argbuf);var _emscripten_asm_const_int=(code,sigPtr,argbuf)=>runEmAsmFunction(code,sigPtr,argbuf);var _emscripten_set_main_loop_timing=(mode,value)=>{MainLoop.timingMode=mode;MainLoop.timingValue=value;if(!MainLoop.func){return 1}if(!MainLoop.running){MainLoop.running=true}if(mode==0){MainLoop.scheduler=function MainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,MainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(MainLoop.runner,timeUntilNextTick)};MainLoop.method="timeout"}else if(mode==1){MainLoop.scheduler=function MainLoop_scheduler_rAF(){MainLoop.requestAnimationFrame(MainLoop.runner)};MainLoop.method="rAF"}else if(mode==2){if(!MainLoop.setImmediate){if(globalThis.setImmediate){MainLoop.setImmediate=setImmediate}else{var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var MainLoop_setImmediate_messageHandler=event=>{if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",MainLoop_setImmediate_messageHandler,true);MainLoop.setImmediate=func=>{setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){Module["setImmediates"]??=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}}MainLoop.scheduler=function MainLoop_scheduler_setImmediate(){MainLoop.setImmediate(MainLoop.runner)};MainLoop.method="immediate"}return 0};var setMainLoop=(iterFunc,fps,simulateInfiniteLoop,arg,noSetTiming)=>{MainLoop.func=iterFunc;MainLoop.arg=arg;var thisMainLoopId=MainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=MainLoop.queue.shift();blocker.func(blocker.arg);if(MainLoop.remainingBlockers){var remaining=MainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){MainLoop.remainingBlockers=next}else{next=next+.5;MainLoop.remainingBlockers=(8*remaining+next)/9}}MainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(MainLoop.runner,0);return}if(!checkIsRunning())return;MainLoop.currentFrameNumber=MainLoop.currentFrameNumber+1|0;if(MainLoop.timingMode==1&&MainLoop.timingValue>1&&MainLoop.currentFrameNumber%MainLoop.timingValue!=0){MainLoop.scheduler();return}else if(MainLoop.timingMode==0){MainLoop.tickStartTime=_emscripten_get_now()}MainLoop.runIter(iterFunc);if(!checkIsRunning())return;MainLoop.scheduler()};if(!noSetTiming){if(fps>0){_emscripten_set_main_loop_timing(0,1e3/fps)}else{_emscripten_set_main_loop_timing(1,1)}MainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}};var MainLoop={running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],preMainLoop:[],postMainLoop:[],pause(){MainLoop.scheduler=null;MainLoop.currentlyRunningMainloop++},resume(){MainLoop.currentlyRunningMainloop++;var timingMode=MainLoop.timingMode;var timingValue=MainLoop.timingValue;var func=MainLoop.func;MainLoop.func=null;setMainLoop(func,0,false,MainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);MainLoop.scheduler()},updateStatus(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=MainLoop.remainingBlockers??0;var expected=MainLoop.expectedBlockers??0;if(remaining){if(remaining=MainLoop.nextRAF){MainLoop.nextRAF+=1e3/60}}var delay=Math.max(MainLoop.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame(func){if(globalThis.requestAnimationFrame){requestAnimationFrame(func)}else{MainLoop.fakeRequestAnimationFrame(func)}}};var _emscripten_cancel_main_loop=()=>{MainLoop.pause();MainLoop.func=null};var emAudio={};var emAudioCounter=0;var emscriptenRegisterAudioObject=object=>{emAudio[++emAudioCounter]=object;return emAudioCounter};var emscriptenGetAudioObject=objectHandle=>emAudio[objectHandle];var _emscripten_create_audio_context=options=>{var ctx=window.AudioContext||window.webkitAudioContext;function readRenderSizeHint(val){return val<0?"hardware":val||"default"}var opts=options?{latencyHint:UTF8ToString((growMemViews(),HEAPU32)[options>>2])||undefined,sampleRate:(growMemViews(),HEAPU32)[options+4>>2]||undefined,renderSizeHint:readRenderSizeHint((growMemViews(),HEAP32)[options+8>>2])}:undefined;return ctx&&emscriptenRegisterAudioObject(new ctx(opts))};var emscriptenGetContextQuantumSize=contextHandle=>emAudio[contextHandle]["renderQuantumSize"]||128;var _emscripten_create_wasm_audio_worklet_node=(contextHandle,name,options,callback,userData)=>{function readChannelCountArray(heapIndex,numOutputs){if(!heapIndex)return undefined;heapIndex=heapIndex>>2;var channelCounts=[];while(numOutputs--)channelCounts.push((growMemViews(),HEAPU32)[heapIndex++]);return channelCounts}var optionsOutputs=options?(growMemViews(),HEAP32)[options+4>>2]:0;var opts=options?{numberOfInputs:(growMemViews(),HEAP32)[options>>2],numberOfOutputs:optionsOutputs,outputChannelCount:readChannelCountArray((growMemViews(),HEAPU32)[options+8>>2],optionsOutputs),channelCount:(growMemViews(),HEAPU32)[options+12>>2]||undefined,channelCountMode:[,"clamped-max","explicit"][(growMemViews(),HEAP32)[options+16>>2]],channelInterpretation:[,"discrete"][(growMemViews(),HEAP32)[options+20>>2]],processorOptions:{callback,userData,samplesPerChannel:emscriptenGetContextQuantumSize(contextHandle)}}:undefined;return emscriptenRegisterAudioObject(new AudioWorkletNode(emAudio[contextHandle],UTF8ToString(name),opts))};var _emscripten_create_wasm_audio_worklet_processor_async=(contextHandle,options,callback,userData)=>{var processorName=UTF8ToString((growMemViews(),HEAPU32)[options>>2]);var numAudioParams=(growMemViews(),HEAP32)[options+4>>2];var audioParamDescriptors=(growMemViews(),HEAPU32)[options+8>>2];var audioParams=[];var paramIndex=0;while(numAudioParams--){audioParams.push({name:paramIndex++,defaultValue:(growMemViews(),HEAPF32)[audioParamDescriptors>>2],minValue:(growMemViews(),HEAPF32)[audioParamDescriptors+4>>2],maxValue:(growMemViews(),HEAPF32)[audioParamDescriptors+8>>2],automationRate:((growMemViews(),HEAP32)[audioParamDescriptors+12>>2]?"k":"a")+"-rate"});audioParamDescriptors+=16}emAudio[contextHandle].audioWorklet["port"].postMessage({_wpn:processorName,audioParams,contextHandle,callback,userData})};var _emscripten_destroy_audio_context=contextHandle=>{emAudio[contextHandle].suspend();delete emAudio[contextHandle]};var _emscripten_destroy_web_audio_node=objectHandle=>{emAudio[objectHandle].disconnect();delete emAudio[objectHandle]};var getHeapMax=()=>2147483648;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=(growMemViews(),HEAPU8).length;requestedSize>>>=0;if(requestedSize<=oldSize){return false}var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var _emscripten_set_main_loop=(func,fps,simulateInfiniteLoop)=>{var iterFunc=()=>dynCall_v(func);setMainLoop(iterFunc,fps,simulateInfiniteLoop)};var safeSetTimeout=(func,timeout)=>setTimeout(()=>{callUserCallback(func)},timeout);var _emscripten_sleep=ms=>Asyncify.handleSleep(wakeUp=>safeSetTimeout(wakeUp,ms));_emscripten_sleep.isAsync=true;var _wasmWorkersID=1;var _emAudioDispatchProcessorCallback=e=>{var data=e.data;var wasmCall=data["_wsc"];wasmCall&&getWasmTableEntry(wasmCall)(...data.args)};var stackAlloc=sz=>__emscripten_stack_alloc(sz);var _emscripten_start_wasm_audio_worklet_thread_async=(contextHandle,stackLowestAddress,stackSize,callback,userData)=>{var audioContext=emAudio[contextHandle];var audioWorklet=audioContext.audioWorklet;var audioWorkletCreationFailed=()=>{((a1,a2,a3)=>dynCall_viii(callback,a1,a2,a3))(contextHandle,0,userData)};if(!audioWorklet){return audioWorkletCreationFailed()}audioWorklet.addModule(locateFile("amy.js")).then(()=>{if(!audioWorklet["port"]){audioWorklet["port"]={postMessage:msg=>{if(msg["_boot"]){audioWorklet.bootstrapMessage=new AudioWorkletNode(audioContext,"em-bootstrap",{processorOptions:msg});audioWorklet.bootstrapMessage["port"].onmessage=msg=>{audioWorklet["port"].onmessage(msg)}}else{audioWorklet.bootstrapMessage["port"].postMessage(msg)}}}}audioWorklet["port"].postMessage({_boot:1,wwID:_wasmWorkersID++,wasm:wasmModule,wasmMemory,stackLowestAddress,stackSize});audioWorklet["port"].onmessage=_emAudioDispatchProcessorCallback;((a1,a2,a3)=>dynCall_viii(callback,a1,a2,a3))(contextHandle,1,userData)}).catch(audioWorkletCreationFailed)};var _fd_close=fd=>52;function _fd_seek(fd,offset,whence,newOffset){offset=bigintToI53Checked(offset);return 70}var printCharBuffers=[null,[],[]];var printChar=(stream,curr)=>{var buffer=printCharBuffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer));buffer.length=0}else{buffer.push(curr)}};var _fd_write=(fd,iov,iovcnt,pnum)=>{var num=0;for(var i=0;i>2];var len=(growMemViews(),HEAPU32)[iov+4>>2];iov+=8;for(var j=0;j>2]=num;return 0};var runAndAbortIfError=func=>{try{return func()}catch(e){abort(e)}};var runtimeKeepalivePush=()=>{runtimeKeepaliveCounter+=1};var runtimeKeepalivePop=()=>{runtimeKeepaliveCounter-=1};var Asyncify={instrumentWasmImports(imports){var importPattern=/^(invoke_.*|__asyncjs__.*)$/;for(let[x,original]of Object.entries(imports)){if(typeof original=="function"){let isAsyncifyImport=original.isAsync||importPattern.test(x)}}},instrumentFunction(original){var wrapper=(...args)=>{Asyncify.exportCallStack.push(original);try{return original(...args)}finally{if(!ABORT){var top=Asyncify.exportCallStack.pop();Asyncify.maybeStopUnwind()}}};Asyncify.funcWrappers.set(original,wrapper);return wrapper},instrumentWasmExports(exports){var ret={};for(let[x,original]of Object.entries(exports)){if(typeof original=="function"){var wrapper=Asyncify.instrumentFunction(original);ret[x]=wrapper}else{ret[x]=original}}return ret},State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:128e3,currData:null,handleSleepReturnValue:0,exportCallStack:[],callstackFuncToId:new Map,callStackIdToFunc:new Map,funcWrappers:new Map,callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId(func){if(!Asyncify.callstackFuncToId.has(func)){var id=Asyncify.callStackId++;Asyncify.callstackFuncToId.set(func,id);Asyncify.callStackIdToFunc.set(id,func)}return Asyncify.callstackFuncToId.get(func)},maybeStopUnwind(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(_asyncify_stop_unwind);if(typeof Fibers!="undefined"){Fibers.trampoline()}}},whenDone(){return new Promise((resolve,reject)=>{Asyncify.asyncPromiseHandlers={resolve,reject}})},allocateData(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader(ptr,stack,stackSize){(growMemViews(),HEAPU32)[ptr>>2]=stack;(growMemViews(),HEAPU32)[ptr+4>>2]=stack+stackSize},setDataRewindFunc(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);(growMemViews(),HEAP32)[ptr+8>>2]=rewindId},getDataRewindFunc(ptr){var id=(growMemViews(),HEAP32)[ptr+8>>2];var func=Asyncify.callStackIdToFunc.get(id);return func},doRewind(ptr){var original=Asyncify.getDataRewindFunc(ptr);var func=Asyncify.funcWrappers.get(original);return func()},handleSleep(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync((handleSleepReturnValue=0)=>{if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(()=>_asyncify_start_rewind(Asyncify.currData));if(typeof MainLoop!="undefined"&&MainLoop.func){MainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();if(typeof MainLoop!="undefined"&&MainLoop.func){MainLoop.pause()}runAndAbortIfError(()=>_asyncify_start_unwind(Asyncify.currData))}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(_asyncify_stop_rewind);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(callUserCallback)}else{abort(`invalid state: ${Asyncify.state}`)}return Asyncify.handleSleepReturnValue},handleAsync:startAsync=>Asyncify.handleSleep(wakeUp=>{startAsync().then(wakeUp)})};var getCFunc=ident=>{var func=Module["_"+ident];return func};var writeArrayToMemory=(array,buffer)=>{(growMemViews(),HEAP8).set(array,buffer)};var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i{var numericArgs=!argTypes||argTypes.every(type=>type==="number"||type==="boolean");var numericRet=returnType!=="string";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return(...args)=>ccall(ident,returnType,argTypes,args,opts)};Module["requestAnimationFrame"]=MainLoop.requestAnimationFrame;Module["pauseMainLoop"]=MainLoop.pause;Module["resumeMainLoop"]=MainLoop.resume;MainLoop.init();{initMemory();if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(Module["print"])out=Module["print"];if(Module["printErr"])err=Module["printErr"];if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].shift()()}}}Module["wasmMemory"]=wasmMemory;Module["ccall"]=ccall;Module["cwrap"]=cwrap;var ASM_CONSTS={4502500:()=>typeof amy_render_js_hook==="function"?1:0,4502561:($0,$1,$2,$3,$4)=>{if(!Module.wasmMemory)Module.wasmMemory=wasmMemory;return amy_render_js_hook($0,$1,$2,$3,$4,Module)},4502676:()=>{if(typeof amy_block_processed_js_hook==="function"){amy_block_processed_js_hook()}},4502769:($0,$1,$2,$3)=>{if(typeof amy_bus_postprocess_js_hook==="function"){if(!Module.wasmMemory)Module.wasmMemory=wasmMemory;amy_bus_postprocess_js_hook($0,$1,$2,$3,Module)}},4502941:($0,$1)=>{if(typeof amy_shared_open==="function"){return amy_shared_open(UTF8ToString($0),UTF8ToString($1))}return 0},4503062:$0=>{if(typeof amy_shared_close==="function"){amy_shared_close($0)}},4503136:($0,$1,$2,$3)=>{if(typeof amy_shared_read==="function"){return amy_shared_read($0,$1,$2,$3)}return 0},4503237:($0,$1,$2)=>{if(typeof amy_shared_write==="function"){return amy_shared_write($0,$1,$2)}return 0},4503336:$0=>{if(typeof amy_shared_close==="function"){amy_shared_close($0)}},4503410:$0=>{if(typeof amy_sequencer_js_hook==="function"){amy_sequencer_js_hook($0)}},4503493:()=>{if(typeof cv_1_voltage!="undefined"){return cv_1_voltage}else{return 0}},4503580:()=>{if(typeof cv_2_voltage!="undefined"){return cv_2_voltage}else{return 0}},4503667:($0,$1,$2,$3,$4)=>{if(typeof window==="undefined"||(window.AudioContext||window.webkitAudioContext)===undefined){return 0}if(typeof window.miniaudio==="undefined"){window.miniaudio={referenceCount:0};window.miniaudio.device_type={};window.miniaudio.device_type.playback=$0;window.miniaudio.device_type.capture=$1;window.miniaudio.device_type.duplex=$2;window.miniaudio.device_state={};window.miniaudio.device_state.stopped=$3;window.miniaudio.device_state.started=$4;miniaudio.devices=[];miniaudio.track_device=function(device){for(var iDevice=0;iDevice0){if(miniaudio.devices[miniaudio.devices.length-1]==null){miniaudio.devices.pop()}else{break}}};miniaudio.untrack_device=function(device){for(var iDevice=0;iDevice{Module._ma_device__on_notification_unlocked(device.pDevice)},error=>{console.error("Failed to resume audiocontext",error)})}}miniaudio.unlock_event_types.map(function(event_type){document.removeEventListener(event_type,miniaudio.unlock,true)})};miniaudio.unlock_event_types.map(function(event_type){document.addEventListener(event_type,miniaudio.unlock,true)})}window.miniaudio.referenceCount+=1;return 1},4505825:()=>{if(typeof window.miniaudio!=="undefined"){window.miniaudio.referenceCount-=1;if(window.miniaudio.referenceCount===0){delete window.miniaudio}}},4505989:()=>navigator.mediaDevices!==undefined&&navigator.mediaDevices.getUserMedia!==undefined,4506093:()=>{try{var temp=new(window.AudioContext||window.webkitAudioContext);var sampleRate=temp.sampleRate;temp.close();return sampleRate}catch(e){return 0}},4506264:$0=>miniaudio.track_device({webaudio:emscriptenGetAudioObject($0),state:1}),4506353:($0,$1)=>{var getUserMediaResult=0;var audioWorklet=emscriptenGetAudioObject($0);var audioContext=emscriptenGetAudioObject($1);navigator.mediaDevices.getUserMedia({audio:true,video:false}).then(function(stream){audioContext.streamNode=audioContext.createMediaStreamSource(stream);audioContext.streamNode.connect(audioWorklet);audioWorklet.connect(audioContext.destination);getUserMediaResult=0}).catch(function(error){console.log("navigator.mediaDevices.getUserMedia Failed: "+error);getUserMediaResult=-1});return getUserMediaResult},4506915:($0,$1)=>{var audioWorklet=emscriptenGetAudioObject($0);var audioContext=emscriptenGetAudioObject($1);audioWorklet.connect(audioContext.destination);return 0},4507075:$0=>emscriptenGetAudioObject($0).sampleRate,4507127:$0=>{var device=miniaudio.get_device_by_index($0);if(device.streamNode!==undefined){device.streamNode.disconnect();device.streamNode=undefined}},4507283:$0=>{miniaudio.untrack_device_by_index($0)},4507326:$0=>{var device=miniaudio.get_device_by_index($0);device.webaudio.resume();device.state=miniaudio.device_state.started},4507451:$0=>{var device=miniaudio.get_device_by_index($0);device.webaudio.suspend();device.state=miniaudio.device_state.stopped},4507577:($0,$1,$2)=>{if(typeof amy_external_midi_input_js_hook==="function"){amy_external_midi_input_js_hook((growMemViews(),HEAPU8).subarray($0,$0+$1),$1,$2)}},4507708:($0,$1)=>{if(midiOutputDevice!=null){midiOutputDevice.send((growMemViews(),HEAPU8).subarray($0,$0+$1))}}};var _free,_malloc,_amy_set_render_load_threshold,_amy_sysclock,_amy_add_event,_cos_lut,_yield_synth_commands,_size_of_amy_event,_amy_dump_state_to_string,_sequencer_ticks,_ma_device__on_notification_unlocked,_ma_malloc_emscripten,_ma_free_emscripten,_ma_device_process_pcm_frames_capture__webaudio,_ma_device_process_pcm_frames_playback__webaudio,_amy_live_start_web_audioin,_amy_live_start_web,_amy_live_stop,_amy_add_message,_amy_process_single_midi_byte,_amy_get_output_buffer,_amy_get_input_buffer,_amy_set_external_input_buffer,_amy_set_external_hook_context,_amy_get_external_hook_context,_amy_send_wire_from_sysex,_amy_start_web,_amy_bleep,_amy_start_web_no_synths,_amy_get_render_load,_set_cv_from_osc,__embind_initialize_bindings,__emscripten_stack_restore,__emscripten_stack_alloc,_emscripten_stack_get_current,__emscripten_wasm_worker_initialize,dynCall_iiii,dynCall_iii,dynCall_vi,dynCall_vii,dynCall_ii,dynCall_iiiii,dynCall_viii,dynCall_viiii,dynCall_v,dynCall_iiiiiiii,dynCall_iiiji,dynCall_iiiiiii,dynCall_jii,dynCall_fi,dynCall_jiji,dynCall_iidiiii,dynCall_viiiiii,dynCall_viiiii,_asyncify_start_unwind,_asyncify_stop_unwind,_asyncify_start_rewind,_asyncify_stop_rewind,__indirect_function_table,wasmTable;function assignWasmExports(wasmExports){_free=Module["_free"]=wasmExports["E"];_malloc=Module["_malloc"]=wasmExports["F"];_amy_set_render_load_threshold=Module["_amy_set_render_load_threshold"]=wasmExports["H"];_amy_sysclock=Module["_amy_sysclock"]=wasmExports["I"];_amy_add_event=Module["_amy_add_event"]=wasmExports["J"];_cos_lut=Module["_cos_lut"]=wasmExports["K"];_yield_synth_commands=Module["_yield_synth_commands"]=wasmExports["L"];_size_of_amy_event=Module["_size_of_amy_event"]=wasmExports["M"];_amy_dump_state_to_string=Module["_amy_dump_state_to_string"]=wasmExports["N"];_sequencer_ticks=Module["_sequencer_ticks"]=wasmExports["O"];_ma_device__on_notification_unlocked=Module["_ma_device__on_notification_unlocked"]=wasmExports["P"];_ma_malloc_emscripten=Module["_ma_malloc_emscripten"]=wasmExports["Q"];_ma_free_emscripten=Module["_ma_free_emscripten"]=wasmExports["R"];_ma_device_process_pcm_frames_capture__webaudio=Module["_ma_device_process_pcm_frames_capture__webaudio"]=wasmExports["S"];_ma_device_process_pcm_frames_playback__webaudio=Module["_ma_device_process_pcm_frames_playback__webaudio"]=wasmExports["T"];_amy_live_start_web_audioin=Module["_amy_live_start_web_audioin"]=wasmExports["U"];_amy_live_start_web=Module["_amy_live_start_web"]=wasmExports["V"];_amy_live_stop=Module["_amy_live_stop"]=wasmExports["W"];_amy_add_message=Module["_amy_add_message"]=wasmExports["X"];_amy_process_single_midi_byte=Module["_amy_process_single_midi_byte"]=wasmExports["Y"];_amy_get_output_buffer=Module["_amy_get_output_buffer"]=wasmExports["Z"];_amy_get_input_buffer=Module["_amy_get_input_buffer"]=wasmExports["_"];_amy_set_external_input_buffer=Module["_amy_set_external_input_buffer"]=wasmExports["$"];_amy_set_external_hook_context=Module["_amy_set_external_hook_context"]=wasmExports["aa"];_amy_get_external_hook_context=Module["_amy_get_external_hook_context"]=wasmExports["ba"];_amy_send_wire_from_sysex=Module["_amy_send_wire_from_sysex"]=wasmExports["ca"];_amy_start_web=Module["_amy_start_web"]=wasmExports["da"];_amy_bleep=Module["_amy_bleep"]=wasmExports["ea"];_amy_start_web_no_synths=Module["_amy_start_web_no_synths"]=wasmExports["fa"];_amy_get_render_load=Module["_amy_get_render_load"]=wasmExports["ga"];_set_cv_from_osc=Module["_set_cv_from_osc"]=wasmExports["ha"];__embind_initialize_bindings=wasmExports["ia"];__emscripten_stack_restore=wasmExports["ja"];__emscripten_stack_alloc=wasmExports["ka"];_emscripten_stack_get_current=wasmExports["la"];__emscripten_wasm_worker_initialize=wasmExports["ma"];dynCall_iiii=dynCalls["iiii"]=wasmExports["na"];dynCall_iii=dynCalls["iii"]=wasmExports["oa"];dynCall_vi=dynCalls["vi"]=wasmExports["pa"];dynCall_vii=dynCalls["vii"]=wasmExports["qa"];dynCall_ii=dynCalls["ii"]=wasmExports["ra"];dynCall_iiiii=dynCalls["iiiii"]=wasmExports["sa"];dynCall_viii=dynCalls["viii"]=wasmExports["ta"];dynCall_viiii=dynCalls["viiii"]=wasmExports["ua"];dynCall_v=dynCalls["v"]=wasmExports["va"];dynCall_iiiiiiii=dynCalls["iiiiiiii"]=wasmExports["wa"];dynCall_iiiji=dynCalls["iiiji"]=wasmExports["xa"];dynCall_iiiiiii=dynCalls["iiiiiii"]=wasmExports["ya"];dynCall_jii=dynCalls["jii"]=wasmExports["za"];dynCall_fi=dynCalls["fi"]=wasmExports["Aa"];dynCall_jiji=dynCalls["jiji"]=wasmExports["Ba"];dynCall_iidiiii=dynCalls["iidiiii"]=wasmExports["Ca"];dynCall_viiiiii=dynCalls["viiiiii"]=wasmExports["Da"];dynCall_viiiii=dynCalls["viiiii"]=wasmExports["Ea"];_asyncify_start_unwind=wasmExports["Fa"];_asyncify_stop_unwind=wasmExports["Ga"];_asyncify_start_rewind=wasmExports["Ha"];_asyncify_stop_rewind=wasmExports["Ia"];__indirect_function_table=wasmTable=wasmExports["G"]}var wasmImports;function assignWasmImports(){wasmImports={b:___assert_fail,A:__abort_js,l:__embind_register_bigint,v:__embind_register_bool,t:__embind_register_emval,k:__embind_register_float,f:__embind_register_integer,d:__embind_register_memory_view,u:__embind_register_std_string,i:__embind_register_std_wstring,w:__embind_register_void,m:_emscripten_asm_const_double,c:_emscripten_asm_const_int,h:_emscripten_cancel_main_loop,r:_emscripten_create_audio_context,B:_emscripten_create_wasm_audio_worklet_node,C:_emscripten_create_wasm_audio_worklet_processor_async,g:_emscripten_destroy_audio_context,o:_emscripten_destroy_web_audio_node,e:_emscripten_get_now,x:_emscripten_resize_heap,j:_emscripten_set_main_loop,p:_emscripten_sleep,q:_emscripten_start_wasm_audio_worklet_thread_async,s:_exit,z:_fd_close,y:_fd_seek,n:_fd_write,a:wasmMemory}}function run(){if(ENVIRONMENT_IS_WASM_WORKER){readyPromiseResolve?.(Module);initRuntime();return}preRun();function doRun(){Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve?.(Module);Module["onRuntimeInitialized"]?.();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun()},1)}else{doRun()}}var wasmExports;if(!ENVIRONMENT_IS_WASM_WORKER){wasmExports=await (createWasm());run()}if(runtimeInitialized){moduleRtn=Module}else{moduleRtn=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject})} ;return moduleRtn}})();if(typeof exports==="object"&&typeof module==="object"){module.exports=amyModule;module.exports.default=amyModule}else if(typeof define==="function"&&define["amd"])define([],()=>amyModule);var isWW=globalThis.self?.name=="em-ww";var isNode=globalThis.process?.versions?.node&&globalThis.process?.type!="renderer";if(isNode)isWW=require("worker_threads").workerData==="em-ww";isWW||=!!globalThis.AudioWorkletGlobalScope;isWW&&amyModule(); // amy_connector.js // helpers for JS to communicate with AMY, including webMIDI diff --git a/docs/amy.wasm b/docs/amy.wasm index 2eb5d004f6d44c4a71f18df0457f6f77f937c8de..3694fa7cb4cee678cb1d09df35424eebf645f8d7 100755 GIT binary patch delta 56972 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, DAn Ellis maintainer=Brian Whitman sentence=AMY, the Music Synthesizer Library diff --git a/pyproject.toml b/pyproject.toml index e6ccf54d..45e75e76 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "amy" -version = "1.2.190" +version = "1.2.191" description = "AMY synthesizer" readme = "README.md" dependencies = ['numpy', 'soundfile']