From 1b630a092fbae640adfdc0da232f934735567b39 Mon Sep 17 00:00:00 2001 From: Surma Date: Wed, 26 Sep 2018 12:31:26 +0100 Subject: [PATCH] Dockerize mozjpeg (#169) * Dockerize mozjpeg build process * Update README --- codecs/mozjpeg_enc/README.md | 2 -- codecs/mozjpeg_enc/build.sh | 39 ++++++++++++++++++++++++++++ codecs/mozjpeg_enc/mozjpeg_enc.js | 23 ++++++++++------ codecs/mozjpeg_enc/mozjpeg_enc.wasm | Bin 269528 -> 266775 bytes codecs/mozjpeg_enc/package.json | 4 +-- 5 files changed, 55 insertions(+), 13 deletions(-) create mode 100755 codecs/mozjpeg_enc/build.sh diff --git a/codecs/mozjpeg_enc/README.md b/codecs/mozjpeg_enc/README.md index d4b1ed1a..eeeb68d8 100644 --- a/codecs/mozjpeg_enc/README.md +++ b/codecs/mozjpeg_enc/README.md @@ -6,8 +6,6 @@ ## Dependencies - Docker -- Automake -- pkg-config ## Example diff --git a/codecs/mozjpeg_enc/build.sh b/codecs/mozjpeg_enc/build.sh new file mode 100755 index 00000000..a81c8420 --- /dev/null +++ b/codecs/mozjpeg_enc/build.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +set -e + +apt-get update +apt-get install -qqy autoconf libtool libpng-dev pkg-config + +echo "=============================================" +echo "Compiling mozjpeg" +echo "=============================================" +( + cd node_modules/mozjpeg + autoreconf -fiv + emconfigure ./configure --without-simd + emmake make libjpeg.la +) +echo "=============================================" +echo "Compiling mozjpeg done" +echo "=============================================" + +echo "=============================================" +echo "Compiling wasm bindings" +echo "=============================================" +emcc \ + --bind -O3 \ + -s WASM=1 \ + -s ALLOW_MEMORY_GROWTH=1 \ + -s MODULARIZE=1 \ + -s 'EXPORT_NAME="mozjpeg_enc"' \ + -I node_modules/mozjpeg \ + -o ./mozjpeg_enc.js \ + -Wno-deprecated-register -Wno-writable-strings \ + node_modules/mozjpeg/rdswitch.c \ + -x c++ -std=c++11 \ + mozjpeg_enc.cpp \ + node_modules/mozjpeg/.libs/libjpeg.a +echo "=============================================" +echo "Compiling wasm bindings done" +echo "=============================================" diff --git a/codecs/mozjpeg_enc/mozjpeg_enc.js b/codecs/mozjpeg_enc/mozjpeg_enc.js index 77b7a0ab..59578bed 100644 --- a/codecs/mozjpeg_enc/mozjpeg_enc.js +++ b/codecs/mozjpeg_enc/mozjpeg_enc.js @@ -1,17 +1,24 @@ -var mozjpeg_enc = function(mozjpeg_enc) { + +var mozjpeg_enc = (function() { + var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; + return ( +function(mozjpeg_enc) { mozjpeg_enc = mozjpeg_enc || {}; -var Module=typeof mozjpeg_enc!=="undefined"?mozjpeg_enc:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}Module["arguments"]=[];Module["thisProgram"]="./this.program";Module["quit"]=(function(status,toThrow){throw toThrow});Module["preRun"]=[];Module["postRun"]=[];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;if(Module["ENVIRONMENT"]){if(Module["ENVIRONMENT"]==="WEB"){ENVIRONMENT_IS_WEB=true}else if(Module["ENVIRONMENT"]==="WORKER"){ENVIRONMENT_IS_WORKER=true}else if(Module["ENVIRONMENT"]==="NODE"){ENVIRONMENT_IS_NODE=true}else if(Module["ENVIRONMENT"]==="SHELL"){ENVIRONMENT_IS_SHELL=true}else{throw new Error("Module['ENVIRONMENT'] value is not valid. must be one of: WEB|WORKER|NODE|SHELL.")}}else{ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER}if(ENVIRONMENT_IS_NODE){var nodeFS;var nodePath;Module["read"]=function shell_read(filename,binary){var ret;if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);ret=nodeFS["readFileSync"](filename);return binary?ret:ret.toString()};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}Module["arguments"]=process["argv"].slice(2);process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));process["on"]("unhandledRejection",(function(reason,p){process["exit"](1)}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){Module["read"]=function shell_read(f){return read(f)}}Module["readBinary"]=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof quit==="function"){Module["quit"]=(function(status,toThrow){quit(status)})}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module["readBinary"]=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)};if(typeof arguments!="undefined"){Module["arguments"]=arguments}Module["setWindowTitle"]=(function(title){document.title=title})}Module["print"]=typeof console!=="undefined"?console.log.bind(console):typeof print!=="undefined"?print:null;Module["printErr"]=typeof printErr!=="undefined"?printErr:typeof console!=="undefined"&&console.warn.bind(console)||Module["print"];Module.print=Module["print"];Module.printErr=Module["printErr"];for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var STACK_ALIGN=16;function staticAlloc(size){assert(!staticSealed);var ret=STATICTOP;STATICTOP=STATICTOP+size+15&-16;return ret}function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;var ret=size=Math.ceil(size/factor)*factor;return ret}var functionPointers=new Array(0);var GLOBAL_BASE=1024;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function Pointer_stringify(ptr,length){if(length===0||!ptr)return"";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return UTF8ToString(ptr)}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}var WASM_PAGE_SIZE=65536;var ASMJS_PAGE_SIZE=16777216;var MIN_TOTAL_MEMORY=16777216;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBuffer(buf){Module["buffer"]=buffer=buf}function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}if(!Module["reallocBuffer"])Module["reallocBuffer"]=(function(size){var ret;try{if(ArrayBuffer.transfer){ret=ArrayBuffer.transfer(buffer,size)}else{var oldHEAP8=HEAP8;ret=new ArrayBuffer(size);var temp=new Int8Array(ret);temp.set(oldHEAP8)}}catch(e){return false}var success=_emscripten_replace_memory(ret);if(!success)return false;return ret});function enlargeMemory(){var PAGE_MULTIPLE=Module["usingWasm"]?WASM_PAGE_SIZE:ASMJS_PAGE_SIZE;var LIMIT=2147483648-PAGE_MULTIPLE;if(HEAP32[DYNAMICTOP_PTR>>2]>LIMIT){return false}var OLD_TOTAL_MEMORY=TOTAL_MEMORY;TOTAL_MEMORY=Math.max(TOTAL_MEMORY,MIN_TOTAL_MEMORY);while(TOTAL_MEMORY>2]){if(TOTAL_MEMORY<=536870912){TOTAL_MEMORY=alignUp(2*TOTAL_MEMORY,PAGE_MULTIPLE)}else{TOTAL_MEMORY=Math.min(alignUp((3*TOTAL_MEMORY+2147483648)/4,PAGE_MULTIPLE),LIMIT)}}var replacement=Module["reallocBuffer"](TOTAL_MEMORY);if(!replacement||replacement.byteLength!=TOTAL_MEMORY){TOTAL_MEMORY=OLD_TOTAL_MEMORY;return false}updateGlobalBuffer(replacement);updateGlobalBufferViews();return true}var byteLength;try{byteLength=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get);byteLength(new ArrayBuffer(4))}catch(e){byteLength=(function(buffer){return buffer.byteLength})}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;if(TOTAL_MEMORY0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_round=Math.round;var Math_min=Math.min;var Math_max=Math.max;var Math_clz32=Math.clz32;var Math_trunc=Math.trunc;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}function integrateWasmJS(){var wasmTextFile="mozjpeg_enc.wast";var wasmBinaryFile="mozjpeg_enc.wasm";var asmjsCodeFile="mozjpeg_enc.temp.asm.js";if(typeof Module["locateFile"]==="function"){if(!isDataURI(wasmTextFile)){wasmTextFile=Module["locateFile"](wasmTextFile)}if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=Module["locateFile"](wasmBinaryFile)}if(!isDataURI(asmjsCodeFile)){asmjsCodeFile=Module["locateFile"](asmjsCodeFile)}}var wasmPageSize=64*1024;var info={"global":null,"env":null,"asm2wasm":{"f64-rem":(function(x,y){return x%y}),"debugger":(function(){debugger})},"parent":Module};var exports=null;function mergeMemory(newBuffer){var oldBuffer=Module["buffer"];if(newBuffer.byteLength0);info.refcount--;if(info.refcount===0&&!info.rethrown){if(info.destructor){Module["dynCall_vi"](info.destructor,ptr)}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};var SYSCALLS={varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.get(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();var ret=0;if(!___syscall146.buffers){___syscall146.buffers=[null,[],[]];___syscall146.printChar=(function(stream,curr){var buffer=___syscall146.buffers[stream];assert(buffer);if(curr===0||curr===10){(stream===1?Module["print"]:Module["printErr"])(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}})}for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2])}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return(new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n"))(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,(function(message){this.name=errorName;this.message=message;var stack=(new Error(message)).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}}));errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=(function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}});return errorClass}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach((function(type){typeDependencies[type]=dependentTypes}));function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i>shift])}),destructorFunction:null})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i>2])});case 3:return(function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])});default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":(function(value){return value}),"toWireType":(function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}return value}),"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type "+typeof constructor+" which is not a function")}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",(function(){}));dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i0?", ":"")+argsListWired}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i>2)+i])}return array}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(dynCall){var args=[];for(var i=1;i>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=(function(value){return value});if(minRange===0){var bitshift=32-8*size;fromWireType=(function(value){return value<>>bitshift})}var isUnsignedType=name.indexOf("unsigned")!=-1;registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":(function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}if(valuemaxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!")}return isUnsignedType?value>>>0:value|0}),"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(heap["buffer"],data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":(function(value){var length=HEAPU32[value>>2];var a=new Array(length);for(var i=0;i>2]=length;for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}if(destructors!==null){destructors.push(_free,ptr)}return ptr}),"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:(function(ptr){_free(ptr)})})}function __embind_register_std_wstring(rawType,charSize,name){name=readLatin1String(name);var getHeap,shift;if(charSize===2){getHeap=(function(){return HEAPU16});shift=1}else if(charSize===4){getHeap=(function(){return HEAPU32});shift=2}registerType(rawType,{name:name,"fromWireType":(function(value){var HEAP=getHeap();var length=HEAPU32[value>>2];var a=new Array(length);var start=value+4>>shift;for(var i=0;i>2]=length;var start=ptr+4>>shift;for(var i=0;i4){emval_handle_array[handle].refcount+=1}}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl}function __emval_take_value(type,argv){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](argv);return __emval_register(v)}function _abort(){Module["abort"]()}function __exit(status){Module["exit"](status)}function _exit(status){__exit(status)}var _environ=STATICTOP;STATICTOP+=16;function ___buildEnvironment(env){var MAX_ENV_VALUES=64;var TOTAL_ENV_SIZE=1024;var poolPtr;var envPtr;if(!___buildEnvironment.called){___buildEnvironment.called=true;ENV["USER"]=ENV["LOGNAME"]="web_user";ENV["PATH"]="/";ENV["PWD"]="/";ENV["HOME"]="/home/web_user";ENV["LANG"]="C.UTF-8";ENV["_"]=Module["thisProgram"];poolPtr=staticAlloc(TOTAL_ENV_SIZE);envPtr=staticAlloc(MAX_ENV_VALUES*4);HEAP32[envPtr>>2]=poolPtr;HEAP32[_environ>>2]=envPtr}else{envPtr=HEAP32[_environ>>2];poolPtr=HEAP32[envPtr>>2]}var strings=[];var totalSize=0;for(var key in env){if(typeof env[key]==="string"){var line=key+"="+env[key];strings.push(line);totalSize+=line.length}}if(totalSize>TOTAL_ENV_SIZE){throw new Error("Environment size exceeded TOTAL_ENV_SIZE!")}var ptrSize=4;for(var i=0;i>2]=poolPtr;poolPtr+=line.length+1}HEAP32[envPtr+strings.length*ptrSize>>2]=0}var ENV={};function _getenv(name){if(name===0)return 0;name=Pointer_stringify(name);if(!ENV.hasOwnProperty(name))return 0;if(_getenv.ret)_free(_getenv.ret);_getenv.ret=allocateUTF8(ENV[name]);return _getenv.ret}function _llvm_exp2_f32(x){return Math.pow(2,x)}function _llvm_exp2_f64(){return _llvm_exp2_f32.apply(null,arguments)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}var PTHREAD_SPECIFIC={};function _pthread_getspecific(key){return PTHREAD_SPECIFIC[key]||0}var PTHREAD_SPECIFIC_NEXT_KEY=1;var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _pthread_key_create(key,destructor){if(key==0){return ERRNO_CODES.EINVAL}HEAP32[key>>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Module["dynCall_v"](func);_pthread_once.seen[ptr]=1}function _pthread_setspecific(key,value){if(!(key in PTHREAD_SPECIFIC)){return ERRNO_CODES.EINVAL}PTHREAD_SPECIFIC[key]=value;return 0}function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}InternalError=Module["InternalError"]=extendError(Error,"InternalError");embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");init_emval();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");___buildEnvironment(ENV);DYNAMICTOP_PTR=staticAlloc(4);STACK_BASE=STACKTOP=alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;Module["wasmTableSize"]=212;Module["wasmMaxTableSize"]=212;Module.asmGlobalArg={};Module.asmLibraryArg={"abort":abort,"enlargeMemory":enlargeMemory,"getTotalMemory":getTotalMemory,"abortOnCannotGrowMemory":abortOnCannotGrowMemory,"___setErrNo":___setErrNo,"___syscall140":___syscall140,"___syscall146":___syscall146,"___syscall6":___syscall6,"__embind_finalize_value_object":__embind_finalize_value_object,"__embind_register_bool":__embind_register_bool,"__embind_register_emval":__embind_register_emval,"__embind_register_float":__embind_register_float,"__embind_register_function":__embind_register_function,"__embind_register_integer":__embind_register_integer,"__embind_register_memory_view":__embind_register_memory_view,"__embind_register_std_string":__embind_register_std_string,"__embind_register_std_wstring":__embind_register_std_wstring,"__embind_register_value_object":__embind_register_value_object,"__embind_register_value_object_field":__embind_register_value_object_field,"__embind_register_void":__embind_register_void,"__emval_decref":__emval_decref,"__emval_incref":__emval_incref,"__emval_take_value":__emval_take_value,"_abort":_abort,"_emscripten_memcpy_big":_emscripten_memcpy_big,"_exit":_exit,"_getenv":_getenv,"_llvm_exp2_f64":_llvm_exp2_f64,"_pthread_getspecific":_pthread_getspecific,"_pthread_key_create":_pthread_key_create,"_pthread_once":_pthread_once,"_pthread_setspecific":_pthread_setspecific,"DYNAMICTOP_PTR":DYNAMICTOP_PTR,"STACKTOP":STACKTOP};var asm=Module["asm"](Module.asmGlobalArg,Module.asmLibraryArg,buffer);Module["asm"]=asm;var __GLOBAL__sub_I_bind_cpp=Module["__GLOBAL__sub_I_bind_cpp"]=(function(){return Module["asm"]["__GLOBAL__sub_I_bind_cpp"].apply(null,arguments)});var __GLOBAL__sub_I_mozjpeg_enc_cpp=Module["__GLOBAL__sub_I_mozjpeg_enc_cpp"]=(function(){return Module["asm"]["__GLOBAL__sub_I_mozjpeg_enc_cpp"].apply(null,arguments)});var ___errno_location=Module["___errno_location"]=(function(){return Module["asm"]["___errno_location"].apply(null,arguments)});var ___getTypeName=Module["___getTypeName"]=(function(){return Module["asm"]["___getTypeName"].apply(null,arguments)});var _emscripten_replace_memory=Module["_emscripten_replace_memory"]=(function(){return Module["asm"]["_emscripten_replace_memory"].apply(null,arguments)});var _free=Module["_free"]=(function(){return Module["asm"]["_free"].apply(null,arguments)});var _malloc=Module["_malloc"]=(function(){return Module["asm"]["_malloc"].apply(null,arguments)});var dynCall_i=Module["dynCall_i"]=(function(){return Module["asm"]["dynCall_i"].apply(null,arguments)});var dynCall_ii=Module["dynCall_ii"]=(function(){return Module["asm"]["dynCall_ii"].apply(null,arguments)});var dynCall_iii=Module["dynCall_iii"]=(function(){return Module["asm"]["dynCall_iii"].apply(null,arguments)});var dynCall_iiii=Module["dynCall_iiii"]=(function(){return Module["asm"]["dynCall_iiii"].apply(null,arguments)});var dynCall_iiiii=Module["dynCall_iiiii"]=(function(){return Module["asm"]["dynCall_iiiii"].apply(null,arguments)});var dynCall_iiiiii=Module["dynCall_iiiiii"]=(function(){return Module["asm"]["dynCall_iiiiii"].apply(null,arguments)});var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=(function(){return Module["asm"]["dynCall_iiiiiii"].apply(null,arguments)});var dynCall_v=Module["dynCall_v"]=(function(){return Module["asm"]["dynCall_v"].apply(null,arguments)});var dynCall_vi=Module["dynCall_vi"]=(function(){return Module["asm"]["dynCall_vi"].apply(null,arguments)});var dynCall_vii=Module["dynCall_vii"]=(function(){return Module["asm"]["dynCall_vii"].apply(null,arguments)});var dynCall_viii=Module["dynCall_viii"]=(function(){return Module["asm"]["dynCall_viii"].apply(null,arguments)});var dynCall_viiii=Module["dynCall_viiii"]=(function(){return Module["asm"]["dynCall_viiii"].apply(null,arguments)});var dynCall_viiiii=Module["dynCall_viiiii"]=(function(){return Module["asm"]["dynCall_viiiii"].apply(null,arguments)});var dynCall_viiiiii=Module["dynCall_viiiiii"]=(function(){return Module["asm"]["dynCall_viiiiii"].apply(null,arguments)});var dynCall_viiiiiii=Module["dynCall_viiiiiii"]=(function(){return Module["asm"]["dynCall_viiiiiii"].apply(null,arguments)});var dynCall_viiiiiiii=Module["dynCall_viiiiiiii"]=(function(){return Module["asm"]["dynCall_viiiiiiii"].apply(null,arguments)});Module["asm"]=asm;Module["then"]=(function(func){if(Module["calledRun"]){func(Module)}else{var old=Module["onRuntimeInitialized"];Module["onRuntimeInitialized"]=(function(){if(old)old();func(Module)})}return Module});function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};function run(args){args=args||Module["arguments"];if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]&&status===0){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["exit"](status)}Module["quit"](status,new ExitStatus(status))}Module["exit"]=exit;function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;throw"abort("+what+"). Build with -s ASSERTIONS=1 for more info."}Module["abort"]=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}Module["noExitRuntime"]=true;run() +var Module=typeof mozjpeg_enc!=="undefined"?mozjpeg_enc:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}Module["arguments"]=[];Module["thisProgram"]="./this.program";Module["quit"]=(function(status,toThrow){throw toThrow});Module["preRun"]=[];Module["postRun"]=[];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}else{return scriptDirectory+path}}if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname+"/";var nodeFS;var nodePath;Module["read"]=function shell_read(filename,binary){var ret;if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);ret=nodeFS["readFileSync"](filename);return binary?ret:ret.toString()};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}Module["arguments"]=process["argv"].slice(2);process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));process["on"]("unhandledRejection",(function(reason,p){process["exit"](1)}));Module["quit"]=(function(status){process["exit"](status)});Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){Module["read"]=function shell_read(f){return read(f)}}Module["readBinary"]=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof quit==="function"){Module["quit"]=(function(status){quit(status)})}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WEB){if(document.currentScript){scriptDirectory=document.currentScript.src}}else{scriptDirectory=self.location.href}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}Module["read"]=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module["readBinary"]=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)};Module["setWindowTitle"]=(function(title){document.title=title})}else{}var out=Module["print"]||(typeof console!=="undefined"?console.log.bind(console):typeof print!=="undefined"?print:null);var err=Module["printErr"]||(typeof printErr!=="undefined"?printErr:typeof console!=="undefined"&&console.warn.bind(console)||out);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var STACK_ALIGN=16;function staticAlloc(size){var ret=STATICTOP;STATICTOP=STATICTOP+size+15&-16;return ret}function dynamicAlloc(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;if(end>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){HEAP32[DYNAMICTOP_PTR>>2]=ret;return 0}}return ret}function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;var ret=size=Math.ceil(size/factor)*factor;return ret}var asm2wasmImports={"f64-rem":(function(x,y){return x%y}),"debugger":(function(){debugger})};var functionPointers=new Array(0);var GLOBAL_BASE=1024;var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getMemory(size){if(!staticSealed)return staticAlloc(size);if(!runtimeInitialized)return dynamicAlloc(size);return _malloc(size)}function Pointer_stringify(ptr,length){if(length===0||!ptr)return"";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return UTF8ToString(ptr)}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}var WASM_PAGE_SIZE=65536;var ASMJS_PAGE_SIZE=16777216;var MIN_TOTAL_MEMORY=16777216;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBuffer(buf){Module["buffer"]=buffer=buf}function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}if(!Module["reallocBuffer"])Module["reallocBuffer"]=(function(size){var ret;try{var oldHEAP8=HEAP8;ret=new ArrayBuffer(size);var temp=new Int8Array(ret);temp.set(oldHEAP8)}catch(e){return false}var success=_emscripten_replace_memory(ret);if(!success)return false;return ret});function enlargeMemory(){var PAGE_MULTIPLE=Module["usingWasm"]?WASM_PAGE_SIZE:ASMJS_PAGE_SIZE;var LIMIT=2147483648-PAGE_MULTIPLE;if(HEAP32[DYNAMICTOP_PTR>>2]>LIMIT){return false}var OLD_TOTAL_MEMORY=TOTAL_MEMORY;TOTAL_MEMORY=Math.max(TOTAL_MEMORY,MIN_TOTAL_MEMORY);while(TOTAL_MEMORY>2]){if(TOTAL_MEMORY<=536870912){TOTAL_MEMORY=alignUp(2*TOTAL_MEMORY,PAGE_MULTIPLE)}else{TOTAL_MEMORY=Math.min(alignUp((3*TOTAL_MEMORY+2147483648)/4,PAGE_MULTIPLE),LIMIT)}}var replacement=Module["reallocBuffer"](TOTAL_MEMORY);if(!replacement||replacement.byteLength!=TOTAL_MEMORY){TOTAL_MEMORY=OLD_TOTAL_MEMORY;return false}updateGlobalBuffer(replacement);updateGlobalBufferViews();return true}var byteLength;try{byteLength=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get);byteLength(new ArrayBuffer(4))}catch(e){byteLength=(function(buffer){return buffer.byteLength})}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;if(TOTAL_MEMORY0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}function integrateWasmJS(){var wasmTextFile="mozjpeg_enc.wast";var wasmBinaryFile="mozjpeg_enc.wasm";var asmjsCodeFile="mozjpeg_enc.temp.asm.js";if(!isDataURI(wasmTextFile)){wasmTextFile=locateFile(wasmTextFile)}if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}if(!isDataURI(asmjsCodeFile)){asmjsCodeFile=locateFile(asmjsCodeFile)}var wasmPageSize=64*1024;var info={"global":null,"env":null,"asm2wasm":asm2wasmImports,"parent":Module};var exports=null;function mergeMemory(newBuffer){var oldBuffer=Module["buffer"];if(newBuffer.byteLength>2]=poolPtr;HEAP32[environ>>2]=envPtr}else{envPtr=HEAP32[environ>>2];poolPtr=HEAP32[envPtr>>2]}var strings=[];var totalSize=0;for(var key in ENV){if(typeof ENV[key]==="string"){var line=key+"="+ENV[key];strings.push(line);totalSize+=line.length}}if(totalSize>TOTAL_ENV_SIZE){throw new Error("Environment size exceeded TOTAL_ENV_SIZE!")}var ptrSize=4;for(var i=0;i>2]=poolPtr;poolPtr+=line.length+1}HEAP32[envPtr+strings.length*ptrSize>>2]=0}var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:(function(adjusted){if(!adjusted||EXCEPTIONS.infos[adjusted])return adjusted;for(var key in EXCEPTIONS.infos){var ptr=+key;var info=EXCEPTIONS.infos[ptr];if(info.adjusted===adjusted){return ptr}}return adjusted}),addRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount++}),decRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];assert(info.refcount>0);info.refcount--;if(info.refcount===0&&!info.rethrown){if(info.destructor){Module["dynCall_vi"](info.destructor,ptr)}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};var SYSCALLS={varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.get(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();var ret=0;if(!___syscall146.buffers){___syscall146.buffers=[null,[],[]];___syscall146.printChar=(function(stream,curr){var buffer=___syscall146.buffers[stream];assert(buffer);if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}})}for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2])}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return(new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n"))(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,(function(message){this.name=errorName;this.message=message;var stack=(new Error(message)).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}}));errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=(function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}});return errorClass}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach((function(type){typeDependencies[type]=dependentTypes}));function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i>shift])}),destructorFunction:null})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i>2])});case 3:return(function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])});default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":(function(value){return value}),"toWireType":(function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}return value}),"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type "+typeof constructor+" which is not a function")}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",(function(){}));dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i0?", ":"")+argsListWired}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i>2)+i])}return array}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(dynCall){var args=[];for(var i=1;i>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=(function(value){return value});if(minRange===0){var bitshift=32-8*size;fromWireType=(function(value){return value<>>bitshift})}var isUnsignedType=name.indexOf("unsigned")!=-1;registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":(function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}if(valuemaxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!")}return isUnsignedType?value>>>0:value|0}),"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(heap["buffer"],data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":(function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var endChar=HEAPU8[value+4+length];var endCharSwap=0;if(endChar!=0){endCharSwap=endChar;HEAPU8[value+4+length]=0}var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(HEAPU8[currentBytePtr]==0){var stringSegment=UTF8ToString(decodeStartPtr);if(str===undefined)str=stringSegment;else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}if(endCharSwap!=0)HEAPU8[value+4+length]=endCharSwap}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;i>2];var a=new Array(length);var start=value+4>>shift;for(var i=0;i>2]=length;var start=ptr+4>>shift;for(var i=0;i4){emval_handle_array[handle].refcount+=1}}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl}function __emval_take_value(type,argv){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](argv);return __emval_register(v)}function _abort(){Module["abort"]()}function __exit(status){exit(status)}function _exit(status){__exit(status)}function _getenv(name){if(name===0)return 0;name=Pointer_stringify(name);if(!ENV.hasOwnProperty(name))return 0;if(_getenv.ret)_free(_getenv.ret);_getenv.ret=allocateUTF8(ENV[name]);return _getenv.ret}function _llvm_exp2_f32(x){return Math.pow(2,x)}function _llvm_exp2_f64(){return _llvm_exp2_f32.apply(null,arguments)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}var PTHREAD_SPECIFIC={};function _pthread_getspecific(key){return PTHREAD_SPECIFIC[key]||0}var PTHREAD_SPECIFIC_NEXT_KEY=1;var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _pthread_key_create(key,destructor){if(key==0){return ERRNO_CODES.EINVAL}HEAP32[key>>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Module["dynCall_v"](func);_pthread_once.seen[ptr]=1}function _pthread_setspecific(key,value){if(!(key in PTHREAD_SPECIFIC)){return ERRNO_CODES.EINVAL}PTHREAD_SPECIFIC[key]=value;return 0}function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}InternalError=Module["InternalError"]=extendError(Error,"InternalError");embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");init_emval();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");DYNAMICTOP_PTR=staticAlloc(4);STACK_BASE=STACKTOP=alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;Module["wasmTableSize"]=212;Module["wasmMaxTableSize"]=212;Module.asmGlobalArg={};Module.asmLibraryArg={"abort":abort,"enlargeMemory":enlargeMemory,"getTotalMemory":getTotalMemory,"abortOnCannotGrowMemory":abortOnCannotGrowMemory,"___buildEnvironment":___buildEnvironment,"___setErrNo":___setErrNo,"___syscall140":___syscall140,"___syscall146":___syscall146,"___syscall6":___syscall6,"__embind_finalize_value_object":__embind_finalize_value_object,"__embind_register_bool":__embind_register_bool,"__embind_register_emval":__embind_register_emval,"__embind_register_float":__embind_register_float,"__embind_register_function":__embind_register_function,"__embind_register_integer":__embind_register_integer,"__embind_register_memory_view":__embind_register_memory_view,"__embind_register_std_string":__embind_register_std_string,"__embind_register_std_wstring":__embind_register_std_wstring,"__embind_register_value_object":__embind_register_value_object,"__embind_register_value_object_field":__embind_register_value_object_field,"__embind_register_void":__embind_register_void,"__emval_decref":__emval_decref,"__emval_incref":__emval_incref,"__emval_take_value":__emval_take_value,"_abort":_abort,"_emscripten_memcpy_big":_emscripten_memcpy_big,"_exit":_exit,"_getenv":_getenv,"_llvm_exp2_f64":_llvm_exp2_f64,"_pthread_getspecific":_pthread_getspecific,"_pthread_key_create":_pthread_key_create,"_pthread_once":_pthread_once,"_pthread_setspecific":_pthread_setspecific,"DYNAMICTOP_PTR":DYNAMICTOP_PTR,"STACKTOP":STACKTOP};var asm=Module["asm"](Module.asmGlobalArg,Module.asmLibraryArg,buffer);Module["asm"]=asm;var __GLOBAL__sub_I_bind_cpp=Module["__GLOBAL__sub_I_bind_cpp"]=(function(){return Module["asm"]["__GLOBAL__sub_I_bind_cpp"].apply(null,arguments)});var __GLOBAL__sub_I_mozjpeg_enc_cpp=Module["__GLOBAL__sub_I_mozjpeg_enc_cpp"]=(function(){return Module["asm"]["__GLOBAL__sub_I_mozjpeg_enc_cpp"].apply(null,arguments)});var ___emscripten_environ_constructor=Module["___emscripten_environ_constructor"]=(function(){return Module["asm"]["___emscripten_environ_constructor"].apply(null,arguments)});var ___errno_location=Module["___errno_location"]=(function(){return Module["asm"]["___errno_location"].apply(null,arguments)});var ___getTypeName=Module["___getTypeName"]=(function(){return Module["asm"]["___getTypeName"].apply(null,arguments)});var _emscripten_replace_memory=Module["_emscripten_replace_memory"]=(function(){return Module["asm"]["_emscripten_replace_memory"].apply(null,arguments)});var _free=Module["_free"]=(function(){return Module["asm"]["_free"].apply(null,arguments)});var _malloc=Module["_malloc"]=(function(){return Module["asm"]["_malloc"].apply(null,arguments)});var dynCall_i=Module["dynCall_i"]=(function(){return Module["asm"]["dynCall_i"].apply(null,arguments)});var dynCall_ii=Module["dynCall_ii"]=(function(){return Module["asm"]["dynCall_ii"].apply(null,arguments)});var dynCall_iii=Module["dynCall_iii"]=(function(){return Module["asm"]["dynCall_iii"].apply(null,arguments)});var dynCall_iiii=Module["dynCall_iiii"]=(function(){return Module["asm"]["dynCall_iiii"].apply(null,arguments)});var dynCall_iiiii=Module["dynCall_iiiii"]=(function(){return Module["asm"]["dynCall_iiiii"].apply(null,arguments)});var dynCall_iiiiii=Module["dynCall_iiiiii"]=(function(){return Module["asm"]["dynCall_iiiiii"].apply(null,arguments)});var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=(function(){return Module["asm"]["dynCall_iiiiiii"].apply(null,arguments)});var dynCall_v=Module["dynCall_v"]=(function(){return Module["asm"]["dynCall_v"].apply(null,arguments)});var dynCall_vi=Module["dynCall_vi"]=(function(){return Module["asm"]["dynCall_vi"].apply(null,arguments)});var dynCall_vii=Module["dynCall_vii"]=(function(){return Module["asm"]["dynCall_vii"].apply(null,arguments)});var dynCall_viii=Module["dynCall_viii"]=(function(){return Module["asm"]["dynCall_viii"].apply(null,arguments)});var dynCall_viiii=Module["dynCall_viiii"]=(function(){return Module["asm"]["dynCall_viiii"].apply(null,arguments)});var dynCall_viiiii=Module["dynCall_viiiii"]=(function(){return Module["asm"]["dynCall_viiiii"].apply(null,arguments)});var dynCall_viiiiii=Module["dynCall_viiiiii"]=(function(){return Module["asm"]["dynCall_viiiiii"].apply(null,arguments)});var dynCall_viiiiiii=Module["dynCall_viiiiiii"]=(function(){return Module["asm"]["dynCall_viiiiiii"].apply(null,arguments)});var dynCall_viiiiiiii=Module["dynCall_viiiiiiii"]=(function(){return Module["asm"]["dynCall_viiiiiiii"].apply(null,arguments)});Module["asm"]=asm;Module["then"]=(function(func){if(Module["calledRun"]){func(Module)}else{var old=Module["onRuntimeInitialized"];Module["onRuntimeInitialized"]=(function(){if(old)old();func(Module)})}return Module});function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};function run(args){args=args||Module["arguments"];if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]&&status===0){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}Module["quit"](status,new ExitStatus(status))}function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(what!==undefined){out(what);err(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;throw"abort("+what+"). Build with -s ASSERTIONS=1 for more info."}Module["abort"]=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}Module["noExitRuntime"]=true;run() return mozjpeg_enc; -}; +} +); +})(); if (typeof exports === 'object' && typeof module === 'object') - module.exports = mozjpeg_enc; -else if (typeof define === 'function' && define['amd']) - define([], function() { return mozjpeg_enc; }); -else if (typeof exports === 'object') - exports["mozjpeg_enc"] = mozjpeg_enc; + module.exports = mozjpeg_enc; + else if (typeof define === 'function' && define['amd']) + define([], function() { return mozjpeg_enc; }); + else if (typeof exports === 'object') + exports["mozjpeg_enc"] = mozjpeg_enc; + \ No newline at end of file diff --git a/codecs/mozjpeg_enc/mozjpeg_enc.wasm b/codecs/mozjpeg_enc/mozjpeg_enc.wasm index 723bb828553a42c6c18180dce558d9f34779f996..cfa631cd8b1d85aaeef8fdc4baf5322670380cdf 100644 GIT binary patch delta 64489 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 delta 64592 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 diff --git a/codecs/mozjpeg_enc/package.json b/codecs/mozjpeg_enc/package.json index 313ca776..549b8589 100644 --- a/codecs/mozjpeg_enc/package.json +++ b/codecs/mozjpeg_enc/package.json @@ -2,9 +2,7 @@ "name": "mozjpeg_enc", "scripts": { "install": "napa", - "build": "npm run build:library && npm run build:wasm", - "build:library": "cd node_modules/mozjpeg && autoreconf -fiv && docker run --rm -v $(pwd):/src trzeci/emscripten emconfigure ./configure --without-simd && docker run --rm -v $(pwd):/src trzeci/emscripten emmake make libjpeg.la", - "build:wasm": "docker run --rm -v $(pwd):/src trzeci/emscripten emcc --bind -O3 -s WASM=1 -s ALLOW_MEMORY_GROWTH=1 -s MODULARIZE=1 -s 'EXPORT_NAME=\"mozjpeg_enc\"' -I node_modules/mozjpeg -o ./mozjpeg_enc.js -Wno-deprecated-register -Wno-writable-strings node_modules/mozjpeg/rdswitch.c -x c++ -std=c++11 mozjpeg_enc.cpp node_modules/mozjpeg/.libs/libjpeg.a" + "build": "docker run --rm -v $(pwd):/src trzeci/emscripten ./build.sh" }, "napa": { "mozjpeg": "mozilla/mozjpeg#v3.3.1"