@pqhuy98/mdx-m3-viewer 5.13.0 → 5.13.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -21,5 +21,5 @@
21
21
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
22
  *
23
23
  */
24
- var ModelViewer;(()=>{var e={7:e=>{"use strict";var t,n="object"==typeof Reflect?Reflect:null,a=n&&"function"==typeof n.apply?n.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};t=n&&"function"==typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var r=Number.isNaN||function(e){return e!=e};function i(){i.init.call(this)}e.exports=i,e.exports.once=function(e,t){return new Promise(function(n,a){function r(n){e.removeListener(t,i),a(n)}function i(){"function"==typeof e.removeListener&&e.removeListener("error",r),n([].slice.call(arguments))}p(e,t,i,{once:!0}),"error"!==t&&function(e,t,n){"function"==typeof e.on&&p(e,"error",t,n)}(e,r,{once:!0})})},i.EventEmitter=i,i.prototype._events=void 0,i.prototype._eventsCount=0,i.prototype._maxListeners=void 0;var s=10;function l(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function o(e){return void 0===e._maxListeners?i.defaultMaxListeners:e._maxListeners}function u(e,t,n,a){var r,i,s,u;if(l(n),void 0===(i=e._events)?(i=e._events=Object.create(null),e._eventsCount=0):(void 0!==i.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),i=e._events),s=i[t]),void 0===s)s=i[t]=n,++e._eventsCount;else if("function"==typeof s?s=i[t]=a?[n,s]:[s,n]:a?s.unshift(n):s.push(n),(r=o(e))>0&&s.length>r&&!s.warned){s.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=s.length,u=c,console&&console.warn&&console.warn(u)}return e}function c(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function d(e,t,n){var a={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},r=c.bind(a);return r.listener=n,a.wrapFn=r,r}function h(e,t,n){var a=e._events;if(void 0===a)return[];var r=a[t];return void 0===r?[]:"function"==typeof r?n?[r.listener||r]:[r]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(r):m(r,r.length)}function f(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function m(e,t){for(var n=new Array(t),a=0;a<t;++a)n[a]=e[a];return n}function p(e,t,n,a){if("function"==typeof e.on)a.once?e.once(t,n):e.on(t,n);else{if("function"!=typeof e.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e);e.addEventListener(t,function r(i){a.once&&e.removeEventListener(t,r),n(i)})}}Object.defineProperty(i,"defaultMaxListeners",{enumerable:!0,get:function(){return s},set:function(e){if("number"!=typeof e||e<0||r(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");s=e}}),i.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},i.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||r(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},i.prototype.getMaxListeners=function(){return o(this)},i.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var r="error"===e,i=this._events;if(void 0!==i)r=r&&void 0===i.error;else if(!r)return!1;if(r){var s;if(t.length>0&&(s=t[0]),s instanceof Error)throw s;var l=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw l.context=s,l}var o=i[e];if(void 0===o)return!1;if("function"==typeof o)a(o,this,t);else{var u=o.length,c=m(o,u);for(n=0;n<u;++n)a(c[n],this,t)}return!0},i.prototype.addListener=function(e,t){return u(this,e,t,!1)},i.prototype.on=i.prototype.addListener,i.prototype.prependListener=function(e,t){return u(this,e,t,!0)},i.prototype.once=function(e,t){return l(t),this.on(e,d(this,e,t)),this},i.prototype.prependOnceListener=function(e,t){return l(t),this.prependListener(e,d(this,e,t)),this},i.prototype.removeListener=function(e,t){var n,a,r,i,s;if(l(t),void 0===(a=this._events))return this;if(void 0===(n=a[e]))return this;if(n===t||n.listener===t)0===--this._eventsCount?this._events=Object.create(null):(delete a[e],a.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(r=-1,i=n.length-1;i>=0;i--)if(n[i]===t||n[i].listener===t){s=n[i].listener,r=i;break}if(r<0)return this;0===r?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,r),1===n.length&&(a[e]=n[0]),void 0!==a.removeListener&&this.emit("removeListener",e,s||t)}return this},i.prototype.off=i.prototype.removeListener,i.prototype.removeAllListeners=function(e){var t,n,a;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0===--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var r,i=Object.keys(n);for(a=0;a<i.length;++a)"removeListener"!==(r=i[a])&&this.removeAllListeners(r);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(a=t.length-1;a>=0;a--)this.removeListener(e,t[a]);return this},i.prototype.listeners=function(e){return h(this,e,!0)},i.prototype.rawListeners=function(e){return h(this,e,!1)},i.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):f.call(e,t)},i.prototype.listenerCount=f,i.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},125:(e,t,n)=>{const a=n(696),r="Fengari 0.1",i=r+".4",s="B. Giannangeli, Daurnimator",l=i+" Copyright (C) 2017-2018 "+s+"\nBased on: "+a.LUA_COPYRIGHT;e.exports.FENGARI_AUTHORS=s,e.exports.FENGARI_COPYRIGHT=l,e.exports.FENGARI_RELEASE=i,e.exports.FENGARI_VERSION=r,e.exports.FENGARI_VERSION_MAJOR="0",e.exports.FENGARI_VERSION_MINOR="1",e.exports.FENGARI_VERSION_NUM=1,e.exports.FENGARI_VERSION_RELEASE="4",e.exports.is_luastring=a.is_luastring,e.exports.luastring_eq=a.luastring_eq,e.exports.luastring_from=a.luastring_from,e.exports.luastring_indexOf=a.luastring_indexOf,e.exports.luastring_of=a.luastring_of,e.exports.to_jsstring=a.to_jsstring,e.exports.to_luastring=a.to_luastring,e.exports.to_uristring=a.to_uristring,e.exports.from_userstring=a.from_userstring},179:(e,t,n)=>{"use strict";const{LUA_HOOKCALL:a,LUA_HOOKRET:r,LUA_HOOKTAILCALL:i,LUA_MASKCALL:s,LUA_MASKLINE:l,LUA_MASKRET:o,LUA_MINSTACK:u,LUA_MULTRET:c,LUA_SIGNATURE:d,constant_types:{LUA_TCCL:h,LUA_TLCF:f,LUA_TLCL:m,LUA_TNIL:p},thread_status:{LUA_ERRMEM:_,LUA_ERRERR:g,LUA_ERRRUN:b,LUA_ERRSYNTAX:w,LUA_OK:v,LUA_YIELD:A},lua_Debug:y,luastring_indexOf:S,to_luastring:T}=n(696),x=n(660),E=n(399),L=n(196),{api_check:I,lua_assert:U,LUAI_MAXCCALLS:R}=n(502),C=n(853),M=n(451),B=n(517),N=n(809),{luaS_newliteral:P}=n(415),k=n(917),{LUAI_MAXSTACK:O}=n(254),D=n(855),F=n(371),{MBuffer:G}=n(498),V=function(e,t){if(e.top<t)for(;e.top<t;)e.stack[e.top++]=new C.TValue(p,null);else for(;e.top>t;)delete e.stack[--e.top]},K=function(e,t,n){let a=e.top;for(;e.top<n+1;)e.stack[e.top++]=new C.TValue(p,null);switch(t){case _:C.setsvalue2s(e,n,P(e,"not enough memory"));break;case g:C.setsvalue2s(e,n,P(e,"error in error handling"));break;default:C.setobjs2s(e,n,a-1)}for(;e.top>n+1;)delete e.stack[--e.top]},H=O+200,z=function(e,t){U(t<=O||t==H),U(e.stack_last==e.stack.length-N.EXTRA_STACK),e.stack.length=t,e.stack_last=t-N.EXTRA_STACK},j=function(e,t){let n=e.stack.length;if(n>O)ne(e,g);else{let a=e.top+t+N.EXTRA_STACK,r=2*n;r>O&&(r=O),r<a&&(r=a),r>O?(z(e,H),E.luaG_runerror(e,T("stack overflow",!0))):z(e,r)}},X=function(e,t){e.stack_last-e.top<=t&&j(e,t)},$=function(e){let t=function(e){let t=e.top;for(let n=e.ci;null!==n;n=n.previous)t<n.top&&(t=n.top);return U(t<=e.stack_last),t+1}(e),n=t+Math.floor(t/8)+2*N.EXTRA_STACK;n>O&&(n=O),e.stack.length>O&&N.luaE_freeCI(e),t<=O-N.EXTRA_STACK&&n<e.stack.length&&z(e,n)},J=function(e,t,n){let r=e.stack[t];switch(r.type){case h:case f:{let i=r.type===h?r.value.f:r.value;X(e,u);let l=N.luaE_extendCI(e);l.funcOff=t,l.nresults=n,l.func=r,l.top=e.top+u,U(l.top<=e.stack_last),l.callstatus=0,e.hookmask&s&&Y(e,a,-1);let o=i(e);if("number"!=typeof o||o<0||(0|o)!==o)throw Error("invalid return value from JS function (expected integer)");return x.api_checknelems(e,o),W(e,l,e.top-o,o),!0}case m:{let a,i=r.value.p,l=e.top-t-1,o=i.maxstacksize;if(X(e,o),i.is_vararg)a=Q(e,i,l);else{for(;l<i.numparams;l++)e.stack[e.top++]=new C.TValue(p,null);a=t+1}let u=N.luaE_extendCI(e);return u.funcOff=t,u.nresults=n,u.func=r,u.l_base=a,u.top=a+o,V(e,u.top),u.l_code=i.code,u.l_savedpc=0,u.callstatus=N.CIST_LUA,e.hookmask&s&&Z(e,u),!1}default:return X(e,1),ee(e,t,r),J(e,t,n)}},W=function(e,t,n,a){let i=t.nresults;e.hookmask&(o|l)&&(e.hookmask&o&&Y(e,r,-1),e.oldpc=t.previous.l_savedpc);let s=t.funcOff;return e.ci=t.previous,e.ci.next=null,q(e,n,s,a,i)},q=function(e,t,n,a,r){switch(r){case 0:break;case 1:0===a?e.stack[n].setnilvalue():C.setobjs2s(e,n,t);break;case c:for(let r=0;r<a;r++)C.setobjs2s(e,n+r,t+r);for(let t=e.top;t>=n+a;t--)delete e.stack[t];return e.top=n+a,!1;default:{let i;if(r<=a)for(i=0;i<r;i++)C.setobjs2s(e,n+i,t+i);else{for(i=0;i<a;i++)C.setobjs2s(e,n+i,t+i);for(;i<r;i++)n+i>=e.top?e.stack[n+i]=new C.TValue(p,null):e.stack[n+i].setnilvalue()}break}}let i=n+r;for(let t=e.top;t>=i;t--)delete e.stack[t];return e.top=i,!0},Y=function(e,t,n){let a=e.hook;if(a&&e.allowhook){let r=e.ci,i=e.top,s=r.top,l=new y;l.event=t,l.currentline=n,l.i_ci=r,X(e,u),r.top=e.top+u,U(r.top<=e.stack_last),e.allowhook=0,r.callstatus|=N.CIST_HOOKED,a(e,l),U(!e.allowhook),e.allowhook=1,r.top=s,V(e,i),r.callstatus&=~N.CIST_HOOKED}},Z=function(e,t){let n=a;t.l_savedpc++,t.previous.callstatus&N.CIST_LUA&&t.previous.l_code[t.previous.l_savedpc-1].opcode==M.OpCodesI.OP_TAILCALL&&(t.callstatus|=N.CIST_TAIL,n=i),Y(e,n,-1),t.l_savedpc--},Q=function(e,t,n){let a,r=t.numparams,i=e.top-n,s=e.top;for(a=0;a<r&&a<n;a++)C.pushobj2s(e,e.stack[i+a]),e.stack[i+a].setnilvalue();for(;a<r;a++)e.stack[e.top++]=new C.TValue(p,null);return s},ee=function(e,t,n){let a=k.luaT_gettmbyobj(e,n,k.TMS.TM_CALL);a.ttisfunction(a)||E.luaG_typeerror(e,n,T("call",!0)),C.pushobj2s(e,e.stack[e.top-1]);for(let n=e.top-2;n>t;n--)C.setobjs2s(e,n,n-1);C.setobj2s(e,t,a)},te=function(e,t,n){++e.nCcalls>=R&&function(e){e.nCcalls===R?E.luaG_runerror(e,T("JS stack overflow",!0)):e.nCcalls>=R+(R>>3)&&ne(e,g)}(e),J(e,t,n)||F.luaV_execute(e),e.nCcalls--},ne=function(e,t){if(e.errorJmp)throw e.errorJmp.status=t,e.errorJmp;{let n=e.l_G;if(e.status=t,!n.mainthread.errorJmp){let a=n.panic;throw a&&(K(e,t,e.top),e.ci.top<e.top&&(e.ci.top=e.top),a(e)),new Error(`Aborted ${t}`)}n.mainthread.stack[n.mainthread.top++]=e.stack[e.top-1],ne(n.mainthread,t)}},ae=function(e,t,n){let a=e.nCcalls,r={status:v,previous:e.errorJmp};e.errorJmp=r;try{t(e,n)}catch(t){if(r.status===v){let n=e.l_G.atnativeerror;if(n)try{if(r.status=v,x.lua_pushcfunction(e,n),x.lua_pushlightuserdata(e,t),de(e,e.top-2,1),0!==e.errfunc){let t=e.errfunc;C.pushobj2s(e,e.stack[e.top-1]),C.setobjs2s(e,e.top-2,t),de(e,e.top-2,1)}r.status=b}catch(e){r.status===v&&(r.status=-1)}else r.status=-1}}return e.errorJmp=r.previous,e.nCcalls=a,r.status},re=function(e,t){let n=e.ci;U(null!==n.c_k&&0===e.nny),U(n.callstatus&N.CIST_YPCALL||t===A),n.callstatus&N.CIST_YPCALL&&(n.callstatus&=~N.CIST_YPCALL,e.errfunc=n.c_old_errfunc),n.nresults===c&&e.ci.top<e.top&&(e.ci.top=e.top);let a=(0,n.c_k)(e,t,n.c_ctx);x.api_checknelems(e,a),W(e,n,e.top-a,a)},ie=function(e,t){for(null!==t&&re(e,t);e.ci!==e.base_ci;)e.ci.callstatus&N.CIST_LUA?(F.luaV_finishOp(e),F.luaV_execute(e)):re(e,A)},se=function(e,t){let n=function(e){for(let t=e.ci;null!==t;t=t.previous)if(t.callstatus&N.CIST_YPCALL)return t;return null}(e);if(null===n)return 0;let a=n.extra;return L.luaF_close(e,a),K(e,t,a),e.ci=n,e.allowhook=n.callstatus&N.CIST_OAH,e.nny=0,$(e),e.errfunc=n.c_old_errfunc,1},le=function(e,t,n){let a=P(e,t);if(0===n)C.pushsvalue2s(e,a),I(e,e.top<=e.ci.top,"stack overflow");else{for(let t=1;t<n;t++)delete e.stack[--e.top];C.setsvalue2s(e,e.top-1,a)}return b},oe=function(e,t){let n=e.top-t,a=e.ci;e.status===v?J(e,n-1,c)||F.luaV_execute(e):(U(e.status===A),e.status=v,a.funcOff=a.extra,a.func=e.stack[a.funcOff],a.callstatus&N.CIST_LUA?F.luaV_execute(e):(null!==a.c_k&&(t=a.c_k(e,A,a.c_ctx),x.api_checknelems(e,t),n=e.top-t),W(e,a,n,t)),ie(e,null))},ue=function(e,t,n,a){let r=e.ci;return x.api_checknelems(e,t),e.nny>0&&(e!==e.l_G.mainthread?E.luaG_runerror(e,T("attempt to yield across a JS-call boundary",!0)):E.luaG_runerror(e,T("attempt to yield from outside a coroutine",!0))),e.status=A,r.extra=r.funcOff,r.callstatus&N.CIST_LUA?I(e,null===a,"hooks cannot continue after yielding"):(r.c_k=a,null!==a&&(r.c_ctx=n),r.funcOff=e.top-t-1,r.func=e.stack[r.funcOff],ne(e,A)),U(r.callstatus&N.CIST_HOOKED),0},ce=function(e,t,n,a,r){let i=e.ci,s=e.allowhook,l=e.nny,o=e.errfunc;e.errfunc=r;let u=ae(e,t,n);return u!==v&&(L.luaF_close(e,a),K(e,u,a),e.ci=i,e.allowhook=s,e.nny=l,$(e)),e.errfunc=o,u},de=function(e,t,n){e.nny++,te(e,t,n),e.nny--};class he{constructor(e,t,n){this.z=e,this.buff=new G,this.dyd=new B.Dyndata,this.mode=n,this.name=t}}const fe=function(e,t,n){t&&-1===S(t,n[0])&&(C.luaO_pushfstring(e,T("attempt to load a %s chunk (mode is '%s')"),n,t),ne(e,w))},me=function(e,t){let n,a=t.z.zgetc();a===d[0]?(fe(e,t.mode,T("binary",!0)),n=D.luaU_undump(e,t.z,t.name)):(fe(e,t.mode,T("text",!0)),n=B.luaY_parser(e,t.z,t.buff,t.dyd,t.name,a)),U(n.nupvalues===n.p.upvalues.length),L.luaF_initupvals(e,n)};e.exports.adjust_top=V,e.exports.luaD_call=te,e.exports.luaD_callnoyield=de,e.exports.luaD_checkstack=X,e.exports.luaD_growstack=j,e.exports.luaD_hook=Y,e.exports.luaD_inctop=function(e){X(e,1),e.stack[e.top++]=new C.TValue(p,null)},e.exports.luaD_pcall=ce,e.exports.luaD_poscall=W,e.exports.luaD_precall=J,e.exports.luaD_protectedparser=function(e,t,n,a){let r=new he(t,n,a);e.nny++;let i=ce(e,me,r,e.top,e.errfunc);return e.nny--,i},e.exports.luaD_rawrunprotected=ae,e.exports.luaD_reallocstack=z,e.exports.luaD_throw=ne,e.exports.lua_isyieldable=function(e){return 0===e.nny},e.exports.lua_resume=function(e,t,n){let a=e.nny;if(e.status===v){if(e.ci!==e.base_ci)return le(e,"cannot resume non-suspended coroutine",n)}else if(e.status!==A)return le(e,"cannot resume dead coroutine",n);if(e.nCcalls=t?t.nCcalls+1:1,e.nCcalls>=R)return le(e,"JS stack overflow",n);e.nny=0,x.api_checknelems(e,e.status===v?n+1:n);let r=ae(e,oe,n);if(-1===r)r=b;else{for(;r>A&&se(e,r);)r=ae(e,ie,r);r>A?(e.status=r,K(e,r,e.top),e.ci.top=e.top):U(r===e.status)}return e.nny=a,e.nCcalls--,U(e.nCcalls===(t?t.nCcalls:0)),r},e.exports.lua_yield=function(e,t){ue(e,t,0,null)},e.exports.lua_yieldk=ue},196:(e,t,n)=>{"use strict";const{constant_types:{LUA_TNIL:a}}=n(696),r=n(853);e.exports.MAXUPVAL=255,e.exports.Proto=class{constructor(e){this.id=e.l_G.id_counter++,this.k=[],this.p=[],this.code=[],this.cache=null,this.lineinfo=[],this.upvalues=[],this.numparams=0,this.is_vararg=!1,this.maxstacksize=0,this.locvars=[],this.linedefined=0,this.lastlinedefined=0,this.source=null}},e.exports.luaF_findupval=function(e,t){return e.stack[t]},e.exports.luaF_close=function(e,t){for(let n=t;n<e.top;n++){let t=e.stack[n];e.stack[n]=new r.TValue(t.type,t.value)}},e.exports.luaF_getlocalname=function(e,t,n){for(let a=0;a<e.locvars.length&&e.locvars[a].startpc<=n;a++)if(n<e.locvars[a].endpc&&0===--t)return e.locvars[a].varname.getstr();return null},e.exports.luaF_initupvals=function(e,t){for(let e=0;e<t.nupvalues;e++)t.upvals[e]=new r.TValue(a,null)},e.exports.luaF_newLclosure=function(e,t){return new r.LClosure(e,t)}},254:(e,t,n)=>{"use strict";const a={},{LUA_VERSION_MAJOR:r,LUA_VERSION_MINOR:i,to_luastring:s}=n(696);e.exports.LUA_PATH_SEP=";";e.exports.LUA_PATH_MARK="?";e.exports.LUA_EXEC_DIR="!";const l=r+"."+i;e.exports.LUA_VDIR=l;{const t="/";e.exports.LUA_DIRSEP=t;const n="./lua/"+l+"/";e.exports.LUA_LDIR=n;const a=n;e.exports.LUA_JSDIR=a;const r=s(n+"?.lua;"+n+"?/init.lua;./?.lua;./?/init.lua");e.exports.LUA_PATH_DEFAULT=r;const i=s(a+"?.js;"+a+"loadall.js;./?.js");e.exports.LUA_JSPATH_DEFAULT=i}const o=a.LUA_COMPAT_FLOATSTRING||!1,u=-2147483648,c=a.LUAI_MAXSTACK||1e6,d=a.LUA_IDSIZE||59,h=a.LUAL_BUFFERSIZE||8192,f=function(e,t){for(var n=Math.min(3,Math.ceil(Math.abs(t)/1023)),a=e,r=0;r<n;r++)a*=Math.pow(2,Math.floor((t+r)/n));return a};e.exports.LUAI_MAXSTACK=c,e.exports.LUA_COMPAT_FLOATSTRING=o,e.exports.LUA_IDSIZE=d,e.exports.LUA_INTEGER_FMT="%d",e.exports.LUA_INTEGER_FRMLEN="",e.exports.LUA_MAXINTEGER=2147483647,e.exports.LUA_MININTEGER=u,e.exports.LUA_NUMBER_FMT="%.14g",e.exports.LUA_NUMBER_FRMLEN="",e.exports.LUAL_BUFFERSIZE=h,e.exports.frexp=function(e){if(0===e)return[e,0];var t=new DataView(new ArrayBuffer(8));t.setFloat64(0,e);var n=t.getUint32(0)>>>20&2047;0===n&&(t.setFloat64(0,e*Math.pow(2,64)),n=(t.getUint32(0)>>>20&2047)-64);var a=n-1022;return[f(e,-a),a]},e.exports.ldexp=f,e.exports.lua_getlocaledecpoint=function(){return 46},e.exports.lua_integer2str=function(e){return String(e)},e.exports.lua_number2str=function(e){return String(Number(e.toPrecision(14)))},e.exports.lua_numbertointeger=function(e){return e>=u&&e<2147483648&&e},e.exports.luai_apicheck=function(e,t){if(!t)throw Error(t)}},371:(e,t,n)=>{"use strict";const{LUA_MASKLINE:a,LUA_MASKCOUNT:r,LUA_MULTRET:i,constant_types:{LUA_TBOOLEAN:s,LUA_TLCF:l,LUA_TLIGHTUSERDATA:o,LUA_TLNGSTR:u,LUA_TNIL:c,LUA_TNUMBER:d,LUA_TNUMFLT:h,LUA_TNUMINT:f,LUA_TSHRSTR:m,LUA_TTABLE:p,LUA_TUSERDATA:_},to_luastring:g}=n(696),{INDEXK:b,ISK:w,LFIELDS_PER_FLUSH:v,OpCodesI:{OP_ADD:A,OP_BAND:y,OP_BNOT:S,OP_BOR:T,OP_BXOR:x,OP_CALL:E,OP_CLOSURE:L,OP_CONCAT:I,OP_DIV:U,OP_EQ:R,OP_EXTRAARG:C,OP_FORLOOP:M,OP_FORPREP:B,OP_GETTABLE:N,OP_GETTABUP:P,OP_GETUPVAL:k,OP_IDIV:O,OP_JMP:D,OP_LE:F,OP_LEN:G,OP_LOADBOOL:V,OP_LOADK:K,OP_LOADKX:H,OP_LOADNIL:z,OP_LT:j,OP_MOD:X,OP_MOVE:$,OP_MUL:J,OP_NEWTABLE:W,OP_NOT:q,OP_POW:Y,OP_RETURN:Z,OP_SELF:Q,OP_SETLIST:ee,OP_SETTABLE:te,OP_SETTABUP:ne,OP_SETUPVAL:ae,OP_SHL:re,OP_SHR:ie,OP_SUB:se,OP_TAILCALL:le,OP_TEST:oe,OP_TESTSET:ue,OP_TFORCALL:ce,OP_TFORLOOP:de,OP_UNM:he,OP_VARARG:fe}}=n(451),{LUA_MAXINTEGER:me,LUA_MININTEGER:pe,lua_numbertointeger:_e}=n(254),{lua_assert:ge,luai_nummod:be}=n(502),we=n(853),ve=n(196),Ae=n(809),{luaS_bless:ye,luaS_eqlngstr:Se,luaS_hashlongstr:Te}=n(415),xe=n(179),Ee=n(917),Le=n(420),Ie=n(399),Ue=function(e,t,n){return t+n.A},Re=function(e,t,n){return t+n.B},Ce=function(e,t,n,a){return w(a.B)?n[b(a.B)]:e.stack[t+a.B]},Me=function(e,t,n,a){return w(a.C)?n[b(a.C)]:e.stack[t+a.C]},Be=function(e,t,n,a){let r=n.A;0!==r&&ve.luaF_close(e,t.l_base+r-1),t.l_savedpc+=n.sBx+a},Ne=function(e,t){Be(e,t,t.l_code[t.l_savedpc],1)},Pe=function(e,t,n){if(t.ttisnumber()&&n.ttisnumber())return Ke(t,n)?1:0;if(t.ttisstring()&&n.ttisstring())return ze(t.tsvalue(),n.tsvalue())<0?1:0;{let a=Ee.luaT_callorderTM(e,t,n,Ee.TMS.TM_LT);return null===a&&Ie.luaG_ordererror(e,t,n),a?1:0}},ke=function(e,t,n){let a;return t.ttisnumber()&&n.ttisnumber()?He(t,n)?1:0:t.ttisstring()&&n.ttisstring()?ze(t.tsvalue(),n.tsvalue())<=0?1:0:(a=Ee.luaT_callorderTM(e,t,n,Ee.TMS.TM_LE),null!==a?a?1:0:(e.ci.callstatus|=Ae.CIST_LEQ,a=Ee.luaT_callorderTM(e,n,t,Ee.TMS.TM_LT),e.ci.callstatus^=Ae.CIST_LEQ,null===a&&Ie.luaG_ordererror(e,t,n),a?0:1))},Oe=function(e,t,n){if(t.ttype()!==n.ttype())return t.ttnov()!==n.ttnov()||t.ttnov()!==d?0:t.value===n.value?1:0;let a;switch(t.ttype()){case c:return 1;case s:return t.value==n.value?1:0;case o:case f:case h:case l:return t.value===n.value?1:0;case m:case u:return Se(t.tsvalue(),n.tsvalue())?1:0;case _:case p:if(t.value===n.value)return 1;if(null===e)return 0;a=Ee.fasttm(e,t.value.metatable,Ee.TMS.TM_EQ),null===a&&(a=Ee.fasttm(e,n.value.metatable,Ee.TMS.TM_EQ));break;default:return t.value===n.value?1:0}if(null===a)return 0;let r=new we.TValue;return Ee.luaT_callTM(e,a,t,n,r,1),r.l_isfalse()?0:1},De=function(e,t){let n=!1,a=Fe(e,t<0?2:1);if(!1===a){let r=Ve(e);if(!1===r)return!1;0<r?(a=me,t<0&&(n=!0)):(a=pe,t>=0&&(n=!0))}return{stopnow:n,ilimit:a}},Fe=function(e,t){if(e.ttisfloat()){let n=e.value,a=Math.floor(n);if(n!==a){if(0===t)return!1;t>1&&(a+=1)}return _e(a)}if(e.ttisinteger())return e.value;if(Qe(e)){let n=new we.TValue;if(we.luaO_str2num(e.svalue(),n)===e.vslen()+1)return Fe(n,t)}return!1},Ge=function(e){return e.ttisinteger()?e.value:Fe(e,0)},Ve=function(e){if(e.ttnov()===d)return e.value;if(Qe(e)){let t=new we.TValue;if(we.luaO_str2num(e.svalue(),t)===e.vslen()+1)return t.value}return!1},Ke=function(e,t){return e.value<t.value},He=function(e,t){return e.value<=t.value},ze=function(e,t){let n=Te(e),a=Te(t);return n===a?0:n<a?-1:1},je=function(e,t,n){let a;switch(n.ttype()){case p:{let r=n.value;if(a=Ee.fasttm(e,r.metatable,Ee.TMS.TM_LEN),null!==a)break;return void t.setivalue(Le.luaH_getn(r))}case m:case u:return void t.setivalue(n.vslen());default:a=Ee.luaT_gettmbyobj(e,n,Ee.TMS.TM_LEN),a.ttisnil()&&Ie.luaG_typeerror(e,n,g("get length of",!0))}Ee.luaT_callTM(e,a,n,n,t,1)},Xe=Math.imul||function(e,t){let n=65535&e,a=65535&t;return n*a+((e>>>16&65535)*a+n*(t>>>16&65535)<<16>>>0)|0},$e=function(e,t,n){return 0===n&&Ie.luaG_runerror(e,g("attempt to divide by zero")),0|Math.floor(t/n)},Je=function(e,t,n){return 0===n&&Ie.luaG_runerror(e,g("attempt to perform 'n%%0'")),t-Math.floor(t/n)*n|0},We=function(e,t){return t<0?t<=-32?0:e>>>-t:t>=32?0:e<<t},qe=function(e,t,n,a){let r=e.cache;if(null!==r){let i=e.upvalues,s=i.length;for(let e=0;e<s;e++){let s=i[e].instack?n[a+i[e].idx]:t[i[e].idx];if(r.upvals[e]!==s)return null}}return r},Ye=function(e,t,n,a,r){let i=t.upvalues.length,s=t.upvalues,l=new we.LClosure(e,i);l.p=t,e.stack[r].setclLvalue(l);for(let t=0;t<i;t++)s[t].instack?l.upvals[t]=ve.luaF_findupval(e,a+s[t].idx):l.upvals[t]=n[s[t].idx];t.cache=l},Ze=function(e){return e.ttisnumber()},Qe=function(e){return e.ttisstring()},et=function(e,t){let n=e.stack[t];return!!n.ttisstring()||!!Ze(n)&&(we.luaO_tostring(e,n),!0)},tt=function(e){return e.ttisstring()&&0===e.vslen()},nt=function(e,t,n,a){let r=0;do{let i=e.stack[t-n],s=i.vslen(),l=i.svalue();a.set(l,r),r+=s}while(--n>0)},at=function(e,t){ge(t>=2);do{let n=e.top,a=2;if((e.stack[n-2].ttisstring()||Ze(e.stack[n-2]))&&et(e,n-1))if(tt(e.stack[n-1]))et(e,n-2);else if(tt(e.stack[n-2]))we.setobjs2s(e,n-2,n-1);else{let r=e.stack[n-1].vslen();for(a=1;a<t&&et(e,n-a-1);a++){r+=e.stack[n-a-1].vslen()}let i=new Uint8Array(r);nt(e,n,a,i);let s=ye(e,i);we.setsvalue2s(e,n-a,s)}else Ee.luaT_trybinTM(e,e.stack[n-2],e.stack[n-1],e.stack[n-2],Ee.TMS.TM_CONCAT);for(t-=a-1;e.top>n-(a-1);)delete e.stack[--e.top]}while(t>1)},rt=function(e,t,n,a){for(let r=0;r<2e3;r++){let r;if(t.ttistable()){let i=Le.luaH_get(e,t.value,n);if(!i.ttisnil())return void we.setobj2s(e,a,i);if(r=Ee.fasttm(e,t.value.metatable,Ee.TMS.TM_INDEX),null===r)return void e.stack[a].setnilvalue()}else r=Ee.luaT_gettmbyobj(e,t,Ee.TMS.TM_INDEX),r.ttisnil()&&Ie.luaG_typeerror(e,t,g("index",!0));if(r.ttisfunction())return void Ee.luaT_callTM(e,r,t,n,e.stack[a],1);t=r}Ie.luaG_runerror(e,g("'__index' chain too long; possible loop",!0))},it=function(e,t,n,a){for(let r=0;r<2e3;r++){let r;if(t.ttistable()){let i=t.value;if(!Le.luaH_get(e,i,n).ttisnil()||null===(r=Ee.fasttm(e,i.metatable,Ee.TMS.TM_NEWINDEX)))return Le.luaH_setfrom(e,i,n,a),void Le.invalidateTMcache(i)}else(r=Ee.luaT_gettmbyobj(e,t,Ee.TMS.TM_NEWINDEX)).ttisnil()&&Ie.luaG_typeerror(e,t,g("index",!0));if(r.ttisfunction())return void Ee.luaT_callTM(e,r,t,n,a,0);t=r}Ie.luaG_runerror(e,g("'__newindex' chain too long; possible loop",!0))};e.exports.cvt2str=Ze,e.exports.cvt2num=Qe,e.exports.luaV_gettable=rt,e.exports.luaV_concat=at,e.exports.luaV_div=$e,e.exports.luaV_equalobj=Oe,e.exports.luaV_execute=function(e){let t=e.ci;t.callstatus|=Ae.CIST_FRESH;e:for(;;){ge(t===e.ci);let n=t.func.value,s=n.p.k,l=t.l_base,o=t.l_code[t.l_savedpc++];e.hookmask&(a|r)&&Ie.luaG_traceexec(e);let u=Ue(0,l,o);switch(o.opcode){case $:we.setobjs2s(e,u,Re(0,l,o));break;case K:{let t=s[o.Bx];we.setobj2s(e,u,t);break}case H:{ge(t.l_code[t.l_savedpc].opcode===C);let n=s[t.l_code[t.l_savedpc++].Ax];we.setobj2s(e,u,n);break}case V:e.stack[u].setbvalue(0!==o.B),0!==o.C&&t.l_savedpc++;break;case z:for(let t=0;t<=o.B;t++)e.stack[u+t].setnilvalue();break;case k:{let t=o.B;we.setobj2s(e,u,n.upvals[t]);break}case P:{let t=n.upvals[o.B],a=Me(e,l,s,o);rt(e,t,a,u);break}case N:{let t=e.stack[Re(0,l,o)],n=Me(e,l,s,o);rt(e,t,n,u);break}case ne:{let t=n.upvals[o.A],a=Ce(e,l,s,o),r=Me(e,l,s,o);it(e,t,a,r);break}case ae:n.upvals[o.B].setfrom(e.stack[u]);break;case te:{let t=e.stack[u],n=Ce(e,l,s,o),a=Me(e,l,s,o);it(e,t,n,a);break}case W:e.stack[u].sethvalue(Le.luaH_new(e));break;case Q:{let t=Re(0,l,o),n=Me(e,l,s,o);we.setobjs2s(e,u+1,t),rt(e,e.stack[t],n,u);break}case A:{let t,n,a=Ce(e,l,s,o),r=Me(e,l,s,o);a.ttisinteger()&&r.ttisinteger()?e.stack[u].setivalue(a.value+r.value|0):!1!==(t=Ve(a))&&!1!==(n=Ve(r))?e.stack[u].setfltvalue(t+n):Ee.luaT_trybinTM(e,a,r,e.stack[u],Ee.TMS.TM_ADD);break}case se:{let t,n,a=Ce(e,l,s,o),r=Me(e,l,s,o);a.ttisinteger()&&r.ttisinteger()?e.stack[u].setivalue(a.value-r.value|0):!1!==(t=Ve(a))&&!1!==(n=Ve(r))?e.stack[u].setfltvalue(t-n):Ee.luaT_trybinTM(e,a,r,e.stack[u],Ee.TMS.TM_SUB);break}case J:{let t,n,a=Ce(e,l,s,o),r=Me(e,l,s,o);a.ttisinteger()&&r.ttisinteger()?e.stack[u].setivalue(Xe(a.value,r.value)):!1!==(t=Ve(a))&&!1!==(n=Ve(r))?e.stack[u].setfltvalue(t*n):Ee.luaT_trybinTM(e,a,r,e.stack[u],Ee.TMS.TM_MUL);break}case X:{let t,n,a=Ce(e,l,s,o),r=Me(e,l,s,o);a.ttisinteger()&&r.ttisinteger()?e.stack[u].setivalue(Je(e,a.value,r.value)):!1!==(t=Ve(a))&&!1!==(n=Ve(r))?e.stack[u].setfltvalue(be(e,t,n)):Ee.luaT_trybinTM(e,a,r,e.stack[u],Ee.TMS.TM_MOD);break}case Y:{let t,n,a=Ce(e,l,s,o),r=Me(e,l,s,o);!1!==(t=Ve(a))&&!1!==(n=Ve(r))?e.stack[u].setfltvalue(Math.pow(t,n)):Ee.luaT_trybinTM(e,a,r,e.stack[u],Ee.TMS.TM_POW);break}case U:{let t,n,a=Ce(e,l,s,o),r=Me(e,l,s,o);!1!==(t=Ve(a))&&!1!==(n=Ve(r))?e.stack[u].setfltvalue(t/n):Ee.luaT_trybinTM(e,a,r,e.stack[u],Ee.TMS.TM_DIV);break}case O:{let t,n,a=Ce(e,l,s,o),r=Me(e,l,s,o);a.ttisinteger()&&r.ttisinteger()?e.stack[u].setivalue($e(e,a.value,r.value)):!1!==(t=Ve(a))&&!1!==(n=Ve(r))?e.stack[u].setfltvalue(Math.floor(t/n)):Ee.luaT_trybinTM(e,a,r,e.stack[u],Ee.TMS.TM_IDIV);break}case y:{let t,n,a=Ce(e,l,s,o),r=Me(e,l,s,o);!1!==(t=Ge(a))&&!1!==(n=Ge(r))?e.stack[u].setivalue(t&n):Ee.luaT_trybinTM(e,a,r,e.stack[u],Ee.TMS.TM_BAND);break}case T:{let t,n,a=Ce(e,l,s,o),r=Me(e,l,s,o);!1!==(t=Ge(a))&&!1!==(n=Ge(r))?e.stack[u].setivalue(t|n):Ee.luaT_trybinTM(e,a,r,e.stack[u],Ee.TMS.TM_BOR);break}case x:{let t,n,a=Ce(e,l,s,o),r=Me(e,l,s,o);!1!==(t=Ge(a))&&!1!==(n=Ge(r))?e.stack[u].setivalue(t^n):Ee.luaT_trybinTM(e,a,r,e.stack[u],Ee.TMS.TM_BXOR);break}case re:{let t,n,a=Ce(e,l,s,o),r=Me(e,l,s,o);!1!==(t=Ge(a))&&!1!==(n=Ge(r))?e.stack[u].setivalue(We(t,n)):Ee.luaT_trybinTM(e,a,r,e.stack[u],Ee.TMS.TM_SHL);break}case ie:{let t,n,a=Ce(e,l,s,o),r=Me(e,l,s,o);!1!==(t=Ge(a))&&!1!==(n=Ge(r))?e.stack[u].setivalue(We(t,-n)):Ee.luaT_trybinTM(e,a,r,e.stack[u],Ee.TMS.TM_SHR);break}case he:{let t,n=e.stack[Re(0,l,o)];n.ttisinteger()?e.stack[u].setivalue(0|-n.value):!1!==(t=Ve(n))?e.stack[u].setfltvalue(-t):Ee.luaT_trybinTM(e,n,n,e.stack[u],Ee.TMS.TM_UNM);break}case S:{let t=e.stack[Re(0,l,o)];t.ttisinteger()?e.stack[u].setivalue(~t.value):Ee.luaT_trybinTM(e,t,t,e.stack[u],Ee.TMS.TM_BNOT);break}case q:{let t=e.stack[Re(0,l,o)];e.stack[u].setbvalue(t.l_isfalse());break}case G:je(e,e.stack[u],e.stack[Re(0,l,o)]);break;case I:{let n=o.B,a=o.C;e.top=l+a+1,at(e,a-n+1);let r=l+n;we.setobjs2s(e,u,r),xe.adjust_top(e,t.top);break}case D:Be(e,t,o,0);break;case R:Oe(e,Ce(e,l,s,o),Me(e,l,s,o))!==o.A?t.l_savedpc++:Ne(e,t);break;case j:Pe(e,Ce(e,l,s,o),Me(e,l,s,o))!==o.A?t.l_savedpc++:Ne(e,t);break;case F:ke(e,Ce(e,l,s,o),Me(e,l,s,o))!==o.A?t.l_savedpc++:Ne(e,t);break;case oe:(o.C?e.stack[u].l_isfalse():!e.stack[u].l_isfalse())?t.l_savedpc++:Ne(e,t);break;case ue:{let n=Re(0,l,o),a=e.stack[n];(o.C?a.l_isfalse():!a.l_isfalse())?t.l_savedpc++:(we.setobjs2s(e,u,n),Ne(e,t));break}case E:{let n=o.B,a=o.C-1;if(0!==n&&xe.adjust_top(e,u+n),!xe.luaD_precall(e,u,a)){t=e.ci;continue e}a>=0&&xe.adjust_top(e,t.top);break}case le:{let a=o.B;if(0!==a&&xe.adjust_top(e,u+a),!xe.luaD_precall(e,u,i)){let a=e.ci,r=a.previous,i=a.func,s=a.funcOff,l=r.funcOff,o=a.l_base+i.value.p.numparams;n.p.p.length>0&&ve.luaF_close(e,r.l_base);for(let t=0;s+t<o;t++)we.setobjs2s(e,l+t,s+t);r.l_base=l+(a.l_base-s),r.top=l+(e.top-s),xe.adjust_top(e,r.top),r.l_code=a.l_code,r.l_savedpc=a.l_savedpc,r.callstatus|=Ae.CIST_TAIL,r.next=null,t=e.ci=r,ge(e.top===r.l_base+e.stack[l].value.p.maxstacksize);continue e}break}case Z:{n.p.p.length>0&&ve.luaF_close(e,l);let a=xe.luaD_poscall(e,t,u,0!==o.B?o.B-1:e.top-u);if(t.callstatus&Ae.CIST_FRESH)return;t=e.ci,a&&xe.adjust_top(e,t.top),ge(t.callstatus&Ae.CIST_LUA),ge(t.l_code[t.l_savedpc-1].opcode===E);continue e}case M:if(e.stack[u].ttisinteger()){let n=e.stack[u+2].value,a=e.stack[u].value+n|0,r=e.stack[u+1].value;(0<n?a<=r:r<=a)&&(t.l_savedpc+=o.sBx,e.stack[u].chgivalue(a),e.stack[u+3].setivalue(a))}else{let n=e.stack[u+2].value,a=e.stack[u].value+n,r=e.stack[u+1].value;(0<n?a<=r:r<=a)&&(t.l_savedpc+=o.sBx,e.stack[u].chgfltvalue(a),e.stack[u+3].setfltvalue(a))}break;case B:{let n,a=e.stack[u],r=e.stack[u+1],i=e.stack[u+2];if(a.ttisinteger()&&i.ttisinteger()&&(n=De(r,i.value))){let e=n.stopnow?0:a.value;r.value=n.ilimit,a.value=e-i.value|0}else{let t,n,s;!1===(t=Ve(r))&&Ie.luaG_runerror(e,g("'for' limit must be a number",!0)),e.stack[u+1].setfltvalue(t),!1===(n=Ve(i))&&Ie.luaG_runerror(e,g("'for' step must be a number",!0)),e.stack[u+2].setfltvalue(n),!1===(s=Ve(a))&&Ie.luaG_runerror(e,g("'for' initial value must be a number",!0)),e.stack[u].setfltvalue(s-n)}t.l_savedpc+=o.sBx;break}case ce:{let n=u+3;we.setobjs2s(e,n+2,u+2),we.setobjs2s(e,n+1,u+1),we.setobjs2s(e,n,u),xe.adjust_top(e,n+3),xe.luaD_call(e,n,o.C),xe.adjust_top(e,t.top),o=t.l_code[t.l_savedpc++],u=Ue(0,l,o),ge(o.opcode===de)}case de:e.stack[u+1].ttisnil()||(we.setobjs2s(e,u,u+1),t.l_savedpc+=o.sBx);break;case ee:{let n=o.B,a=o.C;0===n&&(n=e.top-u-1),0===a&&(ge(t.l_code[t.l_savedpc].opcode===C),a=t.l_code[t.l_savedpc++].Ax);let r=e.stack[u].value,i=(a-1)*v+n;for(;n>0;n--)Le.luaH_setint(r,i--,e.stack[u+n]);xe.adjust_top(e,t.top);break}case L:{let t=n.p.p[o.Bx],a=qe(t,n.upvals,e.stack,l);null===a?Ye(e,t,n.upvals,l,u):e.stack[u].setclLvalue(a);break}case fe:{let a,r=o.B-1,i=l-t.funcOff-n.p.numparams-1;for(i<0&&(i=0),r<0&&(r=i,xe.luaD_checkstack(e,i),xe.adjust_top(e,u+i)),a=0;a<r&&a<i;a++)we.setobjs2s(e,u+a,l-i+a);for(;a<r;a++)e.stack[u+a].setnilvalue();break}case C:throw Error("invalid opcode")}}},e.exports.luaV_finishOp=function(e){let t=e.ci,n=t.l_base,a=t.l_code[t.l_savedpc-1],r=a.opcode;switch(r){case A:case se:case J:case U:case O:case y:case T:case x:case re:case ie:case X:case Y:case he:case S:case G:case P:case N:case Q:we.setobjs2s(e,n+a.A,e.top-1),delete e.stack[--e.top];break;case F:case j:case R:{let n=!e.stack[e.top-1].l_isfalse();delete e.stack[--e.top],t.callstatus&Ae.CIST_LEQ&&(ge(r===F),t.callstatus^=Ae.CIST_LEQ,n=!n),ge(t.l_code[t.l_savedpc].opcode===D),n!==!!a.A&&t.l_savedpc++;break}case I:{let r=e.top-1,i=r-1-(n+a.B);we.setobjs2s(e,r-2,r),i>1&&(e.top=r-1,at(e,i)),we.setobjs2s(e,t.l_base+a.A,e.top-1),xe.adjust_top(e,t.top);break}case ce:ge(t.l_code[t.l_savedpc].opcode===de),xe.adjust_top(e,t.top);break;case E:a.C-1>=0&&xe.adjust_top(e,t.top)}},e.exports.luaV_imul=Xe,e.exports.luaV_lessequal=ke,e.exports.luaV_lessthan=Pe,e.exports.luaV_mod=Je,e.exports.luaV_objlen=je,e.exports.luaV_rawequalobj=function(e,t){return Oe(null,e,t)},e.exports.luaV_shiftl=We,e.exports.luaV_tointeger=Fe,e.exports.settable=it,e.exports.tointeger=Ge,e.exports.tonumber=Ve},399:(e,t,n)=>{"use strict";const{LUA_HOOKCOUNT:a,LUA_HOOKLINE:r,LUA_MASKCOUNT:i,LUA_MASKLINE:s,constant_types:{LUA_TBOOLEAN:l,LUA_TNIL:o,LUA_TTABLE:u},thread_status:{LUA_ERRRUN:c,LUA_YIELD:d},from_userstring:h,luastring_eq:f,luastring_indexOf:m,to_luastring:p}=n(696),{api_check:_,lua_assert:g}=n(502),{LUA_IDSIZE:b}=n(254),w=n(660),v=n(179),A=n(196),y=n(641),S=n(853),T=n(451),x=n(809),E=n(420),L=n(917),I=n(371),U=function(e){return g(e.callstatus&x.CIST_LUA),e.l_savedpc-1},R=function(e){return 0!==e.func.value.p.lineinfo.length?e.func.value.p.lineinfo[U(e)]:-1},C=function(e){if(e.status===d){let t=e.ci,n=t.funcOff;t.func=e.stack[t.extra],t.funcOff=t.extra,t.extra=n}},M=function(e,t){g(t<e.upvalues.length);let n=e.upvalues[t].name;return null===n?p("?",!0):n.getstr()},B=function(e,t,n){let a,r=null;if(t.callstatus&x.CIST_LUA){if(n<0)return function(e,t){let n=e.func.value.p.numparams;return t>=e.l_base-e.funcOff-n?null:{pos:e.funcOff+n+t,name:p("(*vararg)",!0)}}(t,-n);a=t.l_base,r=A.luaF_getlocalname(t.func.value.p,n,U(t))}else a=t.funcOff+1;if(null===r){if(!((t===e.ci?e.top:t.next.funcOff)-a>=n&&n>0))return null;r=p("(*temporary)",!0)}return{pos:a+(n-1),name:r}},N=function(e,t){if(null===t||t instanceof S.CClosure)e.source=p("=[JS]",!0),e.linedefined=-1,e.lastlinedefined=-1,e.what=p("J",!0);else{let n=t.p;e.source=n.source?n.source.getstr():p("=?",!0),e.linedefined=n.linedefined,e.lastlinedefined=n.lastlinedefined,e.what=0===e.linedefined?p("main",!0):p("Lua",!0)}e.short_src=S.luaO_chunkid(e.source,b)},P=function(e,t){let n={name:null,funcname:null};return null===t?null:t.callstatus&x.CIST_FIN?(n.name=p("__gc",!0),n.funcname=p("metamethod",!0),n):!(t.callstatus&x.CIST_TAIL)&&t.previous.callstatus&x.CIST_LUA?F(e,t.previous):null},k=function(e,t,n){let a={name:null,funcname:null};if(T.ISK(n)){let t=e.k[T.INDEXK(n)];if(t.ttisstring())return a.name=t.svalue(),a}else{let a=D(e,t,n);if(a&&99===a.funcname[0])return a}return a.name=p("?",!0),a},O=function(e,t){return e<t?-1:e},D=function(e,t,n){let a={name:A.luaF_getlocalname(e,n+1,t),funcname:null};if(a.name)return a.funcname=p("local",!0),a;let r=function(e,t,n){let a=-1,r=0,i=T.OpCodesI;for(let s=0;s<t;s++){let l=e.code[s],o=l.A;switch(l.opcode){case i.OP_LOADNIL:{let e=l.B;o<=n&&n<=o+e&&(a=O(s,r));break}case i.OP_TFORCALL:n>=o+2&&(a=O(s,r));break;case i.OP_CALL:case i.OP_TAILCALL:n>=o&&(a=O(s,r));break;case i.OP_JMP:{let e=s+1+l.sBx;s<e&&e<=t&&e>r&&(r=e);break}default:T.testAMode(l.opcode)&&n===o&&(a=O(s,r))}}return a}(e,t,n),i=T.OpCodesI;if(-1!==r){let t=e.code[r];switch(t.opcode){case i.OP_MOVE:{let n=t.B;if(n<t.A)return D(e,r,n);break}case i.OP_GETTABUP:case i.OP_GETTABLE:{let n=t.C,s=t.B,l=t.opcode===i.OP_GETTABLE?A.luaF_getlocalname(e,s+1,r):M(e,s);return a.name=k(e,r,n).name,a.funcname=l&&f(l,y.LUA_ENV)?p("global",!0):p("field",!0),a}case i.OP_GETUPVAL:return a.name=M(e,t.B),a.funcname=p("upvalue",!0),a;case i.OP_LOADK:case i.OP_LOADKX:{let n=t.opcode===i.OP_LOADK?t.Bx:e.code[r+1].Ax;if(e.k[n].ttisstring())return a.name=e.k[n].svalue(),a.funcname=p("constant",!0),a;break}case i.OP_SELF:{let n=t.C;return a.name=k(e,r,n).name,a.funcname=p("method",!0),a}}}return null},F=function(e,t){let n={name:null,funcname:null},a=0,r=t.func.value.p,i=U(t),s=r.code[i],l=T.OpCodesI;if(t.callstatus&x.CIST_HOOKED)return n.name=p("?",!0),n.funcname=p("hook",!0),n;switch(s.opcode){case l.OP_CALL:case l.OP_TAILCALL:return D(r,i,s.A);case l.OP_TFORCALL:return n.name=p("for iterator",!0),n.funcname=p("for iterator",!0),n;case l.OP_SELF:case l.OP_GETTABUP:case l.OP_GETTABLE:a=L.TMS.TM_INDEX;break;case l.OP_SETTABUP:case l.OP_SETTABLE:a=L.TMS.TM_NEWINDEX;break;case l.OP_ADD:a=L.TMS.TM_ADD;break;case l.OP_SUB:a=L.TMS.TM_SUB;break;case l.OP_MUL:a=L.TMS.TM_MUL;break;case l.OP_MOD:a=L.TMS.TM_MOD;break;case l.OP_POW:a=L.TMS.TM_POW;break;case l.OP_DIV:a=L.TMS.TM_DIV;break;case l.OP_IDIV:a=L.TMS.TM_IDIV;break;case l.OP_BAND:a=L.TMS.TM_BAND;break;case l.OP_BOR:a=L.TMS.TM_BOR;break;case l.OP_BXOR:a=L.TMS.TM_BXOR;break;case l.OP_SHL:a=L.TMS.TM_SHL;break;case l.OP_SHR:a=L.TMS.TM_SHR;break;case l.OP_UNM:a=L.TMS.TM_UNM;break;case l.OP_BNOT:a=L.TMS.TM_BNOT;break;case l.OP_LEN:a=L.TMS.TM_LEN;break;case l.OP_CONCAT:a=L.TMS.TM_CONCAT;break;case l.OP_EQ:a=L.TMS.TM_EQ;break;case l.OP_LT:a=L.TMS.TM_LT;break;case l.OP_LE:a=L.TMS.TM_LE;break;default:return null}return n.name=e.l_G.tmname[a].getstr(),n.funcname=p("metamethod",!0),n},G=function(e,t){let n=e.ci,a=null;if(n.callstatus&x.CIST_LUA){a=function(e,t,n){let a=t.func.value;for(let e=0;e<a.nupvalues;e++)if(a.upvals[e]===n)return{name:M(a.p,e),funcname:p("upvalue",!0)};return null}(0,n,t);let r=function(e,t,n){for(let a=t.l_base;a<t.top;a++)if(e.stack[a]===n)return a;return!1}(e,n,t);!a&&r&&(a=D(n.func.value.p,U(n),r-n.l_base))}return a?S.luaO_pushfstring(e,p(" (%s '%s')",!0),a.funcname,a.name):p("",!0)},V=function(e,t,n){let a=L.luaT_objtypename(e,t);H(e,p("attempt to %s a %s value%s",!0),n,a,G(e,t))},K=function(e,t,n,a){let r;return r=n?S.luaO_chunkid(n.getstr(),b):p("?",!0),S.luaO_pushfstring(e,p("%s:%d: %s",!0),r,a,t)},H=function(e,t,...n){let a=e.ci,r=S.luaO_pushvfstring(e,t,n);a.callstatus&x.CIST_LUA&&K(e,r,a.func.value.p.source,R(a)),z(e)},z=function(e){if(0!==e.errfunc){let t=e.errfunc;S.pushobj2s(e,e.stack[e.top-1]),S.setobjs2s(e,e.top-2,t),v.luaD_callnoyield(e,e.top-2,1)}v.luaD_throw(e,c)};e.exports.luaG_addinfo=K,e.exports.luaG_concaterror=function(e,t,n){(t.ttisstring()||I.cvt2str(t))&&(t=n),V(e,t,p("concatenate",!0))},e.exports.luaG_errormsg=z,e.exports.luaG_opinterror=function(e,t,n,a){!1===I.tonumber(t)&&(n=t),V(e,n,a)},e.exports.luaG_ordererror=function(e,t,n){let a=L.luaT_objtypename(e,t),r=L.luaT_objtypename(e,n);f(a,r)?H(e,p("attempt to compare two %s values",!0),a):H(e,p("attempt to compare %s with %s",!0),a,r)},e.exports.luaG_runerror=H,e.exports.luaG_tointerror=function(e,t,n){!1===I.tointeger(t)&&(n=t),H(e,p("number%s has no integer representation",!0),G(e,n))},e.exports.luaG_traceexec=function(e){let t=e.ci,n=e.hookmask,l=0===--e.hookcount&&n&i;if(l)e.hookcount=e.basehookcount;else if(!(n&s))return;if(t.callstatus&x.CIST_HOOKYIELD)t.callstatus&=~x.CIST_HOOKYIELD;else{if(l&&v.luaD_hook(e,a,-1),n&s){let n=t.func.value.p,a=t.l_savedpc-1,i=0!==n.lineinfo.length?n.lineinfo[a]:-1;(0===a||t.l_savedpc<=e.oldpc||i!==(0!==n.lineinfo.length?n.lineinfo[e.oldpc-1]:-1))&&v.luaD_hook(e,r,i)}e.oldpc=t.l_savedpc,e.status===d&&(l&&(e.hookcount=1),t.l_savedpc--,t.callstatus|=x.CIST_HOOKYIELD,t.funcOff=e.top-1,t.func=e.stack[t.funcOff],v.luaD_throw(e,d))}},e.exports.luaG_typeerror=V,e.exports.lua_gethook=function(e){return e.hook},e.exports.lua_gethookcount=function(e){return e.basehookcount},e.exports.lua_gethookmask=function(e){return e.hookmask},e.exports.lua_getinfo=function(e,t,n){let a,r,i,s;return t=h(t),C(e),62===t[0]?(i=null,s=e.stack[e.top-1],_(e,s.ttisfunction(),"function expected"),t=t.subarray(1),e.top--):(i=n.i_ci,s=i.func,g(i.func.ttisfunction())),r=s.ttisclosure()?s.value:null,a=function(e,t,n,a,r){let i=1;for(;t.length>0;t=t.subarray(1))switch(t[0]){case 83:N(n,a);break;case 108:n.currentline=r&&r.callstatus&x.CIST_LUA?R(r):-1;break;case 117:n.nups=null===a?0:a.nupvalues,null===a||a instanceof S.CClosure?(n.isvararg=!0,n.nparams=0):(n.isvararg=a.p.is_vararg,n.nparams=a.p.numparams);break;case 116:n.istailcall=r?r.callstatus&x.CIST_TAIL:0;break;case 110:{let t=P(e,r);null===t?(n.namewhat=p("",!0),n.name=null):(n.namewhat=t.funcname,n.name=t.name);break}case 76:case 102:break;default:i=0}return i}(e,t,n,r,i),m(t,102)>=0&&(S.pushobj2s(e,s),_(e,e.top<=e.ci.top,"stack overflow")),C(e),m(t,76)>=0&&function(e,t){if(null===t||t instanceof S.CClosure)e.stack[e.top]=new S.TValue(o,null),w.api_incr_top(e);else{let n=t.p.lineinfo,a=E.luaH_new(e);e.stack[e.top]=new S.TValue(u,a),w.api_incr_top(e);let r=new S.TValue(l,!0);for(let e=0;e<n.length;e++)E.luaH_setint(a,n[e],r)}}(e,r),a},e.exports.lua_getlocal=function(e,t,n){let a;if(C(e),null===t)a=e.stack[e.top-1].ttisLclosure()?A.luaF_getlocalname(e.stack[e.top-1].value.p,n,0):null;else{let r=B(e,t.i_ci,n);r?(a=r.name,S.pushobj2s(e,e.stack[r.pos]),_(e,e.top<=e.ci.top,"stack overflow")):a=null}return C(e),a},e.exports.lua_getstack=function(e,t,n){let a,r;if(t<0)return 0;for(a=e.ci;t>0&&a!==e.base_ci;a=a.previous)t--;return 0===t&&a!==e.base_ci?(r=1,n.i_ci=a):r=0,r},e.exports.lua_sethook=function(e,t,n,a){null!==t&&0!==n||(n=0,t=null),e.ci.callstatus&x.CIST_LUA&&(e.oldpc=e.ci.l_savedpc),e.hook=t,e.basehookcount=a,e.hookcount=e.basehookcount,e.hookmask=n},e.exports.lua_setlocal=function(e,t,n){let a;C(e);let r=B(e,t.i_ci,n);return r?(a=r.name,S.setobjs2s(e,r.pos,e.top-1),delete e.stack[--e.top]):a=null,C(e),a}},415:(e,t,n)=>{"use strict";const{is_luastring:a,luastring_eq:r,luastring_from:i,to_luastring:s}=n(696),{lua_assert:l}=n(502);class o{constructor(e,t){this.hash=null,this.realstring=t}getstr(){return this.realstring}tsslen(){return this.realstring.length}}const u=function(e){l(a(e));let t=e.length,n="|";for(let a=0;a<t;a++)n+=e[a].toString(16);return n},c=function(e,t){return l(t instanceof Uint8Array),new o(e,t)};e.exports.luaS_eqlngstr=function(e,t){return l(e instanceof o),l(t instanceof o),e==t||r(e.realstring,t.realstring)},e.exports.luaS_hash=u,e.exports.luaS_hashlongstr=function(e){return l(e instanceof o),null===e.hash&&(e.hash=u(e.getstr())),e.hash},e.exports.luaS_bless=c,e.exports.luaS_new=function(e,t){return c(e,i(t))},e.exports.luaS_newliteral=function(e,t){return c(e,s(t))},e.exports.TString=o},420:(e,t,n)=>{"use strict";const{constant_types:{LUA_TBOOLEAN:a,LUA_TCCL:r,LUA_TLCF:i,LUA_TLCL:s,LUA_TLIGHTUSERDATA:l,LUA_TLNGSTR:o,LUA_TNIL:u,LUA_TNUMFLT:c,LUA_TNUMINT:d,LUA_TSHRSTR:h,LUA_TTABLE:f,LUA_TTHREAD:m,LUA_TUSERDATA:p},to_luastring:_}=n(696),{lua_assert:g}=n(502),b=n(399),w=n(853),{luaS_hashlongstr:v,TString:A}=n(415),y=n(809);let S=new WeakMap;const T=function(e){let t=S.get(e);return t||(t={},S.set(e,t)),t},x=function(e,t){switch(t.type){case u:return b.luaG_runerror(e,_("table index is nil",!0));case c:if(isNaN(t.value))return b.luaG_runerror(e,_("table index is NaN",!0));case d:case a:case f:case s:case i:case r:case p:case m:return t.value;case h:case o:return v(t.tsvalue());case l:{let n=t.value;switch(typeof n){case"string":return"*"+n;case"number":return"#"+n;case"boolean":return n?"?true":"?false";case"function":return T(n);case"object":if(n instanceof y.lua_State&&n.l_G===e.l_G||n instanceof E||n instanceof w.Udata||n instanceof w.LClosure||n instanceof w.CClosure)return T(n);default:return n}}default:throw new Error("unknown key type: "+t.type)}};class E{constructor(e){this.id=e.l_G.id_counter++,this.strong=new Map,this.dead_strong=new Map,this.dead_weak=void 0,this.f=void 0,this.l=void 0,this.metatable=null,this.flags=-1}}const L=function(e,t,n,a){e.dead_strong.clear(),e.dead_weak=void 0;let r=null,i={key:n,value:a,p:r=e.l,n:void 0};e.f||(e.f=i),r&&(r.n=i),e.strong.set(t,i),e.l=i},I=function(e,t){let n=e.strong.get(t);if(n){n.key.setdeadvalue(),n.value=void 0;let r=n.n,i=n.p;n.p=void 0,i&&(i.n=r),r&&(r.p=i),e.f===n&&(e.f=r),e.l===n&&(e.l=i),e.strong.delete(t),("object"==typeof(a=t)?null!==a:"function"==typeof a)?(e.dead_weak||(e.dead_weak=new WeakMap),e.dead_weak.set(t,n)):e.dead_strong.set(t,n)}var a},U=function(e,t){let n=e.strong.get(t);return n?n.value:w.luaO_nilobject},R=function(e,t){return g("number"==typeof t&&(0|t)===t),U(e,t)};e.exports.invalidateTMcache=function(e){e.flags=0},e.exports.luaH_get=function(e,t,n){return g(n instanceof w.TValue),n.ttisnil()||n.ttisfloat()&&isNaN(n.value)?w.luaO_nilobject:U(t,x(e,n))},e.exports.luaH_getint=R,e.exports.luaH_getn=function(e){let t=0,n=e.strong.size+1;for(;n-t>1;){let a=Math.floor((t+n)/2);R(e,a).ttisnil()?n=a:t=a}return t},e.exports.luaH_getstr=function(e,t){return g(t instanceof A),U(e,v(t))},e.exports.luaH_setfrom=function(e,t,n,a){g(n instanceof w.TValue);let r=x(e,n);if(a.ttisnil())return void I(t,r);let i=t.strong.get(r);if(i)i.value.setfrom(a);else{let e,i=n.value;e=n.ttisfloat()&&(0|i)===i?new w.TValue(d,i):new w.TValue(n.type,i);let s=new w.TValue(a.type,a.value);L(t,r,e,s)}},e.exports.luaH_setint=function(e,t,n){g("number"==typeof t&&(0|t)===t&&n instanceof w.TValue);let a=t;if(n.ttisnil())return void I(e,a);let r=e.strong.get(a);if(r){r.value.setfrom(n)}else{let r=new w.TValue(d,t),i=new w.TValue(n.type,n.value);L(e,a,r,i)}},e.exports.luaH_new=function(e){return new E(e)},e.exports.luaH_next=function(e,t,n){let a,r=e.stack[n];if(r.type===u){if(a=t.f,!a)return!1}else{let n=x(e,r);if(a=t.strong.get(n),a){if(a=a.n,!a)return!1}else{if(a=t.dead_weak&&t.dead_weak.get(n)||t.dead_strong.get(n),!a)return b.luaG_runerror(e,_("invalid key to 'next'"));do{if(a=a.n,!a)return!1}while(a.key.ttisdeadkey())}}return w.setobj2s(e,n,a.key),w.setobj2s(e,n+1,a.value),!0},e.exports.Table=E},447:(e,t,n)=>{"use strict";const{LUAL_BUFFERSIZE:a}=n(254),{LUA_ERRERR:r,LUA_MULTRET:i,LUA_REGISTRYINDEX:s,LUA_SIGNATURE:l,LUA_TBOOLEAN:o,LUA_TLIGHTUSERDATA:u,LUA_TNIL:c,LUA_TNONE:d,LUA_TNUMBER:h,LUA_TSTRING:f,LUA_TTABLE:m,LUA_VERSION_NUM:p,lua_Debug:_,lua_absindex:g,lua_atpanic:b,lua_call:w,lua_checkstack:v,lua_concat:A,lua_copy:y,lua_createtable:S,lua_error:T,lua_getfield:x,lua_getinfo:E,lua_getmetatable:L,lua_getstack:I,lua_gettop:U,lua_insert:R,lua_isinteger:C,lua_isnil:M,lua_isnumber:B,lua_isstring:N,lua_istable:P,lua_len:k,lua_load:O,lua_newstate:D,lua_newtable:F,lua_next:G,lua_pcall:V,lua_pop:K,lua_pushboolean:H,lua_pushcclosure:z,lua_pushcfunction:j,lua_pushfstring:X,lua_pushinteger:$,lua_pushliteral:J,lua_pushlstring:W,lua_pushnil:q,lua_pushstring:Y,lua_pushvalue:Z,lua_pushvfstring:Q,lua_rawequal:ee,lua_rawget:te,lua_rawgeti:ne,lua_rawlen:ae,lua_rawseti:re,lua_remove:ie,lua_setfield:se,lua_setglobal:le,lua_setmetatable:oe,lua_settop:ue,lua_toboolean:ce,lua_tointeger:de,lua_tointegerx:he,lua_tojsstring:fe,lua_tolstring:me,lua_tonumber:pe,lua_tonumberx:_e,lua_topointer:ge,lua_tostring:be,lua_touserdata:we,lua_type:ve,lua_typename:Ae,lua_version:ye}=n(936),{from_userstring:Se,luastring_eq:Te,to_luastring:xe,to_uristring:Ee}=n(125),Le=r+1,Ie=xe("_LOADED"),Ue=xe("_PRELOAD"),Re=xe("FILE*"),Ce=xe("__name"),Me=xe("__tostring"),Be=new Uint8Array(0);class Ne{constructor(){this.L=null,this.b=Be,this.n=0}}const Pe=function(e,t,n){if(0===n||!P(e,-1))return 0;for(q(e);G(e,-2);){if(ve(e,-2)===f){if(ee(e,t,-1))return K(e,1),1;if(Pe(e,t,n-1))return ie(e,-2),J(e,"."),R(e,-2),A(e,3),1}K(e,1)}return 0},ke=function(e,t){let n=U(e);if(E(e,xe("f"),t),x(e,s,Ie),Pe(e,n+1,2)){let t=be(e,-1);return 95===t[0]&&71===t[1]&&46===t[2]&&(Y(e,t.subarray(3)),ie(e,-2)),y(e,-1,n+1),K(e,2),1}return ue(e,n),0},Oe=function(e,t){ke(e,t)?(X(e,xe("function '%s'"),be(e,-1)),ie(e,-2)):0!==t.namewhat.length?X(e,xe("%s '%s'"),t.namewhat,t.name):t.what&&109===t.what[0]?J(e,"main chunk"):t.what&&76===t.what[0]?X(e,xe("function <%s:%d>"),t.short_src,t.linedefined):J(e,"?")},De=function(e){let t="PANIC: unprotected error in call to Lua API ("+fe(e,-1)+")";throw new Error(t)},Fe=function(e,t,n){let a=new _;return I(e,0,a)?(E(e,xe("n"),a),Te(a.namewhat,xe("method"))&&0===--t?Ke(e,xe("calling '%s' on bad self (%s)"),a.name,n):(null===a.name&&(a.name=ke(e,a)?be(e,-1):xe("?")),Ke(e,xe("bad argument #%d to '%s' (%s)"),t,a.name,n))):Ke(e,xe("bad argument #%d (%s)"),t,n)},Ge=function(e,t,n){let a;a=dt(e,t,Ce)===f?be(e,-1):ve(e,t)===u?xe("light userdata",!0):$e(e,t);let r=X(e,xe("%s expected, got %s"),n,a);return Fe(e,t,r)},Ve=function(e,t){let n=new _;I(e,t,n)&&(E(e,xe("Sl",!0),n),n.currentline>0)?X(e,xe("%s:%d: "),n.short_src,n.currentline):Y(e,xe(""))},Ke=function(e,t,...n){return Ve(e,1),Q(e,t,n),A(e,2),T(e)},He=function(e,t,n,a){if(t)return H(e,1),1;{let t,r;return q(e),a?(t=a.message,r=-a.errno):(t="Success",r=0),n?X(e,xe("%s: %s"),n,xe(t)):Y(e,xe(t)),$(e,r),3}},ze=function(e,t){return x(e,s,t)},je=function(e,t,n){let a=we(e,t);return null!==a&&L(e,t)?(ze(e,n),ee(e,-1,-2)||(a=null),K(e,2),a):null},Xe=function(e,t,n){Ge(e,t,Ae(e,n))},$e=function(e,t){return Ae(e,ve(e,t))},Je=function(e,t){let n=me(e,t);return null==n&&Xe(e,t,f),n},We=Je,qe=function(e,t,n){return ve(e,t)<=0?null===n?null:Se(n):Je(e,t)},Ye=qe,Ze=function(e,t){let n=_e(e,t);return!1===n&&Xe(e,t,h),n},Qe=function(e,t){let n=he(e,t);return!1===n&&function(e,t){B(e,t)?Fe(e,t,xe("number has no integer representation",!0)):Xe(e,t,h)}(e,t),n},et=function(e,t){let n=e.n+t;if(e.b.length<n){let t=Math.max(2*e.b.length,n),a=new Uint8Array(t);a.set(e.b),e.b=a}return e.b.subarray(e.n,n)},tt=function(e,t){t.L=e,t.b=Be},nt=function(e,t,n){if(n>0){t=Se(t),et(e,n).set(t.subarray(0,n)),it(e,n)}},at=function(e,t){t=Se(t),nt(e,t,t.length)},rt=function(e){W(e.L,e.b,e.n),e.n=0,e.b=Be},it=function(e,t){e.n+=t},st=function(e,t,n,a){return ve(e,n)<=0?a:t(e,n)},lt=function(e,t){let n=t.string;return t.string=null,n},ot=function(e,t,n,a,r){return O(e,lt,{string:t},a,r)},ut=function(e,t,n,a){return ot(e,t,0,a,null)},ct=function(e,t){return ut(e,t,t.length,t)},dt=function(e,t,n){if(L(e,t)){Y(e,n);let t=te(e,-2);return t===c?K(e,2):ie(e,-2),t}return c},ht=function(e,t,n){return t=g(e,t),dt(e,t,n)!==c&&(Z(e,t),w(e,1,1),!0)},ft=xe("%I"),mt=xe("%f"),pt=function(e,t,n){var a=n>>>0,r=t.length,i=e.length+1-r;e:for(;a<i;a++){for(let n=0;n<r;n++)if(e[a+n]!==t[n])continue e;return a}return-1},_t=function(e,t,n){return x(e,t,n)===m||(K(e,1),t=g(e,t),F(e),Z(e,-1),se(e,t,n),!1)},gt=function(e,t,n){bt(e,n,xe("too many upvalues",!0));for(let a in t){for(let t=0;t<n;t++)Z(e,-n);z(e,t[a],n),se(e,-(n+2),xe(a))}K(e,n)},bt=function(e,t,n){v(e,t)||(n?Ke(e,xe("stack overflow (%s)"),n):Ke(e,xe("stack overflow",!0)))},wt=function(e,t,n,a){let r=a.message,i=be(e,n).subarray(1);return X(e,xe("cannot %s %s: %s"),xe(t),i,xe(r)),ie(e,n),Le};let vt;const At=[239,187,191],yt=function(e){let t=function(e){let t;e.n=0;let n=0;do{if(t=vt(e),null===t||t!==At[n])return t;n++,e.buff[e.n++]=t}while(n<At.length);return e.n=0,vt(e)}(e);if(35===t){do{t=vt(e)}while(t&&10!==t);return{skipped:!0,c:vt(e)}}return{skipped:!1,c:t}};let St;{class e{constructor(){this.n=NaN,this.f=null,this.buff=new Uint8Array(1024),this.pos=0,this.err=void 0}}const t=function(e,t){let n=t;if(null!==n.f&&n.n>0){let e=n.n;return n.n=0,n.f=n.f.subarray(n.pos),n.buff.subarray(0,e)}let a=n.f;return n.f=null,a};vt=function(e){return e.pos<e.f.length?e.f[e.pos++]:null},St=function(n,a,r){let i=new e,s=U(n)+1;if(null===a)throw new Error("Can't read stdin in the browser");{X(n,xe("@%s"),a);let e=Ee(a),t=new XMLHttpRequest;if(t.open("GET",e,!1),"undefined"==typeof window&&(t.responseType="arraybuffer"),t.send(),!(t.status>=200&&t.status<=299))return i.err=t.status,wt(n,"open",s,{message:`${t.status}: ${t.statusText}`});"string"==typeof t.response?i.f=xe(t.response):i.f=new Uint8Array(t.response)}let o=yt(i);o.c===l[0]&&a||o.skipped&&(i.buff[i.n++]=10),null!==o.c&&(i.buff[i.n++]=o.c);let u=O(n,t,i,be(n,-1),r),c=i.err;return c?(ue(n,s),wt(n,"read",s,c)):(ie(n,s),u)}}const Tt=function(e,t){return St(e,t,null)},xt=function(e,t,n){let a=ye(e);72!=n&&Ke(e,xe("core and library have incompatible numeric types")),a!=ye(null)?Ke(e,xe("multiple Lua VMs detected")):a!==t&&Ke(e,xe("version mismatch: app. needs %f, Lua core provides %f"),t,a)};e.exports.eN=Qe,e.exports.hs=Ze,e.exports.dK=We,e.exports.rf=ct,e.exports.Zf=function(){let e=D();return e&&b(e,De),e},e.exports.oL=function(e,t){let n;return M(e,-1)?(K(e,1),-1):(t=g(e,t),ne(e,t,0),n=de(e,-1),K(e,1),0!==n?(ne(e,t,n),re(e,t,0)):n=ae(e,t)+1,re(e,t,n),n)},e.exports.On=function(e,t){if(ht(e,t,Me))N(e,-1)||Ke(e,xe("'__tostring' must return a string"));else{switch(ve(e,t)){case h:C(e,t)?X(e,ft,de(e,t)):X(e,mt,pe(e,t));break;case f:Z(e,t);break;case o:J(e,ce(e,t)?"true":"false");break;case c:J(e,"nil");break;default:{let n=dt(e,t,Ce),a=n===f?be(e,-1):$e(e,t);X(e,xe("%s: %p"),a,ge(e,t)),n!==c&&ie(e,-2);break}}}return me(e,-1)},e.exports.eK=function(e,t,n){n>=0&&(t=g(e,t),ne(e,t,0),re(e,t,n),$(e,n),re(e,t,0))}},451:e=>{"use strict";const t=[96,113,65,84,80,80,92,108,60,16,60,84,108,124,124,124,124,124,124,124,124,124,124,124,124,96,96,96,96,104,34,188,188,188,132,228,84,84,16,98,98,4,98,20,81,80,23],n=18,a=14,r=a,i=262143,s=131071,l=256,o=function(e,t){return~(-1<<e)<<t},u=function(e,t){return~o(e,t)},c=function(e,t,n,a){return e.code=e.code&u(a,n)|t<<n&o(a,n),h(e)},d=function(e,t){return c(e,t,r,n)},h=function(e){if("number"==typeof e)return{code:e,opcode:(e|0)&o(6,0),A:e>>6&o(8,0),B:e>>23&o(9,0),C:e>>a&o(9,0),Bx:e>>r&o(n,0),Ax:e>>6&o(26,0),sBx:(e>>r&o(n,0))-s};{let t=e.code;return e.opcode=(t|0)&o(6,0),e.A=t>>6&o(8,0),e.B=t>>23&o(9,0),e.C=t>>a&o(9,0),e.Bx=t>>r&o(n,0),e.Ax=t>>6&o(26,0),e.sBx=(t>>r&o(n,0))-s,e}};e.exports.BITRK=l,e.exports.CREATE_ABC=function(e,t,n,r){return h(e|0|t<<6|n<<23|r<<a)},e.exports.CREATE_ABx=function(e,t,n){return h(e|0|t<<6|n<<r)},e.exports.CREATE_Ax=function(e,t){return h(e|0|t<<6)},e.exports.GET_OPCODE=function(e){return e.opcode},e.exports.GETARG_A=function(e){return e.A},e.exports.GETARG_B=function(e){return e.B},e.exports.GETARG_C=function(e){return e.C},e.exports.GETARG_Bx=function(e){return e.Bx},e.exports.GETARG_Ax=function(e){return e.Ax},e.exports.GETARG_sBx=function(e){return e.sBx},e.exports.INDEXK=function(e){return-257&e},e.exports.ISK=function(e){return e&l},e.exports.LFIELDS_PER_FLUSH=50,e.exports.MAXARG_A=255,e.exports.MAXARG_Ax=67108863,e.exports.MAXARG_B=511,e.exports.MAXARG_Bx=i,e.exports.MAXARG_C=511,e.exports.MAXARG_sBx=s,e.exports.MAXINDEXRK=255,e.exports.NO_REG=255,e.exports.OpArgK=3,e.exports.OpArgN=0,e.exports.OpArgR=2,e.exports.OpArgU=1,e.exports.OpCodes=["MOVE","LOADK","LOADKX","LOADBOOL","LOADNIL","GETUPVAL","GETTABUP","GETTABLE","SETTABUP","SETUPVAL","SETTABLE","NEWTABLE","SELF","ADD","SUB","MUL","MOD","POW","DIV","IDIV","BAND","BOR","BXOR","SHL","SHR","UNM","BNOT","NOT","LEN","CONCAT","JMP","EQ","LT","LE","TEST","TESTSET","CALL","TAILCALL","RETURN","FORLOOP","FORPREP","TFORCALL","TFORLOOP","SETLIST","CLOSURE","VARARG","EXTRAARG"],e.exports.OpCodesI={OP_MOVE:0,OP_LOADK:1,OP_LOADKX:2,OP_LOADBOOL:3,OP_LOADNIL:4,OP_GETUPVAL:5,OP_GETTABUP:6,OP_GETTABLE:7,OP_SETTABUP:8,OP_SETUPVAL:9,OP_SETTABLE:10,OP_NEWTABLE:11,OP_SELF:12,OP_ADD:13,OP_SUB:14,OP_MUL:15,OP_MOD:16,OP_POW:17,OP_DIV:18,OP_IDIV:19,OP_BAND:20,OP_BOR:21,OP_BXOR:22,OP_SHL:23,OP_SHR:24,OP_UNM:25,OP_BNOT:26,OP_NOT:27,OP_LEN:28,OP_CONCAT:29,OP_JMP:30,OP_EQ:31,OP_LT:32,OP_LE:33,OP_TEST:34,OP_TESTSET:35,OP_CALL:36,OP_TAILCALL:37,OP_RETURN:38,OP_FORLOOP:39,OP_FORPREP:40,OP_TFORCALL:41,OP_TFORLOOP:42,OP_SETLIST:43,OP_CLOSURE:44,OP_VARARG:45,OP_EXTRAARG:46},e.exports.POS_A=6,e.exports.POS_Ax=6,e.exports.POS_B=23,e.exports.POS_Bx=r,e.exports.POS_C=a,e.exports.POS_OP=0,e.exports.RKASK=function(e){return e|l},e.exports.SETARG_A=function(e,t){return c(e,t,6,8)},e.exports.SETARG_Ax=function(e,t){return c(e,t,6,26)},e.exports.SETARG_B=function(e,t){return c(e,t,23,9)},e.exports.SETARG_Bx=d,e.exports.SETARG_C=function(e,t){return c(e,t,a,9)},e.exports.SETARG_sBx=function(e,t){return d(e,t+s)},e.exports.SET_OPCODE=function(e,t){return e.code=e.code&u(6,0)|(t|0)&o(6,0),h(e)},e.exports.SIZE_A=8,e.exports.SIZE_Ax=26,e.exports.SIZE_B=9,e.exports.SIZE_Bx=n,e.exports.SIZE_C=9,e.exports.SIZE_OP=6,e.exports.fullins=h,e.exports.getBMode=function(e){return t[e]>>4&3},e.exports.getCMode=function(e){return t[e]>>2&3},e.exports.getOpMode=function(e){return 3&t[e]},e.exports.iABC=0,e.exports.iABx=1,e.exports.iAsBx=2,e.exports.iAx=3,e.exports.testAMode=function(e){return 64&t[e]},e.exports.testTMode=function(e){return 128&t[e]}},459:(e,t,n)=>{"use strict";const{LUA_MULTRET:a,LUA_OPADD:r,LUA_OPBAND:i,LUA_OPBNOT:s,LUA_OPBOR:l,LUA_OPBXOR:o,LUA_OPDIV:u,LUA_OPIDIV:c,LUA_OPMOD:d,LUA_OPSHL:h,LUA_OPSHR:f,LUA_OPUNM:m,constant_types:{LUA_TBOOLEAN:p,LUA_TLIGHTUSERDATA:_,LUA_TLNGSTR:g,LUA_TNIL:b,LUA_TNUMFLT:w,LUA_TNUMINT:v,LUA_TTABLE:A},to_luastring:y}=n(696),{lua_assert:S}=n(502),T=n(641),x=n(853),E=n(451),L=n(517),I=n(420),U=n(371),R=E.OpCodesI,C=x.TValue,M=-1,B={OPR_ADD:0,OPR_SUB:1,OPR_MUL:2,OPR_MOD:3,OPR_POW:4,OPR_DIV:5,OPR_IDIV:6,OPR_BAND:7,OPR_BOR:8,OPR_BXOR:9,OPR_SHL:10,OPR_SHR:11,OPR_CONCAT:12,OPR_EQ:13,OPR_LT:14,OPR_LE:15,OPR_NE:16,OPR_GT:17,OPR_GE:18,OPR_AND:19,OPR_OR:20,OPR_NOBINOPR:21},N={OPR_MINUS:0,OPR_BNOT:1,OPR_NOT:2,OPR_LEN:3,OPR_NOUNOPR:4},P=function(e){return e.t!==e.f},k=function(e,t){let n=L.expkind;if(P(e))return!1;switch(e.k){case n.VKINT:return!t||new C(v,e.u.ival);case n.VKFLT:return!t||new C(w,e.u.nval);default:return!1}},O=function(e,t,n){let a,r=t+n-1;if(e.pc>e.lasttarget&&(a=e.f.code[e.pc-1],a.opcode===R.OP_LOADNIL)){let e=a.A,n=e+a.B;if(e<=t&&t<=n+1||t<=e&&e<=r+1)return e<t&&(t=e),n>r&&(r=n),E.SETARG_A(a,t),void E.SETARG_B(a,r-t)}Q(e,R.OP_LOADNIL,t,n-1,0)},D=function(e,t){return e.f.code[t.u.info]},F=function(e,t){let n=e.f.code[t].sBx;return n===M?M:t+1+n},G=function(e,t,n){let a=e.f.code[t],r=n-(t+1);S(n!==M),Math.abs(r)>E.MAXARG_sBx&&T.luaX_syntaxerror(e.ls,y("control structure too long",!0)),E.SETARG_sBx(a,r)},V=function(e,t,n){if(n===M)return t;if(t===M)t=n;else{let a=t,r=F(e,a);for(;r!==M;)a=r,r=F(e,a);G(e,a,n)}return t},K=function(e){let t=e.jpc;e.jpc=M;let n=te(e,R.OP_JMP,0,M);return n=V(e,n,t),n},H=function(e,t,n,a,r){return Q(e,t,n,a,r),K(e)},z=function(e){return e.lasttarget=e.pc,e.pc},j=function(e,t){return t>=1&&E.testTMode(e.f.code[t-1].opcode)?t-1:t},X=function(e,t){return e.f.code[j(e,t)]},$=function(e,t,n){let a=j(e,t),r=e.f.code[a];return r.opcode===R.OP_TESTSET&&(n!==E.NO_REG&&n!==r.B?E.SETARG_A(r,n):e.f.code[a]=E.CREATE_ABC(R.OP_TEST,r.B,0,r.C),!0)},J=function(e,t){for(;t!==M;t=F(e,t))$(e,t,E.NO_REG)},W=function(e,t,n,a,r){for(;t!==M;){let i=F(e,t);$(e,t,a)?G(e,t,n):G(e,t,r),t=i}},q=function(e,t){z(e),e.jpc=V(e,e.jpc,t)},Y=function(e,t,n){n===e.pc?q(e,t):(S(n<e.pc),W(e,t,n,E.NO_REG,n))},Z=function(e,t){let n=e.f;return function(e){W(e,e.jpc,e.pc,E.NO_REG,e.pc),e.jpc=M}(e),n.code[e.pc]=t,n.lineinfo[e.pc]=e.ls.lastline,e.pc++},Q=function(e,t,n,a,r){return S(E.getOpMode(t)===E.iABC),S(E.getBMode(t)!==E.OpArgN||0===a),S(E.getCMode(t)!==E.OpArgN||0===r),S(n<=E.MAXARG_A&&a<=E.MAXARG_B&&r<=E.MAXARG_C),Z(e,E.CREATE_ABC(t,n,a,r))},ee=function(e,t,n,a){return S(E.getOpMode(t)===E.iABx||E.getOpMode(t)===E.iAsBx),S(E.getCMode(t)===E.OpArgN),S(n<=E.MAXARG_A&&a<=E.MAXARG_Bx),Z(e,E.CREATE_ABx(t,n,a))},te=function(e,t,n,a){return ee(e,t,n,a+E.MAXARG_sBx)},ne=function(e,t){return S(t<=E.MAXARG_Ax),Z(e,E.CREATE_Ax(R.OP_EXTRAARG,t))},ae=function(e,t,n){if(n<=E.MAXARG_Bx)return ee(e,R.OP_LOADK,t,n);{let a=ee(e,R.OP_LOADKX,t,0);return ne(e,n),a}},re=function(e,t){let n=e.freereg+t;n>e.f.maxstacksize&&(n>=255&&T.luaX_syntaxerror(e.ls,y("function or expression needs too many registers",!0)),e.f.maxstacksize=n)},ie=function(e,t){re(e,t),e.freereg+=t},se=function(e,t){!E.ISK(t)&&t>=e.nactvar&&(e.freereg--,S(t===e.freereg))},le=function(e,t){t.k===L.expkind.VNONRELOC&&se(e,t.u.info)},oe=function(e,t,n){let a=t.k===L.expkind.VNONRELOC?t.u.info:-1,r=n.k===L.expkind.VNONRELOC?n.u.info:-1;a>r?(se(e,a),se(e,r)):(se(e,r),se(e,a))},ue=function(e,t,n){let a=e.f,r=I.luaH_get(e.L,e.ls.h,t);if(r.ttisinteger()){let t=r.value;if(t<e.nk&&a.k[t].ttype()===n.ttype()&&a.k[t].value===n.value)return t}let i=e.nk;return I.luaH_setfrom(e.L,e.ls.h,t,new x.TValue(v,i)),a.k[i]=n,e.nk++,i},ce=function(e,t){let n=new C(_,t),a=new C(v,t);return ue(e,n,a)},de=function(e,t){let n=new C(w,t);return ue(e,n,n)},he=function(e,t){let n=new C(p,t);return ue(e,n,n)},fe=function(e,t,n){let r=L.expkind;if(t.k===r.VCALL)E.SETARG_C(D(e,t),n+1);else if(t.k===r.VVARARG){let a=D(e,t);E.SETARG_B(a,n+1),E.SETARG_A(a,e.freereg),ie(e,1)}else S(n===a)},me=function(e,t){let n=L.expkind;t.k===n.VCALL?(S(2===D(e,t).C),t.k=n.VNONRELOC,t.u.info=D(e,t).A):t.k===n.VVARARG&&(E.SETARG_B(D(e,t),2),t.k=n.VRELOCABLE)},pe=function(e,t){let n=L.expkind;switch(t.k){case n.VLOCAL:t.k=n.VNONRELOC;break;case n.VUPVAL:t.u.info=Q(e,R.OP_GETUPVAL,0,t.u.info,0),t.k=n.VRELOCABLE;break;case n.VINDEXED:{let a;se(e,t.u.ind.idx),t.u.ind.vt===n.VLOCAL?(se(e,t.u.ind.t),a=R.OP_GETTABLE):(S(t.u.ind.vt===n.VUPVAL),a=R.OP_GETTABUP),t.u.info=Q(e,a,0,t.u.ind.t,t.u.ind.idx),t.k=n.VRELOCABLE;break}case n.VVARARG:case n.VCALL:me(e,t)}},_e=function(e,t,n,a){return z(e),Q(e,R.OP_LOADBOOL,t,n,a)},ge=function(e,t,n){let a=L.expkind;switch(pe(e,t),t.k){case a.VNIL:O(e,n,1);break;case a.VFALSE:case a.VTRUE:Q(e,R.OP_LOADBOOL,n,t.k===a.VTRUE,0);break;case a.VK:ae(e,n,t.u.info);break;case a.VKFLT:ae(e,n,de(e,t.u.nval));break;case a.VKINT:ae(e,n,ce(e,t.u.ival));break;case a.VRELOCABLE:{let a=D(e,t);E.SETARG_A(a,n);break}case a.VNONRELOC:n!==t.u.info&&Q(e,R.OP_MOVE,n,t.u.info,0);break;default:return void S(t.k===a.VJMP)}t.u.info=n,t.k=a.VNONRELOC},be=function(e,t){t.k!==L.expkind.VNONRELOC&&(ie(e,1),ge(e,t,e.freereg-1))},we=function(e,t){for(;t!==M;t=F(e,t)){if(X(e,t).opcode!==R.OP_TESTSET)return!0}return!1},ve=function(e,t,n){let a=L.expkind;if(ge(e,t,n),t.k===a.VJMP&&(t.t=V(e,t.t,t.u.info)),P(t)){let r,i=M,s=M;if(we(e,t.t)||we(e,t.f)){let r=t.k===a.VJMP?M:K(e);i=_e(e,n,0,1),s=_e(e,n,1,0),q(e,r)}r=z(e),W(e,t.f,r,n,i),W(e,t.t,r,n,s)}t.f=t.t=M,t.u.info=n,t.k=a.VNONRELOC},Ae=function(e,t){pe(e,t),le(e,t),ie(e,1),ve(e,t,e.freereg-1)},ye=function(e,t){if(pe(e,t),t.k===L.expkind.VNONRELOC){if(!P(t))return t.u.info;if(t.u.info>=e.nactvar)return ve(e,t,t.u.info),t.u.info}return Ae(e,t),t.u.info},Se=function(e,t){P(t)?ye(e,t):pe(e,t)},Te=function(e,t){let n=L.expkind,a=!1;switch(Se(e,t),t.k){case n.VTRUE:t.u.info=he(e,!0),a=!0;break;case n.VFALSE:t.u.info=he(e,!1),a=!0;break;case n.VNIL:t.u.info=function(e){let t=new C(b,null),n=new C(A,e.ls.h);return ue(e,n,t)}(e),a=!0;break;case n.VKINT:t.u.info=ce(e,t.u.ival),a=!0;break;case n.VKFLT:t.u.info=de(e,t.u.nval),a=!0;break;case n.VK:a=!0}return a&&(t.k=n.VK,t.u.info<=E.MAXINDEXRK)?E.RKASK(t.u.info):ye(e,t)},xe=function(e,t){let n=X(e,t.u.info);S(E.testTMode(n.opcode)&&n.opcode!==R.OP_TESTSET&&n.opcode!==R.OP_TEST),E.SETARG_A(n,!n.A)},Ee=function(e,t,n){if(t.k===L.expkind.VRELOCABLE){let a=D(e,t);if(a.opcode===R.OP_NOT)return e.pc--,H(e,R.OP_TEST,a.B,0,!n)}return be(e,t),le(e,t),H(e,R.OP_TESTSET,E.NO_REG,t.u.info,n)},Le=function(e,t){let n,a=L.expkind;switch(pe(e,t),t.k){case a.VJMP:xe(e,t),n=t.u.info;break;case a.VK:case a.VKFLT:case a.VKINT:case a.VTRUE:n=M;break;default:n=Ee(e,t,0)}t.f=V(e,t.f,n),q(e,t.t),t.t=M},Ie=function(e,t){let n,a=L.expkind;switch(pe(e,t),t.k){case a.VJMP:n=t.u.info;break;case a.VNIL:case a.VFALSE:n=M;break;default:n=Ee(e,t,1)}t.t=V(e,t.t,n),q(e,t.f),t.f=M},Ue=function(e,t,n){let a,r,m=L.expkind;if(!(a=k(t,!0))||!(r=k(n,!0))||!function(e,t,n){switch(e){case i:case l:case o:case h:case f:case s:return!1!==U.tointeger(t)&&!1!==U.tointeger(n);case u:case c:case d:return 0!==n.value;default:return 1}}(e,a,r))return 0;let p=new C;if(x.luaO_arith(null,e,a,r,p),p.ttisinteger())t.k=m.VKINT,t.u.ival=p.value;else{let e=p.value;if(isNaN(e)||0===e)return!1;t.k=m.VKFLT,t.u.nval=e}return!0},Re=function(e,t,n,a,r){let i=Te(e,a),s=Te(e,n);oe(e,n,a),n.u.info=Q(e,t,0,s,i),n.k=L.expkind.VRELOCABLE,Ce(e,r)},Ce=function(e,t){e.f.lineinfo[e.pc-1]=t};e.exports.BinOpr=B,e.exports.NO_JUMP=M,e.exports.UnOpr=N,e.exports.getinstruction=D,e.exports.luaK_checkstack=re,e.exports.luaK_code=Z,e.exports.luaK_codeABC=Q,e.exports.luaK_codeABx=ee,e.exports.luaK_codeAsBx=te,e.exports.luaK_codek=ae,e.exports.luaK_concat=V,e.exports.luaK_dischargevars=pe,e.exports.luaK_exp2RK=Te,e.exports.luaK_exp2anyreg=ye,e.exports.luaK_exp2anyregup=function(e,t){(t.k!==L.expkind.VUPVAL||P(t))&&ye(e,t)},e.exports.luaK_exp2nextreg=Ae,e.exports.luaK_exp2val=Se,e.exports.luaK_fixline=Ce,e.exports.luaK_getlabel=z,e.exports.luaK_goiffalse=Ie,e.exports.luaK_goiftrue=Le,e.exports.luaK_indexed=function(e,t,n){let a=L.expkind;S(!P(t)&&(L.vkisinreg(t.k)||t.k===a.VUPVAL)),t.u.ind.t=t.u.info,t.u.ind.idx=Te(e,n),t.u.ind.vt=t.k===a.VUPVAL?a.VUPVAL:a.VLOCAL,t.k=a.VINDEXED},e.exports.luaK_infix=function(e,t,n){switch(t){case B.OPR_AND:Le(e,n);break;case B.OPR_OR:Ie(e,n);break;case B.OPR_CONCAT:Ae(e,n);break;case B.OPR_ADD:case B.OPR_SUB:case B.OPR_MUL:case B.OPR_DIV:case B.OPR_IDIV:case B.OPR_MOD:case B.OPR_POW:case B.OPR_BAND:case B.OPR_BOR:case B.OPR_BXOR:case B.OPR_SHL:case B.OPR_SHR:k(n,!1)||Te(e,n);break;default:Te(e,n)}},e.exports.luaK_intK=ce,e.exports.luaK_jump=K,e.exports.luaK_jumpto=function(e,t){return Y(e,K(e),t)},e.exports.luaK_nil=O,e.exports.luaK_numberK=de,e.exports.luaK_patchclose=function(e,t,n){for(n++;t!==M;t=F(e,t)){let a=e.f.code[t];S(a.opcode===R.OP_JMP&&(0===a.A||a.A>=n)),E.SETARG_A(a,n)}},e.exports.luaK_patchlist=Y,e.exports.luaK_patchtohere=q,e.exports.luaK_posfix=function(e,t,n,a,i){let s=L.expkind;switch(t){case B.OPR_AND:S(n.t===M),pe(e,a),a.f=V(e,a.f,n.f),n.to(a);break;case B.OPR_OR:S(n.f===M),pe(e,a),a.t=V(e,a.t,n.t),n.to(a);break;case B.OPR_CONCAT:{Se(e,a);let t=D(e,a);a.k===s.VRELOCABLE&&t.opcode===R.OP_CONCAT?(S(n.u.info===t.B-1),le(e,n),E.SETARG_B(t,n.u.info),n.k=s.VRELOCABLE,n.u.info=a.u.info):(Ae(e,a),Re(e,R.OP_CONCAT,n,a,i));break}case B.OPR_ADD:case B.OPR_SUB:case B.OPR_MUL:case B.OPR_DIV:case B.OPR_IDIV:case B.OPR_MOD:case B.OPR_POW:case B.OPR_BAND:case B.OPR_BOR:case B.OPR_BXOR:case B.OPR_SHL:case B.OPR_SHR:Ue(t+r,n,a)||Re(e,t+R.OP_ADD,n,a,i);break;case B.OPR_EQ:case B.OPR_LT:case B.OPR_LE:case B.OPR_NE:case B.OPR_GT:case B.OPR_GE:!function(e,t,n,a){let r,i=L.expkind;n.k===i.VK?r=E.RKASK(n.u.info):(S(n.k===i.VNONRELOC),r=n.u.info);let s=Te(e,a);switch(oe(e,n,a),t){case B.OPR_NE:n.u.info=H(e,R.OP_EQ,0,r,s);break;case B.OPR_GT:case B.OPR_GE:{let a=t-B.OPR_NE+R.OP_EQ;n.u.info=H(e,a,1,s,r);break}default:{let a=t-B.OPR_EQ+R.OP_EQ;n.u.info=H(e,a,1,r,s);break}}n.k=i.VJMP}(e,t,n,a)}return n},e.exports.luaK_prefix=function(e,t,n,a){let r=new L.expdesc;switch(r.k=L.expkind.VKINT,r.u.ival=r.u.nval=r.u.info=0,r.t=M,r.f=M,t){case N.OPR_MINUS:case N.OPR_BNOT:if(Ue(t+m,n,r))break;case N.OPR_LEN:!function(e,t,n,a){let r=ye(e,n);le(e,n),n.u.info=Q(e,t,0,r,0),n.k=L.expkind.VRELOCABLE,Ce(e,a)}(e,t+R.OP_UNM,n,a);break;case N.OPR_NOT:!function(e,t){let n=L.expkind;switch(pe(e,t),t.k){case n.VNIL:case n.VFALSE:t.k=n.VTRUE;break;case n.VK:case n.VKFLT:case n.VKINT:case n.VTRUE:t.k=n.VFALSE;break;case n.VJMP:xe(e,t);break;case n.VRELOCABLE:case n.VNONRELOC:be(e,t),le(e,t),t.u.info=Q(e,R.OP_NOT,0,t.u.info,0),t.k=n.VRELOCABLE}{let e=t.f;t.f=t.t,t.t=e}J(e,t.f),J(e,t.t)}(e,n)}},e.exports.luaK_reserveregs=ie,e.exports.luaK_ret=function(e,t,n){Q(e,R.OP_RETURN,t,n+1,0)},e.exports.luaK_self=function(e,t,n){ye(e,t);let a=t.u.info;le(e,t),t.u.info=e.freereg,t.k=L.expkind.VNONRELOC,ie(e,2),Q(e,R.OP_SELF,t.u.info,a,Te(e,n)),le(e,n)},e.exports.luaK_setlist=function(e,t,n,r){let i=(n-1)/E.LFIELDS_PER_FLUSH+1,s=r===a?0:r;S(0!==r&&r<=E.LFIELDS_PER_FLUSH),i<=E.MAXARG_C?Q(e,R.OP_SETLIST,t,s,i):i<=E.MAXARG_Ax?(Q(e,R.OP_SETLIST,t,s,0),ne(e,i)):T.luaX_syntaxerror(e.ls,y("constructor too long",!0)),e.freereg=t+1},e.exports.luaK_setmultret=function(e,t){fe(e,t,a)},e.exports.luaK_setoneret=me,e.exports.luaK_setreturns=fe,e.exports.luaK_storevar=function(e,t,n){let a=L.expkind;switch(t.k){case a.VLOCAL:return le(e,n),void ve(e,n,t.u.info);case a.VUPVAL:{let a=ye(e,n);Q(e,R.OP_SETUPVAL,a,t.u.info,0);break}case a.VINDEXED:{let r=t.u.ind.vt===a.VLOCAL?R.OP_SETTABLE:R.OP_SETTABUP,i=Te(e,n);Q(e,r,t.u.ind.t,t.u.ind.idx,i);break}}le(e,n)},e.exports.luaK_stringK=function(e,t){let n=new C(g,t);return ue(e,n,n)}},498:(e,t,n)=>{"use strict";const{lua_assert:a}=n(502);const r=function(e){let t=e.reader(e.L,e.data);if(null===t)return-1;a(t instanceof Uint8Array,"Should only load binary of array of bytes");let n=t.length;return 0===n?-1:(e.buffer=t,e.off=0,e.n=n-1,e.buffer[e.off++])};e.exports.EOZ=-1,e.exports.luaZ_buffer=function(e){return e.buffer.subarray(0,e.n)},e.exports.luaZ_buffremove=function(e,t){e.n-=t},e.exports.luaZ_fill=r,e.exports.luaZ_read=function(e,t,n,a){for(;a;){if(0===e.n){if(-1===r(e))return a;e.n++,e.off--}let i=a<=e.n?a:e.n;for(let a=0;a<i;a++)t[n++]=e.buffer[e.off++];e.n-=i,0===e.n&&(e.buffer=null),a-=i}return 0},e.exports.luaZ_resetbuffer=function(e){e.n=0},e.exports.luaZ_resizebuffer=function(e,t,n){let a=new Uint8Array(n);t.buffer&&a.set(t.buffer),t.buffer=a},e.exports.MBuffer=class{constructor(){this.buffer=null,this.n=0}},e.exports.ZIO=class{constructor(e,t,n){this.L=e,a("function"==typeof t,"ZIO requires a reader"),this.reader=t,this.data=n,this.n=0,this.buffer=null,this.off=0}zgetc(){return this.n-- >0?this.buffer[this.off++]:r(this)}}},502:(e,t,n)=>{"use strict";const{luai_apicheck:a}=n(254),r=function(e){if(!e)throw Error("assertion failed")};e.exports.lua_assert=r,e.exports.luai_apicheck=a||function(e,t){return r(t)};e.exports.api_check=function(e,t,n){return a(e,t&&n)};e.exports.LUAI_MAXCCALLS=200;e.exports.LUA_MINBUFFER=32;e.exports.luai_nummod=function(e,t,n){let a=t%n;return a*n<0&&(a+=n),a};e.exports.MAX_INT=2147483647;e.exports.MIN_INT=-2147483648},517:(e,t,n)=>{"use strict";const{LUA_MULTRET:a,to_luastring:r}=n(696),{BinOpr:{OPR_ADD:i,OPR_AND:s,OPR_BAND:l,OPR_BOR:o,OPR_BXOR:u,OPR_CONCAT:c,OPR_DIV:d,OPR_EQ:h,OPR_GE:f,OPR_GT:m,OPR_IDIV:p,OPR_LE:_,OPR_LT:g,OPR_MOD:b,OPR_MUL:w,OPR_NE:v,OPR_NOBINOPR:A,OPR_OR:y,OPR_POW:S,OPR_SHL:T,OPR_SHR:x,OPR_SUB:E},UnOpr:{OPR_BNOT:L,OPR_LEN:I,OPR_MINUS:U,OPR_NOT:R,OPR_NOUNOPR:C},NO_JUMP:M,getinstruction:B,luaK_checkstack:N,luaK_codeABC:P,luaK_codeABx:k,luaK_codeAsBx:O,luaK_codek:D,luaK_concat:F,luaK_dischargevars:G,luaK_exp2RK:V,luaK_exp2anyreg:K,luaK_exp2anyregup:H,luaK_exp2nextreg:z,luaK_exp2val:j,luaK_fixline:X,luaK_getlabel:$,luaK_goiffalse:J,luaK_goiftrue:W,luaK_indexed:q,luaK_infix:Y,luaK_intK:Z,luaK_jump:Q,luaK_jumpto:ee,luaK_nil:te,luaK_patchclose:ne,luaK_patchlist:ae,luaK_patchtohere:re,luaK_posfix:ie,luaK_prefix:se,luaK_reserveregs:le,luaK_ret:oe,luaK_self:ue,luaK_setlist:ce,luaK_setmultret:de,luaK_setoneret:he,luaK_setreturns:fe,luaK_storevar:me,luaK_stringK:pe}=n(459),_e=n(179),ge=n(196),be=n(641),{LUAI_MAXCCALLS:we,MAX_INT:ve,lua_assert:Ae}=n(502),ye=n(853),{OpCodesI:{OP_CALL:Se,OP_CLOSURE:Te,OP_FORLOOP:xe,OP_FORPREP:Ee,OP_GETUPVAL:Le,OP_MOVE:Ie,OP_NEWTABLE:Ue,OP_SETTABLE:Re,OP_TAILCALL:Ce,OP_TFORCALL:Me,OP_TFORLOOP:Be,OP_VARARG:Ne},LFIELDS_PER_FLUSH:Pe,SETARG_B:ke,SETARG_C:Oe,SET_OPCODE:De}=n(451),{luaS_eqlngstr:Fe,luaS_new:Ge,luaS_newliteral:Ve}=n(415),Ke=n(420),He=ge.Proto,ze=be.RESERVED,je=function(e){return e===Je.VCALL||e===Je.VVARARG},Xe=function(e,t){return Fe(e,t)};class $e{constructor(){this.previous=null,this.firstlabel=NaN,this.firstgoto=NaN,this.nactvar=NaN,this.upval=NaN,this.isloop=NaN}}const Je={VVOID:0,VNIL:1,VTRUE:2,VFALSE:3,VK:4,VKFLT:5,VKINT:6,VNONRELOC:7,VLOCAL:8,VUPVAL:9,VINDEXED:10,VJMP:11,VRELOCABLE:12,VCALL:13,VVARARG:14};class We{constructor(){this.k=NaN,this.u={ival:NaN,nval:NaN,info:NaN,ind:{idx:NaN,t:NaN,vt:NaN}},this.t=NaN,this.f=NaN}to(e){this.k=e.k,this.u=e.u,this.t=e.t,this.f=e.f}}class qe{constructor(){this.f=null,this.prev=null,this.ls=null,this.bl=null,this.pc=NaN,this.lasttarget=NaN,this.jpc=NaN,this.nk=NaN,this.np=NaN,this.firstlocal=NaN,this.nlocvars=NaN,this.nactvar=NaN,this.nups=NaN,this.freereg=NaN}}class Ye{constructor(){this.idx=NaN}}class Ze{constructor(){this.name=null,this.pc=NaN,this.line=NaN,this.nactvar=NaN}}class Qe{constructor(){this.arr=[],this.n=NaN,this.size=NaN}}const et=function(e,t){e.t.token=0,be.luaX_syntaxerror(e,t)},tt=function(e,t){be.luaX_syntaxerror(e,ye.luaO_pushfstring(e.L,r("%s expected",!0),be.luaX_token2str(e,t)))},nt=function(e,t,n,a){t>n&&function(e,t,n){let a=e.ls.L,i=e.f.linedefined,s=0===i?r("main function",!0):ye.luaO_pushfstring(a,r("function at line %d",!0),i),l=ye.luaO_pushfstring(a,r("too many %s (limit is %d) in %s",!0),n,t,s);be.luaX_syntaxerror(e.ls,l)}(e,n,a)},at=function(e,t){return e.t.token===t&&(be.luaX_next(e),!0)},rt=function(e,t){e.t.token!==t&&tt(e,t)},it=function(e,t){rt(e,t),be.luaX_next(e)},st=function(e,t,n){t||be.luaX_syntaxerror(e,n)},lt=function(e,t,n,a){at(e,t)||(a===e.linenumber?tt(e,t):be.luaX_syntaxerror(e,ye.luaO_pushfstring(e.L,r("%s expected (to close %s at line %d)"),be.luaX_token2str(e,t),be.luaX_token2str(e,n),a)))},ot=function(e){rt(e,ze.TK_NAME);let t=e.t.seminfo.ts;return be.luaX_next(e),t},ut=function(e,t,n){e.f=e.t=M,e.k=t,e.u.info=n},ct=function(e,t,n){ut(t,Je.VK,pe(e.fs,n))},dt=function(e,t){ct(e,t,ot(e))},ht=function(e,t){let n=e.fs,a=e.dyd,i=function(e,t){let n=e.fs,a=n.f;return a.locvars[n.nlocvars]=new ye.LocVar,a.locvars[n.nlocvars].varname=t,n.nlocvars++}(e,t);nt(n,a.actvar.n+1-n.firstlocal,200,r("local variables",!0)),a.actvar.arr[a.actvar.n]=new Ye,a.actvar.arr[a.actvar.n].idx=i,a.actvar.n++},ft=function(e,t){ht(e,be.luaX_newstring(e,r(t,!0)))},mt=function(e,t){let n=e.ls.dyd.actvar.arr[e.firstlocal+t].idx;return Ae(n<e.nlocvars),e.f.locvars[n]},pt=function(e,t){let n=e.fs;for(n.nactvar=n.nactvar+t;t;t--)mt(n,n.nactvar-t).startpc=n.pc},_t=function(e,t,n){let a=e.f;return nt(e,e.nups+1,ge.MAXUPVAL,r("upvalues",!0)),a.upvalues[e.nups]={instack:n.k===Je.VLOCAL,idx:n.u.info,name:t},e.nups++},gt=function(e,t,n,a){if(null===e)ut(n,Je.VVOID,0);else{let r=function(e,t){for(let n=e.nactvar-1;n>=0;n--)if(Xe(t,mt(e,n).varname))return n;return-1}(e,t);if(r>=0)ut(n,Je.VLOCAL,r),a||function(e,t){let n=e.bl;for(;n.nactvar>t;)n=n.previous;n.upval=1}(e,r);else{let a=function(e,t){let n=e.f.upvalues;for(let a=0;a<e.nups;a++)if(Xe(n[a].name,t))return a;return-1}(e,t);if(a<0){if(gt(e.prev,t,n,0),n.k===Je.VVOID)return;a=_t(e,t,n)}ut(n,Je.VUPVAL,a)}}},bt=function(e,t){let n=ot(e),a=e.fs;if(gt(a,n,t,1),t.k===Je.VVOID){let r=new We;gt(a,e.envn,t,1),Ae(t.k!==Je.VVOID),ct(e,r,n),q(a,t,r)}},wt=function(e,t,n,a){let r=e.fs,i=t-n;if(je(a.k))i++,i<0&&(i=0),fe(r,a,i),i>1&&le(r,i-1);else if(a.k!==Je.VVOID&&z(r,a),i>0){let e=r.freereg;le(r,i),te(r,e,i)}n>t&&(e.fs.freereg-=n-t)},vt=function(e){let t=e.L;++t.nCcalls,nt(e.fs,t.nCcalls,we,r("JS levels",!0))},At=function(e){return e.L.nCcalls--},yt=function(e,t,n){let a=e.fs,i=e.dyd.gt,s=i.arr[t];if(Ae(Xe(s.name,n.name)),s.nactvar<n.nactvar){let t=mt(a,s.nactvar).varname,n=ye.luaO_pushfstring(e.L,r("<goto %s> at line %d jumps into the scope of local '%s'"),s.name.getstr(),s.line,t.getstr());et(e,n)}ae(a,s.pc,n.pc);for(let e=t;e<i.n-1;e++)i.arr[e]=i.arr[e+1];i.n--},St=function(e,t){let n=e.fs.bl,a=e.dyd,r=a.gt.arr[t];for(let i=n.firstlabel;i<a.label.n;i++){let s=a.label.arr[i];if(Xe(s.name,r.name))return r.nactvar>s.nactvar&&(n.upval||a.label.n>n.firstlabel)&&ne(e.fs,r.pc,s.nactvar),yt(e,t,s),!0}return!1},Tt=function(e,t,n,a,r){let i=t.n;return t.arr[i]=new Ze,t.arr[i].name=n,t.arr[i].line=a,t.arr[i].nactvar=e.fs.nactvar,t.arr[i].pc=r,t.n=i+1,i},xt=function(e,t){let n=e.dyd.gt,a=e.fs.bl.firstgoto;for(;a<n.n;)Xe(n.arr[a].name,t.name)?yt(e,a,t):a++},Et=function(e,t,n){t.isloop=n,t.nactvar=e.nactvar,t.firstlabel=e.ls.dyd.label.n,t.firstgoto=e.ls.dyd.gt.n,t.upval=0,t.previous=e.bl,e.bl=t,Ae(e.freereg===e.nactvar)},Lt=function(e,t,n){t.prev=e.fs,t.ls=e,e.fs=t,t.pc=0,t.lasttarget=0,t.jpc=M,t.freereg=0,t.nk=0,t.np=0,t.nups=0,t.nlocvars=0,t.nactvar=0,t.firstlocal=e.dyd.actvar.n,t.bl=null;let a=t.f;a.source=e.source,a.maxstacksize=2,Et(t,n,!1)},It=function(e){let t=e.bl,n=e.ls;if(t.previous&&t.upval){let n=Q(e);ne(e,n,t.nactvar),re(e,n)}t.isloop&&function(e){let t=Ve(e.L,"break"),n=Tt(e,e.dyd.label,t,0,e.fs.pc);xt(e,e.dyd.label.arr[n])}(n),e.bl=t.previous,function(e,t){for(e.ls.dyd.actvar.n-=e.nactvar-t;e.nactvar>t;)mt(e,--e.nactvar).endpc=e.pc}(e,t.nactvar),Ae(t.nactvar===e.nactvar),e.freereg=e.nactvar,n.dyd.label.n=t.firstlabel,t.previous?function(e,t){let n=t.firstgoto,a=e.ls.dyd.gt;for(;n<a.n;){let r=a.arr[n];r.nactvar>t.nactvar&&(t.upval&&ne(e,r.pc,t.nactvar),r.nactvar=t.nactvar),St(e.ls,n)||n++}}(e,t):t.firstgoto<n.dyd.gt.n&&function(e,t){let n=be.isreserved(t.name)?"<%s> at line %d not inside a loop":"no visible label '%s' for <goto> at line %d";n=ye.luaO_pushfstring(e.L,r(n),t.name.getstr(),t.line),et(e,n)}(n,n.dyd.gt.arr[t.firstgoto])},Ut=function(e){let t=e.fs;oe(t,0,0),It(t),Ae(null===t.bl),e.fs=t.prev},Rt=function(e,t){switch(e.t.token){case ze.TK_ELSE:case ze.TK_ELSEIF:case ze.TK_END:case ze.TK_EOS:return!0;case ze.TK_UNTIL:return t;default:return!1}},Ct=function(e){for(;!Rt(e,1);){if(e.t.token===ze.TK_RETURN)return void rn(e);rn(e)}},Mt=function(e,t){let n=e.fs,a=new We;H(n,t),be.luaX_next(e),dt(e,a),q(n,t,a)},Bt=function(e,t){be.luaX_next(e),Xt(e,t),j(e.fs,t),it(e,93)};class Nt{constructor(){this.v=new We,this.t=new We,this.nh=NaN,this.na=NaN,this.tostore=NaN}}const Pt=function(e,t){let n=e.fs,a=e.fs.freereg,i=new We,s=new We;e.t.token===ze.TK_NAME?(nt(n,t.nh,ve,r("items in a constructor",!0)),dt(e,i)):Bt(e,i),t.nh++,it(e,61);let l=V(n,i);Xt(e,s),P(n,Re,t.t.u.info,l,V(n,s)),n.freereg=a},kt=function(e,t){t.v.k!==Je.VVOID&&(z(e,t.v),t.v.k=Je.VVOID,t.tostore===Pe&&(ce(e,t.t.u.info,t.na,t.tostore),t.tostore=0))},Ot=function(e,t){Xt(e,t.v),nt(e.fs,t.na,ve,r("items in a constructor",!0)),t.na++,t.tostore++},Dt=function(e,t){switch(e.t.token){case ze.TK_NAME:61!==be.luaX_lookahead(e)?Ot(e,t):Pt(e,t);break;case 91:Pt(e,t);break;default:Ot(e,t)}},Ft=function(e,t){let n=e.fs,r=e.linenumber,i=P(n,Ue,0,0,0),s=new Nt;s.na=s.nh=s.tostore=0,s.t=t,ut(t,Je.VRELOCABLE,i),ut(s.v,Je.VVOID,0),z(e.fs,t),it(e,123);do{if(Ae(s.v.k===Je.VVOID||s.tostore>0),125===e.t.token)break;kt(n,s),Dt(e,s)}while(at(e,44)||at(e,59));lt(e,125,123,r),function(e,t){0!==t.tostore&&(je(t.v.k)?(de(e,t.v),ce(e,t.t.u.info,t.na,a),t.na--):(t.v.k!==Je.VVOID&&z(e,t.v),ce(e,t.t.u.info,t.na,t.tostore)))}(n,s),ke(n.f.code[i],ye.luaO_int2fb(s.na)),Oe(n.f.code[i],ye.luaO_int2fb(s.nh))},Gt=function(e,t,n,a){let i=new qe,s=new $e;i.f=function(e){let t=e.L,n=new He(t),a=e.fs;return a.f.p[a.np++]=n,n}(e),i.f.linedefined=a,Lt(e,i,s),it(e,40),n&&(ft(e,"self"),pt(e,1)),function(e){let t=e.fs,n=t.f,a=0;if(n.is_vararg=!1,41!==e.t.token)do{switch(e.t.token){case ze.TK_NAME:ht(e,ot(e)),a++;break;case ze.TK_DOTS:be.luaX_next(e),n.is_vararg=!0;break;default:be.luaX_syntaxerror(e,r("<name> or '...' expected",!0))}}while(!n.is_vararg&&at(e,44));pt(e,a),n.numparams=t.nactvar,le(t,t.nactvar)}(e),it(e,41),Ct(e),i.f.lastlinedefined=e.linenumber,lt(e,ze.TK_END,ze.TK_FUNCTION,a),function(e,t){let n=e.fs.prev;ut(t,Je.VRELOCABLE,k(n,Te,0,n.np-1)),z(n,t)}(e,t),Ut(e)},Vt=function(e,t){let n=1;for(Xt(e,t);at(e,44);)z(e.fs,t),Xt(e,t),n++;return n},Kt=function(e,t,n){let i,s=e.fs,l=new We;switch(e.t.token){case 40:be.luaX_next(e),41===e.t.token?l.k=Je.VVOID:(Vt(e,l),de(s,l)),lt(e,41,40,n);break;case 123:Ft(e,l);break;case ze.TK_STRING:ct(e,l,e.t.seminfo.ts),be.luaX_next(e);break;default:be.luaX_syntaxerror(e,r("function arguments expected",!0))}Ae(t.k===Je.VNONRELOC);let o=t.u.info;je(l.k)?i=a:(l.k!==Je.VVOID&&z(s,l),i=s.freereg-(o+1)),ut(t,Je.VCALL,P(s,Se,o,i+1,2)),X(s,n),s.freereg=o+1},Ht=function(e,t){let n=e.fs,a=e.linenumber;for(!function(e,t){switch(e.t.token){case 40:{let n=e.linenumber;return be.luaX_next(e),Xt(e,t),lt(e,41,40,n),void G(e.fs,t)}case ze.TK_NAME:return void bt(e,t);default:be.luaX_syntaxerror(e,r("unexpected symbol",!0))}}(e,t);;)switch(e.t.token){case 46:Mt(e,t);break;case 91:{let a=new We;H(n,t),Bt(e,a),q(n,t,a);break}case 58:{let r=new We;be.luaX_next(e),dt(e,r),ue(n,t,r),Kt(e,t,a);break}case 40:case ze.TK_STRING:case 123:z(n,t),Kt(e,t,a);break;default:return}},zt=[{left:10,right:10},{left:10,right:10},{left:11,right:11},{left:11,right:11},{left:14,right:13},{left:11,right:11},{left:11,right:11},{left:6,right:6},{left:4,right:4},{left:5,right:5},{left:7,right:7},{left:7,right:7},{left:9,right:8},{left:3,right:3},{left:3,right:3},{left:3,right:3},{left:3,right:3},{left:3,right:3},{left:3,right:3},{left:2,right:2},{left:1,right:1}],jt=function(e,t,n){vt(e);let a=function(e){switch(e){case ze.TK_NOT:return R;case 45:return U;case 126:return L;case 35:return I;default:return C}}(e.t.token);if(a!==C){let n=e.linenumber;be.luaX_next(e),jt(e,t,12),se(e.fs,a,t,n)}else!function(e,t){switch(e.t.token){case ze.TK_FLT:ut(t,Je.VKFLT,0),t.u.nval=e.t.seminfo.r;break;case ze.TK_INT:ut(t,Je.VKINT,0),t.u.ival=e.t.seminfo.i;break;case ze.TK_STRING:ct(e,t,e.t.seminfo.ts);break;case ze.TK_NIL:ut(t,Je.VNIL,0);break;case ze.TK_TRUE:ut(t,Je.VTRUE,0);break;case ze.TK_FALSE:ut(t,Je.VFALSE,0);break;case ze.TK_DOTS:{let n=e.fs;st(e,n.f.is_vararg,r("cannot use '...' outside a vararg function",!0)),ut(t,Je.VVARARG,P(n,Ne,0,1,0));break}case 123:return void Ft(e,t);case ze.TK_FUNCTION:return be.luaX_next(e),void Gt(e,t,0,e.linenumber);default:return void Ht(e,t)}be.luaX_next(e)}(e,t);let M=function(e){switch(e){case 43:return i;case 45:return E;case 42:return w;case 37:return b;case 94:return S;case 47:return d;case ze.TK_IDIV:return p;case 38:return l;case 124:return o;case 126:return u;case ze.TK_SHL:return T;case ze.TK_SHR:return x;case ze.TK_CONCAT:return c;case ze.TK_NE:return v;case ze.TK_EQ:return h;case 60:return g;case ze.TK_LE:return _;case 62:return m;case ze.TK_GE:return f;case ze.TK_AND:return s;case ze.TK_OR:return y;default:return A}}(e.t.token);for(;M!==A&&zt[M].left>n;){let n=new We,a=e.linenumber;be.luaX_next(e),Y(e.fs,M,t);let r=jt(e,n,zt[M].right);ie(e.fs,M,t,n,a),M=r}return At(e),M},Xt=function(e,t){jt(e,t,0)},$t=function(e){let t=e.fs,n=new $e;Et(t,n,0),Ct(e),It(t)};class Jt{constructor(){this.prev=null,this.v=new We}}const Wt=function(e,t,n){let a=new We;var i;if(st(e,(i=t.v.k,Je.VLOCAL<=i&&i<=Je.VINDEXED),r("syntax error",!0)),at(e,44)){let a=new Jt;a.prev=t,Ht(e,a.v),a.v.k!==Je.VINDEXED&&function(e,t,n){let a=e.fs,r=a.freereg,i=!1;for(;t;t=t.prev)t.v.k===Je.VINDEXED&&(t.v.u.ind.vt===n.k&&t.v.u.ind.t===n.u.info&&(i=!0,t.v.u.ind.vt=Je.VLOCAL,t.v.u.ind.t=r),n.k===Je.VLOCAL&&t.v.u.ind.idx===n.u.info&&(i=!0,t.v.u.ind.idx=r));if(i){let e=n.k===Je.VLOCAL?Ie:Le;P(a,e,r,n.u.info,0),le(a,1)}}(e,t,a.v),nt(e.fs,n+e.L.nCcalls,we,r("JS levels",!0)),Wt(e,a,n+1)}else{it(e,61);let r=Vt(e,a);if(r===n)return he(e.fs,a),void me(e.fs,t.v,a);wt(e,n,r,a)}ut(a,Je.VNONRELOC,e.fs.freereg-1),me(e.fs,t.v,a)},qt=function(e){let t=new We;return Xt(e,t),t.k===Je.VNIL&&(t.k=Je.VFALSE),W(e.fs,t),t.f},Yt=function(e,t){let n,a=e.linenumber;at(e,ze.TK_GOTO)?n=ot(e):(be.luaX_next(e),n=Ve(e.L,"break"));let r=Tt(e,e.dyd.gt,n,a,t);St(e,r)},Zt=function(e,t,n){let a,i=e.fs,s=e.dyd.label;!function(e,t,n){for(let a=e.bl.firstlabel;a<t.n;a++)if(Xe(n,t.arr[a].name)){let i=ye.luaO_pushfstring(e.ls.L,r("label '%s' already defined on line %d",!0),n.getstr(),t.arr[a].line);et(e.ls,i)}}(i,s,t),it(e,ze.TK_DBCOLON),a=Tt(e,s,t,n,$(i)),function(e){for(;59===e.t.token||e.t.token===ze.TK_DBCOLON;)rn(e)}(e),Rt(e,0)&&(s.arr[a].nactvar=i.bl.nactvar),xt(e,s.arr[a])},Qt=function(e){let t=new We;return Xt(e,t),z(e.fs,t),Ae(t.k===Je.VNONRELOC),t.u.info},en=function(e,t,n,a,r){let i,s=new $e,l=e.fs;pt(e,3),it(e,ze.TK_DO);let o=r?O(l,Ee,t,M):Q(l);Et(l,s,0),pt(e,a),le(l,a),$t(e),It(l),re(l,o),r?i=O(l,xe,t,M):(P(l,Me,t,0,a),X(l,n),i=O(l,Be,t+2,M)),ae(l,i,o+1),X(l,n)},tn=function(e,t){let n=e.fs,a=new $e;Et(n,a,1),be.luaX_next(e);let i=ot(e);switch(e.t.token){case 61:!function(e,t,n){let a=e.fs,r=a.freereg;ft(e,"(for index)"),ft(e,"(for limit)"),ft(e,"(for step)"),ht(e,t),it(e,61),Qt(e),it(e,44),Qt(e),at(e,44)?Qt(e):(D(a,a.freereg,Z(a,1)),le(a,1)),en(e,r,n,1,1)}(e,i,t);break;case 44:case ze.TK_IN:!function(e,t){let n=e.fs,a=new We,r=4,i=n.freereg;for(ft(e,"(for generator)"),ft(e,"(for state)"),ft(e,"(for control)"),ht(e,t);at(e,44);)ht(e,ot(e)),r++;it(e,ze.TK_IN);let s=e.linenumber;wt(e,3,Vt(e,a),a),N(n,3),en(e,i,s,r-3,0)}(e,i);break;default:be.luaX_syntaxerror(e,r("'=' or 'in' expected",!0))}lt(e,ze.TK_END,ze.TK_FOR,t),It(n)},nn=function(e,t){let n,a=new $e,r=e.fs,i=new We;if(be.luaX_next(e),Xt(e,i),it(e,ze.TK_THEN),e.t.token===ze.TK_GOTO||e.t.token===ze.TK_BREAK){for(J(e.fs,i),Et(r,a,!1),Yt(e,i.t);at(e,59););if(Rt(e,0))return It(r),t;n=Q(r)}else W(e.fs,i),Et(r,a,!1),n=i.f;return Ct(e),It(r),e.t.token!==ze.TK_ELSE&&e.t.token!==ze.TK_ELSEIF||(t=F(r,t,Q(r))),re(r,n),t},an=function(e,t){let n=new We,a=new We;be.luaX_next(e);let r=function(e,t){let n=0;for(bt(e,t);46===e.t.token;)Mt(e,t);return 58===e.t.token&&(n=1,Mt(e,t)),n}(e,n);Gt(e,a,r,t),me(e.fs,n,a),X(e.fs,t)},rn=function(e){let t=e.linenumber;switch(vt(e),e.t.token){case 59:be.luaX_next(e);break;case ze.TK_IF:!function(e,t){let n=e.fs,a=M;for(a=nn(e,a);e.t.token===ze.TK_ELSEIF;)a=nn(e,a);at(e,ze.TK_ELSE)&&$t(e),lt(e,ze.TK_END,ze.TK_IF,t),re(n,a)}(e,t);break;case ze.TK_WHILE:!function(e,t){let n=e.fs,a=new $e;be.luaX_next(e);let r=$(n),i=qt(e);Et(n,a,1),it(e,ze.TK_DO),$t(e),ee(n,r),lt(e,ze.TK_END,ze.TK_WHILE,t),It(n),re(n,i)}(e,t);break;case ze.TK_DO:be.luaX_next(e),$t(e),lt(e,ze.TK_END,ze.TK_DO,t);break;case ze.TK_FOR:tn(e,t);break;case ze.TK_REPEAT:!function(e,t){let n=e.fs,a=$(n),r=new $e,i=new $e;Et(n,r,1),Et(n,i,0),be.luaX_next(e),Ct(e),lt(e,ze.TK_UNTIL,ze.TK_REPEAT,t);let s=qt(e);i.upval&&ne(n,s,i.nactvar),It(n),ae(n,s,a),It(n)}(e,t);break;case ze.TK_FUNCTION:an(e,t);break;case ze.TK_LOCAL:be.luaX_next(e),at(e,ze.TK_FUNCTION)?function(e){let t=new We,n=e.fs;ht(e,ot(e)),pt(e,1),Gt(e,t,0,e.linenumber),mt(n,t.u.info).startpc=n.pc}(e):function(e){let t,n=0,a=new We;do{ht(e,ot(e)),n++}while(at(e,44));at(e,61)?t=Vt(e,a):(a.k=Je.VVOID,t=0),wt(e,n,t,a),pt(e,n)}(e);break;case ze.TK_DBCOLON:be.luaX_next(e),Zt(e,ot(e),t);break;case ze.TK_RETURN:be.luaX_next(e),function(e){let t,n,r=e.fs,i=new We;Rt(e,1)||59===e.t.token?t=n=0:(n=Vt(e,i),je(i.k)?(de(r,i),i.k===Je.VCALL&&1===n&&(De(B(r,i),Ce),Ae(B(r,i).A===r.nactvar)),t=r.nactvar,n=a):1===n?t=K(r,i):(z(r,i),t=r.nactvar,Ae(n===r.freereg-t))),oe(r,t,n),at(e,59)}(e);break;case ze.TK_BREAK:case ze.TK_GOTO:Yt(e,Q(e.fs));break;default:!function(e){let t=e.fs,n=new Jt;Ht(e,n.v),61===e.t.token||44===e.t.token?(n.prev=null,Wt(e,n,1)):(st(e,n.v.k===Je.VCALL,r("syntax error",!0)),Oe(B(t,n.v),1))}(e)}Ae(e.fs.f.maxstacksize>=e.fs.freereg&&e.fs.freereg>=e.fs.nactvar),e.fs.freereg=e.fs.nactvar,At(e)};e.exports.Dyndata=class{constructor(){this.actvar={arr:[],n:NaN,size:NaN},this.gt=new Qe,this.label=new Qe}},e.exports.expkind=Je,e.exports.expdesc=We,e.exports.luaY_parser=function(e,t,n,a,r,i){let s=new be.LexState,l=new qe,o=ge.luaF_newLclosure(e,1);return _e.luaD_inctop(e),e.stack[e.top-1].setclLvalue(o),s.h=Ke.luaH_new(e),_e.luaD_inctop(e),e.stack[e.top-1].sethvalue(s.h),l.f=o.p=new He(e),l.f.source=Ge(e,r),s.buff=n,s.dyd=a,a.actvar.n=a.gt.n=a.label.n=0,be.luaX_setinput(e,s,t,l.f.source,i),function(e,t){let n=new $e,a=new We;Lt(e,t,n),t.f.is_vararg=!0,ut(a,Je.VLOCAL,0),_t(t,e.envn,a),be.luaX_next(e),Ct(e),rt(e,ze.TK_EOS),Ut(e)}(s,l),Ae(!l.prev&&1===l.nups&&!s.fs),Ae(0===a.actvar.n&&0===a.gt.n&&0===a.label.n),delete e.stack[--e.top],o},e.exports.vkisinreg=function(e){return e===Je.VNONRELOC||e===Je.VLOCAL}},637:(e,t,n)=>{"use strict";const{luastring_of:a}=n(696),r=a(0,0,0,0,0,0,0,0,0,0,8,8,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,22,22,22,22,22,22,22,22,22,22,4,4,4,4,4,4,4,21,21,21,21,21,21,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,5,4,21,21,21,21,21,21,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);e.exports.lisdigit=function(e){return!!(2&r[e+1])},e.exports.lislalnum=function(e){return!!(3&r[e+1])},e.exports.lislalpha=function(e){return!!(1&r[e+1])},e.exports.lisprint=function(e){return!!(4&r[e+1])},e.exports.lisspace=function(e){return!!(8&r[e+1])},e.exports.lisxdigit=function(e){return!!(16&r[e+1])}},641:(e,t,n)=>{"use strict";const{constant_types:{LUA_TBOOLEAN:a,LUA_TLNGSTR:r},thread_status:{LUA_ERRSYNTAX:i},to_luastring:s}=n(696),{LUA_MINBUFFER:l,MAX_INT:o,lua_assert:u}=n(502),c=n(399),d=n(179),{lisdigit:h,lislalnum:f,lislalpha:m,lisspace:p,lisxdigit:_}=n(637),g=n(853),{luaS_bless:b,luaS_hash:w,luaS_hashlongstr:v,luaS_new:A}=n(415),y=n(420),{EOZ:S,luaZ_buffer:T,luaZ_buffremove:x,luaZ_resetbuffer:E,luaZ_resizebuffer:L}=n(498),I=257,U=s("_ENV",!0),R=289,C=290,M=293,B={TK_AND:257,TK_BREAK:258,TK_DO:259,TK_ELSE:260,TK_ELSEIF:261,TK_END:262,TK_FALSE:263,TK_FOR:264,TK_FUNCTION:265,TK_GOTO:266,TK_IF:267,TK_IN:268,TK_LOCAL:269,TK_NIL:270,TK_NOT:271,TK_OR:272,TK_REPEAT:273,TK_RETURN:274,TK_THEN:275,TK_TRUE:276,TK_UNTIL:277,TK_WHILE:278,TK_IDIV:279,TK_CONCAT:280,TK_DOTS:281,TK_EQ:282,TK_GE:283,TK_LE:284,TK_NE:285,TK_SHL:286,TK_SHR:287,TK_DBCOLON:288,TK_EOS:R,TK_FLT:C,TK_INT:291,TK_NAME:292,TK_STRING:M},N=["and","break","do","else","elseif","end","false","for","function","goto","if","in","local","nil","not","or","repeat","return","then","true","until","while","//","..","...","==",">=","<=","~=","<<",">>","::","<eof>","<number>","<integer>","<name>","<string>"].map((e,t)=>s(e));class P{constructor(){this.r=NaN,this.i=NaN,this.ts=null}}class k{constructor(){this.token=NaN,this.seminfo=new P}}const O=function(e,t){let n=e.buff;if(n.n+1>n.buffer.length){n.buffer.length>=o/2&&J(e,s("lexical element too long",!0),0);let t=2*n.buffer.length;L(e.L,n,t)}n.buffer[n.n++]=t<0?255+t+1:t},D=function(e,t){if(t<I)return g.luaO_pushfstring(e.L,s("'%c'",!0),t);{let n=N[t-I];return t<R?g.luaO_pushfstring(e.L,s("'%s'",!0),n):n}},F=function(e){return 10===e.current||13===e.current},G=function(e){e.current=e.z.zgetc()},V=function(e){O(e,e.current),G(e)},K=new g.TValue(a,!0),H=function(e,t){let n=e.L,a=A(n,t),i=e.h.strong.get(v(a));if(i)a=i.key.tsvalue();else{let t=new g.TValue(r,a);y.luaH_setfrom(n,e.h,t,K)}return a},z=function(e){let t=e.current;u(F(e)),G(e),F(e)&&e.current!==t&&G(e),++e.linenumber>=o&&J(e,s("chunk has too many lines",!0),0)},j=function(e,t){return e.current===t&&(G(e),!0)},X=function(e,t){return(e.current===t[0].charCodeAt(0)||e.current===t[1].charCodeAt(0))&&(V(e),!0)},$=function(e,t){let n="Ee",a=e.current;for(u(h(e.current)),V(e),48===a&&X(e,"xX")&&(n="Pp");;)if(X(e,n)&&X(e,"-+"),_(e.current))V(e);else{if(46!==e.current)break;V(e)}let r=new g.TValue;return 0===g.luaO_str2num(T(e.buff),r)&&J(e,s("malformed number",!0),C),r.ttisinteger()?(t.i=r.value,291):(u(r.ttisfloat()),t.r=r.value,C)},J=function(e,t,n){t=c.luaG_addinfo(e.L,t,e.source,e.linenumber),n&&g.luaO_pushfstring(e.L,s("%s near %s"),t,function(e,t){switch(t){case 292:case M:case C:case 291:return g.luaO_pushfstring(e.L,s("'%s'",!0),T(e.buff));default:return D(e,t)}}(e,n)),d.luaD_throw(e.L,i)},W=function(e){let t=0,n=e.current;for(u(91===n||93===n),V(e);61===e.current;)V(e),t++;return e.current===n?t:-t-1},q=function(e,t,n){let a=e.linenumber;V(e),F(e)&&z(e);let r=!1;for(;!r;)switch(e.current){case S:J(e,s(`unfinished long ${t?"string":"comment"} (starting at line ${a})`),R);break;case 93:W(e)===n&&(V(e),r=!0);break;case 10:case 13:O(e,10),z(e),t||E(e.buff);break;default:t?V(e):G(e)}t&&(t.ts=H(e,e.buff.buffer.subarray(2+n,e.buff.n-(2+n))))},Y=function(e,t,n){t||(e.current!==S&&V(e),J(e,n,M))},Z=function(e){return V(e),Y(e,_(e.current),s("hexadecimal digit expected",!0)),g.luaO_hexavalue(e.current)},Q=function(e){let t=Z(e);return t=(t<<4)+Z(e),x(e.buff,2),t},ee=function(e){let t=new Uint8Array(g.UTF8BUFFSZ),n=g.luaO_utf8esc(t,function(e){let t=4;V(e),Y(e,123===e.current,s("missing '{'",!0));let n=Z(e);for(V(e);_(e.current);)t++,n=(n<<4)+g.luaO_hexavalue(e.current),Y(e,n<=1114111,s("UTF-8 value too large",!0)),V(e);return Y(e,125===e.current,s("missing '}'",!0)),G(e),x(e.buff,t),n}(e));for(;n>0;n--)O(e,t[g.UTF8BUFFSZ-n])},te=function(e){let t,n=0;for(t=0;t<3&&h(e.current);t++)n=10*n+e.current-48,V(e);return Y(e,n<=255,s("decimal escape too large",!0)),x(e.buff,t),n},ne=function(e,t,n){for(V(e);e.current!==t;)switch(e.current){case S:J(e,s("unfinished string",!0),R);break;case 10:case 13:J(e,s("unfinished string",!0),M);break;case 92:{let t,n;switch(V(e),e.current){case 97:n=7,t="read_save";break;case 98:n=8,t="read_save";break;case 102:n=12,t="read_save";break;case 110:n=10,t="read_save";break;case 114:n=13,t="read_save";break;case 116:n=9,t="read_save";break;case 118:n=11,t="read_save";break;case 120:n=Q(e),t="read_save";break;case 117:ee(e),t="no_save";break;case 10:case 13:z(e),n=10,t="only_save";break;case 92:case 34:case 39:n=e.current,t="read_save";break;case S:t="no_save";break;case 122:for(x(e.buff,1),G(e);p(e.current);)F(e)?z(e):G(e);t="no_save";break;default:Y(e,h(e.current),s("invalid escape sequence",!0)),n=te(e),t="only_save"}"read_save"===t&&G(e),"read_save"!==t&&"only_save"!==t||(x(e.buff,1),O(e,n));break}default:V(e)}V(e),n.ts=H(e,e.buff.buffer.subarray(1,e.buff.n-1))},ae=Object.create(null);N.forEach((e,t)=>ae[w(e)]=t);const re=function(e,t){for(E(e.buff);;)switch(u("number"==typeof e.current),e.current){case 10:case 13:z(e);break;case 32:case 12:case 9:case 11:G(e);break;case 45:if(G(e),45!==e.current)return 45;if(G(e),91===e.current){let t=W(e);if(E(e.buff),t>=0){q(e,null,t),E(e.buff);break}}for(;!F(e)&&e.current!==S;)G(e);break;case 91:{let n=W(e);return n>=0?(q(e,t,n),M):(-1!==n&&J(e,s("invalid long string delimiter",!0),M),91)}case 61:return G(e),j(e,61)?282:61;case 60:return G(e),j(e,61)?284:j(e,60)?286:60;case 62:return G(e),j(e,61)?283:j(e,62)?287:62;case 47:return G(e),j(e,47)?279:47;case 126:return G(e),j(e,61)?285:126;case 58:return G(e),j(e,58)?288:58;case 34:case 39:return ne(e,e.current,t),M;case 46:return V(e),j(e,46)?j(e,46)?281:280:h(e.current)?$(e,t):46;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return $(e,t);case S:return R;default:if(m(e.current)){do{V(e)}while(f(e.current));let n=H(e,T(e.buff));t.ts=n;let a=ae[v(n)];return void 0!==a&&a<=22?a+I:292}{let t=e.current;return G(e),t}}};e.exports.FIRST_RESERVED=I,e.exports.LUA_ENV=U,e.exports.LexState=class{constructor(){this.current=NaN,this.linenumber=NaN,this.lastline=NaN,this.t=new k,this.lookahead=new k,this.fs=null,this.L=null,this.z=null,this.buff=null,this.h=null,this.dyd=null,this.source=null,this.envn=null}},e.exports.RESERVED=B,e.exports.isreserved=function(e){let t=ae[v(e)];return void 0!==t&&t<=22},e.exports.luaX_lookahead=function(e){return u(e.lookahead.token===R),e.lookahead.token=re(e,e.lookahead.seminfo),e.lookahead.token},e.exports.luaX_newstring=H,e.exports.luaX_next=function(e){e.lastline=e.linenumber,e.lookahead.token!==R?(e.t.token=e.lookahead.token,e.t.seminfo.i=e.lookahead.seminfo.i,e.t.seminfo.r=e.lookahead.seminfo.r,e.t.seminfo.ts=e.lookahead.seminfo.ts,e.lookahead.token=R):e.t.token=re(e,e.t.seminfo)},e.exports.luaX_setinput=function(e,t,n,a,r){t.t={token:0,seminfo:new P},t.L=e,t.current=r,t.lookahead={token:R,seminfo:new P},t.z=n,t.fs=null,t.linenumber=1,t.lastline=1,t.source=a,t.envn=b(e,U),L(e,t.buff,l)},e.exports.luaX_syntaxerror=function(e,t){J(e,t,e.t.token)},e.exports.luaX_token2str=D,e.exports.luaX_tokens=N},660:(e,t,n)=>{"use strict";const{LUA_MULTRET:a,LUA_OPBNOT:r,LUA_OPEQ:i,LUA_OPLE:s,LUA_OPLT:l,LUA_OPUNM:o,LUA_REGISTRYINDEX:u,LUA_RIDX_GLOBALS:c,LUA_VERSION_NUM:d,constant_types:{LUA_NUMTAGS:h,LUA_TBOOLEAN:f,LUA_TCCL:m,LUA_TFUNCTION:p,LUA_TLCF:_,LUA_TLCL:g,LUA_TLIGHTUSERDATA:b,LUA_TLNGSTR:w,LUA_TNIL:v,LUA_TNONE:A,LUA_TNUMFLT:y,LUA_TNUMINT:S,LUA_TSHRSTR:T,LUA_TTABLE:x,LUA_TTHREAD:E,LUA_TUSERDATA:L},thread_status:{LUA_OK:I},from_userstring:U,to_luastring:R}=n(696),{api_check:C}=n(502),M=n(399),B=n(179),{luaU_dump:N}=n(940),P=n(196),k=n(853),O=n(809),{luaS_bless:D,luaS_new:F,luaS_newliteral:G}=n(415),V=n(917),{LUAI_MAXSTACK:K}=n(254),H=n(371),z=n(420),{ZIO:j}=n(498),X=k.TValue,$=k.CClosure,J=function(e){e.top++,C(e,e.top<=e.ci.top,"stack overflow")},W=function(e,t){C(e,t<e.top-e.ci.funcOff,"not enough elements in the stack")},q=function(e){if(!e)throw TypeError("invalid argument")},Y=function(e){q("number"==typeof e&&(0|e)===e)},Z=function(e){return e!==k.luaO_nilobject},Q=function(e,t){let n=e.ci;if(t>0){let a=n.funcOff+t;return C(e,t<=n.top-(n.funcOff+1),"unacceptable index"),a>=e.top?k.luaO_nilobject:e.stack[a]}return t>u?(C(e,0!==t&&-t<=e.top,"invalid index"),e.stack[e.top+t]):t===u?e.l_G.l_registry:(C(e,(t=u-t)<=P.MAXUPVAL+1,"upvalue index too large"),n.func.ttislcf()?k.luaO_nilobject:t<=n.func.value.nupvalues?n.func.value.upvalue[t-1]:k.luaO_nilobject)},ee=function(e,t){let n=e.ci;if(t>0){let a=n.funcOff+t;return C(e,t<=n.top-(n.funcOff+1),"unacceptable index"),a>=e.top?null:a}if(t>u)return C(e,0!==t&&-t<=e.top,"invalid index"),e.top+t;throw Error("attempt to use pseudo-index")},te=function(e,t){let n,a=e.ci.funcOff;t>=0?(C(e,t<=e.stack_last-(a+1),"new top too large"),n=a+1+t):(C(e,-(t+1)<=e.top-(a+1),"invalid new top"),n=e.top+t+1),B.adjust_top(e,n)},ne=function(e,t){te(e,-t-1)},ae=function(e,t,n){for(;t<n;t++,n--){let a=e.stack[t],r=new X(a.type,a.value);k.setobjs2s(e,t,n),k.setobj2s(e,n,r)}},re=function(e,t,n){let a=e.top-1,r=ee(e,t),i=e.stack[r];C(e,Z(i)&&t>u,"index not in the stack"),C(e,(n>=0?n:-n)<=a-r+1,"invalid 'n'");let s=n>=0?a-n:r-n-1;ae(e,r,s),ae(e,s+1,e.top-1),ae(e,r,e.top-1)},ie=function(e,t,n){let a=Q(e,t);Q(e,n).setfrom(a)},se=function(e,t,n){if(q("function"==typeof t),Y(n),0===n)e.stack[e.top]=new X(_,t);else{W(e,n),C(e,n<=P.MAXUPVAL,"upvalue index too large");let a=new $(e,t,n);for(let t=0;t<n;t++)a.upvalue[t].setfrom(e.stack[e.top-n+t]);for(let t=1;t<n;t++)delete e.stack[--e.top];n>0&&--e.top,e.stack[e.top].setclCvalue(a)}J(e)},le=se,oe=function(e,t){se(e,t,0)},ue=oe,ce=function(e,t,n){let a=F(e,U(n));W(e,1),k.pushsvalue2s(e,a),C(e,e.top<=e.ci.top,"stack overflow"),H.settable(e,t,e.stack[e.top-1],e.stack[e.top-2]),delete e.stack[--e.top],delete e.stack[--e.top]},de=function(e,t){ce(e,z.luaH_getint(e.l_G.l_registry.value,c),t)},he=function(e,t,n){let a=F(e,U(n));return k.pushsvalue2s(e,a),C(e,e.top<=e.ci.top,"stack overflow"),H.luaV_gettable(e,t,e.stack[e.top-1],e.top-1),e.stack[e.top-1].ttnov()},fe=function(e,t,n){let a=Q(e,t);return Y(n),C(e,a.ttistable(),"table expected"),k.pushobj2s(e,z.luaH_getint(a.value,n)),C(e,e.top<=e.ci.top,"stack overflow"),e.stack[e.top-1].ttnov()},me=function(e,t,n){let a=new k.TValue(x,z.luaH_new(e));e.stack[e.top]=a,J(e)},pe=function(e,t,n){switch(Y(n),t.ttype()){case m:{let e=t.value;return 1<=n&&n<=e.nupvalues?{name:R("",!0),val:e.upvalue[n-1]}:null}case g:{let e=t.value,a=e.p;if(!(1<=n&&n<=a.upvalues.length))return null;let r=a.upvalues[n-1].name;return{name:r?r.getstr():R("(*no name)",!0),val:e.upvals[n-1]}}default:return null}},_e=function(e,t){let n=Q(e,t);if(!n.ttisstring()){if(!H.cvt2str(n))return null;k.luaO_tostring(e,n)}return n.svalue()},ge=_e,be=function(e,t){return H.tointeger(Q(e,t))},we=function(e,t){return H.tonumber(Q(e,t))},ve=new WeakMap,Ae=function(e,t){B.luaD_callnoyield(e,t.funcOff,t.nresults)},ye=function(e,t){let n=Q(e,t);return Z(n)?n.ttnov():A},Se=R("?"),Te=function(e,t,n){C(e,n===a||e.ci.top-e.top>=n-t,"results from function overflow current stack size")},xe=function(e,t,n,r,i){C(e,null===i||!(e.ci.callstatus&O.CIST_LUA),"cannot use continuations inside hooks"),W(e,t+1),C(e,e.status===I,"cannot do calls on non-normal thread"),Te(e,t,n);let s=e.top-(t+1);null!==i&&0===e.nny?(e.ci.c_k=i,e.ci.c_ctx=r,B.luaD_call(e,s,n)):B.luaD_callnoyield(e,s,n),n===a&&e.ci.top<e.top&&(e.ci.top=e.top)},Ee=function(e,t,n,r,i,s){let l,o;C(e,null===s||!(e.ci.callstatus&O.CIST_LUA),"cannot use continuations inside hooks"),W(e,t+1),C(e,e.status===I,"cannot do calls on non-normal thread"),Te(e,t,n),o=0===r?0:ee(e,r);let u=e.top-(t+1);if(null===s||e.nny>0){let t={funcOff:u,nresults:n};l=B.luaD_pcall(e,Ae,t,u,o)}else{let t=e.ci;t.c_k=s,t.c_ctx=i,t.extra=u,t.c_old_errfunc=e.errfunc,e.errfunc=o,t.callstatus&=~O.CIST_OAH|e.allowhook,t.callstatus|=O.CIST_YPCALL,B.luaD_call(e,u,n),t.callstatus&=~O.CIST_YPCALL,e.errfunc=t.c_old_errfunc,l=I}return n===a&&e.ci.top<e.top&&(e.ci.top=e.top),l},Le=function(e,t,n){let a=Q(e,t);C(e,a.ttisLclosure(),"Lua function expected");let r=a.value;return Y(n),C(e,1<=n&&n<=r.p.upvalues.length,"invalid upvalue index"),{f:r,i:n-1}};e.exports.api_incr_top=J,e.exports.api_checknelems=W,e.exports.lua_absindex=function(e,t){return t>0||t<=u?t:e.top-e.ci.funcOff+t},e.exports.lua_arith=function(e,t){t!==o&&t!==r?W(e,2):(W(e,1),k.pushobj2s(e,e.stack[e.top-1]),C(e,e.top<=e.ci.top,"stack overflow")),k.luaO_arith(e,t,e.stack[e.top-2],e.stack[e.top-1],e.stack[e.top-2]),delete e.stack[--e.top]},e.exports.lua_atpanic=function(e,t){let n=e.l_G.panic;return e.l_G.panic=t,n},e.exports.lua_atnativeerror=function(e,t){let n=e.l_G.atnativeerror;return e.l_G.atnativeerror=t,n},e.exports.lua_call=function(e,t,n){xe(e,t,n,0,null)},e.exports.lua_callk=xe,e.exports.lua_checkstack=function(e,t){let n,a=e.ci;if(C(e,t>=0,"negative 'n'"),e.stack_last-e.top>t)n=!0;else{e.top+O.EXTRA_STACK>K-t?n=!1:(B.luaD_growstack(e,t),n=!0)}return n&&a.top<e.top+t&&(a.top=e.top+t),n},e.exports.lua_compare=function(e,t,n,a){let r=Q(e,t),o=Q(e,n),u=0;if(Z(r)&&Z(o))switch(a){case i:u=H.luaV_equalobj(e,r,o);break;case l:u=H.luaV_lessthan(e,r,o);break;case s:u=H.luaV_lessequal(e,r,o);break;default:C(e,!1,"invalid option")}return u},e.exports.lua_concat=function(e,t){W(e,t),t>=2?H.luaV_concat(e,t):0===t&&(k.pushsvalue2s(e,D(e,R("",!0))),C(e,e.top<=e.ci.top,"stack overflow"))},e.exports.lua_copy=ie,e.exports.lua_createtable=me,e.exports.lua_dump=function(e,t,n,a){W(e,1);let r=e.stack[e.top-1];return r.ttisLclosure()?N(e,r.value.p,t,n,a):1},e.exports.lua_error=function(e){W(e,1),M.luaG_errormsg(e)},e.exports.lua_gc=function(){},e.exports.lua_getallocf=function(){return console.warn("lua_getallocf is not available"),0},e.exports.lua_getextraspace=function(){return console.warn("lua_getextraspace is not available"),0},e.exports.lua_getfield=function(e,t,n){return he(e,Q(e,t),n)},e.exports.lua_getglobal=function(e,t){return he(e,z.luaH_getint(e.l_G.l_registry.value,c),t)},e.exports.lua_geti=function(e,t,n){let a=Q(e,t);return Y(n),e.stack[e.top]=new X(S,n),J(e),H.luaV_gettable(e,a,e.stack[e.top-1],e.top-1),e.stack[e.top-1].ttnov()},e.exports.lua_getmetatable=function(e,t){let n,a=Q(e,t),r=!1;switch(a.ttnov()){case x:case L:n=a.value.metatable;break;default:n=e.l_G.mt[a.ttnov()]}return null!=n&&(e.stack[e.top]=new X(x,n),J(e),r=!0),r},e.exports.lua_gettable=function(e,t){let n=Q(e,t);return H.luaV_gettable(e,n,e.stack[e.top-1],e.top-1),e.stack[e.top-1].ttnov()},e.exports.lua_gettop=function(e){return e.top-(e.ci.funcOff+1)},e.exports.lua_getupvalue=function(e,t,n){let a=pe(0,Q(e,t),n);if(a){let t=a.name,n=a.val;return k.pushobj2s(e,n),C(e,e.top<=e.ci.top,"stack overflow"),t}return null},e.exports.lua_getuservalue=function(e,t){let n=Q(e,t);C(e,n.ttisfulluserdata(),"full userdata expected");let a=n.value.uservalue;return e.stack[e.top]=new X(a.type,a.value),J(e),e.stack[e.top-1].ttnov()},e.exports.lua_insert=function(e,t){re(e,t,1)},e.exports.lua_isboolean=function(e,t){return ye(e,t)===f},e.exports.lua_iscfunction=function(e,t){let n=Q(e,t);return n.ttislcf(n)||n.ttisCclosure()},e.exports.lua_isfunction=function(e,t){return ye(e,t)===p},e.exports.lua_isinteger=function(e,t){return Q(e,t).ttisinteger()},e.exports.lua_islightuserdata=function(e,t){return ye(e,t)===b},e.exports.lua_isnil=function(e,t){return ye(e,t)===v},e.exports.lua_isnone=function(e,t){return ye(e,t)===A},e.exports.lua_isnoneornil=function(e,t){return ye(e,t)<=0},e.exports.lua_isnumber=function(e,t){return!1!==H.tonumber(Q(e,t))},e.exports.lua_isproxy=function(e,t){let n=ve.get(e);return!!n&&(null===t||t.l_G===n)},e.exports.lua_isstring=function(e,t){let n=Q(e,t);return n.ttisstring()||H.cvt2str(n)},e.exports.lua_istable=function(e,t){return Q(e,t).ttistable()},e.exports.lua_isthread=function(e,t){return ye(e,t)===E},e.exports.lua_isuserdata=function(e,t){let n=Q(e,t);return n.ttisfulluserdata(n)||n.ttislightuserdata()},e.exports.lua_len=function(e,t){let n=Q(e,t),a=new X;H.luaV_objlen(e,a,n),e.stack[e.top]=a,J(e)},e.exports.lua_load=function(e,t,n,a,r){a=a?U(a):Se,null!==r&&(r=U(r));let i=new j(e,t,n),s=B.luaD_protectedparser(e,i,a,r);if(s===I){let t=e.stack[e.top-1].value;if(t.nupvalues>=1){let n=z.luaH_getint(e.l_G.l_registry.value,c);t.upvals[0].setfrom(n)}}return s},e.exports.lua_newtable=function(e){me(e)},e.exports.lua_newuserdata=function(e,t){let n=function(e,t){return new k.Udata(e,t)}(e,t);return e.stack[e.top]=new k.TValue(L,n),J(e),n.data},e.exports.lua_next=function(e,t){let n=Q(e,t);return C(e,n.ttistable(),"table expected"),e.stack[e.top]=new X,z.luaH_next(e,n.value,e.top-1)?(J(e),1):(delete e.stack[e.top],delete e.stack[--e.top],0)},e.exports.lua_pcall=function(e,t,n,a){return Ee(e,t,n,a,0,null)},e.exports.lua_pcallk=Ee,e.exports.lua_pop=ne,e.exports.lua_pushboolean=function(e,t){e.stack[e.top]=new X(f,!!t),J(e)},e.exports.lua_pushcclosure=se,e.exports.lua_pushcfunction=oe,e.exports.lua_pushfstring=function(e,t,...n){return t=U(t),k.luaO_pushvfstring(e,t,n)},e.exports.lua_pushglobaltable=function(e){fe(e,u,c)},e.exports.lua_pushinteger=function(e,t){Y(t),e.stack[e.top]=new X(S,t),J(e)},e.exports.lua_pushjsclosure=le,e.exports.lua_pushjsfunction=ue,e.exports.lua_pushlightuserdata=function(e,t){e.stack[e.top]=new X(b,t),J(e)},e.exports.lua_pushliteral=function(e,t){if(null==t)e.stack[e.top]=new X(v,null),e.top++;else{q("string"==typeof t);let n=G(e,t);k.pushsvalue2s(e,n),t=n.getstr()}return C(e,e.top<=e.ci.top,"stack overflow"),t},e.exports.lua_pushlstring=function(e,t,n){let a;return Y(n),0===n?(t=R("",!0),a=D(e,t)):(t=U(t),C(e,t.length>=n,"invalid length to lua_pushlstring"),a=F(e,t.subarray(0,n))),k.pushsvalue2s(e,a),C(e,e.top<=e.ci.top,"stack overflow"),a.value},e.exports.lua_pushnil=function(e){e.stack[e.top]=new X(v,null),J(e)},e.exports.lua_pushnumber=function(e,t){q("number"==typeof t),e.stack[e.top]=new X(y,t),J(e)},e.exports.lua_pushstring=function(e,t){if(null==t)e.stack[e.top]=new X(v,null),e.top++;else{let n=F(e,U(t));k.pushsvalue2s(e,n),t=n.getstr()}return C(e,e.top<=e.ci.top,"stack overflow"),t},e.exports.lua_pushthread=function(e){return e.stack[e.top]=new X(E,e),J(e),e.l_G.mainthread===e},e.exports.lua_pushvalue=function(e,t){k.pushobj2s(e,Q(e,t)),C(e,e.top<=e.ci.top,"stack overflow")},e.exports.lua_pushvfstring=function(e,t,n){return t=U(t),k.luaO_pushvfstring(e,t,n)},e.exports.lua_rawequal=function(e,t,n){let a=Q(e,t),r=Q(e,n);return Z(a)&&Z(r)?H.luaV_equalobj(null,a,r):0},e.exports.lua_rawget=function(e,t){let n=Q(e,t);return C(e,n.ttistable(n),"table expected"),k.setobj2s(e,e.top-1,z.luaH_get(e,n.value,e.stack[e.top-1])),e.stack[e.top-1].ttnov()},e.exports.lua_rawgeti=fe,e.exports.lua_rawgetp=function(e,t,n){let a=Q(e,t);C(e,a.ttistable(),"table expected");let r=new X(b,n);return k.pushobj2s(e,z.luaH_get(e,a.value,r)),C(e,e.top<=e.ci.top,"stack overflow"),e.stack[e.top-1].ttnov()},e.exports.lua_rawlen=function(e,t){let n=Q(e,t);switch(n.ttype()){case T:case w:return n.vslen();case L:return n.value.len;case x:return z.luaH_getn(n.value);default:return 0}},e.exports.lua_rawset=function(e,t){W(e,2);let n=Q(e,t);C(e,n.ttistable(),"table expected");let a=e.stack[e.top-2],r=e.stack[e.top-1];z.luaH_setfrom(e,n.value,a,r),z.invalidateTMcache(n.value),delete e.stack[--e.top],delete e.stack[--e.top]},e.exports.lua_rawseti=function(e,t,n){Y(n),W(e,1);let a=Q(e,t);C(e,a.ttistable(),"table expected"),z.luaH_setint(a.value,n,e.stack[e.top-1]),delete e.stack[--e.top]},e.exports.lua_rawsetp=function(e,t,n){W(e,1);let a=Q(e,t);C(e,a.ttistable(),"table expected");let r=new X(b,n),i=e.stack[e.top-1];z.luaH_setfrom(e,a.value,r,i),delete e.stack[--e.top]},e.exports.lua_register=function(e,t,n){oe(e,n),de(e,t)},e.exports.lua_remove=function(e,t){re(e,t,-1),ne(e,1)},e.exports.lua_replace=function(e,t){ie(e,-1,t),ne(e,1)},e.exports.lua_rotate=re,e.exports.lua_setallocf=function(){return console.warn("lua_setallocf is not available"),0},e.exports.lua_setfield=function(e,t,n){ce(e,Q(e,t),n)},e.exports.lua_setglobal=de,e.exports.lua_seti=function(e,t,n){Y(n),W(e,1);let a=Q(e,t);e.stack[e.top]=new X(S,n),J(e),H.settable(e,a,e.stack[e.top-1],e.stack[e.top-2]),delete e.stack[--e.top],delete e.stack[--e.top]},e.exports.lua_setmetatable=function(e,t){let n;W(e,1);let a=Q(e,t);switch(e.stack[e.top-1].ttisnil()?n=null:(C(e,e.stack[e.top-1].ttistable(),"table expected"),n=e.stack[e.top-1].value),a.ttnov()){case L:case x:a.value.metatable=n;break;default:e.l_G.mt[a.ttnov()]=n}return delete e.stack[--e.top],!0},e.exports.lua_settable=function(e,t){W(e,2);let n=Q(e,t);H.settable(e,n,e.stack[e.top-2],e.stack[e.top-1]),delete e.stack[--e.top],delete e.stack[--e.top]},e.exports.lua_settop=te,e.exports.lua_setupvalue=function(e,t,n){let a=Q(e,t);W(e,1);let r=pe(0,a,n);if(r){let t=r.name;return r.val.setfrom(e.stack[e.top-1]),delete e.stack[--e.top],t}return null},e.exports.lua_setuservalue=function(e,t){W(e,1);let n=Q(e,t);C(e,n.ttisfulluserdata(),"full userdata expected"),n.value.uservalue.setfrom(e.stack[e.top-1]),delete e.stack[--e.top]},e.exports.lua_status=function(e){return e.status},e.exports.lua_stringtonumber=function(e,t){let n=new X,a=k.luaO_str2num(t,n);return 0!==a&&(e.stack[e.top]=n,J(e)),a},e.exports.lua_toboolean=function(e,t){return!Q(e,t).l_isfalse()},e.exports.lua_tocfunction=function(e,t){let n=Q(e,t);return n.ttislcf()||n.ttisCclosure()?n.value:null},e.exports.lua_todataview=function(e,t){let n=_e(e,t);return new DataView(n.buffer,n.byteOffset,n.byteLength)},e.exports.lua_tointeger=function(e,t){let n=be(e,t);return!1===n?0:n},e.exports.lua_tointegerx=be,e.exports.lua_tojsstring=function(e,t){let n=Q(e,t);if(!n.ttisstring()){if(!H.cvt2str(n))return null;k.luaO_tostring(e,n)}return n.jsstring()},e.exports.lua_tolstring=_e,e.exports.lua_tonumber=function(e,t){let n=we(e,t);return!1===n?0:n},e.exports.lua_tonumberx=we,e.exports.lua_topointer=function(e,t){let n=Q(e,t);switch(n.ttype()){case x:case g:case m:case _:case E:case L:case b:return n.value;default:return null}},e.exports.lua_toproxy=function(e,t){let n=Q(e,t);return function(e,t,n){let a=function(a){C(a,a instanceof O.lua_State&&e===a.l_G,"must be from same global state"),a.stack[a.top]=new X(t,n),J(a)};return ve.set(a,e),a}(e.l_G,n.type,n.value)},e.exports.lua_tostring=ge,e.exports.lua_tothread=function(e,t){let n=Q(e,t);return n.ttisthread()?n.value:null},e.exports.lua_touserdata=function(e,t){let n=Q(e,t);switch(n.ttnov()){case L:return n.value.data;case b:return n.value;default:return null}},e.exports.lua_type=ye,e.exports.lua_typename=function(e,t){return C(e,A<=t&&t<h,"invalid tag"),V.ttypename(t)},e.exports.lua_upvalueid=function(e,t,n){let a=Q(e,t);switch(a.ttype()){case g:{let a=Le(e,t,n);return a.f.upvals[a.i]}case m:{let t=a.value;return C(e,(0|n)===n&&n>0&&n<=t.nupvalues,"invalid upvalue index"),t.upvalue[n-1]}default:return C(e,!1,"closure expected"),null}},e.exports.lua_upvaluejoin=function(e,t,n,a,r){let i=Le(e,t,n),s=Le(e,a,r),l=s.f.upvals[s.i];i.f.upvals[i.i]=l},e.exports.lua_version=function(e){return null===e?d:e.l_G.version},e.exports.lua_xmove=function(e,t,n){if(e!==t){W(e,n),C(e,e.l_G===t.l_G,"moving among independent states"),C(e,t.ci.top-t.top>=n,"stack overflow"),e.top-=n;for(let a=0;a<n;a++)t.stack[t.top]=new k.TValue,k.setobj2s(t,t.top,e.stack[e.top+a]),delete e.stack[e.top+a],t.top++}}},696:(e,t,n)=>{"use strict";let a,r,i;if(a="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):function(e){let t=0,n=e.length,a=new Uint8Array(n);for(;n>t;)a[t]=e[t++];return a},"function"==typeof(new Uint8Array).indexOf)r=function(e,t,n){return e.indexOf(t,n)};else{let e=[].indexOf;if(0!==e.call(new Uint8Array(1),0))throw Error("missing .indexOf");r=function(t,n,a){return e.call(t,n,a)}}i="function"==typeof Uint8Array.of?Uint8Array.of.bind(Uint8Array):function(){return a(arguments)};const s=function(e){return e instanceof Uint8Array},l="cannot convert invalid utf8 to javascript string",o=";,/?:@&=+$abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789,-_.!~*'()#".split("").reduce(function(e,t){return e[t.charCodeAt(0)]=!0,e},{}),u={},c=function(e,t){if("string"!=typeof e)throw new TypeError("to_luastring expects a javascript string");if(t){let t=u[e];if(s(t))return t}let n=e.length,r=Array(n),i=0;for(let t=0;t<n;++t){let a=e.charCodeAt(t);if(a<=127)r[i++]=a;else if(a<=2047)r[i++]=192|a>>6,r[i++]=128|63&a;else{if(a>=55296&&a<=56319&&t+1<n){let n=e.charCodeAt(t+1);n>=56320&&n<=57343&&(t++,a=1024*(a-55296)+n+9216)}a<=65535?(r[i++]=224|a>>12,r[i++]=128|a>>6&63,r[i++]=128|63&a):(r[i++]=240|a>>18,r[i++]=128|a>>12&63,r[i++]=128|a>>6&63,r[i++]=128|63&a)}}return r=a(r),t&&(u[e]=r),r};e.exports.luastring_from=a,e.exports.luastring_indexOf=r,e.exports.luastring_of=i,e.exports.is_luastring=s,e.exports.luastring_eq=function(e,t){if(e!==t){let n=e.length;if(n!==t.length)return!1;for(let a=0;a<n;a++)if(e[a]!==t[a])return!1}return!0},e.exports.to_jsstring=function(e,t,n,a){if(!s(e))throw new TypeError("to_jsstring expects a Uint8Array");n=void 0===n?e.length:Math.min(e.length,n);let r="";for(let i=void 0!==t?t:0;i<n;){let t=e[i++];if(t<128)r+=String.fromCharCode(t);else if(t<194||t>244){if(!a)throw RangeError(l);r+="�"}else if(t<=223){if(i>=n){if(!a)throw RangeError(l);r+="�";continue}let s=e[i++];if(128!=(192&s)){if(!a)throw RangeError(l);r+="�";continue}r+=String.fromCharCode(((31&t)<<6)+(63&s))}else if(t<=239){if(i+1>=n){if(!a)throw RangeError(l);r+="�";continue}let s=e[i++];if(128!=(192&s)){if(!a)throw RangeError(l);r+="�";continue}let o=e[i++];if(128!=(192&o)){if(!a)throw RangeError(l);r+="�";continue}let u=((15&t)<<12)+((63&s)<<6)+(63&o);if(u<=65535)r+=String.fromCharCode(u);else{u-=65536;let e=55296+(u>>10),t=u%1024+56320;r+=String.fromCharCode(e,t)}}else{if(i+2>=n){if(!a)throw RangeError(l);r+="�";continue}let s=e[i++];if(128!=(192&s)){if(!a)throw RangeError(l);r+="�";continue}let o=e[i++];if(128!=(192&o)){if(!a)throw RangeError(l);r+="�";continue}let u=e[i++];if(128!=(192&u)){if(!a)throw RangeError(l);r+="�";continue}let c=((7&t)<<18)+((63&s)<<12)+((63&o)<<6)+(63&u);c-=65536;let d=55296+(c>>10),h=c%1024+56320;r+=String.fromCharCode(d,h)}}return r},e.exports.to_uristring=function(e){if(!s(e))throw new TypeError("to_uristring expects a Uint8Array");let t="";for(let n=0;n<e.length;n++){let a=e[n];o[a]?t+=String.fromCharCode(a):t+="%"+(a<16?"0":"")+a.toString(16)}return t},e.exports.to_luastring=c,e.exports.from_userstring=function(e){if(!s(e)){if("string"!=typeof e)throw new TypeError("expects an array of bytes or javascript string");e=c(e)}return e};const d=c("Lua"),h="Lua 5.3",f=h+".4",m=f+" Copyright (C) 1994-2017 Lua.org, PUC-Rio";e.exports.LUA_SIGNATURE=d,e.exports.LUA_VERSION_MAJOR="5",e.exports.LUA_VERSION_MINOR="3",e.exports.LUA_VERSION_NUM=503,e.exports.LUA_VERSION_RELEASE="4",e.exports.LUA_VERSION=h,e.exports.LUA_RELEASE=f,e.exports.LUA_COPYRIGHT=m,e.exports.LUA_AUTHORS="R. Ierusalimschy, L. H. de Figueiredo, W. Celes";const p={LUA_TNONE:-1,LUA_TNIL:0,LUA_TBOOLEAN:1,LUA_TLIGHTUSERDATA:2,LUA_TNUMBER:3,LUA_TSTRING:4,LUA_TTABLE:5,LUA_TFUNCTION:6,LUA_TUSERDATA:7,LUA_TTHREAD:8,LUA_NUMTAGS:9};p.LUA_TSHRSTR=0|p.LUA_TSTRING,p.LUA_TLNGSTR=16|p.LUA_TSTRING,p.LUA_TNUMFLT=0|p.LUA_TNUMBER,p.LUA_TNUMINT=16|p.LUA_TNUMBER,p.LUA_TLCL=0|p.LUA_TFUNCTION,p.LUA_TLCF=16|p.LUA_TFUNCTION,p.LUA_TCCL=32|p.LUA_TFUNCTION;const{LUAI_MAXSTACK:_}=n(254),g=-_-1e3;e.exports.LUA_HOOKCALL=0,e.exports.LUA_HOOKCOUNT=3,e.exports.LUA_HOOKLINE=2,e.exports.LUA_HOOKRET=1,e.exports.LUA_HOOKTAILCALL=4,e.exports.LUA_MASKCALL=1,e.exports.LUA_MASKCOUNT=8,e.exports.LUA_MASKLINE=4,e.exports.LUA_MASKRET=2,e.exports.LUA_MINSTACK=20,e.exports.LUA_MULTRET=-1,e.exports.LUA_OPADD=0,e.exports.LUA_OPBAND=7,e.exports.LUA_OPBNOT=13,e.exports.LUA_OPBOR=8,e.exports.LUA_OPBXOR=9,e.exports.LUA_OPDIV=5,e.exports.LUA_OPEQ=0,e.exports.LUA_OPIDIV=6,e.exports.LUA_OPLE=2,e.exports.LUA_OPLT=1,e.exports.LUA_OPMOD=3,e.exports.LUA_OPMUL=2,e.exports.LUA_OPPOW=4,e.exports.LUA_OPSHL=10,e.exports.LUA_OPSHR=11,e.exports.LUA_OPSUB=1,e.exports.LUA_OPUNM=12,e.exports.LUA_REGISTRYINDEX=g,e.exports.LUA_RIDX_GLOBALS=2,e.exports.LUA_RIDX_LAST=2,e.exports.LUA_RIDX_MAINTHREAD=1,e.exports.constant_types=p,e.exports.lua_Debug=class{constructor(){this.event=NaN,this.name=null,this.namewhat=null,this.what=null,this.source=null,this.currentline=NaN,this.linedefined=NaN,this.lastlinedefined=NaN,this.nups=NaN,this.nparams=NaN,this.isvararg=NaN,this.istailcall=NaN,this.short_src=null,this.i_ci=null}},e.exports.lua_upvalueindex=function(e){return g-e},e.exports.thread_status={LUA_OK:0,LUA_YIELD:1,LUA_ERRRUN:2,LUA_ERRSYNTAX:3,LUA_ERRMEM:4,LUA_ERRGCMM:5,LUA_ERRERR:6}},809:(e,t,n)=>{"use strict";const{LUA_MINSTACK:a,LUA_RIDX_GLOBALS:r,LUA_RIDX_MAINTHREAD:i,constant_types:{LUA_NUMTAGS:s,LUA_TNIL:l,LUA_TTABLE:o,LUA_TTHREAD:u},thread_status:{LUA_OK:c}}=n(696),d=n(853),h=n(179),f=n(660),m=n(420),p=n(917),_=2*a;class g{constructor(){this.func=null,this.funcOff=NaN,this.top=NaN,this.previous=null,this.next=null,this.l_base=NaN,this.l_code=null,this.l_savedpc=NaN,this.c_k=null,this.c_old_errfunc=null,this.c_ctx=null,this.nresults=NaN,this.callstatus=NaN}}class b{constructor(e){this.id=e.id_counter++,this.base_ci=new g,this.top=NaN,this.stack_last=NaN,this.oldpc=NaN,this.l_G=e,this.stack=null,this.ci=null,this.errorJmp=null,this.nCcalls=0,this.hook=null,this.hookmask=0,this.basehookcount=0,this.allowhook=1,this.hookcount=this.basehookcount,this.nny=1,this.status=c,this.errfunc=0}}class w{constructor(){this.id_counter=1,this.ids=new WeakMap,this.mainthread=null,this.l_registry=new d.TValue(l,null),this.panic=null,this.atnativeerror=null,this.version=null,this.tmname=new Array(p.TMS.TM_N),this.mt=new Array(s)}}const v=function(e){e.ci.next=null},A=function(e,t){e.stack=new Array(_),e.top=0,e.stack_last=_-5;let n=e.base_ci;n.next=n.previous=null,n.callstatus=0,n.funcOff=e.top,n.func=e.stack[e.top],e.stack[e.top++]=new d.TValue(l,null),n.top=e.top+a,e.ci=n},y=function(e){e.ci=e.base_ci,v(e),e.stack=null},S=function(e){let t=e.l_G;A(e),function(e,t){let n=m.luaH_new(e);t.l_registry.sethvalue(n),m.luaH_setint(n,i,new d.TValue(u,e)),m.luaH_setint(n,r,new d.TValue(o,m.luaH_new(e)))}(e,t),p.luaT_init(e),t.version=f.lua_version(null)};e.exports.lua_State=b,e.exports.CallInfo=g,e.exports.CIST_OAH=1,e.exports.CIST_LUA=2,e.exports.CIST_HOOKED=4,e.exports.CIST_FRESH=8,e.exports.CIST_YPCALL=16,e.exports.CIST_TAIL=32,e.exports.CIST_HOOKYIELD=64,e.exports.CIST_LEQ=128,e.exports.CIST_FIN=256,e.exports.EXTRA_STACK=5,e.exports.lua_close=function(e){!function(e){y(e)}(e=e.l_G.mainthread)},e.exports.lua_newstate=function(){let e=new w,t=new b(e);return e.mainthread=t,h.luaD_rawrunprotected(t,S,null)!==c&&(t=null),t},e.exports.lua_newthread=function(e){let t=e.l_G,n=new b(t);return e.stack[e.top]=new d.TValue(u,n),f.api_incr_top(e),n.hookmask=e.hookmask,n.basehookcount=e.basehookcount,n.hook=e.hook,n.hookcount=n.basehookcount,A(n),n},e.exports.luaE_extendCI=function(e){let t=new g;return e.ci.next=t,t.previous=e.ci,t.next=null,e.ci=t,t},e.exports.luaE_freeCI=v,e.exports.luaE_freethread=function(e,t){y(t)}},853:(e,t,n)=>{"use strict";const{LUA_OPADD:a,LUA_OPBAND:r,LUA_OPBNOT:i,LUA_OPBOR:s,LUA_OPBXOR:l,LUA_OPDIV:o,LUA_OPIDIV:u,LUA_OPMOD:c,LUA_OPMUL:d,LUA_OPPOW:h,LUA_OPSHL:f,LUA_OPSHR:m,LUA_OPSUB:p,LUA_OPUNM:_,constant_types:{LUA_NUMTAGS:g,LUA_TBOOLEAN:b,LUA_TCCL:w,LUA_TFUNCTION:v,LUA_TLCF:A,LUA_TLCL:y,LUA_TLIGHTUSERDATA:S,LUA_TLNGSTR:T,LUA_TNIL:x,LUA_TNUMBER:E,LUA_TNUMFLT:L,LUA_TNUMINT:I,LUA_TSHRSTR:U,LUA_TSTRING:R,LUA_TTABLE:C,LUA_TTHREAD:M,LUA_TUSERDATA:B},from_userstring:N,luastring_indexOf:P,luastring_of:k,to_jsstring:O,to_luastring:D}=n(696),{lisdigit:F,lisprint:G,lisspace:V,lisxdigit:K}=n(637),H=n(399),z=n(179),j=n(809),{luaS_bless:X,luaS_new:$}=n(415),J=n(420),{LUA_COMPAT_FLOATSTRING:W,ldexp:q,lua_integer2str:Y,lua_number2str:Z}=n(254),Q=n(371),{MAX_INT:ee,luai_nummod:te,lua_assert:ne}=n(502),ae=n(917),re=g,ie=g+1;class se{constructor(e,t){this.type=e,this.value=t}ttype(){return 63&this.type}ttnov(){return 15&this.type}checktag(e){return this.type===e}checktype(e){return this.ttnov()===e}ttisnumber(){return this.checktype(E)}ttisfloat(){return this.checktag(L)}ttisinteger(){return this.checktag(I)}ttisnil(){return this.checktag(x)}ttisboolean(){return this.checktag(b)}ttislightuserdata(){return this.checktag(S)}ttisstring(){return this.checktype(R)}ttisshrstring(){return this.checktag(U)}ttislngstring(){return this.checktag(T)}ttistable(){return this.checktag(C)}ttisfunction(){return this.checktype(v)}ttisclosure(){return(31&this.type)===v}ttisCclosure(){return this.checktag(w)}ttisLclosure(){return this.checktag(y)}ttislcf(){return this.checktag(A)}ttisfulluserdata(){return this.checktag(B)}ttisthread(){return this.checktag(M)}ttisdeadkey(){return this.checktag(ie)}l_isfalse(){return this.ttisnil()||this.ttisboolean()&&!1===this.value}setfltvalue(e){this.type=L,this.value=e}chgfltvalue(e){ne(this.type==L),this.value=e}setivalue(e){this.type=I,this.value=e}chgivalue(e){ne(this.type==I),this.value=e}setnilvalue(){this.type=x,this.value=null}setfvalue(e){this.type=A,this.value=e}setpvalue(e){this.type=S,this.value=e}setbvalue(e){this.type=b,this.value=e}setsvalue(e){this.type=T,this.value=e}setuvalue(e){this.type=B,this.value=e}setthvalue(e){this.type=M,this.value=e}setclLvalue(e){this.type=y,this.value=e}setclCvalue(e){this.type=w,this.value=e}sethvalue(e){this.type=C,this.value=e}setdeadvalue(){this.type=ie,this.value=null}setfrom(e){this.type=e.type,this.value=e.value}tsvalue(){return ne(this.ttisstring()),this.value}svalue(){return this.tsvalue().getstr()}vslen(){return this.tsvalue().tsslen()}jsstring(e,t){return O(this.svalue(),e,t,!0)}}const le=function(e,t,n){e.stack[t].setsvalue(n)},oe=new se(x,null);Object.freeze(oe),e.exports.luaO_nilobject=oe;class ue{constructor(e,t){this.id=e.l_G.id_counter++,this.p=null,this.nupvalues=t,this.upvals=new Array(t)}}class ce{constructor(e,t,n){for(this.id=e.l_G.id_counter++,this.f=t,this.nupvalues=n,this.upvalue=new Array(n);n--;)this.upvalue[n]=new se(x,null)}}class de{constructor(e,t){this.id=e.l_G.id_counter++,this.metatable=null,this.uservalue=new se(x,null),this.len=t,this.data=Object.create(null)}}const he=D("..."),fe=D('[string "'),me=D('"]'),pe=function(e){return F(e)?e-48:(223&e)-55},_e=function(e,t){let n=1;if(ne(t<=1114111),t<128)e[7]=t;else{let a=63;do{e[8-n++]=128|63&t,t>>=6,a>>=1}while(t>a);e[8-n]=~a<<1|t}return n},ge=function(e,t){let n="x"===t?function(e){let t,n=0,a=0,r=0,i=0,s=0,l=!1;for(;V(e[n]);)n++;if(((t=45===e[n])||43===e[n])&&n++,48!==e[n]||120!==e[n+1]&&88!==e[n+1])return null;for(n+=2;;n++)if(46===e[n]){if(l)break;l=!0}else{if(!K(e[n]))break;0===r&&48===e[n]?i++:++r<=30?a=16*a+pe(e[n]):s++,l&&s--}if(i+r===0)return null;if(s*=4,112===e[n]||80===e[n]){let t,a=0;if(n++,((t=45===e[n])||43===e[n])&&n++,!F(e[n]))return null;for(;F(e[n]);)a=10*a+e[n++]-48;t&&(a=-a),s+=a}return t&&(a=-a),{n:q(a,s),i:n}}(e):function(e){try{e=O(e)}catch(e){return null}let t=/^[\t\v\f \n\r]*[+-]?(?:[0-9]+\.?[0-9]*|\.[0-9]*)(?:[eE][+-]?[0-9]+)?/.exec(e);if(!t)return null;let n=parseFloat(t[0]);return isNaN(n)?null:{n,i:t[0].length}}(e);if(null===n)return null;for(;V(e[n.i]);)n.i++;return n.i===e.length||0===e[n.i]?n:null},be=[46,120,88,110,78],we={46:".",120:"x",88:"x",110:"n",78:"n"},ve=Math.floor(ee/10),Ae=ee%10,ye=function(e,t){let n;if(t.ttisinteger())n=D(Y(t.value));else{let e=Z(t.value);!W&&/^[-0123456789]+$/.test(e)&&(e+=".0"),n=D(e)}t.setsvalue(X(e,n))},Se=function(e,t){z.luaD_inctop(e),le(e,e.top-1,$(e,t))},Te=function(e,t,n){let a,r=0,i=0,s=0;for(;a=P(t,37,i),-1!=a;){switch(Se(e,t.subarray(i,a)),t[a+1]){case 115:{let t=n[s++];if(null===t)t=D("(null)",!0);else{t=N(t);let e=P(t,0);-1!==e&&(t=t.subarray(0,e))}Se(e,t);break}case 99:{let t=n[s++];G(t)?Se(e,k(t)):xe(e,D("<\\%d>",!0),t);break}case 100:case 73:z.luaD_inctop(e),e.stack[e.top-1].setivalue(n[s++]),ye(e,e.stack[e.top-1]);break;case 102:z.luaD_inctop(e),e.stack[e.top-1].setfltvalue(n[s++]),ye(e,e.stack[e.top-1]);break;case 112:{let t=n[s++];if(t instanceof j.lua_State||t instanceof J.Table||t instanceof de||t instanceof ue||t instanceof ce)Se(e,D("0x"+t.id.toString(16)));else switch(typeof t){case"undefined":Se(e,D("undefined"));break;case"number":Se(e,D("Number("+t+")"));break;case"string":Se(e,D("String("+JSON.stringify(t)+")"));break;case"boolean":Se(e,D(t?"Boolean(true)":"Boolean(false)"));break;case"object":if(null===t){Se(e,D("null"));break}case"function":{let n=e.l_G.ids.get(t);n||(n=e.l_G.id_counter++,e.l_G.ids.set(t,n)),Se(e,D("0x"+n.toString(16)));break}default:Se(e,D("<id NYI>"))}break}case 85:{let t=new Uint8Array(8),a=_e(t,n[s++]);Se(e,t.subarray(8-a));break}case 37:Se(e,D("%",!0));break;default:H.luaG_runerror(e,D("invalid option '%%%c' to 'lua_pushfstring'"),t[a+1])}r+=2,i=a+2}return z.luaD_checkstack(e,1),Se(e,t.subarray(i)),r>0&&Q.luaV_concat(e,r+1),e.stack[e.top-1].svalue()},xe=function(e,t,...n){return Te(e,t,n)},Ee=function(e,t,n,o){switch(t){case a:return n+o|0;case p:return n-o|0;case d:return Q.luaV_imul(n,o);case c:return Q.luaV_mod(e,n,o);case u:return Q.luaV_div(e,n,o);case r:return n&o;case s:return n|o;case l:return n^o;case f:return Q.luaV_shiftl(n,o);case m:return Q.luaV_shiftl(n,-o);case _:return 0-n|0;case i:return-1^n;default:ne(0)}},Le=function(e,t,n,r){switch(t){case a:return n+r;case p:return n-r;case d:return n*r;case o:return n/r;case h:return Math.pow(n,r);case u:return Math.floor(n/r);case _:return-n;case c:return te(e,n,r);default:ne(0)}};e.exports.CClosure=ce,e.exports.LClosure=ue,e.exports.LUA_TDEADKEY=ie,e.exports.LUA_TPROTO=re,e.exports.LocVar=class{constructor(){this.varname=null,this.startpc=NaN,this.endpc=NaN}},e.exports.TValue=se,e.exports.Udata=de,e.exports.UTF8BUFFSZ=8,e.exports.luaO_arith=function(e,t,n,u,c){let d="number"==typeof c?e.stack[c]:c;switch(t){case r:case s:case l:case f:case m:case i:{let a,r;if(!1!==(a=Q.tointeger(n))&&!1!==(r=Q.tointeger(u)))return void d.setivalue(Ee(e,t,a,r));break}case o:case h:{let a,r;if(!1!==(a=Q.tonumber(n))&&!1!==(r=Q.tonumber(u)))return void d.setfltvalue(Le(e,t,a,r));break}default:{let a,r;if(n.ttisinteger()&&u.ttisinteger())return void d.setivalue(Ee(e,t,n.value,u.value));if(!1!==(a=Q.tonumber(n))&&!1!==(r=Q.tonumber(u)))return void d.setfltvalue(Le(e,t,a,r));break}}ne(null!==e),ae.luaT_trybinTM(e,n,u,c,t-a+ae.TMS.TM_ADD)},e.exports.luaO_chunkid=function(e,t){let n,a=e.length;if(61===e[0])a<t?(n=new Uint8Array(a-1),n.set(e.subarray(1))):(n=new Uint8Array(t),n.set(e.subarray(1,t+1)));else if(64===e[0])a<=t?(n=new Uint8Array(a-1),n.set(e.subarray(1))):(n=new Uint8Array(t),n.set(he),t-=he.length,n.set(e.subarray(a-t),he.length));else{n=new Uint8Array(t);let r=P(e,10);n.set(fe);let i=fe.length;a<(t-=fe.length+he.length+me.length)&&-1===r?(n.set(e,i),i+=e.length):(-1!==r&&(a=r),a>t&&(a=t),n.set(e.subarray(0,a),i),i+=a,n.set(he,i),i+=he.length),n.set(me,i),i+=me.length,n=n.subarray(0,i)}return n},e.exports.luaO_hexavalue=pe,e.exports.luaO_int2fb=function(e){let t=0;if(e<8)return e;for(;e>=128;)e=e+15>>4,t+=4;for(;e>=16;)e=e+1>>1,t++;return t+1<<3|e-8},e.exports.luaO_pushfstring=xe,e.exports.luaO_pushvfstring=Te,e.exports.luaO_str2num=function(e,t){let n=function(e){let t,n=0,a=0,r=!0;for(;V(e[n]);)n++;if(((t=45===e[n])||43===e[n])&&n++,48!==e[n]||120!==e[n+1]&&88!==e[n+1])for(;n<e.length&&F(e[n]);n++){let i=e[n]-48;if(a>=ve&&(a>ve||i>Ae+t))return null;a=10*a+i|0,r=!1}else for(n+=2;n<e.length&&K(e[n]);n++)a=16*a+pe(e[n])|0,r=!1;for(;n<e.length&&V(e[n]);)n++;return r||n!==e.length&&0!==e[n]?null:{n:0|(t?-a:a),i:n}}(e);return null!==n?(t.setivalue(n.n),n.i+1):(n=function(e){let t=e.length,n=0;for(let a=0;a<t;a++){let t=e[a];if(-1!==be.indexOf(t)){n=t;break}}let a=we[n];return"n"===a?null:ge(e,a)}(e),null!==n?(t.setfltvalue(n.n),n.i+1):0)},e.exports.luaO_tostring=ye,e.exports.luaO_utf8esc=_e,e.exports.numarith=Le,e.exports.pushobj2s=function(e,t){e.stack[e.top++]=new se(t.type,t.value)},e.exports.pushsvalue2s=function(e,t){e.stack[e.top++]=new se(T,t)},e.exports.setobjs2s=function(e,t,n){e.stack[t].setfrom(e.stack[n])},e.exports.setobj2s=function(e,t,n){e.stack[t].setfrom(n)},e.exports.setsvalue2s=le},855:(e,t,n)=>{"use strict";const{LUA_SIGNATURE:a,constant_types:{LUA_TBOOLEAN:r,LUA_TLNGSTR:i,LUA_TNIL:s,LUA_TNUMFLT:l,LUA_TNUMINT:o,LUA_TSHRSTR:u},thread_status:{LUA_ERRSYNTAX:c},is_luastring:d,luastring_eq:h,to_luastring:f}=n(696),m=n(179),p=n(196),_=n(853),{MAXARG_sBx:g,POS_A:b,POS_Ax:w,POS_B:v,POS_Bx:A,POS_C:y,POS_OP:S,SIZE_A:T,SIZE_Ax:x,SIZE_B:E,SIZE_Bx:L,SIZE_C:I,SIZE_OP:U}=n(451),{lua_assert:R}=n(502),{luaS_bless:C}=n(415),{luaZ_read:M,ZIO:B}=n(498);let N=[25,147,13,10,26,10];class P{constructor(e,t,n){this.intSize=4,this.size_tSize=4,this.instructionSize=4,this.integerSize=4,this.numberSize=8,R(t instanceof B,"BytecodeParser only operates on a ZIO"),R(d(n)),64===n[0]||61===n[0]?this.name=n.subarray(1):n[0]==a[0]?this.name=f("binary string",!0):this.name=n,this.L=e,this.Z=t,this.arraybuffer=new ArrayBuffer(Math.max(this.intSize,this.size_tSize,this.instructionSize,this.integerSize,this.numberSize)),this.dv=new DataView(this.arraybuffer),this.u8=new Uint8Array(this.arraybuffer)}read(e){let t=new Uint8Array(e);return 0!==M(this.Z,t,0,e)&&this.error("truncated"),t}LoadByte(){return 0!==M(this.Z,this.u8,0,1)&&this.error("truncated"),this.u8[0]}LoadInt(){return 0!==M(this.Z,this.u8,0,this.intSize)&&this.error("truncated"),this.dv.getInt32(0,!0)}LoadNumber(){return 0!==M(this.Z,this.u8,0,this.numberSize)&&this.error("truncated"),this.dv.getFloat64(0,!0)}LoadInteger(){return 0!==M(this.Z,this.u8,0,this.integerSize)&&this.error("truncated"),this.dv.getInt32(0,!0)}LoadSize_t(){return this.LoadInteger()}LoadString(){let e=this.LoadByte();return 255===e&&(e=this.LoadSize_t()),0===e?null:C(this.L,this.read(e-1))}static MASK1(e,t){return~(-1<<e)<<t}LoadCode(e){let t=this.LoadInt(),n=P;for(let a=0;a<t;a++){0!==M(this.Z,this.u8,0,this.instructionSize)&&this.error("truncated");let t=this.dv.getUint32(0,!0);e.code[a]={code:t,opcode:t>>S&n.MASK1(U,0),A:t>>b&n.MASK1(T,0),B:t>>v&n.MASK1(E,0),C:t>>y&n.MASK1(I,0),Bx:t>>A&n.MASK1(L,0),Ax:t>>w&n.MASK1(x,0),sBx:(t>>A&n.MASK1(L,0))-g}}}LoadConstants(e){let t=this.LoadInt();for(let n=0;n<t;n++){let t=this.LoadByte();switch(t){case s:e.k.push(new _.TValue(s,null));break;case r:e.k.push(new _.TValue(r,0!==this.LoadByte()));break;case l:e.k.push(new _.TValue(l,this.LoadNumber()));break;case o:e.k.push(new _.TValue(o,this.LoadInteger()));break;case u:case i:e.k.push(new _.TValue(i,this.LoadString()));break;default:this.error(`unrecognized constant '${t}'`)}}}LoadProtos(e){let t=this.LoadInt();for(let n=0;n<t;n++)e.p[n]=new p.Proto(this.L),this.LoadFunction(e.p[n],e.source)}LoadUpvalues(e){let t=this.LoadInt();for(let n=0;n<t;n++)e.upvalues[n]={name:null,instack:this.LoadByte(),idx:this.LoadByte()}}LoadDebug(e){let t=this.LoadInt();for(let n=0;n<t;n++)e.lineinfo[n]=this.LoadInt();t=this.LoadInt();for(let n=0;n<t;n++)e.locvars[n]={varname:this.LoadString(),startpc:this.LoadInt(),endpc:this.LoadInt()};t=this.LoadInt();for(let n=0;n<t;n++)e.upvalues[n].name=this.LoadString()}LoadFunction(e,t){e.source=this.LoadString(),null===e.source&&(e.source=t),e.linedefined=this.LoadInt(),e.lastlinedefined=this.LoadInt(),e.numparams=this.LoadByte(),e.is_vararg=0!==this.LoadByte(),e.maxstacksize=this.LoadByte(),this.LoadCode(e),this.LoadConstants(e),this.LoadUpvalues(e),this.LoadProtos(e),this.LoadDebug(e)}checkliteral(e,t){let n=this.read(e.length);h(n,e)||this.error(t)}checkHeader(){this.checkliteral(a.subarray(1),"not a"),83!==this.LoadByte()&&this.error("version mismatch in"),0!==this.LoadByte()&&this.error("format mismatch in"),this.checkliteral(N,"corrupted"),this.intSize=this.LoadByte(),this.size_tSize=this.LoadByte(),this.instructionSize=this.LoadByte(),this.integerSize=this.LoadByte(),this.numberSize=this.LoadByte(),this.checksize(this.intSize,4,"int"),this.checksize(this.size_tSize,4,"size_t"),this.checksize(this.instructionSize,4,"instruction"),this.checksize(this.integerSize,4,"integer"),this.checksize(this.numberSize,8,"number"),22136!==this.LoadInteger()&&this.error("endianness mismatch in"),370.5!==this.LoadNumber()&&this.error("float format mismatch in")}error(e){_.luaO_pushfstring(this.L,f("%s: %s precompiled chunk"),this.name,f(e)),m.luaD_throw(this.L,c)}checksize(e,t,n){e!==t&&this.error(`${n} size mismatch in`)}}e.exports.luaU_undump=function(e,t,n){let a=new P(e,t,n);a.checkHeader();let r=p.luaF_newLclosure(e,a.LoadByte());return m.luaD_inctop(e),e.stack[e.top-1].setclLvalue(r),r.p=new p.Proto(e),a.LoadFunction(r.p,null),R(r.nupvalues===r.p.upvalues.length),r}},917:(e,t,n)=>{"use strict";const{constant_types:{LUA_TTABLE:a,LUA_TUSERDATA:r},to_luastring:i}=n(696),{lua_assert:s}=n(502),l=n(853),o=n(179),u=n(809),{luaS_bless:c,luaS_new:d}=n(415),h=n(420),f=n(399),m=n(371),p=["no value","nil","boolean","userdata","number","string","table","function","userdata","thread","proto"].map(e=>i(e)),_=function(e){return p[e+1]},g={TM_INDEX:0,TM_NEWINDEX:1,TM_GC:2,TM_MODE:3,TM_LEN:4,TM_EQ:5,TM_ADD:6,TM_SUB:7,TM_MUL:8,TM_MOD:9,TM_POW:10,TM_DIV:11,TM_IDIV:12,TM_BAND:13,TM_BOR:14,TM_BXOR:15,TM_SHL:16,TM_SHR:17,TM_UNM:18,TM_BNOT:19,TM_LT:20,TM_LE:21,TM_CONCAT:22,TM_CALL:23,TM_N:24},b=i("__name",!0),w=function(e,t,n,a,r,i){let s=e.top;if(l.pushobj2s(e,t),l.pushobj2s(e,n),l.pushobj2s(e,a),i||l.pushobj2s(e,r),e.ci.callstatus&u.CIST_LUA?o.luaD_call(e,s,i):o.luaD_callnoyield(e,s,i),i){let t=e.stack[e.top-1];delete e.stack[--e.top],r.setfrom(t)}},v=function(e,t,n,a,r){let i=y(e,t,r);return i.ttisnil()&&(i=y(e,n,r)),!i.ttisnil()&&(w(e,i,t,n,a,1),!0)},A=function(e,t,n){const a=h.luaH_getstr(e,n);return s(t<=g.TM_EQ),a.ttisnil()?(e.flags|=1<<t,null):a},y=function(e,t,n){let i;switch(t.ttnov()){case a:case r:i=t.value.metatable;break;default:i=e.l_G.mt[t.ttnov()]}return i?h.luaH_getstr(i,e.l_G.tmname[n]):l.luaO_nilobject};e.exports.fasttm=function(e,t,n){return null===t||t.flags&1<<n?null:A(t,n,e.l_G.tmname[n])},e.exports.TMS=g,e.exports.luaT_callTM=w,e.exports.luaT_callbinTM=v,e.exports.luaT_trybinTM=function(e,t,n,a,r){if(!v(e,t,n,a,r))switch(r){case g.TM_CONCAT:return f.luaG_concaterror(e,t,n);case g.TM_BAND:case g.TM_BOR:case g.TM_BXOR:case g.TM_SHL:case g.TM_SHR:case g.TM_BNOT:{let a=m.tonumber(t),r=m.tonumber(n);return!1!==a&&!1!==r?f.luaG_tointerror(e,t,n):f.luaG_opinterror(e,t,n,i("perform bitwise operation on",!0))}default:return f.luaG_opinterror(e,t,n,i("perform arithmetic on",!0))}},e.exports.luaT_callorderTM=function(e,t,n,a){let r=new l.TValue;return v(e,t,n,r,a)?!r.l_isfalse():null},e.exports.luaT_gettm=A,e.exports.luaT_gettmbyobj=y,e.exports.luaT_init=function(e){e.l_G.tmname[g.TM_INDEX]=new d(e,i("__index",!0)),e.l_G.tmname[g.TM_NEWINDEX]=new d(e,i("__newindex",!0)),e.l_G.tmname[g.TM_GC]=new d(e,i("__gc",!0)),e.l_G.tmname[g.TM_MODE]=new d(e,i("__mode",!0)),e.l_G.tmname[g.TM_LEN]=new d(e,i("__len",!0)),e.l_G.tmname[g.TM_EQ]=new d(e,i("__eq",!0)),e.l_G.tmname[g.TM_ADD]=new d(e,i("__add",!0)),e.l_G.tmname[g.TM_SUB]=new d(e,i("__sub",!0)),e.l_G.tmname[g.TM_MUL]=new d(e,i("__mul",!0)),e.l_G.tmname[g.TM_MOD]=new d(e,i("__mod",!0)),e.l_G.tmname[g.TM_POW]=new d(e,i("__pow",!0)),e.l_G.tmname[g.TM_DIV]=new d(e,i("__div",!0)),e.l_G.tmname[g.TM_IDIV]=new d(e,i("__idiv",!0)),e.l_G.tmname[g.TM_BAND]=new d(e,i("__band",!0)),e.l_G.tmname[g.TM_BOR]=new d(e,i("__bor",!0)),e.l_G.tmname[g.TM_BXOR]=new d(e,i("__bxor",!0)),e.l_G.tmname[g.TM_SHL]=new d(e,i("__shl",!0)),e.l_G.tmname[g.TM_SHR]=new d(e,i("__shr",!0)),e.l_G.tmname[g.TM_UNM]=new d(e,i("__unm",!0)),e.l_G.tmname[g.TM_BNOT]=new d(e,i("__bnot",!0)),e.l_G.tmname[g.TM_LT]=new d(e,i("__lt",!0)),e.l_G.tmname[g.TM_LE]=new d(e,i("__le",!0)),e.l_G.tmname[g.TM_CONCAT]=new d(e,i("__concat",!0)),e.l_G.tmname[g.TM_CALL]=new d(e,i("__call",!0))},e.exports.luaT_objtypename=function(e,t){let n;if(t.ttistable()&&null!==(n=t.value.metatable)||t.ttisfulluserdata()&&null!==(n=t.value.metatable)){let t=h.luaH_getstr(n,c(e,b));if(t.ttisstring())return t.svalue()}return _(t.ttnov())},e.exports.ttypename=_},936:(e,t,n)=>{"use strict";const a=n(696),r=n(660),i=n(399),s=n(179),l=n(809);e.exports.LUA_AUTHORS=a.LUA_AUTHORS,e.exports.LUA_COPYRIGHT=a.LUA_COPYRIGHT,e.exports.LUA_ERRERR=a.thread_status.LUA_ERRERR,e.exports.LUA_ERRGCMM=a.thread_status.LUA_ERRGCMM,e.exports.LUA_ERRMEM=a.thread_status.LUA_ERRMEM,e.exports.LUA_ERRRUN=a.thread_status.LUA_ERRRUN,e.exports.LUA_ERRSYNTAX=a.thread_status.LUA_ERRSYNTAX,e.exports.LUA_HOOKCALL=a.LUA_HOOKCALL,e.exports.LUA_HOOKCOUNT=a.LUA_HOOKCOUNT,e.exports.LUA_HOOKLINE=a.LUA_HOOKLINE,e.exports.LUA_HOOKRET=a.LUA_HOOKRET,e.exports.LUA_HOOKTAILCALL=a.LUA_HOOKTAILCALL,e.exports.LUA_MASKCALL=a.LUA_MASKCALL,e.exports.LUA_MASKCOUNT=a.LUA_MASKCOUNT,e.exports.LUA_MASKLINE=a.LUA_MASKLINE,e.exports.LUA_MASKRET=a.LUA_MASKRET,e.exports.LUA_MINSTACK=a.LUA_MINSTACK,e.exports.LUA_MULTRET=a.LUA_MULTRET,e.exports.LUA_NUMTAGS=a.constant_types.LUA_NUMTAGS,e.exports.LUA_OK=a.thread_status.LUA_OK,e.exports.LUA_OPADD=a.LUA_OPADD,e.exports.LUA_OPBAND=a.LUA_OPBAND,e.exports.LUA_OPBNOT=a.LUA_OPBNOT,e.exports.LUA_OPBOR=a.LUA_OPBOR,e.exports.LUA_OPBXOR=a.LUA_OPBXOR,e.exports.LUA_OPDIV=a.LUA_OPDIV,e.exports.LUA_OPEQ=a.LUA_OPEQ,e.exports.LUA_OPIDIV=a.LUA_OPIDIV,e.exports.LUA_OPLE=a.LUA_OPLE,e.exports.LUA_OPLT=a.LUA_OPLT,e.exports.LUA_OPMOD=a.LUA_OPMOD,e.exports.LUA_OPMUL=a.LUA_OPMUL,e.exports.LUA_OPPOW=a.LUA_OPPOW,e.exports.LUA_OPSHL=a.LUA_OPSHL,e.exports.LUA_OPSHR=a.LUA_OPSHR,e.exports.LUA_OPSUB=a.LUA_OPSUB,e.exports.LUA_OPUNM=a.LUA_OPUNM,e.exports.LUA_REGISTRYINDEX=a.LUA_REGISTRYINDEX,e.exports.LUA_RELEASE=a.LUA_RELEASE,e.exports.LUA_RIDX_GLOBALS=a.LUA_RIDX_GLOBALS,e.exports.LUA_RIDX_LAST=a.LUA_RIDX_LAST,e.exports.LUA_RIDX_MAINTHREAD=a.LUA_RIDX_MAINTHREAD,e.exports.LUA_SIGNATURE=a.LUA_SIGNATURE,e.exports.LUA_TNONE=a.constant_types.LUA_TNONE,e.exports.LUA_TNIL=a.constant_types.LUA_TNIL,e.exports.LUA_TBOOLEAN=a.constant_types.LUA_TBOOLEAN,e.exports.LUA_TLIGHTUSERDATA=a.constant_types.LUA_TLIGHTUSERDATA,e.exports.LUA_TNUMBER=a.constant_types.LUA_TNUMBER,e.exports.LUA_TSTRING=a.constant_types.LUA_TSTRING,e.exports.LUA_TTABLE=a.constant_types.LUA_TTABLE,e.exports.LUA_TFUNCTION=a.constant_types.LUA_TFUNCTION,e.exports.LUA_TUSERDATA=a.constant_types.LUA_TUSERDATA,e.exports.LUA_TTHREAD=a.constant_types.LUA_TTHREAD,e.exports.LUA_VERSION=a.LUA_VERSION,e.exports.LUA_VERSION_MAJOR=a.LUA_VERSION_MAJOR,e.exports.LUA_VERSION_MINOR=a.LUA_VERSION_MINOR,e.exports.LUA_VERSION_NUM=a.LUA_VERSION_NUM,e.exports.LUA_VERSION_RELEASE=a.LUA_VERSION_RELEASE,e.exports.LUA_YIELD=a.thread_status.LUA_YIELD,e.exports.lua_Debug=a.lua_Debug,e.exports.lua_upvalueindex=a.lua_upvalueindex,e.exports.lua_absindex=r.lua_absindex,e.exports.lua_arith=r.lua_arith,e.exports.lua_atpanic=r.lua_atpanic,e.exports.lua_atnativeerror=r.lua_atnativeerror,e.exports.lua_call=r.lua_call,e.exports.lua_callk=r.lua_callk,e.exports.lua_checkstack=r.lua_checkstack,e.exports.lua_close=l.lua_close,e.exports.lua_compare=r.lua_compare,e.exports.lua_concat=r.lua_concat,e.exports.lua_copy=r.lua_copy,e.exports.lua_createtable=r.lua_createtable,e.exports.lua_dump=r.lua_dump,e.exports.lua_error=r.lua_error,e.exports.lua_gc=r.lua_gc,e.exports.lua_getallocf=r.lua_getallocf,e.exports.lua_getextraspace=r.lua_getextraspace,e.exports.lua_getfield=r.lua_getfield,e.exports.lua_getglobal=r.lua_getglobal,e.exports.lua_gethook=i.lua_gethook,e.exports.lua_gethookcount=i.lua_gethookcount,e.exports.lua_gethookmask=i.lua_gethookmask,e.exports.lua_geti=r.lua_geti,e.exports.lua_getinfo=i.lua_getinfo,e.exports.lua_getlocal=i.lua_getlocal,e.exports.lua_getmetatable=r.lua_getmetatable,e.exports.lua_getstack=i.lua_getstack,e.exports.lua_gettable=r.lua_gettable,e.exports.lua_gettop=r.lua_gettop,e.exports.lua_getupvalue=r.lua_getupvalue,e.exports.lua_getuservalue=r.lua_getuservalue,e.exports.lua_insert=r.lua_insert,e.exports.lua_isboolean=r.lua_isboolean,e.exports.lua_iscfunction=r.lua_iscfunction,e.exports.lua_isfunction=r.lua_isfunction,e.exports.lua_isinteger=r.lua_isinteger,e.exports.lua_islightuserdata=r.lua_islightuserdata,e.exports.lua_isnil=r.lua_isnil,e.exports.lua_isnone=r.lua_isnone,e.exports.lua_isnoneornil=r.lua_isnoneornil,e.exports.lua_isnumber=r.lua_isnumber,e.exports.lua_isproxy=r.lua_isproxy,e.exports.lua_isstring=r.lua_isstring,e.exports.lua_istable=r.lua_istable,e.exports.lua_isthread=r.lua_isthread,e.exports.lua_isuserdata=r.lua_isuserdata,e.exports.lua_isyieldable=s.lua_isyieldable,e.exports.lua_len=r.lua_len,e.exports.lua_load=r.lua_load,e.exports.lua_newstate=l.lua_newstate,e.exports.lua_newtable=r.lua_newtable,e.exports.lua_newthread=l.lua_newthread,e.exports.lua_newuserdata=r.lua_newuserdata,e.exports.lua_next=r.lua_next,e.exports.lua_pcall=r.lua_pcall,e.exports.lua_pcallk=r.lua_pcallk,e.exports.lua_pop=r.lua_pop,e.exports.lua_pushboolean=r.lua_pushboolean,e.exports.lua_pushcclosure=r.lua_pushcclosure,e.exports.lua_pushcfunction=r.lua_pushcfunction,e.exports.lua_pushfstring=r.lua_pushfstring,e.exports.lua_pushglobaltable=r.lua_pushglobaltable,e.exports.lua_pushinteger=r.lua_pushinteger,e.exports.lua_pushjsclosure=r.lua_pushjsclosure,e.exports.lua_pushjsfunction=r.lua_pushjsfunction,e.exports.lua_pushlightuserdata=r.lua_pushlightuserdata,e.exports.lua_pushliteral=r.lua_pushliteral,e.exports.lua_pushlstring=r.lua_pushlstring,e.exports.lua_pushnil=r.lua_pushnil,e.exports.lua_pushnumber=r.lua_pushnumber,e.exports.lua_pushstring=r.lua_pushstring,e.exports.lua_pushthread=r.lua_pushthread,e.exports.lua_pushvalue=r.lua_pushvalue,e.exports.lua_pushvfstring=r.lua_pushvfstring,e.exports.lua_rawequal=r.lua_rawequal,e.exports.lua_rawget=r.lua_rawget,e.exports.lua_rawgeti=r.lua_rawgeti,e.exports.lua_rawgetp=r.lua_rawgetp,e.exports.lua_rawlen=r.lua_rawlen,e.exports.lua_rawset=r.lua_rawset,e.exports.lua_rawseti=r.lua_rawseti,e.exports.lua_rawsetp=r.lua_rawsetp,e.exports.lua_register=r.lua_register,e.exports.lua_remove=r.lua_remove,e.exports.lua_replace=r.lua_replace,e.exports.lua_resume=s.lua_resume,e.exports.lua_rotate=r.lua_rotate,e.exports.lua_setallof=s.lua_setallof,e.exports.lua_setfield=r.lua_setfield,e.exports.lua_setglobal=r.lua_setglobal,e.exports.lua_sethook=i.lua_sethook,e.exports.lua_seti=r.lua_seti,e.exports.lua_setlocal=i.lua_setlocal,e.exports.lua_setmetatable=r.lua_setmetatable,e.exports.lua_settable=r.lua_settable,e.exports.lua_settop=r.lua_settop,e.exports.lua_setupvalue=r.lua_setupvalue,e.exports.lua_setuservalue=r.lua_setuservalue,e.exports.lua_status=r.lua_status,e.exports.lua_stringtonumber=r.lua_stringtonumber,e.exports.lua_toboolean=r.lua_toboolean,e.exports.lua_todataview=r.lua_todataview,e.exports.lua_tointeger=r.lua_tointeger,e.exports.lua_tointegerx=r.lua_tointegerx,e.exports.lua_tojsstring=r.lua_tojsstring,e.exports.lua_tolstring=r.lua_tolstring,e.exports.lua_tonumber=r.lua_tonumber,e.exports.lua_tonumberx=r.lua_tonumberx,e.exports.lua_topointer=r.lua_topointer,e.exports.lua_toproxy=r.lua_toproxy,e.exports.lua_tostring=r.lua_tostring,e.exports.lua_tothread=r.lua_tothread,e.exports.lua_touserdata=r.lua_touserdata,e.exports.lua_type=r.lua_type,e.exports.lua_typename=r.lua_typename,e.exports.lua_upvalueid=r.lua_upvalueid,e.exports.lua_upvaluejoin=r.lua_upvaluejoin,e.exports.lua_version=r.lua_version,e.exports.lua_xmove=r.lua_xmove,e.exports.lua_yield=s.lua_yield,e.exports.lua_yieldk=s.lua_yieldk,e.exports.lua_tocfunction=r.lua_tocfunction},940:(e,t,n)=>{"use strict";const{LUA_SIGNATURE:a,LUA_VERSION_MAJOR:r,LUA_VERSION_MINOR:i,constant_types:{LUA_TBOOLEAN:s,LUA_TLNGSTR:l,LUA_TNIL:o,LUA_TNUMFLT:u,LUA_TNUMINT:c,LUA_TSHRSTR:d},luastring_of:h}=n(696),f=h(25,147,13,10,26,10),m=16*Number(r)+Number(i);class p{constructor(){this.L=null,this.write=null,this.data=null,this.strip=NaN,this.status=NaN}}const _=function(e,t,n){0===n.status&&t>0&&(n.status=n.writer(n.L,e,t,n.data))},g=function(e,t){_(h(e),1,t)},b=function(e,t){let n=new ArrayBuffer(4);new DataView(n).setInt32(0,e,!0);let a=new Uint8Array(n);_(a,4,t)},w=function(e,t){let n=new ArrayBuffer(4);new DataView(n).setInt32(0,e,!0);let a=new Uint8Array(n);_(a,4,t)},v=function(e,t){let n=new ArrayBuffer(8);new DataView(n).setFloat64(0,e,!0);let a=new Uint8Array(n);_(a,8,t)},A=function(e,t){if(null===e)g(0,t);else{let n=e.tsslen()+1,a=e.getstr();n<255?g(n,t):(g(255,t),w(n,t)),_(a,n-1,t)}},y=function(e,t,n){n.strip||e.source===t?A(null,n):A(e.source,n),b(e.linedefined,n),b(e.lastlinedefined,n),g(e.numparams,n),g(e.is_vararg?1:0,n),g(e.maxstacksize,n),function(e,t){let n=e.code.map(e=>e.code);b(n.length,t);for(let e=0;e<n.length;e++)b(n[e],t)}(e,n),function(e,t){let n=e.k.length;b(n,t);for(let a=0;a<n;a++){let n=e.k[a];switch(g(n.ttype(),t),n.ttype()){case o:break;case s:g(n.value?1:0,t);break;case u:v(n.value,t);break;case c:w(n.value,t);break;case d:case l:A(n.tsvalue(),t)}}}(e,n),function(e,t){let n=e.upvalues.length;b(n,t);for(let a=0;a<n;a++)g(e.upvalues[a].instack?1:0,t),g(e.upvalues[a].idx,t)}(e,n),function(e,t){let n=e.p.length;b(n,t);for(let a=0;a<n;a++)y(e.p[a],e.source,t)}(e,n),function(e,t){let n=t.strip?0:e.lineinfo.length;b(n,t);for(let a=0;a<n;a++)b(e.lineinfo[a],t);n=t.strip?0:e.locvars.length,b(n,t);for(let a=0;a<n;a++)A(e.locvars[a].varname,t),b(e.locvars[a].startpc,t),b(e.locvars[a].endpc,t);n=t.strip?0:e.upvalues.length,b(n,t);for(let a=0;a<n;a++)A(e.upvalues[a].name,t)}(e,n)};e.exports.luaU_dump=function(e,t,n,r,i){let s=new p;return s.L=e,s.writer=n,s.data=r,s.strip=i,s.status=0,function(e){_(a,a.length,e),g(m,e),g(0,e),_(f,f.length,e),g(4,e),g(4,e),g(4,e),g(4,e),g(8,e),w(22136,e),v(370.5,e)}(s),g(t.upvalues.length,s),y(t,null,s),s.status}}},t={};function n(a){var r=t[a];if(void 0!==r)return r.exports;var i=t[a]={exports:{}};return e[a](i,i.exports,n),i.exports}n.d=(e,t)=>{for(var a in t)n.o(t,a)&&!n.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var a={};(()=>{"use strict";n.r(a),n.d(a,{common:()=>Rl,parsers:()=>ep,utils:()=>oj,version:()=>w,viewer:()=>Vb});var e={};n.r(e),n.d(e,{ARRAY_TYPE:()=>A,EPSILON:()=>v,RANDOM:()=>y,equals:()=>E,setMatrixArrayType:()=>S,toRadian:()=>x});var t={};n.r(t),n.d(t,{LDU:()=>z,add:()=>j,adjoint:()=>P,clone:()=>I,copy:()=>U,create:()=>L,determinant:()=>k,equals:()=>J,exactEquals:()=>$,frob:()=>H,fromRotation:()=>G,fromScaling:()=>V,fromValues:()=>C,identity:()=>R,invert:()=>N,mul:()=>Y,multiply:()=>O,multiplyScalar:()=>W,multiplyScalarAndAdd:()=>q,rotate:()=>D,scale:()=>F,set:()=>M,str:()=>K,sub:()=>Z,subtract:()=>X,transpose:()=>B});var r={};n.r(r),n.d(r,{add:()=>_e,clone:()=>ee,copy:()=>te,create:()=>Q,determinant:()=>se,equals:()=>Ae,exactEquals:()=>ve,frob:()=>pe,fromRotation:()=>de,fromScaling:()=>he,fromTranslation:()=>fe,fromValues:()=>ae,identity:()=>ne,invert:()=>ie,mul:()=>ye,multiply:()=>le,multiplyScalar:()=>be,multiplyScalarAndAdd:()=>we,rotate:()=>oe,scale:()=>ue,set:()=>re,str:()=>me,sub:()=>Se,subtract:()=>ge,translate:()=>ce});var i={};n.r(i),n.d(i,{add:()=>Je,adjoint:()=>Be,clone:()=>Ee,copy:()=>Le,create:()=>Te,determinant:()=>Ne,equals:()=>Qe,exactEquals:()=>Ze,frob:()=>$e,fromMat2d:()=>Ke,fromMat4:()=>xe,fromQuat:()=>He,fromRotation:()=>Ge,fromScaling:()=>Ve,fromTranslation:()=>Fe,fromValues:()=>Ie,identity:()=>Re,invert:()=>Me,mul:()=>et,multiply:()=>Pe,multiplyScalar:()=>qe,multiplyScalarAndAdd:()=>Ye,normalFromMat4:()=>ze,projection:()=>je,rotate:()=>Oe,scale:()=>De,set:()=>Ue,str:()=>Xe,sub:()=>tt,subtract:()=>We,translate:()=>ke,transpose:()=>Ce});var s={};n.r(s),n.d(s,{add:()=>Vt,adjoint:()=>ct,clone:()=>at,copy:()=>rt,create:()=>nt,determinant:()=>dt,equals:()=>Xt,exactEquals:()=>jt,frob:()=>Gt,fromQuat:()=>Mt,fromQuat2:()=>Et,fromRotation:()=>At,fromRotationTranslation:()=>xt,fromRotationTranslationScale:()=>Rt,fromRotationTranslationScaleOrigin:()=>Ct,fromScaling:()=>vt,fromTranslation:()=>wt,fromValues:()=>it,fromXRotation:()=>yt,fromYRotation:()=>St,fromZRotation:()=>Tt,frustum:()=>Bt,getRotation:()=>Ut,getScaling:()=>It,getTranslation:()=>Lt,identity:()=>lt,invert:()=>ut,lookAt:()=>Ot,mul:()=>$t,multiply:()=>ht,multiplyScalar:()=>Ht,multiplyScalarAndAdd:()=>zt,ortho:()=>kt,perspective:()=>Nt,perspectiveFromFieldOfView:()=>Pt,rotate:()=>pt,rotateX:()=>_t,rotateY:()=>gt,rotateZ:()=>bt,scale:()=>mt,set:()=>st,str:()=>Ft,sub:()=>Jt,subtract:()=>Kt,targetTo:()=>Dt,translate:()=>ft,transpose:()=>ot});var l={};n.r(l),n.d(l,{add:()=>tn,angle:()=>Cn,bezier:()=>Sn,ceil:()=>sn,clone:()=>qt,copy:()=>Qt,create:()=>Wt,cross:()=>vn,dist:()=>Gn,distance:()=>fn,div:()=>Fn,divide:()=>rn,dot:()=>wn,equals:()=>Pn,exactEquals:()=>Nn,floor:()=>ln,forEach:()=>zn,fromValues:()=>Zt,hermite:()=>yn,inverse:()=>gn,len:()=>Kn,length:()=>Yt,lerp:()=>An,max:()=>un,min:()=>on,mul:()=>Dn,multiply:()=>an,negate:()=>_n,normalize:()=>bn,random:()=>Tn,rotateX:()=>In,rotateY:()=>Un,rotateZ:()=>Rn,round:()=>cn,scale:()=>dn,scaleAndAdd:()=>hn,set:()=>en,sqrDist:()=>Vn,sqrLen:()=>Hn,squaredDistance:()=>mn,squaredLength:()=>pn,str:()=>Bn,sub:()=>On,subtract:()=>nn,transformMat3:()=>En,transformMat4:()=>xn,transformQuat:()=>Ln,zero:()=>Mn});var o={};n.r(o),n.d(o,{add:()=>qn,ceil:()=>ea,clone:()=>Xn,copy:()=>Jn,create:()=>jn,cross:()=>pa,dist:()=>La,distance:()=>la,div:()=>Ea,divide:()=>Qn,dot:()=>ma,equals:()=>Sa,exactEquals:()=>ya,floor:()=>ta,forEach:()=>Ca,fromValues:()=>$n,inverse:()=>ha,len:()=>Ua,length:()=>ua,lerp:()=>_a,max:()=>aa,min:()=>na,mul:()=>xa,multiply:()=>Zn,negate:()=>da,normalize:()=>fa,random:()=>ga,round:()=>ra,scale:()=>ia,scaleAndAdd:()=>sa,set:()=>Wn,sqrDist:()=>Ia,sqrLen:()=>Ra,squaredDistance:()=>oa,squaredLength:()=>ca,str:()=>Aa,sub:()=>Ta,subtract:()=>Yn,transformMat4:()=>ba,transformQuat:()=>wa,zero:()=>va});var u={};n.r(u),n.d(u,{add:()=>or,calculateW:()=>Va,clone:()=>rr,conjugate:()=>Ja,copy:()=>sr,create:()=>Ma,dot:()=>dr,equals:()=>wr,exactEquals:()=>br,exp:()=>Ka,fromEuler:()=>qa,fromMat3:()=>Wa,fromValues:()=>ir,getAngle:()=>ka,getAxisAngle:()=>Pa,identity:()=>Ba,invert:()=>$a,len:()=>mr,length:()=>fr,lerp:()=>hr,ln:()=>Ha,mul:()=>ur,multiply:()=>Oa,normalize:()=>gr,pow:()=>za,random:()=>Xa,rotateX:()=>Da,rotateY:()=>Fa,rotateZ:()=>Ga,rotationTo:()=>vr,scale:()=>cr,set:()=>lr,setAxes:()=>yr,setAxisAngle:()=>Na,slerp:()=>ja,sqlerp:()=>Ar,sqrLen:()=>_r,squaredLength:()=>pr,str:()=>Ya});var c={};n.r(c),n.d(c,{add:()=>Xr,clone:()=>Tr,conjugate:()=>Qr,copy:()=>Cr,create:()=>Sr,dot:()=>qr,equals:()=>li,exactEquals:()=>si,fromMat4:()=>Rr,fromRotation:()=>Ur,fromRotationTranslation:()=>Lr,fromRotationTranslationValues:()=>Er,fromTranslation:()=>Ir,fromValues:()=>xr,getDual:()=>Pr,getReal:()=>Nr,getTranslation:()=>Dr,identity:()=>Mr,invert:()=>Zr,len:()=>ti,length:()=>ei,lerp:()=>Yr,mul:()=>Jr,multiply:()=>$r,normalize:()=>ri,rotateAroundAxis:()=>jr,rotateByQuatAppend:()=>Hr,rotateByQuatPrepend:()=>zr,rotateX:()=>Gr,rotateY:()=>Vr,rotateZ:()=>Kr,scale:()=>Wr,set:()=>Br,setDual:()=>Or,setReal:()=>kr,sqrLen:()=>ai,squaredLength:()=>ni,str:()=>ii,translate:()=>Fr});var d={};n.r(d),n.d(d,{add:()=>fi,angle:()=>Gi,ceil:()=>gi,clone:()=>ui,copy:()=>di,create:()=>oi,cross:()=>Mi,dist:()=>Wi,distance:()=>Ti,div:()=>Ji,divide:()=>_i,dot:()=>Ci,equals:()=>zi,exactEquals:()=>Hi,floor:()=>bi,forEach:()=>Zi,fromValues:()=>ci,inverse:()=>Ui,len:()=>ji,length:()=>Ei,lerp:()=>Bi,max:()=>vi,min:()=>wi,mul:()=>$i,multiply:()=>pi,negate:()=>Ii,normalize:()=>Ri,random:()=>Ni,rotate:()=>Fi,round:()=>Ai,scale:()=>yi,scaleAndAdd:()=>Si,set:()=>hi,sqrDist:()=>qi,sqrLen:()=>Yi,squaredDistance:()=>xi,squaredLength:()=>Li,str:()=>Ki,sub:()=>Xi,subtract:()=>mi,transformMat2:()=>Pi,transformMat2d:()=>ki,transformMat3:()=>Oi,transformMat4:()=>Di,zero:()=>Vi});var h={};n.r(h),n.d(h,{glMatrix:()=>e,mat2:()=>t,mat2d:()=>r,mat3:()=>i,mat4:()=>s,quat:()=>u,quat2:()=>c,vec2:()=>d,vec3:()=>l,vec4:()=>o});var f={};n.r(f),n.d(f,{QUAT_DEFAULT:()=>is,QUAT_ZERO:()=>rs,VEC3_ONE:()=>as,VEC3_UNIT_X:()=>Qi,VEC3_UNIT_Y:()=>es,VEC3_UNIT_Z:()=>ts,VEC3_ZERO:()=>ns,distanceToPlane:()=>os,distanceToPlane2:()=>us,distanceToPlane3:()=>cs,normalizePlane:()=>ms,planeLength:()=>fs,quatLookAt:()=>ws,testCell:()=>hs,testSphere:()=>ds,unpackPlanes:()=>ps,unproject:()=>ls});var m={};n.r(m),n.d(m,{bezier:()=>Es,clamp:()=>Ss,copysign:()=>Ls,degToRad:()=>vs,hermite:()=>xs,isPowerOfTwo:()=>Us,lerp:()=>Ts,powerOfTwo:()=>Is,radToDeg:()=>As,randomInRange:()=>ys});var p={};n.r(p),n.d(p,{blobToImage:()=>Ns,blobToImageData:()=>Ps,imageDataToBlob:()=>ks,imageDataToDataUrl:()=>Os,imageDataToImage:()=>Ds,imageToImageData:()=>Fs,resizeImageData:()=>Gs});var _={};n.r(_),n.d(_,{basename:()=>Sl,extname:()=>Tl,filename:()=>xl});var g={};n.r(g),n.d(g,{JassAgent:()=>Yb,JassAiDifficulty:()=>ww,JassAllianceType:()=>cw,JassAttackType:()=>Zw,JassBlendMode:()=>jw,JassCameraField:()=>Fw,JassCameraSetup:()=>Gw,JassDamageType:()=>Qw,JassDialogEvent:()=>Lw,JassEffectType:()=>$w,JassEventId:()=>vw,JassFGameState:()=>mw,JassFogState:()=>Ww,JassForce:()=>tw,JassGameDifficulty:()=>Rw,JassGameEvent:()=>Aw,JassGameSpeed:()=>Uw,JassGameState:()=>hw,JassGameType:()=>Cw,JassGroup:()=>nw,JassHandle:()=>qb,JassHashtable:()=>av,JassIGameState:()=>fw,JassItemType:()=>Yw,JassLimitOp:()=>xw,JassLocation:()=>iw,JassMapControl:()=>kw,JassMapDensity:()=>Pw,JassMapFlag:()=>Mw,JassMapSetting:()=>Nw,JassMapVisibility:()=>Bw,JassPathingType:()=>nv,JassPlacement:()=>Kw,JassPlayer:()=>Zb,JassPlayerColor:()=>Vw,JassPlayerEvent:()=>yw,JassPlayerGameResult:()=>gw,JassPlayerScore:()=>_w,JassPlayerSlotState:()=>Ow,JassPlayerState:()=>pw,JassPlayerUnitEvent:()=>Sw,JassRace:()=>uw,JassRacePreference:()=>dw,JassRarityControl:()=>zw,JassRect:()=>lw,JassRegion:()=>sw,JassSoundType:()=>tv,JassStartLocPrio:()=>Hw,JassTexMapFlags:()=>Xw,JassTimer:()=>rw,JassTrigger:()=>aw,JassUnit:()=>ew,JassUnitEvent:()=>Tw,JassUnitState:()=>bw,JassUnitType:()=>Iw,JassVersion:()=>qw,JassVolumeGroup:()=>Dw,JassWeaponType:()=>ev,JassWeatherEffect:()=>Jw,JassWidget:()=>Qb,JassWidgetEvent:()=>Ew});var b={};n.r(b),n.d(b,{createCube:()=>pz,createCylinder:()=>wz,createFrustum:()=>Az,createRectangle:()=>fz,createSphere:()=>gz,createUnitCube:()=>_z,createUnitCylinder:()=>vz,createUnitRectangle:()=>mz,createUnitSphere:()=>bz});const w="5.12.0";var v=1e-6,A="undefined"!=typeof Float32Array?Float32Array:Array,y=Math.random;function S(e){A=e}var T=Math.PI/180;function x(e){return e*T}function E(e,t){return Math.abs(e-t)<=v*Math.max(1,Math.abs(e),Math.abs(t))}function L(){var e=new A(4);return A!=Float32Array&&(e[1]=0,e[2]=0),e[0]=1,e[3]=1,e}function I(e){var t=new A(4);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function U(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}function R(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e}function C(e,t,n,a){var r=new A(4);return r[0]=e,r[1]=t,r[2]=n,r[3]=a,r}function M(e,t,n,a,r){return e[0]=t,e[1]=n,e[2]=a,e[3]=r,e}function B(e,t){if(e===t){var n=t[1];e[1]=t[2],e[2]=n}else e[0]=t[0],e[1]=t[2],e[2]=t[1],e[3]=t[3];return e}function N(e,t){var n=t[0],a=t[1],r=t[2],i=t[3],s=n*i-r*a;return s?(s=1/s,e[0]=i*s,e[1]=-a*s,e[2]=-r*s,e[3]=n*s,e):null}function P(e,t){var n=t[0];return e[0]=t[3],e[1]=-t[1],e[2]=-t[2],e[3]=n,e}function k(e){return e[0]*e[3]-e[2]*e[1]}function O(e,t,n){var a=t[0],r=t[1],i=t[2],s=t[3],l=n[0],o=n[1],u=n[2],c=n[3];return e[0]=a*l+i*o,e[1]=r*l+s*o,e[2]=a*u+i*c,e[3]=r*u+s*c,e}function D(e,t,n){var a=t[0],r=t[1],i=t[2],s=t[3],l=Math.sin(n),o=Math.cos(n);return e[0]=a*o+i*l,e[1]=r*o+s*l,e[2]=a*-l+i*o,e[3]=r*-l+s*o,e}function F(e,t,n){var a=t[0],r=t[1],i=t[2],s=t[3],l=n[0],o=n[1];return e[0]=a*l,e[1]=r*l,e[2]=i*o,e[3]=s*o,e}function G(e,t){var n=Math.sin(t),a=Math.cos(t);return e[0]=a,e[1]=n,e[2]=-n,e[3]=a,e}function V(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=t[1],e}function K(e){return"mat2("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+")"}function H(e){return Math.hypot(e[0],e[1],e[2],e[3])}function z(e,t,n,a){return e[2]=a[2]/a[0],n[0]=a[0],n[1]=a[1],n[3]=a[3]-e[2]*n[1],[e,t,n]}function j(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e[3]=t[3]+n[3],e}function X(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e[3]=t[3]-n[3],e}function $(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]}function J(e,t){var n=e[0],a=e[1],r=e[2],i=e[3],s=t[0],l=t[1],o=t[2],u=t[3];return Math.abs(n-s)<=v*Math.max(1,Math.abs(n),Math.abs(s))&&Math.abs(a-l)<=v*Math.max(1,Math.abs(a),Math.abs(l))&&Math.abs(r-o)<=v*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(i-u)<=v*Math.max(1,Math.abs(i),Math.abs(u))}function W(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e}function q(e,t,n,a){return e[0]=t[0]+n[0]*a,e[1]=t[1]+n[1]*a,e[2]=t[2]+n[2]*a,e[3]=t[3]+n[3]*a,e}Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)});var Y=O,Z=X;function Q(){var e=new A(6);return A!=Float32Array&&(e[1]=0,e[2]=0,e[4]=0,e[5]=0),e[0]=1,e[3]=1,e}function ee(e){var t=new A(6);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t}function te(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e}function ne(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e[4]=0,e[5]=0,e}function ae(e,t,n,a,r,i){var s=new A(6);return s[0]=e,s[1]=t,s[2]=n,s[3]=a,s[4]=r,s[5]=i,s}function re(e,t,n,a,r,i,s){return e[0]=t,e[1]=n,e[2]=a,e[3]=r,e[4]=i,e[5]=s,e}function ie(e,t){var n=t[0],a=t[1],r=t[2],i=t[3],s=t[4],l=t[5],o=n*i-a*r;return o?(o=1/o,e[0]=i*o,e[1]=-a*o,e[2]=-r*o,e[3]=n*o,e[4]=(r*l-i*s)*o,e[5]=(a*s-n*l)*o,e):null}function se(e){return e[0]*e[3]-e[1]*e[2]}function le(e,t,n){var a=t[0],r=t[1],i=t[2],s=t[3],l=t[4],o=t[5],u=n[0],c=n[1],d=n[2],h=n[3],f=n[4],m=n[5];return e[0]=a*u+i*c,e[1]=r*u+s*c,e[2]=a*d+i*h,e[3]=r*d+s*h,e[4]=a*f+i*m+l,e[5]=r*f+s*m+o,e}function oe(e,t,n){var a=t[0],r=t[1],i=t[2],s=t[3],l=t[4],o=t[5],u=Math.sin(n),c=Math.cos(n);return e[0]=a*c+i*u,e[1]=r*c+s*u,e[2]=a*-u+i*c,e[3]=r*-u+s*c,e[4]=l,e[5]=o,e}function ue(e,t,n){var a=t[0],r=t[1],i=t[2],s=t[3],l=t[4],o=t[5],u=n[0],c=n[1];return e[0]=a*u,e[1]=r*u,e[2]=i*c,e[3]=s*c,e[4]=l,e[5]=o,e}function ce(e,t,n){var a=t[0],r=t[1],i=t[2],s=t[3],l=t[4],o=t[5],u=n[0],c=n[1];return e[0]=a,e[1]=r,e[2]=i,e[3]=s,e[4]=a*u+i*c+l,e[5]=r*u+s*c+o,e}function de(e,t){var n=Math.sin(t),a=Math.cos(t);return e[0]=a,e[1]=n,e[2]=-n,e[3]=a,e[4]=0,e[5]=0,e}function he(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=t[1],e[4]=0,e[5]=0,e}function fe(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e[4]=t[0],e[5]=t[1],e}function me(e){return"mat2d("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+")"}function pe(e){return Math.hypot(e[0],e[1],e[2],e[3],e[4],e[5],1)}function _e(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e[3]=t[3]+n[3],e[4]=t[4]+n[4],e[5]=t[5]+n[5],e}function ge(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e[3]=t[3]-n[3],e[4]=t[4]-n[4],e[5]=t[5]-n[5],e}function be(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*n,e[5]=t[5]*n,e}function we(e,t,n,a){return e[0]=t[0]+n[0]*a,e[1]=t[1]+n[1]*a,e[2]=t[2]+n[2]*a,e[3]=t[3]+n[3]*a,e[4]=t[4]+n[4]*a,e[5]=t[5]+n[5]*a,e}function ve(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]}function Ae(e,t){var n=e[0],a=e[1],r=e[2],i=e[3],s=e[4],l=e[5],o=t[0],u=t[1],c=t[2],d=t[3],h=t[4],f=t[5];return Math.abs(n-o)<=v*Math.max(1,Math.abs(n),Math.abs(o))&&Math.abs(a-u)<=v*Math.max(1,Math.abs(a),Math.abs(u))&&Math.abs(r-c)<=v*Math.max(1,Math.abs(r),Math.abs(c))&&Math.abs(i-d)<=v*Math.max(1,Math.abs(i),Math.abs(d))&&Math.abs(s-h)<=v*Math.max(1,Math.abs(s),Math.abs(h))&&Math.abs(l-f)<=v*Math.max(1,Math.abs(l),Math.abs(f))}var ye=le,Se=ge;function Te(){var e=new A(9);return A!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[5]=0,e[6]=0,e[7]=0),e[0]=1,e[4]=1,e[8]=1,e}function xe(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[4],e[4]=t[5],e[5]=t[6],e[6]=t[8],e[7]=t[9],e[8]=t[10],e}function Ee(e){var t=new A(9);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t}function Le(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e}function Ie(e,t,n,a,r,i,s,l,o){var u=new A(9);return u[0]=e,u[1]=t,u[2]=n,u[3]=a,u[4]=r,u[5]=i,u[6]=s,u[7]=l,u[8]=o,u}function Ue(e,t,n,a,r,i,s,l,o,u){return e[0]=t,e[1]=n,e[2]=a,e[3]=r,e[4]=i,e[5]=s,e[6]=l,e[7]=o,e[8]=u,e}function Re(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e}function Ce(e,t){if(e===t){var n=t[1],a=t[2],r=t[5];e[1]=t[3],e[2]=t[6],e[3]=n,e[5]=t[7],e[6]=a,e[7]=r}else e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8];return e}function Me(e,t){var n=t[0],a=t[1],r=t[2],i=t[3],s=t[4],l=t[5],o=t[6],u=t[7],c=t[8],d=c*s-l*u,h=-c*i+l*o,f=u*i-s*o,m=n*d+a*h+r*f;return m?(m=1/m,e[0]=d*m,e[1]=(-c*a+r*u)*m,e[2]=(l*a-r*s)*m,e[3]=h*m,e[4]=(c*n-r*o)*m,e[5]=(-l*n+r*i)*m,e[6]=f*m,e[7]=(-u*n+a*o)*m,e[8]=(s*n-a*i)*m,e):null}function Be(e,t){var n=t[0],a=t[1],r=t[2],i=t[3],s=t[4],l=t[5],o=t[6],u=t[7],c=t[8];return e[0]=s*c-l*u,e[1]=r*u-a*c,e[2]=a*l-r*s,e[3]=l*o-i*c,e[4]=n*c-r*o,e[5]=r*i-n*l,e[6]=i*u-s*o,e[7]=a*o-n*u,e[8]=n*s-a*i,e}function Ne(e){var t=e[0],n=e[1],a=e[2],r=e[3],i=e[4],s=e[5],l=e[6],o=e[7],u=e[8];return t*(u*i-s*o)+n*(-u*r+s*l)+a*(o*r-i*l)}function Pe(e,t,n){var a=t[0],r=t[1],i=t[2],s=t[3],l=t[4],o=t[5],u=t[6],c=t[7],d=t[8],h=n[0],f=n[1],m=n[2],p=n[3],_=n[4],g=n[5],b=n[6],w=n[7],v=n[8];return e[0]=h*a+f*s+m*u,e[1]=h*r+f*l+m*c,e[2]=h*i+f*o+m*d,e[3]=p*a+_*s+g*u,e[4]=p*r+_*l+g*c,e[5]=p*i+_*o+g*d,e[6]=b*a+w*s+v*u,e[7]=b*r+w*l+v*c,e[8]=b*i+w*o+v*d,e}function ke(e,t,n){var a=t[0],r=t[1],i=t[2],s=t[3],l=t[4],o=t[5],u=t[6],c=t[7],d=t[8],h=n[0],f=n[1];return e[0]=a,e[1]=r,e[2]=i,e[3]=s,e[4]=l,e[5]=o,e[6]=h*a+f*s+u,e[7]=h*r+f*l+c,e[8]=h*i+f*o+d,e}function Oe(e,t,n){var a=t[0],r=t[1],i=t[2],s=t[3],l=t[4],o=t[5],u=t[6],c=t[7],d=t[8],h=Math.sin(n),f=Math.cos(n);return e[0]=f*a+h*s,e[1]=f*r+h*l,e[2]=f*i+h*o,e[3]=f*s-h*a,e[4]=f*l-h*r,e[5]=f*o-h*i,e[6]=u,e[7]=c,e[8]=d,e}function De(e,t,n){var a=n[0],r=n[1];return e[0]=a*t[0],e[1]=a*t[1],e[2]=a*t[2],e[3]=r*t[3],e[4]=r*t[4],e[5]=r*t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e}function Fe(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=t[0],e[7]=t[1],e[8]=1,e}function Ge(e,t){var n=Math.sin(t),a=Math.cos(t);return e[0]=a,e[1]=n,e[2]=0,e[3]=-n,e[4]=a,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e}function Ve(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=t[1],e[5]=0,e[6]=0,e[7]=0,e[8]=1,e}function Ke(e,t){return e[0]=t[0],e[1]=t[1],e[2]=0,e[3]=t[2],e[4]=t[3],e[5]=0,e[6]=t[4],e[7]=t[5],e[8]=1,e}function He(e,t){var n=t[0],a=t[1],r=t[2],i=t[3],s=n+n,l=a+a,o=r+r,u=n*s,c=a*s,d=a*l,h=r*s,f=r*l,m=r*o,p=i*s,_=i*l,g=i*o;return e[0]=1-d-m,e[3]=c-g,e[6]=h+_,e[1]=c+g,e[4]=1-u-m,e[7]=f-p,e[2]=h-_,e[5]=f+p,e[8]=1-u-d,e}function ze(e,t){var n=t[0],a=t[1],r=t[2],i=t[3],s=t[4],l=t[5],o=t[6],u=t[7],c=t[8],d=t[9],h=t[10],f=t[11],m=t[12],p=t[13],_=t[14],g=t[15],b=n*l-a*s,w=n*o-r*s,v=n*u-i*s,A=a*o-r*l,y=a*u-i*l,S=r*u-i*o,T=c*p-d*m,x=c*_-h*m,E=c*g-f*m,L=d*_-h*p,I=d*g-f*p,U=h*g-f*_,R=b*U-w*I+v*L+A*E-y*x+S*T;return R?(R=1/R,e[0]=(l*U-o*I+u*L)*R,e[1]=(o*E-s*U-u*x)*R,e[2]=(s*I-l*E+u*T)*R,e[3]=(r*I-a*U-i*L)*R,e[4]=(n*U-r*E+i*x)*R,e[5]=(a*E-n*I-i*T)*R,e[6]=(p*S-_*y+g*A)*R,e[7]=(_*v-m*S-g*w)*R,e[8]=(m*y-p*v+g*b)*R,e):null}function je(e,t,n){return e[0]=2/t,e[1]=0,e[2]=0,e[3]=0,e[4]=-2/n,e[5]=0,e[6]=-1,e[7]=1,e[8]=1,e}function Xe(e){return"mat3("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+", "+e[6]+", "+e[7]+", "+e[8]+")"}function $e(e){return Math.hypot(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])}function Je(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e[3]=t[3]+n[3],e[4]=t[4]+n[4],e[5]=t[5]+n[5],e[6]=t[6]+n[6],e[7]=t[7]+n[7],e[8]=t[8]+n[8],e}function We(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e[3]=t[3]-n[3],e[4]=t[4]-n[4],e[5]=t[5]-n[5],e[6]=t[6]-n[6],e[7]=t[7]-n[7],e[8]=t[8]-n[8],e}function qe(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*n,e[5]=t[5]*n,e[6]=t[6]*n,e[7]=t[7]*n,e[8]=t[8]*n,e}function Ye(e,t,n,a){return e[0]=t[0]+n[0]*a,e[1]=t[1]+n[1]*a,e[2]=t[2]+n[2]*a,e[3]=t[3]+n[3]*a,e[4]=t[4]+n[4]*a,e[5]=t[5]+n[5]*a,e[6]=t[6]+n[6]*a,e[7]=t[7]+n[7]*a,e[8]=t[8]+n[8]*a,e}function Ze(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]}function Qe(e,t){var n=e[0],a=e[1],r=e[2],i=e[3],s=e[4],l=e[5],o=e[6],u=e[7],c=e[8],d=t[0],h=t[1],f=t[2],m=t[3],p=t[4],_=t[5],g=t[6],b=t[7],w=t[8];return Math.abs(n-d)<=v*Math.max(1,Math.abs(n),Math.abs(d))&&Math.abs(a-h)<=v*Math.max(1,Math.abs(a),Math.abs(h))&&Math.abs(r-f)<=v*Math.max(1,Math.abs(r),Math.abs(f))&&Math.abs(i-m)<=v*Math.max(1,Math.abs(i),Math.abs(m))&&Math.abs(s-p)<=v*Math.max(1,Math.abs(s),Math.abs(p))&&Math.abs(l-_)<=v*Math.max(1,Math.abs(l),Math.abs(_))&&Math.abs(o-g)<=v*Math.max(1,Math.abs(o),Math.abs(g))&&Math.abs(u-b)<=v*Math.max(1,Math.abs(u),Math.abs(b))&&Math.abs(c-w)<=v*Math.max(1,Math.abs(c),Math.abs(w))}var et=Pe,tt=We;function nt(){var e=new A(16);return A!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function at(e){var t=new A(16);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function rt(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function it(e,t,n,a,r,i,s,l,o,u,c,d,h,f,m,p){var _=new A(16);return _[0]=e,_[1]=t,_[2]=n,_[3]=a,_[4]=r,_[5]=i,_[6]=s,_[7]=l,_[8]=o,_[9]=u,_[10]=c,_[11]=d,_[12]=h,_[13]=f,_[14]=m,_[15]=p,_}function st(e,t,n,a,r,i,s,l,o,u,c,d,h,f,m,p,_){return e[0]=t,e[1]=n,e[2]=a,e[3]=r,e[4]=i,e[5]=s,e[6]=l,e[7]=o,e[8]=u,e[9]=c,e[10]=d,e[11]=h,e[12]=f,e[13]=m,e[14]=p,e[15]=_,e}function lt(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function ot(e,t){if(e===t){var n=t[1],a=t[2],r=t[3],i=t[6],s=t[7],l=t[11];e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=n,e[6]=t[9],e[7]=t[13],e[8]=a,e[9]=i,e[11]=t[14],e[12]=r,e[13]=s,e[14]=l}else e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15];return e}function ut(e,t){var n=t[0],a=t[1],r=t[2],i=t[3],s=t[4],l=t[5],o=t[6],u=t[7],c=t[8],d=t[9],h=t[10],f=t[11],m=t[12],p=t[13],_=t[14],g=t[15],b=n*l-a*s,w=n*o-r*s,v=n*u-i*s,A=a*o-r*l,y=a*u-i*l,S=r*u-i*o,T=c*p-d*m,x=c*_-h*m,E=c*g-f*m,L=d*_-h*p,I=d*g-f*p,U=h*g-f*_,R=b*U-w*I+v*L+A*E-y*x+S*T;return R?(R=1/R,e[0]=(l*U-o*I+u*L)*R,e[1]=(r*I-a*U-i*L)*R,e[2]=(p*S-_*y+g*A)*R,e[3]=(h*y-d*S-f*A)*R,e[4]=(o*E-s*U-u*x)*R,e[5]=(n*U-r*E+i*x)*R,e[6]=(_*v-m*S-g*w)*R,e[7]=(c*S-h*v+f*w)*R,e[8]=(s*I-l*E+u*T)*R,e[9]=(a*E-n*I-i*T)*R,e[10]=(m*y-p*v+g*b)*R,e[11]=(d*v-c*y-f*b)*R,e[12]=(l*x-s*L-o*T)*R,e[13]=(n*L-a*x+r*T)*R,e[14]=(p*w-m*A-_*b)*R,e[15]=(c*A-d*w+h*b)*R,e):null}function ct(e,t){var n=t[0],a=t[1],r=t[2],i=t[3],s=t[4],l=t[5],o=t[6],u=t[7],c=t[8],d=t[9],h=t[10],f=t[11],m=t[12],p=t[13],_=t[14],g=t[15];return e[0]=l*(h*g-f*_)-d*(o*g-u*_)+p*(o*f-u*h),e[1]=-(a*(h*g-f*_)-d*(r*g-i*_)+p*(r*f-i*h)),e[2]=a*(o*g-u*_)-l*(r*g-i*_)+p*(r*u-i*o),e[3]=-(a*(o*f-u*h)-l*(r*f-i*h)+d*(r*u-i*o)),e[4]=-(s*(h*g-f*_)-c*(o*g-u*_)+m*(o*f-u*h)),e[5]=n*(h*g-f*_)-c*(r*g-i*_)+m*(r*f-i*h),e[6]=-(n*(o*g-u*_)-s*(r*g-i*_)+m*(r*u-i*o)),e[7]=n*(o*f-u*h)-s*(r*f-i*h)+c*(r*u-i*o),e[8]=s*(d*g-f*p)-c*(l*g-u*p)+m*(l*f-u*d),e[9]=-(n*(d*g-f*p)-c*(a*g-i*p)+m*(a*f-i*d)),e[10]=n*(l*g-u*p)-s*(a*g-i*p)+m*(a*u-i*l),e[11]=-(n*(l*f-u*d)-s*(a*f-i*d)+c*(a*u-i*l)),e[12]=-(s*(d*_-h*p)-c*(l*_-o*p)+m*(l*h-o*d)),e[13]=n*(d*_-h*p)-c*(a*_-r*p)+m*(a*h-r*d),e[14]=-(n*(l*_-o*p)-s*(a*_-r*p)+m*(a*o-r*l)),e[15]=n*(l*h-o*d)-s*(a*h-r*d)+c*(a*o-r*l),e}function dt(e){var t=e[0],n=e[1],a=e[2],r=e[3],i=e[4],s=e[5],l=e[6],o=e[7],u=e[8],c=e[9],d=e[10],h=e[11],f=e[12],m=e[13],p=e[14],_=e[15];return(t*s-n*i)*(d*_-h*p)-(t*l-a*i)*(c*_-h*m)+(t*o-r*i)*(c*p-d*m)+(n*l-a*s)*(u*_-h*f)-(n*o-r*s)*(u*p-d*f)+(a*o-r*l)*(u*m-c*f)}function ht(e,t,n){var a=t[0],r=t[1],i=t[2],s=t[3],l=t[4],o=t[5],u=t[6],c=t[7],d=t[8],h=t[9],f=t[10],m=t[11],p=t[12],_=t[13],g=t[14],b=t[15],w=n[0],v=n[1],A=n[2],y=n[3];return e[0]=w*a+v*l+A*d+y*p,e[1]=w*r+v*o+A*h+y*_,e[2]=w*i+v*u+A*f+y*g,e[3]=w*s+v*c+A*m+y*b,w=n[4],v=n[5],A=n[6],y=n[7],e[4]=w*a+v*l+A*d+y*p,e[5]=w*r+v*o+A*h+y*_,e[6]=w*i+v*u+A*f+y*g,e[7]=w*s+v*c+A*m+y*b,w=n[8],v=n[9],A=n[10],y=n[11],e[8]=w*a+v*l+A*d+y*p,e[9]=w*r+v*o+A*h+y*_,e[10]=w*i+v*u+A*f+y*g,e[11]=w*s+v*c+A*m+y*b,w=n[12],v=n[13],A=n[14],y=n[15],e[12]=w*a+v*l+A*d+y*p,e[13]=w*r+v*o+A*h+y*_,e[14]=w*i+v*u+A*f+y*g,e[15]=w*s+v*c+A*m+y*b,e}function ft(e,t,n){var a,r,i,s,l,o,u,c,d,h,f,m,p=n[0],_=n[1],g=n[2];return t===e?(e[12]=t[0]*p+t[4]*_+t[8]*g+t[12],e[13]=t[1]*p+t[5]*_+t[9]*g+t[13],e[14]=t[2]*p+t[6]*_+t[10]*g+t[14],e[15]=t[3]*p+t[7]*_+t[11]*g+t[15]):(a=t[0],r=t[1],i=t[2],s=t[3],l=t[4],o=t[5],u=t[6],c=t[7],d=t[8],h=t[9],f=t[10],m=t[11],e[0]=a,e[1]=r,e[2]=i,e[3]=s,e[4]=l,e[5]=o,e[6]=u,e[7]=c,e[8]=d,e[9]=h,e[10]=f,e[11]=m,e[12]=a*p+l*_+d*g+t[12],e[13]=r*p+o*_+h*g+t[13],e[14]=i*p+u*_+f*g+t[14],e[15]=s*p+c*_+m*g+t[15]),e}function mt(e,t,n){var a=n[0],r=n[1],i=n[2];return e[0]=t[0]*a,e[1]=t[1]*a,e[2]=t[2]*a,e[3]=t[3]*a,e[4]=t[4]*r,e[5]=t[5]*r,e[6]=t[6]*r,e[7]=t[7]*r,e[8]=t[8]*i,e[9]=t[9]*i,e[10]=t[10]*i,e[11]=t[11]*i,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function pt(e,t,n,a){var r,i,s,l,o,u,c,d,h,f,m,p,_,g,b,w,A,y,S,T,x,E,L,I,U=a[0],R=a[1],C=a[2],M=Math.hypot(U,R,C);return M<v?null:(U*=M=1/M,R*=M,C*=M,r=Math.sin(n),s=1-(i=Math.cos(n)),l=t[0],o=t[1],u=t[2],c=t[3],d=t[4],h=t[5],f=t[6],m=t[7],p=t[8],_=t[9],g=t[10],b=t[11],w=U*U*s+i,A=R*U*s+C*r,y=C*U*s-R*r,S=U*R*s-C*r,T=R*R*s+i,x=C*R*s+U*r,E=U*C*s+R*r,L=R*C*s-U*r,I=C*C*s+i,e[0]=l*w+d*A+p*y,e[1]=o*w+h*A+_*y,e[2]=u*w+f*A+g*y,e[3]=c*w+m*A+b*y,e[4]=l*S+d*T+p*x,e[5]=o*S+h*T+_*x,e[6]=u*S+f*T+g*x,e[7]=c*S+m*T+b*x,e[8]=l*E+d*L+p*I,e[9]=o*E+h*L+_*I,e[10]=u*E+f*L+g*I,e[11]=c*E+m*L+b*I,t!==e&&(e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e)}function _t(e,t,n){var a=Math.sin(n),r=Math.cos(n),i=t[4],s=t[5],l=t[6],o=t[7],u=t[8],c=t[9],d=t[10],h=t[11];return t!==e&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[4]=i*r+u*a,e[5]=s*r+c*a,e[6]=l*r+d*a,e[7]=o*r+h*a,e[8]=u*r-i*a,e[9]=c*r-s*a,e[10]=d*r-l*a,e[11]=h*r-o*a,e}function gt(e,t,n){var a=Math.sin(n),r=Math.cos(n),i=t[0],s=t[1],l=t[2],o=t[3],u=t[8],c=t[9],d=t[10],h=t[11];return t!==e&&(e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=i*r-u*a,e[1]=s*r-c*a,e[2]=l*r-d*a,e[3]=o*r-h*a,e[8]=i*a+u*r,e[9]=s*a+c*r,e[10]=l*a+d*r,e[11]=o*a+h*r,e}function bt(e,t,n){var a=Math.sin(n),r=Math.cos(n),i=t[0],s=t[1],l=t[2],o=t[3],u=t[4],c=t[5],d=t[6],h=t[7];return t!==e&&(e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=i*r+u*a,e[1]=s*r+c*a,e[2]=l*r+d*a,e[3]=o*r+h*a,e[4]=u*r-i*a,e[5]=c*r-s*a,e[6]=d*r-l*a,e[7]=h*r-o*a,e}function wt(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=t[0],e[13]=t[1],e[14]=t[2],e[15]=1,e}function vt(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=t[1],e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=t[2],e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function At(e,t,n){var a,r,i,s=n[0],l=n[1],o=n[2],u=Math.hypot(s,l,o);return u<v?null:(s*=u=1/u,l*=u,o*=u,a=Math.sin(t),i=1-(r=Math.cos(t)),e[0]=s*s*i+r,e[1]=l*s*i+o*a,e[2]=o*s*i-l*a,e[3]=0,e[4]=s*l*i-o*a,e[5]=l*l*i+r,e[6]=o*l*i+s*a,e[7]=0,e[8]=s*o*i+l*a,e[9]=l*o*i-s*a,e[10]=o*o*i+r,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e)}function yt(e,t){var n=Math.sin(t),a=Math.cos(t);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=a,e[6]=n,e[7]=0,e[8]=0,e[9]=-n,e[10]=a,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function St(e,t){var n=Math.sin(t),a=Math.cos(t);return e[0]=a,e[1]=0,e[2]=-n,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=n,e[9]=0,e[10]=a,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function Tt(e,t){var n=Math.sin(t),a=Math.cos(t);return e[0]=a,e[1]=n,e[2]=0,e[3]=0,e[4]=-n,e[5]=a,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function xt(e,t,n){var a=t[0],r=t[1],i=t[2],s=t[3],l=a+a,o=r+r,u=i+i,c=a*l,d=a*o,h=a*u,f=r*o,m=r*u,p=i*u,_=s*l,g=s*o,b=s*u;return e[0]=1-(f+p),e[1]=d+b,e[2]=h-g,e[3]=0,e[4]=d-b,e[5]=1-(c+p),e[6]=m+_,e[7]=0,e[8]=h+g,e[9]=m-_,e[10]=1-(c+f),e[11]=0,e[12]=n[0],e[13]=n[1],e[14]=n[2],e[15]=1,e}function Et(e,t){var n=new A(3),a=-t[0],r=-t[1],i=-t[2],s=t[3],l=t[4],o=t[5],u=t[6],c=t[7],d=a*a+r*r+i*i+s*s;return d>0?(n[0]=2*(l*s+c*a+o*i-u*r)/d,n[1]=2*(o*s+c*r+u*a-l*i)/d,n[2]=2*(u*s+c*i+l*r-o*a)/d):(n[0]=2*(l*s+c*a+o*i-u*r),n[1]=2*(o*s+c*r+u*a-l*i),n[2]=2*(u*s+c*i+l*r-o*a)),xt(e,t,n),e}function Lt(e,t){return e[0]=t[12],e[1]=t[13],e[2]=t[14],e}function It(e,t){var n=t[0],a=t[1],r=t[2],i=t[4],s=t[5],l=t[6],o=t[8],u=t[9],c=t[10];return e[0]=Math.hypot(n,a,r),e[1]=Math.hypot(i,s,l),e[2]=Math.hypot(o,u,c),e}function Ut(e,t){var n=new A(3);It(n,t);var a=1/n[0],r=1/n[1],i=1/n[2],s=t[0]*a,l=t[1]*r,o=t[2]*i,u=t[4]*a,c=t[5]*r,d=t[6]*i,h=t[8]*a,f=t[9]*r,m=t[10]*i,p=s+c+m,_=0;return p>0?(_=2*Math.sqrt(p+1),e[3]=.25*_,e[0]=(d-f)/_,e[1]=(h-o)/_,e[2]=(l-u)/_):s>c&&s>m?(_=2*Math.sqrt(1+s-c-m),e[3]=(d-f)/_,e[0]=.25*_,e[1]=(l+u)/_,e[2]=(h+o)/_):c>m?(_=2*Math.sqrt(1+c-s-m),e[3]=(h-o)/_,e[0]=(l+u)/_,e[1]=.25*_,e[2]=(d+f)/_):(_=2*Math.sqrt(1+m-s-c),e[3]=(l-u)/_,e[0]=(h+o)/_,e[1]=(d+f)/_,e[2]=.25*_),e}function Rt(e,t,n,a){var r=t[0],i=t[1],s=t[2],l=t[3],o=r+r,u=i+i,c=s+s,d=r*o,h=r*u,f=r*c,m=i*u,p=i*c,_=s*c,g=l*o,b=l*u,w=l*c,v=a[0],A=a[1],y=a[2];return e[0]=(1-(m+_))*v,e[1]=(h+w)*v,e[2]=(f-b)*v,e[3]=0,e[4]=(h-w)*A,e[5]=(1-(d+_))*A,e[6]=(p+g)*A,e[7]=0,e[8]=(f+b)*y,e[9]=(p-g)*y,e[10]=(1-(d+m))*y,e[11]=0,e[12]=n[0],e[13]=n[1],e[14]=n[2],e[15]=1,e}function Ct(e,t,n,a,r){var i=t[0],s=t[1],l=t[2],o=t[3],u=i+i,c=s+s,d=l+l,h=i*u,f=i*c,m=i*d,p=s*c,_=s*d,g=l*d,b=o*u,w=o*c,v=o*d,A=a[0],y=a[1],S=a[2],T=r[0],x=r[1],E=r[2],L=(1-(p+g))*A,I=(f+v)*A,U=(m-w)*A,R=(f-v)*y,C=(1-(h+g))*y,M=(_+b)*y,B=(m+w)*S,N=(_-b)*S,P=(1-(h+p))*S;return e[0]=L,e[1]=I,e[2]=U,e[3]=0,e[4]=R,e[5]=C,e[6]=M,e[7]=0,e[8]=B,e[9]=N,e[10]=P,e[11]=0,e[12]=n[0]+T-(L*T+R*x+B*E),e[13]=n[1]+x-(I*T+C*x+N*E),e[14]=n[2]+E-(U*T+M*x+P*E),e[15]=1,e}function Mt(e,t){var n=t[0],a=t[1],r=t[2],i=t[3],s=n+n,l=a+a,o=r+r,u=n*s,c=a*s,d=a*l,h=r*s,f=r*l,m=r*o,p=i*s,_=i*l,g=i*o;return e[0]=1-d-m,e[1]=c+g,e[2]=h-_,e[3]=0,e[4]=c-g,e[5]=1-u-m,e[6]=f+p,e[7]=0,e[8]=h+_,e[9]=f-p,e[10]=1-u-d,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function Bt(e,t,n,a,r,i,s){var l=1/(n-t),o=1/(r-a),u=1/(i-s);return e[0]=2*i*l,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=2*i*o,e[6]=0,e[7]=0,e[8]=(n+t)*l,e[9]=(r+a)*o,e[10]=(s+i)*u,e[11]=-1,e[12]=0,e[13]=0,e[14]=s*i*2*u,e[15]=0,e}function Nt(e,t,n,a,r){var i,s=1/Math.tan(t/2);return e[0]=s/n,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=s,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,null!=r&&r!==1/0?(i=1/(a-r),e[10]=(r+a)*i,e[14]=2*r*a*i):(e[10]=-1,e[14]=-2*a),e}function Pt(e,t,n,a){var r=Math.tan(t.upDegrees*Math.PI/180),i=Math.tan(t.downDegrees*Math.PI/180),s=Math.tan(t.leftDegrees*Math.PI/180),l=Math.tan(t.rightDegrees*Math.PI/180),o=2/(s+l),u=2/(r+i);return e[0]=o,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=u,e[6]=0,e[7]=0,e[8]=-(s-l)*o*.5,e[9]=(r-i)*u*.5,e[10]=a/(n-a),e[11]=-1,e[12]=0,e[13]=0,e[14]=a*n/(n-a),e[15]=0,e}function kt(e,t,n,a,r,i,s){var l=1/(t-n),o=1/(a-r),u=1/(i-s);return e[0]=-2*l,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*o,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*u,e[11]=0,e[12]=(t+n)*l,e[13]=(r+a)*o,e[14]=(s+i)*u,e[15]=1,e}function Ot(e,t,n,a){var r,i,s,l,o,u,c,d,h,f,m=t[0],p=t[1],_=t[2],g=a[0],b=a[1],w=a[2],A=n[0],y=n[1],S=n[2];return Math.abs(m-A)<v&&Math.abs(p-y)<v&&Math.abs(_-S)<v?lt(e):(c=m-A,d=p-y,h=_-S,r=b*(h*=f=1/Math.hypot(c,d,h))-w*(d*=f),i=w*(c*=f)-g*h,s=g*d-b*c,(f=Math.hypot(r,i,s))?(r*=f=1/f,i*=f,s*=f):(r=0,i=0,s=0),l=d*s-h*i,o=h*r-c*s,u=c*i-d*r,(f=Math.hypot(l,o,u))?(l*=f=1/f,o*=f,u*=f):(l=0,o=0,u=0),e[0]=r,e[1]=l,e[2]=c,e[3]=0,e[4]=i,e[5]=o,e[6]=d,e[7]=0,e[8]=s,e[9]=u,e[10]=h,e[11]=0,e[12]=-(r*m+i*p+s*_),e[13]=-(l*m+o*p+u*_),e[14]=-(c*m+d*p+h*_),e[15]=1,e)}function Dt(e,t,n,a){var r=t[0],i=t[1],s=t[2],l=a[0],o=a[1],u=a[2],c=r-n[0],d=i-n[1],h=s-n[2],f=c*c+d*d+h*h;f>0&&(c*=f=1/Math.sqrt(f),d*=f,h*=f);var m=o*h-u*d,p=u*c-l*h,_=l*d-o*c;return(f=m*m+p*p+_*_)>0&&(m*=f=1/Math.sqrt(f),p*=f,_*=f),e[0]=m,e[1]=p,e[2]=_,e[3]=0,e[4]=d*_-h*p,e[5]=h*m-c*_,e[6]=c*p-d*m,e[7]=0,e[8]=c,e[9]=d,e[10]=h,e[11]=0,e[12]=r,e[13]=i,e[14]=s,e[15]=1,e}function Ft(e){return"mat4("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+", "+e[6]+", "+e[7]+", "+e[8]+", "+e[9]+", "+e[10]+", "+e[11]+", "+e[12]+", "+e[13]+", "+e[14]+", "+e[15]+")"}function Gt(e){return Math.hypot(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])}function Vt(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e[3]=t[3]+n[3],e[4]=t[4]+n[4],e[5]=t[5]+n[5],e[6]=t[6]+n[6],e[7]=t[7]+n[7],e[8]=t[8]+n[8],e[9]=t[9]+n[9],e[10]=t[10]+n[10],e[11]=t[11]+n[11],e[12]=t[12]+n[12],e[13]=t[13]+n[13],e[14]=t[14]+n[14],e[15]=t[15]+n[15],e}function Kt(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e[3]=t[3]-n[3],e[4]=t[4]-n[4],e[5]=t[5]-n[5],e[6]=t[6]-n[6],e[7]=t[7]-n[7],e[8]=t[8]-n[8],e[9]=t[9]-n[9],e[10]=t[10]-n[10],e[11]=t[11]-n[11],e[12]=t[12]-n[12],e[13]=t[13]-n[13],e[14]=t[14]-n[14],e[15]=t[15]-n[15],e}function Ht(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*n,e[5]=t[5]*n,e[6]=t[6]*n,e[7]=t[7]*n,e[8]=t[8]*n,e[9]=t[9]*n,e[10]=t[10]*n,e[11]=t[11]*n,e[12]=t[12]*n,e[13]=t[13]*n,e[14]=t[14]*n,e[15]=t[15]*n,e}function zt(e,t,n,a){return e[0]=t[0]+n[0]*a,e[1]=t[1]+n[1]*a,e[2]=t[2]+n[2]*a,e[3]=t[3]+n[3]*a,e[4]=t[4]+n[4]*a,e[5]=t[5]+n[5]*a,e[6]=t[6]+n[6]*a,e[7]=t[7]+n[7]*a,e[8]=t[8]+n[8]*a,e[9]=t[9]+n[9]*a,e[10]=t[10]+n[10]*a,e[11]=t[11]+n[11]*a,e[12]=t[12]+n[12]*a,e[13]=t[13]+n[13]*a,e[14]=t[14]+n[14]*a,e[15]=t[15]+n[15]*a,e}function jt(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[11]===t[11]&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[15]===t[15]}function Xt(e,t){var n=e[0],a=e[1],r=e[2],i=e[3],s=e[4],l=e[5],o=e[6],u=e[7],c=e[8],d=e[9],h=e[10],f=e[11],m=e[12],p=e[13],_=e[14],g=e[15],b=t[0],w=t[1],A=t[2],y=t[3],S=t[4],T=t[5],x=t[6],E=t[7],L=t[8],I=t[9],U=t[10],R=t[11],C=t[12],M=t[13],B=t[14],N=t[15];return Math.abs(n-b)<=v*Math.max(1,Math.abs(n),Math.abs(b))&&Math.abs(a-w)<=v*Math.max(1,Math.abs(a),Math.abs(w))&&Math.abs(r-A)<=v*Math.max(1,Math.abs(r),Math.abs(A))&&Math.abs(i-y)<=v*Math.max(1,Math.abs(i),Math.abs(y))&&Math.abs(s-S)<=v*Math.max(1,Math.abs(s),Math.abs(S))&&Math.abs(l-T)<=v*Math.max(1,Math.abs(l),Math.abs(T))&&Math.abs(o-x)<=v*Math.max(1,Math.abs(o),Math.abs(x))&&Math.abs(u-E)<=v*Math.max(1,Math.abs(u),Math.abs(E))&&Math.abs(c-L)<=v*Math.max(1,Math.abs(c),Math.abs(L))&&Math.abs(d-I)<=v*Math.max(1,Math.abs(d),Math.abs(I))&&Math.abs(h-U)<=v*Math.max(1,Math.abs(h),Math.abs(U))&&Math.abs(f-R)<=v*Math.max(1,Math.abs(f),Math.abs(R))&&Math.abs(m-C)<=v*Math.max(1,Math.abs(m),Math.abs(C))&&Math.abs(p-M)<=v*Math.max(1,Math.abs(p),Math.abs(M))&&Math.abs(_-B)<=v*Math.max(1,Math.abs(_),Math.abs(B))&&Math.abs(g-N)<=v*Math.max(1,Math.abs(g),Math.abs(N))}var $t=ht,Jt=Kt;function Wt(){var e=new A(3);return A!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function qt(e){var t=new A(3);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function Yt(e){var t=e[0],n=e[1],a=e[2];return Math.hypot(t,n,a)}function Zt(e,t,n){var a=new A(3);return a[0]=e,a[1]=t,a[2]=n,a}function Qt(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function en(e,t,n,a){return e[0]=t,e[1]=n,e[2]=a,e}function tn(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e}function nn(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e}function an(e,t,n){return e[0]=t[0]*n[0],e[1]=t[1]*n[1],e[2]=t[2]*n[2],e}function rn(e,t,n){return e[0]=t[0]/n[0],e[1]=t[1]/n[1],e[2]=t[2]/n[2],e}function sn(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e[2]=Math.ceil(t[2]),e}function ln(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e[2]=Math.floor(t[2]),e}function on(e,t,n){return e[0]=Math.min(t[0],n[0]),e[1]=Math.min(t[1],n[1]),e[2]=Math.min(t[2],n[2]),e}function un(e,t,n){return e[0]=Math.max(t[0],n[0]),e[1]=Math.max(t[1],n[1]),e[2]=Math.max(t[2],n[2]),e}function cn(e,t){return e[0]=Math.round(t[0]),e[1]=Math.round(t[1]),e[2]=Math.round(t[2]),e}function dn(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e}function hn(e,t,n,a){return e[0]=t[0]+n[0]*a,e[1]=t[1]+n[1]*a,e[2]=t[2]+n[2]*a,e}function fn(e,t){var n=t[0]-e[0],a=t[1]-e[1],r=t[2]-e[2];return Math.hypot(n,a,r)}function mn(e,t){var n=t[0]-e[0],a=t[1]-e[1],r=t[2]-e[2];return n*n+a*a+r*r}function pn(e){var t=e[0],n=e[1],a=e[2];return t*t+n*n+a*a}function _n(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e}function gn(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e}function bn(e,t){var n=t[0],a=t[1],r=t[2],i=n*n+a*a+r*r;return i>0&&(i=1/Math.sqrt(i)),e[0]=t[0]*i,e[1]=t[1]*i,e[2]=t[2]*i,e}function wn(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function vn(e,t,n){var a=t[0],r=t[1],i=t[2],s=n[0],l=n[1],o=n[2];return e[0]=r*o-i*l,e[1]=i*s-a*o,e[2]=a*l-r*s,e}function An(e,t,n,a){var r=t[0],i=t[1],s=t[2];return e[0]=r+a*(n[0]-r),e[1]=i+a*(n[1]-i),e[2]=s+a*(n[2]-s),e}function yn(e,t,n,a,r,i){var s=i*i,l=s*(2*i-3)+1,o=s*(i-2)+i,u=s*(i-1),c=s*(3-2*i);return e[0]=t[0]*l+n[0]*o+a[0]*u+r[0]*c,e[1]=t[1]*l+n[1]*o+a[1]*u+r[1]*c,e[2]=t[2]*l+n[2]*o+a[2]*u+r[2]*c,e}function Sn(e,t,n,a,r,i){var s=1-i,l=s*s,o=i*i,u=l*s,c=3*i*l,d=3*o*s,h=o*i;return e[0]=t[0]*u+n[0]*c+a[0]*d+r[0]*h,e[1]=t[1]*u+n[1]*c+a[1]*d+r[1]*h,e[2]=t[2]*u+n[2]*c+a[2]*d+r[2]*h,e}function Tn(e,t){t=t||1;var n=2*y()*Math.PI,a=2*y()-1,r=Math.sqrt(1-a*a)*t;return e[0]=Math.cos(n)*r,e[1]=Math.sin(n)*r,e[2]=a*t,e}function xn(e,t,n){var a=t[0],r=t[1],i=t[2],s=n[3]*a+n[7]*r+n[11]*i+n[15];return s=s||1,e[0]=(n[0]*a+n[4]*r+n[8]*i+n[12])/s,e[1]=(n[1]*a+n[5]*r+n[9]*i+n[13])/s,e[2]=(n[2]*a+n[6]*r+n[10]*i+n[14])/s,e}function En(e,t,n){var a=t[0],r=t[1],i=t[2];return e[0]=a*n[0]+r*n[3]+i*n[6],e[1]=a*n[1]+r*n[4]+i*n[7],e[2]=a*n[2]+r*n[5]+i*n[8],e}function Ln(e,t,n){var a=n[0],r=n[1],i=n[2],s=n[3],l=t[0],o=t[1],u=t[2],c=r*u-i*o,d=i*l-a*u,h=a*o-r*l,f=r*h-i*d,m=i*c-a*h,p=a*d-r*c,_=2*s;return c*=_,d*=_,h*=_,f*=2,m*=2,p*=2,e[0]=l+c+f,e[1]=o+d+m,e[2]=u+h+p,e}function In(e,t,n,a){var r=[],i=[];return r[0]=t[0]-n[0],r[1]=t[1]-n[1],r[2]=t[2]-n[2],i[0]=r[0],i[1]=r[1]*Math.cos(a)-r[2]*Math.sin(a),i[2]=r[1]*Math.sin(a)+r[2]*Math.cos(a),e[0]=i[0]+n[0],e[1]=i[1]+n[1],e[2]=i[2]+n[2],e}function Un(e,t,n,a){var r=[],i=[];return r[0]=t[0]-n[0],r[1]=t[1]-n[1],r[2]=t[2]-n[2],i[0]=r[2]*Math.sin(a)+r[0]*Math.cos(a),i[1]=r[1],i[2]=r[2]*Math.cos(a)-r[0]*Math.sin(a),e[0]=i[0]+n[0],e[1]=i[1]+n[1],e[2]=i[2]+n[2],e}function Rn(e,t,n,a){var r=[],i=[];return r[0]=t[0]-n[0],r[1]=t[1]-n[1],r[2]=t[2]-n[2],i[0]=r[0]*Math.cos(a)-r[1]*Math.sin(a),i[1]=r[0]*Math.sin(a)+r[1]*Math.cos(a),i[2]=r[2],e[0]=i[0]+n[0],e[1]=i[1]+n[1],e[2]=i[2]+n[2],e}function Cn(e,t){var n=e[0],a=e[1],r=e[2],i=t[0],s=t[1],l=t[2],o=Math.sqrt(n*n+a*a+r*r)*Math.sqrt(i*i+s*s+l*l),u=o&&wn(e,t)/o;return Math.acos(Math.min(Math.max(u,-1),1))}function Mn(e){return e[0]=0,e[1]=0,e[2]=0,e}function Bn(e){return"vec3("+e[0]+", "+e[1]+", "+e[2]+")"}function Nn(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function Pn(e,t){var n=e[0],a=e[1],r=e[2],i=t[0],s=t[1],l=t[2];return Math.abs(n-i)<=v*Math.max(1,Math.abs(n),Math.abs(i))&&Math.abs(a-s)<=v*Math.max(1,Math.abs(a),Math.abs(s))&&Math.abs(r-l)<=v*Math.max(1,Math.abs(r),Math.abs(l))}var kn,On=nn,Dn=an,Fn=rn,Gn=fn,Vn=mn,Kn=Yt,Hn=pn,zn=(kn=Wt(),function(e,t,n,a,r,i){var s,l;for(t||(t=3),n||(n=0),l=a?Math.min(a*t+n,e.length):e.length,s=n;s<l;s+=t)kn[0]=e[s],kn[1]=e[s+1],kn[2]=e[s+2],r(kn,kn,i),e[s]=kn[0],e[s+1]=kn[1],e[s+2]=kn[2];return e});function jn(){var e=new A(4);return A!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e}function Xn(e){var t=new A(4);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function $n(e,t,n,a){var r=new A(4);return r[0]=e,r[1]=t,r[2]=n,r[3]=a,r}function Jn(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}function Wn(e,t,n,a,r){return e[0]=t,e[1]=n,e[2]=a,e[3]=r,e}function qn(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e[3]=t[3]+n[3],e}function Yn(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e[3]=t[3]-n[3],e}function Zn(e,t,n){return e[0]=t[0]*n[0],e[1]=t[1]*n[1],e[2]=t[2]*n[2],e[3]=t[3]*n[3],e}function Qn(e,t,n){return e[0]=t[0]/n[0],e[1]=t[1]/n[1],e[2]=t[2]/n[2],e[3]=t[3]/n[3],e}function ea(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e[2]=Math.ceil(t[2]),e[3]=Math.ceil(t[3]),e}function ta(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e[2]=Math.floor(t[2]),e[3]=Math.floor(t[3]),e}function na(e,t,n){return e[0]=Math.min(t[0],n[0]),e[1]=Math.min(t[1],n[1]),e[2]=Math.min(t[2],n[2]),e[3]=Math.min(t[3],n[3]),e}function aa(e,t,n){return e[0]=Math.max(t[0],n[0]),e[1]=Math.max(t[1],n[1]),e[2]=Math.max(t[2],n[2]),e[3]=Math.max(t[3],n[3]),e}function ra(e,t){return e[0]=Math.round(t[0]),e[1]=Math.round(t[1]),e[2]=Math.round(t[2]),e[3]=Math.round(t[3]),e}function ia(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e}function sa(e,t,n,a){return e[0]=t[0]+n[0]*a,e[1]=t[1]+n[1]*a,e[2]=t[2]+n[2]*a,e[3]=t[3]+n[3]*a,e}function la(e,t){var n=t[0]-e[0],a=t[1]-e[1],r=t[2]-e[2],i=t[3]-e[3];return Math.hypot(n,a,r,i)}function oa(e,t){var n=t[0]-e[0],a=t[1]-e[1],r=t[2]-e[2],i=t[3]-e[3];return n*n+a*a+r*r+i*i}function ua(e){var t=e[0],n=e[1],a=e[2],r=e[3];return Math.hypot(t,n,a,r)}function ca(e){var t=e[0],n=e[1],a=e[2],r=e[3];return t*t+n*n+a*a+r*r}function da(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=-t[3],e}function ha(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e[3]=1/t[3],e}function fa(e,t){var n=t[0],a=t[1],r=t[2],i=t[3],s=n*n+a*a+r*r+i*i;return s>0&&(s=1/Math.sqrt(s)),e[0]=n*s,e[1]=a*s,e[2]=r*s,e[3]=i*s,e}function ma(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3]}function pa(e,t,n,a){var r=n[0]*a[1]-n[1]*a[0],i=n[0]*a[2]-n[2]*a[0],s=n[0]*a[3]-n[3]*a[0],l=n[1]*a[2]-n[2]*a[1],o=n[1]*a[3]-n[3]*a[1],u=n[2]*a[3]-n[3]*a[2],c=t[0],d=t[1],h=t[2],f=t[3];return e[0]=d*u-h*o+f*l,e[1]=-c*u+h*s-f*i,e[2]=c*o-d*s+f*r,e[3]=-c*l+d*i-h*r,e}function _a(e,t,n,a){var r=t[0],i=t[1],s=t[2],l=t[3];return e[0]=r+a*(n[0]-r),e[1]=i+a*(n[1]-i),e[2]=s+a*(n[2]-s),e[3]=l+a*(n[3]-l),e}function ga(e,t){var n,a,r,i,s,l;t=t||1;do{s=(n=2*y()-1)*n+(a=2*y()-1)*a}while(s>=1);do{l=(r=2*y()-1)*r+(i=2*y()-1)*i}while(l>=1);var o=Math.sqrt((1-s)/l);return e[0]=t*n,e[1]=t*a,e[2]=t*r*o,e[3]=t*i*o,e}function ba(e,t,n){var a=t[0],r=t[1],i=t[2],s=t[3];return e[0]=n[0]*a+n[4]*r+n[8]*i+n[12]*s,e[1]=n[1]*a+n[5]*r+n[9]*i+n[13]*s,e[2]=n[2]*a+n[6]*r+n[10]*i+n[14]*s,e[3]=n[3]*a+n[7]*r+n[11]*i+n[15]*s,e}function wa(e,t,n){var a=t[0],r=t[1],i=t[2],s=n[0],l=n[1],o=n[2],u=n[3],c=u*a+l*i-o*r,d=u*r+o*a-s*i,h=u*i+s*r-l*a,f=-s*a-l*r-o*i;return e[0]=c*u+f*-s+d*-o-h*-l,e[1]=d*u+f*-l+h*-s-c*-o,e[2]=h*u+f*-o+c*-l-d*-s,e[3]=t[3],e}function va(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=0,e}function Aa(e){return"vec4("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+")"}function ya(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]}function Sa(e,t){var n=e[0],a=e[1],r=e[2],i=e[3],s=t[0],l=t[1],o=t[2],u=t[3];return Math.abs(n-s)<=v*Math.max(1,Math.abs(n),Math.abs(s))&&Math.abs(a-l)<=v*Math.max(1,Math.abs(a),Math.abs(l))&&Math.abs(r-o)<=v*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(i-u)<=v*Math.max(1,Math.abs(i),Math.abs(u))}var Ta=Yn,xa=Zn,Ea=Qn,La=la,Ia=oa,Ua=ua,Ra=ca,Ca=function(){var e=jn();return function(t,n,a,r,i,s){var l,o;for(n||(n=4),a||(a=0),o=r?Math.min(r*n+a,t.length):t.length,l=a;l<o;l+=n)e[0]=t[l],e[1]=t[l+1],e[2]=t[l+2],e[3]=t[l+3],i(e,e,s),t[l]=e[0],t[l+1]=e[1],t[l+2]=e[2],t[l+3]=e[3];return t}}();function Ma(){var e=new A(4);return A!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function Ba(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e}function Na(e,t,n){n*=.5;var a=Math.sin(n);return e[0]=a*t[0],e[1]=a*t[1],e[2]=a*t[2],e[3]=Math.cos(n),e}function Pa(e,t){var n=2*Math.acos(t[3]),a=Math.sin(n/2);return a>v?(e[0]=t[0]/a,e[1]=t[1]/a,e[2]=t[2]/a):(e[0]=1,e[1]=0,e[2]=0),n}function ka(e,t){var n=dr(e,t);return Math.acos(2*n*n-1)}function Oa(e,t,n){var a=t[0],r=t[1],i=t[2],s=t[3],l=n[0],o=n[1],u=n[2],c=n[3];return e[0]=a*c+s*l+r*u-i*o,e[1]=r*c+s*o+i*l-a*u,e[2]=i*c+s*u+a*o-r*l,e[3]=s*c-a*l-r*o-i*u,e}function Da(e,t,n){n*=.5;var a=t[0],r=t[1],i=t[2],s=t[3],l=Math.sin(n),o=Math.cos(n);return e[0]=a*o+s*l,e[1]=r*o+i*l,e[2]=i*o-r*l,e[3]=s*o-a*l,e}function Fa(e,t,n){n*=.5;var a=t[0],r=t[1],i=t[2],s=t[3],l=Math.sin(n),o=Math.cos(n);return e[0]=a*o-i*l,e[1]=r*o+s*l,e[2]=i*o+a*l,e[3]=s*o-r*l,e}function Ga(e,t,n){n*=.5;var a=t[0],r=t[1],i=t[2],s=t[3],l=Math.sin(n),o=Math.cos(n);return e[0]=a*o+r*l,e[1]=r*o-a*l,e[2]=i*o+s*l,e[3]=s*o-i*l,e}function Va(e,t){var n=t[0],a=t[1],r=t[2];return e[0]=n,e[1]=a,e[2]=r,e[3]=Math.sqrt(Math.abs(1-n*n-a*a-r*r)),e}function Ka(e,t){var n=t[0],a=t[1],r=t[2],i=t[3],s=Math.sqrt(n*n+a*a+r*r),l=Math.exp(i),o=s>0?l*Math.sin(s)/s:0;return e[0]=n*o,e[1]=a*o,e[2]=r*o,e[3]=l*Math.cos(s),e}function Ha(e,t){var n=t[0],a=t[1],r=t[2],i=t[3],s=Math.sqrt(n*n+a*a+r*r),l=s>0?Math.atan2(s,i)/s:0;return e[0]=n*l,e[1]=a*l,e[2]=r*l,e[3]=.5*Math.log(n*n+a*a+r*r+i*i),e}function za(e,t,n){return Ha(e,t),cr(e,e,n),Ka(e,e),e}function ja(e,t,n,a){var r,i,s,l,o,u=t[0],c=t[1],d=t[2],h=t[3],f=n[0],m=n[1],p=n[2],_=n[3];return(i=u*f+c*m+d*p+h*_)<0&&(i=-i,f=-f,m=-m,p=-p,_=-_),1-i>v?(r=Math.acos(i),s=Math.sin(r),l=Math.sin((1-a)*r)/s,o=Math.sin(a*r)/s):(l=1-a,o=a),e[0]=l*u+o*f,e[1]=l*c+o*m,e[2]=l*d+o*p,e[3]=l*h+o*_,e}function Xa(e){var t=y(),n=y(),a=y(),r=Math.sqrt(1-t),i=Math.sqrt(t);return e[0]=r*Math.sin(2*Math.PI*n),e[1]=r*Math.cos(2*Math.PI*n),e[2]=i*Math.sin(2*Math.PI*a),e[3]=i*Math.cos(2*Math.PI*a),e}function $a(e,t){var n=t[0],a=t[1],r=t[2],i=t[3],s=n*n+a*a+r*r+i*i,l=s?1/s:0;return e[0]=-n*l,e[1]=-a*l,e[2]=-r*l,e[3]=i*l,e}function Ja(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],e}function Wa(e,t){var n,a=t[0]+t[4]+t[8];if(a>0)n=Math.sqrt(a+1),e[3]=.5*n,n=.5/n,e[0]=(t[5]-t[7])*n,e[1]=(t[6]-t[2])*n,e[2]=(t[1]-t[3])*n;else{var r=0;t[4]>t[0]&&(r=1),t[8]>t[3*r+r]&&(r=2);var i=(r+1)%3,s=(r+2)%3;n=Math.sqrt(t[3*r+r]-t[3*i+i]-t[3*s+s]+1),e[r]=.5*n,n=.5/n,e[3]=(t[3*i+s]-t[3*s+i])*n,e[i]=(t[3*i+r]+t[3*r+i])*n,e[s]=(t[3*s+r]+t[3*r+s])*n}return e}function qa(e,t,n,a){var r=.5*Math.PI/180;t*=r,n*=r,a*=r;var i=Math.sin(t),s=Math.cos(t),l=Math.sin(n),o=Math.cos(n),u=Math.sin(a),c=Math.cos(a);return e[0]=i*o*c-s*l*u,e[1]=s*l*c+i*o*u,e[2]=s*o*u-i*l*c,e[3]=s*o*c+i*l*u,e}function Ya(e){return"quat("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+")"}var Za,Qa,er,tr,nr,ar,rr=Xn,ir=$n,sr=Jn,lr=Wn,or=qn,ur=Oa,cr=ia,dr=ma,hr=_a,fr=ua,mr=fr,pr=ca,_r=pr,gr=fa,br=ya,wr=Sa,vr=(Za=Wt(),Qa=Zt(1,0,0),er=Zt(0,1,0),function(e,t,n){var a=wn(t,n);return a<-.999999?(vn(Za,Qa,t),Kn(Za)<1e-6&&vn(Za,er,t),bn(Za,Za),Na(e,Za,Math.PI),e):a>.999999?(e[0]=0,e[1]=0,e[2]=0,e[3]=1,e):(vn(Za,t,n),e[0]=Za[0],e[1]=Za[1],e[2]=Za[2],e[3]=1+a,gr(e,e))}),Ar=(tr=Ma(),nr=Ma(),function(e,t,n,a,r,i){return ja(tr,t,r,i),ja(nr,n,a,i),ja(e,tr,nr,2*i*(1-i)),e}),yr=(ar=Te(),function(e,t,n,a){return ar[0]=n[0],ar[3]=n[1],ar[6]=n[2],ar[1]=a[0],ar[4]=a[1],ar[7]=a[2],ar[2]=-t[0],ar[5]=-t[1],ar[8]=-t[2],gr(e,Wa(e,ar))});function Sr(){var e=new A(8);return A!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[4]=0,e[5]=0,e[6]=0,e[7]=0),e[3]=1,e}function Tr(e){var t=new A(8);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t}function xr(e,t,n,a,r,i,s,l){var o=new A(8);return o[0]=e,o[1]=t,o[2]=n,o[3]=a,o[4]=r,o[5]=i,o[6]=s,o[7]=l,o}function Er(e,t,n,a,r,i,s){var l=new A(8);l[0]=e,l[1]=t,l[2]=n,l[3]=a;var o=.5*r,u=.5*i,c=.5*s;return l[4]=o*a+u*n-c*t,l[5]=u*a+c*e-o*n,l[6]=c*a+o*t-u*e,l[7]=-o*e-u*t-c*n,l}function Lr(e,t,n){var a=.5*n[0],r=.5*n[1],i=.5*n[2],s=t[0],l=t[1],o=t[2],u=t[3];return e[0]=s,e[1]=l,e[2]=o,e[3]=u,e[4]=a*u+r*o-i*l,e[5]=r*u+i*s-a*o,e[6]=i*u+a*l-r*s,e[7]=-a*s-r*l-i*o,e}function Ir(e,t){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e[4]=.5*t[0],e[5]=.5*t[1],e[6]=.5*t[2],e[7]=0,e}function Ur(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=0,e[5]=0,e[6]=0,e[7]=0,e}function Rr(e,t){var n=Ma();Ut(n,t);var a=new A(3);return Lt(a,t),Lr(e,n,a),e}function Cr(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e}function Mr(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e[4]=0,e[5]=0,e[6]=0,e[7]=0,e}function Br(e,t,n,a,r,i,s,l,o){return e[0]=t,e[1]=n,e[2]=a,e[3]=r,e[4]=i,e[5]=s,e[6]=l,e[7]=o,e}var Nr=sr;function Pr(e,t){return e[0]=t[4],e[1]=t[5],e[2]=t[6],e[3]=t[7],e}var kr=sr;function Or(e,t){return e[4]=t[0],e[5]=t[1],e[6]=t[2],e[7]=t[3],e}function Dr(e,t){var n=t[4],a=t[5],r=t[6],i=t[7],s=-t[0],l=-t[1],o=-t[2],u=t[3];return e[0]=2*(n*u+i*s+a*o-r*l),e[1]=2*(a*u+i*l+r*s-n*o),e[2]=2*(r*u+i*o+n*l-a*s),e}function Fr(e,t,n){var a=t[0],r=t[1],i=t[2],s=t[3],l=.5*n[0],o=.5*n[1],u=.5*n[2],c=t[4],d=t[5],h=t[6],f=t[7];return e[0]=a,e[1]=r,e[2]=i,e[3]=s,e[4]=s*l+r*u-i*o+c,e[5]=s*o+i*l-a*u+d,e[6]=s*u+a*o-r*l+h,e[7]=-a*l-r*o-i*u+f,e}function Gr(e,t,n){var a=-t[0],r=-t[1],i=-t[2],s=t[3],l=t[4],o=t[5],u=t[6],c=t[7],d=l*s+c*a+o*i-u*r,h=o*s+c*r+u*a-l*i,f=u*s+c*i+l*r-o*a,m=c*s-l*a-o*r-u*i;return Da(e,t,n),a=e[0],r=e[1],i=e[2],s=e[3],e[4]=d*s+m*a+h*i-f*r,e[5]=h*s+m*r+f*a-d*i,e[6]=f*s+m*i+d*r-h*a,e[7]=m*s-d*a-h*r-f*i,e}function Vr(e,t,n){var a=-t[0],r=-t[1],i=-t[2],s=t[3],l=t[4],o=t[5],u=t[6],c=t[7],d=l*s+c*a+o*i-u*r,h=o*s+c*r+u*a-l*i,f=u*s+c*i+l*r-o*a,m=c*s-l*a-o*r-u*i;return Fa(e,t,n),a=e[0],r=e[1],i=e[2],s=e[3],e[4]=d*s+m*a+h*i-f*r,e[5]=h*s+m*r+f*a-d*i,e[6]=f*s+m*i+d*r-h*a,e[7]=m*s-d*a-h*r-f*i,e}function Kr(e,t,n){var a=-t[0],r=-t[1],i=-t[2],s=t[3],l=t[4],o=t[5],u=t[6],c=t[7],d=l*s+c*a+o*i-u*r,h=o*s+c*r+u*a-l*i,f=u*s+c*i+l*r-o*a,m=c*s-l*a-o*r-u*i;return Ga(e,t,n),a=e[0],r=e[1],i=e[2],s=e[3],e[4]=d*s+m*a+h*i-f*r,e[5]=h*s+m*r+f*a-d*i,e[6]=f*s+m*i+d*r-h*a,e[7]=m*s-d*a-h*r-f*i,e}function Hr(e,t,n){var a=n[0],r=n[1],i=n[2],s=n[3],l=t[0],o=t[1],u=t[2],c=t[3];return e[0]=l*s+c*a+o*i-u*r,e[1]=o*s+c*r+u*a-l*i,e[2]=u*s+c*i+l*r-o*a,e[3]=c*s-l*a-o*r-u*i,l=t[4],o=t[5],u=t[6],c=t[7],e[4]=l*s+c*a+o*i-u*r,e[5]=o*s+c*r+u*a-l*i,e[6]=u*s+c*i+l*r-o*a,e[7]=c*s-l*a-o*r-u*i,e}function zr(e,t,n){var a=t[0],r=t[1],i=t[2],s=t[3],l=n[0],o=n[1],u=n[2],c=n[3];return e[0]=a*c+s*l+r*u-i*o,e[1]=r*c+s*o+i*l-a*u,e[2]=i*c+s*u+a*o-r*l,e[3]=s*c-a*l-r*o-i*u,l=n[4],o=n[5],u=n[6],c=n[7],e[4]=a*c+s*l+r*u-i*o,e[5]=r*c+s*o+i*l-a*u,e[6]=i*c+s*u+a*o-r*l,e[7]=s*c-a*l-r*o-i*u,e}function jr(e,t,n,a){if(Math.abs(a)<v)return Cr(e,t);var r=Math.hypot(n[0],n[1],n[2]);a*=.5;var i=Math.sin(a),s=i*n[0]/r,l=i*n[1]/r,o=i*n[2]/r,u=Math.cos(a),c=t[0],d=t[1],h=t[2],f=t[3];e[0]=c*u+f*s+d*o-h*l,e[1]=d*u+f*l+h*s-c*o,e[2]=h*u+f*o+c*l-d*s,e[3]=f*u-c*s-d*l-h*o;var m=t[4],p=t[5],_=t[6],g=t[7];return e[4]=m*u+g*s+p*o-_*l,e[5]=p*u+g*l+_*s-m*o,e[6]=_*u+g*o+m*l-p*s,e[7]=g*u-m*s-p*l-_*o,e}function Xr(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e[3]=t[3]+n[3],e[4]=t[4]+n[4],e[5]=t[5]+n[5],e[6]=t[6]+n[6],e[7]=t[7]+n[7],e}function $r(e,t,n){var a=t[0],r=t[1],i=t[2],s=t[3],l=n[4],o=n[5],u=n[6],c=n[7],d=t[4],h=t[5],f=t[6],m=t[7],p=n[0],_=n[1],g=n[2],b=n[3];return e[0]=a*b+s*p+r*g-i*_,e[1]=r*b+s*_+i*p-a*g,e[2]=i*b+s*g+a*_-r*p,e[3]=s*b-a*p-r*_-i*g,e[4]=a*c+s*l+r*u-i*o+d*b+m*p+h*g-f*_,e[5]=r*c+s*o+i*l-a*u+h*b+m*_+f*p-d*g,e[6]=i*c+s*u+a*o-r*l+f*b+m*g+d*_-h*p,e[7]=s*c-a*l-r*o-i*u+m*b-d*p-h*_-f*g,e}var Jr=$r;function Wr(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*n,e[5]=t[5]*n,e[6]=t[6]*n,e[7]=t[7]*n,e}var qr=dr;function Yr(e,t,n,a){var r=1-a;return qr(t,n)<0&&(a=-a),e[0]=t[0]*r+n[0]*a,e[1]=t[1]*r+n[1]*a,e[2]=t[2]*r+n[2]*a,e[3]=t[3]*r+n[3]*a,e[4]=t[4]*r+n[4]*a,e[5]=t[5]*r+n[5]*a,e[6]=t[6]*r+n[6]*a,e[7]=t[7]*r+n[7]*a,e}function Zr(e,t){var n=ni(t);return e[0]=-t[0]/n,e[1]=-t[1]/n,e[2]=-t[2]/n,e[3]=t[3]/n,e[4]=-t[4]/n,e[5]=-t[5]/n,e[6]=-t[6]/n,e[7]=t[7]/n,e}function Qr(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],e[4]=-t[4],e[5]=-t[5],e[6]=-t[6],e[7]=t[7],e}var ei=fr,ti=ei,ni=pr,ai=ni;function ri(e,t){var n=ni(t);if(n>0){n=Math.sqrt(n);var a=t[0]/n,r=t[1]/n,i=t[2]/n,s=t[3]/n,l=t[4],o=t[5],u=t[6],c=t[7],d=a*l+r*o+i*u+s*c;e[0]=a,e[1]=r,e[2]=i,e[3]=s,e[4]=(l-a*d)/n,e[5]=(o-r*d)/n,e[6]=(u-i*d)/n,e[7]=(c-s*d)/n}return e}function ii(e){return"quat2("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+", "+e[6]+", "+e[7]+")"}function si(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]}function li(e,t){var n=e[0],a=e[1],r=e[2],i=e[3],s=e[4],l=e[5],o=e[6],u=e[7],c=t[0],d=t[1],h=t[2],f=t[3],m=t[4],p=t[5],_=t[6],g=t[7];return Math.abs(n-c)<=v*Math.max(1,Math.abs(n),Math.abs(c))&&Math.abs(a-d)<=v*Math.max(1,Math.abs(a),Math.abs(d))&&Math.abs(r-h)<=v*Math.max(1,Math.abs(r),Math.abs(h))&&Math.abs(i-f)<=v*Math.max(1,Math.abs(i),Math.abs(f))&&Math.abs(s-m)<=v*Math.max(1,Math.abs(s),Math.abs(m))&&Math.abs(l-p)<=v*Math.max(1,Math.abs(l),Math.abs(p))&&Math.abs(o-_)<=v*Math.max(1,Math.abs(o),Math.abs(_))&&Math.abs(u-g)<=v*Math.max(1,Math.abs(u),Math.abs(g))}function oi(){var e=new A(2);return A!=Float32Array&&(e[0]=0,e[1]=0),e}function ui(e){var t=new A(2);return t[0]=e[0],t[1]=e[1],t}function ci(e,t){var n=new A(2);return n[0]=e,n[1]=t,n}function di(e,t){return e[0]=t[0],e[1]=t[1],e}function hi(e,t,n){return e[0]=t,e[1]=n,e}function fi(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e}function mi(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e}function pi(e,t,n){return e[0]=t[0]*n[0],e[1]=t[1]*n[1],e}function _i(e,t,n){return e[0]=t[0]/n[0],e[1]=t[1]/n[1],e}function gi(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e}function bi(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e}function wi(e,t,n){return e[0]=Math.min(t[0],n[0]),e[1]=Math.min(t[1],n[1]),e}function vi(e,t,n){return e[0]=Math.max(t[0],n[0]),e[1]=Math.max(t[1],n[1]),e}function Ai(e,t){return e[0]=Math.round(t[0]),e[1]=Math.round(t[1]),e}function yi(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e}function Si(e,t,n,a){return e[0]=t[0]+n[0]*a,e[1]=t[1]+n[1]*a,e}function Ti(e,t){var n=t[0]-e[0],a=t[1]-e[1];return Math.hypot(n,a)}function xi(e,t){var n=t[0]-e[0],a=t[1]-e[1];return n*n+a*a}function Ei(e){var t=e[0],n=e[1];return Math.hypot(t,n)}function Li(e){var t=e[0],n=e[1];return t*t+n*n}function Ii(e,t){return e[0]=-t[0],e[1]=-t[1],e}function Ui(e,t){return e[0]=1/t[0],e[1]=1/t[1],e}function Ri(e,t){var n=t[0],a=t[1],r=n*n+a*a;return r>0&&(r=1/Math.sqrt(r)),e[0]=t[0]*r,e[1]=t[1]*r,e}function Ci(e,t){return e[0]*t[0]+e[1]*t[1]}function Mi(e,t,n){var a=t[0]*n[1]-t[1]*n[0];return e[0]=e[1]=0,e[2]=a,e}function Bi(e,t,n,a){var r=t[0],i=t[1];return e[0]=r+a*(n[0]-r),e[1]=i+a*(n[1]-i),e}function Ni(e,t){t=t||1;var n=2*y()*Math.PI;return e[0]=Math.cos(n)*t,e[1]=Math.sin(n)*t,e}function Pi(e,t,n){var a=t[0],r=t[1];return e[0]=n[0]*a+n[2]*r,e[1]=n[1]*a+n[3]*r,e}function ki(e,t,n){var a=t[0],r=t[1];return e[0]=n[0]*a+n[2]*r+n[4],e[1]=n[1]*a+n[3]*r+n[5],e}function Oi(e,t,n){var a=t[0],r=t[1];return e[0]=n[0]*a+n[3]*r+n[6],e[1]=n[1]*a+n[4]*r+n[7],e}function Di(e,t,n){var a=t[0],r=t[1];return e[0]=n[0]*a+n[4]*r+n[12],e[1]=n[1]*a+n[5]*r+n[13],e}function Fi(e,t,n,a){var r=t[0]-n[0],i=t[1]-n[1],s=Math.sin(a),l=Math.cos(a);return e[0]=r*l-i*s+n[0],e[1]=r*s+i*l+n[1],e}function Gi(e,t){var n=e[0],a=e[1],r=t[0],i=t[1],s=Math.sqrt(n*n+a*a)*Math.sqrt(r*r+i*i),l=s&&(n*r+a*i)/s;return Math.acos(Math.min(Math.max(l,-1),1))}function Vi(e){return e[0]=0,e[1]=0,e}function Ki(e){return"vec2("+e[0]+", "+e[1]+")"}function Hi(e,t){return e[0]===t[0]&&e[1]===t[1]}function zi(e,t){var n=e[0],a=e[1],r=t[0],i=t[1];return Math.abs(n-r)<=v*Math.max(1,Math.abs(n),Math.abs(r))&&Math.abs(a-i)<=v*Math.max(1,Math.abs(a),Math.abs(i))}var ji=Ei,Xi=mi,$i=pi,Ji=_i,Wi=Ti,qi=xi,Yi=Li,Zi=function(){var e=oi();return function(t,n,a,r,i,s){var l,o;for(n||(n=2),a||(a=0),o=r?Math.min(r*n+a,t.length):t.length,l=a;l<o;l+=n)e[0]=t[l],e[1]=t[l+1],i(e,e,s),t[l]=e[0],t[l+1]=e[1];return t}}();const Qi=Zt(1,0,0),es=Zt(0,1,0),ts=Zt(0,0,1),ns=Wt(),as=Zt(1,1,1),rs=ir(0,0,0,0),is=Ma(),ss=jn();function ls(e,t,n,a){const r=2*(t[0]-a[0])/a[2]-1,i=1-2*(t[1]-a[1])/a[3],s=2*t[2]-1;return Wn(ss,r,i,s,1),ba(ss,ss,n),en(e,ss[0]/ss[3],ss[1]/ss[3],ss[2]/ss[3]),e}function os(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]}function us(e,t,n){return e[0]*t+e[1]*n+e[3]}function cs(e,t,n,a){return e[0]*t+e[1]*n+e[2]*a+e[3]}function ds(e,t,n,a,r,i){-1===i&&(i=0);for(let s=0;s<6;s++){const l=(i+s)%6;if(cs(e[l],t,n,a)<=-r)return l}return-1}function hs(e,t,n,a,r,i){-1===i&&(i=0);for(let s=0;s<6;s++){const l=(i+s)%6,o=e[l];if(us(o,t,a)<0&&us(o,t,r)<0&&us(o,n,r)<0&&us(o,n,a)<0)return l}return-1}function fs(e){return Math.hypot(e[0],e[1],e[2])}function ms(e,t){const n=fs(t);e[0]=t[0]/n,e[1]=t[1]/n,e[2]=t[2]/n,e[3]=t[3]/n}function ps(e,t){const n=t[0],a=t[4],r=t[8],i=t[12],s=t[1],l=t[5],o=t[9],u=t[13],c=t[2],d=t[6],h=t[10],f=t[14],m=t[3],p=t[7],_=t[11],g=t[15];let b;b=e[0],b[0]=m+n,b[1]=p+a,b[2]=_+r,b[3]=g+i,b=e[1],b[0]=m-n,b[1]=p-a,b[2]=_-r,b[3]=g-i,b=e[2],b[0]=m-s,b[1]=p-l,b[2]=_-o,b[3]=g-u,b=e[3],b[0]=m+s,b[1]=p+l,b[2]=_+o,b[3]=g+u,b=e[4],b[0]=m+c,b[1]=p+d,b[2]=_+h,b[3]=g+f,b=e[5],b[0]=m-c,b[1]=p-d,b[2]=_-h,b[3]=g-f,ms(e[0],e[0]),ms(e[1],e[1]),ms(e[2],e[2]),ms(e[3],e[3]),ms(e[4],e[4]),ms(e[5],e[5])}const _s=Wt(),gs=Wt(),bs=Wt();function ws(e,t,n,a){bn(_s,On(_s,n,t)),bn(gs,vn(gs,a,_s)),vn(bs,gs,_s);const r=gs[0]+bs[2]+_s[1];if(r>0){const t=.5/Math.sqrt(r+1);e[3]=.25/t,e[0]=(bs[1]-_s[2])*t,e[2]=(_s[0]-gs[1])*t,e[1]=(gs[2]-bs[0])*t}else if(gs[0]>bs[2]&&gs[0]>_s[1]){const t=2*Math.sqrt(1+gs[0]-bs[2]-_s[1]);e[3]=(bs[1]-_s[2])/t,e[0]=.25*t,e[2]=(bs[0]+gs[2])/t,e[1]=(_s[0]+gs[1])/t}else if(bs[2]>_s[1]){const t=2*Math.sqrt(1+bs[2]-gs[0]-_s[1]);e[3]=(_s[0]-gs[1])/t,e[0]=(bs[0]+gs[2])/t,e[2]=.25*t,e[1]=(_s[2]+bs[1])/t}else{const t=2*Math.sqrt(1+_s[1]-gs[0]-bs[2]);e[3]=(gs[2]-bs[0])/t,e[0]=(_s[0]+gs[1])/t,e[2]=(_s[2]+bs[1])/t,e[1]=.25*t}return e}function vs(e){return e*(Math.PI/180)}function As(e){return e*(180/Math.PI)}function ys(e,t){return e+Math.random()*(t-e)}function Ss(e,t,n){return Math.min(Math.max(e,t),n)}function Ts(e,t,n){return e+n*(t-e)}function xs(e,t,n,a,r){const i=r*r;return e*(i*(2*r-3)+1)+t*(i*(r-2)+r)+n*(i*(r-1))+a*(i*(3-2*r))}function Es(e,t,n,a,r){const i=1-r,s=r*r,l=i*i;return e*(l*i)+t*(3*r*l)+n*(3*s*i)+a*(s*r)}function Ls(e,t){const n=Math.sign(t);if(0===n)return 0;return Math.sign(e)!==n?-e:e}function Is(e){return e--,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e}function Us(e){return 0!==e&&!(e&e-1)}let Rs,Cs,Ms,Bs;function Ns(e){return new Promise((t,n)=>{const a=URL.createObjectURL(e),r=new Image;r.onload=()=>{t(r)},r.onerror=e=>{n(e)},r.src=a})}function Ps(e){return new Promise((t,n)=>{const a=URL.createObjectURL(e),r=new Image;r.onload=()=>{URL.revokeObjectURL(a),Rs.width=r.width,Rs.height=r.height,Cs.drawImage(r,0,0),t(Cs.getImageData(0,0,r.width,r.height))},r.onerror=e=>{n(e)},r.src=a})}function ks(e){return new Promise(t=>{Rs.width=e.width,Rs.height=e.height,Cs.putImageData(e,0,0),Rs.toBlob(e=>{t(e)})})}function Os(e){return Rs.width=e.width,Rs.height=e.height,Cs.putImageData(e,0,0),Rs.toDataURL()}function Ds(e){const t=new Image;return t.src=Os(e),t}function Fs(e){const t=e.width,n=e.height;return Rs.width=t,Rs.height=n,Cs.drawImage(e,0,0),Cs.getImageData(0,0,t,n)}function Gs(e,t,n){return e instanceof ImageData?(Rs.width=e.width,Rs.height=e.height,Cs.putImageData(e,0,0),Ms.width=t,Ms.height=n,Bs.drawImage(Rs,0,0,t,n),Bs.getImageData(0,0,t,n)):(Rs.width=t,Rs.height=n,Cs.drawImage(e,0,0,t,n),Cs.getImageData(0,0,t,n))}"object"==typeof window&&(Rs=document.createElement("canvas"),Cs=Rs.getContext("2d"),Ms=document.createElement("canvas"),Bs=Ms.getContext("2d"));const Vs=new TextDecoder,Ks=new TextEncoder;function Hs(e){return Vs.decode(e)}function zs(e){return Ks.encode(e)}function js(e){let t=e.length;for(let n=e.length-1;n>=0;n--){const a=e.charCodeAt(n);a>127&&a<=2047?t++:a>2047&&a<=65535&&(t+=2),a>=56320&&a<=57343&&n--}return t}function Xs(e,t){const n=[];let a=0,r=0;for(let i=0,s=e.length;i<s;i++){const s=e.charCodeAt(i);s<128?r+=1:s<2048?r+=2:s<55296||s>=57344?r+=3:(i++,r+=4),r>=t-3&&(n.push(e.substr(a,i)),a+=i,r=0)}return r>0&&n.push(e.substr(a)),n}function $s(e){return e instanceof Uint8Array?e:"string"==typeof e?zs(e):new Uint8Array(e)}function Js(e,t,n=0,a=1/0){const r=Math.max(n,0),i=Math.min(r+a,e.length);let s=0,l=t.charCodeAt(0);for(let n=r;n<i;n++){if(e[n]===l){if(s+=1,s===t.length)return!0;l=t.charCodeAt(s)}else s>0&&(s=0,l=t.charCodeAt(0))}return!1}const Ws=new ArrayBuffer(8),qs=new Int8Array(Ws),Ys=new Int16Array(Ws),Zs=new Int32Array(Ws),Qs=new Uint8Array(Ws),el=new Uint16Array(Ws),tl=new Uint32Array(Ws),nl=new Float32Array(Ws),al=new Float64Array(Ws);function rl(e){return Qs[0]=e,qs[0]}function il(e,t){return Qs[0]=e,Qs[1]=t,Ys[0]}function sl(e,t,n,a){return Qs[0]=e,Qs[1]=t,Qs[2]=n,Qs[3]=a,Zs[0]}function ll(e,t){return Qs[0]=e,Qs[1]=t,el[0]}function ol(e,t,n,a){return Qs[0]=e,Qs[1]=t,Qs[2]=n,Qs[3]=a,tl[0]}function ul(e,t,n,a){return Qs[0]=e,Qs[1]=t,Qs[2]=n,Qs[3]=a,nl[0]}function cl(e,t,n,a,r,i,s,l){return Qs[0]=e,Qs[1]=t,Qs[2]=n,Qs[3]=a,Qs[4]=r,Qs[5]=i,Qs[6]=s,Qs[7]=l,al[0]}function dl(e){return Qs[0]=e,qs[0]}function hl(e,t){return Ys[0]=t,e[0]=Qs[0],e[1]=Qs[1],e}function fl(e,t){return Zs[0]=t,e[0]=Qs[0],e[1]=Qs[1],e[2]=Qs[2],e[3]=Qs[3],e}function ml(e,t){return el[0]=t,e[0]=Qs[0],e[1]=Qs[1],e}function pl(e,t){return tl[0]=t,e[0]=Qs[0],e[1]=Qs[1],e[2]=Qs[2],e[3]=Qs[3],e}function _l(e,t){return nl[0]=t,e[0]=Qs[0],e[1]=Qs[1],e[2]=Qs[2],e[3]=Qs[3],e}function gl(e,t){return al[0]=t,e[0]=Qs[0],e[1]=Qs[1],e[2]=Qs[2],e[3]=Qs[3],e[4]=Qs[4],e[5]=Qs[5],e[6]=Qs[6],e[7]=Qs[7],e}function bl(e){return tl[0]=e,tl[0]}function wl(e){const t=[];for(;e>0;)t.push(String.fromCharCode(e%256)),e=Math.floor(e/256);return t.reverse().join("")}const vl=new Uint8Array(8);class Al{constructor(e,t,n){this.index=0;const a=$s(e);t=t||0,n=n||a.length,this.buffer=e,this.uint8array=a.subarray(t,t+n),this.byteLength=n,this.remaining=n}substream(e){if(this.remaining<e)throw new Error(`ByteStream: substream: want ${e} bytes but have ${this.remaining}`);const t=this.index;return this.index+=e,new Al(this.uint8array.subarray(t,t+e))}skip(e){if(this.remaining<e)throw new Error(`ByteStream: skip: premature end - want ${e} bytes but have ${this.remaining}`);this.index+=e,this.remaining-=e}seek(e){this.index=e,this.remaining=this.byteLength-e}read(e){if(this.remaining<e)throw new Error(`ByteStream: read: premature end - want ${e} bytes but have ${this.remaining}`);const t=this.uint8array,n=this.index;let a=function(e,t,n=0,a=1/0){const r=Math.max(n,0),i=Math.min(r+a,e.length);for(let n=r;n<i;n++)if(e[n]===t)return n;return-1}(t,0,n,e);return-1===a&&(a=n+e),this.index+=e,this.remaining-=e,Hs(t.subarray(n,a))}readNull(){if(this.remaining<1)throw new Error("ByteStream: readNull: premature end - want at least 1 byte but have 0");const e=this.uint8array,t=this.index;let n=e.indexOf(0,t);-1===n&&(n=e.length-1);const a=n-t+1;return this.index+=a,this.remaining-=a,Hs(e.subarray(t,n))}readBinary(e){if(this.remaining<e)throw new Error(`ByteStream: readBinary: premature end - want ${e} bytes but have ${this.remaining}`);const t=this.uint8array,n=this.index;let a="";for(let r=0;r<e;r++)a+=String.fromCharCode(t[n+r]);return this.index+=e,this.remaining-=e,a}readInt8(){if(this.remaining<1)throw new Error(`ByteStream: readInt8: premature end - want 1 byte but have ${this.remaining}`);const e=this.index,t=rl(this.uint8array[e]);return this.index+=1,this.remaining-=1,t}readInt16(){if(this.remaining<2)throw new Error(`ByteStream: readInt16: premature end - want 2 bytes but have ${this.remaining}`);const e=this.index,t=this.uint8array,n=il(t[e],t[e+1]);return this.index+=2,this.remaining-=2,n}readInt32(){if(this.remaining<4)throw new Error(`ByteStream: readInt32: premature end - want 4 bytes but have ${this.remaining}`);const e=this.index,t=this.uint8array,n=sl(t[e],t[e+1],t[e+2],t[e+3]);return this.index+=4,this.remaining-=4,n}readUint8(){if(this.remaining<1)throw new Error(`ByteStream: readUint8: premature end - want 1 byte but have ${this.remaining}`);const e=this.uint8array[this.index];return this.index+=1,this.remaining-=1,e}readUint16(){if(this.remaining<2)throw new Error(`ByteStream: readUint16: premature end - want 2 bytes but have ${this.remaining}`);const e=this.index,t=this.uint8array,n=ll(t[e],t[e+1]);return this.index+=2,this.remaining-=2,n}readUint32(){if(this.remaining<4)throw new Error(`ByteStream: readUint32: premature end - want 4 bytes but have ${this.remaining}`);const e=this.index,t=this.uint8array,n=ol(t[e],t[e+1],t[e+2],t[e+3]);return this.index+=4,this.remaining-=4,n}readFloat32(){if(this.remaining<4)throw new Error(`ByteStream: readFloat32: premature end - want 4 bytes but have ${this.remaining}`);const e=this.index,t=this.uint8array,n=ul(t[e],t[e+1],t[e+2],t[e+3]);return this.index+=4,this.remaining-=4,n}readFloat64(){if(this.remaining<8)throw new Error(`ByteStream: readFloat64: premature end - want 8 bytes but have ${this.remaining}`);const e=this.index,t=this.uint8array,n=cl(t[e],t[e+1],t[e+2],t[e+3],t[e+4],t[e+5],t[e+6],t[e+7]);return this.index+=8,this.remaining-=8,n}readInt8Array(e){if(ArrayBuffer.isView(e)||(e=new Int8Array(e)),this.remaining<e.byteLength)throw new Error(`ByteStream: readInt8Array: premature end - want ${e.byteLength} bytes but have ${this.remaining}`);const t=this.index,n=this.uint8array;for(let a=0,r=e.length;a<r;a++)e[a]=rl(n[t+a]);return this.index+=e.byteLength,this.remaining-=e.byteLength,e}readInt16Array(e){if(ArrayBuffer.isView(e)||(e=new Int16Array(e)),this.remaining<e.byteLength)throw new Error(`ByteStream: readInt16Array: premature end - want ${e.byteLength} bytes but have ${this.remaining}`);const t=this.index,n=this.uint8array;for(let a=0,r=e.length;a<r;a++){const r=t+2*a;e[a]=il(n[r],n[r+1])}return this.index+=e.byteLength,this.remaining-=e.byteLength,e}readInt32Array(e){if(ArrayBuffer.isView(e)||(e=new Int32Array(e)),this.remaining<e.byteLength)throw new Error(`ByteStream: readInt32Array: premature end - want ${e.byteLength} bytes but have ${this.remaining}`);const t=this.index,n=this.uint8array;for(let a=0,r=e.length;a<r;a++){const r=t+4*a;e[a]=sl(n[r],n[r+1],n[r+2],n[r+3])}return this.index+=e.byteLength,this.remaining-=e.byteLength,e}readUint8Array(e){if(ArrayBuffer.isView(e)||(e=new Uint8Array(e)),this.remaining<e.byteLength)throw new Error(`ByteStream: readUint8Array: premature end - want ${e.byteLength} bytes but have ${this.remaining}`);const t=this.index,n=this.uint8array;for(let a=0,r=e.length;a<r;a++)e[a]=n[t+a];return this.index+=e.byteLength,this.remaining-=e.byteLength,e}readUint16Array(e){if(ArrayBuffer.isView(e)||(e=new Uint16Array(e)),this.remaining<e.byteLength)throw new Error(`ByteStream: readUint16Array: premature end - want ${e.byteLength} bytes but have ${this.remaining}`);const t=this.index,n=this.uint8array;for(let a=0,r=e.length;a<r;a++){const r=t+2*a;e[a]=ll(n[r],n[r+1])}return this.index+=e.byteLength,this.remaining-=e.byteLength,e}readUint32Array(e){if(ArrayBuffer.isView(e)||(e=new Uint32Array(e)),this.remaining<e.byteLength)throw new Error(`ByteStream: readUint32Array: premature end - want ${e.byteLength} bytes but have ${this.remaining}`);const t=this.index,n=this.uint8array;for(let a=0,r=e.length;a<r;a++){const r=t+4*a;e[a]=ol(n[r],n[r+1],n[r+2],n[r+3])}return this.index+=e.byteLength,this.remaining-=e.byteLength,e}readFloat32Array(e){if(ArrayBuffer.isView(e)||(e=new Float32Array(e)),this.remaining<e.byteLength)throw new Error(`ByteStream: readFloat32Array: premature end - want ${e.byteLength} bytes but have ${this.remaining}`);const t=this.index,n=this.uint8array;for(let a=0,r=e.length;a<r;a++){const r=t+4*a;e[a]=ul(n[r],n[r+1],n[r+2],n[r+3])}return this.index+=e.byteLength,this.remaining-=e.byteLength,e}readFloat64Array(e){if(ArrayBuffer.isView(e)||(e=new Float64Array(e)),this.remaining<e.byteLength)throw new Error(`ByteStream: readFloat64Array: premature end - want ${e.byteLength} bytes but have ${this.remaining}`);const t=this.index,n=this.uint8array;for(let a=0,r=e.length;a<r;a++){const r=t+8*a;e[a]=cl(n[r],n[r+1],n[r+2],n[r+3],n[r+4],n[r+5],n[r+6],n[r+7])}return this.index+=e.byteLength,this.remaining-=e.byteLength,e}write(e){const t=zs(e);return this.writeUint8Array(t),t.length}writeNull(e){const t=this.write(e);return this.index++,this.remaining--,t+1}writeBinary(e){const t=this.index,n=this.uint8array,a=e.length;for(let r=0;r<a;r++)n[t+r]=e.charCodeAt(r);this.index+=a}writeInt8(e){this.uint8array[this.index]=dl(e),this.index+=1}writeInt16(e){const t=this.index,n=this.uint8array;hl(vl,e),n[t]=vl[0],n[t+1]=vl[1],this.index+=2}writeInt32(e){const t=this.index,n=this.uint8array;fl(vl,e),n[t]=vl[0],n[t+1]=vl[1],n[t+2]=vl[2],n[t+3]=vl[3],this.index+=4}writeUint8(e){this.uint8array[this.index]=e,this.index+=1}writeUint16(e){const t=this.index,n=this.uint8array;ml(vl,e),n[t]=vl[0],n[t+1]=vl[1],this.index+=2}writeUint32(e){const t=this.index,n=this.uint8array;pl(vl,e),n[t]=vl[0],n[t+1]=vl[1],n[t+2]=vl[2],n[t+3]=vl[3],this.index+=4}writeFloat32(e){const t=this.index,n=this.uint8array;_l(vl,e),n[t]=vl[0],n[t+1]=vl[1],n[t+2]=vl[2],n[t+3]=vl[3],this.index+=4}writeFloat64(e){const t=this.index,n=this.uint8array;gl(vl,e),n[t]=vl[0],n[t+1]=vl[1],n[t+2]=vl[2],n[t+3]=vl[3],n[t+4]=vl[4],n[t+5]=vl[5],n[t+6]=vl[6],n[t+7]=vl[7],this.index+=8}writeInt8Array(e){const t=this.index,n=this.uint8array;for(let a=0,r=e.length;a<r;a++)n[t+a]=dl(e[a]);this.index+=e.byteLength}writeInt16Array(e){const t=this.index,n=this.uint8array;for(let a=0,r=e.length;a<r;a++){const r=t+2*a;hl(vl,e[a]),n[r]=vl[0],n[r+1]=vl[1]}this.index+=e.byteLength}writeInt32Array(e){const t=this.index,n=this.uint8array;for(let a=0,r=e.length;a<r;a++){const r=t+4*a;fl(vl,e[a]),n[r]=vl[0],n[r+1]=vl[1],n[r+2]=vl[2],n[r+3]=vl[3]}this.index+=e.byteLength}writeUint8Array(e){const t=this.index,n=this.uint8array;for(let a=0,r=e.length;a<r;a++)n[t+a]=e[a];this.index+=e.byteLength}writeUint16Array(e){const t=this.index,n=this.uint8array;for(let a=0,r=e.length;a<r;a++){const r=t+2*a;ml(vl,e[a]),n[r]=vl[0],n[r+1]=vl[1]}this.index+=e.byteLength}writeUint32Array(e){const t=this.index,n=this.uint8array;for(let a=0,r=e.length;a<r;a++){const r=t+4*a;pl(vl,e[a]),n[r]=vl[0],n[r+1]=vl[1],n[r+2]=vl[2],n[r+3]=vl[3]}this.index+=e.byteLength}writeFloat32Array(e){const t=this.index,n=this.uint8array;for(let a=0,r=e.length;a<r;a++){const r=t+4*a;_l(vl,e[a]),n[r]=vl[0],n[r+1]=vl[1],n[r+2]=vl[2],n[r+3]=vl[3]}this.index+=e.byteLength}writeFloat64Array(e){const t=this.index,n=this.uint8array;for(let a=0,r=e.length;a<r;a++){const r=t+8*a;gl(vl,e[a]),n[r]=vl[0],n[r+1]=vl[1],n[r+2]=vl[2],n[r+3]=vl[3],n[r+4]=vl[4],n[r+5]=vl[5],n[r+6]=vl[6],n[r+7]=vl[7]}this.index+=e.byteLength}}class yl{constructor(e,t,n){this.index=0,this.bitBuffer=0,this.bits=0;const a=$s(e);t=t||0,n=n||a.length,this.buffer=e,this.uint8array=a.subarray(t,t+n),this.byteLength=e.byteLength}peekBits(e){return this.loadBits(e),this.bitBuffer&(1<<e)-1}readBits(e){const t=this.peekBits(e);return this.bitBuffer>>>=e,this.bits-=e,t}skipBits(e){this.loadBits(e),this.bitBuffer>>>=e,this.bits-=e}loadBits(e){for(;this.bits<e;)this.bitBuffer+=this.uint8array[this.index]<<this.bits,this.bits+=8,this.index+=1}}function Sl(e){if(e&&e.length){let t=e.lastIndexOf("/");return-1!==t&&(e=e.slice(t+1)),t=e.lastIndexOf("\\"),-1!==t&&(e=e.slice(t+1)),e}return""}function Tl(e){if(e&&e.length){const t=e.lastIndexOf(".");return-1!==t&&(e=e.slice(t).toLowerCase()),e}return""}function xl(e){const t=(e=Sl(e)).lastIndexOf(".");return-1!==t&&(e=e.slice(0,t)),e}function El(e){return e instanceof ArrayBuffer&&(e=new Uint8Array(e)),e instanceof Uint8Array&&137===e[0]&&80===e[1]&&78===e[2]&&71===e[3]&&13===e[4]&&10===e[5]&&26===e[6]&&10===e[7]}function Ll(e){return e instanceof ArrayBuffer&&(e=new Uint8Array(e)),e instanceof Uint8Array&&255===e[0]&&216===e[1]&&255===e[e.length-2]&&217===e[e.length-1]}function Il(e){return e instanceof ArrayBuffer&&(e=new Uint8Array(e)),e instanceof Uint8Array&&71===e[0]&&73===e[1]&&70===e[2]&&56===e[3]&&(55===e[4]||57===e[4])&&97===e[5]}function Ul(e){return e instanceof ArrayBuffer&&(e=new Uint8Array(e)),e instanceof Uint8Array&&82===e[0]&&73===e[1]&&70===e[2]&&70===e[3]&&87===e[8]&&69===e[9]&&66===e[10]&&80===e[11]}const Rl={glMatrix:h,glMatrixAddon:f,math:m,canvas:p,BinaryStream:Al,BitStream:yl,urlWithParams:function(e,t){if(t){const n=Object.entries(t);if(n.length){const t=n.map(([e,t])=>`${e}=${t}`).join("&");let a="&";return-1===e.indexOf("?")&&(a="?"),`${e}${a}${t}`}}return e},path:_,isPng:El,isJpeg:Ll,isGif:Il,isWebP:Ul};class Cl{constructor(){this.properties=new Map,this.sections=new Map}load(e){let t=this.properties;const n=this.sections;for(const a of e.split("\r\n"))if(a.length&&!a.startsWith("//")&&!a.startsWith(";")){let e=a.match(/^\[(.+?)\]/);if(e){const a=e[1].trim();t=n.get(a),t||(t=new Map,n.set(a,t))}else if(e=a.match(/^(.+?)=(.*?)$/),e){let n=e[2];'"'===n[0]&&(n=n.slice(1,-1)),t.set(e[1],n)}}}save(){const e=[];for(const[t,n]of this.properties)e.push(`${t}=${n}`);for(const[t,n]of this.sections){e.push(`[${t}]`);for(const[t,a]of n)e.push(`${t}=${a}`)}return e.join("\r\n")}getSection(e){return this.sections.get(e)}}const Ml={File:Cl};class Bl{constructor(){this.rows=[]}load(e){if(!e.startsWith("ID"))throw new Error("WrongMagicNumber");const t=this.rows;let n=0,a=0;for(const r of e.split("\n"))if("B"!==r[0])for(const e of r.split(";")){const r=e[0],i=e.substring(1).trim();let s;"X"===r?n=parseInt(i,10)-1:"Y"===r?a=parseInt(i,10)-1:"K"===r&&(t[a]||(t[a]=[]),s='"'===i[0]?i.slice(1,-1):i,t[a][n]=s)}}save(){const e=this.rows,t=e.length,n=[];let a=0;for(let r=0;r<t;r++){const t=e[r],i=t.length;i>a&&(a=i);let s=!0;for(let e=0;e<i;e++){const a=t[e];if(void 0!==a){let t;t="string"==typeof a?`"${a}"`:"boolean"==typeof a?a?"TRUE":"FALSE":`${a}`,s?(s=!1,n.push(`C;X${e+1};Y${r+1};K${t}`)):n.push(`C;X${e+1};K${t}`)}}}return`ID;P\r\nB;X${a};Y${t}\r\n${n.join("\r\n")}\r\nE`}}const Nl={File:Bl};function Pl(e){return[...e].reverse().join("")}class kl{constructor(){this.index=null,this.entries=0,this.id=0,this.flags=0}load(e,t){this.index=t,this.entries=e.readUint32(),this.id=e.readUint32(),this.flags=e.readUint32()}get(){if(this.index&&0!==this.id&&0!==this.entries)return this.index[this.id].entries}first(){const e=this.get();if(e)return e[0]}}class Ol{constructor(){this.version=-1,this.tag="",this.offset=0,this.entries=0,this.model=new kl}load(e,t,n){this.version=t,this.tag=Pl(e.readBinary(4)),this.offset=e.readUint32(),this.entries=e.readUint32(),this.model.load(e,n)}}class Dl{constructor(){this.min=new Float32Array(3),this.max=new Float32Array(3),this.radius=0}load(e){e.readFloat32Array(this.min),e.readFloat32Array(this.max),this.radius=e.readFloat32()}}class Fl{constructor(){this.shape=-1,this.bone=-1,this.unknown0=0,this.matrix=new Float32Array(16),this.unknown1=0,this.unknown2=0,this.unknown3=0,this.unknown4=0,this.unknown5=0,this.unknown6=0,this.size=new Float32Array(3)}load(e){this.shape=e.readUint32(),this.bone=e.readInt16(),this.unknown0=e.readUint16(),e.readFloat32Array(this.matrix),this.unknown1=e.readUint32(),this.unknown2=e.readUint32(),this.unknown3=e.readUint32(),this.unknown4=e.readUint32(),this.unknown5=e.readUint32(),this.unknown6=e.readUint32(),e.readFloat32Array(this.size)}}class Gl{constructor(){this.interpolationType=0,this.animFlags=0,this.animId=-1,this.initValue=null,this.nullValue=null}load(e){this.interpolationType=e.readUint16(),this.animFlags=e.readUint16(),this.animId=e.readUint32(),this.readInitNullValues(e),e.skip(4)}}class Vl extends Gl{readInitNullValues(e){this.initValue=e.readUint8Array(4),this.nullValue=e.readUint8Array(4)}}class Kl extends Gl{readInitNullValues(e){this.initValue=e.readUint16(),this.nullValue=e.readUint16()}}class Hl extends Gl{readInitNullValues(e){this.initValue=e.readUint32(),this.nullValue=e.readUint32()}}class zl extends Gl{readInitNullValues(e){this.initValue=e.readFloat32(),this.nullValue=e.readFloat32()}}class jl extends Gl{readInitNullValues(e){this.initValue=e.readFloat32Array(2),this.nullValue=e.readFloat32Array(2)}}class Xl extends Gl{readInitNullValues(e){this.initValue=e.readFloat32Array(3),this.nullValue=e.readFloat32Array(3)}}class $l extends Gl{readInitNullValues(e){this.initValue=e.readFloat32Array(4),this.nullValue=e.readFloat32Array(4)}}class Jl{constructor(){this.version=-1,this.keys=new kl,this.flags=0,this.biggestKey=-1,this.values=new kl}load(e,t,n){this.version=t,this.keys.load(e,n),this.flags=e.readUint32(),this.biggestKey=e.readUint32(),this.values.load(e,n)}}class Wl{constructor(e,t,n){this.stream=e,this.version=t,this.index=n}}const ql={MD34:[Ol,{11:24}],MODL:[class{constructor(){this.version=-1,this.modelName=new kl,this.flags=0,this.sequences=new kl,this.stc=new kl,this.stg=new kl,this.unknown0=0,this.unknown1=0,this.unknown2=0,this.unknown3=0,this.sts=new kl,this.bones=new kl,this.numberOfBonesToCheckForSkin=0,this.vertexFlags=0,this.vertices=new kl,this.divisions=new kl,this.boneLookup=new kl,this.boundings=new Dl,this.unknown4To20=new Uint32Array(16),this.attachmentPoints=new kl,this.attachmentPointAddons=new kl,this.ligts=new kl,this.shbxData=new kl,this.cameras=new kl,this.unknown21=new kl,this.materialReferences=new kl,this.materials=[],this.particleEmitters=new kl,this.particleEmitterCopies=new kl,this.ribbonEmitters=new kl,this.projections=new kl,this.forces=new kl,this.warps=new kl,this.unknown22=new kl,this.rigidBodies=new kl,this.unknown23=new kl,this.physicsJoints=new kl,this.clothBehavior=new kl,this.unknown24=new kl,this.ikjtData=new kl,this.unknown25=new kl,this.unknown26=new kl,this.partsOfTurrentBehaviors=new kl,this.turrentBehaviors=new kl,this.absoluteInverseBoneRestPositions=new kl,this.tightHitTest=new Fl,this.fuzzyHitTestObjects=new kl,this.attachmentVolumes=new kl,this.attachmentVolumesAddon0=new kl,this.attachmentVolumesAddon1=new kl,this.billboardBehaviors=new kl,this.tmdData=new kl,this.unknown27=0,this.unknown28=new kl;for(let e=0;e<11;e++)this.materials[e]=new kl}load(e,t,n){this.version=t,this.modelName.load(e,n),this.flags=e.readUint32(),this.sequences.load(e,n),this.stc.load(e,n),this.stg.load(e,n),this.unknown0=e.readFloat32(),this.unknown1=e.readFloat32(),this.unknown2=e.readFloat32(),this.unknown3=e.readFloat32(),this.sts.load(e,n),this.bones.load(e,n),this.numberOfBonesToCheckForSkin=e.readUint32(),this.vertexFlags=e.readUint32(),this.vertices.load(e,n),this.divisions.load(e,n),this.boneLookup.load(e,n),this.boundings.load(e),e.readUint32Array(this.unknown4To20),this.attachmentPoints.load(e,n),this.attachmentPointAddons.load(e,n),this.ligts.load(e,n),this.shbxData.load(e,n),this.cameras.load(e,n),this.unknown21.load(e,n),this.materialReferences.load(e,n);for(let t=0;t<7;t++)this.materials[t].load(e,n);t>24&&this.materials[7].load(e,n),t>25&&this.materials[8].load(e,n),t>27&&this.materials[9].load(e,n),t>28&&this.materials[10].load(e,n),this.particleEmitters.load(e,n),this.particleEmitterCopies.load(e,n),this.ribbonEmitters.load(e,n),this.projections.load(e,n),this.forces.load(e,n),this.warps.load(e,n),this.unknown22.load(e,n),this.rigidBodies.load(e,n),this.unknown23.load(e,n),this.physicsJoints.load(e,n),t>27&&this.clothBehavior.load(e,n),this.unknown24.load(e,n),this.ikjtData.load(e,n),this.unknown25.load(e,n),t>24&&this.unknown26.load(e,n),this.partsOfTurrentBehaviors.load(e,n),this.turrentBehaviors.load(e,n),this.absoluteInverseBoneRestPositions.load(e,n),this.tightHitTest.load(e),this.fuzzyHitTestObjects.load(e,n),this.attachmentVolumes.load(e,n),this.attachmentVolumesAddon0.load(e,n),this.attachmentVolumesAddon1.load(e,n),this.billboardBehaviors.load(e,n),this.tmdData.load(e,n),this.unknown27=e.readUint32(),this.unknown28.load(e,n)}},{23:784,25:808,26:820,28:844,29:856}],SEQS:[class{constructor(){this.version=-1,this.name=new kl,this.interval=new Uint32Array(2),this.movementSpeed=0,this.flags=0,this.frequency=0,this.boundingSphere=new Dl}load(e,t,n){this.version=t,e.skip(8),this.name.load(e,n),e.readUint32Array(this.interval),this.movementSpeed=e.readFloat32(),this.flags=e.readUint32(),this.frequency=e.readUint32(),e.skip(12),t<2&&e.skip(4),this.boundingSphere.load(e),e.skip(12)}},{1:96,2:92}],STC_:[class{constructor(){this.version=-1,this.name=new kl,this.runsConcurrent=0,this.priority=0,this.stsIndex=-1,this.stsIndexCopy=-1,this.animIds=new kl,this.animRefs=new kl,this.sd=[];for(let e=0;e<13;e++)this.sd[e]=new kl}load(e,t,n){this.version=t,this.name.load(e,n),this.runsConcurrent=e.readUint16(),this.priority=e.readUint16(),this.stsIndex=e.readUint16(),this.stsIndexCopy=e.readUint16(),this.animIds.load(e,n),this.animRefs.load(e,n),e.skip(4);for(let t=0;t<13;t++)this.sd[t].load(e,n)}},{4:204}],STG_:[class{constructor(){this.version=-1,this.name=new kl,this.stcIndices=new kl}load(e,t,n){this.version=t,this.name.load(e,n),this.stcIndices.load(e,n)}},{0:24}],STS_:[class{constructor(){this.version=-1,this.animIds=new kl}load(e,t,n){this.version=t,this.animIds.load(e,n),e.skip(16)}},{0:28}],BONE:[class{constructor(){this.version=-1,this.unknown0=0,this.name=new kl,this.flags=0,this.parent=-1,this.unknown1=0,this.location=new Xl,this.rotation=new $l,this.scale=new Xl,this.visibility=new Hl}load(e,t,n){this.version=t,this.unknown0=e.readInt32(),this.name.load(e,n),this.flags=e.readUint32(),this.parent=e.readInt16(),this.unknown1=e.readUint16(),this.location.load(e),this.rotation.load(e),this.scale.load(e),this.visibility.load(e)}},{1:160}],DIV_:[class{constructor(){this.version=-1,this.triangles=new kl,this.regions=new kl,this.batches=new kl,this.MSEC=new kl,this.unknown0=0}load(e,t,n){this.version=t,this.triangles.load(e,n),this.regions.load(e,n),this.batches.load(e,n),this.MSEC.load(e,n),this.unknown0=e.readUint32()}},{2:52}],REGN:[class{constructor(){this.version=-1,this.unknown0=0,this.unknown1=0,this.firstVertexIndex=-1,this.verticesCount=0,this.firstTriangleIndex=-1,this.triangleIndicesCount=0,this.bonesCount=0,this.firstBoneLookupIndex=-1,this.boneLookupIndicesCount=0,this.unknown2=0,this.boneWeightPairsCount=0,this.unknown3=0,this.rootBoneIndex=-1,this.unknown4=0,this.unknown5=new Uint8Array(8)}load(e,t,n){this.version=t,this.unknown0=e.readUint32(),this.unknown1=e.readUint32(),this.firstVertexIndex=e.readUint32(),this.verticesCount=e.readUint32(),this.firstTriangleIndex=e.readUint32(),this.triangleIndicesCount=e.readUint32(),this.bonesCount=e.readUint16(),this.firstBoneLookupIndex=e.readUint16(),this.boneLookupIndicesCount=e.readUint16(),this.unknown2=e.readUint16(),this.boneWeightPairsCount=e.readUint8(),this.unknown3=e.readUint8(),this.rootBoneIndex=e.readUint16(),t>3&&(this.unknown4=e.readUint32()),t>4&&e.readUint8Array(this.unknown5)}},{3:36,4:40,5:48}],BAT_:[class{constructor(){this.version=-1,this.unknown0=0,this.regionIndex=-1,this.unknown1=0,this.materialReferenceIndex=-1,this.unknown2=0}load(e,t,n){this.version=t,this.unknown0=e.readUint32(),this.regionIndex=e.readUint16(),this.unknown1=e.readUint32(),this.materialReferenceIndex=e.readUint16(),this.unknown2=e.readUint16()}},{1:14}],MATM:[class{constructor(){this.version=-1,this.materialType=0,this.materialIndex=-1}load(e,t,n){this.version=t,this.materialType=e.readUint32(),this.materialIndex=e.readUint32()}},{0:8}],MAT_:[class{constructor(){this.version=-1,this.name=new kl,this.additionalFlags=0,this.flags=0,this.blendMode=0,this.priority=0,this.usedRTTChannels=0,this.specularity=0,this.depthBlendFalloff=0,this.cutoutThreshold=0,this.unknown1=0,this.unknown2=0,this.unknown3=0,this.specMult=0,this.emisMult=0,this.diffuseLayer=new kl,this.decalLayer=new kl,this.specularLayer=new kl,this.glossLayer=new kl,this.emissiveLayer=new kl,this.emissive2Layer=new kl,this.evioLayer=new kl,this.evioMaskLayer=new kl,this.alphaMaskLayer=new kl,this.alphaMask2Layer=new kl,this.normalLayer=new kl,this.heightLayer=new kl,this.lightMapLayer=new kl,this.ambientOcclusionLayer=new kl,this.unknown4=new kl,this.unknown5=new kl,this.unknown6=new kl,this.unknown7=new kl,this.unknown8=0,this.layerBlendType=0,this.emisBlendType=0,this.emisMode=0,this.specType=0,this.unknown9=new zl,this.unknown10=new Hl,this.unknown11=new Uint8Array(12)}load(e,t,n){this.version=t,this.name.load(e,n),this.additionalFlags=e.readUint32(),this.flags=e.readUint32(),this.blendMode=e.readUint32(),this.priority=e.readInt32(),this.usedRTTChannels=e.readUint32(),this.specularity=e.readFloat32(),this.depthBlendFalloff=e.readFloat32(),this.cutoutThreshold=e.readUint8(),this.unknown1=e.readUint8(),this.unknown2=e.readUint8(),this.unknown3=e.readUint8(),this.specMult=e.readFloat32(),this.emisMult=e.readFloat32(),this.diffuseLayer.load(e,n),this.decalLayer.load(e,n),this.specularLayer.load(e,n),t>15&&this.glossLayer.load(e,n),this.emissiveLayer.load(e,n),this.emissive2Layer.load(e,n),this.evioLayer.load(e,n),this.evioMaskLayer.load(e,n),this.alphaMaskLayer.load(e,n),this.alphaMask2Layer.load(e,n),this.normalLayer.load(e,n),this.heightLayer.load(e,n),this.lightMapLayer.load(e,n),this.ambientOcclusionLayer.load(e,n),t>18&&(this.unknown4.load(e,n),this.unknown5.load(e,n),this.unknown6.load(e,n),this.unknown7.load(e,n)),this.unknown8=e.readUint32(),this.layerBlendType=e.readUint32(),this.emisBlendType=e.readUint32(),this.emisMode=e.readUint32(),this.specType=e.readUint32(),this.unknown9.load(e),this.unknown10.load(e),t>18&&(this.unknown11=e.readUint8Array(this.unknown11))}},{15:268,16:280,17:280,18:280,19:340}],LAYR:[class{constructor(){this.version=-1,this.unknown0=0,this.imagePath=new kl,this.color=new Vl,this.flags=0,this.uvSource=-1,this.colorChannelSetting=0,this.brightMult=new zl,this.midtoneOffset=new zl,this.unknown1=0,this.noiseAmp=0,this.noiseFreq=0,this.rttChannel=0,this.videoFrameRate=0,this.videoStartFrame=0,this.videoEndFrame=0,this.videoMode=0,this.videoSyncTiming=0,this.videoPlay=new Hl,this.videoRestart=new Hl,this.flipBookRows=0,this.flipBookColumns=0,this.flipBookFrame=new Kl,this.uvOffset=new jl,this.uvAngle=new Xl,this.uvTiling=new jl,this.unknown2=new Hl,this.unknown3=new zl,this.brightness=new zl,this.triPlanarOffset=new Xl,this.triPlanarScale=new Xl,this.unknown4=0,this.fresnelType=0,this.fresnelExponent=0,this.fresnelMin=0,this.fresnelMaxOffset=0,this.unknown5=0,this.unknown6=new Uint8Array(8),this.fresnelInvertedMaskX=0,this.fresnelInvertedMaskY=0,this.fresnelInvertedMaskZ=0,this.fresnelRotationYaw=0,this.fresnelRotationPitch=0,this.unknown7=0}load(e,t,n){this.version=t,this.unknown0=e.readUint32(),this.imagePath.load(e,n),this.color.load(e),this.flags=e.readUint32(),this.uvSource=e.readUint32(),this.colorChannelSetting=e.readUint32(),this.brightMult.load(e),this.midtoneOffset.load(e),this.unknown1=e.readUint32(),t>23&&(this.noiseAmp=e.readFloat32(),this.noiseFreq=e.readFloat32()),this.rttChannel=e.readInt32(),this.videoFrameRate=e.readUint32(),this.videoStartFrame=e.readUint32(),this.videoEndFrame=e.readInt32(),this.videoMode=e.readUint32(),this.videoSyncTiming=e.readUint32(),this.videoPlay.load(e),this.videoRestart.load(e),this.flipBookRows=e.readUint32(),this.flipBookColumns=e.readUint32(),this.flipBookFrame.load(e),this.uvOffset.load(e),this.uvAngle.load(e),this.uvTiling.load(e),this.unknown2.load(e),this.unknown3.load(e),this.brightness.load(e),t>23&&(this.triPlanarOffset.load(e),this.triPlanarScale.load(e)),this.unknown4=e.readInt32(),this.fresnelType=e.readUint32(),this.fresnelExponent=e.readFloat32(),this.fresnelMin=e.readFloat32(),this.fresnelMaxOffset=e.readFloat32(),this.unknown5=e.readFloat32(),t>24&&(this.unknown6=e.readUint8Array(8),this.fresnelInvertedMaskX=e.readFloat32(),this.fresnelInvertedMaskY=e.readFloat32(),this.fresnelInvertedMaskZ=e.readFloat32(),this.fresnelRotationYaw=e.readFloat32(),this.fresnelRotationPitch=e.readFloat32(),this.unknown7=e.readUint32())}},{22:356,24:436,25:468,26:464}],EVNT:[class{constructor(){this.version=-1,this.name=new kl,this.unknown0=0,this.unknown1=0,this.unknown2=0,this.matrix=new Float32Array(16),this.unknown3=0,this.unknown4=0,this.unknown5=0,this.unknown6=0,this.unknown7=0,this.unknown8=0}load(e,t,n){this.version=t,this.name.load(e,n),this.unknown0=e.readInt32(),this.unknown1=e.readInt16(),this.unknown2=e.readUint16(),e.readFloat32Array(this.matrix),this.unknown3=e.readInt32(),this.unknown4=e.readInt32(),this.unknown5=e.readInt32(),t>0&&(this.unknown6=e.readInt32(),this.unknown7=e.readInt32()),t>1&&(this.unknown8=e.readInt32())}},{0:96,1:104,2:108}],BNDS:[Dl,{0:28}],ATT_:[class{constructor(){this.version=-1,this.unknown=0,this.name=new kl,this.bone=-1}load(e,t,n){this.version=t,this.unknown=e.readInt32(),this.name.load(e,n),this.bone=e.readUint32()}},{1:20}],CAM_:[class{constructor(){this.version=-1,this.bone=-1,this.name=new kl,this.fieldOfView=new zl,this.unknown0=0,this.farClip=new zl,this.nearClip=new zl,this.clip2=new zl,this.focalDepth=new zl,this.falloffStart=new zl,this.falloffEnd=new zl,this.depthOfField=new zl}load(e,t,n){this.version=t,this.bone=e.readUint32(),this.name.load(e,n),this.fieldOfView.load(e),this.unknown0=e.readUint32(),this.farClip.load(e),this.nearClip.load(e),this.clip2.load(e),this.focalDepth.load(e),this.falloffStart.load(e),this.falloffEnd.load(e),this.depthOfField.load(e)}},{3:180,5:264}],SDEV:[Jl,{0:32}],SDU6:[Jl,{0:32}],SDFG:[Jl,{0:32}],SDS6:[Jl,{0:32}],SDR3:[Jl,{0:32}],SD2V:[Jl,{0:32}],SD3V:[Jl,{0:32}],SD4Q:[Jl,{0:32}],SDCC:[Jl,{0:32}],SDMB:[Jl,{0:32}],FLAG:[Jl,{0:32}],MSEC:[Wl,{1:72}],LITE:[Wl,{7:212}],ATVL:[Wl,{0:116}],PATU:[Wl,{4:152}],TRGD:[Wl,{0:24}],DIS_:[Wl,{4:68}],CMS_:[Wl,{0:24}],CMP_:[Wl,{2:28}],TER_:[Wl,{0:24,1:28}],VOL_:[Wl,{0:84}],VON_:[Wl,{0:268}],CREP:[Wl,{0:24,1:28}],STBM:[Wl,{0:48}],LFSB:[Wl,{2:56}],LFLR:[Wl,{2:80,3:152}],PAR_:[Wl,{12:1316,17:1460,18:1464,19:1464,21:1464,22:1484,23:1492,24:1496}],PARC:[Wl,{0:40}],PROJ:[Wl,{4:388,5:382}],PHYJ:[Wl,{0:180}],PHCC:[Wl,{0:76}],PHAC:[Wl,{0:32}],PHCL:[Wl,{2:128}],FOR_:[Wl,{1:104,2:104}],DMSE:[Wl,{0:4}],PHSH:[Wl,{1:132,3:300}],PHRB:[Wl,{2:104,4:80}],SSGS:[Wl,{1:108}],BBSC:[Wl,{0:48}],SRIB:[Wl,{0:272}],RIB_:[Wl,{6:748,8:756,9:760}],IKJT:[Wl,{0:32}],SHBX:[Wl,{0:64}],WRP_:[Wl,{1:132}]};class Yl{constructor(e,t){const n=Pl(e.readBinary(4)),a=e.readUint32(),r=e.readUint32(),i=e.readUint32();this.index=t,this.tag=n,this.offset=a,this.version=i;const s=ql[n],l=e.index;if(e.seek(a),s){const a=s[0],l=s[1][i];if(!l)throw new Error(": Unsupported object version - tag "+n+" and version "+i);this.entries=[];for(let n=0,s=r;n<s;n++)if(a===Wl)this.entries[n]=new Wl(e.substream(l),i,t);else{const r=new a;r.load(e.substream(l),i,t),this.entries[n]=r}}else if("CHAR"===n||"SCHR"===n)this.entries=e.read(r);else if("U8__"===n)this.entries=e.readUint8Array(r);else if("U16_"===n)this.entries=e.readUint16Array(r);else if("U32_"===n)this.entries=e.readUint32Array(r);else if("I16_"===n)this.entries=e.readInt16Array(r);else if("I32_"===n)this.entries=e.readInt32Array(r);else if("REAL"===n)this.entries=e.readFloat32Array(r);else if("VEC2"===n){this.entries=[];for(let t=0;t<r;t++)this.entries[t]=e.readFloat32Array(2)}else if("VEC3"===n||"SVC3"===n){this.entries=[];for(let t=0;t<r;t++)this.entries[t]=e.readFloat32Array(3)}else if("VEC4"===n||"QUAT"===n){this.entries=[];for(let t=0;t<r;t++)this.entries[t]=e.readFloat32Array(4)}else{if("IREF"!==n)throw this.entries=[],new Error(": Unsupported object tag - tag "+n+" and version "+i);this.entries=[];for(let t=0;t<r;t++)this.entries[t]=e.readFloat32Array(16)}e.seek(l)}}class Zl{constructor(){this.index=[],this.model=null}load(e){const t=new Al(e),n=new Ol;if(n.load(t,11,this.index),"MD34"!==n.tag)throw new Error("WrongMagicNumber");t.seek(n.offset);for(let e=0,a=n.entries;e<a;e++)this.index[e]=new Yl(t,this.index);const a=this.index[n.model.id].entries;a&&(this.model=a[0])}}function Ql(e){return e instanceof ArrayBuffer&&(e=new Uint8Array(e)),e instanceof Uint8Array&&52===e[0]&&51===e[1]&&68===e[2]&&77===e[3]}const eo={Model:Zl,isM3:Ql};class to{constructor(e){this.index=0,this.ident=0,this.indentSpaces=4,this.precision=1e6,this.buffer=e||""}clear(){this.buffer="",this.index=0,this.ident=0}readToken(){const e=this.buffer,t=e.length;let n=!1,a=!1,r="";for(;this.index<t;){const t=e[this.index++];if(n)"\n"===t&&(n=!1);else if(a)if("\\"===t)r+=t+e[this.index++];else if("\n"===t)r+="\\n";else if("\r"===t)r+="\\r";else{if('"'===t)return r;r+=t}else if(" "===t||","===t||"\t"===t||"\n"===t||":"===t||"\r"===t){if(r.length)return r}else{if("{"===t||"}"===t)return r.length?(this.index--,r):t;if("/"===t&&"/"===e[this.index]){if(r.length)return this.index--,r;n=!0}else if('"'===t){if(r.length)return this.index--,r;a=!0}else r+=t}}}read(){const e=this.readToken();if(void 0===e)throw new Error("End of stream reached prematurely");return e}peek(){const e=this.index,t=this.read();return this.index=e,t}readInt(){return parseInt(this.read())}readFloat(){return parseFloat(this.read())}readVector(e){this.read();for(let t=0,n=e.length;t<n;t++)e[t]=this.readFloat();return this.read(),e}readVectorsBlock(e,t){this.read();for(let n=0,a=e.length;n<a;n+=t)this.readVector(e.subarray(n,n+t));return this.read(),e}readColor(e){return this.read(),e[2]=this.readFloat(),e[1]=this.readFloat(),e[0]=this.readFloat(),this.read(),e}*readBlock(){this.read();let e=this.read();for(;"}"!==e;)yield e,e=this.read()}writeLine(e){this.buffer+=`${" ".repeat(this.ident*this.indentSpaces)}${e}\n`}writeFlag(e){this.writeLine(`${e},`)}writeFlagAttrib(e,t){this.writeLine(`${e} ${t},`)}writeNumberAttrib(e,t){this.writeLine(`${e} ${this.floatDecimals(t)},`)}writeStringAttrib(e,t){this.writeLine(`${e} "${t}",`)}writeVectorAttrib(e,t){this.writeLine(`${e} { ${this.floatArrayDecimals(t)} },`)}writeColor(e,t){const n=this.floatDecimals(t[0]),a=this.floatDecimals(t[1]),r=this.floatDecimals(t[2]);this.writeLine(`${e} { ${r}, ${a}, ${n} },`)}writeVector(e){this.writeLine(`{ ${this.floatArrayDecimals(e)} },`)}writeVectorArrayBlock(e,t,n){this.startBlock(e,t.length/n);for(let e=0,a=t.length;e<a;e+=n)this.writeVector(t.subarray(e,e+n));this.endBlock()}startBlock(e,...t){t.length&&(e=`${e} ${t.join(" ")}`),this.writeLine(`${e} {`),this.ident+=1}startObjectBlock(e,t){this.writeLine(`${e} "${t.replace(/"/g,'\\"')}" {`),this.ident+=1}endBlock(){this.ident-=1,this.writeLine("}")}endBlockComma(){this.ident-=1,this.writeLine("},")}indent(){this.ident+=1}unindent(){this.ident-=1}floatDecimals(e){return""+Math.trunc(e*this.precision)/this.precision}floatArrayDecimals(e){if(e instanceof Float32Array){const t=[];for(let n=0,a=e.length;n<a;n++)t[n]=this.floatDecimals(e[n]);return t.join(", ")}return e.join(", ")}}class no{constructor(){this.boundsRadius=0,this.min=new Float32Array(3),this.max=new Float32Array(3)}readMdx(e){this.boundsRadius=e.readFloat32(),e.readFloat32Array(this.min),e.readFloat32Array(this.max)}writeMdx(e){e.writeFloat32(this.boundsRadius),e.writeFloat32Array(this.min),e.writeFloat32Array(this.max)}writeMdl(e){0===this.min[0]&&0===this.min[1]&&0===this.min[2]||e.writeVectorAttrib("MinimumExtent",this.min),0===this.max[0]&&0===this.max[1]&&0===this.max[2]||e.writeVectorAttrib("MaximumExtent",this.max),0!==this.boundsRadius&&e.writeNumberAttrib("BoundsRadius",this.boundsRadius)}}class ao{constructor(){this.name="",this.interval=new Uint32Array(2),this.moveSpeed=0,this.nonLooping=0,this.rarity=0,this.syncPoint=0,this.extent=new no}readMdx(e){this.name=e.read(80),e.readUint32Array(this.interval),this.moveSpeed=e.readFloat32(),this.nonLooping=e.readUint32(),this.rarity=e.readFloat32(),this.syncPoint=e.readUint32(),this.extent.readMdx(e)}writeMdx(e){e.skip(80-e.write(this.name)),e.writeUint32Array(this.interval),e.writeFloat32(this.moveSpeed),e.writeUint32(this.nonLooping),e.writeFloat32(this.rarity),e.writeUint32(this.syncPoint),this.extent.writeMdx(e)}readMdl(e){this.name=e.read();for(const t of e.readBlock())if("Interval"===t)e.readVector(this.interval);else if("NonLooping"===t)this.nonLooping=1;else if("MoveSpeed"===t)this.moveSpeed=e.readFloat();else if("Rarity"===t)this.rarity=e.readFloat();else if("MinimumExtent"===t)e.readVector(this.extent.min);else if("MaximumExtent"===t)e.readVector(this.extent.max);else{if("BoundsRadius"!==t)throw new Error(`Unknown token in Sequence: "${t}"`);this.extent.boundsRadius=e.readFloat()}}writeMdl(e){e.startObjectBlock("Anim",this.name),e.writeVectorAttrib("Interval",this.interval),1===this.nonLooping&&e.writeFlag("NonLooping"),0!==this.moveSpeed&&e.writeNumberAttrib("MoveSpeed",this.moveSpeed),0!==this.rarity&&e.writeNumberAttrib("Rarity",this.rarity),this.extent.writeMdl(e),e.endBlock()}}class ro{constructor(){this.name="",this.interpolationType=0,this.globalSequenceId=-1,this.frames=[],this.values=[],this.inTans=[],this.outTans=[]}readMdx(e,t){const n=this.frames,a=this.values,r=this.inTans,i=this.outTans,s=e.readUint32(),l=e.readUint32();this.name=t,this.interpolationType=l,this.globalSequenceId=e.readInt32();for(let t=0;t<s;t++)n.push(e.readInt32()),a.push(this.readMdxValue(e)),l>1&&(r.push(this.readMdxValue(e)),i.push(this.readMdxValue(e)))}writeMdx(e){const t=this.interpolationType,n=this.frames,a=this.values,r=this.inTans,i=this.outTans,s=n.length;e.writeBinary(this.name),e.writeUint32(s),e.writeUint32(t),e.writeInt32(this.globalSequenceId);for(let l=0;l<s;l++)e.writeInt32(n[l]),this.writeMdxValue(e,a[l]),t>1&&(this.writeMdxValue(e,r[l]),this.writeMdxValue(e,i[l]))}readMdl(e,t){const n=this.frames,a=this.values,r=this.inTans,i=this.outTans;this.name=t;const s=e.readInt();e.read();let l=0;const o=e.read();"DontInterp"===o?l=0:"Linear"===o?l=1:"Hermite"===o?l=2:"Bezier"===o&&(l=3),this.interpolationType=l,"GlobalSeqId"===e.peek()&&(e.read(),this.globalSequenceId=e.readInt());for(let t=0;t<s;t++)n[t]=e.readInt(),a[t]=this.readMdlValue(e),l>1&&(e.read(),r[t]=this.readMdlValue(e),e.read(),i[t]=this.readMdlValue(e));e.read()}writeMdl(e,t){const n=this.interpolationType,a=this.frames,r=this.values,i=this.inTans,s=this.outTans,l=a.length;e.startBlock(t,this.frames.length);let o="";0===this.interpolationType?o="DontInterp":1===this.interpolationType?o="Linear":2===this.interpolationType?o="Hermite":3===this.interpolationType&&(o="Bezier"),e.writeFlag(o),-1!==this.globalSequenceId&&e.writeNumberAttrib("GlobalSeqId",this.globalSequenceId);for(let t=0;t<l;t++)this.writeMdlValue(e,`${a[t]}:`,r[t]),n>1&&(e.indent(),this.writeMdlValue(e,"InTan",i[t]),this.writeMdlValue(e,"OutTan",s[t]),e.unindent());e.endBlock()}getByteLength(){const e=this.frames.length;let t=16;if(e){const n=this.values[0].byteLength;let a=1;this.interpolationType>1&&(a=3),t+=(4+a*n)*e}return t}}class io extends ro{readMdxValue(e){return e.readUint32Array(1)}writeMdxValue(e,t){e.writeUint32(t[0])}readMdlValue(e){return new Uint32Array([e.readInt()])}writeMdlValue(e,t,n){e.writeNumberAttrib(t,n[0])}}class so extends ro{readMdxValue(e){return e.readFloat32Array(1)}writeMdxValue(e,t){e.writeFloat32(t[0])}readMdlValue(e){return new Float32Array([e.readFloat()])}writeMdlValue(e,t,n){e.writeNumberAttrib(t,n[0])}}class lo extends ro{readMdxValue(e){return e.readFloat32Array(3)}writeMdxValue(e,t){e.writeFloat32Array(t)}readMdlValue(e){return e.readVector(new Float32Array(3))}writeMdlValue(e,t,n){e.writeVectorAttrib(t,n)}}class oo extends ro{readMdxValue(e){return e.readFloat32Array(4)}writeMdxValue(e,t){e.writeFloat32Array(t)}readMdlValue(e){return e.readVector(new Float32Array(4))}writeMdlValue(e,t,n){e.writeVectorAttrib(t,n)}}const uo={KMTF:["TextureID",io],KMTA:["Alpha",so],KMTE:["EmissiveGain",so],KFC3:["FresnelColor",lo],KFCA:["FresnelOpacity",so],KFTC:["FresnelTeamColor",io],KTAT:["Translation",lo],KTAR:["Rotation",oo],KTAS:["Scaling",lo],KGAO:["Alpha",so],KGAC:["Color",lo],KGTR:["Translation",lo],KGRT:["Rotation",oo],KGSC:["Scaling",lo],KLAS:["AttenuationStart",so],KLAE:["AttenuationEnd",so],KLAC:["Color",lo],KLAI:["Intensity",so],KLBI:["AmbIntensity",so],KLBC:["AmbColor",lo],KLAV:["Visibility",so],KATV:["Visibility",so],KPEE:["EmissionRate",so],KPEG:["Gravity",so],KPLN:["Longitude",so],KPLT:["Latitude",so],KPEL:["LifeSpan",so],KPES:["InitVelocity",so],KPEV:["Visibility",so],KP2S:["Speed",so],KP2R:["Variation",so],KP2L:["Latitude",so],KP2G:["Gravity",so],KP2E:["EmissionRate",so],KP2N:["Width",so],KP2W:["Length",so],KP2V:["Visibility",so],KPPA:["Alpha",so],KPPC:["Color",lo],KPPE:["EmissionRate",so],KPPL:["LifeSpan",so],KPPS:["Speed",so],KPPV:["Visibility",so],KRHA:["HeightAbove",so],KRHB:["HeightBelow",so],KRAL:["Alpha",so],KRCO:["Color",lo],KRTX:["TextureSlot",io],KRVS:["Visibility",so],KCTR:["Translation",lo],KTTR:["Translation",lo],KCRL:["Rotation",so]};class co{constructor(){this.animations=[]}readAnimations(e,t){const n=e.index+t;for(;e.index<n;){const t=e.readBinary(4),n=new uo[t][1];n.readMdx(e,t),this.animations.push(n)}}writeAnimations(e){for(const t of this.animations)t.writeMdx(e)}*readAnimatedBlock(e){for(const t of e.readBlock())"static"===t?yield`static ${e.read()}`:yield t}readAnimation(e,t){const n=new uo[t][1];n.readMdl(e,t),this.animations.push(n)}writeAnimation(e,t){for(const n of this.animations)if(n.name===t)return n.writeMdl(e,uo[t][0]),!0;return!1}getByteLength(e=0){let t=0;for(const e of this.animations)t+=e.getByteLength();return t}}function ho(e){return"None"===e?0:"Transparent"===e?1:"Blend"===e?2:"Additive"===e?3:"AddAlpha"===e?4:"Modulate"===e?5:"Modulate2x"===e?6:0}class fo extends co{constructor(){super(...arguments),this.filterMode=0,this.flags=0,this.textureId=-1,this.textureAnimationId=-1,this.coordId=0,this.alpha=1,this.emissiveGain=1,this.fresnelColor=new Float32Array([1,1,1]),this.fresnelOpacity=0,this.fresnelTeamColor=0}readMdx(e,t){const n=e.index,a=e.readUint32();this.filterMode=e.readUint32(),this.flags=e.readUint32(),this.textureId=e.readInt32(),this.textureAnimationId=e.readInt32(),this.coordId=e.readUint32(),this.alpha=e.readFloat32(),t>800&&(this.emissiveGain=e.readFloat32(),e.readFloat32Array(this.fresnelColor),this.fresnelOpacity=e.readFloat32(),this.fresnelTeamColor=e.readFloat32()),this.readAnimations(e,a-(e.index-n))}writeMdx(e,t){e.writeUint32(this.getByteLength(t)),e.writeUint32(this.filterMode),e.writeUint32(this.flags),e.writeInt32(this.textureId),e.writeInt32(this.textureAnimationId),e.writeUint32(this.coordId),e.writeFloat32(this.alpha),t>800&&(e.writeFloat32(this.emissiveGain),e.writeFloat32Array(this.fresnelColor),e.writeFloat32(this.fresnelOpacity),e.writeFloat32(this.fresnelTeamColor)),this.writeAnimations(e)}readMdl(e){for(const t of super.readAnimatedBlock(e))if("FilterMode"===t)this.filterMode=ho(e.read());else if("Unshaded"===t)this.flags|=1;else if("SphereEnvMap"===t)this.flags|=2;else if("TwoSided"===t)this.flags|=16;else if("Unfogged"===t)this.flags|=32;else if("NoDepthTest"===t)this.flags|=64;else if("NoDepthSet"===t)this.flags|=128;else if("Unlit"===t)this.flags|=256;else if("static TextureID"===t)this.textureId=e.readInt();else if("TextureID"===t)this.readAnimation(e,"KMTF");else if("TVertexAnimId"===t)this.textureAnimationId=e.readInt();else if("CoordId"===t)this.coordId=e.readInt();else if("static Alpha"===t)this.alpha=e.readFloat();else if("Alpha"===t)this.readAnimation(e,"KMTA");else if("static EmissiveGain"===t)this.emissiveGain=e.readFloat();else if("EmissiveGain"===t)this.readAnimation(e,"KMTE");else if("static FresnelColor"===t)e.readVector(this.fresnelColor);else if("FresnelColor"===t)this.readAnimation(e,"KFC3");else if("static FresnelOpacity"===t)this.fresnelOpacity=e.readFloat();else if("FresnelOpacity"===t)this.readAnimation(e,"KFCA");else if("static FresnelTeamColor"===t)this.fresnelTeamColor=e.readFloat();else{if("FresnelTeamColor"!==t)throw new Error(`Unknown token in Layer: "${t}"`);this.readAnimation(e,"KFTC")}}writeMdl(e,t){var n;e.startBlock("Layer"),e.writeFlagAttrib("FilterMode",0===(n=this.filterMode)?"None":1===n?"Transparent":2===n?"Blend":3===n?"Additive":4===n?"AddAlpha":5===n?"Modulate":6===n?"Modulate2x":"None"),1&this.flags&&e.writeFlag("Unshaded"),2&this.flags&&e.writeFlag("SphereEnvMap"),16&this.flags&&e.writeFlag("TwoSided"),32&this.flags&&e.writeFlag("Unfogged"),64&this.flags&&e.writeFlag("NoDepthTest"),128&this.flags&&e.writeFlag("NoDepthSet"),t>800&&256&this.flags&&e.writeFlag("Unlit"),this.writeAnimation(e,"KMTF")||e.writeNumberAttrib("static TextureID",this.textureId),-1!==this.textureAnimationId&&e.writeNumberAttrib("TVertexAnimId",this.textureAnimationId),0!==this.coordId&&e.writeNumberAttrib("CoordId",this.coordId),this.writeAnimation(e,"KMTA")||1===this.alpha||e.writeNumberAttrib("static Alpha",this.alpha),t>800&&(this.writeAnimation(e,"KMTE")||1===this.emissiveGain||e.writeNumberAttrib("static EmissiveGain",this.emissiveGain),this.writeAnimation(e,"KFC3")||1===this.fresnelColor[0]&&1===this.fresnelColor[1]&&1===this.fresnelColor[2]||e.writeVectorAttrib("static FresnelColor",this.fresnelColor),this.writeAnimation(e,"KFCA")||0===this.fresnelOpacity||e.writeNumberAttrib("static FresnelOpacity",this.fresnelOpacity),this.writeAnimation(e,"KFTC")||0===this.fresnelTeamColor||e.writeNumberAttrib("static FresnelTeamColor",this.fresnelTeamColor)),e.endBlock()}getByteLength(e){let t=28+super.getByteLength();return e>800&&(t+=24),t}}class mo{constructor(){this.priorityPlane=0,this.flags=0,this.shader="",this.layers=[]}readMdx(e,t){e.readUint32(),this.priorityPlane=e.readInt32(),this.flags=e.readUint32(),t>800&&(this.shader=e.read(80)),e.skip(4);for(let n=0,a=e.readUint32();n<a;n++){const n=new fo;n.readMdx(e,t),this.layers.push(n)}}writeMdx(e,t){e.writeUint32(this.getByteLength(t)),e.writeInt32(this.priorityPlane),e.writeUint32(this.flags),t>800&&e.skip(80-e.write(this.shader)),e.writeBinary("LAYS"),e.writeUint32(this.layers.length);for(const n of this.layers)n.writeMdx(e,t)}readMdl(e){for(const t of e.readBlock())if("ConstantColor"===t)this.flags|=1;else if("TwoSided"===t)this.flags|=2;else if("SortPrimsNearZ"===t)this.flags|=8;else if("SortPrimsFarZ"===t)this.flags|=16;else if("FullResolution"===t)this.flags|=32;else if("PriorityPlane"===t)this.priorityPlane=e.readInt();else if("Shader"===t)this.shader=e.read();else{if("Layer"!==t)throw new Error(`Unknown token in Material: "${t}"`);{const t=new fo;t.readMdl(e),this.layers.push(t)}}}writeMdl(e,t){e.startBlock("Material"),1&this.flags&&e.writeFlag("ConstantColor"),t>800&&2&this.flags&&e.writeFlag("TwoSided"),8&this.flags&&e.writeFlag("SortPrimsNearZ"),16&this.flags&&e.writeFlag("SortPrimsFarZ"),32&this.flags&&e.writeFlag("FullResolution"),0!==this.priorityPlane&&e.writeNumberAttrib("PriorityPlane",this.priorityPlane),t>800&&e.writeStringAttrib("Shader",this.shader);for(const n of this.layers)n.writeMdl(e,t);e.endBlock()}getByteLength(e){let t=20;e>800&&(t+=80);for(const n of this.layers)t+=n.getByteLength(e);return t}}class po{constructor(){this.replaceableId=0,this.path="",this.wrapMode=0}readMdx(e){this.replaceableId=e.readUint32(),this.path=e.read(260),this.wrapMode=e.readUint32()}writeMdx(e){e.writeUint32(this.replaceableId),e.skip(260-e.write(this.path)),e.writeUint32(this.wrapMode)}readMdl(e){for(const t of e.readBlock())if("Image"===t)this.path=e.read();else if("ReplaceableId"===t)this.replaceableId=e.readInt();else if("WrapWidth"===t)this.wrapMode|=1;else{if("WrapHeight"!==t)throw new Error(`Unknown token in Texture: "${t}"`);this.wrapMode|=2}}writeMdl(e){e.startBlock("Bitmap"),this.path.length&&e.writeStringAttrib("Image",this.path),0!==this.replaceableId&&e.writeNumberAttrib("ReplaceableId",this.replaceableId),1&this.wrapMode&&e.writeFlag("WrapWidth"),2&this.wrapMode&&e.writeFlag("WrapHeight"),e.endBlock()}}class _o extends co{readMdx(e){const t=e.readUint32();this.readAnimations(e,t-4)}writeMdx(e){e.writeUint32(this.getByteLength()),this.writeAnimations(e)}readMdl(e){for(const t of e.readBlock())if("Translation"===t)this.readAnimation(e,"KTAT");else if("Rotation"===t)this.readAnimation(e,"KTAR");else{if("Scaling"!==t)throw new Error(`Unknown token in TextureAnimation: "${t}"`);this.readAnimation(e,"KTAS")}}writeMdl(e){e.startBlock("TVertexAnim "),this.writeAnimation(e,"KTAT"),this.writeAnimation(e,"KTAR"),this.writeAnimation(e,"KTAS"),e.endBlock()}getByteLength(){return 4+super.getByteLength()}}class go{constructor(){this.vertices=new Float32Array(0),this.normals=new Float32Array(0),this.faceTypeGroups=new Uint32Array(0),this.faceGroups=new Uint32Array(0),this.faces=new Uint16Array(0),this.vertexGroups=new Uint8Array(0),this.matrixGroups=new Uint32Array(0),this.matrixIndices=new Uint32Array(0),this.materialId=0,this.selectionGroup=0,this.selectionFlags=0,this.lod=-1,this.lodName="",this.extent=new no,this.sequenceExtents=[],this.tangents=new Float32Array(0),this.skin=new Uint8Array(0),this.uvSets=[]}readMdx(e,t){e.readUint32(),e.skip(4),this.vertices=e.readFloat32Array(3*e.readUint32()),e.skip(4),this.normals=e.readFloat32Array(3*e.readUint32()),e.skip(4),this.faceTypeGroups=e.readUint32Array(e.readUint32()),e.skip(4),this.faceGroups=e.readUint32Array(e.readUint32()),e.skip(4),this.faces=e.readUint16Array(e.readUint32()),e.skip(4),this.vertexGroups=e.readUint8Array(e.readUint32()),e.skip(4),this.matrixGroups=e.readUint32Array(e.readUint32()),e.skip(4),this.matrixIndices=e.readUint32Array(e.readUint32()),this.materialId=e.readUint32(),this.selectionGroup=e.readUint32(),this.selectionFlags=e.readUint32(),t>800&&(this.lod=e.readInt32(),this.lodName=e.read(80)),this.extent.readMdx(e);for(let t=0,n=e.readUint32();t<n;t++){const t=new no;t.readMdx(e),this.sequenceExtents.push(t)}t>800&&("TANG"===e.readBinary(4)?this.tangents=e.readFloat32Array(4*e.readUint32()):e.skip(-4),"SKIN"===e.readBinary(4)?this.skin=e.readUint8Array(e.readUint32()):e.skip(-4)),e.skip(4);for(let t=0,n=e.readUint32();t<n;t++)e.skip(4),this.uvSets.push(e.readFloat32Array(2*e.readUint32()))}writeMdx(e,t){e.writeUint32(this.getByteLength(t)),e.writeBinary("VRTX"),e.writeUint32(this.vertices.length/3),e.writeFloat32Array(this.vertices),e.writeBinary("NRMS"),e.writeUint32(this.normals.length/3),e.writeFloat32Array(this.normals),e.writeBinary("PTYP"),e.writeUint32(this.faceTypeGroups.length),e.writeUint32Array(this.faceTypeGroups),e.writeBinary("PCNT"),e.writeUint32(this.faceGroups.length),e.writeUint32Array(this.faceGroups),e.writeBinary("PVTX"),e.writeUint32(this.faces.length),e.writeUint16Array(this.faces),e.writeBinary("GNDX"),e.writeUint32(this.vertexGroups.length),e.writeUint8Array(this.vertexGroups),e.writeBinary("MTGC"),e.writeUint32(this.matrixGroups.length),e.writeUint32Array(this.matrixGroups),e.writeBinary("MATS"),e.writeUint32(this.matrixIndices.length),e.writeUint32Array(this.matrixIndices),e.writeUint32(this.materialId),e.writeUint32(this.selectionGroup),e.writeUint32(this.selectionFlags),t>800&&(e.writeInt32(this.lod),e.skip(80-e.write(this.lodName))),this.extent.writeMdx(e),e.writeUint32(this.sequenceExtents.length);for(const t of this.sequenceExtents)t.writeMdx(e);t>800&&(this.tangents.length&&(e.writeBinary("TANG"),e.writeUint32(this.tangents.length/4),e.writeFloat32Array(this.tangents)),this.skin.length&&(e.writeBinary("SKIN"),e.writeUint32(this.skin.length),e.writeUint8Array(this.skin))),e.writeBinary("UVAS"),e.writeUint32(this.uvSets.length);for(const t of this.uvSets)e.writeBinary("UVBS"),e.writeUint32(t.length/2),e.writeFloat32Array(t)}readMdl(e){for(let t of e.readBlock())if("Vertices"===t)this.vertices=e.readVectorsBlock(new Float32Array(3*e.readInt()),3);else if("Normals"===t)this.normals=e.readVectorsBlock(new Float32Array(3*e.readInt()),3);else if("TVertices"===t)this.uvSets.push(e.readVectorsBlock(new Float32Array(2*e.readInt()),2));else if("VertexGroup"===t){const t=[];for(const n of e.readBlock())t.push(parseInt(n));this.vertexGroups=new Uint8Array(t)}else if("Tangents"===t)this.tangents=e.readVectorsBlock(new Float32Array(4*e.readInt()),4);else if("SkinWeights"===t)this.skin=e.readVector(new Uint8Array(8*e.readInt()));else if("Faces"===t){this.faceTypeGroups=new Uint32Array([4]);const t=e.readInt(),n=e.readInt();e.read(),e.read(),this.faces=e.readVectorsBlock(new Uint16Array(n),n/t),this.faceGroups=new Uint32Array([n]),e.read()}else if("Groups"===t){const t=[],n=[];e.readInt(),e.readInt();for(const a of e.readBlock()){let a=0;for(const n of e.readBlock())t.push(parseInt(n)),a+=1;n.push(a)}this.matrixIndices=new Uint32Array(t),this.matrixGroups=new Uint32Array(n)}else if("MinimumExtent"===t)e.readVector(this.extent.min);else if("MaximumExtent"===t)e.readVector(this.extent.max);else if("BoundsRadius"===t)this.extent.boundsRadius=e.readFloat();else if("Anim"===t){const n=new no;for(t of e.readBlock())"MinimumExtent"===t?e.readVector(n.min):"MaximumExtent"===t?e.readVector(n.max):"BoundsRadius"===t&&(n.boundsRadius=e.readFloat());this.sequenceExtents.push(n)}else if("MaterialID"===t)this.materialId=e.readInt();else if("SelectionGroup"===t)this.selectionGroup=e.readInt();else if("Unselectable"===t)this.selectionFlags=4;else if("LevelOfDetail"===t)this.lod=e.readInt();else{if("Name"!==t)throw new Error(`Unknown token in Geoset: "${t}"`);this.lodName=e.read()}}writeMdl(e,t){e.startBlock("Geoset"),e.writeVectorArrayBlock("Vertices",this.vertices,3),e.writeVectorArrayBlock("Normals",this.normals,3);for(const t of this.uvSets)e.writeVectorArrayBlock("TVertices",t,2);if(t>800&&this.tangents.length&&e.writeVectorArrayBlock("Tangents",this.tangents,4),this.vertexGroups.length){e.startBlock("VertexGroup");for(let t=0,n=this.vertexGroups.length;t<n;t++)e.writeLine(`${this.vertexGroups[t]},`);e.endBlock()}if(t>800&&this.skin.length){e.startBlock("SkinWeights",this.skin.length/8);for(let t=0,n=this.skin.length;t<n;t+=8)e.writeLine(`${this.skin.subarray(t,t+8).join(", ")},`);e.endBlock()}e.startBlock("Faces",1,this.faces.length),e.startBlock("Triangles"),e.writeVector(this.faces),e.endBlock(),e.endBlock(),e.startBlock("Groups",this.matrixGroups.length,this.matrixIndices.length);let n=0;for(const t of this.matrixGroups)e.writeVectorAttrib("Matrices",this.matrixIndices.subarray(n,n+t)),n+=t;e.endBlock(),this.extent.writeMdl(e);for(const t of this.sequenceExtents)e.startBlock("Anim"),t.writeMdl(e),e.endBlock();e.writeNumberAttrib("MaterialID",this.materialId),e.writeNumberAttrib("SelectionGroup",this.selectionGroup),4===this.selectionFlags&&e.writeFlag("Unselectable"),t>800&&(e.writeNumberAttrib("LevelOfDetail",this.lod),this.lodName.length&&e.writeStringAttrib("Name",this.lodName)),e.endBlock()}getByteLength(e){let t=120+this.vertices.byteLength+this.normals.byteLength+this.faceTypeGroups.byteLength+this.faceGroups.byteLength+this.faces.byteLength+this.vertexGroups.byteLength+this.matrixGroups.byteLength+this.matrixIndices.byteLength+28*this.sequenceExtents.length;e>800&&(t+=84,this.tangents.length&&(t+=8+this.tangents.byteLength),this.skin.length&&(t+=8+this.skin.byteLength));for(const e of this.uvSets)t+=8+e.byteLength;return t}}class bo extends co{constructor(){super(...arguments),this.alpha=1,this.flags=0,this.color=new Float32Array([1,1,1]),this.geosetId=-1}readMdx(e){const t=e.readUint32();this.alpha=e.readFloat32(),this.flags=e.readUint32(),e.readFloat32Array(this.color),this.geosetId=e.readInt32(),this.readAnimations(e,t-28)}writeMdx(e){e.writeUint32(this.getByteLength()),e.writeFloat32(this.alpha),e.writeUint32(this.flags),e.writeFloat32Array(this.color),e.writeInt32(this.geosetId),this.writeAnimations(e)}readMdl(e){for(const t of super.readAnimatedBlock(e))if("DropShadow"===t)this.flags|=1;else if("static Alpha"===t)this.alpha=e.readFloat();else if("Alpha"===t)this.readAnimation(e,"KGAO");else if("static Color"===t)this.flags|=2,e.readColor(this.color);else if("Color"===t)this.flags|=2,this.readAnimation(e,"KGAC");else{if("GeosetId"!==t)throw new Error(`Unknown token in GeosetAnimation: "${t}"`);this.geosetId=e.readInt()}}writeMdl(e){e.startBlock("GeosetAnim"),1&this.flags&&e.writeFlag("DropShadow"),this.writeAnimation(e,"KGAO")||e.writeNumberAttrib("static Alpha",this.alpha),2&this.flags&&(this.writeAnimation(e,"KGAC")||1===this.color[0]&&1===this.color[1]&&1===this.color[2]||e.writeColor("static Color ",this.color)),e.writeNumberAttrib("GeosetId",this.geosetId),e.endBlock()}getByteLength(){return 28+super.getByteLength()}}class wo extends co{constructor(e=0){super(),this.name="",this.objectId=-1,this.parentId=-1,this.flags=e}readMdx(e){const t=e.readUint32();this.name=e.read(80),this.objectId=e.readInt32(),this.parentId=e.readInt32(),this.flags=e.readUint32(),this.readAnimations(e,t-96)}writeMdx(e){e.writeUint32(this.getGenericByteLength()),e.skip(80-e.write(this.name)),e.writeInt32(this.objectId),e.writeInt32(this.parentId),e.writeUint32(this.flags);for(const t of this.eachAnimation(!0))t.writeMdx(e)}writeNonGenericAnimationChunks(e){for(const t of this.eachAnimation(!1))t.writeMdx(e)}*readGenericBlock(e){this.name=e.read();for(let t of this.readAnimatedBlock(e))if("ObjectId"===t)this.objectId=e.readInt();else if("Parent"===t)this.parentId=e.readInt();else if("BillboardedLockZ"===t)this.flags|=64;else if("BillboardedLockY"===t)this.flags|=32;else if("BillboardedLockX"===t)this.flags|=16;else if("Billboarded"===t)this.flags|=8;else if("CameraAnchored"===t)this.flags|=128;else if("DontInherit"===t)for(t of e.readBlock())"Rotation"===t?this.flags|=4:"Translation"===t?this.flags|=1:"Scaling"===t&&(this.flags|=2);else"Translation"===t?this.readAnimation(e,"KGTR"):"Rotation"===t?this.readAnimation(e,"KGRT"):"Scaling"===t?this.readAnimation(e,"KGSC"):yield t}writeGenericHeader(e){e.writeNumberAttrib("ObjectId",this.objectId),-1!==this.parentId&&e.writeNumberAttrib("Parent",this.parentId),64&this.flags&&e.writeFlag("BillboardedLockZ"),32&this.flags&&e.writeFlag("BillboardedLockY"),16&this.flags&&e.writeFlag("BillboardedLockX"),8&this.flags&&e.writeFlag("Billboarded"),128&this.flags&&e.writeFlag("CameraAnchored"),4&this.flags&&e.writeFlag("DontInherit { Rotation }"),1&this.flags&&e.writeFlag("DontInherit { Translation }"),2&this.flags&&e.writeFlag("DontInherit { Scaling }")}writeGenericAnimations(e){this.writeAnimation(e,"KGTR"),this.writeAnimation(e,"KGRT"),this.writeAnimation(e,"KGSC")}*eachAnimation(e){for(const t of this.animations){const n=t.name,a="KGTR"===n||"KGRT"===n||"KGSC"===n;(e&&a||!e&&!a)&&(yield t)}}getGenericByteLength(){let e=96;for(const t of this.eachAnimation(!0))e+=t.getByteLength();return e}getByteLength(){return 96+super.getByteLength()}}class vo extends wo{constructor(){super(256),this.geosetId=-1,this.geosetAnimationId=-1}readMdx(e){super.readMdx(e),this.geosetId=e.readInt32(),this.geosetAnimationId=e.readInt32()}writeMdx(e){super.writeMdx(e),e.writeInt32(this.geosetId),e.writeInt32(this.geosetAnimationId)}readMdl(e){for(let t of super.readGenericBlock(e))if("GeosetId"===t)t=e.read(),this.geosetId="Multiple"===t?-1:parseInt(t);else{if("GeosetAnimId"!==t)throw new Error(`Unknown token in Bone ${this.name}: "${t}"`);t=e.read(),this.geosetAnimationId="None"===t?-1:parseInt(t)}}writeMdl(e){e.startObjectBlock("Bone",this.name),this.writeGenericHeader(e),-1===this.geosetId?e.writeFlagAttrib("GeosetId","Multiple"):e.writeNumberAttrib("GeosetId",this.geosetId),-1===this.geosetAnimationId?e.writeFlagAttrib("GeosetAnimId","None"):e.writeNumberAttrib("GeosetAnimId",this.geosetAnimationId),this.writeGenericAnimations(e),e.endBlock()}getByteLength(){return 8+super.getByteLength()}}class Ao extends wo{constructor(){super(512),this.type=-1,this.attenuation=new Float32Array(2),this.color=new Float32Array(3),this.intensity=0,this.ambientColor=new Float32Array(3),this.ambientIntensity=0}readMdx(e){const t=e.index,n=e.readUint32();super.readMdx(e),this.type=e.readUint32(),e.readFloat32Array(this.attenuation),e.readFloat32Array(this.color),this.intensity=e.readFloat32(),e.readFloat32Array(this.ambientColor),this.ambientIntensity=e.readFloat32(),this.readAnimations(e,n-(e.index-t))}writeMdx(e){e.writeUint32(this.getByteLength()),super.writeMdx(e),e.writeUint32(this.type),e.writeFloat32Array(this.attenuation),e.writeFloat32Array(this.color),e.writeFloat32(this.intensity),e.writeFloat32Array(this.ambientColor),e.writeFloat32(this.ambientIntensity),this.writeNonGenericAnimationChunks(e)}readMdl(e){for(const t of super.readGenericBlock(e))if("Omnidirectional"===t)this.type=0;else if("Directional"===t)this.type=1;else if("Ambient"===t)this.type=2;else if("static AttenuationStart"===t)this.attenuation[0]=e.readFloat();else if("AttenuationStart"===t)this.readAnimation(e,"KLAS");else if("static AttenuationEnd"===t)this.attenuation[1]=e.readFloat();else if("AttenuationEnd"===t)this.readAnimation(e,"KLAE");else if("static Intensity"===t)this.intensity=e.readFloat();else if("Intensity"===t)this.readAnimation(e,"KLAI");else if("static Color"===t)e.readColor(this.color);else if("Color"===t)this.readAnimation(e,"KLAC");else if("static AmbIntensity"===t)this.ambientIntensity=e.readFloat();else if("AmbIntensity"===t)this.readAnimation(e,"KLBI");else if("static AmbColor"===t)e.readColor(this.ambientColor);else if("AmbColor"===t)this.readAnimation(e,"KLBC");else{if("Visibility"!==t)throw new Error(`Unknown token in Light: "${t}"`);this.readAnimation(e,"KLAV")}}writeMdl(e){e.startObjectBlock("Light",this.name),this.writeGenericHeader(e),0===this.type?e.writeFlag("Omnidirectional"):1===this.type?e.writeFlag("Directional"):2===this.type&&e.writeFlag("Ambient"),this.writeAnimation(e,"KLAS")||e.writeNumberAttrib("static AttenuationStart",this.attenuation[0]),this.writeAnimation(e,"KLAE")||e.writeNumberAttrib("static AttenuationEnd",this.attenuation[1]),this.writeAnimation(e,"KLAI")||e.writeNumberAttrib("static Intensity",this.intensity),this.writeAnimation(e,"KLAC")||e.writeColor("static Color",this.color),this.writeAnimation(e,"KLBI")||e.writeNumberAttrib("static AmbIntensity",this.ambientIntensity),this.writeAnimation(e,"KLBC")||e.writeColor("static AmbColor",this.ambientColor),this.writeAnimation(e,"KLAV"),this.writeGenericAnimations(e),e.endBlock()}getByteLength(){return 48+super.getByteLength()}}class yo extends wo{readMdl(e){for(const t of super.readGenericBlock(e))throw new Error(`Unknown token in Helper: "${t}"`)}writeMdl(e){e.startObjectBlock("Helper",this.name),this.writeGenericHeader(e),this.writeGenericAnimations(e),e.endBlock()}}class So extends wo{constructor(){super(2048),this.path="",this.attachmentId=0}readMdx(e){const t=e.index,n=e.readUint32();super.readMdx(e),this.path=e.read(260),this.attachmentId=e.readInt32(),this.readAnimations(e,n-(e.index-t))}writeMdx(e){e.writeUint32(this.getByteLength()),super.writeMdx(e),e.skip(260-e.write(this.path)),e.writeInt32(this.attachmentId),this.writeNonGenericAnimationChunks(e)}readMdl(e){for(const t of super.readGenericBlock(e))if("AttachmentID"===t)this.attachmentId=e.readInt();else if("Path"===t)this.path=e.read();else{if("Visibility"!==t)throw new Error(`Unknown token in Attachment ${this.name}: "${t}"`);this.readAnimation(e,"KATV")}}writeMdl(e){e.startObjectBlock("Attachment",this.name),this.writeGenericHeader(e),e.writeNumberAttrib("AttachmentID",this.attachmentId),this.path.length&&e.writeStringAttrib("Path",this.path),this.writeAnimation(e,"KATV"),this.writeGenericAnimations(e),e.endBlock()}getByteLength(){return 268+super.getByteLength()}}class To extends wo{constructor(){super(4096),this.emissionRate=0,this.gravity=0,this.longitude=0,this.latitude=0,this.path="",this.lifeSpan=0,this.speed=0}readMdx(e){const t=e.index,n=e.readUint32();super.readMdx(e),this.emissionRate=e.readFloat32(),this.gravity=e.readFloat32(),this.longitude=e.readFloat32(),this.latitude=e.readFloat32(),this.path=e.read(260),this.lifeSpan=e.readFloat32(),this.speed=e.readFloat32(),this.readAnimations(e,n-(e.index-t))}writeMdx(e){e.writeUint32(this.getByteLength()),super.writeMdx(e),e.writeFloat32(this.emissionRate),e.writeFloat32(this.gravity),e.writeFloat32(this.longitude),e.writeFloat32(this.latitude),e.skip(260-e.write(this.path)),e.writeFloat32(this.lifeSpan),e.writeFloat32(this.speed),this.writeNonGenericAnimationChunks(e)}readMdl(e){for(let t of super.readGenericBlock(e))if("EmitterUsesMDL"===t)this.flags|=32768;else if("EmitterUsesTGA"===t)this.flags|=65536;else if("static EmissionRate"===t)this.emissionRate=e.readFloat();else if("EmissionRate"===t)this.readAnimation(e,"KPEE");else if("static Gravity"===t)this.gravity=e.readFloat();else if("Gravity"===t)this.readAnimation(e,"KPEG");else if("static Longitude"===t)this.longitude=e.readFloat();else if("Longitude"===t)this.readAnimation(e,"KPLN");else if("static Latitude"===t)this.latitude=e.readFloat();else if("Latitude"===t)this.readAnimation(e,"KPLT");else if("Visibility"===t)this.readAnimation(e,"KPEV");else{if("Particle"!==t)throw new Error(`Unknown token in ParticleEmitter: "${t}"`);for(t of this.readAnimatedBlock(e))"static LifeSpan"===t?this.lifeSpan=e.readFloat():"LifeSpan"===t?this.readAnimation(e,"KPEL"):"static InitVelocity"===t?this.speed=e.readFloat():"InitVelocity"===t?this.readAnimation(e,"KPES"):"Path"===t&&(this.path=e.read())}}writeMdl(e){e.startObjectBlock("ParticleEmitter",this.name),this.writeGenericHeader(e),32768&this.flags&&e.writeFlag("EmitterUsesMDL"),65536&this.flags&&e.writeFlag("EmitterUsesTGA"),this.writeAnimation(e,"KPEE")||e.writeNumberAttrib("static EmissionRate",this.emissionRate),this.writeAnimation(e,"KPEG")||e.writeNumberAttrib("static Gravity",this.gravity),this.writeAnimation(e,"KPLN")||e.writeNumberAttrib("static Longitude",this.longitude),this.writeAnimation(e,"KPLT")||e.writeNumberAttrib("static Latitude",this.latitude),this.writeAnimation(e,"KPEV"),e.startBlock("Particle"),this.writeAnimation(e,"KPEL")||e.writeNumberAttrib("static LifeSpan",this.lifeSpan),this.writeAnimation(e,"KPES")||e.writeNumberAttrib("static InitVelocity",this.speed),(32768&this.flags||65536&this.flags)&&e.writeStringAttrib("Path",this.path),e.endBlock(),this.writeGenericAnimations(e),e.endBlock()}getByteLength(){return 288+super.getByteLength()}}class xo extends wo{constructor(){super(...arguments),this.speed=0,this.variation=0,this.latitude=0,this.gravity=0,this.lifeSpan=0,this.emissionRate=0,this.width=0,this.length=0,this.filterMode=0,this.rows=0,this.columns=0,this.headOrTail=0,this.tailLength=0,this.timeMiddle=0,this.segmentColors=[new Float32Array(3),new Float32Array(3),new Float32Array(3)],this.segmentAlphas=new Uint8Array(3),this.segmentScaling=new Float32Array(3),this.headIntervals=[new Uint32Array(3),new Uint32Array(3)],this.tailIntervals=[new Uint32Array(3),new Uint32Array(3)],this.textureId=-1,this.squirt=0,this.priorityPlane=0,this.replaceableId=0}readMdx(e){const t=e.index,n=e.readUint32();super.readMdx(e),this.speed=e.readFloat32(),this.variation=e.readFloat32(),this.latitude=e.readFloat32(),this.gravity=e.readFloat32(),this.lifeSpan=e.readFloat32(),this.emissionRate=e.readFloat32(),this.width=e.readFloat32(),this.length=e.readFloat32(),this.filterMode=e.readUint32(),this.rows=e.readUint32(),this.columns=e.readUint32(),this.headOrTail=e.readUint32(),this.tailLength=e.readFloat32(),this.timeMiddle=e.readFloat32(),e.readFloat32Array(this.segmentColors[0]),e.readFloat32Array(this.segmentColors[1]),e.readFloat32Array(this.segmentColors[2]),e.readUint8Array(this.segmentAlphas),e.readFloat32Array(this.segmentScaling),e.readUint32Array(this.headIntervals[0]),e.readUint32Array(this.headIntervals[1]),e.readUint32Array(this.tailIntervals[0]),e.readUint32Array(this.tailIntervals[1]),this.textureId=e.readInt32(),this.squirt=e.readUint32(),this.priorityPlane=e.readInt32(),this.replaceableId=e.readUint32(),this.readAnimations(e,n-(e.index-t))}writeMdx(e){e.writeUint32(this.getByteLength()),super.writeMdx(e),e.writeFloat32(this.speed),e.writeFloat32(this.variation),e.writeFloat32(this.latitude),e.writeFloat32(this.gravity),e.writeFloat32(this.lifeSpan),e.writeFloat32(this.emissionRate),e.writeFloat32(this.width),e.writeFloat32(this.length),e.writeUint32(this.filterMode),e.writeUint32(this.rows),e.writeUint32(this.columns),e.writeUint32(this.headOrTail),e.writeFloat32(this.tailLength),e.writeFloat32(this.timeMiddle),e.writeFloat32Array(this.segmentColors[0]),e.writeFloat32Array(this.segmentColors[1]),e.writeFloat32Array(this.segmentColors[2]),e.writeUint8Array(this.segmentAlphas),e.writeFloat32Array(this.segmentScaling),e.writeUint32Array(this.headIntervals[0]),e.writeUint32Array(this.headIntervals[1]),e.writeUint32Array(this.tailIntervals[0]),e.writeUint32Array(this.tailIntervals[1]),e.writeInt32(this.textureId),e.writeUint32(this.squirt),e.writeInt32(this.priorityPlane),e.writeUint32(this.replaceableId),this.writeNonGenericAnimationChunks(e)}readMdl(e){for(const t of super.readGenericBlock(e))if("SortPrimsFarZ"===t)this.flags|=65536;else if("Unshaded"===t)this.flags|=32768;else if("LineEmitter"===t)this.flags|=131072;else if("Unfogged"===t)this.flags|=262144;else if("ModelSpace"===t)this.flags|=524288;else if("XYQuad"===t)this.flags|=1048576;else if("static Speed"===t)this.speed=e.readFloat();else if("Speed"===t)this.readAnimation(e,"KP2S");else if("static Variation"===t)this.variation=e.readFloat();else if("Variation"===t)this.readAnimation(e,"KP2R");else if("static Latitude"===t)this.latitude=e.readFloat();else if("Latitude"===t)this.readAnimation(e,"KP2L");else if("static Gravity"===t)this.gravity=e.readFloat();else if("Gravity"===t)this.readAnimation(e,"KP2G");else if("Visibility"===t)this.readAnimation(e,"KP2V");else if("Squirt"===t)this.squirt=1;else if("LifeSpan"===t)this.lifeSpan=e.readFloat();else if("static EmissionRate"===t)this.emissionRate=e.readFloat();else if("EmissionRate"===t)this.readAnimation(e,"KP2E");else if("static Width"===t)this.width=e.readFloat();else if("Width"===t)this.readAnimation(e,"KP2N");else if("static Length"===t)this.length=e.readFloat();else if("Length"===t)this.readAnimation(e,"KP2W");else if("Blend"===t)this.filterMode=0;else if("Additive"===t)this.filterMode=1;else if("Modulate"===t)this.filterMode=2;else if("Modulate2x"===t)this.filterMode=3;else if("AlphaKey"===t)this.filterMode=4;else if("Rows"===t)this.rows=e.readInt();else if("Columns"===t)this.columns=e.readInt();else if("Head"===t)this.headOrTail=0;else if("Tail"===t)this.headOrTail=1;else if("Both"===t)this.headOrTail=2;else if("TailLength"===t)this.tailLength=e.readFloat();else if("Time"===t)this.timeMiddle=e.readFloat();else if("SegmentColor"===t){e.read();for(let t=0;t<3;t++)e.read(),e.readColor(this.segmentColors[t]);e.read()}else if("Alpha"===t)e.readVector(this.segmentAlphas);else if("ParticleScaling"===t)e.readVector(this.segmentScaling);else if("LifeSpanUVAnim"===t)e.readVector(this.headIntervals[0]);else if("DecayUVAnim"===t)e.readVector(this.headIntervals[1]);else if("TailUVAnim"===t)e.readVector(this.tailIntervals[0]);else if("TailDecayUVAnim"===t)e.readVector(this.tailIntervals[1]);else if("TextureID"===t)this.textureId=e.readInt();else if("ReplaceableId"===t)this.replaceableId=e.readInt();else{if("PriorityPlane"!==t)throw new Error(`Unknown token in ParticleEmitter2: "${t}"`);this.priorityPlane=e.readInt()}}writeMdl(e){e.startObjectBlock("ParticleEmitter2",this.name),this.writeGenericHeader(e),65536&this.flags&&e.writeFlag("SortPrimsFarZ"),32768&this.flags&&e.writeFlag("Unshaded"),131072&this.flags&&e.writeFlag("LineEmitter"),262144&this.flags&&e.writeFlag("Unfogged"),524288&this.flags&&e.writeFlag("ModelSpace"),1048576&this.flags&&e.writeFlag("XYQuad"),this.writeAnimation(e,"KP2S")||e.writeNumberAttrib("static Speed",this.speed),this.writeAnimation(e,"KP2R")||e.writeNumberAttrib("static Variation",this.variation),this.writeAnimation(e,"KP2L")||e.writeNumberAttrib("static Latitude",this.latitude),this.writeAnimation(e,"KP2G")||e.writeNumberAttrib("static Gravity",this.gravity),this.writeAnimation(e,"KP2V"),this.squirt&&e.writeFlag("Squirt"),e.writeNumberAttrib("LifeSpan",this.lifeSpan),this.writeAnimation(e,"KP2E")||e.writeNumberAttrib("static EmissionRate",this.emissionRate),this.writeAnimation(e,"KP2N")||e.writeNumberAttrib("static Width",this.width),this.writeAnimation(e,"KP2W")||e.writeNumberAttrib("static Length",this.length),0===this.filterMode?e.writeFlag("Blend"):1===this.filterMode?e.writeFlag("Additive"):2===this.filterMode?e.writeFlag("Modulate"):3===this.filterMode?e.writeFlag("Modulate2x"):4===this.filterMode&&e.writeFlag("AlphaKey"),e.writeNumberAttrib("Rows",this.rows),e.writeNumberAttrib("Columns",this.columns),0===this.headOrTail?e.writeFlag("Head"):1===this.headOrTail?e.writeFlag("Tail"):2===this.headOrTail&&e.writeFlag("Both"),e.writeNumberAttrib("TailLength",this.tailLength),e.writeNumberAttrib("Time",this.timeMiddle),e.startBlock("SegmentColor"),e.writeColor("Color",this.segmentColors[0]),e.writeColor("Color",this.segmentColors[1]),e.writeColor("Color",this.segmentColors[2]),e.endBlockComma(),e.writeVectorAttrib("Alpha",this.segmentAlphas),e.writeVectorAttrib("ParticleScaling",this.segmentScaling),e.writeVectorAttrib("LifeSpanUVAnim",this.headIntervals[0]),e.writeVectorAttrib("DecayUVAnim",this.headIntervals[1]),e.writeVectorAttrib("TailUVAnim",this.tailIntervals[0]),e.writeVectorAttrib("TailDecayUVAnim",this.tailIntervals[1]),e.writeNumberAttrib("TextureID",this.textureId),0!==this.replaceableId&&e.writeNumberAttrib("ReplaceableId",this.replaceableId),0!==this.priorityPlane&&e.writeNumberAttrib("PriorityPlane",this.priorityPlane),this.writeGenericAnimations(e),e.endBlock()}getByteLength(){return 175+super.getByteLength()}}class Eo extends wo{constructor(){super(...arguments),this.lifeSpan=0,this.emissionRate=0,this.speed=0,this.color=new Float32Array(3),this.alpha=1,this.replaceableId=0,this.path="",this.animationVisiblityGuide=""}readMdx(e){const t=e.index,n=e.readUint32();super.readMdx(e),this.lifeSpan=e.readFloat32(),this.emissionRate=e.readFloat32(),this.speed=e.readFloat32(),e.readFloat32Array(this.color),this.alpha=e.readFloat32(),this.replaceableId=e.readUint32(),this.path=e.read(260),this.animationVisiblityGuide=e.read(260),this.readAnimations(e,n-(e.index-t))}writeMdx(e){e.writeUint32(this.getByteLength()),super.writeMdx(e),e.writeFloat32(this.lifeSpan),e.writeFloat32(this.emissionRate),e.writeFloat32(this.speed),e.writeFloat32Array(this.color),e.writeFloat32(this.alpha),e.writeUint32(this.replaceableId),e.skip(260-e.write(this.path)),e.skip(260-e.write(this.animationVisiblityGuide)),this.writeNonGenericAnimationChunks(e)}readMdl(e){for(const t of super.readGenericBlock(e))if("SortPrimsFarZ"===t)this.flags|=65536;else if("Unshaded"===t)this.flags|=32768;else if("Unfogged"===t)this.flags|=262144;else if("static LifeSpan"===t)this.lifeSpan=e.readFloat();else if("LifeSpan"===t)this.readAnimation(e,"KPPL");else if("static EmissionRate"===t)this.emissionRate=e.readFloat();else if("EmissionRate"===t)this.readAnimation(e,"KPPE");else if("static Speed"===t)this.speed=e.readFloat();else if("Speed"===t)this.readAnimation(e,"KPPS");else if("static Color"===t)e.readVector(this.color);else if("Color"===t)this.readAnimation(e,"KPPC");else if("static Alpha"===t)this.alpha=e.readFloat();else if("Alpha"===t)this.readAnimation(e,"KPPA");else if("Visibility"===t)this.readAnimation(e,"KPPV");else if("ReplaceableId"===t)this.replaceableId=e.readInt();else if("Path"===t)this.path=e.read();else{if("AnimVisibilityGuide"!==t)throw new Error(`Unknown token in ParticleEmitterPopcorn: "${t}"`);this.animationVisiblityGuide=e.read()}}writeMdl(e){e.startObjectBlock("ParticleEmitterPopcorn",this.name),this.writeGenericHeader(e),65536&this.flags&&e.writeFlag("SortPrimsFarZ"),32768&this.flags&&e.writeFlag("Unshaded"),262144&this.flags&&e.writeFlag("Unfogged"),this.writeAnimation(e,"KPPL")||e.writeNumberAttrib("static LifeSpan",this.lifeSpan),this.writeAnimation(e,"KPPE")||e.writeNumberAttrib("static EmissionRate",this.emissionRate),this.writeAnimation(e,"KPPS")||e.writeNumberAttrib("static Speed",this.speed),this.writeAnimation(e,"KPPC")||e.writeVectorAttrib("static Color",this.color),this.writeAnimation(e,"KPPA")||e.writeNumberAttrib("static Alpha",this.alpha),this.writeAnimation(e,"KPPV"),0!==this.replaceableId&&e.writeNumberAttrib("ReplaceableId",this.replaceableId),this.path.length&&e.writeStringAttrib("Path",this.path),this.animationVisiblityGuide.length&&e.writeStringAttrib("AnimVisibilityGuide",this.animationVisiblityGuide),this.writeGenericAnimations(e),e.endBlock()}getByteLength(){return 556+super.getByteLength()}}class Lo extends wo{constructor(){super(16384),this.heightAbove=0,this.heightBelow=0,this.alpha=0,this.color=new Float32Array(3),this.lifeSpan=0,this.textureSlot=0,this.emissionRate=0,this.rows=0,this.columns=0,this.materialId=0,this.gravity=0}readMdx(e){const t=e.index,n=e.readUint32();super.readMdx(e),this.heightAbove=e.readFloat32(),this.heightBelow=e.readFloat32(),this.alpha=e.readFloat32(),e.readFloat32Array(this.color),this.lifeSpan=e.readFloat32(),this.textureSlot=e.readUint32(),this.emissionRate=e.readUint32(),this.rows=e.readUint32(),this.columns=e.readUint32(),this.materialId=e.readInt32(),this.gravity=e.readFloat32(),this.readAnimations(e,n-(e.index-t))}writeMdx(e){e.writeUint32(this.getByteLength()),super.writeMdx(e),e.writeFloat32(this.heightAbove),e.writeFloat32(this.heightBelow),e.writeFloat32(this.alpha),e.writeFloat32Array(this.color),e.writeFloat32(this.lifeSpan),e.writeUint32(this.textureSlot),e.writeUint32(this.emissionRate),e.writeUint32(this.rows),e.writeUint32(this.columns),e.writeInt32(this.materialId),e.writeFloat32(this.gravity),this.writeNonGenericAnimationChunks(e)}readMdl(e){for(const t of super.readGenericBlock(e))if("static HeightAbove"===t)this.heightAbove=e.readFloat();else if("HeightAbove"===t)this.readAnimation(e,"KRHA");else if("static HeightBelow"===t)this.heightBelow=e.readFloat();else if("HeightBelow"===t)this.readAnimation(e,"KRHB");else if("static Alpha"===t)this.alpha=e.readFloat();else if("Alpha"===t)this.readAnimation(e,"KRAL");else if("static Color"===t)e.readColor(this.color);else if("Color"===t)this.readAnimation(e,"KRCO");else if("static TextureSlot"===t)this.textureSlot=e.readInt();else if("TextureSlot"===t)this.readAnimation(e,"KRTX");else if("Visibility"===t)this.readAnimation(e,"KRVS");else if("EmissionRate"===t)this.emissionRate=e.readInt();else if("LifeSpan"===t)this.lifeSpan=e.readFloat();else if("Gravity"===t)this.gravity=e.readFloat();else if("Rows"===t)this.rows=e.readInt();else if("Columns"===t)this.columns=e.readInt();else{if("MaterialID"!==t)throw new Error(`Unknown token in RibbonEmitter: "${t}"`);this.materialId=e.readInt()}}writeMdl(e){e.startObjectBlock("RibbonEmitter",this.name),this.writeGenericHeader(e),this.writeAnimation(e,"KRHA")||e.writeNumberAttrib("static HeightAbove",this.heightAbove),this.writeAnimation(e,"KRHB")||e.writeNumberAttrib("static HeightBelow",this.heightBelow),this.writeAnimation(e,"KRAL")||e.writeNumberAttrib("static Alpha",this.alpha),this.writeAnimation(e,"KRCO")||e.writeColor("static Color",this.color),this.writeAnimation(e,"KRTX")||e.writeNumberAttrib("static TextureSlot",this.textureSlot),this.writeAnimation(e,"KRVS"),e.writeNumberAttrib("EmissionRate",this.emissionRate),e.writeNumberAttrib("LifeSpan",this.lifeSpan),0!==this.gravity&&e.writeNumberAttrib("Gravity",this.gravity),e.writeNumberAttrib("Rows",this.rows),e.writeNumberAttrib("Columns",this.columns),e.writeNumberAttrib("MaterialID",this.materialId),this.writeGenericAnimations(e),e.endBlock()}getByteLength(){return 56+super.getByteLength()}}class Io extends co{constructor(){super(...arguments),this.name="",this.position=new Float32Array(3),this.fieldOfView=0,this.farClippingPlane=0,this.nearClippingPlane=0,this.targetPosition=new Float32Array(3)}readMdx(e){const t=e.readUint32();this.name=e.read(80),e.readFloat32Array(this.position),this.fieldOfView=e.readFloat32(),this.farClippingPlane=e.readFloat32(),this.nearClippingPlane=e.readFloat32(),e.readFloat32Array(this.targetPosition),this.readAnimations(e,t-120)}writeMdx(e){e.writeUint32(this.getByteLength()),e.skip(80-e.write(this.name)),e.writeFloat32Array(this.position),e.writeFloat32(this.fieldOfView),e.writeFloat32(this.farClippingPlane),e.writeFloat32(this.nearClippingPlane),e.writeFloat32Array(this.targetPosition),this.writeAnimations(e)}readMdl(e){this.name=e.read();for(let t of e.readBlock())if("Position"===t)e.readVector(this.position);else if("Translation"===t)this.readAnimation(e,"KCTR");else if("Rotation"===t)this.readAnimation(e,"KCRL");else if("FieldOfView"===t)this.fieldOfView=e.readFloat();else if("FarClip"===t)this.farClippingPlane=e.readFloat();else if("NearClip"===t)this.nearClippingPlane=e.readFloat();else{if("Target"!==t)throw new Error(`Unknown token in Camera ${this.name}: "${t}"`);for(t of e.readBlock())if("Position"===t)e.readVector(this.targetPosition);else{if("Translation"!==t)throw new Error(`Unknown token in Camera ${this.name}'s Target: "${t}"`);this.readAnimation(e,"KTTR")}}}writeMdl(e){e.startObjectBlock("Camera",this.name),e.writeVectorAttrib("Position",this.position),this.writeAnimation(e,"KCTR"),this.writeAnimation(e,"KCRL"),e.writeNumberAttrib("FieldOfView",this.fieldOfView),e.writeNumberAttrib("FarClip",this.farClippingPlane),e.writeNumberAttrib("NearClip",this.nearClippingPlane),e.startBlock("Target"),e.writeVectorAttrib("Position",this.targetPosition),this.writeAnimation(e,"KTTR"),e.endBlock(),e.endBlock()}getByteLength(){return 120+super.getByteLength()}}class Uo extends wo{constructor(){super(1024),this.globalSequenceId=-1,this.tracks=new Uint32Array(0)}readMdx(e){super.readMdx(e),e.skip(4);const t=e.readUint32();this.globalSequenceId=e.readInt32(),this.tracks=e.readUint32Array(t)}writeMdx(e){super.writeMdx(e),e.writeBinary("KEVT"),e.writeUint32(this.tracks.length),e.writeInt32(this.globalSequenceId),e.writeUint32Array(this.tracks)}readMdl(e){for(const t of super.readGenericBlock(e)){if("EventTrack"!==t)throw new Error(`Unknown token in EventObject: "${t}"`);{const t=e.readInt();this.tracks=new Uint32Array(t),e.read(),"GlobalSeqId"===e.peek()&&(e.read(),this.globalSequenceId=e.readInt());for(let n=0;n<t;n++)this.tracks[n]=e.readInt();e.read()}}}writeMdl(e){e.startObjectBlock("EventObject",this.name),this.writeGenericHeader(e),e.startBlock("EventTrack",this.tracks.length),-1!==this.globalSequenceId&&e.writeNumberAttrib("GlobalSeqId",this.globalSequenceId);for(const t of this.tracks)e.writeFlag(`${t}`);e.endBlock(),this.writeGenericAnimations(e),e.endBlock()}getByteLength(){return 12+this.tracks.byteLength+super.getByteLength()}}class Ro extends wo{constructor(){super(8192),this.type=0,this.vertices=[new Float32Array(3),new Float32Array(3)],this.boundsRadius=0}readMdx(e){super.readMdx(e),this.type=e.readUint32(),e.readFloat32Array(this.vertices[0]),2!==this.type&&e.readFloat32Array(this.vertices[1]),2!==this.type&&3!==this.type||(this.boundsRadius=e.readFloat32())}writeMdx(e){super.writeMdx(e),e.writeUint32(this.type),e.writeFloat32Array(this.vertices[0]),2!==this.type&&e.writeFloat32Array(this.vertices[1]),2!==this.type&&3!==this.type||e.writeFloat32(this.boundsRadius)}readMdl(e){for(const t of super.readGenericBlock(e))if("Box"===t)this.type=0;else if("Plane"===t)this.type=1;else if("Sphere"===t)this.type=2;else if("Cylinder"===t)this.type=3;else if("Vertices"===t){const t=e.readInt();e.read(),e.readVector(this.vertices[0]),2===t&&e.readVector(this.vertices[1]),e.read()}else{if("BoundsRadius"!==t)throw new Error(`Unknown token in CollisionShape: "${t}"`);this.boundsRadius=e.readFloat()}}writeMdl(e){e.startObjectBlock("CollisionShape",this.name),this.writeGenericHeader(e);let t="",n=2,a=!1;0===this.type?t="Box":1===this.type?t="Plane":2===this.type?(t="Sphere",n=1,a=!0):3===this.type&&(t="Cylinder",a=!0),e.writeFlag(t),e.startBlock("Vertices",n),e.writeVector(this.vertices[0]),2===n&&e.writeVector(this.vertices[1]),e.endBlock(),a&&e.writeNumberAttrib("BoundsRadius",this.boundsRadius),this.writeGenericAnimations(e),e.endBlock()}getByteLength(){let e=16+super.getByteLength();return 2!==this.type&&(e+=12),2!==this.type&&3!==this.type||(e+=4),e}}class Co{constructor(){this.type="",this.path=""}readMdx(e){this.type=e.read(80),this.path=e.read(260)}writeMdx(e){e.skip(80-e.write(this.type)),e.skip(260-e.write(this.path))}readMdl(e){this.type=e.read();for(const t of e.readBlock()){if("Path"!==t)throw new Error(`Unknown token in FaceEffect: "${t}"`);this.path=e.read()}}writeMdl(e){e.startObjectBlock("FaceFX",this.type),e.writeStringAttrib("Path",this.path),e.endBlock()}}class Mo{constructor(e,t,n){this.tag=n,this.chunk=e.readUint8Array(new Uint8Array(t))}writeMdx(e){e.writeBinary(this.tag),e.writeUint32(this.chunk.byteLength),e.writeUint8Array(this.chunk)}getByteLength(){return 8+this.chunk.byteLength}}function Bo(e){return e instanceof ArrayBuffer&&(e=new Uint8Array(e)),e instanceof Uint8Array&&77===e[0]&&68===e[1]&&76===e[2]&&88===e[3]||!("string"!=typeof e||!e.startsWith("MDLX"))}function No(e){return e instanceof ArrayBuffer&&(e=new Uint8Array(e)),!!(e instanceof Uint8Array&&Js(e,"FormatVersion",0,4096))||!("string"!=typeof e||!function(e,t,n=0,a=1/0){const r=Math.max(n,0),i=Math.min(r+a,e.length);let s=0,l=t[0];for(let n=r;n<i;n++)if(e[n]===l){if(s+=1,s===t.length)return!0;l=t[s]}else s>0&&(s=0,l=t[0]);return!1}(e,"FormatVersion",0,4096))}class Po{constructor(){this.version=800,this.name="",this.animationFile="",this.extent=new no,this.blendTime=0,this.sequences=[],this.globalSequences=[],this.materials=[],this.textures=[],this.textureAnimations=[],this.geosets=[],this.geosetAnimations=[],this.bones=[],this.lights=[],this.helpers=[],this.attachments=[],this.pivotPoints=[],this.particleEmitters=[],this.particleEmitters2=[],this.particleEmittersPopcorn=[],this.ribbonEmitters=[],this.cameras=[],this.eventObjects=[],this.collisionShapes=[],this.faceEffects=[],this.bindPose=[],this.unknownChunks=[]}load(e){if(Bo(e))"string"==typeof e&&(e=zs(e)),this.loadMdx(e);else{if(!No(e))throw new Error("Not a valid MDX/MDL buffer");"string"!=typeof e&&(e=Hs(e)),this.loadMdl(e)}}loadMdx(e){const t=new Al(e);let n,a;for(t.skip(4);t.remaining>0;)n=t.readBinary(4),a=t.readUint32(),"VERS"===n?this.loadVersionChunk(t):"MODL"===n?this.loadModelChunk(t):"SEQS"===n?this.loadStaticObjects(this.sequences,ao,t,a/132):"GLBS"===n?this.loadGlobalSequenceChunk(t,a):"MTLS"===n?this.loadDynamicObjects(this.materials,mo,t,a):"TEXS"===n?this.loadStaticObjects(this.textures,po,t,a/268):"TXAN"===n?this.loadDynamicObjects(this.textureAnimations,_o,t,a):"GEOS"===n?this.loadDynamicObjects(this.geosets,go,t,a):"GEOA"===n?this.loadDynamicObjects(this.geosetAnimations,bo,t,a):"BONE"===n?this.loadDynamicObjects(this.bones,vo,t,a):"LITE"===n?this.loadDynamicObjects(this.lights,Ao,t,a):"HELP"===n?this.loadDynamicObjects(this.helpers,yo,t,a):"ATCH"===n?this.loadDynamicObjects(this.attachments,So,t,a):"PIVT"===n?this.loadPivotPointChunk(t,a):"PREM"===n?this.loadDynamicObjects(this.particleEmitters,To,t,a):"PRE2"===n?this.loadDynamicObjects(this.particleEmitters2,xo,t,a):"CORN"===n?this.loadDynamicObjects(this.particleEmittersPopcorn,Eo,t,a):"RIBB"===n?this.loadDynamicObjects(this.ribbonEmitters,Lo,t,a):"CAMS"===n?this.loadDynamicObjects(this.cameras,Io,t,a):"EVTS"===n?this.loadDynamicObjects(this.eventObjects,Uo,t,a):"CLID"===n?this.loadDynamicObjects(this.collisionShapes,Ro,t,a):"FAFX"===n?this.loadStaticObjects(this.faceEffects,Co,t,a/340):"BPOS"===n?this.loadBindPoseChunk(t,a):this.unknownChunks.push(new Mo(t,a,n))}loadVersionChunk(e){this.version=e.readUint32()}loadModelChunk(e){this.name=e.read(80),this.animationFile=e.read(260),this.extent.readMdx(e),this.blendTime=e.readUint32()}loadStaticObjects(e,t,n,a){for(let r=0;r<a;r++){const a=new t;a.readMdx(n),e.push(a)}}loadGlobalSequenceChunk(e,t){for(let n=0,a=t/4;n<a;n++)this.globalSequences.push(e.readUint32())}loadDynamicObjects(e,t,n,a){const r=n.index+a;for(;n.index<r;){const a=new t;a.readMdx(n,this.version),e.push(a)}}loadPivotPointChunk(e,t){for(let n=0,a=t/12;n<a;n++)this.pivotPoints.push(e.readFloat32Array(3))}loadBindPoseChunk(e,t){for(let t=0,n=e.readUint32();t<n;t++)this.bindPose[t]=e.readFloat32Array(12)}saveMdx(){const e=new Al(new ArrayBuffer(this.getByteLength()));e.writeBinary("MDLX"),this.saveVersionChunk(e),this.saveModelChunk(e),this.saveStaticObjectChunk(e,"SEQS",this.sequences,132),this.saveGlobalSequenceChunk(e),this.saveDynamicObjectChunk(e,"MTLS",this.materials),this.saveStaticObjectChunk(e,"TEXS",this.textures,268),this.saveDynamicObjectChunk(e,"TXAN",this.textureAnimations),this.saveDynamicObjectChunk(e,"GEOS",this.geosets),this.saveDynamicObjectChunk(e,"GEOA",this.geosetAnimations),this.saveDynamicObjectChunk(e,"BONE",this.bones),this.saveDynamicObjectChunk(e,"LITE",this.lights),this.saveDynamicObjectChunk(e,"HELP",this.helpers),this.saveDynamicObjectChunk(e,"ATCH",this.attachments),this.savePivotPointChunk(e),this.saveDynamicObjectChunk(e,"PREM",this.particleEmitters),this.saveDynamicObjectChunk(e,"PRE2",this.particleEmitters2),this.version>800&&this.saveDynamicObjectChunk(e,"CORN",this.particleEmittersPopcorn),this.saveDynamicObjectChunk(e,"RIBB",this.ribbonEmitters),this.saveDynamicObjectChunk(e,"CAMS",this.cameras),this.saveDynamicObjectChunk(e,"EVTS",this.eventObjects),this.saveDynamicObjectChunk(e,"CLID",this.collisionShapes),this.version>800&&(this.saveStaticObjectChunk(e,"FAFX",this.faceEffects,340),this.saveBindPoseChunk(e));for(const t of this.unknownChunks)t.writeMdx(e);return e.uint8array}saveVersionChunk(e){e.writeBinary("VERS"),e.writeUint32(4),e.writeUint32(this.version)}saveModelChunk(e){e.writeBinary("MODL"),e.writeUint32(372),e.skip(80-e.write(this.name)),e.skip(260-e.write(this.animationFile)),this.extent.writeMdx(e),e.writeUint32(this.blendTime)}saveStaticObjectChunk(e,t,n,a){if(n.length){e.writeBinary(t),e.writeUint32(n.length*a);for(const t of n)t.writeMdx(e)}}saveGlobalSequenceChunk(e){if(this.globalSequences.length){e.writeBinary("GLBS"),e.writeUint32(4*this.globalSequences.length);for(const t of this.globalSequences)e.writeUint32(t)}}saveDynamicObjectChunk(e,t,n){if(n.length){e.writeBinary(t),e.writeUint32(this.getObjectsByteLength(n));for(const t of n)t.writeMdx(e,this.version)}}savePivotPointChunk(e){if(this.pivotPoints.length){e.writeBinary("PIVT"),e.writeUint32(12*this.pivotPoints.length);for(const t of this.pivotPoints)e.writeFloat32Array(t)}}saveBindPoseChunk(e){if(this.bindPose.length){e.writeBinary("BPOS"),e.writeUint32(4+48*this.bindPose.length),e.writeUint32(this.bindPose.length);for(const t of this.bindPose)e.writeFloat32Array(t)}}loadMdl(e){let t;const n=new to(e);for(;t=n.readToken();)if("Version"===t)this.loadVersionBlock(n);else if("Model"===t)this.loadModelBlock(n);else if("Sequences"===t)this.loadNumberedObjectBlock(this.sequences,ao,"Anim",n);else if("GlobalSequences"===t)this.loadGlobalSequenceBlock(n);else if("Textures"===t)this.loadNumberedObjectBlock(this.textures,po,"Bitmap",n);else if("Materials"===t)this.loadNumberedObjectBlock(this.materials,mo,"Material",n);else if("TextureAnims"===t)this.loadNumberedObjectBlock(this.textureAnimations,_o,"TVertexAnim",n);else if("Geoset"===t)this.loadObject(this.geosets,go,n);else if("GeosetAnim"===t)this.loadObject(this.geosetAnimations,bo,n);else if("Bone"===t)this.loadObject(this.bones,vo,n);else if("Light"===t)this.loadObject(this.lights,Ao,n);else if("Helper"===t)this.loadObject(this.helpers,yo,n);else if("Attachment"===t)this.loadObject(this.attachments,So,n);else if("PivotPoints"===t)this.loadPivotPointBlock(n);else if("ParticleEmitter"===t)this.loadObject(this.particleEmitters,To,n);else if("ParticleEmitter2"===t)this.loadObject(this.particleEmitters2,xo,n);else if("ParticleEmitterPopcorn"===t)this.loadObject(this.particleEmittersPopcorn,Eo,n);else if("RibbonEmitter"===t)this.loadObject(this.ribbonEmitters,Lo,n);else if("Camera"===t)this.loadObject(this.cameras,Io,n);else if("EventObject"===t)this.loadObject(this.eventObjects,Uo,n);else if("CollisionShape"===t)this.loadObject(this.collisionShapes,Ro,n);else if("FaceFX"===t)this.loadObject(this.faceEffects,Co,n);else{if("BindPose"!==t)throw new Error(`Unsupported block: ${t}`);this.loadBindPoseBlock(n)}}loadVersionBlock(e){for(const t of e.readBlock()){if("FormatVersion"!==t)throw new Error(`Unknown token in Version: "${t}"`);this.version=e.readInt()}}loadModelBlock(e){this.name=e.read();for(const t of e.readBlock())if(t.startsWith("Num"))e.read();else if("BlendTime"===t)this.blendTime=e.readInt();else if("MinimumExtent"===t)e.readVector(this.extent.min);else if("MaximumExtent"===t)e.readVector(this.extent.max);else if("BoundsRadius"===t)this.extent.boundsRadius=e.readFloat();else{if("AnimationFile"!==t)throw new Error(`Unknown token in Model: "${t}"`);this.animationFile=e.read()}}loadNumberedObjectBlock(e,t,n,a){a.read();for(const r of a.readBlock()){if(r!==n)throw new Error(`Unknown token in ${n}: "${r}"`);{const n=new t;n.readMdl(a),e.push(n)}}}loadGlobalSequenceBlock(e){e.read();for(const t of e.readBlock()){if("Duration"!==t)throw new Error(`Unknown token in GlobalSequences: "${t}"`);this.globalSequences.push(e.readInt())}}loadObject(e,t,n){const a=new t;a.readMdl(n),e.push(a)}loadPivotPointBlock(e){const t=e.readInt();e.read();for(let n=0;n<t;n++)this.pivotPoints.push(e.readVector(new Float32Array(3)));e.read()}loadBindPoseBlock(e){for(const t of e.readBlock()){if("Matrices"!==t)throw new Error(`Unknown token in BindPose: "${t}"`);{const t=e.readInt();e.read();for(let n=0;n<t;n++)this.bindPose[n]=e.readVector(new Float32Array(12));e.read()}}}saveMdl(){const e=new to;return this.saveVersionBlock(e),this.saveModelBlock(e),this.saveStaticObjectsBlock(e,"Sequences",this.sequences),this.saveGlobalSequenceBlock(e),this.saveStaticObjectsBlock(e,"Textures",this.textures),this.saveStaticObjectsBlock(e,"Materials",this.materials),this.saveStaticObjectsBlock(e,"TextureAnims",this.textureAnimations),this.saveObjects(e,this.geosets),this.saveObjects(e,this.geosetAnimations),this.saveObjects(e,this.bones),this.saveObjects(e,this.lights),this.saveObjects(e,this.helpers),this.saveObjects(e,this.attachments),this.savePivotPointBlock(e),this.saveObjects(e,this.particleEmitters),this.saveObjects(e,this.particleEmitters2),this.version>800&&this.saveObjects(e,this.particleEmittersPopcorn),this.saveObjects(e,this.ribbonEmitters),this.saveObjects(e,this.cameras),this.saveObjects(e,this.eventObjects),this.saveObjects(e,this.collisionShapes),this.version>800&&(this.saveObjects(e,this.faceEffects),this.saveBindPoseBlock(e)),e.buffer}saveVersionBlock(e){e.startBlock("Version"),e.writeNumberAttrib("FormatVersion",this.version),e.endBlock()}saveModelBlock(e){e.startObjectBlock("Model",this.name),e.writeNumberAttrib("BlendTime",this.blendTime),this.extent.writeMdl(e),this.animationFile.length&&e.writeStringAttrib("AnimationFile",this.animationFile),e.endBlock()}saveStaticObjectsBlock(e,t,n){if(n.length){e.startBlock(t,n.length);for(const t of n)t.writeMdl(e,this.version);e.endBlock()}}saveGlobalSequenceBlock(e){if(this.globalSequences.length){e.startBlock("GlobalSequences",this.globalSequences.length);for(const t of this.globalSequences)e.writeNumberAttrib("Duration",t);e.endBlock()}}saveObjects(e,t){for(const n of t)n.writeMdl(e,this.version)}savePivotPointBlock(e){if(this.pivotPoints.length){e.startBlock("PivotPoints",this.pivotPoints.length);for(const t of this.pivotPoints)e.writeVector(t);e.endBlock()}}saveBindPoseBlock(e){if(this.bindPose.length){e.startBlock("BindPose"),e.startBlock("Matrices",this.bindPose.length);for(const t of this.bindPose)e.writeVector(t);e.endBlock(),e.endBlock()}}getByteLength(){let e=396;return e+=this.getStaticObjectsChunkByteLength(this.sequences,132),e+=this.getStaticObjectsChunkByteLength(this.globalSequences,4),e+=this.getDynamicObjectsChunkByteLength(this.materials),e+=this.getStaticObjectsChunkByteLength(this.textures,268),e+=this.getDynamicObjectsChunkByteLength(this.textureAnimations),e+=this.getDynamicObjectsChunkByteLength(this.geosets),e+=this.getDynamicObjectsChunkByteLength(this.geosetAnimations),e+=this.getDynamicObjectsChunkByteLength(this.bones),e+=this.getDynamicObjectsChunkByteLength(this.lights),e+=this.getDynamicObjectsChunkByteLength(this.helpers),e+=this.getDynamicObjectsChunkByteLength(this.attachments),e+=this.getStaticObjectsChunkByteLength(this.pivotPoints,12),e+=this.getDynamicObjectsChunkByteLength(this.particleEmitters),e+=this.getDynamicObjectsChunkByteLength(this.particleEmitters2),this.version>800&&(e+=this.getDynamicObjectsChunkByteLength(this.particleEmittersPopcorn)),e+=this.getDynamicObjectsChunkByteLength(this.ribbonEmitters),e+=this.getDynamicObjectsChunkByteLength(this.cameras),e+=this.getDynamicObjectsChunkByteLength(this.eventObjects),e+=this.getDynamicObjectsChunkByteLength(this.collisionShapes),this.version>800&&(e+=this.getStaticObjectsChunkByteLength(this.faceEffects,340),e+=this.getBindPoseChunkByteLength()),e+=this.getObjectsByteLength(this.unknownChunks),e}getObjectsByteLength(e){let t=0;for(const n of e)t+=n.getByteLength(this.version);return t}getDynamicObjectsChunkByteLength(e){return e.length?8+this.getObjectsByteLength(e):0}getStaticObjectsChunkByteLength(e,t){return e.length?8+e.length*t:0}getBindPoseChunkByteLength(){return this.bindPose.length?12+48*this.bindPose.length:0}}const ko={Model:Po,Sequence:ao,Material:mo,Layer:fo,Texture:po,TextureAnimation:_o,Geoset:go,GeosetAnimation:bo,Bone:vo,Light:Ao,Helper:yo,Attachment:So,ParticleEmitter:To,ParticleEmitter2:xo,ParticleEmitterPopcorn:Eo,RibbonEmitter:Lo,Camera:Io,EventObject:Uo,CollisionShape:Ro,UnknownChunk:Mo,TokenStream:to,isMdx:Bo,isMdl:No};class Oo{constructor(){this.offset=0,this.compressedSize=0,this.normalSize=0,this.flags=0}load(e){this.offset=e[0],this.compressedSize=e[1],this.normalSize=e[2],this.flags=e[3]}save(e){e[0]=this.offset,e[1]=this.compressedSize,e[2]=this.normalSize,e[3]=this.flags}}const Do=3283040112,Fo=4294967294,Go=4294967295,Vo=3968054179,Ko=65536,Ho=131072,zo=16777216,jo=2147483648;class Xo{constructor(e){this.c=e,this.entries=[]}add(e){const t=new Oo;return t.normalSize=e.byteLength,this.entries.push(t),t}clear(){this.entries.length=0}addEmpties(e){for(let t=0;t<e;t++)this.entries.push(new Oo)}load(e){const t=e.byteLength/16,n=new Uint32Array(this.c.decryptBlock(e,Vo).buffer);let a=0;this.clear(),this.addEmpties(t);for(const e of this.entries)e.load(n.subarray(a,a+4)),a+=4}save(e){const t=new Uint32Array(4*this.entries.length);let n=0;for(const e of this.entries)e.save(t.subarray(n,n+4)),n+=4;const a=new Uint8Array(t.buffer);this.c.encryptBlock(a,Vo),e.set(a)}}const $o=new Uint8Array(4),Jo=new Uint32Array($o.buffer);class Wo{constructor(){this.cryptTable=new Uint32Array(1280);let e=1048577,t=0,n=0;for(let a=0;a<256;a++)for(let r=a,i=0;i<5;i+=1,r+=256)e=(125*e+3)%2796203,t=(65535&e)<<16,e=(125*e+3)%2796203,n=65535&e,this.cryptTable[r]=t|n}hash(e,t){const n=this.cryptTable;let a=2146271213,r=4008636142;e=e.toUpperCase();for(let i=0;i<e.length;i++){const s=e.charCodeAt(i);a=n[(t<<8)+s]^a+r,r=s+a+r+(r<<5)+3}return a>>>0}decryptBlock(e,t){const n=this.cryptTable;let a=4008636142;const r=new Uint8Array(e.buffer,e.byteOffset,e.byteLength);for(let i=0,s=e.byteLength>>>2;i<s;i++)a+=n[1024+(255&t)],$o[0]=r[4*i],$o[1]=r[4*i+1],$o[2]=r[4*i+2],$o[3]=r[4*i+3],Jo[0]^=t+a,t=286331153+(~t<<21)|t>>>11,a=Jo[0]+a+(a<<5)+3,r[4*i]=$o[0],r[4*i+1]=$o[1],r[4*i+2]=$o[2],r[4*i+3]=$o[3];return e}encryptBlock(e,t){const n=this.cryptTable;let a=4008636142;const r=new Uint8Array(e.buffer,e.byteOffset,e.byteLength);for(let i=0,s=e.byteLength>>>2;i<s;i++){a+=n[1024+(255&t)],$o[0]=r[4*i],$o[1]=r[4*i+1],$o[2]=r[4*i+2],$o[3]=r[4*i+3];const e=Jo[0];Jo[0]^=t+a,t=286331153+(~t<<21)|t>>>11,a=e+a+(a<<5)+3,r[4*i]=$o[0],r[4*i+1]=$o[1],r[4*i+2]=$o[2],r[4*i+3]=$o[3]}return e}computeFileKey(e,t){const n=e.lastIndexOf("\\"),a=e.substring(n+1);let r=this.hash(a,3);return t.flags&Ho&&(r=r+t.offset^t.normalSize),r}}function qo(e){let t=e.length;for(;--t>=0;)e[t]=0}const Yo=256,Zo=286,Qo=30,eu=15,tu=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),nu=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),au=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),ru=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),iu=new Array(576);qo(iu);const su=new Array(60);qo(su);const lu=new Array(512);qo(lu);const ou=new Array(256);qo(ou);const uu=new Array(29);qo(uu);const cu=new Array(Qo);function du(e,t,n,a,r){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=a,this.max_length=r,this.has_stree=e&&e.length}let hu,fu,mu;function pu(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}qo(cu);const _u=e=>e<256?lu[e]:lu[256+(e>>>7)],gu=(e,t)=>{e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},bu=(e,t,n)=>{e.bi_valid>16-n?(e.bi_buf|=t<<e.bi_valid&65535,gu(e,e.bi_buf),e.bi_buf=t>>16-e.bi_valid,e.bi_valid+=n-16):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)},wu=(e,t,n)=>{bu(e,n[2*t],n[2*t+1])},vu=(e,t)=>{let n=0;do{n|=1&e,e>>>=1,n<<=1}while(--t>0);return n>>>1},Au=(e,t,n)=>{const a=new Array(16);let r,i,s=0;for(r=1;r<=eu;r++)s=s+n[r-1]<<1,a[r]=s;for(i=0;i<=t;i++){let t=e[2*i+1];0!==t&&(e[2*i]=vu(a[t]++,t))}},yu=e=>{let t;for(t=0;t<Zo;t++)e.dyn_ltree[2*t]=0;for(t=0;t<Qo;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},Su=e=>{e.bi_valid>8?gu(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},Tu=(e,t,n,a)=>{const r=2*t,i=2*n;return e[r]<e[i]||e[r]===e[i]&&a[t]<=a[n]},xu=(e,t,n)=>{const a=e.heap[n];let r=n<<1;for(;r<=e.heap_len&&(r<e.heap_len&&Tu(t,e.heap[r+1],e.heap[r],e.depth)&&r++,!Tu(t,a,e.heap[r],e.depth));)e.heap[n]=e.heap[r],n=r,r<<=1;e.heap[n]=a},Eu=(e,t,n)=>{let a,r,i,s,l=0;if(0!==e.sym_next)do{a=255&e.pending_buf[e.sym_buf+l++],a+=(255&e.pending_buf[e.sym_buf+l++])<<8,r=e.pending_buf[e.sym_buf+l++],0===a?wu(e,r,t):(i=ou[r],wu(e,i+Yo+1,t),s=tu[i],0!==s&&(r-=uu[i],bu(e,r,s)),a--,i=_u(a),wu(e,i,n),s=nu[i],0!==s&&(a-=cu[i],bu(e,a,s)))}while(l<e.sym_next);wu(e,256,t)},Lu=(e,t)=>{const n=t.dyn_tree,a=t.stat_desc.static_tree,r=t.stat_desc.has_stree,i=t.stat_desc.elems;let s,l,o,u=-1;for(e.heap_len=0,e.heap_max=573,s=0;s<i;s++)0!==n[2*s]?(e.heap[++e.heap_len]=u=s,e.depth[s]=0):n[2*s+1]=0;for(;e.heap_len<2;)o=e.heap[++e.heap_len]=u<2?++u:0,n[2*o]=1,e.depth[o]=0,e.opt_len--,r&&(e.static_len-=a[2*o+1]);for(t.max_code=u,s=e.heap_len>>1;s>=1;s--)xu(e,n,s);o=i;do{s=e.heap[1],e.heap[1]=e.heap[e.heap_len--],xu(e,n,1),l=e.heap[1],e.heap[--e.heap_max]=s,e.heap[--e.heap_max]=l,n[2*o]=n[2*s]+n[2*l],e.depth[o]=(e.depth[s]>=e.depth[l]?e.depth[s]:e.depth[l])+1,n[2*s+1]=n[2*l+1]=o,e.heap[1]=o++,xu(e,n,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],((e,t)=>{const n=t.dyn_tree,a=t.max_code,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,s=t.stat_desc.extra_bits,l=t.stat_desc.extra_base,o=t.stat_desc.max_length;let u,c,d,h,f,m,p=0;for(h=0;h<=eu;h++)e.bl_count[h]=0;for(n[2*e.heap[e.heap_max]+1]=0,u=e.heap_max+1;u<573;u++)c=e.heap[u],h=n[2*n[2*c+1]+1]+1,h>o&&(h=o,p++),n[2*c+1]=h,c>a||(e.bl_count[h]++,f=0,c>=l&&(f=s[c-l]),m=n[2*c],e.opt_len+=m*(h+f),i&&(e.static_len+=m*(r[2*c+1]+f)));if(0!==p){do{for(h=o-1;0===e.bl_count[h];)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[o]--,p-=2}while(p>0);for(h=o;0!==h;h--)for(c=e.bl_count[h];0!==c;)d=e.heap[--u],d>a||(n[2*d+1]!==h&&(e.opt_len+=(h-n[2*d+1])*n[2*d],n[2*d+1]=h),c--)}})(e,t),Au(n,u,e.bl_count)},Iu=(e,t,n)=>{let a,r,i=-1,s=t[1],l=0,o=7,u=4;for(0===s&&(o=138,u=3),t[2*(n+1)+1]=65535,a=0;a<=n;a++)r=s,s=t[2*(a+1)+1],++l<o&&r===s||(l<u?e.bl_tree[2*r]+=l:0!==r?(r!==i&&e.bl_tree[2*r]++,e.bl_tree[32]++):l<=10?e.bl_tree[34]++:e.bl_tree[36]++,l=0,i=r,0===s?(o=138,u=3):r===s?(o=6,u=3):(o=7,u=4))},Uu=(e,t,n)=>{let a,r,i=-1,s=t[1],l=0,o=7,u=4;for(0===s&&(o=138,u=3),a=0;a<=n;a++)if(r=s,s=t[2*(a+1)+1],!(++l<o&&r===s)){if(l<u)do{wu(e,r,e.bl_tree)}while(0!==--l);else 0!==r?(r!==i&&(wu(e,r,e.bl_tree),l--),wu(e,16,e.bl_tree),bu(e,l-3,2)):l<=10?(wu(e,17,e.bl_tree),bu(e,l-3,3)):(wu(e,18,e.bl_tree),bu(e,l-11,7));l=0,i=r,0===s?(o=138,u=3):r===s?(o=6,u=3):(o=7,u=4)}};let Ru=!1;const Cu=(e,t,n,a)=>{bu(e,0+(a?1:0),3),Su(e),gu(e,n),gu(e,~n),n&&e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n};var Mu=e=>{Ru||((()=>{let e,t,n,a,r;const i=new Array(16);for(n=0,a=0;a<28;a++)for(uu[a]=n,e=0;e<1<<tu[a];e++)ou[n++]=a;for(ou[n-1]=a,r=0,a=0;a<16;a++)for(cu[a]=r,e=0;e<1<<nu[a];e++)lu[r++]=a;for(r>>=7;a<Qo;a++)for(cu[a]=r<<7,e=0;e<1<<nu[a]-7;e++)lu[256+r++]=a;for(t=0;t<=eu;t++)i[t]=0;for(e=0;e<=143;)iu[2*e+1]=8,e++,i[8]++;for(;e<=255;)iu[2*e+1]=9,e++,i[9]++;for(;e<=279;)iu[2*e+1]=7,e++,i[7]++;for(;e<=287;)iu[2*e+1]=8,e++,i[8]++;for(Au(iu,287,i),e=0;e<Qo;e++)su[2*e+1]=5,su[2*e]=vu(e,5);hu=new du(iu,tu,257,Zo,eu),fu=new du(su,nu,0,Qo,eu),mu=new du(new Array(0),au,0,19,7)})(),Ru=!0),e.l_desc=new pu(e.dyn_ltree,hu),e.d_desc=new pu(e.dyn_dtree,fu),e.bl_desc=new pu(e.bl_tree,mu),e.bi_buf=0,e.bi_valid=0,yu(e)},Bu=(e,t,n,a)=>{let r,i,s=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=(e=>{let t,n=4093624447;for(t=0;t<=31;t++,n>>>=1)if(1&n&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<Yo;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0})(e)),Lu(e,e.l_desc),Lu(e,e.d_desc),s=(e=>{let t;for(Iu(e,e.dyn_ltree,e.l_desc.max_code),Iu(e,e.dyn_dtree,e.d_desc.max_code),Lu(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*ru[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t})(e),r=e.opt_len+3+7>>>3,i=e.static_len+3+7>>>3,i<=r&&(r=i)):r=i=n+5,n+4<=r&&-1!==t?Cu(e,t,n,a):4===e.strategy||i===r?(bu(e,2+(a?1:0),3),Eu(e,iu,su)):(bu(e,4+(a?1:0),3),((e,t,n,a)=>{let r;for(bu(e,t-257,5),bu(e,n-1,5),bu(e,a-4,4),r=0;r<a;r++)bu(e,e.bl_tree[2*ru[r]+1],3);Uu(e,e.dyn_ltree,t-1),Uu(e,e.dyn_dtree,n-1)})(e,e.l_desc.max_code+1,e.d_desc.max_code+1,s+1),Eu(e,e.dyn_ltree,e.dyn_dtree)),yu(e),a&&Su(e)},Nu=(e,t,n)=>(e.pending_buf[e.sym_buf+e.sym_next++]=t,e.pending_buf[e.sym_buf+e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+e.sym_next++]=n,0===t?e.dyn_ltree[2*n]++:(e.matches++,t--,e.dyn_ltree[2*(ou[n]+Yo+1)]++,e.dyn_dtree[2*_u(t)]++),e.sym_next===e.sym_end),Pu=e=>{bu(e,2,3),wu(e,256,iu),(e=>{16===e.bi_valid?(gu(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)})(e)},ku={_tr_init:Mu,_tr_stored_block:Cu,_tr_flush_block:Bu,_tr_tally:Nu,_tr_align:Pu};var Ou=(e,t,n,a)=>{let r=65535&e,i=e>>>16&65535,s=0;for(;0!==n;){s=n>2e3?2e3:n,n-=s;do{r=r+t[a++]|0,i=i+r|0}while(--s);r%=65521,i%=65521}return r|i<<16};const Du=new Uint32Array((()=>{let e,t=[];for(var n=0;n<256;n++){e=n;for(var a=0;a<8;a++)e=1&e?3988292384^e>>>1:e>>>1;t[n]=e}return t})());var Fu=(e,t,n,a)=>{const r=Du,i=a+n;e^=-1;for(let n=a;n<i;n++)e=e>>>8^r[255&(e^t[n])];return-1^e},Gu={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},Vu={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:Ku,_tr_stored_block:Hu,_tr_flush_block:zu,_tr_tally:ju,_tr_align:Xu}=ku,{Z_NO_FLUSH:$u,Z_PARTIAL_FLUSH:Ju,Z_FULL_FLUSH:Wu,Z_FINISH:qu,Z_BLOCK:Yu,Z_OK:Zu,Z_STREAM_END:Qu,Z_STREAM_ERROR:ec,Z_DATA_ERROR:tc,Z_BUF_ERROR:nc,Z_DEFAULT_COMPRESSION:ac,Z_FILTERED:rc,Z_HUFFMAN_ONLY:ic,Z_RLE:sc,Z_FIXED:lc,Z_DEFAULT_STRATEGY:oc,Z_UNKNOWN:uc,Z_DEFLATED:cc}=Vu,dc=258,hc=262,fc=42,mc=113,pc=666,_c=(e,t)=>(e.msg=Gu[t],t),gc=e=>2*e-(e>4?9:0),bc=e=>{let t=e.length;for(;--t>=0;)e[t]=0},wc=e=>{let t,n,a,r=e.w_size;t=e.hash_size,a=t;do{n=e.head[--a],e.head[a]=n>=r?n-r:0}while(--t);t=r,a=t;do{n=e.prev[--a],e.prev[a]=n>=r?n-r:0}while(--t)};let vc=(e,t,n)=>(t<<e.hash_shift^n)&e.hash_mask;const Ac=e=>{const t=e.state;let n=t.pending;n>e.avail_out&&(n=e.avail_out),0!==n&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+n),e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,0===t.pending&&(t.pending_out=0))},yc=(e,t)=>{zu(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Ac(e.strm)},Sc=(e,t)=>{e.pending_buf[e.pending++]=t},Tc=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},xc=(e,t,n,a)=>{let r=e.avail_in;return r>a&&(r=a),0===r?0:(e.avail_in-=r,t.set(e.input.subarray(e.next_in,e.next_in+r),n),1===e.state.wrap?e.adler=Ou(e.adler,t,r,n):2===e.state.wrap&&(e.adler=Fu(e.adler,t,r,n)),e.next_in+=r,e.total_in+=r,r)},Ec=(e,t)=>{let n,a,r=e.max_chain_length,i=e.strstart,s=e.prev_length,l=e.nice_match;const o=e.strstart>e.w_size-hc?e.strstart-(e.w_size-hc):0,u=e.window,c=e.w_mask,d=e.prev,h=e.strstart+dc;let f=u[i+s-1],m=u[i+s];e.prev_length>=e.good_match&&(r>>=2),l>e.lookahead&&(l=e.lookahead);do{if(n=t,u[n+s]===m&&u[n+s-1]===f&&u[n]===u[i]&&u[++n]===u[i+1]){i+=2,n++;do{}while(u[++i]===u[++n]&&u[++i]===u[++n]&&u[++i]===u[++n]&&u[++i]===u[++n]&&u[++i]===u[++n]&&u[++i]===u[++n]&&u[++i]===u[++n]&&u[++i]===u[++n]&&i<h);if(a=dc-(h-i),i=h-dc,a>s){if(e.match_start=t,s=a,a>=l)break;f=u[i+s-1],m=u[i+s]}}}while((t=d[t&c])>o&&0!==--r);return s<=e.lookahead?s:e.lookahead},Lc=e=>{const t=e.w_size;let n,a,r;do{if(a=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-hc)&&(e.window.set(e.window.subarray(t,t+t-a),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),wc(e),a+=t),0===e.strm.avail_in)break;if(n=xc(e.strm,e.window,e.strstart+e.lookahead,a),e.lookahead+=n,e.lookahead+e.insert>=3)for(r=e.strstart-e.insert,e.ins_h=e.window[r],e.ins_h=vc(e,e.ins_h,e.window[r+1]);e.insert&&(e.ins_h=vc(e,e.ins_h,e.window[r+3-1]),e.prev[r&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=r,r++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead<hc&&0!==e.strm.avail_in)},Ic=(e,t)=>{let n,a,r,i=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,s=0,l=e.strm.avail_in;do{if(n=65535,r=e.bi_valid+42>>3,e.strm.avail_out<r)break;if(r=e.strm.avail_out-r,a=e.strstart-e.block_start,n>a+e.strm.avail_in&&(n=a+e.strm.avail_in),n>r&&(n=r),n<i&&(0===n&&t!==qu||t===$u||n!==a+e.strm.avail_in))break;s=t===qu&&n===a+e.strm.avail_in?1:0,Hu(e,0,0,s),e.pending_buf[e.pending-4]=n,e.pending_buf[e.pending-3]=n>>8,e.pending_buf[e.pending-2]=~n,e.pending_buf[e.pending-1]=~n>>8,Ac(e.strm),a&&(a>n&&(a=n),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+a),e.strm.next_out),e.strm.next_out+=a,e.strm.avail_out-=a,e.strm.total_out+=a,e.block_start+=a,n-=a),n&&(xc(e.strm,e.strm.output,e.strm.next_out,n),e.strm.next_out+=n,e.strm.avail_out-=n,e.strm.total_out+=n)}while(0===s);return l-=e.strm.avail_in,l&&(l>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=l&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-l,e.strm.next_in),e.strstart),e.strstart+=l,e.insert+=l>e.w_size-e.insert?e.w_size-e.insert:l),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),s?4:t!==$u&&t!==qu&&0===e.strm.avail_in&&e.strstart===e.block_start?2:(r=e.window_size-e.strstart,e.strm.avail_in>r&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,r+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),r>e.strm.avail_in&&(r=e.strm.avail_in),r&&(xc(e.strm,e.window,e.strstart,r),e.strstart+=r,e.insert+=r>e.w_size-e.insert?e.w_size-e.insert:r),e.high_water<e.strstart&&(e.high_water=e.strstart),r=e.bi_valid+42>>3,r=e.pending_buf_size-r>65535?65535:e.pending_buf_size-r,i=r>e.w_size?e.w_size:r,a=e.strstart-e.block_start,(a>=i||(a||t===qu)&&t!==$u&&0===e.strm.avail_in&&a<=r)&&(n=a>r?r:a,s=t===qu&&0===e.strm.avail_in&&n===a?1:0,Hu(e,e.block_start,n,s),e.block_start+=n,Ac(e.strm)),s?3:1)},Uc=(e,t)=>{let n,a;for(;;){if(e.lookahead<hc){if(Lc(e),e.lookahead<hc&&t===$u)return 1;if(0===e.lookahead)break}if(n=0,e.lookahead>=3&&(e.ins_h=vc(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==n&&e.strstart-n<=e.w_size-hc&&(e.match_length=Ec(e,n)),e.match_length>=3)if(a=ju(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=vc(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!==--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=vc(e,e.ins_h,e.window[e.strstart+1]);else a=ju(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(a&&(yc(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,t===qu?(yc(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(yc(e,!1),0===e.strm.avail_out)?1:2},Rc=(e,t)=>{let n,a,r;for(;;){if(e.lookahead<hc){if(Lc(e),e.lookahead<hc&&t===$u)return 1;if(0===e.lookahead)break}if(n=0,e.lookahead>=3&&(e.ins_h=vc(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,0!==n&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-hc&&(e.match_length=Ec(e,n),e.match_length<=5&&(e.strategy===rc||3===e.match_length&&e.strstart-e.match_start>4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){r=e.strstart+e.lookahead-3,a=ju(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=r&&(e.ins_h=vc(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!==--e.prev_length);if(e.match_available=0,e.match_length=2,e.strstart++,a&&(yc(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(a=ju(e,0,e.window[e.strstart-1]),a&&yc(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(a=ju(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,t===qu?(yc(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(yc(e,!1),0===e.strm.avail_out)?1:2};function Cc(e,t,n,a,r){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=a,this.func=r}const Mc=[new Cc(0,0,0,0,Ic),new Cc(4,4,8,4,Uc),new Cc(4,5,16,8,Uc),new Cc(4,6,32,32,Uc),new Cc(4,4,16,16,Rc),new Cc(8,16,32,32,Rc),new Cc(8,16,128,128,Rc),new Cc(8,32,128,256,Rc),new Cc(32,128,258,1024,Rc),new Cc(32,258,258,4096,Rc)];function Bc(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=cc,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),bc(this.dyn_ltree),bc(this.dyn_dtree),bc(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),bc(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),bc(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const Nc=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==fc&&57!==t.status&&69!==t.status&&73!==t.status&&91!==t.status&&103!==t.status&&t.status!==mc&&t.status!==pc?1:0},Pc=e=>{if(Nc(e))return _c(e,ec);e.total_in=e.total_out=0,e.data_type=uc;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=2===t.wrap?57:t.wrap?fc:mc,e.adler=2===t.wrap?0:1,t.last_flush=-2,Ku(t),Zu},kc=e=>{const t=Pc(e);return t===Zu&&(e=>{e.window_size=2*e.w_size,bc(e.head),e.max_lazy_match=Mc[e.level].max_lazy,e.good_match=Mc[e.level].good_length,e.nice_match=Mc[e.level].nice_length,e.max_chain_length=Mc[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=2,e.match_available=0,e.ins_h=0})(e.state),t},Oc=(e,t,n,a,r,i)=>{if(!e)return ec;let s=1;if(t===ac&&(t=6),a<0?(s=0,a=-a):a>15&&(s=2,a-=16),r<1||r>9||n!==cc||a<8||a>15||t<0||t>9||i<0||i>lc||8===a&&1!==s)return _c(e,ec);8===a&&(a=9);const l=new Bc;return e.state=l,l.strm=e,l.status=fc,l.wrap=s,l.gzhead=null,l.w_bits=a,l.w_size=1<<l.w_bits,l.w_mask=l.w_size-1,l.hash_bits=r+7,l.hash_size=1<<l.hash_bits,l.hash_mask=l.hash_size-1,l.hash_shift=~~((l.hash_bits+3-1)/3),l.window=new Uint8Array(2*l.w_size),l.head=new Uint16Array(l.hash_size),l.prev=new Uint16Array(l.w_size),l.lit_bufsize=1<<r+6,l.pending_buf_size=4*l.lit_bufsize,l.pending_buf=new Uint8Array(l.pending_buf_size),l.sym_buf=l.lit_bufsize,l.sym_end=3*(l.lit_bufsize-1),l.level=t,l.strategy=i,l.method=n,kc(e)};var Dc=(e,t)=>{if(Nc(e)||t>Yu||t<0)return e?_c(e,ec):ec;const n=e.state;if(!e.output||0!==e.avail_in&&!e.input||n.status===pc&&t!==qu)return _c(e,0===e.avail_out?nc:ec);const a=n.last_flush;if(n.last_flush=t,0!==n.pending){if(Ac(e),0===e.avail_out)return n.last_flush=-1,Zu}else if(0===e.avail_in&&gc(t)<=gc(a)&&t!==qu)return _c(e,nc);if(n.status===pc&&0!==e.avail_in)return _c(e,nc);if(n.status===fc&&0===n.wrap&&(n.status=mc),n.status===fc){let t=cc+(n.w_bits-8<<4)<<8,a=-1;if(a=n.strategy>=ic||n.level<2?0:n.level<6?1:6===n.level?2:3,t|=a<<6,0!==n.strstart&&(t|=32),t+=31-t%31,Tc(n,t),0!==n.strstart&&(Tc(n,e.adler>>>16),Tc(n,65535&e.adler)),e.adler=1,n.status=mc,Ac(e),0!==n.pending)return n.last_flush=-1,Zu}if(57===n.status)if(e.adler=0,Sc(n,31),Sc(n,139),Sc(n,8),n.gzhead)Sc(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),Sc(n,255&n.gzhead.time),Sc(n,n.gzhead.time>>8&255),Sc(n,n.gzhead.time>>16&255),Sc(n,n.gzhead.time>>24&255),Sc(n,9===n.level?2:n.strategy>=ic||n.level<2?4:0),Sc(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(Sc(n,255&n.gzhead.extra.length),Sc(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=Fu(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69;else if(Sc(n,0),Sc(n,0),Sc(n,0),Sc(n,0),Sc(n,0),Sc(n,9===n.level?2:n.strategy>=ic||n.level<2?4:0),Sc(n,3),n.status=mc,Ac(e),0!==n.pending)return n.last_flush=-1,Zu;if(69===n.status){if(n.gzhead.extra){let t=n.pending,a=(65535&n.gzhead.extra.length)-n.gzindex;for(;n.pending+a>n.pending_buf_size;){let r=n.pending_buf_size-n.pending;if(n.pending_buf.set(n.gzhead.extra.subarray(n.gzindex,n.gzindex+r),n.pending),n.pending=n.pending_buf_size,n.gzhead.hcrc&&n.pending>t&&(e.adler=Fu(e.adler,n.pending_buf,n.pending-t,t)),n.gzindex+=r,Ac(e),0!==n.pending)return n.last_flush=-1,Zu;t=0,a-=r}let r=new Uint8Array(n.gzhead.extra);n.pending_buf.set(r.subarray(n.gzindex,n.gzindex+a),n.pending),n.pending+=a,n.gzhead.hcrc&&n.pending>t&&(e.adler=Fu(e.adler,n.pending_buf,n.pending-t,t)),n.gzindex=0}n.status=73}if(73===n.status){if(n.gzhead.name){let t,a=n.pending;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>a&&(e.adler=Fu(e.adler,n.pending_buf,n.pending-a,a)),Ac(e),0!==n.pending)return n.last_flush=-1,Zu;a=0}t=n.gzindex<n.gzhead.name.length?255&n.gzhead.name.charCodeAt(n.gzindex++):0,Sc(n,t)}while(0!==t);n.gzhead.hcrc&&n.pending>a&&(e.adler=Fu(e.adler,n.pending_buf,n.pending-a,a)),n.gzindex=0}n.status=91}if(91===n.status){if(n.gzhead.comment){let t,a=n.pending;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>a&&(e.adler=Fu(e.adler,n.pending_buf,n.pending-a,a)),Ac(e),0!==n.pending)return n.last_flush=-1,Zu;a=0}t=n.gzindex<n.gzhead.comment.length?255&n.gzhead.comment.charCodeAt(n.gzindex++):0,Sc(n,t)}while(0!==t);n.gzhead.hcrc&&n.pending>a&&(e.adler=Fu(e.adler,n.pending_buf,n.pending-a,a))}n.status=103}if(103===n.status){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&(Ac(e),0!==n.pending))return n.last_flush=-1,Zu;Sc(n,255&e.adler),Sc(n,e.adler>>8&255),e.adler=0}if(n.status=mc,Ac(e),0!==n.pending)return n.last_flush=-1,Zu}if(0!==e.avail_in||0!==n.lookahead||t!==$u&&n.status!==pc){let a=0===n.level?Ic(n,t):n.strategy===ic?((e,t)=>{let n;for(;;){if(0===e.lookahead&&(Lc(e),0===e.lookahead)){if(t===$u)return 1;break}if(e.match_length=0,n=ju(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(yc(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===qu?(yc(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(yc(e,!1),0===e.strm.avail_out)?1:2})(n,t):n.strategy===sc?((e,t)=>{let n,a,r,i;const s=e.window;for(;;){if(e.lookahead<=dc){if(Lc(e),e.lookahead<=dc&&t===$u)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(r=e.strstart-1,a=s[r],a===s[++r]&&a===s[++r]&&a===s[++r])){i=e.strstart+dc;do{}while(a===s[++r]&&a===s[++r]&&a===s[++r]&&a===s[++r]&&a===s[++r]&&a===s[++r]&&a===s[++r]&&a===s[++r]&&r<i);e.match_length=dc-(i-r),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(n=ju(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=ju(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(yc(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===qu?(yc(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(yc(e,!1),0===e.strm.avail_out)?1:2})(n,t):Mc[n.level].func(n,t);if(3!==a&&4!==a||(n.status=pc),1===a||3===a)return 0===e.avail_out&&(n.last_flush=-1),Zu;if(2===a&&(t===Ju?Xu(n):t!==Yu&&(Hu(n,0,0,!1),t===Wu&&(bc(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),Ac(e),0===e.avail_out))return n.last_flush=-1,Zu}return t!==qu?Zu:n.wrap<=0?Qu:(2===n.wrap?(Sc(n,255&e.adler),Sc(n,e.adler>>8&255),Sc(n,e.adler>>16&255),Sc(n,e.adler>>24&255),Sc(n,255&e.total_in),Sc(n,e.total_in>>8&255),Sc(n,e.total_in>>16&255),Sc(n,e.total_in>>24&255)):(Tc(n,e.adler>>>16),Tc(n,65535&e.adler)),Ac(e),n.wrap>0&&(n.wrap=-n.wrap),0!==n.pending?Zu:Qu)},Fc=(e,t)=>{let n=t.length;if(Nc(e))return ec;const a=e.state,r=a.wrap;if(2===r||1===r&&a.status!==fc||a.lookahead)return ec;if(1===r&&(e.adler=Ou(e.adler,t,n,0)),a.wrap=0,n>=a.w_size){0===r&&(bc(a.head),a.strstart=0,a.block_start=0,a.insert=0);let e=new Uint8Array(a.w_size);e.set(t.subarray(n-a.w_size,n),0),t=e,n=a.w_size}const i=e.avail_in,s=e.next_in,l=e.input;for(e.avail_in=n,e.next_in=0,e.input=t,Lc(a);a.lookahead>=3;){let e=a.strstart,t=a.lookahead-2;do{a.ins_h=vc(a,a.ins_h,a.window[e+3-1]),a.prev[e&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=e,e++}while(--t);a.strstart=e,a.lookahead=2,Lc(a)}return a.strstart+=a.lookahead,a.block_start=a.strstart,a.insert=a.lookahead,a.lookahead=0,a.match_length=a.prev_length=2,a.match_available=0,e.next_in=s,e.input=l,e.avail_in=i,a.wrap=r,Zu},Gc={deflateInit:(e,t)=>Oc(e,t,cc,15,8,oc),deflateInit2:Oc,deflateReset:kc,deflateResetKeep:Pc,deflateSetHeader:(e,t)=>Nc(e)||2!==e.state.wrap?ec:(e.state.gzhead=t,Zu),deflate:Dc,deflateEnd:e=>{if(Nc(e))return ec;const t=e.state.status;return e.state=null,t===mc?_c(e,tc):Zu},deflateSetDictionary:Fc,deflateInfo:"pako deflate (from Nodeca project)"};const Vc=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var Kc=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const n=t.shift();if(n){if("object"!=typeof n)throw new TypeError(n+"must be non-object");for(const t in n)Vc(n,t)&&(e[t]=n[t])}}return e},Hc=e=>{let t=0;for(let n=0,a=e.length;n<a;n++)t+=e[n].length;const n=new Uint8Array(t);for(let t=0,a=0,r=e.length;t<r;t++){let r=e[t];n.set(r,a),a+=r.length}return n};let zc=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){zc=!1}const jc=new Uint8Array(256);for(let e=0;e<256;e++)jc[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;jc[254]=jc[254]=1;var Xc=e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let t,n,a,r,i,s=e.length,l=0;for(r=0;r<s;r++)n=e.charCodeAt(r),55296==(64512&n)&&r+1<s&&(a=e.charCodeAt(r+1),56320==(64512&a)&&(n=65536+(n-55296<<10)+(a-56320),r++)),l+=n<128?1:n<2048?2:n<65536?3:4;for(t=new Uint8Array(l),i=0,r=0;i<l;r++)n=e.charCodeAt(r),55296==(64512&n)&&r+1<s&&(a=e.charCodeAt(r+1),56320==(64512&a)&&(n=65536+(n-55296<<10)+(a-56320),r++)),n<128?t[i++]=n:n<2048?(t[i++]=192|n>>>6,t[i++]=128|63&n):n<65536?(t[i++]=224|n>>>12,t[i++]=128|n>>>6&63,t[i++]=128|63&n):(t[i++]=240|n>>>18,t[i++]=128|n>>>12&63,t[i++]=128|n>>>6&63,t[i++]=128|63&n);return t},$c=(e,t)=>{const n=t||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,t));let a,r;const i=new Array(2*n);for(r=0,a=0;a<n;){let t=e[a++];if(t<128){i[r++]=t;continue}let s=jc[t];if(s>4)i[r++]=65533,a+=s-1;else{for(t&=2===s?31:3===s?15:7;s>1&&a<n;)t=t<<6|63&e[a++],s--;s>1?i[r++]=65533:t<65536?i[r++]=t:(t-=65536,i[r++]=55296|t>>10&1023,i[r++]=56320|1023&t)}}return((e,t)=>{if(t<65534&&e.subarray&&zc)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let n="";for(let a=0;a<t;a++)n+=String.fromCharCode(e[a]);return n})(i,r)},Jc=(e,t)=>{(t=t||e.length)>e.length&&(t=e.length);let n=t-1;for(;n>=0&&128==(192&e[n]);)n--;return n<0||0===n?t:n+jc[e[n]]>t?n:t};var Wc=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const qc=Object.prototype.toString,{Z_NO_FLUSH:Yc,Z_SYNC_FLUSH:Zc,Z_FULL_FLUSH:Qc,Z_FINISH:ed,Z_OK:td,Z_STREAM_END:nd,Z_DEFAULT_COMPRESSION:ad,Z_DEFAULT_STRATEGY:rd,Z_DEFLATED:id}=Vu;function sd(e){this.options=Kc({level:ad,method:id,chunkSize:16384,windowBits:15,memLevel:8,strategy:rd},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Wc,this.strm.avail_out=0;let n=Gc.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==td)throw new Error(Gu[n]);if(t.header&&Gc.deflateSetHeader(this.strm,t.header),t.dictionary){let e;if(e="string"==typeof t.dictionary?Xc(t.dictionary):"[object ArrayBuffer]"===qc.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,n=Gc.deflateSetDictionary(this.strm,e),n!==td)throw new Error(Gu[n]);this._dict_set=!0}}function ld(e,t){const n=new sd(t);if(n.push(e,!0),n.err)throw n.msg||Gu[n.err];return n.result}sd.prototype.push=function(e,t){const n=this.strm,a=this.options.chunkSize;let r,i;if(this.ended)return!1;for(i=t===~~t?t:!0===t?ed:Yc,"string"==typeof e?n.input=Xc(e):"[object ArrayBuffer]"===qc.call(e)?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;)if(0===n.avail_out&&(n.output=new Uint8Array(a),n.next_out=0,n.avail_out=a),(i===Zc||i===Qc)&&n.avail_out<=6)this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;else{if(r=Gc.deflate(n,i),r===nd)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),r=Gc.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===td;if(0!==n.avail_out){if(i>0&&n.next_out>0)this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;else if(0===n.avail_in)break}else this.onData(n.output)}return!0},sd.prototype.onData=function(e){this.chunks.push(e)},sd.prototype.onEnd=function(e){e===td&&(this.result=Hc(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var od={Deflate:sd,deflate:ld,deflateRaw:function(e,t){return(t=t||{}).raw=!0,ld(e,t)},gzip:function(e,t){return(t=t||{}).gzip=!0,ld(e,t)},constants:Vu};const ud=16209;var cd=function(e,t){let n,a,r,i,s,l,o,u,c,d,h,f,m,p,_,g,b,w,v,A,y,S,T,x;const E=e.state;n=e.next_in,T=e.input,a=n+(e.avail_in-5),r=e.next_out,x=e.output,i=r-(t-e.avail_out),s=r+(e.avail_out-257),l=E.dmax,o=E.wsize,u=E.whave,c=E.wnext,d=E.window,h=E.hold,f=E.bits,m=E.lencode,p=E.distcode,_=(1<<E.lenbits)-1,g=(1<<E.distbits)-1;e:do{f<15&&(h+=T[n++]<<f,f+=8,h+=T[n++]<<f,f+=8),b=m[h&_];t:for(;;){if(w=b>>>24,h>>>=w,f-=w,w=b>>>16&255,0===w)x[r++]=65535&b;else{if(!(16&w)){if(64&w){if(32&w){E.mode=16191;break e}e.msg="invalid literal/length code",E.mode=ud;break e}b=m[(65535&b)+(h&(1<<w)-1)];continue t}for(v=65535&b,w&=15,w&&(f<w&&(h+=T[n++]<<f,f+=8),v+=h&(1<<w)-1,h>>>=w,f-=w),f<15&&(h+=T[n++]<<f,f+=8,h+=T[n++]<<f,f+=8),b=p[h&g];;){if(w=b>>>24,h>>>=w,f-=w,w=b>>>16&255,16&w){if(A=65535&b,w&=15,f<w&&(h+=T[n++]<<f,f+=8,f<w&&(h+=T[n++]<<f,f+=8)),A+=h&(1<<w)-1,A>l){e.msg="invalid distance too far back",E.mode=ud;break e}if(h>>>=w,f-=w,w=r-i,A>w){if(w=A-w,w>u&&E.sane){e.msg="invalid distance too far back",E.mode=ud;break e}if(y=0,S=d,0===c){if(y+=o-w,w<v){v-=w;do{x[r++]=d[y++]}while(--w);y=r-A,S=x}}else if(c<w){if(y+=o+c-w,w-=c,w<v){v-=w;do{x[r++]=d[y++]}while(--w);if(y=0,c<v){w=c,v-=w;do{x[r++]=d[y++]}while(--w);y=r-A,S=x}}}else if(y+=c-w,w<v){v-=w;do{x[r++]=d[y++]}while(--w);y=r-A,S=x}for(;v>2;)x[r++]=S[y++],x[r++]=S[y++],x[r++]=S[y++],v-=3;v&&(x[r++]=S[y++],v>1&&(x[r++]=S[y++]))}else{y=r-A;do{x[r++]=x[y++],x[r++]=x[y++],x[r++]=x[y++],v-=3}while(v>2);v&&(x[r++]=x[y++],v>1&&(x[r++]=x[y++]))}break}if(64&w){e.msg="invalid distance code",E.mode=ud;break e}b=p[(65535&b)+(h&(1<<w)-1)]}}break}}while(n<a&&r<s);v=f>>3,n-=v,f-=v<<3,h&=(1<<f)-1,e.next_in=n,e.next_out=r,e.avail_in=n<a?a-n+5:5-(n-a),e.avail_out=r<s?s-r+257:257-(r-s),E.hold=h,E.bits=f};const dd=15,hd=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),fd=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),md=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),pd=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);var _d=(e,t,n,a,r,i,s,l)=>{const o=l.bits;let u,c,d,h,f,m,p=0,_=0,g=0,b=0,w=0,v=0,A=0,y=0,S=0,T=0,x=null;const E=new Uint16Array(16),L=new Uint16Array(16);let I,U,R,C=null;for(p=0;p<=dd;p++)E[p]=0;for(_=0;_<a;_++)E[t[n+_]]++;for(w=o,b=dd;b>=1&&0===E[b];b--);if(w>b&&(w=b),0===b)return r[i++]=20971520,r[i++]=20971520,l.bits=1,0;for(g=1;g<b&&0===E[g];g++);for(w<g&&(w=g),y=1,p=1;p<=dd;p++)if(y<<=1,y-=E[p],y<0)return-1;if(y>0&&(0===e||1!==b))return-1;for(L[1]=0,p=1;p<dd;p++)L[p+1]=L[p]+E[p];for(_=0;_<a;_++)0!==t[n+_]&&(s[L[t[n+_]]++]=_);if(0===e?(x=C=s,m=20):1===e?(x=hd,C=fd,m=257):(x=md,C=pd,m=0),T=0,_=0,p=g,f=i,v=w,A=0,d=-1,S=1<<w,h=S-1,1===e&&S>852||2===e&&S>592)return 1;for(;;){I=p-A,s[_]+1<m?(U=0,R=s[_]):s[_]>=m?(U=C[s[_]-m],R=x[s[_]-m]):(U=96,R=0),u=1<<p-A,c=1<<v,g=c;do{c-=u,r[f+(T>>A)+c]=I<<24|U<<16|R}while(0!==c);for(u=1<<p-1;T&u;)u>>=1;if(0!==u?(T&=u-1,T+=u):T=0,_++,0===--E[p]){if(p===b)break;p=t[n+s[_]]}if(p>w&&(T&h)!==d){for(0===A&&(A=w),f+=g,v=p-A,y=1<<v;v+A<b&&(y-=E[v+A],!(y<=0));)v++,y<<=1;if(S+=1<<v,1===e&&S>852||2===e&&S>592)return 1;d=T&h,r[d]=w<<24|v<<16|f-i}}return 0!==T&&(r[f+T]=p-A<<24|64<<16),l.bits=w,0};const{Z_FINISH:gd,Z_BLOCK:bd,Z_TREES:wd,Z_OK:vd,Z_STREAM_END:Ad,Z_NEED_DICT:yd,Z_STREAM_ERROR:Sd,Z_DATA_ERROR:Td,Z_MEM_ERROR:xd,Z_BUF_ERROR:Ed,Z_DEFLATED:Ld}=Vu,Id=16180,Ud=16190,Rd=16191,Cd=16192,Md=16194,Bd=16199,Nd=16200,Pd=16206,kd=16209,Od=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function Dd(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Fd=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<Id||t.mode>16211?1:0},Gd=e=>{if(Fd(e))return Sd;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=Id,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,vd},Vd=e=>{if(Fd(e))return Sd;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,Gd(e)},Kd=(e,t)=>{let n;if(Fd(e))return Sd;const a=e.state;return t<0?(n=0,t=-t):(n=5+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?Sd:(null!==a.window&&a.wbits!==t&&(a.window=null),a.wrap=n,a.wbits=t,Vd(e))},Hd=(e,t)=>{if(!e)return Sd;const n=new Dd;e.state=n,n.strm=e,n.window=null,n.mode=Id;const a=Kd(e,t);return a!==vd&&(e.state=null),a};let zd,jd,Xd=!0;const $d=e=>{if(Xd){zd=new Int32Array(512),jd=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(_d(1,e.lens,0,288,zd,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;_d(2,e.lens,0,32,jd,0,e.work,{bits:5}),Xd=!1}e.lencode=zd,e.lenbits=9,e.distcode=jd,e.distbits=5},Jd=(e,t,n,a)=>{let r;const i=e.state;return null===i.window&&(i.wsize=1<<i.wbits,i.wnext=0,i.whave=0,i.window=new Uint8Array(i.wsize)),a>=i.wsize?(i.window.set(t.subarray(n-i.wsize,n),0),i.wnext=0,i.whave=i.wsize):(r=i.wsize-i.wnext,r>a&&(r=a),i.window.set(t.subarray(n-a,n-a+r),i.wnext),(a-=r)?(i.window.set(t.subarray(n-a,n),0),i.wnext=a,i.whave=i.wsize):(i.wnext+=r,i.wnext===i.wsize&&(i.wnext=0),i.whave<i.wsize&&(i.whave+=r))),0};var Wd=(e,t)=>{let n,a,r,i,s,l,o,u,c,d,h,f,m,p,_,g,b,w,v,A,y,S,T=0;const x=new Uint8Array(4);let E,L;const I=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Fd(e)||!e.output||!e.input&&0!==e.avail_in)return Sd;n=e.state,n.mode===Rd&&(n.mode=Cd),s=e.next_out,r=e.output,o=e.avail_out,i=e.next_in,a=e.input,l=e.avail_in,u=n.hold,c=n.bits,d=l,h=o,S=vd;e:for(;;)switch(n.mode){case Id:if(0===n.wrap){n.mode=Cd;break}for(;c<16;){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}if(2&n.wrap&&35615===u){0===n.wbits&&(n.wbits=15),n.check=0,x[0]=255&u,x[1]=u>>>8&255,n.check=Fu(n.check,x,2,0),u=0,c=0,n.mode=16181;break}if(n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&u)<<8)+(u>>8))%31){e.msg="incorrect header check",n.mode=kd;break}if((15&u)!==Ld){e.msg="unknown compression method",n.mode=kd;break}if(u>>>=4,c-=4,y=8+(15&u),0===n.wbits&&(n.wbits=y),y>15||y>n.wbits){e.msg="invalid window size",n.mode=kd;break}n.dmax=1<<n.wbits,n.flags=0,e.adler=n.check=1,n.mode=512&u?16189:Rd,u=0,c=0;break;case 16181:for(;c<16;){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}if(n.flags=u,(255&n.flags)!==Ld){e.msg="unknown compression method",n.mode=kd;break}if(57344&n.flags){e.msg="unknown header flags set",n.mode=kd;break}n.head&&(n.head.text=u>>8&1),512&n.flags&&4&n.wrap&&(x[0]=255&u,x[1]=u>>>8&255,n.check=Fu(n.check,x,2,0)),u=0,c=0,n.mode=16182;case 16182:for(;c<32;){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}n.head&&(n.head.time=u),512&n.flags&&4&n.wrap&&(x[0]=255&u,x[1]=u>>>8&255,x[2]=u>>>16&255,x[3]=u>>>24&255,n.check=Fu(n.check,x,4,0)),u=0,c=0,n.mode=16183;case 16183:for(;c<16;){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}n.head&&(n.head.xflags=255&u,n.head.os=u>>8),512&n.flags&&4&n.wrap&&(x[0]=255&u,x[1]=u>>>8&255,n.check=Fu(n.check,x,2,0)),u=0,c=0,n.mode=16184;case 16184:if(1024&n.flags){for(;c<16;){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}n.length=u,n.head&&(n.head.extra_len=u),512&n.flags&&4&n.wrap&&(x[0]=255&u,x[1]=u>>>8&255,n.check=Fu(n.check,x,2,0)),u=0,c=0}else n.head&&(n.head.extra=null);n.mode=16185;case 16185:if(1024&n.flags&&(f=n.length,f>l&&(f=l),f&&(n.head&&(y=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(a.subarray(i,i+f),y)),512&n.flags&&4&n.wrap&&(n.check=Fu(n.check,a,f,i)),l-=f,i+=f,n.length-=f),n.length))break e;n.length=0,n.mode=16186;case 16186:if(2048&n.flags){if(0===l)break e;f=0;do{y=a[i+f++],n.head&&y&&n.length<65536&&(n.head.name+=String.fromCharCode(y))}while(y&&f<l);if(512&n.flags&&4&n.wrap&&(n.check=Fu(n.check,a,f,i)),l-=f,i+=f,y)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=16187;case 16187:if(4096&n.flags){if(0===l)break e;f=0;do{y=a[i+f++],n.head&&y&&n.length<65536&&(n.head.comment+=String.fromCharCode(y))}while(y&&f<l);if(512&n.flags&&4&n.wrap&&(n.check=Fu(n.check,a,f,i)),l-=f,i+=f,y)break e}else n.head&&(n.head.comment=null);n.mode=16188;case 16188:if(512&n.flags){for(;c<16;){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}if(4&n.wrap&&u!==(65535&n.check)){e.msg="header crc mismatch",n.mode=kd;break}u=0,c=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=Rd;break;case 16189:for(;c<32;){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}e.adler=n.check=Od(u),u=0,c=0,n.mode=Ud;case Ud:if(0===n.havedict)return e.next_out=s,e.avail_out=o,e.next_in=i,e.avail_in=l,n.hold=u,n.bits=c,yd;e.adler=n.check=1,n.mode=Rd;case Rd:if(t===bd||t===wd)break e;case Cd:if(n.last){u>>>=7&c,c-=7&c,n.mode=Pd;break}for(;c<3;){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}switch(n.last=1&u,u>>>=1,c-=1,3&u){case 0:n.mode=16193;break;case 1:if($d(n),n.mode=Bd,t===wd){u>>>=2,c-=2;break e}break;case 2:n.mode=16196;break;case 3:e.msg="invalid block type",n.mode=kd}u>>>=2,c-=2;break;case 16193:for(u>>>=7&c,c-=7&c;c<32;){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}if((65535&u)!=(u>>>16^65535)){e.msg="invalid stored block lengths",n.mode=kd;break}if(n.length=65535&u,u=0,c=0,n.mode=Md,t===wd)break e;case Md:n.mode=16195;case 16195:if(f=n.length,f){if(f>l&&(f=l),f>o&&(f=o),0===f)break e;r.set(a.subarray(i,i+f),s),l-=f,i+=f,o-=f,s+=f,n.length-=f;break}n.mode=Rd;break;case 16196:for(;c<14;){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}if(n.nlen=257+(31&u),u>>>=5,c-=5,n.ndist=1+(31&u),u>>>=5,c-=5,n.ncode=4+(15&u),u>>>=4,c-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=kd;break}n.have=0,n.mode=16197;case 16197:for(;n.have<n.ncode;){for(;c<3;){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}n.lens[I[n.have++]]=7&u,u>>>=3,c-=3}for(;n.have<19;)n.lens[I[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,E={bits:n.lenbits},S=_d(0,n.lens,0,19,n.lencode,0,n.work,E),n.lenbits=E.bits,S){e.msg="invalid code lengths set",n.mode=kd;break}n.have=0,n.mode=16198;case 16198:for(;n.have<n.nlen+n.ndist;){for(;T=n.lencode[u&(1<<n.lenbits)-1],_=T>>>24,g=T>>>16&255,b=65535&T,!(_<=c);){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}if(b<16)u>>>=_,c-=_,n.lens[n.have++]=b;else{if(16===b){for(L=_+2;c<L;){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}if(u>>>=_,c-=_,0===n.have){e.msg="invalid bit length repeat",n.mode=kd;break}y=n.lens[n.have-1],f=3+(3&u),u>>>=2,c-=2}else if(17===b){for(L=_+3;c<L;){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}u>>>=_,c-=_,y=0,f=3+(7&u),u>>>=3,c-=3}else{for(L=_+7;c<L;){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}u>>>=_,c-=_,y=0,f=11+(127&u),u>>>=7,c-=7}if(n.have+f>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=kd;break}for(;f--;)n.lens[n.have++]=y}}if(n.mode===kd)break;if(0===n.lens[256]){e.msg="invalid code -- missing end-of-block",n.mode=kd;break}if(n.lenbits=9,E={bits:n.lenbits},S=_d(1,n.lens,0,n.nlen,n.lencode,0,n.work,E),n.lenbits=E.bits,S){e.msg="invalid literal/lengths set",n.mode=kd;break}if(n.distbits=6,n.distcode=n.distdyn,E={bits:n.distbits},S=_d(2,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,E),n.distbits=E.bits,S){e.msg="invalid distances set",n.mode=kd;break}if(n.mode=Bd,t===wd)break e;case Bd:n.mode=Nd;case Nd:if(l>=6&&o>=258){e.next_out=s,e.avail_out=o,e.next_in=i,e.avail_in=l,n.hold=u,n.bits=c,cd(e,h),s=e.next_out,r=e.output,o=e.avail_out,i=e.next_in,a=e.input,l=e.avail_in,u=n.hold,c=n.bits,n.mode===Rd&&(n.back=-1);break}for(n.back=0;T=n.lencode[u&(1<<n.lenbits)-1],_=T>>>24,g=T>>>16&255,b=65535&T,!(_<=c);){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}if(g&&!(240&g)){for(w=_,v=g,A=b;T=n.lencode[A+((u&(1<<w+v)-1)>>w)],_=T>>>24,g=T>>>16&255,b=65535&T,!(w+_<=c);){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}u>>>=w,c-=w,n.back+=w}if(u>>>=_,c-=_,n.back+=_,n.length=b,0===g){n.mode=16205;break}if(32&g){n.back=-1,n.mode=Rd;break}if(64&g){e.msg="invalid literal/length code",n.mode=kd;break}n.extra=15&g,n.mode=16201;case 16201:if(n.extra){for(L=n.extra;c<L;){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}n.length+=u&(1<<n.extra)-1,u>>>=n.extra,c-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=16202;case 16202:for(;T=n.distcode[u&(1<<n.distbits)-1],_=T>>>24,g=T>>>16&255,b=65535&T,!(_<=c);){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}if(!(240&g)){for(w=_,v=g,A=b;T=n.distcode[A+((u&(1<<w+v)-1)>>w)],_=T>>>24,g=T>>>16&255,b=65535&T,!(w+_<=c);){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}u>>>=w,c-=w,n.back+=w}if(u>>>=_,c-=_,n.back+=_,64&g){e.msg="invalid distance code",n.mode=kd;break}n.offset=b,n.extra=15&g,n.mode=16203;case 16203:if(n.extra){for(L=n.extra;c<L;){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}n.offset+=u&(1<<n.extra)-1,u>>>=n.extra,c-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=kd;break}n.mode=16204;case 16204:if(0===o)break e;if(f=h-o,n.offset>f){if(f=n.offset-f,f>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=kd;break}f>n.wnext?(f-=n.wnext,m=n.wsize-f):m=n.wnext-f,f>n.length&&(f=n.length),p=n.window}else p=r,m=s-n.offset,f=n.length;f>o&&(f=o),o-=f,n.length-=f;do{r[s++]=p[m++]}while(--f);0===n.length&&(n.mode=Nd);break;case 16205:if(0===o)break e;r[s++]=n.length,o--,n.mode=Nd;break;case Pd:if(n.wrap){for(;c<32;){if(0===l)break e;l--,u|=a[i++]<<c,c+=8}if(h-=o,e.total_out+=h,n.total+=h,4&n.wrap&&h&&(e.adler=n.check=n.flags?Fu(n.check,r,h,s-h):Ou(n.check,r,h,s-h)),h=o,4&n.wrap&&(n.flags?u:Od(u))!==n.check){e.msg="incorrect data check",n.mode=kd;break}u=0,c=0}n.mode=16207;case 16207:if(n.wrap&&n.flags){for(;c<32;){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}if(4&n.wrap&&u!==(4294967295&n.total)){e.msg="incorrect length check",n.mode=kd;break}u=0,c=0}n.mode=16208;case 16208:S=Ad;break e;case kd:S=Td;break e;case 16210:return xd;default:return Sd}return e.next_out=s,e.avail_out=o,e.next_in=i,e.avail_in=l,n.hold=u,n.bits=c,(n.wsize||h!==e.avail_out&&n.mode<kd&&(n.mode<Pd||t!==gd))&&Jd(e,e.output,e.next_out,h-e.avail_out),d-=e.avail_in,h-=e.avail_out,e.total_in+=d,e.total_out+=h,n.total+=h,4&n.wrap&&h&&(e.adler=n.check=n.flags?Fu(n.check,r,h,e.next_out-h):Ou(n.check,r,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===Rd?128:0)+(n.mode===Bd||n.mode===Md?256:0),(0===d&&0===h||t===gd)&&S===vd&&(S=Ed),S},qd={inflateReset:Vd,inflateReset2:Kd,inflateResetKeep:Gd,inflateInit:e=>Hd(e,15),inflateInit2:Hd,inflate:Wd,inflateEnd:e=>{if(Fd(e))return Sd;let t=e.state;return t.window&&(t.window=null),e.state=null,vd},inflateGetHeader:(e,t)=>{if(Fd(e))return Sd;const n=e.state;return 2&n.wrap?(n.head=t,t.done=!1,vd):Sd},inflateSetDictionary:(e,t)=>{const n=t.length;let a,r,i;return Fd(e)?Sd:(a=e.state,0!==a.wrap&&a.mode!==Ud?Sd:a.mode===Ud&&(r=1,r=Ou(r,t,n,0),r!==a.check)?Td:(i=Jd(e,t,n,n),i?(a.mode=16210,xd):(a.havedict=1,vd)))},inflateInfo:"pako inflate (from Nodeca project)"};var Yd=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const Zd=Object.prototype.toString,{Z_NO_FLUSH:Qd,Z_FINISH:eh,Z_OK:th,Z_STREAM_END:nh,Z_NEED_DICT:ah,Z_STREAM_ERROR:rh,Z_DATA_ERROR:ih,Z_MEM_ERROR:sh}=Vu;function lh(e){this.options=Kc({chunkSize:65536,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(15&t.windowBits||(t.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Wc,this.strm.avail_out=0;let n=qd.inflateInit2(this.strm,t.windowBits);if(n!==th)throw new Error(Gu[n]);if(this.header=new Yd,qd.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=Xc(t.dictionary):"[object ArrayBuffer]"===Zd.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=qd.inflateSetDictionary(this.strm,t.dictionary),n!==th)))throw new Error(Gu[n])}function oh(e,t){const n=new lh(t);if(n.push(e),n.err)throw n.msg||Gu[n.err];return n.result}lh.prototype.push=function(e,t){const n=this.strm,a=this.options.chunkSize,r=this.options.dictionary;let i,s,l;if(this.ended)return!1;for(s=t===~~t?t:!0===t?eh:Qd,"[object ArrayBuffer]"===Zd.call(e)?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){for(0===n.avail_out&&(n.output=new Uint8Array(a),n.next_out=0,n.avail_out=a),i=qd.inflate(n,s),i===ah&&r&&(i=qd.inflateSetDictionary(n,r),i===th?i=qd.inflate(n,s):i===ih&&(i=ah));n.avail_in>0&&i===nh&&n.state.wrap>0&&0!==e[n.next_in];)qd.inflateReset(n),i=qd.inflate(n,s);switch(i){case rh:case ih:case ah:case sh:return this.onEnd(i),this.ended=!0,!1}if(l=n.avail_out,n.next_out&&(0===n.avail_out||i===nh))if("string"===this.options.to){let e=Jc(n.output,n.next_out),t=n.next_out-e,r=$c(n.output,e);n.next_out=t,n.avail_out=a-t,t&&n.output.set(n.output.subarray(e,e+t),0),this.onData(r)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(i!==th||0!==l){if(i===nh)return i=qd.inflateEnd(this.strm),this.onEnd(i),this.ended=!0,!0;if(0===n.avail_in)break}}return!0},lh.prototype.onData=function(e){this.chunks.push(e)},lh.prototype.onEnd=function(e){e===th&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=Hc(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var uh={Inflate:lh,inflate:oh,inflateRaw:function(e,t){return(t=t||{}).raw=!0,oh(e,t)},ungzip:oh,constants:Vu};const{Deflate:ch,deflate:dh,deflateRaw:hh,gzip:fh}=od,{Inflate:mh,inflate:ph,inflateRaw:_h,ungzip:gh}=uh;var bh=dh,wh=ph;class vh{constructor(e){this.ctype=0,this.outputPos=0,this.dsize_bits=0,this.dsize_mask=0,this.bit_buff=0,this.extra_bits=0,this.in_pos=0,this.out_buff=[],this.in_buff=e}}const Ah=new Uint8Array([2,4,4,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]),yh=new Uint8Array([3,13,5,25,9,17,1,62,30,46,14,54,22,38,6,58,26,42,10,50,18,34,66,2,124,60,92,28,108,44,76,12,116,52,84,20,100,36,68,4,120,56,88,24,104,40,72,8,240,112,176,48,208,80,144,16,224,96,160,32,192,64,128,0]),Sh=new Uint8Array([0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8]),Th=new Uint16Array([0,1,2,3,4,5,6,7,8,10,14,22,38,70,134,262]),xh=new Uint8Array([3,2,3,3,4,4,4,5,5,5,5,6,6,6,7,7]),Eh=new Uint8Array([5,3,1,6,10,2,12,20,4,24,8,48,16,32,64,0]),Lh=new Uint8Array([11,12,12,12,12,12,12,12,12,8,7,12,12,7,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,12,4,10,8,12,10,12,10,8,7,7,8,9,7,6,7,8,7,6,7,7,7,7,8,7,7,8,8,12,11,7,9,11,12,6,7,6,6,5,7,8,8,6,11,9,6,7,6,6,7,11,6,6,6,7,9,8,9,9,11,8,11,9,12,8,12,5,6,6,6,5,6,6,6,5,11,7,5,6,5,5,6,10,5,5,5,5,8,7,8,8,10,11,11,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,13,13,13,12,13,13,13,12,13,13,13,13,12,13,13,13,12,12,12,13,13,13,13,13,13,13,13,13,13,13]),Ih=new Uint16Array([1168,4064,2016,3040,992,3552,1504,2528,480,184,98,3808,1760,34,2784,736,3296,1248,2272,224,3936,1888,2912,864,3424,1376,4672,2400,352,3680,1632,2656,15,592,56,608,80,3168,912,216,66,2,88,432,124,41,60,152,92,9,28,108,44,76,24,12,116,232,104,1120,144,52,176,1808,2144,49,84,17,33,23,20,168,40,1,784,304,62,100,30,46,36,1296,14,54,22,68,48,200,464,208,272,72,1552,336,96,136,4e3,7,38,6,58,27,26,42,10,11,528,4,19,50,3,29,18,400,13,21,5,25,8,120,240,112,656,1040,16,1952,2976,928,576,7232,3136,5184,1088,6208,2112,4160,64,8064,3968,6016,1920,7040,2944,4992,896,7552,3456,5504,1408,6528,2432,4480,384,7808,3712,5760,1664,6784,2688,4736,640,7296,3200,5248,1152,6272,2176,4224,128,7936,3840,5888,1792,6912,2816,4864,3488,1440,2464,416,3744,1696,2720,672,3232,1184,2208,160,3872,1824,2848,800,3360,1312,2336,288,3616,1568,2592,544,3104,1056,2080,32,4032,1984,3008,960,3520,1472,2496,448,3776,1728,2752,704,3264,1216,2240,192,3904,1856,2880,832,768,3392,7424,3328,5376,1344,1280,6400,2304,2368,4352,256,7680,3584,320,5632,1536,6656,3648,1600,2624,2560,4608,512,7168,3072,5120,1024,6144,2048,4096,0]);let Uh=!1;const Rh=new Uint8Array(256),Ch=new Uint8Array(256);let Mh=!1;const Bh=new Uint8Array(256),Nh=new Uint8Array(256),Ph=new Uint8Array(128),kh=new Uint8Array(256);function Oh(e,t,n){for(let a=0,r=t.length;a<r;a++){const r=1<<n[a];for(let n=t[a];n<256;n+=r)e[n]=a}}function Dh(e,t){return t<=e.extra_bits?(e.extra_bits-=t,e.bit_buff>>=t,0):(e.bit_buff>>=e.extra_bits,e.in_pos===e.in_buff.byteLength?1:(e.bit_buff|=e.in_buff[e.in_pos++]<<8,e.bit_buff>>=t-e.extra_bits,e.extra_bits=e.extra_bits-t+8,0))}function Fh(e){if(1&e.bit_buff){if(Dh(e,1))return 774;let t,n=Ch[255&e.bit_buff];if(Dh(e,xh[n]))return 774;if(0!=(t=Sh[n])){const a=e.bit_buff&(1<<t)-1;if(Dh(e,t)&&n+a!=270)return 774;n=Th[n]+a}return n+256}if(Dh(e,1))return 774;if(0==e.ctype){const t=255&e.bit_buff;return Dh(e,8)?774:t}let t;if(255&e.bit_buff){if(t=Bh[255&e.bit_buff],255==t)if(63&e.bit_buff){if(Dh(e,4))return 774;t=Nh[255&e.bit_buff]}else{if(Dh(e,6))return 774;t=Ph[127&e.bit_buff]}}else{if(Dh(e,8))return 774;t=kh[255&e.bit_buff]}return Dh(e,Lh[t])?774:t}function Gh(e,t){const n=Rh[255&e.bit_buff];if(Dh(e,Ah[n]))return 0;let a;if(2==t){if(a=n<<2|3&e.bit_buff,Dh(e,2))return 0}else if(a=n<<e.dsize_bits|e.bit_buff&e.dsize_mask,Dh(e,e.dsize_bits))return 0;return a+1}function Vh(e){const t=new vh(e);if(t.in_buff.byteLength<=4)throw new Error("Bad data");if(t.ctype=t.in_buff[0],t.dsize_bits=t.in_buff[1],t.bit_buff=t.in_buff[2],t.extra_bits=0,t.in_pos=3,4>t.dsize_bits||t.dsize_bits>6)throw new Error("Invalid dictionary size");if(t.dsize_mask=65535>>16-t.dsize_bits,0!==t.ctype){if(1!==t.ctype)throw new Error("Invalid mode");Mh||(!function(){let e,t,n=255;for(let a=255;n>=0;n--,a--){const r=a;let i=Lh[r];if(i<=8){t=1<<i,e=Ih[n];do{Bh[e]=a,e+=t}while(e<256)}else if(0!=(e=255&Ih[n]))if(Bh[e]=255,63&Ih[n]){i-=4,Lh[r]=i,t=1<<i,e=Ih[n]>>4;do{Nh[e]=a,e+=t}while(e<256)}else{i-=6,Lh[r]=i,t=1<<i,e=Ih[n]>>6;do{Ph[e]=a,e+=t}while(e<128)}else{i-=8,Lh[r]=i,t=1<<i,e=Ih[n]>>8;do{kh[e]=a,e+=t}while(e<256)}}}(),Mh=!0)}if(Uh||(Oh(Ch,Eh,xh),Oh(Rh,yh,Ah),Uh=!0),774===function(e){let t;for(;(t=Fh(e))<773;)if(t>=256){let n,a=t-254;if(0==(n=Gh(e,a)))return 774;let r=e.outputPos,i=r-n;for(e.outputPos+=a;a-- >0;)e.out_buff[r++]=e.out_buff[i++]}else e.out_buff[e.outputPos++]=t;return t}(t))throw new Error("Error while expanding");return new Uint8Array(t.out_buff)}function Kh(e){let t=-1;for(let n=0,a=Math.ceil(e.byteLength/512);n<a;n++){const a=512*n;77===e[a]&&80===e[a+1]&&81===e[a+2]&&26===e[a+3]&&(t=a)}return t}function Hh(e){return 72===e[0]&&77===e[1]&&51===e[2]&&87===e[3]||-1!==Kh(e)}class zh{constructor(e,t,n,a,r){this.rawBuffer=null,this.buffer=null;const i=e.headerOffset;this.archive=e,this.c=e.c,this.name=`File${`${t.blockIndex}`.padStart(8,"0")}`,this.nameResolved=!1,this.hash=t,this.block=n,a&&(this.rawBuffer=a.slice(i+n.offset,i+n.offset+n.compressedSize)),r&&(this.buffer=r)}bytes(){return null===this.buffer&&this.decode(),this.buffer}arrayBuffer(){return this.bytes().buffer}text(){return Hs(this.bytes())}set(e){if(this.archive.readonly)return!1;const t=this.hash,n=this.block;return t.locale=0,t.platform=0,n.compressedSize=0,n.normalSize=e.byteLength,n.flags=0,this.buffer=e,this.rawBuffer=null,!0}delete(){if(this.archive.readonly)return!1;const e=this.archive,t=this.hash,n=t.blockIndex;t.delete();for(const t of e.hashTable.entries)t.blockIndex<Fo&&t.blockIndex>n&&(t.blockIndex-=1);return e.blockTable.entries.splice(n,1),e.files.splice(n,1),!0}rename(e){if(this.archive.readonly)return!1;const t=this.hash,n=t.locale,a=t.platform,r=t.blockIndex;t.delete();const i=this.archive.hashTable.add(e,r);return i.locale=n,i.platform=a,this.name=e,this.nameResolved=!0,this.hash=i,!0}decode(){if(!this.rawBuffer)throw new Error(`File ${this.name}: Nothing to decode`);const e=this.archive,t=this.block,n=e.c,a=n.computeFileKey(this.name,t),r=this.rawBuffer,i=t.flags;if(i===jo)this.buffer=r.slice(0,t.normalSize);else if(i&zo){let e;e=i&Ko?n.decryptBlock(r.slice(0,t.compressedSize),a):r.subarray(0,t.compressedSize),e=512&i?this.decompressSector(e,t.normalSize):e.slice(),this.buffer=e}else{const s=Math.ceil(t.normalSize/e.sectorSize),l=new Uint8Array(t.normalSize);let o=new Uint32Array(r.buffer,0,s+1);i&Ko&&(o=n.decryptBlock(o.slice(),a-1));let u=o[0],c=o[1],d=0;for(let h=0;h<s;h++){let f;if(f=i&Ko?n.decryptBlock(r.slice(u,c),a+h):r.subarray(u,c),512&i){let n=e.sectorSize;t.normalSize-d<n&&(n=t.normalSize-d),f=this.decompressSector(f,n)}256&i&&(f=Vh(f)),l.set(f,d),d+=f.byteLength,h<s&&(u=c,c=o[h+2])}this.buffer=l}e.readonly&&(this.rawBuffer=null)}decompressSector(e,t){if(e.byteLength===t)return e;{const t=e[0];if(16&t)throw new Error(`File ${this.name}: compression type 'bzip2' not supported`);if(8&t)try{e=Vh(e.subarray(1))}catch(e){throw new Error(`File ${this.name}: failed to decompress with 'explode': ${e}`)}if(2&t)try{e=wh(e.subarray(1))}catch(e){throw new Error(`File ${this.name}: failed to decompress with 'zlib': ${e}`)}if(1&t)throw new Error(`File ${this.name}: compression type 'huffman' not supported`);if(128&t)throw new Error(`File ${this.name}: compression type 'adpcm stereo' not supported`);if(64&t)throw new Error(`File ${this.name}: compression type 'adpcm mono' not supported`);return e}}encode(){if(null!==this.buffer&&null===this.rawBuffer){const e=this.buffer;if(Hh(e))this.rawBuffer=this.buffer,this.block.compressedSize=this.buffer.byteLength,this.block.flags=jo;else{const t=this.archive.sectorSize,n=Math.ceil(e.byteLength/t),a=new Uint32Array(n+1);let r=a.byteLength;const i=[],s=[];a[0]=r;for(let l=0;l<n;l++){const n=l*t;let o=e.subarray(n,n+t),u=o.byteLength;const c=bh(o);let d=!1;c.byteLength+1<u&&(o=c,u=c.byteLength+1,d=!0),r+=u,a[l+1]=r,i[l]=o,s[l]=d}if(r<e.byteLength){const e=new Uint8Array(r);e.set(new Uint8Array(a.buffer)),r=a.byteLength;for(let t=0;t<n;t++){s[t]&&(e[r]=2,r+=1);const n=i[t];e.set(n,r),r+=n.byteLength}this.rawBuffer=e,this.block.compressedSize=e.byteLength,this.block.flags=2147484160}else this.rawBuffer=this.buffer,this.block.compressedSize=this.buffer.byteLength,this.block.flags=jo}}}reEncrypt(e){if(!this.rawBuffer)return!1;const t=this.archive,n=this.block,a=t.c,r=this.rawBuffer,i=n.flags,s=a.computeFileKey(this.name,n);n.offset=e;const l=a.computeFileKey(this.name,n);if(i&zo)a.decryptBlock(r,s),a.encryptBlock(r,l);else{const e=Math.ceil(n.normalSize/t.sectorSize),i=new Uint32Array(r.buffer,0,e+1);a.decryptBlock(i,s-1);let o=i[0],u=i[1];for(let t=0;t<e;t++){const n=r.subarray(o,u);a.decryptBlock(n,s+t),a.encryptBlock(n,l+t),t<e&&(o=u,u=i[t+2])}a.encryptBlock(i,l-1)}return!0}offsetChanged(e){const t=this.block;return t.offset!==e&&t.flags&Ho?!!this.nameResolved&&this.reEncrypt(e):(t.offset=e,!0)}}class jh{constructor(){this.nameA=4294967295,this.nameB=4294967295,this.locale=65535,this.platform=65535,this.blockIndex=Go}load(e){const t=e[2];this.nameA=e[0],this.nameB=e[1],this.locale=65535&t,this.platform=t>>>16,this.blockIndex=e[3]}copy(e){this.nameA=e.nameA,this.nameB=e.nameB,this.locale=e.locale,this.platform=e.platform,this.blockIndex=e.blockIndex}save(e){e[0]=this.nameA,e[1]=this.nameB,e[2]=this.locale<<16|this.platform,e[3]=this.blockIndex}delete(){this.nameA=4294967295,this.nameB=4294967295,this.locale=65535,this.platform=65535,this.blockIndex=Fo}}class Xh{constructor(e){this.c=e,this.entries=[],this.addEmpties(4)}clear(){this.entries.length=0}addEmpties(e){for(let t=0;t<e;t++)this.entries.push(new jh)}getInsertionIndex(e){const t=this.entries,n=this.c.hash(e,0)&t.length-1;for(let e=0,a=t.length;e<a;e++){const r=(e+n)%a;if(65535===t[r].platform)return r}return-1}add(e,t){const n=this.getInsertionIndex(e);if(-1!==n){const a=this.entries[n];return a.nameA=this.c.hash(e,1),a.nameB=this.c.hash(e,2),a.locale=0,a.platform=0,a.blockIndex=t,a}}load(e){const t=e.byteLength/16,n=new Uint32Array(this.c.decryptBlock(e,Do).buffer);let a=0;this.clear(),this.addEmpties(t);for(const e of this.entries)e.load(n.subarray(a,a+4)),a+=4}save(e){const t=new Uint32Array(4*this.entries.length);let n=0;for(const e of this.entries)e.save(t.subarray(n,n+4)),n+=4;const a=new Uint8Array(t.buffer);this.c.encryptBlock(a,Do),e.set(a)}get(e){const t=this.c,n=this.entries,a=t.hash(e,0)&n.length-1,r=t.hash(e,1),i=t.hash(e,2);for(let e=0,t=n.length;e<t;e++){const s=n[(e+a)%t];if(r===s.nameA&&i===s.nameB)return s;if(4294967295===s.blockIndex)return null}return null}}class $h{constructor(){this.readonly=!1,this.headerOffset=0,this.sectorSize=4096,this.c=new Wo,this.hashTable=new Xh(this.c),this.blockTable=new Xo(this.c),this.files=[]}load(e,t=!1){const n=$s(e);this.readonly=t;const a=Kh(n);if(-1===a)throw new Error("No MPQ header");const r=new Uint32Array(n.buffer,a,8),i=r[3],s=bl(r[4]+a),l=bl(r[5]+a),o=r[6];let u=r[7];u>o&&(u=o),this.headerOffset=a,this.sectorSize=512*(1<<(i>>>16)),this.hashTable.load(n.slice(s,s+16*o)),this.blockTable.load(n.slice(l,l+16*u)),this.files.length=0;for(const e of this.hashTable.entries){const t=e.blockIndex;t<this.blockTable.entries.length&&(this.files[t]=new zh(this,e,this.blockTable.entries[t],n,null))}const c=this.get("(listfile)");if(c){const e=c.text();if(e)for(const t of e.split("\r\n"))this.get(t)}}save(){if(this.readonly)return null;const e=32;this.delete("(attributes)"),this.saveMemory(),this.set("(listfile)",this.getFileNames().join("\r\n"));let t=e;for(const e of this.files)if(e){if(!e.offsetChanged(t))return null;e.encode(),t+=e.block.compressedSize}const n=this.hashTable,a=this.blockTable,r=n.entries.length,i=a.entries.length,s=t-e,l=e+s+16*r+16*i,o=e+s,u=o+16*r,c=new Uint8Array(l),d=new Uint32Array(c.buffer,0,8);d[0]=441536589,d[1]=e,d[2]=l,d[3]=Math.log2(this.sectorSize/512)<<16,d[4]=o,d[5]=u,d[6]=r,d[7]=i,t=e;for(const e of this.files)e&&(e.rawBuffer&&c.set(e.rawBuffer,t),t+=e.block.compressedSize);return n.save(c.subarray(t,t+16*n.entries.length)),t+=16*n.entries.length,a.save(c.subarray(t,t+16*a.entries.length)),c}saveMemory(){if(this.readonly)return 0;const e=this.blockTable.entries,t=this.hashTable.entries;let n=e.length,a=0;for(;n--;){const r=e[n];if(0===r.normalSize)this.removeBlock(n),a+=r.compressedSize;else{let e=!1;for(const a of t)if(a.blockIndex===n){e=!0;break}e||(this.removeBlock(n),a+=r.compressedSize)}}return a}removeBlock(e){for(const t of this.hashTable.entries)t.blockIndex<Fo&&t.blockIndex>e&&(t.blockIndex-=1);this.blockTable.entries.splice(e,1)}getFileNames(){const e=[];for(const t of this.files)t&&""!==t.name&&e.push(t.name);return e}countUnresolved(){let e=0;for(const t of this.files)t.nameResolved||e++;return e}applyListfile(e){for(const t of e)this.get(t)}set(e,t){if(this.readonly)return!1;const n=$s(t);let a=this.get(e);if(a)a.set(n);else{const t=this.blockTable.entries.length,r=this.hashTable.add(e,t);if(!r)return!1;const i=this.blockTable.add(n);a=new zh(this,r,i,null,n),a.name=e,a.nameResolved=!0,this.files[t]=a}return!0}get(e){const t=this.hashTable.get(e);if(t){const n=t.blockIndex;if(n<Fo){const t=this.files[n];if(t)return t.name=e,t.nameResolved=!0,t}}return null}has(e){return!!this.get(e)}delete(e){if(this.readonly)return!1;const t=this.get(e);return!!t&&(t.delete(),!0)}rename(e,t){if(this.readonly)return!1;const n=this.get(e);return!!n&&(n.rename(t),!0)}resizeHashtable(e){if(this.readonly)return!1;e=Math.max(4,Is(e));const t=this.files;if(t.length>e)return!1;for(const e of t)if(!e.nameResolved)return!1;const n=this.hashTable,a=n.entries,r=a.slice();n.clear(),n.addEmpties(e);for(const e of r)if(e.blockIndex!==Go){const r=t[e.blockIndex];a[n.getInsertionIndex(r.name)].copy(e)}return!0}}const Jh={Archive:$h,Crypto:Wo,HashTable:Xh,Hash:jh,BlockTable:Xo,Block:Oo,File:zh,isArchive:Hh};class Wh{constructor(){this.isCustom=0,this.path=""}load(e){this.isCustom=e.readUint8(),this.path=e.readNull()}save(e){e.writeUint8(this.isCustom),e.writeNull(this.path)}getByteLength(){return 2+js(this.path)}}class qh{constructor(){this.version=1,this.entries=new Map}load(e){const t=new Al(e);this.version=t.readUint32();for(let e=0,n=t.readUint32();e<n;e++){const e=new Wh;e.load(t),e.isCustom?this.entries.set(e.path,e):this.entries.set(`war3mapimported\\${e.path}`,e)}}save(){const e=new Al(new ArrayBuffer(this.getByteLength()));e.writeUint32(this.version),e.writeUint32(this.entries.size);for(const t of this.entries.values())t.save(e);return e.uint8array}getByteLength(){let e=8;for(const t of this.entries.values())e+=t.getByteLength();return e}set(e){if(!this.entries.has(e)){const t=new Wh;return t.isCustom=10,t.path=e,this.entries.set(e,t),!0}return!1}has(e){return this.entries.has(e)}delete(e){return this.entries.delete(e)}rename(e,t){const n=this.entries.get(e);return!!n&&(n.isCustom=10,n.path=t,!0)}}class Yh{constructor(){this.id="\0\0\0\0",this.variableType=0,this.levelOrVariation=0,this.dataPointer=0,this.value=0,this.u1=0}load(e,t){if(this.id=e.readBinary(4),this.variableType=e.readInt32(),t&&(this.levelOrVariation=e.readInt32(),this.dataPointer=e.readInt32()),0===this.variableType)this.value=e.readInt32();else if(1===this.variableType||2===this.variableType)this.value=e.readFloat32();else{if(3!==this.variableType)throw new Error(`Modification: unknown variable type ${this.variableType}`);this.value=e.readNull()}this.u1=e.readInt32()}save(e,t){if(e.writeBinary(this.id),e.writeInt32(this.variableType),t&&(e.writeInt32(this.levelOrVariation),e.writeInt32(this.dataPointer)),0===this.variableType)e.writeInt32(this.value);else if(1===this.variableType||2===this.variableType)e.writeFloat32(this.value);else{if(3!==this.variableType)throw new Error(`Modification: unknown variable type ${this.variableType}`);e.writeNull(this.value)}e.writeInt32(this.u1)}getByteLength(e){let t=12;return e&&(t+=8),3===this.variableType?t+=js(this.value)+1:t+=4,t}}class Zh{constructor(){this.oldId="\0\0\0\0",this.newId="\0\0\0\0",this.sets=1,this.setsFlag=[],this.modifications=[]}load(e,t,n){this.oldId=e.readBinary(4),this.newId=e.readBinary(4),n>=3&&(this.sets=e.readUint32());for(let a=0;a<this.sets;a++){n>=3&&(this.setsFlag[a]=e.readUint32());for(let n=0,a=e.readUint32();n<a;n++){const a=new Yh;a.load(e,t),this.modifications[n]=a}}}save(e,t,n){"\0\0\0\0"!==this.oldId?e.writeBinary(this.oldId):e.writeUint32(0),"\0\0\0\0"!==this.newId?e.writeBinary(this.newId):e.writeUint32(0),n>=3&&e.writeUint32(this.sets),e.writeUint32(this.modifications.length);for(let a=0;a<this.sets;a++){n>=3&&e.writeUint32(this.setsFlag[a]);for(const n of this.modifications)n.save(e,t)}}getByteLength(e,t){let n=t>=3?16:12;for(let a=0;a<this.sets;a++){t>=3&&(n+=4);for(const t of this.modifications)n+=t.getByteLength(e)}return n}}class Qh{constructor(){this.objects=[]}load(e,t,n){for(let a=0,r=e.readUint32();a<r;a++){const r=new Zh;r.load(e,t,n),this.objects[a]=r}}save(e,t,n){e.writeUint32(this.objects.length);for(const a of this.objects)a.save(e,t,n)}getByteLength(e,t){let n=4;for(const a of this.objects)n+=a.getByteLength(e,t);return n}}class ef{constructor(){this.version=0,this.originalTable=new Qh,this.customTable=new Qh}load(e){let t;t=e instanceof Al?e:new Al(e),this.version=t.readInt32(),this.originalTable.load(t,!0,this.version),this.customTable.load(t,!0,this.version)}save(){const e=new Al(new ArrayBuffer(this.getByteLength()));return e.writeInt32(this.version),this.originalTable.save(e,!0,this.version),this.customTable.save(e,!0,this.version),e.uint8array}getByteLength(){return 4+this.originalTable.getByteLength(!0,this.version)+this.customTable.getByteLength(!0,this.version)}}class tf{constructor(){this.version=0,this.originalTable=new Qh,this.customTable=new Qh}load(e){let t;t=e instanceof Al?e:new Al(e),this.version=t.readInt32(),this.originalTable.load(t,!1,this.version),this.customTable.load(t,!1,this.version)}save(){const e=new Al(new ArrayBuffer(this.getByteLength()));return e.writeInt32(this.version),this.originalTable.save(e,!1,this.version),this.customTable.save(e,!1,this.version),e.uint8array}getByteLength(){return 4+this.originalTable.getByteLength(!1,this.version)+this.customTable.getByteLength(!1,this.version)}}class nf{constructor(){this.text=""}load(e){const t=e.readInt32();t&&(this.text=e.read(t-1),e.skip(1))}save(e){this.text.length?(e.writeInt32(js(this.text)+1),e.write(this.text),e.skip(1)):e.writeInt32(0)}getByteLength(){let e=4;return this.text.length&&(e+=js(this.text)+1),e}}class af{constructor(){this.version=0,this.comment="",this.trigger=new nf,this.triggers=[]}load(e){const t=new Al(e);this.version=t.readInt32(),1===this.version&&(this.comment=t.readNull(),this.trigger.load(t));for(let e=0,n=t.readUint32();e<n;e++){const n=new nf;n.load(t),this.triggers[e]=n}}save(){const e=new Al(new ArrayBuffer(this.getByteLength()));e.writeInt32(this.version),1===this.version&&(e.writeNull(this.comment),this.trigger.save(e)),e.writeUint32(this.triggers.length);for(const t of this.triggers)t.save(e);return e.uint8array}getByteLength(){let e=8;1===this.version&&(e+=js(this.comment)+1+this.trigger.getByteLength());for(const t of this.triggers)e+=t.getByteLength();return e}}class rf{constructor(){this.id=0,this.name="",this.isComment=0}load(e,t){this.id=e.readInt32(),this.name=e.readNull(),7===t&&(this.isComment=e.readInt32())}save(e,t){e.writeInt32(this.id),e.writeNull(this.name),7===t&&e.writeInt32(this.isComment)}getByteLength(e){let t=5+js(this.name);return 7===e&&(t+=4),t}}class sf{constructor(){this.name="",this.type="",this.u1=0,this.isArray=0,this.arraySize=0,this.isInitialized=0,this.initialValue=""}load(e,t){this.name=e.readNull(),this.type=e.readNull(),this.u1=e.readInt32(),this.isArray=e.readInt32(),7===t&&(this.arraySize=e.readInt32()),this.isInitialized=e.readInt32(),this.initialValue=e.readNull()}save(e,t){e.writeNull(this.name),e.writeNull(this.type),e.writeInt32(this.u1),e.writeInt32(this.isArray),7===t&&e.writeInt32(this.arraySize),e.writeInt32(this.isInitialized),e.writeNull(this.initialValue)}getByteLength(e){let t=15+js(this.name)+js(this.type)+js(this.initialValue);return 7===e&&(t+=4),t}}class lf{constructor(){this.type=0,this.name="",this.beginParameters=0,this.parameters=[]}load(e,t,n){if(this.type=e.readInt32(),this.type<0||this.type>3)throw new Error(`SubParameters: Bad type: ${this.type}`);if(this.name=e.readNull(),0===this.name.length)throw new Error("SubParameters: Empty name");if(this.beginParameters=e.readInt32(),this.beginParameters){const a=n.getFunction(this.type,this.name);if(!a)throw new Error(`SubParameters "${this.name}:${this.type}": Unknown signature`);for(let r=0,i=a.args.length;r<i;r++){const a=new of;try{a.load(e,t,n)}catch(e){throw new Error(`SubParameters "${this.name}": Parameter ${r}: ${e}`)}this.parameters[r]=a}}}save(e,t){e.writeInt32(this.type),e.writeNull(this.name),e.writeInt32(this.beginParameters);for(const n of this.parameters)n.save(e,t)}getByteLength(e){let t=9+js(this.name);if(this.parameters.length)for(const n of this.parameters)t+=n.getByteLength(e);return t}}class of{constructor(){this.type=0,this.value="",this.subParameters=null,this.u1=0,this.isArray=0,this.arrayIndex=null}load(e,t,n){if(this.type=e.readInt32(),this.type<-1||this.type>3)throw new Error(`Parameter: Bad type: ${this.type}`);if(this.value=e.readNull(),e.readInt32()){const a=new lf;try{a.load(e,t,n)}catch(e){throw new Error(`Parameter "${this.value}": SubParameters ${e}`)}this.subParameters=a}if((4===t&&2===this.type||7===t&&this.subParameters)&&(this.u1=e.readInt32()),(4===t&&2!==this.type||7===t)&&(this.isArray=e.readInt32()),this.isArray){const a=new of;try{a.load(e,t,n)}catch(e){throw new Error(`Parameter "${this.value}": ArrayIndex: ${e}`)}this.arrayIndex=a}}save(e,t){e.writeInt32(this.type),e.writeNull(this.value),this.subParameters?(e.writeInt32(1),this.subParameters.save(e,t)):e.writeInt32(0),(4===t&&2===this.type||7===t&&this.subParameters)&&e.writeInt32(this.u1),(4===t&&2!==this.type||7===t)&&e.writeInt32(this.isArray),this.isArray&&this.arrayIndex&&this.arrayIndex.save(e,t)}getByteLength(e){let t=9+js(this.value);return this.subParameters&&(t+=this.subParameters.getByteLength(e)),(4===e&&2===this.type||7===e&&this.subParameters)&&(t+=4),(4===e&&2!==this.type||7===e)&&(t+=4),this.isArray&&this.arrayIndex&&(t+=this.arrayIndex.getByteLength(e)),t}}class uf{constructor(){this.type=-1,this.group=-1,this.name="",this.isEnabled=0,this.parameters=[],this.ecas=[]}load(e,t,n,a){if(this.type=e.readInt32(),this.type<0||this.type>3)throw new Error(`ECA: Bad type: ${this.type}`);if(n&&(this.group=e.readUint32()),this.name=e.readNull(),0===this.name.length)throw new Error("ECA: Empty name");this.isEnabled=e.readInt32();const r=a.getFunction(this.type,this.name);if(!r)throw new Error(`ECA "${this.name}:${this.type}": Unknown signature`);for(let n=0,i=r.args.length;n<i;n++){const r=new of;try{r.load(e,t,a)}catch(e){throw new Error(`ECA "${this.name}": Parameter ${n}: ${e}`)}this.parameters[n]=r}if(7===t)for(let n=0,r=e.readUint32();n<r;n++){const r=new uf;try{r.load(e,t,!0,a)}catch(e){throw new Error(`ECA "${this.name}": Child ECA ${n} ${e}`)}this.ecas[n]=r}}save(e,t){e.writeInt32(this.type),-1!==this.group&&e.writeInt32(this.group),e.writeNull(this.name),e.writeInt32(this.isEnabled);for(const n of this.parameters)n.save(e,t);if(7===t){e.writeUint32(this.ecas.length);for(const n of this.ecas)n.save(e,t)}}getByteLength(e){let t=9+js(this.name);-1!==this.group&&(t+=4);for(const n of this.parameters)t+=n.getByteLength(e);if(7===e){t+=4;for(const n of this.ecas)t+=n.getByteLength(e)}return t}}class cf{constructor(){this.name="",this.description="",this.isComment=0,this.isEnabled=0,this.isCustom=0,this.isInitiallyOff=0,this.runOnInitialization=0,this.category=0,this.ecas=[]}load(e,t,n){this.name=e.readNull(),this.description=e.readNull(),7===t&&(this.isComment=e.readInt32()),this.isEnabled=e.readInt32(),this.isCustom=e.readInt32(),this.isInitiallyOff=e.readInt32(),this.runOnInitialization=e.readInt32(),this.category=e.readInt32();for(let a=0,r=e.readUint32();a<r;a++){const r=new uf;try{r.load(e,t,!1,n)}catch(e){throw new Error(`Trigger "${this.name}": ECA ${a}: ${e}`)}this.ecas[a]=r}}save(e,t){e.writeNull(this.name),e.writeNull(this.description),7===t&&e.writeInt32(this.isComment),e.writeInt32(this.isEnabled),e.writeInt32(this.isCustom),e.writeInt32(this.isInitiallyOff),e.writeInt32(this.runOnInitialization),e.writeInt32(this.category),e.writeUint32(this.ecas.length);for(const n of this.ecas)n.save(e,t)}getByteLength(e){let t=26+js(this.name)+js(this.description);7===e&&(t+=4);for(const n of this.ecas)t+=n.getByteLength(e);return t}}class df{constructor(){this.version=0,this.categories=[],this.u1=0,this.variables=[],this.triggers=[]}load(e,t){const n=new Al(e);if("WTG!"!==n.readBinary(4))throw new Error("Not a WTG file");this.version=n.readInt32();for(let e=0,t=n.readUint32();e<t;e++){const t=new rf;t.load(n,this.version),this.categories[e]=t}this.u1=n.readInt32();for(let e=0,t=n.readUint32();e<t;e++){const t=new sf;t.load(n,this.version),this.variables[e]=t}for(let e=0,a=n.readUint32();e<a;e++){const a=new cf;try{a.load(n,this.version,t)}catch(t){throw new Error(`Trigger ${e}: ${t}`)}this.triggers[e]=a}}save(){const e=new Al(new ArrayBuffer(this.getByteLength()));e.writeBinary("WTG!"),e.writeInt32(this.version),e.writeUint32(this.categories.length);for(const t of this.categories)t.save(e,this.version);e.writeInt32(this.u1),e.writeUint32(this.variables.length);for(const t of this.variables)t.save(e,this.version);e.writeUint32(this.triggers.length);for(const t of this.triggers)t.save(e,this.version);return e.uint8array}getByteLength(){let e=24;const t=this.version;for(const n of this.categories)e+=n.getByteLength(t);for(const n of this.variables)e+=n.getByteLength(t);for(const n of this.triggers)e+=n.getByteLength(t);return e}}class hf{constructor(){this.stringMap=new Map}load(e){const t=new to(e);let n;const a=e.indexOf("STRING");if(-1===a)throw new Error("Not a valid war3map.wts buffer");for(t.index=a;n=t.readToken();)if("STRING"===n){const n=t.readInt();t.read();const a=e.indexOf("}",t.index);if(-1===a)throw this.stringMap.set(n,e.slice(t.index,e.length).trim()),new Error(`WTS: missing data in string ${this.stringMap.size} (and maybe more)`);this.stringMap.set(n,e.slice(t.index,a).trim()),t.index=a}}save(){let e="";for(const[t,n]of this.stringMap)e+=`STRING ${t}\r\n{\r\n${n}\r\n}\r\n\r\n`;return e}getString(e){return"string"!=typeof e?this.stringMap.get(e):e.startsWith("TRIGSTR_")?this.stringMap.get(parseInt(e.slice(8))):void 0}setString(e,t){"string"==typeof e?e.startsWith("TRIGSTR_")&&this.stringMap.set(parseInt(e.slice(8)),t):this.stringMap.set(e,t)}}class ff{constructor(){this.flags=0,this.playerMasks=0,this.name=""}load(e){this.flags=e.readUint32(),this.playerMasks=e.readUint32(),this.name=e.readNull()}save(e){e.writeUint32(this.flags),e.writeUint32(this.playerMasks),e.writeNull(this.name)}getByteLength(){return 9+js(this.name)}}class mf{constructor(){this.id=0,this.type=0,this.race=0,this.isFixedStartPosition=0,this.name="",this.startLocation=new Float32Array(2),this.allyLowPriorities=0,this.allyHighPriorities=0,this.unknown1=new Uint8Array(8)}load(e,t){this.id=e.readInt32(),this.type=e.readInt32(),this.race=e.readInt32(),this.isFixedStartPosition=e.readInt32(),this.name=e.readNull(),e.readFloat32Array(this.startLocation),this.allyLowPriorities=e.readUint32(),this.allyHighPriorities=e.readUint32(),t>30&&e.readUint8Array(this.unknown1)}save(e,t){e.writeInt32(this.id),e.writeInt32(this.type),e.writeInt32(this.race),e.writeInt32(this.isFixedStartPosition),e.writeNull(this.name),e.writeFloat32Array(this.startLocation),e.writeUint32(this.allyLowPriorities),e.writeUint32(this.allyHighPriorities),t>30&&e.writeUint8Array(this.unknown1)}getByteLength(e){let t=33+js(this.name);return e>30&&(t+=8),t}}class pf{constructor(){this.chance=0,this.id="\0\0\0\0"}load(e){this.chance=e.readInt32(),this.id=e.readBinary(4)}save(e){e.writeInt32(this.chance),e.writeBinary(this.id)}}class _f{constructor(){this.items=[]}load(e){for(let t=0,n=e.readUint32();t<n;t++){const n=new pf;n.load(e),this.items[t]=n}}save(e){e.writeUint32(this.items.length);for(const t of this.items)t.save(e)}getByteLength(){return 4+8*this.items.length}}class gf{constructor(){this.id=0,this.name="",this.sets=[]}load(e){this.id=e.readInt32(),this.name=e.readNull();for(let t=0,n=e.readUint32();t<n;t++){const n=new _f;n.load(e),this.sets[t]=n}}save(e){e.writeInt32(this.id),e.writeNull(this.name),e.writeUint32(this.sets.length);for(const t of this.sets)t.save(e)}getByteLength(){let e=9+js(this.name);for(const t of this.sets)e+=t.getByteLength();return e}}class bf{constructor(){this.chance=0,this.ids=[]}load(e,t){this.chance=e.readInt32();for(let n=0;n<t;n++)this.ids[n]=e.readBinary(4)}save(e){e.writeInt32(this.chance);for(const t of this.ids)e.writeBinary(t)}}class wf{constructor(){this.id=0,this.name="",this.positions=0,this.columnTypes=new Int32Array(0),this.units=[]}load(e){this.id=e.readInt32(),this.name=e.readNull(),this.positions=e.readInt32(),this.columnTypes=e.readInt32Array(this.positions);for(let t=0,n=e.readUint32();t<n;t++){const n=new bf;n.load(e,this.positions),this.units[t]=n}}save(e){e.writeInt32(this.id),e.writeNull(this.name),e.writeInt32(this.positions),e.writeInt32Array(this.columnTypes),e.writeUint32(this.units.length);for(const t of this.units)t.save(e)}getByteLength(){return 13+js(this.name)+this.columnTypes.byteLength+this.units.length*(4+4*this.positions)}}class vf{constructor(){this.playerFlags=0,this.id="\0\0\0\0"}load(e){this.playerFlags=e.readUint32(),this.id=e.readBinary(4)}save(e){e.writeUint32(this.playerFlags),e.writeBinary(this.id)}}class Af{constructor(){this.playerFlags=0,this.id="\0\0\0\0",this.levelAffected=0,this.availability=0}load(e){this.playerFlags=e.readUint32(),this.id=e.readBinary(4),this.levelAffected=e.readInt32(),this.availability=e.readInt32()}save(e){e.writeUint32(this.playerFlags),e.writeBinary(this.id),e.writeInt32(this.levelAffected),e.writeInt32(this.availability)}}class yf{constructor(){this.version=0,this.saves=0,this.editorVersion=0,this.buildVersion=new Uint32Array(4),this.name="",this.author="",this.description="",this.recommendedPlayers="",this.cameraBounds=new Float32Array(8),this.cameraBoundsComplements=new Int32Array(4),this.playableSize=new Int32Array(2),this.flags=0,this.tileset="A",this.campaignBackground=0,this.loadingScreenModel="",this.loadingScreenText="",this.loadingScreenTitle="",this.loadingScreenSubtitle="",this.loadingScreen=0,this.prologueScreenModel="",this.prologueScreenText="",this.prologueScreenTitle="",this.prologueScreenSubtitle="",this.useTerrainFog=0,this.fogHeight=new Float32Array(2),this.fogDensity=0,this.fogColor=new Uint8Array(4),this.globalWeather=0,this.soundEnvironment="",this.lightEnvironmentTileset="\0",this.waterVertexColor=new Uint8Array(4),this.scriptMode=0,this.graphicsMode=0,this.defaultCameraZoom=0,this.maxCameraZoom=0,this.minCameraZoom=0,this.players=[],this.forces=[],this.upgradeAvailabilityChanges=[],this.techAvailabilityChanges=[],this.randomUnitTables=[],this.randomItemTables=[],this.unknown1=0}load(e){const t=new Al(e);this.version=t.readInt32(),this.saves=t.readInt32(),this.editorVersion=t.readInt32(),this.version>27&&t.readUint32Array(this.buildVersion),this.name=t.readNull(),this.author=t.readNull(),this.description=t.readNull(),this.recommendedPlayers=t.readNull(),t.readFloat32Array(this.cameraBounds),t.readInt32Array(this.cameraBoundsComplements),t.readInt32Array(this.playableSize),this.flags=t.readUint32(),this.tileset=t.readBinary(1),this.campaignBackground=t.readInt32(),this.version>24&&(this.loadingScreenModel=t.readNull()),this.loadingScreenText=t.readNull(),this.loadingScreenTitle=t.readNull(),this.loadingScreenSubtitle=t.readNull(),this.loadingScreen=t.readInt32(),this.version>24&&(this.prologueScreenModel=t.readNull()),this.prologueScreenText=t.readNull(),this.prologueScreenTitle=t.readNull(),this.prologueScreenSubtitle=t.readNull(),this.version>24&&(this.useTerrainFog=t.readInt32(),t.readFloat32Array(this.fogHeight),this.fogDensity=t.readFloat32(),t.readUint8Array(this.fogColor),this.globalWeather=t.readInt32(),this.soundEnvironment=t.readNull(),this.lightEnvironmentTileset=t.readBinary(1),t.readUint8Array(this.waterVertexColor)),this.version>27&&(this.scriptMode=t.readUint32()),this.version>30&&(this.graphicsMode=t.readUint32(),this.unknown1=t.readUint32()),this.version>32&&(this.defaultCameraZoom=t.readUint32(),this.maxCameraZoom=t.readUint32(),this.minCameraZoom=t.readUint32());for(let e=0,n=t.readInt32();e<n;e++){const n=new mf;n.load(t,this.version),this.players[e]=n}for(let e=0,n=t.readInt32();e<n;e++){const n=new ff;n.load(t),this.forces[e]=n}for(let e=0,n=t.readInt32();e<n;e++){const n=new Af;n.load(t),this.upgradeAvailabilityChanges[e]=n}for(let e=0,n=t.readInt32();e<n;e++){const n=new vf;n.load(t),this.techAvailabilityChanges[e]=n}for(let e=0,n=t.readInt32();e<n;e++){const n=new wf;n.load(t),this.randomUnitTables[e]=n}if(this.version>24)for(let e=0,n=t.readInt32();e<n;e++){const n=new gf;n.load(t),this.randomItemTables[e]=n}}save(){const e=new Al(new ArrayBuffer(this.getByteLength()));e.writeInt32(this.version),e.writeInt32(this.saves),e.writeInt32(this.editorVersion),this.version>27&&e.writeUint32Array(this.buildVersion),e.writeNull(this.name),e.writeNull(this.author),e.writeNull(this.description),e.writeNull(this.recommendedPlayers),e.writeFloat32Array(this.cameraBounds),e.writeInt32Array(this.cameraBoundsComplements),e.writeInt32Array(this.playableSize),e.writeUint32(this.flags),e.writeBinary(this.tileset),e.writeInt32(this.campaignBackground),this.version>24&&e.writeNull(this.loadingScreenModel),e.writeNull(this.loadingScreenText),e.writeNull(this.loadingScreenTitle),e.writeNull(this.loadingScreenSubtitle),e.writeInt32(this.loadingScreen),this.version>24&&e.writeNull(this.prologueScreenModel),e.writeNull(this.prologueScreenText),e.writeNull(this.prologueScreenTitle),e.writeNull(this.prologueScreenSubtitle),this.version>24&&(e.writeInt32(this.useTerrainFog),e.writeFloat32Array(this.fogHeight),e.writeFloat32(this.fogDensity),e.writeUint8Array(this.fogColor),e.writeInt32(this.globalWeather),e.writeNull(this.soundEnvironment),e.writeBinary(this.lightEnvironmentTileset),e.writeUint8Array(this.waterVertexColor)),this.version>27&&e.writeUint32(this.scriptMode),this.version>30&&(e.writeUint32(this.graphicsMode),e.writeUint32(this.unknown1)),this.version>32&&(e.writeUint32(this.defaultCameraZoom),e.writeUint32(this.maxCameraZoom),e.writeUint32(this.minCameraZoom)),e.writeUint32(this.players.length);for(const t of this.players)t.save(e,this.version);e.writeUint32(this.forces.length);for(const t of this.forces)t.save(e);e.writeUint32(this.upgradeAvailabilityChanges.length);for(const t of this.upgradeAvailabilityChanges)t.save(e);e.writeUint32(this.techAvailabilityChanges.length);for(const t of this.techAvailabilityChanges)t.save(e);e.writeUint32(this.randomUnitTables.length);for(const t of this.randomUnitTables)t.save(e);if(this.version>24){e.writeUint32(this.randomItemTables.length);for(const t of this.randomItemTables)t.save(e)}return e.uint8array}getByteLength(){let e=111+js(this.name)+js(this.author)+js(this.description)+js(this.recommendedPlayers)+js(this.loadingScreenText)+js(this.loadingScreenTitle)+js(this.loadingScreenSubtitle)+js(this.prologueScreenText)+js(this.prologueScreenTitle)+js(this.prologueScreenSubtitle);for(const t of this.players)e+=t.getByteLength(this.version);for(const t of this.forces)e+=t.getByteLength();e+=16*this.upgradeAvailabilityChanges.length,e+=8*this.techAvailabilityChanges.length;for(const t of this.randomUnitTables)e+=t.getByteLength();if(this.version>24){e+=36+js(this.loadingScreenModel)+js(this.prologueScreenModel)+js(this.soundEnvironment);for(const t of this.randomItemTables)e+=t.getByteLength()}return this.version>27&&(e+=20),this.version>30&&(e+=8),e}getBuildVersion(){return 100*this.buildVersion[0]+this.buildVersion[1]}}class Sf{constructor(){this.u1=0,this.name="",this.flags=0,this.maxPlayers=0,this.archive=new $h,this.imports=new qh,this.readonly=!1}load(e,t=!1){const n=new Al(e);"HM3W"===n.readBinary(4)&&(this.u1=n.readUint32(),this.name=n.readNull(),this.flags=n.readUint32(),this.maxPlayers=n.readUint32()),this.readonly=t,this.archive.load(e,t),this.readImports()}save(){this.setImportsFile();const e=this.archive.save();if(!e)throw Error("Failed to save the map MPQ archive");const t=this.getMapInformation();if(!t||t.getBuildVersion()<131){const t=new Uint8Array(512+e.byteLength),n=new Al(t);return n.writeBinary("HM3W"),n.writeUint32(this.u1),n.writeNull(this.name),n.writeUint32(this.flags),n.writeUint32(this.maxPlayers),t.set(e,512),t}return e}getFileNames(){return this.archive.getFileNames()}getImportNames(){const e=[];for(const t of this.imports.entries.values()){const n=t.isCustom;10===n||13===n?e.push(t.path):e.push(`war3mapImported\\${t.path}`)}return e}setImportsFile(){return!this.readonly&&(this.imports.entries.size>0&&this.set("war3map.imp",this.imports.save()))}import(e,t){return!this.readonly&&(!!this.archive.set(e,t)&&(this.imports.set(e),!0))}set(e,t){return!this.readonly&&this.archive.set(e,t)}get(e){return this.archive.get(e)}getScriptFile(){return this.get("war3map.j")||this.get("scripts\\war3map.j")||this.get("war3map.lua")||this.get("scripts\\war3map.lua")}has(e){return this.archive.has(e)}delete(e){return!this.readonly&&(this.imports.delete(e),this.archive.delete(e))}rename(e,t){return!this.readonly&&(!!this.archive.rename(e,t)&&(this.imports.rename(e,t),!0))}getMapInformation(){const e=this.archive.get("war3map.w3i");if(!e)throw new Error("File does not exist");const t=new yf;return t.load(e.bytes()),t}readImports(){const e=this.archive.get("war3map.imp");if(e){const t=e.arrayBuffer();t&&this.imports.load(t)}}readTriggers(e){const t=this.archive.get("war3map.wtg");if(t){const n=t.arrayBuffer();if(n){const t=new df;return t.load(n,e),t}}}readCustomTextTriggers(){const e=this.archive.get("war3map.wct");if(e){const t=e.arrayBuffer();if(t){const e=new af;return e.load(t),e}}}readStringTable(){const e=this.archive.get("war3map.wts");if(e){const t=e.text();if(t){const e=new hf;return e.load(t),e}}}readModifications(){const e={},t=["w3u","w3t","w3b","w3d","w3a","w3h","w3q"],n=[!1,!1,!1,!0,!0,!1,!0];for(let a=0,r=t.length;a<r;a++){const r=this.archive.get(`war3map.${t[a]}`);if(r){const i=r.arrayBuffer();if(i){let r;r=n[a]?new ef:new tf,r.load(i),e[t[a]]=r}}}return e}}class Tf{constructor(){this.id="\0\0\0\0",this.chance=0}load(e){this.id=e.readBinary(4),this.chance=e.readInt32()}save(e){e.writeBinary(this.id),e.writeInt32(this.chance)}}class xf{constructor(){this.items=[]}load(e){for(let t=0,n=e.readUint32();t<n;t++){const t=new Tf;t.load(e),this.items.push(t)}}save(e){e.writeUint32(this.items.length);for(const t of this.items)t.save(e)}getByteLength(){return 4+8*this.items.length}}class Ef{constructor(){this.id="\0\0\0\0",this.variation=0,this.location=new Float32Array(3),this.angle=0,this.scale=new Float32Array([1,1,1]),this.skin="\0\0\0\0",this.flags=0,this.life=0,this.itemTable=-1,this.itemSets=[],this.editorId=0,this.u1=new Uint8Array(8)}load(e,t,n){if(this.id=e.readBinary(4),this.variation=e.readInt32(),e.readFloat32Array(this.location),this.angle=e.readFloat32(),e.readFloat32Array(this.scale),n>131&&(this.skin=e.readBinary(4)),this.flags=e.readUint8(),this.life=e.readUint8(),t>7){this.itemTable=e.readUint32();for(let t=0,n=e.readUint32();t<n;t++){const t=new xf;t.load(e),this.itemSets.push(t)}}this.editorId=e.readInt32()}save(e,t,n){if(e.writeBinary(this.id),e.writeInt32(this.variation),e.writeFloat32Array(this.location),e.writeFloat32(this.angle),e.writeFloat32Array(this.scale),n>131&&e.writeBinary(this.skin),e.writeUint8(this.flags),e.writeUint8(this.life),t>7){e.writeUint32(this.itemTable),e.writeUint32(this.itemSets.length);for(const t of this.itemSets)t.save(e)}e.writeInt32(this.editorId)}getByteLength(e,t){let n=42;if(t>131&&(n+=4),e>7){n+=8;for(const e of this.itemSets)n+=e.getByteLength()}return n}}class Lf{constructor(){this.id="\0\0\0\0",this.u1=0,this.location=new Uint32Array(2)}load(e,t){this.id=e.readBinary(4),this.u1=e.readUint32(),e.readUint32Array(this.location)}save(e,t){e.writeBinary(this.id),e.writeUint32(this.u1),e.writeUint32Array(this.location)}}class If{constructor(){this.version=0,this.u1=new Uint8Array(4),this.doodads=[],this.u2=new Uint8Array(4),this.terrainDoodads=[]}load(e,t){const n=new Al(e);if("W3do"!==n.readBinary(4))throw new Error("Not a valid war3map.doo buffer");this.version=n.readInt32(),n.readUint8Array(this.u1);for(let e=0,a=n.readInt32();e<a;e++){const e=new Ef;e.load(n,this.version,t),this.doodads.push(e)}n.readUint8Array(this.u2);for(let e=0,t=n.readInt32();e<t;e++){const e=new Lf;e.load(n,this.version),this.terrainDoodads.push(e)}}save(e){const t=new Al(new ArrayBuffer(this.getByteLength(e)));t.writeBinary("W3do"),t.writeInt32(this.version),t.writeUint8Array(this.u1),t.writeUint32(this.doodads.length);for(const n of this.doodads)n.save(t,this.version,e);t.writeUint8Array(this.u2),t.writeUint32(this.terrainDoodads.length);for(const e of this.terrainDoodads)e.save(t,this.version);return t.uint8array}getByteLength(e){let t=24+16*this.terrainDoodads.length;for(const n of this.doodads)t+=n.getByteLength(this.version,e);return t}}const Uf={File:If,Doodad:Ef,RandomItemSet:xf,RandomItem:Tf,TerrainDoodad:Lf},Rf={File:qh,Import:Wh};class Cf{constructor(){this.type=0,this.location=new Int32Array(2),this.color=new Uint8Array(4)}load(e){this.type=e.readInt32(),e.readInt32Array(this.location),e.readUint8Array(this.color)}save(e){e.writeInt32(this.type),e.writeInt32Array(this.location),e.writeUint8Array(this.color)}}const Mf={File:class{constructor(){this.u1=0,this.icons=[]}load(e){const t=new Al(e);this.u1=t.readInt32();for(let e=0,n=t.readInt32();e<n;e++){const n=new Cf;n.load(t),this.icons[e]=n}}save(){const e=new Al(new ArrayBuffer(this.getByteLength()));e.writeInt32(this.u1),e.writeUint32(this.icons.length);for(const t of this.icons)t.save(e);return e.uint8array}getByteLength(){return 8+16*this.icons.length}},MinimapIcon:Cf};const Bf={File:class{constructor(){this.shadows=new Uint8Array(0)}load(e,t,n){this.shadows=new Uint8Array(e.slice(0,t*n*16))}save(){return this.shadows.slice()}getByteLength(){return this.shadows.length}}};class Nf{constructor(){this.targetLocation=new Float32Array(3),this.rotation=0,this.angleOfAttack=0,this.distance=0,this.roll=0,this.fieldOfView=0,this.farClippingPlane=0,this.nearClippingPlane=0,this.cinematicName="",this.localPitch=0,this.localYaw=0,this.localRoll=0}load(e,t){e.readFloat32Array(this.targetLocation),this.rotation=e.readFloat32(),this.angleOfAttack=e.readFloat32(),this.distance=e.readFloat32(),this.roll=e.readFloat32(),this.fieldOfView=e.readFloat32(),this.farClippingPlane=e.readFloat32(),this.nearClippingPlane=e.readFloat32(),this.cinematicName=e.readNull(),t>131&&(this.localPitch=e.readFloat32(),this.localYaw=e.readFloat32(),this.localRoll=e.readFloat32())}save(e,t){e.writeFloat32Array(this.targetLocation),e.writeFloat32(this.rotation),e.writeFloat32(this.angleOfAttack),e.writeFloat32(this.distance),e.writeFloat32(this.roll),e.writeFloat32(this.fieldOfView),e.writeFloat32(this.farClippingPlane),e.writeFloat32(this.nearClippingPlane),e.writeNull(this.cinematicName),t>131&&(e.writeFloat32(this.localPitch),e.writeFloat32(this.localYaw),e.writeFloat32(this.localRoll))}getByteLength(e){let t=41+js(this.cinematicName);return e>131&&(t+=12),t}}const Pf={File:class{constructor(){this.version=0,this.cameras=[]}load(e,t){const n=new Al(e);this.version=n.readInt32();for(let e=0,a=n.readUint32();e<a;e++){const a=new Nf;a.load(n,t),this.cameras[e]=a}}save(e){const t=new Al(new ArrayBuffer(this.getByteLength(e)));t.writeInt32(this.version),t.writeUint32(this.cameras.length);for(const n of this.cameras)n.save(t,e);return t.uint8array}getByteLength(e){let t=8;for(const n of this.cameras)t+=n.getByteLength(e);return t}},Camera:Nf},kf={File:ef};class Of{constructor(){this.groundHeight=0,this.waterHeight=0,this.mapEdge=0,this.ramp=0,this.blight=0,this.water=0,this.boundary=0,this.groundTexture=0,this.cliffVariation=0,this.groundVariation=0,this.cliffTexture=0,this.layerHeight=0}load(e){this.groundHeight=(e.readInt16()-8192)/512;const t=e.readInt16();this.waterHeight=((16383&t)-8192)/512,this.mapEdge=16384&t;const n=e.readUint8();this.ramp=16&n,this.blight=32&n,this.water=64&n,this.boundary=128&n,this.groundTexture=15&n;const a=e.readUint8();this.cliffVariation=(224&a)>>>5,this.groundVariation=31&a;const r=e.readUint8();this.cliffTexture=(240&r)>>>4,this.layerHeight=15&r}save(e){e.writeInt16(512*this.groundHeight+8192),e.writeInt16(512*this.waterHeight+8192+this.mapEdge<<14),e.writeUint8(this.ramp<<4|this.blight<<5|this.water<<6|this.boundary<<7|this.groundTexture),e.writeUint8(this.cliffVariation<<5|this.groundVariation),e.writeUint8((this.cliffTexture<<4)+this.layerHeight)}}class Df{constructor(){this.version=0,this.tileset="A",this.haveCustomTileset=0,this.groundTilesets=[],this.cliffTilesets=[],this.mapSize=new Int32Array(2),this.centerOffset=new Float32Array(2),this.corners=[]}load(e){const t=new Al(e);if("W3E!"===t.readBinary(4)){this.version=t.readInt32(),this.tileset=t.readBinary(1),this.haveCustomTileset=t.readInt32();for(let e=0,n=t.readInt32();e<n;e++)this.groundTilesets[e]=t.readBinary(4);for(let e=0,n=t.readInt32();e<n;e++)this.cliffTilesets[e]=t.readBinary(4);t.readInt32Array(this.mapSize),t.readFloat32Array(this.centerOffset);for(let e=0,n=this.mapSize[1];e<n;e++){this.corners[e]=[];for(let n=0,a=this.mapSize[0];n<a;n++){const a=new Of;a.load(t),this.corners[e][n]=a}}}}save(){const e=new Al(new ArrayBuffer(this.getByteLength()));e.writeBinary("W3E!"),e.writeInt32(this.version),e.writeBinary(this.tileset),e.writeInt32(this.haveCustomTileset),e.writeUint32(this.groundTilesets.length);for(const t of this.groundTilesets)e.writeBinary(t);e.writeUint32(this.cliffTilesets.length);for(const t of this.cliffTilesets)e.writeBinary(t);e.writeInt32Array(this.mapSize),e.writeFloat32Array(this.centerOffset);for(const t of this.corners)for(const n of t)n.save(e);return e.uint8array}getByteLength(){return 37+4*this.groundTilesets.length+4*this.cliffTilesets.length+this.mapSize[0]*this.mapSize[1]*7}}const Ff={File:Df,Corner:Of},Gf={File:yf,Player:mf,Force:ff,UpgradeAvailabilityChange:Af,TechAvailabilityChange:vf,RandomUnitTable:wf,RandomUnit:bf,RandomItemTable:gf,RandomItemSet:_f,RandomItem:pf};const Vf={File:class{constructor(){this.version=0,this.units=null,this.items=null,this.destructables=null,this.doodads=null,this.abilities=null,this.buffs=null,this.upgrades=null}load(e){const t=new Al(e);this.version=t.readInt32(),t.readInt32()&&(this.units=new tf,this.units.load(t)),t.readInt32()&&(this.items=new tf,this.items.load(t)),t.readInt32()&&(this.destructables=new tf,this.destructables.load(t)),t.readInt32()&&(this.doodads=new ef,this.doodads.load(t)),t.readInt32()&&(this.abilities=new ef,this.abilities.load(t)),t.readInt32()&&(this.buffs=new tf,this.buffs.load(t)),t.readInt32()&&(this.upgrades=new ef,this.upgrades.load(t))}save(){const e=new Al(new ArrayBuffer(this.getByteLength()));return e.writeInt32(this.version),this.units?(e.writeInt32(1),e.writeUint8Array(this.units.save())):e.writeInt32(0),this.items?(e.writeInt32(1),e.writeUint8Array(this.items.save())):e.writeInt32(0),this.destructables?(e.writeInt32(1),e.writeUint8Array(this.destructables.save())):e.writeInt32(0),this.doodads?(e.writeInt32(1),e.writeUint8Array(this.doodads.save())):e.writeInt32(0),this.abilities?(e.writeInt32(1),e.writeUint8Array(this.abilities.save())):e.writeInt32(0),this.buffs?(e.writeInt32(1),e.writeUint8Array(this.buffs.save())):e.writeInt32(0),this.upgrades?(e.writeInt32(1),e.writeUint8Array(this.upgrades.save())):e.writeInt32(0),e.uint8array}getByteLength(){let e=32;return this.units&&(e+=this.units.getByteLength()),this.items&&(e+=this.items.getByteLength()),this.destructables&&(e+=this.destructables.getByteLength()),this.doodads&&(e+=this.doodads.getByteLength()),this.abilities&&(e+=this.abilities.getByteLength()),this.buffs&&(e+=this.buffs.getByteLength()),this.upgrades&&(e+=this.upgrades.getByteLength()),e}}};class Kf{constructor(){this.left=0,this.right=0,this.bottom=0,this.top=0,this.name="",this.creationNumber=0,this.weatherEffectId="\0\0\0\0",this.ambientSound="",this.color=new Uint8Array(4)}load(e){this.left=e.readFloat32(),this.right=e.readFloat32(),this.bottom=e.readFloat32(),this.top=e.readFloat32(),this.name=e.readNull(),this.creationNumber=e.readUint32(),this.weatherEffectId=e.readBinary(4),this.ambientSound=e.readNull(),e.readUint8Array(this.color)}save(e){e.writeFloat32(this.left),e.writeFloat32(this.right),e.writeFloat32(this.bottom),e.writeFloat32(this.top),e.writeNull(this.name),e.writeUint32(this.creationNumber),this.weatherEffectId?e.writeBinary(this.weatherEffectId):e.writeUint32(0),e.writeNull(this.ambientSound),e.writeUint8Array(this.color)}getByteLength(){return 30+js(this.name)+js(this.ambientSound)}}const Hf={File:class{constructor(){this.version=0,this.regions=[]}load(e){const t=new Al(e);this.version=t.readInt32();for(let e=0,n=t.readUint32();e<n;e++){const n=new Kf;n.load(t),this.regions[e]=n}}save(){const e=new Al(new ArrayBuffer(this.getByteLength()));e.writeInt32(this.version),e.writeUint32(this.regions.length);for(const t of this.regions)t.save(e);return e.uint8array}getByteLength(){let e=8;for(const t of this.regions)e+=t.getByteLength();return e}},Region:Kf};class zf{constructor(){this.name="",this.file="",this.eaxEffect="",this.flags=0,this.fadeInRate=0,this.fadeOutRate=0,this.volume=0,this.pitch=0,this.pitchVariance=0,this.priority=0,this.channel=0,this.minDistance=0,this.maxDistance=0,this.distanceCutoff=0,this.coneInside=0,this.coneOutside=0,this.coneOutsideVolume=0,this.coneOrientationX=0,this.coneOrientationY=0,this.coneOrientationZ=0}load(e,t){this.name=e.readNull(),this.file=e.readNull(),this.eaxEffect=e.readNull(),this.flags=e.readUint32(),this.fadeInRate=e.readInt32(),this.fadeOutRate=e.readInt32(),this.volume=e.readInt32(),this.pitch=e.readFloat32(),this.pitchVariance=e.readFloat32(),this.priority=e.readInt32(),this.channel=e.readInt32(),this.minDistance=e.readFloat32(),this.maxDistance=e.readFloat32(),this.distanceCutoff=e.readFloat32(),this.coneInside=e.readFloat32(),this.coneOutside=e.readFloat32(),this.coneOutsideVolume=e.readInt32(),this.coneOrientationX=e.readFloat32(),this.coneOrientationY=e.readFloat32(),this.coneOrientationZ=e.readFloat32()}save(e,t){e.writeNull(this.name),e.writeNull(this.file),e.writeNull(this.eaxEffect),e.writeUint32(this.flags),e.writeUint32(this.fadeInRate),e.writeUint32(this.fadeOutRate),e.writeUint32(this.volume),e.writeFloat32(this.pitch),e.writeFloat32(this.pitchVariance),e.writeInt32(this.priority),e.writeInt32(this.channel),e.writeFloat32(this.minDistance),e.writeFloat32(this.maxDistance),e.writeFloat32(this.distanceCutoff),e.writeFloat32(this.coneInside),e.writeFloat32(this.coneOutside),e.writeInt32(this.coneOutsideVolume),e.writeFloat32(this.coneOrientationX),e.writeFloat32(this.coneOrientationY),e.writeFloat32(this.coneOrientationZ)}getByteLength(e){return 71+js(this.name)+js(this.file)+js(this.eaxEffect)}}class jf{constructor(){this.version=0,this.sounds=[]}load(e){const t=new Al(e);this.version=t.readInt32();for(let e=0,n=t.readUint32();e<n;e++){const n=new zf;n.load(t,this.version),this.sounds[e]=n}}save(){const e=new Al(new ArrayBuffer(this.getByteLength()));e.writeInt32(this.version),e.writeUint32(this.sounds.length);for(const t of this.sounds)t.save(e,this.version);return e.uint8array}getByteLength(){let e=8;for(const t of this.sounds)e+=t.getByteLength(this.version);return e}}const Xf={File:jf,Sound:zf},$f={File:tf,ModificationTable:Qh,ModificationObject:Zh,Modification:Yh},Jf={File:af,CustomTextTrigger:nf};const Wf={File:class{constructor(){this.version=0,this.size=new Int32Array(2),this.pathing=new Uint8Array(0)}load(e){const t=new Al(e);"MP3W"===t.readBinary(4)&&(this.version=t.readInt32(),t.readInt32Array(this.size),this.pathing=t.readUint8Array(this.size[0]*this.size[1]))}save(){const e=new Al(new ArrayBuffer(this.getByteLength()));return e.writeBinary("MP3W"),e.writeInt32(this.version),e.writeInt32Array(this.size),e.writeUint8Array(this.pathing),e.uint8array}getByteLength(){return 16+this.size[0]*this.size[1]}}};class qf{constructor(e){this.buffer=e,this.index=0}read(){const e=this.buffer,t=e.length;let n=!1,a=!1,r=!1,i="";for(;this.index<t;){const s=e[this.index++];if(n)"\n"===s&&(n=!1,this.index--);else if(a){if(i+="\\"===s?s+e[this.index++]:"\n"===s?"\\n":"\r"===s?"\\r":s,'"'===s)return i}else if(r){if(i+=s,"'"===s)return i}else if(" "===s||"\t"===s){if(i.length)return i}else if("("===s||")"===s||"["===s||"]"===s||"="===s||"\r"===s||"\n"===s||","===s||"!"===s||"-"===s||"<"===s||">"===s||"+"===s||"*"===s||"/"===s){if(i.length)return this.index--,i;{const t=e[this.index];if("="===s&&"="===t)return this.index++,"==";if("\r"===s)return"\n"===t&&this.index++,"\n";if("!"===s&&"="===t)return this.index++,"!=";if("/"!==s||"/"!==t)return s;if(i.length)return this.index--,i;n=!0}}else if('"'===s){if(i.length)return this.index--,i;i+=s,a=!0}else if("'"===s){if(i.length)return this.index--,i;i+=s,r=!0}else i+=s;if(this.index===t)return i}}peek(){const e=this.index,t=this.read();return this.index=e,t}readSafe(){const e=this.read();if(void 0===e)throw new Error("Premature end of stream reached");return"null"===e?"nil":"!="===e?"~=":"'"===e[0]?`${function(e){let t=0;for(const n of e)t=256*t+n.charCodeAt(0);return t}(e.slice(1,e.indexOf("'",1)))}`:"break"===e||"do"===e||"end"===e||"for"===e||"goto"===e||"in"===e||"nil"===e||"repeat"===e||"until"===e||"while"===e?e+"_":"and"===e||"or"===e?" "+e+" ":"$"===e[0]?"0x"+e.slice(1):e}readUntil(e){let t,n="";for(;(t=this.readSafe())!==e;)n+=t;return n}}const Yf={File:df,TriggerCategory:rf,Variable:sf,Trigger:cf,ECA:uf,Parameter:of,SubParameters:lf,TriggerData:class{constructor(){this.types={},this.functions=[{},{},{},{}],this.presets={},this.externalTypes={},this.externalFunctions=[{},{},{},{}],this.externalPresets={}}addTriggerData(e,t){let n=this.types,a=this.functions,r=this.presets;t&&(n=this.externalTypes,a=this.externalFunctions,r=this.externalPresets);const i=new Cl;i.load(e);let s=i.getSection("TriggerTypes");s&&this.addTriggerTypes(n,s),s=i.getSection("TriggerEvents"),s&&this.addTriggerDataFunctions(a[0],s,1),s=i.getSection("TriggerConditions"),s&&this.addTriggerDataFunctions(a[1],s,1),s=i.getSection("TriggerActions"),s&&this.addTriggerDataFunctions(a[2],s,1),s=i.getSection("TriggerCalls"),s&&this.addTriggerDataFunctions(a[3],s,3),s=i.getSection("TriggerParams"),s&&this.addTriggerDataPresets(r,s)}addTriggerTypes(e,t){for(const[n,a]of t){const t=a.split(",");e[n.toLowerCase()]=t[4]||""}}addTriggerDataFunctions(e,t,n){for(const[a,r]of t)if("_"!==a[0]){const i=r.split(","),s=[],l=t.get(`_${a}_scriptname`)||null;let o=null;3===n&&(o=i[2]);for(let e=n,t=i.length;e<t;e++){const t=i[e];Number.isNaN(parseFloat(t))&&"nothing"!==t&&""!==t&&s.push(t)}e[a.toLowerCase()]={args:s,scriptName:l,returnType:o}}}addTriggerDataPresets(e,t){for(const[n,a]of t){const t=a.split(",");e[n.toLowerCase()]=t[2].replace(/"/g,"").replace(/`/g,'"')}}addJassFunctions(e){const t=new qf(e);let n;for(;void 0!==(n=t.read());)if("native"===n||"function"===n){const e=t.read();if(e&&(n=t.read(),"takes"===n)){const n=[],a=t.readSafe();if("nothing"!==a)for(n.push(a),t.readSafe();","===t.read();)n.push(t.readSafe()),t.readSafe();else t.read();let r=t.readSafe();"nothing"===r&&(r=null);const i=e.toLowerCase(),s={args:n,scriptName:e,returnType:r};this.externalFunctions[2][i]=s,"nothing"!==r&&(this.externalFunctions[3][i]=s)}}}getBaseType(e){e=e.toLowerCase();let t=this.types[e];return void 0===t&&(t=this.externalTypes[e]),""===t||void 0===t?e:t}isBaseFunction(e,t){return t=t.toLowerCase(),!!this.functions[e][t]}getFunction(e,t){t=t.toLowerCase();let n=this.functions[e][t];return n||(n=this.externalFunctions[e][t]),n}getFunctionType(e){e=e.toLowerCase();const t=this.functions;for(let n=0;n<4;n++)if(t[n][e])return n;return-1}getPreset(e){e=e.toLowerCase();let t=this.presets[e];return void 0===t&&(t=this.externalPresets[e]),t}isCustomPreset(e){if(e=e.toLowerCase(),void 0!==this.presets[e])return!1;if(void 0!==this.externalPresets[e])return!0;throw new Error(`Failed to find a preset: ${e}`)}}},Zf={File:hf};class Qf{constructor(){this.id="\0\0\0\0",this.chance=0}load(e){this.id=e.readBinary(4),this.chance=e.readInt32()}save(e){e.writeBinary(this.id),e.writeInt32(this.chance)}}class em{constructor(){this.items=[]}load(e){for(let t=0,n=e.readInt32();t<n;t++){const n=new Qf;n.load(e),this.items[t]=n}}save(e){e.writeInt32(this.items.length);for(const t of this.items)t.save(e)}getByteLength(){return 4+8*this.items.length}}class tm{constructor(){this.slot=0,this.id="\0\0\0\0"}load(e){this.slot=e.readInt32(),this.id=e.readBinary(4)}save(e){e.writeInt32(this.slot),e.writeBinary(this.id)}}class nm{constructor(){this.id="\0\0\0\0",this.activeForAutocast=0,this.heroLevel=1}load(e){this.id=e.readBinary(4),this.activeForAutocast=e.readInt32(),this.heroLevel=e.readInt32()}save(e){e.writeBinary(this.id),e.writeInt32(this.activeForAutocast),e.writeInt32(this.heroLevel)}}class am{constructor(){this.id="\0\0\0\0",this.chance=0}load(e){this.id=e.readBinary(4),this.chance=e.readInt32()}save(e){e.writeBinary(this.id),e.writeInt32(this.chance)}}class rm{constructor(){this.id="\0\0\0\0",this.variation=0,this.location=new Float32Array(3),this.angle=0,this.scale=new Float32Array([1,1,1]),this.skin="\0\0\0\0",this.flags=0,this.player=0,this.unknown=0,this.hitpoints=-1,this.mana=-1,this.droppedItemTable=0,this.droppedItemSets=[],this.goldAmount=0,this.targetAcquisition=0,this.heroLevel=0,this.heroStrength=0,this.heroAgility=0,this.heroIntelligence=0,this.itemsInInventory=[],this.modifiedAbilities=[],this.randomFlag=0,this.level=new Uint8Array(3),this.itemClass=0,this.unitGroup=0,this.positionInGroup=0,this.randomUnitTables=[],this.customTeamColor=0,this.waygate=0,this.creationNumber=0}load(e,t,n,a){this.id=e.readBinary(4),this.variation=e.readInt32(),e.readFloat32Array(this.location),this.angle=e.readFloat32(),e.readFloat32Array(this.scale),a>131&&(this.skin=e.readBinary(4)),this.flags=e.readUint8(),this.player=e.readInt32(),this.unknown=e.readUint16(),this.hitpoints=e.readInt32(),this.mana=e.readInt32(),n>10&&(this.droppedItemTable=e.readInt32());for(let t=0,n=e.readInt32();t<n;t++){const n=new em;n.load(e),this.droppedItemSets[t]=n}this.goldAmount=e.readInt32(),this.targetAcquisition=e.readFloat32(),this.heroLevel=e.readInt32(),n>10&&(this.heroStrength=e.readInt32(),this.heroAgility=e.readInt32(),this.heroIntelligence=e.readInt32());for(let t=0,n=e.readInt32();t<n;t++){const n=new tm;n.load(e),this.itemsInInventory[t]=n}for(let t=0,n=e.readInt32();t<n;t++){const n=new nm;n.load(e),this.modifiedAbilities[t]=n}if(this.randomFlag=e.readInt32(),0===this.randomFlag)e.readUint8Array(this.level),this.itemClass=e.readUint8();else if(1===this.randomFlag)this.unitGroup=e.readUint32(),this.positionInGroup=e.readUint32();else if(2===this.randomFlag)for(let t=0,n=e.readInt32();t<n;t++){const n=new am;n.load(e),this.randomUnitTables[t]=n}this.customTeamColor=e.readInt32(),this.waygate=e.readInt32(),this.creationNumber=e.readInt32()}save(e,t,n,a){e.writeBinary(this.id),e.writeInt32(this.variation),e.writeFloat32Array(this.location),e.writeFloat32(this.angle),e.writeFloat32Array(this.scale),a>131&&e.writeBinary(this.skin),e.writeUint8(this.flags),e.writeInt32(this.player),e.writeUint16(this.unknown),e.writeInt32(this.hitpoints),e.writeInt32(this.mana),n>10&&e.writeInt32(this.droppedItemTable),e.writeInt32(this.droppedItemSets.length);for(const t of this.droppedItemSets)t.save(e);e.writeInt32(this.goldAmount),e.writeFloat32(this.targetAcquisition),e.writeInt32(this.heroLevel),n>10&&(e.writeInt32(this.heroStrength),e.writeInt32(this.heroAgility),e.writeInt32(this.heroIntelligence)),e.writeInt32(this.itemsInInventory.length);for(const t of this.itemsInInventory)t.save(e);e.writeInt32(this.modifiedAbilities.length);for(const t of this.modifiedAbilities)t.save(e);if(e.writeInt32(this.randomFlag),0===this.randomFlag)e.writeUint8Array(this.level),e.writeUint8(this.itemClass);else if(1===this.randomFlag)e.writeUint32(this.unitGroup),e.writeUint32(this.positionInGroup);else if(2===this.randomFlag){e.writeInt32(this.randomUnitTables.length);for(const t of this.randomUnitTables)t.save(e)}e.writeInt32(this.customTeamColor),e.writeInt32(this.waygate),e.writeInt32(this.creationNumber)}getByteLength(e,t,n){let a=91;n>131&&(a+=4),t>10&&(a+=16);for(const e of this.droppedItemSets)a+=e.getByteLength();return a+=8*this.itemsInInventory.length,a+=12*this.modifiedAbilities.length,0===this.randomFlag?a+=4:1===this.randomFlag?a+=8:2===this.randomFlag&&(a+=4+8*this.randomUnitTables.length),a}}class im{constructor(){this.version=8,this.subversion=11,this.units=[]}load(e,t){const n=new Al(e);if("W3do"!==n.readBinary(4))throw new Error("Not a valid war3mapUnits.doo buffer");this.version=n.readInt32(),this.subversion=n.readUint32();for(let e=0,a=n.readInt32();e<a;e++){const a=new rm;a.load(n,this.version,this.subversion,t),this.units[e]=a}}save(e){const t=new Al(new ArrayBuffer(this.getByteLength(e)));t.writeBinary("W3do"),t.writeInt32(this.version),t.writeUint32(this.subversion),t.writeInt32(this.units.length);for(const n of this.units)n.save(t,this.version,this.subversion,e);return t.uint8array}getByteLength(e){let t=16;for(const n of this.units)t+=n.getByteLength(this.version,this.subversion,e);return t}}const sm={File:im,Unit:rm,DroppedItemSet:em,DroppedItem:Qf,InventoryItem:tm,ModifiedAbility:nm,RandomUnit:am};class lm{constructor(){this.visible=0,this.chapterTitle="",this.mapTitle="",this.path=""}load(e){this.visible=e.readInt32(),this.chapterTitle=e.readNull(),this.mapTitle=e.readNull(),this.path=e.readNull()}save(e){e.writeInt32(this.visible),e.writeNull(this.chapterTitle),e.writeNull(this.mapTitle),e.writeNull(this.path)}getByteLength(){return 7+js(this.chapterTitle)+js(this.mapTitle)+js(this.path)}}class om{constructor(){this.u1=0,this.path=""}load(e){this.u1=e.readInt8(),this.path=e.readNull()}save(e){e.writeInt8(this.u1),e.writeNull(this.path)}getByteLength(){return 2+js(this.path)}}const um={File:class{constructor(){this.version=0,this.campaignVersion=0,this.editorVersion=0,this.name="",this.difficulty="",this.author="",this.description="",this.mode=-1,this.backgroundScreen=-1,this.backgroundScreenPath="",this.minimapImagePath="",this.ambientSound=0,this.ambientSoundPath="",this.terrainFog=0,this.fogStartZ=0,this.fogEndZ=0,this.fogDensity=0,this.fogColor=new Uint8Array(4),this.userInterface=-1,this.mapTitles=[],this.mapOrders=[]}load(e){const t=new Al(e);this.version=t.readInt32(),this.campaignVersion=t.readInt32(),this.editorVersion=t.readInt32(),this.name=t.readNull(),this.difficulty=t.readNull(),this.author=t.readNull(),this.description=t.readNull(),this.mode=t.readInt32(),this.backgroundScreen=t.readInt32(),this.backgroundScreenPath=t.readNull(),this.minimapImagePath=t.readNull(),this.ambientSound=t.readInt32(),this.ambientSoundPath=t.readNull(),this.terrainFog=t.readInt32(),this.fogStartZ=t.readFloat32(),this.fogEndZ=t.readFloat32(),this.fogDensity=t.readFloat32(),t.readUint8Array(this.fogColor),this.userInterface=t.readInt32();for(let e=0,n=t.readUint32();e<n;e++){const n=new lm;n.load(t),this.mapTitles[e]=n}for(let e=0,n=t.readUint32();e<n;e++){const n=new om;n.load(t),this.mapOrders[e]=n}}save(){const e=new Al(new ArrayBuffer(this.getByteLength()));e.writeInt32(this.version),e.writeInt32(this.campaignVersion),e.writeInt32(this.editorVersion),e.writeNull(this.name),e.writeNull(this.difficulty),e.writeNull(this.author),e.writeNull(this.description),e.writeInt32(this.mode),e.writeInt32(this.backgroundScreen),e.writeNull(this.backgroundScreenPath),e.writeNull(this.minimapImagePath),e.writeInt32(this.ambientSound),e.writeNull(this.ambientSoundPath),e.writeInt32(this.terrainFog),e.writeFloat32(this.fogStartZ),e.writeFloat32(this.fogEndZ),e.writeFloat32(this.fogDensity),e.writeUint8Array(this.fogColor),e.writeInt32(this.userInterface),e.writeUint32(this.mapTitles.length);for(const t of this.mapTitles)t.save(e);e.writeUint32(this.mapOrders.length);for(const t of this.mapOrders)t.save(e);return e.uint8array}getByteLength(){let e=63+js(this.name)+js(this.difficulty)+js(this.author)+js(this.description)+js(this.backgroundScreenPath)+js(this.minimapImagePath)+js(this.ambientSoundPath);for(const t of this.mapTitles)e+=t.getByteLength();for(const t of this.mapOrders)e+=t.getByteLength();return e}},MapTitle:lm,MapOrder:om},cm={Map:Sf,doo:Uf,imp:Rf,mmp:Mf,shd:Bf,w3c:Pf,w3d:kf,w3e:Ff,w3i:Gf,w3o:Vf,w3r:Hf,w3s:Xf,w3u:$f,wct:Jf,wpm:Wf,wtg:Yf,wts:Zf,unitsdoo:sm,w3f:um};function dm(e,t){return((1<<t)-1)/((1<<e)-1)}const hm="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},fm=function(){function e(e){this.message="JPEG error: "+e}return e.prototype=new Error,e.prototype.name="JpegError",e.constructor=e,e}(),mm=new Uint8Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),pm=4017,_m=799,gm=3406,bm=2276,wm=1567,vm=3784,Am=5793,ym=2896;function Sm(e,t){let n,a,r=0,i=[],s=16;for(;s>0&&!e[s-1];)s--;i.push({children:[],index:0});let l,o=i[0];for(n=0;n<s;n++){for(a=0;a<e[n];a++){for(o=i.pop(),o.children[o.index]=t[r];o.index>0;)o=i.pop();for(o.index++,i.push(o);i.length<=n;)i.push(l={children:[],index:0}),o.children[o.index]=l.children,o=l;r++}n+1<s&&(i.push(l={children:[],index:0}),o.children[o.index]=l.children,o=l)}return i[0].children}function Tm(e,t,n){return 64*((e.blocksPerLine+1)*t+n)}function xm(e,t,n,a,r,i,s,l,o){const u=n.mcusPerLine,c=n.progressive;let d=t,h=0,f=0;function m(){if(f>0)return f--,h>>f&1;if(h=e[t++],255===h){const n=e[t++];if(n)throw new fm("unexpected marker "+(h<<8|n).toString(16))}return f=7,h>>>7}function p(e){let t=e;for(;;){if(t=t[m()],"number"==typeof t)return t;if("object"!==(void 0===t?"undefined":hm(t)))throw new fm("invalid huffman sequence")}}function _(e){let t=0;for(;e>0;)t=t<<1|m(),e--;return t}function g(e){if(1===e)return 1===m()?1:-1;const t=_(e);return t>=1<<e-1?t:t+(-1<<e)+1}let b=0;let w,v=0;function A(e,t,n,a,r){const i=n%u;t(e,Tm(e,(n/u|0)*e.v+a,i*e.h+r))}function y(e,t,n){t(e,Tm(e,n/e.blocksPerLine|0,n%e.blocksPerLine))}const S=a.length;let T,x,E,L,I,U;U=c?0===i?0===l?function(e,t){const n=p(e.huffmanTableDC),a=0===n?0:g(n)<<o;e.blockData[t]=e.pred+=a}:function(e,t){e.blockData[t]|=m()<<o}:0===l?function(e,t){if(b>0)return void b--;let n=i,a=s;for(;n<=a;){const a=p(e.huffmanTableAC),r=15&a,i=a>>4;if(0===r){if(i<15){b=_(i)+(1<<i)-1;break}n+=16;continue}n+=i;const s=mm[n];e.blockData[t+s]=g(r)*(1<<o),n++}}:function(e,t){let n=i;const a=s;let r,l,u=0;for(;n<=a;){const a=mm[n];switch(v){case 0:if(l=p(e.huffmanTableAC),r=15&l,u=l>>4,0===r)u<15?(b=_(u)+(1<<u),v=4):(u=16,v=1);else{if(1!==r)throw new fm("invalid ACn encoding");w=g(r),v=u?2:3}continue;case 1:case 2:e.blockData[t+a]?e.blockData[t+a]+=m()<<o:(u--,0===u&&(v=2===v?3:0));break;case 3:e.blockData[t+a]?e.blockData[t+a]+=m()<<o:(e.blockData[t+a]=w<<o,v=0);break;case 4:e.blockData[t+a]&&(e.blockData[t+a]+=m()<<o)}n++}4===v&&(b--,0===b&&(v=0))}:function(e,t){const n=p(e.huffmanTableDC),a=0===n?0:g(n);e.blockData[t]=e.pred+=a;let r=1;for(;r<64;){const n=p(e.huffmanTableAC),a=15&n,i=n>>4;if(0===a){if(i<15)break;r+=16;continue}r+=i;const s=mm[r];e.blockData[t+s]=g(a),r++}};let R,C,M,B,N=0;for(C=1===S?a[0].blocksPerLine*a[0].blocksPerColumn:u*n.mcusPerColumn;N<C;){const n=r?Math.min(C-N,r):C;for(x=0;x<S;x++)a[x].pred=0;if(b=0,1===S)for(T=a[0],I=0;I<n;I++)y(T,U,N),N++;else for(I=0;I<n;I++){for(x=0;x<S;x++)for(T=a[x],M=T.h,B=T.v,E=0;E<B;E++)for(L=0;L<M;L++)A(T,U,N,E,L);N++}f=0,R=Im(e,t),R&&R.invalid&&(t=R.offset);const i=R&&R.marker;if(!i||i<=65280)throw new fm("marker was not found");if(!(i>=65488&&i<=65495))break;t+=2}return R=Im(e,t),R&&R.invalid&&(t=R.offset),t-d}function Em(e,t,n){const a=e.quantizationTable,r=e.blockData;let i,s,l,o,u,c,d,h,f,m,p,_,g,b,w,v,A;if(!a)throw new fm("missing required Quantization Table.");for(let e=0;e<64;e+=8)f=r[t+e],m=r[t+e+1],p=r[t+e+2],_=r[t+e+3],g=r[t+e+4],b=r[t+e+5],w=r[t+e+6],v=r[t+e+7],f*=a[e],0!==(m|p|_|g|b|w|v)?(m*=a[e+1],p*=a[e+2],_*=a[e+3],g*=a[e+4],b*=a[e+5],w*=a[e+6],v*=a[e+7],i=Am*f+128>>8,s=Am*g+128>>8,l=p,o=w,u=ym*(m-v)+128>>8,h=ym*(m+v)+128>>8,c=_<<4,d=b<<4,i=i+s+1>>1,s=i-s,A=l*vm+o*wm+128>>8,l=l*wm-o*vm+128>>8,o=A,u=u+d+1>>1,d=u-d,h=h+c+1>>1,c=h-c,i=i+o+1>>1,o=i-o,s=s+l+1>>1,l=s-l,A=u*bm+h*gm+2048>>12,u=u*gm-h*bm+2048>>12,h=A,A=c*_m+d*pm+2048>>12,c=c*pm-d*_m+2048>>12,d=A,n[e]=i+h,n[e+7]=i-h,n[e+1]=s+d,n[e+6]=s-d,n[e+2]=l+c,n[e+5]=l-c,n[e+3]=o+u,n[e+4]=o-u):(A=Am*f+512>>10,n[e]=A,n[e+1]=A,n[e+2]=A,n[e+3]=A,n[e+4]=A,n[e+5]=A,n[e+6]=A,n[e+7]=A);for(let e=0;e<8;++e)f=n[e],m=n[e+8],p=n[e+16],_=n[e+24],g=n[e+32],b=n[e+40],w=n[e+48],v=n[e+56],0!==(m|p|_|g|b|w|v)?(i=Am*f+2048>>12,s=Am*g+2048>>12,l=p,o=w,u=ym*(m-v)+2048>>12,h=ym*(m+v)+2048>>12,c=_,d=b,i=4112+(i+s+1>>1),s=i-s,A=l*vm+o*wm+2048>>12,l=l*wm-o*vm+2048>>12,o=A,u=u+d+1>>1,d=u-d,h=h+c+1>>1,c=h-c,i=i+o+1>>1,o=i-o,s=s+l+1>>1,l=s-l,A=u*bm+h*gm+2048>>12,u=u*gm-h*bm+2048>>12,h=A,A=c*_m+d*pm+2048>>12,c=c*pm-d*_m+2048>>12,d=A,f=i+h,v=i-h,m=s+d,w=s-d,p=l+c,b=l-c,_=o+u,g=o-u,f=f<16?0:f>=4080?255:f>>4,m=m<16?0:m>=4080?255:m>>4,p=p<16?0:p>=4080?255:p>>4,_=_<16?0:_>=4080?255:_>>4,g=g<16?0:g>=4080?255:g>>4,b=b<16?0:b>=4080?255:b>>4,w=w<16?0:w>=4080?255:w>>4,v=v<16?0:v>=4080?255:v>>4,r[t+e]=f,r[t+e+8]=m,r[t+e+16]=p,r[t+e+24]=_,r[t+e+32]=g,r[t+e+40]=b,r[t+e+48]=w,r[t+e+56]=v):(A=Am*f+8192>>14,A=A<-2040?0:A>=2024?255:A+2056>>4,r[t+e]=A,r[t+e+8]=A,r[t+e+16]=A,r[t+e+24]=A,r[t+e+32]=A,r[t+e+40]=A,r[t+e+48]=A,r[t+e+56]=A)}function Lm(e,t){const n=t.blocksPerLine,a=t.blocksPerColumn,r=new Int16Array(64);for(let e=0;e<a;e++)for(let a=0;a<n;a++){Em(t,Tm(t,e,a),r)}return t.blockData}function Im(e,t,n){function a(t){return e[t]<<8|e[t+1]}const r=e.length-1;let i=n<t?n:t;if(t>=r)return null;const s=a(t);if(s>=65472&&s<=65534)return{invalid:null,marker:s,offset:t};let l=a(i);for(;!(l>=65472&&l<=65534);){if(++i>=r)return null;l=a(i)}return{invalid:s.toString(16),marker:l,offset:i}}class Um{constructor(){this.decodeTransform=null,this.colorTransform=-1,this.width=0,this.height=0}parse(e){function t(){const t=e[r]<<8|e[r+1];return r+=2,t}function n(){const n=t();let a=r+n-2;const i=Im(e,a,r);i&&i.invalid&&(a=i.offset);const s=e.subarray(r,a);return r+=s.length,s}function a(e){const t=Math.ceil(e.samplesPerLine/8/e.maxH),n=Math.ceil(e.scanLines/8/e.maxV);for(let a=0;a<e.components.length;a++){S=e.components[a];const r=Math.ceil(Math.ceil(e.samplesPerLine/8)*S.h/e.maxH),i=Math.ceil(Math.ceil(e.scanLines/8)*S.v/e.maxV),s=t*S.h,l=64*(n*S.v)*(s+1);S.blockData=new Int16Array(l),S.blocksPerLine=r,S.blocksPerColumn=i}e.mcusPerLine=t,e.mcusPerColumn=n}var r=0;let i,s,l=null,o=null;const u=[],c=[],d=[];let h=t();if(65496!==h)throw new fm("SOI not found");for(h=t();65497!==h;){var f,m,p;switch(h){case 65504:case 65505:case 65506:case 65507:case 65508:case 65509:case 65510:case 65511:case 65512:case 65513:case 65514:case 65515:case 65516:case 65517:case 65518:case 65519:case 65534:var _=n();65504===h&&74===_[0]&&70===_[1]&&73===_[2]&&70===_[3]&&0===_[4]&&(l={version:{major:_[5],minor:_[6]},densityUnits:_[7],xDensity:_[8]<<8|_[9],yDensity:_[10]<<8|_[11],thumbWidth:_[12],thumbHeight:_[13],thumbData:_.subarray(14,14+3*_[12]*_[13])}),65518===h&&65===_[0]&&100===_[1]&&111===_[2]&&98===_[3]&&101===_[4]&&(o={version:_[5]<<8|_[6],flags0:_[7]<<8|_[8],flags1:_[9]<<8|_[10],transformCode:_[11]});break;case 65499:for(var g=t()+r-2;r<g;){const n=e[r++],a=new Uint16Array(64);if(n>>4){if(n>>4!=1)throw new fm("DQT - invalid table spec");for(m=0;m<64;m++)a[mm[m]]=t()}else for(m=0;m<64;m++)a[mm[m]]=e[r++];u[15&n]=a}break;case 65472:case 65473:case 65474:if(i)throw new fm("Only single frame JPEGs supported");t(),i={},i.extended=65473===h,i.progressive=65474===h,i.precision=e[r++],i.scanLines=t(),i.samplesPerLine=t(),i.components=[],i.componentIds={};var b,w=e[r++],v=0,A=0;for(f=0;f<w;f++){b=e[r];const t=e[r+1]>>4,n=15&e[r+1];v<t&&(v=t),A<n&&(A=n);const a=e[r+2];p=i.components.push({h:t,v:n,quantizationId:a,quantizationTable:null}),i.componentIds[b]=p-1,r+=3}i.maxH=v,i.maxV=A,a(i);break;case 65476:var y=t();for(f=2;f<y;){const t=e[r++],n=new Uint8Array(16);let a=0;for(m=0;m<16;m++,r++)a+=n[m]=e[r];const i=new Uint8Array(a);for(m=0;m<a;m++,r++)i[m]=e[r];f+=17+a,(t>>4?c:d)[15&t]=Sm(n,i)}break;case 65501:t(),s=t();break;case 65498:t();var S,T=e[r++],x=[];for(f=0;f<T;f++){const t=i.componentIds[e[r++]];S=i.components[t];const n=e[r++];S.huffmanTableDC=d[n>>4],S.huffmanTableAC=c[15&n],x.push(S)}var E=e[r++],L=e[r++],I=e[r++],U=xm(e,r,i,x,s,E,L,I>>4,15&I);r+=U;break;case 65535:255!==e[r]&&r--;break;default:if(255===e[r-3]&&e[r-2]>=192&&e[r-2]<=254){r-=3;break}throw new fm("unknown marker "+h.toString(16))}h=t()}for(this.width=i.samplesPerLine,this.height=i.scanLines,this.jfif=l,this.adobe=o,this.components=[],f=0;f<i.components.length;f++){const e=u[(S=i.components[f]).quantizationId];e&&(S.quantizationTable=e),this.components.push({output:Lm(0,S),scaleX:S.h/i.maxH,scaleY:S.v/i.maxV,blocksPerLine:S.blocksPerLine,blocksPerColumn:S.blocksPerColumn})}this.numComponents=this.components.length}getData(e){const t=e.data,n=this.components,a=new Uint8Array((n[0].blocksPerLine<<3)*n[0].blocksPerColumn*8);[n[0],n[2]]=[n[2],n[0]];for(let e=0,l=n.length;e<l;e++){const o=n[e],u=o.blocksPerLine,c=o.blocksPerColumn,d=u<<3;var r,i,s=0;for(let e=0;e<c;e++){const t=e<<3;for(let n=0;n<u;n++){const l=Tm(o,e,n);let u=0,c=n<<3;for(r=0;r<8;r++){s=(t+r)*d;for(i=0;i<8;i++)a[s+c+i]=o.output[l+u++]}}}let h=e;for(let e=0;e<this.height;e++)for(let n=0;n<this.width;n++)t[h]=a[e*d+n],h+=l}return t}}class Rm{constructor(){this.content=0,this.alphaBits=0,this.width=0,this.height=0,this.type=0,this.hasMipmaps=!1,this.mipmapOffsets=new Uint32Array(16),this.mipmapSizes=new Uint32Array(16),this.uint8array=null,this.jpgHeader=null,this.pallete=null}load(e){const t=$s(e),n=new Int32Array(t.buffer,0,40);if(827345986!==n[0])throw new Error("WrongMagicNumber");this.content=n[1],this.alphaBits=n[2],this.width=n[3],this.height=n[4],this.type=n[5],this.hasMipmaps=0!==n[6];for(let e=0;e<16;e++)this.mipmapOffsets[e]=n[7+e],this.mipmapSizes[e]=n[23+e];this.uint8array=t,0===this.content?this.jpgHeader=t.subarray(160,160+n[39]):this.pallete=t.subarray(156,1180)}getMipmap(e){const t=this.uint8array,n=this.mipmapOffsets[e],a=this.mipmapSizes[e];let r;if(0===this.content){const e=this.jpgHeader,i=new Uint8Array(e.length+a),s=new Um;i.set(e),i.set(t.subarray(n,n+a),e.length),s.parse(i),r=new ImageData(s.width,s.height),s.getData(r)}else{const a=this.pallete,i=Math.max(this.width/(1<<e),1),s=Math.max(this.height/(1<<e),1),l=i*s;let o,u=this.alphaBits,c=0;r=new ImageData(i,s),u>0&&(u>8&&(u=8),o=new yl(t.buffer,n+l,Math.ceil(l*u/8)),c=dm(u,8));const d=r.data;for(let e=0;e<l;e++){const r=4*e,i=4*t[n+e];d[r]=a[i+2],d[r+1]=a[i+1],d[r+2]=a[i],d[r+3]=u>0?o.readBits(u)*c:255}}return r}mipmaps(){let e=0;for(const t of this.mipmapSizes)t>0&&(e+=1);return e}fakeMipmaps(){const e=this.mipmapOffsets;let t=0;for(let n=0;n<16;n++){const a=e[n];if(a>0)for(let r=n+1;r<16;r++)if(a===e[r]){t+=1;break}}return t}}const Cm={Image:Rm},Mm=dm(4,8),Bm=dm(5,8),Nm=dm(6,8),Pm=new Uint8Array(16),km=new Uint8Array(12),Om=new Uint8Array(8),Dm=new Uint8Array(8),Fm=new Uint8Array(8);function Gm(e,t,n){const a=(t>>11&31)*Bm,r=(t>>5&63)*Nm,i=(31&t)*Bm,s=(n>>11&31)*Bm,l=(n>>5&63)*Nm,o=(31&n)*Bm;e[0]=a,e[1]=r,e[2]=i,e[3]=255,e[4]=s,e[5]=l,e[6]=o,e[7]=255,t>n?(e[8]=5*a+3*s>>3,e[9]=5*r+3*l>>3,e[10]=5*i+3*o>>3,e[11]=255,e[12]=5*s+3*a>>3,e[13]=5*l+3*r>>3,e[14]=5*o+3*i>>3,e[15]=255):(e[8]=a+s>>1,e[9]=r+l>>1,e[10]=i+o>>1,e[11]=255,e[12]=0,e[13]=0,e[14]=0,e[15]=0)}function Vm(e,t,n){const a=(t>>11&31)*Bm,r=(t>>5&63)*Nm,i=(31&t)*Bm,s=(n>>11&31)*Bm,l=(n>>5&63)*Nm,o=(31&n)*Bm;e[0]=a,e[1]=r,e[2]=i,e[3]=s,e[4]=l,e[5]=o,e[6]=5*a+3*s>>3,e[7]=5*r+3*l>>3,e[8]=5*i+3*o>>3,e[9]=5*s+3*a>>3,e[10]=5*l+3*r>>3,e[11]=5*o+3*i>>3}function Km(e,t,n){e[0]=t,e[1]=n,t>n?(e[2]=54*t+9*n>>6,e[3]=45*t+18*n>>6,e[4]=36*t+27*n>>6,e[5]=27*t+36*n>>6,e[6]=18*t+45*n>>6,e[7]=9*t+54*n>>6):(e[2]=12*t+3*n>>4,e[3]=9*t+6*n>>4,e[4]=6*t+9*n>>4,e[5]=3*t+12*n>>4,e[6]=0,e[7]=255)}function Hm(e,t,n){e[0]=t,e[1]=n,t>n?(e[2]=(6*t+1*n)/7,e[3]=(5*t+2*n)/7,e[4]=(4*t+3*n)/7,e[5]=(3*t+4*n)/7,e[6]=(2*t+5*n)/7,e[7]=(1*t+6*n)/7):(e[2]=(4*t+1*n)/5,e[3]=(3*t+2*n)/5,e[4]=(2*t+3*n)/5,e[5]=(1*t+4*n)/5,e[6]=0,e[7]=1)}const zm=827611204,jm=861165636,Xm=894720068,$m=843666497;class Jm{constructor(){this.width=0,this.height=0,this.format=0,this.mipmapWidths=[],this.mipmapHeights=[],this.mipmapDatas=[]}load(e){const t=$s(e),n=new Int32Array(t.buffer,0,31);let a=128;if(542327876!==n[0])throw new Error("Wrong magic number");if(!(4&n[20]))throw new Error("Not FourCC");let r=n[21];if(r!==zm&&r!==jm&&r!==Xm&&r!==$m){if(808540228!==r)throw new Error(`Unsupported FourCC: ${wl(r)}`);{a+=20;const e=new Int32Array(t.buffer,128,5),n=e[0];if(71===n)r=zm;else if(74===n)r=jm;else if(77===n)r=Xm;else{if(83!==n)throw new Error(`Unsupported DXGI format: ${n}`);r=$m}console.log(e)}}this.format=r;let i=1;131072&n[2]&&(i=Math.max(1,n[7]));let s=n[4],l=n[3],o=16;r===zm&&(o=8),this.width=s,this.height=l;for(let e=0;e<i;e++){const n=Math.max(4,s)/4*Math.max(4,l)/4*o;this.mipmapWidths[e]=s,this.mipmapHeights[e]=l,this.mipmapDatas[e]=t.subarray(a,a+n),a+=n,s=Math.max(s/2,1),l=Math.max(l/2,1)}}mipmaps(){return this.mipmapDatas.length}getMipmap(e,t=!1){const n=this.mipmapWidths[e],a=this.mipmapHeights[e],r=this.mipmapDatas[e];let i;return i=t?r:this.format===zm?function(e,t,n){const a=new Uint8Array(t*n*4);for(let r=0,i=n/4;r<i;r++)for(let n=0,i=t/4;n<i;n++){const s=8*(r*i+n);Gm(Pm,e[s]+256*e[s+1],e[s+2]+256*e[s+3]);const l=16*r*t+16*n,o=e[s+4]|e[s+5]<<8|e[s+6]<<16|e[s+7]<<24;for(let e=0;e<4;e++){const n=8*e,r=l+e*t*4;for(let e=0;e<4;e++){const t=r+4*e,i=4*(o>>n+2*e&3);a[t+0]=Pm[i+0],a[t+1]=Pm[i+1],a[t+2]=Pm[i+2],a[t+3]=Pm[i+3]}}}return a}(r,n,a):this.format===jm?function(e,t,n){const a=new Uint8Array(t*n*4),r=4*t;for(let i=0,s=n/4;i<s;i++)for(let n=0,s=t/4;n<s;n++){const l=16*(i*s+n);Vm(km,e[l+8]+256*e[l+9],e[l+10]+256*e[l+11]);let o=16*i*t+16*n;for(let t=0;t<4;t++){const n=e[l+2*t]+256*e[l+1+2*t],i=e[l+12+t];for(let e=0;e<4;e++){const t=o+4*e,r=3*(i>>2*e&3);a[t+0]=km[r+0],a[t+1]=km[r+1],a[t+2]=km[r+2],a[t+3]=(n>>4*e&15)*Mm}o+=r}}return a}(r,n,a):this.format===Xm?function(e,t,n){const a=new Uint8Array(t*n*4),r=4*t;for(let i=0,s=n/4;i<s;i++)for(let n=0,s=t/4;n<s;n++){const l=16*(i*s+n);Km(Om,e[l],e[l+1]),Vm(km,e[l+8]+256*e[l+9],e[l+10]+256*e[l+11]);let o=16*i*t+16*n;for(let t=0;t<2;t++){const n=l+2+3*t,i=l+12+2*t,s=e[n]+256*(e[n+1]+256*e[n+2]);for(let t=0;t<2;t++){const n=e[i+t];for(let e=0;e<4;e++){const r=o+4*e,i=3*(n>>2*e&3),l=s>>12*t+3*e&7;a[r+0]=km[i+0],a[r+1]=km[i+1],a[r+2]=km[i+2],a[r+3]=Om[l]}o+=r}}}return a}(r,n,a):function(e,t,n){const a=new Uint8Array(t*n*2),r=2*t;for(let i=0,s=n/4;i<s;i++)for(let n=0,s=t/4;n<s;n++){const l=16*(i*s+n);Hm(Dm,e[l],e[l+1]),Hm(Fm,e[l+8],e[l+9]);let o=8*i*t+8*n;for(let t=0;t<2;t++){const n=l+3*t,i=e[n+2]+256*(e[n+3]+256*e[n+4]),s=e[n+10]+256*(e[n+11]+256*e[n+12]);for(let e=0;e<2;e++){const t=4*e;for(let e=0;e<4;e++){const n=o+2*e,r=3*(t+e);a[n+1]=Dm[i>>r&7],a[n+2]=Fm[s>>r&7]}o+=r}}}return a}(r,n,a),{width:n,height:a,data:i}}}function Wm(e){return e instanceof ArrayBuffer&&(e=new Uint8Array(e)),e instanceof Uint8Array&&68===e[0]&&68===e[1]&&83===e[2]&&32===e[3]}const qm={Image:Jm,FOURCC_DXT1:zm,FOURCC_DXT3:jm,FOURCC_DXT5:Xm,FOURCC_ATI2:$m,isDds:Wm},Ym=class{_checkHeader(){const e=this.header;if(0===e.imageType)throw Error("No data");if(e.hasColorMap){if(e.colorMapLength>256||24!==e.colorMapDepth||1!==e.colorMapType)throw Error("Invalid colormap for indexed type")}else if(e.colorMapType)throw Error("Why does the image contain a palette ?");if(!e.width||!e.height)throw Error("Invalid image size");if(8!==e.pixelDepth&&16!==e.pixelDepth&&24!==e.pixelDepth&&32!==e.pixelDepth)throw Error('Invalid pixel size "'+e.pixelDepth+'"')}_decodeRLE(e,t,n,a){const r=new Uint8Array(a),i=new Uint8Array(n);let s=0;for(;s<a;){const a=e[t++];let l=1+(127&a);if(128&a){for(let a=0;a<n;++a)i[a]=e[t+a];t+=n;for(let e=0;e<l;++e)r.set(i,s),s+=n}else{l*=n;for(let n=0;n<l;++n)r[s+n]=e[t+n];s+=l,t+=l}}return r}_getImageData8bits(e,t,n,a,r,i,s,l,o,u){for(let c=0,d=r;d!==s;d+=i)for(let r=l;r!==u;r+=o,c++){const i=t[c];e[4*(r+a*d)+3]=255,e[4*(r+a*d)+2]=n[3*i+0],e[4*(r+a*d)+1]=n[3*i+1],e[4*(r+a*d)+0]=n[3*i+2]}return e}_getImageData16bits(e,t,n,a,r,i,s,l,o,u){for(let n=0,c=r;c!==s;c+=i)for(let r=l;r!==u;r+=o,n+=2){const i=t[n+0]|t[n+1]<<8;e[4*(r+a*c)+0]=(31744&i)>>7,e[4*(r+a*c)+1]=(992&i)>>2,e[4*(r+a*c)+2]=(31&i)>>3,e[4*(r+a*c)+3]=32768&i?0:255}return e}_getImageData24bits(e,t,n,a,r,i,s,l,o,u){for(let n=0,c=r;c!==s;c+=i)for(let r=l;r!==u;r+=o,n+=3)e[4*(r+a*c)+3]=255,e[4*(r+a*c)+2]=t[n+0],e[4*(r+a*c)+1]=t[n+1],e[4*(r+a*c)+0]=t[n+2];return e}_getImageData32bits(e,t,n,a,r,i,s,l,o,u){for(let n=0,c=r;c!==s;c+=i)for(let r=l;r!==u;r+=o,n+=4)e[4*(r+a*c)+2]=t[n+0],e[4*(r+a*c)+1]=t[n+1],e[4*(r+a*c)+0]=t[n+2],e[4*(r+a*c)+3]=t[n+3];return e}_getImageDataGrey8bits(e,t,n,a,r,i,s,l,o,u){for(let n=0,c=r;c!==s;c+=i)for(let r=l;r!==u;r+=o,n++){const i=t[n];e[4*(r+a*c)+0]=i,e[4*(r+a*c)+1]=i,e[4*(r+a*c)+2]=i,e[4*(r+a*c)+3]=255}return e}_getImageDataGrey16bits(e,t,n,a,r,i,s,l,o,u){for(let n=0,c=r;c!==s;c+=i)for(let r=l;r!==u;r+=o,n+=2)e[4*(r+a*c)+0]=t[n+0],e[4*(r+a*c)+1]=t[n+0],e[4*(r+a*c)+2]=t[n+0],e[4*(r+a*c)+3]=t[n+1];return e}open(e,t){const n=new XMLHttpRequest;n.responseType="arraybuffer",n.open("GET",e,!0),n.onload=()=>{200===n.status&&(this.load(new Uint8Array(n.response)),t&&t())},n.send(null)}load(e){let t=0;if(e.length<18)throw Error("Not enough data to contain header");const n={idLength:e[t++],colorMapType:e[t++],imageType:e[t++],colorMapIndex:e[t++]|e[t++]<<8,colorMapLength:e[t++]|e[t++]<<8,colorMapDepth:e[t++],offsetX:e[t++]|e[t++]<<8,offsetY:e[t++]|e[t++]<<8,width:e[t++]|e[t++]<<8,height:e[t++]|e[t++]<<8,pixelDepth:e[t++],flags:e[t++]};if(n.hasEncoding=9===n.imageType||10===n.imageType||11===n.imageType,n.hasColorMap=9===n.imageType||1===n.imageType,n.isGreyColor=11===n.imageType||3===n.imageType,this.header=n,this._checkHeader(),(t+=n.idLength)>=e.length)throw Error("No data");if(n.hasColorMap){const a=n.colorMapLength*(n.colorMapDepth>>3);this.palette=e.subarray(t,t+a),t+=a}const a=n.pixelDepth>>3,r=n.width*n.height,i=r*a;n.hasEncoding?this.imageData=this._decodeRLE(e,t,a,i):this.imageData=e.subarray(t,t+(n.hasColorMap?r:i))}getImageData(e){const{width:t,height:n,flags:a,pixelDepth:r,isGreyColor:i}=this.header,s=(48&a)>>4;let l,o,u,c,d,h,f;switch(e||(e=document?document.createElement("canvas").getContext("2d").createImageData(t,n):{width:t,height:n,data:new Uint8ClampedArray(t*n*4)}),2===s||3===s?(c=0,d=1,h=n):(c=n-1,d=-1,h=-1),2===s||0===s?(l=0,o=1,u=t):(l=t-1,o=-1,u=-1),r){case 8:f=i?this._getImageDataGrey8bits:this._getImageData8bits;break;case 16:f=i?this._getImageDataGrey16bits:this._getImageData16bits;break;case 24:f=this._getImageData24bits;break;case 32:f=this._getImageData32bits}return f.call(this,e.data,this.imageData,this.palette,t,c,d,h,l,o,u),e}getCanvas(){const{width:e,height:t}=this.header,n=document.createElement("canvas"),a=n.getContext("2d"),r=a.createImageData(e,t);return n.width=e,n.height=t,a.putImageData(this.getImageData(r),0,0),n}getDataURL(e){return this.getCanvas().toDataURL(e||"image/png")}};class Zm{constructor(){this.width=0,this.height=0,this.data=null}load(e){const t=$s(e),n=new Ym;n.load(t);const a=n.header;this.width=a.width,this.height=a.height,this.data=new ImageData(a.width,a.height),n.getImageData(this.data)}}function Qm(e){return e instanceof ArrayBuffer&&(e=new Uint8Array(e)),!!(e instanceof Uint8Array&&Js(e,"TRUEVISION-XFILE.\0",e.length-18))}const ep={ini:Ml,slk:Nl,m3:eo,mdlx:ko,mpq:Jh,w3x:cm,blp:Cm,dds:qm,tga:{Image:Zm,isTga:Qm}};var tp=n(7);async function np(e,t){if("image"===t)return new Promise(t=>{const n=new Image;n.onload=()=>{t({ok:!0,data:n})},n.onerror=e=>{t({ok:!1,error:"Image Error",data:e})},n.src=e});{let n;try{n=await fetch(e)}catch(e){return{ok:!1,error:"Network Error",data:e}}if(!n.ok)return{ok:!1,error:"Http Error",data:n};try{let e=null;return"text"===t?e=await n.text():"arrayBuffer"===t||"bytes"===t?e=await n.arrayBuffer():"blob"===t&&(e=await n.blob()),"bytes"===t&&(e=new Uint8Array(e)),{ok:!0,data:e}}catch(e){return{ok:!1,error:"Data Error",data:e}}}}class ap{constructor(e,t=4){this.size=0,this.arrayBuffer=null,this.byteView=null,this.floatView=null,this.gl=e,this.buffer=e.createBuffer(),this.reserve(t)}reserve(e){if(this.size<e){const t=this.gl;this.size=4*Math.ceil(e/4),t.bindBuffer(t.ARRAY_BUFFER,this.buffer),t.bufferData(t.ARRAY_BUFFER,this.size,t.DYNAMIC_DRAW),this.arrayBuffer=new ArrayBuffer(this.size),this.byteView=new Uint8Array(this.arrayBuffer),this.floatView=new Float32Array(this.arrayBuffer)}}bindAndUpdate(e=this.size){const t=this.gl,n=this.byteView;t.bindBuffer(t.ARRAY_BUFFER,this.buffer),t.bufferSubData(t.ARRAY_BUFFER,0,n.subarray(0,e))}}class rp{constructor(e,t=1,n=1){this.width=0,this.height=0,this.arrayBuffer=new ArrayBuffer(0),this.byteView=null,this.floatView=null,this.gl=e,this.texture=e.createTexture(),e.bindTexture(e.TEXTURE_2D,this.texture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),this.reserve(t,n)}reserve(e,t){if(this.width<e||this.height<t){const n=this.gl;this.width=Math.max(this.width,e),this.height=Math.max(this.height,t),n.bindTexture(n.TEXTURE_2D,this.texture),n.texImage2D(n.TEXTURE_2D,0,n.RGBA,this.width,this.height,0,n.RGBA,n.FLOAT,null),this.arrayBuffer=new ArrayBuffer(this.width*this.height*16),this.byteView=new Uint8Array(this.arrayBuffer),this.floatView=new Float32Array(this.arrayBuffer)}}bindAndUpdate(e=this.width,t=this.height){const n=this.gl;n.bindTexture(n.TEXTURE_2D,this.texture),n.texSubImage2D(n.TEXTURE_2D,0,0,0,e,t,n.RGBA,n.FLOAT,this.byteView)}}class ip{constructor(e,t=4,n=1,a=1){this.width=0,this.height=0,this.gl=e,this.texture=e.createTexture(),this.format=3===t?e.RGB:e.RGBA,e.bindTexture(e.TEXTURE_2D,this.texture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),this.reserve(n,a)}reserve(e,t){if(this.width<e||this.height<t){const n=this.gl;this.width=Math.max(this.width,e),this.height=Math.max(this.height,t),n.bindTexture(n.TEXTURE_2D,this.texture),n.texImage2D(n.TEXTURE_2D,0,this.format,this.width,this.height,0,this.format,n.FLOAT,null)}}bindAndUpdate(e,t=this.width,n=this.height){const a=this.gl;a.bindTexture(a.TEXTURE_2D,this.texture),a.texSubImage2D(a.TEXTURE_2D,0,0,0,t,n,this.format,a.FLOAT,e)}bind(e){const t=this.gl;t.activeTexture(t.TEXTURE0+e),t.bindTexture(t.TEXTURE_2D,this.texture)}}class sp{constructor(e,t){this.uniforms={},this.attribs={},this.attribsCount=0,this.webgl=e,this.program=t;const n=e.gl;for(let e=0,a=n.getProgramParameter(t,n.ACTIVE_UNIFORMS);e<a;e++){const a=n.getActiveUniform(t,e);if(a)if(1===a.size)this.uniforms[a.name]=n.getUniformLocation(t,a.name);else{const e=a.name.substr(0,a.name.length-3);for(let r=0;r<a.size;r++){const a=e+"["+r+"]";this.uniforms[a]=n.getUniformLocation(t,a)}}}for(let e=0,a=n.getProgramParameter(t,n.ACTIVE_ATTRIBUTES);e<a;e++){const a=n.getActiveAttrib(t,e);if(a)if(this.attribsCount+=a.size,1===a.size)this.attribs[a.name]=n.getAttribLocation(t,a.name);else{const e=a.name.substr(0,a.name.length-3);for(let r=0;r<a.size;r++){const a=e+"["+r+"]";this.attribs[a]=n.getAttribLocation(t,a)}}}}use(){this.webgl.useShader(this)}}class lp{constructor(e,t={alpha:!1}){this.currentShader=null,this.extensions={};let n=e.getContext("webgl",t);if(n||(n=e.getContext("experimental-webgl",t)),!n)throw new Error("WebGL: Failed to create a WebGL context!");const a=new Uint8ClampedArray(16).fill(255),r=n.createTexture();n.bindTexture(n.TEXTURE_2D,r),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,n.NEAREST),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.NEAREST),n.texImage2D(n.TEXTURE_2D,0,n.RGBA,2,2,0,n.RGBA,n.UNSIGNED_BYTE,a),this.gl=n,this.emptyTexture=r}ensureExtension(e){const t=this.gl.getExtension(e);return!!t&&(this.extensions[e]=t,!0)}createShader(e,t){const n=this.gl,a=n.createShader(n.VERTEX_SHADER);n.shaderSource(a,e),n.compileShader(a);const r=n.createShader(n.FRAGMENT_SHADER);n.shaderSource(r,t),n.compileShader(r);const i=n.createProgram();if(n.attachShader(i,a),n.attachShader(i,r),n.linkProgram(i),!n.getProgramParameter(i,n.LINK_STATUS)){let e="Shader failed to link:";const t=n.getShaderInfoLog(a);t&&t.length&&(e+=` Vertex shader: ${t}`);const i=n.getShaderInfoLog(r);throw i&&i.length&&(e+=` Fragment shader: ${i}`),new Error(e)}return new sp(this,i)}enableVertexAttribs(e,t){const n=this.gl;for(let a=e;a<t;a++)n.enableVertexAttribArray(a)}disableVertexAttribs(e,t){const n=this.gl;for(let a=e;a<t;a++)n.disableVertexAttribArray(a)}useShader(e){if(e&&e!==this.currentShader){let t=0;const n=e.attribsCount;this.currentShader&&(t=this.currentShader.attribsCount),this.gl.useProgram(e.program),n>t?this.enableVertexAttribs(t,n):n<t&&this.disableVertexAttribs(n,t),this.currentShader=e}}bindTexture(e,t){const n=this.gl;n.activeTexture(n.TEXTURE0+t),e?n.bindTexture(n.TEXTURE_2D,e.webglResource):n.bindTexture(n.TEXTURE_2D,this.emptyTexture)}bindTextureAndWrap(e,t,n,a){const r=this.gl;r.activeTexture(r.TEXTURE0+t),e?r.bindTexture(r.TEXTURE_2D,e.webglResource):r.bindTexture(r.TEXTURE_2D,this.emptyTexture),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,n),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,a)}setTextureMode(e,t,n,a){const r=this.gl;r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,e),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,t),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,n),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,a)}createClientBuffer(e=4){return new ap(this.gl,e)}createDataTexture(e=4,t=1,n=1){return new ip(this.gl,e,t,n)}createClientDataTexture(e=1,t=1){return new rp(this.gl,e,t)}}const op=Wt(),up=Wt(),cp=Wt(),dp=Ma(),hp=Na(Ma(),Qi,Math.PI/2);class fp{constructor(){this.isPerspective=!0,this.fov=0,this.aspect=0,this.isOrtho=!1,this.leftClipPlane=0,this.rightClipPlane=0,this.bottomClipPlane=0,this.topClipPlane=0,this.nearClipPlane=0,this.farClipPlane=0,this.location=Wt(),this.rotation=Ma(),this.inverseRotation=Ma(),this.viewMatrix=nt(),this.projectionMatrix=nt(),this.viewProjectionMatrix=nt(),this.inverseViewMatrix=nt(),this.inverseViewProjectionMatrix=nt(),this.directionX=Wt(),this.directionY=Wt(),this.directionZ=Wt(),this.vectors=[Zt(-1,-1,0),Zt(-1,1,0),Zt(1,1,0),Zt(1,-1,0),Zt(1,0,0),Zt(0,1,0),Zt(0,0,1)],this.billboardedVectors=[Wt(),Wt(),Wt(),Wt(),Wt(),Wt(),Wt()],this.planes=[jn(),jn(),jn(),jn(),jn(),jn()]}perspective(e,t,n,a){this.isPerspective=!0,this.isOrtho=!1,this.fov=e,this.aspect=t,this.nearClipPlane=n,this.farClipPlane=a,this.update()}ortho(e,t,n,a,r,i){this.isPerspective=!1,this.isOrtho=!0,this.leftClipPlane=e,this.rightClipPlane=t,this.bottomClipPlane=n,this.topClipPlane=a,this.nearClipPlane=r,this.farClipPlane=i,this.update()}setLocation(e){Qt(this.location,e),this.update()}move(e){tn(this.location,this.location,e),this.update()}setRotation(e){sr(this.rotation,e),this.update()}rotate(e){ur(this.rotation,this.rotation,e),this.update()}face(e,t){ur(this.rotation,hp,ws(dp,e,this.location,t)),this.update()}moveToAndFace(e,t,n){Qt(this.location,e),this.face(t,n)}reset(){en(this.location,0,0,0),Ba(this.rotation),this.update()}update(){const e=this.location,t=this.rotation,n=this.inverseRotation,a=this.viewMatrix,r=this.projectionMatrix,i=this.viewProjectionMatrix,s=this.vectors,l=this.billboardedVectors;this.isPerspective?Nt(r,this.fov,this.aspect,this.nearClipPlane,this.farClipPlane):kt(r,this.leftClipPlane,this.rightClipPlane,this.bottomClipPlane,this.topClipPlane,this.nearClipPlane,this.farClipPlane),Mt(a,t),ft(a,a,_n(op,e)),$t(i,r,a),ut(this.inverseViewMatrix,a),ut(this.inverseViewProjectionMatrix,i),ps(this.planes,i),Ja(n,t),Ln(this.directionX,Qi,n),Ln(this.directionY,es,n),Ln(this.directionZ,ts,n);for(let e=0;e<7;e++)Ln(l[e],s[e],n)}cameraToWorld(e,t){return xn(e,t,this.inverseViewMatrix)}worldToCamera(e,t){return xn(e,t,this.viewMatrix)}worldToScreen(e,t,n){return xn(op,t,this.viewProjectionMatrix),e[0]=Math.round((op[0]+1)/2*n[2]),e[1]=Math.round((op[1]+1)/2*n[3]),e}screenToWorldRay(e,t,n){const a=op,r=up,i=cp,s=t[0],l=t[1],o=this.inverseViewProjectionMatrix;return ls(a,en(i,s,l,0),o,n),ls(r,en(i,s,l,1),o,n),e.set(a,0),e.set(r,3),e}}class mp{constructor(e,t,n,a){this.plane=-1,this.instances=[],this.visible=!1,this.left=e,this.right=t,this.bottom=n,this.top=a}add(e){this.instances.push(e)}remove(e){const t=this.instances.indexOf(e);this.instances.splice(t,1)}clear(){this.instances.length=0}isVisible(e){return this.plane=hs(e.planes,this.left,this.right,this.bottom,this.top,this.plane),-1===this.plane}}class pp{constructor(e,t,n,a,r,i){this.cells=[];const s=n/r,l=a/i;this.x=e,this.y=t,this.width=n,this.depth=a,this.cellWidth=r,this.cellDepth=i,this.columns=s,this.rows=l;for(let n=0;n<l;n++)for(let a=0;a<s;a++){const l=e+a*r,o=l+r,u=t+n*i,c=u+i;this.cells[n*s+a]=new mp(l,o,u,c)}}add(e){const t=this.cells,n=this.columns,a=e.left,r=e.right+1,i=e.bottom,s=e.top+1;if(-1!==a)for(let l=i;l<s;l++)for(let i=a;i<r;i++)t[l*n+i].add(e)}remove(e){const t=this.cells,n=this.columns,a=e.left,r=e.right+1,i=e.bottom,s=e.top+1;if(-1!==a){e.left=-1;for(let l=i;l<s;l++)for(let i=a;i<r;i++)t[l*n+i].remove(e)}}moved(e){const t=this.cellWidth,n=this.cellDepth,a=e.model.bounds,r=e.worldLocation[0]+a.x-this.x,i=e.worldLocation[1]+a.y-this.y,s=a.r,l=e.worldScale;let o=Math.floor((r-s*l[0])/t),u=Math.floor((r+s*l[0])/t),c=Math.floor((i-s*l[1])/n),d=Math.floor((i+s*l[1])/n);u<0||o>this.columns-1||d<0||c>this.rows-1?this.remove(e):(o=Math.max(o,0),u=Math.min(u,this.columns-1),c=Math.max(c,0),d=Math.min(d,this.rows-1),o===e.left&&u===e.right&&c===e.bottom&&d===e.top||(this.remove(e),e.left=o,e.right=u,e.bottom=c,e.top=d,this.add(e)))}clear(){for(const e of this.cells)e.clear()}}class _p{constructor(){this.objects=[],this.alive=0}add(e){this.objects[this.alive++]=e}update(e){const t=this.objects;for(let n=0;n<this.alive;n++){const a=t[n];a.update(e*a.emitter.instance.timeScale),a.health<=0&&(this.alive-=1,a.emitter.kill(a),n!==this.alive&&(t[n]=t[this.alive],n-=1))}}}class gp{constructor(e){this.camera=new fp,this.grid=new pp(-1e5,-1e5,2e5,2e5,2e5,2e5),this.visibleCells=0,this.visibleInstances=0,this.updatedParticles=0,this.audioEnabled=!1,this.audioContext=null,this.instances=[],this.emittedObjectUpdater=new _p,this.alpha=!1,this.color=Wt(),this.viewport=jn(),this.lightPosition=Zt(0,0,1e4),this.viewer=e;const t=e.canvas,n=t.width,a=t.height;this.viewport[2]=n,this.viewport[3]=a,this.camera.perspective(Math.PI/4,n/a,8,1e4)}async enableAudio(){return"function"==typeof AudioContext&&(this.audioContext||(this.audioContext=new AudioContext),"suspended"!==this.audioContext.state&&await this.audioContext.resume(),this.audioEnabled="running"===this.audioContext.state,this.audioEnabled)}disableAudio(){this.audioContext&&this.audioContext.suspend(),this.audioEnabled=!1}addInstance(e){return e.scene!==this&&(e.scene&&e.scene.removeInstance(e),e.scene=this,this.grid.moved(e),!0)}removeInstance(e){return e.scene===this&&(this.grid.remove(e),e.scene=null,!0)}clear(){for(const e of this.grid.cells)for(const t of e.instances)t.scene=null;this.grid.clear()}detach(){return!!this.viewer&&this.viewer.removeScene(this)}update(e){const t=this.camera;if(this.audioContext){const e=this.audioContext.listener,n=t.location,a=t.directionY,r=t.directionZ;e.positionX.value=-n[0],e.positionY.value=-n[1],e.positionZ.value=-n[2],e.forwardX.value=a[0],e.forwardY.value=a[1],e.forwardZ.value=a[2],e.upX.value=r[0],e.upY.value=r[1],e.upZ.value=r[2]}const n=this.viewer.frame,a=this.instances;this.visibleCells=0,this.visibleInstances=0;for(const a of this.grid.cells)if(a.isVisible(t)){this.visibleCells+=1;for(const t of a.instances)t.rendered&&t.updateFrame<n&&!t.parent&&(t.updateFrame=n,t.update(e))}a.length=this.visibleInstances,a.sort((e,t)=>e.depth-t.depth),this.emittedObjectUpdater.update(e),this.updatedParticles=this.emittedObjectUpdater.alive}renderInstance(e){this.instances[this.visibleInstances++]=e}startFrame(){const e=this.viewer.gl,t=this.viewport;if(e.viewport(t[0],t[1],t[2],t[3]),e.scissor(t[0],t[1],t[2],t[3]),!this.alpha){const t=this.color;e.depthMask(!0),e.clearColor(t[0],t[1],t[2],1),e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT)}}renderOpaque(){const e=this.instances;for(let t=0,n=e.length;t<n;t++)e[t].renderOpaque()}renderTranslucent(){const e=this.instances;for(let t=e.length-1;t>=0;t--)e[t].renderTranslucent()}render(){this.startFrame(),this.renderOpaque(),this.renderTranslucent()}clearEmittedObjects(){for(const e of this.emittedObjectUpdater.objects)e.health=0}}class bp{constructor(e){this.blockers=[],this.viewer=e.viewer,this.fetchUrl=e.fetchUrl}detach(){return this.viewer.unload(this)}}class wp extends bp{constructor(e,t){super(t),this.data=null,this.data=e}}class vp extends bp{constructor(e){super(e),this.pathSolver=e.pathSolver}}class Ap extends vp{constructor(){super(...arguments),this.webglResource=null,this.width=0,this.height=0}}class yp extends Ap{constructor(e,t){super(t);const n=this.viewer.gl;this.webglResource=n.createTexture(),n.bindTexture(n.TEXTURE_2D,this.webglResource),n.texImage2D(n.TEXTURE_2D,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,e),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,n.LINEAR),Us(e.width)&&Us(e.height)?(n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.LINEAR_MIPMAP_LINEAR),n.generateMipmap(n.TEXTURE_2D)):(n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.LINEAR),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE)),this.width=e.width,this.height=e.height}}var Sp;!function(e){e[e.None=0]="None",e[e.Diffuse=1]="Diffuse",e[e.NormalMap=2]="NormalMap",e[e.Occlusion=3]="Occlusion",e[e.Roughness=4]="Roughness",e[e.Metallic=5]="Metallic",e[e.TCFactor=6]="TCFactor",e[e.Emissive=7]="Emissive",e[e.TexCoords=8]="TexCoords",e[e.Normals=9]="Normals",e[e.Tangents=10]="Tangents"}(Sp||(Sp={}));class Tp extends tp.EventEmitter{constructor(e,t){super(),this.resources=[],this.resourceMap=new Map,this.promiseMap=new Map,this.handlers=new Set,this.scenes=[],this.frame=0,this.visibleCells=0,this.visibleInstances=0,this.updatedParticles=0,this.audioEnabled=!1,this.sharedCache=new Map,this.debugRenderMode=Sp.None,this.directLoadId=0;const n=new lp(e,t),a=n.gl;this.canvas=e,this.gl=a,this.webgl=n,this.buffer=n.createClientBuffer(),a.depthFunc(a.LEQUAL),a.enable(a.DEPTH_TEST),a.enable(a.SCISSOR_TEST)}enableAudio(){return"function"==typeof AudioContext&&(this.audioEnabled=!0,!0)}addHandler(e,...t){if(e){const n=this.handlers;if(!n.has(e)){if(!e.isValidSource)return this.emit("error",{viewer:this,error:"Handler missing the isValidSource function",handler:e}),!1;if(e.load)try{e.load(this,...t)}catch(t){return this.emit("error",{viewer:this,error:"Handler failed to load",handler:e,reason:t}),!1}return n.add(e),!0}}return!1}addScene(){const e=new gp(this);return this.scenes.push(e),e}removeScene(e){const t=this.scenes,n=t.indexOf(e);return-1!==n&&(t.splice(n,1),!0)}clear(){this.scenes.length=0}async load(e,t,n){let a,r,i="";if(t)try{a=t(e,n)}catch(a){return void this.emit("error",{viewer:this,error:"Path solver failed",src:e,reason:a,pathSolver:t,solverParams:n})}else a=e;if(a){if(a instanceof Promise&&(a=await a),a instanceof bp)return a;if("string"!=typeof a||this.detectFormat(a))i="__DIRECT_LOAD_"+this.directLoadId++,r=Promise.resolve(a);else{if(i=a,r=this.promiseMap.get(i),r)return r;const e=this.resourceMap.get(i);if(e)return e;r=np(i,"arrayBuffer").then(e=>e.ok?e.data:void this.emit("error",{viewer:this,error:`Failed to fetch a resource: ${e.error}`,fetchUrl:i,reason:e.data}))}return r=r.then(async n=>{if(n){if(n instanceof ArrayBuffer&&(n=new Uint8Array(n)),function(e){return e instanceof ImageData||e instanceof HTMLImageElement||e instanceof HTMLCanvasElement||e instanceof HTMLVideoElement}(n))return new yp(n,{viewer:this,fetchUrl:i,pathSolver:t});if(n instanceof Uint8Array){const e=function(e){return El(e)?"image/png":Ll(e)?"image/jpeg":Il(e)?"image/gif":Ul(e)?"image/webp":""}(n);if(e.length)return new yp(await Ns(new Blob([n.buffer],{type:e})),{viewer:this,fetchUrl:i,pathSolver:t})}const a=this.detectFormat(n);if(a)try{const e=new a.resource(n,{viewer:this,fetchUrl:i,pathSolver:t});return await Promise.all(e.blockers),e.blockers.length=0,e}catch(t){this.emit("error",{viewer:this,error:"Failed to create a resource",fetchUrl:i,src:e,reason:t})}else this.emit("error",{viewer:this,error:"Source has no matching handler",fetchUrl:i,src:e})}}).then(e=>(this.promiseMap.delete(i),e&&(this.resourceMap.set(i,e),this.resources.push(e),this.emit("load",{viewer:this,fetchUrl:i,resource:e})),this.emit("loadend",{viewer:this,fetchUrl:i,resource:e}),this.checkLoadingStatus(),e)),this.promiseMap.set(i,r),this.emit("loadstart",{viewer:this,fetchUrl:i,promise:r}),r}}detectFormat(e){for(const t of this.handlers)if(t.isValidSource(e))return t}has(e){return this.resourceMap.has(e)}get(e){return this.resourceMap.get(e)}async loadGeneric(e,t,n){const a=this.promiseMap.get(e);if(a)return a;const r=this.resourceMap.get(e);if(r)return r;const i=np(e,t).then(async t=>{let a;if(this.promiseMap.delete(e),t.ok){let r=t.data;n&&(r=await n(r)),a=new wp(r,{viewer:this,fetchUrl:e}),this.resourceMap.set(e,a),this.resources.push(a),this.emit("load",{viewer:this,fetchUrl:e,resource:a})}else this.emit("error",{viewer:this,error:"Failed to fetch a generic resource",fetchUrl:e});return this.emit("loadend",{viewer:this,fetchUrl:e,resource:a}),this.checkLoadingStatus(),a});return this.promiseMap.set(e,i),this.emit("loadstart",{viewer:this,fetchUrl:e}),i}unload(e){const t=e.fetchUrl;""!==t&&this.resourceMap.delete(t);const n=this.resources,a=n.indexOf(e);return-1!==a&&(n.splice(a,1),!0)}promise(){const e=Promise.resolve(void 0),t=`${performance.now()}`;return this.promiseMap.set(t,e),()=>{this.promiseMap.delete(t),this.checkLoadingStatus()}}checkLoadingStatus(){0===this.promiseMap.size&&setTimeout(()=>this.emit("idle"),0)}whenAllLoaded(e){const t=new Promise(e=>{0===this.promiseMap.size?e(this):this.once("idle",()=>e(this))});if(!e)return t;t.then(()=>e(this))}toBlob(e){const t=new Promise(e=>this.canvas.toBlob(t=>e(t)));if(!e)return t;t.then(t=>e(t))}updateAndRender(e=1e3/60){this.update(e),this.startFrame(),this.render()}update(e=1e3/60){e*=.001,this.frame+=1,this.visibleCells=0,this.visibleInstances=0,this.updatedParticles=0;for(const t of this.scenes)t.update(e),this.visibleCells+=t.visibleCells,this.visibleInstances+=t.visibleInstances,this.updatedParticles+=t.updatedParticles}startFrame(){const e=this.gl;e.depthMask(!0),e.clearColor(0,0,0,1),e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT)}render(){for(const e of this.scenes)e.render()}clearEmittedObjects(){for(const e of this.scenes)e.clearEmittedObjects()}}const xp=Wt(),Ep=Ma(),Lp=Wt();class Ip{constructor(){this.pivot=Wt(),this.localLocation=Wt(),this.localRotation=Ma(),this.localScale=Zt(1,1,1),this.worldLocation=Wt(),this.worldRotation=Ma(),this.worldScale=Zt(1,1,1),this.inverseWorldLocation=Wt(),this.inverseWorldRotation=Ma(),this.inverseWorldScale=Zt(1,1,1),this.localMatrix=nt(),this.worldMatrix=nt(),this.dontInheritTranslation=!1,this.dontInheritRotation=!1,this.dontInheritScaling=!0,this.parent=null,this.children=[]}setPivot(e){return Qt(this.pivot,e),this.recalculateTransformation(),this}setLocation(e){return Qt(this.localLocation,e),this.recalculateTransformation(),this}setRotation(e){return sr(this.localRotation,e),this.recalculateTransformation(),this}setScale(e){return Qt(this.localScale,e),this.recalculateTransformation(),this}setUniformScale(e){return en(this.localScale,e,e,e),this.recalculateTransformation(),this}setTransformation(e,t,n){const a=this.localLocation,r=this.localRotation,i=this.localScale;return a[0]=e[0],a[1]=e[1],a[2]=e[2],r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=t[3],i[0]=n[0],i[1]=n[1],i[2]=n[2],this.recalculateTransformation(),this}resetTransformation(){return Qt(this.pivot,ns),Qt(this.localLocation,ns),sr(this.localRotation,is),Qt(this.localScale,as),this.recalculateTransformation(),this}movePivot(e){return tn(this.pivot,this.pivot,e),this.recalculateTransformation(),this}move(e){return tn(this.localLocation,this.localLocation,e),this.recalculateTransformation(),this}rotate(e){return ur(this.localRotation,this.localRotation,e),this.recalculateTransformation(),this}rotateLocal(e){return ur(this.localRotation,e,this.localRotation),this.recalculateTransformation(),this}scale(e){return Dn(this.localScale,this.localScale,e),this.recalculateTransformation(),this}uniformScale(e){return dn(this.localScale,this.localScale,e),this.recalculateTransformation(),this}face(e,t){return Ja(this.localRotation,ws(this.localRotation,this.localLocation,e,t)),this.recalculateTransformation(),this}setParent(e){if(this.parent){const e=this.parent.children,t=e.indexOf(this);-1!==t&&e.splice(t,1)}return this.parent=e||null,e&&e.children.push(this),this.recalculateTransformation(),this}recalculateTransformation(){const e=this.parent,t=this.localMatrix,n=this.localLocation,a=this.localRotation,r=this.localScale,i=this.worldMatrix,s=this.worldLocation,l=this.worldRotation,o=this.worldScale,u=this.inverseWorldLocation,c=this.inverseWorldRotation,d=this.inverseWorldScale;if(e){const s=xp,u=e.pivot;let c,d;if(s[0]=n[0]+u[0],s[1]=n[1]+u[1],s[2]=n[2]+u[2],this.dontInheritRotation?(c=Ep,ur(c,a,e.inverseWorldRotation)):c=a,this.dontInheritScaling){d=Lp;const t=e.inverseWorldScale;d[0]=t[0]*r[0],d[1]=t[1]*r[1],d[2]=t[2]*r[2],o[0]=r[0],o[1]=r[1],o[2]=r[2]}else{d=r;const t=e.worldScale;o[0]=t[0]*r[0],o[1]=t[1]*r[1],o[2]=t[2]*r[2]}Rt(t,c,s,d),$t(i,e.worldMatrix,t),ur(l,e.worldRotation,c)}else Rt(t,a,n,r),i[0]=t[0],i[1]=t[1],i[2]=t[2],i[3]=t[3],i[4]=t[4],i[5]=t[5],i[6]=t[6],i[7]=t[7],i[8]=t[8],i[9]=t[9],i[10]=t[10],i[11]=t[11],i[12]=t[12],i[13]=t[13],i[14]=t[14],i[15]=t[15],l[0]=a[0],l[1]=a[1],l[2]=a[2],l[3]=a[3],o[0]=r[0],o[1]=r[1],o[2]=r[2];c[0]=-l[0],c[1]=-l[1],c[2]=-l[2],c[3]=l[3],d[0]=1/o[0],d[1]=1/o[1],d[2]=1/o[2],s[0]=i[12],s[1]=i[13],s[2]=i[14],u[0]=-s[0],u[1]=-s[1],u[2]=-s[2];for(const e of this.children)e.recalculateTransformation()}update(e){for(const t of this.children)t.update(e)}}class Up{constructor(){this.x=0,this.y=0,this.z=0,this.r=0}fromExtents(e,t){const n=e[0],a=e[1],r=e[2],i=t[0]-n,s=t[1]-a,l=t[2]-r;this.x=n+i/2,this.y=a+s/2,this.z=r+l/2,this.r=Math.max(0,Math.max(i,s,l)/2)}}class Rp extends vp{constructor(){super(...arguments),this.bounds=new Up}}class Cp extends Ip{constructor(e){super(),this.scene=null,this.left=-1,this.right=-1,this.bottom=-1,this.top=-1,this.plane=-1,this.depth=0,this.updateFrame=0,this.timeScale=1,this.rendered=!0,this.textureOverrides=new Map,this.model=e}show(){this.rendered=!0}hide(){this.rendered=!1}shown(){return this.rendered}hidden(){return!this.rendered}detach(){return!!this.scene&&this.scene.removeInstance(this)}overrideTexture(e,t){t?this.textureOverrides.set(e,t):this.textureOverrides.delete(e)}getBounds(){return this.model.bounds}clearEmittedObjects(){}setScene(e){return e.addInstance(this)}recalculateTransformation(){super.recalculateTransformation(),this.scene&&this.scene.grid.moved(this)}update(e){const t=this.scene;t&&this.rendered&&this.isVisible(t.camera)&&(t.renderInstance(this),this.updateAnimations(e*this.timeScale),super.update(e))}updateAnimations(e){}renderOpaque(){}renderTranslucent(){}isVisible(e){const[t,n,a]=this.worldLocation,[r,i,s]=this.worldScale,l=this.getBounds(),o=e.planes;let u=r;return i>u&&(u=i),s>u&&(u=s),this.plane=ds(o,t+l.x,n+l.y,a+l.z,l.r*u,this.plane),-1===this.plane&&(this.depth=cs(o[4],t,n,a),!0)}}const Mp={WebGL:lp,Shader:sp,ClientBuffer:ap,DataTexture:ip,ClientDataTexture:rp};const Bp={isValidSource(e){return e instanceof Rm||((t=e)instanceof ArrayBuffer&&(t=new Uint8Array(t)),t instanceof Uint8Array&&66===t[0]&&76===t[1]&&80===t[2]&&49===t[3]);var t},resource:class extends Ap{constructor(e,t){let n;super(t),e instanceof Rm?n=e:(n=new Rm,n.load(e));const a=this.viewer.gl,r=a.createTexture();a.bindTexture(a.TEXTURE_2D,r),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.LINEAR);const i=Us(n.width)&&Us(n.height);i||(a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE));const s=n.mipmaps();if(1===s||n.fakeMipmaps()||!i){const e=n.getMipmap(0);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR),a.texImage2D(a.TEXTURE_2D,0,a.RGBA,a.RGBA,a.UNSIGNED_BYTE,e)}else{a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR_MIPMAP_LINEAR);let e=n.width,t=n.height;for(let r=0;r<s;r++){const i=n.getMipmap(r);a.texImage2D(a.TEXTURE_2D,r,a.RGBA,e,t,0,a.RGBA,a.UNSIGNED_BYTE,i.data),e=Math.ceil(e/2),t=Math.ceil(t/2)}}this.width=n.width,this.height=n.height,this.webglResource=r}}};const Np={load(e){e.webgl.ensureExtension("WEBGL_compressed_texture_s3tc")||console.warn("DDS: No compressed textures support! This might reduce performance.")},isValidSource:e=>e instanceof Jm||Wm(e),resource:class extends Ap{constructor(e,t){let n;super(t),e instanceof Jm?n=e:(n=new Jm,n.load(e));const a=this.viewer,r=a.gl,i=a.webgl.extensions.WEBGL_compressed_texture_s3tc,s=n.format;let l=0;i&&(s===zm?l=i.COMPRESSED_RGB_S3TC_DXT1_EXT:s===jm?l=i.COMPRESSED_RGBA_S3TC_DXT3_EXT:s===Xm&&(l=i.COMPRESSED_RGBA_S3TC_DXT5_EXT));const o=r.createTexture();this.width=n.width,this.height=n.height,this.webglResource=o,r.bindTexture(r.TEXTURE_2D,o);const u=n.mipmaps();s!==zm&&s!==$m||r.pixelStorei(r.UNPACK_ALIGNMENT,2);for(let e=0;e<u;e++){const{width:t,height:a,data:i}=n.getMipmap(e,0!==l);l?r.compressedTexImage2D(r.TEXTURE_2D,e,l,t,a,0,i):s===zm||s===jm||s===Xm?r.texImage2D(r.TEXTURE_2D,e,r.RGBA,t,a,0,r.RGBA,r.UNSIGNED_BYTE,i):r.texImage2D(r.TEXTURE_2D,e,r.LUMINANCE_ALPHA,t,a,0,r.LUMINANCE_ALPHA,r.UNSIGNED_BYTE,i)}r.pixelStorei(r.UNPACK_ALIGNMENT,4),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR),u>1?r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR_MIPMAP_LINEAR):r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR)}}};class Pp{constructor(e,t){this.texture=null,this.wrapS=33071,this.wrapT=33071,e&&(this.wrapS=10497),t&&(this.wrapT=10497)}}const kp={diffuse:1,decal:2,specular:3,gloss:4,emissive:5,emissive2:6,evio:7,evioMask:8,alphaMask:9,alphaMask2:10,normal:11,heightMap:12,lightMap:13,ao:14};class Op{constructor(e,t,n,a,r){this.active=0,this.layer=null,this.source="",this.texture=null,this.flags=0,this.colorChannels=0,this.type="",this.op=0,this.uvCoordinate=0,this.textureUnit=0,this.invert=0,this.clampResult=0,this.teamColorMode=0;const i=e.model;this.model=i,this.material=e,this.gl=e.gl,this.index=t;const s="u_"+a,l=s+"LayerSettings.";if(this.uniformMap={map:s+"Map",enabled:l+"enabled",op:l+"op",channels:l+"channels",teamColorMode:l+"teamColorMode",invert:l+"invert",clampResult:l+"clampResult",uvCoordinate:l+"uvCoordinate"},n.entries){const e=n.first();this.layer=e;const t=i.pathSolver,s=e.imagePath.get();if(s){const n=s.toLowerCase();if(n.length){this.source=n,this.active=1;const s=e.uvSource,l=e.flags;this.flags=l,this.colorChannels=e.colorChannelSetting,this.model=i,this.type=a,this.op=r;let o=0;1===s?o=1:9===s?o=2:10===s&&(o=3),this.uvCoordinate=o,this.textureUnit=kp[a],this.invert=16&l,this.clampResult=32&l,"diffuse"===a&&(this.teamColorMode=1);const u=new Pp(!!(4&l),!!(8&l));i.viewer.load(n,t).then(e=>{e&&(u.texture=e)}),this.texture=u}}}}bind(e,t){const n=this.gl,a=this.uniformMap,r=e.uniforms,i=this.active;if(n.uniform1f(r[a.enabled],i),i){const e=this.texture,i=t.get(this.material.index*Dp+this.index)||e.texture,s=this.textureUnit;n.uniform1i(r[a.map],s),this.model.viewer.webgl.bindTextureAndWrap(i,s,e.wrapS,e.wrapT),n.uniform1f(r[a.op],this.op),n.uniform1f(r[a.channels],this.colorChannels),n.uniform1f(r[a.teamColorMode],this.teamColorMode),n.uniform1f(r[a.invert],this.invert),n.uniform1f(r[a.clampResult],this.clampResult),n.uniform1f(r[a.uvCoordinate],this.uvCoordinate)}}unbind(e){this.active&&this.gl.uniform1f(e.uniforms[this.uniformMap.enabled],0)}}const Dp=100;class Fp{constructor(e,t,n){this.model=e,this.gl=e.viewer.gl,this.index=t,this.name=n.name.get(),this.flags=n.flags,this.blendMode=n.blendMode,this.priority=n.priority,this.specularity=n.specularity,this.specMult=n.specMult,this.emisMult=n.emisMult,this.layerBlendType=n.layerBlendType,this.emisBlendType=n.emisBlendType,this.emisMode=n.emisMode,this.doubleSided=8&n.flags,this.layers=[new Op(this,0,n.diffuseLayer,"diffuse",2),new Op(this,1,n.decalLayer,"decal",2),new Op(this,2,n.specularLayer,"specular",2),new Op(this,3,n.glossLayer,"gloss",2),new Op(this,4,n.emissiveLayer,"emissive",n.emisBlendType),new Op(this,5,n.emissive2Layer,"emissive2",n.emisMode),new Op(this,6,n.evioLayer,"evio",2),new Op(this,7,n.evioMaskLayer,"evioMask",2),new Op(this,8,n.alphaMaskLayer,"alphaMask",2),new Op(this,9,n.alphaMask2Layer,"alphaMask2",2),new Op(this,10,n.normalLayer,"normal",2),new Op(this,11,n.heightLayer,"heightMap",2),new Op(this,12,n.lightMapLayer,"lightMap",2),new Op(this,13,n.ambientOcclusionLayer,"ao",2)]}bindCommon(){const e=this.gl;1===this.blendMode||2===this.blendMode?(e.enable(e.BLEND),e.blendFunc(e.ONE,e.ONE)):e.disable(e.BLEND),this.doubleSided?e.disable(e.CULL_FACE):e.enable(e.CULL_FACE),e.enable(e.DEPTH_TEST),e.depthMask(!0)}bind(e,t){const n=this.gl;this.bindCommon(),n.uniform1f(e.uniforms.u_specularity,this.specularity),n.uniform1f(e.uniforms.u_specMult,this.specMult),n.uniform1f(e.uniforms.u_emisMult,this.emisMult),n.uniform4f(e.uniforms.u_lightAmbient,.02,.02,.02,0);const a=this.layers;a[0].bind(e,t),a[1].bind(e,t),a[2].bind(e,t),a[4].bind(e,t),a[5].bind(e,t),a[10].bind(e,t),a[12].bind(e,t)}unbind(e){const t=this.gl;t.disable(t.BLEND),t.enable(t.CULL_FACE);const n=this.layers;n[0].unbind(e),n[1].unbind(e),n[2].unbind(e),n[4].unbind(e),n[5].unbind(e),n[10].unbind(e),n[12].unbind(e)}}class Gp{constructor(e){const t=e.flags;this.name=e.name.get(),this.parent=e.parent,this.location=e.location,this.rotation=e.rotation,this.scale=e.scale,this.visibility=e.visibility,this.inhertTranslation=1&t,this.inheritScale=2&t,this.inheritRotation=4&t,this.billboard1=16&t,this.billboard2=64&t,this.twoDProjection=256&t,this.animated=512&t,this.inverseKinematics=1024&t,this.skinned=2048&t,this.real=8192&t}}class Vp{constructor(e){this.name=e.name.get(),this.interval=e.interval,this.movementSpeed=e.movementSpeed,this.frequency=e.frequency,this.boundingSphere=e.boundingSphere,this.flags=e.flags}}class Kp{constructor(e){this.animIds=new Map;const t=e.animIds.get();for(let e=0,n=t.length;e<n;e++)this.animIds.set(t[e],e)}hasData(e){return this.animIds.has(e.animId)}}const Hp=Wt(),zp=Ma();class jp{constructor(e){this.keys=e.keys.get(),this.values=e.values.get(),this.biggestKey=e.biggestKey}}class Xp{constructor(){this.sd=[]}addSds(e){for(const t of e)this.sd.push(new jp(t))}getValueUnsafe(e,t,n,a){const r=this.sd[e];a&&(n%=r.biggestKey);const i=r.keys,s=r.values;let l=i.length,o=0;for(;o!==i.length&&n>i[o];)l=o,o++;const u=i.length;if(l===u)return o===u?t.initValue:s[o];if(o===u||l>=o)return s[l];const c=Ss((n-i[l])/(i[o]-i[l]),0,1),d=s[l],h=s[o],f=t.interpolationType,m=d;return 4===m.length?0===f?sr(zp,d):ja(zp,d,h,c):3===m.length?0===f?Qt(Hp,d):An(Hp,d,h,c):0===f?d:Ts(d,h,c)}}class $p{constructor(e){this.animRefs=[],this.sd=[];const t=e.animIds.get();this.name=e.name.get(),this.runsConcurrent=e.runsConcurrent,this.priority=e.priority,this.stsIndex=e.stsIndex;const n=e.animRefs.get(),a=new Uint16Array(n.buffer);for(let e=0,n=t.length;e<n;e++)this.animRefs[t[e]]=[a[2*e+1],a[2*e]];for(const t of e.sd){const e=new Xp,n=t.get();n&&e.addSds(n),this.sd.push(e)}}getValueUnsafe(e,t){const n=this.animRefs[e.animId];return n?this.sd[n[0]].getValueUnsafe(n[1],e,t.frame,this.runsConcurrent):e.initValue}}class Jp{constructor(e,t,n){this.name=e.name.get(),this.stcIndices=e.stcIndices.get(),this.sts=t,this.stc=n}getValueUnsafe(e,t){const n=this.stcIndices,a=this.stc,r=this.sts;for(let i=0,s=n.length;i<s;i++){const s=a[n[i]];if(r[s.stsIndex].hasData(e))return s.getValueUnsafe(e,t)}return e.initValue}}class Wp{constructor(e){this.name=e.name.get(),this.bone=e.bone}}class qp{constructor(e){this.bone=e.bone,this.name=e.name.get()}}class Yp{constructor(e,t,n,a,r){const i=t.firstVertexIndex,s=t.triangleIndicesCount,l=t.firstTriangleIndex;for(let e=0;e<s;e++)a[r+e]=n[l+e]+i;this.gl=e.viewer.gl,this.firstBoneLookupIndex=t.firstBoneLookupIndex,this.boneWeightPairsCount=t.boneWeightPairsCount,this.offset=2*r,this.verticesCount=t.verticesCount,this.elements=s}render(e){const t=this.gl;t.uniform1f(e.uniforms.u_firstBoneLookupIndex,this.firstBoneLookupIndex),t.uniform1f(e.uniforms.u_boneWeightPairsCount,this.boneWeightPairsCount),t.drawElements(t.TRIANGLES,this.elements,t.UNSIGNED_SHORT,this.offset)}}const Zp=Wt(),Qp=Ma(),e_=Wt(),t_=Wt(),n_=Ma();class a_{constructor(e,t,n,a,r,i,s,l,o,u,c,d){this.dontInheritTranslation=!1,this.dontInheritRotation=!1,this.dontInheritScaling=!1,this.billboarded=!1,this.billboardedX=!1,this.billboardedY=!1,this.billboardedZ=!1,this.dirty=!0,this.wasDirty=!1,this.parent=null,this.children=[],this.object=null,this.pivot=e,this.localLocation=t,this.localRotation=n,this.localScale=a,this.worldLocation=r,this.worldRotation=i,this.worldScale=s,this.inverseWorldLocation=l,this.inverseWorldRotation=o,this.inverseWorldScale=u,this.localMatrix=c,this.worldMatrix=d,this.localRotation[3]=1,this.localScale.fill(1),this.localMatrix[0]=1,this.localMatrix[5]=1,this.localMatrix[10]=1,this.localMatrix[15]=1}recalculateTransformation(e){const t=e.scene,n=this.localMatrix,a=this.localLocation,r=this.localRotation,i=this.localScale,s=this.worldMatrix,l=this.worldLocation,o=this.worldRotation,u=this.worldScale,c=this.pivot,d=this.inverseWorldLocation,h=this.inverseWorldRotation,f=this.inverseWorldScale,m=this.parent;let p,_,g;if(this.dontInheritTranslation?(tn(Zp,m.inverseWorldLocation,l),p=tn(Zp,Zp,a)):p=a,this.dontInheritScaling?(Dn(Zp,m.inverseWorldScale,e.worldScale),g=Dn(Zp,Zp,i)):g=i,this.billboarded)_=Qp,sr(_,m.inverseWorldRotation),ur(_,_,t.camera.inverseRotation),this.convertBasis(_),ur(_,_,r);else{const{billboardedX:e,billboardedY:n,billboardedZ:a}=this;e||n||a?(e&&(g===i&&(g=e_,Qt(g,i)),g[2]*=-1),n_[0]=-r[0],n_[1]=-r[1],n_[2]=-r[2],ur(n_,n_,m.inverseWorldRotation),Ln(t_,t.camera.billboardedVectors[6],n_),e?Na(n_,Qi,Math.atan2(t_[2],t_[1])):n?Na(n_,es,Math.atan2(-t_[2],t_[0])):Na(n_,ts,Math.atan2(t_[1],t_[0])),_=Qp,ur(_,r,n_)):_=r}this.dontInheritRotation&&(ur(n_,m.inverseWorldRotation,e.worldRotation),_=ur(Qp,n_,_)),Ct(n,_,p,g,c),$t(s,m.worldMatrix,n);const b=c[0],w=c[1],v=c[2];l[0]=s[0]*b+s[4]*w+s[8]*v+s[12],l[1]=s[1]*b+s[5]*w+s[9]*v+s[13],l[2]=s[2]*b+s[6]*w+s[10]*v+s[14],d[0]=-l[0],d[1]=-l[1],d[2]=-l[2],ur(o,m.worldRotation,_),h[0]=-o[0],h[1]=-o[1],h[2]=-o[2],h[3]=o[3];const A=m.worldScale;u[0]=A[0]*g[0],u[1]=A[1]*g[1],u[2]=A[2]*g[2],f[0]=1/u[0],f[1]=1/u[1],f[2]=1/u[2]}convertBasis(e){}}function r_(e,t=a_){const n=new Float32Array(65*e),a=[];let r=0;const i=3*e,s=4*e,l=16*e,o=n.subarray(r,r+i);r+=i;const u=n.subarray(r,r+i);r+=i;const c=n.subarray(r,r+s);r+=s;const d=n.subarray(r,r+i);r+=i;const h=n.subarray(r,r+i);r+=i;const f=n.subarray(r,r+s);r+=s;const m=n.subarray(r,r+i);r+=i;const p=n.subarray(r,r+i);r+=i;const _=n.subarray(r,r+s);r+=s;const g=n.subarray(r,r+i);r+=i;const b=n.subarray(r,r+l);r+=l;const w=n.subarray(r,r+l);for(let n=0;n<e;n++){const e=3*n,r=e+3,i=4*n,s=i+4,l=16*n,v=l+16;a[n]=new t(o.subarray(e,r),u.subarray(e,r),c.subarray(i,s),d.subarray(e,r),h.subarray(e,r),f.subarray(i,s),m.subarray(e,r),p.subarray(e,r),_.subarray(i,s),g.subarray(e,r),b.subarray(l,v),w.subarray(l,v))}return{data:n,nodes:a,pivots:o,localLocations:u,localRotations:c,localScales:d,worldLocations:h,worldRotations:f,worldScales:m,inverseWorldLocations:p,invereseWorldRotations:_,inverseWorldScales:g,localMatrices:b,worldMatrices:w}}class i_ extends a_{convertBasis(e){const t=Math.PI/2;Ga(e,e,t),Fa(e,e,-t)}}class s_{constructor(e){const t=e.model,n=t.bones,a=t.boneLookup,r=r_(n.length,i_),i=r.nodes;this.nodes=i,this.worldMatrices=r.worldMatrices,this.instance=e,this.modelNodes=n,this.initialReference=t.initialReference,this.sts=t.sts,this.stc=t.stc,this.stg=t.stg,this.boneLookup=a;for(let t=0,a=n.length;t<a;t++){const a=n[t];-1===a.parent?i[t].parent=e:i[t].parent=i[a.parent],a.billboard1&&(i[t].billboarded=!0)}}update(e){const t=this.instance,n=this.nodes,a=this.modelNodes;for(let r=0,i=n.length;r<i;r++){const i=n[r],s=a[r];this.getValue4(i.localRotation,s.rotation,t),this.getValue3(i.localLocation,s.location,t),this.getValue3(i.localScale,s.scale,t),i.recalculateTransformation(t);for(const t of i.children)t.recalculateTransformation(),t.update(e)}}getValueUnsafe(e,t){const n=t.sequence;return-1!==n?this.stg[n].getValueUnsafe(e,t):e.initValue}getValue(e,t){return this.getValueUnsafe(e,t)}getValue2(e,t,n){const a=this.getValueUnsafe(t,n);return e[0]=a[0],e[1]=a[1],e}getValue3(e,t,n){const a=this.getValueUnsafe(t,n);return e[0]=a[0],e[1]=a[1],e[2]=a[2],e}getValue4(e,t,n){const a=this.getValueUnsafe(t,n);return e[0]=a[0],e[1]=a[1],e[2]=a[2],e[3]=a[3],e}}const l_=nt();class o_ extends Cp{constructor(e){super(e),this.skeleton=null,this.teamColor=0,this.vertexColor=new Float32Array([1,1,1,1]),this.sequence=-1,this.frame=0,this.sequenceLoopMode=0,this.sequenceEnded=!1,this.forced=!0,this.boneTexture=null,this.skeleton=new s_(this),-1!==this.sequence&&this.setSequence(this.sequence),this.boneTexture=new ip(e.viewer.gl,3,4*e.boneLookup.length,1)}setTexture(e,t,n){this.overrideTexture(e*Dp+t,n)}updateSkeletonAndBoneTexture(e){const t=this.model,n=t.viewer.buffer,a=t.boneLookup,r=this.skeleton,i=r.nodes,s=t.initialReference,l=a.length,o=-1!==this.sequence,u=this.boneTexture;r.update(e),n.reserve(48*l);const c=n.floatView;let d;d=o?l_:this.worldMatrix;for(let e=0;e<l;e++){const t=12*e;if(o){const t=a[e];d=$t(l_,i[t].worldMatrix,s[t])}c[t+0]=d[0],c[t+1]=d[1],c[t+2]=d[2],c[t+3]=d[4],c[t+4]=d[5],c[t+5]=d[6],c[t+6]=d[8],c[t+7]=d[9],c[t+8]=d[10],c[t+9]=d[12],c[t+10]=d[13],c[t+11]=d[14]}u.bindAndUpdate(c,u.width,1)}renderOpaque(){const e=this.model,t=e.batches;if(t.length){const n=e.viewer,a=n.sharedCache.get("m3"),r=n.gl,i=e.vertexSize,s=e.uvSetCount,l=a.standardShaders[s-1],o=l.attribs,u=l.uniforms,c=this.scene,d=c.camera,h=this.textureOverrides,f=this.boneTexture;l.use(),r.uniform1f(u.u_teamColor,this.teamColor),r.uniform4fv(u.u_vertexColor,this.vertexColor),r.uniformMatrix4fv(u.u_VP,!1,d.viewProjectionMatrix),r.uniformMatrix4fv(u.u_MV,!1,d.viewMatrix),r.uniform3fv(u.u_eyePos,d.location),r.uniform3fv(u.u_lightPos,c.lightPosition),f.bind(15),r.uniform1i(u.u_boneMap,15),r.uniform1f(u.u_vectorSize,1/f.width),r.uniform1f(u.u_rowSize,1),r.bindBuffer(r.ARRAY_BUFFER,e.arrayBuffer),r.vertexAttribPointer(o.a_position,3,r.FLOAT,!1,i,0),r.vertexAttribPointer(o.a_weights,4,r.UNSIGNED_BYTE,!1,i,12),r.vertexAttribPointer(o.a_bones,4,r.UNSIGNED_BYTE,!1,i,16),r.vertexAttribPointer(o.a_normal,4,r.UNSIGNED_BYTE,!1,i,20);for(let e=0;e<s;e++)r.vertexAttribPointer(o[`a_uv${e}`],2,r.SHORT,!1,i,24+4*e);r.vertexAttribPointer(o.a_tangent,4,r.UNSIGNED_BYTE,!1,i,24+4*s),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,e.elementBuffer);for(const e of t){const t=e.material,n=e.region;t.bind(l,h),n.render(l),t.unbind(l)}}}updateAnimations(e){const t=this.sequence;if(-1!==t){const n=this.model.sequences[t],a=n.interval;this.frame+=1e3*e,this.frame>a[1]?((0!==this.sequenceLoopMode||1&n.flags)&&2!==this.sequenceLoopMode?this.frame=a[1]:this.frame=a[0],this.sequenceEnded=!0):this.sequenceEnded=!1}(this.forced||-1!==t)&&(this.forced=!1,this.updateSkeletonAndBoneTexture(e))}setTeamColor(e){return this.teamColor=e,this}setVertexColor(e){return this.vertexColor.set(e),this}setSequence(e){const t=this.model;return this.sequence=e,this.frame=0,(e<-1||e>t.sequences.length-1)&&(e=-1,this.sequence=e),this.forced=!0,this}setSequenceLoopMode(e){return this.sequenceLoopMode=e,this}getAttachment(e){const t=this.model.attachments[e];if(t)return this.skeleton.nodes[t.bone]}}class u_{constructor(e,t){this.region=e,this.material=t}}const c_="\nuniform sampler2D u_boneMap;\nuniform float u_vectorSize;\nuniform float u_rowSize;\n\nmat4 fetchMatrix(float column, float row) {\n column *= u_vectorSize * 4.0;\n row *= u_rowSize;\n // Add in half a texel, to sample in the middle of the texel.\n // Otherwise, since the sample is directly on the boundary, floating point errors can cause the sample to get the wrong pixel.\n // This is most noticeable with NPOT textures, which the bone maps are.\n column += 0.5 * u_vectorSize;\n row += 0.5 * u_rowSize;\n\n return mat4(texture2D(u_boneMap, vec2(column, row)),\n texture2D(u_boneMap, vec2(column + u_vectorSize, row)),\n texture2D(u_boneMap, vec2(column + u_vectorSize * 2.0, row)),\n texture2D(u_boneMap, vec2(column + u_vectorSize * 3.0, row)));\n}\n",d_=`\nuniform mat4 u_VP;\nuniform mat4 u_MV;\nuniform vec3 u_eyePos;\nuniform vec3 u_lightPos;\nuniform float u_firstBoneLookupIndex;\nuniform float u_boneWeightPairsCount;\nuniform vec3 u_teamColors[14];\nuniform float u_teamColor;\nuniform vec4 u_vertexColor;\n\nattribute vec3 a_position;\nattribute vec4 a_normal;\nattribute vec2 a_uv0;\n\n#ifdef EXPLICITUV1\nattribute vec2 a_uv1;\n#endif\n#ifdef EXPLICITUV2\nattribute vec2 a_uv1, a_uv2;\n#endif\n#ifdef EXPLICITUV3\nattribute vec2 a_uv1, a_uv2, a_uv3;\n#endif\n\nattribute vec4 a_tangent;\nattribute vec4 a_bones;\nattribute vec4 a_weights;\n\nvarying vec3 v_normal;\nvarying vec4 v_uv[2]; // Pack 4 vec2 in 2 vec4, to reduce the varyings count\nvarying vec3 v_lightDir;\n// varying vec3 v_eyeVec;\nvarying vec3 v_halfVec;\nvarying vec3 v_teamColor;\nvarying vec4 v_vertexColor;\n\n${c_}\n\nvec3 TBN(vec3 vector, vec3 tangent, vec3 binormal, vec3 normal) {\n return vec3(dot(vector, tangent), dot(vector, binormal), dot(vector, normal));\n}\n\nvec4 decodeVector(vec4 v) {\n return ((v / 255.0) * 2.0) - 1.0;\n}\n\nvoid transform(inout vec3 position, inout vec3 normal, inout vec3 tangent, inout vec3 binormal, vec4 bones, vec4 weights) {\n if (u_boneWeightPairsCount > 0.0) {\n mat4 bone;\n\n if (u_boneWeightPairsCount == 1.0) {\n bone = fetchMatrix(bones[0], 0.0);\n } else {\n bone += fetchMatrix(bones[0], 0.0) * weights[0];\n bone += fetchMatrix(bones[1], 0.0) * weights[1];\n bone += fetchMatrix(bones[2], 0.0) * weights[2];\n bone += fetchMatrix(bones[3], 0.0) * weights[3];\n }\n\n position = vec3(bone * vec4(position, 1.0));\n normal = mat3(bone) * normal;\n tangent = vec3(bone * vec4(tangent, 0.0));\n binormal = vec3(bone * vec4(binormal, 0.0));\n }\n}\n\nvoid main() {\n vec4 decodedNormal = decodeVector(a_normal);\n\n vec3 position = a_position;\n vec3 normal = decodedNormal.xyz;\n vec3 tangent = vec3(decodeVector(a_tangent));\n vec3 binormal = cross(normal, tangent) * decodedNormal.w;\n\n transform(position, normal, tangent, binormal, a_bones + u_firstBoneLookupIndex, a_weights / 255.0);\n\n vec3 position_mv = vec3(u_MV * vec4(position, 1));\n\n mat3 mv = mat3(u_MV);\n vec3 t = normalize(mv * tangent);\n vec3 b = normalize(mv * binormal);\n vec3 n = normalize(mv * normal);\n\n vec3 lightDir = normalize(u_lightPos - position_mv);\n\n v_lightDir = normalize(TBN(lightDir, t, b, n));\n\n vec3 eyeVec = normalize(u_eyePos - position_mv);\n vec3 halfVec = normalize(eyeVec - u_lightPos);\n\n // v_eyeVec = TBN(eyeVec, t, b, n);\n v_halfVec = TBN(halfVec, t, b, n);\n\n v_normal = n;\n\n vec4 uv0, uv1;\n\n uv0.xy = a_uv0 / 2048.0;\n\n #ifdef EXPLICITUV1\n uv0.zw = a_uv1 / 2048.0;\n #endif\n\n #ifdef EXPLICITUV2\n uv0.zw = a_uv1 / 2048.0;\n uv1.xy = a_uv2 / 2048.0;\n #endif\n\n #ifdef EXPLICITUV3\n uv0.zw = a_uv1 / 2048.0;\n uv1.xy = a_uv2 / 2048.0;\n uv1.zw = a_uv3 / 2048.0;\n #endif\n\n v_uv[0] = uv0;\n v_uv[1] = uv1;\n\n v_teamColor = u_teamColors[int(u_teamColor)];\n v_vertexColor = u_vertexColor;\n\n gl_Position = u_VP * vec4(position, 1.0);\n}\n`,h_="\n#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\n",f_=`\n${h_}\n\n\nvarying vec3 v_normal;\nvarying vec4 v_uv[2];\nvarying vec3 v_lightDir;\n// varying vec3 v_eyeVec;\nvarying vec3 v_halfVec;\nvarying vec3 v_teamColor;\nvarying vec4 v_vertexColor;\n\nstruct LayerSettings {\n bool enabled;\n float op;\n float channels;\n float teamColorMode;\n // vec3 multAddAlpha;\n // bool useAlphaFactor;\n bool invert;\n // bool multColor;\n // bool addColor;\n bool clampResult;\n // bool useConstantColor;\n // vec4 constantColor;\n // float uvSource;\n float uvCoordinate;\n // float fresnelMode;\n // float fresnelTransformMode;\n // mat4 fresnelTransform;\n // bool fresnelClamp;\n // vec3 fresnelExponentBiasScale;\n};\n\nuniform float u_specularity;\nuniform float u_specMult;\nuniform float u_emisMult;\nuniform vec4 u_lightAmbient;\n\nuniform LayerSettings u_diffuseLayerSettings;\nuniform sampler2D u_diffuseMap;\nuniform LayerSettings u_decalLayerSettings;\nuniform sampler2D u_decalMap;\nuniform LayerSettings u_specularLayerSettings;\nuniform sampler2D u_specularMap;\nuniform LayerSettings u_glossLayerSettings;\nuniform sampler2D u_glossMap;\nuniform LayerSettings u_emissiveLayerSettings;\nuniform sampler2D u_emissiveMap;\nuniform LayerSettings u_emissive2LayerSettings;\nuniform sampler2D u_emissive2Map;\nuniform LayerSettings u_evioLayerSettings;\nuniform sampler2D u_evioMap;\nuniform LayerSettings u_evioMaskLayerSettings;\nuniform sampler2D u_evioMaskMap;\nuniform LayerSettings u_alphaLayerSettings;\nuniform sampler2D u_alphaMap;\nuniform LayerSettings u_alphaMaskLayerSettings;\nuniform sampler2D u_alphaMaskMap;\nuniform LayerSettings u_normalLayerSettings;\nuniform sampler2D u_normalMap;\nuniform LayerSettings u_heightLayerSettings;\nuniform sampler2D u_heightMap;\nuniform LayerSettings u_lightMapLayerSettings;\nuniform sampler2D u_lightMapMap;\nuniform LayerSettings u_aoLayerSettings;\nuniform sampler2D u_aoMap;\n\n#define SPECULAR_RGB 0.0\n#define SPECULAR_A_ONLY 1.0\n\n#define FRESNELMODE_NONE 0.0\n#define FRESNELMODE_STANDARD 1.0\n#define FRESNELMODE_INVERTED 2.0\n\n#define FRESNELTRANSFORM_NONE 0.0\n#define FRESNELTRANSFORM_SIMPLE 1.0\n#define FRESNELTRANSFORM_NORMALIZED 2.0\n\n#define UVMAP_EXPLICITUV0 0.0\n#define UVMAP_EXPLICITUV1 1.0\n#define UVMAP_REFLECT_CUBICENVIO 2.0\n#define UVMAP_REFLECT_SPHERICALENVIO 3.0\n#define UVMAP_PLANARLOCALZ 4.0\n#define UVMAP_PLANARWORLDZ 5.0\n#define UVMAP_PARTICLE_FLIPBOOK 6.0\n#define UVMAP_CUBICENVIO 7.0\n#define UVMAP_SPHERICALENVIO 8.0\n#define UVMAP_EXPLICITUV2 9.0\n#define UVMAP_EXPLICITUV3 10.0\n#define UVMAP_PLANARLOCALX 11.0\n#define UVMAP_PLANARLOCALY 12.0\n#define UVMAP_PLANARWORLDX 13.0\n#define UVMAP_PLANARWORLDY 14.0\n#define UVMAP_SCREENSPACE 15.0\n#define UVMAP_TRIPLANAR_LOCAL 16.0\n#define UVMAP_TRIPLANAR_WORLD 17.0\n#define UVMAP_TRIPLANAR_WORLD_LOCAL_Z 18.0\n\n#define CHANNELSELECT_RGB 0.0\n#define CHANNELSELECT_RGBA 1.0\n#define CHANNELSELECT_A 2.0\n#define CHANNELSELECT_R 3.0\n#define CHANNELSELECT_G 4.0\n#define CHANNELSELECT_B 5.0\n\n#define TEAMCOLOR_NONE 0.0\n#define TEAMCOLOR_DIFFUSE 1.0\n#define TEAMCOLOR_EMISSIVE 2.0\n\n#define LAYEROP_MOD 0.0\n#define LAYEROP_MOD2X 1.0\n#define LAYEROP_ADD 2.0\n#define LAYEROP_LERP 3.0\n#define LAYEROP_TEAMCOLOR_EMISSIVE_ADD 4.0\n#define LAYEROP_TEAMCOLOR_DIFFUSE_ADD 5.0\n#define LAYEROP_ADD_NO_ALPHA 6.0\n\n// float calculateFresnelTerm(vec3 normal, vec3 eyeToVertex, float exponent, mat4 fresnelTransform, float fresnelTransformMode, bool fresnelClamp) {\n// vec3 fresnelDir = eyeToVertex;\n// float result;\n\n// if (fresnelTransformMode != FRESNELTRANSFORM_NONE) {\n// fresnelDir = (fresnelTransform * vec4(fresnelDir, 1.0)).xyz;\n\n// if (fresnelTransformMode == FRESNELTRANSFORM_NORMALIZED) {\n// fresnelDir = normalize(fresnelDir);\n// }\n// }\n\n// if (fresnelClamp) {\n// result = 1.0 - clamp(-dot(normal, fresnelDir), 0.0, 1.0);\n// } else {\n// result = 1.0 - abs(dot(normal, fresnelDir));\n// }\n\n// result = max(result, 0.0000001);\n\n// return pow(result, exponent);\n// }\n\nvec3 combineLayerColor(vec4 color, vec3 result, LayerSettings layerSettings) {\n if (layerSettings.op == LAYEROP_MOD) {\n result *= color.rgb;\n } else if (layerSettings.op == LAYEROP_MOD2X) {\n result *= color.rgb * 2.0;\n } else if (layerSettings.op == LAYEROP_ADD) {\n result += color.rgb * color.a;\n } else if (layerSettings.op == LAYEROP_ADD_NO_ALPHA) {\n result += color.rgb;\n } else if (layerSettings.op == LAYEROP_LERP) {\n result = mix(result, color.rgb, color.a);\n } else if (layerSettings.op == LAYEROP_TEAMCOLOR_EMISSIVE_ADD) {\n result += color.a * v_teamColor;\n } else if (layerSettings.op == LAYEROP_TEAMCOLOR_DIFFUSE_ADD) {\n result += color.a * v_teamColor;\n }\n\n return result;\n}\n\nvec4 chooseChannel(float channel, vec4 texel) {\n if (channel == CHANNELSELECT_R) {\n texel = texel.rrrr;\n } else if (channel == CHANNELSELECT_G) {\n texel = texel.gggg;\n } else if (channel == CHANNELSELECT_B) {\n texel = texel.bbbb;\n } else if (channel == CHANNELSELECT_A) {\n texel = texel.aaaa;\n } else if (channel == CHANNELSELECT_RGB) {\n texel.a = 1.0;\n }\n\n return texel;\n}\n\nvec2 getUV(LayerSettings layerSettings) {\n if (layerSettings.uvCoordinate == 1.0) {\n return v_uv[0].zw;\n } else if (layerSettings.uvCoordinate == 2.0) {\n return v_uv[1].xy;\n } else if (layerSettings.uvCoordinate == 3.0) {\n return v_uv[1].zw;\n }\n\n return v_uv[0].xy;\n}\n\nvec4 sampleLayer(sampler2D layer, LayerSettings layerSettings) {\n // if (layerSettings.useConstantColor) {\n // return layerSettings.constantColor;\n // }\n\n return texture2D(layer, getUV(layerSettings));\n}\n\nvec4 computeLayerColor(sampler2D layer, LayerSettings layerSettings) {\n vec4 color = sampleLayer(layer, layerSettings);\n\n // if (layerSettings.useMask) {\n // result *= mask;\n // }\n\n vec4 result = chooseChannel(layerSettings.channels, color);\n\n // if (layerSettings.useAlphaFactor) {\n // result.a *= layerSettings.multiplyAddAlpha.z;\n // }\n\n if (layerSettings.teamColorMode == TEAMCOLOR_DIFFUSE) {\n result = vec4(mix(v_teamColor, result.rgb, color.a), 1.0);\n } else if (layerSettings.teamColorMode == TEAMCOLOR_EMISSIVE) {\n result = vec4(mix(v_teamColor, result.rgb, color.a), 1.0);\n }\n\n if (layerSettings.invert) {\n result = vec4(1.0) - result;\n }\n\n // if (layerSettings.multiplyEnable) {\n // result *= layerSettings.multiplyAddAlpha.x;\n // }\n\n // if (layerSettings.addEnable) {\n // result += layerSettings.multiplyAddAlpha.y;\n // }\n\n if (layerSettings.clampResult) {\n result = clamp(result, 0.0, 1.0);\n }\n\n // if (layerSettings.fresnelMode != FRESNELMODE_NONE) {\n // float fresnelTerm = calculateFresnelTerm(v_normal, v_eyeVec, layerSettings.fresnelExponentBiasScale.x, layerSettings.fresnelTransform, layerSettings.fresnelTransformMode, layerSettings.fresnelClamp);\n \n // if (layerSettings.fresnelMode == FRESNELMODE_INVERTED) {\n // fresnelTerm = 1.0 - fresnelTerm;\n // }\n \n // fresnelTerm = clamp(fresnelTerm * layerSettings.fresnelExponentBiasScale.z + layerSettings.fresnelExponentBiasScale.y, 0.0, 1.0);\n \n // result *= fresnelTerm;\n // }\n\n return result;\n}\n\nvec3 decodeNormal(sampler2D map) {\n vec4 texel = texture2D(map, v_uv[0].xy);\n vec3 normal;\n\n normal.xy = 2.0 * texel.wy - 1.0;\n normal.z = sqrt(max(0.0, 1.0 - dot(normal.xy, normal.xy)));\n\n return normal;\n}\n\nvec4 computeSpecular(sampler2D specularMap, LayerSettings layerSettings, float specularity, float specMult, vec3 normal) {\n vec4 color;\n\n if (layerSettings.enabled) {\n color = computeLayerColor(specularMap, layerSettings);\n } else {\n color = vec4(0);\n }\n\n float factor = pow(max(-dot(v_halfVec, normal), 0.0), specularity) * specMult;\n\n return color * factor;\n}\n\n\nvoid main() {\n vec3 color;\n vec4 final = u_lightAmbient;\n vec3 normal;\n vec3 lightMapDiffuse;\n\n if (u_normalLayerSettings.enabled) {\n normal = decodeNormal(u_normalMap);\n } else {\n normal = v_normal;\n }\n\n float lambertFactor = max(dot(normal, v_lightDir), 0.0);\n\n if (lambertFactor > 0.0) {\n if (u_diffuseLayerSettings.enabled) {\n vec4 diffuseColor = computeLayerColor(u_diffuseMap, u_diffuseLayerSettings);\n\n color = combineLayerColor(diffuseColor, color, u_diffuseLayerSettings);\n }\n\n if (u_decalLayerSettings.enabled) {\n vec4 decalColor = computeLayerColor(u_decalMap, u_decalLayerSettings);\n\n color = combineLayerColor(decalColor, color, u_decalLayerSettings);\n }\n\n vec4 specularColor = computeSpecular(u_specularMap, u_specularLayerSettings, u_specularity, u_specMult, normal);\n\n if (u_lightMapLayerSettings.enabled) {\n vec4 lightMapColor = computeLayerColor(u_lightMapMap, u_lightMapLayerSettings) * 2.0;\n\n lightMapDiffuse = lightMapColor.rgb;\n }\n\n // final.rgb = color * lightMapDiffuse + specularColor.rgb;\n final.rgb = (color + specularColor.rgb) * lambertFactor;\n\n bool addEmissive = false;\n vec3 emissiveColor;\n vec4 tempColor;\n\n if (u_emissiveLayerSettings.enabled) {\n tempColor = computeLayerColor(u_emissiveMap, u_emissiveLayerSettings);\n\n if (u_emissiveLayerSettings.op == LAYEROP_MOD || u_emissiveLayerSettings.op == LAYEROP_MOD2X || u_emissiveLayerSettings.op == LAYEROP_LERP) {\n final.rgb = combineLayerColor(tempColor, final.rgb, u_emissiveLayerSettings);\n } else {\n emissiveColor = combineLayerColor(tempColor, emissiveColor, u_emissiveLayerSettings);\n addEmissive = true;\n }\n }\n\n if (u_emissive2LayerSettings.enabled) {\n tempColor = computeLayerColor(u_emissive2Map, u_emissive2LayerSettings);\n\n if (!addEmissive && (u_emissive2LayerSettings.op == LAYEROP_MOD || u_emissive2LayerSettings.op == LAYEROP_MOD2X || u_emissive2LayerSettings.op == LAYEROP_LERP)) {\n final.rgb = combineLayerColor(tempColor, final.rgb, u_emissive2LayerSettings);\n } else {\n emissiveColor = combineLayerColor(tempColor, emissiveColor, u_emissive2LayerSettings);\n addEmissive = true;\n }\n }\n\n if (addEmissive) {\n final.rgb += emissiveColor * u_emisMult;\n }\n }\n\n gl_FragColor = final * v_vertexColor;\n}\n`,m_={load(e){const t=e.gl,n=e.webgl,a=[[255,3,3],[0,66,255],[28,230,185],[84,0,129],[255,252,1],[254,138,14],[32,192,0],[229,91,176],[149,150,151],[126,191,241],[16,98,70],[78,42,4],[40,40,40],[0,0,0]];if(!n.ensureExtension("OES_texture_float"))throw new Error("M3: No float texture support!");const r=[];for(let e=0;e<4;e++){const i=n.createShader(`#define EXPLICITUV${e}\n${d_}`,f_);i.use();for(let e=0;e<14;e++){const n=a[e];t.uniform3f(i.uniforms["u_teamColors["+e+"]"],n[0]/255,n[1]/255,n[2]/255)}r[e]=i}const i={standardShaders:r};e.sharedCache.set("m3",i)},isValidSource:e=>e instanceof Zl||Ql(e),resource:class extends Rp{constructor(e,t){let n;super(t),this.name="",this.batches=[],this.materials=[[],[]],this.materialMaps=[],this.bones=[],this.sequences=[],this.sts=[],this.stc=[],this.stg=[],this.attachments=[],this.cameras=[],this.regions=[],this.initialReference=[],this.elementBuffer=null,this.arrayBuffer=null,this.vertexSize=0,this.uvSetCount=0,e instanceof Zl?n=e:(n=new Zl,n.load(e));const a=n.model,r=a.divisions.first();this.name=a.modelName.get(),this.setupGeometry(a,r);const i=a.materialReferences.get();this.materialMaps=i;const s=a.materials[0].get();for(let e=0,t=s.length;e<t;e++)this.materials[1].push(new Fp(this,e,s[e]));for(const e of r.batches.get()){const t=e.regionIndex,n=i[e.materialReferenceIndex];1===n.materialType&&this.batches.push(new u_(this.regions[t],this.materials[1][n.materialIndex]))}this.initialReference=a.absoluteInverseBoneRestPositions.get();for(const e of a.bones.get())this.bones.push(new Gp(e));this.boneLookup=a.boneLookup.get();const l=a.sequences.get();if(l)for(const e of l)this.sequences.push(new Vp(e));const o=a.sts.get();if(o)for(const e of o)this.sts.push(new Kp(e));const u=a.stc.get();if(u)for(const e of u)this.stc.push(new $p(e));const c=a.stg.get();if(c)for(const e of c)this.stg.push(new Jp(e,this.sts,this.stc));this.addGlobalAnims();const d=a.attachmentPoints.get();if(d)for(const e of d)this.attachments.push(new Wp(e));const h=a.cameras.get();if(h)for(const e of h)this.cameras.push(new qp(e))}addInstance(){return new o_(this)}setupGeometry(e,t){const n=this.viewer.gl;let a=1;const r=e.vertexFlags;262144&r?a=2:524288&r?a=3:1048576&r&&(a=4);const i=t.regions.get();let s=0;const l=[];for(let e=0,t=i.length;e<t;e++)l[e]=s,s+=i[e].triangleIndicesCount;const o=new Uint16Array(s),u=t.triangles.get();for(let e=0,t=i.length;e<t;e++)this.regions.push(new Yp(this,i[e],u,o,l[e]));const c=e.vertices.get();this.elementBuffer=n.createBuffer(),n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,this.elementBuffer),n.bufferData(n.ELEMENT_ARRAY_BUFFER,o,n.STATIC_DRAW);const d=n.createBuffer();n.bindBuffer(n.ARRAY_BUFFER,d),n.bufferData(n.ARRAY_BUFFER,c,n.STATIC_DRAW),this.arrayBuffer=d,this.vertexSize=4*(7+a),this.uvSetCount=a}mapMaterial(e){const t=this.materialMaps[e];return this.materials[1][t.materialIndex]}addGlobalAnims(){}}};let p_;"function"==typeof OfflineAudioContext&&(p_=new OfflineAudioContext(1,1,48e3));class __{constructor(){this.map={}}set(e,t){"string"!=typeof t&&(t=t.toString()),this.map[e.toLowerCase()]=t}string(e){return this.map[e.toLowerCase()]}number(e){const t=this.string(e);return t?parseFloat(t):0}}class g_{constructor(e){this.map={},e&&this.load(e)}load(e){if(e.startsWith("ID;")){const t=new Bl;t.load(e);const n=t.rows,a=n[0],r=this.map;for(let e=1,t=n.length;e<t;e++){const t=n[e];if(t){const e=t[0];if(e&&"_"!==e){r[e]||(r[e]=new __);const n=r[e];for(let e=0,r=a.length;e<r;e++){let r=a[e];void 0===r&&(r=`column${e}`),n.map[r.toLowerCase()]=t[e]}}}}}else{const t=new Cl;t.load(e);const n=t.sections,a=this.map;for(const[e,t]of n.entries()){a[e]||(a[e]=new __);const n=a[e];for(const[e,a]of t)n.map[e.toLowerCase()]=a}}}getRow(e){return this.map[e]}getProperty(e,t){return this.map[e].map[t]}setRow(e,t){this.map[e]=t}findRow(e,t){for(const n of Object.values(this.map))if(n.string(e)===t)return n}}class b_{constructor(e){this.name=e.name,this.interval=e.interval,this.nonLooping=e.nonLooping,this.rarity=e.rarity,this.bounds=new Up;const t=e.extent;this.bounds.fromExtents(t.min,t.max)}}class w_{constructor(e,t,n,a,r){this.frames=[],this.values=[],this.inTans=[],this.outTans=[],this.constant=!1,this.sd=e,this.start=t,this.end=n;const i=e.interpolationType,s=a.frames,l=a.values,o=a.inTans,u=a.outTans,c=e.defval;r&&s[0]>n&&(this.frames[0]=s[0],this.values[0]=l[0]);for(let e=0,a=s.length;e<a;e++){const a=s[e];a>=t&&a<=n&&(this.frames.push(a),this.values.push(l[e]),i>1&&(this.inTans.push(o[e]),this.outTans.push(u[e])))}const d=this.frames.length;if(0===d)this.constant=!0,this.frames[0]=t,this.values[0]=c;else if(1===d)this.constant=!0;else{const e=this.values[0];this.constant=this.values.every(t=>e.every((e,n)=>e===t[n]))}}getValue(e,t){const n=this.frames.length;if(this.constant||t<this.start)return this.sd.copy(e,this.values[0]),-1;{let a=-1,r=-1;const i=n-1;if(t<this.frames[0]||t>=this.frames[i])a=i,r=0;else for(let e=1;e<n;e++)if(this.frames[e]>t){a=e-1,r=e;break}let s=this.frames[a];const l=this.frames[r];let o=l-s;o<0&&(o+=this.end-this.start,t<s&&(s=l));const u=0==o?0:(t-s)/o;return this.sd.interpolate(e,this.values,this.inTans,this.outTans,a,r,u),a}}}const v_={KLAV:0,KATV:0,KPEV:0,KP2V:0,KRVS:0},A_=new Float32Array(1),y_=new Uint32Array(1),S_=new Float32Array([1]),T_=Wt(),x_=Ma(),E_=Zt(1,1,1),L_=T_,I_={KMTF:A_,KMTA:S_,KTAT:T_,KTAR:x_,KTAS:E_,KGAO:S_,KGAC:L_,KLAS:A_,KLAE:A_,KLAC:L_,KLAI:A_,KLBI:A_,KLBC:L_,KLAV:S_,KATV:S_,KPEE:A_,KPEG:A_,KPLN:A_,KPLT:A_,KPEL:A_,KPES:A_,KPEV:S_,KP2S:A_,KP2R:A_,KP2L:A_,KP2G:A_,KP2E:A_,KP2N:A_,KP2W:A_,KP2V:S_,KRHA:A_,KRHB:A_,KRAL:new Float32Array([0]),KRCO:L_,KRTX:A_,KRVS:S_,KCTR:T_,KTTR:T_,KCRL:y_,KGTR:T_,KGRT:x_,KGSC:E_};class U_{constructor(e,t){this.globalSequence=null,this.sequences=[];const n=e.globalSequences,a=t.globalSequenceId,r=v_[t.name];if(this.model=e,this.name=t.name,this.defval=I_[t.name],this.interpolationType=void 0!==r?r:t.interpolationType,-1!==a&&n)this.globalSequence=new w_(this,0,n[a],t,!0);else for(const n of e.sequences){const e=n.interval;this.sequences.push(new w_(this,e[0],e[1],t,!1))}}getValue(e,t,n,a){return this.globalSequence?this.globalSequence.getValue(e,a%this.globalSequence.end):this.sequences[t].getValue(e,n)}isVariant(e){return this.globalSequence?!this.globalSequence.constant:!this.sequences[e].constant}}class R_ extends U_{copy(e,t){e[0]=t[0]}interpolate(e,t,n,a,r,i,s){const l=this.interpolationType,o=t[r][0];0===l?e[0]=o:1===l?e[0]=Ts(o,t[i][0],s):2===l?e[0]=xs(o,a[r][0],n[i][0],t[i][0],s):3===l&&(e[0]=Es(o,a[r][0],n[i][0],t[i][0],s))}}class C_ extends U_{copy(e,t){Qt(e,t)}interpolate(e,t,n,a,r,i,s){const l=this.interpolationType;0===l?Qt(e,t[r]):1===l?An(e,t[r],t[i],s):2===l?yn(e,t[r],a[r],n[i],t[i],s):3===l&&Sn(e,t[r],a[r],n[i],t[i],s)}}class M_ extends U_{copy(e,t){sr(e,t)}interpolate(e,t,n,a,r,i,s){const l=this.interpolationType;0===l?sr(e,t[r]):1===l?ja(e,t[r],t[i],s):2!==l&&3!==l||Ar(e,t[r],a[r],n[i],t[i],s)}}function B_(e,t){return t instanceof io||t instanceof so?new R_(e,t):t instanceof lo?new C_(e,t):new M_(e,t)}class N_{constructor(e,t){this.animations=new Map,this.variants={},this.model=e;for(const n of t.animations)this.animations.set(n.name,B_(e,n))}getScalarValue(e,t,n,a,r,i){if(-1!==n){const i=this.animations.get(t);if(i)return i.getValue(e,n,a,r)}return e[0]=i,-1}getVectorValue(e,t,n,a,r,i){if(-1!==n){const i=this.animations.get(t);if(i)return i.getValue(e,n,a,r)}return e[0]=i[0],e[1]=i[1],e[2]=i[2],-1}getQuatValue(e,t,n,a,r,i){if(-1!==n){const i=this.animations.get(t);if(i)return i.getValue(e,n,a,r)}return e[0]=i[0],e[1]=i[1],e[2]=i[2],e[3]=i[3],-1}addVariants(e,t){const n=this.animations.get(e),a=this.model.sequences.length,r=new Uint8Array(a);if(n)for(let e=0;e<a;e++)n.isVariant(e)&&(r[e]=1);this.variants[t]=r}addVariantIntersection(e,t){const n=this.model.sequences.length,a=new Uint8Array(n);for(let t=0;t<n;t++)for(const n of e)this.variants[n][t]&&(a[t]=1);this.variants[t]=a}}class P_ extends N_{constructor(e,t){super(e,t),this.addVariants("KTAT","translation"),this.addVariants("KTAR","rotation"),this.addVariants("KTAS","scale")}getTranslation(e,t,n,a){return this.getVectorValue(e,"KTAT",t,n,a,ns)}getRotation(e,t,n,a){return this.getQuatValue(e,"KTAR",t,n,a,is)}getScale(e,t,n,a){return this.getVectorValue(e,"KTAS",t,n,a,as)}}function k_(e,t){return 0===e?[t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA]:1===e?[t.SRC_ALPHA,t.ONE]:2===e?[t.ZERO,t.SRC_COLOR]:3===e?[t.DST_COLOR,t.SRC_COLOR]:4===e?[t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA]:[0,0]}class O_ extends N_{constructor(e,t,n,a){super(e,t),this.textureId=0,this.blendSrc=0,this.blendDst=0,this.blended=!1,this.textureAnimation=null;let r=t.filterMode;const i=t.textureAnimationId,s=e.viewer.gl;this.index=n,this.priorityPlane=a,r>6&&(r=2),this.filterMode=r,-1!==t.textureId&&(this.textureId=t.textureId),this.coordId=t.coordId,this.alpha=t.alpha;const l=t.flags;if(this.unshaded=1&l,this.sphereEnvironmentMap=2&l,this.twoSided=16&l,this.unfogged=32&l,this.noDepthTest=64&l,this.noDepthSet=128&l,this.depthMaskValue=0===r||1===r,r>1&&(this.blended=!0,[this.blendSrc,this.blendDst]=function(e,t){return 2===e?[t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA]:3===e||4===e?[t.SRC_ALPHA,t.ONE]:5===e?[t.ZERO,t.SRC_COLOR]:6===e?[t.DST_COLOR,t.SRC_COLOR]:[0,0]}(r,s)),-1!==i){const t=e.textureAnimations[i];t&&(this.textureAnimation=t)}this.addVariants("KMTA","alpha"),this.addVariants("KMTF","textureId")}bind(e){const t=this.model.viewer.gl;t.uniform1f(e.uniforms.u_filterMode,this.filterMode),this.blended?(t.enable(t.BLEND),t.blendFunc(this.blendSrc,this.blendDst)):t.disable(t.BLEND),this.twoSided?t.disable(t.CULL_FACE):t.enable(t.CULL_FACE),this.noDepthTest?t.disable(t.DEPTH_TEST):t.enable(t.DEPTH_TEST),this.noDepthSet?t.depthMask(!1):t.depthMask(this.depthMaskValue)}getAlpha(e,t,n,a){return this.getScalarValue(e,"KMTA",t,n,a,this.alpha)}getTextureId(e,t,n,a){return this.getScalarValue(e,"KMTF",t,n,a,this.textureId)}}class D_{constructor(e,t,n){this.model=e,this.shader=t,this.layers=n}}class F_ extends N_{constructor(e,t){super(e,t);const n=t.color;this.alpha=t.alpha,this.color=Zt(n[2],n[1],n[0]),this.geosetId=t.geosetId,this.addVariants("KGAO","alpha"),this.addVariants("KGAC","color")}getAlpha(e,t,n,a){return this.getScalarValue(e,"KGAO",t,n,a,this.alpha)}getColor(e,t,n,a){return this.getVectorValue(e,"KGAC",t,n,a,this.color)}}const G_={1:"TeamColor/TeamColor00",2:"TeamGlow/TeamGlow00",11:"Cliff/Cliff0",21:"",31:"LordaeronTree/LordaeronSummerTree",32:"AshenvaleTree/AshenTree",33:"BarrensTree/BarrensTree",34:"NorthrendTree/NorthTree",35:"Mushroom/MushroomTree",36:"RuinsTree/RuinsTree",37:"OutlandMushroomTree/MushroomTree"};class V_ extends N_{constructor(e,t,n){super(e,t),this.index=n,this.name=t.name,this.objectId=t.objectId,this.parentId=t.parentId,this.pivot=e.pivotPoints[t.objectId]||Wt();const a=t.flags;this.dontInheritTranslation=(1&a)>0,this.dontInheritRotation=(4&a)>0,this.dontInheritScaling=(2&a)>0,this.billboarded=(8&a)>0,this.billboardedX=(16&a)>0,this.billboardedY=(32&a)>0,this.billboardedZ=(64&a)>0,this.cameraAnchored=(128&a)>0,this.anyBillboarding=this.billboarded||this.billboardedX||this.billboardedY||this.billboardedZ,t.objectId===t.parentId&&(this.parentId=-1),this.addVariants("KGTR","translation"),this.addVariants("KGRT","rotation"),this.addVariants("KGSC","scale"),this.addVariantIntersection(["translation","rotation","scale"],"generic")}getVisibility(e,t,n,a){return e[0]=1,-1}getTranslation(e,t,n,a){return this.getVectorValue(e,"KGTR",t,n,a,ns)}getRotation(e,t,n,a){return this.getQuatValue(e,"KGRT",t,n,a,is)}getScale(e,t,n,a){return this.getVectorValue(e,"KGSC",t,n,a,as)}}class K_ extends V_{constructor(e,t,n){super(e,t,n),this.geosetAnimation=e.geosetAnimations[t.geosetAnimationId]}getVisibility(e,t,n,a){return this.geosetAnimation?this.geosetAnimation.getAlpha(e,t,n,a):(e[0]=1,-1)}}class H_ extends V_{constructor(e,t,n){super(e,t,n),this.type=t.type,this.attenuation=t.attenuation,this.color=t.color,this.intensity=t.intensity,this.ambientColor=t.ambientColor,this.ambientIntensity=t.ambientIntensity}getAttenuationStart(e,t,n,a){return this.getScalarValue(e,"KLAS",t,n,a,this.attenuation[0])}getAttenuationEnd(e,t,n,a){return this.getScalarValue(e,"KLAE",t,n,a,this.attenuation[1])}getIntensity(e,t,n,a){return this.getScalarValue(e,"KLAI",t,n,a,this.intensity)}getColor(e,t,n,a){return this.getVectorValue(e,"KLAC",t,n,a,this.color)}getAmbientIntensity(e,t,n,a){return this.getScalarValue(e,"KLBI",t,n,a,this.ambientIntensity)}getAmbientColor(e,t,n,a){return this.getVectorValue(e,"KLBC",t,n,a,this.ambientColor)}}class z_ extends V_{}class j_ extends V_{constructor(e,t,n){super(e,t,n),this.internalModel=null;const a=t.path.replace(/\\/g,"/").toLowerCase().replace(".mdl",".mdx");if(this.path=a,this.attachmentId=t.attachmentId,""!==a&&-1!=a.indexOf(".mdx")){const t=e.viewer.load(a,e.pathSolver,e.solverParams);t.then(e=>{e&&(this.internalModel=e)}),e.blockers.push(t)}}getVisibility(e,t,n,a){return this.getScalarValue(e,"KATV",t,n,a,1)}}class X_ extends V_{constructor(e,t,n){super(e,t,n),this.internalModel=null,this.ok=!1,this.speed=t.speed,this.latitude=t.latitude,this.longitude=t.longitude,this.lifeSpan=t.lifeSpan,this.gravity=t.gravity,this.emissionRate=t.emissionRate,e.viewer.load(t.path.replace(/\\/g,"/").toLowerCase().replace(".mdl",".mdx"),e.pathSolver,e.solverParams).then(e=>{e&&(this.internalModel=e,this.ok=!0)})}getSpeed(e,t,n,a){return this.getScalarValue(e,"KPES",t,n,a,this.speed)}getLatitude(e,t,n,a){return this.getScalarValue(e,"KPLTV",t,n,a,this.latitude)}getLongitude(e,t,n,a){return this.getScalarValue(e,"KPLN",t,n,a,this.longitude)}getLifeSpan(e,t,n,a){return this.getScalarValue(e,"KPEL",t,n,a,this.lifeSpan)}getGravity(e,t,n,a){return this.getScalarValue(e,"KPEG",t,n,a,this.gravity)}getEmissionRate(e,t,n,a){return this.getScalarValue(e,"KPEE",t,n,a,this.emissionRate)}getVisibility(e,t,n,a){return this.getScalarValue(e,"KPEV",t,n,a,1)}}const $_=Wt(),J_=Wt(),W_=Wt(),q_=60,Y_=1e4;function Z_(e,t){const n=e.objects,a=t.floatView;let r=0;for(const e of n){const t=15*r,n=t+0,i=e.vertices;a[n+0]=i[0],a[n+1]=i[1],a[n+2]=i[2],a[n+3]=i[3],a[n+4]=i[4],a[n+5]=i[5],a[n+6]=i[6],a[n+7]=i[7],a[n+8]=i[8],a[n+9]=i[9],a[n+10]=i[10],a[n+11]=i[11],a[t+12]=e.health,r+=1}}function Q_(e,t){let n=e.alive;const a=e.emitterObject.geometryEmitterType;if(1===a&&(n-=1),n>0){const r=e.instance.model.viewer,i=r.buffer,s=r.gl,l=r.webgl.extensions.ANGLE_instanced_arrays,o=n*q_,u=t.attribs;i.reserve(o),0===a?(function(e,t){const n=e.instance,a=e.objects,r=t.byteView,i=t.floatView,s=e.emitterObject,l=s.modelSpace,o=s.tailLength,u=e.node,c=n.teamColor;let d=0;for(const e of a){const t=d*q_,n=15*d,a=n+0;let s=e.location;const h=e.scale,f=e.tail;if(0===f)l&&(s=xn($_,s,u.worldMatrix)),i[a+0]=s[0],i[a+1]=s[1],i[a+2]=s[2],i[a+3]=e.facing;else{const t=e.velocity;let n=J_,r=s;n[0]=r[0]-o*t[0],n[1]=r[1]-o*t[1],n[2]=r[2]-o*t[2],l&&(n=xn(n,n,u.worldMatrix),r=xn(W_,r,u.worldMatrix)),i[a+0]=n[0],i[a+1]=n[1],i[a+2]=n[2],i[a+3]=r[0],i[a+4]=r[1],i[a+5]=r[2]}i[a+6]=h[0],i[a+7]=h[0],i[a+8]=h[0],i[n+12]=e.health,r[t+56]=f,r[t+57]=c,d+=1}}(e,i),function(e,t){const n=e.instance,a=n.textureOverrides,r=n.scene.camera,i=e.emitterObject,s=i.model,l=s.viewer,o=l.gl,u=l.sharedCache.get("mdx"),c=t.uniforms,d=i.colors,h=i.intervals,f=i.replaceableId;let m,p=i.internalTexture;o.blendFunc(i.blendSrc,i.blendDst),o.uniform1f(c.u_filterMode,i.filterMode),p=i.internalTexture?i.internalTexture:1===f?u.teamColors[n.teamColor]:2===f?u.teamGlows[n.teamColor]:s.textures[i.textureId];let _=a.get(1e3+i.index);_||(0===f&&(_=a.get(i.textureId)),_||(_=p.texture)),l.webgl.bindTextureAndWrap(_,0,p.wrapS,p.wrapT),m=i.xYQuad?r.vectors:r.billboardedVectors,o.uniform1f(c.u_lifeSpan,i.lifeSpan),o.uniform1f(c.u_timeMiddle,i.timeMiddle),o.uniform1f(c.u_columns,i.columns),o.uniform1f(c.u_rows,i.rows),o.uniform1f(c.u_teamColored,i.teamColored),o.uniform3fv(c["u_intervals[0]"],h[0]),o.uniform3fv(c["u_intervals[1]"],h[1]),o.uniform3fv(c["u_intervals[2]"],h[2]),o.uniform3fv(c["u_intervals[3]"],h[3]),o.uniform4fv(c["u_colors[0]"],d[0]),o.uniform4fv(c["u_colors[1]"],d[1]),o.uniform4fv(c["u_colors[2]"],d[2]),o.uniform3fv(c.u_scaling,i.scaling),i.head&&(o.uniform3fv(c["u_vertices[0]"],m[0]),o.uniform3fv(c["u_vertices[1]"],m[1]),o.uniform3fv(c["u_vertices[2]"],m[2]),o.uniform3fv(c["u_vertices[3]"],m[3])),i.tail&&o.uniform3fv(c.u_cameraZ,r.directionZ)}(e,t)):1===a?(function(e,t){let n=e.first;const a=t.byteView,r=t.floatView,i=e.emitterObject.columns,s=1/(e.alive-1);let l=0;for(;n.next;){const e=n.next.vertices,t=l*q_,o=15*l+0,u=t+52,c=t+57,d=(n.slot%i+(1-l*s-s))/i,h=n.slot/i,f=d+s,m=n.vertices,p=n.color;r[o+0]=m[0],r[o+1]=m[1],r[o+2]=m[2],r[o+3]=m[3],r[o+4]=m[4],r[o+5]=m[5],r[o+6]=e[3],r[o+7]=e[4],r[o+8]=e[5],r[o+9]=e[0],r[o+10]=e[1],r[o+11]=e[2],a[u+0]=p[0],a[u+1]=p[1],a[u+2]=p[2],a[u+3]=p[3],a[c+0]=255*d,a[c+1]=255*f,a[c+2]=255*h,n=n.next,l+=1}}(e,i),function(e,t){const n=e.instance.textureOverrides,a=e.emitterObject,r=a.layer,i=a.model,s=i.viewer.gl,l=t.uniforms,o=i.textures[r.textureId],u=n.get(r.textureId)||o.texture;r.bind(t),s.uniform1f(l.u_filterMode,r.filterMode),i.viewer.webgl.bindTextureAndWrap(u,0,o.wrapS,o.wrapT),s.uniform1f(l.u_columns,a.columns),s.uniform1f(l.u_rows,a.rows)}(e,t)):2===a?(Z_(e,i),function(e,t){const n=e.instance.textureOverrides,a=e.emitterObject,r=a.intervalTimes,i=a.intervals,s=a.colors,l=a.model,o=l.viewer.gl,u=t.uniforms,c=a.internalTexture,d=n.get(Y_+a.index)||c.texture;o.blendFunc(a.blendSrc,a.blendDst),l.viewer.webgl.bindTextureAndWrap(d,0,c.wrapS,c.wrapT),o.uniform1f(u.u_lifeSpan,a.lifeSpan),o.uniform1f(u.u_columns,a.columns),o.uniform1f(u.u_rows,a.rows),o.uniform3f(u.u_intervalTimes,r[0],r[1],0),o.uniform3fv(u["u_intervals[0]"],i[0]),o.uniform3fv(u["u_intervals[1]"],i[1]),o.uniform4fv(u["u_colors[0]"],s[0]),o.uniform4fv(u["u_colors[1]"],s[1]),o.uniform4fv(u["u_colors[2]"],s[2])}(e,t)):(Z_(e,i),function(e,t){const n=e.instance.textureOverrides,a=e.emitterObject,r=a.intervalTimes,i=a.colors,s=a.model,l=s.viewer.gl,o=t.uniforms,u=a.internalTexture,c=n.get(Y_+a.index)||u.texture;l.blendFunc(a.blendSrc,a.blendDst),s.viewer.webgl.bindTextureAndWrap(c,0,u.wrapS,u.wrapT),l.uniform1f(o.u_lifeSpan,a.lifeSpan),l.uniform1f(o.u_columns,a.columns),l.uniform1f(o.u_rows,a.rows),l.uniform3fv(o.u_intervalTimes,r),l.uniform4fv(o["u_colors[0]"],i[0]),l.uniform4fv(o["u_colors[1]"],i[1]),l.uniform4fv(o["u_colors[2]"],i[2])}(e,t)),i.bindAndUpdate(o),s.uniform1i(t.uniforms.u_emitter,a),s.vertexAttribPointer(u.a_p0,3,s.FLOAT,!1,q_,0),s.vertexAttribPointer(u.a_p1,3,s.FLOAT,!1,q_,12),s.vertexAttribPointer(u.a_p2,3,s.FLOAT,!1,q_,24),s.vertexAttribPointer(u.a_p3,3,s.FLOAT,!1,q_,36),s.vertexAttribPointer(u.a_health,1,s.FLOAT,!1,q_,48),s.vertexAttribPointer(u.a_color,4,s.UNSIGNED_BYTE,!0,q_,52),s.vertexAttribPointer(u.a_tail,1,s.UNSIGNED_BYTE,!1,q_,56),s.vertexAttribPointer(u.a_leftRightTop,3,s.UNSIGNED_BYTE,!1,q_,57),l.drawArraysInstancedANGLE(s.TRIANGLES,0,6,n)}}class eg{constructor(e,t){this.texture=null,this.wrapS=33071,this.wrapT=33071,this.replaceableId=e,1&t&&(this.wrapS=10497),2&t&&(this.wrapT=10497)}}class tg extends V_{constructor(e,t,n){super(e,t,n),this.geometryEmitterType=0,this.teamColored=0,this.internalTexture=null,this.colors=[],this.ok=!0,this.width=t.width,this.length=t.length,this.speed=t.speed,this.latitude=t.latitude,this.gravity=t.gravity,this.emissionRate=2*t.emissionRate,this.squirt=t.squirt,this.lifeSpan=t.lifeSpan,this.variation=t.variation,this.tailLength=t.tailLength,this.timeMiddle=t.timeMiddle;const a=t.flags;this.lineEmitter=131072&a,this.unfogged=262144&a,this.modelSpace=524288&a,this.xYQuad=1048576&a;const r=t.replaceableId;if(this.columns=t.columns,this.rows=t.rows,1===r||2===r)this.teamColored=1;else if(r>2){const t=e.reforged?".dds":".blp";this.internalTexture=new eg(r,0),e.viewer.load(`ReplaceableTextures\\${G_[r]}${t}`,e.pathSolver,e.solverParams).then(e=>{e&&(this.internalTexture.texture=e)})}this.replaceableId=t.replaceableId,this.textureId=t.textureId;const i=t.headOrTail;this.head=0===i||2===i,this.tail=1===i||2===i,this.cellWidth=1/t.columns,this.cellHeight=1/t.rows;const s=t.segmentColors,l=t.segmentAlphas;for(let e=0;e<3;e++){const t=s[e];this.colors[e]=new Float32Array([t[0],t[1],t[2],l[e]/255])}this.scaling=t.segmentScaling;const o=t.headIntervals,u=t.tailIntervals;this.intervals=[new Float32Array(o[0]),new Float32Array(o[1]),new Float32Array(u[0]),new Float32Array(u[1])];const c=k_(t.filterMode,this.model.viewer.gl);this.filterMode=t.filterMode,this.blendSrc=c[0],this.blendDst=c[1],this.priorityPlane=t.priorityPlane}getWidth(e,t,n,a){return this.getScalarValue(e,"KP2N",t,n,a,this.width)}getLength(e,t,n,a){return this.getScalarValue(e,"KP2W",t,n,a,this.length)}getSpeed(e,t,n,a){return this.getScalarValue(e,"KP2S",t,n,a,this.speed)}getLatitude(e,t,n,a){return this.getScalarValue(e,"KP2L",t,n,a,this.latitude)}getGravity(e,t,n,a){return this.getScalarValue(e,"KP2G",t,n,a,this.gravity)}getEmissionRate(e,t,n,a){return this.getScalarValue(e,"KP2E",t,n,a,this.emissionRate)}getVariation(e,t,n,a){return this.getScalarValue(e,"KP2R",t,n,a,this.variation)}getVisibility(e,t,n,a){return this.getScalarValue(e,"KP2V",t,n,a,1)}}class ng extends V_{constructor(e,t,n){super(e,t,n),this.geometryEmitterType=1,this.ok=!0,this.layer=e.materials[t.materialId].layers[0],this.heightAbove=t.heightAbove,this.heightBelow=t.heightBelow,this.alpha=t.alpha,this.color=t.color,this.lifeSpan=t.lifeSpan,this.textureSlot=t.textureSlot,this.emissionRate=2*t.emissionRate,this.gravity=t.gravity,this.columns=t.columns,this.rows=t.rows}getHeightBelow(e,t,n,a){return this.getScalarValue(e,"KRHB",t,n,a,this.heightBelow)}getHeightAbove(e,t,n,a){return this.getScalarValue(e,"KRHA",t,n,a,this.heightAbove)}getTextureSlot(e,t,n,a){return this.getScalarValue(e,"KRTX",t,n,a,0)}getColor(e,t,n,a){return this.getVectorValue(e,"KRCO",t,n,a,this.color)}getAlpha(e,t,n,a){return this.getScalarValue(e,"KRAL",t,n,a,this.alpha)}getVisibility(e,t,n,a){const r=this.getAlpha(e,t,n,a);return 0===e[0]?r:this.getScalarValue(e,"KRVS",t,n,a,1)}}class ag extends N_{constructor(e,t){super(e,t),this.name=t.name,this.position=t.position,this.fieldOfView=t.fieldOfView,this.farClippingPlane=t.farClippingPlane,this.nearClippingPlane=t.nearClippingPlane,this.targetPosition=t.targetPosition}getTranslation(e,t,n,a){return this.getVectorValue(e,"KCTR",t,n,a,ns)}getTargetTranslation(e,t,n,a){return this.getVectorValue(e,"KTTR",t,n,a,ns)}getRotation(e,t,n,a){return this.getScalarValue(e,"KCRL",t,n,a,0)}}class rg extends V_{constructor(e,t,n){super(e,t,n),this.geometryEmitterType=-1,this.globalSequence=-1,this.defval=new Uint32Array(1),this.internalModel=null,this.internalTexture=null,this.colors=[],this.intervalTimes=new Float32Array(3),this.scale=0,this.columns=0,this.rows=0,this.lifeSpan=0,this.blendSrc=0,this.blendDst=0,this.intervals=[],this.distanceCutoff=0,this.maxDistance=0,this.minDistance=0,this.pitch=0,this.pitchVariance=0,this.volume=0,this.decodedBuffers=[],this.ok=!1;const a=e.viewer,r=t.name;let i=r.substring(0,3);const s=r.substring(4);"FPT"===i&&(i="SPL"),"SPL"===i?this.geometryEmitterType=2:"UBR"===i&&(this.geometryEmitterType=3),this.type=i,this.id=s,this.tracks=t.tracks;const l=t.globalSequenceId;if(-1!==l&&(this.globalSequence=e.globalSequences[l]),"SND"===i&&!a.audioEnabled)return;const o=a.promise();bb.getEventObjectData(a,i,s,e.hd).then(e=>{if(o(),e){const{row:t,resources:n}=e;if(this.ok=!0,"SPN"===i)this.internalModel=n[0];else if("SPL"===i||"UBR"===i){this.internalTexture=new eg(0,3),this.internalTexture.texture=n[0],this.scale=t.number("Scale"),this.colors[0]=new Float32Array([t.number("StartR"),t.number("StartG"),t.number("StartB"),t.number("StartA")]),this.colors[1]=new Float32Array([t.number("MiddleR"),t.number("MiddleG"),t.number("MiddleB"),t.number("MiddleA")]),this.colors[2]=new Float32Array([t.number("EndR"),t.number("EndG"),t.number("EndB"),t.number("EndA")]),"SPL"===i?(this.columns=t.number("Columns"),this.rows=t.number("Rows"),this.lifeSpan=t.number("Lifespan")+t.number("Decay"),this.intervalTimes[0]=t.number("Lifespan"),this.intervalTimes[1]=t.number("Decay"),this.intervals[0]=new Float32Array([t.number("UVLifespanStart"),t.number("UVLifespanEnd"),t.number("LifespanRepeat")]),this.intervals[1]=new Float32Array([t.number("UVDecayStart"),t.number("UVDecayEnd"),t.number("DecayRepeat")])):(this.columns=1,this.rows=1,this.lifeSpan=t.number("BirthTime")+t.number("PauseTime")+t.number("Decay"),this.intervalTimes[0]=t.number("BirthTime"),this.intervalTimes[1]=t.number("PauseTime"),this.intervalTimes[2]=t.number("Decay"));const e=k_(t.number("BlendMode"),a.gl);this.blendSrc=e[0],this.blendDst=e[1]}else{this.distanceCutoff=t.number("DistanceCutoff"),this.maxDistance=t.number("MaxDistance"),this.minDistance=t.number("MinDistance"),this.pitch=t.number("Pitch"),this.pitchVariance=t.number("PitchVariance"),this.volume=t.number("Volume");for(const e of n)this.decodedBuffers.push(e.data)}}})}getValue(e,t){if(-1!==this.globalSequence){const n=this.globalSequence;return this.getValueAtTime(e,t.counter%n,0,n)}if(-1!==t.sequence){const n=this.model.sequences[t.sequence].interval;return this.getValueAtTime(e,t.frame,n[0],n[1])}return e[0]=this.defval[0],-1}getValueAtTime(e,t,n,a){const r=this.tracks;if(t>=n&&t<=a)for(let a=r.length-1;a>-1;a--){if(r[a]<n)return e[0]=0,a;if(r[a]<=t)return e[0]=1,a}return e[0]=0,-1}}class ig extends V_{constructor(e,t,n){super(e,t,n),this.type=t.type,this.vertices=t.vertices,this.boundsRadius=t.boundsRadius}}var sg;!function(e){e[e.VertexGroups=0]="VertexGroups",e[e.ExtendedVertexGroups=1]="ExtendedVertexGroups",e[e.Skin=2]="Skin"}(sg||(sg={}));class lg{constructor(e,t,n,a,r){let i,s;r?(i=n,s=i.layers[0]):(i=null,s=n),this.index=e,this.geoset=t,this.skinningType=a,this.isHd=r,this.layer=s,this.material=i}}class og{constructor(e,t,n,a,r,i,s,l,o,u,c){this.geosetAnimation=null,this.model=e,this.index=t,this.positionOffset=n,this.normalOffset=a,this.uvOffset=r,this.tangentOffset=i,this.skinOffset=s,this.faceOffset=l,this.vertices=o,this.elements=u,this.faceType=c;for(const n of e.geosetAnimations)n.geosetId===t&&(this.geosetAnimation=n)}bindShared(e,t,n){e.vertexAttribPointer(t.a_position,3,e.FLOAT,!1,0,this.positionOffset),e.vertexAttribPointer(t.a_normal,3,e.FLOAT,!1,0,this.normalOffset),e.vertexAttribPointer(t.a_uv,2,e.FLOAT,!1,0,this.uvOffset+n*this.vertices*8)}bindVertexGroups(e,t){const n=this.model,a=n.skinDataType,r=n.bytesPerSkinElement;e.vertexAttribPointer(t.a_bones,4,a,!1,5*r,this.skinOffset),e.vertexAttribPointer(t.a_boneNumber,1,a,!1,5*r,this.skinOffset+4*r)}bindVertexGroupsExtended(e,t){const n=this.model,a=n.skinDataType,r=n.bytesPerSkinElement;e.vertexAttribPointer(t.a_bones,4,a,!1,9*r,this.skinOffset),e.vertexAttribPointer(t.a_extendedBones,4,a,!1,9*r,this.skinOffset+4*r),e.vertexAttribPointer(t.a_boneNumber,1,a,!1,9*r,this.skinOffset+8*r)}bindSkin(e,t){e.vertexAttribPointer(t.a_bones,4,e.UNSIGNED_BYTE,!1,8,this.skinOffset),e.vertexAttribPointer(t.a_weights,4,e.UNSIGNED_BYTE,!0,8,this.skinOffset+4)}bind(e,t){const n=this.model.viewer.gl,a=e.attribs;this.bindShared(n,a,t),void 0!==a.a_weights?this.bindSkin(n,a):this.bindVertexGroups(n,a)}bindExtended(e,t){const n=this.model.viewer.gl,a=e.attribs;this.bindShared(n,a,t),this.bindVertexGroupsExtended(n,a)}bindHd(e,t,n){const a=this.model.viewer.gl,r=e.attribs;this.bindShared(a,r,n),a.vertexAttribPointer(r.a_tangent,4,a.FLOAT,!1,0,this.tangentOffset),t===sg.Skin?this.bindSkin(a,r):t===sg.ExtendedVertexGroups?this.bindVertexGroupsExtended(a,r):this.bindVertexGroups(a,r)}render(){const e=this.model.viewer.gl;e.drawElements(this.faceType,this.elements,e.UNSIGNED_SHORT,this.faceOffset)}}class ug{constructor(e,t,n){this.objects=[],this.model=e,this.skinningType=t,this.isHd=n}render(e){const t=e.scene,n=t.camera,a=e.textureOverrides,r=e.layerAlphas,i=this.model,s=i.textures,l=i.batches,o=i.viewer,u=o.sharedCache.get("mdx"),c=o.gl,d=o.webgl,h=this.skinningType,f=this.isHd,m=u.teamColors,p=u.teamGlows,_=bb.getBatchShader(o,h,f);_.use();const g=_.uniforms;c.uniformMatrix4fv(g.u_VP,!1,n.viewProjectionMatrix);const b=e.boneTexture;if(b?(b.bind(15),c.uniform1f(g.u_hasBones,1),c.uniform1i(g.u_boneMap,15),c.uniform1f(g.u_vectorSize,1/b.width),c.uniform1f(g.u_rowSize,1)):c.uniform1f(g.u_hasBones,0),c.uniform3fv(g.u_lightPos,t.lightPosition),c.bindBuffer(c.ARRAY_BUFFER,i.arrayBuffer),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,i.elementBuffer),f){c.uniform1i(g.u_diffuseMap,0),c.uniform1i(g.u_normalsMap,1),c.uniform1i(g.u_ormMap,2),c.uniform1i(g.u_emissiveMap,3),c.uniform1i(g.u_teamColorMap,4),c.uniform1i(g.u_environmentMap,5),c.disable(c.BLEND),c.enable(c.DEPTH_TEST),c.depthMask(!0),c.uniformMatrix4fv(g.u_MV,!1,n.viewMatrix),c.uniform3fv(g.u_eyePos,n.location);for(const t of this.objects){const n=l[t],i=n.geoset,o=n.material,[u,h,f,p,b,w]=o.layers,v=r[u.index];if(v>0){c.uniform1f(g.u_layerAlpha,v),c.uniform1f(g.u_filterMode,u.filterMode);const t=u.textureId,r=h.textureId,l=f.textureId,o=p.textureId,A=b.textureId,y=w.textureId,S=s[t],T=s[r],x=s[l],E=s[o];let L=s[A];const I=s[y];0!==L.replaceableId&&1!==L.replaceableId||(L=m[e.teamColor]);const U=a.get(t)||S.texture,R=a.get(r)||T.texture,C=a.get(l)||x.texture,M=a.get(o)||E.texture,B=a.get(A)||L.texture,N=a.get(y)||I.texture;d.bindTextureAndWrap(U,0,S.wrapS,S.wrapT),d.bindTextureAndWrap(R,1,T.wrapS,T.wrapT),d.bindTextureAndWrap(C,2,x.wrapS,x.wrapT),d.bindTextureAndWrap(M,3,E.wrapS,E.wrapT),d.bindTextureAndWrap(B,4,L.wrapS,L.wrapT),d.bindTextureAndWrap(N,5,I.wrapS,I.wrapT),i.bindHd(_,n.skinningType,u.coordId),i.render()}}}else{const t=e.geosetColors,n=e.layerTextures,i=e.uvAnims;c.uniform4fv(g.u_vertexColor,e.vertexColor),c.uniform1i(g.u_texture,0);for(const o of this.objects){const u=l[o],f=u.geoset,b=u.layer,w=f.index,v=b.index,A=t[w],y=r[v];if(A[3]>.01&&y>.01){const t=n[v],r=s[t],l=i[v];c.uniform4fv(g.u_geosetColor,A),c.uniform1f(g.u_layerAlpha,y),c.uniform1f(g.u_unshaded,b.unshaded),c.uniform2f(g.u_uvTrans,l[0],l[1]),c.uniform2f(g.u_uvRot,l[2],l[3]),c.uniform1f(g.u_uvScale,l[4]),b.bind(_);let o=a.get(t);if(!o){const t=r.replaceableId;let n;n=1===t?m[e.teamColor]:2===t?p[e.teamColor]:r,n&&(o=n.texture)}d.bindTextureAndWrap(o,0,r.wrapS,r.wrapT),h===sg.ExtendedVertexGroups?f.bindExtended(_,b.coordId):f.bind(_,b.coordId),f.render()}}}}}class cg{constructor(e){this.objects=[],this.model=e}render(e){const t=e.scene,n=e.nodes,a=e.model.viewer,r=a.gl,i=a.webgl.extensions.ANGLE_instanced_arrays,s=a.sharedCache.get("mdx"),l=s.particlesShader,o=l.uniforms,u=l.attribs,c=s.rectBuffer;r.depthMask(!1),r.enable(r.BLEND),r.disable(r.CULL_FACE),r.enable(r.DEPTH_TEST),l.use(),r.uniformMatrix4fv(o.u_VP,!1,t.camera.viewProjectionMatrix),r.uniform1i(o.u_texture,0),i.vertexAttribDivisorANGLE(u.a_position,0),r.bindBuffer(r.ARRAY_BUFFER,c),r.vertexAttribPointer(u.a_position,1,r.UNSIGNED_BYTE,!1,0,0),i.vertexAttribDivisorANGLE(u.a_p0,1),i.vertexAttribDivisorANGLE(u.a_p1,1),i.vertexAttribDivisorANGLE(u.a_p2,1),i.vertexAttribDivisorANGLE(u.a_p3,1),i.vertexAttribDivisorANGLE(u.a_health,1),i.vertexAttribDivisorANGLE(u.a_color,1),i.vertexAttribDivisorANGLE(u.a_tail,1),i.vertexAttribDivisorANGLE(u.a_leftRightTop,1);for(const e of this.objects)Q_(n[e].object,l);i.vertexAttribDivisorANGLE(u.a_leftRightTop,0),i.vertexAttribDivisorANGLE(u.a_tail,0),i.vertexAttribDivisorANGLE(u.a_color,0),i.vertexAttribDivisorANGLE(u.a_health,0),i.vertexAttribDivisorANGLE(u.a_p3,0),i.vertexAttribDivisorANGLE(u.a_p2,0),i.vertexAttribDivisorANGLE(u.a_p1,0),i.vertexAttribDivisorANGLE(u.a_p0,0)}}function dg(e){return e instanceof lg||e instanceof ng?e.layer.priorityPlane:e instanceof tg?e.priorityPlane:0}function hg(e,t){return e instanceof ug?t instanceof lg&&t.skinningType===e.skinningType&&t.isHd===e.isHd:t instanceof V_}function fg(e,t){return t instanceof lg?new ug(e,t.skinningType,t.isHd):new cg(e)}class mg extends a_{convertBasis(e){Fa(e,e,-Math.PI/2),Da(e,e,-Math.PI/2)}}const pg=new Float32Array(1);class _g{constructor(e,t){const n=t.internalModel.addInstance();n.setSequenceLoopMode(2),n.dontInheritScaling=!1,n.hide(),n.setParent(e.nodes[t.objectId]),this.instance=e,this.attachment=t,this.internalInstance=n}update(){const e=this.instance,t=this.internalInstance;e.scene&&-1!==e.sequence&&(this.attachment.getVisibility(pg,e.sequence,e.frame,e.counter),pg[0]>.1?(e.scene.addInstance(t),t.hidden()&&(t.show(),t.setSequence(0))):t.hide())}}class gg{constructor(e){this.objects=[],this.alive=0,this.currentEmission=0,this.instance=e}update(e){this.updateEmission(e);const t=this.currentEmission;if(t>=1)for(let e=0;e<t;e+=1)this.emit()}clear(){const e=this.objects;for(let t=0,n=this.alive;t<n;t++){e[t].health=0}this.currentEmission=0}emitObject(e){const t=this.objects;this.alive===t.length&&t.push(this.createObject());const n=t[this.alive];n.index=this.alive,n.bind(e),this.alive+=1,this.currentEmission-=1;return this.instance.scene.emittedObjectUpdater.add(n),n}kill(e){const t=this.objects;this.alive-=1;const n=t[this.alive];t[e.index]=n,t[this.alive]=e,n.index=e.index,e.index=-1}}class bg extends gg{constructor(e,t){super(e),this.emitterObject=t}update(e){this.emitterObject.ok&&super.update(e)}}class wg{constructor(e){this.index=-1,this.health=0,this.emitter=e}}const vg=Ma(),Ag=Wt(),yg=new Float32Array(1),Sg=new Float32Array(1),Tg=new Float32Array(1),xg=new Float32Array(1);class Eg extends wg{constructor(e){super(e),this.velocity=Wt(),this.gravity=0;const t=e.emitterObject.internalModel;this.internalInstance=t.addInstance()}bind(){const e=this.emitter,t=e.instance,n=t.sequence,a=t.frame,r=t.counter,i=t.scene,s=e.emitterObject,l=t.nodes[s.index],o=this.internalInstance,u=l.worldScale,c=this.velocity;s.getLatitude(yg,n,a,r),s.getLifeSpan(Sg,n,a,r),s.getGravity(Tg,n,a,r),s.getSpeed(xg,n,a,r),this.health=Sg[0],this.gravity=Tg[0]*u[2],Ba(vg),Ga(vg,vg,ys(-Math.PI,Math.PI)),Fa(vg,vg,ys(-yg[0],yg[0])),Ln(c,ts,vg),Ln(c,c,l.worldRotation),dn(c,c,xg[0]),Dn(c,c,u),o.setScene(i),o.setSequence(0),o.setTransformation(l.worldLocation,Na(vg,ts,ys(0,2*Math.PI)),l.worldScale),o.show()}update(e){const t=this.internalInstance;if(this.health-=e,this.health>0){const n=this.velocity;n[2]-=this.gravity*e,t.move(dn(Ag,n,e))}else t.hide()}}const Lg=new Float32Array(1);class Ig extends bg{updateEmission(e){const t=this.instance;if(t.allowParticleSpawn){this.emitterObject.getEmissionRate(Lg,t.sequence,t.frame,t.counter),this.currentEmission+=Lg[0]*e}}emit(){this.emitObject()}createObject(){return new Eg(this)}}const Ug=Ma(),Rg=new Float32Array(1),Cg=new Float32Array(1),Mg=new Float32Array(1),Bg=new Float32Array(1),Ng=new Float32Array(1),Pg=new Float32Array(1);class kg extends wg{constructor(){super(...arguments),this.tail=0,this.gravity=0,this.location=Wt(),this.velocity=Wt(),this.scale=Wt(),this.facing=0}bind(e){const t=this.emitter,n=t.instance,a=n.sequence,r=n.frame,i=n.counter,s=t.emitterObject;s.getWidth(Rg,a,r,i),s.getLength(Cg,a,r,i),s.getLatitude(Mg,a,r,i),s.getVariation(Bg,a,r,i),s.getSpeed(Ng,a,r,i),s.getGravity(Pg,a,r,i);const l=t.node,o=l.pivot,u=l.worldScale,c=.5*Rg[0],d=.5*Cg[0],h=vs(Mg[0]),f=Bg[0],m=Ng[0],p=this.location,_=this.velocity;this.health=s.lifeSpan,this.tail=e,this.gravity=Pg[0]*u[2],Qt(this.scale,u),p[0]=o[0]+ys(-c,c),p[1]=o[1]+ys(-d,d),p[2]=o[2],s.modelSpace||xn(p,p,l.worldMatrix),Ba(Ug),Ga(Ug,Ug,Math.PI/2),Fa(Ug,Ug,ys(-h,h)),s.lineEmitter||Da(Ug,Ug,ys(-h,h)),s.modelSpace||ur(Ug,l.worldRotation,Ug),Ln(_,ts,Ug),dn(_,_,m*(1+ys(-f,f))),s.modelSpace||Dn(_,_,u),s.xYQuad&&(this.facing=Math.atan2(_[1],_[0])-Math.PI+Math.PI/8)}update(e){if(this.health-=e,this.health>0){const t=this.location,n=this.velocity;n[2]-=this.gravity*e,t[0]+=n[0]*e,t[1]+=n[1]*e,t[2]+=n[2]*e}}}const Og=new Float32Array(1);class Dg extends bg{constructor(e,t){super(e,t),this.lastEmissionKey=-1,this.node=e.nodes[t.index]}updateEmission(e){const t=this.instance;if(t.allowParticleSpawn){const n=this.emitterObject,a=n.getEmissionRate(Og,t.sequence,t.frame,t.counter);n.squirt?(a!==this.lastEmissionKey&&(this.currentEmission+=Og[0]),this.lastEmissionKey=a):this.currentEmission+=Og[0]*e}}emit(){const e=this.emitterObject;e.head&&this.emitObject(0),e.tail&&this.emitObject(1)}createObject(){return new kg(this)}}const Fg=Wt(),Gg=Wt(),Vg=new Float32Array(3),Kg=new Float32Array(1),Hg=new Uint32Array(1);class zg extends wg{constructor(){super(...arguments),this.vertices=new Float32Array(6),this.color=new Uint8Array(4),this.slot=0,this.prev=null,this.next=null}bind(){const e=this.emitter,t=e.instance,n=t.sequence,a=t.frame,r=t.counter,i=e.emitterObject,s=t.nodes[i.index],[l,o,u]=s.pivot,c=s.worldMatrix,d=this.vertices;this.health=e.emitterObject.lifeSpan,i.getHeightBelow(Fg,n,a,r),i.getHeightAbove(Gg,n,a,r),Fg[1]=o-Fg[0],Fg[0]=l,Fg[2]=u,Gg[1]=o+Gg[0],Gg[0]=l,Gg[2]=u,xn(Fg,Fg,c),xn(Gg,Gg,c),d[0]=Gg[0],d[1]=Gg[1],d[2]=Gg[2],d[3]=Fg[0],d[4]=Fg[1],d[5]=Fg[2]}update(e){if(this.health-=e,this.health>0){const t=this.emitter,n=t.instance,a=n.sequence,r=n.frame,i=n.counter,s=t.emitterObject,l=this.color,o=this.vertices,u=s.gravity*e*e;s.getColor(Vg,a,r,i),s.getAlpha(Kg,a,r,i),s.getTextureSlot(Hg,a,r,i),o[1]-=u,o[4]-=u,l[0]=255*Vg[0],l[1]=255*Vg[1],l[2]=255*Vg[2],l[3]=255*Kg[0],this.slot=Hg[0]}}}class jg extends bg{constructor(){super(...arguments),this.first=null,this.last=null}updateEmission(e){if(this.instance.allowParticleSpawn){const t=this.emitterObject;this.currentEmission+=t.emissionRate*e}}emit(){const e=this.emitObject(),t=this.last;t?(t.next=e,e.prev=t):this.first=e,this.last=e}kill(e){super.kill(e);const t=e.prev,n=e.next;e===this.first&&(this.first=n),e===this.last&&(this.first=null,this.last=null),t&&(t.next=n),n&&(n.prev=t),e.prev=null,e.next=null}createObject(){return new zg(this)}}const Xg=new Uint32Array(1);class $g extends bg{constructor(){super(...arguments),this.lastValue=0}updateEmission(e){const t=this.instance;if(t.allowParticleSpawn){this.emitterObject.getValue(Xg,t);const e=Xg[0];1===e&&e!==this.lastValue&&(this.currentEmission+=1),this.lastValue=e}}emit(){this.emitObject()}}class Jg extends wg{constructor(e){super(e);const t=e.emitterObject.internalModel;this.internalInstance=t.addInstance()}bind(){const e=this.emitter,t=e.instance,n=t.scene,a=t.nodes[e.emitterObject.index],r=this.internalInstance;r.setScene(n),r.setSequence(0),r.setTransformation(a.worldLocation,a.worldRotation,a.worldScale),r.show(),this.health=1}update(e){const t=this.internalInstance,n=t.model;t.frame>=n.sequences[0].interval[1]&&(this.health=0,t.hide())}}class Wg extends $g{createObject(){return new Jg(this)}}const qg=Wt();class Yg extends wg{constructor(){super(...arguments),this.vertices=new Float32Array(12)}bind(){const e=this.emitter,t=e.instance,n=e.emitterObject,a=this.vertices,r=n.scale,{worldLocation:i,worldRotation:s}=t.nodes[n.index];this.health=n.lifeSpan,en(qg,r,r,0),Ln(qg,qg,s),tn(a.subarray(0,2),qg,i),en(qg,-r,r,0),Ln(qg,qg,s),tn(a.subarray(3,5),qg,i),en(qg,-r,-r,0),Ln(qg,qg,s),tn(a.subarray(6,8),qg,i),en(qg,r,-r,0),Ln(qg,qg,s),tn(a.subarray(9,11),qg,i)}update(e){this.health-=e}}class Zg extends $g{createObject(){return new Yg(this)}}class Qg extends $g{createObject(){return new Yg(this)}}class eb extends wg{bind(){const e=this.emitter,t=e.instance,n=t.model.viewer,a=t.scene;if(n.audioEnabled&&a.audioEnabled){const n=e.emitterObject,r=t.nodes[n.index],i=a.audioContext,s=n.decodedBuffers,l=i.createPanner(),o=i.createBufferSource(),u=r.worldLocation;l.positionX.value=u[0],l.positionY.value=u[1],l.positionZ.value=u[2],l.maxDistance=n.distanceCutoff,l.refDistance=n.minDistance,l.connect(i.destination),o.buffer=s[Math.random()*s.length|0],o.connect(l),o.start(0)}}update(e){}}class tb extends $g{createObject(){return new eb(this)}}const nb=new Float32Array(1),ab=Wt(),rb=Ma(),ib=Wt(),sb=new Float32Array(3),lb=new Float32Array(1),ob=new Uint32Array(1);class ub extends Cp{constructor(e){super(e),this.attachments=[],this.particleEmitters=[],this.particleEmitters2=[],this.ribbonEmitters=[],this.eventObjectEmitters=[],this.nodes=[],this.sortedNodes=[],this.frame=0,this.counter=0,this.sequence=-1,this.sequenceLoopMode=0,this.sequenceEnded=!1,this.teamColor=0,this.vertexColor=new Float32Array([1,1,1,1]),this.allowParticleSpawn=!1,this.forced=!0,this.geosetColors=[],this.layerAlphas=[],this.layerTextures=[],this.uvAnims=[],this.worldMatrices=null,this.boneTexture=null;for(let t=0,n=e.geosets.length;t<n;t++)this.geosetColors[t]=new Float32Array(4);for(let t=0,n=e.layers.length;t<n;t++)this.layerAlphas[t]=0,this.layerTextures[t]=0,this.uvAnims[t]=new Float32Array(5);const t=r_(e.genericObjects.length,mg),n=t.nodes;let a=0;this.nodes.push(...n),this.worldMatrices=t.worldMatrices;for(const t of e.bones)this.initNode(n,n[a++],t);for(const t of e.lights)this.initNode(n,n[a++],t);for(const t of e.helpers)this.initNode(n,n[a++],t);for(const t of e.attachments){let e;t.internalModel&&(e=new _g(this,t),this.attachments.push(e)),this.initNode(n,n[a++],t,e)}for(const t of e.particleEmitters){const e=new Ig(this,t);this.particleEmitters.push(e),this.initNode(n,n[a++],t,e)}for(const t of e.particleEmitters2){const e=new Dg(this,t);this.particleEmitters2.push(e),this.initNode(n,n[a++],t,e)}for(const t of e.ribbonEmitters){const e=new jg(this,t);this.ribbonEmitters.push(e),this.initNode(n,n[a++],t,e)}for(const t of e.eventObjects){const e=t.type;let r;r="SPN"===e?new Wg(this,t):"SPL"===e?new Zg(this,t):"UBR"===e?new Qg(this,t):new tb(this,t),this.eventObjectEmitters.push(r),this.initNode(n,n[a++],t,r)}for(const t of e.collisionShapes)this.initNode(n,n[a++],t);const r=e.hierarchy;for(let e=0,t=n.length;e<t;e++)this.sortedNodes[e]=n[r[e]];e.bones.length&&(this.boneTexture=new ip(e.viewer.gl,4,4*e.bones.length,1))}setTexture(e,t){this.overrideTexture(e,t)}setParticle2Texture(e,t){this.overrideTexture(1e3+e,t)}setEventTexture(e,t){this.overrideTexture(Y_+e,t)}clearEmittedObjects(){for(const e of this.particleEmitters)e.clear();for(const e of this.particleEmitters2)e.clear();for(const e of this.ribbonEmitters)e.clear();for(const e of this.eventObjectEmitters)e.clear()}initNode(e,t,n,a){Qt(t.pivot,n.pivot),-1===n.parentId?t.parent=this:t.parent=e[n.parentId],t.dontInheritTranslation=n.dontInheritTranslation,t.dontInheritRotation=n.dontInheritRotation,t.dontInheritScaling=n.dontInheritScaling,n.billboarded?t.billboarded=!0:n.billboardedX?t.billboardedX=!0:n.billboardedY?t.billboardedY=!0:n.billboardedZ&&(t.billboardedZ=!0),a&&(t.object=a)}hide(){super.hide(),this.resetAttachments()}updateNodes(e,t){const n=this.sequence,a=this.frame,r=this.counter,i=this.sortedNodes,s=this.model.sortedGenericObjects;for(let l=0,o=i.length;l<o;l++){const o=s[l],u=i[l],c=u.parent;let d=t||c.wasDirty||o.anyBillboarding;const h=o.variants;(t||h.generic[n])&&(d=!0,(t||h.translation[n])&&o.getTranslation(u.localLocation,n,a,r),(t||h.rotation[n])&&o.getRotation(u.localRotation,n,a,r),(t||h.scale[n])&&o.getScale(u.localScale,n,a,r)),u.wasDirty=d,d&&u.recalculateTransformation(this),u.object&&(o.getVisibility(nb,n,a,r),nb[0]>0&&u.object.update(e));for(const t of u.children)d&&t.recalculateTransformation(),t.update(e)}}recalculateTransformation(){super.recalculateTransformation(),this.forced=!0}updateBatches(e){const t=this.sequence,n=this.frame,a=this.counter,r=this.model,i=r.geosets,s=r.layers,l=this.geosetColors,o=this.layerAlphas,u=this.layerTextures,c=this.uvAnims;for(let r=0,s=i.length;r<s;r++){const s=i[r].geosetAnimation,o=l[r];s?((e||s.variants.color[t])&&(s.getColor(sb,t,n,a),o[0]=sb[0],o[1]=sb[1],o[2]=sb[2]),(e||s.variants.alpha[t])&&(s.getAlpha(lb,t,n,a),o[3]=lb[0])):e&&(o[0]=1,o[1]=1,o[2]=1,o[3]=1)}for(let r=0,i=s.length;r<i;r++){const i=s[r],l=i.textureAnimation,d=c[r];(e||i.variants.alpha[t])&&(i.getAlpha(lb,t,n,a),o[r]=lb[0]),(e||i.variants.textureId[t])&&(i.getTextureId(ob,t,n,a),u[r]=ob[0]),l?((e||l.variants.translation[t])&&(l.getTranslation(ab,t,n,a),d[0]=ab[0],d[1]=ab[1]),(e||l.variants.rotation[t])&&(l.getRotation(rb,t,n,a),d[2]=rb[2],d[3]=rb[3]),(e||l.variants.scale[t])&&(l.getScale(ib,t,n,a),d[4]=ib[0])):e&&(d[0]=0,d[1]=0,d[2]=0,d[3]=1,d[4]=1)}}updateBoneTexture(){this.boneTexture&&this.boneTexture.bindAndUpdate(this.worldMatrices)}renderOpaque(){const e=this.model;for(const t of e.opaqueGroups)t.render(this)}renderTranslucent(){const e=this.model;for(const t of e.translucentGroups)t.render(this)}updateAnimations(e){const t=this.model,n=this.sequence;if(-1!==n){const a=t.sequences[n],r=a.interval,i=1e3*e;this.frame+=i,this.counter+=i,this.allowParticleSpawn=!0,this.frame>=r[1]?(2===this.sequenceLoopMode||0===this.sequenceLoopMode&&0===a.nonLooping?(this.frame=r[0],this.resetEventEmitters()):(this.frame=r[1],this.counter-=i,this.allowParticleSpawn=!1),this.sequenceEnded=!0):this.sequenceEnded=!1}const a=this.forced;(-1!==n||a)&&(this.updateNodes(e,a),this.updateBoneTexture(),this.updateBatches(a)),this.forced=!1}setTeamColor(e){return this.teamColor=e,this}setVertexColor(e){return this.vertexColor.set(e),this}setSequence(e){const t=this.model.sequences;return this.sequence=e,e<0||e>t.length-1?(this.sequence=-1,this.frame=0,this.allowParticleSpawn=!1):this.frame=t[e].interval[0],this.resetEventEmitters(),this.resetAttachments(),this.forced=!0,this}getBounds(){const e=this.model;if(-1===this.sequence)return e.bounds;const t=e.sequences[this.sequence].bounds;return 0===t.r?e.bounds:t}setSequenceLoopMode(e){return this.sequenceLoopMode=e,this}getAttachment(e){const t=this.model.attachments[e];if(t)return this.nodes[t.index]}resetEventEmitters(){for(const e of this.eventObjectEmitters)e.lastValue=0}resetAttachments(){for(const e of this.attachments)e.internalInstance.hide()}}const cb="\n#ifdef SKIN\nattribute vec4 a_bones;\nattribute vec4 a_weights;\n\nvoid transformSkin(inout vec3 position, inout vec3 normal, inout vec3 tangent, inout vec3 binormal) {\n mat4 bone;\n\n bone += fetchMatrix(a_bones[0], 0.0) * a_weights[0];\n bone += fetchMatrix(a_bones[1], 0.0) * a_weights[1];\n bone += fetchMatrix(a_bones[2], 0.0) * a_weights[2];\n bone += fetchMatrix(a_bones[3], 0.0) * a_weights[3];\n\n mat3 rotation = mat3(bone);\n\n position = vec3(bone * vec4(position, 1.0));\n normal = rotation * normal;\n tangent = rotation * tangent;\n binormal = rotation * binormal;\n}\n#else\nattribute vec4 a_bones;\n#ifdef EXTENDED_BONES\nattribute vec4 a_extendedBones;\n#endif\nattribute float a_boneNumber;\n\nmat4 getVertexGroupMatrix() {\n mat4 bone;\n\n // For the broken models out there, since the game supports this.\n if (a_boneNumber > 0.0) {\n for (int i = 0; i < 4; i++) {\n if (a_bones[i] > 0.0) {\n bone += fetchMatrix(a_bones[i] - 1.0, 0.0);\n }\n }\n\n #ifdef EXTENDED_BONES\n for (int i = 0; i < 4; i++) {\n if (a_extendedBones[i] > 0.0) {\n bone += fetchMatrix(a_extendedBones[i] - 1.0, 0.0);\n }\n }\n #endif\n }\n\n return bone / a_boneNumber;\n}\n\nvoid transformVertexGroups(inout vec3 position, inout vec3 normal) {\n mat4 bone = getVertexGroupMatrix();\n mat3 rotation = mat3(bone);\n\n position = vec3(bone * vec4(position, 1.0));\n normal = normalize(rotation * normal);\n}\n\nvoid transformVertexGroupsHD(inout vec3 position, inout vec3 normal, inout vec3 tangent, inout vec3 binormal) {\n mat4 bone = getVertexGroupMatrix();\n mat3 rotation = mat3(bone);\n\n position = vec3(bone * vec4(position, 1.0));\n normal = normalize(rotation * normal);\n tangent = normalize(rotation * tangent);\n binormal = normalize(rotation * binormal);\n}\n#endif\n",db=`\nuniform mat4 u_VP;\nuniform vec3 u_lightPos;\nuniform vec4 u_vertexColor;\nuniform vec4 u_geosetColor;\nuniform float u_layerAlpha;\nuniform vec2 u_uvTrans;\nuniform vec2 u_uvRot;\nuniform float u_uvScale;\nuniform bool u_hasBones;\n\nattribute vec3 a_position;\nattribute vec3 a_normal;\nattribute vec2 a_uv;\n\nvarying vec2 v_uv;\nvarying vec3 v_normal;\nvarying vec4 v_color;\nvarying vec4 v_uvTransRot;\nvarying float v_uvScale;\nvarying vec3 v_lightDir;\n\n${c_}\n${cb}\n\nvoid main() {\n vec3 position = a_position;\n vec3 normal = a_normal;\n\n if (u_hasBones) {\n #ifdef SKIN\n vec3 tangent = vec3(0.0);\n vec3 binormal = vec3(0.0);\n transformSkin(position, normal, tangent, binormal);\n #else\n transformVertexGroups(position, normal);\n #endif\n }\n\n v_uv = a_uv;\n v_normal = normal;\n v_color = u_vertexColor * u_geosetColor.bgra * vec4(1.0, 1.0, 1.0, u_layerAlpha);\n v_uvTransRot = vec4(u_uvTrans, u_uvRot);\n v_uvScale = u_uvScale;\n v_lightDir = normalize(u_lightPos - position);\n\n gl_Position = u_VP * vec4(position, 1.0);\n}\n`,hb=`\n${h_}\n\n\n// A 2D quaternion*vector.\n// q is the zw components of the original quaternion.\nvec2 quat_transform(vec2 q, vec2 v) {\n vec2 uv = vec2(-q.x * v.y, q.x * v.x);\n vec2 uuv = vec2(-q.x * uv.y, q.x * uv.x);\n\n return v + 2.0 * (uv * q.y + uuv);\n}\n\n\nuniform sampler2D u_texture;\nuniform float u_filterMode;\nuniform bool u_unshaded;\n\nvarying vec2 v_uv;\nvarying vec3 v_normal;\nvarying vec4 v_color;\nvarying vec4 v_uvTransRot;\nvarying float v_uvScale;\nvarying vec3 v_lightDir;\n\nvec4 getDiffuseColor() {\n vec2 uv = v_uv;\n\n // Translation animation\n uv += v_uvTransRot.xy;\n\n // Rotation animation\n uv = quat_transform(v_uvTransRot.zw, uv - 0.5) + 0.5;\n\n // Scale animation\n uv = v_uvScale * (uv - 0.5) + 0.5;\n\n vec4 texel = texture2D(u_texture, uv);\n vec4 color = texel * v_color;\n\n // 1bit Alpha\n if (u_filterMode == 1.0 && color.a < 0.75) {\n discard;\n }\n\n // "Close to 0 alpha"\n if (u_filterMode >= 5.0 && color.a < 0.02) {\n discard;\n }\n\n return color;\n}\n\nvoid onlyTexCoords() {\n gl_FragColor = vec4(v_uv, 0.0, 1.0);\n}\n\nvoid onlyNormals() {\n gl_FragColor = vec4(v_normal, 1.0);\n}\n\nvoid onlyDiffuse() {\n gl_FragColor = getDiffuseColor();\n}\n\nvoid lambert() {\n vec4 color = getDiffuseColor();\n\n if (!u_unshaded) {\n float lambertFactor = clamp(dot(v_normal, v_lightDir), 0.0, 1.0);\n lambertFactor = clamp(lambertFactor + 0.7, 0.0, 1.0);\n\n color.rgb *= lambertFactor;\n }\n\n gl_FragColor = color;\n}\n\nvoid main() {\n #if defined(ONLY_DIFFUSE)\n onlyDiffuse();\n #elif defined(ONLY_TEXCOORDS)\n onlyTexCoords();\n #elif defined(ONLY_NORMALS)\n onlyNormals();\n #else\n lambert();\n #endif\n}\n`,fb=`\nuniform mat4 u_VP;\nuniform mat4 u_MV;\nuniform vec3 u_eyePos;\nuniform vec3 u_lightPos;\nuniform float u_layerAlpha;\nuniform bool u_hasBones;\n\nattribute vec3 a_position;\nattribute vec3 a_normal;\nattribute vec2 a_uv;\nattribute vec4 a_tangent;\n\nvarying vec2 v_uv;\nvarying float v_layerAlpha;\nvarying vec3 v_lightDir;\nvarying vec3 v_eyeVec;\nvarying vec3 v_normal;\n// varying vec3 v_lightDirWorld;\n\n#if defined(ONLY_TANGENTS)\nvarying vec3 v_tangent;\n#endif\n\n${c_}\n${cb}\n\nvec3 TBN(vec3 vector, vec3 tangent, vec3 binormal, vec3 normal) {\n return vec3(dot(vector, tangent), dot(vector, binormal), dot(vector, normal));\n}\n\nvoid main() {\n vec3 position = a_position;\n vec3 normal = a_normal;\n vec3 tangent = a_tangent.xyz;\n\n // Re-orthogonalize the tangent in case it wasnt normalized.\n // See "One last thing" at https://learnopengl.com/Advanced-Lighting/Normal-Mapping\n tangent = normalize(tangent - dot(tangent, normal) * normal);\n\n vec3 binormal = cross(normal, tangent) * a_tangent.w;\n\n if (u_hasBones) {\n #ifdef SKIN\n transformSkin(position, normal, tangent, binormal);\n #else\n transformVertexGroupsHD(position, normal, tangent, binormal);\n #endif\n }\n\n vec3 position_mv = vec3(u_MV * vec4(position, 1));\n\n mat3 mv = mat3(u_MV);\n vec3 t = normalize(mv * tangent);\n vec3 b = normalize(mv * binormal);\n vec3 n = normalize(mv * normal);\n\n v_eyeVec = normalize(u_eyePos - position_mv);\n\n vec3 lightDir = normalize(u_lightPos - position_mv);\n v_lightDir = normalize(TBN(lightDir, t, b, n));\n \n v_uv = a_uv;\n v_layerAlpha = u_layerAlpha;\n\n v_normal = normal;\n // v_lightDirWorld = normalize(lightDir);\n\n #if defined(ONLY_TANGENTS)\n v_tangent = tangent;\n #endif\n\n gl_Position = u_VP * vec4(position, 1.0);\n}\n`,mb=`\n${h_}\n\nuniform sampler2D u_diffuseMap;\nuniform sampler2D u_normalsMap;\nuniform sampler2D u_ormMap;\nuniform sampler2D u_emissiveMap;\nuniform sampler2D u_teamColorMap;\nuniform sampler2D u_environmentMap;\nuniform float u_filterMode;\n\n// uniform sampler2D u_lutMap;\n// uniform sampler2D u_envDiffuseMap;\n// uniform sampler2D u_envSpecularMap;\n\nvarying vec2 v_uv;\nvarying float v_layerAlpha;\nvarying vec3 v_lightDir;\nvarying vec3 v_eyeVec;\nvarying vec3 v_normal;\n// varying vec3 v_lightDirWorld;\n\n#if defined(ONLY_TANGENTS)\nvarying vec3 v_tangent;\n#endif\n\nvec3 decodeNormal() {\n vec2 xy = texture2D(u_normalsMap, v_uv).xy * 2.0 - 1.0;\n \n return vec3(xy, sqrt(1.0 - dot(xy, xy)));\n}\n\nconst vec2 invAtan = vec2(0.1591, 0.3183);\nvec2 sampleEnvironmentMap(vec3 normal) {\n vec2 uv = vec2(atan(normal.x, normal.y), -asin(normal.z));\n uv *= invAtan;\n uv += 0.5;\n return uv;\n}\n\nvec4 getDiffuseColor() {\n vec4 color = texture2D(u_diffuseMap, v_uv);\n\n // 1bit Alpha\n if (u_filterMode == 1.0 && color.a < 0.75) {\n discard;\n }\n\n return color;\n}\n\nvec4 getOrmColor() {\n return texture2D(u_ormMap, v_uv);\n}\n\nvec3 getEmissiveColor() {\n return texture2D(u_emissiveMap, v_uv).rgb;\n}\n\nvec3 getTeamColor() {\n return texture2D(u_teamColorMap, v_uv).rgb;\n}\n\n// const float PI = 3.14159265359;\n// const float RECIPROCAL_PI = 0.31830988618;\n// const float RECIPROCAL_PI2 = 0.15915494;\n// const float LN2 = 0.6931472;\n// const float ENV_LODS = 6.0;\n// vec4 SRGBtoLinear(vec4 srgb) {\n// vec3 linOut = pow(srgb.xyz, vec3(2.2));\n// return vec4(linOut, srgb.w);;\n// }\n// vec4 RGBMToLinear(in vec4 value) {\n// float maxRange = 6.0;\n// return vec4(value.xyz * value.w * maxRange, 1.0);\n// }\n// vec3 linearToSRGB(vec3 color) {\n// return pow(color, vec3(1.0 / 2.2));\n// }\n// // vec3 getNormal() {\n// // vec3 pos_dx = dFdx(vMPos.xyz);\n// // vec3 pos_dy = dFdy(vMPos.xyz);\n// // vec2 tex_dx = dFdx(vUv);\n// // vec2 tex_dy = dFdy(vUv);\n// // vec3 t = normalize(pos_dx * tex_dy.t - pos_dy * tex_dx.t);\n// // vec3 b = normalize(-pos_dx * tex_dy.s + pos_dy * tex_dx.s);\n// // mat3 tbn = mat3(t, b, normalize(vNormal));\n// // vec3 n = texture2D(tNormal, vUv * uNormalUVScale).rgb * 2.0 - 1.0;\n// // n.xy *= uNormalScale;\n// // vec3 normal = normalize(tbn * n);\n// // // Get world normal from view normal (normalMatrix * normal)\n// // return normalize((vec4(normal, 0.0) * viewMatrix).xyz);\n// // }\n// vec3 specularReflection(vec3 specularEnvR0, vec3 specularEnvR90, float VdH) {\n// return specularEnvR0 + (specularEnvR90 - specularEnvR0) * pow(clamp(1.0 - VdH, 0.0, 1.0), 5.0);\n// }\n// float geometricOcclusion(float NdL, float NdV, float roughness) {\n// float r = roughness;\n// float attenuationL = 2.0 * NdL / (NdL + sqrt(r * r + (1.0 - r * r) * (NdL * NdL)));\n// float attenuationV = 2.0 * NdV / (NdV + sqrt(r * r + (1.0 - r * r) * (NdV * NdV)));\n// return attenuationL * attenuationV;\n// }\n// float microfacetDistribution(float roughness, float NdH) {\n// float roughnessSq = roughness * roughness;\n// float f = (NdH * roughnessSq - NdH) * NdH + 1.0;\n// return roughnessSq / (PI * f * f);\n// }\n// vec2 cartesianToPolar(vec3 n) {\n// vec2 uv;\n// uv.x = atan(n.z, n.x) * RECIPROCAL_PI2 + 0.5;\n// uv.y = asin(n.y) * RECIPROCAL_PI + 0.5;\n// return uv;\n// }\n// void getIBLContribution(inout vec3 diffuse, inout vec3 specular, float NdV, float roughness, vec3 n, vec3 reflection, vec3 diffuseColor, vec3 specularColor) {\n// vec3 brdf = SRGBtoLinear(texture2D(u_lutMap, vec2(NdV, roughness))).rgb;\n// vec3 diffuseLight = RGBMToLinear(texture2D(u_envDiffuseMap, sampleEnvironmentMap(n))).rgb;\n// // Sample 2 levels and mix between to get smoother degradation\n// float blend = roughness * ENV_LODS;\n// float level0 = floor(blend);\n// float level1 = min(ENV_LODS, level0 + 1.0);\n// blend -= level0;\n \n// // Sample the specular env map atlas depending on the roughness value\n// vec2 uvSpec = sampleEnvironmentMap(reflection);\n// uvSpec.y /= 2.0;\n// vec2 uv0 = uvSpec;\n// vec2 uv1 = uvSpec;\n// uv0 /= pow(2.0, level0);\n// uv0.y += 1.0 - exp(-LN2 * level0);\n// uv1 /= pow(2.0, level1);\n// uv1.y += 1.0 - exp(-LN2 * level1);\n// vec3 specular0 = RGBMToLinear(texture2D(u_envSpecularMap, uv0)).rgb;\n// vec3 specular1 = RGBMToLinear(texture2D(u_envSpecularMap, uv1)).rgb;\n// vec3 specularLight = mix(specular0, specular1, blend);\n// diffuse = diffuseLight * diffuseColor;\n \n// // Bit of extra reflection for smooth materials\n// float reflectivity = pow((1.0 - roughness), 2.0) * 0.05;\n// specular = specularLight * (specularColor * brdf.x + brdf.y + reflectivity);\n// // specular *= uEnvSpecular;\n// }\n\n// void PBR() {\n// vec4 baseDiffuseColor = getDiffuseColor();\n// vec3 baseColor = baseDiffuseColor.rgb;\n// vec4 orm = getOrmColor();\n// vec3 tc = getTeamColor();\n// float tcFactor = getOrmColor().a;\n\n// if (tcFactor > 0.1) {\n// baseColor *= tc * tcFactor;\n// }\n\n// float roughness = clamp(orm.g, 0.04, 1.0);\n// float metallic = clamp(orm.b, 0.04, 1.0);\n\n// vec3 f0 = vec3(0.04);\n// vec3 diffuseColor = baseColor * (vec3(1.0) - f0) * (1.0 - metallic);\n// vec3 specularColor = mix(f0, baseColor, metallic);\n// vec3 specularEnvR0 = specularColor;\n// vec3 specularEnvR90 = vec3(clamp(max(max(specularColor.r, specularColor.g), specularColor.b) * 25.0, 0.0, 1.0));\n\n// vec3 N = v_normal;\n// vec3 V = normalize(v_eyeVec);\n// vec3 L = normalize(v_lightDirWorld);\n// vec3 H = normalize(L + V);\n// vec3 reflection = normalize(reflect(-V, N));\n\n// float NdL = clamp(dot(N, L), 0.001, 1.0);\n// float NdV = clamp(abs(dot(N, V)), 0.001, 1.0);\n// float NdH = clamp(dot(N, H), 0.0, 1.0);\n// float LdH = clamp(dot(L, H), 0.0, 1.0);\n// float VdH = clamp(dot(V, H), 0.0, 1.0);\n\n// vec3 F = specularReflection(specularEnvR0, specularEnvR90, VdH);\n// float G = geometricOcclusion(NdL, NdV, roughness);\n// float D = microfacetDistribution(roughness, NdH);\n\n// vec3 diffuseContrib = (1.0 - F) * (diffuseColor / PI);\n// vec3 specContrib = F * G * D / (4.0 * NdL * NdV);\n \n// // Shading based off lights\n// // vec3 color = NdL * uLightColor * (diffuseContrib + specContrib);\n// vec3 color = NdL * (diffuseContrib + specContrib);\n\n// // Calculate IBL lighting\n// vec3 diffuseIBL;\n// vec3 specularIBL;\n// getIBLContribution(diffuseIBL, specularIBL, NdV, roughness, N, reflection, diffuseColor, specularColor);\n\n// // Add IBL on top of color\n// color += specularIBL;\n\n// color *= orm.r;\n\n// color += getEmissiveColor();\n\n// // Convert to sRGB to display\n// gl_FragColor.rgb = color;\n// gl_FragColor.a = baseDiffuseColor.a;\n// }\n\nvoid onlyDiffuse() {\n vec4 baseColor = getDiffuseColor();\n vec3 tc = getTeamColor();\n float tcFactor = getOrmColor().a;\n\n if (tcFactor > 0.1) {\n baseColor.rgb *= tc * tcFactor;\n }\n\n gl_FragColor = baseColor;\n}\n\nvoid onlyNormalMap() {\n gl_FragColor = vec4(decodeNormal(), 1.0);\n}\n\nvoid onlyOcclusion() {\n gl_FragColor = vec4(getOrmColor().rrr, 1.0);\n}\n\nvoid onlyRoughness() {\n gl_FragColor = vec4(getOrmColor().ggg, 1.0);\n}\n\nvoid onlyMetallic() {\n gl_FragColor = vec4(getOrmColor().bbb, 1.0);\n}\n\nvoid onlyTeamColorFactor() {\n gl_FragColor = vec4(getOrmColor().aaa, 1.0);\n}\n\nvoid onlyEmissiveMap() {\n gl_FragColor = vec4(getEmissiveColor(), 1.0);\n}\n\nvoid onlyTexCoords() {\n gl_FragColor = vec4(v_uv, 0.0, 1.0);\n}\n\nvoid onlyNormals() {\n gl_FragColor = vec4(v_normal, 1.0);\n}\n\n#if defined(ONLY_TANGENTS)\nvoid onlyTangents() {\n gl_FragColor = vec4(v_tangent, 1.0);\n}\n#endif\n\nvoid lambert() {\n vec4 baseColor = getDiffuseColor();\n vec3 normal = decodeNormal();\n vec4 orm = getOrmColor();\n vec3 emissive = getEmissiveColor();\n vec3 tc = getTeamColor();\n float aoFactor = orm.r;\n float tcFactor = orm.a;\n float lambertFactor = clamp(dot(normal, v_lightDir), 0.0, 1.0);\n vec3 color = baseColor.rgb;\n\n if (tcFactor > 0.1) {\n color *= tc * tcFactor;\n }\n \n color *= clamp(lambertFactor * aoFactor + 0.1, 0.0, 1.0);\n color += emissive;\n\n gl_FragColor = vec4(color, baseColor.a);\n}\n\nvoid main() {\n #if defined(ONLY_DIFFUSE)\n onlyDiffuse();\n #elif defined(ONLY_NORMAL_MAP)\n onlyNormalMap();\n #elif defined(ONLY_OCCLUSION)\n onlyOcclusion();\n #elif defined(ONLY_ROUGHNESS)\n onlyRoughness();\n #elif defined(ONLY_METALLIC)\n onlyMetallic();\n #elif defined(ONLY_TC_FACTOR)\n onlyTeamColorFactor();\n #elif defined(ONLY_EMISSIVE)\n onlyEmissiveMap();\n #elif defined(ONLY_TEXCOORDS)\n onlyTexCoords();\n #elif defined(ONLY_NORMALS)\n onlyNormals();\n #elif defined(ONLY_TANGENTS)\n onlyTangents();\n #else\n lambert();\n #endif\n}\n`,pb=`\n${h_}\n\n#define EMITTER_PARTICLE2 0\n#define EMITTER_RIBBON 1\n\nuniform sampler2D u_texture;\nuniform highp int u_emitter;\nuniform float u_filterMode;\n\nvarying vec2 v_texcoord;\nvarying vec4 v_color;\n\nvoid main() {\n vec4 texel = texture2D(u_texture, v_texcoord);\n vec4 color = texel * v_color;\n\n // 1bit Alpha, used by ribbon emitters.\n if (u_emitter == EMITTER_RIBBON && u_filterMode == 1.0 && color.a < 0.75) {\n discard;\n }\n\n // "Close to 0 alpha"\n if (u_emitter == EMITTER_PARTICLE2 && (u_filterMode == 2.0 || u_filterMode == 3.0) && color.a < 0.02) {\n discard;\n }\n\n // Alpha key.\n if (u_emitter == EMITTER_PARTICLE2 && (u_filterMode == 4.0) && color.a < 0.75) {\n discard;\n }\n\n gl_FragColor = color;\n}\n`,_b=e=>new g_(e),gb=e=>async function(e){if(p_)return p_.decodeAudioData(e)}(e),bb={load(e,t,n=!1){const a=e.gl,r=e.webgl;if(!r.ensureExtension("OES_texture_float"))throw new Error("MDX: No float texture support!");if(!r.ensureExtension("ANGLE_instanced_arrays"))throw new Error("MDX: No instanced rendering support!");const i="#define EXTENDED_BONES\n"+db,s="#define ONLY_DIFFUSE\n"+hb,l="#define ONLY_TEXCOORDS\n"+hb,o="#define ONLY_NORMALS\n"+hb,u="#define EXTENDED_BONES\n"+fb,c="#define SKIN\n"+fb,d="#define ONLY_DIFFUSE\n"+mb,h="#define ONLY_NORMAL_MAP\n"+mb,f="#define ONLY_OCCLUSION\n"+mb,m="#define ONLY_ROUGHNESS\n"+mb,p="#define ONLY_METALLIC\n"+mb,_="#define ONLY_TC_FACTOR\n"+mb,g="#define ONLY_EMISSIVE\n"+mb,b="#define ONLY_TEXCOORDS\n"+mb,w="#define ONLY_NORMALS\n"+mb,v="#define ONLY_TANGENTS\n"+mb,A=r.createShader(db,hb),y=r.createShader(i,hb),S="#define SKIN\n"+db,T=r.createShader(S,hb),x=r.createShader(fb,mb),E=r.createShader(u,mb),L=r.createShader(c,mb),I=r.createShader("\n#define EMITTER_PARTICLE2 0\n#define EMITTER_RIBBON 1\n#define EMITTER_SPLAT 2\n#define EMITTER_UBERSPLAT 3\n#define HEAD 0.0\n\nuniform mat4 u_VP;\nuniform int u_emitter;\n\n// Shared\nuniform vec4 u_colors[3];\nuniform vec3 u_vertices[4];\nuniform vec3 u_intervals[4];\nuniform float u_lifeSpan;\nuniform float u_columns;\nuniform float u_rows;\n\n// Particle2\nuniform vec3 u_scaling;\nuniform vec3 u_cameraZ;\nuniform float u_timeMiddle;\nuniform bool u_teamColored;\n\n// Splat and Uber.\nuniform vec3 u_intervalTimes;\n\n// Vertices\nattribute float a_position;\n\n// Instances\nattribute vec3 a_p0;\nattribute vec3 a_p1;\nattribute vec3 a_p2;\nattribute vec3 a_p3;\nattribute float a_health;\nattribute vec4 a_color;\nattribute float a_tail;\nattribute vec3 a_leftRightTop;\n\nvarying vec2 v_texcoord;\nvarying vec4 v_color;\n\nfloat getCell(vec3 interval, float factor) {\n float start = interval[0];\n float end = interval[1];\n float repeat = interval[2];\n float spriteCount = end - start;\n\n if (spriteCount > 0.0) {\n // Repeating speeds up the sprite animation, which makes it effectively run N times in its interval.\n // E.g. if repeat is 4, the sprite animation will be seen 4 times, and thus also run 4 times as fast.\n // The sprite index is limited to the number of actual sprites.\n return min(start + mod(floor(spriteCount * repeat * factor), spriteCount), u_columns * u_rows - 1.0);\n }\n\n return start;\n}\n\nvoid particle2() {\n float factor = (u_lifeSpan - a_health) / u_lifeSpan;\n int index = 0;\n\n if (factor < u_timeMiddle) {\n factor = factor / u_timeMiddle;\n index = 0;\n } else {\n factor = (factor - u_timeMiddle) / (1.0 - u_timeMiddle);\n index = 1;\n }\n\n factor = min(factor, 1.0);\n\n float scale = mix(u_scaling[index], u_scaling[index + 1], factor);\n vec4 color = mix(u_colors[index], u_colors[index + 1], factor);\n\n float cell = 0.0;\n\n if (u_teamColored) {\n cell = a_leftRightTop[0];\n } else {\n vec3 interval;\n\n if (a_tail == HEAD) {\n interval = u_intervals[index];\n } else {\n interval = u_intervals[index + 2];\n }\n\n cell = getCell(interval, factor);\n }\n\n float left = floor(mod(cell, u_columns));\n float top = floor(cell / u_columns);\n float right = left + 1.0;\n float bottom = top + 1.0;\n\n left /= u_columns;\n right /= u_columns;\n top /= u_rows;\n bottom /= u_rows;\n\n if (a_position == 0.0) {\n v_texcoord = vec2(right, top);\n } else if (a_position == 1.0) {\n v_texcoord = vec2(left, top);\n } else if (a_position == 2.0) {\n v_texcoord = vec2(left, bottom);\n } else if (a_position == 3.0) {\n v_texcoord = vec2(right, bottom);\n }\n\n v_color = color;\n \n if (a_tail == HEAD) {\n vec3 v = u_vertices[int(a_position)];\n float cs = cos(a_p1.x);\n float sn = sin(a_p1.x);\n\n float x = v.x * cs - v.y * sn;\n float y = v.x * sn + v.y * cs;\n\n vec3 fv = vec3(\n v.x * cs - v.y * sn,\n v.x * sn + v.y * cs,\n v.z);\n\n gl_Position = u_VP * vec4(a_p0 + fv * scale, 1.0);\n } else {\n // Get the normal to the tail in camera space.\n // This allows to build a 2D rectangle around the 3D tail.\n vec3 normal = cross(u_cameraZ, normalize(a_p1 - a_p0));\n vec3 boundary = normal * scale * a_p2[0];\n vec3 position;\n\n if (a_position == 0.0) {\n position = a_p0 - boundary;\n } else if (a_position == 1.0) {\n position = a_p1 - boundary;\n } else if (a_position == 2.0) {\n position = a_p1 + boundary;\n } else if (a_position == 3.0) {\n position = a_p0 + boundary;\n }\n\n gl_Position = u_VP * vec4(position, 1.0);\n }\n}\n\nvoid ribbon() {\n vec3 position;\n float left = a_leftRightTop[0] / 255.0;\n float right = a_leftRightTop[1] / 255.0;\n float top = a_leftRightTop[2] / 255.0;\n float bottom = top + 1.0;\n\n if (a_position == 0.0) {\n v_texcoord = vec2(right, top);\n position = a_p0;\n } else if (a_position == 1.0) {\n v_texcoord = vec2(right, bottom);\n position = a_p1;\n } else if (a_position == 2.0) {\n v_texcoord = vec2(left, bottom);\n position = a_p2;\n } else if (a_position == 3.0) {\n v_texcoord = vec2(left, top);\n position = a_p3;\n }\n\n v_texcoord[0] /= u_columns;\n v_texcoord[1] /= u_rows;\n\n v_color = a_color;\n\n gl_Position = u_VP * vec4(position, 1.0);\n}\n\nvoid splat() {\n float factor = u_lifeSpan - a_health;\n int index;\n\n if (factor < u_intervalTimes[0]) {\n factor = factor / u_intervalTimes[0];\n index = 0;\n } else {\n factor = (factor - u_intervalTimes[0]) / u_intervalTimes[1];\n index = 1;\n }\n\n float cell = getCell(u_intervals[index], factor);\n float left = floor(mod(cell, u_columns));\n float top = floor(cell / u_columns);\n float right = left + 1.0;\n float bottom = top + 1.0;\n vec3 position;\n\n if (a_position == 0.0) {\n v_texcoord = vec2(left, top);\n position = a_p0;\n } else if (a_position == 1.0) {\n v_texcoord = vec2(left, bottom);\n position = a_p1;\n } else if (a_position == 2.0) {\n v_texcoord = vec2(right, bottom);\n position = a_p2;\n } else if (a_position == 3.0) {\n v_texcoord = vec2(right, top);\n position = a_p3;\n }\n\n v_texcoord[0] /= u_columns;\n v_texcoord[1] /= u_rows;\n\n v_color = mix(u_colors[index], u_colors[index + 1], factor) / 255.0;\n\n gl_Position = u_VP * vec4(position, 1.0);\n}\n\nvoid ubersplat() {\n float factor = u_lifeSpan - a_health;\n vec4 color;\n\n if (factor < u_intervalTimes[0]) {\n color = mix(u_colors[0], u_colors[1], factor / u_intervalTimes[0]);\n } else if (factor < u_intervalTimes[0] + u_intervalTimes[1]) {\n color = u_colors[1];\n } else {\n color = mix(u_colors[1], u_colors[2], (factor - u_intervalTimes[0] - u_intervalTimes[1]) / u_intervalTimes[2]);\n }\n\n vec3 position;\n\n if (a_position == 0.0) {\n v_texcoord = vec2(0.0, 0.0);\n position = a_p0;\n } else if (a_position == 1.0) {\n v_texcoord = vec2(0.0, 1.0);\n position = a_p1;\n } else if (a_position == 2.0) {\n v_texcoord = vec2(1.0, 1.0);\n position = a_p2;\n } else if (a_position == 3.0) {\n v_texcoord = vec2(1.0, 0.0);\n position = a_p3;\n }\n\n v_color = color / 255.0;\n\n gl_Position = u_VP * vec4(position, 1.0);\n}\n\nvoid main() {\n if (u_emitter == EMITTER_PARTICLE2) {\n particle2();\n } else if (u_emitter == EMITTER_RIBBON) {\n ribbon();\n } else if (u_emitter == EMITTER_SPLAT) {\n splat();\n } else if (u_emitter == EMITTER_UBERSPLAT) {\n ubersplat();\n }\n}\n",pb),U=[],R=[];let C=[];C[Sp.Diffuse]=r.createShader(db,s),C[Sp.TexCoords]=r.createShader(db,l),C[Sp.Normals]=r.createShader(db,o),U[sg.VertexGroups]=C,C=[],C[Sp.Diffuse]=r.createShader(i,s),C[Sp.TexCoords]=r.createShader(i,l),C[Sp.Normals]=r.createShader(i,o),U[sg.ExtendedVertexGroups]=C,C=[],C[Sp.Diffuse]=r.createShader(fb,d),C[Sp.NormalMap]=r.createShader(fb,h),C[Sp.Occlusion]=r.createShader(fb,f),C[Sp.Roughness]=r.createShader(fb,m),C[Sp.Metallic]=r.createShader(fb,p),C[Sp.TCFactor]=r.createShader(fb,_),C[Sp.Emissive]=r.createShader(fb,g),C[Sp.TexCoords]=r.createShader(fb,b),C[Sp.Normals]=r.createShader(fb,w),C[Sp.Tangents]=r.createShader("#define ONLY_TANGENTS\n"+fb,v),R[sg.VertexGroups]=C,C=[],C[Sp.Diffuse]=r.createShader(u,d),C[Sp.NormalMap]=r.createShader(u,h),C[Sp.Occlusion]=r.createShader(u,f),C[Sp.Roughness]=r.createShader(u,m),C[Sp.Metallic]=r.createShader(u,p),C[Sp.TCFactor]=r.createShader(u,_),C[Sp.Emissive]=r.createShader(u,g),C[Sp.TexCoords]=r.createShader(u,b),C[Sp.Normals]=r.createShader(u,w),C[Sp.Tangents]=r.createShader("#define ONLY_TANGENTS\n"+u,v),R[sg.ExtendedVertexGroups]=C,C=[],C[Sp.Diffuse]=r.createShader(c,d),C[Sp.NormalMap]=r.createShader(c,h),C[Sp.Occlusion]=r.createShader(c,f),C[Sp.Roughness]=r.createShader(c,m),C[Sp.Metallic]=r.createShader(c,p),C[Sp.TCFactor]=r.createShader(c,_),C[Sp.Emissive]=r.createShader(c,g),C[Sp.TexCoords]=r.createShader(c,b),C[Sp.Normals]=r.createShader(c,w),C[Sp.Tangents]=r.createShader("#define ONLY_TANGENTS\n"+c,v),R[sg.Skin]=C;const M=a.createBuffer();a.bindBuffer(a.ARRAY_BUFFER,M),a.bufferData(a.ARRAY_BUFFER,new Uint8Array([0,1,2,0,2,3]),a.STATIC_DRAW);const B={pathSolver:t,reforged:n,sdShader:A,sdSkinShader:T,sdExtendedShader:y,hdShader:x,hdExtendedShader:E,hdSkinShader:L,particlesShader:I,sdDebugShaders:U,hdDebugShaders:R,rectBuffer:M,teamColors:[],teamGlows:[],eventObjectTables:{}};e.sharedCache.set("mdx",B)},isValidSource:e=>e instanceof Po||(Bo(e)||No(e)),resource:class extends Rp{constructor(e,t){let n;if(super(t),this.reforged=!1,this.hd=!1,this.solverParams={},this.name="",this.sequences=[],this.globalSequences=[],this.materials=[],this.layers=[],this.textures=[],this.textureAnimations=[],this.geosets=[],this.geosetAnimations=[],this.bones=[],this.lights=[],this.helpers=[],this.attachments=[],this.pivotPoints=[],this.particleEmitters=[],this.particleEmitters2=[],this.ribbonEmitters=[],this.cameras=[],this.eventObjects=[],this.collisionShapes=[],this.hasLayerAnims=!1,this.hasGeosetAnims=!1,this.batches=[],this.genericObjects=[],this.sortedGenericObjects=[],this.hierarchy=[],this.opaqueGroups=[],this.translucentGroups=[],this.arrayBuffer=null,this.elementBuffer=null,this.skinDataType=0,this.bytesPerSkinElement=1,e instanceof Po)n=e;else{n=new Po;try{n.load(e)}catch(e){}}const a=this.viewer,r=this.pathSolver,i=this.solverParams,s=n.version>800,l=s?".dds":".blp";let o=!1;this.reforged=s,this.name=n.name;const u=n.extent;this.bounds.fromExtents(u.min,u.max);for(const e of n.sequences)this.sequences.push(new b_(e));for(const e of n.globalSequences)this.globalSequences.push(e);for(const e of n.textureAnimations)this.textureAnimations.push(new P_(this,e));let c=0;for(const e of n.materials){const t=[];for(const n of e.layers){const a=new O_(this,n,c++,e.priorityPlane);t.push(a),this.layers.push(a)}this.materials.push(new D_(this,e.shader,t)),""!==e.shader&&(this.hd=!0)}s&&(i.reforged=!0),this.hd&&(i.hd=!0);const d=n.textures;for(let e=0,t=d.length;e<t;e++){const t=d[e];let n=t.path;const s=t.replaceableId,u=t.wrapMode;""===n&&0!==s&&(n=`ReplaceableTextures\\${G_[s]}${l}`,1!==s&&2!==s||(o=!0));const c=new eg(s,u);a.load(n,r,i).then(e=>{e&&(c.texture=e)}),this.textures[e]=c}for(const e of n.geosetAnimations)this.geosetAnimations.push(new F_(this,e));this.pivotPoints=n.pivotPoints;let h=0;for(const e of n.bones)this.bones.push(new K_(this,e,h++));for(const e of n.lights)this.lights.push(new H_(this,e,h++));for(const e of n.helpers)this.helpers.push(new z_(this,e,h++));for(const e of n.attachments)this.attachments.push(new j_(this,e,h++));for(const e of n.particleEmitters)this.particleEmitters.push(new X_(this,e,h++));for(const e of n.particleEmitters2){const t=new tg(this,e,h++);this.particleEmitters2.push(t),t.teamColored&&(o=!0)}for(const e of n.ribbonEmitters)this.ribbonEmitters.push(new ng(this,e,h++));for(const e of n.cameras)this.cameras.push(new ag(this,e));for(const e of n.eventObjects)this.eventObjects.push(new rg(this,e,h++));for(const e of n.collisionShapes)this.collisionShapes.push(new ig(this,e,h++));this.genericObjects.push(...this.bones,...this.lights,...this.helpers,...this.attachments,...this.particleEmitters,...this.particleEmitters2,...this.ribbonEmitters,...this.eventObjects,...this.collisionShapes),function(e,t){if(t.length>0){const n=e.viewer.gl;let a=0,r=0,i=0,s=0,l=0,o=0;const u=[];for(let e=0,n=t.length;e<n;e++){const n=t[e];if(0===n.lod||-1===n.lod){const t=n.vertices.length/3;if(a+=12*t,r+=12*t,i+=n.uvSets.length*t*8,n.tangents.length&&(s+=16*t),n.skin.length)l+=8*t,u[e]=sg.Skin;else{let a=0;for(const e of n.matrixGroups)e>a&&(a=e);a>4?(l+=9*t,u[e]=sg.ExtendedVertexGroups):(l+=5*t,u[e]=sg.VertexGroups)}o+=n.faces.byteLength}}let c=0,d=c+a,h=d+r,f=h+i,m=f+s,p=0,_=Uint8Array,g=n.UNSIGNED_BYTE;e.bones.length>255&&(l*=2,_=Uint16Array,g=n.UNSIGNED_SHORT),e.skinDataType=g,e.bytesPerSkinElement=_.BYTES_PER_ELEMENT,e.arrayBuffer=n.createBuffer(),n.bindBuffer(n.ARRAY_BUFFER,e.arrayBuffer),n.bufferData(n.ARRAY_BUFFER,m+l,n.STATIC_DRAW),e.elementBuffer=n.createBuffer(),n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,e.elementBuffer),n.bufferData(n.ELEMENT_ARRAY_BUFFER,o,n.STATIC_DRAW);for(let a=0,r=t.length;a<r;a++){const r=t[a];if(0===r.lod||-1===r.lod){const t=r.vertices,i=r.normals,s=r.uvSets,l=r.tangents,o=r.faces;let g;const b=r.vertices.length/3,w=u[a];if(w===sg.Skin)g=r.skin;else{const e=r.matrixIndices,t=r.vertexGroups,n=[];let a=0,i=4;w===sg.ExtendedVertexGroups&&(i=8),g=new _(b*(i+1));for(const t of r.matrixGroups)n.push(e.subarray(a,a+t)),a+=t;for(let e=0;e<b;e++){const r=n[t[e]];if(a=e*(i+1),r){const e=Math.min(r.length,i);for(let t=0;t<e;t++)g[a+t]=r[t]+1;g[a+i]=e}}}const v=new og(e,e.geosets.length,c,d,h,f,m,p,b,o.length,r.faceTypeGroups[0]);e.geosets.push(v);const A=e.materials[r.materialId];if("Shader_HD_DefaultUnit"===A.shader)e.batches.push(new lg(e.batches.length,v,A,w,!0));else for(const t of A.layers)e.batches.push(new lg(e.batches.length,v,t,w,!1));n.bufferSubData(n.ARRAY_BUFFER,c,t),c+=t.byteLength,n.bufferSubData(n.ARRAY_BUFFER,d,i),d+=i.byteLength;for(const e of s)n.bufferSubData(n.ARRAY_BUFFER,h,e),h+=e.byteLength;l.length&&(n.bufferSubData(n.ARRAY_BUFFER,f,l),f+=l.byteLength),n.bufferSubData(n.ARRAY_BUFFER,m,g),m+=g.byteLength,n.bufferSubData(n.ELEMENT_ARRAY_BUFFER,p,o),p+=o.byteLength}}}}(this,n.geosets),function(e){const t=[];let n=[];for(const a of e.batches)a.layer.filterMode<2?t.push(a):n.push(a);const a=e.opaqueGroups,r=e.translucentGroups;let i=null;for(const n of t)i&&hg(i,n)||(i=fg(e,n),a.push(i)),i.objects.push(n.index);n=n.sort((e,t)=>e.layer.filterMode-t.layer.filterMode);const s=[...n,...e.eventObjects,...e.particleEmitters2,...e.ribbonEmitters].sort((e,t)=>dg(e)-dg(t));i=null;for(const t of s)(t instanceof lg||-1!==t.geometryEmitterType)&&(i&&hg(i,t)||(i=fg(e,t),r.push(i)),i.objects.push(t.index))}(this),this.setupHierarchy(-1);for(let e=0,t=this.genericObjects.length;e<t;e++)this.sortedGenericObjects[e]=this.genericObjects[this.hierarchy[e]];o&&bb.loadTeamTextures(a)}addInstance(){return new ub(this)}setupHierarchy(e){for(let t=0,n=this.genericObjects.length;t<n;t++){const n=this.genericObjects[t];n.parentId===e&&(this.hierarchy.push(t),this.setupHierarchy(n.objectId))}}},loadTeamTextures(e){const{pathSolver:t,reforged:n,teamColors:a,teamGlows:r}=e.sharedCache.get("mdx");if(0===a.length){const i=n?28:16,s=n?"dds":"blp",l=n?{reforged:!0}:void 0;for(let n=0;n<i;n++){const i=`${`${n}`.padStart(2,"0")}.${s}`,o=new eg(1,3),u=new eg(2,3);e.load(`ReplaceableTextures\\TeamColor\\TeamColor${i}`,t,l).then(e=>o.texture=e),e.load(`ReplaceableTextures\\TeamGlow\\TeamGlow${i}`,t,l).then(e=>u.texture=e),a[n]=o,r[n]=u}}},getEventObjectSoundFile(e,t,n,a){if(!t||".flac"===Tl(e))return e;for(let t=1,r=a.length;t<r;t++){const r=a[t].data.getRow(e);if(r){const e=r.string("Flags"),t=r.string("Filepath");if("SD_ONLY"===e){if(!n)return t}else{if("HD_ONLY"!==e)return t;if(n)return t}}}},async getEventObjectData(e,t,n,a){if("SPN"!==t&&"SPL"!==t&&"UBR"!==t&&"SND"!==t)return;const{pathSolver:r,reforged:i,eventObjectTables:s}=e.sharedCache.get("mdx"),l=i?{reforged:!0}:{},o=(e,t)=>r?r(e,t):e;if(!s[t]){const n=[];"SPN"===t?n.push("Splats\\SpawnData.slk"):"SPL"===t?n.push("Splats\\SplatData.slk"):"UBR"===t?n.push("Splats\\UberSplatData.slk"):"SND"===t&&(n.push("UI\\SoundInfo\\AnimSounds.slk"),i?n.push("UI\\SoundInfo\\DialogueHumanBase.slk","UI\\SoundInfo\\DialogueOrcBase.slk","UI\\SoundInfo\\DialogueUndeadBase.slk","UI\\SoundInfo\\DialogueNightElfBase.slk","UI\\SoundInfo\\DialogueNagaBase.slk","UI\\SoundInfo\\DialogueDemonBase.slk","UI\\SoundInfo\\DialogueCreepsBase.slk"):n.push("UI\\SoundInfo\\AnimLookups.slk"));const a=n.map(t=>e.loadGeneric(o(t,l),"text",_b)),r=await Promise.all(a);for(const e of r)if(!e)return;s[t]=r}const u=s[t],c=u[0].data;let d;const h=[];if("SND"===t){if(i)d=c.findRow("AnimationEventCode",n);else{const e=u[1].data.getRow(n);e&&(d=c.getRow(e.string("SoundLabel")))}if(d)for(const t of d.string("FileNames").split(",")){const n=this.getEventObjectSoundFile(t,i,a,u);n&&h.push(e.loadGeneric(o(n,l),"arrayBuffer",gb))}}else d=c.getRow(n),d&&("SPN"===t?h.push(e.load(d.string("Model").replace(".mdl",".mdx"),o,l)):"SPL"!==t&&"UBR"!==t||h.push(e.load(`ReplaceableTextures\\Splats\\${d.string("file")}${i?".dds":".blp"}`,o,l)));if(d&&h.length){const e=(await Promise.all(h)).filter(e=>e);if(e.length)return{row:d,resources:e}}},getBatchShader(e,t,n){const a=e.sharedCache.get("mdx"),r=e.debugRenderMode;if(n){if(r!==Sp.None){const e=a.hdDebugShaders[t];if(e){const t=e[r];if(t)return t}}return t===sg.Skin?a.hdSkinShader:t===sg.VertexGroups?a.hdShader:a.hdExtendedShader}if(r!==Sp.None){const e=a.sdDebugShaders[t];if(e){const t=e[r];if(t)return t}}return t===sg.Skin?a.sdSkinShader:t===sg.VertexGroups?a.sdShader:a.sdExtendedShader}};const wb={isValidSource:e=>e instanceof Zm||Qm(e),resource:class extends Ap{constructor(e,t){let n;super(t),e instanceof Zm?n=e:(n=new Zm,n.load(e));const a=n.width,r=n.height,i=this.viewer.gl,s=i.createTexture();i.bindTexture(i.TEXTURE_2D,s),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,i.RGBA,i.UNSIGNED_BYTE,n.data),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.LINEAR),Us(a)&&Us(r)?(i.generateMipmap(i.TEXTURE_2D),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.LINEAR_MIPMAP_LINEAR)):i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.LINEAR),this.webglResource=s,this.width=a,this.height=r}}},vb=`\n${h_}\n\nuniform sampler2D u_tilesets[15];\n\nvarying vec4 v_tilesets;\nvarying vec2 v_uv[4];\nvarying vec3 v_normal;\n\nconst vec3 lightDirection = normalize(vec3(-0.3, -0.3, 0.25));\n\nvec4 sample(float tileset, vec2 uv) {\n // 1.0 - 1.0 == 0.0 is not always true.\n int i = int(tileset - 0.6);\n\n if (i == 0) {\n return texture2D(u_tilesets[0], uv);\n } else if (i == 1) {\n return texture2D(u_tilesets[1], uv);\n } else if (i == 2) {\n return texture2D(u_tilesets[2], uv);\n } else if (i == 3) {\n return texture2D(u_tilesets[3], uv);\n } else if (i == 4) {\n return texture2D(u_tilesets[4], uv);\n } else if (i == 5) {\n return texture2D(u_tilesets[5], uv);\n } else if (i == 6) {\n return texture2D(u_tilesets[6], uv);\n } else if (i == 7) {\n return texture2D(u_tilesets[7], uv);\n } else if (i == 8) {\n return texture2D(u_tilesets[8], uv);\n } else if (i == 9) {\n return texture2D(u_tilesets[9], uv);\n } else if (i == 10) {\n return texture2D(u_tilesets[10], uv);\n } else if (i == 11) {\n return texture2D(u_tilesets[11], uv);\n } else if (i == 12) {\n return texture2D(u_tilesets[12], uv);\n } else if (i == 13) {\n return texture2D(u_tilesets[13], uv);\n } else if (i == 14) {\n return texture2D(u_tilesets[14], uv);\n }\n}\n\nvec4 blend(vec4 color, float tileset, vec2 uv) {\n vec4 texel = sample(tileset, uv);\n\n return mix(color, texel, texel.a);\n}\n\nvoid main() {\n vec4 color = sample(v_tilesets[0], v_uv[0]);\n\n if (v_tilesets[1] > 0.5) {\n color = blend(color, v_tilesets[1], v_uv[1]);\n }\n\n if (v_tilesets[2] > 0.5) {\n color = blend(color, v_tilesets[2], v_uv[2]);\n }\n\n if (v_tilesets[3] > 0.5) {\n color = blend(color, v_tilesets[3], v_uv[3]);\n }\n\n //color *= clamp(dot(v_normal, lightDirection) + 0.45, 0.0, 1.0);\n\n gl_FragColor = vec4(color.rgb, 1.0);\n}\n`,Ab=`\n${h_}\n\nuniform sampler2D u_waterTexture;\n\nvarying vec2 v_uv;\nvarying vec4 v_color;\n\nvoid main() {\n gl_FragColor = texture2D(u_waterTexture, v_uv) * v_color;\n}\n`,yb=`\n// #extension GL_OES_standard_derivatives : enable\n\n${h_}\n\nuniform sampler2D u_texture1;\nuniform sampler2D u_texture2;\n\nvarying vec3 v_normal;\nvarying vec2 v_uv;\nvarying float v_texture;\nvarying vec3 v_position;\n\n// const vec3 lightDirection = normalize(vec3(-0.3, -0.3, 0.25));\n\nvec4 sample(float texture, vec2 uv) {\n // int(0.0) == 0 is not always true.\n int i = int(texture + 0.1);\n\n if (i == 0) {\n return texture2D(u_texture1, uv);\n } else {\n return texture2D(u_texture2, uv);\n }\n}\n\nvoid main() {\n vec4 color = sample(v_texture, v_uv);\n\n // vec3 faceNormal = cross(dFdx(v_position), dFdy(v_position));\n // vec3 normal = normalize((faceNormal + v_normal) * 0.5);\n\n // color *= clamp(dot(normal, lightDirection) + 0.45, 0.1, 1.0);\n\n gl_FragColor = color;\n}\n`;function Sb(e){return e.reverse().filter((e,t,n)=>-1===n.indexOf(e,t+1)).reverse()}const Tb={AAAB:1,AAAC:1,AABA:1,AABB:2,AABC:0,AACA:1,AACB:0,AACC:1,ABAA:1,ABAB:1,ABAC:0,ABBA:2,ABBB:1,ABBC:0,ABCA:0,ABCB:0,ABCC:0,ACAA:1,ACAB:0,ACAC:1,ACBA:0,ACBB:0,ACBC:0,ACCA:1,ACCB:0,ACCC:1,BAAA:1,BAAB:1,BAAC:0,BABA:1,BABB:1,BABC:0,BACA:0,BACB:0,BACC:0,BBAA:1,BBAB:1,BBAC:0,BBBA:1,BBCA:0,BCAA:0,BCAB:0,BCAC:0,BCBA:0,BCCA:0,CAAA:1,CAAB:0,CAAC:1,CABA:0,CABB:0,CABC:0,CACA:1,CACB:0,CACC:1,CBAA:0,CBAB:0,CBAC:0,CBBA:0,CBCA:0,CCAA:1,CCAB:0,CCAC:1,CCBA:0,CCCA:1},xb={AAAB:2,AAAC:1,AABA:1,AABB:3,AABC:0,AACA:1,AACB:0,AACC:3,ABAA:1,ABAB:2,ABAC:0,ABBA:3,ABBB:0,ABBC:0,ABCA:0,ABCB:0,ABCC:0,ACAA:1,ACAB:0,ACAC:2,ACBA:0,ACBB:0,ACBC:0,ACCA:3,ACCB:0,ACCC:1,BAAA:1,BAAB:3,BAAC:0,BABA:2,BABB:0,BABC:0,BACA:0,BACB:0,BACC:0,BBAA:3,BBAB:1,BBAC:0,BBBA:1,BBCA:0,BCAA:0,BCAB:0,BCAC:0,BCBA:0,BCCA:0,CAAA:1,CAAB:0,CAAC:3,CABA:0,CABB:0,CABC:0,CACA:2,CACB:0,CACC:1,CBAA:0,CBAB:0,CBAC:0,CBBA:0,CBCA:0,CCAA:3,CCAB:0,CCAC:1,CCBA:0,CCCA:1};function Eb(e,t,n){return"Cliffs"===e?Math.min(n,Tb[t]):Math.min(n,xb[t])}class Lb{constructor(e,t,n,a,r){const i=e.viewer.gl,s=e.viewer.webgl,l=s.extensions.ANGLE_instanced_arrays,o=s.extensions.OES_vertex_array_object,u=new Po;u.load(t);const c=u.geosets[0],d=c.vertices,h=c.normals,f=c.uvSets[0],m=c.faces,p=d.byteLength,_=p+h.byteLength;let g=null;const b=r.attribs;o&&(g=o.createVertexArrayOES(),o.bindVertexArrayOES(g));const w=i.createBuffer();i.bindBuffer(i.ARRAY_BUFFER,w),i.bufferData(i.ARRAY_BUFFER,_+f.byteLength,i.STATIC_DRAW),i.bufferSubData(i.ARRAY_BUFFER,0,d),i.bufferSubData(i.ARRAY_BUFFER,p,h),i.bufferSubData(i.ARRAY_BUFFER,_,f),o&&(i.vertexAttribPointer(b.a_position,3,i.FLOAT,!1,0,0),i.enableVertexAttribArray(b.a_position),i.vertexAttribPointer(b.a_normal,3,i.FLOAT,!1,0,p),i.enableVertexAttribArray(b.a_normal),i.vertexAttribPointer(b.a_uv,2,i.FLOAT,!1,0,_),i.enableVertexAttribArray(b.a_uv));const v=4*n.length,A=i.createBuffer();i.bindBuffer(i.ARRAY_BUFFER,A),i.bufferData(i.ARRAY_BUFFER,v+a.length,i.STATIC_DRAW),i.bufferSubData(i.ARRAY_BUFFER,0,new Float32Array(n)),i.bufferSubData(i.ARRAY_BUFFER,v,new Uint8Array(a)),o&&(i.vertexAttribPointer(b.a_instancePosition,3,i.FLOAT,!1,0,0),i.enableVertexAttribArray(b.a_instancePosition),l.vertexAttribDivisorANGLE(b.a_instancePosition,1),i.vertexAttribPointer(b.a_instanceTexture,1,i.UNSIGNED_BYTE,!1,0,v),i.enableVertexAttribArray(b.a_instanceTexture),l.vertexAttribDivisorANGLE(b.a_instanceTexture,1));const y=i.createBuffer();i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,y),i.bufferData(i.ELEMENT_ARRAY_BUFFER,m,i.STATIC_DRAW),o&&o.bindVertexArrayOES(null),this.map=e,this.vertexBuffer=w,this.faceBuffer=y,this.normalsOffset=p,this.uvsOffset=_,this.elements=m.length,this.locationAndTextureBuffer=A,this.texturesOffset=v,this.instances=n.length/3,this.vao=g}render(e){const t=this.map.viewer,n=t.gl,a=t.webgl,r=a.extensions.ANGLE_instanced_arrays,i=a.extensions.OES_vertex_array_object,s=e.attribs;i?i.bindVertexArrayOES(this.vao):(n.bindBuffer(n.ARRAY_BUFFER,this.locationAndTextureBuffer),n.vertexAttribPointer(s.a_instancePosition,3,n.FLOAT,!1,0,0),n.vertexAttribPointer(s.a_instanceTexture,1,n.UNSIGNED_BYTE,!1,0,this.texturesOffset),n.bindBuffer(n.ARRAY_BUFFER,this.vertexBuffer),n.vertexAttribPointer(s.a_position,3,n.FLOAT,!1,0,0),n.vertexAttribPointer(s.a_normal,3,n.FLOAT,!1,0,this.normalsOffset),n.vertexAttribPointer(s.a_uv,2,n.FLOAT,!1,0,this.uvsOffset),n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,this.faceBuffer)),r.drawElementsInstancedANGLE(n.TRIANGLES,this.elements,n.UNSIGNED_SHORT,0,this.instances),i&&i.bindVertexArrayOES(null)}}function Ib(e,t){return e.sequence.rarity-t.sequence.rarity}function Ub(e){const t=function(e,t){const n=function(e,t){const n=[];for(let a=0,r=t.length;a<r;a++){const r=t[a];r.name.split("-")[0].replace(/\d/g,"").trim().toLowerCase()===e&&n.push({sequence:r,index:a})}return n}(e,t);let a,r;for(n.sort(Ib),a=0,r=n.length;a<r;a++){const e=n[a].sequence.rarity;if(0===e)break;if(10*Math.random()>e)return n[a]}const i=n.length-a;return n[a+Math.floor(Math.random()*i)]}("stand",e.model.sequences);t&&e.setSequence(t.index)}var Rb;!function(e){e[e.IDLE=0]="IDLE",e[e.WALK=1]="WALK"}(Rb||(Rb={}));class Cb{constructor(e,t){this.state=Rb.IDLE,this.instance=t.addInstance(),this.instance.setScene(e.worldScene)}update(){(this.instance.sequenceEnded||-1===this.instance.sequence)&&this.state===Rb.IDLE&&Ub(this.instance)}}const Mb=Wt();class Bb extends Cb{constructor(e,t,n,a){super(e,t);const r=this.instance;r.move(a.location),r.rotateLocal(Na(Ma(),ts,a.angle)),r.scale(a.scale),r.setTeamColor(a.player),r.setScene(e.worldScene),n&&(Mb[2]=n.number("moveHeight"),r.move(Mb),r.setVertexColor([n.number("red")/255,n.number("green")/255,n.number("blue")/255,1]),r.uniformScale(n.number("modelScale"))),this.instance=r,this.row=n}}class Nb extends Cb{constructor(e,t,n,a){super(e,t);const r=this.instance;r.move(a.location),r.rotateLocal(Na(Ma(),ts,a.angle)),r.scale(a.scale),r.setScene(e.worldScene),this.instance=r,this.row=n}}const Pb=Wt();class kb{constructor(e,t,n,a){const r=e.centerOffset,i=t.addInstance();Pb[0]=128*a.location[0]+r[0]+128,Pb[1]=128*a.location[1]+r[1]+128,i.move(Pb),i.rotateLocal(Na(Ma(),ts,vs(n.number("fixedRot")))),i.setScene(e.worldScene),this.instance=i,this.row=n}}const Ob=Wt(),Db=Wt();class Fb{constructor(e,t){this.buildVersion=0,this.solverParams={tileset:"a"},this.waterIndex=0,this.waterIncreasePerFrame=0,this.waterHeightOffset=0,this.waterTextures=[],this.maxDeepColor=new Float32Array(4),this.minDeepColor=new Float32Array(4),this.maxShallowColor=new Float32Array(4),this.minShallowColor=new Float32Array(4),this.anyReady=!1,this.terrainReady=!1,this.cliffsReady=!1,this.doodads=[],this.terrainDoodads=[],this.doodadsReady=!1,this.units=[],this.unitsReady=!1,this.tilesetTextures=[],this.cliffTextures=[],this.cliffModels=[],this.corners=[],this.centerOffset=new Float32Array(2),this.mapSize=new Int32Array(2),this.tilesets=[],this.blightTextureIndex=-1,this.cliffTilesets=[],this.columns=0,this.rows=0,this.vertexBuffer=null,this.faceBuffer=null,this.instanceBuffer=null,this.textureBuffer=null,this.variationBuffer=null,this.waterBuffer=null,this.heightMap=null,this.waterHeightMap=null,this.cliffHeightMap=null,this.viewer=e,this.worldScene=e.addScene(),this.map=new Sf,this.map.load(t,!0),this.loadMapInformation(),this.pathSolver=(t,n)=>{if("string"==typeof t){const a=t.replace(/\//g,"\\"),r=this.map.get(a);return r?r.arrayBuffer():e.wc3PathSolver(t,n)}return t},this.loadTerrainCliffsAndWater();const n=this.map.readModifications();this.applyModificationFile(e.doodadsData,e.doodadMetaData,n.w3d),this.applyModificationFile(e.doodadsData,e.destructableMetaData,n.w3b),this.applyModificationFile(e.unitsData,e.unitMetaData,n.w3u),this.applyModificationFile(e.unitsData,e.unitMetaData,n.w3t),this.loadDoodadsAndDestructibles(),this.loadUnitsAndItems()}die(){this.worldScene.detach()}load(e){return this.viewer.load(e,this.pathSolver,this.solverParams)}loadMapInformation(){const e=this.map.get("war3map.w3i");if(!e)return void console.warn("Attempted to load war3map.w3i but it is not there. Using default tileset A.");const t=new yf;try{t.load(e.bytes())}catch(e){console.warn("Failed to correctly parse the map information file")}this.solverParams.tileset=t.tileset.toLowerCase(),this.buildVersion=t.getBuildVersion(),this.buildVersion>131&&(this.solverParams.reforged=!0)}async loadTerrainCliffsAndWater(){const e=this.map.get("war3map.w3e");if(!e)return void console.warn("Attempted to load war3map.w3e, but it is not there.");const t=new Df;try{t.load(e.bytes())}catch(e){return void console.warn(`Failed to load war3map.w3e: ${e}`)}const n=this.viewer,a=t.centerOffset,r=t.mapSize;this.corners=t.corners,this.centerOffset.set(a),this.mapSize.set(r),this.worldScene.grid=new pp(a[0],a[1],128*r[0]-128,128*r[1]-128,2048,2048);const i=this.solverParams.reforged?".dds":".blp",s=t.tileset,l=[],o=[],u=[];for(const e of t.groundTilesets){const t=n.terrainData.getRow(e);this.tilesets.push(t),l.push(this.load(`${t.string("dir")}\\${t.string("file")}${i}`))}this.blightTextureIndex=this.tilesetTextures.length,l.push(this.load(`TerrainArt\\Blight\\${{A:"Ashen",B:"Barrens",C:"Felwood",D:"Cave",F:"Lordf",G:"Dungeon",I:"Ice",J:"DRuins",K:"Citadel",L:"Lords",N:"North",O:"Outland",Q:"VillageFall",V:"Village",W:"Lordw",X:"Village",Y:"Village",Z:"Ruins"}[s]}_Blight${i}`));for(const e of t.cliffTilesets){const t=n.cliffTypesData.getRow(e);this.cliffTilesets.push(t),o.push(this.load(`${t.string("texDir")}\\${t.string("texFile")}${i}`))}const c=n.waterData.getRow(`${s}Sha`);this.waterHeightOffset=c.number("height"),this.waterIncreasePerFrame=c.number("texRate")/60,this.waterTextures.length=0,this.maxDeepColor.set([c.number("Dmax_R"),c.number("Dmax_G"),c.number("Dmax_B"),c.number("Dmax_A")]),this.minDeepColor.set([c.number("Dmin_R"),c.number("Dmin_G"),c.number("Dmin_B"),c.number("Dmin_A")]),this.maxShallowColor.set([c.number("Smax_R"),c.number("Smax_G"),c.number("Smax_B"),c.number("Smax_A")]),this.minShallowColor.set([c.number("Smin_R"),c.number("Smin_G"),c.number("Smin_B"),c.number("Smin_A")]);for(let e=0,t=c.number("numTex");e<t;e++)u.push(this.load(`${c.string("texFile")}${e<10?"0":""}${e}${i}`));this.tilesetTextures=await Promise.all(l),this.cliffTextures=await Promise.all(o),this.waterTextures=await Promise.all(u);const d=t.corners,[h,f]=this.mapSize,m=(h-1)*(f-1),p=new Float32Array(h*f),_=new Float32Array(h*f),g=new Float32Array(h*f),b=new Uint8Array(4*m),w=new Uint8Array(4*m),v=new Uint8Array(m);let A=0;const y={};this.columns=h-1,this.rows=f-1;for(let e=0;e<f;e++)for(let t=0;t<h;t++){const n=d[e][t],r=e*h+t;if(p[r]=n.groundHeight,_[r]=n.groundHeight+n.layerHeight-2,g[r]=n.waterHeight,e<f-1&&t<h-1){if(v[A]=this.isWater(t,e),this.isCliff(t,e)){const r=n.layerHeight,i=d[e][t+1].layerHeight,s=d[e+1][t].layerHeight,l=d[e+1][t+1].layerHeight,o=Math.min(r,i,s,l),u=this.cliffFileName(r,i,s,l,o);if("AAAA"!==u){let r=n.cliffTexture;15===r&&(r=1);const i=this.cliffTilesets[r].string("cliffModelDir"),s=`Doodads\\Terrain\\${i}\\${i}${u}${Eb(i,u,n.cliffVariation)}.mdx`;y[s]||(y[s]={locations:[],textures:[]}),y[s].locations.push(128*(t+1)+a[0],128*e+a[1],128*(o-2)),y[s].textures.push(r)}}else{const a=this.cornerTexture(t,e),r=this.cornerTexture(t+1,e),i=this.cornerTexture(t,e+1),s=this.cornerTexture(t+1,e+1),l=Sb([a,r,i,s]).sort();let o=l[0];b[4*A]=o+1,w[4*A]=this.getVariation(o,n.groundVariation),l.shift();for(let e=0,t=l.length;e<t;e++){let t=0;o=l[e],r===o&&(t|=1),a===o&&(t|=2),s===o&&(t|=4),i===o&&(t|=8),b[4*A+1+e]=o+1,w[4*A+1+e]=t}}A+=1}}const S=this.viewer.gl,T=this.viewer.webgl;this.vertexBuffer=S.createBuffer(),S.bindBuffer(S.ARRAY_BUFFER,this.vertexBuffer),S.bufferData(S.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,1,1]),S.STATIC_DRAW),this.faceBuffer=S.createBuffer(),S.bindBuffer(S.ELEMENT_ARRAY_BUFFER,this.faceBuffer),S.bufferData(S.ELEMENT_ARRAY_BUFFER,new Uint8Array([0,1,2,1,3,2]),S.STATIC_DRAW),this.cliffHeightMap=S.createTexture(),S.bindTexture(S.TEXTURE_2D,this.cliffHeightMap),T.setTextureMode(S.CLAMP_TO_EDGE,S.CLAMP_TO_EDGE,S.NEAREST,S.NEAREST),S.texImage2D(S.TEXTURE_2D,0,S.ALPHA,h,f,0,S.ALPHA,S.FLOAT,p),this.heightMap=S.createTexture(),S.bindTexture(S.TEXTURE_2D,this.heightMap),T.setTextureMode(S.CLAMP_TO_EDGE,S.CLAMP_TO_EDGE,S.NEAREST,S.NEAREST),S.texImage2D(S.TEXTURE_2D,0,S.ALPHA,h,f,0,S.ALPHA,S.FLOAT,_),this.waterHeightMap=S.createTexture(),S.bindTexture(S.TEXTURE_2D,this.waterHeightMap),T.setTextureMode(S.CLAMP_TO_EDGE,S.CLAMP_TO_EDGE,S.NEAREST,S.NEAREST),S.texImage2D(S.TEXTURE_2D,0,S.ALPHA,h,f,0,S.ALPHA,S.FLOAT,g),this.instanceBuffer=S.createBuffer(),S.bindBuffer(S.ARRAY_BUFFER,this.instanceBuffer),S.bufferData(S.ARRAY_BUFFER,new Float32Array(m).map((e,t)=>t),S.STATIC_DRAW),this.textureBuffer=S.createBuffer(),S.bindBuffer(S.ARRAY_BUFFER,this.textureBuffer),S.bufferData(S.ARRAY_BUFFER,b,S.STATIC_DRAW),this.variationBuffer=S.createBuffer(),S.bindBuffer(S.ARRAY_BUFFER,this.variationBuffer),S.bufferData(S.ARRAY_BUFFER,w,S.STATIC_DRAW),this.waterBuffer=S.createBuffer(),S.bindBuffer(S.ARRAY_BUFFER,this.waterBuffer),S.bufferData(S.ARRAY_BUFFER,v,S.STATIC_DRAW),this.terrainReady=!0,this.anyReady=!0;const x=n.cliffShader,E=Object.entries(y).map(async e=>{const t=e[0],{locations:a,textures:r}=e[1],i=await n.loadBaseFile(t,"arrayBuffer");if(i)return new Lb(this,i.data,a,r,x)}).filter(e=>e);this.cliffModels=await Promise.all(E),this.cliffsReady=!0}loadDoodadsAndDestructibles(){const e=this.map.get("war3map.doo");if(!e)return void console.warn("Attempted to load war3map.doo but it is not there");const t=new If;try{t.load(e.bytes(),this.buildVersion)}catch(e){return void console.warn(`Failed to load war3map.doo: ${e}`)}for(const e of t.doodads)try{const t=this.viewer.doodadsData.getRow(e.id);if(t){let n=t.string("file");if(n){const a=t.number("numVar");n.endsWith(".mdl")&&(n=n.slice(0,-4));let r=n;n+=".mdx",a>1&&(r+=Math.min(e.variation,a-1)),r+=".mdx";const i=this.map.get(r)||this.map.get(n);let s;s=i?this.load(i.name):this.load(r),s.then(n=>{n&&this.doodads.push(new Nb(this,n,t,e))})}else console.log("Unknown doodad ID",e.id,e)}}catch(t){console.warn(`Failed to load doodad/destructible ID ${e.id}: ${t}`)}for(const e of t.terrainDoodads)try{const t=this.viewer.doodadsData.getRow(e.id);this.load(`${t.string("file")}.mdx`).then(n=>{n&&this.terrainDoodads.push(new kb(this,n,t,e))})}catch(t){console.warn(`Failed to load cliff/terrain doodad ID ${e.id}: ${t}`)}this.doodadsReady=!0,this.anyReady=!0}loadUnitsAndItems(){const e=this.map.get("war3mapUnits.doo");if(!e)return void console.warn("Attempted to load war3mapUnits.doo but it is not there");const t=new im;try{t.load(e.bytes(),this.buildVersion)}catch(e){return void console.warn(`Failed to load war3mapUnits.doo: ${e}`)}for(const e of t.units)try{let t,n;"sloc"===e.id?n="Objects\\StartLocation\\StartLocation.mdx":(t=this.viewer.unitsData.getRow(e.id),t&&(n=t.string("file"),n&&(n.endsWith(".mdl")&&(n=n.slice(0,-4)),n+=".mdx"))),n?this.load(n).then(n=>{n&&this.units.push(new Bb(this,n,t,e))}):console.log("Unknown unit ID",e.id,e)}catch(t){console.warn(`Failed to load unit/item ID ${e.id}: ${t}`)}this.unitsReady=!0,this.anyReady=!0}update(){if(this.anyReady){this.waterIndex+=this.waterIncreasePerFrame,this.waterIndex>=this.waterTextures.length&&(this.waterIndex=0);for(const e of this.doodads)e.update();for(const e of this.units)e.update()}}render(){if(this.anyReady){const e=this.worldScene;e.startFrame(),this.renderGround(),this.renderCliffs(),e.renderOpaque(),this.renderWater(),e.renderTranslucent()}}renderGround(){if(this.terrainReady){const e=this.viewer.gl,t=this.viewer.webgl,n=t.extensions.ANGLE_instanced_arrays,a=this.viewer.groundShader,r=a.uniforms,i=a.attribs,s=this.tilesetTextures,l=i.a_InstanceID,o=i.a_position,u=i.a_textures,c=i.a_variations,d=s.length;e.enable(e.BLEND),e.blendFunc(e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA),t.useShader(a),e.uniformMatrix4fv(r.u_VP,!1,this.worldScene.camera.viewProjectionMatrix),e.uniform2fv(r.u_offset,this.centerOffset),e.uniform2f(r.u_size,this.columns,this.rows),e.uniform1i(r.u_heightMap,15),e.activeTexture(e.TEXTURE15),e.bindTexture(e.TEXTURE_2D,this.heightMap),e.bindBuffer(e.ARRAY_BUFFER,this.vertexBuffer),e.vertexAttribPointer(o,2,e.FLOAT,!1,0,0),e.bindBuffer(e.ARRAY_BUFFER,this.instanceBuffer),e.vertexAttribPointer(l,1,e.FLOAT,!1,0,0),n.vertexAttribDivisorANGLE(l,1),e.bindBuffer(e.ARRAY_BUFFER,this.textureBuffer),e.vertexAttribPointer(u,4,e.UNSIGNED_BYTE,!1,0,0),n.vertexAttribDivisorANGLE(u,1),e.bindBuffer(e.ARRAY_BUFFER,this.variationBuffer),e.vertexAttribPointer(c,4,e.UNSIGNED_BYTE,!1,0,0),n.vertexAttribDivisorANGLE(c,1),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,this.faceBuffer),e.uniform1f(r.u_baseTileset,0);for(let n=0,a=Math.min(d,15);n<a;n++){const a=s[n].width>s[n].height?1:0;e.uniform1f(r[`u_extended[${n}]`],a),e.uniform1i(r[`u_tilesets[${n}]`],n),t.bindTexture(s[n],n)}if(n.drawElementsInstancedANGLE(e.TRIANGLES,6,e.UNSIGNED_BYTE,0,this.rows*this.columns),d>15){e.uniform1f(r.u_baseTileset,15);for(let n=0,a=d-15;n<a;n++){const a=s[n+15].width>s[n+15].height?1:0;e.uniform1f(r[`u_extended[${n}]`],a),t.bindTexture(s[n+15],n)}n.drawElementsInstancedANGLE(e.TRIANGLES,6,e.UNSIGNED_BYTE,0,this.rows*this.columns)}n.vertexAttribDivisorANGLE(u,0),n.vertexAttribDivisorANGLE(c,0),n.vertexAttribDivisorANGLE(l,0)}}renderWater(){if(this.terrainReady){const e=this.viewer.gl,t=this.viewer.webgl,n=t.extensions.ANGLE_instanced_arrays,a=this.viewer.waterShader,r=a.uniforms,i=a.attribs,s=i.a_InstanceID,l=i.a_position,o=i.a_isWater;e.depthMask(!1),e.enable(e.BLEND),e.blendFunc(e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA),t.useShader(a),e.uniformMatrix4fv(r.u_VP,!1,this.worldScene.camera.viewProjectionMatrix),e.uniform2fv(r.u_offset,this.centerOffset),e.uniform2f(r.u_size,this.columns,this.rows),e.uniform1i(r.u_heightMap,0),e.uniform1i(r.u_waterHeightMap,1),e.uniform1i(r.u_waterTexture,2),e.uniform1f(r.u_offsetHeight,this.waterHeightOffset),e.uniform4fv(r.u_maxDeepColor,this.maxDeepColor),e.uniform4fv(r.u_minDeepColor,this.minDeepColor),e.uniform4fv(r.u_maxShallowColor,this.maxShallowColor),e.uniform4fv(r.u_minShallowColor,this.minShallowColor),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,this.heightMap),e.activeTexture(e.TEXTURE1),e.bindTexture(e.TEXTURE_2D,this.waterHeightMap),t.bindTexture(this.waterTextures[0|this.waterIndex],2),e.bindBuffer(e.ARRAY_BUFFER,this.vertexBuffer),e.vertexAttribPointer(l,2,e.FLOAT,!1,8,0),e.bindBuffer(e.ARRAY_BUFFER,this.instanceBuffer),e.vertexAttribPointer(s,1,e.FLOAT,!1,4,0),n.vertexAttribDivisorANGLE(s,1),e.bindBuffer(e.ARRAY_BUFFER,this.waterBuffer),e.vertexAttribPointer(o,1,e.UNSIGNED_BYTE,!1,1,0),n.vertexAttribDivisorANGLE(o,1),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,this.faceBuffer),n.drawElementsInstancedANGLE(e.TRIANGLES,6,e.UNSIGNED_BYTE,0,this.rows*this.columns),n.vertexAttribDivisorANGLE(o,0),n.vertexAttribDivisorANGLE(s,0)}}renderCliffs(){if(this.cliffsReady){const e=this.viewer.gl,t=this.viewer.webgl,n=t.extensions.ANGLE_instanced_arrays,a=t.extensions.OES_vertex_array_object,r=this.viewer.cliffShader,i=r.attribs,s=r.uniforms;e.disable(e.BLEND),r.use(),e.uniformMatrix4fv(s.u_VP,!1,this.worldScene.camera.viewProjectionMatrix),e.uniform1i(s.u_heightMap,0),e.uniform2f(s.u_pixel,1/(this.columns+1),1/(this.rows+1)),e.uniform2fv(s.u_centerOffset,this.centerOffset),e.uniform1i(s.u_texture1,1),e.uniform1i(s.u_texture2,2),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,this.cliffHeightMap),e.activeTexture(e.TEXTURE1),e.bindTexture(e.TEXTURE_2D,this.cliffTextures[0].webglResource),this.cliffTextures.length>1&&(e.activeTexture(e.TEXTURE2),e.bindTexture(e.TEXTURE_2D,this.cliffTextures[1].webglResource)),a||(n.vertexAttribDivisorANGLE(i.a_instancePosition,1),n.vertexAttribDivisorANGLE(i.a_instanceTexture,1));for(const e of this.cliffModels)e.render(r);a||(n.vertexAttribDivisorANGLE(i.a_instancePosition,0),n.vertexAttribDivisorANGLE(i.a_instanceTexture,0))}}cliffFileName(e,t,n,a,r){return String.fromCharCode(65+e-r)+String.fromCharCode(65+n-r)+String.fromCharCode(65+a-r)+String.fromCharCode(65+t-r)}getVariation(e,t){const n=this.tilesetTextures[e];return n.width>n.height?t<16?16+t:16===t?15:0:0===t?0:15}isCliff(e,t){if(e<1||e>this.columns-1||t<1||t>this.rows-1)return!1;const n=this.corners,a=n[t][e].layerHeight,r=n[t][e+1].layerHeight,i=n[t+1][e].layerHeight,s=n[t+1][e+1].layerHeight;return a!==r||a!==i||a!==s}isWater(e,t){const n=this.corners;return n[t][e].water||n[t][e+1].water||n[t+1][e].water||n[t+1][e+1].water}cliffGroundIndex(e){const t=this.cliffTilesets[e].string("groundTile"),n=this.tilesets;for(let e=0,a=n.length;e<a;e++)if(n[e].string("tileID")===t)return e;return 0}cornerTexture(e,t){const n=this.corners,a=this.columns,r=this.rows;for(let i=-1;i<1;i++)for(let s=-1;s<1;s++)if(e+s>0&&e+s<a-1&&t+i>0&&t+i<r-1&&this.isCliff(e+s,t+i)){let a=n[t+i][e+s].cliffTexture;return 15===a&&(a=1),this.cliffGroundIndex(a)}const i=n[t][e];return i.blight?this.blightTextureIndex:i.groundTexture}applyModificationFile(e,t,n){n&&(this.applyModificationTable(e,t,n.originalTable),this.applyModificationTable(e,t,n.customTable))}applyModificationTable(e,t,n){for(const a of n.objects){let n;""!==a.newId?(n=e.getRow(a.newId),n||(n=new __,n.map=Object.assign({},e.getRow(a.oldId).map),e.setRow(a.newId,n))):n=e.getRow(a.oldId);for(const e of a.modifications){const a=t.getRow(e.id);a?n.set(a.string("field"),e.value):console.warn("Unknown modification ID",e)}}}groundNormal(e,t,n){const a=this.centerOffset,r=this.mapSize,i=0|(t=(t-a[0])/128),s=0|(n=(n-a[1])/128);if(i>=0&&i<r[0]-1&&s>=0&&s<r[1]-1){const a=this.corners,r=a[s][i].groundHeight,l=a[s][i+1].groundHeight,o=a[s+1][i].groundHeight,u=a[s+1][i+1].groundHeight;t-i+(n-s)<1?(en(Ob,1,0,l-r),en(Db,0,1,o-r)):(en(Ob,-1,0,u-o),en(Db,0,1,u-l)),bn(e,vn(e,Ob,Db))}else en(e,0,0,1);return e}}const Gb={blp:Bp,dds:Np,m3:m_,mdx:bb,tga:wb,War3MapViewer:class extends Tp{constructor(e,t,n){super(e),this.terrainData=new g_,this.cliffTypesData=new g_,this.waterData=new g_,this.doodadsData=new g_,this.doodadMetaData=new g_,this.destructableMetaData=new g_,this.unitsData=new g_,this.unitMetaData=new g_,this.loadedBaseFiles=!1,this.map=null;const a=this.webgl;if(!a.ensureExtension("OES_texture_float"))throw new Error("War3MapViewer: No float texture support!");a.ensureExtension("OES_vertex_array_object")||console.warn("War3MapViewer: No vertex array object support! This might reduce performance."),this.on("error",e=>console.log(e)),this.addHandler(bb,t,n),this.addHandler(Bp),this.addHandler(wb),this.addHandler(Np),this.wc3PathSolver=t,this.isReforged=n,this.groundShader=this.webgl.createShader("\nuniform mat4 u_VP;\nuniform sampler2D u_heightMap;\nuniform vec2 u_size;\nuniform vec2 u_offset;\nuniform bool u_extended[14];\nuniform float u_baseTileset;\n\nattribute vec2 a_position;\nattribute float a_InstanceID;\nattribute vec4 a_textures;\nattribute vec4 a_variations;\n\nvarying vec4 v_tilesets;\nvarying vec2 v_uv[4];\nvarying vec3 v_normal;\n\nvec2 getCell(float variation) {\n if (variation < 16.0) {\n return vec2(mod(variation, 4.0), floor(variation / 4.0));\n } else {\n variation -= 16.0;\n\n return vec2(4.0 + mod(variation, 4.0), floor(variation / 4.0));\n }\n}\n\nvec2 getUV(vec2 position, bool extended, float variation) {\n vec2 cell = getCell(variation);\n vec2 cellSize = vec2(extended ? 0.125 : 0.25, 0.25);\n vec2 uv = vec2(position.x, 1.0 - position.y);\n vec2 pixelSize = vec2(1.0 / 512.0, 1.0 / 256.0); /// Note: hardcoded to 512x256 for now.\n\n return clamp((cell + uv) * cellSize, cell * cellSize + pixelSize, (cell + 1.0) * cellSize - pixelSize); \n}\n\nvoid main() {\n vec4 textures = a_textures - u_baseTileset;\n \n if (textures[0] > 0.0 || textures[1] > 0.0 || textures[2] > 0.0 || textures[3] > 0.0) {\n v_tilesets = textures;\n\n v_uv[0] = getUV(a_position, u_extended[int(textures[0]) - 1], a_variations[0]);\n v_uv[1] = getUV(a_position, u_extended[int(textures[1]) - 1], a_variations[1]);\n v_uv[2] = getUV(a_position, u_extended[int(textures[2]) - 1], a_variations[2]);\n v_uv[3] = getUV(a_position, u_extended[int(textures[3]) - 1], a_variations[3]);\n\n vec2 corner = vec2(mod(a_InstanceID, u_size.x), floor(a_InstanceID / u_size.x));\n vec2 base = corner + a_position;\n float height = texture2D(u_heightMap, base / u_size).a;\n\n float hL = texture2D(u_heightMap, vec2(base - vec2(1.0, 0.0)) / (u_size)).a;\n float hR = texture2D(u_heightMap, vec2(base + vec2(1.0, 0.0)) / (u_size)).a;\n float hD = texture2D(u_heightMap, vec2(base - vec2(0.0, 1.0)) / (u_size)).a;\n float hU = texture2D(u_heightMap, vec2(base + vec2(0.0, 1.0)) / (u_size)).a;\n\n v_normal = normalize(vec3(hL - hR, hD - hU, 2.0));\n\n gl_Position = u_VP * vec4(base * 128.0 + u_offset, height * 128.0, 1.0);\n } else {\n v_tilesets = vec4(0.0);\n\n v_uv[0] = vec2(0.0);\n v_uv[1] = vec2(0.0);\n v_uv[2] = vec2(0.0);\n v_uv[3] = vec2(0.0);\n\n v_normal = vec3(0.0);\n\n gl_Position = vec4(0.0);\n }\n}\n",vb),this.waterShader=this.webgl.createShader("\nuniform mat4 u_VP;\nuniform sampler2D u_heightMap;\nuniform sampler2D u_waterHeightMap;\nuniform vec2 u_size;\nuniform vec2 u_offset;\nuniform float u_offsetHeight;\nuniform vec4 u_minDeepColor;\nuniform vec4 u_maxDeepColor;\nuniform vec4 u_minShallowColor;\nuniform vec4 u_maxShallowColor;\n\nattribute vec2 a_position;\nattribute float a_InstanceID;\nattribute float a_isWater;\n\nvarying vec2 v_uv;\nvarying vec4 v_color;\n\nconst float minDepth = 10.0 / 128.0;\nconst float deepLevel = 64.0 / 128.0;\nconst float maxDepth = 72.0 / 128.0;\n\nvoid main() {\n if (a_isWater > 0.5) {\n v_uv = a_position;\n\n vec2 corner = vec2(mod(a_InstanceID, u_size.x), floor(a_InstanceID / u_size.x));\n vec2 base = corner + a_position;\n float height = texture2D(u_heightMap, base / u_size).a;\n float waterHeight = texture2D(u_waterHeightMap, base / u_size).a + u_offsetHeight;\n float value = clamp(waterHeight - height, 0.0, 1.0);\n\n if (value <= deepLevel) {\n value = max(0.0, value - minDepth) / (deepLevel - minDepth);\n v_color = mix(u_minShallowColor, u_maxShallowColor, value) / 255.0;\n } else {\n value = clamp(value - deepLevel, 0.0, maxDepth - deepLevel) / (maxDepth - deepLevel);\n v_color = mix(u_minDeepColor, u_maxDeepColor, value) / 255.0;\n }\n\n gl_Position = u_VP * vec4(base * 128.0 + u_offset, waterHeight * 128.0, 1.0);\n } else {\n v_uv = vec2(0.0);\n v_color = vec4(0.0);\n\n gl_Position = vec4(0.0);\n }\n}\n",Ab),this.cliffShader=this.webgl.createShader("\nuniform mat4 u_VP;\nuniform sampler2D u_heightMap;\nuniform vec2 u_pixel;\nuniform vec2 u_centerOffset;\n\nattribute vec3 a_position;\nattribute vec3 a_normal;\nattribute vec2 a_uv;\nattribute vec3 a_instancePosition;\nattribute float a_instanceTexture;\n\nvarying vec3 v_normal;\nvarying vec2 v_uv;\nvarying float v_texture;\nvarying vec3 v_position;\n\nvoid main() {\n // Half of a pixel in the cliff height map.\n vec2 halfPixel = u_pixel * 0.5;\n\n // The bottom left corner of the map tile this vertex is on.\n vec2 corner = floor((a_instancePosition.xy - vec2(1.0, 0.0) - u_centerOffset.xy) / 128.0);\n\n // Get the 4 closest heights in the height map.\n float bottomLeft = texture2D(u_heightMap, corner * u_pixel + halfPixel).a;\n float bottomRight = texture2D(u_heightMap, (corner + vec2(1.0, 0.0)) * u_pixel + halfPixel).a;\n float topLeft = texture2D(u_heightMap, (corner + vec2(0.0, 1.0)) * u_pixel + halfPixel).a;\n float topRight = texture2D(u_heightMap, (corner + vec2(1.0, 1.0)) * u_pixel + halfPixel).a;\n \n // Do a bilinear interpolation between the heights to get the final value.\n float bottom = mix(bottomRight, bottomLeft, -a_position.x / 128.0);\n float top = mix(topRight, topLeft, -a_position.x / 128.0);\n float height = mix(bottom, top, a_position.y / 128.0);\n\n v_normal = a_normal;\n v_uv = a_uv;\n v_texture = a_instanceTexture;\n v_position = a_position + vec3(a_instancePosition.xy, a_instancePosition.z + height * 128.0);\n\n gl_Position = u_VP * vec4(v_position, 1.0);\n}\n",yb),this.loadBaseFiles()}async loadBaseFiles(){const e=[this.loadBaseFile("TerrainArt\\Terrain.slk","text"),this.loadBaseFile("TerrainArt\\CliffTypes.slk","text"),this.loadBaseFile("TerrainArt\\Water.slk","text"),this.loadBaseFile("Doodads\\Doodads.slk","text"),this.loadBaseFile("Doodads\\DoodadMetaData.slk","text"),this.loadBaseFile("Units\\DestructableData.slk","text"),this.loadBaseFile("Units\\DestructableMetaData.slk","text"),this.loadBaseFile("Units\\UnitData.slk","text"),this.loadBaseFile("Units\\unitUI.slk","text"),this.loadBaseFile("Units\\ItemData.slk","text"),this.loadBaseFile("Units\\UnitMetaData.slk","text")];let t;this.isReforged&&(t=[this.loadBaseFile("Doodads\\doodadSkins.txt","text"),this.loadBaseFile("Units\\destructableSkin.txt","text"),this.loadBaseFile("Units\\unitSkin.txt","text"),this.loadBaseFile("Units\\itemSkin.txt","text")]);const[n,a,r,i,s,l,o,u,c,d,h]=await Promise.all(e);if(!(n&&a&&r&&i&&s&&l&&o&&u&&c&&d&&h))throw new Error("Failed to load the base files");if(this.terrainData.load(n.data),this.cliffTypesData.load(a.data),this.waterData.load(r.data),this.doodadsData.load(i.data),this.doodadMetaData.load(s.data),this.doodadsData.load(l.data),this.destructableMetaData.load(o.data),this.unitsData.load(u.data),this.unitsData.load(c.data),this.unitsData.load(d.data),this.unitMetaData.load(h.data),t){const[e,n,a,r]=await Promise.all(t);if(!(e&&n&&a&&r))throw new Error("Failed to load the base Reforged files");this.doodadsData.load(e.data),this.doodadsData.load(n.data),this.unitsData.load(a.data),this.unitsData.load(r.data)}this.loadedBaseFiles=!0,this.emit("loadedbasefiles")}loadBaseFile(e,t){return super.loadGeneric(this.wc3PathSolver(e),t)}loadMap(e){this.loadedBaseFiles&&(this.map&&this.map.die(),this.map=new Fb(this,e))}update(){this.map&&(super.update(),this.map.update())}render(){this.map&&this.map.render()}}},Vb={ModelViewer:Tp,DebugRenderMode:Sp,Scene:gp,Camera:fp,Node:Ip,Model:Rp,ModelInstance:Cp,Texture:Ap,GenericResource:wp,gl:Mp,handlers:Gb};function Kb(e,t){const n=t[e];for(let a=0;a<e;a++)if(t[a]===n)return!0;return!1}const Hb={sanityTest:function(e){const t=[],n=e.content,a=e.alphaBits,r=e.mipmapOffsets,i=e.mipmapSizes;let s=e.width,l=e.height;if(0!==n&&1!==n&&t.push({type:"warning",message:"Unknown content type"}),0!==a&&1!==a&&4!==a&&8!==a&&t.push({type:"warning",message:`Expected alpha bits to be 0, 1, 4, or 8, but got ${a}`}),(s>512||l>512)&&t.push({type:"warning",message:`Expected width and height up to 512, but got ${s}x${l}`}),0===n){const n=e.jpgHeader;n.length>624&&t.push({type:"warning",message:`Expected the JPG header to be at most 624 bytes, but got ${n.length}`})}Us(s)&&Us(l)||t.push({type:"warning",message:`Expected the width and height to be powers of two, but got ${s}x${l}`});for(let o=0;o<16;o++){if(i[o]>0)if(s<1&&l<1)t.push({type:"warning",message:`Mipmap ${o}: this mipmap should not exist`});else if(Kb(o,r))t.push({type:"warning",message:`Mipmap ${o}: this mipmap is fake`});else{let r;s=Math.max(s,1),l=Math.max(l,1);try{r=e.getMipmap(o)}catch(e){t.push({type:"warning",message:`Mipmap ${o}: Decoding failed`})}if(r)if(0===n)r.width===s&&r.height===l||t.push({type:"warning",message:`Mipmap ${o}: the JPG width (${r.width}) and height (${r.height}) do not match the mipmap width (${s}) and height (${l})`});else if(1===n){const e=s*l,n=e+Math.ceil(e*a/8);n!==i[o]&&t.push({type:"warning",message:`Mipmap ${o}: the declared size is ${i[o]}, but the real size is ${n}`})}}s>>=1,l>>=1}return{nodes:t,warnings:t.length}}};const zb={sanityTest:function(e){const t=[],n=e.width,a=e.height,r=e.mipmaps(),i=Math.log2(Math.max(n,a));r<i&&t.push({type:"warning",message:`Expected ${i} mipmaps, but got ${r}`}),n%4==0&&a%4==0||t.push({type:"warning",message:`Expected the width and height to be multiples of four, but got ${n}x${a}`}),Us(n)&&Us(a)||t.push({type:"warning",message:`Expected the width and height to be powers of two, but got ${n}x${a}`});for(let n=0;n<r;n++)try{e.getMipmap(n)}catch(e){t.push({type:"warning",message:`Mipmap ${n}: Decoding failed`})}return{nodes:t,warnings:t.length}}};var jb=n(660),Xb=n(696),$b=n(447),Jb=n(179);function Wb(e){const t=new qf(e),n=[];let a;for(;void 0!==(a=t.read());)if("function"===a){const e=t.readSafe();t.read(),a=t.read();let r="";if("nothing"!==a)for(r+=t.readSafe();","===t.read();)t.read(),r+=","+t.readSafe();else t.read();t.read();const i=`function ${e}(${r})`,s=[];for(;"endfunction"!==(a=t.readSafe());)if("local"===a){t.read();const e=t.readSafe();"array"===e?s.push(`local ${t.readSafe()}={}`):s.push(`local ${e}${t.readUntil("\n")}\n`)}else if("if"===a||"elseif"===a||"not"===a)s.push(a+" ");else if("then"===a)s.push(" "+a);else if("loop"===a)s.push("while 1 do");else if("endloop"===a||"endif"===a)s.push("end");else if("exitwhen"===a)s.push(`if ${t.readUntil("\n")} then break end\n`);else if("return"===a){const e=t.readUntil("\n");a=t.peek(),"endif"===a||"endloop"===a||"endfunction"===a?s.push(`return ${e}\n`):s.push(`if 1 then return ${e} end\n`)}else if("\n"===a){const e=s[s.length-1];e&&"\n"!==e[e.length-1]&&s.push("\n")}else"set"!==a&&"call"!==a&&"function"!==a&&s.push(a);n.push(`${i}\n${s.join("")}end`)}else if("globals"===a)for(;"endglobals"!==(a=t.read());)if("\n"!==a){"constant"===a&&(a=t.read());const e=t.read();if("array"===e)n.push(`${t.readSafe()}={}`);else{let a="nil";"="===t.peek()&&(t.read(),a=t.readUntil("\n")),"nil"!==a&&n.push(`${e}=${a}`)}}return n.join("\n")}class qb{constructor(){this.handleId=-1}}class Yb extends qb{}class Zb extends Yb{constructor(e,t){super(),this.team=-1,this.startLocation=-1,this.forcedStartLocation=-1,this.color=-1,this.race=0,this.racePreference=-1,this.raceSelectable=!1,this.controller=-1,this.alliances=new Map,this.index=e,this.name=`Player ${e}`;for(let n=0;n<t;n++)n!==e&&this.alliances.set(n,{passive:!1,helpRequest:!1,helpResponse:!1,sharedXp:!1,sharedSpells:!1,sharedVision:!1,sharedControl:!1,sharedAdvancedControl:!1,rescuable:!1,sharedVisionForced:!1})}}class Qb extends Yb{constructor(){super(...arguments),this.health=0,this.maxHealth=0}}class ew extends Qb{constructor(e,t,n,a,r){super(),this.acquireRange=500,this.player=e,this.unitId=wl(t),this.x=n,this.y=a,this.face=r}}class tw extends Yb{constructor(){super(...arguments),this.players=new Set}}class nw extends Yb{constructor(){super(...arguments),this.units=new Set}}class aw extends Yb{constructor(){super(...arguments),this.events=[],this.conditions=[],this.actions=[],this.enabled=!0}}class rw extends Yb{constructor(){super(...arguments),this.elapsed=0,this.timeout=0,this.periodic=!1,this.handlerFunc=-1}}class iw extends Yb{constructor(e,t){super(),this.z=0,this.x=e,this.y=t}}class sw extends Yb{constructor(){super(...arguments),this.rects=new Set}}class lw extends Yb{constructor(e,t,n,a){super(),this.center=new Float32Array([n-e,a-t]),this.min=new Float32Array([e,t]),this.max=new Float32Array([n,a])}}class ow extends qb{constructor(e){super(),this.id=e}}class uw extends ow{}class cw extends ow{}class dw extends ow{}class hw extends ow{}class fw extends hw{}class mw extends hw{}class pw extends ow{}class _w extends ow{}class gw extends ow{}class bw extends ow{}class ww extends ow{}class vw extends ow{}class Aw extends vw{}class yw extends vw{}class Sw extends vw{}class Tw extends vw{}class xw extends vw{}class Ew extends vw{}class Lw extends vw{}class Iw extends ow{}class Uw extends ow{}class Rw extends ow{}class Cw extends ow{}class Mw extends ow{}class Bw extends ow{}class Nw extends ow{}class Pw extends ow{}class kw extends ow{}class Ow extends ow{}class Dw extends ow{}class Fw extends ow{}class Gw extends qb{constructor(){super(...arguments),this.targetDistance=0,this.farZ=0,this.angleOfAttack=0,this.fieldOfView=0,this.roll=0,this.rotation=0,this.zOffset=0,this.destPosition=new iw(0,0)}}class Vw extends ow{}class Kw extends ow{}class Hw extends ow{}class zw extends ow{}class jw extends ow{}class Xw extends ow{}class $w extends ow{}class Jw extends qb{constructor(e,t){super(),this.enabled=!1,this.whichRect=e,this.effectId=t}}class Ww extends ow{}class qw extends ow{}class Yw extends ow{}class Zw extends ow{}class Qw extends ow{}class ev extends ow{}class tv extends ow{}class nv extends ow{}class av extends Yb{constructor(){super(...arguments),this.table=new Map}save(e,t,n){const a=this.table;let r=a.get(e);r||(r=new Map,a.set(e,r)),r.set(t,n)}load(e,t,n){const a=this.table.get(e);if(a){const e=a.get(t);if(void 0!==e)return e}return n}have(e,t){const n=this.table.get(e);return!!n&&n.has(t)}remove(e,t){const n=this.table,a=n.get(e);a&&(a.delete(t),a.size||n.delete(e))}flush(){this.table.clear()}flushChild(e){const t=this.table.get(e);t&&t.clear()}}function rv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.races[n]),1}function iv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.allianceTypes[n]),1}function sv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.racePrefs[n]),1}function lv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.gameStates[n]),1}function ov(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.gameStates[n]),1}function uv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.playerStates[n]),1}function cv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.playerScores[n]),1}function dv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.playerGameResults[n]),1}function hv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.unitStates[n]),1}function fv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.aiDifficulties[n]),1}function mv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.events[n]),1}function pv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.events[n]),1}function _v(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.events[n]),1}function gv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.events[n]),1}function bv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.events[n]),1}function wv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.events[n]),1}function vv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.limitOps[n]),1}function Av(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.unitTypes[n]),1}function yv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.gameSpeeds[n]),1}function Sv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.placements[n]),1}function Tv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.startLocPrios[n]),1}function xv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.gameDifficulties[n]),1}function Ev(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.gameTypes[n]),1}function Lv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.mapFlags[n]),1}function Iv(e,t){(0,$b.eN)(t,1);return console.warn("ConvertMapVisibility used, but the implementation is unknown"),(0,jb.lua_pushnil)(t),1}function Uv(e,t){(0,$b.eN)(t,1);return console.warn("ConvertMapSetting used, but the implementation is unknown"),(0,jb.lua_pushnil)(t),1}function Rv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.mapDensities[n]),1}function Cv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.mapControls[n]),1}function Mv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.playerColors[n]),1}function Bv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.playerSlotStates[n]),1}function Nv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.volumeGroups[n]),1}function Pv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.cameraFields[n]),1}function kv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.blendModes[n]),1}function Ov(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.rarityControls[n]),1}function Dv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.texMapFlags[n]),1}function Fv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.fogStates[n]),1}function Gv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.effectTypes[n]),1}function Vv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.versions[n]),1}function Kv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.itemTypes[n]),1}function Hv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.attackTypes[n]),1}function zv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.damageTypes[n]),1}function jv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.weaponTypes[n]),1}function Xv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.soundTypes[n]),1}function $v(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.pathingTypes[n]),1}function Jv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.mouseButtonTypes[n]),1}function Wv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.animTypes[n]),1}function qv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.subAnimTypes[n]),1}function Yv(e,t){(0,$b.dK)(t,1);return console.warn("OrderId was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function Zv(e,t){(0,$b.eN)(t,1);return console.warn("OrderId2String was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function Qv(e,t){(0,$b.dK)(t,1);return console.warn("UnitId was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function eA(e,t){(0,$b.eN)(t,1);return console.warn("UnitId2String was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function tA(e,t){(0,$b.dK)(t,1);return console.warn("AbilityId was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function nA(e,t){(0,$b.eN)(t,1);return console.warn("AbilityId2String was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function aA(e,t){(0,$b.eN)(t,1);return console.warn("GetObjectName was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function rA(e,t){return(0,jb.lua_pushinteger)(t,24),1}function iA(e,t){return(0,jb.lua_pushinteger)(t,24),1}function sA(e,t){return(0,jb.lua_pushinteger)(t,25),1}function lA(e,t){return(0,jb.lua_pushinteger)(t,28),1}function oA(e,t){return(0,jb.lua_pushinteger)(t,26),1}function uA(e,t){return(0,jb.lua_pushinteger)(t,27),1}function cA(e,t){const n=(0,$b.hs)(t,1);return(0,jb.lua_pushnumber)(t,n*(Math.PI/180)),1}function dA(e,t){const n=(0,$b.hs)(t,1);return(0,jb.lua_pushnumber)(t,n*(180/Math.PI)),1}function hA(e,t){const n=(0,$b.hs)(t,1);return(0,jb.lua_pushnumber)(t,Math.sin(n)),1}function fA(e,t){const n=(0,$b.hs)(t,1);return(0,jb.lua_pushnumber)(t,Math.cos(n)),1}function mA(e,t){const n=(0,$b.hs)(t,1);return(0,jb.lua_pushnumber)(t,Math.tan(n)),1}function pA(e,t){const n=(0,$b.hs)(t,1);return(0,jb.lua_pushnumber)(t,Math.asin(n)),1}function _A(e,t){const n=(0,$b.hs)(t,1);return(0,jb.lua_pushnumber)(t,Math.acos(n)),1}function gA(e,t){const n=(0,$b.hs)(t,1);return(0,jb.lua_pushnumber)(t,Math.atan(n)),1}function bA(e,t){const n=(0,$b.hs)(t,1),a=(0,$b.hs)(t,2);return(0,jb.lua_pushnumber)(t,Math.atan2(n,a)),1}function wA(e,t){const n=(0,$b.hs)(t,1);return(0,jb.lua_pushnumber)(t,Math.sqrt(n)),1}function vA(e,t){const n=(0,$b.hs)(t,1),a=(0,$b.hs)(t,2);return(0,jb.lua_pushnumber)(t,Math.pow(n,a)),1}function AA(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushnumber)(t,n),1}function yA(e,t){const n=(0,$b.hs)(t,1);return(0,jb.lua_pushinteger)(t,0|n),1}function SA(e,t){(0,$b.eN)(t,1);return console.warn("I2S was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function TA(e,t){(0,$b.hs)(t,1);return console.warn("R2S was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function xA(e,t){(0,$b.hs)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("R2SW was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function EA(e,t){(0,$b.dK)(t,1);return console.warn("S2I was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function LA(e,t){(0,$b.dK)(t,1);return console.warn("S2R was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function IA(e,t){const n=(0,jb.lua_touserdata)(t,1);return(0,jb.lua_pushinteger)(t,n.handleId),1}function UA(e,t){(0,$b.dK)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("SubString was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function RA(e,t){(0,$b.dK)(t,1);return console.warn("StringLength was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function CA(e,t){(0,$b.dK)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("StringCase was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function MA(e,t){(0,$b.dK)(t,1);return console.warn("StringHash was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function BA(e,t){(0,$b.dK)(t,1);return console.warn("GetLocalizedString was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function NA(e,t){(0,$b.dK)(t,1);return console.warn("GetLocalizedHotkey was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function PA(e,t){(0,$b.dK)(t,1);return console.warn("SetMapName was called but is not implemented :("),0}function kA(e,t){(0,$b.dK)(t,1);return console.warn("SetMapDescription was called but is not implemented :("),0}function OA(e,t){(0,$b.eN)(t,1);return console.warn("SetTeams was called but is not implemented :("),0}function DA(e,t){(0,$b.eN)(t,1);return console.warn("SetPlayers was called but is not implemented :("),0}function FA(e,t){const n=(0,$b.eN)(t,1),a=(0,$b.hs)(t,2),r=(0,$b.hs)(t,3);return e.startLocations[n]=e.addHandle(new iw(a,r)),0}function GA(e,t){(0,$b.eN)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("DefineStartLocationLoc was called but is not implemented :("),0}function VA(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2);return console.warn("SetStartLocPrioCount was called but is not implemented :("),0}function KA(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SetStartLocPrio was called but is not implemented :("),0}function HA(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2);return console.warn("GetStartLocPrioSlot was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function zA(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2);return console.warn("GetStartLocPrio was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function jA(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetGameTypeSupported was called but is not implemented :("),0}function XA(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetMapFlag was called but is not implemented :("),0}function $A(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("SetGamePlacement was called but is not implemented :("),0}function JA(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("SetGameSpeed was called but is not implemented :("),0}function WA(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("SetGameDifficulty was called but is not implemented :("),0}function qA(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("SetResourceDensity was called but is not implemented :("),0}function YA(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("SetCreatureDensity was called but is not implemented :("),0}function ZA(e,t){return console.warn("GetTeams was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function QA(e,t){return console.warn("GetPlayers was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function ey(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsGameTypeSupported was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function ty(e,t){return console.warn("GetGameTypeSelected was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function ny(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsMapFlagSet was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function ay(e,t){return console.warn("GetGamePlacement was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function ry(e,t){return console.warn("GetGameSpeed was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function iy(e,t){return console.warn("GetGameDifficulty was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function sy(e,t){return console.warn("GetResourceDensity was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function ly(e,t){return console.warn("GetCreatureDensity was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function oy(e,t){(0,$b.eN)(t,1);return console.warn("GetStartLocationX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function uy(e,t){(0,$b.eN)(t,1);return console.warn("GetStartLocationY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function cy(e,t){(0,$b.eN)(t,1);return console.warn("GetStartLocationLoc was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function dy(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("SetPlayerTeam was called but is not implemented :("),0}function hy(e,t){const n=(0,jb.lua_touserdata)(t,1),a=(0,$b.eN)(t,2);return n.startLocation=a,0}function fy(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("ForcePlayerStartLocation was called but is not implemented :("),0}function my(e,t){const n=(0,jb.lua_touserdata)(t,1),a=(0,jb.lua_touserdata)(t,2);return n.color=a.id,0}function py(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3),(0,jb.lua_toboolean)(t,4);return console.warn("SetPlayerAlliance was called but is not implemented :("),0}function _y(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3),(0,$b.eN)(t,4);return console.warn("SetPlayerTaxRate was called but is not implemented :("),0}function gy(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("SetPlayerRacePreference was called but is not implemented :("),0}function by(e,t){const n=(0,jb.lua_touserdata)(t,1),a=(0,jb.lua_toboolean)(t,2);return n.raceSelectable=a,0}function wy(e,t){const n=(0,jb.lua_touserdata)(t,1),a=(0,jb.lua_touserdata)(t,2);return n.controller=a.id,0}function vy(e,t){const n=(0,jb.lua_touserdata)(t,1),a=(0,$b.dK)(t,2);return n.name=a,0}function Ay(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetPlayerOnScoreScreen was called but is not implemented :("),0}function yy(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetPlayerTeam was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function Sy(e,t){const n=(0,jb.lua_touserdata)(t,1);return(0,jb.lua_pushinteger)(t,n.startLocation),1}function Ty(e,t){const n=(0,jb.lua_touserdata)(t,1);return(0,jb.lua_pushlightuserdata)(t,n.color),1}function xy(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetPlayerSelectable was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function Ey(e,t){const n=(0,jb.lua_touserdata)(t,1);return(0,jb.lua_pushlightuserdata)(t,n.controller),1}function Ly(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetPlayerSlotState was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Iy(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("GetPlayerTaxRate was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function Uy(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsPlayerRacePrefSet was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function Ry(e,t){const n=(0,jb.lua_touserdata)(t,1);return(0,jb.lua_pushstring)(t,n.name),1}function Cy(e,t){return(0,jb.lua_pushlightuserdata)(t,e.addHandle(new rw)),1}function My(e,t){const n=(0,jb.lua_touserdata)(t,1);return e.timers.delete(n),e.freeHandle(n),0}function By(e,t){const n=(0,jb.lua_touserdata)(t,1),a=(0,$b.hs)(t,2),r=(0,jb.lua_toboolean)(t,3),i=(0,$b.oL)(t,Xb.LUA_REGISTRYINDEX);return n.elapsed=0,n.timeout=a,n.periodic=r,n.handlerFunc=i,e.timers.add(n),0}function Ny(e,t){const n=(0,jb.lua_touserdata)(t,1);return(0,jb.lua_pushnumber)(t,n.elapsed),1}function Py(e,t){const n=(0,jb.lua_touserdata)(t,1);return(0,jb.lua_pushnumber)(t,n.timeout-n.elapsed),1}function ky(e,t){const n=(0,jb.lua_touserdata)(t,1);return(0,jb.lua_pushnumber)(t,n.timeout),1}function Oy(e,t){const n=(0,jb.lua_touserdata)(t,1);return e.timers.delete(n),0}function Dy(e,t){const n=(0,jb.lua_touserdata)(t,1);return e.timers.add(n),0}function Fy(e,t){const n=e.currentThread;return n&&n.expiredTimer?(0,jb.lua_pushlightuserdata)(t,n.expiredTimer):(0,jb.lua_pushnil)(t),1}function Gy(e,t){return(0,jb.lua_pushlightuserdata)(t,e.addHandle(new nw)),1}function Vy(e,t){const n=(0,jb.lua_touserdata)(t,1);return e.freeHandle(n),0}function Ky(e,t){const n=(0,jb.lua_touserdata)(t,1),a=(0,jb.lua_touserdata)(t,2);return n.units.add(a),0}function Hy(e,t){const n=(0,jb.lua_touserdata)(t,1),a=(0,jb.lua_touserdata)(t,2);return n.units.delete(a),0}function zy(e,t){return(0,jb.lua_touserdata)(t,1).units.clear(),0}function jy(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("GroupEnumUnitsOfType was called but is not implemented :("),0}function Xy(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("GroupEnumUnitsOfPlayer was called but is not implemented :("),0}function $y(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,jb.lua_touserdata)(t,3),(0,$b.eN)(t,4);return console.warn("GroupEnumUnitsOfTypeCounted was called but is not implemented :("),0}function Jy(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("GroupEnumUnitsInRect was called but is not implemented :("),0}function Wy(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3),(0,$b.eN)(t,4);return console.warn("GroupEnumUnitsInRectCounted was called but is not implemented :("),0}function qy(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,jb.lua_touserdata)(t,5);return console.warn("GroupEnumUnitsInRange was called but is not implemented :("),0}function Yy(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.hs)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("GroupEnumUnitsInRangeOfLoc was called but is not implemented :("),0}function Zy(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,jb.lua_touserdata)(t,5),(0,$b.eN)(t,6);return console.warn("GroupEnumUnitsInRangeCounted was called but is not implemented :("),0}function Qy(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.hs)(t,3),(0,jb.lua_touserdata)(t,4),(0,$b.eN)(t,5);return console.warn("GroupEnumUnitsInRangeOfLocCounted was called but is not implemented :("),0}function eS(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("GroupEnumUnitsSelected was called but is not implemented :("),0}function tS(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("GroupImmediateOrder was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function nS(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("GroupImmediateOrderById was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function aS(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("GroupPointOrder was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function rS(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("GroupPointOrderLoc was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function iS(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("GroupPointOrderById was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function sS(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("GroupPointOrderByIdLoc was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function lS(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("GroupTargetOrder was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function oS(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("GroupTargetOrderById was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function uS(e,t){const n=(0,jb.lua_touserdata)(t,1),a=(0,$b.oL)(t,Xb.LUA_REGISTRYINDEX);for(const t of n.units)e.enumUnit=t,e.call(a);return e.enumUnit=null,(0,$b.eK)(t,Xb.LUA_REGISTRYINDEX,a),0}function cS(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("FirstOfGroup was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function dS(e,t){return(0,jb.lua_pushlightuserdata)(t,e.addHandle(new tw)),1}function hS(e,t){const n=(0,jb.lua_touserdata)(t,1);return e.freeHandle(n),0}function fS(e,t){const n=(0,jb.lua_touserdata)(t,1),a=(0,jb.lua_touserdata)(t,2);return n.players.add(a),0}function mS(e,t){const n=(0,jb.lua_touserdata)(t,1),a=(0,jb.lua_touserdata)(t,2);return n.players.delete(a),0}function pS(e,t){return(0,jb.lua_touserdata)(t,1).players.clear(),0}function _S(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("ForceEnumPlayers was called but is not implemented :("),0}function gS(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.eN)(t,3);return console.warn("ForceEnumPlayersCounted was called but is not implemented :("),0}function bS(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("ForceEnumAllies was called but is not implemented :("),0}function wS(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("ForceEnumEnemies was called but is not implemented :("),0}function vS(e,t){const n=(0,jb.lua_touserdata)(t,1),a=(0,$b.oL)(t,Xb.LUA_REGISTRYINDEX);for(const t of n.players)e.enumPlayer=t,e.call(a);return e.enumPlayer=null,(0,$b.eK)(t,Xb.LUA_REGISTRYINDEX,a),0}function AS(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("Rect was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function yS(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("RectFromLoc was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function SS(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("RemoveRect was called but is not implemented :("),0}function TS(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5);return console.warn("SetRect was called but is not implemented :("),0}function xS(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("SetRectFromLoc was called but is not implemented :("),0}function ES(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("MoveRectTo was called but is not implemented :("),0}function LS(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("MoveRectToLoc was called but is not implemented :("),0}function IS(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetRectCenterX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function US(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetRectCenterY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function RS(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetRectMinX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function CS(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetRectMinY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function MS(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetRectMaxX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function BS(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetRectMaxY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function NS(e,t){return console.warn("CreateRegion was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function PS(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("RemoveRegion was called but is not implemented :("),0}function kS(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("RegionAddRect was called but is not implemented :("),0}function OS(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("RegionClearRect was called but is not implemented :("),0}function DS(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("RegionAddCell was called but is not implemented :("),0}function FS(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("RegionAddCellAtLoc was called but is not implemented :("),0}function GS(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("RegionClearCell was called but is not implemented :("),0}function VS(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("RegionClearCellAtLoc was called but is not implemented :("),0}function KS(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2);return console.warn("Location was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function HS(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("RemoveLocation was called but is not implemented :("),0}function zS(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("MoveLocation was called but is not implemented :("),0}function jS(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetLocationX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function XS(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetLocationY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function $S(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetLocationZ was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function JS(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsUnitInRegion was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function WS(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("IsPointInRegion was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function qS(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsLocationInRegion was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function YS(e,t){return console.warn("GetWorldBounds was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function ZS(e,t){return(0,jb.lua_pushlightuserdata)(t,e.addHandle(new aw)),1}function QS(e,t){const n=(0,jb.lua_touserdata)(t,1);return e.triggers.delete(n),e.freeHandle(n),0}function eT(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("ResetTrigger was called but is not implemented :("),0}function tT(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("EnableTrigger was called but is not implemented :("),0}function nT(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DisableTrigger was called but is not implemented :("),0}function aT(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsTriggerEnabled was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function rT(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("TriggerWaitOnSleeps was called but is not implemented :("),0}function iT(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsTriggerWaitOnSleeps was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function sT(e,t){return(0,jb.lua_pushlightuserdata)(t,e.filterUnit),1}function lT(e,t){return(0,jb.lua_pushlightuserdata)(t,e.enumUnit),1}function oT(e,t){return console.warn("GetFilterDestructable was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function uT(e,t){return console.warn("GetEnumDestructable was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function cT(e,t){return console.warn("GetFilterItem was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function dT(e,t){return console.warn("GetEnumItem was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function hT(e,t){return console.warn("GetFilterPlayer was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function fT(e,t){return(0,jb.lua_pushlightuserdata)(t,e.enumPlayer),1}function mT(e,t){const n=e.currentThread;return n&&n.triggeringTrigger?(0,jb.lua_pushlightuserdata)(t,n.triggeringTrigger):(0,jb.lua_pushnil)(t),1}function pT(e,t){return console.warn("GetTriggerEventId was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function _T(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetTriggerEvalCount was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function gT(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetTriggerExecCount was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function bT(e,t){(0,$b.dK)(t,1);return console.warn("ExecuteFunc was called but is not implemented :("),0}function wT(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("And was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function vT(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("Or was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function AT(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("Not was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function yT(e,t){(0,$b.oL)(t,Xb.LUA_REGISTRYINDEX);return console.warn("Condition was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function ST(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DestroyCondition was called but is not implemented :("),0}function TT(e,t){(0,$b.oL)(t,Xb.LUA_REGISTRYINDEX);return console.warn("Filter was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function xT(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DestroyFilter was called but is not implemented :("),0}function ET(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DestroyBoolExpr was called but is not implemented :("),0}function LT(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,jb.lua_touserdata)(t,3),(0,$b.hs)(t,4);return console.warn("TriggerRegisterVariableEvent was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function IT(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("TriggerRegisterTimerEvent was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function UT(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("TriggerRegisterTimerExpireEvent was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function RT(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3),(0,$b.hs)(t,4);return console.warn("TriggerRegisterGameStateEvent was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function CT(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("TriggerRegisterDialogEvent was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function MT(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("TriggerRegisterDialogButtonEvent was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function BT(e,t){return console.warn("GetEventGameState was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function NT(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("TriggerRegisterGameEvent was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function PT(e,t){return console.warn("GetWinningPlayer was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function kT(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("TriggerRegisterEnterRegion was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function OT(e,t){return console.warn("GetTriggeringRegion was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function DT(e,t){return console.warn("GetEnteringUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function FT(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("TriggerRegisterLeaveRegion was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function GT(e,t){return console.warn("GetLeavingUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function VT(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("TriggerRegisterTrackableHitEvent was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function KT(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("TriggerRegisterTrackableTrackEvent was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function HT(e,t){return console.warn("GetTriggeringTrackable was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function zT(e,t){return console.warn("GetClickedButton was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function jT(e,t){return console.warn("GetClickedDialog was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function XT(e,t){return console.warn("GetTournamentFinishSoonTimeRemaining was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function $T(e,t){return console.warn("GetTournamentFinishNowRule was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function JT(e,t){return console.warn("GetTournamentFinishNowPlayer was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function WT(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetTournamentScore was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function qT(e,t){return console.warn("GetSaveBasicFilename was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function YT(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("TriggerRegisterPlayerEvent was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function ZT(e,t){return console.warn("GetTriggerPlayer was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function QT(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("TriggerRegisterPlayerUnitEvent was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function ex(e,t){return console.warn("GetLevelingUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function tx(e,t){return console.warn("GetLearningUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function nx(e,t){return console.warn("GetLearnedSkill was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function ax(e,t){return console.warn("GetLearnedSkillLevel was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function rx(e,t){return console.warn("GetRevivableUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function ix(e,t){return console.warn("GetRevivingUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function sx(e,t){return console.warn("GetAttacker was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function lx(e,t){return console.warn("GetRescuer was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function ox(e,t){return console.warn("GetDyingUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function ux(e,t){return console.warn("GetKillingUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function cx(e,t){return console.warn("GetDecayingUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function dx(e,t){return console.warn("GetConstructingStructure was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function hx(e,t){return console.warn("GetCancelledStructure was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function fx(e,t){return console.warn("GetConstructedStructure was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function mx(e,t){return console.warn("GetResearchingUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function px(e,t){return console.warn("GetResearched was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function _x(e,t){return console.warn("GetTrainedUnitType was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function gx(e,t){return console.warn("GetTrainedUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function bx(e,t){return console.warn("GetDetectedUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function wx(e,t){return console.warn("GetSummoningUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function vx(e,t){return console.warn("GetSummonedUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Ax(e,t){return console.warn("GetTransportUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function yx(e,t){return console.warn("GetLoadedUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Sx(e,t){return console.warn("GetSellingUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Tx(e,t){return console.warn("GetSoldUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function xx(e,t){return console.warn("GetBuyingUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Ex(e,t){return console.warn("GetSoldItem was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Lx(e,t){return console.warn("GetChangingUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Ix(e,t){return console.warn("GetChangingUnitPrevOwner was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Ux(e,t){return console.warn("GetManipulatingUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Rx(e,t){return console.warn("GetManipulatedItem was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Cx(e,t){return console.warn("GetOrderedUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Mx(e,t){return console.warn("GetIssuedOrderId was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function Bx(e,t){return console.warn("GetOrderPointX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function Nx(e,t){return console.warn("GetOrderPointY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function Px(e,t){return console.warn("GetOrderPointLoc was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function kx(e,t){return console.warn("GetOrderTarget was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Ox(e,t){return console.warn("GetOrderTargetDestructable was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Dx(e,t){return console.warn("GetOrderTargetItem was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Fx(e,t){return console.warn("GetOrderTargetUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Gx(e,t){return console.warn("GetSpellAbilityUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Vx(e,t){return console.warn("GetSpellAbilityId was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function Kx(e,t){return console.warn("GetSpellAbility was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Hx(e,t){return console.warn("GetSpellTargetLoc was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function zx(e,t){return console.warn("GetSpellTargetX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function jx(e,t){return console.warn("GetSpellTargetY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function Xx(e,t){return console.warn("GetSpellTargetDestructable was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function $x(e,t){return console.warn("GetSpellTargetItem was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Jx(e,t){return console.warn("GetSpellTargetUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Wx(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("TriggerRegisterPlayerAllianceChange was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function qx(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3),(0,jb.lua_touserdata)(t,4),(0,$b.hs)(t,5);return console.warn("TriggerRegisterPlayerStateEvent was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Yx(e,t){return console.warn("GetEventPlayerState was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Zx(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.dK)(t,3),(0,jb.lua_toboolean)(t,4);return console.warn("TriggerRegisterPlayerChatEvent was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Qx(e,t){return console.warn("GetEventPlayerChatString was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function eE(e,t){return console.warn("GetEventPlayerChatStringMatched was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function tE(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("TriggerRegisterDeathEvent was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function nE(e,t){const n=e.currentThread;return n&&n.triggerUnit?(0,jb.lua_pushlightuserdata)(t,n.triggerUnit):(0,jb.lua_pushnil)(t),1}function aE(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3),(0,jb.lua_touserdata)(t,4),(0,$b.hs)(t,5);return console.warn("TriggerRegisterUnitStateEvent was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function rE(e,t){return console.warn("GetEventUnitState was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function iE(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("TriggerRegisterUnitEvent was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function sE(e,t){return console.warn("GetEventDamage was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function lE(e,t){return console.warn("GetEventDamageSource was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function oE(e,t){return console.warn("GetEventDetectingPlayer was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function uE(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("TriggerRegisterFilterUnitEvent was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function cE(e,t){return console.warn("GetEventTargetUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function dE(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.hs)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("TriggerRegisterUnitInRange was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function hE(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("TriggerAddCondition was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function fE(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("TriggerRemoveCondition was called but is not implemented :("),0}function mE(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("TriggerClearConditions was called but is not implemented :("),0}function pE(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.oL)(t,Xb.LUA_REGISTRYINDEX);return console.warn("TriggerAddAction was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function _E(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("TriggerRemoveAction was called but is not implemented :("),0}function gE(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("TriggerClearActions was called but is not implemented :("),0}function bE(e,t){const n=(0,$b.hs)(t,1);return(0,jb.lua_pushnumber)(t,n),(0,Jb.lua_yield)(t,1),0}function wE(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("TriggerWaitForSound was called but is not implemented :("),0}function vE(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("TriggerEvaluate was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function AE(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("TriggerExecute was called but is not implemented :("),0}function yE(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("TriggerExecuteWait was called but is not implemented :("),0}function SE(e,t){return console.warn("TriggerSyncStart was called but is not implemented :("),0}function TE(e,t){return console.warn("TriggerSyncReady was called but is not implemented :("),0}function xE(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetWidgetLife was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function EE(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetWidgetLife was called but is not implemented :("),0}function LE(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetWidgetX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function IE(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetWidgetY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function UE(e,t){return console.warn("GetTriggerWidget was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function RE(e,t){(0,$b.eN)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5),(0,$b.eN)(t,6);return console.warn("CreateDestructable was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function CE(e,t){(0,$b.eN)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5),(0,$b.hs)(t,6),(0,$b.eN)(t,7);return console.warn("CreateDestructableZ was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function ME(e,t){(0,$b.eN)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5),(0,$b.eN)(t,6);return console.warn("CreateDeadDestructable was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function BE(e,t){(0,$b.eN)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5),(0,$b.hs)(t,6),(0,$b.eN)(t,7);return console.warn("CreateDeadDestructableZ was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function NE(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("RemoveDestructable was called but is not implemented :("),0}function PE(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("KillDestructable was called but is not implemented :("),0}function kE(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetDestructableInvulnerable was called but is not implemented :("),0}function OE(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsDestructableInvulnerable was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function DE(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.oL)(t,Xb.LUA_REGISTRYINDEX);return console.warn("EnumDestructablesInRect was called but is not implemented :("),0}function FE(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetDestructableTypeId was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function GE(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetDestructableX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function VE(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetDestructableY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function KE(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetDestructableLife was called but is not implemented :("),0}function HE(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetDestructableLife was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function zE(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetDestructableMaxLife was called but is not implemented :("),0}function jE(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetDestructableMaxLife was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function XE(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("DestructableRestoreLife was called but is not implemented :("),0}function $E(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("QueueDestructableAnimation was called but is not implemented :("),0}function JE(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("SetDestructableAnimation was called but is not implemented :("),0}function WE(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetDestructableAnimationSpeed was called but is not implemented :("),0}function qE(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("ShowDestructable was called but is not implemented :("),0}function YE(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetDestructableOccluderHeight was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function ZE(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetDestructableOccluderHeight was called but is not implemented :("),0}function QE(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetDestructableName was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function eL(e,t){return console.warn("GetTriggerDestructable was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function tL(e,t){(0,$b.eN)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("CreateItem was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function nL(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("RemoveItem was called but is not implemented :("),0}function aL(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetItemPlayer was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function rL(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetItemTypeId was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function iL(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetItemX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function sL(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetItemY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function lL(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("SetItemPosition was called but is not implemented :("),0}function oL(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetItemDropOnDeath was called but is not implemented :("),0}function uL(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetItemDroppable was called but is not implemented :("),0}function cL(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetItemPawnable was called but is not implemented :("),0}function dL(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("SetItemPlayer was called but is not implemented :("),0}function hL(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetItemInvulnerable was called but is not implemented :("),0}function fL(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsItemInvulnerable was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function mL(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetItemVisible was called but is not implemented :("),0}function pL(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsItemVisible was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function _L(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsItemOwned was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function gL(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsItemPowerup was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function bL(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsItemSellable was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function wL(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsItemPawnable was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function vL(e,t){(0,$b.eN)(t,1);return console.warn("IsItemIdPowerup was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function AL(e,t){(0,$b.eN)(t,1);return console.warn("IsItemIdSellable was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function yL(e,t){(0,$b.eN)(t,1);return console.warn("IsItemIdPawnable was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function SL(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.oL)(t,Xb.LUA_REGISTRYINDEX);return console.warn("EnumItemsInRect was called but is not implemented :("),0}function TL(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetItemLevel was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function xL(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetItemType was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function EL(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("SetItemDropID was called but is not implemented :("),0}function LL(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetItemName was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function IL(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetItemCharges was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function UL(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("SetItemCharges was called but is not implemented :("),0}function RL(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetItemUserData was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function CL(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("SetItemUserData was called but is not implemented :("),0}function ML(e,t){const n=(0,jb.lua_touserdata)(t,1),a=(0,$b.eN)(t,2),r=(0,$b.hs)(t,3),i=(0,$b.hs)(t,4),s=(0,$b.hs)(t,5);return(0,jb.lua_pushlightuserdata)(t,e.addHandle(new ew(n,a,r,i,s))),1}function BL(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5);return console.warn("CreateUnitByName was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function NL(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,jb.lua_touserdata)(t,3),(0,$b.hs)(t,4);return console.warn("CreateUnitAtLoc was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function PL(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,jb.lua_touserdata)(t,3),(0,$b.hs)(t,4);return console.warn("CreateUnitAtLocByName was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function kL(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5);return console.warn("CreateCorpse was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function OL(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("KillUnit was called but is not implemented :("),0}function DL(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("RemoveUnit was called but is not implemented :("),0}function FL(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("ShowUnit was called but is not implemented :("),0}function GL(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.hs)(t,3);return console.warn("SetUnitState was called but is not implemented :("),0}function VL(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetUnitX was called but is not implemented :("),0}function KL(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetUnitY was called but is not implemented :("),0}function HL(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("SetUnitPosition was called but is not implemented :("),0}function zL(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("SetUnitPositionLoc was called but is not implemented :("),0}function jL(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetUnitFacing was called but is not implemented :("),0}function XL(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("SetUnitFacingTimed was called but is not implemented :("),0}function $L(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetUnitMoveSpeed was called but is not implemented :("),0}function JL(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("SetUnitFlyHeight was called but is not implemented :("),0}function WL(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetUnitTurnSpeed was called but is not implemented :("),0}function qL(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetUnitPropWindow was called but is not implemented :("),0}function YL(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetUnitAcquireRange was called but is not implemented :("),0}function ZL(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetUnitCreepGuard was called but is not implemented :("),0}function QL(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitAcquireRange was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function eI(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitTurnSpeed was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function tI(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitPropWindow was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function nI(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitFlyHeight was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function aI(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitDefaultAcquireRange was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function rI(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitDefaultTurnSpeed was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function iI(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitDefaultPropWindow was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function sI(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitDefaultFlyHeight was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function lI(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("SetUnitOwner was called but is not implemented :("),0}function oI(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("SetUnitColor was called but is not implemented :("),0}function uI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("SetUnitScale was called but is not implemented :("),0}function cI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetUnitTimeScale was called but is not implemented :("),0}function dI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetUnitBlendTime was called but is not implemented :("),0}function hI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4),(0,$b.eN)(t,5);return console.warn("SetUnitVertexColor was called but is not implemented :("),0}function fI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("QueueUnitAnimation was called but is not implemented :("),0}function mI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("SetUnitAnimation was called but is not implemented :("),0}function pI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("SetUnitAnimationByIndex was called but is not implemented :("),0}function _I(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("SetUnitAnimationWithRarity was called but is not implemented :("),0}function gI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("AddUnitAnimationProperties was called but is not implemented :("),0}function bI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,jb.lua_touserdata)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5),(0,$b.hs)(t,6);return console.warn("SetUnitLookAt was called but is not implemented :("),0}function wI(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("ResetUnitLookAt was called but is not implemented :("),0}function vI(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("SetUnitRescuable was called but is not implemented :("),0}function AI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetUnitRescueRange was called but is not implemented :("),0}function yI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("SetHeroStr was called but is not implemented :("),0}function SI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("SetHeroAgi was called but is not implemented :("),0}function TI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("SetHeroInt was called but is not implemented :("),0}function xI(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("GetHeroStr was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function EI(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("GetHeroAgi was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function LI(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("GetHeroInt was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function II(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("UnitStripHeroLevel was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function UI(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetHeroXP was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function RI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("SetHeroXP was called but is not implemented :("),0}function CI(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetHeroSkillPoints was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function MI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("UnitModifySkillPoints was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function BI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("AddHeroXP was called but is not implemented :("),0}function NI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("SetHeroLevel was called but is not implemented :("),0}function PI(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetHeroLevel was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function kI(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitLevel was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function OI(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetHeroProperName was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function DI(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SuspendHeroXP was called but is not implemented :("),0}function FI(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsSuspendedXP was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function GI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("SelectHeroSkill was called but is not implemented :("),0}function VI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("GetUnitAbilityLevel was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function KI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("DecUnitAbilityLevel was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function HI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("IncUnitAbilityLevel was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function zI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("SetUnitAbilityLevel was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function jI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,jb.lua_toboolean)(t,4);return console.warn("ReviveHero was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function XI(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("ReviveHeroLoc was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function $I(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetUnitExploded was called but is not implemented :("),0}function JI(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetUnitInvulnerable was called but is not implemented :("),0}function WI(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("PauseUnit was called but is not implemented :("),0}function qI(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsUnitPaused was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function YI(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetUnitPathing was called but is not implemented :("),0}function ZI(e,t){return console.warn("ClearSelection was called but is not implemented :("),0}function QI(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SelectUnit was called but is not implemented :("),0}function eU(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitPointValue was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function tU(e,t){(0,$b.eN)(t,1);return console.warn("GetUnitPointValueByType was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function nU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("UnitAddItem was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function aU(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("UnitAddItemById was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function rU(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("UnitAddItemToSlotById was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function iU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("UnitRemoveItem was called but is not implemented :("),0}function sU(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("UnitRemoveItemFromSlot was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function lU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("UnitHasItem was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function oU(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("UnitItemInSlot was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function uU(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("UnitInventorySize was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function cU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("UnitDropItemPoint was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function dU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.eN)(t,3);return console.warn("UnitDropItemSlot was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function hU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("UnitDropItemTarget was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function fU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("UnitUseItem was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function mU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("UnitUseItemPoint was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function pU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("UnitUseItemTarget was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function _U(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function gU(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function bU(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitLoc was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function wU(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitFacing was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function vU(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitMoveSpeed was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function AU(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitDefaultMoveSpeed was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function yU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("GetUnitState was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function SU(e,t){const n=(0,jb.lua_touserdata)(t,1);return(0,jb.lua_pushlightuserdata)(t,n.player),1}function TU(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitTypeId was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function xU(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitRace was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function EU(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitName was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function LU(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitFoodUsed was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function IU(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitFoodMade was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function UU(e,t){(0,$b.eN)(t,1);return console.warn("GetFoodMade was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function RU(e,t){(0,$b.eN)(t,1);return console.warn("GetFoodUsed was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function CU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetUnitUseFood was called but is not implemented :("),0}function MU(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitRallyPoint was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function BU(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitRallyUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function NU(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitRallyDestructable was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function PU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsUnitInGroup was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function kU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsUnitInForce was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function OU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsUnitOwnedByPlayer was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function DU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsUnitAlly was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function FU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsUnitEnemy was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function GU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsUnitVisible was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function VU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsUnitDetected was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function KU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsUnitInvisible was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function HU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsUnitFogged was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function zU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsUnitMasked was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function jU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsUnitSelected was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function XU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsUnitRace was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function $U(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsUnitType was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function JU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsUnit was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function WU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.hs)(t,3);return console.warn("IsUnitInRange was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function qU(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("IsUnitInRangeXY was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function YU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.hs)(t,3);return console.warn("IsUnitInRangeLoc was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function ZU(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsUnitHidden was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function QU(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsUnitIllusion was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function eR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsUnitInTransport was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function tR(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsUnitLoaded was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function nR(e,t){(0,$b.eN)(t,1);return console.warn("IsHeroUnitId was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function aR(e,t){(0,$b.eN)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsUnitIdType was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function rR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("UnitShareVision was called but is not implemented :("),0}function iR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("UnitSuspendDecay was called but is not implemented :("),0}function sR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("UnitAddType was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function lR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("UnitRemoveType was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function oR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("UnitAddAbility was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function uR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("UnitRemoveAbility was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function cR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2),(0,$b.eN)(t,3);return console.warn("UnitMakeAbilityPermanent was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function dR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("UnitRemoveBuffs was called but is not implemented :("),0}function hR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2),(0,jb.lua_toboolean)(t,3),(0,jb.lua_toboolean)(t,4),(0,jb.lua_toboolean)(t,5),(0,jb.lua_toboolean)(t,6),(0,jb.lua_toboolean)(t,7),(0,jb.lua_toboolean)(t,8);return console.warn("UnitRemoveBuffsEx was called but is not implemented :("),0}function fR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2),(0,jb.lua_toboolean)(t,3),(0,jb.lua_toboolean)(t,4),(0,jb.lua_toboolean)(t,5),(0,jb.lua_toboolean)(t,6),(0,jb.lua_toboolean)(t,7),(0,jb.lua_toboolean)(t,8);return console.warn("UnitHasBuffsEx was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function mR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2),(0,jb.lua_toboolean)(t,3),(0,jb.lua_toboolean)(t,4),(0,jb.lua_toboolean)(t,5),(0,jb.lua_toboolean)(t,6),(0,jb.lua_toboolean)(t,7),(0,jb.lua_toboolean)(t,8);return console.warn("UnitCountBuffsEx was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function pR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("UnitAddSleep was called but is not implemented :("),0}function _R(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("UnitCanSleep was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function gR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("UnitAddSleepPerm was called but is not implemented :("),0}function bR(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("UnitCanSleepPerm was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function wR(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("UnitIsSleeping was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function vR(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("UnitWakeUp was called but is not implemented :("),0}function AR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.hs)(t,3);return console.warn("UnitApplyTimedLife was called but is not implemented :("),0}function yR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("UnitIgnoreAlarm was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function SR(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("UnitIgnoreAlarmToggled was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function TR(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("UnitResetCooldown was called but is not implemented :("),0}function xR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("UnitSetConstructionProgress was called but is not implemented :("),0}function ER(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("UnitSetUpgradeProgress was called but is not implemented :("),0}function LR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("UnitPauseTimedLife was called but is not implemented :("),0}function IR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("UnitSetUsesAltIcon was called but is not implemented :("),0}function UR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5),(0,$b.hs)(t,6),(0,jb.lua_toboolean)(t,7),(0,jb.lua_toboolean)(t,8),(0,jb.lua_touserdata)(t,9),(0,jb.lua_touserdata)(t,10),(0,jb.lua_touserdata)(t,11);return console.warn("UnitDamagePoint was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function RR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.hs)(t,3),(0,jb.lua_toboolean)(t,4),(0,jb.lua_toboolean)(t,5),(0,jb.lua_touserdata)(t,6),(0,jb.lua_touserdata)(t,7),(0,jb.lua_touserdata)(t,8);return console.warn("UnitDamageTarget was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function CR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("IssueImmediateOrder was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function MR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("IssueImmediateOrderById was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function BR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("IssuePointOrder was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function NR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("IssuePointOrderLoc was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function PR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("IssuePointOrderById was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function kR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("IssuePointOrderByIdLoc was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function OR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("IssueTargetOrder was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function DR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("IssueTargetOrderById was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function FR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,jb.lua_touserdata)(t,5);return console.warn("IssueInstantPointOrder was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function GR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,jb.lua_touserdata)(t,5);return console.warn("IssueInstantPointOrderById was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function VR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,jb.lua_touserdata)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("IssueInstantTargetOrder was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function KR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,jb.lua_touserdata)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("IssueInstantTargetOrderById was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function HR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("IssueBuildOrder was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function zR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("IssueBuildOrderById was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function jR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.dK)(t,3);return console.warn("IssueNeutralImmediateOrder was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function XR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.eN)(t,3);return console.warn("IssueNeutralImmediateOrderById was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function $R(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.dK)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5);return console.warn("IssueNeutralPointOrder was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function JR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.eN)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5);return console.warn("IssueNeutralPointOrderById was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function WR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.dK)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("IssueNeutralTargetOrder was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function qR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("IssueNeutralTargetOrderById was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function YR(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitCurrentOrder was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function ZR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("SetResourceAmount was called but is not implemented :("),0}function QR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("AddResourceAmount was called but is not implemented :("),0}function eC(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetResourceAmount was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function tC(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("WaygateGetDestinationX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function nC(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("WaygateGetDestinationY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function aC(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("WaygateSetDestination was called but is not implemented :("),0}function rC(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("WaygateActivate was called but is not implemented :("),0}function iC(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("WaygateIsActive was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function sC(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("AddItemToAllStock was called but is not implemented :("),0}function lC(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4);return console.warn("AddItemToStock was called but is not implemented :("),0}function oC(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("AddUnitToAllStock was called but is not implemented :("),0}function uC(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4);return console.warn("AddUnitToStock was called but is not implemented :("),0}function cC(e,t){(0,$b.eN)(t,1);return console.warn("RemoveItemFromAllStock was called but is not implemented :("),0}function dC(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("RemoveItemFromStock was called but is not implemented :("),0}function hC(e,t){(0,$b.eN)(t,1);return console.warn("RemoveUnitFromAllStock was called but is not implemented :("),0}function fC(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("RemoveUnitFromStock was called but is not implemented :("),0}function mC(e,t){(0,$b.eN)(t,1);return console.warn("SetAllItemTypeSlots was called but is not implemented :("),0}function pC(e,t){(0,$b.eN)(t,1);return console.warn("SetAllUnitTypeSlots was called but is not implemented :("),0}function _C(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("SetItemTypeSlots was called but is not implemented :("),0}function gC(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("SetUnitTypeSlots was called but is not implemented :("),0}function bC(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitUserData was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function wC(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("SetUnitUserData was called but is not implemented :("),0}function vC(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.players[n]),1}function AC(e,t){return console.warn("GetLocalPlayer was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function yC(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsPlayerAlly was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function SC(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsPlayerEnemy was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function TC(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsPlayerInForce was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function xC(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsPlayerObserver was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function EC(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("IsVisibleToPlayer was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function LC(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsLocationVisibleToPlayer was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function IC(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("IsFoggedToPlayer was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function UC(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsLocationFoggedToPlayer was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function RC(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("IsMaskedToPlayer was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function CC(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsLocationMaskedToPlayer was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function MC(e,t){const n=(0,jb.lua_touserdata)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.races[n.racePreference]),1}function BC(e,t){const n=(0,jb.lua_touserdata)(t,1);return(0,jb.lua_pushinteger)(t,n.index),1}function NC(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("GetPlayerUnitCount was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function PC(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,jb.lua_toboolean)(t,3),(0,jb.lua_toboolean)(t,4);return console.warn("GetPlayerTypedUnitCount was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function kC(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("GetPlayerStructureCount was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function OC(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("GetPlayerState was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function DC(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("GetPlayerScore was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function FC(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("GetPlayerAlliance was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function GC(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetPlayerHandicap was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function VC(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetPlayerHandicapXP was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function KC(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetPlayerHandicap was called but is not implemented :("),0}function HC(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetPlayerHandicapXP was called but is not implemented :("),0}function zC(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("SetPlayerTechMaxAllowed was called but is not implemented :("),0}function jC(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("GetPlayerTechMaxAllowed was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function XC(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("AddPlayerTechResearched was called but is not implemented :("),0}function $C(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("SetPlayerTechResearched was called but is not implemented :("),0}function JC(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("GetPlayerTechResearched was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function WC(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("GetPlayerTechCount was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function qC(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("SetPlayerUnitsOwner was called but is not implemented :("),0}function YC(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("CripplePlayer was called but is not implemented :("),0}function ZC(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("SetPlayerAbilityAvailable was called but is not implemented :("),0}function QC(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.eN)(t,3);return console.warn("SetPlayerState was called but is not implemented :("),0}function eM(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("RemovePlayer was called but is not implemented :("),0}function tM(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("CachePlayerHeroData was called but is not implemented :("),0}function nM(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3),(0,jb.lua_toboolean)(t,4);return console.warn("SetFogStateRect was called but is not implemented :("),0}function aM(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5),(0,jb.lua_toboolean)(t,6);return console.warn("SetFogStateRadius was called but is not implemented :("),0}function rM(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3),(0,$b.hs)(t,4),(0,jb.lua_toboolean)(t,5);return console.warn("SetFogStateRadiusLoc was called but is not implemented :("),0}function iM(e,t){(0,jb.lua_toboolean)(t,1);return console.warn("FogMaskEnable was called but is not implemented :("),0}function sM(e,t){return console.warn("IsFogMaskEnabled was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function lM(e,t){(0,jb.lua_toboolean)(t,1);return console.warn("FogEnable was called but is not implemented :("),0}function oM(e,t){return console.warn("IsFogEnabled was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function uM(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3),(0,jb.lua_toboolean)(t,4),(0,jb.lua_toboolean)(t,5);return console.warn("CreateFogModifierRect was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function cM(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5),(0,jb.lua_toboolean)(t,6),(0,jb.lua_toboolean)(t,7);return console.warn("CreateFogModifierRadius was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function dM(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3),(0,$b.hs)(t,4),(0,jb.lua_toboolean)(t,5),(0,jb.lua_toboolean)(t,6);return console.warn("CreateFogModifierRadiusLoc was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function hM(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DestroyFogModifier was called but is not implemented :("),0}function fM(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("FogModifierStart was called but is not implemented :("),0}function mM(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("FogModifierStop was called but is not implemented :("),0}function pM(e,t){return console.warn("VersionGet was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function _M(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("VersionCompatible was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function gM(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("VersionSupported was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function bM(e,t){(0,jb.lua_toboolean)(t,1);return console.warn("EndGame was called but is not implemented :("),0}function wM(e,t){(0,$b.dK)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("ChangeLevel was called but is not implemented :("),0}function vM(e,t){(0,jb.lua_toboolean)(t,1);return console.warn("RestartGame was called but is not implemented :("),0}function AM(e,t){return console.warn("ReloadGame was called but is not implemented :("),0}function yM(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("SetCampaignMenuRace was called but is not implemented :("),0}function SM(e,t){(0,$b.eN)(t,1);return console.warn("SetCampaignMenuRaceEx was called but is not implemented :("),0}function TM(e,t){return console.warn("ForceCampaignSelectScreen was called but is not implemented :("),0}function xM(e,t){(0,$b.dK)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("LoadGame was called but is not implemented :("),0}function EM(e,t){(0,$b.dK)(t,1);return console.warn("SaveGame was called but is not implemented :("),0}function LM(e,t){(0,$b.dK)(t,1),(0,$b.dK)(t,2);return console.warn("RenameSaveDirectory was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function IM(e,t){(0,$b.dK)(t,1);return console.warn("RemoveSaveDirectory was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function UM(e,t){(0,$b.dK)(t,1),(0,$b.dK)(t,2);return console.warn("CopySaveGame was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function RM(e,t){(0,$b.dK)(t,1);return console.warn("SaveGameExists was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function CM(e,t){return console.warn("SyncSelections was called but is not implemented :("),0}function MM(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetFloatGameState was called but is not implemented :("),0}function BM(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetFloatGameState was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function NM(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("SetIntegerGameState was called but is not implemented :("),0}function PM(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetIntegerGameState was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function kM(e,t){(0,jb.lua_toboolean)(t,1);return console.warn("SetTutorialCleared was called but is not implemented :("),0}function OM(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("SetMissionAvailable was called but is not implemented :("),0}function DM(e,t){(0,$b.eN)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetCampaignAvailable was called but is not implemented :("),0}function FM(e,t){(0,$b.eN)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetOpCinematicAvailable was called but is not implemented :("),0}function GM(e,t){(0,$b.eN)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetEdCinematicAvailable was called but is not implemented :("),0}function VM(e,t){return console.warn("GetDefaultDifficulty was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function KM(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("SetDefaultDifficulty was called but is not implemented :("),0}function HM(e,t){(0,$b.eN)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetCustomCampaignButtonVisible was called but is not implemented :("),0}function zM(e,t){(0,$b.eN)(t,1);return console.warn("GetCustomCampaignButtonVisible was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function jM(e,t){return console.warn("DoNotSaveReplay was called but is not implemented :("),0}function XM(e,t){return console.warn("DialogCreate was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function $M(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DialogDestroy was called but is not implemented :("),0}function JM(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DialogClear was called but is not implemented :("),0}function WM(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("DialogSetMessage was called but is not implemented :("),0}function qM(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.eN)(t,3);return console.warn("DialogAddButton was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function YM(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2),(0,$b.dK)(t,3),(0,$b.eN)(t,4);return console.warn("DialogAddQuitButton was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function ZM(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("DialogDisplay was called but is not implemented :("),0}function QM(e,t){return console.warn("ReloadGameCachesFromDisk was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function eB(e,t){(0,$b.dK)(t,1);return console.warn("InitGameCache was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function tB(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("SaveGameCache was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function nB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3),(0,$b.eN)(t,4);return console.warn("StoreInteger was called but is not implemented :("),0}function aB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3),(0,$b.hs)(t,4);return console.warn("StoreReal was called but is not implemented :("),0}function rB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3),(0,jb.lua_toboolean)(t,4);return console.warn("StoreBoolean was called but is not implemented :("),0}function iB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("StoreUnit was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function sB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3),(0,$b.dK)(t,4);return console.warn("StoreString was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function lB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("SyncStoredInteger was called but is not implemented :("),0}function oB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("SyncStoredReal was called but is not implemented :("),0}function uB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("SyncStoredBoolean was called but is not implemented :("),0}function cB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("SyncStoredUnit was called but is not implemented :("),0}function dB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("SyncStoredString was called but is not implemented :("),0}function hB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("HaveStoredInteger was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function fB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("HaveStoredReal was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function mB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("HaveStoredBoolean was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function pB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("HaveStoredUnit was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function _B(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("HaveStoredString was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function gB(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("FlushGameCache was called but is not implemented :("),0}function bB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("FlushStoredMission was called but is not implemented :("),0}function wB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("FlushStoredInteger was called but is not implemented :("),0}function vB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("FlushStoredReal was called but is not implemented :("),0}function AB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("FlushStoredBoolean was called but is not implemented :("),0}function yB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("FlushStoredUnit was called but is not implemented :("),0}function SB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("FlushStoredString was called but is not implemented :("),0}function TB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("GetStoredInteger was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function xB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("GetStoredReal was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function EB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("GetStoredBoolean was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function LB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("GetStoredString was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function IB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3),(0,jb.lua_touserdata)(t,4),(0,$b.hs)(t,5),(0,$b.hs)(t,6),(0,$b.hs)(t,7);return console.warn("RestoreUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function UB(e,t){return console.warn("InitHashtable was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function RB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4);return console.warn("SaveInteger was called but is not implemented :("),0}function CB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.hs)(t,4);return console.warn("SaveReal was called but is not implemented :("),0}function MB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_toboolean)(t,4);return console.warn("SaveBoolean was called but is not implemented :("),0}function BB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.dK)(t,4);return console.warn("SaveStr was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function NB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SavePlayerHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function PB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveWidgetHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function kB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveDestructableHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function OB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveItemHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function DB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveUnitHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function FB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveAbilityHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function GB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveTimerHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function VB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveTriggerHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function KB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveTriggerConditionHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function HB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveTriggerActionHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function zB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveTriggerEventHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function jB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveForceHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function XB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveGroupHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function $B(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveLocationHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function JB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveRectHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function WB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveBooleanExprHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function qB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveSoundHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function YB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveEffectHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function ZB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveUnitPoolHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function QB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveItemPoolHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function eN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveQuestHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function tN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveQuestItemHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function nN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveDefeatConditionHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function aN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveTimerDialogHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function rN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveLeaderboardHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function iN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveMultiboardHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function sN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveMultiboardItemHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function lN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveTrackableHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function oN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveDialogHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function uN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveButtonHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function cN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveTextTagHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function dN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveLightningHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function hN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveImageHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function fN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveUbersplatHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function mN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveRegionHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function pN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveFogStateHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function _N(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveFogModifierHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function gN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveAgentHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function bN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveHashtableHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function wN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadInteger was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function vN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadReal was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function AN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadBoolean was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function yN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadStr was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function SN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadPlayerHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function TN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadWidgetHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function xN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadDestructableHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function EN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadItemHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function LN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadUnitHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function IN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadAbilityHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function UN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadTimerHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function RN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadTriggerHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function CN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadTriggerConditionHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function MN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadTriggerActionHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function BN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadTriggerEventHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function NN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadForceHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function PN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadGroupHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function kN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadLocationHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function ON(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadRectHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function DN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadBooleanExprHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function FN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadSoundHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function GN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadEffectHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function VN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadUnitPoolHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function KN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadItemPoolHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function HN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadQuestHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function zN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadQuestItemHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function jN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadDefeatConditionHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function XN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadTimerDialogHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function $N(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadLeaderboardHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function JN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadMultiboardHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function WN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadMultiboardItemHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function qN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadTrackableHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function YN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadDialogHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function ZN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadButtonHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function QN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadTextTagHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function eP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadLightningHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function tP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadImageHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function nP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadUbersplatHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function aP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadRegionHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function rP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadFogStateHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function iP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadFogModifierHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function sP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadHashtableHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function lP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("HaveSavedInteger was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function oP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("HaveSavedReal was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function uP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("HaveSavedBoolean was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function cP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("HaveSavedString was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function dP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("HaveSavedHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function hP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("RemoveSavedInteger was called but is not implemented :("),0}function fP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("RemoveSavedReal was called but is not implemented :("),0}function mP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("RemoveSavedBoolean was called but is not implemented :("),0}function pP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("RemoveSavedString was called but is not implemented :("),0}function _P(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("RemoveSavedHandle was called but is not implemented :("),0}function gP(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("FlushParentHashtable was called but is not implemented :("),0}function bP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("FlushChildHashtable was called but is not implemented :("),0}function wP(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2);return console.warn("GetRandomInt was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function vP(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2);return console.warn("GetRandomReal was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function AP(e,t){return console.warn("CreateUnitPool was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function yP(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DestroyUnitPool was called but is not implemented :("),0}function SP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.hs)(t,3);return console.warn("UnitPoolAddUnitType was called but is not implemented :("),0}function TP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("UnitPoolRemoveUnitType was called but is not implemented :("),0}function xP(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5);return console.warn("PlaceRandomUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function EP(e,t){return console.warn("CreateItemPool was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function LP(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DestroyItemPool was called but is not implemented :("),0}function IP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.hs)(t,3);return console.warn("ItemPoolAddItemType was called but is not implemented :("),0}function UP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("ItemPoolRemoveItemType was called but is not implemented :("),0}function RP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("PlaceRandomItem was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function CP(e,t){(0,$b.eN)(t,1);return console.warn("ChooseRandomCreep was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function MP(e,t){return console.warn("ChooseRandomNPBuilding was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function BP(e,t){(0,$b.eN)(t,1);return console.warn("ChooseRandomItem was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function NP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("ChooseRandomItemEx was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function PP(e,t){(0,$b.eN)(t,1);return console.warn("SetRandomSeed was called but is not implemented :("),0}function kP(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5);return console.warn("SetTerrainFog was called but is not implemented :("),0}function OP(e,t){return console.warn("ResetTerrainFog was called but is not implemented :("),0}function DP(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5);return console.warn("SetUnitFog was called but is not implemented :("),0}function FP(e,t){(0,$b.eN)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5),(0,$b.hs)(t,6),(0,$b.hs)(t,7);return console.warn("SetTerrainFogEx was called but is not implemented :("),0}function GP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.dK)(t,4);return console.warn("DisplayTextToPlayer was called but is not implemented :("),0}function VP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.dK)(t,5);return console.warn("DisplayTimedTextToPlayer was called but is not implemented :("),0}function KP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.dK)(t,5);return console.warn("DisplayTimedTextFromPlayer was called but is not implemented :("),0}function HP(e,t){return console.warn("ClearTextMessages was called but is not implemented :("),0}function zP(e,t){(0,$b.dK)(t,1),(0,$b.dK)(t,2);return console.warn("SetDayNightModels was called but is not implemented :("),0}function jP(e,t){(0,$b.dK)(t,1);return console.warn("SetSkyModel was called but is not implemented :("),0}function XP(e,t){(0,jb.lua_toboolean)(t,1);return console.warn("EnableUserControl was called but is not implemented :("),0}function $P(e,t){(0,jb.lua_toboolean)(t,1);return console.warn("EnableUserUI was called but is not implemented :("),0}function JP(e,t){(0,jb.lua_toboolean)(t,1);return console.warn("SuspendTimeOfDay was called but is not implemented :("),0}function WP(e,t){(0,$b.hs)(t,1);return console.warn("SetTimeOfDayScale was called but is not implemented :("),0}function qP(e,t){return console.warn("GetTimeOfDayScale was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function YP(e,t){(0,jb.lua_toboolean)(t,1),(0,$b.hs)(t,2);return console.warn("ShowInterface was called but is not implemented :("),0}function ZP(e,t){(0,jb.lua_toboolean)(t,1);return console.warn("PauseGame was called but is not implemented :("),0}function QP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4),(0,$b.eN)(t,5);return console.warn("UnitAddIndicator was called but is not implemented :("),0}function ek(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4),(0,$b.eN)(t,5);return console.warn("AddIndicator was called but is not implemented :("),0}function tk(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("PingMinimap was called but is not implemented :("),0}function nk(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.eN)(t,4),(0,$b.eN)(t,5),(0,$b.eN)(t,6),(0,jb.lua_toboolean)(t,7);return console.warn("PingMinimapEx was called but is not implemented :("),0}function ak(e,t){(0,jb.lua_toboolean)(t,1);return console.warn("EnableOcclusion was called but is not implemented :("),0}function rk(e,t){(0,$b.dK)(t,1);return console.warn("SetIntroShotText was called but is not implemented :("),0}function ik(e,t){(0,$b.dK)(t,1);return console.warn("SetIntroShotModel was called but is not implemented :("),0}function sk(e,t){(0,jb.lua_toboolean)(t,1);return console.warn("EnableWorldFogBoundary was called but is not implemented :("),0}function lk(e,t){(0,$b.dK)(t,1);return console.warn("PlayModelCinematic was called but is not implemented :("),0}function ok(e,t){(0,$b.dK)(t,1);return console.warn("PlayCinematic was called but is not implemented :("),0}function uk(e,t){(0,$b.dK)(t,1);return console.warn("ForceUIKey was called but is not implemented :("),0}function ck(e,t){return console.warn("ForceUICancel was called but is not implemented :("),0}function dk(e,t){return console.warn("DisplayLoadDialog was called but is not implemented :("),0}function hk(e,t){(0,$b.dK)(t,1);return console.warn("SetAltMinimapIcon was called but is not implemented :("),0}function fk(e,t){(0,jb.lua_toboolean)(t,1);return console.warn("DisableRestartMission was called but is not implemented :("),0}function mk(e,t){return console.warn("CreateTextTag was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function pk(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DestroyTextTag was called but is not implemented :("),0}function _k(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.hs)(t,3);return console.warn("SetTextTagText was called but is not implemented :("),0}function gk(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("SetTextTagPos was called but is not implemented :("),0}function bk(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.hs)(t,3);return console.warn("SetTextTagPosUnit was called but is not implemented :("),0}function wk(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4),(0,$b.eN)(t,5);return console.warn("SetTextTagColor was called but is not implemented :("),0}function vk(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("SetTextTagVelocity was called but is not implemented :("),0}function Ak(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetTextTagVisibility was called but is not implemented :("),0}function yk(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetTextTagSuspended was called but is not implemented :("),0}function Sk(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetTextTagPermanent was called but is not implemented :("),0}function Tk(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetTextTagAge was called but is not implemented :("),0}function xk(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetTextTagLifespan was called but is not implemented :("),0}function Ek(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetTextTagFadepoint was called but is not implemented :("),0}function Lk(e,t){(0,$b.eN)(t,1);return console.warn("SetReservedLocalHeroButtons was called but is not implemented :("),0}function Ik(e,t){return console.warn("GetAllyColorFilterState was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function Uk(e,t){(0,$b.eN)(t,1);return console.warn("SetAllyColorFilterState was called but is not implemented :("),0}function Rk(e,t){return console.warn("GetCreepCampFilterState was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function Ck(e,t){(0,jb.lua_toboolean)(t,1);return console.warn("SetCreepCampFilterState was called but is not implemented :("),0}function Mk(e,t){(0,jb.lua_toboolean)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("EnableMinimapFilterButtons was called but is not implemented :("),0}function Bk(e,t){(0,jb.lua_toboolean)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("EnableDragSelect was called but is not implemented :("),0}function Nk(e,t){(0,jb.lua_toboolean)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("EnablePreSelect was called but is not implemented :("),0}function Pk(e,t){(0,jb.lua_toboolean)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("EnableSelect was called but is not implemented :("),0}function kk(e,t){(0,$b.dK)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("CreateTrackable was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Ok(e,t){return console.warn("CreateQuest was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Dk(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DestroyQuest was called but is not implemented :("),0}function Fk(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("QuestSetTitle was called but is not implemented :("),0}function Gk(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("QuestSetDescription was called but is not implemented :("),0}function Vk(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("QuestSetIconPath was called but is not implemented :("),0}function Kk(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("QuestSetRequired was called but is not implemented :("),0}function Hk(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("QuestSetCompleted was called but is not implemented :("),0}function zk(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("QuestSetDiscovered was called but is not implemented :("),0}function jk(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("QuestSetFailed was called but is not implemented :("),0}function Xk(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("QuestSetEnabled was called but is not implemented :("),0}function $k(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsQuestRequired was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function Jk(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsQuestCompleted was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function Wk(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsQuestDiscovered was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function qk(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsQuestFailed was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function Yk(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsQuestEnabled was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function Zk(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("QuestCreateItem was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Qk(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("QuestItemSetDescription was called but is not implemented :("),0}function eO(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("QuestItemSetCompleted was called but is not implemented :("),0}function tO(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsQuestItemCompleted was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function nO(e,t){return console.warn("CreateDefeatCondition was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function aO(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DestroyDefeatCondition was called but is not implemented :("),0}function rO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("DefeatConditionSetDescription was called but is not implemented :("),0}function iO(e,t){return console.warn("FlashQuestDialogButton was called but is not implemented :("),0}function sO(e,t){return console.warn("ForceQuestDialogUpdate was called but is not implemented :("),0}function lO(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("CreateTimerDialog was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function oO(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DestroyTimerDialog was called but is not implemented :("),0}function uO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("TimerDialogSetTitle was called but is not implemented :("),0}function cO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4),(0,$b.eN)(t,5);return console.warn("TimerDialogSetTitleColor was called but is not implemented :("),0}function dO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4),(0,$b.eN)(t,5);return console.warn("TimerDialogSetTimeColor was called but is not implemented :("),0}function hO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("TimerDialogSetSpeed was called but is not implemented :("),0}function fO(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("TimerDialogDisplay was called but is not implemented :("),0}function mO(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsTimerDialogDisplayed was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function pO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("TimerDialogSetRealTimeRemaining was called but is not implemented :("),0}function _O(e,t){return console.warn("CreateLeaderboard was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function gO(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DestroyLeaderboard was called but is not implemented :("),0}function bO(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("LeaderboardDisplay was called but is not implemented :("),0}function wO(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsLeaderboardDisplayed was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function vO(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("LeaderboardGetItemCount was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function AO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("LeaderboardSetSizeByItemCount was called but is not implemented :("),0}function yO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("LeaderboardAddItem was called but is not implemented :("),0}function SO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("LeaderboardRemoveItem was called but is not implemented :("),0}function TO(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("LeaderboardRemovePlayerItem was called but is not implemented :("),0}function xO(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("LeaderboardClear was called but is not implemented :("),0}function EO(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("LeaderboardSortItemsByValue was called but is not implemented :("),0}function LO(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("LeaderboardSortItemsByPlayer was called but is not implemented :("),0}function IO(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("LeaderboardSortItemsByLabel was called but is not implemented :("),0}function UO(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("LeaderboardHasPlayerItem was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function RO(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("LeaderboardGetPlayerIndex was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function CO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("LeaderboardSetLabel was called but is not implemented :("),0}function MO(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("LeaderboardGetLabelText was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function BO(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("PlayerSetLeaderboard was called but is not implemented :("),0}function NO(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("PlayerGetLeaderboard was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function PO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4),(0,$b.eN)(t,5);return console.warn("LeaderboardSetLabelColor was called but is not implemented :("),0}function kO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4),(0,$b.eN)(t,5);return console.warn("LeaderboardSetValueColor was called but is not implemented :("),0}function OO(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2),(0,jb.lua_toboolean)(t,3),(0,jb.lua_toboolean)(t,4),(0,jb.lua_toboolean)(t,5);return console.warn("LeaderboardSetStyle was called but is not implemented :("),0}function DO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LeaderboardSetItemValue was called but is not implemented :("),0}function FO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.dK)(t,3);return console.warn("LeaderboardSetItemLabel was called but is not implemented :("),0}function GO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,jb.lua_toboolean)(t,3),(0,jb.lua_toboolean)(t,4),(0,jb.lua_toboolean)(t,5);return console.warn("LeaderboardSetItemStyle was called but is not implemented :("),0}function VO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4),(0,$b.eN)(t,5),(0,$b.eN)(t,6);return console.warn("LeaderboardSetItemLabelColor was called but is not implemented :("),0}function KO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4),(0,$b.eN)(t,5),(0,$b.eN)(t,6);return console.warn("LeaderboardSetItemValueColor was called but is not implemented :("),0}function HO(e,t){return console.warn("CreateMultiboard was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function zO(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DestroyMultiboard was called but is not implemented :("),0}function jO(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("MultiboardDisplay was called but is not implemented :("),0}function XO(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsMultiboardDisplayed was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function $O(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("MultiboardMinimize was called but is not implemented :("),0}function JO(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsMultiboardMinimized was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function WO(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("MultiboardClear was called but is not implemented :("),0}function qO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("MultiboardSetTitleText was called but is not implemented :("),0}function YO(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("MultiboardGetTitleText was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function ZO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4),(0,$b.eN)(t,5);return console.warn("MultiboardSetTitleTextColor was called but is not implemented :("),0}function QO(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("MultiboardGetRowCount was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function eD(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("MultiboardGetColumnCount was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function tD(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("MultiboardSetColumnCount was called but is not implemented :("),0}function nD(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("MultiboardSetRowCount was called but is not implemented :("),0}function aD(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("MultiboardSetItemsStyle was called but is not implemented :("),0}function rD(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("MultiboardSetItemsValue was called but is not implemented :("),0}function iD(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4),(0,$b.eN)(t,5);return console.warn("MultiboardSetItemsValueColor was called but is not implemented :("),0}function sD(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("MultiboardSetItemsWidth was called but is not implemented :("),0}function lD(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("MultiboardSetItemsIcon was called but is not implemented :("),0}function oD(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("MultiboardGetItem was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function uD(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("MultiboardReleaseItem was called but is not implemented :("),0}function cD(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("MultiboardSetItemStyle was called but is not implemented :("),0}function dD(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("MultiboardSetItemValue was called but is not implemented :("),0}function hD(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4),(0,$b.eN)(t,5);return console.warn("MultiboardSetItemValueColor was called but is not implemented :("),0}function fD(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("MultiboardSetItemWidth was called but is not implemented :("),0}function mD(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("MultiboardSetItemIcon was called but is not implemented :("),0}function pD(e,t){(0,jb.lua_toboolean)(t,1);return console.warn("MultiboardSuppressDisplay was called but is not implemented :("),0}function _D(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2);return console.warn("SetCameraPosition was called but is not implemented :("),0}function gD(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2);return console.warn("SetCameraQuickPosition was called but is not implemented :("),0}function bD(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5),(0,$b.hs)(t,6),(0,$b.hs)(t,7),(0,$b.hs)(t,8);return console.warn("SetCameraBounds was called but is not implemented :("),0}function wD(e,t){return console.warn("StopCamera was called but is not implemented :("),0}function vD(e,t){(0,$b.hs)(t,1);return console.warn("ResetToGameCamera was called but is not implemented :("),0}function AD(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2);return console.warn("PanCameraTo was called but is not implemented :("),0}function yD(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("PanCameraToTimed was called but is not implemented :("),0}function SD(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("PanCameraToWithZ was called but is not implemented :("),0}function TD(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("PanCameraToTimedWithZ was called but is not implemented :("),0}function xD(e,t){(0,$b.dK)(t,1);return console.warn("SetCinematicCamera was called but is not implemented :("),0}function ED(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("SetCameraRotateMode was called but is not implemented :("),0}function LD(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("SetCameraField was called but is not implemented :("),0}function ID(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("AdjustCameraField was called but is not implemented :("),0}function UD(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,jb.lua_toboolean)(t,4);return console.warn("SetCameraTargetController was called but is not implemented :("),0}function RD(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("SetCameraOrientController was called but is not implemented :("),0}function CD(e,t){return console.warn("CreateCameraSetup was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function MD(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("CameraSetupSetField was called but is not implemented :("),0}function BD(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("CameraSetupGetField was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function ND(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("CameraSetupSetDestPosition was called but is not implemented :("),0}function PD(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("CameraSetupGetDestPositionLoc was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function kD(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("CameraSetupGetDestPositionX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function OD(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("CameraSetupGetDestPositionY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function DD(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("CameraSetupApply was called but is not implemented :("),0}function FD(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("CameraSetupApplyWithZ was called but is not implemented :("),0}function GD(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2),(0,$b.hs)(t,3);return console.warn("CameraSetupApplyForceDuration was called but is not implemented :("),0}function VD(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("CameraSetupApplyForceDurationWithZ was called but is not implemented :("),0}function KD(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2);return console.warn("CameraSetTargetNoise was called but is not implemented :("),0}function HD(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2);return console.warn("CameraSetSourceNoise was called but is not implemented :("),0}function zD(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("CameraSetTargetNoiseEx was called but is not implemented :("),0}function jD(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("CameraSetSourceNoiseEx was called but is not implemented :("),0}function XD(e,t){(0,$b.hs)(t,1);return console.warn("CameraSetSmoothingFactor was called but is not implemented :("),0}function $D(e,t){(0,$b.dK)(t,1);return console.warn("SetCineFilterTexture was called but is not implemented :("),0}function JD(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("SetCineFilterBlendMode was called but is not implemented :("),0}function WD(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("SetCineFilterTexMapFlags was called but is not implemented :("),0}function qD(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("SetCineFilterStartUV was called but is not implemented :("),0}function YD(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("SetCineFilterEndUV was called but is not implemented :("),0}function ZD(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4);return console.warn("SetCineFilterStartColor was called but is not implemented :("),0}function QD(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4);return console.warn("SetCineFilterEndColor was called but is not implemented :("),0}function eF(e,t){(0,$b.hs)(t,1);return console.warn("SetCineFilterDuration was called but is not implemented :("),0}function tF(e,t){(0,jb.lua_toboolean)(t,1);return console.warn("DisplayCineFilter was called but is not implemented :("),0}function nF(e,t){return console.warn("IsCineFilterDisplayed was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function aF(e,t){(0,$b.eN)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.dK)(t,3),(0,$b.dK)(t,4),(0,$b.hs)(t,5),(0,$b.hs)(t,6);return console.warn("SetCinematicScene was called but is not implemented :("),0}function rF(e,t){return console.warn("EndCinematicScene was called but is not implemented :("),0}function iF(e,t){(0,jb.lua_toboolean)(t,1);return console.warn("ForceCinematicSubtitles was called but is not implemented :("),0}function sF(e,t){(0,$b.eN)(t,1);return console.warn("GetCameraMargin was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function lF(e,t){return console.warn("GetCameraBoundMinX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function oF(e,t){return console.warn("GetCameraBoundMinY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function uF(e,t){return console.warn("GetCameraBoundMaxX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function cF(e,t){return console.warn("GetCameraBoundMaxY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function dF(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetCameraField was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function hF(e,t){return console.warn("GetCameraTargetPositionX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function fF(e,t){return console.warn("GetCameraTargetPositionY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function mF(e,t){return console.warn("GetCameraTargetPositionZ was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function pF(e,t){return console.warn("GetCameraTargetPositionLoc was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function _F(e,t){return console.warn("GetCameraEyePositionX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function gF(e,t){return console.warn("GetCameraEyePositionY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function bF(e,t){return console.warn("GetCameraEyePositionZ was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function wF(e,t){return console.warn("GetCameraEyePositionLoc was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function vF(e,t){(0,$b.dK)(t,1);return console.warn("NewSoundEnvironment was called but is not implemented :("),0}function AF(e,t){(0,$b.dK)(t,1),(0,jb.lua_toboolean)(t,2),(0,jb.lua_toboolean)(t,3),(0,jb.lua_toboolean)(t,4),(0,$b.eN)(t,5),(0,$b.eN)(t,6),(0,$b.dK)(t,7);return console.warn("CreateSound was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function yF(e,t){(0,$b.dK)(t,1),(0,jb.lua_toboolean)(t,2),(0,jb.lua_toboolean)(t,3),(0,jb.lua_toboolean)(t,4),(0,$b.eN)(t,5),(0,$b.eN)(t,6),(0,$b.dK)(t,7);return console.warn("CreateSoundFilenameWithLabel was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function SF(e,t){(0,$b.dK)(t,1),(0,jb.lua_toboolean)(t,2),(0,jb.lua_toboolean)(t,3),(0,jb.lua_toboolean)(t,4),(0,$b.eN)(t,5),(0,$b.eN)(t,6);return console.warn("CreateSoundFromLabel was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function TF(e,t){(0,$b.dK)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("CreateMIDISound was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function xF(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("SetSoundParamsFromLabel was called but is not implemented :("),0}function EF(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetSoundDistanceCutoff was called but is not implemented :("),0}function LF(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("SetSoundChannel was called but is not implemented :("),0}function IF(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("SetSoundVolume was called but is not implemented :("),0}function UF(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetSoundPitch was called but is not implemented :("),0}function RF(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("SetSoundPlayPosition was called but is not implemented :("),0}function CF(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("SetSoundDistances was called but is not implemented :("),0}function MF(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.eN)(t,4);return console.warn("SetSoundConeAngles was called but is not implemented :("),0}function BF(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("SetSoundConeOrientation was called but is not implemented :("),0}function NF(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("SetSoundPosition was called but is not implemented :("),0}function PF(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("SetSoundVelocity was called but is not implemented :("),0}function kF(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("AttachSoundToUnit was called but is not implemented :("),0}function OF(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("StartSound was called but is not implemented :("),0}function DF(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("StopSound was called but is not implemented :("),0}function FF(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("KillSoundWhenDone was called but is not implemented :("),0}function GF(e,t){(0,$b.dK)(t,1),(0,jb.lua_toboolean)(t,2),(0,$b.eN)(t,3);return console.warn("SetMapMusic was called but is not implemented :("),0}function VF(e,t){return console.warn("ClearMapMusic was called but is not implemented :("),0}function KF(e,t){(0,$b.dK)(t,1);return console.warn("PlayMusic was called but is not implemented :("),0}function HF(e,t){(0,$b.dK)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("PlayMusicEx was called but is not implemented :("),0}function zF(e,t){(0,jb.lua_toboolean)(t,1);return console.warn("StopMusic was called but is not implemented :("),0}function jF(e,t){return console.warn("ResumeMusic was called but is not implemented :("),0}function XF(e,t){(0,$b.dK)(t,1);return console.warn("PlayThematicMusic was called but is not implemented :("),0}function $F(e,t){(0,$b.dK)(t,1),(0,$b.eN)(t,2);return console.warn("PlayThematicMusicEx was called but is not implemented :("),0}function JF(e,t){return console.warn("EndThematicMusic was called but is not implemented :("),0}function WF(e,t){(0,$b.eN)(t,1);return console.warn("SetMusicVolume was called but is not implemented :("),0}function qF(e,t){(0,$b.eN)(t,1);return console.warn("SetMusicPlayPosition was called but is not implemented :("),0}function YF(e,t){(0,$b.eN)(t,1);return console.warn("SetThematicMusicPlayPosition was called but is not implemented :("),0}function ZF(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("SetSoundDuration was called but is not implemented :("),0}function QF(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetSoundDuration was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function eG(e,t){(0,$b.dK)(t,1);return console.warn("GetSoundFileDuration was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function tG(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("VolumeGroupSetVolume was called but is not implemented :("),0}function nG(e,t){return console.warn("VolumeGroupReset was called but is not implemented :("),0}function aG(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetSoundIsPlaying was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function rG(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetSoundIsLoading was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function iG(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("RegisterStackedSound was called but is not implemented :("),0}function sG(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("UnregisterStackedSound was called but is not implemented :("),0}function lG(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("AddWeatherEffect was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function oG(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("RemoveWeatherEffect was called but is not implemented :("),0}function uG(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("EnableWeatherEffect was called but is not implemented :("),0}function cG(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.eN)(t,5),(0,jb.lua_toboolean)(t,6);return console.warn("TerrainDeformCrater was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function dG(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.eN)(t,5),(0,$b.eN)(t,6),(0,$b.hs)(t,7),(0,$b.hs)(t,8),(0,$b.hs)(t,9),(0,jb.lua_toboolean)(t,10);return console.warn("TerrainDeformRipple was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function hG(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5),(0,$b.hs)(t,6),(0,$b.hs)(t,7),(0,$b.hs)(t,8),(0,$b.eN)(t,9),(0,$b.eN)(t,10);return console.warn("TerrainDeformWave was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function fG(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5),(0,$b.eN)(t,6),(0,$b.eN)(t,7);return console.warn("TerrainDeformRandom was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function mG(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("TerrainDeformStop was called but is not implemented :("),0}function pG(e,t){return console.warn("TerrainDeformStopAll was called but is not implemented :("),0}function _G(e,t){(0,$b.dK)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("AddSpecialEffect was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function gG(e,t){(0,$b.dK)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("AddSpecialEffectLoc was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function bG(e,t){(0,$b.dK)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.dK)(t,3);return console.warn("AddSpecialEffectTarget was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function wG(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DestroyEffect was called but is not implemented :("),0}function vG(e,t){(0,$b.dK)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("AddSpellEffect was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function AG(e,t){(0,$b.dK)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("AddSpellEffectLoc was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function yG(e,t){(0,$b.eN)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("AddSpellEffectById was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function SG(e,t){(0,$b.eN)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("AddSpellEffectByIdLoc was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function TG(e,t){(0,$b.dK)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3),(0,$b.dK)(t,4);return console.warn("AddSpellEffectTarget was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function xG(e,t){(0,$b.eN)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3),(0,$b.dK)(t,4);return console.warn("AddSpellEffectTargetById was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function EG(e,t){(0,$b.dK)(t,1),(0,jb.lua_toboolean)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5),(0,$b.hs)(t,6);return console.warn("AddLightning was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function LG(e,t){(0,$b.dK)(t,1),(0,jb.lua_toboolean)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5),(0,$b.hs)(t,6),(0,$b.hs)(t,7),(0,$b.hs)(t,8);return console.warn("AddLightningEx was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function IG(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DestroyLightning was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function UG(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5),(0,$b.hs)(t,6);return console.warn("MoveLightning was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function RG(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5),(0,$b.hs)(t,6),(0,$b.hs)(t,7),(0,$b.hs)(t,8);return console.warn("MoveLightningEx was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function CG(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetLightningColorA was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function MG(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetLightningColorR was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function BG(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetLightningColorG was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function NG(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetLightningColorB was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function PG(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5);return console.warn("SetLightningColor was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function kG(e,t){(0,$b.dK)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.eN)(t,3);return console.warn("GetAbilityEffect was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function OG(e,t){(0,$b.eN)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.eN)(t,3);return console.warn("GetAbilityEffectById was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function DG(e,t){(0,$b.dK)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("GetAbilitySound was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function FG(e,t){(0,$b.eN)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("GetAbilitySoundById was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function GG(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2);return console.warn("GetTerrainCliffLevel was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function VG(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4);return console.warn("SetWaterBaseColor was called but is not implemented :("),0}function KG(e,t){(0,jb.lua_toboolean)(t,1);return console.warn("SetWaterDeforms was called but is not implemented :("),0}function HG(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2);return console.warn("GetTerrainType was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function zG(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2);return console.warn("GetTerrainVariance was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function jG(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4),(0,$b.eN)(t,5),(0,$b.eN)(t,6);return console.warn("SetTerrainType was called but is not implemented :("),0}function XG(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("IsTerrainPathable was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function $G(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,jb.lua_touserdata)(t,3),(0,jb.lua_toboolean)(t,4);return console.warn("SetTerrainPathable was called but is not implemented :("),0}function JG(e,t){(0,$b.dK)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5),(0,$b.hs)(t,6),(0,$b.hs)(t,7),(0,$b.hs)(t,8),(0,$b.hs)(t,9),(0,$b.hs)(t,10),(0,$b.eN)(t,11);return console.warn("CreateImage was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function WG(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DestroyImage was called but is not implemented :("),0}function qG(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("ShowImage was called but is not implemented :("),0}function YG(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2),(0,$b.hs)(t,3);return console.warn("SetImageConstantHeight was called but is not implemented :("),0}function ZG(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("SetImagePosition was called but is not implemented :("),0}function QG(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4),(0,$b.eN)(t,5);return console.warn("SetImageColor was called but is not implemented :("),0}function eV(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetImageRender was called but is not implemented :("),0}function tV(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetImageRenderAlways was called but is not implemented :("),0}function nV(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("SetImageAboveWater was called but is not implemented :("),0}function aV(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("SetImageType was called but is not implemented :("),0}function rV(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.dK)(t,3),(0,$b.eN)(t,4),(0,$b.eN)(t,5),(0,$b.eN)(t,6),(0,$b.eN)(t,7),(0,jb.lua_toboolean)(t,8),(0,jb.lua_toboolean)(t,9);return console.warn("CreateUbersplat was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function iV(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DestroyUbersplat was called but is not implemented :("),0}function sV(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("ResetUbersplat was called but is not implemented :("),0}function lV(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("FinishUbersplat was called but is not implemented :("),0}function oV(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("ShowUbersplat was called but is not implemented :("),0}function uV(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetUbersplatRender was called but is not implemented :("),0}function cV(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetUbersplatRenderAlways was called but is not implemented :("),0}function dV(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,jb.lua_toboolean)(t,5);return console.warn("SetBlight was called but is not implemented :("),0}function hV(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("SetBlightRect was called but is not implemented :("),0}function fV(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,jb.lua_toboolean)(t,4);return console.warn("SetBlightPoint was called but is not implemented :("),0}function mV(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.hs)(t,3),(0,jb.lua_toboolean)(t,4);return console.warn("SetBlightLoc was called but is not implemented :("),0}function pV(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("CreateBlightedGoldmine was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function _V(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2);return console.warn("IsPointBlighted was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function gV(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.eN)(t,4),(0,jb.lua_toboolean)(t,5),(0,$b.dK)(t,6),(0,jb.lua_toboolean)(t,7);return console.warn("SetDoodadAnimation was called but is not implemented :("),0}function bV(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.dK)(t,3),(0,jb.lua_toboolean)(t,4);return console.warn("SetDoodadAnimationRect was called but is not implemented :("),0}function wV(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("StartMeleeAI was called but is not implemented :("),0}function vV(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("StartCampaignAI was called but is not implemented :("),0}function AV(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("CommandAI was called but is not implemented :("),0}function yV(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("PauseCompAI was called but is not implemented :("),0}function SV(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetAIDifficulty was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function TV(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("RemoveGuardPosition was called but is not implemented :("),0}function xV(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("RecycleGuardPosition was called but is not implemented :("),0}function EV(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("RemoveAllGuardPositions was called but is not implemented :("),0}function LV(e,t){(0,$b.dK)(t,1);return console.warn("Cheat was called but is not implemented :("),0}function IV(e,t){return console.warn("IsNoVictoryCheat was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function UV(e,t){return console.warn("IsNoDefeatCheat was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function RV(e,t){(0,$b.dK)(t,1);return console.warn("Preload was called but is not implemented :("),0}function CV(e,t){(0,$b.hs)(t,1);return console.warn("PreloadEnd was called but is not implemented :("),0}function MV(e,t){return console.warn("PreloadStart was called but is not implemented :("),0}function BV(e,t){return console.warn("PreloadRefresh was called but is not implemented :("),0}function NV(e,t){return console.warn("PreloadEndEx was called but is not implemented :("),0}function PV(e,t){return console.warn("PreloadGenClear was called but is not implemented :("),0}function kV(e,t){return console.warn("PreloadGenStart was called but is not implemented :("),0}function OV(e,t){(0,$b.dK)(t,1);return console.warn("PreloadGenEnd was called but is not implemented :("),0}function DV(e,t){(0,$b.dK)(t,1);return console.warn("Preloader was called but is not implemented :("),0}function FV(e,t){(0,$b.dK)(t,1);return console.warn("AutomationTestStart was called but is not implemented :("),0}function GV(e,t){(0,$b.dK)(t,1);return console.warn("AutomationTestEnd was called but is not implemented :("),0}function VV(e,t){return console.warn("BlzGetTriggerPlayerMouseX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function KV(e,t){return console.warn("BlzGetTriggerPlayerMouseY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function HV(e,t){return console.warn("BlzGetTriggerPlayerMousePosition was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function zV(e,t){return console.warn("BlzGetTriggerPlayerMouseButton was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function jV(e,t){(0,$b.eN)(t,1),(0,$b.dK)(t,2),(0,$b.eN)(t,3);return console.warn("BlzSetAbilityTooltip was called but is not implemented :("),0}function XV(e,t){(0,$b.eN)(t,1),(0,$b.dK)(t,2),(0,$b.eN)(t,3);return console.warn("BlzSetAbilityActivatedTooltip was called but is not implemented :("),0}function $V(e,t){(0,$b.eN)(t,1),(0,$b.dK)(t,2),(0,$b.eN)(t,3);return console.warn("BlzSetAbilityExtendedTooltip was called but is not implemented :("),0}function JV(e,t){(0,$b.eN)(t,1),(0,$b.dK)(t,2),(0,$b.eN)(t,3);return console.warn("BlzSetAbilityActivatedExtendedTooltip was called but is not implemented :("),0}function WV(e,t){(0,$b.eN)(t,1),(0,$b.dK)(t,2),(0,$b.eN)(t,3);return console.warn("BlzSetAbilityResearchTooltip was called but is not implemented :("),0}function qV(e,t){(0,$b.eN)(t,1),(0,$b.dK)(t,2),(0,$b.eN)(t,3);return console.warn("BlzSetAbilityResearchExtendedTooltip was called but is not implemented :("),0}function YV(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2);return console.warn("BlzGetAbilityTooltip was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function ZV(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2);return console.warn("BlzGetAbilityActivatedTooltip was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function QV(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2);return console.warn("BlzGetAbilityExtendedTooltip was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function eK(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2);return console.warn("BlzGetAbilityActivatedExtendedTooltip was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function tK(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2);return console.warn("BlzGetAbilityResearchTooltip was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function nK(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2);return console.warn("BlzGetAbilityResearchExtendedTooltip was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function aK(e,t){(0,$b.eN)(t,1),(0,$b.dK)(t,2);return console.warn("BlzSetAbilityIcon was called but is not implemented :("),0}function rK(e,t){(0,$b.eN)(t,1);return console.warn("BlzGetAbilityIcon was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function iK(e,t){(0,$b.eN)(t,1),(0,$b.dK)(t,2);return console.warn("BlzSetAbilityActivatedIcon was called but is not implemented :("),0}function sK(e,t){(0,$b.eN)(t,1);return console.warn("BlzGetAbilityActivatedIcon was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function lK(e,t){(0,$b.eN)(t,1);return console.warn("BlzGetAbilityPosX was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function oK(e,t){(0,$b.eN)(t,1);return console.warn("BlzGetAbilityPosY was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function uK(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2);return console.warn("BlzSetAbilityPosX was called but is not implemented :("),0}function cK(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2);return console.warn("BlzSetAbilityPosY was called but is not implemented :("),0}function dK(e,t){(0,$b.eN)(t,1);return console.warn("BlzGetAbilityActivatedPosX was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function hK(e,t){(0,$b.eN)(t,1);return console.warn("BlzGetAbilityActivatedPosY was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function fK(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2);return console.warn("BlzSetAbilityActivatedPosX was called but is not implemented :("),0}function mK(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2);return console.warn("BlzSetAbilityActivatedPosY was called but is not implemented :("),0}function pK(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("BlzGetUnitMaxHP was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function _K(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("BlzSetUnitMaxHP was called but is not implemented :("),0}function gK(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("BlzGetUnitMaxMana was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function bK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("BlzSetUnitMaxMana was called but is not implemented :("),0}function wK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("BlzDeleteHeroAbility was called but is not implemented :("),0}function vK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("BlzSetItemName was called but is not implemented :("),0}function AK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("BlzSetItemDescription was called but is not implemented :("),0}function yK(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("BlzGetItemDescription was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function SK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("BlzSetItemTooltip was called but is not implemented :("),0}function TK(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("BlzGetItemTooltip was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function xK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("BlzSetItemExtendedTooltip was called but is not implemented :("),0}function EK(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("BlzGetItemExtendedTooltip was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function LK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("BlzSetItemIconPath was called but is not implemented :("),0}function IK(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("BlzGetItemIconPath was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function UK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("BlzSetUnitName was called but is not implemented :("),0}function RK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("BlzSetHeroProperName was called but is not implemented :("),0}function CK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("BlzGetUnitBaseDamage was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function MK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("BlzSetUnitBaseDamage was called but is not implemented :("),0}function BK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("BlzGetUnitDiceNumber was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function NK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("BlzSetUnitDiceNumber was called but is not implemented :("),0}function PK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("BlzGetUnitDiceSides was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function kK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("BlzSetUnitDiceSides was called but is not implemented :("),0}function OK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("BlzGetUnitAttackCooldown was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function DK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.eN)(t,3);return console.warn("BlzSetUnitAttackCooldown was called but is not implemented :("),0}function FK(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("BlzSetSpecialEffectColorByPlayer was called but is not implemented :("),0}function GK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4);return console.warn("BlzSetSpecialEffectColor was called but is not implemented :("),0}function VK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("BlzSetSpecialEffectAlpha was called but is not implemented :("),0}function KK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("BlzSetSpecialEffectScale was called but is not implemented :("),0}function HK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("BlzSetSpecialEffectPosition was called but is not implemented :("),0}function zK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("BlzSetSpecialEffectHeight was called but is not implemented :("),0}function jK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("BlzSetSpecialEffectTimeScale was called but is not implemented :("),0}function XK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("BlzSetSpecialEffectTime was called but is not implemented :("),0}function $K(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("BlzSetSpecialEffectOrientation was called but is not implemented :("),0}function JK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("BlzSetSpecialEffectYaw was called but is not implemented :("),0}function WK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("BlzSetSpecialEffectPitch was called but is not implemented :("),0}function qK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("BlzSetSpecialEffectRoll was called but is not implemented :("),0}function YK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("BlzSetSpecialEffectX was called but is not implemented :("),0}function ZK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("BlzSetSpecialEffectY was called but is not implemented :("),0}function QK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("BlzSetSpecialEffectZ was called but is not implemented :("),0}function eH(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("BlzSetSpecialEffectPositionLoc was called but is not implemented :("),0}function tH(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("BlzGetLocalSpecialEffectX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function nH(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("BlzGetLocalSpecialEffectY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function aH(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("BlzGetLocalSpecialEffectZ was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function rH(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("BlzGetUnitArmor was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function iH(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("BlzSetUnitArmor was called but is not implemented :("),0}function sH(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("BlzUnitHideAbility was called but is not implemented :("),0}function lH(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,jb.lua_toboolean)(t,3),(0,jb.lua_toboolean)(t,4);return console.warn("BlzUnitDisableAbility was called but is not implemented :("),0}function oH(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("BlzUnitCancelTimedLife was called but is not implemented :("),0}function uH(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("BlzIsUnitSelectable was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function cH(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("BlzIsUnitInvulnerable was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function dH(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("BlzUnitInterruptAttack was called but is not implemented :("),0}function hH(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("BlzGetUnitCollisionSize was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function fH(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2);return console.warn("BlzGetAbilityManaCost was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function mH(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2);return console.warn("BlzGetAbilityCooldown was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function pH(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.hs)(t,4);return console.warn("BlzSetUnitAbilityCooldown was called but is not implemented :("),0}function _H(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("BlzGetUnitAbilityCooldown was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function gH(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("BlzGetUnitAbilityCooldownRemaining was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function bH(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("BlzEndUnitAbilityCooldown was called but is not implemented :("),0}function wH(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("BlzGetUnitAbilityManaCost was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function vH(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4);return console.warn("BlzSetUnitAbilityManaCost was called but is not implemented :("),0}function AH(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("BlzGetLocalUnitZ was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function yH(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("BlzDecPlayerTechResearched was called but is not implemented :("),0}function SH(e,t){(0,$b.hs)(t,1);return console.warn("BlzSetEventDamage was called but is not implemented :("),0}function TH(e){const t=e.L;(0,jb.lua_register)(t,"ConvertRace",rv.bind(null,e)),(0,jb.lua_register)(t,"ConvertAllianceType",iv.bind(null,e)),(0,jb.lua_register)(t,"ConvertRacePref",sv.bind(null,e)),(0,jb.lua_register)(t,"ConvertIGameState",lv.bind(null,e)),(0,jb.lua_register)(t,"ConvertFGameState",ov.bind(null,e)),(0,jb.lua_register)(t,"ConvertPlayerState",uv.bind(null,e)),(0,jb.lua_register)(t,"ConvertPlayerScore",cv.bind(null,e)),(0,jb.lua_register)(t,"ConvertPlayerGameResult",dv.bind(null,e)),(0,jb.lua_register)(t,"ConvertUnitState",hv.bind(null,e)),(0,jb.lua_register)(t,"ConvertAIDifficulty",fv.bind(null,e)),(0,jb.lua_register)(t,"ConvertGameEvent",mv.bind(null,e)),(0,jb.lua_register)(t,"ConvertPlayerEvent",pv.bind(null,e)),(0,jb.lua_register)(t,"ConvertPlayerUnitEvent",_v.bind(null,e)),(0,jb.lua_register)(t,"ConvertWidgetEvent",gv.bind(null,e)),(0,jb.lua_register)(t,"ConvertDialogEvent",bv.bind(null,e)),(0,jb.lua_register)(t,"ConvertUnitEvent",wv.bind(null,e)),(0,jb.lua_register)(t,"ConvertLimitOp",vv.bind(null,e)),(0,jb.lua_register)(t,"ConvertUnitType",Av.bind(null,e)),(0,jb.lua_register)(t,"ConvertGameSpeed",yv.bind(null,e)),(0,jb.lua_register)(t,"ConvertPlacement",Sv.bind(null,e)),(0,jb.lua_register)(t,"ConvertStartLocPrio",Tv.bind(null,e)),(0,jb.lua_register)(t,"ConvertGameDifficulty",xv.bind(null,e)),(0,jb.lua_register)(t,"ConvertGameType",Ev.bind(null,e)),(0,jb.lua_register)(t,"ConvertMapFlag",Lv.bind(null,e)),(0,jb.lua_register)(t,"ConvertMapVisibility",Iv.bind(null,e)),(0,jb.lua_register)(t,"ConvertMapSetting",Uv.bind(null,e)),(0,jb.lua_register)(t,"ConvertMapDensity",Rv.bind(null,e)),(0,jb.lua_register)(t,"ConvertMapControl",Cv.bind(null,e)),(0,jb.lua_register)(t,"ConvertPlayerColor",Mv.bind(null,e)),(0,jb.lua_register)(t,"ConvertPlayerSlotState",Bv.bind(null,e)),(0,jb.lua_register)(t,"ConvertVolumeGroup",Nv.bind(null,e)),(0,jb.lua_register)(t,"ConvertCameraField",Pv.bind(null,e)),(0,jb.lua_register)(t,"ConvertBlendMode",kv.bind(null,e)),(0,jb.lua_register)(t,"ConvertRarityControl",Ov.bind(null,e)),(0,jb.lua_register)(t,"ConvertTexMapFlags",Dv.bind(null,e)),(0,jb.lua_register)(t,"ConvertFogState",Fv.bind(null,e)),(0,jb.lua_register)(t,"ConvertEffectType",Gv.bind(null,e)),(0,jb.lua_register)(t,"ConvertVersion",Vv.bind(null,e)),(0,jb.lua_register)(t,"ConvertItemType",Kv.bind(null,e)),(0,jb.lua_register)(t,"ConvertAttackType",Hv.bind(null,e)),(0,jb.lua_register)(t,"ConvertDamageType",zv.bind(null,e)),(0,jb.lua_register)(t,"ConvertWeaponType",jv.bind(null,e)),(0,jb.lua_register)(t,"ConvertSoundType",Xv.bind(null,e)),(0,jb.lua_register)(t,"ConvertPathingType",$v.bind(null,e)),(0,jb.lua_register)(t,"ConvertMouseButtonType",Jv.bind(null,e)),(0,jb.lua_register)(t,"ConvertAnimType",Wv.bind(null,e)),(0,jb.lua_register)(t,"ConvertSubAnimType",qv.bind(null,e)),(0,jb.lua_register)(t,"OrderId",Yv.bind(null,e)),(0,jb.lua_register)(t,"OrderId2String",Zv.bind(null,e)),(0,jb.lua_register)(t,"UnitId",Qv.bind(null,e)),(0,jb.lua_register)(t,"UnitId2String",eA.bind(null,e)),(0,jb.lua_register)(t,"AbilityId",tA.bind(null,e)),(0,jb.lua_register)(t,"AbilityId2String",nA.bind(null,e)),(0,jb.lua_register)(t,"GetObjectName",aA.bind(null,e)),(0,jb.lua_register)(t,"GetBJMaxPlayers",rA.bind(null,e)),(0,jb.lua_register)(t,"GetBJPlayerNeutralVictim",iA.bind(null,e)),(0,jb.lua_register)(t,"GetBJPlayerNeutralExtra",sA.bind(null,e)),(0,jb.lua_register)(t,"GetBJMaxPlayerSlots",lA.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerNeutralPassive",oA.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerNeutralAggressive",uA.bind(null,e)),(0,jb.lua_register)(t,"Deg2Rad",cA.bind(null,e)),(0,jb.lua_register)(t,"Rad2Deg",dA.bind(null,e)),(0,jb.lua_register)(t,"Sin",hA.bind(null,e)),(0,jb.lua_register)(t,"Cos",fA.bind(null,e)),(0,jb.lua_register)(t,"Tan",mA.bind(null,e)),(0,jb.lua_register)(t,"Asin",pA.bind(null,e)),(0,jb.lua_register)(t,"Acos",_A.bind(null,e)),(0,jb.lua_register)(t,"Atan",gA.bind(null,e)),(0,jb.lua_register)(t,"Atan2",bA.bind(null,e)),(0,jb.lua_register)(t,"SquareRoot",wA.bind(null,e)),(0,jb.lua_register)(t,"Pow",vA.bind(null,e)),(0,jb.lua_register)(t,"I2R",AA.bind(null,e)),(0,jb.lua_register)(t,"R2I",yA.bind(null,e)),(0,jb.lua_register)(t,"I2S",SA.bind(null,e)),(0,jb.lua_register)(t,"R2S",TA.bind(null,e)),(0,jb.lua_register)(t,"R2SW",xA.bind(null,e)),(0,jb.lua_register)(t,"S2I",EA.bind(null,e)),(0,jb.lua_register)(t,"S2R",LA.bind(null,e)),(0,jb.lua_register)(t,"GetHandleId",IA.bind(null,e)),(0,jb.lua_register)(t,"SubString",UA.bind(null,e)),(0,jb.lua_register)(t,"StringLength",RA.bind(null,e)),(0,jb.lua_register)(t,"StringCase",CA.bind(null,e)),(0,jb.lua_register)(t,"StringHash",MA.bind(null,e)),(0,jb.lua_register)(t,"GetLocalizedString",BA.bind(null,e)),(0,jb.lua_register)(t,"GetLocalizedHotkey",NA.bind(null,e)),(0,jb.lua_register)(t,"SetMapName",PA.bind(null,e)),(0,jb.lua_register)(t,"SetMapDescription",kA.bind(null,e)),(0,jb.lua_register)(t,"SetTeams",OA.bind(null,e)),(0,jb.lua_register)(t,"SetPlayers",DA.bind(null,e)),(0,jb.lua_register)(t,"DefineStartLocation",FA.bind(null,e)),(0,jb.lua_register)(t,"DefineStartLocationLoc",GA.bind(null,e)),(0,jb.lua_register)(t,"SetStartLocPrioCount",VA.bind(null,e)),(0,jb.lua_register)(t,"SetStartLocPrio",KA.bind(null,e)),(0,jb.lua_register)(t,"GetStartLocPrioSlot",HA.bind(null,e)),(0,jb.lua_register)(t,"GetStartLocPrio",zA.bind(null,e)),(0,jb.lua_register)(t,"SetGameTypeSupported",jA.bind(null,e)),(0,jb.lua_register)(t,"SetMapFlag",XA.bind(null,e)),(0,jb.lua_register)(t,"SetGamePlacement",$A.bind(null,e)),(0,jb.lua_register)(t,"SetGameSpeed",JA.bind(null,e)),(0,jb.lua_register)(t,"SetGameDifficulty",WA.bind(null,e)),(0,jb.lua_register)(t,"SetResourceDensity",qA.bind(null,e)),(0,jb.lua_register)(t,"SetCreatureDensity",YA.bind(null,e)),(0,jb.lua_register)(t,"GetTeams",ZA.bind(null,e)),(0,jb.lua_register)(t,"GetPlayers",QA.bind(null,e)),(0,jb.lua_register)(t,"IsGameTypeSupported",ey.bind(null,e)),(0,jb.lua_register)(t,"GetGameTypeSelected",ty.bind(null,e)),(0,jb.lua_register)(t,"IsMapFlagSet",ny.bind(null,e)),(0,jb.lua_register)(t,"GetGamePlacement",ay.bind(null,e)),(0,jb.lua_register)(t,"GetGameSpeed",ry.bind(null,e)),(0,jb.lua_register)(t,"GetGameDifficulty",iy.bind(null,e)),(0,jb.lua_register)(t,"GetResourceDensity",sy.bind(null,e)),(0,jb.lua_register)(t,"GetCreatureDensity",ly.bind(null,e)),(0,jb.lua_register)(t,"GetStartLocationX",oy.bind(null,e)),(0,jb.lua_register)(t,"GetStartLocationY",uy.bind(null,e)),(0,jb.lua_register)(t,"GetStartLocationLoc",cy.bind(null,e)),(0,jb.lua_register)(t,"SetPlayerTeam",dy.bind(null,e)),(0,jb.lua_register)(t,"SetPlayerStartLocation",hy.bind(null,e)),(0,jb.lua_register)(t,"ForcePlayerStartLocation",fy.bind(null,e)),(0,jb.lua_register)(t,"SetPlayerColor",my.bind(null,e)),(0,jb.lua_register)(t,"SetPlayerAlliance",py.bind(null,e)),(0,jb.lua_register)(t,"SetPlayerTaxRate",_y.bind(null,e)),(0,jb.lua_register)(t,"SetPlayerRacePreference",gy.bind(null,e)),(0,jb.lua_register)(t,"SetPlayerRaceSelectable",by.bind(null,e)),(0,jb.lua_register)(t,"SetPlayerController",wy.bind(null,e)),(0,jb.lua_register)(t,"SetPlayerName",vy.bind(null,e)),(0,jb.lua_register)(t,"SetPlayerOnScoreScreen",Ay.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerTeam",yy.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerStartLocation",Sy.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerColor",Ty.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerSelectable",xy.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerController",Ey.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerSlotState",Ly.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerTaxRate",Iy.bind(null,e)),(0,jb.lua_register)(t,"IsPlayerRacePrefSet",Uy.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerName",Ry.bind(null,e)),(0,jb.lua_register)(t,"CreateTimer",Cy.bind(null,e)),(0,jb.lua_register)(t,"DestroyTimer",My.bind(null,e)),(0,jb.lua_register)(t,"TimerStart",By.bind(null,e)),(0,jb.lua_register)(t,"TimerGetElapsed",Ny.bind(null,e)),(0,jb.lua_register)(t,"TimerGetRemaining",Py.bind(null,e)),(0,jb.lua_register)(t,"TimerGetTimeout",ky.bind(null,e)),(0,jb.lua_register)(t,"PauseTimer",Oy.bind(null,e)),(0,jb.lua_register)(t,"ResumeTimer",Dy.bind(null,e)),(0,jb.lua_register)(t,"GetExpiredTimer",Fy.bind(null,e)),(0,jb.lua_register)(t,"CreateGroup",Gy.bind(null,e)),(0,jb.lua_register)(t,"DestroyGroup",Vy.bind(null,e)),(0,jb.lua_register)(t,"GroupAddUnit",Ky.bind(null,e)),(0,jb.lua_register)(t,"GroupRemoveUnit",Hy.bind(null,e)),(0,jb.lua_register)(t,"GroupClear",zy.bind(null,e)),(0,jb.lua_register)(t,"GroupEnumUnitsOfType",jy.bind(null,e)),(0,jb.lua_register)(t,"GroupEnumUnitsOfPlayer",Xy.bind(null,e)),(0,jb.lua_register)(t,"GroupEnumUnitsOfTypeCounted",$y.bind(null,e)),(0,jb.lua_register)(t,"GroupEnumUnitsInRect",Jy.bind(null,e)),(0,jb.lua_register)(t,"GroupEnumUnitsInRectCounted",Wy.bind(null,e)),(0,jb.lua_register)(t,"GroupEnumUnitsInRange",qy.bind(null,e)),(0,jb.lua_register)(t,"GroupEnumUnitsInRangeOfLoc",Yy.bind(null,e)),(0,jb.lua_register)(t,"GroupEnumUnitsInRangeCounted",Zy.bind(null,e)),(0,jb.lua_register)(t,"GroupEnumUnitsInRangeOfLocCounted",Qy.bind(null,e)),(0,jb.lua_register)(t,"GroupEnumUnitsSelected",eS.bind(null,e)),(0,jb.lua_register)(t,"GroupImmediateOrder",tS.bind(null,e)),(0,jb.lua_register)(t,"GroupImmediateOrderById",nS.bind(null,e)),(0,jb.lua_register)(t,"GroupPointOrder",aS.bind(null,e)),(0,jb.lua_register)(t,"GroupPointOrderLoc",rS.bind(null,e)),(0,jb.lua_register)(t,"GroupPointOrderById",iS.bind(null,e)),(0,jb.lua_register)(t,"GroupPointOrderByIdLoc",sS.bind(null,e)),(0,jb.lua_register)(t,"GroupTargetOrder",lS.bind(null,e)),(0,jb.lua_register)(t,"GroupTargetOrderById",oS.bind(null,e)),(0,jb.lua_register)(t,"ForGroup",uS.bind(null,e)),(0,jb.lua_register)(t,"FirstOfGroup",cS.bind(null,e)),(0,jb.lua_register)(t,"CreateForce",dS.bind(null,e)),(0,jb.lua_register)(t,"DestroyForce",hS.bind(null,e)),(0,jb.lua_register)(t,"ForceAddPlayer",fS.bind(null,e)),(0,jb.lua_register)(t,"ForceRemovePlayer",mS.bind(null,e)),(0,jb.lua_register)(t,"ForceClear",pS.bind(null,e)),(0,jb.lua_register)(t,"ForceEnumPlayers",_S.bind(null,e)),(0,jb.lua_register)(t,"ForceEnumPlayersCounted",gS.bind(null,e)),(0,jb.lua_register)(t,"ForceEnumAllies",bS.bind(null,e)),(0,jb.lua_register)(t,"ForceEnumEnemies",wS.bind(null,e)),(0,jb.lua_register)(t,"ForForce",vS.bind(null,e)),(0,jb.lua_register)(t,"Rect",AS.bind(null,e)),(0,jb.lua_register)(t,"RectFromLoc",yS.bind(null,e)),(0,jb.lua_register)(t,"RemoveRect",SS.bind(null,e)),(0,jb.lua_register)(t,"SetRect",TS.bind(null,e)),(0,jb.lua_register)(t,"SetRectFromLoc",xS.bind(null,e)),(0,jb.lua_register)(t,"MoveRectTo",ES.bind(null,e)),(0,jb.lua_register)(t,"MoveRectToLoc",LS.bind(null,e)),(0,jb.lua_register)(t,"GetRectCenterX",IS.bind(null,e)),(0,jb.lua_register)(t,"GetRectCenterY",US.bind(null,e)),(0,jb.lua_register)(t,"GetRectMinX",RS.bind(null,e)),(0,jb.lua_register)(t,"GetRectMinY",CS.bind(null,e)),(0,jb.lua_register)(t,"GetRectMaxX",MS.bind(null,e)),(0,jb.lua_register)(t,"GetRectMaxY",BS.bind(null,e)),(0,jb.lua_register)(t,"CreateRegion",NS.bind(null,e)),(0,jb.lua_register)(t,"RemoveRegion",PS.bind(null,e)),(0,jb.lua_register)(t,"RegionAddRect",kS.bind(null,e)),(0,jb.lua_register)(t,"RegionClearRect",OS.bind(null,e)),(0,jb.lua_register)(t,"RegionAddCell",DS.bind(null,e)),(0,jb.lua_register)(t,"RegionAddCellAtLoc",FS.bind(null,e)),(0,jb.lua_register)(t,"RegionClearCell",GS.bind(null,e)),(0,jb.lua_register)(t,"RegionClearCellAtLoc",VS.bind(null,e)),(0,jb.lua_register)(t,"Location",KS.bind(null,e)),(0,jb.lua_register)(t,"RemoveLocation",HS.bind(null,e)),(0,jb.lua_register)(t,"MoveLocation",zS.bind(null,e)),(0,jb.lua_register)(t,"GetLocationX",jS.bind(null,e)),(0,jb.lua_register)(t,"GetLocationY",XS.bind(null,e)),(0,jb.lua_register)(t,"GetLocationZ",$S.bind(null,e)),(0,jb.lua_register)(t,"IsUnitInRegion",JS.bind(null,e)),(0,jb.lua_register)(t,"IsPointInRegion",WS.bind(null,e)),(0,jb.lua_register)(t,"IsLocationInRegion",qS.bind(null,e)),(0,jb.lua_register)(t,"GetWorldBounds",YS.bind(null,e)),(0,jb.lua_register)(t,"CreateTrigger",ZS.bind(null,e)),(0,jb.lua_register)(t,"DestroyTrigger",QS.bind(null,e)),(0,jb.lua_register)(t,"ResetTrigger",eT.bind(null,e)),(0,jb.lua_register)(t,"EnableTrigger",tT.bind(null,e)),(0,jb.lua_register)(t,"DisableTrigger",nT.bind(null,e)),(0,jb.lua_register)(t,"IsTriggerEnabled",aT.bind(null,e)),(0,jb.lua_register)(t,"TriggerWaitOnSleeps",rT.bind(null,e)),(0,jb.lua_register)(t,"IsTriggerWaitOnSleeps",iT.bind(null,e)),(0,jb.lua_register)(t,"GetFilterUnit",sT.bind(null,e)),(0,jb.lua_register)(t,"GetEnumUnit",lT.bind(null,e)),(0,jb.lua_register)(t,"GetFilterDestructable",oT.bind(null,e)),(0,jb.lua_register)(t,"GetEnumDestructable",uT.bind(null,e)),(0,jb.lua_register)(t,"GetFilterItem",cT.bind(null,e)),(0,jb.lua_register)(t,"GetEnumItem",dT.bind(null,e)),(0,jb.lua_register)(t,"GetFilterPlayer",hT.bind(null,e)),(0,jb.lua_register)(t,"GetEnumPlayer",fT.bind(null,e)),(0,jb.lua_register)(t,"GetTriggeringTrigger",mT.bind(null,e)),(0,jb.lua_register)(t,"GetTriggerEventId",pT.bind(null,e)),(0,jb.lua_register)(t,"GetTriggerEvalCount",_T.bind(null,e)),(0,jb.lua_register)(t,"GetTriggerExecCount",gT.bind(null,e)),(0,jb.lua_register)(t,"ExecuteFunc",bT.bind(null,e)),(0,jb.lua_register)(t,"And",wT.bind(null,e)),(0,jb.lua_register)(t,"Or",vT.bind(null,e)),(0,jb.lua_register)(t,"Not",AT.bind(null,e)),(0,jb.lua_register)(t,"Condition",yT.bind(null,e)),(0,jb.lua_register)(t,"DestroyCondition",ST.bind(null,e)),(0,jb.lua_register)(t,"Filter",TT.bind(null,e)),(0,jb.lua_register)(t,"DestroyFilter",xT.bind(null,e)),(0,jb.lua_register)(t,"DestroyBoolExpr",ET.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterVariableEvent",LT.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterTimerEvent",IT.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterTimerExpireEvent",UT.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterGameStateEvent",RT.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterDialogEvent",CT.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterDialogButtonEvent",MT.bind(null,e)),(0,jb.lua_register)(t,"GetEventGameState",BT.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterGameEvent",NT.bind(null,e)),(0,jb.lua_register)(t,"GetWinningPlayer",PT.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterEnterRegion",kT.bind(null,e)),(0,jb.lua_register)(t,"GetTriggeringRegion",OT.bind(null,e)),(0,jb.lua_register)(t,"GetEnteringUnit",DT.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterLeaveRegion",FT.bind(null,e)),(0,jb.lua_register)(t,"GetLeavingUnit",GT.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterTrackableHitEvent",VT.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterTrackableTrackEvent",KT.bind(null,e)),(0,jb.lua_register)(t,"GetTriggeringTrackable",HT.bind(null,e)),(0,jb.lua_register)(t,"GetClickedButton",zT.bind(null,e)),(0,jb.lua_register)(t,"GetClickedDialog",jT.bind(null,e)),(0,jb.lua_register)(t,"GetTournamentFinishSoonTimeRemaining",XT.bind(null,e)),(0,jb.lua_register)(t,"GetTournamentFinishNowRule",$T.bind(null,e)),(0,jb.lua_register)(t,"GetTournamentFinishNowPlayer",JT.bind(null,e)),(0,jb.lua_register)(t,"GetTournamentScore",WT.bind(null,e)),(0,jb.lua_register)(t,"GetSaveBasicFilename",qT.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterPlayerEvent",YT.bind(null,e)),(0,jb.lua_register)(t,"GetTriggerPlayer",ZT.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterPlayerUnitEvent",QT.bind(null,e)),(0,jb.lua_register)(t,"GetLevelingUnit",ex.bind(null,e)),(0,jb.lua_register)(t,"GetLearningUnit",tx.bind(null,e)),(0,jb.lua_register)(t,"GetLearnedSkill",nx.bind(null,e)),(0,jb.lua_register)(t,"GetLearnedSkillLevel",ax.bind(null,e)),(0,jb.lua_register)(t,"GetRevivableUnit",rx.bind(null,e)),(0,jb.lua_register)(t,"GetRevivingUnit",ix.bind(null,e)),(0,jb.lua_register)(t,"GetAttacker",sx.bind(null,e)),(0,jb.lua_register)(t,"GetRescuer",lx.bind(null,e)),(0,jb.lua_register)(t,"GetDyingUnit",ox.bind(null,e)),(0,jb.lua_register)(t,"GetKillingUnit",ux.bind(null,e)),(0,jb.lua_register)(t,"GetDecayingUnit",cx.bind(null,e)),(0,jb.lua_register)(t,"GetConstructingStructure",dx.bind(null,e)),(0,jb.lua_register)(t,"GetCancelledStructure",hx.bind(null,e)),(0,jb.lua_register)(t,"GetConstructedStructure",fx.bind(null,e)),(0,jb.lua_register)(t,"GetResearchingUnit",mx.bind(null,e)),(0,jb.lua_register)(t,"GetResearched",px.bind(null,e)),(0,jb.lua_register)(t,"GetTrainedUnitType",_x.bind(null,e)),(0,jb.lua_register)(t,"GetTrainedUnit",gx.bind(null,e)),(0,jb.lua_register)(t,"GetDetectedUnit",bx.bind(null,e)),(0,jb.lua_register)(t,"GetSummoningUnit",wx.bind(null,e)),(0,jb.lua_register)(t,"GetSummonedUnit",vx.bind(null,e)),(0,jb.lua_register)(t,"GetTransportUnit",Ax.bind(null,e)),(0,jb.lua_register)(t,"GetLoadedUnit",yx.bind(null,e)),(0,jb.lua_register)(t,"GetSellingUnit",Sx.bind(null,e)),(0,jb.lua_register)(t,"GetSoldUnit",Tx.bind(null,e)),(0,jb.lua_register)(t,"GetBuyingUnit",xx.bind(null,e)),(0,jb.lua_register)(t,"GetSoldItem",Ex.bind(null,e)),(0,jb.lua_register)(t,"GetChangingUnit",Lx.bind(null,e)),(0,jb.lua_register)(t,"GetChangingUnitPrevOwner",Ix.bind(null,e)),(0,jb.lua_register)(t,"GetManipulatingUnit",Ux.bind(null,e)),(0,jb.lua_register)(t,"GetManipulatedItem",Rx.bind(null,e)),(0,jb.lua_register)(t,"GetOrderedUnit",Cx.bind(null,e)),(0,jb.lua_register)(t,"GetIssuedOrderId",Mx.bind(null,e)),(0,jb.lua_register)(t,"GetOrderPointX",Bx.bind(null,e)),(0,jb.lua_register)(t,"GetOrderPointY",Nx.bind(null,e)),(0,jb.lua_register)(t,"GetOrderPointLoc",Px.bind(null,e)),(0,jb.lua_register)(t,"GetOrderTarget",kx.bind(null,e)),(0,jb.lua_register)(t,"GetOrderTargetDestructable",Ox.bind(null,e)),(0,jb.lua_register)(t,"GetOrderTargetItem",Dx.bind(null,e)),(0,jb.lua_register)(t,"GetOrderTargetUnit",Fx.bind(null,e)),(0,jb.lua_register)(t,"GetSpellAbilityUnit",Gx.bind(null,e)),(0,jb.lua_register)(t,"GetSpellAbilityId",Vx.bind(null,e)),(0,jb.lua_register)(t,"GetSpellAbility",Kx.bind(null,e)),(0,jb.lua_register)(t,"GetSpellTargetLoc",Hx.bind(null,e)),(0,jb.lua_register)(t,"GetSpellTargetX",zx.bind(null,e)),(0,jb.lua_register)(t,"GetSpellTargetY",jx.bind(null,e)),(0,jb.lua_register)(t,"GetSpellTargetDestructable",Xx.bind(null,e)),(0,jb.lua_register)(t,"GetSpellTargetItem",$x.bind(null,e)),(0,jb.lua_register)(t,"GetSpellTargetUnit",Jx.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterPlayerAllianceChange",Wx.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterPlayerStateEvent",qx.bind(null,e)),(0,jb.lua_register)(t,"GetEventPlayerState",Yx.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterPlayerChatEvent",Zx.bind(null,e)),(0,jb.lua_register)(t,"GetEventPlayerChatString",Qx.bind(null,e)),(0,jb.lua_register)(t,"GetEventPlayerChatStringMatched",eE.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterDeathEvent",tE.bind(null,e)),(0,jb.lua_register)(t,"GetTriggerUnit",nE.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterUnitStateEvent",aE.bind(null,e)),(0,jb.lua_register)(t,"GetEventUnitState",rE.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterUnitEvent",iE.bind(null,e)),(0,jb.lua_register)(t,"GetEventDamage",sE.bind(null,e)),(0,jb.lua_register)(t,"GetEventDamageSource",lE.bind(null,e)),(0,jb.lua_register)(t,"GetEventDetectingPlayer",oE.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterFilterUnitEvent",uE.bind(null,e)),(0,jb.lua_register)(t,"GetEventTargetUnit",cE.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterUnitInRange",dE.bind(null,e)),(0,jb.lua_register)(t,"TriggerAddCondition",hE.bind(null,e)),(0,jb.lua_register)(t,"TriggerRemoveCondition",fE.bind(null,e)),(0,jb.lua_register)(t,"TriggerClearConditions",mE.bind(null,e)),(0,jb.lua_register)(t,"TriggerAddAction",pE.bind(null,e)),(0,jb.lua_register)(t,"TriggerRemoveAction",_E.bind(null,e)),(0,jb.lua_register)(t,"TriggerClearActions",gE.bind(null,e)),(0,jb.lua_register)(t,"TriggerSleepAction",bE.bind(null,e)),(0,jb.lua_register)(t,"TriggerWaitForSound",wE.bind(null,e)),(0,jb.lua_register)(t,"TriggerEvaluate",vE.bind(null,e)),(0,jb.lua_register)(t,"TriggerExecute",AE.bind(null,e)),(0,jb.lua_register)(t,"TriggerExecuteWait",yE.bind(null,e)),(0,jb.lua_register)(t,"TriggerSyncStart",SE.bind(null,e)),(0,jb.lua_register)(t,"TriggerSyncReady",TE.bind(null,e)),(0,jb.lua_register)(t,"GetWidgetLife",xE.bind(null,e)),(0,jb.lua_register)(t,"SetWidgetLife",EE.bind(null,e)),(0,jb.lua_register)(t,"GetWidgetX",LE.bind(null,e)),(0,jb.lua_register)(t,"GetWidgetY",IE.bind(null,e)),(0,jb.lua_register)(t,"GetTriggerWidget",UE.bind(null,e)),(0,jb.lua_register)(t,"CreateDestructable",RE.bind(null,e)),(0,jb.lua_register)(t,"CreateDestructableZ",CE.bind(null,e)),(0,jb.lua_register)(t,"CreateDeadDestructable",ME.bind(null,e)),(0,jb.lua_register)(t,"CreateDeadDestructableZ",BE.bind(null,e)),(0,jb.lua_register)(t,"RemoveDestructable",NE.bind(null,e)),(0,jb.lua_register)(t,"KillDestructable",PE.bind(null,e)),(0,jb.lua_register)(t,"SetDestructableInvulnerable",kE.bind(null,e)),(0,jb.lua_register)(t,"IsDestructableInvulnerable",OE.bind(null,e)),(0,jb.lua_register)(t,"EnumDestructablesInRect",DE.bind(null,e)),(0,jb.lua_register)(t,"GetDestructableTypeId",FE.bind(null,e)),(0,jb.lua_register)(t,"GetDestructableX",GE.bind(null,e)),(0,jb.lua_register)(t,"GetDestructableY",VE.bind(null,e)),(0,jb.lua_register)(t,"SetDestructableLife",KE.bind(null,e)),(0,jb.lua_register)(t,"GetDestructableLife",HE.bind(null,e)),(0,jb.lua_register)(t,"SetDestructableMaxLife",zE.bind(null,e)),(0,jb.lua_register)(t,"GetDestructableMaxLife",jE.bind(null,e)),(0,jb.lua_register)(t,"DestructableRestoreLife",XE.bind(null,e)),(0,jb.lua_register)(t,"QueueDestructableAnimation",$E.bind(null,e)),(0,jb.lua_register)(t,"SetDestructableAnimation",JE.bind(null,e)),(0,jb.lua_register)(t,"SetDestructableAnimationSpeed",WE.bind(null,e)),(0,jb.lua_register)(t,"ShowDestructable",qE.bind(null,e)),(0,jb.lua_register)(t,"GetDestructableOccluderHeight",YE.bind(null,e)),(0,jb.lua_register)(t,"SetDestructableOccluderHeight",ZE.bind(null,e)),(0,jb.lua_register)(t,"GetDestructableName",QE.bind(null,e)),(0,jb.lua_register)(t,"GetTriggerDestructable",eL.bind(null,e)),(0,jb.lua_register)(t,"CreateItem",tL.bind(null,e)),(0,jb.lua_register)(t,"RemoveItem",nL.bind(null,e)),(0,jb.lua_register)(t,"GetItemPlayer",aL.bind(null,e)),(0,jb.lua_register)(t,"GetItemTypeId",rL.bind(null,e)),(0,jb.lua_register)(t,"GetItemX",iL.bind(null,e)),(0,jb.lua_register)(t,"GetItemY",sL.bind(null,e)),(0,jb.lua_register)(t,"SetItemPosition",lL.bind(null,e)),(0,jb.lua_register)(t,"SetItemDropOnDeath",oL.bind(null,e)),(0,jb.lua_register)(t,"SetItemDroppable",uL.bind(null,e)),(0,jb.lua_register)(t,"SetItemPawnable",cL.bind(null,e)),(0,jb.lua_register)(t,"SetItemPlayer",dL.bind(null,e)),(0,jb.lua_register)(t,"SetItemInvulnerable",hL.bind(null,e)),(0,jb.lua_register)(t,"IsItemInvulnerable",fL.bind(null,e)),(0,jb.lua_register)(t,"SetItemVisible",mL.bind(null,e)),(0,jb.lua_register)(t,"IsItemVisible",pL.bind(null,e)),(0,jb.lua_register)(t,"IsItemOwned",_L.bind(null,e)),(0,jb.lua_register)(t,"IsItemPowerup",gL.bind(null,e)),(0,jb.lua_register)(t,"IsItemSellable",bL.bind(null,e)),(0,jb.lua_register)(t,"IsItemPawnable",wL.bind(null,e)),(0,jb.lua_register)(t,"IsItemIdPowerup",vL.bind(null,e)),(0,jb.lua_register)(t,"IsItemIdSellable",AL.bind(null,e)),(0,jb.lua_register)(t,"IsItemIdPawnable",yL.bind(null,e)),(0,jb.lua_register)(t,"EnumItemsInRect",SL.bind(null,e)),(0,jb.lua_register)(t,"GetItemLevel",TL.bind(null,e)),(0,jb.lua_register)(t,"GetItemType",xL.bind(null,e)),(0,jb.lua_register)(t,"SetItemDropID",EL.bind(null,e)),(0,jb.lua_register)(t,"GetItemName",LL.bind(null,e)),(0,jb.lua_register)(t,"GetItemCharges",IL.bind(null,e)),(0,jb.lua_register)(t,"SetItemCharges",UL.bind(null,e)),(0,jb.lua_register)(t,"GetItemUserData",RL.bind(null,e)),(0,jb.lua_register)(t,"SetItemUserData",CL.bind(null,e)),(0,jb.lua_register)(t,"CreateUnit",ML.bind(null,e)),(0,jb.lua_register)(t,"CreateUnitByName",BL.bind(null,e)),(0,jb.lua_register)(t,"CreateUnitAtLoc",NL.bind(null,e)),(0,jb.lua_register)(t,"CreateUnitAtLocByName",PL.bind(null,e)),(0,jb.lua_register)(t,"CreateCorpse",kL.bind(null,e)),(0,jb.lua_register)(t,"KillUnit",OL.bind(null,e)),(0,jb.lua_register)(t,"RemoveUnit",DL.bind(null,e)),(0,jb.lua_register)(t,"ShowUnit",FL.bind(null,e)),(0,jb.lua_register)(t,"SetUnitState",GL.bind(null,e)),(0,jb.lua_register)(t,"SetUnitX",VL.bind(null,e)),(0,jb.lua_register)(t,"SetUnitY",KL.bind(null,e)),(0,jb.lua_register)(t,"SetUnitPosition",HL.bind(null,e)),(0,jb.lua_register)(t,"SetUnitPositionLoc",zL.bind(null,e)),(0,jb.lua_register)(t,"SetUnitFacing",jL.bind(null,e)),(0,jb.lua_register)(t,"SetUnitFacingTimed",XL.bind(null,e)),(0,jb.lua_register)(t,"SetUnitMoveSpeed",$L.bind(null,e)),(0,jb.lua_register)(t,"SetUnitFlyHeight",JL.bind(null,e)),(0,jb.lua_register)(t,"SetUnitTurnSpeed",WL.bind(null,e)),(0,jb.lua_register)(t,"SetUnitPropWindow",qL.bind(null,e)),(0,jb.lua_register)(t,"SetUnitAcquireRange",YL.bind(null,e)),(0,jb.lua_register)(t,"SetUnitCreepGuard",ZL.bind(null,e)),(0,jb.lua_register)(t,"GetUnitAcquireRange",QL.bind(null,e)),(0,jb.lua_register)(t,"GetUnitTurnSpeed",eI.bind(null,e)),(0,jb.lua_register)(t,"GetUnitPropWindow",tI.bind(null,e)),(0,jb.lua_register)(t,"GetUnitFlyHeight",nI.bind(null,e)),(0,jb.lua_register)(t,"GetUnitDefaultAcquireRange",aI.bind(null,e)),(0,jb.lua_register)(t,"GetUnitDefaultTurnSpeed",rI.bind(null,e)),(0,jb.lua_register)(t,"GetUnitDefaultPropWindow",iI.bind(null,e)),(0,jb.lua_register)(t,"GetUnitDefaultFlyHeight",sI.bind(null,e)),(0,jb.lua_register)(t,"SetUnitOwner",lI.bind(null,e)),(0,jb.lua_register)(t,"SetUnitColor",oI.bind(null,e)),(0,jb.lua_register)(t,"SetUnitScale",uI.bind(null,e)),(0,jb.lua_register)(t,"SetUnitTimeScale",cI.bind(null,e)),(0,jb.lua_register)(t,"SetUnitBlendTime",dI.bind(null,e)),(0,jb.lua_register)(t,"SetUnitVertexColor",hI.bind(null,e)),(0,jb.lua_register)(t,"QueueUnitAnimation",fI.bind(null,e)),(0,jb.lua_register)(t,"SetUnitAnimation",mI.bind(null,e)),(0,jb.lua_register)(t,"SetUnitAnimationByIndex",pI.bind(null,e)),(0,jb.lua_register)(t,"SetUnitAnimationWithRarity",_I.bind(null,e)),(0,jb.lua_register)(t,"AddUnitAnimationProperties",gI.bind(null,e)),(0,jb.lua_register)(t,"SetUnitLookAt",bI.bind(null,e)),(0,jb.lua_register)(t,"ResetUnitLookAt",wI.bind(null,e)),(0,jb.lua_register)(t,"SetUnitRescuable",vI.bind(null,e)),(0,jb.lua_register)(t,"SetUnitRescueRange",AI.bind(null,e)),(0,jb.lua_register)(t,"SetHeroStr",yI.bind(null,e)),(0,jb.lua_register)(t,"SetHeroAgi",SI.bind(null,e)),(0,jb.lua_register)(t,"SetHeroInt",TI.bind(null,e)),(0,jb.lua_register)(t,"GetHeroStr",xI.bind(null,e)),(0,jb.lua_register)(t,"GetHeroAgi",EI.bind(null,e)),(0,jb.lua_register)(t,"GetHeroInt",LI.bind(null,e)),(0,jb.lua_register)(t,"UnitStripHeroLevel",II.bind(null,e)),(0,jb.lua_register)(t,"GetHeroXP",UI.bind(null,e)),(0,jb.lua_register)(t,"SetHeroXP",RI.bind(null,e)),(0,jb.lua_register)(t,"GetHeroSkillPoints",CI.bind(null,e)),(0,jb.lua_register)(t,"UnitModifySkillPoints",MI.bind(null,e)),(0,jb.lua_register)(t,"AddHeroXP",BI.bind(null,e)),(0,jb.lua_register)(t,"SetHeroLevel",NI.bind(null,e)),(0,jb.lua_register)(t,"GetHeroLevel",PI.bind(null,e)),(0,jb.lua_register)(t,"GetUnitLevel",kI.bind(null,e)),(0,jb.lua_register)(t,"GetHeroProperName",OI.bind(null,e)),(0,jb.lua_register)(t,"SuspendHeroXP",DI.bind(null,e)),(0,jb.lua_register)(t,"IsSuspendedXP",FI.bind(null,e)),(0,jb.lua_register)(t,"SelectHeroSkill",GI.bind(null,e)),(0,jb.lua_register)(t,"GetUnitAbilityLevel",VI.bind(null,e)),(0,jb.lua_register)(t,"DecUnitAbilityLevel",KI.bind(null,e)),(0,jb.lua_register)(t,"IncUnitAbilityLevel",HI.bind(null,e)),(0,jb.lua_register)(t,"SetUnitAbilityLevel",zI.bind(null,e)),(0,jb.lua_register)(t,"ReviveHero",jI.bind(null,e)),(0,jb.lua_register)(t,"ReviveHeroLoc",XI.bind(null,e)),(0,jb.lua_register)(t,"SetUnitExploded",$I.bind(null,e)),(0,jb.lua_register)(t,"SetUnitInvulnerable",JI.bind(null,e)),(0,jb.lua_register)(t,"PauseUnit",WI.bind(null,e)),(0,jb.lua_register)(t,"IsUnitPaused",qI.bind(null,e)),(0,jb.lua_register)(t,"SetUnitPathing",YI.bind(null,e)),(0,jb.lua_register)(t,"ClearSelection",ZI.bind(null,e)),(0,jb.lua_register)(t,"SelectUnit",QI.bind(null,e)),(0,jb.lua_register)(t,"GetUnitPointValue",eU.bind(null,e)),(0,jb.lua_register)(t,"GetUnitPointValueByType",tU.bind(null,e)),(0,jb.lua_register)(t,"UnitAddItem",nU.bind(null,e)),(0,jb.lua_register)(t,"UnitAddItemById",aU.bind(null,e)),(0,jb.lua_register)(t,"UnitAddItemToSlotById",rU.bind(null,e)),(0,jb.lua_register)(t,"UnitRemoveItem",iU.bind(null,e)),(0,jb.lua_register)(t,"UnitRemoveItemFromSlot",sU.bind(null,e)),(0,jb.lua_register)(t,"UnitHasItem",lU.bind(null,e)),(0,jb.lua_register)(t,"UnitItemInSlot",oU.bind(null,e)),(0,jb.lua_register)(t,"UnitInventorySize",uU.bind(null,e)),(0,jb.lua_register)(t,"UnitDropItemPoint",cU.bind(null,e)),(0,jb.lua_register)(t,"UnitDropItemSlot",dU.bind(null,e)),(0,jb.lua_register)(t,"UnitDropItemTarget",hU.bind(null,e)),(0,jb.lua_register)(t,"UnitUseItem",fU.bind(null,e)),(0,jb.lua_register)(t,"UnitUseItemPoint",mU.bind(null,e)),(0,jb.lua_register)(t,"UnitUseItemTarget",pU.bind(null,e)),(0,jb.lua_register)(t,"GetUnitX",_U.bind(null,e)),(0,jb.lua_register)(t,"GetUnitY",gU.bind(null,e)),(0,jb.lua_register)(t,"GetUnitLoc",bU.bind(null,e)),(0,jb.lua_register)(t,"GetUnitFacing",wU.bind(null,e)),(0,jb.lua_register)(t,"GetUnitMoveSpeed",vU.bind(null,e)),(0,jb.lua_register)(t,"GetUnitDefaultMoveSpeed",AU.bind(null,e)),(0,jb.lua_register)(t,"GetUnitState",yU.bind(null,e)),(0,jb.lua_register)(t,"GetOwningPlayer",SU.bind(null,e)),(0,jb.lua_register)(t,"GetUnitTypeId",TU.bind(null,e)),(0,jb.lua_register)(t,"GetUnitRace",xU.bind(null,e)),(0,jb.lua_register)(t,"GetUnitName",EU.bind(null,e)),(0,jb.lua_register)(t,"GetUnitFoodUsed",LU.bind(null,e)),(0,jb.lua_register)(t,"GetUnitFoodMade",IU.bind(null,e)),(0,jb.lua_register)(t,"GetFoodMade",UU.bind(null,e)),(0,jb.lua_register)(t,"GetFoodUsed",RU.bind(null,e)),(0,jb.lua_register)(t,"SetUnitUseFood",CU.bind(null,e)),(0,jb.lua_register)(t,"GetUnitRallyPoint",MU.bind(null,e)),(0,jb.lua_register)(t,"GetUnitRallyUnit",BU.bind(null,e)),(0,jb.lua_register)(t,"GetUnitRallyDestructable",NU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitInGroup",PU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitInForce",kU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitOwnedByPlayer",OU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitAlly",DU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitEnemy",FU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitVisible",GU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitDetected",VU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitInvisible",KU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitFogged",HU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitMasked",zU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitSelected",jU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitRace",XU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitType",$U.bind(null,e)),(0,jb.lua_register)(t,"IsUnit",JU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitInRange",WU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitInRangeXY",qU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitInRangeLoc",YU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitHidden",ZU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitIllusion",QU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitInTransport",eR.bind(null,e)),(0,jb.lua_register)(t,"IsUnitLoaded",tR.bind(null,e)),(0,jb.lua_register)(t,"IsHeroUnitId",nR.bind(null,e)),(0,jb.lua_register)(t,"IsUnitIdType",aR.bind(null,e)),(0,jb.lua_register)(t,"UnitShareVision",rR.bind(null,e)),(0,jb.lua_register)(t,"UnitSuspendDecay",iR.bind(null,e)),(0,jb.lua_register)(t,"UnitAddType",sR.bind(null,e)),(0,jb.lua_register)(t,"UnitRemoveType",lR.bind(null,e)),(0,jb.lua_register)(t,"UnitAddAbility",oR.bind(null,e)),(0,jb.lua_register)(t,"UnitRemoveAbility",uR.bind(null,e)),(0,jb.lua_register)(t,"UnitMakeAbilityPermanent",cR.bind(null,e)),(0,jb.lua_register)(t,"UnitRemoveBuffs",dR.bind(null,e)),(0,jb.lua_register)(t,"UnitRemoveBuffsEx",hR.bind(null,e)),(0,jb.lua_register)(t,"UnitHasBuffsEx",fR.bind(null,e)),(0,jb.lua_register)(t,"UnitCountBuffsEx",mR.bind(null,e)),(0,jb.lua_register)(t,"UnitAddSleep",pR.bind(null,e)),(0,jb.lua_register)(t,"UnitCanSleep",_R.bind(null,e)),(0,jb.lua_register)(t,"UnitAddSleepPerm",gR.bind(null,e)),(0,jb.lua_register)(t,"UnitCanSleepPerm",bR.bind(null,e)),(0,jb.lua_register)(t,"UnitIsSleeping",wR.bind(null,e)),(0,jb.lua_register)(t,"UnitWakeUp",vR.bind(null,e)),(0,jb.lua_register)(t,"UnitApplyTimedLife",AR.bind(null,e)),(0,jb.lua_register)(t,"UnitIgnoreAlarm",yR.bind(null,e)),(0,jb.lua_register)(t,"UnitIgnoreAlarmToggled",SR.bind(null,e)),(0,jb.lua_register)(t,"UnitResetCooldown",TR.bind(null,e)),(0,jb.lua_register)(t,"UnitSetConstructionProgress",xR.bind(null,e)),(0,jb.lua_register)(t,"UnitSetUpgradeProgress",ER.bind(null,e)),(0,jb.lua_register)(t,"UnitPauseTimedLife",LR.bind(null,e)),(0,jb.lua_register)(t,"UnitSetUsesAltIcon",IR.bind(null,e)),(0,jb.lua_register)(t,"UnitDamagePoint",UR.bind(null,e)),(0,jb.lua_register)(t,"UnitDamageTarget",RR.bind(null,e)),(0,jb.lua_register)(t,"IssueImmediateOrder",CR.bind(null,e)),(0,jb.lua_register)(t,"IssueImmediateOrderById",MR.bind(null,e)),(0,jb.lua_register)(t,"IssuePointOrder",BR.bind(null,e)),(0,jb.lua_register)(t,"IssuePointOrderLoc",NR.bind(null,e)),(0,jb.lua_register)(t,"IssuePointOrderById",PR.bind(null,e)),(0,jb.lua_register)(t,"IssuePointOrderByIdLoc",kR.bind(null,e)),(0,jb.lua_register)(t,"IssueTargetOrder",OR.bind(null,e)),(0,jb.lua_register)(t,"IssueTargetOrderById",DR.bind(null,e)),(0,jb.lua_register)(t,"IssueInstantPointOrder",FR.bind(null,e)),(0,jb.lua_register)(t,"IssueInstantPointOrderById",GR.bind(null,e)),(0,jb.lua_register)(t,"IssueInstantTargetOrder",VR.bind(null,e)),(0,jb.lua_register)(t,"IssueInstantTargetOrderById",KR.bind(null,e)),(0,jb.lua_register)(t,"IssueBuildOrder",HR.bind(null,e)),(0,jb.lua_register)(t,"IssueBuildOrderById",zR.bind(null,e)),(0,jb.lua_register)(t,"IssueNeutralImmediateOrder",jR.bind(null,e)),(0,jb.lua_register)(t,"IssueNeutralImmediateOrderById",XR.bind(null,e)),(0,jb.lua_register)(t,"IssueNeutralPointOrder",$R.bind(null,e)),(0,jb.lua_register)(t,"IssueNeutralPointOrderById",JR.bind(null,e)),(0,jb.lua_register)(t,"IssueNeutralTargetOrder",WR.bind(null,e)),(0,jb.lua_register)(t,"IssueNeutralTargetOrderById",qR.bind(null,e)),(0,jb.lua_register)(t,"GetUnitCurrentOrder",YR.bind(null,e)),(0,jb.lua_register)(t,"SetResourceAmount",ZR.bind(null,e)),(0,jb.lua_register)(t,"AddResourceAmount",QR.bind(null,e)),(0,jb.lua_register)(t,"GetResourceAmount",eC.bind(null,e)),(0,jb.lua_register)(t,"WaygateGetDestinationX",tC.bind(null,e)),(0,jb.lua_register)(t,"WaygateGetDestinationY",nC.bind(null,e)),(0,jb.lua_register)(t,"WaygateSetDestination",aC.bind(null,e)),(0,jb.lua_register)(t,"WaygateActivate",rC.bind(null,e)),(0,jb.lua_register)(t,"WaygateIsActive",iC.bind(null,e)),(0,jb.lua_register)(t,"AddItemToAllStock",sC.bind(null,e)),(0,jb.lua_register)(t,"AddItemToStock",lC.bind(null,e)),(0,jb.lua_register)(t,"AddUnitToAllStock",oC.bind(null,e)),(0,jb.lua_register)(t,"AddUnitToStock",uC.bind(null,e)),(0,jb.lua_register)(t,"RemoveItemFromAllStock",cC.bind(null,e)),(0,jb.lua_register)(t,"RemoveItemFromStock",dC.bind(null,e)),(0,jb.lua_register)(t,"RemoveUnitFromAllStock",hC.bind(null,e)),(0,jb.lua_register)(t,"RemoveUnitFromStock",fC.bind(null,e)),(0,jb.lua_register)(t,"SetAllItemTypeSlots",mC.bind(null,e)),(0,jb.lua_register)(t,"SetAllUnitTypeSlots",pC.bind(null,e)),(0,jb.lua_register)(t,"SetItemTypeSlots",_C.bind(null,e)),(0,jb.lua_register)(t,"SetUnitTypeSlots",gC.bind(null,e)),(0,jb.lua_register)(t,"GetUnitUserData",bC.bind(null,e)),(0,jb.lua_register)(t,"SetUnitUserData",wC.bind(null,e)),(0,jb.lua_register)(t,"Player",vC.bind(null,e)),(0,jb.lua_register)(t,"GetLocalPlayer",AC.bind(null,e)),(0,jb.lua_register)(t,"IsPlayerAlly",yC.bind(null,e)),(0,jb.lua_register)(t,"IsPlayerEnemy",SC.bind(null,e)),(0,jb.lua_register)(t,"IsPlayerInForce",TC.bind(null,e)),(0,jb.lua_register)(t,"IsPlayerObserver",xC.bind(null,e)),(0,jb.lua_register)(t,"IsVisibleToPlayer",EC.bind(null,e)),(0,jb.lua_register)(t,"IsLocationVisibleToPlayer",LC.bind(null,e)),(0,jb.lua_register)(t,"IsFoggedToPlayer",IC.bind(null,e)),(0,jb.lua_register)(t,"IsLocationFoggedToPlayer",UC.bind(null,e)),(0,jb.lua_register)(t,"IsMaskedToPlayer",RC.bind(null,e)),(0,jb.lua_register)(t,"IsLocationMaskedToPlayer",CC.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerRace",MC.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerId",BC.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerUnitCount",NC.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerTypedUnitCount",PC.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerStructureCount",kC.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerState",OC.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerScore",DC.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerAlliance",FC.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerHandicap",GC.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerHandicapXP",VC.bind(null,e)),(0,jb.lua_register)(t,"SetPlayerHandicap",KC.bind(null,e)),(0,jb.lua_register)(t,"SetPlayerHandicapXP",HC.bind(null,e)),(0,jb.lua_register)(t,"SetPlayerTechMaxAllowed",zC.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerTechMaxAllowed",jC.bind(null,e)),(0,jb.lua_register)(t,"AddPlayerTechResearched",XC.bind(null,e)),(0,jb.lua_register)(t,"SetPlayerTechResearched",$C.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerTechResearched",JC.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerTechCount",WC.bind(null,e)),(0,jb.lua_register)(t,"SetPlayerUnitsOwner",qC.bind(null,e)),(0,jb.lua_register)(t,"CripplePlayer",YC.bind(null,e)),(0,jb.lua_register)(t,"SetPlayerAbilityAvailable",ZC.bind(null,e)),(0,jb.lua_register)(t,"SetPlayerState",QC.bind(null,e)),(0,jb.lua_register)(t,"RemovePlayer",eM.bind(null,e)),(0,jb.lua_register)(t,"CachePlayerHeroData",tM.bind(null,e)),(0,jb.lua_register)(t,"SetFogStateRect",nM.bind(null,e)),(0,jb.lua_register)(t,"SetFogStateRadius",aM.bind(null,e)),(0,jb.lua_register)(t,"SetFogStateRadiusLoc",rM.bind(null,e)),(0,jb.lua_register)(t,"FogMaskEnable",iM.bind(null,e)),(0,jb.lua_register)(t,"IsFogMaskEnabled",sM.bind(null,e)),(0,jb.lua_register)(t,"FogEnable",lM.bind(null,e)),(0,jb.lua_register)(t,"IsFogEnabled",oM.bind(null,e)),(0,jb.lua_register)(t,"CreateFogModifierRect",uM.bind(null,e)),(0,jb.lua_register)(t,"CreateFogModifierRadius",cM.bind(null,e)),(0,jb.lua_register)(t,"CreateFogModifierRadiusLoc",dM.bind(null,e)),(0,jb.lua_register)(t,"DestroyFogModifier",hM.bind(null,e)),(0,jb.lua_register)(t,"FogModifierStart",fM.bind(null,e)),(0,jb.lua_register)(t,"FogModifierStop",mM.bind(null,e)),(0,jb.lua_register)(t,"VersionGet",pM.bind(null,e)),(0,jb.lua_register)(t,"VersionCompatible",_M.bind(null,e)),(0,jb.lua_register)(t,"VersionSupported",gM.bind(null,e)),(0,jb.lua_register)(t,"EndGame",bM.bind(null,e)),(0,jb.lua_register)(t,"ChangeLevel",wM.bind(null,e)),(0,jb.lua_register)(t,"RestartGame",vM.bind(null,e)),(0,jb.lua_register)(t,"ReloadGame",AM.bind(null,e)),(0,jb.lua_register)(t,"SetCampaignMenuRace",yM.bind(null,e)),(0,jb.lua_register)(t,"SetCampaignMenuRaceEx",SM.bind(null,e)),(0,jb.lua_register)(t,"ForceCampaignSelectScreen",TM.bind(null,e)),(0,jb.lua_register)(t,"LoadGame",xM.bind(null,e)),(0,jb.lua_register)(t,"SaveGame",EM.bind(null,e)),(0,jb.lua_register)(t,"RenameSaveDirectory",LM.bind(null,e)),(0,jb.lua_register)(t,"RemoveSaveDirectory",IM.bind(null,e)),(0,jb.lua_register)(t,"CopySaveGame",UM.bind(null,e)),(0,jb.lua_register)(t,"SaveGameExists",RM.bind(null,e)),(0,jb.lua_register)(t,"SyncSelections",CM.bind(null,e)),(0,jb.lua_register)(t,"SetFloatGameState",MM.bind(null,e)),(0,jb.lua_register)(t,"GetFloatGameState",BM.bind(null,e)),(0,jb.lua_register)(t,"SetIntegerGameState",NM.bind(null,e)),(0,jb.lua_register)(t,"GetIntegerGameState",PM.bind(null,e)),(0,jb.lua_register)(t,"SetTutorialCleared",kM.bind(null,e)),(0,jb.lua_register)(t,"SetMissionAvailable",OM.bind(null,e)),(0,jb.lua_register)(t,"SetCampaignAvailable",DM.bind(null,e)),(0,jb.lua_register)(t,"SetOpCinematicAvailable",FM.bind(null,e)),(0,jb.lua_register)(t,"SetEdCinematicAvailable",GM.bind(null,e)),(0,jb.lua_register)(t,"GetDefaultDifficulty",VM.bind(null,e)),(0,jb.lua_register)(t,"SetDefaultDifficulty",KM.bind(null,e)),(0,jb.lua_register)(t,"SetCustomCampaignButtonVisible",HM.bind(null,e)),(0,jb.lua_register)(t,"GetCustomCampaignButtonVisible",zM.bind(null,e)),(0,jb.lua_register)(t,"DoNotSaveReplay",jM.bind(null,e)),(0,jb.lua_register)(t,"DialogCreate",XM.bind(null,e)),(0,jb.lua_register)(t,"DialogDestroy",$M.bind(null,e)),(0,jb.lua_register)(t,"DialogClear",JM.bind(null,e)),(0,jb.lua_register)(t,"DialogSetMessage",WM.bind(null,e)),(0,jb.lua_register)(t,"DialogAddButton",qM.bind(null,e)),(0,jb.lua_register)(t,"DialogAddQuitButton",YM.bind(null,e)),(0,jb.lua_register)(t,"DialogDisplay",ZM.bind(null,e)),(0,jb.lua_register)(t,"ReloadGameCachesFromDisk",QM.bind(null,e)),(0,jb.lua_register)(t,"InitGameCache",eB.bind(null,e)),(0,jb.lua_register)(t,"SaveGameCache",tB.bind(null,e)),(0,jb.lua_register)(t,"StoreInteger",nB.bind(null,e)),(0,jb.lua_register)(t,"StoreReal",aB.bind(null,e)),(0,jb.lua_register)(t,"StoreBoolean",rB.bind(null,e)),(0,jb.lua_register)(t,"StoreUnit",iB.bind(null,e)),(0,jb.lua_register)(t,"StoreString",sB.bind(null,e)),(0,jb.lua_register)(t,"SyncStoredInteger",lB.bind(null,e)),(0,jb.lua_register)(t,"SyncStoredReal",oB.bind(null,e)),(0,jb.lua_register)(t,"SyncStoredBoolean",uB.bind(null,e)),(0,jb.lua_register)(t,"SyncStoredUnit",cB.bind(null,e)),(0,jb.lua_register)(t,"SyncStoredString",dB.bind(null,e)),(0,jb.lua_register)(t,"HaveStoredInteger",hB.bind(null,e)),(0,jb.lua_register)(t,"HaveStoredReal",fB.bind(null,e)),(0,jb.lua_register)(t,"HaveStoredBoolean",mB.bind(null,e)),(0,jb.lua_register)(t,"HaveStoredUnit",pB.bind(null,e)),(0,jb.lua_register)(t,"HaveStoredString",_B.bind(null,e)),(0,jb.lua_register)(t,"FlushGameCache",gB.bind(null,e)),(0,jb.lua_register)(t,"FlushStoredMission",bB.bind(null,e)),(0,jb.lua_register)(t,"FlushStoredInteger",wB.bind(null,e)),(0,jb.lua_register)(t,"FlushStoredReal",vB.bind(null,e)),(0,jb.lua_register)(t,"FlushStoredBoolean",AB.bind(null,e)),(0,jb.lua_register)(t,"FlushStoredUnit",yB.bind(null,e)),(0,jb.lua_register)(t,"FlushStoredString",SB.bind(null,e)),(0,jb.lua_register)(t,"GetStoredInteger",TB.bind(null,e)),(0,jb.lua_register)(t,"GetStoredReal",xB.bind(null,e)),(0,jb.lua_register)(t,"GetStoredBoolean",EB.bind(null,e)),(0,jb.lua_register)(t,"GetStoredString",LB.bind(null,e)),(0,jb.lua_register)(t,"RestoreUnit",IB.bind(null,e)),(0,jb.lua_register)(t,"InitHashtable",UB.bind(null,e)),(0,jb.lua_register)(t,"SaveInteger",RB.bind(null,e)),(0,jb.lua_register)(t,"SaveReal",CB.bind(null,e)),(0,jb.lua_register)(t,"SaveBoolean",MB.bind(null,e)),(0,jb.lua_register)(t,"SaveStr",BB.bind(null,e)),(0,jb.lua_register)(t,"SavePlayerHandle",NB.bind(null,e)),(0,jb.lua_register)(t,"SaveWidgetHandle",PB.bind(null,e)),(0,jb.lua_register)(t,"SaveDestructableHandle",kB.bind(null,e)),(0,jb.lua_register)(t,"SaveItemHandle",OB.bind(null,e)),(0,jb.lua_register)(t,"SaveUnitHandle",DB.bind(null,e)),(0,jb.lua_register)(t,"SaveAbilityHandle",FB.bind(null,e)),(0,jb.lua_register)(t,"SaveTimerHandle",GB.bind(null,e)),(0,jb.lua_register)(t,"SaveTriggerHandle",VB.bind(null,e)),(0,jb.lua_register)(t,"SaveTriggerConditionHandle",KB.bind(null,e)),(0,jb.lua_register)(t,"SaveTriggerActionHandle",HB.bind(null,e)),(0,jb.lua_register)(t,"SaveTriggerEventHandle",zB.bind(null,e)),(0,jb.lua_register)(t,"SaveForceHandle",jB.bind(null,e)),(0,jb.lua_register)(t,"SaveGroupHandle",XB.bind(null,e)),(0,jb.lua_register)(t,"SaveLocationHandle",$B.bind(null,e)),(0,jb.lua_register)(t,"SaveRectHandle",JB.bind(null,e)),(0,jb.lua_register)(t,"SaveBooleanExprHandle",WB.bind(null,e)),(0,jb.lua_register)(t,"SaveSoundHandle",qB.bind(null,e)),(0,jb.lua_register)(t,"SaveEffectHandle",YB.bind(null,e)),(0,jb.lua_register)(t,"SaveUnitPoolHandle",ZB.bind(null,e)),(0,jb.lua_register)(t,"SaveItemPoolHandle",QB.bind(null,e)),(0,jb.lua_register)(t,"SaveQuestHandle",eN.bind(null,e)),(0,jb.lua_register)(t,"SaveQuestItemHandle",tN.bind(null,e)),(0,jb.lua_register)(t,"SaveDefeatConditionHandle",nN.bind(null,e)),(0,jb.lua_register)(t,"SaveTimerDialogHandle",aN.bind(null,e)),(0,jb.lua_register)(t,"SaveLeaderboardHandle",rN.bind(null,e)),(0,jb.lua_register)(t,"SaveMultiboardHandle",iN.bind(null,e)),(0,jb.lua_register)(t,"SaveMultiboardItemHandle",sN.bind(null,e)),(0,jb.lua_register)(t,"SaveTrackableHandle",lN.bind(null,e)),(0,jb.lua_register)(t,"SaveDialogHandle",oN.bind(null,e)),(0,jb.lua_register)(t,"SaveButtonHandle",uN.bind(null,e)),(0,jb.lua_register)(t,"SaveTextTagHandle",cN.bind(null,e)),(0,jb.lua_register)(t,"SaveLightningHandle",dN.bind(null,e)),(0,jb.lua_register)(t,"SaveImageHandle",hN.bind(null,e)),(0,jb.lua_register)(t,"SaveUbersplatHandle",fN.bind(null,e)),(0,jb.lua_register)(t,"SaveRegionHandle",mN.bind(null,e)),(0,jb.lua_register)(t,"SaveFogStateHandle",pN.bind(null,e)),(0,jb.lua_register)(t,"SaveFogModifierHandle",_N.bind(null,e)),(0,jb.lua_register)(t,"SaveAgentHandle",gN.bind(null,e)),(0,jb.lua_register)(t,"SaveHashtableHandle",bN.bind(null,e)),(0,jb.lua_register)(t,"LoadInteger",wN.bind(null,e)),(0,jb.lua_register)(t,"LoadReal",vN.bind(null,e)),(0,jb.lua_register)(t,"LoadBoolean",AN.bind(null,e)),(0,jb.lua_register)(t,"LoadStr",yN.bind(null,e)),(0,jb.lua_register)(t,"LoadPlayerHandle",SN.bind(null,e)),(0,jb.lua_register)(t,"LoadWidgetHandle",TN.bind(null,e)),(0,jb.lua_register)(t,"LoadDestructableHandle",xN.bind(null,e)),(0,jb.lua_register)(t,"LoadItemHandle",EN.bind(null,e)),(0,jb.lua_register)(t,"LoadUnitHandle",LN.bind(null,e)),(0,jb.lua_register)(t,"LoadAbilityHandle",IN.bind(null,e)),(0,jb.lua_register)(t,"LoadTimerHandle",UN.bind(null,e)),(0,jb.lua_register)(t,"LoadTriggerHandle",RN.bind(null,e)),(0,jb.lua_register)(t,"LoadTriggerConditionHandle",CN.bind(null,e)),(0,jb.lua_register)(t,"LoadTriggerActionHandle",MN.bind(null,e)),(0,jb.lua_register)(t,"LoadTriggerEventHandle",BN.bind(null,e)),(0,jb.lua_register)(t,"LoadForceHandle",NN.bind(null,e)),(0,jb.lua_register)(t,"LoadGroupHandle",PN.bind(null,e)),(0,jb.lua_register)(t,"LoadLocationHandle",kN.bind(null,e)),(0,jb.lua_register)(t,"LoadRectHandle",ON.bind(null,e)),(0,jb.lua_register)(t,"LoadBooleanExprHandle",DN.bind(null,e)),(0,jb.lua_register)(t,"LoadSoundHandle",FN.bind(null,e)),(0,jb.lua_register)(t,"LoadEffectHandle",GN.bind(null,e)),(0,jb.lua_register)(t,"LoadUnitPoolHandle",VN.bind(null,e)),(0,jb.lua_register)(t,"LoadItemPoolHandle",KN.bind(null,e)),(0,jb.lua_register)(t,"LoadQuestHandle",HN.bind(null,e)),(0,jb.lua_register)(t,"LoadQuestItemHandle",zN.bind(null,e)),(0,jb.lua_register)(t,"LoadDefeatConditionHandle",jN.bind(null,e)),(0,jb.lua_register)(t,"LoadTimerDialogHandle",XN.bind(null,e)),(0,jb.lua_register)(t,"LoadLeaderboardHandle",$N.bind(null,e));(0,jb.lua_register)(t,"LoadMultiboardHandle",JN.bind(null,e)),(0,jb.lua_register)(t,"LoadMultiboardItemHandle",WN.bind(null,e)),(0,jb.lua_register)(t,"LoadTrackableHandle",qN.bind(null,e)),(0,jb.lua_register)(t,"LoadDialogHandle",YN.bind(null,e)),(0,jb.lua_register)(t,"LoadButtonHandle",ZN.bind(null,e)),(0,jb.lua_register)(t,"LoadTextTagHandle",QN.bind(null,e)),(0,jb.lua_register)(t,"LoadLightningHandle",eP.bind(null,e)),(0,jb.lua_register)(t,"LoadImageHandle",tP.bind(null,e)),(0,jb.lua_register)(t,"LoadUbersplatHandle",nP.bind(null,e)),(0,jb.lua_register)(t,"LoadRegionHandle",aP.bind(null,e)),(0,jb.lua_register)(t,"LoadFogStateHandle",rP.bind(null,e)),(0,jb.lua_register)(t,"LoadFogModifierHandle",iP.bind(null,e)),(0,jb.lua_register)(t,"LoadHashtableHandle",sP.bind(null,e)),(0,jb.lua_register)(t,"HaveSavedInteger",lP.bind(null,e)),(0,jb.lua_register)(t,"HaveSavedReal",oP.bind(null,e)),(0,jb.lua_register)(t,"HaveSavedBoolean",uP.bind(null,e)),(0,jb.lua_register)(t,"HaveSavedString",cP.bind(null,e)),(0,jb.lua_register)(t,"HaveSavedHandle",dP.bind(null,e)),(0,jb.lua_register)(t,"RemoveSavedInteger",hP.bind(null,e)),(0,jb.lua_register)(t,"RemoveSavedReal",fP.bind(null,e)),(0,jb.lua_register)(t,"RemoveSavedBoolean",mP.bind(null,e)),(0,jb.lua_register)(t,"RemoveSavedString",pP.bind(null,e)),(0,jb.lua_register)(t,"RemoveSavedHandle",_P.bind(null,e)),(0,jb.lua_register)(t,"FlushParentHashtable",gP.bind(null,e)),(0,jb.lua_register)(t,"FlushChildHashtable",bP.bind(null,e)),(0,jb.lua_register)(t,"GetRandomInt",wP.bind(null,e)),(0,jb.lua_register)(t,"GetRandomReal",vP.bind(null,e)),(0,jb.lua_register)(t,"CreateUnitPool",AP.bind(null,e)),(0,jb.lua_register)(t,"DestroyUnitPool",yP.bind(null,e)),(0,jb.lua_register)(t,"UnitPoolAddUnitType",SP.bind(null,e)),(0,jb.lua_register)(t,"UnitPoolRemoveUnitType",TP.bind(null,e)),(0,jb.lua_register)(t,"PlaceRandomUnit",xP.bind(null,e)),(0,jb.lua_register)(t,"CreateItemPool",EP.bind(null,e)),(0,jb.lua_register)(t,"DestroyItemPool",LP.bind(null,e)),(0,jb.lua_register)(t,"ItemPoolAddItemType",IP.bind(null,e)),(0,jb.lua_register)(t,"ItemPoolRemoveItemType",UP.bind(null,e)),(0,jb.lua_register)(t,"PlaceRandomItem",RP.bind(null,e)),(0,jb.lua_register)(t,"ChooseRandomCreep",CP.bind(null,e)),(0,jb.lua_register)(t,"ChooseRandomNPBuilding",MP.bind(null,e)),(0,jb.lua_register)(t,"ChooseRandomItem",BP.bind(null,e)),(0,jb.lua_register)(t,"ChooseRandomItemEx",NP.bind(null,e)),(0,jb.lua_register)(t,"SetRandomSeed",PP.bind(null,e)),(0,jb.lua_register)(t,"SetTerrainFog",kP.bind(null,e)),(0,jb.lua_register)(t,"ResetTerrainFog",OP.bind(null,e)),(0,jb.lua_register)(t,"SetUnitFog",DP.bind(null,e)),(0,jb.lua_register)(t,"SetTerrainFogEx",FP.bind(null,e)),(0,jb.lua_register)(t,"DisplayTextToPlayer",GP.bind(null,e)),(0,jb.lua_register)(t,"DisplayTimedTextToPlayer",VP.bind(null,e)),(0,jb.lua_register)(t,"DisplayTimedTextFromPlayer",KP.bind(null,e)),(0,jb.lua_register)(t,"ClearTextMessages",HP.bind(null,e)),(0,jb.lua_register)(t,"SetDayNightModels",zP.bind(null,e)),(0,jb.lua_register)(t,"SetSkyModel",jP.bind(null,e)),(0,jb.lua_register)(t,"EnableUserControl",XP.bind(null,e)),(0,jb.lua_register)(t,"EnableUserUI",$P.bind(null,e)),(0,jb.lua_register)(t,"SuspendTimeOfDay",JP.bind(null,e)),(0,jb.lua_register)(t,"SetTimeOfDayScale",WP.bind(null,e)),(0,jb.lua_register)(t,"GetTimeOfDayScale",qP.bind(null,e)),(0,jb.lua_register)(t,"ShowInterface",YP.bind(null,e)),(0,jb.lua_register)(t,"PauseGame",ZP.bind(null,e)),(0,jb.lua_register)(t,"UnitAddIndicator",QP.bind(null,e)),(0,jb.lua_register)(t,"AddIndicator",ek.bind(null,e)),(0,jb.lua_register)(t,"PingMinimap",tk.bind(null,e)),(0,jb.lua_register)(t,"PingMinimapEx",nk.bind(null,e)),(0,jb.lua_register)(t,"EnableOcclusion",ak.bind(null,e)),(0,jb.lua_register)(t,"SetIntroShotText",rk.bind(null,e)),(0,jb.lua_register)(t,"SetIntroShotModel",ik.bind(null,e)),(0,jb.lua_register)(t,"EnableWorldFogBoundary",sk.bind(null,e)),(0,jb.lua_register)(t,"PlayModelCinematic",lk.bind(null,e)),(0,jb.lua_register)(t,"PlayCinematic",ok.bind(null,e)),(0,jb.lua_register)(t,"ForceUIKey",uk.bind(null,e)),(0,jb.lua_register)(t,"ForceUICancel",ck.bind(null,e)),(0,jb.lua_register)(t,"DisplayLoadDialog",dk.bind(null,e)),(0,jb.lua_register)(t,"SetAltMinimapIcon",hk.bind(null,e)),(0,jb.lua_register)(t,"DisableRestartMission",fk.bind(null,e)),(0,jb.lua_register)(t,"CreateTextTag",mk.bind(null,e)),(0,jb.lua_register)(t,"DestroyTextTag",pk.bind(null,e)),(0,jb.lua_register)(t,"SetTextTagText",_k.bind(null,e)),(0,jb.lua_register)(t,"SetTextTagPos",gk.bind(null,e)),(0,jb.lua_register)(t,"SetTextTagPosUnit",bk.bind(null,e)),(0,jb.lua_register)(t,"SetTextTagColor",wk.bind(null,e)),(0,jb.lua_register)(t,"SetTextTagVelocity",vk.bind(null,e)),(0,jb.lua_register)(t,"SetTextTagVisibility",Ak.bind(null,e)),(0,jb.lua_register)(t,"SetTextTagSuspended",yk.bind(null,e)),(0,jb.lua_register)(t,"SetTextTagPermanent",Sk.bind(null,e)),(0,jb.lua_register)(t,"SetTextTagAge",Tk.bind(null,e)),(0,jb.lua_register)(t,"SetTextTagLifespan",xk.bind(null,e)),(0,jb.lua_register)(t,"SetTextTagFadepoint",Ek.bind(null,e)),(0,jb.lua_register)(t,"SetReservedLocalHeroButtons",Lk.bind(null,e)),(0,jb.lua_register)(t,"GetAllyColorFilterState",Ik.bind(null,e)),(0,jb.lua_register)(t,"SetAllyColorFilterState",Uk.bind(null,e)),(0,jb.lua_register)(t,"GetCreepCampFilterState",Rk.bind(null,e)),(0,jb.lua_register)(t,"SetCreepCampFilterState",Ck.bind(null,e)),(0,jb.lua_register)(t,"EnableMinimapFilterButtons",Mk.bind(null,e)),(0,jb.lua_register)(t,"EnableDragSelect",Bk.bind(null,e)),(0,jb.lua_register)(t,"EnablePreSelect",Nk.bind(null,e)),(0,jb.lua_register)(t,"EnableSelect",Pk.bind(null,e)),(0,jb.lua_register)(t,"CreateTrackable",kk.bind(null,e)),(0,jb.lua_register)(t,"CreateQuest",Ok.bind(null,e)),(0,jb.lua_register)(t,"DestroyQuest",Dk.bind(null,e)),(0,jb.lua_register)(t,"QuestSetTitle",Fk.bind(null,e)),(0,jb.lua_register)(t,"QuestSetDescription",Gk.bind(null,e)),(0,jb.lua_register)(t,"QuestSetIconPath",Vk.bind(null,e)),(0,jb.lua_register)(t,"QuestSetRequired",Kk.bind(null,e)),(0,jb.lua_register)(t,"QuestSetCompleted",Hk.bind(null,e)),(0,jb.lua_register)(t,"QuestSetDiscovered",zk.bind(null,e)),(0,jb.lua_register)(t,"QuestSetFailed",jk.bind(null,e)),(0,jb.lua_register)(t,"QuestSetEnabled",Xk.bind(null,e)),(0,jb.lua_register)(t,"IsQuestRequired",$k.bind(null,e)),(0,jb.lua_register)(t,"IsQuestCompleted",Jk.bind(null,e)),(0,jb.lua_register)(t,"IsQuestDiscovered",Wk.bind(null,e)),(0,jb.lua_register)(t,"IsQuestFailed",qk.bind(null,e)),(0,jb.lua_register)(t,"IsQuestEnabled",Yk.bind(null,e)),(0,jb.lua_register)(t,"QuestCreateItem",Zk.bind(null,e)),(0,jb.lua_register)(t,"QuestItemSetDescription",Qk.bind(null,e)),(0,jb.lua_register)(t,"QuestItemSetCompleted",eO.bind(null,e)),(0,jb.lua_register)(t,"IsQuestItemCompleted",tO.bind(null,e)),(0,jb.lua_register)(t,"CreateDefeatCondition",nO.bind(null,e)),(0,jb.lua_register)(t,"DestroyDefeatCondition",aO.bind(null,e)),(0,jb.lua_register)(t,"DefeatConditionSetDescription",rO.bind(null,e)),(0,jb.lua_register)(t,"FlashQuestDialogButton",iO.bind(null,e)),(0,jb.lua_register)(t,"ForceQuestDialogUpdate",sO.bind(null,e)),(0,jb.lua_register)(t,"CreateTimerDialog",lO.bind(null,e)),(0,jb.lua_register)(t,"DestroyTimerDialog",oO.bind(null,e)),(0,jb.lua_register)(t,"TimerDialogSetTitle",uO.bind(null,e)),(0,jb.lua_register)(t,"TimerDialogSetTitleColor",cO.bind(null,e)),(0,jb.lua_register)(t,"TimerDialogSetTimeColor",dO.bind(null,e)),(0,jb.lua_register)(t,"TimerDialogSetSpeed",hO.bind(null,e)),(0,jb.lua_register)(t,"TimerDialogDisplay",fO.bind(null,e)),(0,jb.lua_register)(t,"IsTimerDialogDisplayed",mO.bind(null,e)),(0,jb.lua_register)(t,"TimerDialogSetRealTimeRemaining",pO.bind(null,e)),(0,jb.lua_register)(t,"CreateLeaderboard",_O.bind(null,e)),(0,jb.lua_register)(t,"DestroyLeaderboard",gO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardDisplay",bO.bind(null,e)),(0,jb.lua_register)(t,"IsLeaderboardDisplayed",wO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardGetItemCount",vO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardSetSizeByItemCount",AO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardAddItem",yO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardRemoveItem",SO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardRemovePlayerItem",TO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardClear",xO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardSortItemsByValue",EO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardSortItemsByPlayer",LO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardSortItemsByLabel",IO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardHasPlayerItem",UO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardGetPlayerIndex",RO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardSetLabel",CO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardGetLabelText",MO.bind(null,e)),(0,jb.lua_register)(t,"PlayerSetLeaderboard",BO.bind(null,e)),(0,jb.lua_register)(t,"PlayerGetLeaderboard",NO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardSetLabelColor",PO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardSetValueColor",kO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardSetStyle",OO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardSetItemValue",DO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardSetItemLabel",FO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardSetItemStyle",GO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardSetItemLabelColor",VO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardSetItemValueColor",KO.bind(null,e)),(0,jb.lua_register)(t,"CreateMultiboard",HO.bind(null,e)),(0,jb.lua_register)(t,"DestroyMultiboard",zO.bind(null,e)),(0,jb.lua_register)(t,"MultiboardDisplay",jO.bind(null,e)),(0,jb.lua_register)(t,"IsMultiboardDisplayed",XO.bind(null,e)),(0,jb.lua_register)(t,"MultiboardMinimize",$O.bind(null,e)),(0,jb.lua_register)(t,"IsMultiboardMinimized",JO.bind(null,e)),(0,jb.lua_register)(t,"MultiboardClear",WO.bind(null,e)),(0,jb.lua_register)(t,"MultiboardSetTitleText",qO.bind(null,e)),(0,jb.lua_register)(t,"MultiboardGetTitleText",YO.bind(null,e)),(0,jb.lua_register)(t,"MultiboardSetTitleTextColor",ZO.bind(null,e)),(0,jb.lua_register)(t,"MultiboardGetRowCount",QO.bind(null,e)),(0,jb.lua_register)(t,"MultiboardGetColumnCount",eD.bind(null,e)),(0,jb.lua_register)(t,"MultiboardSetColumnCount",tD.bind(null,e)),(0,jb.lua_register)(t,"MultiboardSetRowCount",nD.bind(null,e)),(0,jb.lua_register)(t,"MultiboardSetItemsStyle",aD.bind(null,e)),(0,jb.lua_register)(t,"MultiboardSetItemsValue",rD.bind(null,e)),(0,jb.lua_register)(t,"MultiboardSetItemsValueColor",iD.bind(null,e)),(0,jb.lua_register)(t,"MultiboardSetItemsWidth",sD.bind(null,e)),(0,jb.lua_register)(t,"MultiboardSetItemsIcon",lD.bind(null,e)),(0,jb.lua_register)(t,"MultiboardGetItem",oD.bind(null,e)),(0,jb.lua_register)(t,"MultiboardReleaseItem",uD.bind(null,e)),(0,jb.lua_register)(t,"MultiboardSetItemStyle",cD.bind(null,e)),(0,jb.lua_register)(t,"MultiboardSetItemValue",dD.bind(null,e)),(0,jb.lua_register)(t,"MultiboardSetItemValueColor",hD.bind(null,e)),(0,jb.lua_register)(t,"MultiboardSetItemWidth",fD.bind(null,e)),(0,jb.lua_register)(t,"MultiboardSetItemIcon",mD.bind(null,e)),(0,jb.lua_register)(t,"MultiboardSuppressDisplay",pD.bind(null,e)),(0,jb.lua_register)(t,"SetCameraPosition",_D.bind(null,e)),(0,jb.lua_register)(t,"SetCameraQuickPosition",gD.bind(null,e)),(0,jb.lua_register)(t,"SetCameraBounds",bD.bind(null,e)),(0,jb.lua_register)(t,"StopCamera",wD.bind(null,e)),(0,jb.lua_register)(t,"ResetToGameCamera",vD.bind(null,e)),(0,jb.lua_register)(t,"PanCameraTo",AD.bind(null,e)),(0,jb.lua_register)(t,"PanCameraToTimed",yD.bind(null,e)),(0,jb.lua_register)(t,"PanCameraToWithZ",SD.bind(null,e)),(0,jb.lua_register)(t,"PanCameraToTimedWithZ",TD.bind(null,e)),(0,jb.lua_register)(t,"SetCinematicCamera",xD.bind(null,e)),(0,jb.lua_register)(t,"SetCameraRotateMode",ED.bind(null,e)),(0,jb.lua_register)(t,"SetCameraField",LD.bind(null,e)),(0,jb.lua_register)(t,"AdjustCameraField",ID.bind(null,e)),(0,jb.lua_register)(t,"SetCameraTargetController",UD.bind(null,e)),(0,jb.lua_register)(t,"SetCameraOrientController",RD.bind(null,e)),(0,jb.lua_register)(t,"CreateCameraSetup",CD.bind(null,e)),(0,jb.lua_register)(t,"CameraSetupSetField",MD.bind(null,e)),(0,jb.lua_register)(t,"CameraSetupGetField",BD.bind(null,e)),(0,jb.lua_register)(t,"CameraSetupSetDestPosition",ND.bind(null,e)),(0,jb.lua_register)(t,"CameraSetupGetDestPositionLoc",PD.bind(null,e)),(0,jb.lua_register)(t,"CameraSetupGetDestPositionX",kD.bind(null,e)),(0,jb.lua_register)(t,"CameraSetupGetDestPositionY",OD.bind(null,e)),(0,jb.lua_register)(t,"CameraSetupApply",DD.bind(null,e)),(0,jb.lua_register)(t,"CameraSetupApplyWithZ",FD.bind(null,e)),(0,jb.lua_register)(t,"CameraSetupApplyForceDuration",GD.bind(null,e)),(0,jb.lua_register)(t,"CameraSetupApplyForceDurationWithZ",VD.bind(null,e)),(0,jb.lua_register)(t,"CameraSetTargetNoise",KD.bind(null,e)),(0,jb.lua_register)(t,"CameraSetSourceNoise",HD.bind(null,e)),(0,jb.lua_register)(t,"CameraSetTargetNoiseEx",zD.bind(null,e)),(0,jb.lua_register)(t,"CameraSetSourceNoiseEx",jD.bind(null,e)),(0,jb.lua_register)(t,"CameraSetSmoothingFactor",XD.bind(null,e)),(0,jb.lua_register)(t,"SetCineFilterTexture",$D.bind(null,e)),(0,jb.lua_register)(t,"SetCineFilterBlendMode",JD.bind(null,e)),(0,jb.lua_register)(t,"SetCineFilterTexMapFlags",WD.bind(null,e)),(0,jb.lua_register)(t,"SetCineFilterStartUV",qD.bind(null,e)),(0,jb.lua_register)(t,"SetCineFilterEndUV",YD.bind(null,e)),(0,jb.lua_register)(t,"SetCineFilterStartColor",ZD.bind(null,e)),(0,jb.lua_register)(t,"SetCineFilterEndColor",QD.bind(null,e)),(0,jb.lua_register)(t,"SetCineFilterDuration",eF.bind(null,e)),(0,jb.lua_register)(t,"DisplayCineFilter",tF.bind(null,e)),(0,jb.lua_register)(t,"IsCineFilterDisplayed",nF.bind(null,e)),(0,jb.lua_register)(t,"SetCinematicScene",aF.bind(null,e)),(0,jb.lua_register)(t,"EndCinematicScene",rF.bind(null,e)),(0,jb.lua_register)(t,"ForceCinematicSubtitles",iF.bind(null,e)),(0,jb.lua_register)(t,"GetCameraMargin",sF.bind(null,e)),(0,jb.lua_register)(t,"GetCameraBoundMinX",lF.bind(null,e)),(0,jb.lua_register)(t,"GetCameraBoundMinY",oF.bind(null,e)),(0,jb.lua_register)(t,"GetCameraBoundMaxX",uF.bind(null,e)),(0,jb.lua_register)(t,"GetCameraBoundMaxY",cF.bind(null,e)),(0,jb.lua_register)(t,"GetCameraField",dF.bind(null,e)),(0,jb.lua_register)(t,"GetCameraTargetPositionX",hF.bind(null,e)),(0,jb.lua_register)(t,"GetCameraTargetPositionY",fF.bind(null,e)),(0,jb.lua_register)(t,"GetCameraTargetPositionZ",mF.bind(null,e)),(0,jb.lua_register)(t,"GetCameraTargetPositionLoc",pF.bind(null,e)),(0,jb.lua_register)(t,"GetCameraEyePositionX",_F.bind(null,e)),(0,jb.lua_register)(t,"GetCameraEyePositionY",gF.bind(null,e)),(0,jb.lua_register)(t,"GetCameraEyePositionZ",bF.bind(null,e)),(0,jb.lua_register)(t,"GetCameraEyePositionLoc",wF.bind(null,e)),(0,jb.lua_register)(t,"NewSoundEnvironment",vF.bind(null,e)),(0,jb.lua_register)(t,"CreateSound",AF.bind(null,e)),(0,jb.lua_register)(t,"CreateSoundFilenameWithLabel",yF.bind(null,e)),(0,jb.lua_register)(t,"CreateSoundFromLabel",SF.bind(null,e)),(0,jb.lua_register)(t,"CreateMIDISound",TF.bind(null,e)),(0,jb.lua_register)(t,"SetSoundParamsFromLabel",xF.bind(null,e)),(0,jb.lua_register)(t,"SetSoundDistanceCutoff",EF.bind(null,e)),(0,jb.lua_register)(t,"SetSoundChannel",LF.bind(null,e)),(0,jb.lua_register)(t,"SetSoundVolume",IF.bind(null,e)),(0,jb.lua_register)(t,"SetSoundPitch",UF.bind(null,e)),(0,jb.lua_register)(t,"SetSoundPlayPosition",RF.bind(null,e)),(0,jb.lua_register)(t,"SetSoundDistances",CF.bind(null,e)),(0,jb.lua_register)(t,"SetSoundConeAngles",MF.bind(null,e)),(0,jb.lua_register)(t,"SetSoundConeOrientation",BF.bind(null,e)),(0,jb.lua_register)(t,"SetSoundPosition",NF.bind(null,e)),(0,jb.lua_register)(t,"SetSoundVelocity",PF.bind(null,e)),(0,jb.lua_register)(t,"AttachSoundToUnit",kF.bind(null,e)),(0,jb.lua_register)(t,"StartSound",OF.bind(null,e)),(0,jb.lua_register)(t,"StopSound",DF.bind(null,e)),(0,jb.lua_register)(t,"KillSoundWhenDone",FF.bind(null,e)),(0,jb.lua_register)(t,"SetMapMusic",GF.bind(null,e)),(0,jb.lua_register)(t,"ClearMapMusic",VF.bind(null,e)),(0,jb.lua_register)(t,"PlayMusic",KF.bind(null,e)),(0,jb.lua_register)(t,"PlayMusicEx",HF.bind(null,e)),(0,jb.lua_register)(t,"StopMusic",zF.bind(null,e)),(0,jb.lua_register)(t,"ResumeMusic",jF.bind(null,e)),(0,jb.lua_register)(t,"PlayThematicMusic",XF.bind(null,e)),(0,jb.lua_register)(t,"PlayThematicMusicEx",$F.bind(null,e)),(0,jb.lua_register)(t,"EndThematicMusic",JF.bind(null,e)),(0,jb.lua_register)(t,"SetMusicVolume",WF.bind(null,e)),(0,jb.lua_register)(t,"SetMusicPlayPosition",qF.bind(null,e)),(0,jb.lua_register)(t,"SetThematicMusicPlayPosition",YF.bind(null,e)),(0,jb.lua_register)(t,"SetSoundDuration",ZF.bind(null,e)),(0,jb.lua_register)(t,"GetSoundDuration",QF.bind(null,e)),(0,jb.lua_register)(t,"GetSoundFileDuration",eG.bind(null,e)),(0,jb.lua_register)(t,"VolumeGroupSetVolume",tG.bind(null,e)),(0,jb.lua_register)(t,"VolumeGroupReset",nG.bind(null,e)),(0,jb.lua_register)(t,"GetSoundIsPlaying",aG.bind(null,e)),(0,jb.lua_register)(t,"GetSoundIsLoading",rG.bind(null,e)),(0,jb.lua_register)(t,"RegisterStackedSound",iG.bind(null,e)),(0,jb.lua_register)(t,"UnregisterStackedSound",sG.bind(null,e)),(0,jb.lua_register)(t,"AddWeatherEffect",lG.bind(null,e)),(0,jb.lua_register)(t,"RemoveWeatherEffect",oG.bind(null,e)),(0,jb.lua_register)(t,"EnableWeatherEffect",uG.bind(null,e)),(0,jb.lua_register)(t,"TerrainDeformCrater",cG.bind(null,e)),(0,jb.lua_register)(t,"TerrainDeformRipple",dG.bind(null,e)),(0,jb.lua_register)(t,"TerrainDeformWave",hG.bind(null,e)),(0,jb.lua_register)(t,"TerrainDeformRandom",fG.bind(null,e)),(0,jb.lua_register)(t,"TerrainDeformStop",mG.bind(null,e)),(0,jb.lua_register)(t,"TerrainDeformStopAll",pG.bind(null,e)),(0,jb.lua_register)(t,"AddSpecialEffect",_G.bind(null,e)),(0,jb.lua_register)(t,"AddSpecialEffectLoc",gG.bind(null,e)),(0,jb.lua_register)(t,"AddSpecialEffectTarget",bG.bind(null,e)),(0,jb.lua_register)(t,"DestroyEffect",wG.bind(null,e)),(0,jb.lua_register)(t,"AddSpellEffect",vG.bind(null,e)),(0,jb.lua_register)(t,"AddSpellEffectLoc",AG.bind(null,e)),(0,jb.lua_register)(t,"AddSpellEffectById",yG.bind(null,e)),(0,jb.lua_register)(t,"AddSpellEffectByIdLoc",SG.bind(null,e)),(0,jb.lua_register)(t,"AddSpellEffectTarget",TG.bind(null,e)),(0,jb.lua_register)(t,"AddSpellEffectTargetById",xG.bind(null,e)),(0,jb.lua_register)(t,"AddLightning",EG.bind(null,e)),(0,jb.lua_register)(t,"AddLightningEx",LG.bind(null,e)),(0,jb.lua_register)(t,"DestroyLightning",IG.bind(null,e)),(0,jb.lua_register)(t,"MoveLightning",UG.bind(null,e)),(0,jb.lua_register)(t,"MoveLightningEx",RG.bind(null,e)),(0,jb.lua_register)(t,"GetLightningColorA",CG.bind(null,e)),(0,jb.lua_register)(t,"GetLightningColorR",MG.bind(null,e)),(0,jb.lua_register)(t,"GetLightningColorG",BG.bind(null,e)),(0,jb.lua_register)(t,"GetLightningColorB",NG.bind(null,e)),(0,jb.lua_register)(t,"SetLightningColor",PG.bind(null,e)),(0,jb.lua_register)(t,"GetAbilityEffect",kG.bind(null,e)),(0,jb.lua_register)(t,"GetAbilityEffectById",OG.bind(null,e)),(0,jb.lua_register)(t,"GetAbilitySound",DG.bind(null,e)),(0,jb.lua_register)(t,"GetAbilitySoundById",FG.bind(null,e)),(0,jb.lua_register)(t,"GetTerrainCliffLevel",GG.bind(null,e)),(0,jb.lua_register)(t,"SetWaterBaseColor",VG.bind(null,e)),(0,jb.lua_register)(t,"SetWaterDeforms",KG.bind(null,e)),(0,jb.lua_register)(t,"GetTerrainType",HG.bind(null,e)),(0,jb.lua_register)(t,"GetTerrainVariance",zG.bind(null,e)),(0,jb.lua_register)(t,"SetTerrainType",jG.bind(null,e)),(0,jb.lua_register)(t,"IsTerrainPathable",XG.bind(null,e)),(0,jb.lua_register)(t,"SetTerrainPathable",$G.bind(null,e)),(0,jb.lua_register)(t,"CreateImage",JG.bind(null,e)),(0,jb.lua_register)(t,"DestroyImage",WG.bind(null,e)),(0,jb.lua_register)(t,"ShowImage",qG.bind(null,e)),(0,jb.lua_register)(t,"SetImageConstantHeight",YG.bind(null,e)),(0,jb.lua_register)(t,"SetImagePosition",ZG.bind(null,e)),(0,jb.lua_register)(t,"SetImageColor",QG.bind(null,e)),(0,jb.lua_register)(t,"SetImageRender",eV.bind(null,e)),(0,jb.lua_register)(t,"SetImageRenderAlways",tV.bind(null,e)),(0,jb.lua_register)(t,"SetImageAboveWater",nV.bind(null,e)),(0,jb.lua_register)(t,"SetImageType",aV.bind(null,e)),(0,jb.lua_register)(t,"CreateUbersplat",rV.bind(null,e)),(0,jb.lua_register)(t,"DestroyUbersplat",iV.bind(null,e)),(0,jb.lua_register)(t,"ResetUbersplat",sV.bind(null,e)),(0,jb.lua_register)(t,"FinishUbersplat",lV.bind(null,e)),(0,jb.lua_register)(t,"ShowUbersplat",oV.bind(null,e)),(0,jb.lua_register)(t,"SetUbersplatRender",uV.bind(null,e)),(0,jb.lua_register)(t,"SetUbersplatRenderAlways",cV.bind(null,e)),(0,jb.lua_register)(t,"SetBlight",dV.bind(null,e)),(0,jb.lua_register)(t,"SetBlightRect",hV.bind(null,e)),(0,jb.lua_register)(t,"SetBlightPoint",fV.bind(null,e)),(0,jb.lua_register)(t,"SetBlightLoc",mV.bind(null,e)),(0,jb.lua_register)(t,"CreateBlightedGoldmine",pV.bind(null,e)),(0,jb.lua_register)(t,"IsPointBlighted",_V.bind(null,e)),(0,jb.lua_register)(t,"SetDoodadAnimation",gV.bind(null,e)),(0,jb.lua_register)(t,"SetDoodadAnimationRect",bV.bind(null,e)),(0,jb.lua_register)(t,"StartMeleeAI",wV.bind(null,e)),(0,jb.lua_register)(t,"StartCampaignAI",vV.bind(null,e)),(0,jb.lua_register)(t,"CommandAI",AV.bind(null,e)),(0,jb.lua_register)(t,"PauseCompAI",yV.bind(null,e)),(0,jb.lua_register)(t,"GetAIDifficulty",SV.bind(null,e)),(0,jb.lua_register)(t,"RemoveGuardPosition",TV.bind(null,e)),(0,jb.lua_register)(t,"RecycleGuardPosition",xV.bind(null,e)),(0,jb.lua_register)(t,"RemoveAllGuardPositions",EV.bind(null,e)),(0,jb.lua_register)(t,"Cheat",LV.bind(null,e)),(0,jb.lua_register)(t,"IsNoVictoryCheat",IV.bind(null,e)),(0,jb.lua_register)(t,"IsNoDefeatCheat",UV.bind(null,e)),(0,jb.lua_register)(t,"Preload",RV.bind(null,e)),(0,jb.lua_register)(t,"PreloadEnd",CV.bind(null,e)),(0,jb.lua_register)(t,"PreloadStart",MV.bind(null,e)),(0,jb.lua_register)(t,"PreloadRefresh",BV.bind(null,e)),(0,jb.lua_register)(t,"PreloadEndEx",NV.bind(null,e)),(0,jb.lua_register)(t,"PreloadGenClear",PV.bind(null,e)),(0,jb.lua_register)(t,"PreloadGenStart",kV.bind(null,e)),(0,jb.lua_register)(t,"PreloadGenEnd",OV.bind(null,e)),(0,jb.lua_register)(t,"Preloader",DV.bind(null,e)),(0,jb.lua_register)(t,"AutomationTestStart",FV.bind(null,e)),(0,jb.lua_register)(t,"AutomationTestEnd",GV.bind(null,e)),(0,jb.lua_register)(t,"BlzGetTriggerPlayerMouseX",VV.bind(null,e)),(0,jb.lua_register)(t,"BlzGetTriggerPlayerMouseY",KV.bind(null,e)),(0,jb.lua_register)(t,"BlzGetTriggerPlayerMousePosition",HV.bind(null,e)),(0,jb.lua_register)(t,"BlzGetTriggerPlayerMouseButton",zV.bind(null,e)),(0,jb.lua_register)(t,"BlzSetAbilityTooltip",jV.bind(null,e)),(0,jb.lua_register)(t,"BlzSetAbilityActivatedTooltip",XV.bind(null,e)),(0,jb.lua_register)(t,"BlzSetAbilityExtendedTooltip",$V.bind(null,e)),(0,jb.lua_register)(t,"BlzSetAbilityActivatedExtendedTooltip",JV.bind(null,e)),(0,jb.lua_register)(t,"BlzSetAbilityResearchTooltip",WV.bind(null,e)),(0,jb.lua_register)(t,"BlzSetAbilityResearchExtendedTooltip",qV.bind(null,e)),(0,jb.lua_register)(t,"BlzGetAbilityTooltip",YV.bind(null,e)),(0,jb.lua_register)(t,"BlzGetAbilityActivatedTooltip",ZV.bind(null,e)),(0,jb.lua_register)(t,"BlzGetAbilityExtendedTooltip",QV.bind(null,e)),(0,jb.lua_register)(t,"BlzGetAbilityActivatedExtendedTooltip",eK.bind(null,e)),(0,jb.lua_register)(t,"BlzGetAbilityResearchTooltip",tK.bind(null,e)),(0,jb.lua_register)(t,"BlzGetAbilityResearchExtendedTooltip",nK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetAbilityIcon",aK.bind(null,e)),(0,jb.lua_register)(t,"BlzGetAbilityIcon",rK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetAbilityActivatedIcon",iK.bind(null,e)),(0,jb.lua_register)(t,"BlzGetAbilityActivatedIcon",sK.bind(null,e)),(0,jb.lua_register)(t,"BlzGetAbilityPosX",lK.bind(null,e)),(0,jb.lua_register)(t,"BlzGetAbilityPosY",oK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetAbilityPosX",uK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetAbilityPosY",cK.bind(null,e)),(0,jb.lua_register)(t,"BlzGetAbilityActivatedPosX",dK.bind(null,e)),(0,jb.lua_register)(t,"BlzGetAbilityActivatedPosY",hK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetAbilityActivatedPosX",fK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetAbilityActivatedPosY",mK.bind(null,e)),(0,jb.lua_register)(t,"BlzGetUnitMaxHP",pK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetUnitMaxHP",_K.bind(null,e)),(0,jb.lua_register)(t,"BlzGetUnitMaxMana",gK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetUnitMaxMana",bK.bind(null,e)),(0,jb.lua_register)(t,"BlzDeleteHeroAbility",wK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetItemName",vK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetItemDescription",AK.bind(null,e)),(0,jb.lua_register)(t,"BlzGetItemDescription",yK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetItemTooltip",SK.bind(null,e)),(0,jb.lua_register)(t,"BlzGetItemTooltip",TK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetItemExtendedTooltip",xK.bind(null,e)),(0,jb.lua_register)(t,"BlzGetItemExtendedTooltip",EK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetItemIconPath",LK.bind(null,e)),(0,jb.lua_register)(t,"BlzGetItemIconPath",IK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetUnitName",UK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetHeroProperName",RK.bind(null,e)),(0,jb.lua_register)(t,"BlzGetUnitBaseDamage",CK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetUnitBaseDamage",MK.bind(null,e)),(0,jb.lua_register)(t,"BlzGetUnitDiceNumber",BK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetUnitDiceNumber",NK.bind(null,e)),(0,jb.lua_register)(t,"BlzGetUnitDiceSides",PK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetUnitDiceSides",kK.bind(null,e)),(0,jb.lua_register)(t,"BlzGetUnitAttackCooldown",OK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetUnitAttackCooldown",DK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetSpecialEffectColorByPlayer",FK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetSpecialEffectColor",GK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetSpecialEffectAlpha",VK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetSpecialEffectScale",KK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetSpecialEffectPosition",HK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetSpecialEffectHeight",zK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetSpecialEffectTimeScale",jK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetSpecialEffectTime",XK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetSpecialEffectOrientation",$K.bind(null,e)),(0,jb.lua_register)(t,"BlzSetSpecialEffectYaw",JK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetSpecialEffectPitch",WK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetSpecialEffectRoll",qK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetSpecialEffectX",YK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetSpecialEffectY",ZK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetSpecialEffectZ",QK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetSpecialEffectPositionLoc",eH.bind(null,e)),(0,jb.lua_register)(t,"BlzGetLocalSpecialEffectX",tH.bind(null,e)),(0,jb.lua_register)(t,"BlzGetLocalSpecialEffectY",nH.bind(null,e)),(0,jb.lua_register)(t,"BlzGetLocalSpecialEffectZ",aH.bind(null,e)),(0,jb.lua_register)(t,"BlzGetUnitArmor",rH.bind(null,e)),(0,jb.lua_register)(t,"BlzSetUnitArmor",iH.bind(null,e)),(0,jb.lua_register)(t,"BlzUnitHideAbility",sH.bind(null,e)),(0,jb.lua_register)(t,"BlzUnitDisableAbility",lH.bind(null,e)),(0,jb.lua_register)(t,"BlzUnitCancelTimedLife",oH.bind(null,e)),(0,jb.lua_register)(t,"BlzIsUnitSelectable",uH.bind(null,e)),(0,jb.lua_register)(t,"BlzIsUnitInvulnerable",cH.bind(null,e)),(0,jb.lua_register)(t,"BlzUnitInterruptAttack",dH.bind(null,e)),(0,jb.lua_register)(t,"BlzGetUnitCollisionSize",hH.bind(null,e)),(0,jb.lua_register)(t,"BlzGetAbilityManaCost",fH.bind(null,e)),(0,jb.lua_register)(t,"BlzGetAbilityCooldown",mH.bind(null,e)),(0,jb.lua_register)(t,"BlzSetUnitAbilityCooldown",pH.bind(null,e)),(0,jb.lua_register)(t,"BlzGetUnitAbilityCooldown",_H.bind(null,e)),(0,jb.lua_register)(t,"BlzGetUnitAbilityCooldownRemaining",gH.bind(null,e)),(0,jb.lua_register)(t,"BlzEndUnitAbilityCooldown",bH.bind(null,e)),(0,jb.lua_register)(t,"BlzGetUnitAbilityManaCost",wH.bind(null,e)),(0,jb.lua_register)(t,"BlzSetUnitAbilityManaCost",vH.bind(null,e)),(0,jb.lua_register)(t,"BlzGetLocalUnitZ",AH.bind(null,e)),(0,jb.lua_register)(t,"BlzDecPlayerTechResearched",yH.bind(null,e)),(0,jb.lua_register)(t,"BlzSetEventDamage",SH.bind(null,e))}class xH extends ow{}class EH extends ow{}class LH extends ow{}var IH=n(809);class UH{constructor(e,t){this.sleep=0,this.L=(0,IH.lua_newthread)(e),this.expiredTimer=t.expiredTimer||null,this.triggerUnit=t.triggerUnit||null,this.triggeringTrigger=t.triggeringTrigger||null}}class RH extends tp.EventEmitter{constructor(){super(),this.map=null,this.handle=0,this.freeHandles=[],this.handles=[],this.name="",this.description="",this.players=[],this.actualPlayers=0,this.startLocations=[],this.constantHandles=function(){const e=[],t=[],n=[],a=[],r=[],i=[],s=[],l=[],o=[],u=[],c=[],d=[],h=[],f=[],m=[],p=[],_=[],g=[],b=[],w=[],v=[],A=[],y=[],S=[],T=[],x=[],E=[],L=[],I=[],U=[],R=[],C=[],M=[],B=[],N=[],P=[],k=[],O=[],D=[];for(let t=0;t<24;t++)e[t]=new Vw(t);for(let e=0;e<8;e++)t[e]=new uw(e);for(let e=0;e<4;e++)n[e]=new gw(e);for(let e=0;e<10;e++)a[e]=new cw(e);for(let e=0;e<2;e++)r[e]=new qw(e);for(let e=0;e<7;e++)i[e]=new Zw(e);for(let e=0;e<27;e++)s[e]=new Qw(e);for(let e=0;e<24;e++)l[e]=new ev(e);for(let e=0;e<8;e++)o[e]=new nv(e);for(let e=0;e<4;e++)u[e]=new xH(e);for(let e=0;e<11;e++)c[e]=new EH(e);for(let e=11;e<63;e++)d[e]=new LH(e);for(let e=0;e<8;e++){const t=Math.pow(2,e);h[t]=new dw(t)}for(let e=0;e<6;e++)f[e]=new kw(e);for(let e=0;e<8;e++){const t=Math.pow(2,e);m[t]=new Cw(t)}for(let e=0;e<20;e++){const t=Math.pow(2,e);p[t]=new Mw(t)}for(let e=0;e<4;e++)_[e]=new Kw(e);for(let e=0;e<3;e++)g[e]=new Hw(e);for(let e=0;e<4;e++)b[e]=new Pw(e);for(let e=0;e<4;e++)w[e]=new Rw(e);for(let e=0;e<5;e++)v[e]=new Uw(e);for(let e=0;e<3;e++)A[e]=new Ow(e);for(let e=0;e<8;e++)y[e]=new Dw(e);for(let e=0;e<2;e++)S[e]=new fw(e);for(let e=2;e<3;e++)S[e]=new mw(e);for(let e=0;e<26;e++)T[e]=new pw(e);for(let e=0;e<4;e++)x[e]=new bw(e);for(let e=0;e<3;e++)E[e]=new ww(e);for(let e=0;e<25;e++)L[e]=new _w(e);for(let e=0;e<11;e++)I[e]=new Aw(e);for(let e=11;e<18;e++)I[e]=new yw(e);for(let e=18;e<52;e++)I[e]=new Sw(e);for(let e=52;e<89;e++)I[e]=new Tw(e);for(let e=89;e<90;e++)I[e]=new Ew(e);for(let e=90;e<92;e++)I[e]=new Lw(e);for(let e=256;e<260;e++)I[e]=new Aw(e);for(let e=261;e<269;e++)I[e]=new yw(e);for(let e=269;e<278;e++)I[e]=new Sw(e);for(let e=286;e<295;e++)I[e]=new Tw(e);for(let e=0;e<6;e++)U[e]=new xw(e);for(let e=0;e<27;e++)R[e]=new Iw(e);for(let e=0;e<9;e++)C[e]=new Yw(e);for(let e=0;e<7;e++)M[e]=new Fw(e);for(let e=0;e<6;e++)B[e]=new jw(e);for(let e=0;e<1;e++)N[e]=new zw(e);for(let e=0;e<4;e++)P[e]=new Xw(e);for(let e=0;e<3;e++){const t=Math.pow(2,e);k[t]=new Ww(t)}for(let e=0;e<7;e++)O[e]=new $w(e);for(let e=0;e<2;e++)D[e]=new tv(e);return{playerColors:e,races:t,playerGameResults:n,allianceTypes:a,versions:r,attackTypes:i,damageTypes:s,weaponTypes:l,pathingTypes:o,mouseButtonTypes:u,animTypes:c,subAnimTypes:d,racePrefs:h,mapControls:f,gameTypes:m,mapFlags:p,placements:_,startLocPrios:g,mapDensities:b,gameDifficulties:w,gameSpeeds:v,playerSlotStates:A,volumeGroups:y,gameStates:S,playerStates:T,unitStates:x,aiDifficulties:E,playerScores:L,events:I,limitOps:U,unitTypes:R,itemTypes:C,cameraFields:M,blendModes:B,rarityControls:N,texMapFlags:P,fogStates:k,effectTypes:O,soundTypes:D}}(),this.timers=new Set,this.triggers=new Set,this.threads=new Set,this.currentThread=null,this.enumUnit=null,this.filterUnit=null,this.enumPlayer=null,this.t=0,this.L=(0,$b.Zf)(),TH(this),(0,jb.lua_atnativeerror)(this.L,e=>{const t=(0,jb.lua_touserdata)(e,-1);return(0,jb.lua_pushstring)(e,t.stack||"An unknown error occured"),1});for(let e=0;e<28;e++)this.players[e]=this.addHandle(new Zb(e,28))}start(){this.t=performance.now()}step(){const e=performance.now(),t=.001*(e-this.t),n=this.timers,a=this.threads;for(const e of n)if(e.elapsed+=t,e.elapsed>=e.timeout){const t=new UH(this.L,{expiredTimer:e}),a=t.L;(0,jb.lua_rawgeti)(a,Xb.LUA_REGISTRYINDEX,e.handlerFunc),this.threads.add(t),e.periodic?e.elapsed=0:n.delete(e)}for(const e of a)if(e.sleep-=t,e.sleep<=0){this.currentThread=e;const t=e.L,n=(0,Jb.lua_resume)(t,this.L,0);n===Xb.thread_status.LUA_OK?a.delete(e):n===Xb.thread_status.LUA_YIELD?e.sleep=(0,$b.hs)(t,1):(console.log("[JS] Something went wrong during execution"),console.log((0,Xb.to_jsstring)((0,$b.On)(t,-1))),(0,jb.lua_pop)(t,2))}this.t=e}addHandle(e){if(-1===e.handleId){let t;t=this.freeHandles.length?this.freeHandles.pop():this.handle++,this.handles[t]=e,e.handleId=t}return e}freeHandle(e){-1!==e.handleId&&(this.freeHandles.push(e.handleId),this.handles[e.handleId]=null,e.handleId=-1)}call(e){const t=this.L;"string"==typeof e?(0,jb.lua_getglobal)(t,e):"number"==typeof e&&(0,jb.lua_rawgeti)(t,Xb.LUA_REGISTRYINDEX,e),(0,jb.lua_pcall)(t,0,0,0)&&(console.log("Something went wrong during execution"),console.log((0,Xb.to_jsstring)((0,$b.On)(t,-1))),(0,jb.lua_pop)(t,2))}run(e,t){const n=this.L;t&&(e=Wb(e)),(0,$b.rf)(n,(0,Xb.to_luastring)(e))&&(console.log("Something went wrong during execution"),console.log((0,Xb.to_jsstring)((0,$b.On)(n,-1))),(0,jb.lua_pop)(n,2)),(0,jb.lua_pcall)(n,0,0,0)&&(console.log("Something went wrong during execution"),console.log((0,Xb.to_jsstring)((0,$b.On)(n,-1))),(0,jb.lua_pop)(n,2))}open(e){this.map=e;const t=e.getScriptFile();if(t){const e=t.text();if(e){const n=t.name.endsWith(".j");this.run(e,n)}}}}function CH(e,t){const n=e.readSafe(),a=[];e.read();const r=e.readSafe();if("nothing"!==r)for(a.push({type:r,name:e.readSafe()});","===e.read();)a.push({type:e.readSafe(),name:e.readSafe()});else e.read();const i=e.readSafe();let s;s=a.length?"C: Context, L: lua_State":"_C: Context, _L: lua_State";const l=`\n/**\n * ${t?"constant ":""}native ${n} takes ${a.length?a.map(e=>`${e.type} ${e.name}`).join(", "):"nothing"} returns ${i}\n */\nfunction ${n}(${s}): number {\n ${function(e){return e.map((e,t)=>{const n=e.type;if("code"===n)return`let _${e.name} = luaL_ref(L, LUA_REGISTRYINDEX);`;{let a;return a="integer"===n?"luaL_checkinteger":"real"===n?"luaL_checknumber":"boolean"===n?"lua_toboolean":"string"===n?"luaL_checkstring":"lua_touserdata",`let _${e.name} = ${a}(L, ${t+1});`}}).join("\n")}(a)}\n console.warn('${n} was called but is not implemented :(');\n ${function(e){if("nothing"===e)return"return 0";{let t,n;if("integer"===e)t="lua_pushinteger",n="0";else if("real"===e)t="lua_pushnumber",n="0";else if("boolean"===e)t="lua_pushboolean",n="false";else if("string"===e)t="lua_pushstring",n="''";else{if("code"===e)throw"CODE??";t="lua_pushlightuserdata",n="{name: 'FAKE'}"}return`${t}(L, ${n});\nreturn 1;`}}(i)}\n}`;return{name:n,decl:l}}const MH={Context:RH,jass2lua:Wb,types:g,compileNatives:function(e){const t=new qf(e),n=[],a=[];let r;for(;void 0!==(r=t.read());){let e=!1;if("constant"===r&&(e=!0,r=t.read()),"native"===r){const{name:r,decl:i}=CH(t,e);n.push(r),a.push(i)}}return`${a.join("\n")}\n${function(e){return`\n/**\n * Bind natives to the given context.\n */\nexport default function bind(C: Context): void {\nlet L = C.L;\n${e.map(e=>` lua_register(L, '${e}', ${e}.bind(null, C));`).join("\n")}\n}`}(n)}\n`}};function BH(e,t,n){if(-1===n){const n=e.model.sequences;for(let e=0,a=n.length;e<a;e++){const a=n[e].interval;if(t>=a[0]&&t<=a[1])return e}}else{const a=e.model.globalSequences[n];if(t>=0&&t<=a)return n}return-1}function NH(e,t,n){let a=0;for(let r=0,i=e.length;r<i;r++){const i=e[r],s=Math.abs(i-t[r]),l=Math.abs(i-n[r]);s>a&&(a=s),l>a&&(a=l)}return a}function PH(e,t,n,a,r){const{globalSequenceId:i,interpolationType:s,values:l}=a;let o;o=-1===i?e.model.sequences[n].interval[0]:0;const u=t[0],c=t[t.length-1],d=r[u];if(0!==s&&d!==o){(function(e,t){for(let n=0,a=e.length;n<a;n++)if(e[n]!==t[n])return!1;return!0})(l[u],l[c])||e.addSevere(`Missing opening track for ${function(e,t,n){return-1===n?`sequence "${e.model.sequences[t].name}"`:`global sequence ${n}`}(e,n,i)} at frame ${o} where it is needed`)}if(t.length>2){let n=l[t[0]],a=l[t[1]];for(let i=2,s=t.length;i<s;i++){const s=l[t[i]],o=t[i-1],u=NH(n,a,s);0===u?e.addUnused(`Track ${o} at frame ${r[o]} has exactly the same value as tracks ${o-1} and ${o+1}`):u<.001&&e.addUnused(`Track ${o} at frame ${r[o]} has roughly the same value as tracks ${o-1} and ${o+1}`),n=a,a=s}}}function kH(e,t){let n;t instanceof ro?(e.assertWarning(t.frames.length>0,"Zero tracks"),n=t.frames):(e.assertError(t.tracks.length>0,"Zero tracks"),n=t.tracks);const a=t.globalSequenceId,r=[];if(-1===a){e.assertWarning(e.model.sequences.length>0,"This animation exists, but the model has no sequences");for(let t=0,n=e.model.sequences.length;t<n;t++)r.push([])}else{if(!zH(e,e.model.globalSequences,a,"global sequence"))return;r[a]=[]}if(function(e,t,n,a){let r=-1/0;for(let i=0,s=t.length;i<s;i++){const s=t[i];e.assertWarning(s>=0,`Track ${i} has a negative frame ${s}`),s===r?e.addWarning(`Track ${i} has the same frame ${s} as track ${i-1}`):s<r&&e.addSevere(`Track ${i} at frame ${s} is lower than the track before it at ${r}`);const l=BH(e,s,n);-1!==l?a[l].push(i):0!==s&&t.length>1&&(-1===n?e.addUnused(`Track ${i} at frame ${s} is not in any sequence`):e.addUnused(`Track ${i} at frame ${s} is not in global sequence ${n}`)),r=s}}(e,n,a,r),t instanceof ro)for(let a=0,i=r.length;a<i;a++){const i=r[a];i&&i.length>1&&PH(e,i,a,t,n)}}const OH=new Set(["attack","birth","cinematic","death","decay","dissipate","morph","portrait","sleep","spell","stand","walk","ready"]),DH=new Set([1,2,11,21,31,32,33,34,35,36,37]),FH=new Map([["KMTF","Texture ID"],["KMTA","Alpha"],["KMTE","Emissive Gain"],["KFC3","Fresnel Color"],["KFCA","Fresnel Opacity"],["KFTC","Fresnel Team Color"],["KTAT","Translation"],["KTAR","Rotation"],["KTAS","Scaling"],["KGAO","Alpha"],["KGAC","Color"],["KGTR","Translation"],["KGRT","Rotation"],["KGSC","Scaling"],["KLAS","Attenuation Start"],["KLAE","Attenuation End"],["KLAC","Color"],["KLAI","Intensity"],["KLBI","Ambient Intensity"],["KLBC","Ambient Color"],["KLAV","Visibility"],["KATV","Visibility"],["KPEE","Emission Rate"],["KPEG","Gravity"],["KPLN","Longitude"],["KPLT","Latitude"],["KPEL","Lifespan"],["KPES","Speed"],["KPEV","Visibility"],["KP2E","Emission Rate"],["KP2G","Gravity"],["KP2L","Latitude"],["KP2R","Variation"],["KP2N","Length"],["KP2W","Width"],["KP2S","Speed"],["KP2V","Visibility"],["KPPA","Alpha"],["KPPC","Color"],["KPPE","EmissionRate"],["KPPL","LifeSpan"],["KPPS","Speed"],["KPPV","Visibility"],["KRHA","Height Above"],["KRHB","Height Below"],["KRAL","Alpha"],["KRCO","Color"],["KRTX","Texture Slot"],["KRVS","Visibility"],["KCTR","Translation"],["KTTR","Rotation"],["KCRL","Target Translation"]]);function GH(e){return e instanceof no?"Extent":e instanceof ao?"Sequence":"number"==typeof e?"GlobalSequence":e instanceof po?"Texture":e instanceof mo?"Material":e instanceof fo?"Layer":e instanceof _o?"TextureAnimation":e instanceof go?"Geoset":e instanceof bo?"GeosetAnimation":e instanceof vo?"Bone":e instanceof Ao?"Light":e instanceof yo?"Helper":e instanceof So?"Attachment":e instanceof To?"ParticleEmitter":e instanceof xo?"ParticleEmitter2":e instanceof Eo?"ParticleEmitterPopcorn":e instanceof Lo?"RibbonEmitter":e instanceof Uo?"EventObject":e instanceof Io?"Camera":e instanceof Ro?"CollisionShape":e instanceof Co?"FaceEffect":e instanceof ro?FH.get(e.name):(console.warn("Unknown object type",e),"Unknown")}function VH(e,t){let n=GH(e);return e instanceof ro||e instanceof no||(n+=` ${t}`),(e instanceof ao||e instanceof wo||e instanceof Io)&&(n+=` - "${e.name}"`),(e instanceof po||e instanceof Co)&&(e.path.length&&(n+=` - "${Sl(e.path)}"`),e instanceof po&&(1===e.replaceableId?n+=" - Team color":2===e.replaceableId?n+=" - Team glow":e.replaceableId>0&&(n+=` - Replaceable ID ${e.replaceableId}`))),n}function KH(e,t,n){const a=t.length;if(a){const r=t[0]instanceof co,i=t[0]instanceof wo;for(let s=0;s<a;s++){const a=t[s];if(e.push(a,s),n&&n(e,a,s),r){KH(e,a.animations,$H)}if(i){const t=a,n=t.objectId,r=t.parentId;e.assertError(-1===r||XH(e,r),`Invalid parent ${r}`),e.assertError(n!==r,"Same object and parent")}e.pop()}}}function HH(e,t,n,a){return n>=0&&n<t.length?(e.addReference(t[n]),t[n]):void e.addError(`Invalid ${a} ${n}`)}function zH(e,t,n,a){return void 0!==HH(e,t,n,a)}function jH(e,t,n,a){const r=e.objects[n];var i,s;if(a&&e.assertError((s=255,(i=n)>=0&&i<=s),`Vertex ${t}: References bone ${n} but there can only be 256 bones in an HD model`),r)if(r instanceof vo){const t=e.boneUsageMap.get(n)||0;e.boneUsageMap.set(n,t+1)}else e.addSevere(`Vertex ${t}: Attached to "${r.name}" which is not a bone`);else e.addError(`Vertex ${t}: Attached to object ${n} which does not exist`)}function XH(e,t){for(const n of e.objects)if(n.objectId===t)return!0;return!1}function $H(e,t){const n=t.name,a=t.interpolationType;e.assertWarning("KP2R"!==n,"Using a variation animation."),e.assertWarning("KP2G"!==n,"Using a gravity animation."),e.assertWarning("Visibility"!==FH.get(n)||0===a,"Interpolation type not set to None"),kH(e,t)}function JH(e){const t=e.nodes;for(let e=t.length-1;e>=0;e--){const n=t[e];"node"===n.type&&(n.errors||n.severe||n.warnings||n.unused||void 0!==n.uses&&!n.uses?JH(n):t.splice(e,1))}}function WH(e,t){e.push(t,0);const{max:n,min:a}=t;(n[0]-a[0]<0||n[1]-a[1]<0||n[2]-a[2]<0)&&e.addWarning("Negative extents"),e.pop()}class qH{constructor(e){this.objects=[],this.map=new Map,this.foundStand=!1,this.foundDeath=!1,this.boneUsageMap=new Map,this.model=e,this.current={type:"node",name:"",errors:0,severe:0,warnings:0,unused:0,nodes:[]},this.stack=[this.current],this.addObjects(e.sequences),this.addObjects(e.globalSequences),this.addObjects(e.textures),this.addObjects(e.materials),this.addObjects(e.textureAnimations),this.addObjects(e.geosets),this.addObjects(e.geosetAnimations),this.addObjects(e.bones),this.addObjects(e.lights),this.addObjects(e.helpers),this.addObjects(e.attachments),this.addObjects(e.particleEmitters),this.addObjects(e.particleEmitters2),this.addObjects(e.particleEmittersPopcorn),this.addObjects(e.ribbonEmitters),this.addObjects(e.cameras),this.addObjects(e.eventObjects),this.addObjects(e.collisionShapes),this.addObjects(e.faceEffects)}addObjects(e){if(e.length){const t=e[0]instanceof wo;for(let n=0,a=e.length;n<a;n++){const a=e[n],r={type:"node",name:VH(a,n),errors:0,severe:0,warnings:0,unused:0,nodes:[]};t||(r.uses=0),this.map.set(a,r)}t&&this.objects.push(...e)}}push(e,t){let n=this.map.get(e);if(!n){n={type:"node",name:VH(e,t),errors:0,severe:0,warnings:0,unused:0,nodes:[]}}this.current.nodes.push(n),this.current=n,this.stack.unshift(n)}pop(){this.stack.shift(),this.current=this.stack[0]}addReference(e){const t=this.map.get(e);void 0!==t.uses&&(t.uses+=1)}addImplicitReference(){const e=this.current;void 0!==e.uses&&(e.uses+=1)}addError(e){this.current.nodes.push({type:"error",message:e});for(const e of this.stack)e.errors+=1}addSevere(e){this.current.nodes.push({type:"severe",message:e});for(const e of this.stack)e.severe+=1}addWarning(e){this.current.nodes.push({type:"warning",message:e});for(const e of this.stack)e.warnings+=1}addUnused(e){this.current.nodes.push({type:"unused",message:e});for(const e of this.stack)e.unused+=1}assertError(e,t){e||this.addError(t)}assertSevere(e,t){e||this.addSevere(t)}assertWarning(e,t){e||this.addWarning(t)}assertUnused(e,t){e||this.addUnused(t)}}function YH(e,t,n){const a=t.name.toLowerCase().trim().split("-")[0].split(/\s+/);let r=a[0];const i=t.interval,s=i[1]-i[0],l=e.model.sequences;for(let t=0;t<n;t++){const n=l[t],a=n.interval;800===e.model.version&&(i[0]===a[0]?e.addSevere(`This sequence starts at the same frame as sequence ${t} "${n.name}"`):i[0]<a[1]&&e.addSevere(`This sequence starts before sequence ${t} "${n.name}" ends`))}"alternate"===r&&(r=a[1]),"stand"===r&&(e.foundStand=!0),"death"===r&&(e.foundDeath=!0),e.addImplicitReference(),e.assertWarning(OH.has(r),`"${r}" is not a standard name`),e.assertWarning(0!==s,"Zero length"),e.assertWarning(s>-1,`Negative length: ${s}`),WH(e,t.extent)}function ZH(e,t){e.assertWarning(0!==t,"Zero length"),e.assertWarning(t>=0,`Negative length: ${t}`)}function QH(e,t){const n=t.replaceableId,a=t.path.toLowerCase(),r=Tl(a);e.assertError(""===a||".blp"===r||".tga"===r||".tif"===r||".dds"===r,`Corrupted path: "${a}"`),e.assertError(0===n||DH.has(n),`Unknown replaceable ID: ${n}`),e.assertWarning(""===a||0===n,`Path "${a}" and replaceable ID ${n} used together`)}function ez(e,t){const n=t.layers,a=t.shader;e.model.version>800&&e.assertWarning(""===a||"Shader_SD_FixedFunction"===a||"Shader_HD_DefaultUnit"===a,`Unknown shader: "${a}"`),n.length?KH(e,n,tz):e.addWarning("No layers")}function tz(e,t){const n=e.model.textures,a=e.model.textureAnimations;for(const a of function(e){for(const t of e.animations)if("KMTF"===t.name)return Sb(t.values.map(e=>e[0]));return[e.textureId]}(t))zH(e,n,a,"texture");const r=t.textureAnimationId;-1!==r&&zH(e,a,r,"texture animation");const i=t.filterMode;e.assertWarning(i>=0&&i<=6,`Invalid filter mode: ${t.filterMode}`)}function nz(e,t,n){const a=e.model.geosetAnimations,r=HH(e,e.model.materials,t.materialId,"material");let i=!1;if(r&&"Shader_HD_DefaultUnit"===r.shader&&(i=!0),!i){const n=22299;e.assertSevere(t.vertices.length<n,"Too many vertices in one geoset: "+t.vertices.length/3)}if(function(e,t){if(e.model.version>800&&t.skin.length){e.assertWarning(0===t.vertexGroups.length,"This geoset has both skin/weights and vertex groups");const n=t.skin;for(let t=0,a=n.length/8;t<a;t++){const a=8*t,r=n[a],i=n[a+1],s=n[a+2],l=n[a+3],o=n[a+4],u=n[a+5],c=n[a+6],d=n[a+7];o>0&&jH(e,t,r,!0),u>0&&jH(e,t,i,!0),c>0&&jH(e,t,s,!0),d>0&&jH(e,t,l,!0);const h=o+u+c+d;0===h?e.addSevere(`Vertex ${t}: Not attached to anything`):255!==h&&e.addSevere(`Vertex ${t}: The weights are not normalized to 1`)}}else if(e.model.bones.length){const n=t.vertexGroups,a=t.matrixGroups,r=t.matrixIndices,i=[];for(let e=0,t=a.length,n=0;e<t;e++)i.push(r.subarray(n,n+a[e])),n+=a[e];for(let t=0,a=n.length;t<a;t++){const a=i[n[t]];if(a)for(const n of a)jH(e,t,n,!1);else{const a=n[t];255===a?e.addSevere(`Vertex ${t}: Not attached to anything`):e.addSevere(`Vertex ${t}: Attached to vertex group ${a} which does not exist`)}}}}(e,t),a.length){const t=[];for(let e=0,r=a.length;e<r;e++)a[e].geosetId===n&&t.push(e);e.assertWarning(t.length<=1,`Referenced by ${t.length} geoset animations: ${t.join(", ")}`)}t.faces.length?e.addImplicitReference():e.addWarning("Zero faces"),t.sequenceExtents.length!==e.model.sequences.length&&800===e.model.version&&e.addWarning(`Number of sequence extents (${t.sequenceExtents.length}) does not match the number of sequences (${e.model.sequences.length})`),WH(e,t.extent);for(const n of t.sequenceExtents)WH(e,n)}function az(e,t){const n=e.model.geosets,a=t.geosetId;e.addImplicitReference(),zH(e,n,a,"geoset")}function rz(e,t,n){const a=e.model.geosets,r=e.model.geosetAnimations,i=t.geosetId,s=t.geosetAnimationId;if(-1!==i&&zH(e,a,i,"geoset"),-1!==s&&zH(e,r,s,"geoset animation")){const t=r[s];-1!==i&&t.alpha<.1&&!function(e,t){for(const n of e.animations)if(n.name===t)return!0;return!1}(t,"KGAO")&&e.addSevere(`Referencing geoset ${i} and geoset animation ${s} with a 0 alpha, the geoset may be invisible`)}e.assertWarning(e.boneUsageMap.get(n)>0,"There are no vertices attached to this bone")}function iz(e,t){const n=t.attenuation;e.assertWarning(n[0]>=80,`Minimum attenuation should probably be bigger than or equal to 80, but is ${n[0]}`),e.assertWarning(n[1]<=200,`Maximum attenuation should probably be smaller than or equal to 200, but is ${n[1]}`),e.assertWarning(n[1]-n[0]>0,"The maximum attenuation should be bigger than the minimum, but isn't")}function sz(e,t){const n=t.path.toLowerCase();e.assertError(n.endsWith(".mdl")||n.endsWith(".mdx"),"Invalid path")}function lz(e,t){const n=t.replaceableId;zH(e,e.model.textures,t.textureId,"texture");const a=t.filterMode;e.assertWarning(a>=0&&a<=4,`Invalid filter mode: ${t.filterMode}`),e.assertError(0===n||DH.has(n),`Invalid replaceable ID: ${n}`),1048576&t.flags&&e.assertSevere(0!==t.speed&&0!==t.latitude,"XY Quad emitters must have a non-zero speed and latitude"),e.assertSevere(t.timeMiddle>=0&&t.timeMiddle<=1,`Expected time middle to be between 0 and 1, got ${t.timeMiddle}`),t.squirt&&!function(e,t){for(const n of e.animations)if(n.name===t)return n}(t,"KP2E")&&e.addSevere("Using squirt without animating the emission rate")}function oz(e,t){e.assertSevere(t.animationVisiblityGuide.length>0,"No animation visibility guide")}function uz(e,t){zH(e,e.model.materials,t.materialId,"material")}function cz(e,t){kH(e,t)}function dz(e,t){e.addImplicitReference()}function hz(e,t){const n=t.path;n.length&&e.assertError(n.endsWith(".facefx")||n.endsWith(".facefx_ingame"),`Corrupted face effect path: "${n}"`),e.addImplicitReference()}function fz(e,t){return{vertices:new Float32Array([-e,t,0,-e,-t,0,e,-t,0,e,t,0]),uvs:new Float32Array([0,0,0,1,1,1,1,0]),faces:new Uint16Array([0,1,2,0,2,3]),edges:new Uint16Array([0,1,1,2,2,3,3,0]),boundingRadius:Math.hypot(e,t)}}function mz(){return fz(1,1)}function pz(e,t,n){return{vertices:new Float32Array([-e,-t,-n,-e,-t,n,-e,t,-n,-e,t,n,e,t,-n,e,t,n,e,-t,-n,e,-t,n]),uvs:new Float32Array([0,0,0,1,.25,0,.25,1,.5,0,.5,1,.75,0,.75,1]),faces:new Uint16Array([0,1,2,1,3,2,2,3,4,3,5,4,4,5,6,5,7,6,6,7,0,7,1,0,0,2,4,0,4,6,1,5,3,1,7,5]),edges:new Uint16Array([0,1,2,3,4,5,6,7,0,2,2,4,4,6,6,0,1,3,3,5,5,7,7,1]),boundingRadius:Math.hypot(e,t,n)}}function _z(){return pz(1,1,1)}function gz(e,t,n){const a=(t+1)*(n+1),r=new Float32Array(3*a),i=new Float32Array(2*a),s=new Uint16Array(t*n*6),l=new Uint16Array(t*n*6);for(let a=0,s=0,l=0;a<=t;a++){const o=a*Math.PI/t,u=Math.sin(o),c=Math.cos(o);for(let o=0;o<=n;o+=1,s+=3,l+=2){const d=2*o*Math.PI/n,h=Math.sin(d),f=Math.cos(d);r[s+0]=f*u*e,r[s+1]=h*u*e,r[s+2]=c*e,i[l+0]=o/n,i[l+1]=1-a/t}}for(let e=0,a=0;e<t;e++)for(let t=0;t<n;t+=1,a+=6){const r=e*(n+1)+t,i=r+n+1;s[a+0]=r,s[a+1]=i,s[a+2]=r+1,s[a+3]=i,s[a+4]=i+1,s[a+5]=r+1,l[a+0]=r,l[a+1]=i,l[a+2]=r,l[a+3]=r+1,l[a+4]=i,l[a+5]=i+1}return{vertices:r,uvs:i,faces:s,edges:l,boundingRadius:e}}function bz(e,t){return gz(1,e,t)}function wz(e,t,n){const a=2*((n=Math.max(n,3))+1)+2,r=new Float32Array(3*a),i=new Float32Array(2*a),s=new Uint16Array(12*n),l=new Uint16Array(10*n),o=2*Math.PI/n;let u=0,c=0;for(let a=0;a<n+1;a+=1,u+=6,c+=4){const s=Math.cos(o*a)*e,l=Math.sin(o*a)*e,d=a/n;r[u+0]=s,r[u+1]=l,r[u+2]=t,r[u+3]=s,r[u+4]=l,r[u+5]=-t,i[c+0]=d,i[c+1]=1,i[c+2]=d,i[c+3]=0}r[u+0]=0,r[u+1]=0,r[u+2]=t,r[u+3]=0,r[u+4]=0,r[u+5]=-t,i[c+0]=0,i[c+1]=1,i[c+2]=0,i[c+3]=0;for(let e=0,t=0,r=0;e<n;e+=1,t+=12,r+=10){const n=2*e;s[t+0]=n+0,s[t+1]=n+1,s[t+2]=(n+3)%(a-2),s[t+3]=n+0,s[t+4]=(n+3)%(a-2),s[t+5]=(n+2)%(a-2),s[t+6]=n+0,s[t+7]=(n+2)%(a-2),s[t+8]=a-2,s[t+9]=n+1,s[t+10]=(n+3)%(a-2),s[t+11]=a-1,l[r+0]=n+0,l[r+1]=n+1,l[r+2]=n+0,l[r+3]=(n+2)%(a-2),l[r+4]=n+1,l[r+5]=(n+3)%(a-2),l[r+6]=n+0,l[r+7]=a-2,l[r+8]=n+1,l[r+9]=a-1}return{vertices:r,uvs:i,faces:s,edges:l,boundingRadius:Math.hypot(e,t)}}function vz(e){return wz(1,1,e)}function Az(e,t,n,a){const r=2*Math.tan(e/2),i=r*n/2,s=n*t/2,l=r*a/2,o=a*t/2;return{vertices:new Float32Array([-s,-i,n,-s,i,n,-o,-l,a,-o,l,a,o,-l,a,o,l,a,s,-i,n,s,i,n]),uvs:new Float32Array([0,0,0,1,.25,0,.25,1,.5,0,.5,1,.75,0,.75,1]),faces:new Uint16Array([0,1,2,1,3,2,2,3,4,3,5,4,4,5,6,5,7,6,6,7,0,7,1,0,0,2,4,0,4,6,1,5,3,1,7,5]),edges:new Uint16Array([0,1,2,3,4,5,6,7,0,2,2,4,4,6,6,0,1,3,3,5,5,7,7,1]),boundingRadius:Math.hypot(o,l)}}function yz(e,t,n,a){if(n.length)for(const[r,i]of n.entries())i.writeMdl(e,t.version),a.push({name:VH(i,r),source:e.buffer}),e.clear()}function Sz(e,t,n,a){if(n.length){const r=GH(n[0])+"s",i=[];yz(e,t,n,i),t.saveStaticObjectsBlock(e,r,n),a.push({name:r,source:e.buffer,nodes:i}),e.clear()}}const Tz={sanityTest:function(e){const t=new qH(e);!function(e){const t=e.model.version;800!==t&&900!==t&&1e3!==t&&e.addWarning(`Unknown version: ${t}`),900===t&&e.addError("Version 900 is not supported by Warcrft 3"),""!==e.model.animationFile&&e.addWarning(`The animation file should probably be empty, currently set to: "${e.model.animationFile}"`),WH(e,e.model.extent)}(t),function(e){const t=e.model.sequences;t.length?(KH(e,t,YH),e.assertSevere(e.foundStand,'Missing "Stand" sequence'),e.assertSevere(e.foundDeath,'Missing "Death" sequence')):e.addWarning("No sequences")}(t),KH(t,e.globalSequences,ZH),function(e){const t=e.model.textures;t.length?KH(e,t,QH):e.addWarning("No textures")}(t),KH(t,e.materials,ez),KH(t,e.textureAnimations),KH(t,e.geosets,nz),KH(t,e.geosetAnimations,az),KH(t,e.bones,rz),KH(t,e.lights,iz),KH(t,e.helpers),function(e){const t=e.model.attachments;let n=!1;for(const a of t){const t=a.path;if(t.length){const n=t.toLowerCase();e.assertError(n.endsWith(".mdl")||n.endsWith(".mdx"),`Invalid path "${t}"`)}a.name.startsWith("Origin Ref")&&(n=!0)}n||e.addWarning("Missing the Origin attachment point")}(t),function(e){const t=e.model.pivotPoints,n=e.objects;e.assertWarning(t.length===n.length,`Expected ${n.length} pivot points, got ${t.length}`)}(t),KH(t,e.particleEmitters,sz),KH(t,e.particleEmitters2,lz),e.version>800&&KH(t,e.particleEmittersPopcorn,oz),KH(t,e.ribbonEmitters,uz),KH(t,e.eventObjects,cz),KH(t,e.cameras,dz),KH(t,e.collisionShapes),e.version>800&&(KH(t,e.faceEffects,hz),function(e){const t=e.model.bindPose,n=e.objects;t.length&&n.length&&e.assertWarning(t.length===n.length+1,`Expected ${n.length+1} matrices, got ${t.length}`)}(t));const n=t.stack[0];JH(n);const{nodes:a,errors:r,severe:i,warnings:s}=n;let{unused:l}=n;for(const e of a)"node"===e.type&&0===e.uses&&(l+=1);return{type:"node",nodes:a,errors:r,severe:i,warnings:s,unused:l}},createPrimitive:function(e,t,n){let a,r,i,s=1;n&&(a=n.lines,r=n.color,i=n.texture,n.twoSided&&(s|=16));const l=new Po,o=l.extent,u=t.boundingRadius;o.min.fill(-u),o.max.fill(u),o.boundsRadius=u;const c=new po;c.path="PLACEHOLDER",l.textures[0]=c;const d=new mo,h=new fo;h.textureId=0,h.flags=s,d.layers[0]=h,l.materials[0]=d;const f=new go;f.vertices=t.vertices,f.uvSets[0]=t.uvs,f.matrixGroups=new Uint32Array([1]),f.matrixIndices=new Uint32Array([0]),f.vertexGroups=new Uint8Array(t.vertices.length/3);let m=4,p=t.faces;if(a&&(m=1,p=t.edges),f.faceTypeGroups=new Uint32Array([m]),f.faceGroups=new Uint32Array([p.length]),f.faces=p,l.geosets[0]=f,r){const e=new bo;e.geosetId=0,e.color=r,l.geosetAnimations[0]=e}const _=new vo;return _.objectId=0,l.bones[0]=_,e.load(l,e=>e===l?l:i)},primitives:b,mdlStructure:function(e){const t=new to,n=[];if(e.saveVersionBlock(t),n.push({name:"Version",source:t.buffer}),t.clear(),e.saveModelBlock(t),n.push({name:"Model",source:t.buffer}),t.clear(),Sz(t,e,e.sequences,n),e.globalSequences.length&&(e.saveGlobalSequenceBlock(t),n.push({name:"GlobalSequences",source:t.buffer}),t.clear()),Sz(t,e,e.textures,n),e.materials.length){const a=[];for(const[n,r]of e.materials.entries()){const i=[];yz(t,e,r.layers,i),r.writeMdl(t,e.version),a.push({name:`Material ${n}`,source:t.buffer,nodes:i}),t.clear()}e.saveStaticObjectsBlock(t,"Materials",e.materials),n.push({name:"Materials",source:t.buffer,nodes:a}),t.clear()}return Sz(t,e,e.textureAnimations,n),yz(t,e,e.geosets,n),yz(t,e,e.geosetAnimations,n),yz(t,e,e.bones,n),yz(t,e,e.lights,n),yz(t,e,e.helpers,n),yz(t,e,e.attachments,n),e.pivotPoints.length&&(e.savePivotPointBlock(t),n.push({name:"PivotPoints",source:t.buffer}),t.clear()),yz(t,e,e.particleEmitters,n),yz(t,e,e.particleEmitters2,n),yz(t,e,e.particleEmittersPopcorn,n),yz(t,e,e.ribbonEmitters,n),yz(t,e,e.cameras,n),yz(t,e,e.eventObjects,n),yz(t,e,e.collisionShapes,n),yz(t,e,e.faceEffects,n),e.bindPose.length&&(e.saveBindPoseBlock(t),n.push({name:"BindPose",source:t.buffer}),t.clear()),n}};function xz(e,t,n,a){if(n.has(t.name)){const r=n.get(t.name).args;for(const[n,i]of t.parameters.entries()){const{type:t,value:s}=i;if(1===t){for(const t of e.variables)if(t.name===s){r[n]=t.type;break}}else if(2===t){if(i.subParameters){const e=i.subParameters,t=a.getFunction(e.type,e.name);if(t){const e=t.returnType;e&&"AnyType"!==e&&(r[n]=e)}}}else if(3===t)if(s.startsWith("TRIGSTER_")||s.includes("\\"))r[n]="string";else if("true"===s||"false"===s)r[n]="boolean";else if(!isNaN(parseFloat(s))){const e=parseFloat(s);isNaN(e)||(Number.isInteger(e)&&!s.includes(".")?r[n]="integer":r[n]="real")}}}for(const r of t.parameters)2===r.type&&r.subParameters&&xz(e,r.subParameters,n,a);if(t instanceof uf)for(const r of t.ecas)xz(e,r,n,a)}class Ez{constructor(e,t){this.preplacedObjects=new Map,this.changes=[],this.stack=[],this.triggerData=e,this.stringTable=t}push(e){this.stack.unshift(e)}pop(){this.stack.shift()}change(e,t,n){this.changes.push({type:e,reason:t,data:n,stack:this.stackToString()})}stackToString(){return this.stack.map(e=>e instanceof of?e.value:e.name).reverse().join(" > ")}getTriggerName(){for(const e of this.stack)if(e instanceof cf)return e.name;return""}updateGUIReference(e,t){if(e.startsWith("gg_unit")||e.startsWith("gg_dest")){const n=this.preplacedObjects;n.get(e)||n.set(e,t)}}saveGUIReferences(e,t){const n=[];for(const[e,t]of this.preplacedObjects)t||n.push(e);if(n.length){const a=new cf;a.name="PreplacedObjectReferences",a.isEnabled=1,a.isInitiallyOff=1;for(const e of n){const t=new uf;t.type=2,t.isEnabled=1,e.startsWith("gg_unit")?t.name="RemoveUnit":e.startsWith("gg_dest")&&(t.name="RemoveDestructable");const n=new of;n.type=1,n.value=e,t.parameters[0]=n,a.ecas.push(t)}e.push(a),t.push(new nf),this.change("references","Saved references to preplaced objects lost due to conversions",n.join("\n"))}}}function Lz(e){return function(e,t){const n=new uf;n.type=2,n.name=t?"CommentString":"CustomScriptCode",n.isEnabled=1;const a=new of;return a.type=3,a.value=e,n.parameters[0]=a,n}(e,!1)}function Iz(e,t){const n=new uf;return n.name=e.name,n.type=e.type,n.group=t,n.isEnabled=1,n.parameters.push(...e.parameters),n}function Uz(e,t){return 0===t&&("AndMultiple"===e||"OrMultiple"===e||"IfThenElseMultiple"===e)}function Rz(e){const t=[];for(const n of e)if("CustomScriptCode"===n.name){const e=n.parameters[0].value;if(js(e)>239){const a=Xs(e,239),r=a.length,i=r-1;for(let e=0;e<r;e++){let r="";e>0&&(r+="*/"),r+=a[e],e<i&&(r+="/*");const s=Lz(r);s.group=n.group,t.push(s)}}else t.push(n)}else t.push(n);return t}function Cz(e){return e.split("").map(e=>e.charCodeAt(0)>127?"_":e).join("").replace(/\s/g,"_")}const Mz=new Set(["OperatorCompareBoolean","OperatorCompareAbilityId","OperatorCompareBuffId","OperatorCompareDestructible","OperatorCompareDestructableCode","OperatorCompareButton","OperatorCompareGameDifficulty","OperatorCompareGameSpeed","OperatorCompareHeroSkill","OperatorCompareInteger","OperatorCompareItem","OperatorCompareItemType","OperatorCompareItemCode","OperatorCompareMouseButton","OperatorCompareMeleeDifficulty","OperatorCompareOrderCode","OperatorComparePlayer","OperatorComparePlayerColor","OperatorComparePlayerControl","OperatorComparePlayerSlotStatus","OperatorCompareRace","OperatorCompareReal","OperatorCompareString","OperatorCompareTechCode","OperatorCompareTerrainType","OperatorCompareTrigger","OperatorCompareUnit","OperatorCompareUnitCode","OperatorInt","OperatorReal"]),Bz=new Set(["EnumDestructablesInRectAllMultiple","EnumDestructablesInCircleBJMultiple","EnumItemsInRectBJMultiple","ForForceMultiple","ForGroupMultiple"]);function Nz(e,t,n){const a=Cz(t.name),r=[],i=[],s=[];for(const e of t.ecas)0===e.type?r.push(e):1===e.type?i.push(e):s.push(e);const l=[];if(r.length||i.length||s.length){const t=[],o=[],u=[],c=`gg_trg_${a}`,d=new of;d.type=3,d.value=c,t.push(`set ${c} = CreateTrigger()`);for(const a of r){a.parameters.unshift(d);for(const r of Pz(e,a,n))t.push(r.parameters[0].value)}if(i.length){t.push(`call TriggerAddCondition(${c}, Condition(function Trig_${a}_Conditions)`);for(const t of i)for(const a of Pz(e,t,n))o.push(`if ${a.parameters[0].value} then\r\n return true\r\nendif`)}if(s.length){t.push(`call TriggerAddAction(${c}, function Trig_${a}_Actions)`);for(const t of s)for(const a of Pz(e,t,n))u.push(a.parameters[0].value)}u.length&&l.push(`function Trig_${a}_Actions takes nothing returns nothing\r\n${u.join("\r\n")}\r\nendfunction`),o.length&&l.push(`function Trig_${a}_Conditions takes nothing returns boolean\r\n${o.join("\r\n")}\r\nreturn false\r\nendfunction`),l.push(`function InitTrig_${a} takes nothing returns nothing\r\n${t.join("\r\n")}\r\nendfunction`)}return l.join("\r\n")}function Pz(e,t,n){const a=t.name,r=[],i=t.parameters,s=e.triggerData.getFunction(t.type,t.name);if(!s)throw new Error(`Could not find a function signature: ${a}. Stack: ${e.stackToString()}`);let{args:l,scriptName:o}=s;const u=l.length;let c=!1,d=!1,h=!1;const f=t;if(o=o||t.name,u){const e=l[u-1];"code"===e||Bz.has(a)?c=!0:"boolexpr"===e?d=!0:"scriptcode"===e&&(h=!0)}if("IfThenElse"===a)r.push(`if ${kz(e,i[0],l[0],n)} then`),r.push(`call ${kz(e,i[1],l[1],n)}`),r.push("else"),r.push(`call ${kz(e,i[2],l[2],n)}`),r.push("endif");else if("OrMultiple"===a)r.push(f.ecas.slice().map(t=>Pz(e,t,n).map(e=>e.parameters[0].value)).join(" or "));else if("AndMultiple"===a)r.push(f.ecas.slice().map(t=>Pz(e,t,n).map(e=>e.parameters[0].value)).join(" and "));else if("ForLoopAMultiple"===a||"ForLoopBMultiple"===a||"ForLoopVarMultiple"===a){let t,s="A";if("ForLoopBMultiple"===a?s="B":"ForLoopVarMultiple"===a&&(s="Var"),"A"===s||"B"===s){t=`bj_forLoop${s}Index`;const a=`${t}End`;r.push(`set ${t} = ${kz(e,i[0],l[0],n)}`),r.push(`set ${a} = ${kz(e,i[1],l[1],n)}`),r.push("loop"),r.push(`exitwhen ${t} > ${a}`)}else t=kz(e,i[0],l[0],n),r.push(`set ${t} = ${kz(e,i[1],l[1],n)}`),r.push("loop"),r.push(`exitwhen ${t} > ${kz(e,i[2],l[2],n)}`);for(const t of f.ecas){const a=Pz(e,t,n);for(const e of a)r.push(`${e.parameters[0].value}`)}r.push(`set ${t} = ${t} + 1`),r.push("endloop")}else if("IfThenElseMultiple"===a){let t;const a=[],i=[];for(const e of f.ecas)0===e.group?t=e:1===e.group?a.push(e):2===e.group&&i.push(e);t&&r.push(`if ${Pz(e,t,n)[0].parameters[0].value} then`);for(const t of a){const a=Pz(e,t,n);for(const e of a)r.push(`${e.parameters[0].value}`)}if(i.length){r.push("else");for(const t of i){const a=Pz(e,t,n);for(const e of a)r.push(`${e.parameters[0].value}`)}}r.push("endif")}else if(c||d){const a=`Trig_${Cz(e.getTriggerName())}_Func${n.length}`;let s=`function ${a}`,u="nothing",c="call",h=i.length-1;const m=t.name.endsWith("Multiple");d&&(s=`Filter(${s})`,u="boolean",c="return"),m&&(h=i.length);const p=n.length;n[p]="NOTHING";const _=[...i.slice(0,h).map((t,a)=>kz(e,t,l[a],n)),s];let g;t instanceof uf?r.push(`call ${o}(${_.join(", ")})`):r.push(`${o}(${_.join(", ")})`),g=m?f.ecas.map(t=>Pz(e,t,n).map(e=>e.parameters[0].value).join("\r\n")).join("\r\n"):`${c} ${kz(e,i[h],l[h],n)}`,n[p]=`function ${a} takes nothing returns ${u}\r\n${g}\r\nendfunction`}else h?r.push(kz(e,f.parameters[0],"scriptcode",n)):"SetVariable"===a?r.push(`set ${kz(e,i[0],l[0],n)} = ${kz(e,i[1],l[1],n)}`):"OperatorString"===a?r.push(`${kz(e,i[0],l[0],n)} + ${kz(e,i[1],l[1],n)}`):Mz.has(a)?r.push(`${kz(e,i[0],l[0],n)} ${kz(e,i[1],l[1],n)} ${kz(e,i[2],l[2],n)}`):"CommentString"===a?r.push(`// ${i[0].value}`):"GetBooleanAnd"===a?r.push(`(${kz(e,i[0],l[0],n)} and ${kz(e,i[1],l[1],n)})`):"GetBooleanOr"===a?r.push(`(${kz(e,i[0],l[0],n)} or ${kz(e,i[1],l[1],n)})`):t instanceof uf?(0===t.type&&(l=["trigger",...l]),r.push(`call ${o}(${i.map((t,a)=>kz(e,t,l[a],n)).join(", ")})`)):t instanceof lf&&r.push(`${o}(${i.map((t,a)=>kz(e,t,l[a],n)).join(", ")})`);return r.map(e=>Lz(e))}function kz(e,t,n,a){const{type:r,value:i}=t;if(0===r){const t=e.triggerData.getPreset(i);if(void 0===t)throw new Error(`Failed to find a preset: "${i}"`);return t}if(1===r){if(i.startsWith("gg_"))return e.updateGUIReference(i,!1),i;{let n=`udg_${i}`;return t.isArray&&t.arrayIndex&&(n+=`[${kz(e,t.arrayIndex,"integer",a)}]`),n}}if(2===t.type)return Pz(e,t.subParameters,a)[0].parameters[0].value;if(3===t.type){const t=e.triggerData.getBaseType(n);if("string"===t&&"scriptcode"!==n){if(i.startsWith("TRIGSTR")&&e.stringTable){const t=e.stringTable.getString(i);if(void 0!==t)return`"${t.replace(/\r\n/g,"\\r\n")}"`;e.change("missingstring","Entry not found in the string table",i)}return`"${i.replace(/\\/g,"\\\\")}"`}return"integer"===t&&isNaN(parseInt(i))?`'${i}'`:i}return""}function Oz(e,t,n){return kz(e,t,n,[])}function Dz(e,t,n,a,r){const i=t.parameters,s=[];a.test&&s.push(a.test),a.tests&&s.push(...a.tests);for(const[t,a]of s)if(void 0===r[t]&&(r[t]=Oz(e,i[t],n[t])),a!==r[t])return!1;return!0}function Fz(e,t,n){if(t.name=n,t.type=e.triggerData.getFunctionType(n),t instanceof lf){e.stack[1].value=n}}function Gz(e,t,n,a){if(a.parameters){const r=t.parameters;t.parameters=a.parameters.map(t=>{if("number"==typeof t)return r[t];if("string"==typeof t){const n=new of;return e.triggerData.getPreset(t)?n.type=0:n.type=3,n.value=t,n}{const e=t[0],a=t[1],i=t[2],s=n[e];let l,o;if("integer"===s)l="OperatorInt";else{if("real"!==s)throw new Error(`Attempted to use an operator on a non-number parameter of type "${s}`);l="OperatorReal"}o="+"===a?"OperatorAdd":"-"===a?"OperatorSubtract":"*"===a?"OperatorMultiply":"OperatorDivide";const u=new of;u.value=l,u.type=2;const c=new lf;c.name=l,c.type=3;const d=r[e],h=new of;h.type=0,h.value=o;const f=new of;return f.type=3,f.value=`${i}`,c.beginParameters=1,c.parameters=[d,h,f],u.subParameters=c,u}})}}function Vz(e){return function(t,n){const a=t.triggerData.getFunction(n.type,n.name);if(!a)return console.warn(`transformer failed to get the signature for the input function: ${n.name}`),!1;const r=a.args,i=[];for(const[a,s]of Object.entries(e)){let e;e=Array.isArray(s)?s:[s];for(const s of e)if(Dz(t,n,r,s,i))return Fz(t,n,a),Gz(t,n,r,s),!0}return!1}}function Kz(e,t){const n=e.stack[1],a=e.stack[2],r=a.parameters;if("OperatorCompareBoolean"!==a.name)return!1;let i;i=a.parameters[0]===n?r[2]:r[0];const s=Oz(e,i,"boolean");if("true"!==s&&"false"!==s)return!1;a.name="OperatorComparePlayer";const l=t.parameters[1];return n.value="GetOwningPlayer",t.name="GetOwningPlayer",t.parameters.length=1,r[0]=n,r[1].value="true"===s?"OperatorEqualENE":"OperatorNotEqualENE",r[2]=l,!0}function Hz(e,t){const n=e.stack[1],a=e.stack[2],r=a.parameters;if("OperatorCompareBoolean"!==a.name)return!1;let i;i=a.parameters[0]===n?r[2]:r[0];const s=Oz(e,i,"boolean");if("true"!==s&&"false"!==s)return!1;a.name="OperatorCompareRace";const l=t.parameters[1];n.value="GetUnitRace",t.name="GetUnitRace",t.parameters.length=1,r[0]=n;const o="OperatorEqualENE"===r[1].value,u="true"===s;return r[1].value=o===u?"OperatorEqualENE":"OperatorNotEqualENE",r[1]=l,!0}function zz(e,t){if("OperatorCompareBoolean"!==e.stack[2].name)return!1;if("UNIT_TYPE_DEAD"!==Oz(e,t.parameters[1],"unittype"))return!1;return e.stack[1].value="IsUnitDeadBJ",t.name="IsUnitDeadBJ",t.parameters.length=1,!0}let jz,Xz=!1;function $z(e){return Vz({[e]:{}})}function Jz(e){return function(t){return Vz({[t]:{parameters:e}})}}function Wz(e,t){Xz||function(){if(!Xz){Xz=!0;const e=Jz([1,0]),t=Jz([1,0,2]),n=Jz([1,2,0]),a=Jz([2,0,1]),r=Jz([2,1,0]),i=Jz([0,2,3,1]),s=Jz([1,0,2,3]),l=Jz([3,0,1,2]),o=Jz([3,2,0,1]),u=Jz([3,2,1,0]);jz={UnitId:$z("String2UnitIdBJ"),UnitId2String:$z("UnitId2StringBJ"),GetObjectName:$z("GetAbilityName"),Sin:Vz({SinBJ:{parameters:[[0,"/",Math.PI/180]]}}),Cos:Vz({CosBJ:{parameters:[[0,"/",Math.PI/180]]}}),Tan:Vz({TanBJ:{parameters:[[0,"/",Math.PI/180]]}}),GetHandleId:$z("GetHandleIdBJ"),SubString:Vz({SubStringBJ:{parameters:[0,[1,"+",1],2]}}),StringHash:$z("StringHashBJ"),GetLocalizedString:$z("StringIdentity"),SetMapFlag:Vz({LockGameSpeedBJ:{tests:[[0,"MAP_LOCK_SPEED"],[1,"true"]],parameters:[]},UnlockGameSpeedBJ:{tests:[[0,"MAP_LOCK_SPEED"],[1,"false"]],parameters:[]}}),SetPlayerColor:Vz({SetPlayerColorBJ:{parameters:[0,1,"PlayerChangeColorRetain"]}}),SetPlayerAlliance:i("SetPlayerAllianceBJ"),SetPlayerTaxRate:o("SetPlayerTaxRateBJ"),SetPlayerOnScoreScreen:e("SetPlayerOnScoreScreenBJ"),GetPlayerTaxRate:a("GetPlayerTaxRateBJ"),TimerStart:Vz({StartTimerBJ:{test:[3,"null"],parameters:[0,2,1]}}),PauseTimer:Vz({PauseTimerBJ:{parameters:["PauseResumePause",0]}}),ResumeTimer:Vz({PauseTimerBJ:{parameters:["PauseResumeResume",0]}}),GroupAddUnit:e("GroupAddUnitSimple"),GroupRemoveUnit:e("GroupRemoveUnitSimple"),GroupImmediateOrderById:$z("GroupTrainOrderByIdBJ"),ForceAddPlayer:e("ForceAddPlayerSimple"),ForceRemovePlayer:e("ForceRemovePlayerSimple"),GetWorldBounds:$z("GetEntireMapRect"),TriggerRegisterTimerEvent:Vz({TriggerRegisterTimerEventPeriodic:{test:[2,"true"],parameters:[0,1]},TriggerRegisterTimerEventSingle:{test:[2,"false"],parameters:[0,1]}}),TriggerRegisterTimerExpireEvent:$z("TriggerRegisterTimerExpireEventBJ"),TriggerRegisterGameStateEvent:Vz({TriggerRegisterGameStateEventTimeOfDay:{test:[1,"GAME_STATE_TIME_OF_DAY"],parameters:[0,2,3]}}),TriggerRegisterDialogEvent:$z("TriggerRegisterDialogEventBJ"),TriggerRegisterGameEvent:Vz({TriggerRegisterShowSkillEventBJ:{test:[1,"EVENT_GAME_SHOW_SKILL"],parameters:[0]},TriggerRegisterBuildSubmenuEventBJ:{test:[1,"EVENT_GAME_BUILD_SUBMENU"],parameters:[0]},TriggerRegisterGameLoadedEventBJ:{test:[1,"EVENT_GAME_LOADED"],parameters:[0]},TriggerRegisterGameSavedEventBJ:{test:[1,"EVENT_GAME_SAVE"],parameters:[0]}}),GetClickedButton:$z("GetClickedButtonBJ"),GetClickedDialog:$z("GetClickedDialogBJ"),TriggerRegisterPlayerEvent:Vz({TriggerRegisterPlayerKeyEventBJ:[{test:[2,"EVENT_PLAYER_ARROW_LEFT_DOWN"],parameters:[0,1,"KeyEventTypeDepress","KeyEventKeyLeft"]},{test:[2,"EVENT_PLAYER_ARROW_RIGHT_DOWN"],parameters:[0,1,"KeyEventTypeDepress","KeyEventKeyRight"]},{test:[2,"EVENT_PLAYER_ARROW_DOWN_DOWN"],parameters:[0,1,"KeyEventTypeDepress","KeyEventKeyDown"]},{test:[2,"EVENT_PLAYER_ARROW_UP_DOWN"],parameters:[0,1,"KeyEventTypeDepress","KeyEventKeyUp"]},{test:[2,"EVENT_PLAYER_ARROW_LEFT_UP"],parameters:[0,1,"KeyEventTypeRelease","KeyEventKeyLeft"]},{test:[2,"EVENT_PLAYER_ARROW_RIGHT_UP"],parameters:[0,1,"KeyEventTypeRelease","KeyEventKeyRight"]},{test:[2,"EVENT_PLAYER_ARROW_DOWN_UP"],parameters:[0,1,"KeyEventTypeRelease","KeyEventKeyDown"]},{test:[2,"EVENT_PLAYER_ARROW_UP_UP"],parameters:[0,1,"KeyEventTypeRelease","KeyEventKeyUp"]}],TriggerRegisterPlayerMouseEventBJ:[{test:[2,"EVENT_PLAYER_MOUSE_DOWN"],parameters:[0,1,"MouseEventTypeDown"]},{test:[2,"EVENT_PLAYER_MOUSE_UP"],parameters:[0,1,"MouseEventTypeUp"]},{test:[2,"EVENT_PLAYER_MOUSE_MOVE"],parameters:[0,1,"MouseEventTypeMove"]}],TriggerRegisterPlayerEventVictory:{test:[2,"EVENT_PLAYER_VICTORY"],parameters:[0,1]},TriggerRegisterPlayerEventDefeat:{test:[2,"EVENT_PLAYER_DEFEAT"],parameters:[0,1]},TriggerRegisterPlayerEventLeave:{test:[2,"EVENT_PLAYER_LEAVE"],parameters:[0,1]},TriggerRegisterPlayerEventAllianceChanged:{test:[2,"EVENT_PLAYER_ALLIANCE_CHANGED"],parameters:[0,1]},TriggerRegisterPlayerEventEndCinematic:{test:[2,"EVENT_PLAYER_END_CINEMATIC"],parameters:[0,1]}}),TriggerRegisterPlayerUnitEvent:Vz({TriggerRegisterPlayerUnitEventSimple:{test:[3,"null"],parameters:[0,1,2]}}),GetLearnedSkill:$z("GetLearnedSkillBJ"),GetKillingUnit:$z("GetKillingUnitBJ"),GetTransportUnit:$z("GetTransportUnitBJ"),GetLoadedUnit:$z("GetLoadedUnitBJ"),GetIssuedOrderId:$z("GetIssuedOrderIdBJ"),TriggerRegisterUnitStateEvent:Vz({TriggerRegisterUnitLifeEvent:{test:[1,"UNIT_STATE_LIFE"],parameters:[0,2,3]},TriggerRegisterUnitManaEvent:{test:[1,"UNIT_STATE_MANA"],parameters:[0,2,3]}}),TriggerWaitForSound:$z("WaitForSoundBJ"),GetWidgetLife:$z("GetItemLifeBJ"),SetWidgetLife:$z("SetItemLifeBJ"),SetDestructableInvulnerable:$z("SetDestructableInvulnerableBJ"),IsDestructableInvulnerable:$z("IsDestructableInvulnerableBJ"),EnumDestructablesInRect:Vz({EnumDestructablesInRectAll:{test:[1,"null"],parameters:[0,2]}}),SetDestructableMaxLife:$z("SetDestructableMaxLifeBJ"),QueueDestructableAnimation:$z("QueueDestructableAnimationBJ"),SetDestructableAnimation:$z("SetDestructableAnimationBJ"),SetDestructableAnimationSpeed:Vz({SetDestAnimationSpeedPercent:{parameters:[0,[1,"*",100]]}}),ShowDestructable:e("ShowDestructableBJ"),GetTriggerDestructable:$z("GetDyingDestructable"),SetItemDropOnDeath:$z("SetItemDropOnDeathBJ"),SetItemDroppable:$z("SetItemDroppableBJ"),SetItemPlayer:$z("SetItemPlayerBJ"),SetItemInvulnerable:$z("SetItemInvulnerableBJ"),SetItemVisible:e("SetItemVisibleBJ"),IsItemOwned:Vz({CheckItemStatus:{parameters:[0,"ItemStatusOwned"]}}),IsItemPowerup:Vz({CheckItemStatus:{parameters:[0,"ItemStatusPowerup"]}}),IsItemSellable:Vz({CheckItemStatus:{parameters:[0,"ItemStatusSellable"]}}),IsItemPawnable:Vz({CheckItemStatus:{parameters:[0,"ItemStatusPawnable"]}}),IsItemIdPowerup:Vz({CheckItemcodeStatus:{parameters:[0,"ItemcodeStatusPowerup"]}}),IsItemIdSellable:Vz({CheckItemcodeStatus:{parameters:[0,"ItemcodeStatusSellable"]}}),IsItemIdPawnable:Vz({CheckItemcodeStatus:{parameters:[0,"ItemcodeStatusPawnable"]}}),EnumItemsInRect:Vz({EnumItemsInRectBJ:{test:[1,"null"],parameters:[0,2]}}),ShowUnit:Vz({ShowUnitShow:{test:[1,"true"],parameters:[0]},ShowUnitHide:{test:[1,"false"],parameters:[0]}}),SetUnitState:Vz({SetUnitLifeBJ:{test:[1,"UNIT_STATE_LIFE"],parameters:[0,2]},SetUnitManaBJ:{test:[1,"UNIT_STATE_MANA"],parameters:[0,2]}}),SetUnitFlyHeight:$z("SetUnitFlyHeightBJ"),SetUnitTurnSpeed:$z("SetUnitTurnSpeedBJ"),SetUnitAcquireRange:$z("SetUnitAcquireRangeBJ"),SetUnitCreepGuard:Vz({LockGuardPosition:{test:[1,"true"],parameters:[0]}}),GetUnitDefaultPropWindow:$z("GetUnitDefaultPropWindowBJ"),SetUnitScale:Vz({SetUnitScalePercent:{parameters:[0,[1,"*",100],[2,"*",100],[3,"*",100]]}}),SetUnitTimeScale:Vz({SetUnitTimeScalePercent:{parameters:[0,[1,"*",100]]}}),SetUnitBlendTime:$z("SetUnitBlendTimeBJ"),QueueUnitAnimation:$z("QueueUnitAnimationBJ"),SetUnitAnimation:Vz({ResetUnitAnimation:{test:[1,'"stand"'],parameters:[0]}}),AddUnitAnimationProperties:r("AddUnitAnimationPropertiesBJ"),SetHeroStr:Vz({ModifyHeroStat:{test:[2,"true"],parameters:["HeroStatStr",0,"ModifyMethodSet",1]}}),SetHeroAgi:Vz({ModifyHeroStat:{test:[2,"true"],parameters:["HeroStatAgi",0,"ModifyMethodSet",1]}}),SetHeroInt:Vz({ModifyHeroStat:{test:[2,"true"],parameters:["HeroStatInt",0,"ModifyMethodSet",1]}}),GetHeroStr:Vz({GetHeroStatBJ:{parameters:["HeroStatStr",0,1]}}),GetHeroAgi:Vz({GetHeroStatBJ:{parameters:["HeroStatAgi",0,1]}}),GetHeroInt:Vz({GetHeroStatBJ:{parameters:["HeroStatInt",0,1]}}),UnitModifySkillPoints:Vz({ModifyHeroSkillPoints:{parameters:[0,"0",1]}}),AddHeroXP:t("AddHeroXPSwapped"),GetUnitAbilityLevel:e("GetUnitAbilityLevelSwapped"),DecUnitAbilityLevel:e("DecUnitAbilityLevelSwapped"),IncUnitAbilityLevel:e("IncUnitAbilityLevelSwapped"),SetUnitAbilityLevel:t("SetUnitAbilityLevelSwapped"),SetUnitExploded:$z("SetUnitExplodedBJ"),PauseUnit:e("PauseUnitBJ"),IsUnitPaused:$z("IsUnitPausedBJ"),SelectUnit:Vz({SelectUnitAdd:{test:[1,"true"],parameters:[0]},SelectUnitRemove:{test:[1,"false"],parameters:[0]}}),UnitAddItem:e("UnitAddItemSwapped"),UnitRemoveItem:e("UnitRemoveItemSwapped"),UnitRemoveItemFromSlot:Vz({UnitRemoveItemFromSlotSwapped:{parameters:[0,[1,"+",1]]}}),UnitItemInSlot:Vz({UnitItemInSlotBJ:{parameters:[0,[1,"+",1]]}}),UnitInventorySize:$z("UnitInventorySizeBJ"),UnitDropItemSlot:Vz({UnitDropItemSlotBJ:{parameters:[0,1,[2,"+",1]]}}),UnitDropItemTarget:$z("UnitDropItemTargetBJ"),GetUnitState:e("GetUnitStateSwap"),SetUnitUseFood:e("SetUnitUseFoodBJ"),IsUnitOwnedByPlayer:Kz,IsUnitRace:Hz,IsUnitType:zz,IsUnitHidden:$z("IsUnitHiddenBJ"),IsUnitIllusion:$z("IsUnitIllusionBJ"),IsUnitInTransport:$z("IsUnitInTransportBJ"),IsUnitLoaded:$z("IsUnitLoadedBJ"),UnitShareVision:a("UnitShareVisionBJ"),UnitSuspendDecay:e("UnitSuspendDecayBJ"),UnitAddType:e("UnitAddTypeBJ"),UnitRemoveType:e("UnitRemoveTypeBJ"),UnitAddAbility:e("UnitAddAbilityBJ"),UnitRemoveAbility:e("UnitRemoveAbilityBJ"),UnitRemoveBuffs:Vz({UnitRemoveBuffsBJ:[{tests:[[1,"true"],[2,"false"]],parameters:["BuffTypePositive",0]},{tests:[[1,"false"],[2,"true"]],parameters:["BuffTypeNegative",0]},{tests:[[1,"true"],[2,"true"]],parameters:["BuffTypeAll",0]}]}),UnitRemoveBuffsEx:Vz({UnitRemoveBuffsBJ:{tests:[[1,"true"],[2,"true"],[3,"false"],[4,"false"],[5,"false"],[6,"true"],[7,"false"]],parameters:["BuffTypeNonTLife",0]}}),UnitAddSleep:$z("UnitSetCanSleepBJ"),UnitCanSleep:$z("UnitCanSleepBJ"),UnitIsSleeping:$z("UnitIsSleepingBJ"),UnitWakeUp:$z("UnitWakeUpBJ"),UnitApplyTimedLife:r("UnitApplyTimedLifeBJ"),UnitPauseTimedLife:e("UnitPauseTimedLifeBJ"),UnitSetUsesAltIcon:e("UnitSetUsesAltIconBJ"),UnitDamageTarget:Vz({UnitDamageTargetBJ:{tests:[[3,"true"],[4,"false"],[7,"WEAPON_TYPE_WHOKNOWS"]],parameters:[0,1,2,5,6]}}),IssueImmediateOrderById:$z("IssueTrainOrderByIdBJ"),AddResourceAmount:e("AddResourceAmountBJ"),WaygateActivate:e("WaygateActivateBJ"),WaygateIsActive:$z("WaygateIsActiveBJ"),AddItemToStock:s("AddItemToStockBJ"),AddUnitToStock:s("AddUnitToStockBJ"),RemoveItemFromStock:e("RemoveItemFromStockBJ"),RemoveUnitFromStock:e("RemoveUnitFromStockBJ"),Player:Vz({ConvertedPlayer:{parameters:[[0,"+",1]]}}),SetPlayerHandicap:Vz({SetPlayerHandicapBJ:{parameters:[0,[1,"*",100]]}}),SetPlayerHandicapXP:Vz({SetPlayerHandicapXPBJ:{parameters:[0,[1,"*",100]]}}),SetPlayerTechMaxAllowed:n("SetPlayerTechMaxAllowedSwap"),GetPlayerTechMaxAllowed:e("GetPlayerTechMaxAllowedSwap"),SetPlayerTechResearched:n("SetPlayerTechResearchedSwap"),GetPlayerTechCount:Vz({GetPlayerTechCountSimple:{test:[2,"true"],parameters:[1,0]}}),SetPlayerAbilityAvailable:r("SetPlayerAbilityAvailableBJ"),FogMaskEnable:Vz({FogMaskEnableOn:{test:[0,"true"],parameters:[]},FogMaskEnableOff:{test:[0,"false"],parameters:[]}}),FogEnable:Vz({FogEnableOn:{test:[0,"true"],parameters:[]},FogEnableOff:{test:[0,"false"],parameters:[]}}),SetCampaignMenuRace:Vz({SetCampaignMenuRaceBJ:[{test:[0,"RACE_OTHER"],parameters:["CampaignIndexT"]},{test:[0,"RACE_HUMAN"],parameters:["CampaignIndexH"]},{test:[0,"RACE_UNDEAD"],parameters:["CampaignIndexU"]},{test:[0,"RACE_ORC"],parameters:["CampaignIndexO"]},{test:[0,"RACE_NIGHTELF"],parameters:["CampaignIndexN"]}]}),SetCampaignMenuRaceEx:Vz({SetCampaignMenuRaceBJ:[{test:[0,"bj_CAMPAIGN_OFFSET_XN"],parameters:["CampaignIndexXN"]},{test:[0,"bj_CAMPAIGN_OFFSET_XH"],parameters:["CampaignIndexXH"]},{test:[0,"bj_CAMPAIGN_OFFSET_XU"],parameters:["CampaignIndexXU"]},{test:[0,"bj_CAMPAIGN_OFFSET_XO"],parameters:["CampaignIndexXO"]}]}),LoadGame:$z("LoadGameBJ"),RenameSaveDirectory:$z("RenameSaveDirectoryBJ"),RemoveSaveDirectory:$z("RemoveSaveDirectoryBJ"),CopySaveGame:$z("CopySaveGameBJ"),GetFloatGameState:Vz({GetTimeOfDay:{test:[0,"GAME_STATE_TIME_OF_DAY"],parameters:[]}}),SetFloatGameState:Vz({SetTimeOfDay:{test:[0,"GAME_STATE_TIME_OF_DAY"],parameters:[1]}}),SetCustomCampaignButtonVisible:Vz({ShowCustomCampaignButton:{parameters:[[0,"+",1],1]}}),GetCustomCampaignButtonVisible:Vz({IsCustomCampaignButtonVisibile:{parameters:[[0,"+",1]]}}),DialogClear:$z("DialogClearBJ"),DialogSetMessage:$z("DialogSetMessageBJ"),DialogDisplay:r("DialogDisplayBJ"),InitGameCache:$z("InitGameCacheBJ"),SaveGameCache:$z("SaveGameCacheBJ"),StoreInteger:u("StoreIntegerBJ"),StoreReal:u("StoreRealBJ"),StoreBoolean:u("StoreBooleanBJ"),StoreUnit:u("StoreUnitBJ"),StoreString:u("StoreStringBJ"),HaveStoredBoolean:Vz({HaveStoredValue:{parameters:[2,"CacheValueTypeBoolean",1,0]}}),HaveStoredInteger:Vz({HaveStoredValue:{parameters:[2,"CacheValueTypeInteger",1,0]}}),HaveStoredReal:Vz({HaveStoredValue:{parameters:[2,"CacheValueTypeReal",1,0]}}),HaveStoredUnit:Vz({HaveStoredValue:{parameters:[2,"CacheValueTypeUnit",1,0]}}),HaveStoredString:Vz({HaveStoredValue:{parameters:[2,"CacheValueTypeString",1,0]}}),FlushGameCache:$z("FlushGameCacheBJ"),FlushStoredMission:e("FlushStoredMissionBJ"),GetStoredInteger:r("GetStoredIntegerBJ"),GetStoredReal:r("GetStoredRealBJ"),GetStoredBoolean:r("GetStoredBooleanBJ"),GetStoredString:r("GetStoredStringBJ"),InitHashtable:$z("InitHashtableBJ"),SaveInteger:u("SaveIntegerBJ"),SaveReal:u("SaveRealBJ"),SaveBoolean:u("SaveBooleanBJ"),SaveStr:u("SaveStringBJ"),SavePlayerHandle:u("SavePlayerHandleBJ"),SaveWidgetHandle:u("SaveWidgetHandleBJ"),SaveDestructableHandle:u("SaveDestructableHandleBJ"),SaveItemHandle:u("SaveItemHandleBJ"),SaveUnitHandle:u("SaveUnitHandleBJ"),SaveAbilityHandle:u("SaveAbilityHandleBJ"),SaveTimerHandle:u("SaveTimerHandleBJ"),SaveTriggerHandle:u("SaveTriggerHandleBJ"),SaveTriggerConditionHandle:u("SaveTriggerConditionHandleBJ"),SaveTriggerActionHandle:u("SaveTriggerActionHandleBJ"),SaveTriggerEventHandle:u("SaveTriggerEventHandleBJ"),SaveForceHandle:u("SaveForceHandleBJ"),SaveGroupHandle:u("SaveGroupHandleBJ"),SaveLocationHandle:u("SaveLocationHandleBJ"),SaveRectHandle:u("SaveRectHandleBJ"),SaveBooleanExprHandle:u("SaveBooleanExprHandleBJ"),SaveSoundHandle:u("SaveSoundHandleBJ"),SaveEffectHandle:u("SaveEffectHandleBJ"),SaveUnitPoolHandle:u("SaveUnitPoolHandleBJ"),SaveItemPoolHandle:u("SaveItemPoolHandleBJ"),SaveQuestHandle:u("SaveQuestHandleBJ"),SaveQuestItemHandle:u("SaveQuestItemHandleBJ"),SaveDefeatConditionHandle:u("SaveDefeatConditionHandleBJ"),SaveTimerDialogHandle:u("SaveTimerDialogHandleBJ"),SaveLeaderboardHandle:u("SaveLeaderboardHandleBJ"),SaveMultiboardHandle:u("SaveMultiboardHandleBJ"),SaveMultiboardItemHandle:u("SaveMultiboardItemHandleBJ"),SaveTrackableHandle:u("SaveTrackableHandleBJ"),SaveDialogHandle:u("SaveDialogHandleBJ"),SaveButtonHandle:u("SaveButtonHandleBJ"),SaveTextTagHandle:u("SaveTextTagHandleBJ"),SaveLightningHandle:u("SaveLightningHandleBJ"),SaveImageHandle:u("SaveImageHandleBJ"),SaveUbersplatHandle:u("SaveUbersplatHandleBJ"),SaveRegionHandle:u("SaveRegionHandleBJ"),SaveFogStateHandle:u("SaveFogStateHandleBJ"),SaveFogModifierHandle:u("SaveFogModifierHandleBJ"),LoadInteger:r("LoadIntegerBJ"),LoadReal:r("LoadRealBJ"),LoadBoolean:r("LoadBooleanBJ"),LoadStr:r("LoadStringBJ"),LoadPlayerHandle:r("LoadPlayerHandleBJ"),LoadWidgetHandle:r("LoadWidgetHandleBJ"),LoadDestructableHandle:r("LoadDestructableHandleBJ"),LoadItemHandle:r("LoadItemHandleBJ"),LoadUnitHandle:r("LoadUnitHandleBJ"),LoadAbilityHandle:r("LoadAbilityHandleBJ"),LoadTimerHandle:r("LoadTimerHandleBJ"),LoadTriggerHandle:r("LoadTriggerHandleBJ"),LoadTriggerConditionHandle:r("LoadTriggerConditionHandleBJ"),LoadTriggerActionHandle:r("LoadTriggerActionHandleBJ"),LoadTriggerEventHandle:r("LoadTriggerEventHandleBJ"),LoadForceHandle:r("LoadForceHandleBJ"),LoadGroupHandle:r("LoadGroupHandleBJ"),LoadLocationHandle:r("LoadLocationHandleBJ"),LoadRectHandle:r("LoadRectHandleBJ"),LoadBooleanExprHandle:r("LoadBooleanExprHandleBJ"),LoadSoundHandle:r("LoadSoundHandleBJ"),LoadEffectHandle:r("LoadEffectHandleBJ"),LoadUnitPoolHandle:r("LoadUnitPoolHandleBJ"),LoadItemPoolHandle:r("LoadItemPoolHandleBJ"),LoadQuestHandle:r("LoadQuestHandleBJ"),LoadQuestItemHandle:r("LoadQuestItemHandleBJ"),LoadDefeatConditionHandle:r("LoadDefeatConditionHandleBJ"),LoadTimerDialogHandle:r("LoadTimerDialogHandleBJ"),LoadLeaderboardHandle:r("LoadLeaderboardHandleBJ"),LoadMultiboardHandle:r("LoadMultiboardHandleBJ"),LoadMultiboardItemHandle:r("LoadMultiboardItemHandleBJ"),LoadTrackableHandle:r("LoadTrackableHandleBJ"),LoadDialogHandle:r("LoadDialogHandleBJ"),LoadButtonHandle:r("LoadButtonHandleBJ"),LoadTextTagHandle:r("LoadTextTagHandleBJ"),LoadLightningHandle:r("LoadLightningHandleBJ"),LoadImageHandle:r("LoadImageHandleBJ"),LoadUbersplatHandle:r("LoadUbersplatHandleBJ"),LoadRegionHandle:r("LoadRegionHandleBJ"),LoadFogStateHandle:r("LoadFogStateHandleBJ"),LoadFogModifierHandle:r("LoadFogModifierHandleBJ"),HaveSavedBoolean:Vz({HaveSavedValue:{parameters:[2,"HashtableValueTypeBoolean",1,0]}}),HaveSavedInteger:Vz({HaveSavedValue:{parameters:[2,"HashtableValueTypeInteger",1,0]}}),HaveSavedReal:Vz({HaveSavedValue:{parameters:[2,"HashtableValueTypeReal",1,0]}}),HaveSavedString:Vz({HaveSavedValue:{parameters:[2,"HashtableValueTypeString",1,0]}}),HaveSavedHandle:Vz({HaveSavedValue:{parameters:[2,"HashtableValueTypeHandle",1,0]}}),FlushParentHashtable:$z("FlushParentHashtableBJ"),FlushChildHashtable:e("FlushChildHashtableBJ"),ChooseRandomCreep:$z("ChooseRandomCreepBJ"),ChooseRandomNPBuilding:$z("ChooseRandomNPBuildingBJ"),ChooseRandomItem:$z("ChooseRandomItemBJ"),ChooseRandomItemEx:e("ChooseRandomItemExBJ"),ResetTerrainFog:$z("ResetTerrainFogBJ"),SetTerrainFogEx:Vz({SetTerrainFogExBJ:{parameters:[0,1,2,3,[4,"*",100],[5,"*",100],[6,"*",100]]}}),SetTimeOfDayScale:Vz({SetTimeOfDayScalePercentBJ:{parameters:[[0,"*",100]]}}),PauseGame:Vz({PauseGameOn:{test:[0,"true"],parameters:[]},PauseGameOff:{test:[0,"false"],parameters:[]}}),DestroyTextTag:$z("DestroyTextTagBJ"),SetTextTagPosUnit:$z("SetTextTagPosUnitBJ"),SetTextTagSuspended:$z("SetTextTagSuspendedBJ"),SetTextTagPermanent:$z("SetTextTagPermanentBJ"),SetTextTagAge:$z("SetTextTagAgeBJ"),SetTextTagLifespan:$z("SetTextTagLifespanBJ"),SetTextTagFadepoint:$z("SetTextTagFadepointBJ"),DestroyQuest:$z("DestroyQuestBJ"),QuestSetTitle:$z("QuestSetTitleBJ"),QuestSetDescription:$z("QuestSetDescriptionBJ"),QuestSetCompleted:$z("QuestSetCompletedBJ"),QuestSetDiscovered:$z("QuestSetDiscoveredBJ"),QuestSetFailed:$z("QuestSetFailedBJ"),QuestSetEnabled:e("QuestSetEnabledBJ"),QuestItemSetDescription:$z("QuestItemSetDescriptionBJ"),QuestItemSetCompleted:$z("QuestItemSetCompletedBJ"),DestroyDefeatCondition:$z("DestroyDefeatConditionBJ"),DefeatConditionSetDescription:$z("DefeatConditionSetDescriptionBJ"),FlashQuestDialogButton:$z("FlashQuestDialogButtonBJ"),DestroyTimerDialog:$z("DestroyTimerDialogBJ"),TimerDialogSetTitle:$z("TimerDialogSetTitleBJ"),TimerDialogDisplay:e("TimerDialogDisplayBJ"),DestroyLeaderboard:$z("DestroyLeaderboardBJ"),LeaderboardDisplay:e("LeaderboardDisplayBJ"),LeaderboardRemovePlayerItem:e("LeaderboardRemovePlayerItemBJ"),LeaderboardSortItemsByValue:Vz({LeaderboardSortItemsBJ:{parameters:[0,"LeaderboardSortByValue",1]}}),LeaderboardSortItemsByPlayer:Vz({LeaderboardSortItemsBJ:{parameters:[0,"LeaderboardSortByPlayer",1]}}),LeaderboardSortItemsByLabel:Vz({LeaderboardSortItemsBJ:{parameters:[0,"LeaderboardSortByLabel",1]}}),LeaderboardHasPlayerItem:$z("LeaderboardHasPlayerItemBJ"),LeaderboardSetLabel:$z("LeaderboardSetLabelBJ"),PlayerGetLeaderboard:$z("PlayerGetLeaderboardBJ"),LeaderboardSetStyle:$z("LeaderboardSetStyleBJ"),DestroyMultiboard:$z("DestroyMultiboardBJ"),MultiboardDisplay:e("MultiboardDisplayBJ"),MultiboardMinimize:e("MultiboardMinimizeBJ"),CameraSetupGetField:e("CameraSetupGetFieldSwap"),CameraSetSmoothingFactor:$z("CameraSetSmoothingFactorBJ"),DisplayCineFilter:$z("DisplayCineFilterBJ"),ForceCinematicSubtitles:$z("ForceCinematicSubtitlesBJ"),SetSoundDistanceCutoff:$z("SetSoundDistanceCutoffBJ"),SetSoundPitch:$z("SetSoundPitchBJ"),AttachSoundToUnit:$z("AttachSoundToUnitBJ"),StopSound:Vz({StopSoundBJ:{test:[1,"false"],parameters:[0,2]}}),KillSoundWhenDone:$z("KillSoundWhenDoneBJ"),SetMapMusic:Vz({SetMapMusicIndexedBJ:{test:[1,"false"],parameters:[0,2]},SetMapMusicRandomBJ:{tests:[[1,"true"],[2,"0"]],parameters:[0]}}),ClearMapMusic:$z("ClearMapMusicBJ"),PlayMusic:$z("PlayMusicBJ"),StopMusic:$z("StopMusicBJ"),ResumeMusic:$z("ResumeMusicBJ"),PlayThematicMusic:$z("PlayThematicMusicBJ"),EndThematicMusic:$z("EndThematicMusicBJ"),VolumeGroupSetVolume:Vz({VolumeGroupSetVolumeBJ:{parameters:[0,[1,"*",100]]}}),AddWeatherEffect:$z("AddWeatherEffectSaveLast"),RemoveWeatherEffect:$z("RemoveWeatherEffectBJ"),AddSpecialEffectLoc:e("AddSpecialEffectLocBJ"),AddSpecialEffectTarget:r("AddSpecialEffectTargetUnitBJ"),DestroyEffect:$z("DestroyEffectBJ"),DestroyLightning:$z("DestroyLightningBJ"),GetLightningColorA:$z("GetLightningColorABJ"),GetLightningColorR:$z("GetLightningColorRBJ"),GetLightningColorG:$z("GetLightningColorGBJ"),GetLightningColorB:$z("GetLightningColorBBJ"),SetLightningColor:$z("SetLightningColorBJ"),GetAbilityEffectById:$z("GetAbilityEffectBJ"),GetAbilitySoundById:$z("GetAbilitySoundBJ"),ShowImage:e("ShowImageBJ"),ShowUbersplat:e("ShowUbersplatBJ"),SetBlightRect:a("SetBlightRectBJ"),SetBlightLoc:l("SetBlightRadiusLocBJ"),SetDoodadAnimationRect:Vz({SetDoodadAnimationRectBJ:{test:[3,"false"],parameters:[2,1,0]}})}}}();const n=jz[t.name];return n?n(e,t):function(e,t){const n=t.name;if(!function(e){return"GetTriggerPlayerMouseX"===e||"GetTriggerPlayerMouseY"===e||"GetTriggerPlayerMousePosition"===e||"GetTriggerPlayerMouseButton"===e||"SetAbilityTooltip"===e||"SetAbilityExtendedTooltip"===e||"SetAbilityResearchTooltip"===e||"SetAbilityResearchExtendedTooltip"===e||"GetAbilityTooltip"===e||"GetAbilityExtendedTooltip"===e||"GetAbilityResearchTooltip"===e||"GetAbilityResearchExtendedTooltip"===e||"SetAbilityIcon"===e||"GetAbilityIcon"===e||"GetAbilityPosX"===e||"GetAbilityPosY"===e||"SetAbilityPosX"===e||"SetAbilityPosY"===e||"GetUnitMaxHP"===e||"SetUnitMaxHP"===e||"GetUnitMaxMana"===e||"SetUnitMaxMana"===e||"SetItemName"===e||"SetItemDescription"===e||"GetItemDescription"===e||"SetItemTooltip"===e||"GetItemTooltip"===e||"SetItemExtendedTooltip"===e||"GetItemExtendedTooltip"===e||"SetItemIconPath"===e||"GetItemIconPath"===e||"SetUnitName"===e||"SetHeroProperName"===e||"GetUnitBaseDamage"===e||"SetUnitBaseDamage"===e||"GetUnitDiceNumber"===e||"SetUnitDiceNumber"===e||"GetUnitDiceSides"===e||"SetUnitDiceSides"===e||"GetUnitAttackCooldown"===e||"SetUnitAttackCooldown"===e||"SetSpcialEffectColorByPlayer"===e||"SetSpecialEffectColor"===e||"SetSpecialEffectAlpha"===e||"SetSpecialEffectScale"===e||"SetSpecialEffectPosition"===e||"SetSpecialEffectHeight"===e||"SetSpecialEffectTimeScale"===e||"SetSpecialEffectTime"===e||"SetSpecialEffectOrientation"===e||"SetSpecialEffectYaw"===e||"SetSpecialEffectPitch"===e||"SetSpecialEffectRoll"===e||"SetSpecialEffectX"===e||"SetSpecialEffectY"===e||"SetSpecialEffectZ"===e||"SetSpecialEffectPositionLoc"===e||"GetLocalSpecialEffectX"===e||"GetLocalSpecialEffectY"===e||"GetLocalSpecialEffectZ"===e||"GetUnitArmor"===e||"SetUnitArmor"===e||"UnitHideAbility"===e||"UnitDisableAbility"===e||"UnitCancelTimedLife"===e||"IsUnitSelectable"===e||"IsUnitInvulnerable"===e||"UnitInterruptAttack"===e||"GetUnitCollisionSize"===e||"GetAbilityManaCost"===e||"GetAbilityCooldown"===e||"SetUnitAbilityCooldown"===e||"GetUnitAbilityCooldown"===e||"GetUnitAbilityCooldownRemaining"===e||"EndUnitAbilityCooldown"===e||"GetUnitAbilityManaCost"===e||"SetEventDamage"===e||"PlaySpecialEffect"===e||"PlaySpecialEffectWithTimeScale"===e}(n))return!1;t.name=`Blz${n}`,t instanceof lf&&(e.stack[1].value=`Blz${n}`);const a=t.parameters;return"GetAbilityIcon"!==n&&"SetAbilityIcon"!==n||3!==a.length||a.pop(),!0}(e,t)}let qz,Yz=!1;function Zz(e){return function(t,n){const a=new lf;return a.name=e,a.type=t.triggerData.getFunctionType(e),n.value=e,n.type=2,n.subParameters=a,!0}}function Qz(e,t){Yz||Yz||(Yz=!0,qz={bj_forLoopAIndex:Zz("GetForLoopIndexA"),bj_forLoopBIndex:Zz("GetForLoopIndexB"),bj_queuedExecTotal:Zz("QueuedTriggerCountBJ"),bj_mapInitialCameraBounds:Zz("GetCameraBoundsMapRect"),bj_mapInitialPlayableArea:Zz("GetPlayableMapRect"),bj_lastCreatedWeatherEffect:Zz("GetLastCreatedWeatherEffect"),bj_lastCreatedTerrainDeformation:Zz("GetLastCreatedTerrainDeformation"),bj_lastCreatedLightning:Zz("GetLastCreatedLightningBJ"),bj_lastCreatedFogModifier:Zz("GetLastCreatedFogModifier"),bj_lastCreatedImage:Zz("GetLastCreatedImage"),bj_lastCreatedUbersplat:Zz("GetLastCreatedUbersplat"),bj_lastPlayedSound:Zz("GetLastPlayedSound"),bj_lastPlayedMusic:Zz("GetLastPlayedMusic"),bj_useDawnDuskSounds:Zz("IsDawnDuskEnabled"),bj_lastCreatedEffect:Zz("GetLastCreatedEffectBJ"),bj_lastCreatedItem:Zz("GetLastCreatedItem"),bj_lastRemovedItem:Zz("GetLastRemovedItem"),bj_lastCreatedUnit:Zz("GetLastCreatedUnit"),bj_lastReplacedUnit:Zz("GetLastReplacedUnitBJ"),bj_lastCreatedDestructable:Zz("GetLastCreatedDestructable"),bj_FORCE_ALL_PLAYERS:Zz("GetPlayersAll"),bj_lastCreatedButton:Zz("GetLastCreatedButtonBJ"),bj_lastCreatedQuest:Zz("GetLastCreatedQuestBJ"),bj_lastCreatedQuestItem:Zz("GetLastCreatedQuestItemBJ"),bj_lastCreatedDefeatCondition:Zz("GetLastCreatedDefeatConditionBJ"),bj_lastStartedTimer:Zz("GetLastCreatedTimerBJ"),bj_lastCreatedTimerDialog:Zz("GetLastCreatedTimerDialogBJ"),bj_lastCreatedLeaderboard:Zz("GetLastCreatedLeaderboard"),bj_lastCreatedMultiboard:Zz("GetLastCreatedMultiboard"),bj_lastCreatedTextTag:Zz("GetLastCreatedTextTag"),bj_lastTransmissionDuration:Zz("GetLastTransmissionDurationBJ"),bj_lastCreatedGameCache:Zz("GetLastCreatedGameCacheBJ"),bj_lastCreatedHashtable:Zz("GetLastCreatedHashtableBJ"),bj_lastLoadedUnit:Zz("GetLastRestoredUnitBJ"),bj_lastHauntedGoldMine:Zz("GetLastHauntedGoldMine")});const n=qz[t.value];return!!n&&n(e,t)}function ej(e,t,n){e.push(t);const a=[],r=[];for(const e of t.ecas){const t=e.type;0===t||1===t?a.push(e):2===t&&r.push(e)}const i=[];for(const t of a){const a=tj(e,t,n);if(a.convert)return e.pop(),a;i.push(t)}for(const t of r){const a=tj(e,t,n);if(a.convert){const r=Pz(e,t,n);e.change("inlinecustomscript",a.reason,r.map(e=>e.parameters[0].value).join("\n")),i.push(...r)}else i.push(t)}return t.ecas=Rz(i),e.pop(),{convert:!1,reason:""}}function tj(e,t,n){e.push(t);const a=nj(e,t,n);if(a.convert){const r=a.reason;if(!function(e){if("IfThenElse"===e.name){const t=e.parameters,n=Iz(t[0].subParameters,0),a=Iz(t[1].subParameters,1),r=Iz(t[2].subParameters,2);return e.name="IfThenElseMultiple",e.parameters.length=0,e.ecas.push(n,a,r),!0}if("ForGroup"===e.name||"ForForce"===e.name){const t=Iz(e.parameters[1].subParameters,0);return e.name=`${e.name}Multiple`,e.parameters.length=1,e.ecas.push(t),!0}return!1}(t))return e.pop(),a;{const a=nj(e,t,n);if(a.convert)return e.pop(),a;e.change("singletomultiple",r,t.name)}}const r=[];for(const a of t.ecas){const i=tj(e,a,n);if(i.convert){let s;if(Uz(t.name,a.group)){let r,i,l=Pz(e,a,n)[0].parameters[0].value;l.startsWith("call ")&&(l=l.slice(5)),"OrMultiple"===t.name?(r=l,i="true"):(r=`not (${l})`,i="false"),s=[Lz(`if ${r} then`),Lz(`return ${i}`),Lz("endif")]}else s=Pz(e,a,n);for(const e of s)e.group=a.group;e.change("inlinecustomscript",i.reason,s.map(e=>e.parameters[0].value).join("\n")),r.push(...s)}else r.push(a)}return t.ecas=Rz(r),e.pop(),{convert:!1,reason:""}}function nj(e,t,n){const a=t.name;if(Wz(e,t)&&e.change("inlinegui",a,t.name),!e.triggerData.isBaseFunction(t.type,t.name))return{convert:!0,reason:t.name};for(const a of t.parameters){if(0===a.type&&e.triggerData.isCustomPreset(a.value)){const t=a.value;if(!Qz(e,a))return{convert:!0,reason:t};e.change("inlinepreset",t,a.value)}const t=aj(e,a,n);if(t.convert)return t}return{convert:!1,reason:""}}function aj(e,t,n){e.push(t);const a=t.type,r=t.value;if(1===a)r.startsWith("gg_")&&e.updateGUIReference(r,!0);else if(2===a){const a=function(e,t,n){e.push(t);const a=nj(e,t,n);if(a.convert)return e.pop(),a;return e.pop(),{convert:!1,reason:""}}(e,t.subParameters,n);if(a.convert)return e.pop(),a}const i=t.arrayIndex;if(i){const t=aj(e,i,n);if(t.convert)return e.pop(),t}return e.pop(),{convert:!1,reason:""}}function rj(e){return e.endsWith(".mdx")||e.endsWith(".mdl")}function ij(e){return e.endsWith(".blp")||e.endsWith(".dds")||e.endsWith(".tga")}function sj(e,t){t.length>6&&(rj(t)||ij(t)||function(e){return e.endsWith(".wav")||e.endsWith(".mp3")||e.endsWith(".slk")||e.endsWith(".txt")}(t))&&(t.endsWith(".mdl")&&(t=`${t.slice(0,-4)}.mdx`),e.push(t.replace(/\\\\/g,"\\")))}const lj={convertWeu:function(e,t,n){let a,r,i;try{a=e.readStringTable()}catch(e){return{ok:!1,error:`Failed to read the string table file: ${e}`}}if(!a)return{ok:!1,error:"The string table file doesn't exist"};const s=e.getScriptFile();if(s&&s.name.endsWith(".j"))try{t.addJassFunctions(s.text())}catch(e){}const l=new Ez(t,a);try{r=function(e,t,n){let a;const r=new Map;let i,s,l=!0;for(;l;)try{a=e.readTriggers(t),l=!1}catch(e){if(e instanceof Error){const n=e.message;if(n.endsWith("Unknown signature")){const e=n.lastIndexOf('"'),a=n.lastIndexOf('"',e-1)+1,l=n.slice(a,e),[o,u]=l.split(":"),c=parseInt(u),d={args:[],scriptName:null,returnType:3===c?"AnyType":null};i=o.toLowerCase(),s=d,r.set(o,d),t.externalFunctions[c][i]=s}else i&&s&&(s.args.push("AnyType"),s.args.length>20&&(l=!1))}}if(r.size){if(a)for(const e of a.triggers)for(const n of e.ecas)xz(a,n,r,t);for(const[e,t]of r)n.change("unknownsignature","Unknown signature",`${e}(${t.args.join(", ")}) => ${t.returnType?t.returnType:"void"}`)}return a}(e,t,l)}catch(e){return{ok:!1,error:`Failed to read the triggers file: ${e}`}}if(!r)return{ok:!1,error:"The triggers file doesn't exist"};try{i=e.readCustomTextTriggers()}catch(e){return{ok:!1,error:`Failed to read the custom text triggers file: ${e}`}}if(!i)return{ok:!1,error:"The custom text triggers file doesn't exist"};const o=r.triggers,u=i.triggers,c=i.trigger;if(u.length<o.length)for(let e=0,t=o.length-u.length;e<t;e++)u.push(new nf);for(let e=0,t=o.length;e<t;e++){const t=o[e],n=[];try{const a=ej(l,t,n);if(a.convert){l.push(t);let r=Nz(l,t,n);n.length&&(r=`${n.join("\r\n")}\r\n${r}`),u[e].text=r,t.ecas.length=0,t.isCustom=1,l.change("convertedtrigger",a.reason,u[e].text),l.pop()}else if(n.length){const e=n.join("\r\n");c.text+=`// Callbacks generated for trigger "${t.name}" due to conversions\r\n${e}\r\n`,l.change("generatedcallbacks",t.name,e)}}catch(e){return{ok:!1,error:`Error at ${l.stackToString()}: ${e}`}}}l.saveGUIReferences(o,u),e.set("war3map.wtg",r.save()),e.set("war3map.wct",i.save());try{r=e.readTriggers(n)}catch(e){return{ok:!1,error:`Failed to validate the triggers file: ${e}`}}return r?{ok:!0,changes:l.changes}:{ok:!1,error:"Failed to re-read the triggers file"}},generateListfile:function(e){const t=["(listfile)","(signature)","(attributes)","war3map.w3e","war3map.w3i","war3map.wtg","war3map.wct","war3map.wts","war3map.j","scripts\\war3map.j","war3map.lua","scripts\\war3map.lua","war3map.shd","war3mapMap.blp","war3mapMap.b00","war3mapMap.tga","war3mapPreview.tga","war3map.mmp","war3mapPath.tga","war3map.wpm","war3map.doo","war3mapUnits.doo","war3map.w3r","war3map.w3c","war3map.w3s","war3map.w3u","war3map.w3t","war3map.w3a","war3map.w3b","war3map.w3d","war3map.w3q","war3mapMisc.txt","war3mapSkin.txt","war3mapExtra.txt","war3map.imp"];let n=e.get("(listfile)");if(n)try{const e=n.text().split(/\r\n/g);for(const n of e)t.push(n.trim())}catch(e){console.warn("(listfile)",e)}for(const a of[".w3u",".w3t",".w3b",".w3d",".w3a",".w3h",".w3q"])if(n=e.get("war3map"+a),n)try{const e=n.bytes();let r;r=".w3d"===a||".w3q"===a||".w3a"===a?new ef:new tf,r.load(e);const i=[r.originalTable,r.customTable];for(const e of i)for(const n of e.objects)for(const e of n.modifications)3===e.variableType&&sj(t,e.value)}catch(e){console.warn(n.name,e)}if(n=e.get("war3map.w3s"),n)try{const e=n.bytes(),a=new jf;a.load(e);for(const e of a.sounds)t.push(e.file)}catch(e){console.warn("war3map.w3s",e)}if(n=e.get("war3map.j")||e.get("Scripts\\war3map.j")||e.get("war3map.lua")||e.get("Scripts\\war3map.lua"),n)try{const e=n.text(),a=new qf(e);let r;for(;void 0!==(r=a.read());)'"'===r[0]&&sj(t,r.slice(1,-1))}catch(e){console.warn(n.name,e)}if(n=e.get("war3mapSkin.txt"),n)try{const e=n.text(),a=new Cl;a.load(e);for(const e of a.sections.values())for(const n of e.values())for(const e of n.split(","))sj(t,e)}catch(e){console.warn("war3mapSkin.txt",e)}if(n=e.get("war3map.imp"),n)try{const e=n.bytes(),a=new qh;a.load(e);for(const e of a.entries.keys())t.push(e)}catch(e){console.warn("war3map.imp",e)}if(n=e.get("war3map.w3i"),n)try{const e=n.bytes(),a=new yf;a.load(e),sj(t,a.loadingScreenModel),sj(t,a.prologueScreenModel)}catch(e){console.warn("war3map.w3i",e)}for(let e=0,n=t.length;e<n;e++){const n=t[e];rj(n)&&t.push(`${n.slice(0,-4)}_portrait.mdx`)}for(let n=0,a=t.length;n<a;n++){const a=t[n];if(rj(a)){const n=e.get(a);if(n)try{const e=n.bytes(),a=new Po;a.load(e);for(const e of a.textures)e.path.length&&t.push(e.path);for(const e of a.attachments)sj(t,e.path);for(const e of a.particleEmitters)sj(t,e.path)}catch(e){console.warn(a,e)}}}for(let e=0,n=t.length;e<n;e++){const n=t[e];ij(n)&&t.push(`ReplaceableTextures\\CommandButtonsDisabled\\DIS${Sl(n)}`)}return new Set(t)}},oj={blp:Hb,dds:zb,MappedData:g_,jass2:MH,mdlx:Tz,w3x:lj}})(),ModelViewer=a})();
24
+ var ModelViewer;(()=>{var e={7:e=>{"use strict";var t,n="object"==typeof Reflect?Reflect:null,a=n&&"function"==typeof n.apply?n.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};t=n&&"function"==typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var r=Number.isNaN||function(e){return e!=e};function i(){i.init.call(this)}e.exports=i,e.exports.once=function(e,t){return new Promise(function(n,a){function r(n){e.removeListener(t,i),a(n)}function i(){"function"==typeof e.removeListener&&e.removeListener("error",r),n([].slice.call(arguments))}p(e,t,i,{once:!0}),"error"!==t&&function(e,t,n){"function"==typeof e.on&&p(e,"error",t,n)}(e,r,{once:!0})})},i.EventEmitter=i,i.prototype._events=void 0,i.prototype._eventsCount=0,i.prototype._maxListeners=void 0;var s=10;function l(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function o(e){return void 0===e._maxListeners?i.defaultMaxListeners:e._maxListeners}function u(e,t,n,a){var r,i,s,u;if(l(n),void 0===(i=e._events)?(i=e._events=Object.create(null),e._eventsCount=0):(void 0!==i.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),i=e._events),s=i[t]),void 0===s)s=i[t]=n,++e._eventsCount;else if("function"==typeof s?s=i[t]=a?[n,s]:[s,n]:a?s.unshift(n):s.push(n),(r=o(e))>0&&s.length>r&&!s.warned){s.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=s.length,u=c,console&&console.warn&&console.warn(u)}return e}function c(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function d(e,t,n){var a={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},r=c.bind(a);return r.listener=n,a.wrapFn=r,r}function h(e,t,n){var a=e._events;if(void 0===a)return[];var r=a[t];return void 0===r?[]:"function"==typeof r?n?[r.listener||r]:[r]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(r):m(r,r.length)}function f(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function m(e,t){for(var n=new Array(t),a=0;a<t;++a)n[a]=e[a];return n}function p(e,t,n,a){if("function"==typeof e.on)a.once?e.once(t,n):e.on(t,n);else{if("function"!=typeof e.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e);e.addEventListener(t,function r(i){a.once&&e.removeEventListener(t,r),n(i)})}}Object.defineProperty(i,"defaultMaxListeners",{enumerable:!0,get:function(){return s},set:function(e){if("number"!=typeof e||e<0||r(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");s=e}}),i.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},i.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||r(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},i.prototype.getMaxListeners=function(){return o(this)},i.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var r="error"===e,i=this._events;if(void 0!==i)r=r&&void 0===i.error;else if(!r)return!1;if(r){var s;if(t.length>0&&(s=t[0]),s instanceof Error)throw s;var l=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw l.context=s,l}var o=i[e];if(void 0===o)return!1;if("function"==typeof o)a(o,this,t);else{var u=o.length,c=m(o,u);for(n=0;n<u;++n)a(c[n],this,t)}return!0},i.prototype.addListener=function(e,t){return u(this,e,t,!1)},i.prototype.on=i.prototype.addListener,i.prototype.prependListener=function(e,t){return u(this,e,t,!0)},i.prototype.once=function(e,t){return l(t),this.on(e,d(this,e,t)),this},i.prototype.prependOnceListener=function(e,t){return l(t),this.prependListener(e,d(this,e,t)),this},i.prototype.removeListener=function(e,t){var n,a,r,i,s;if(l(t),void 0===(a=this._events))return this;if(void 0===(n=a[e]))return this;if(n===t||n.listener===t)0===--this._eventsCount?this._events=Object.create(null):(delete a[e],a.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(r=-1,i=n.length-1;i>=0;i--)if(n[i]===t||n[i].listener===t){s=n[i].listener,r=i;break}if(r<0)return this;0===r?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,r),1===n.length&&(a[e]=n[0]),void 0!==a.removeListener&&this.emit("removeListener",e,s||t)}return this},i.prototype.off=i.prototype.removeListener,i.prototype.removeAllListeners=function(e){var t,n,a;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0===--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var r,i=Object.keys(n);for(a=0;a<i.length;++a)"removeListener"!==(r=i[a])&&this.removeAllListeners(r);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(a=t.length-1;a>=0;a--)this.removeListener(e,t[a]);return this},i.prototype.listeners=function(e){return h(this,e,!0)},i.prototype.rawListeners=function(e){return h(this,e,!1)},i.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):f.call(e,t)},i.prototype.listenerCount=f,i.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},125:(e,t,n)=>{const a=n(696),r="Fengari 0.1",i=r+".4",s="B. Giannangeli, Daurnimator",l=i+" Copyright (C) 2017-2018 "+s+"\nBased on: "+a.LUA_COPYRIGHT;e.exports.FENGARI_AUTHORS=s,e.exports.FENGARI_COPYRIGHT=l,e.exports.FENGARI_RELEASE=i,e.exports.FENGARI_VERSION=r,e.exports.FENGARI_VERSION_MAJOR="0",e.exports.FENGARI_VERSION_MINOR="1",e.exports.FENGARI_VERSION_NUM=1,e.exports.FENGARI_VERSION_RELEASE="4",e.exports.is_luastring=a.is_luastring,e.exports.luastring_eq=a.luastring_eq,e.exports.luastring_from=a.luastring_from,e.exports.luastring_indexOf=a.luastring_indexOf,e.exports.luastring_of=a.luastring_of,e.exports.to_jsstring=a.to_jsstring,e.exports.to_luastring=a.to_luastring,e.exports.to_uristring=a.to_uristring,e.exports.from_userstring=a.from_userstring},179:(e,t,n)=>{"use strict";const{LUA_HOOKCALL:a,LUA_HOOKRET:r,LUA_HOOKTAILCALL:i,LUA_MASKCALL:s,LUA_MASKLINE:l,LUA_MASKRET:o,LUA_MINSTACK:u,LUA_MULTRET:c,LUA_SIGNATURE:d,constant_types:{LUA_TCCL:h,LUA_TLCF:f,LUA_TLCL:m,LUA_TNIL:p},thread_status:{LUA_ERRMEM:_,LUA_ERRERR:g,LUA_ERRRUN:b,LUA_ERRSYNTAX:w,LUA_OK:v,LUA_YIELD:A},lua_Debug:y,luastring_indexOf:S,to_luastring:T}=n(696),x=n(660),E=n(399),L=n(196),{api_check:I,lua_assert:U,LUAI_MAXCCALLS:R}=n(502),C=n(853),M=n(451),B=n(517),N=n(809),{luaS_newliteral:P}=n(415),k=n(917),{LUAI_MAXSTACK:O}=n(254),D=n(855),F=n(371),{MBuffer:G}=n(498),V=function(e,t){if(e.top<t)for(;e.top<t;)e.stack[e.top++]=new C.TValue(p,null);else for(;e.top>t;)delete e.stack[--e.top]},K=function(e,t,n){let a=e.top;for(;e.top<n+1;)e.stack[e.top++]=new C.TValue(p,null);switch(t){case _:C.setsvalue2s(e,n,P(e,"not enough memory"));break;case g:C.setsvalue2s(e,n,P(e,"error in error handling"));break;default:C.setobjs2s(e,n,a-1)}for(;e.top>n+1;)delete e.stack[--e.top]},H=O+200,z=function(e,t){U(t<=O||t==H),U(e.stack_last==e.stack.length-N.EXTRA_STACK),e.stack.length=t,e.stack_last=t-N.EXTRA_STACK},j=function(e,t){let n=e.stack.length;if(n>O)ne(e,g);else{let a=e.top+t+N.EXTRA_STACK,r=2*n;r>O&&(r=O),r<a&&(r=a),r>O?(z(e,H),E.luaG_runerror(e,T("stack overflow",!0))):z(e,r)}},X=function(e,t){e.stack_last-e.top<=t&&j(e,t)},$=function(e){let t=function(e){let t=e.top;for(let n=e.ci;null!==n;n=n.previous)t<n.top&&(t=n.top);return U(t<=e.stack_last),t+1}(e),n=t+Math.floor(t/8)+2*N.EXTRA_STACK;n>O&&(n=O),e.stack.length>O&&N.luaE_freeCI(e),t<=O-N.EXTRA_STACK&&n<e.stack.length&&z(e,n)},J=function(e,t,n){let r=e.stack[t];switch(r.type){case h:case f:{let i=r.type===h?r.value.f:r.value;X(e,u);let l=N.luaE_extendCI(e);l.funcOff=t,l.nresults=n,l.func=r,l.top=e.top+u,U(l.top<=e.stack_last),l.callstatus=0,e.hookmask&s&&Y(e,a,-1);let o=i(e);if("number"!=typeof o||o<0||(0|o)!==o)throw Error("invalid return value from JS function (expected integer)");return x.api_checknelems(e,o),W(e,l,e.top-o,o),!0}case m:{let a,i=r.value.p,l=e.top-t-1,o=i.maxstacksize;if(X(e,o),i.is_vararg)a=Q(e,i,l);else{for(;l<i.numparams;l++)e.stack[e.top++]=new C.TValue(p,null);a=t+1}let u=N.luaE_extendCI(e);return u.funcOff=t,u.nresults=n,u.func=r,u.l_base=a,u.top=a+o,V(e,u.top),u.l_code=i.code,u.l_savedpc=0,u.callstatus=N.CIST_LUA,e.hookmask&s&&Z(e,u),!1}default:return X(e,1),ee(e,t,r),J(e,t,n)}},W=function(e,t,n,a){let i=t.nresults;e.hookmask&(o|l)&&(e.hookmask&o&&Y(e,r,-1),e.oldpc=t.previous.l_savedpc);let s=t.funcOff;return e.ci=t.previous,e.ci.next=null,q(e,n,s,a,i)},q=function(e,t,n,a,r){switch(r){case 0:break;case 1:0===a?e.stack[n].setnilvalue():C.setobjs2s(e,n,t);break;case c:for(let r=0;r<a;r++)C.setobjs2s(e,n+r,t+r);for(let t=e.top;t>=n+a;t--)delete e.stack[t];return e.top=n+a,!1;default:{let i;if(r<=a)for(i=0;i<r;i++)C.setobjs2s(e,n+i,t+i);else{for(i=0;i<a;i++)C.setobjs2s(e,n+i,t+i);for(;i<r;i++)n+i>=e.top?e.stack[n+i]=new C.TValue(p,null):e.stack[n+i].setnilvalue()}break}}let i=n+r;for(let t=e.top;t>=i;t--)delete e.stack[t];return e.top=i,!0},Y=function(e,t,n){let a=e.hook;if(a&&e.allowhook){let r=e.ci,i=e.top,s=r.top,l=new y;l.event=t,l.currentline=n,l.i_ci=r,X(e,u),r.top=e.top+u,U(r.top<=e.stack_last),e.allowhook=0,r.callstatus|=N.CIST_HOOKED,a(e,l),U(!e.allowhook),e.allowhook=1,r.top=s,V(e,i),r.callstatus&=~N.CIST_HOOKED}},Z=function(e,t){let n=a;t.l_savedpc++,t.previous.callstatus&N.CIST_LUA&&t.previous.l_code[t.previous.l_savedpc-1].opcode==M.OpCodesI.OP_TAILCALL&&(t.callstatus|=N.CIST_TAIL,n=i),Y(e,n,-1),t.l_savedpc--},Q=function(e,t,n){let a,r=t.numparams,i=e.top-n,s=e.top;for(a=0;a<r&&a<n;a++)C.pushobj2s(e,e.stack[i+a]),e.stack[i+a].setnilvalue();for(;a<r;a++)e.stack[e.top++]=new C.TValue(p,null);return s},ee=function(e,t,n){let a=k.luaT_gettmbyobj(e,n,k.TMS.TM_CALL);a.ttisfunction(a)||E.luaG_typeerror(e,n,T("call",!0)),C.pushobj2s(e,e.stack[e.top-1]);for(let n=e.top-2;n>t;n--)C.setobjs2s(e,n,n-1);C.setobj2s(e,t,a)},te=function(e,t,n){++e.nCcalls>=R&&function(e){e.nCcalls===R?E.luaG_runerror(e,T("JS stack overflow",!0)):e.nCcalls>=R+(R>>3)&&ne(e,g)}(e),J(e,t,n)||F.luaV_execute(e),e.nCcalls--},ne=function(e,t){if(e.errorJmp)throw e.errorJmp.status=t,e.errorJmp;{let n=e.l_G;if(e.status=t,!n.mainthread.errorJmp){let a=n.panic;throw a&&(K(e,t,e.top),e.ci.top<e.top&&(e.ci.top=e.top),a(e)),new Error(`Aborted ${t}`)}n.mainthread.stack[n.mainthread.top++]=e.stack[e.top-1],ne(n.mainthread,t)}},ae=function(e,t,n){let a=e.nCcalls,r={status:v,previous:e.errorJmp};e.errorJmp=r;try{t(e,n)}catch(t){if(r.status===v){let n=e.l_G.atnativeerror;if(n)try{if(r.status=v,x.lua_pushcfunction(e,n),x.lua_pushlightuserdata(e,t),de(e,e.top-2,1),0!==e.errfunc){let t=e.errfunc;C.pushobj2s(e,e.stack[e.top-1]),C.setobjs2s(e,e.top-2,t),de(e,e.top-2,1)}r.status=b}catch(e){r.status===v&&(r.status=-1)}else r.status=-1}}return e.errorJmp=r.previous,e.nCcalls=a,r.status},re=function(e,t){let n=e.ci;U(null!==n.c_k&&0===e.nny),U(n.callstatus&N.CIST_YPCALL||t===A),n.callstatus&N.CIST_YPCALL&&(n.callstatus&=~N.CIST_YPCALL,e.errfunc=n.c_old_errfunc),n.nresults===c&&e.ci.top<e.top&&(e.ci.top=e.top);let a=(0,n.c_k)(e,t,n.c_ctx);x.api_checknelems(e,a),W(e,n,e.top-a,a)},ie=function(e,t){for(null!==t&&re(e,t);e.ci!==e.base_ci;)e.ci.callstatus&N.CIST_LUA?(F.luaV_finishOp(e),F.luaV_execute(e)):re(e,A)},se=function(e,t){let n=function(e){for(let t=e.ci;null!==t;t=t.previous)if(t.callstatus&N.CIST_YPCALL)return t;return null}(e);if(null===n)return 0;let a=n.extra;return L.luaF_close(e,a),K(e,t,a),e.ci=n,e.allowhook=n.callstatus&N.CIST_OAH,e.nny=0,$(e),e.errfunc=n.c_old_errfunc,1},le=function(e,t,n){let a=P(e,t);if(0===n)C.pushsvalue2s(e,a),I(e,e.top<=e.ci.top,"stack overflow");else{for(let t=1;t<n;t++)delete e.stack[--e.top];C.setsvalue2s(e,e.top-1,a)}return b},oe=function(e,t){let n=e.top-t,a=e.ci;e.status===v?J(e,n-1,c)||F.luaV_execute(e):(U(e.status===A),e.status=v,a.funcOff=a.extra,a.func=e.stack[a.funcOff],a.callstatus&N.CIST_LUA?F.luaV_execute(e):(null!==a.c_k&&(t=a.c_k(e,A,a.c_ctx),x.api_checknelems(e,t),n=e.top-t),W(e,a,n,t)),ie(e,null))},ue=function(e,t,n,a){let r=e.ci;return x.api_checknelems(e,t),e.nny>0&&(e!==e.l_G.mainthread?E.luaG_runerror(e,T("attempt to yield across a JS-call boundary",!0)):E.luaG_runerror(e,T("attempt to yield from outside a coroutine",!0))),e.status=A,r.extra=r.funcOff,r.callstatus&N.CIST_LUA?I(e,null===a,"hooks cannot continue after yielding"):(r.c_k=a,null!==a&&(r.c_ctx=n),r.funcOff=e.top-t-1,r.func=e.stack[r.funcOff],ne(e,A)),U(r.callstatus&N.CIST_HOOKED),0},ce=function(e,t,n,a,r){let i=e.ci,s=e.allowhook,l=e.nny,o=e.errfunc;e.errfunc=r;let u=ae(e,t,n);return u!==v&&(L.luaF_close(e,a),K(e,u,a),e.ci=i,e.allowhook=s,e.nny=l,$(e)),e.errfunc=o,u},de=function(e,t,n){e.nny++,te(e,t,n),e.nny--};class he{constructor(e,t,n){this.z=e,this.buff=new G,this.dyd=new B.Dyndata,this.mode=n,this.name=t}}const fe=function(e,t,n){t&&-1===S(t,n[0])&&(C.luaO_pushfstring(e,T("attempt to load a %s chunk (mode is '%s')"),n,t),ne(e,w))},me=function(e,t){let n,a=t.z.zgetc();a===d[0]?(fe(e,t.mode,T("binary",!0)),n=D.luaU_undump(e,t.z,t.name)):(fe(e,t.mode,T("text",!0)),n=B.luaY_parser(e,t.z,t.buff,t.dyd,t.name,a)),U(n.nupvalues===n.p.upvalues.length),L.luaF_initupvals(e,n)};e.exports.adjust_top=V,e.exports.luaD_call=te,e.exports.luaD_callnoyield=de,e.exports.luaD_checkstack=X,e.exports.luaD_growstack=j,e.exports.luaD_hook=Y,e.exports.luaD_inctop=function(e){X(e,1),e.stack[e.top++]=new C.TValue(p,null)},e.exports.luaD_pcall=ce,e.exports.luaD_poscall=W,e.exports.luaD_precall=J,e.exports.luaD_protectedparser=function(e,t,n,a){let r=new he(t,n,a);e.nny++;let i=ce(e,me,r,e.top,e.errfunc);return e.nny--,i},e.exports.luaD_rawrunprotected=ae,e.exports.luaD_reallocstack=z,e.exports.luaD_throw=ne,e.exports.lua_isyieldable=function(e){return 0===e.nny},e.exports.lua_resume=function(e,t,n){let a=e.nny;if(e.status===v){if(e.ci!==e.base_ci)return le(e,"cannot resume non-suspended coroutine",n)}else if(e.status!==A)return le(e,"cannot resume dead coroutine",n);if(e.nCcalls=t?t.nCcalls+1:1,e.nCcalls>=R)return le(e,"JS stack overflow",n);e.nny=0,x.api_checknelems(e,e.status===v?n+1:n);let r=ae(e,oe,n);if(-1===r)r=b;else{for(;r>A&&se(e,r);)r=ae(e,ie,r);r>A?(e.status=r,K(e,r,e.top),e.ci.top=e.top):U(r===e.status)}return e.nny=a,e.nCcalls--,U(e.nCcalls===(t?t.nCcalls:0)),r},e.exports.lua_yield=function(e,t){ue(e,t,0,null)},e.exports.lua_yieldk=ue},196:(e,t,n)=>{"use strict";const{constant_types:{LUA_TNIL:a}}=n(696),r=n(853);e.exports.MAXUPVAL=255,e.exports.Proto=class{constructor(e){this.id=e.l_G.id_counter++,this.k=[],this.p=[],this.code=[],this.cache=null,this.lineinfo=[],this.upvalues=[],this.numparams=0,this.is_vararg=!1,this.maxstacksize=0,this.locvars=[],this.linedefined=0,this.lastlinedefined=0,this.source=null}},e.exports.luaF_findupval=function(e,t){return e.stack[t]},e.exports.luaF_close=function(e,t){for(let n=t;n<e.top;n++){let t=e.stack[n];e.stack[n]=new r.TValue(t.type,t.value)}},e.exports.luaF_getlocalname=function(e,t,n){for(let a=0;a<e.locvars.length&&e.locvars[a].startpc<=n;a++)if(n<e.locvars[a].endpc&&0===--t)return e.locvars[a].varname.getstr();return null},e.exports.luaF_initupvals=function(e,t){for(let e=0;e<t.nupvalues;e++)t.upvals[e]=new r.TValue(a,null)},e.exports.luaF_newLclosure=function(e,t){return new r.LClosure(e,t)}},254:(e,t,n)=>{"use strict";const a={},{LUA_VERSION_MAJOR:r,LUA_VERSION_MINOR:i,to_luastring:s}=n(696);e.exports.LUA_PATH_SEP=";";e.exports.LUA_PATH_MARK="?";e.exports.LUA_EXEC_DIR="!";const l=r+"."+i;e.exports.LUA_VDIR=l;{const t="/";e.exports.LUA_DIRSEP=t;const n="./lua/"+l+"/";e.exports.LUA_LDIR=n;const a=n;e.exports.LUA_JSDIR=a;const r=s(n+"?.lua;"+n+"?/init.lua;./?.lua;./?/init.lua");e.exports.LUA_PATH_DEFAULT=r;const i=s(a+"?.js;"+a+"loadall.js;./?.js");e.exports.LUA_JSPATH_DEFAULT=i}const o=a.LUA_COMPAT_FLOATSTRING||!1,u=-2147483648,c=a.LUAI_MAXSTACK||1e6,d=a.LUA_IDSIZE||59,h=a.LUAL_BUFFERSIZE||8192,f=function(e,t){for(var n=Math.min(3,Math.ceil(Math.abs(t)/1023)),a=e,r=0;r<n;r++)a*=Math.pow(2,Math.floor((t+r)/n));return a};e.exports.LUAI_MAXSTACK=c,e.exports.LUA_COMPAT_FLOATSTRING=o,e.exports.LUA_IDSIZE=d,e.exports.LUA_INTEGER_FMT="%d",e.exports.LUA_INTEGER_FRMLEN="",e.exports.LUA_MAXINTEGER=2147483647,e.exports.LUA_MININTEGER=u,e.exports.LUA_NUMBER_FMT="%.14g",e.exports.LUA_NUMBER_FRMLEN="",e.exports.LUAL_BUFFERSIZE=h,e.exports.frexp=function(e){if(0===e)return[e,0];var t=new DataView(new ArrayBuffer(8));t.setFloat64(0,e);var n=t.getUint32(0)>>>20&2047;0===n&&(t.setFloat64(0,e*Math.pow(2,64)),n=(t.getUint32(0)>>>20&2047)-64);var a=n-1022;return[f(e,-a),a]},e.exports.ldexp=f,e.exports.lua_getlocaledecpoint=function(){return 46},e.exports.lua_integer2str=function(e){return String(e)},e.exports.lua_number2str=function(e){return String(Number(e.toPrecision(14)))},e.exports.lua_numbertointeger=function(e){return e>=u&&e<2147483648&&e},e.exports.luai_apicheck=function(e,t){if(!t)throw Error(t)}},371:(e,t,n)=>{"use strict";const{LUA_MASKLINE:a,LUA_MASKCOUNT:r,LUA_MULTRET:i,constant_types:{LUA_TBOOLEAN:s,LUA_TLCF:l,LUA_TLIGHTUSERDATA:o,LUA_TLNGSTR:u,LUA_TNIL:c,LUA_TNUMBER:d,LUA_TNUMFLT:h,LUA_TNUMINT:f,LUA_TSHRSTR:m,LUA_TTABLE:p,LUA_TUSERDATA:_},to_luastring:g}=n(696),{INDEXK:b,ISK:w,LFIELDS_PER_FLUSH:v,OpCodesI:{OP_ADD:A,OP_BAND:y,OP_BNOT:S,OP_BOR:T,OP_BXOR:x,OP_CALL:E,OP_CLOSURE:L,OP_CONCAT:I,OP_DIV:U,OP_EQ:R,OP_EXTRAARG:C,OP_FORLOOP:M,OP_FORPREP:B,OP_GETTABLE:N,OP_GETTABUP:P,OP_GETUPVAL:k,OP_IDIV:O,OP_JMP:D,OP_LE:F,OP_LEN:G,OP_LOADBOOL:V,OP_LOADK:K,OP_LOADKX:H,OP_LOADNIL:z,OP_LT:j,OP_MOD:X,OP_MOVE:$,OP_MUL:J,OP_NEWTABLE:W,OP_NOT:q,OP_POW:Y,OP_RETURN:Z,OP_SELF:Q,OP_SETLIST:ee,OP_SETTABLE:te,OP_SETTABUP:ne,OP_SETUPVAL:ae,OP_SHL:re,OP_SHR:ie,OP_SUB:se,OP_TAILCALL:le,OP_TEST:oe,OP_TESTSET:ue,OP_TFORCALL:ce,OP_TFORLOOP:de,OP_UNM:he,OP_VARARG:fe}}=n(451),{LUA_MAXINTEGER:me,LUA_MININTEGER:pe,lua_numbertointeger:_e}=n(254),{lua_assert:ge,luai_nummod:be}=n(502),we=n(853),ve=n(196),Ae=n(809),{luaS_bless:ye,luaS_eqlngstr:Se,luaS_hashlongstr:Te}=n(415),xe=n(179),Ee=n(917),Le=n(420),Ie=n(399),Ue=function(e,t,n){return t+n.A},Re=function(e,t,n){return t+n.B},Ce=function(e,t,n,a){return w(a.B)?n[b(a.B)]:e.stack[t+a.B]},Me=function(e,t,n,a){return w(a.C)?n[b(a.C)]:e.stack[t+a.C]},Be=function(e,t,n,a){let r=n.A;0!==r&&ve.luaF_close(e,t.l_base+r-1),t.l_savedpc+=n.sBx+a},Ne=function(e,t){Be(e,t,t.l_code[t.l_savedpc],1)},Pe=function(e,t,n){if(t.ttisnumber()&&n.ttisnumber())return Ke(t,n)?1:0;if(t.ttisstring()&&n.ttisstring())return ze(t.tsvalue(),n.tsvalue())<0?1:0;{let a=Ee.luaT_callorderTM(e,t,n,Ee.TMS.TM_LT);return null===a&&Ie.luaG_ordererror(e,t,n),a?1:0}},ke=function(e,t,n){let a;return t.ttisnumber()&&n.ttisnumber()?He(t,n)?1:0:t.ttisstring()&&n.ttisstring()?ze(t.tsvalue(),n.tsvalue())<=0?1:0:(a=Ee.luaT_callorderTM(e,t,n,Ee.TMS.TM_LE),null!==a?a?1:0:(e.ci.callstatus|=Ae.CIST_LEQ,a=Ee.luaT_callorderTM(e,n,t,Ee.TMS.TM_LT),e.ci.callstatus^=Ae.CIST_LEQ,null===a&&Ie.luaG_ordererror(e,t,n),a?0:1))},Oe=function(e,t,n){if(t.ttype()!==n.ttype())return t.ttnov()!==n.ttnov()||t.ttnov()!==d?0:t.value===n.value?1:0;let a;switch(t.ttype()){case c:return 1;case s:return t.value==n.value?1:0;case o:case f:case h:case l:return t.value===n.value?1:0;case m:case u:return Se(t.tsvalue(),n.tsvalue())?1:0;case _:case p:if(t.value===n.value)return 1;if(null===e)return 0;a=Ee.fasttm(e,t.value.metatable,Ee.TMS.TM_EQ),null===a&&(a=Ee.fasttm(e,n.value.metatable,Ee.TMS.TM_EQ));break;default:return t.value===n.value?1:0}if(null===a)return 0;let r=new we.TValue;return Ee.luaT_callTM(e,a,t,n,r,1),r.l_isfalse()?0:1},De=function(e,t){let n=!1,a=Fe(e,t<0?2:1);if(!1===a){let r=Ve(e);if(!1===r)return!1;0<r?(a=me,t<0&&(n=!0)):(a=pe,t>=0&&(n=!0))}return{stopnow:n,ilimit:a}},Fe=function(e,t){if(e.ttisfloat()){let n=e.value,a=Math.floor(n);if(n!==a){if(0===t)return!1;t>1&&(a+=1)}return _e(a)}if(e.ttisinteger())return e.value;if(Qe(e)){let n=new we.TValue;if(we.luaO_str2num(e.svalue(),n)===e.vslen()+1)return Fe(n,t)}return!1},Ge=function(e){return e.ttisinteger()?e.value:Fe(e,0)},Ve=function(e){if(e.ttnov()===d)return e.value;if(Qe(e)){let t=new we.TValue;if(we.luaO_str2num(e.svalue(),t)===e.vslen()+1)return t.value}return!1},Ke=function(e,t){return e.value<t.value},He=function(e,t){return e.value<=t.value},ze=function(e,t){let n=Te(e),a=Te(t);return n===a?0:n<a?-1:1},je=function(e,t,n){let a;switch(n.ttype()){case p:{let r=n.value;if(a=Ee.fasttm(e,r.metatable,Ee.TMS.TM_LEN),null!==a)break;return void t.setivalue(Le.luaH_getn(r))}case m:case u:return void t.setivalue(n.vslen());default:a=Ee.luaT_gettmbyobj(e,n,Ee.TMS.TM_LEN),a.ttisnil()&&Ie.luaG_typeerror(e,n,g("get length of",!0))}Ee.luaT_callTM(e,a,n,n,t,1)},Xe=Math.imul||function(e,t){let n=65535&e,a=65535&t;return n*a+((e>>>16&65535)*a+n*(t>>>16&65535)<<16>>>0)|0},$e=function(e,t,n){return 0===n&&Ie.luaG_runerror(e,g("attempt to divide by zero")),0|Math.floor(t/n)},Je=function(e,t,n){return 0===n&&Ie.luaG_runerror(e,g("attempt to perform 'n%%0'")),t-Math.floor(t/n)*n|0},We=function(e,t){return t<0?t<=-32?0:e>>>-t:t>=32?0:e<<t},qe=function(e,t,n,a){let r=e.cache;if(null!==r){let i=e.upvalues,s=i.length;for(let e=0;e<s;e++){let s=i[e].instack?n[a+i[e].idx]:t[i[e].idx];if(r.upvals[e]!==s)return null}}return r},Ye=function(e,t,n,a,r){let i=t.upvalues.length,s=t.upvalues,l=new we.LClosure(e,i);l.p=t,e.stack[r].setclLvalue(l);for(let t=0;t<i;t++)s[t].instack?l.upvals[t]=ve.luaF_findupval(e,a+s[t].idx):l.upvals[t]=n[s[t].idx];t.cache=l},Ze=function(e){return e.ttisnumber()},Qe=function(e){return e.ttisstring()},et=function(e,t){let n=e.stack[t];return!!n.ttisstring()||!!Ze(n)&&(we.luaO_tostring(e,n),!0)},tt=function(e){return e.ttisstring()&&0===e.vslen()},nt=function(e,t,n,a){let r=0;do{let i=e.stack[t-n],s=i.vslen(),l=i.svalue();a.set(l,r),r+=s}while(--n>0)},at=function(e,t){ge(t>=2);do{let n=e.top,a=2;if((e.stack[n-2].ttisstring()||Ze(e.stack[n-2]))&&et(e,n-1))if(tt(e.stack[n-1]))et(e,n-2);else if(tt(e.stack[n-2]))we.setobjs2s(e,n-2,n-1);else{let r=e.stack[n-1].vslen();for(a=1;a<t&&et(e,n-a-1);a++){r+=e.stack[n-a-1].vslen()}let i=new Uint8Array(r);nt(e,n,a,i);let s=ye(e,i);we.setsvalue2s(e,n-a,s)}else Ee.luaT_trybinTM(e,e.stack[n-2],e.stack[n-1],e.stack[n-2],Ee.TMS.TM_CONCAT);for(t-=a-1;e.top>n-(a-1);)delete e.stack[--e.top]}while(t>1)},rt=function(e,t,n,a){for(let r=0;r<2e3;r++){let r;if(t.ttistable()){let i=Le.luaH_get(e,t.value,n);if(!i.ttisnil())return void we.setobj2s(e,a,i);if(r=Ee.fasttm(e,t.value.metatable,Ee.TMS.TM_INDEX),null===r)return void e.stack[a].setnilvalue()}else r=Ee.luaT_gettmbyobj(e,t,Ee.TMS.TM_INDEX),r.ttisnil()&&Ie.luaG_typeerror(e,t,g("index",!0));if(r.ttisfunction())return void Ee.luaT_callTM(e,r,t,n,e.stack[a],1);t=r}Ie.luaG_runerror(e,g("'__index' chain too long; possible loop",!0))},it=function(e,t,n,a){for(let r=0;r<2e3;r++){let r;if(t.ttistable()){let i=t.value;if(!Le.luaH_get(e,i,n).ttisnil()||null===(r=Ee.fasttm(e,i.metatable,Ee.TMS.TM_NEWINDEX)))return Le.luaH_setfrom(e,i,n,a),void Le.invalidateTMcache(i)}else(r=Ee.luaT_gettmbyobj(e,t,Ee.TMS.TM_NEWINDEX)).ttisnil()&&Ie.luaG_typeerror(e,t,g("index",!0));if(r.ttisfunction())return void Ee.luaT_callTM(e,r,t,n,a,0);t=r}Ie.luaG_runerror(e,g("'__newindex' chain too long; possible loop",!0))};e.exports.cvt2str=Ze,e.exports.cvt2num=Qe,e.exports.luaV_gettable=rt,e.exports.luaV_concat=at,e.exports.luaV_div=$e,e.exports.luaV_equalobj=Oe,e.exports.luaV_execute=function(e){let t=e.ci;t.callstatus|=Ae.CIST_FRESH;e:for(;;){ge(t===e.ci);let n=t.func.value,s=n.p.k,l=t.l_base,o=t.l_code[t.l_savedpc++];e.hookmask&(a|r)&&Ie.luaG_traceexec(e);let u=Ue(0,l,o);switch(o.opcode){case $:we.setobjs2s(e,u,Re(0,l,o));break;case K:{let t=s[o.Bx];we.setobj2s(e,u,t);break}case H:{ge(t.l_code[t.l_savedpc].opcode===C);let n=s[t.l_code[t.l_savedpc++].Ax];we.setobj2s(e,u,n);break}case V:e.stack[u].setbvalue(0!==o.B),0!==o.C&&t.l_savedpc++;break;case z:for(let t=0;t<=o.B;t++)e.stack[u+t].setnilvalue();break;case k:{let t=o.B;we.setobj2s(e,u,n.upvals[t]);break}case P:{let t=n.upvals[o.B],a=Me(e,l,s,o);rt(e,t,a,u);break}case N:{let t=e.stack[Re(0,l,o)],n=Me(e,l,s,o);rt(e,t,n,u);break}case ne:{let t=n.upvals[o.A],a=Ce(e,l,s,o),r=Me(e,l,s,o);it(e,t,a,r);break}case ae:n.upvals[o.B].setfrom(e.stack[u]);break;case te:{let t=e.stack[u],n=Ce(e,l,s,o),a=Me(e,l,s,o);it(e,t,n,a);break}case W:e.stack[u].sethvalue(Le.luaH_new(e));break;case Q:{let t=Re(0,l,o),n=Me(e,l,s,o);we.setobjs2s(e,u+1,t),rt(e,e.stack[t],n,u);break}case A:{let t,n,a=Ce(e,l,s,o),r=Me(e,l,s,o);a.ttisinteger()&&r.ttisinteger()?e.stack[u].setivalue(a.value+r.value|0):!1!==(t=Ve(a))&&!1!==(n=Ve(r))?e.stack[u].setfltvalue(t+n):Ee.luaT_trybinTM(e,a,r,e.stack[u],Ee.TMS.TM_ADD);break}case se:{let t,n,a=Ce(e,l,s,o),r=Me(e,l,s,o);a.ttisinteger()&&r.ttisinteger()?e.stack[u].setivalue(a.value-r.value|0):!1!==(t=Ve(a))&&!1!==(n=Ve(r))?e.stack[u].setfltvalue(t-n):Ee.luaT_trybinTM(e,a,r,e.stack[u],Ee.TMS.TM_SUB);break}case J:{let t,n,a=Ce(e,l,s,o),r=Me(e,l,s,o);a.ttisinteger()&&r.ttisinteger()?e.stack[u].setivalue(Xe(a.value,r.value)):!1!==(t=Ve(a))&&!1!==(n=Ve(r))?e.stack[u].setfltvalue(t*n):Ee.luaT_trybinTM(e,a,r,e.stack[u],Ee.TMS.TM_MUL);break}case X:{let t,n,a=Ce(e,l,s,o),r=Me(e,l,s,o);a.ttisinteger()&&r.ttisinteger()?e.stack[u].setivalue(Je(e,a.value,r.value)):!1!==(t=Ve(a))&&!1!==(n=Ve(r))?e.stack[u].setfltvalue(be(e,t,n)):Ee.luaT_trybinTM(e,a,r,e.stack[u],Ee.TMS.TM_MOD);break}case Y:{let t,n,a=Ce(e,l,s,o),r=Me(e,l,s,o);!1!==(t=Ve(a))&&!1!==(n=Ve(r))?e.stack[u].setfltvalue(Math.pow(t,n)):Ee.luaT_trybinTM(e,a,r,e.stack[u],Ee.TMS.TM_POW);break}case U:{let t,n,a=Ce(e,l,s,o),r=Me(e,l,s,o);!1!==(t=Ve(a))&&!1!==(n=Ve(r))?e.stack[u].setfltvalue(t/n):Ee.luaT_trybinTM(e,a,r,e.stack[u],Ee.TMS.TM_DIV);break}case O:{let t,n,a=Ce(e,l,s,o),r=Me(e,l,s,o);a.ttisinteger()&&r.ttisinteger()?e.stack[u].setivalue($e(e,a.value,r.value)):!1!==(t=Ve(a))&&!1!==(n=Ve(r))?e.stack[u].setfltvalue(Math.floor(t/n)):Ee.luaT_trybinTM(e,a,r,e.stack[u],Ee.TMS.TM_IDIV);break}case y:{let t,n,a=Ce(e,l,s,o),r=Me(e,l,s,o);!1!==(t=Ge(a))&&!1!==(n=Ge(r))?e.stack[u].setivalue(t&n):Ee.luaT_trybinTM(e,a,r,e.stack[u],Ee.TMS.TM_BAND);break}case T:{let t,n,a=Ce(e,l,s,o),r=Me(e,l,s,o);!1!==(t=Ge(a))&&!1!==(n=Ge(r))?e.stack[u].setivalue(t|n):Ee.luaT_trybinTM(e,a,r,e.stack[u],Ee.TMS.TM_BOR);break}case x:{let t,n,a=Ce(e,l,s,o),r=Me(e,l,s,o);!1!==(t=Ge(a))&&!1!==(n=Ge(r))?e.stack[u].setivalue(t^n):Ee.luaT_trybinTM(e,a,r,e.stack[u],Ee.TMS.TM_BXOR);break}case re:{let t,n,a=Ce(e,l,s,o),r=Me(e,l,s,o);!1!==(t=Ge(a))&&!1!==(n=Ge(r))?e.stack[u].setivalue(We(t,n)):Ee.luaT_trybinTM(e,a,r,e.stack[u],Ee.TMS.TM_SHL);break}case ie:{let t,n,a=Ce(e,l,s,o),r=Me(e,l,s,o);!1!==(t=Ge(a))&&!1!==(n=Ge(r))?e.stack[u].setivalue(We(t,-n)):Ee.luaT_trybinTM(e,a,r,e.stack[u],Ee.TMS.TM_SHR);break}case he:{let t,n=e.stack[Re(0,l,o)];n.ttisinteger()?e.stack[u].setivalue(0|-n.value):!1!==(t=Ve(n))?e.stack[u].setfltvalue(-t):Ee.luaT_trybinTM(e,n,n,e.stack[u],Ee.TMS.TM_UNM);break}case S:{let t=e.stack[Re(0,l,o)];t.ttisinteger()?e.stack[u].setivalue(~t.value):Ee.luaT_trybinTM(e,t,t,e.stack[u],Ee.TMS.TM_BNOT);break}case q:{let t=e.stack[Re(0,l,o)];e.stack[u].setbvalue(t.l_isfalse());break}case G:je(e,e.stack[u],e.stack[Re(0,l,o)]);break;case I:{let n=o.B,a=o.C;e.top=l+a+1,at(e,a-n+1);let r=l+n;we.setobjs2s(e,u,r),xe.adjust_top(e,t.top);break}case D:Be(e,t,o,0);break;case R:Oe(e,Ce(e,l,s,o),Me(e,l,s,o))!==o.A?t.l_savedpc++:Ne(e,t);break;case j:Pe(e,Ce(e,l,s,o),Me(e,l,s,o))!==o.A?t.l_savedpc++:Ne(e,t);break;case F:ke(e,Ce(e,l,s,o),Me(e,l,s,o))!==o.A?t.l_savedpc++:Ne(e,t);break;case oe:(o.C?e.stack[u].l_isfalse():!e.stack[u].l_isfalse())?t.l_savedpc++:Ne(e,t);break;case ue:{let n=Re(0,l,o),a=e.stack[n];(o.C?a.l_isfalse():!a.l_isfalse())?t.l_savedpc++:(we.setobjs2s(e,u,n),Ne(e,t));break}case E:{let n=o.B,a=o.C-1;if(0!==n&&xe.adjust_top(e,u+n),!xe.luaD_precall(e,u,a)){t=e.ci;continue e}a>=0&&xe.adjust_top(e,t.top);break}case le:{let a=o.B;if(0!==a&&xe.adjust_top(e,u+a),!xe.luaD_precall(e,u,i)){let a=e.ci,r=a.previous,i=a.func,s=a.funcOff,l=r.funcOff,o=a.l_base+i.value.p.numparams;n.p.p.length>0&&ve.luaF_close(e,r.l_base);for(let t=0;s+t<o;t++)we.setobjs2s(e,l+t,s+t);r.l_base=l+(a.l_base-s),r.top=l+(e.top-s),xe.adjust_top(e,r.top),r.l_code=a.l_code,r.l_savedpc=a.l_savedpc,r.callstatus|=Ae.CIST_TAIL,r.next=null,t=e.ci=r,ge(e.top===r.l_base+e.stack[l].value.p.maxstacksize);continue e}break}case Z:{n.p.p.length>0&&ve.luaF_close(e,l);let a=xe.luaD_poscall(e,t,u,0!==o.B?o.B-1:e.top-u);if(t.callstatus&Ae.CIST_FRESH)return;t=e.ci,a&&xe.adjust_top(e,t.top),ge(t.callstatus&Ae.CIST_LUA),ge(t.l_code[t.l_savedpc-1].opcode===E);continue e}case M:if(e.stack[u].ttisinteger()){let n=e.stack[u+2].value,a=e.stack[u].value+n|0,r=e.stack[u+1].value;(0<n?a<=r:r<=a)&&(t.l_savedpc+=o.sBx,e.stack[u].chgivalue(a),e.stack[u+3].setivalue(a))}else{let n=e.stack[u+2].value,a=e.stack[u].value+n,r=e.stack[u+1].value;(0<n?a<=r:r<=a)&&(t.l_savedpc+=o.sBx,e.stack[u].chgfltvalue(a),e.stack[u+3].setfltvalue(a))}break;case B:{let n,a=e.stack[u],r=e.stack[u+1],i=e.stack[u+2];if(a.ttisinteger()&&i.ttisinteger()&&(n=De(r,i.value))){let e=n.stopnow?0:a.value;r.value=n.ilimit,a.value=e-i.value|0}else{let t,n,s;!1===(t=Ve(r))&&Ie.luaG_runerror(e,g("'for' limit must be a number",!0)),e.stack[u+1].setfltvalue(t),!1===(n=Ve(i))&&Ie.luaG_runerror(e,g("'for' step must be a number",!0)),e.stack[u+2].setfltvalue(n),!1===(s=Ve(a))&&Ie.luaG_runerror(e,g("'for' initial value must be a number",!0)),e.stack[u].setfltvalue(s-n)}t.l_savedpc+=o.sBx;break}case ce:{let n=u+3;we.setobjs2s(e,n+2,u+2),we.setobjs2s(e,n+1,u+1),we.setobjs2s(e,n,u),xe.adjust_top(e,n+3),xe.luaD_call(e,n,o.C),xe.adjust_top(e,t.top),o=t.l_code[t.l_savedpc++],u=Ue(0,l,o),ge(o.opcode===de)}case de:e.stack[u+1].ttisnil()||(we.setobjs2s(e,u,u+1),t.l_savedpc+=o.sBx);break;case ee:{let n=o.B,a=o.C;0===n&&(n=e.top-u-1),0===a&&(ge(t.l_code[t.l_savedpc].opcode===C),a=t.l_code[t.l_savedpc++].Ax);let r=e.stack[u].value,i=(a-1)*v+n;for(;n>0;n--)Le.luaH_setint(r,i--,e.stack[u+n]);xe.adjust_top(e,t.top);break}case L:{let t=n.p.p[o.Bx],a=qe(t,n.upvals,e.stack,l);null===a?Ye(e,t,n.upvals,l,u):e.stack[u].setclLvalue(a);break}case fe:{let a,r=o.B-1,i=l-t.funcOff-n.p.numparams-1;for(i<0&&(i=0),r<0&&(r=i,xe.luaD_checkstack(e,i),xe.adjust_top(e,u+i)),a=0;a<r&&a<i;a++)we.setobjs2s(e,u+a,l-i+a);for(;a<r;a++)e.stack[u+a].setnilvalue();break}case C:throw Error("invalid opcode")}}},e.exports.luaV_finishOp=function(e){let t=e.ci,n=t.l_base,a=t.l_code[t.l_savedpc-1],r=a.opcode;switch(r){case A:case se:case J:case U:case O:case y:case T:case x:case re:case ie:case X:case Y:case he:case S:case G:case P:case N:case Q:we.setobjs2s(e,n+a.A,e.top-1),delete e.stack[--e.top];break;case F:case j:case R:{let n=!e.stack[e.top-1].l_isfalse();delete e.stack[--e.top],t.callstatus&Ae.CIST_LEQ&&(ge(r===F),t.callstatus^=Ae.CIST_LEQ,n=!n),ge(t.l_code[t.l_savedpc].opcode===D),n!==!!a.A&&t.l_savedpc++;break}case I:{let r=e.top-1,i=r-1-(n+a.B);we.setobjs2s(e,r-2,r),i>1&&(e.top=r-1,at(e,i)),we.setobjs2s(e,t.l_base+a.A,e.top-1),xe.adjust_top(e,t.top);break}case ce:ge(t.l_code[t.l_savedpc].opcode===de),xe.adjust_top(e,t.top);break;case E:a.C-1>=0&&xe.adjust_top(e,t.top)}},e.exports.luaV_imul=Xe,e.exports.luaV_lessequal=ke,e.exports.luaV_lessthan=Pe,e.exports.luaV_mod=Je,e.exports.luaV_objlen=je,e.exports.luaV_rawequalobj=function(e,t){return Oe(null,e,t)},e.exports.luaV_shiftl=We,e.exports.luaV_tointeger=Fe,e.exports.settable=it,e.exports.tointeger=Ge,e.exports.tonumber=Ve},399:(e,t,n)=>{"use strict";const{LUA_HOOKCOUNT:a,LUA_HOOKLINE:r,LUA_MASKCOUNT:i,LUA_MASKLINE:s,constant_types:{LUA_TBOOLEAN:l,LUA_TNIL:o,LUA_TTABLE:u},thread_status:{LUA_ERRRUN:c,LUA_YIELD:d},from_userstring:h,luastring_eq:f,luastring_indexOf:m,to_luastring:p}=n(696),{api_check:_,lua_assert:g}=n(502),{LUA_IDSIZE:b}=n(254),w=n(660),v=n(179),A=n(196),y=n(641),S=n(853),T=n(451),x=n(809),E=n(420),L=n(917),I=n(371),U=function(e){return g(e.callstatus&x.CIST_LUA),e.l_savedpc-1},R=function(e){return 0!==e.func.value.p.lineinfo.length?e.func.value.p.lineinfo[U(e)]:-1},C=function(e){if(e.status===d){let t=e.ci,n=t.funcOff;t.func=e.stack[t.extra],t.funcOff=t.extra,t.extra=n}},M=function(e,t){g(t<e.upvalues.length);let n=e.upvalues[t].name;return null===n?p("?",!0):n.getstr()},B=function(e,t,n){let a,r=null;if(t.callstatus&x.CIST_LUA){if(n<0)return function(e,t){let n=e.func.value.p.numparams;return t>=e.l_base-e.funcOff-n?null:{pos:e.funcOff+n+t,name:p("(*vararg)",!0)}}(t,-n);a=t.l_base,r=A.luaF_getlocalname(t.func.value.p,n,U(t))}else a=t.funcOff+1;if(null===r){if(!((t===e.ci?e.top:t.next.funcOff)-a>=n&&n>0))return null;r=p("(*temporary)",!0)}return{pos:a+(n-1),name:r}},N=function(e,t){if(null===t||t instanceof S.CClosure)e.source=p("=[JS]",!0),e.linedefined=-1,e.lastlinedefined=-1,e.what=p("J",!0);else{let n=t.p;e.source=n.source?n.source.getstr():p("=?",!0),e.linedefined=n.linedefined,e.lastlinedefined=n.lastlinedefined,e.what=0===e.linedefined?p("main",!0):p("Lua",!0)}e.short_src=S.luaO_chunkid(e.source,b)},P=function(e,t){let n={name:null,funcname:null};return null===t?null:t.callstatus&x.CIST_FIN?(n.name=p("__gc",!0),n.funcname=p("metamethod",!0),n):!(t.callstatus&x.CIST_TAIL)&&t.previous.callstatus&x.CIST_LUA?F(e,t.previous):null},k=function(e,t,n){let a={name:null,funcname:null};if(T.ISK(n)){let t=e.k[T.INDEXK(n)];if(t.ttisstring())return a.name=t.svalue(),a}else{let a=D(e,t,n);if(a&&99===a.funcname[0])return a}return a.name=p("?",!0),a},O=function(e,t){return e<t?-1:e},D=function(e,t,n){let a={name:A.luaF_getlocalname(e,n+1,t),funcname:null};if(a.name)return a.funcname=p("local",!0),a;let r=function(e,t,n){let a=-1,r=0,i=T.OpCodesI;for(let s=0;s<t;s++){let l=e.code[s],o=l.A;switch(l.opcode){case i.OP_LOADNIL:{let e=l.B;o<=n&&n<=o+e&&(a=O(s,r));break}case i.OP_TFORCALL:n>=o+2&&(a=O(s,r));break;case i.OP_CALL:case i.OP_TAILCALL:n>=o&&(a=O(s,r));break;case i.OP_JMP:{let e=s+1+l.sBx;s<e&&e<=t&&e>r&&(r=e);break}default:T.testAMode(l.opcode)&&n===o&&(a=O(s,r))}}return a}(e,t,n),i=T.OpCodesI;if(-1!==r){let t=e.code[r];switch(t.opcode){case i.OP_MOVE:{let n=t.B;if(n<t.A)return D(e,r,n);break}case i.OP_GETTABUP:case i.OP_GETTABLE:{let n=t.C,s=t.B,l=t.opcode===i.OP_GETTABLE?A.luaF_getlocalname(e,s+1,r):M(e,s);return a.name=k(e,r,n).name,a.funcname=l&&f(l,y.LUA_ENV)?p("global",!0):p("field",!0),a}case i.OP_GETUPVAL:return a.name=M(e,t.B),a.funcname=p("upvalue",!0),a;case i.OP_LOADK:case i.OP_LOADKX:{let n=t.opcode===i.OP_LOADK?t.Bx:e.code[r+1].Ax;if(e.k[n].ttisstring())return a.name=e.k[n].svalue(),a.funcname=p("constant",!0),a;break}case i.OP_SELF:{let n=t.C;return a.name=k(e,r,n).name,a.funcname=p("method",!0),a}}}return null},F=function(e,t){let n={name:null,funcname:null},a=0,r=t.func.value.p,i=U(t),s=r.code[i],l=T.OpCodesI;if(t.callstatus&x.CIST_HOOKED)return n.name=p("?",!0),n.funcname=p("hook",!0),n;switch(s.opcode){case l.OP_CALL:case l.OP_TAILCALL:return D(r,i,s.A);case l.OP_TFORCALL:return n.name=p("for iterator",!0),n.funcname=p("for iterator",!0),n;case l.OP_SELF:case l.OP_GETTABUP:case l.OP_GETTABLE:a=L.TMS.TM_INDEX;break;case l.OP_SETTABUP:case l.OP_SETTABLE:a=L.TMS.TM_NEWINDEX;break;case l.OP_ADD:a=L.TMS.TM_ADD;break;case l.OP_SUB:a=L.TMS.TM_SUB;break;case l.OP_MUL:a=L.TMS.TM_MUL;break;case l.OP_MOD:a=L.TMS.TM_MOD;break;case l.OP_POW:a=L.TMS.TM_POW;break;case l.OP_DIV:a=L.TMS.TM_DIV;break;case l.OP_IDIV:a=L.TMS.TM_IDIV;break;case l.OP_BAND:a=L.TMS.TM_BAND;break;case l.OP_BOR:a=L.TMS.TM_BOR;break;case l.OP_BXOR:a=L.TMS.TM_BXOR;break;case l.OP_SHL:a=L.TMS.TM_SHL;break;case l.OP_SHR:a=L.TMS.TM_SHR;break;case l.OP_UNM:a=L.TMS.TM_UNM;break;case l.OP_BNOT:a=L.TMS.TM_BNOT;break;case l.OP_LEN:a=L.TMS.TM_LEN;break;case l.OP_CONCAT:a=L.TMS.TM_CONCAT;break;case l.OP_EQ:a=L.TMS.TM_EQ;break;case l.OP_LT:a=L.TMS.TM_LT;break;case l.OP_LE:a=L.TMS.TM_LE;break;default:return null}return n.name=e.l_G.tmname[a].getstr(),n.funcname=p("metamethod",!0),n},G=function(e,t){let n=e.ci,a=null;if(n.callstatus&x.CIST_LUA){a=function(e,t,n){let a=t.func.value;for(let e=0;e<a.nupvalues;e++)if(a.upvals[e]===n)return{name:M(a.p,e),funcname:p("upvalue",!0)};return null}(0,n,t);let r=function(e,t,n){for(let a=t.l_base;a<t.top;a++)if(e.stack[a]===n)return a;return!1}(e,n,t);!a&&r&&(a=D(n.func.value.p,U(n),r-n.l_base))}return a?S.luaO_pushfstring(e,p(" (%s '%s')",!0),a.funcname,a.name):p("",!0)},V=function(e,t,n){let a=L.luaT_objtypename(e,t);H(e,p("attempt to %s a %s value%s",!0),n,a,G(e,t))},K=function(e,t,n,a){let r;return r=n?S.luaO_chunkid(n.getstr(),b):p("?",!0),S.luaO_pushfstring(e,p("%s:%d: %s",!0),r,a,t)},H=function(e,t,...n){let a=e.ci,r=S.luaO_pushvfstring(e,t,n);a.callstatus&x.CIST_LUA&&K(e,r,a.func.value.p.source,R(a)),z(e)},z=function(e){if(0!==e.errfunc){let t=e.errfunc;S.pushobj2s(e,e.stack[e.top-1]),S.setobjs2s(e,e.top-2,t),v.luaD_callnoyield(e,e.top-2,1)}v.luaD_throw(e,c)};e.exports.luaG_addinfo=K,e.exports.luaG_concaterror=function(e,t,n){(t.ttisstring()||I.cvt2str(t))&&(t=n),V(e,t,p("concatenate",!0))},e.exports.luaG_errormsg=z,e.exports.luaG_opinterror=function(e,t,n,a){!1===I.tonumber(t)&&(n=t),V(e,n,a)},e.exports.luaG_ordererror=function(e,t,n){let a=L.luaT_objtypename(e,t),r=L.luaT_objtypename(e,n);f(a,r)?H(e,p("attempt to compare two %s values",!0),a):H(e,p("attempt to compare %s with %s",!0),a,r)},e.exports.luaG_runerror=H,e.exports.luaG_tointerror=function(e,t,n){!1===I.tointeger(t)&&(n=t),H(e,p("number%s has no integer representation",!0),G(e,n))},e.exports.luaG_traceexec=function(e){let t=e.ci,n=e.hookmask,l=0===--e.hookcount&&n&i;if(l)e.hookcount=e.basehookcount;else if(!(n&s))return;if(t.callstatus&x.CIST_HOOKYIELD)t.callstatus&=~x.CIST_HOOKYIELD;else{if(l&&v.luaD_hook(e,a,-1),n&s){let n=t.func.value.p,a=t.l_savedpc-1,i=0!==n.lineinfo.length?n.lineinfo[a]:-1;(0===a||t.l_savedpc<=e.oldpc||i!==(0!==n.lineinfo.length?n.lineinfo[e.oldpc-1]:-1))&&v.luaD_hook(e,r,i)}e.oldpc=t.l_savedpc,e.status===d&&(l&&(e.hookcount=1),t.l_savedpc--,t.callstatus|=x.CIST_HOOKYIELD,t.funcOff=e.top-1,t.func=e.stack[t.funcOff],v.luaD_throw(e,d))}},e.exports.luaG_typeerror=V,e.exports.lua_gethook=function(e){return e.hook},e.exports.lua_gethookcount=function(e){return e.basehookcount},e.exports.lua_gethookmask=function(e){return e.hookmask},e.exports.lua_getinfo=function(e,t,n){let a,r,i,s;return t=h(t),C(e),62===t[0]?(i=null,s=e.stack[e.top-1],_(e,s.ttisfunction(),"function expected"),t=t.subarray(1),e.top--):(i=n.i_ci,s=i.func,g(i.func.ttisfunction())),r=s.ttisclosure()?s.value:null,a=function(e,t,n,a,r){let i=1;for(;t.length>0;t=t.subarray(1))switch(t[0]){case 83:N(n,a);break;case 108:n.currentline=r&&r.callstatus&x.CIST_LUA?R(r):-1;break;case 117:n.nups=null===a?0:a.nupvalues,null===a||a instanceof S.CClosure?(n.isvararg=!0,n.nparams=0):(n.isvararg=a.p.is_vararg,n.nparams=a.p.numparams);break;case 116:n.istailcall=r?r.callstatus&x.CIST_TAIL:0;break;case 110:{let t=P(e,r);null===t?(n.namewhat=p("",!0),n.name=null):(n.namewhat=t.funcname,n.name=t.name);break}case 76:case 102:break;default:i=0}return i}(e,t,n,r,i),m(t,102)>=0&&(S.pushobj2s(e,s),_(e,e.top<=e.ci.top,"stack overflow")),C(e),m(t,76)>=0&&function(e,t){if(null===t||t instanceof S.CClosure)e.stack[e.top]=new S.TValue(o,null),w.api_incr_top(e);else{let n=t.p.lineinfo,a=E.luaH_new(e);e.stack[e.top]=new S.TValue(u,a),w.api_incr_top(e);let r=new S.TValue(l,!0);for(let e=0;e<n.length;e++)E.luaH_setint(a,n[e],r)}}(e,r),a},e.exports.lua_getlocal=function(e,t,n){let a;if(C(e),null===t)a=e.stack[e.top-1].ttisLclosure()?A.luaF_getlocalname(e.stack[e.top-1].value.p,n,0):null;else{let r=B(e,t.i_ci,n);r?(a=r.name,S.pushobj2s(e,e.stack[r.pos]),_(e,e.top<=e.ci.top,"stack overflow")):a=null}return C(e),a},e.exports.lua_getstack=function(e,t,n){let a,r;if(t<0)return 0;for(a=e.ci;t>0&&a!==e.base_ci;a=a.previous)t--;return 0===t&&a!==e.base_ci?(r=1,n.i_ci=a):r=0,r},e.exports.lua_sethook=function(e,t,n,a){null!==t&&0!==n||(n=0,t=null),e.ci.callstatus&x.CIST_LUA&&(e.oldpc=e.ci.l_savedpc),e.hook=t,e.basehookcount=a,e.hookcount=e.basehookcount,e.hookmask=n},e.exports.lua_setlocal=function(e,t,n){let a;C(e);let r=B(e,t.i_ci,n);return r?(a=r.name,S.setobjs2s(e,r.pos,e.top-1),delete e.stack[--e.top]):a=null,C(e),a}},415:(e,t,n)=>{"use strict";const{is_luastring:a,luastring_eq:r,luastring_from:i,to_luastring:s}=n(696),{lua_assert:l}=n(502);class o{constructor(e,t){this.hash=null,this.realstring=t}getstr(){return this.realstring}tsslen(){return this.realstring.length}}const u=function(e){l(a(e));let t=e.length,n="|";for(let a=0;a<t;a++)n+=e[a].toString(16);return n},c=function(e,t){return l(t instanceof Uint8Array),new o(e,t)};e.exports.luaS_eqlngstr=function(e,t){return l(e instanceof o),l(t instanceof o),e==t||r(e.realstring,t.realstring)},e.exports.luaS_hash=u,e.exports.luaS_hashlongstr=function(e){return l(e instanceof o),null===e.hash&&(e.hash=u(e.getstr())),e.hash},e.exports.luaS_bless=c,e.exports.luaS_new=function(e,t){return c(e,i(t))},e.exports.luaS_newliteral=function(e,t){return c(e,s(t))},e.exports.TString=o},420:(e,t,n)=>{"use strict";const{constant_types:{LUA_TBOOLEAN:a,LUA_TCCL:r,LUA_TLCF:i,LUA_TLCL:s,LUA_TLIGHTUSERDATA:l,LUA_TLNGSTR:o,LUA_TNIL:u,LUA_TNUMFLT:c,LUA_TNUMINT:d,LUA_TSHRSTR:h,LUA_TTABLE:f,LUA_TTHREAD:m,LUA_TUSERDATA:p},to_luastring:_}=n(696),{lua_assert:g}=n(502),b=n(399),w=n(853),{luaS_hashlongstr:v,TString:A}=n(415),y=n(809);let S=new WeakMap;const T=function(e){let t=S.get(e);return t||(t={},S.set(e,t)),t},x=function(e,t){switch(t.type){case u:return b.luaG_runerror(e,_("table index is nil",!0));case c:if(isNaN(t.value))return b.luaG_runerror(e,_("table index is NaN",!0));case d:case a:case f:case s:case i:case r:case p:case m:return t.value;case h:case o:return v(t.tsvalue());case l:{let n=t.value;switch(typeof n){case"string":return"*"+n;case"number":return"#"+n;case"boolean":return n?"?true":"?false";case"function":return T(n);case"object":if(n instanceof y.lua_State&&n.l_G===e.l_G||n instanceof E||n instanceof w.Udata||n instanceof w.LClosure||n instanceof w.CClosure)return T(n);default:return n}}default:throw new Error("unknown key type: "+t.type)}};class E{constructor(e){this.id=e.l_G.id_counter++,this.strong=new Map,this.dead_strong=new Map,this.dead_weak=void 0,this.f=void 0,this.l=void 0,this.metatable=null,this.flags=-1}}const L=function(e,t,n,a){e.dead_strong.clear(),e.dead_weak=void 0;let r=null,i={key:n,value:a,p:r=e.l,n:void 0};e.f||(e.f=i),r&&(r.n=i),e.strong.set(t,i),e.l=i},I=function(e,t){let n=e.strong.get(t);if(n){n.key.setdeadvalue(),n.value=void 0;let r=n.n,i=n.p;n.p=void 0,i&&(i.n=r),r&&(r.p=i),e.f===n&&(e.f=r),e.l===n&&(e.l=i),e.strong.delete(t),("object"==typeof(a=t)?null!==a:"function"==typeof a)?(e.dead_weak||(e.dead_weak=new WeakMap),e.dead_weak.set(t,n)):e.dead_strong.set(t,n)}var a},U=function(e,t){let n=e.strong.get(t);return n?n.value:w.luaO_nilobject},R=function(e,t){return g("number"==typeof t&&(0|t)===t),U(e,t)};e.exports.invalidateTMcache=function(e){e.flags=0},e.exports.luaH_get=function(e,t,n){return g(n instanceof w.TValue),n.ttisnil()||n.ttisfloat()&&isNaN(n.value)?w.luaO_nilobject:U(t,x(e,n))},e.exports.luaH_getint=R,e.exports.luaH_getn=function(e){let t=0,n=e.strong.size+1;for(;n-t>1;){let a=Math.floor((t+n)/2);R(e,a).ttisnil()?n=a:t=a}return t},e.exports.luaH_getstr=function(e,t){return g(t instanceof A),U(e,v(t))},e.exports.luaH_setfrom=function(e,t,n,a){g(n instanceof w.TValue);let r=x(e,n);if(a.ttisnil())return void I(t,r);let i=t.strong.get(r);if(i)i.value.setfrom(a);else{let e,i=n.value;e=n.ttisfloat()&&(0|i)===i?new w.TValue(d,i):new w.TValue(n.type,i);let s=new w.TValue(a.type,a.value);L(t,r,e,s)}},e.exports.luaH_setint=function(e,t,n){g("number"==typeof t&&(0|t)===t&&n instanceof w.TValue);let a=t;if(n.ttisnil())return void I(e,a);let r=e.strong.get(a);if(r){r.value.setfrom(n)}else{let r=new w.TValue(d,t),i=new w.TValue(n.type,n.value);L(e,a,r,i)}},e.exports.luaH_new=function(e){return new E(e)},e.exports.luaH_next=function(e,t,n){let a,r=e.stack[n];if(r.type===u){if(a=t.f,!a)return!1}else{let n=x(e,r);if(a=t.strong.get(n),a){if(a=a.n,!a)return!1}else{if(a=t.dead_weak&&t.dead_weak.get(n)||t.dead_strong.get(n),!a)return b.luaG_runerror(e,_("invalid key to 'next'"));do{if(a=a.n,!a)return!1}while(a.key.ttisdeadkey())}}return w.setobj2s(e,n,a.key),w.setobj2s(e,n+1,a.value),!0},e.exports.Table=E},447:(e,t,n)=>{"use strict";const{LUAL_BUFFERSIZE:a}=n(254),{LUA_ERRERR:r,LUA_MULTRET:i,LUA_REGISTRYINDEX:s,LUA_SIGNATURE:l,LUA_TBOOLEAN:o,LUA_TLIGHTUSERDATA:u,LUA_TNIL:c,LUA_TNONE:d,LUA_TNUMBER:h,LUA_TSTRING:f,LUA_TTABLE:m,LUA_VERSION_NUM:p,lua_Debug:_,lua_absindex:g,lua_atpanic:b,lua_call:w,lua_checkstack:v,lua_concat:A,lua_copy:y,lua_createtable:S,lua_error:T,lua_getfield:x,lua_getinfo:E,lua_getmetatable:L,lua_getstack:I,lua_gettop:U,lua_insert:R,lua_isinteger:C,lua_isnil:M,lua_isnumber:B,lua_isstring:N,lua_istable:P,lua_len:k,lua_load:O,lua_newstate:D,lua_newtable:F,lua_next:G,lua_pcall:V,lua_pop:K,lua_pushboolean:H,lua_pushcclosure:z,lua_pushcfunction:j,lua_pushfstring:X,lua_pushinteger:$,lua_pushliteral:J,lua_pushlstring:W,lua_pushnil:q,lua_pushstring:Y,lua_pushvalue:Z,lua_pushvfstring:Q,lua_rawequal:ee,lua_rawget:te,lua_rawgeti:ne,lua_rawlen:ae,lua_rawseti:re,lua_remove:ie,lua_setfield:se,lua_setglobal:le,lua_setmetatable:oe,lua_settop:ue,lua_toboolean:ce,lua_tointeger:de,lua_tointegerx:he,lua_tojsstring:fe,lua_tolstring:me,lua_tonumber:pe,lua_tonumberx:_e,lua_topointer:ge,lua_tostring:be,lua_touserdata:we,lua_type:ve,lua_typename:Ae,lua_version:ye}=n(936),{from_userstring:Se,luastring_eq:Te,to_luastring:xe,to_uristring:Ee}=n(125),Le=r+1,Ie=xe("_LOADED"),Ue=xe("_PRELOAD"),Re=xe("FILE*"),Ce=xe("__name"),Me=xe("__tostring"),Be=new Uint8Array(0);class Ne{constructor(){this.L=null,this.b=Be,this.n=0}}const Pe=function(e,t,n){if(0===n||!P(e,-1))return 0;for(q(e);G(e,-2);){if(ve(e,-2)===f){if(ee(e,t,-1))return K(e,1),1;if(Pe(e,t,n-1))return ie(e,-2),J(e,"."),R(e,-2),A(e,3),1}K(e,1)}return 0},ke=function(e,t){let n=U(e);if(E(e,xe("f"),t),x(e,s,Ie),Pe(e,n+1,2)){let t=be(e,-1);return 95===t[0]&&71===t[1]&&46===t[2]&&(Y(e,t.subarray(3)),ie(e,-2)),y(e,-1,n+1),K(e,2),1}return ue(e,n),0},Oe=function(e,t){ke(e,t)?(X(e,xe("function '%s'"),be(e,-1)),ie(e,-2)):0!==t.namewhat.length?X(e,xe("%s '%s'"),t.namewhat,t.name):t.what&&109===t.what[0]?J(e,"main chunk"):t.what&&76===t.what[0]?X(e,xe("function <%s:%d>"),t.short_src,t.linedefined):J(e,"?")},De=function(e){let t="PANIC: unprotected error in call to Lua API ("+fe(e,-1)+")";throw new Error(t)},Fe=function(e,t,n){let a=new _;return I(e,0,a)?(E(e,xe("n"),a),Te(a.namewhat,xe("method"))&&0===--t?Ke(e,xe("calling '%s' on bad self (%s)"),a.name,n):(null===a.name&&(a.name=ke(e,a)?be(e,-1):xe("?")),Ke(e,xe("bad argument #%d to '%s' (%s)"),t,a.name,n))):Ke(e,xe("bad argument #%d (%s)"),t,n)},Ge=function(e,t,n){let a;a=dt(e,t,Ce)===f?be(e,-1):ve(e,t)===u?xe("light userdata",!0):$e(e,t);let r=X(e,xe("%s expected, got %s"),n,a);return Fe(e,t,r)},Ve=function(e,t){let n=new _;I(e,t,n)&&(E(e,xe("Sl",!0),n),n.currentline>0)?X(e,xe("%s:%d: "),n.short_src,n.currentline):Y(e,xe(""))},Ke=function(e,t,...n){return Ve(e,1),Q(e,t,n),A(e,2),T(e)},He=function(e,t,n,a){if(t)return H(e,1),1;{let t,r;return q(e),a?(t=a.message,r=-a.errno):(t="Success",r=0),n?X(e,xe("%s: %s"),n,xe(t)):Y(e,xe(t)),$(e,r),3}},ze=function(e,t){return x(e,s,t)},je=function(e,t,n){let a=we(e,t);return null!==a&&L(e,t)?(ze(e,n),ee(e,-1,-2)||(a=null),K(e,2),a):null},Xe=function(e,t,n){Ge(e,t,Ae(e,n))},$e=function(e,t){return Ae(e,ve(e,t))},Je=function(e,t){let n=me(e,t);return null==n&&Xe(e,t,f),n},We=Je,qe=function(e,t,n){return ve(e,t)<=0?null===n?null:Se(n):Je(e,t)},Ye=qe,Ze=function(e,t){let n=_e(e,t);return!1===n&&Xe(e,t,h),n},Qe=function(e,t){let n=he(e,t);return!1===n&&function(e,t){B(e,t)?Fe(e,t,xe("number has no integer representation",!0)):Xe(e,t,h)}(e,t),n},et=function(e,t){let n=e.n+t;if(e.b.length<n){let t=Math.max(2*e.b.length,n),a=new Uint8Array(t);a.set(e.b),e.b=a}return e.b.subarray(e.n,n)},tt=function(e,t){t.L=e,t.b=Be},nt=function(e,t,n){if(n>0){t=Se(t),et(e,n).set(t.subarray(0,n)),it(e,n)}},at=function(e,t){t=Se(t),nt(e,t,t.length)},rt=function(e){W(e.L,e.b,e.n),e.n=0,e.b=Be},it=function(e,t){e.n+=t},st=function(e,t,n,a){return ve(e,n)<=0?a:t(e,n)},lt=function(e,t){let n=t.string;return t.string=null,n},ot=function(e,t,n,a,r){return O(e,lt,{string:t},a,r)},ut=function(e,t,n,a){return ot(e,t,0,a,null)},ct=function(e,t){return ut(e,t,t.length,t)},dt=function(e,t,n){if(L(e,t)){Y(e,n);let t=te(e,-2);return t===c?K(e,2):ie(e,-2),t}return c},ht=function(e,t,n){return t=g(e,t),dt(e,t,n)!==c&&(Z(e,t),w(e,1,1),!0)},ft=xe("%I"),mt=xe("%f"),pt=function(e,t,n){var a=n>>>0,r=t.length,i=e.length+1-r;e:for(;a<i;a++){for(let n=0;n<r;n++)if(e[a+n]!==t[n])continue e;return a}return-1},_t=function(e,t,n){return x(e,t,n)===m||(K(e,1),t=g(e,t),F(e),Z(e,-1),se(e,t,n),!1)},gt=function(e,t,n){bt(e,n,xe("too many upvalues",!0));for(let a in t){for(let t=0;t<n;t++)Z(e,-n);z(e,t[a],n),se(e,-(n+2),xe(a))}K(e,n)},bt=function(e,t,n){v(e,t)||(n?Ke(e,xe("stack overflow (%s)"),n):Ke(e,xe("stack overflow",!0)))},wt=function(e,t,n,a){let r=a.message,i=be(e,n).subarray(1);return X(e,xe("cannot %s %s: %s"),xe(t),i,xe(r)),ie(e,n),Le};let vt;const At=[239,187,191],yt=function(e){let t=function(e){let t;e.n=0;let n=0;do{if(t=vt(e),null===t||t!==At[n])return t;n++,e.buff[e.n++]=t}while(n<At.length);return e.n=0,vt(e)}(e);if(35===t){do{t=vt(e)}while(t&&10!==t);return{skipped:!0,c:vt(e)}}return{skipped:!1,c:t}};let St;{class e{constructor(){this.n=NaN,this.f=null,this.buff=new Uint8Array(1024),this.pos=0,this.err=void 0}}const t=function(e,t){let n=t;if(null!==n.f&&n.n>0){let e=n.n;return n.n=0,n.f=n.f.subarray(n.pos),n.buff.subarray(0,e)}let a=n.f;return n.f=null,a};vt=function(e){return e.pos<e.f.length?e.f[e.pos++]:null},St=function(n,a,r){let i=new e,s=U(n)+1;if(null===a)throw new Error("Can't read stdin in the browser");{X(n,xe("@%s"),a);let e=Ee(a),t=new XMLHttpRequest;if(t.open("GET",e,!1),"undefined"==typeof window&&(t.responseType="arraybuffer"),t.send(),!(t.status>=200&&t.status<=299))return i.err=t.status,wt(n,"open",s,{message:`${t.status}: ${t.statusText}`});"string"==typeof t.response?i.f=xe(t.response):i.f=new Uint8Array(t.response)}let o=yt(i);o.c===l[0]&&a||o.skipped&&(i.buff[i.n++]=10),null!==o.c&&(i.buff[i.n++]=o.c);let u=O(n,t,i,be(n,-1),r),c=i.err;return c?(ue(n,s),wt(n,"read",s,c)):(ie(n,s),u)}}const Tt=function(e,t){return St(e,t,null)},xt=function(e,t,n){let a=ye(e);72!=n&&Ke(e,xe("core and library have incompatible numeric types")),a!=ye(null)?Ke(e,xe("multiple Lua VMs detected")):a!==t&&Ke(e,xe("version mismatch: app. needs %f, Lua core provides %f"),t,a)};e.exports.eN=Qe,e.exports.hs=Ze,e.exports.dK=We,e.exports.rf=ct,e.exports.Zf=function(){let e=D();return e&&b(e,De),e},e.exports.oL=function(e,t){let n;return M(e,-1)?(K(e,1),-1):(t=g(e,t),ne(e,t,0),n=de(e,-1),K(e,1),0!==n?(ne(e,t,n),re(e,t,0)):n=ae(e,t)+1,re(e,t,n),n)},e.exports.On=function(e,t){if(ht(e,t,Me))N(e,-1)||Ke(e,xe("'__tostring' must return a string"));else{switch(ve(e,t)){case h:C(e,t)?X(e,ft,de(e,t)):X(e,mt,pe(e,t));break;case f:Z(e,t);break;case o:J(e,ce(e,t)?"true":"false");break;case c:J(e,"nil");break;default:{let n=dt(e,t,Ce),a=n===f?be(e,-1):$e(e,t);X(e,xe("%s: %p"),a,ge(e,t)),n!==c&&ie(e,-2);break}}}return me(e,-1)},e.exports.eK=function(e,t,n){n>=0&&(t=g(e,t),ne(e,t,0),re(e,t,n),$(e,n),re(e,t,0))}},451:e=>{"use strict";const t=[96,113,65,84,80,80,92,108,60,16,60,84,108,124,124,124,124,124,124,124,124,124,124,124,124,96,96,96,96,104,34,188,188,188,132,228,84,84,16,98,98,4,98,20,81,80,23],n=18,a=14,r=a,i=262143,s=131071,l=256,o=function(e,t){return~(-1<<e)<<t},u=function(e,t){return~o(e,t)},c=function(e,t,n,a){return e.code=e.code&u(a,n)|t<<n&o(a,n),h(e)},d=function(e,t){return c(e,t,r,n)},h=function(e){if("number"==typeof e)return{code:e,opcode:(e|0)&o(6,0),A:e>>6&o(8,0),B:e>>23&o(9,0),C:e>>a&o(9,0),Bx:e>>r&o(n,0),Ax:e>>6&o(26,0),sBx:(e>>r&o(n,0))-s};{let t=e.code;return e.opcode=(t|0)&o(6,0),e.A=t>>6&o(8,0),e.B=t>>23&o(9,0),e.C=t>>a&o(9,0),e.Bx=t>>r&o(n,0),e.Ax=t>>6&o(26,0),e.sBx=(t>>r&o(n,0))-s,e}};e.exports.BITRK=l,e.exports.CREATE_ABC=function(e,t,n,r){return h(e|0|t<<6|n<<23|r<<a)},e.exports.CREATE_ABx=function(e,t,n){return h(e|0|t<<6|n<<r)},e.exports.CREATE_Ax=function(e,t){return h(e|0|t<<6)},e.exports.GET_OPCODE=function(e){return e.opcode},e.exports.GETARG_A=function(e){return e.A},e.exports.GETARG_B=function(e){return e.B},e.exports.GETARG_C=function(e){return e.C},e.exports.GETARG_Bx=function(e){return e.Bx},e.exports.GETARG_Ax=function(e){return e.Ax},e.exports.GETARG_sBx=function(e){return e.sBx},e.exports.INDEXK=function(e){return-257&e},e.exports.ISK=function(e){return e&l},e.exports.LFIELDS_PER_FLUSH=50,e.exports.MAXARG_A=255,e.exports.MAXARG_Ax=67108863,e.exports.MAXARG_B=511,e.exports.MAXARG_Bx=i,e.exports.MAXARG_C=511,e.exports.MAXARG_sBx=s,e.exports.MAXINDEXRK=255,e.exports.NO_REG=255,e.exports.OpArgK=3,e.exports.OpArgN=0,e.exports.OpArgR=2,e.exports.OpArgU=1,e.exports.OpCodes=["MOVE","LOADK","LOADKX","LOADBOOL","LOADNIL","GETUPVAL","GETTABUP","GETTABLE","SETTABUP","SETUPVAL","SETTABLE","NEWTABLE","SELF","ADD","SUB","MUL","MOD","POW","DIV","IDIV","BAND","BOR","BXOR","SHL","SHR","UNM","BNOT","NOT","LEN","CONCAT","JMP","EQ","LT","LE","TEST","TESTSET","CALL","TAILCALL","RETURN","FORLOOP","FORPREP","TFORCALL","TFORLOOP","SETLIST","CLOSURE","VARARG","EXTRAARG"],e.exports.OpCodesI={OP_MOVE:0,OP_LOADK:1,OP_LOADKX:2,OP_LOADBOOL:3,OP_LOADNIL:4,OP_GETUPVAL:5,OP_GETTABUP:6,OP_GETTABLE:7,OP_SETTABUP:8,OP_SETUPVAL:9,OP_SETTABLE:10,OP_NEWTABLE:11,OP_SELF:12,OP_ADD:13,OP_SUB:14,OP_MUL:15,OP_MOD:16,OP_POW:17,OP_DIV:18,OP_IDIV:19,OP_BAND:20,OP_BOR:21,OP_BXOR:22,OP_SHL:23,OP_SHR:24,OP_UNM:25,OP_BNOT:26,OP_NOT:27,OP_LEN:28,OP_CONCAT:29,OP_JMP:30,OP_EQ:31,OP_LT:32,OP_LE:33,OP_TEST:34,OP_TESTSET:35,OP_CALL:36,OP_TAILCALL:37,OP_RETURN:38,OP_FORLOOP:39,OP_FORPREP:40,OP_TFORCALL:41,OP_TFORLOOP:42,OP_SETLIST:43,OP_CLOSURE:44,OP_VARARG:45,OP_EXTRAARG:46},e.exports.POS_A=6,e.exports.POS_Ax=6,e.exports.POS_B=23,e.exports.POS_Bx=r,e.exports.POS_C=a,e.exports.POS_OP=0,e.exports.RKASK=function(e){return e|l},e.exports.SETARG_A=function(e,t){return c(e,t,6,8)},e.exports.SETARG_Ax=function(e,t){return c(e,t,6,26)},e.exports.SETARG_B=function(e,t){return c(e,t,23,9)},e.exports.SETARG_Bx=d,e.exports.SETARG_C=function(e,t){return c(e,t,a,9)},e.exports.SETARG_sBx=function(e,t){return d(e,t+s)},e.exports.SET_OPCODE=function(e,t){return e.code=e.code&u(6,0)|(t|0)&o(6,0),h(e)},e.exports.SIZE_A=8,e.exports.SIZE_Ax=26,e.exports.SIZE_B=9,e.exports.SIZE_Bx=n,e.exports.SIZE_C=9,e.exports.SIZE_OP=6,e.exports.fullins=h,e.exports.getBMode=function(e){return t[e]>>4&3},e.exports.getCMode=function(e){return t[e]>>2&3},e.exports.getOpMode=function(e){return 3&t[e]},e.exports.iABC=0,e.exports.iABx=1,e.exports.iAsBx=2,e.exports.iAx=3,e.exports.testAMode=function(e){return 64&t[e]},e.exports.testTMode=function(e){return 128&t[e]}},459:(e,t,n)=>{"use strict";const{LUA_MULTRET:a,LUA_OPADD:r,LUA_OPBAND:i,LUA_OPBNOT:s,LUA_OPBOR:l,LUA_OPBXOR:o,LUA_OPDIV:u,LUA_OPIDIV:c,LUA_OPMOD:d,LUA_OPSHL:h,LUA_OPSHR:f,LUA_OPUNM:m,constant_types:{LUA_TBOOLEAN:p,LUA_TLIGHTUSERDATA:_,LUA_TLNGSTR:g,LUA_TNIL:b,LUA_TNUMFLT:w,LUA_TNUMINT:v,LUA_TTABLE:A},to_luastring:y}=n(696),{lua_assert:S}=n(502),T=n(641),x=n(853),E=n(451),L=n(517),I=n(420),U=n(371),R=E.OpCodesI,C=x.TValue,M=-1,B={OPR_ADD:0,OPR_SUB:1,OPR_MUL:2,OPR_MOD:3,OPR_POW:4,OPR_DIV:5,OPR_IDIV:6,OPR_BAND:7,OPR_BOR:8,OPR_BXOR:9,OPR_SHL:10,OPR_SHR:11,OPR_CONCAT:12,OPR_EQ:13,OPR_LT:14,OPR_LE:15,OPR_NE:16,OPR_GT:17,OPR_GE:18,OPR_AND:19,OPR_OR:20,OPR_NOBINOPR:21},N={OPR_MINUS:0,OPR_BNOT:1,OPR_NOT:2,OPR_LEN:3,OPR_NOUNOPR:4},P=function(e){return e.t!==e.f},k=function(e,t){let n=L.expkind;if(P(e))return!1;switch(e.k){case n.VKINT:return!t||new C(v,e.u.ival);case n.VKFLT:return!t||new C(w,e.u.nval);default:return!1}},O=function(e,t,n){let a,r=t+n-1;if(e.pc>e.lasttarget&&(a=e.f.code[e.pc-1],a.opcode===R.OP_LOADNIL)){let e=a.A,n=e+a.B;if(e<=t&&t<=n+1||t<=e&&e<=r+1)return e<t&&(t=e),n>r&&(r=n),E.SETARG_A(a,t),void E.SETARG_B(a,r-t)}Q(e,R.OP_LOADNIL,t,n-1,0)},D=function(e,t){return e.f.code[t.u.info]},F=function(e,t){let n=e.f.code[t].sBx;return n===M?M:t+1+n},G=function(e,t,n){let a=e.f.code[t],r=n-(t+1);S(n!==M),Math.abs(r)>E.MAXARG_sBx&&T.luaX_syntaxerror(e.ls,y("control structure too long",!0)),E.SETARG_sBx(a,r)},V=function(e,t,n){if(n===M)return t;if(t===M)t=n;else{let a=t,r=F(e,a);for(;r!==M;)a=r,r=F(e,a);G(e,a,n)}return t},K=function(e){let t=e.jpc;e.jpc=M;let n=te(e,R.OP_JMP,0,M);return n=V(e,n,t),n},H=function(e,t,n,a,r){return Q(e,t,n,a,r),K(e)},z=function(e){return e.lasttarget=e.pc,e.pc},j=function(e,t){return t>=1&&E.testTMode(e.f.code[t-1].opcode)?t-1:t},X=function(e,t){return e.f.code[j(e,t)]},$=function(e,t,n){let a=j(e,t),r=e.f.code[a];return r.opcode===R.OP_TESTSET&&(n!==E.NO_REG&&n!==r.B?E.SETARG_A(r,n):e.f.code[a]=E.CREATE_ABC(R.OP_TEST,r.B,0,r.C),!0)},J=function(e,t){for(;t!==M;t=F(e,t))$(e,t,E.NO_REG)},W=function(e,t,n,a,r){for(;t!==M;){let i=F(e,t);$(e,t,a)?G(e,t,n):G(e,t,r),t=i}},q=function(e,t){z(e),e.jpc=V(e,e.jpc,t)},Y=function(e,t,n){n===e.pc?q(e,t):(S(n<e.pc),W(e,t,n,E.NO_REG,n))},Z=function(e,t){let n=e.f;return function(e){W(e,e.jpc,e.pc,E.NO_REG,e.pc),e.jpc=M}(e),n.code[e.pc]=t,n.lineinfo[e.pc]=e.ls.lastline,e.pc++},Q=function(e,t,n,a,r){return S(E.getOpMode(t)===E.iABC),S(E.getBMode(t)!==E.OpArgN||0===a),S(E.getCMode(t)!==E.OpArgN||0===r),S(n<=E.MAXARG_A&&a<=E.MAXARG_B&&r<=E.MAXARG_C),Z(e,E.CREATE_ABC(t,n,a,r))},ee=function(e,t,n,a){return S(E.getOpMode(t)===E.iABx||E.getOpMode(t)===E.iAsBx),S(E.getCMode(t)===E.OpArgN),S(n<=E.MAXARG_A&&a<=E.MAXARG_Bx),Z(e,E.CREATE_ABx(t,n,a))},te=function(e,t,n,a){return ee(e,t,n,a+E.MAXARG_sBx)},ne=function(e,t){return S(t<=E.MAXARG_Ax),Z(e,E.CREATE_Ax(R.OP_EXTRAARG,t))},ae=function(e,t,n){if(n<=E.MAXARG_Bx)return ee(e,R.OP_LOADK,t,n);{let a=ee(e,R.OP_LOADKX,t,0);return ne(e,n),a}},re=function(e,t){let n=e.freereg+t;n>e.f.maxstacksize&&(n>=255&&T.luaX_syntaxerror(e.ls,y("function or expression needs too many registers",!0)),e.f.maxstacksize=n)},ie=function(e,t){re(e,t),e.freereg+=t},se=function(e,t){!E.ISK(t)&&t>=e.nactvar&&(e.freereg--,S(t===e.freereg))},le=function(e,t){t.k===L.expkind.VNONRELOC&&se(e,t.u.info)},oe=function(e,t,n){let a=t.k===L.expkind.VNONRELOC?t.u.info:-1,r=n.k===L.expkind.VNONRELOC?n.u.info:-1;a>r?(se(e,a),se(e,r)):(se(e,r),se(e,a))},ue=function(e,t,n){let a=e.f,r=I.luaH_get(e.L,e.ls.h,t);if(r.ttisinteger()){let t=r.value;if(t<e.nk&&a.k[t].ttype()===n.ttype()&&a.k[t].value===n.value)return t}let i=e.nk;return I.luaH_setfrom(e.L,e.ls.h,t,new x.TValue(v,i)),a.k[i]=n,e.nk++,i},ce=function(e,t){let n=new C(_,t),a=new C(v,t);return ue(e,n,a)},de=function(e,t){let n=new C(w,t);return ue(e,n,n)},he=function(e,t){let n=new C(p,t);return ue(e,n,n)},fe=function(e,t,n){let r=L.expkind;if(t.k===r.VCALL)E.SETARG_C(D(e,t),n+1);else if(t.k===r.VVARARG){let a=D(e,t);E.SETARG_B(a,n+1),E.SETARG_A(a,e.freereg),ie(e,1)}else S(n===a)},me=function(e,t){let n=L.expkind;t.k===n.VCALL?(S(2===D(e,t).C),t.k=n.VNONRELOC,t.u.info=D(e,t).A):t.k===n.VVARARG&&(E.SETARG_B(D(e,t),2),t.k=n.VRELOCABLE)},pe=function(e,t){let n=L.expkind;switch(t.k){case n.VLOCAL:t.k=n.VNONRELOC;break;case n.VUPVAL:t.u.info=Q(e,R.OP_GETUPVAL,0,t.u.info,0),t.k=n.VRELOCABLE;break;case n.VINDEXED:{let a;se(e,t.u.ind.idx),t.u.ind.vt===n.VLOCAL?(se(e,t.u.ind.t),a=R.OP_GETTABLE):(S(t.u.ind.vt===n.VUPVAL),a=R.OP_GETTABUP),t.u.info=Q(e,a,0,t.u.ind.t,t.u.ind.idx),t.k=n.VRELOCABLE;break}case n.VVARARG:case n.VCALL:me(e,t)}},_e=function(e,t,n,a){return z(e),Q(e,R.OP_LOADBOOL,t,n,a)},ge=function(e,t,n){let a=L.expkind;switch(pe(e,t),t.k){case a.VNIL:O(e,n,1);break;case a.VFALSE:case a.VTRUE:Q(e,R.OP_LOADBOOL,n,t.k===a.VTRUE,0);break;case a.VK:ae(e,n,t.u.info);break;case a.VKFLT:ae(e,n,de(e,t.u.nval));break;case a.VKINT:ae(e,n,ce(e,t.u.ival));break;case a.VRELOCABLE:{let a=D(e,t);E.SETARG_A(a,n);break}case a.VNONRELOC:n!==t.u.info&&Q(e,R.OP_MOVE,n,t.u.info,0);break;default:return void S(t.k===a.VJMP)}t.u.info=n,t.k=a.VNONRELOC},be=function(e,t){t.k!==L.expkind.VNONRELOC&&(ie(e,1),ge(e,t,e.freereg-1))},we=function(e,t){for(;t!==M;t=F(e,t)){if(X(e,t).opcode!==R.OP_TESTSET)return!0}return!1},ve=function(e,t,n){let a=L.expkind;if(ge(e,t,n),t.k===a.VJMP&&(t.t=V(e,t.t,t.u.info)),P(t)){let r,i=M,s=M;if(we(e,t.t)||we(e,t.f)){let r=t.k===a.VJMP?M:K(e);i=_e(e,n,0,1),s=_e(e,n,1,0),q(e,r)}r=z(e),W(e,t.f,r,n,i),W(e,t.t,r,n,s)}t.f=t.t=M,t.u.info=n,t.k=a.VNONRELOC},Ae=function(e,t){pe(e,t),le(e,t),ie(e,1),ve(e,t,e.freereg-1)},ye=function(e,t){if(pe(e,t),t.k===L.expkind.VNONRELOC){if(!P(t))return t.u.info;if(t.u.info>=e.nactvar)return ve(e,t,t.u.info),t.u.info}return Ae(e,t),t.u.info},Se=function(e,t){P(t)?ye(e,t):pe(e,t)},Te=function(e,t){let n=L.expkind,a=!1;switch(Se(e,t),t.k){case n.VTRUE:t.u.info=he(e,!0),a=!0;break;case n.VFALSE:t.u.info=he(e,!1),a=!0;break;case n.VNIL:t.u.info=function(e){let t=new C(b,null),n=new C(A,e.ls.h);return ue(e,n,t)}(e),a=!0;break;case n.VKINT:t.u.info=ce(e,t.u.ival),a=!0;break;case n.VKFLT:t.u.info=de(e,t.u.nval),a=!0;break;case n.VK:a=!0}return a&&(t.k=n.VK,t.u.info<=E.MAXINDEXRK)?E.RKASK(t.u.info):ye(e,t)},xe=function(e,t){let n=X(e,t.u.info);S(E.testTMode(n.opcode)&&n.opcode!==R.OP_TESTSET&&n.opcode!==R.OP_TEST),E.SETARG_A(n,!n.A)},Ee=function(e,t,n){if(t.k===L.expkind.VRELOCABLE){let a=D(e,t);if(a.opcode===R.OP_NOT)return e.pc--,H(e,R.OP_TEST,a.B,0,!n)}return be(e,t),le(e,t),H(e,R.OP_TESTSET,E.NO_REG,t.u.info,n)},Le=function(e,t){let n,a=L.expkind;switch(pe(e,t),t.k){case a.VJMP:xe(e,t),n=t.u.info;break;case a.VK:case a.VKFLT:case a.VKINT:case a.VTRUE:n=M;break;default:n=Ee(e,t,0)}t.f=V(e,t.f,n),q(e,t.t),t.t=M},Ie=function(e,t){let n,a=L.expkind;switch(pe(e,t),t.k){case a.VJMP:n=t.u.info;break;case a.VNIL:case a.VFALSE:n=M;break;default:n=Ee(e,t,1)}t.t=V(e,t.t,n),q(e,t.f),t.f=M},Ue=function(e,t,n){let a,r,m=L.expkind;if(!(a=k(t,!0))||!(r=k(n,!0))||!function(e,t,n){switch(e){case i:case l:case o:case h:case f:case s:return!1!==U.tointeger(t)&&!1!==U.tointeger(n);case u:case c:case d:return 0!==n.value;default:return 1}}(e,a,r))return 0;let p=new C;if(x.luaO_arith(null,e,a,r,p),p.ttisinteger())t.k=m.VKINT,t.u.ival=p.value;else{let e=p.value;if(isNaN(e)||0===e)return!1;t.k=m.VKFLT,t.u.nval=e}return!0},Re=function(e,t,n,a,r){let i=Te(e,a),s=Te(e,n);oe(e,n,a),n.u.info=Q(e,t,0,s,i),n.k=L.expkind.VRELOCABLE,Ce(e,r)},Ce=function(e,t){e.f.lineinfo[e.pc-1]=t};e.exports.BinOpr=B,e.exports.NO_JUMP=M,e.exports.UnOpr=N,e.exports.getinstruction=D,e.exports.luaK_checkstack=re,e.exports.luaK_code=Z,e.exports.luaK_codeABC=Q,e.exports.luaK_codeABx=ee,e.exports.luaK_codeAsBx=te,e.exports.luaK_codek=ae,e.exports.luaK_concat=V,e.exports.luaK_dischargevars=pe,e.exports.luaK_exp2RK=Te,e.exports.luaK_exp2anyreg=ye,e.exports.luaK_exp2anyregup=function(e,t){(t.k!==L.expkind.VUPVAL||P(t))&&ye(e,t)},e.exports.luaK_exp2nextreg=Ae,e.exports.luaK_exp2val=Se,e.exports.luaK_fixline=Ce,e.exports.luaK_getlabel=z,e.exports.luaK_goiffalse=Ie,e.exports.luaK_goiftrue=Le,e.exports.luaK_indexed=function(e,t,n){let a=L.expkind;S(!P(t)&&(L.vkisinreg(t.k)||t.k===a.VUPVAL)),t.u.ind.t=t.u.info,t.u.ind.idx=Te(e,n),t.u.ind.vt=t.k===a.VUPVAL?a.VUPVAL:a.VLOCAL,t.k=a.VINDEXED},e.exports.luaK_infix=function(e,t,n){switch(t){case B.OPR_AND:Le(e,n);break;case B.OPR_OR:Ie(e,n);break;case B.OPR_CONCAT:Ae(e,n);break;case B.OPR_ADD:case B.OPR_SUB:case B.OPR_MUL:case B.OPR_DIV:case B.OPR_IDIV:case B.OPR_MOD:case B.OPR_POW:case B.OPR_BAND:case B.OPR_BOR:case B.OPR_BXOR:case B.OPR_SHL:case B.OPR_SHR:k(n,!1)||Te(e,n);break;default:Te(e,n)}},e.exports.luaK_intK=ce,e.exports.luaK_jump=K,e.exports.luaK_jumpto=function(e,t){return Y(e,K(e),t)},e.exports.luaK_nil=O,e.exports.luaK_numberK=de,e.exports.luaK_patchclose=function(e,t,n){for(n++;t!==M;t=F(e,t)){let a=e.f.code[t];S(a.opcode===R.OP_JMP&&(0===a.A||a.A>=n)),E.SETARG_A(a,n)}},e.exports.luaK_patchlist=Y,e.exports.luaK_patchtohere=q,e.exports.luaK_posfix=function(e,t,n,a,i){let s=L.expkind;switch(t){case B.OPR_AND:S(n.t===M),pe(e,a),a.f=V(e,a.f,n.f),n.to(a);break;case B.OPR_OR:S(n.f===M),pe(e,a),a.t=V(e,a.t,n.t),n.to(a);break;case B.OPR_CONCAT:{Se(e,a);let t=D(e,a);a.k===s.VRELOCABLE&&t.opcode===R.OP_CONCAT?(S(n.u.info===t.B-1),le(e,n),E.SETARG_B(t,n.u.info),n.k=s.VRELOCABLE,n.u.info=a.u.info):(Ae(e,a),Re(e,R.OP_CONCAT,n,a,i));break}case B.OPR_ADD:case B.OPR_SUB:case B.OPR_MUL:case B.OPR_DIV:case B.OPR_IDIV:case B.OPR_MOD:case B.OPR_POW:case B.OPR_BAND:case B.OPR_BOR:case B.OPR_BXOR:case B.OPR_SHL:case B.OPR_SHR:Ue(t+r,n,a)||Re(e,t+R.OP_ADD,n,a,i);break;case B.OPR_EQ:case B.OPR_LT:case B.OPR_LE:case B.OPR_NE:case B.OPR_GT:case B.OPR_GE:!function(e,t,n,a){let r,i=L.expkind;n.k===i.VK?r=E.RKASK(n.u.info):(S(n.k===i.VNONRELOC),r=n.u.info);let s=Te(e,a);switch(oe(e,n,a),t){case B.OPR_NE:n.u.info=H(e,R.OP_EQ,0,r,s);break;case B.OPR_GT:case B.OPR_GE:{let a=t-B.OPR_NE+R.OP_EQ;n.u.info=H(e,a,1,s,r);break}default:{let a=t-B.OPR_EQ+R.OP_EQ;n.u.info=H(e,a,1,r,s);break}}n.k=i.VJMP}(e,t,n,a)}return n},e.exports.luaK_prefix=function(e,t,n,a){let r=new L.expdesc;switch(r.k=L.expkind.VKINT,r.u.ival=r.u.nval=r.u.info=0,r.t=M,r.f=M,t){case N.OPR_MINUS:case N.OPR_BNOT:if(Ue(t+m,n,r))break;case N.OPR_LEN:!function(e,t,n,a){let r=ye(e,n);le(e,n),n.u.info=Q(e,t,0,r,0),n.k=L.expkind.VRELOCABLE,Ce(e,a)}(e,t+R.OP_UNM,n,a);break;case N.OPR_NOT:!function(e,t){let n=L.expkind;switch(pe(e,t),t.k){case n.VNIL:case n.VFALSE:t.k=n.VTRUE;break;case n.VK:case n.VKFLT:case n.VKINT:case n.VTRUE:t.k=n.VFALSE;break;case n.VJMP:xe(e,t);break;case n.VRELOCABLE:case n.VNONRELOC:be(e,t),le(e,t),t.u.info=Q(e,R.OP_NOT,0,t.u.info,0),t.k=n.VRELOCABLE}{let e=t.f;t.f=t.t,t.t=e}J(e,t.f),J(e,t.t)}(e,n)}},e.exports.luaK_reserveregs=ie,e.exports.luaK_ret=function(e,t,n){Q(e,R.OP_RETURN,t,n+1,0)},e.exports.luaK_self=function(e,t,n){ye(e,t);let a=t.u.info;le(e,t),t.u.info=e.freereg,t.k=L.expkind.VNONRELOC,ie(e,2),Q(e,R.OP_SELF,t.u.info,a,Te(e,n)),le(e,n)},e.exports.luaK_setlist=function(e,t,n,r){let i=(n-1)/E.LFIELDS_PER_FLUSH+1,s=r===a?0:r;S(0!==r&&r<=E.LFIELDS_PER_FLUSH),i<=E.MAXARG_C?Q(e,R.OP_SETLIST,t,s,i):i<=E.MAXARG_Ax?(Q(e,R.OP_SETLIST,t,s,0),ne(e,i)):T.luaX_syntaxerror(e.ls,y("constructor too long",!0)),e.freereg=t+1},e.exports.luaK_setmultret=function(e,t){fe(e,t,a)},e.exports.luaK_setoneret=me,e.exports.luaK_setreturns=fe,e.exports.luaK_storevar=function(e,t,n){let a=L.expkind;switch(t.k){case a.VLOCAL:return le(e,n),void ve(e,n,t.u.info);case a.VUPVAL:{let a=ye(e,n);Q(e,R.OP_SETUPVAL,a,t.u.info,0);break}case a.VINDEXED:{let r=t.u.ind.vt===a.VLOCAL?R.OP_SETTABLE:R.OP_SETTABUP,i=Te(e,n);Q(e,r,t.u.ind.t,t.u.ind.idx,i);break}}le(e,n)},e.exports.luaK_stringK=function(e,t){let n=new C(g,t);return ue(e,n,n)}},498:(e,t,n)=>{"use strict";const{lua_assert:a}=n(502);const r=function(e){let t=e.reader(e.L,e.data);if(null===t)return-1;a(t instanceof Uint8Array,"Should only load binary of array of bytes");let n=t.length;return 0===n?-1:(e.buffer=t,e.off=0,e.n=n-1,e.buffer[e.off++])};e.exports.EOZ=-1,e.exports.luaZ_buffer=function(e){return e.buffer.subarray(0,e.n)},e.exports.luaZ_buffremove=function(e,t){e.n-=t},e.exports.luaZ_fill=r,e.exports.luaZ_read=function(e,t,n,a){for(;a;){if(0===e.n){if(-1===r(e))return a;e.n++,e.off--}let i=a<=e.n?a:e.n;for(let a=0;a<i;a++)t[n++]=e.buffer[e.off++];e.n-=i,0===e.n&&(e.buffer=null),a-=i}return 0},e.exports.luaZ_resetbuffer=function(e){e.n=0},e.exports.luaZ_resizebuffer=function(e,t,n){let a=new Uint8Array(n);t.buffer&&a.set(t.buffer),t.buffer=a},e.exports.MBuffer=class{constructor(){this.buffer=null,this.n=0}},e.exports.ZIO=class{constructor(e,t,n){this.L=e,a("function"==typeof t,"ZIO requires a reader"),this.reader=t,this.data=n,this.n=0,this.buffer=null,this.off=0}zgetc(){return this.n-- >0?this.buffer[this.off++]:r(this)}}},502:(e,t,n)=>{"use strict";const{luai_apicheck:a}=n(254),r=function(e){if(!e)throw Error("assertion failed")};e.exports.lua_assert=r,e.exports.luai_apicheck=a||function(e,t){return r(t)};e.exports.api_check=function(e,t,n){return a(e,t&&n)};e.exports.LUAI_MAXCCALLS=200;e.exports.LUA_MINBUFFER=32;e.exports.luai_nummod=function(e,t,n){let a=t%n;return a*n<0&&(a+=n),a};e.exports.MAX_INT=2147483647;e.exports.MIN_INT=-2147483648},517:(e,t,n)=>{"use strict";const{LUA_MULTRET:a,to_luastring:r}=n(696),{BinOpr:{OPR_ADD:i,OPR_AND:s,OPR_BAND:l,OPR_BOR:o,OPR_BXOR:u,OPR_CONCAT:c,OPR_DIV:d,OPR_EQ:h,OPR_GE:f,OPR_GT:m,OPR_IDIV:p,OPR_LE:_,OPR_LT:g,OPR_MOD:b,OPR_MUL:w,OPR_NE:v,OPR_NOBINOPR:A,OPR_OR:y,OPR_POW:S,OPR_SHL:T,OPR_SHR:x,OPR_SUB:E},UnOpr:{OPR_BNOT:L,OPR_LEN:I,OPR_MINUS:U,OPR_NOT:R,OPR_NOUNOPR:C},NO_JUMP:M,getinstruction:B,luaK_checkstack:N,luaK_codeABC:P,luaK_codeABx:k,luaK_codeAsBx:O,luaK_codek:D,luaK_concat:F,luaK_dischargevars:G,luaK_exp2RK:V,luaK_exp2anyreg:K,luaK_exp2anyregup:H,luaK_exp2nextreg:z,luaK_exp2val:j,luaK_fixline:X,luaK_getlabel:$,luaK_goiffalse:J,luaK_goiftrue:W,luaK_indexed:q,luaK_infix:Y,luaK_intK:Z,luaK_jump:Q,luaK_jumpto:ee,luaK_nil:te,luaK_patchclose:ne,luaK_patchlist:ae,luaK_patchtohere:re,luaK_posfix:ie,luaK_prefix:se,luaK_reserveregs:le,luaK_ret:oe,luaK_self:ue,luaK_setlist:ce,luaK_setmultret:de,luaK_setoneret:he,luaK_setreturns:fe,luaK_storevar:me,luaK_stringK:pe}=n(459),_e=n(179),ge=n(196),be=n(641),{LUAI_MAXCCALLS:we,MAX_INT:ve,lua_assert:Ae}=n(502),ye=n(853),{OpCodesI:{OP_CALL:Se,OP_CLOSURE:Te,OP_FORLOOP:xe,OP_FORPREP:Ee,OP_GETUPVAL:Le,OP_MOVE:Ie,OP_NEWTABLE:Ue,OP_SETTABLE:Re,OP_TAILCALL:Ce,OP_TFORCALL:Me,OP_TFORLOOP:Be,OP_VARARG:Ne},LFIELDS_PER_FLUSH:Pe,SETARG_B:ke,SETARG_C:Oe,SET_OPCODE:De}=n(451),{luaS_eqlngstr:Fe,luaS_new:Ge,luaS_newliteral:Ve}=n(415),Ke=n(420),He=ge.Proto,ze=be.RESERVED,je=function(e){return e===Je.VCALL||e===Je.VVARARG},Xe=function(e,t){return Fe(e,t)};class $e{constructor(){this.previous=null,this.firstlabel=NaN,this.firstgoto=NaN,this.nactvar=NaN,this.upval=NaN,this.isloop=NaN}}const Je={VVOID:0,VNIL:1,VTRUE:2,VFALSE:3,VK:4,VKFLT:5,VKINT:6,VNONRELOC:7,VLOCAL:8,VUPVAL:9,VINDEXED:10,VJMP:11,VRELOCABLE:12,VCALL:13,VVARARG:14};class We{constructor(){this.k=NaN,this.u={ival:NaN,nval:NaN,info:NaN,ind:{idx:NaN,t:NaN,vt:NaN}},this.t=NaN,this.f=NaN}to(e){this.k=e.k,this.u=e.u,this.t=e.t,this.f=e.f}}class qe{constructor(){this.f=null,this.prev=null,this.ls=null,this.bl=null,this.pc=NaN,this.lasttarget=NaN,this.jpc=NaN,this.nk=NaN,this.np=NaN,this.firstlocal=NaN,this.nlocvars=NaN,this.nactvar=NaN,this.nups=NaN,this.freereg=NaN}}class Ye{constructor(){this.idx=NaN}}class Ze{constructor(){this.name=null,this.pc=NaN,this.line=NaN,this.nactvar=NaN}}class Qe{constructor(){this.arr=[],this.n=NaN,this.size=NaN}}const et=function(e,t){e.t.token=0,be.luaX_syntaxerror(e,t)},tt=function(e,t){be.luaX_syntaxerror(e,ye.luaO_pushfstring(e.L,r("%s expected",!0),be.luaX_token2str(e,t)))},nt=function(e,t,n,a){t>n&&function(e,t,n){let a=e.ls.L,i=e.f.linedefined,s=0===i?r("main function",!0):ye.luaO_pushfstring(a,r("function at line %d",!0),i),l=ye.luaO_pushfstring(a,r("too many %s (limit is %d) in %s",!0),n,t,s);be.luaX_syntaxerror(e.ls,l)}(e,n,a)},at=function(e,t){return e.t.token===t&&(be.luaX_next(e),!0)},rt=function(e,t){e.t.token!==t&&tt(e,t)},it=function(e,t){rt(e,t),be.luaX_next(e)},st=function(e,t,n){t||be.luaX_syntaxerror(e,n)},lt=function(e,t,n,a){at(e,t)||(a===e.linenumber?tt(e,t):be.luaX_syntaxerror(e,ye.luaO_pushfstring(e.L,r("%s expected (to close %s at line %d)"),be.luaX_token2str(e,t),be.luaX_token2str(e,n),a)))},ot=function(e){rt(e,ze.TK_NAME);let t=e.t.seminfo.ts;return be.luaX_next(e),t},ut=function(e,t,n){e.f=e.t=M,e.k=t,e.u.info=n},ct=function(e,t,n){ut(t,Je.VK,pe(e.fs,n))},dt=function(e,t){ct(e,t,ot(e))},ht=function(e,t){let n=e.fs,a=e.dyd,i=function(e,t){let n=e.fs,a=n.f;return a.locvars[n.nlocvars]=new ye.LocVar,a.locvars[n.nlocvars].varname=t,n.nlocvars++}(e,t);nt(n,a.actvar.n+1-n.firstlocal,200,r("local variables",!0)),a.actvar.arr[a.actvar.n]=new Ye,a.actvar.arr[a.actvar.n].idx=i,a.actvar.n++},ft=function(e,t){ht(e,be.luaX_newstring(e,r(t,!0)))},mt=function(e,t){let n=e.ls.dyd.actvar.arr[e.firstlocal+t].idx;return Ae(n<e.nlocvars),e.f.locvars[n]},pt=function(e,t){let n=e.fs;for(n.nactvar=n.nactvar+t;t;t--)mt(n,n.nactvar-t).startpc=n.pc},_t=function(e,t,n){let a=e.f;return nt(e,e.nups+1,ge.MAXUPVAL,r("upvalues",!0)),a.upvalues[e.nups]={instack:n.k===Je.VLOCAL,idx:n.u.info,name:t},e.nups++},gt=function(e,t,n,a){if(null===e)ut(n,Je.VVOID,0);else{let r=function(e,t){for(let n=e.nactvar-1;n>=0;n--)if(Xe(t,mt(e,n).varname))return n;return-1}(e,t);if(r>=0)ut(n,Je.VLOCAL,r),a||function(e,t){let n=e.bl;for(;n.nactvar>t;)n=n.previous;n.upval=1}(e,r);else{let a=function(e,t){let n=e.f.upvalues;for(let a=0;a<e.nups;a++)if(Xe(n[a].name,t))return a;return-1}(e,t);if(a<0){if(gt(e.prev,t,n,0),n.k===Je.VVOID)return;a=_t(e,t,n)}ut(n,Je.VUPVAL,a)}}},bt=function(e,t){let n=ot(e),a=e.fs;if(gt(a,n,t,1),t.k===Je.VVOID){let r=new We;gt(a,e.envn,t,1),Ae(t.k!==Je.VVOID),ct(e,r,n),q(a,t,r)}},wt=function(e,t,n,a){let r=e.fs,i=t-n;if(je(a.k))i++,i<0&&(i=0),fe(r,a,i),i>1&&le(r,i-1);else if(a.k!==Je.VVOID&&z(r,a),i>0){let e=r.freereg;le(r,i),te(r,e,i)}n>t&&(e.fs.freereg-=n-t)},vt=function(e){let t=e.L;++t.nCcalls,nt(e.fs,t.nCcalls,we,r("JS levels",!0))},At=function(e){return e.L.nCcalls--},yt=function(e,t,n){let a=e.fs,i=e.dyd.gt,s=i.arr[t];if(Ae(Xe(s.name,n.name)),s.nactvar<n.nactvar){let t=mt(a,s.nactvar).varname,n=ye.luaO_pushfstring(e.L,r("<goto %s> at line %d jumps into the scope of local '%s'"),s.name.getstr(),s.line,t.getstr());et(e,n)}ae(a,s.pc,n.pc);for(let e=t;e<i.n-1;e++)i.arr[e]=i.arr[e+1];i.n--},St=function(e,t){let n=e.fs.bl,a=e.dyd,r=a.gt.arr[t];for(let i=n.firstlabel;i<a.label.n;i++){let s=a.label.arr[i];if(Xe(s.name,r.name))return r.nactvar>s.nactvar&&(n.upval||a.label.n>n.firstlabel)&&ne(e.fs,r.pc,s.nactvar),yt(e,t,s),!0}return!1},Tt=function(e,t,n,a,r){let i=t.n;return t.arr[i]=new Ze,t.arr[i].name=n,t.arr[i].line=a,t.arr[i].nactvar=e.fs.nactvar,t.arr[i].pc=r,t.n=i+1,i},xt=function(e,t){let n=e.dyd.gt,a=e.fs.bl.firstgoto;for(;a<n.n;)Xe(n.arr[a].name,t.name)?yt(e,a,t):a++},Et=function(e,t,n){t.isloop=n,t.nactvar=e.nactvar,t.firstlabel=e.ls.dyd.label.n,t.firstgoto=e.ls.dyd.gt.n,t.upval=0,t.previous=e.bl,e.bl=t,Ae(e.freereg===e.nactvar)},Lt=function(e,t,n){t.prev=e.fs,t.ls=e,e.fs=t,t.pc=0,t.lasttarget=0,t.jpc=M,t.freereg=0,t.nk=0,t.np=0,t.nups=0,t.nlocvars=0,t.nactvar=0,t.firstlocal=e.dyd.actvar.n,t.bl=null;let a=t.f;a.source=e.source,a.maxstacksize=2,Et(t,n,!1)},It=function(e){let t=e.bl,n=e.ls;if(t.previous&&t.upval){let n=Q(e);ne(e,n,t.nactvar),re(e,n)}t.isloop&&function(e){let t=Ve(e.L,"break"),n=Tt(e,e.dyd.label,t,0,e.fs.pc);xt(e,e.dyd.label.arr[n])}(n),e.bl=t.previous,function(e,t){for(e.ls.dyd.actvar.n-=e.nactvar-t;e.nactvar>t;)mt(e,--e.nactvar).endpc=e.pc}(e,t.nactvar),Ae(t.nactvar===e.nactvar),e.freereg=e.nactvar,n.dyd.label.n=t.firstlabel,t.previous?function(e,t){let n=t.firstgoto,a=e.ls.dyd.gt;for(;n<a.n;){let r=a.arr[n];r.nactvar>t.nactvar&&(t.upval&&ne(e,r.pc,t.nactvar),r.nactvar=t.nactvar),St(e.ls,n)||n++}}(e,t):t.firstgoto<n.dyd.gt.n&&function(e,t){let n=be.isreserved(t.name)?"<%s> at line %d not inside a loop":"no visible label '%s' for <goto> at line %d";n=ye.luaO_pushfstring(e.L,r(n),t.name.getstr(),t.line),et(e,n)}(n,n.dyd.gt.arr[t.firstgoto])},Ut=function(e){let t=e.fs;oe(t,0,0),It(t),Ae(null===t.bl),e.fs=t.prev},Rt=function(e,t){switch(e.t.token){case ze.TK_ELSE:case ze.TK_ELSEIF:case ze.TK_END:case ze.TK_EOS:return!0;case ze.TK_UNTIL:return t;default:return!1}},Ct=function(e){for(;!Rt(e,1);){if(e.t.token===ze.TK_RETURN)return void rn(e);rn(e)}},Mt=function(e,t){let n=e.fs,a=new We;H(n,t),be.luaX_next(e),dt(e,a),q(n,t,a)},Bt=function(e,t){be.luaX_next(e),Xt(e,t),j(e.fs,t),it(e,93)};class Nt{constructor(){this.v=new We,this.t=new We,this.nh=NaN,this.na=NaN,this.tostore=NaN}}const Pt=function(e,t){let n=e.fs,a=e.fs.freereg,i=new We,s=new We;e.t.token===ze.TK_NAME?(nt(n,t.nh,ve,r("items in a constructor",!0)),dt(e,i)):Bt(e,i),t.nh++,it(e,61);let l=V(n,i);Xt(e,s),P(n,Re,t.t.u.info,l,V(n,s)),n.freereg=a},kt=function(e,t){t.v.k!==Je.VVOID&&(z(e,t.v),t.v.k=Je.VVOID,t.tostore===Pe&&(ce(e,t.t.u.info,t.na,t.tostore),t.tostore=0))},Ot=function(e,t){Xt(e,t.v),nt(e.fs,t.na,ve,r("items in a constructor",!0)),t.na++,t.tostore++},Dt=function(e,t){switch(e.t.token){case ze.TK_NAME:61!==be.luaX_lookahead(e)?Ot(e,t):Pt(e,t);break;case 91:Pt(e,t);break;default:Ot(e,t)}},Ft=function(e,t){let n=e.fs,r=e.linenumber,i=P(n,Ue,0,0,0),s=new Nt;s.na=s.nh=s.tostore=0,s.t=t,ut(t,Je.VRELOCABLE,i),ut(s.v,Je.VVOID,0),z(e.fs,t),it(e,123);do{if(Ae(s.v.k===Je.VVOID||s.tostore>0),125===e.t.token)break;kt(n,s),Dt(e,s)}while(at(e,44)||at(e,59));lt(e,125,123,r),function(e,t){0!==t.tostore&&(je(t.v.k)?(de(e,t.v),ce(e,t.t.u.info,t.na,a),t.na--):(t.v.k!==Je.VVOID&&z(e,t.v),ce(e,t.t.u.info,t.na,t.tostore)))}(n,s),ke(n.f.code[i],ye.luaO_int2fb(s.na)),Oe(n.f.code[i],ye.luaO_int2fb(s.nh))},Gt=function(e,t,n,a){let i=new qe,s=new $e;i.f=function(e){let t=e.L,n=new He(t),a=e.fs;return a.f.p[a.np++]=n,n}(e),i.f.linedefined=a,Lt(e,i,s),it(e,40),n&&(ft(e,"self"),pt(e,1)),function(e){let t=e.fs,n=t.f,a=0;if(n.is_vararg=!1,41!==e.t.token)do{switch(e.t.token){case ze.TK_NAME:ht(e,ot(e)),a++;break;case ze.TK_DOTS:be.luaX_next(e),n.is_vararg=!0;break;default:be.luaX_syntaxerror(e,r("<name> or '...' expected",!0))}}while(!n.is_vararg&&at(e,44));pt(e,a),n.numparams=t.nactvar,le(t,t.nactvar)}(e),it(e,41),Ct(e),i.f.lastlinedefined=e.linenumber,lt(e,ze.TK_END,ze.TK_FUNCTION,a),function(e,t){let n=e.fs.prev;ut(t,Je.VRELOCABLE,k(n,Te,0,n.np-1)),z(n,t)}(e,t),Ut(e)},Vt=function(e,t){let n=1;for(Xt(e,t);at(e,44);)z(e.fs,t),Xt(e,t),n++;return n},Kt=function(e,t,n){let i,s=e.fs,l=new We;switch(e.t.token){case 40:be.luaX_next(e),41===e.t.token?l.k=Je.VVOID:(Vt(e,l),de(s,l)),lt(e,41,40,n);break;case 123:Ft(e,l);break;case ze.TK_STRING:ct(e,l,e.t.seminfo.ts),be.luaX_next(e);break;default:be.luaX_syntaxerror(e,r("function arguments expected",!0))}Ae(t.k===Je.VNONRELOC);let o=t.u.info;je(l.k)?i=a:(l.k!==Je.VVOID&&z(s,l),i=s.freereg-(o+1)),ut(t,Je.VCALL,P(s,Se,o,i+1,2)),X(s,n),s.freereg=o+1},Ht=function(e,t){let n=e.fs,a=e.linenumber;for(!function(e,t){switch(e.t.token){case 40:{let n=e.linenumber;return be.luaX_next(e),Xt(e,t),lt(e,41,40,n),void G(e.fs,t)}case ze.TK_NAME:return void bt(e,t);default:be.luaX_syntaxerror(e,r("unexpected symbol",!0))}}(e,t);;)switch(e.t.token){case 46:Mt(e,t);break;case 91:{let a=new We;H(n,t),Bt(e,a),q(n,t,a);break}case 58:{let r=new We;be.luaX_next(e),dt(e,r),ue(n,t,r),Kt(e,t,a);break}case 40:case ze.TK_STRING:case 123:z(n,t),Kt(e,t,a);break;default:return}},zt=[{left:10,right:10},{left:10,right:10},{left:11,right:11},{left:11,right:11},{left:14,right:13},{left:11,right:11},{left:11,right:11},{left:6,right:6},{left:4,right:4},{left:5,right:5},{left:7,right:7},{left:7,right:7},{left:9,right:8},{left:3,right:3},{left:3,right:3},{left:3,right:3},{left:3,right:3},{left:3,right:3},{left:3,right:3},{left:2,right:2},{left:1,right:1}],jt=function(e,t,n){vt(e);let a=function(e){switch(e){case ze.TK_NOT:return R;case 45:return U;case 126:return L;case 35:return I;default:return C}}(e.t.token);if(a!==C){let n=e.linenumber;be.luaX_next(e),jt(e,t,12),se(e.fs,a,t,n)}else!function(e,t){switch(e.t.token){case ze.TK_FLT:ut(t,Je.VKFLT,0),t.u.nval=e.t.seminfo.r;break;case ze.TK_INT:ut(t,Je.VKINT,0),t.u.ival=e.t.seminfo.i;break;case ze.TK_STRING:ct(e,t,e.t.seminfo.ts);break;case ze.TK_NIL:ut(t,Je.VNIL,0);break;case ze.TK_TRUE:ut(t,Je.VTRUE,0);break;case ze.TK_FALSE:ut(t,Je.VFALSE,0);break;case ze.TK_DOTS:{let n=e.fs;st(e,n.f.is_vararg,r("cannot use '...' outside a vararg function",!0)),ut(t,Je.VVARARG,P(n,Ne,0,1,0));break}case 123:return void Ft(e,t);case ze.TK_FUNCTION:return be.luaX_next(e),void Gt(e,t,0,e.linenumber);default:return void Ht(e,t)}be.luaX_next(e)}(e,t);let M=function(e){switch(e){case 43:return i;case 45:return E;case 42:return w;case 37:return b;case 94:return S;case 47:return d;case ze.TK_IDIV:return p;case 38:return l;case 124:return o;case 126:return u;case ze.TK_SHL:return T;case ze.TK_SHR:return x;case ze.TK_CONCAT:return c;case ze.TK_NE:return v;case ze.TK_EQ:return h;case 60:return g;case ze.TK_LE:return _;case 62:return m;case ze.TK_GE:return f;case ze.TK_AND:return s;case ze.TK_OR:return y;default:return A}}(e.t.token);for(;M!==A&&zt[M].left>n;){let n=new We,a=e.linenumber;be.luaX_next(e),Y(e.fs,M,t);let r=jt(e,n,zt[M].right);ie(e.fs,M,t,n,a),M=r}return At(e),M},Xt=function(e,t){jt(e,t,0)},$t=function(e){let t=e.fs,n=new $e;Et(t,n,0),Ct(e),It(t)};class Jt{constructor(){this.prev=null,this.v=new We}}const Wt=function(e,t,n){let a=new We;var i;if(st(e,(i=t.v.k,Je.VLOCAL<=i&&i<=Je.VINDEXED),r("syntax error",!0)),at(e,44)){let a=new Jt;a.prev=t,Ht(e,a.v),a.v.k!==Je.VINDEXED&&function(e,t,n){let a=e.fs,r=a.freereg,i=!1;for(;t;t=t.prev)t.v.k===Je.VINDEXED&&(t.v.u.ind.vt===n.k&&t.v.u.ind.t===n.u.info&&(i=!0,t.v.u.ind.vt=Je.VLOCAL,t.v.u.ind.t=r),n.k===Je.VLOCAL&&t.v.u.ind.idx===n.u.info&&(i=!0,t.v.u.ind.idx=r));if(i){let e=n.k===Je.VLOCAL?Ie:Le;P(a,e,r,n.u.info,0),le(a,1)}}(e,t,a.v),nt(e.fs,n+e.L.nCcalls,we,r("JS levels",!0)),Wt(e,a,n+1)}else{it(e,61);let r=Vt(e,a);if(r===n)return he(e.fs,a),void me(e.fs,t.v,a);wt(e,n,r,a)}ut(a,Je.VNONRELOC,e.fs.freereg-1),me(e.fs,t.v,a)},qt=function(e){let t=new We;return Xt(e,t),t.k===Je.VNIL&&(t.k=Je.VFALSE),W(e.fs,t),t.f},Yt=function(e,t){let n,a=e.linenumber;at(e,ze.TK_GOTO)?n=ot(e):(be.luaX_next(e),n=Ve(e.L,"break"));let r=Tt(e,e.dyd.gt,n,a,t);St(e,r)},Zt=function(e,t,n){let a,i=e.fs,s=e.dyd.label;!function(e,t,n){for(let a=e.bl.firstlabel;a<t.n;a++)if(Xe(n,t.arr[a].name)){let i=ye.luaO_pushfstring(e.ls.L,r("label '%s' already defined on line %d",!0),n.getstr(),t.arr[a].line);et(e.ls,i)}}(i,s,t),it(e,ze.TK_DBCOLON),a=Tt(e,s,t,n,$(i)),function(e){for(;59===e.t.token||e.t.token===ze.TK_DBCOLON;)rn(e)}(e),Rt(e,0)&&(s.arr[a].nactvar=i.bl.nactvar),xt(e,s.arr[a])},Qt=function(e){let t=new We;return Xt(e,t),z(e.fs,t),Ae(t.k===Je.VNONRELOC),t.u.info},en=function(e,t,n,a,r){let i,s=new $e,l=e.fs;pt(e,3),it(e,ze.TK_DO);let o=r?O(l,Ee,t,M):Q(l);Et(l,s,0),pt(e,a),le(l,a),$t(e),It(l),re(l,o),r?i=O(l,xe,t,M):(P(l,Me,t,0,a),X(l,n),i=O(l,Be,t+2,M)),ae(l,i,o+1),X(l,n)},tn=function(e,t){let n=e.fs,a=new $e;Et(n,a,1),be.luaX_next(e);let i=ot(e);switch(e.t.token){case 61:!function(e,t,n){let a=e.fs,r=a.freereg;ft(e,"(for index)"),ft(e,"(for limit)"),ft(e,"(for step)"),ht(e,t),it(e,61),Qt(e),it(e,44),Qt(e),at(e,44)?Qt(e):(D(a,a.freereg,Z(a,1)),le(a,1)),en(e,r,n,1,1)}(e,i,t);break;case 44:case ze.TK_IN:!function(e,t){let n=e.fs,a=new We,r=4,i=n.freereg;for(ft(e,"(for generator)"),ft(e,"(for state)"),ft(e,"(for control)"),ht(e,t);at(e,44);)ht(e,ot(e)),r++;it(e,ze.TK_IN);let s=e.linenumber;wt(e,3,Vt(e,a),a),N(n,3),en(e,i,s,r-3,0)}(e,i);break;default:be.luaX_syntaxerror(e,r("'=' or 'in' expected",!0))}lt(e,ze.TK_END,ze.TK_FOR,t),It(n)},nn=function(e,t){let n,a=new $e,r=e.fs,i=new We;if(be.luaX_next(e),Xt(e,i),it(e,ze.TK_THEN),e.t.token===ze.TK_GOTO||e.t.token===ze.TK_BREAK){for(J(e.fs,i),Et(r,a,!1),Yt(e,i.t);at(e,59););if(Rt(e,0))return It(r),t;n=Q(r)}else W(e.fs,i),Et(r,a,!1),n=i.f;return Ct(e),It(r),e.t.token!==ze.TK_ELSE&&e.t.token!==ze.TK_ELSEIF||(t=F(r,t,Q(r))),re(r,n),t},an=function(e,t){let n=new We,a=new We;be.luaX_next(e);let r=function(e,t){let n=0;for(bt(e,t);46===e.t.token;)Mt(e,t);return 58===e.t.token&&(n=1,Mt(e,t)),n}(e,n);Gt(e,a,r,t),me(e.fs,n,a),X(e.fs,t)},rn=function(e){let t=e.linenumber;switch(vt(e),e.t.token){case 59:be.luaX_next(e);break;case ze.TK_IF:!function(e,t){let n=e.fs,a=M;for(a=nn(e,a);e.t.token===ze.TK_ELSEIF;)a=nn(e,a);at(e,ze.TK_ELSE)&&$t(e),lt(e,ze.TK_END,ze.TK_IF,t),re(n,a)}(e,t);break;case ze.TK_WHILE:!function(e,t){let n=e.fs,a=new $e;be.luaX_next(e);let r=$(n),i=qt(e);Et(n,a,1),it(e,ze.TK_DO),$t(e),ee(n,r),lt(e,ze.TK_END,ze.TK_WHILE,t),It(n),re(n,i)}(e,t);break;case ze.TK_DO:be.luaX_next(e),$t(e),lt(e,ze.TK_END,ze.TK_DO,t);break;case ze.TK_FOR:tn(e,t);break;case ze.TK_REPEAT:!function(e,t){let n=e.fs,a=$(n),r=new $e,i=new $e;Et(n,r,1),Et(n,i,0),be.luaX_next(e),Ct(e),lt(e,ze.TK_UNTIL,ze.TK_REPEAT,t);let s=qt(e);i.upval&&ne(n,s,i.nactvar),It(n),ae(n,s,a),It(n)}(e,t);break;case ze.TK_FUNCTION:an(e,t);break;case ze.TK_LOCAL:be.luaX_next(e),at(e,ze.TK_FUNCTION)?function(e){let t=new We,n=e.fs;ht(e,ot(e)),pt(e,1),Gt(e,t,0,e.linenumber),mt(n,t.u.info).startpc=n.pc}(e):function(e){let t,n=0,a=new We;do{ht(e,ot(e)),n++}while(at(e,44));at(e,61)?t=Vt(e,a):(a.k=Je.VVOID,t=0),wt(e,n,t,a),pt(e,n)}(e);break;case ze.TK_DBCOLON:be.luaX_next(e),Zt(e,ot(e),t);break;case ze.TK_RETURN:be.luaX_next(e),function(e){let t,n,r=e.fs,i=new We;Rt(e,1)||59===e.t.token?t=n=0:(n=Vt(e,i),je(i.k)?(de(r,i),i.k===Je.VCALL&&1===n&&(De(B(r,i),Ce),Ae(B(r,i).A===r.nactvar)),t=r.nactvar,n=a):1===n?t=K(r,i):(z(r,i),t=r.nactvar,Ae(n===r.freereg-t))),oe(r,t,n),at(e,59)}(e);break;case ze.TK_BREAK:case ze.TK_GOTO:Yt(e,Q(e.fs));break;default:!function(e){let t=e.fs,n=new Jt;Ht(e,n.v),61===e.t.token||44===e.t.token?(n.prev=null,Wt(e,n,1)):(st(e,n.v.k===Je.VCALL,r("syntax error",!0)),Oe(B(t,n.v),1))}(e)}Ae(e.fs.f.maxstacksize>=e.fs.freereg&&e.fs.freereg>=e.fs.nactvar),e.fs.freereg=e.fs.nactvar,At(e)};e.exports.Dyndata=class{constructor(){this.actvar={arr:[],n:NaN,size:NaN},this.gt=new Qe,this.label=new Qe}},e.exports.expkind=Je,e.exports.expdesc=We,e.exports.luaY_parser=function(e,t,n,a,r,i){let s=new be.LexState,l=new qe,o=ge.luaF_newLclosure(e,1);return _e.luaD_inctop(e),e.stack[e.top-1].setclLvalue(o),s.h=Ke.luaH_new(e),_e.luaD_inctop(e),e.stack[e.top-1].sethvalue(s.h),l.f=o.p=new He(e),l.f.source=Ge(e,r),s.buff=n,s.dyd=a,a.actvar.n=a.gt.n=a.label.n=0,be.luaX_setinput(e,s,t,l.f.source,i),function(e,t){let n=new $e,a=new We;Lt(e,t,n),t.f.is_vararg=!0,ut(a,Je.VLOCAL,0),_t(t,e.envn,a),be.luaX_next(e),Ct(e),rt(e,ze.TK_EOS),Ut(e)}(s,l),Ae(!l.prev&&1===l.nups&&!s.fs),Ae(0===a.actvar.n&&0===a.gt.n&&0===a.label.n),delete e.stack[--e.top],o},e.exports.vkisinreg=function(e){return e===Je.VNONRELOC||e===Je.VLOCAL}},637:(e,t,n)=>{"use strict";const{luastring_of:a}=n(696),r=a(0,0,0,0,0,0,0,0,0,0,8,8,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,22,22,22,22,22,22,22,22,22,22,4,4,4,4,4,4,4,21,21,21,21,21,21,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,5,4,21,21,21,21,21,21,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);e.exports.lisdigit=function(e){return!!(2&r[e+1])},e.exports.lislalnum=function(e){return!!(3&r[e+1])},e.exports.lislalpha=function(e){return!!(1&r[e+1])},e.exports.lisprint=function(e){return!!(4&r[e+1])},e.exports.lisspace=function(e){return!!(8&r[e+1])},e.exports.lisxdigit=function(e){return!!(16&r[e+1])}},641:(e,t,n)=>{"use strict";const{constant_types:{LUA_TBOOLEAN:a,LUA_TLNGSTR:r},thread_status:{LUA_ERRSYNTAX:i},to_luastring:s}=n(696),{LUA_MINBUFFER:l,MAX_INT:o,lua_assert:u}=n(502),c=n(399),d=n(179),{lisdigit:h,lislalnum:f,lislalpha:m,lisspace:p,lisxdigit:_}=n(637),g=n(853),{luaS_bless:b,luaS_hash:w,luaS_hashlongstr:v,luaS_new:A}=n(415),y=n(420),{EOZ:S,luaZ_buffer:T,luaZ_buffremove:x,luaZ_resetbuffer:E,luaZ_resizebuffer:L}=n(498),I=257,U=s("_ENV",!0),R=289,C=290,M=293,B={TK_AND:257,TK_BREAK:258,TK_DO:259,TK_ELSE:260,TK_ELSEIF:261,TK_END:262,TK_FALSE:263,TK_FOR:264,TK_FUNCTION:265,TK_GOTO:266,TK_IF:267,TK_IN:268,TK_LOCAL:269,TK_NIL:270,TK_NOT:271,TK_OR:272,TK_REPEAT:273,TK_RETURN:274,TK_THEN:275,TK_TRUE:276,TK_UNTIL:277,TK_WHILE:278,TK_IDIV:279,TK_CONCAT:280,TK_DOTS:281,TK_EQ:282,TK_GE:283,TK_LE:284,TK_NE:285,TK_SHL:286,TK_SHR:287,TK_DBCOLON:288,TK_EOS:R,TK_FLT:C,TK_INT:291,TK_NAME:292,TK_STRING:M},N=["and","break","do","else","elseif","end","false","for","function","goto","if","in","local","nil","not","or","repeat","return","then","true","until","while","//","..","...","==",">=","<=","~=","<<",">>","::","<eof>","<number>","<integer>","<name>","<string>"].map((e,t)=>s(e));class P{constructor(){this.r=NaN,this.i=NaN,this.ts=null}}class k{constructor(){this.token=NaN,this.seminfo=new P}}const O=function(e,t){let n=e.buff;if(n.n+1>n.buffer.length){n.buffer.length>=o/2&&J(e,s("lexical element too long",!0),0);let t=2*n.buffer.length;L(e.L,n,t)}n.buffer[n.n++]=t<0?255+t+1:t},D=function(e,t){if(t<I)return g.luaO_pushfstring(e.L,s("'%c'",!0),t);{let n=N[t-I];return t<R?g.luaO_pushfstring(e.L,s("'%s'",!0),n):n}},F=function(e){return 10===e.current||13===e.current},G=function(e){e.current=e.z.zgetc()},V=function(e){O(e,e.current),G(e)},K=new g.TValue(a,!0),H=function(e,t){let n=e.L,a=A(n,t),i=e.h.strong.get(v(a));if(i)a=i.key.tsvalue();else{let t=new g.TValue(r,a);y.luaH_setfrom(n,e.h,t,K)}return a},z=function(e){let t=e.current;u(F(e)),G(e),F(e)&&e.current!==t&&G(e),++e.linenumber>=o&&J(e,s("chunk has too many lines",!0),0)},j=function(e,t){return e.current===t&&(G(e),!0)},X=function(e,t){return(e.current===t[0].charCodeAt(0)||e.current===t[1].charCodeAt(0))&&(V(e),!0)},$=function(e,t){let n="Ee",a=e.current;for(u(h(e.current)),V(e),48===a&&X(e,"xX")&&(n="Pp");;)if(X(e,n)&&X(e,"-+"),_(e.current))V(e);else{if(46!==e.current)break;V(e)}let r=new g.TValue;return 0===g.luaO_str2num(T(e.buff),r)&&J(e,s("malformed number",!0),C),r.ttisinteger()?(t.i=r.value,291):(u(r.ttisfloat()),t.r=r.value,C)},J=function(e,t,n){t=c.luaG_addinfo(e.L,t,e.source,e.linenumber),n&&g.luaO_pushfstring(e.L,s("%s near %s"),t,function(e,t){switch(t){case 292:case M:case C:case 291:return g.luaO_pushfstring(e.L,s("'%s'",!0),T(e.buff));default:return D(e,t)}}(e,n)),d.luaD_throw(e.L,i)},W=function(e){let t=0,n=e.current;for(u(91===n||93===n),V(e);61===e.current;)V(e),t++;return e.current===n?t:-t-1},q=function(e,t,n){let a=e.linenumber;V(e),F(e)&&z(e);let r=!1;for(;!r;)switch(e.current){case S:J(e,s(`unfinished long ${t?"string":"comment"} (starting at line ${a})`),R);break;case 93:W(e)===n&&(V(e),r=!0);break;case 10:case 13:O(e,10),z(e),t||E(e.buff);break;default:t?V(e):G(e)}t&&(t.ts=H(e,e.buff.buffer.subarray(2+n,e.buff.n-(2+n))))},Y=function(e,t,n){t||(e.current!==S&&V(e),J(e,n,M))},Z=function(e){return V(e),Y(e,_(e.current),s("hexadecimal digit expected",!0)),g.luaO_hexavalue(e.current)},Q=function(e){let t=Z(e);return t=(t<<4)+Z(e),x(e.buff,2),t},ee=function(e){let t=new Uint8Array(g.UTF8BUFFSZ),n=g.luaO_utf8esc(t,function(e){let t=4;V(e),Y(e,123===e.current,s("missing '{'",!0));let n=Z(e);for(V(e);_(e.current);)t++,n=(n<<4)+g.luaO_hexavalue(e.current),Y(e,n<=1114111,s("UTF-8 value too large",!0)),V(e);return Y(e,125===e.current,s("missing '}'",!0)),G(e),x(e.buff,t),n}(e));for(;n>0;n--)O(e,t[g.UTF8BUFFSZ-n])},te=function(e){let t,n=0;for(t=0;t<3&&h(e.current);t++)n=10*n+e.current-48,V(e);return Y(e,n<=255,s("decimal escape too large",!0)),x(e.buff,t),n},ne=function(e,t,n){for(V(e);e.current!==t;)switch(e.current){case S:J(e,s("unfinished string",!0),R);break;case 10:case 13:J(e,s("unfinished string",!0),M);break;case 92:{let t,n;switch(V(e),e.current){case 97:n=7,t="read_save";break;case 98:n=8,t="read_save";break;case 102:n=12,t="read_save";break;case 110:n=10,t="read_save";break;case 114:n=13,t="read_save";break;case 116:n=9,t="read_save";break;case 118:n=11,t="read_save";break;case 120:n=Q(e),t="read_save";break;case 117:ee(e),t="no_save";break;case 10:case 13:z(e),n=10,t="only_save";break;case 92:case 34:case 39:n=e.current,t="read_save";break;case S:t="no_save";break;case 122:for(x(e.buff,1),G(e);p(e.current);)F(e)?z(e):G(e);t="no_save";break;default:Y(e,h(e.current),s("invalid escape sequence",!0)),n=te(e),t="only_save"}"read_save"===t&&G(e),"read_save"!==t&&"only_save"!==t||(x(e.buff,1),O(e,n));break}default:V(e)}V(e),n.ts=H(e,e.buff.buffer.subarray(1,e.buff.n-1))},ae=Object.create(null);N.forEach((e,t)=>ae[w(e)]=t);const re=function(e,t){for(E(e.buff);;)switch(u("number"==typeof e.current),e.current){case 10:case 13:z(e);break;case 32:case 12:case 9:case 11:G(e);break;case 45:if(G(e),45!==e.current)return 45;if(G(e),91===e.current){let t=W(e);if(E(e.buff),t>=0){q(e,null,t),E(e.buff);break}}for(;!F(e)&&e.current!==S;)G(e);break;case 91:{let n=W(e);return n>=0?(q(e,t,n),M):(-1!==n&&J(e,s("invalid long string delimiter",!0),M),91)}case 61:return G(e),j(e,61)?282:61;case 60:return G(e),j(e,61)?284:j(e,60)?286:60;case 62:return G(e),j(e,61)?283:j(e,62)?287:62;case 47:return G(e),j(e,47)?279:47;case 126:return G(e),j(e,61)?285:126;case 58:return G(e),j(e,58)?288:58;case 34:case 39:return ne(e,e.current,t),M;case 46:return V(e),j(e,46)?j(e,46)?281:280:h(e.current)?$(e,t):46;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return $(e,t);case S:return R;default:if(m(e.current)){do{V(e)}while(f(e.current));let n=H(e,T(e.buff));t.ts=n;let a=ae[v(n)];return void 0!==a&&a<=22?a+I:292}{let t=e.current;return G(e),t}}};e.exports.FIRST_RESERVED=I,e.exports.LUA_ENV=U,e.exports.LexState=class{constructor(){this.current=NaN,this.linenumber=NaN,this.lastline=NaN,this.t=new k,this.lookahead=new k,this.fs=null,this.L=null,this.z=null,this.buff=null,this.h=null,this.dyd=null,this.source=null,this.envn=null}},e.exports.RESERVED=B,e.exports.isreserved=function(e){let t=ae[v(e)];return void 0!==t&&t<=22},e.exports.luaX_lookahead=function(e){return u(e.lookahead.token===R),e.lookahead.token=re(e,e.lookahead.seminfo),e.lookahead.token},e.exports.luaX_newstring=H,e.exports.luaX_next=function(e){e.lastline=e.linenumber,e.lookahead.token!==R?(e.t.token=e.lookahead.token,e.t.seminfo.i=e.lookahead.seminfo.i,e.t.seminfo.r=e.lookahead.seminfo.r,e.t.seminfo.ts=e.lookahead.seminfo.ts,e.lookahead.token=R):e.t.token=re(e,e.t.seminfo)},e.exports.luaX_setinput=function(e,t,n,a,r){t.t={token:0,seminfo:new P},t.L=e,t.current=r,t.lookahead={token:R,seminfo:new P},t.z=n,t.fs=null,t.linenumber=1,t.lastline=1,t.source=a,t.envn=b(e,U),L(e,t.buff,l)},e.exports.luaX_syntaxerror=function(e,t){J(e,t,e.t.token)},e.exports.luaX_token2str=D,e.exports.luaX_tokens=N},660:(e,t,n)=>{"use strict";const{LUA_MULTRET:a,LUA_OPBNOT:r,LUA_OPEQ:i,LUA_OPLE:s,LUA_OPLT:l,LUA_OPUNM:o,LUA_REGISTRYINDEX:u,LUA_RIDX_GLOBALS:c,LUA_VERSION_NUM:d,constant_types:{LUA_NUMTAGS:h,LUA_TBOOLEAN:f,LUA_TCCL:m,LUA_TFUNCTION:p,LUA_TLCF:_,LUA_TLCL:g,LUA_TLIGHTUSERDATA:b,LUA_TLNGSTR:w,LUA_TNIL:v,LUA_TNONE:A,LUA_TNUMFLT:y,LUA_TNUMINT:S,LUA_TSHRSTR:T,LUA_TTABLE:x,LUA_TTHREAD:E,LUA_TUSERDATA:L},thread_status:{LUA_OK:I},from_userstring:U,to_luastring:R}=n(696),{api_check:C}=n(502),M=n(399),B=n(179),{luaU_dump:N}=n(940),P=n(196),k=n(853),O=n(809),{luaS_bless:D,luaS_new:F,luaS_newliteral:G}=n(415),V=n(917),{LUAI_MAXSTACK:K}=n(254),H=n(371),z=n(420),{ZIO:j}=n(498),X=k.TValue,$=k.CClosure,J=function(e){e.top++,C(e,e.top<=e.ci.top,"stack overflow")},W=function(e,t){C(e,t<e.top-e.ci.funcOff,"not enough elements in the stack")},q=function(e){if(!e)throw TypeError("invalid argument")},Y=function(e){q("number"==typeof e&&(0|e)===e)},Z=function(e){return e!==k.luaO_nilobject},Q=function(e,t){let n=e.ci;if(t>0){let a=n.funcOff+t;return C(e,t<=n.top-(n.funcOff+1),"unacceptable index"),a>=e.top?k.luaO_nilobject:e.stack[a]}return t>u?(C(e,0!==t&&-t<=e.top,"invalid index"),e.stack[e.top+t]):t===u?e.l_G.l_registry:(C(e,(t=u-t)<=P.MAXUPVAL+1,"upvalue index too large"),n.func.ttislcf()?k.luaO_nilobject:t<=n.func.value.nupvalues?n.func.value.upvalue[t-1]:k.luaO_nilobject)},ee=function(e,t){let n=e.ci;if(t>0){let a=n.funcOff+t;return C(e,t<=n.top-(n.funcOff+1),"unacceptable index"),a>=e.top?null:a}if(t>u)return C(e,0!==t&&-t<=e.top,"invalid index"),e.top+t;throw Error("attempt to use pseudo-index")},te=function(e,t){let n,a=e.ci.funcOff;t>=0?(C(e,t<=e.stack_last-(a+1),"new top too large"),n=a+1+t):(C(e,-(t+1)<=e.top-(a+1),"invalid new top"),n=e.top+t+1),B.adjust_top(e,n)},ne=function(e,t){te(e,-t-1)},ae=function(e,t,n){for(;t<n;t++,n--){let a=e.stack[t],r=new X(a.type,a.value);k.setobjs2s(e,t,n),k.setobj2s(e,n,r)}},re=function(e,t,n){let a=e.top-1,r=ee(e,t),i=e.stack[r];C(e,Z(i)&&t>u,"index not in the stack"),C(e,(n>=0?n:-n)<=a-r+1,"invalid 'n'");let s=n>=0?a-n:r-n-1;ae(e,r,s),ae(e,s+1,e.top-1),ae(e,r,e.top-1)},ie=function(e,t,n){let a=Q(e,t);Q(e,n).setfrom(a)},se=function(e,t,n){if(q("function"==typeof t),Y(n),0===n)e.stack[e.top]=new X(_,t);else{W(e,n),C(e,n<=P.MAXUPVAL,"upvalue index too large");let a=new $(e,t,n);for(let t=0;t<n;t++)a.upvalue[t].setfrom(e.stack[e.top-n+t]);for(let t=1;t<n;t++)delete e.stack[--e.top];n>0&&--e.top,e.stack[e.top].setclCvalue(a)}J(e)},le=se,oe=function(e,t){se(e,t,0)},ue=oe,ce=function(e,t,n){let a=F(e,U(n));W(e,1),k.pushsvalue2s(e,a),C(e,e.top<=e.ci.top,"stack overflow"),H.settable(e,t,e.stack[e.top-1],e.stack[e.top-2]),delete e.stack[--e.top],delete e.stack[--e.top]},de=function(e,t){ce(e,z.luaH_getint(e.l_G.l_registry.value,c),t)},he=function(e,t,n){let a=F(e,U(n));return k.pushsvalue2s(e,a),C(e,e.top<=e.ci.top,"stack overflow"),H.luaV_gettable(e,t,e.stack[e.top-1],e.top-1),e.stack[e.top-1].ttnov()},fe=function(e,t,n){let a=Q(e,t);return Y(n),C(e,a.ttistable(),"table expected"),k.pushobj2s(e,z.luaH_getint(a.value,n)),C(e,e.top<=e.ci.top,"stack overflow"),e.stack[e.top-1].ttnov()},me=function(e,t,n){let a=new k.TValue(x,z.luaH_new(e));e.stack[e.top]=a,J(e)},pe=function(e,t,n){switch(Y(n),t.ttype()){case m:{let e=t.value;return 1<=n&&n<=e.nupvalues?{name:R("",!0),val:e.upvalue[n-1]}:null}case g:{let e=t.value,a=e.p;if(!(1<=n&&n<=a.upvalues.length))return null;let r=a.upvalues[n-1].name;return{name:r?r.getstr():R("(*no name)",!0),val:e.upvals[n-1]}}default:return null}},_e=function(e,t){let n=Q(e,t);if(!n.ttisstring()){if(!H.cvt2str(n))return null;k.luaO_tostring(e,n)}return n.svalue()},ge=_e,be=function(e,t){return H.tointeger(Q(e,t))},we=function(e,t){return H.tonumber(Q(e,t))},ve=new WeakMap,Ae=function(e,t){B.luaD_callnoyield(e,t.funcOff,t.nresults)},ye=function(e,t){let n=Q(e,t);return Z(n)?n.ttnov():A},Se=R("?"),Te=function(e,t,n){C(e,n===a||e.ci.top-e.top>=n-t,"results from function overflow current stack size")},xe=function(e,t,n,r,i){C(e,null===i||!(e.ci.callstatus&O.CIST_LUA),"cannot use continuations inside hooks"),W(e,t+1),C(e,e.status===I,"cannot do calls on non-normal thread"),Te(e,t,n);let s=e.top-(t+1);null!==i&&0===e.nny?(e.ci.c_k=i,e.ci.c_ctx=r,B.luaD_call(e,s,n)):B.luaD_callnoyield(e,s,n),n===a&&e.ci.top<e.top&&(e.ci.top=e.top)},Ee=function(e,t,n,r,i,s){let l,o;C(e,null===s||!(e.ci.callstatus&O.CIST_LUA),"cannot use continuations inside hooks"),W(e,t+1),C(e,e.status===I,"cannot do calls on non-normal thread"),Te(e,t,n),o=0===r?0:ee(e,r);let u=e.top-(t+1);if(null===s||e.nny>0){let t={funcOff:u,nresults:n};l=B.luaD_pcall(e,Ae,t,u,o)}else{let t=e.ci;t.c_k=s,t.c_ctx=i,t.extra=u,t.c_old_errfunc=e.errfunc,e.errfunc=o,t.callstatus&=~O.CIST_OAH|e.allowhook,t.callstatus|=O.CIST_YPCALL,B.luaD_call(e,u,n),t.callstatus&=~O.CIST_YPCALL,e.errfunc=t.c_old_errfunc,l=I}return n===a&&e.ci.top<e.top&&(e.ci.top=e.top),l},Le=function(e,t,n){let a=Q(e,t);C(e,a.ttisLclosure(),"Lua function expected");let r=a.value;return Y(n),C(e,1<=n&&n<=r.p.upvalues.length,"invalid upvalue index"),{f:r,i:n-1}};e.exports.api_incr_top=J,e.exports.api_checknelems=W,e.exports.lua_absindex=function(e,t){return t>0||t<=u?t:e.top-e.ci.funcOff+t},e.exports.lua_arith=function(e,t){t!==o&&t!==r?W(e,2):(W(e,1),k.pushobj2s(e,e.stack[e.top-1]),C(e,e.top<=e.ci.top,"stack overflow")),k.luaO_arith(e,t,e.stack[e.top-2],e.stack[e.top-1],e.stack[e.top-2]),delete e.stack[--e.top]},e.exports.lua_atpanic=function(e,t){let n=e.l_G.panic;return e.l_G.panic=t,n},e.exports.lua_atnativeerror=function(e,t){let n=e.l_G.atnativeerror;return e.l_G.atnativeerror=t,n},e.exports.lua_call=function(e,t,n){xe(e,t,n,0,null)},e.exports.lua_callk=xe,e.exports.lua_checkstack=function(e,t){let n,a=e.ci;if(C(e,t>=0,"negative 'n'"),e.stack_last-e.top>t)n=!0;else{e.top+O.EXTRA_STACK>K-t?n=!1:(B.luaD_growstack(e,t),n=!0)}return n&&a.top<e.top+t&&(a.top=e.top+t),n},e.exports.lua_compare=function(e,t,n,a){let r=Q(e,t),o=Q(e,n),u=0;if(Z(r)&&Z(o))switch(a){case i:u=H.luaV_equalobj(e,r,o);break;case l:u=H.luaV_lessthan(e,r,o);break;case s:u=H.luaV_lessequal(e,r,o);break;default:C(e,!1,"invalid option")}return u},e.exports.lua_concat=function(e,t){W(e,t),t>=2?H.luaV_concat(e,t):0===t&&(k.pushsvalue2s(e,D(e,R("",!0))),C(e,e.top<=e.ci.top,"stack overflow"))},e.exports.lua_copy=ie,e.exports.lua_createtable=me,e.exports.lua_dump=function(e,t,n,a){W(e,1);let r=e.stack[e.top-1];return r.ttisLclosure()?N(e,r.value.p,t,n,a):1},e.exports.lua_error=function(e){W(e,1),M.luaG_errormsg(e)},e.exports.lua_gc=function(){},e.exports.lua_getallocf=function(){return console.warn("lua_getallocf is not available"),0},e.exports.lua_getextraspace=function(){return console.warn("lua_getextraspace is not available"),0},e.exports.lua_getfield=function(e,t,n){return he(e,Q(e,t),n)},e.exports.lua_getglobal=function(e,t){return he(e,z.luaH_getint(e.l_G.l_registry.value,c),t)},e.exports.lua_geti=function(e,t,n){let a=Q(e,t);return Y(n),e.stack[e.top]=new X(S,n),J(e),H.luaV_gettable(e,a,e.stack[e.top-1],e.top-1),e.stack[e.top-1].ttnov()},e.exports.lua_getmetatable=function(e,t){let n,a=Q(e,t),r=!1;switch(a.ttnov()){case x:case L:n=a.value.metatable;break;default:n=e.l_G.mt[a.ttnov()]}return null!=n&&(e.stack[e.top]=new X(x,n),J(e),r=!0),r},e.exports.lua_gettable=function(e,t){let n=Q(e,t);return H.luaV_gettable(e,n,e.stack[e.top-1],e.top-1),e.stack[e.top-1].ttnov()},e.exports.lua_gettop=function(e){return e.top-(e.ci.funcOff+1)},e.exports.lua_getupvalue=function(e,t,n){let a=pe(0,Q(e,t),n);if(a){let t=a.name,n=a.val;return k.pushobj2s(e,n),C(e,e.top<=e.ci.top,"stack overflow"),t}return null},e.exports.lua_getuservalue=function(e,t){let n=Q(e,t);C(e,n.ttisfulluserdata(),"full userdata expected");let a=n.value.uservalue;return e.stack[e.top]=new X(a.type,a.value),J(e),e.stack[e.top-1].ttnov()},e.exports.lua_insert=function(e,t){re(e,t,1)},e.exports.lua_isboolean=function(e,t){return ye(e,t)===f},e.exports.lua_iscfunction=function(e,t){let n=Q(e,t);return n.ttislcf(n)||n.ttisCclosure()},e.exports.lua_isfunction=function(e,t){return ye(e,t)===p},e.exports.lua_isinteger=function(e,t){return Q(e,t).ttisinteger()},e.exports.lua_islightuserdata=function(e,t){return ye(e,t)===b},e.exports.lua_isnil=function(e,t){return ye(e,t)===v},e.exports.lua_isnone=function(e,t){return ye(e,t)===A},e.exports.lua_isnoneornil=function(e,t){return ye(e,t)<=0},e.exports.lua_isnumber=function(e,t){return!1!==H.tonumber(Q(e,t))},e.exports.lua_isproxy=function(e,t){let n=ve.get(e);return!!n&&(null===t||t.l_G===n)},e.exports.lua_isstring=function(e,t){let n=Q(e,t);return n.ttisstring()||H.cvt2str(n)},e.exports.lua_istable=function(e,t){return Q(e,t).ttistable()},e.exports.lua_isthread=function(e,t){return ye(e,t)===E},e.exports.lua_isuserdata=function(e,t){let n=Q(e,t);return n.ttisfulluserdata(n)||n.ttislightuserdata()},e.exports.lua_len=function(e,t){let n=Q(e,t),a=new X;H.luaV_objlen(e,a,n),e.stack[e.top]=a,J(e)},e.exports.lua_load=function(e,t,n,a,r){a=a?U(a):Se,null!==r&&(r=U(r));let i=new j(e,t,n),s=B.luaD_protectedparser(e,i,a,r);if(s===I){let t=e.stack[e.top-1].value;if(t.nupvalues>=1){let n=z.luaH_getint(e.l_G.l_registry.value,c);t.upvals[0].setfrom(n)}}return s},e.exports.lua_newtable=function(e){me(e)},e.exports.lua_newuserdata=function(e,t){let n=function(e,t){return new k.Udata(e,t)}(e,t);return e.stack[e.top]=new k.TValue(L,n),J(e),n.data},e.exports.lua_next=function(e,t){let n=Q(e,t);return C(e,n.ttistable(),"table expected"),e.stack[e.top]=new X,z.luaH_next(e,n.value,e.top-1)?(J(e),1):(delete e.stack[e.top],delete e.stack[--e.top],0)},e.exports.lua_pcall=function(e,t,n,a){return Ee(e,t,n,a,0,null)},e.exports.lua_pcallk=Ee,e.exports.lua_pop=ne,e.exports.lua_pushboolean=function(e,t){e.stack[e.top]=new X(f,!!t),J(e)},e.exports.lua_pushcclosure=se,e.exports.lua_pushcfunction=oe,e.exports.lua_pushfstring=function(e,t,...n){return t=U(t),k.luaO_pushvfstring(e,t,n)},e.exports.lua_pushglobaltable=function(e){fe(e,u,c)},e.exports.lua_pushinteger=function(e,t){Y(t),e.stack[e.top]=new X(S,t),J(e)},e.exports.lua_pushjsclosure=le,e.exports.lua_pushjsfunction=ue,e.exports.lua_pushlightuserdata=function(e,t){e.stack[e.top]=new X(b,t),J(e)},e.exports.lua_pushliteral=function(e,t){if(null==t)e.stack[e.top]=new X(v,null),e.top++;else{q("string"==typeof t);let n=G(e,t);k.pushsvalue2s(e,n),t=n.getstr()}return C(e,e.top<=e.ci.top,"stack overflow"),t},e.exports.lua_pushlstring=function(e,t,n){let a;return Y(n),0===n?(t=R("",!0),a=D(e,t)):(t=U(t),C(e,t.length>=n,"invalid length to lua_pushlstring"),a=F(e,t.subarray(0,n))),k.pushsvalue2s(e,a),C(e,e.top<=e.ci.top,"stack overflow"),a.value},e.exports.lua_pushnil=function(e){e.stack[e.top]=new X(v,null),J(e)},e.exports.lua_pushnumber=function(e,t){q("number"==typeof t),e.stack[e.top]=new X(y,t),J(e)},e.exports.lua_pushstring=function(e,t){if(null==t)e.stack[e.top]=new X(v,null),e.top++;else{let n=F(e,U(t));k.pushsvalue2s(e,n),t=n.getstr()}return C(e,e.top<=e.ci.top,"stack overflow"),t},e.exports.lua_pushthread=function(e){return e.stack[e.top]=new X(E,e),J(e),e.l_G.mainthread===e},e.exports.lua_pushvalue=function(e,t){k.pushobj2s(e,Q(e,t)),C(e,e.top<=e.ci.top,"stack overflow")},e.exports.lua_pushvfstring=function(e,t,n){return t=U(t),k.luaO_pushvfstring(e,t,n)},e.exports.lua_rawequal=function(e,t,n){let a=Q(e,t),r=Q(e,n);return Z(a)&&Z(r)?H.luaV_equalobj(null,a,r):0},e.exports.lua_rawget=function(e,t){let n=Q(e,t);return C(e,n.ttistable(n),"table expected"),k.setobj2s(e,e.top-1,z.luaH_get(e,n.value,e.stack[e.top-1])),e.stack[e.top-1].ttnov()},e.exports.lua_rawgeti=fe,e.exports.lua_rawgetp=function(e,t,n){let a=Q(e,t);C(e,a.ttistable(),"table expected");let r=new X(b,n);return k.pushobj2s(e,z.luaH_get(e,a.value,r)),C(e,e.top<=e.ci.top,"stack overflow"),e.stack[e.top-1].ttnov()},e.exports.lua_rawlen=function(e,t){let n=Q(e,t);switch(n.ttype()){case T:case w:return n.vslen();case L:return n.value.len;case x:return z.luaH_getn(n.value);default:return 0}},e.exports.lua_rawset=function(e,t){W(e,2);let n=Q(e,t);C(e,n.ttistable(),"table expected");let a=e.stack[e.top-2],r=e.stack[e.top-1];z.luaH_setfrom(e,n.value,a,r),z.invalidateTMcache(n.value),delete e.stack[--e.top],delete e.stack[--e.top]},e.exports.lua_rawseti=function(e,t,n){Y(n),W(e,1);let a=Q(e,t);C(e,a.ttistable(),"table expected"),z.luaH_setint(a.value,n,e.stack[e.top-1]),delete e.stack[--e.top]},e.exports.lua_rawsetp=function(e,t,n){W(e,1);let a=Q(e,t);C(e,a.ttistable(),"table expected");let r=new X(b,n),i=e.stack[e.top-1];z.luaH_setfrom(e,a.value,r,i),delete e.stack[--e.top]},e.exports.lua_register=function(e,t,n){oe(e,n),de(e,t)},e.exports.lua_remove=function(e,t){re(e,t,-1),ne(e,1)},e.exports.lua_replace=function(e,t){ie(e,-1,t),ne(e,1)},e.exports.lua_rotate=re,e.exports.lua_setallocf=function(){return console.warn("lua_setallocf is not available"),0},e.exports.lua_setfield=function(e,t,n){ce(e,Q(e,t),n)},e.exports.lua_setglobal=de,e.exports.lua_seti=function(e,t,n){Y(n),W(e,1);let a=Q(e,t);e.stack[e.top]=new X(S,n),J(e),H.settable(e,a,e.stack[e.top-1],e.stack[e.top-2]),delete e.stack[--e.top],delete e.stack[--e.top]},e.exports.lua_setmetatable=function(e,t){let n;W(e,1);let a=Q(e,t);switch(e.stack[e.top-1].ttisnil()?n=null:(C(e,e.stack[e.top-1].ttistable(),"table expected"),n=e.stack[e.top-1].value),a.ttnov()){case L:case x:a.value.metatable=n;break;default:e.l_G.mt[a.ttnov()]=n}return delete e.stack[--e.top],!0},e.exports.lua_settable=function(e,t){W(e,2);let n=Q(e,t);H.settable(e,n,e.stack[e.top-2],e.stack[e.top-1]),delete e.stack[--e.top],delete e.stack[--e.top]},e.exports.lua_settop=te,e.exports.lua_setupvalue=function(e,t,n){let a=Q(e,t);W(e,1);let r=pe(0,a,n);if(r){let t=r.name;return r.val.setfrom(e.stack[e.top-1]),delete e.stack[--e.top],t}return null},e.exports.lua_setuservalue=function(e,t){W(e,1);let n=Q(e,t);C(e,n.ttisfulluserdata(),"full userdata expected"),n.value.uservalue.setfrom(e.stack[e.top-1]),delete e.stack[--e.top]},e.exports.lua_status=function(e){return e.status},e.exports.lua_stringtonumber=function(e,t){let n=new X,a=k.luaO_str2num(t,n);return 0!==a&&(e.stack[e.top]=n,J(e)),a},e.exports.lua_toboolean=function(e,t){return!Q(e,t).l_isfalse()},e.exports.lua_tocfunction=function(e,t){let n=Q(e,t);return n.ttislcf()||n.ttisCclosure()?n.value:null},e.exports.lua_todataview=function(e,t){let n=_e(e,t);return new DataView(n.buffer,n.byteOffset,n.byteLength)},e.exports.lua_tointeger=function(e,t){let n=be(e,t);return!1===n?0:n},e.exports.lua_tointegerx=be,e.exports.lua_tojsstring=function(e,t){let n=Q(e,t);if(!n.ttisstring()){if(!H.cvt2str(n))return null;k.luaO_tostring(e,n)}return n.jsstring()},e.exports.lua_tolstring=_e,e.exports.lua_tonumber=function(e,t){let n=we(e,t);return!1===n?0:n},e.exports.lua_tonumberx=we,e.exports.lua_topointer=function(e,t){let n=Q(e,t);switch(n.ttype()){case x:case g:case m:case _:case E:case L:case b:return n.value;default:return null}},e.exports.lua_toproxy=function(e,t){let n=Q(e,t);return function(e,t,n){let a=function(a){C(a,a instanceof O.lua_State&&e===a.l_G,"must be from same global state"),a.stack[a.top]=new X(t,n),J(a)};return ve.set(a,e),a}(e.l_G,n.type,n.value)},e.exports.lua_tostring=ge,e.exports.lua_tothread=function(e,t){let n=Q(e,t);return n.ttisthread()?n.value:null},e.exports.lua_touserdata=function(e,t){let n=Q(e,t);switch(n.ttnov()){case L:return n.value.data;case b:return n.value;default:return null}},e.exports.lua_type=ye,e.exports.lua_typename=function(e,t){return C(e,A<=t&&t<h,"invalid tag"),V.ttypename(t)},e.exports.lua_upvalueid=function(e,t,n){let a=Q(e,t);switch(a.ttype()){case g:{let a=Le(e,t,n);return a.f.upvals[a.i]}case m:{let t=a.value;return C(e,(0|n)===n&&n>0&&n<=t.nupvalues,"invalid upvalue index"),t.upvalue[n-1]}default:return C(e,!1,"closure expected"),null}},e.exports.lua_upvaluejoin=function(e,t,n,a,r){let i=Le(e,t,n),s=Le(e,a,r),l=s.f.upvals[s.i];i.f.upvals[i.i]=l},e.exports.lua_version=function(e){return null===e?d:e.l_G.version},e.exports.lua_xmove=function(e,t,n){if(e!==t){W(e,n),C(e,e.l_G===t.l_G,"moving among independent states"),C(e,t.ci.top-t.top>=n,"stack overflow"),e.top-=n;for(let a=0;a<n;a++)t.stack[t.top]=new k.TValue,k.setobj2s(t,t.top,e.stack[e.top+a]),delete e.stack[e.top+a],t.top++}}},696:(e,t,n)=>{"use strict";let a,r,i;if(a="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):function(e){let t=0,n=e.length,a=new Uint8Array(n);for(;n>t;)a[t]=e[t++];return a},"function"==typeof(new Uint8Array).indexOf)r=function(e,t,n){return e.indexOf(t,n)};else{let e=[].indexOf;if(0!==e.call(new Uint8Array(1),0))throw Error("missing .indexOf");r=function(t,n,a){return e.call(t,n,a)}}i="function"==typeof Uint8Array.of?Uint8Array.of.bind(Uint8Array):function(){return a(arguments)};const s=function(e){return e instanceof Uint8Array},l="cannot convert invalid utf8 to javascript string",o=";,/?:@&=+$abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789,-_.!~*'()#".split("").reduce(function(e,t){return e[t.charCodeAt(0)]=!0,e},{}),u={},c=function(e,t){if("string"!=typeof e)throw new TypeError("to_luastring expects a javascript string");if(t){let t=u[e];if(s(t))return t}let n=e.length,r=Array(n),i=0;for(let t=0;t<n;++t){let a=e.charCodeAt(t);if(a<=127)r[i++]=a;else if(a<=2047)r[i++]=192|a>>6,r[i++]=128|63&a;else{if(a>=55296&&a<=56319&&t+1<n){let n=e.charCodeAt(t+1);n>=56320&&n<=57343&&(t++,a=1024*(a-55296)+n+9216)}a<=65535?(r[i++]=224|a>>12,r[i++]=128|a>>6&63,r[i++]=128|63&a):(r[i++]=240|a>>18,r[i++]=128|a>>12&63,r[i++]=128|a>>6&63,r[i++]=128|63&a)}}return r=a(r),t&&(u[e]=r),r};e.exports.luastring_from=a,e.exports.luastring_indexOf=r,e.exports.luastring_of=i,e.exports.is_luastring=s,e.exports.luastring_eq=function(e,t){if(e!==t){let n=e.length;if(n!==t.length)return!1;for(let a=0;a<n;a++)if(e[a]!==t[a])return!1}return!0},e.exports.to_jsstring=function(e,t,n,a){if(!s(e))throw new TypeError("to_jsstring expects a Uint8Array");n=void 0===n?e.length:Math.min(e.length,n);let r="";for(let i=void 0!==t?t:0;i<n;){let t=e[i++];if(t<128)r+=String.fromCharCode(t);else if(t<194||t>244){if(!a)throw RangeError(l);r+="�"}else if(t<=223){if(i>=n){if(!a)throw RangeError(l);r+="�";continue}let s=e[i++];if(128!=(192&s)){if(!a)throw RangeError(l);r+="�";continue}r+=String.fromCharCode(((31&t)<<6)+(63&s))}else if(t<=239){if(i+1>=n){if(!a)throw RangeError(l);r+="�";continue}let s=e[i++];if(128!=(192&s)){if(!a)throw RangeError(l);r+="�";continue}let o=e[i++];if(128!=(192&o)){if(!a)throw RangeError(l);r+="�";continue}let u=((15&t)<<12)+((63&s)<<6)+(63&o);if(u<=65535)r+=String.fromCharCode(u);else{u-=65536;let e=55296+(u>>10),t=u%1024+56320;r+=String.fromCharCode(e,t)}}else{if(i+2>=n){if(!a)throw RangeError(l);r+="�";continue}let s=e[i++];if(128!=(192&s)){if(!a)throw RangeError(l);r+="�";continue}let o=e[i++];if(128!=(192&o)){if(!a)throw RangeError(l);r+="�";continue}let u=e[i++];if(128!=(192&u)){if(!a)throw RangeError(l);r+="�";continue}let c=((7&t)<<18)+((63&s)<<12)+((63&o)<<6)+(63&u);c-=65536;let d=55296+(c>>10),h=c%1024+56320;r+=String.fromCharCode(d,h)}}return r},e.exports.to_uristring=function(e){if(!s(e))throw new TypeError("to_uristring expects a Uint8Array");let t="";for(let n=0;n<e.length;n++){let a=e[n];o[a]?t+=String.fromCharCode(a):t+="%"+(a<16?"0":"")+a.toString(16)}return t},e.exports.to_luastring=c,e.exports.from_userstring=function(e){if(!s(e)){if("string"!=typeof e)throw new TypeError("expects an array of bytes or javascript string");e=c(e)}return e};const d=c("Lua"),h="Lua 5.3",f=h+".4",m=f+" Copyright (C) 1994-2017 Lua.org, PUC-Rio";e.exports.LUA_SIGNATURE=d,e.exports.LUA_VERSION_MAJOR="5",e.exports.LUA_VERSION_MINOR="3",e.exports.LUA_VERSION_NUM=503,e.exports.LUA_VERSION_RELEASE="4",e.exports.LUA_VERSION=h,e.exports.LUA_RELEASE=f,e.exports.LUA_COPYRIGHT=m,e.exports.LUA_AUTHORS="R. Ierusalimschy, L. H. de Figueiredo, W. Celes";const p={LUA_TNONE:-1,LUA_TNIL:0,LUA_TBOOLEAN:1,LUA_TLIGHTUSERDATA:2,LUA_TNUMBER:3,LUA_TSTRING:4,LUA_TTABLE:5,LUA_TFUNCTION:6,LUA_TUSERDATA:7,LUA_TTHREAD:8,LUA_NUMTAGS:9};p.LUA_TSHRSTR=0|p.LUA_TSTRING,p.LUA_TLNGSTR=16|p.LUA_TSTRING,p.LUA_TNUMFLT=0|p.LUA_TNUMBER,p.LUA_TNUMINT=16|p.LUA_TNUMBER,p.LUA_TLCL=0|p.LUA_TFUNCTION,p.LUA_TLCF=16|p.LUA_TFUNCTION,p.LUA_TCCL=32|p.LUA_TFUNCTION;const{LUAI_MAXSTACK:_}=n(254),g=-_-1e3;e.exports.LUA_HOOKCALL=0,e.exports.LUA_HOOKCOUNT=3,e.exports.LUA_HOOKLINE=2,e.exports.LUA_HOOKRET=1,e.exports.LUA_HOOKTAILCALL=4,e.exports.LUA_MASKCALL=1,e.exports.LUA_MASKCOUNT=8,e.exports.LUA_MASKLINE=4,e.exports.LUA_MASKRET=2,e.exports.LUA_MINSTACK=20,e.exports.LUA_MULTRET=-1,e.exports.LUA_OPADD=0,e.exports.LUA_OPBAND=7,e.exports.LUA_OPBNOT=13,e.exports.LUA_OPBOR=8,e.exports.LUA_OPBXOR=9,e.exports.LUA_OPDIV=5,e.exports.LUA_OPEQ=0,e.exports.LUA_OPIDIV=6,e.exports.LUA_OPLE=2,e.exports.LUA_OPLT=1,e.exports.LUA_OPMOD=3,e.exports.LUA_OPMUL=2,e.exports.LUA_OPPOW=4,e.exports.LUA_OPSHL=10,e.exports.LUA_OPSHR=11,e.exports.LUA_OPSUB=1,e.exports.LUA_OPUNM=12,e.exports.LUA_REGISTRYINDEX=g,e.exports.LUA_RIDX_GLOBALS=2,e.exports.LUA_RIDX_LAST=2,e.exports.LUA_RIDX_MAINTHREAD=1,e.exports.constant_types=p,e.exports.lua_Debug=class{constructor(){this.event=NaN,this.name=null,this.namewhat=null,this.what=null,this.source=null,this.currentline=NaN,this.linedefined=NaN,this.lastlinedefined=NaN,this.nups=NaN,this.nparams=NaN,this.isvararg=NaN,this.istailcall=NaN,this.short_src=null,this.i_ci=null}},e.exports.lua_upvalueindex=function(e){return g-e},e.exports.thread_status={LUA_OK:0,LUA_YIELD:1,LUA_ERRRUN:2,LUA_ERRSYNTAX:3,LUA_ERRMEM:4,LUA_ERRGCMM:5,LUA_ERRERR:6}},809:(e,t,n)=>{"use strict";const{LUA_MINSTACK:a,LUA_RIDX_GLOBALS:r,LUA_RIDX_MAINTHREAD:i,constant_types:{LUA_NUMTAGS:s,LUA_TNIL:l,LUA_TTABLE:o,LUA_TTHREAD:u},thread_status:{LUA_OK:c}}=n(696),d=n(853),h=n(179),f=n(660),m=n(420),p=n(917),_=2*a;class g{constructor(){this.func=null,this.funcOff=NaN,this.top=NaN,this.previous=null,this.next=null,this.l_base=NaN,this.l_code=null,this.l_savedpc=NaN,this.c_k=null,this.c_old_errfunc=null,this.c_ctx=null,this.nresults=NaN,this.callstatus=NaN}}class b{constructor(e){this.id=e.id_counter++,this.base_ci=new g,this.top=NaN,this.stack_last=NaN,this.oldpc=NaN,this.l_G=e,this.stack=null,this.ci=null,this.errorJmp=null,this.nCcalls=0,this.hook=null,this.hookmask=0,this.basehookcount=0,this.allowhook=1,this.hookcount=this.basehookcount,this.nny=1,this.status=c,this.errfunc=0}}class w{constructor(){this.id_counter=1,this.ids=new WeakMap,this.mainthread=null,this.l_registry=new d.TValue(l,null),this.panic=null,this.atnativeerror=null,this.version=null,this.tmname=new Array(p.TMS.TM_N),this.mt=new Array(s)}}const v=function(e){e.ci.next=null},A=function(e,t){e.stack=new Array(_),e.top=0,e.stack_last=_-5;let n=e.base_ci;n.next=n.previous=null,n.callstatus=0,n.funcOff=e.top,n.func=e.stack[e.top],e.stack[e.top++]=new d.TValue(l,null),n.top=e.top+a,e.ci=n},y=function(e){e.ci=e.base_ci,v(e),e.stack=null},S=function(e){let t=e.l_G;A(e),function(e,t){let n=m.luaH_new(e);t.l_registry.sethvalue(n),m.luaH_setint(n,i,new d.TValue(u,e)),m.luaH_setint(n,r,new d.TValue(o,m.luaH_new(e)))}(e,t),p.luaT_init(e),t.version=f.lua_version(null)};e.exports.lua_State=b,e.exports.CallInfo=g,e.exports.CIST_OAH=1,e.exports.CIST_LUA=2,e.exports.CIST_HOOKED=4,e.exports.CIST_FRESH=8,e.exports.CIST_YPCALL=16,e.exports.CIST_TAIL=32,e.exports.CIST_HOOKYIELD=64,e.exports.CIST_LEQ=128,e.exports.CIST_FIN=256,e.exports.EXTRA_STACK=5,e.exports.lua_close=function(e){!function(e){y(e)}(e=e.l_G.mainthread)},e.exports.lua_newstate=function(){let e=new w,t=new b(e);return e.mainthread=t,h.luaD_rawrunprotected(t,S,null)!==c&&(t=null),t},e.exports.lua_newthread=function(e){let t=e.l_G,n=new b(t);return e.stack[e.top]=new d.TValue(u,n),f.api_incr_top(e),n.hookmask=e.hookmask,n.basehookcount=e.basehookcount,n.hook=e.hook,n.hookcount=n.basehookcount,A(n),n},e.exports.luaE_extendCI=function(e){let t=new g;return e.ci.next=t,t.previous=e.ci,t.next=null,e.ci=t,t},e.exports.luaE_freeCI=v,e.exports.luaE_freethread=function(e,t){y(t)}},853:(e,t,n)=>{"use strict";const{LUA_OPADD:a,LUA_OPBAND:r,LUA_OPBNOT:i,LUA_OPBOR:s,LUA_OPBXOR:l,LUA_OPDIV:o,LUA_OPIDIV:u,LUA_OPMOD:c,LUA_OPMUL:d,LUA_OPPOW:h,LUA_OPSHL:f,LUA_OPSHR:m,LUA_OPSUB:p,LUA_OPUNM:_,constant_types:{LUA_NUMTAGS:g,LUA_TBOOLEAN:b,LUA_TCCL:w,LUA_TFUNCTION:v,LUA_TLCF:A,LUA_TLCL:y,LUA_TLIGHTUSERDATA:S,LUA_TLNGSTR:T,LUA_TNIL:x,LUA_TNUMBER:E,LUA_TNUMFLT:L,LUA_TNUMINT:I,LUA_TSHRSTR:U,LUA_TSTRING:R,LUA_TTABLE:C,LUA_TTHREAD:M,LUA_TUSERDATA:B},from_userstring:N,luastring_indexOf:P,luastring_of:k,to_jsstring:O,to_luastring:D}=n(696),{lisdigit:F,lisprint:G,lisspace:V,lisxdigit:K}=n(637),H=n(399),z=n(179),j=n(809),{luaS_bless:X,luaS_new:$}=n(415),J=n(420),{LUA_COMPAT_FLOATSTRING:W,ldexp:q,lua_integer2str:Y,lua_number2str:Z}=n(254),Q=n(371),{MAX_INT:ee,luai_nummod:te,lua_assert:ne}=n(502),ae=n(917),re=g,ie=g+1;class se{constructor(e,t){this.type=e,this.value=t}ttype(){return 63&this.type}ttnov(){return 15&this.type}checktag(e){return this.type===e}checktype(e){return this.ttnov()===e}ttisnumber(){return this.checktype(E)}ttisfloat(){return this.checktag(L)}ttisinteger(){return this.checktag(I)}ttisnil(){return this.checktag(x)}ttisboolean(){return this.checktag(b)}ttislightuserdata(){return this.checktag(S)}ttisstring(){return this.checktype(R)}ttisshrstring(){return this.checktag(U)}ttislngstring(){return this.checktag(T)}ttistable(){return this.checktag(C)}ttisfunction(){return this.checktype(v)}ttisclosure(){return(31&this.type)===v}ttisCclosure(){return this.checktag(w)}ttisLclosure(){return this.checktag(y)}ttislcf(){return this.checktag(A)}ttisfulluserdata(){return this.checktag(B)}ttisthread(){return this.checktag(M)}ttisdeadkey(){return this.checktag(ie)}l_isfalse(){return this.ttisnil()||this.ttisboolean()&&!1===this.value}setfltvalue(e){this.type=L,this.value=e}chgfltvalue(e){ne(this.type==L),this.value=e}setivalue(e){this.type=I,this.value=e}chgivalue(e){ne(this.type==I),this.value=e}setnilvalue(){this.type=x,this.value=null}setfvalue(e){this.type=A,this.value=e}setpvalue(e){this.type=S,this.value=e}setbvalue(e){this.type=b,this.value=e}setsvalue(e){this.type=T,this.value=e}setuvalue(e){this.type=B,this.value=e}setthvalue(e){this.type=M,this.value=e}setclLvalue(e){this.type=y,this.value=e}setclCvalue(e){this.type=w,this.value=e}sethvalue(e){this.type=C,this.value=e}setdeadvalue(){this.type=ie,this.value=null}setfrom(e){this.type=e.type,this.value=e.value}tsvalue(){return ne(this.ttisstring()),this.value}svalue(){return this.tsvalue().getstr()}vslen(){return this.tsvalue().tsslen()}jsstring(e,t){return O(this.svalue(),e,t,!0)}}const le=function(e,t,n){e.stack[t].setsvalue(n)},oe=new se(x,null);Object.freeze(oe),e.exports.luaO_nilobject=oe;class ue{constructor(e,t){this.id=e.l_G.id_counter++,this.p=null,this.nupvalues=t,this.upvals=new Array(t)}}class ce{constructor(e,t,n){for(this.id=e.l_G.id_counter++,this.f=t,this.nupvalues=n,this.upvalue=new Array(n);n--;)this.upvalue[n]=new se(x,null)}}class de{constructor(e,t){this.id=e.l_G.id_counter++,this.metatable=null,this.uservalue=new se(x,null),this.len=t,this.data=Object.create(null)}}const he=D("..."),fe=D('[string "'),me=D('"]'),pe=function(e){return F(e)?e-48:(223&e)-55},_e=function(e,t){let n=1;if(ne(t<=1114111),t<128)e[7]=t;else{let a=63;do{e[8-n++]=128|63&t,t>>=6,a>>=1}while(t>a);e[8-n]=~a<<1|t}return n},ge=function(e,t){let n="x"===t?function(e){let t,n=0,a=0,r=0,i=0,s=0,l=!1;for(;V(e[n]);)n++;if(((t=45===e[n])||43===e[n])&&n++,48!==e[n]||120!==e[n+1]&&88!==e[n+1])return null;for(n+=2;;n++)if(46===e[n]){if(l)break;l=!0}else{if(!K(e[n]))break;0===r&&48===e[n]?i++:++r<=30?a=16*a+pe(e[n]):s++,l&&s--}if(i+r===0)return null;if(s*=4,112===e[n]||80===e[n]){let t,a=0;if(n++,((t=45===e[n])||43===e[n])&&n++,!F(e[n]))return null;for(;F(e[n]);)a=10*a+e[n++]-48;t&&(a=-a),s+=a}return t&&(a=-a),{n:q(a,s),i:n}}(e):function(e){try{e=O(e)}catch(e){return null}let t=/^[\t\v\f \n\r]*[+-]?(?:[0-9]+\.?[0-9]*|\.[0-9]*)(?:[eE][+-]?[0-9]+)?/.exec(e);if(!t)return null;let n=parseFloat(t[0]);return isNaN(n)?null:{n,i:t[0].length}}(e);if(null===n)return null;for(;V(e[n.i]);)n.i++;return n.i===e.length||0===e[n.i]?n:null},be=[46,120,88,110,78],we={46:".",120:"x",88:"x",110:"n",78:"n"},ve=Math.floor(ee/10),Ae=ee%10,ye=function(e,t){let n;if(t.ttisinteger())n=D(Y(t.value));else{let e=Z(t.value);!W&&/^[-0123456789]+$/.test(e)&&(e+=".0"),n=D(e)}t.setsvalue(X(e,n))},Se=function(e,t){z.luaD_inctop(e),le(e,e.top-1,$(e,t))},Te=function(e,t,n){let a,r=0,i=0,s=0;for(;a=P(t,37,i),-1!=a;){switch(Se(e,t.subarray(i,a)),t[a+1]){case 115:{let t=n[s++];if(null===t)t=D("(null)",!0);else{t=N(t);let e=P(t,0);-1!==e&&(t=t.subarray(0,e))}Se(e,t);break}case 99:{let t=n[s++];G(t)?Se(e,k(t)):xe(e,D("<\\%d>",!0),t);break}case 100:case 73:z.luaD_inctop(e),e.stack[e.top-1].setivalue(n[s++]),ye(e,e.stack[e.top-1]);break;case 102:z.luaD_inctop(e),e.stack[e.top-1].setfltvalue(n[s++]),ye(e,e.stack[e.top-1]);break;case 112:{let t=n[s++];if(t instanceof j.lua_State||t instanceof J.Table||t instanceof de||t instanceof ue||t instanceof ce)Se(e,D("0x"+t.id.toString(16)));else switch(typeof t){case"undefined":Se(e,D("undefined"));break;case"number":Se(e,D("Number("+t+")"));break;case"string":Se(e,D("String("+JSON.stringify(t)+")"));break;case"boolean":Se(e,D(t?"Boolean(true)":"Boolean(false)"));break;case"object":if(null===t){Se(e,D("null"));break}case"function":{let n=e.l_G.ids.get(t);n||(n=e.l_G.id_counter++,e.l_G.ids.set(t,n)),Se(e,D("0x"+n.toString(16)));break}default:Se(e,D("<id NYI>"))}break}case 85:{let t=new Uint8Array(8),a=_e(t,n[s++]);Se(e,t.subarray(8-a));break}case 37:Se(e,D("%",!0));break;default:H.luaG_runerror(e,D("invalid option '%%%c' to 'lua_pushfstring'"),t[a+1])}r+=2,i=a+2}return z.luaD_checkstack(e,1),Se(e,t.subarray(i)),r>0&&Q.luaV_concat(e,r+1),e.stack[e.top-1].svalue()},xe=function(e,t,...n){return Te(e,t,n)},Ee=function(e,t,n,o){switch(t){case a:return n+o|0;case p:return n-o|0;case d:return Q.luaV_imul(n,o);case c:return Q.luaV_mod(e,n,o);case u:return Q.luaV_div(e,n,o);case r:return n&o;case s:return n|o;case l:return n^o;case f:return Q.luaV_shiftl(n,o);case m:return Q.luaV_shiftl(n,-o);case _:return 0-n|0;case i:return-1^n;default:ne(0)}},Le=function(e,t,n,r){switch(t){case a:return n+r;case p:return n-r;case d:return n*r;case o:return n/r;case h:return Math.pow(n,r);case u:return Math.floor(n/r);case _:return-n;case c:return te(e,n,r);default:ne(0)}};e.exports.CClosure=ce,e.exports.LClosure=ue,e.exports.LUA_TDEADKEY=ie,e.exports.LUA_TPROTO=re,e.exports.LocVar=class{constructor(){this.varname=null,this.startpc=NaN,this.endpc=NaN}},e.exports.TValue=se,e.exports.Udata=de,e.exports.UTF8BUFFSZ=8,e.exports.luaO_arith=function(e,t,n,u,c){let d="number"==typeof c?e.stack[c]:c;switch(t){case r:case s:case l:case f:case m:case i:{let a,r;if(!1!==(a=Q.tointeger(n))&&!1!==(r=Q.tointeger(u)))return void d.setivalue(Ee(e,t,a,r));break}case o:case h:{let a,r;if(!1!==(a=Q.tonumber(n))&&!1!==(r=Q.tonumber(u)))return void d.setfltvalue(Le(e,t,a,r));break}default:{let a,r;if(n.ttisinteger()&&u.ttisinteger())return void d.setivalue(Ee(e,t,n.value,u.value));if(!1!==(a=Q.tonumber(n))&&!1!==(r=Q.tonumber(u)))return void d.setfltvalue(Le(e,t,a,r));break}}ne(null!==e),ae.luaT_trybinTM(e,n,u,c,t-a+ae.TMS.TM_ADD)},e.exports.luaO_chunkid=function(e,t){let n,a=e.length;if(61===e[0])a<t?(n=new Uint8Array(a-1),n.set(e.subarray(1))):(n=new Uint8Array(t),n.set(e.subarray(1,t+1)));else if(64===e[0])a<=t?(n=new Uint8Array(a-1),n.set(e.subarray(1))):(n=new Uint8Array(t),n.set(he),t-=he.length,n.set(e.subarray(a-t),he.length));else{n=new Uint8Array(t);let r=P(e,10);n.set(fe);let i=fe.length;a<(t-=fe.length+he.length+me.length)&&-1===r?(n.set(e,i),i+=e.length):(-1!==r&&(a=r),a>t&&(a=t),n.set(e.subarray(0,a),i),i+=a,n.set(he,i),i+=he.length),n.set(me,i),i+=me.length,n=n.subarray(0,i)}return n},e.exports.luaO_hexavalue=pe,e.exports.luaO_int2fb=function(e){let t=0;if(e<8)return e;for(;e>=128;)e=e+15>>4,t+=4;for(;e>=16;)e=e+1>>1,t++;return t+1<<3|e-8},e.exports.luaO_pushfstring=xe,e.exports.luaO_pushvfstring=Te,e.exports.luaO_str2num=function(e,t){let n=function(e){let t,n=0,a=0,r=!0;for(;V(e[n]);)n++;if(((t=45===e[n])||43===e[n])&&n++,48!==e[n]||120!==e[n+1]&&88!==e[n+1])for(;n<e.length&&F(e[n]);n++){let i=e[n]-48;if(a>=ve&&(a>ve||i>Ae+t))return null;a=10*a+i|0,r=!1}else for(n+=2;n<e.length&&K(e[n]);n++)a=16*a+pe(e[n])|0,r=!1;for(;n<e.length&&V(e[n]);)n++;return r||n!==e.length&&0!==e[n]?null:{n:0|(t?-a:a),i:n}}(e);return null!==n?(t.setivalue(n.n),n.i+1):(n=function(e){let t=e.length,n=0;for(let a=0;a<t;a++){let t=e[a];if(-1!==be.indexOf(t)){n=t;break}}let a=we[n];return"n"===a?null:ge(e,a)}(e),null!==n?(t.setfltvalue(n.n),n.i+1):0)},e.exports.luaO_tostring=ye,e.exports.luaO_utf8esc=_e,e.exports.numarith=Le,e.exports.pushobj2s=function(e,t){e.stack[e.top++]=new se(t.type,t.value)},e.exports.pushsvalue2s=function(e,t){e.stack[e.top++]=new se(T,t)},e.exports.setobjs2s=function(e,t,n){e.stack[t].setfrom(e.stack[n])},e.exports.setobj2s=function(e,t,n){e.stack[t].setfrom(n)},e.exports.setsvalue2s=le},855:(e,t,n)=>{"use strict";const{LUA_SIGNATURE:a,constant_types:{LUA_TBOOLEAN:r,LUA_TLNGSTR:i,LUA_TNIL:s,LUA_TNUMFLT:l,LUA_TNUMINT:o,LUA_TSHRSTR:u},thread_status:{LUA_ERRSYNTAX:c},is_luastring:d,luastring_eq:h,to_luastring:f}=n(696),m=n(179),p=n(196),_=n(853),{MAXARG_sBx:g,POS_A:b,POS_Ax:w,POS_B:v,POS_Bx:A,POS_C:y,POS_OP:S,SIZE_A:T,SIZE_Ax:x,SIZE_B:E,SIZE_Bx:L,SIZE_C:I,SIZE_OP:U}=n(451),{lua_assert:R}=n(502),{luaS_bless:C}=n(415),{luaZ_read:M,ZIO:B}=n(498);let N=[25,147,13,10,26,10];class P{constructor(e,t,n){this.intSize=4,this.size_tSize=4,this.instructionSize=4,this.integerSize=4,this.numberSize=8,R(t instanceof B,"BytecodeParser only operates on a ZIO"),R(d(n)),64===n[0]||61===n[0]?this.name=n.subarray(1):n[0]==a[0]?this.name=f("binary string",!0):this.name=n,this.L=e,this.Z=t,this.arraybuffer=new ArrayBuffer(Math.max(this.intSize,this.size_tSize,this.instructionSize,this.integerSize,this.numberSize)),this.dv=new DataView(this.arraybuffer),this.u8=new Uint8Array(this.arraybuffer)}read(e){let t=new Uint8Array(e);return 0!==M(this.Z,t,0,e)&&this.error("truncated"),t}LoadByte(){return 0!==M(this.Z,this.u8,0,1)&&this.error("truncated"),this.u8[0]}LoadInt(){return 0!==M(this.Z,this.u8,0,this.intSize)&&this.error("truncated"),this.dv.getInt32(0,!0)}LoadNumber(){return 0!==M(this.Z,this.u8,0,this.numberSize)&&this.error("truncated"),this.dv.getFloat64(0,!0)}LoadInteger(){return 0!==M(this.Z,this.u8,0,this.integerSize)&&this.error("truncated"),this.dv.getInt32(0,!0)}LoadSize_t(){return this.LoadInteger()}LoadString(){let e=this.LoadByte();return 255===e&&(e=this.LoadSize_t()),0===e?null:C(this.L,this.read(e-1))}static MASK1(e,t){return~(-1<<e)<<t}LoadCode(e){let t=this.LoadInt(),n=P;for(let a=0;a<t;a++){0!==M(this.Z,this.u8,0,this.instructionSize)&&this.error("truncated");let t=this.dv.getUint32(0,!0);e.code[a]={code:t,opcode:t>>S&n.MASK1(U,0),A:t>>b&n.MASK1(T,0),B:t>>v&n.MASK1(E,0),C:t>>y&n.MASK1(I,0),Bx:t>>A&n.MASK1(L,0),Ax:t>>w&n.MASK1(x,0),sBx:(t>>A&n.MASK1(L,0))-g}}}LoadConstants(e){let t=this.LoadInt();for(let n=0;n<t;n++){let t=this.LoadByte();switch(t){case s:e.k.push(new _.TValue(s,null));break;case r:e.k.push(new _.TValue(r,0!==this.LoadByte()));break;case l:e.k.push(new _.TValue(l,this.LoadNumber()));break;case o:e.k.push(new _.TValue(o,this.LoadInteger()));break;case u:case i:e.k.push(new _.TValue(i,this.LoadString()));break;default:this.error(`unrecognized constant '${t}'`)}}}LoadProtos(e){let t=this.LoadInt();for(let n=0;n<t;n++)e.p[n]=new p.Proto(this.L),this.LoadFunction(e.p[n],e.source)}LoadUpvalues(e){let t=this.LoadInt();for(let n=0;n<t;n++)e.upvalues[n]={name:null,instack:this.LoadByte(),idx:this.LoadByte()}}LoadDebug(e){let t=this.LoadInt();for(let n=0;n<t;n++)e.lineinfo[n]=this.LoadInt();t=this.LoadInt();for(let n=0;n<t;n++)e.locvars[n]={varname:this.LoadString(),startpc:this.LoadInt(),endpc:this.LoadInt()};t=this.LoadInt();for(let n=0;n<t;n++)e.upvalues[n].name=this.LoadString()}LoadFunction(e,t){e.source=this.LoadString(),null===e.source&&(e.source=t),e.linedefined=this.LoadInt(),e.lastlinedefined=this.LoadInt(),e.numparams=this.LoadByte(),e.is_vararg=0!==this.LoadByte(),e.maxstacksize=this.LoadByte(),this.LoadCode(e),this.LoadConstants(e),this.LoadUpvalues(e),this.LoadProtos(e),this.LoadDebug(e)}checkliteral(e,t){let n=this.read(e.length);h(n,e)||this.error(t)}checkHeader(){this.checkliteral(a.subarray(1),"not a"),83!==this.LoadByte()&&this.error("version mismatch in"),0!==this.LoadByte()&&this.error("format mismatch in"),this.checkliteral(N,"corrupted"),this.intSize=this.LoadByte(),this.size_tSize=this.LoadByte(),this.instructionSize=this.LoadByte(),this.integerSize=this.LoadByte(),this.numberSize=this.LoadByte(),this.checksize(this.intSize,4,"int"),this.checksize(this.size_tSize,4,"size_t"),this.checksize(this.instructionSize,4,"instruction"),this.checksize(this.integerSize,4,"integer"),this.checksize(this.numberSize,8,"number"),22136!==this.LoadInteger()&&this.error("endianness mismatch in"),370.5!==this.LoadNumber()&&this.error("float format mismatch in")}error(e){_.luaO_pushfstring(this.L,f("%s: %s precompiled chunk"),this.name,f(e)),m.luaD_throw(this.L,c)}checksize(e,t,n){e!==t&&this.error(`${n} size mismatch in`)}}e.exports.luaU_undump=function(e,t,n){let a=new P(e,t,n);a.checkHeader();let r=p.luaF_newLclosure(e,a.LoadByte());return m.luaD_inctop(e),e.stack[e.top-1].setclLvalue(r),r.p=new p.Proto(e),a.LoadFunction(r.p,null),R(r.nupvalues===r.p.upvalues.length),r}},917:(e,t,n)=>{"use strict";const{constant_types:{LUA_TTABLE:a,LUA_TUSERDATA:r},to_luastring:i}=n(696),{lua_assert:s}=n(502),l=n(853),o=n(179),u=n(809),{luaS_bless:c,luaS_new:d}=n(415),h=n(420),f=n(399),m=n(371),p=["no value","nil","boolean","userdata","number","string","table","function","userdata","thread","proto"].map(e=>i(e)),_=function(e){return p[e+1]},g={TM_INDEX:0,TM_NEWINDEX:1,TM_GC:2,TM_MODE:3,TM_LEN:4,TM_EQ:5,TM_ADD:6,TM_SUB:7,TM_MUL:8,TM_MOD:9,TM_POW:10,TM_DIV:11,TM_IDIV:12,TM_BAND:13,TM_BOR:14,TM_BXOR:15,TM_SHL:16,TM_SHR:17,TM_UNM:18,TM_BNOT:19,TM_LT:20,TM_LE:21,TM_CONCAT:22,TM_CALL:23,TM_N:24},b=i("__name",!0),w=function(e,t,n,a,r,i){let s=e.top;if(l.pushobj2s(e,t),l.pushobj2s(e,n),l.pushobj2s(e,a),i||l.pushobj2s(e,r),e.ci.callstatus&u.CIST_LUA?o.luaD_call(e,s,i):o.luaD_callnoyield(e,s,i),i){let t=e.stack[e.top-1];delete e.stack[--e.top],r.setfrom(t)}},v=function(e,t,n,a,r){let i=y(e,t,r);return i.ttisnil()&&(i=y(e,n,r)),!i.ttisnil()&&(w(e,i,t,n,a,1),!0)},A=function(e,t,n){const a=h.luaH_getstr(e,n);return s(t<=g.TM_EQ),a.ttisnil()?(e.flags|=1<<t,null):a},y=function(e,t,n){let i;switch(t.ttnov()){case a:case r:i=t.value.metatable;break;default:i=e.l_G.mt[t.ttnov()]}return i?h.luaH_getstr(i,e.l_G.tmname[n]):l.luaO_nilobject};e.exports.fasttm=function(e,t,n){return null===t||t.flags&1<<n?null:A(t,n,e.l_G.tmname[n])},e.exports.TMS=g,e.exports.luaT_callTM=w,e.exports.luaT_callbinTM=v,e.exports.luaT_trybinTM=function(e,t,n,a,r){if(!v(e,t,n,a,r))switch(r){case g.TM_CONCAT:return f.luaG_concaterror(e,t,n);case g.TM_BAND:case g.TM_BOR:case g.TM_BXOR:case g.TM_SHL:case g.TM_SHR:case g.TM_BNOT:{let a=m.tonumber(t),r=m.tonumber(n);return!1!==a&&!1!==r?f.luaG_tointerror(e,t,n):f.luaG_opinterror(e,t,n,i("perform bitwise operation on",!0))}default:return f.luaG_opinterror(e,t,n,i("perform arithmetic on",!0))}},e.exports.luaT_callorderTM=function(e,t,n,a){let r=new l.TValue;return v(e,t,n,r,a)?!r.l_isfalse():null},e.exports.luaT_gettm=A,e.exports.luaT_gettmbyobj=y,e.exports.luaT_init=function(e){e.l_G.tmname[g.TM_INDEX]=new d(e,i("__index",!0)),e.l_G.tmname[g.TM_NEWINDEX]=new d(e,i("__newindex",!0)),e.l_G.tmname[g.TM_GC]=new d(e,i("__gc",!0)),e.l_G.tmname[g.TM_MODE]=new d(e,i("__mode",!0)),e.l_G.tmname[g.TM_LEN]=new d(e,i("__len",!0)),e.l_G.tmname[g.TM_EQ]=new d(e,i("__eq",!0)),e.l_G.tmname[g.TM_ADD]=new d(e,i("__add",!0)),e.l_G.tmname[g.TM_SUB]=new d(e,i("__sub",!0)),e.l_G.tmname[g.TM_MUL]=new d(e,i("__mul",!0)),e.l_G.tmname[g.TM_MOD]=new d(e,i("__mod",!0)),e.l_G.tmname[g.TM_POW]=new d(e,i("__pow",!0)),e.l_G.tmname[g.TM_DIV]=new d(e,i("__div",!0)),e.l_G.tmname[g.TM_IDIV]=new d(e,i("__idiv",!0)),e.l_G.tmname[g.TM_BAND]=new d(e,i("__band",!0)),e.l_G.tmname[g.TM_BOR]=new d(e,i("__bor",!0)),e.l_G.tmname[g.TM_BXOR]=new d(e,i("__bxor",!0)),e.l_G.tmname[g.TM_SHL]=new d(e,i("__shl",!0)),e.l_G.tmname[g.TM_SHR]=new d(e,i("__shr",!0)),e.l_G.tmname[g.TM_UNM]=new d(e,i("__unm",!0)),e.l_G.tmname[g.TM_BNOT]=new d(e,i("__bnot",!0)),e.l_G.tmname[g.TM_LT]=new d(e,i("__lt",!0)),e.l_G.tmname[g.TM_LE]=new d(e,i("__le",!0)),e.l_G.tmname[g.TM_CONCAT]=new d(e,i("__concat",!0)),e.l_G.tmname[g.TM_CALL]=new d(e,i("__call",!0))},e.exports.luaT_objtypename=function(e,t){let n;if(t.ttistable()&&null!==(n=t.value.metatable)||t.ttisfulluserdata()&&null!==(n=t.value.metatable)){let t=h.luaH_getstr(n,c(e,b));if(t.ttisstring())return t.svalue()}return _(t.ttnov())},e.exports.ttypename=_},936:(e,t,n)=>{"use strict";const a=n(696),r=n(660),i=n(399),s=n(179),l=n(809);e.exports.LUA_AUTHORS=a.LUA_AUTHORS,e.exports.LUA_COPYRIGHT=a.LUA_COPYRIGHT,e.exports.LUA_ERRERR=a.thread_status.LUA_ERRERR,e.exports.LUA_ERRGCMM=a.thread_status.LUA_ERRGCMM,e.exports.LUA_ERRMEM=a.thread_status.LUA_ERRMEM,e.exports.LUA_ERRRUN=a.thread_status.LUA_ERRRUN,e.exports.LUA_ERRSYNTAX=a.thread_status.LUA_ERRSYNTAX,e.exports.LUA_HOOKCALL=a.LUA_HOOKCALL,e.exports.LUA_HOOKCOUNT=a.LUA_HOOKCOUNT,e.exports.LUA_HOOKLINE=a.LUA_HOOKLINE,e.exports.LUA_HOOKRET=a.LUA_HOOKRET,e.exports.LUA_HOOKTAILCALL=a.LUA_HOOKTAILCALL,e.exports.LUA_MASKCALL=a.LUA_MASKCALL,e.exports.LUA_MASKCOUNT=a.LUA_MASKCOUNT,e.exports.LUA_MASKLINE=a.LUA_MASKLINE,e.exports.LUA_MASKRET=a.LUA_MASKRET,e.exports.LUA_MINSTACK=a.LUA_MINSTACK,e.exports.LUA_MULTRET=a.LUA_MULTRET,e.exports.LUA_NUMTAGS=a.constant_types.LUA_NUMTAGS,e.exports.LUA_OK=a.thread_status.LUA_OK,e.exports.LUA_OPADD=a.LUA_OPADD,e.exports.LUA_OPBAND=a.LUA_OPBAND,e.exports.LUA_OPBNOT=a.LUA_OPBNOT,e.exports.LUA_OPBOR=a.LUA_OPBOR,e.exports.LUA_OPBXOR=a.LUA_OPBXOR,e.exports.LUA_OPDIV=a.LUA_OPDIV,e.exports.LUA_OPEQ=a.LUA_OPEQ,e.exports.LUA_OPIDIV=a.LUA_OPIDIV,e.exports.LUA_OPLE=a.LUA_OPLE,e.exports.LUA_OPLT=a.LUA_OPLT,e.exports.LUA_OPMOD=a.LUA_OPMOD,e.exports.LUA_OPMUL=a.LUA_OPMUL,e.exports.LUA_OPPOW=a.LUA_OPPOW,e.exports.LUA_OPSHL=a.LUA_OPSHL,e.exports.LUA_OPSHR=a.LUA_OPSHR,e.exports.LUA_OPSUB=a.LUA_OPSUB,e.exports.LUA_OPUNM=a.LUA_OPUNM,e.exports.LUA_REGISTRYINDEX=a.LUA_REGISTRYINDEX,e.exports.LUA_RELEASE=a.LUA_RELEASE,e.exports.LUA_RIDX_GLOBALS=a.LUA_RIDX_GLOBALS,e.exports.LUA_RIDX_LAST=a.LUA_RIDX_LAST,e.exports.LUA_RIDX_MAINTHREAD=a.LUA_RIDX_MAINTHREAD,e.exports.LUA_SIGNATURE=a.LUA_SIGNATURE,e.exports.LUA_TNONE=a.constant_types.LUA_TNONE,e.exports.LUA_TNIL=a.constant_types.LUA_TNIL,e.exports.LUA_TBOOLEAN=a.constant_types.LUA_TBOOLEAN,e.exports.LUA_TLIGHTUSERDATA=a.constant_types.LUA_TLIGHTUSERDATA,e.exports.LUA_TNUMBER=a.constant_types.LUA_TNUMBER,e.exports.LUA_TSTRING=a.constant_types.LUA_TSTRING,e.exports.LUA_TTABLE=a.constant_types.LUA_TTABLE,e.exports.LUA_TFUNCTION=a.constant_types.LUA_TFUNCTION,e.exports.LUA_TUSERDATA=a.constant_types.LUA_TUSERDATA,e.exports.LUA_TTHREAD=a.constant_types.LUA_TTHREAD,e.exports.LUA_VERSION=a.LUA_VERSION,e.exports.LUA_VERSION_MAJOR=a.LUA_VERSION_MAJOR,e.exports.LUA_VERSION_MINOR=a.LUA_VERSION_MINOR,e.exports.LUA_VERSION_NUM=a.LUA_VERSION_NUM,e.exports.LUA_VERSION_RELEASE=a.LUA_VERSION_RELEASE,e.exports.LUA_YIELD=a.thread_status.LUA_YIELD,e.exports.lua_Debug=a.lua_Debug,e.exports.lua_upvalueindex=a.lua_upvalueindex,e.exports.lua_absindex=r.lua_absindex,e.exports.lua_arith=r.lua_arith,e.exports.lua_atpanic=r.lua_atpanic,e.exports.lua_atnativeerror=r.lua_atnativeerror,e.exports.lua_call=r.lua_call,e.exports.lua_callk=r.lua_callk,e.exports.lua_checkstack=r.lua_checkstack,e.exports.lua_close=l.lua_close,e.exports.lua_compare=r.lua_compare,e.exports.lua_concat=r.lua_concat,e.exports.lua_copy=r.lua_copy,e.exports.lua_createtable=r.lua_createtable,e.exports.lua_dump=r.lua_dump,e.exports.lua_error=r.lua_error,e.exports.lua_gc=r.lua_gc,e.exports.lua_getallocf=r.lua_getallocf,e.exports.lua_getextraspace=r.lua_getextraspace,e.exports.lua_getfield=r.lua_getfield,e.exports.lua_getglobal=r.lua_getglobal,e.exports.lua_gethook=i.lua_gethook,e.exports.lua_gethookcount=i.lua_gethookcount,e.exports.lua_gethookmask=i.lua_gethookmask,e.exports.lua_geti=r.lua_geti,e.exports.lua_getinfo=i.lua_getinfo,e.exports.lua_getlocal=i.lua_getlocal,e.exports.lua_getmetatable=r.lua_getmetatable,e.exports.lua_getstack=i.lua_getstack,e.exports.lua_gettable=r.lua_gettable,e.exports.lua_gettop=r.lua_gettop,e.exports.lua_getupvalue=r.lua_getupvalue,e.exports.lua_getuservalue=r.lua_getuservalue,e.exports.lua_insert=r.lua_insert,e.exports.lua_isboolean=r.lua_isboolean,e.exports.lua_iscfunction=r.lua_iscfunction,e.exports.lua_isfunction=r.lua_isfunction,e.exports.lua_isinteger=r.lua_isinteger,e.exports.lua_islightuserdata=r.lua_islightuserdata,e.exports.lua_isnil=r.lua_isnil,e.exports.lua_isnone=r.lua_isnone,e.exports.lua_isnoneornil=r.lua_isnoneornil,e.exports.lua_isnumber=r.lua_isnumber,e.exports.lua_isproxy=r.lua_isproxy,e.exports.lua_isstring=r.lua_isstring,e.exports.lua_istable=r.lua_istable,e.exports.lua_isthread=r.lua_isthread,e.exports.lua_isuserdata=r.lua_isuserdata,e.exports.lua_isyieldable=s.lua_isyieldable,e.exports.lua_len=r.lua_len,e.exports.lua_load=r.lua_load,e.exports.lua_newstate=l.lua_newstate,e.exports.lua_newtable=r.lua_newtable,e.exports.lua_newthread=l.lua_newthread,e.exports.lua_newuserdata=r.lua_newuserdata,e.exports.lua_next=r.lua_next,e.exports.lua_pcall=r.lua_pcall,e.exports.lua_pcallk=r.lua_pcallk,e.exports.lua_pop=r.lua_pop,e.exports.lua_pushboolean=r.lua_pushboolean,e.exports.lua_pushcclosure=r.lua_pushcclosure,e.exports.lua_pushcfunction=r.lua_pushcfunction,e.exports.lua_pushfstring=r.lua_pushfstring,e.exports.lua_pushglobaltable=r.lua_pushglobaltable,e.exports.lua_pushinteger=r.lua_pushinteger,e.exports.lua_pushjsclosure=r.lua_pushjsclosure,e.exports.lua_pushjsfunction=r.lua_pushjsfunction,e.exports.lua_pushlightuserdata=r.lua_pushlightuserdata,e.exports.lua_pushliteral=r.lua_pushliteral,e.exports.lua_pushlstring=r.lua_pushlstring,e.exports.lua_pushnil=r.lua_pushnil,e.exports.lua_pushnumber=r.lua_pushnumber,e.exports.lua_pushstring=r.lua_pushstring,e.exports.lua_pushthread=r.lua_pushthread,e.exports.lua_pushvalue=r.lua_pushvalue,e.exports.lua_pushvfstring=r.lua_pushvfstring,e.exports.lua_rawequal=r.lua_rawequal,e.exports.lua_rawget=r.lua_rawget,e.exports.lua_rawgeti=r.lua_rawgeti,e.exports.lua_rawgetp=r.lua_rawgetp,e.exports.lua_rawlen=r.lua_rawlen,e.exports.lua_rawset=r.lua_rawset,e.exports.lua_rawseti=r.lua_rawseti,e.exports.lua_rawsetp=r.lua_rawsetp,e.exports.lua_register=r.lua_register,e.exports.lua_remove=r.lua_remove,e.exports.lua_replace=r.lua_replace,e.exports.lua_resume=s.lua_resume,e.exports.lua_rotate=r.lua_rotate,e.exports.lua_setallof=s.lua_setallof,e.exports.lua_setfield=r.lua_setfield,e.exports.lua_setglobal=r.lua_setglobal,e.exports.lua_sethook=i.lua_sethook,e.exports.lua_seti=r.lua_seti,e.exports.lua_setlocal=i.lua_setlocal,e.exports.lua_setmetatable=r.lua_setmetatable,e.exports.lua_settable=r.lua_settable,e.exports.lua_settop=r.lua_settop,e.exports.lua_setupvalue=r.lua_setupvalue,e.exports.lua_setuservalue=r.lua_setuservalue,e.exports.lua_status=r.lua_status,e.exports.lua_stringtonumber=r.lua_stringtonumber,e.exports.lua_toboolean=r.lua_toboolean,e.exports.lua_todataview=r.lua_todataview,e.exports.lua_tointeger=r.lua_tointeger,e.exports.lua_tointegerx=r.lua_tointegerx,e.exports.lua_tojsstring=r.lua_tojsstring,e.exports.lua_tolstring=r.lua_tolstring,e.exports.lua_tonumber=r.lua_tonumber,e.exports.lua_tonumberx=r.lua_tonumberx,e.exports.lua_topointer=r.lua_topointer,e.exports.lua_toproxy=r.lua_toproxy,e.exports.lua_tostring=r.lua_tostring,e.exports.lua_tothread=r.lua_tothread,e.exports.lua_touserdata=r.lua_touserdata,e.exports.lua_type=r.lua_type,e.exports.lua_typename=r.lua_typename,e.exports.lua_upvalueid=r.lua_upvalueid,e.exports.lua_upvaluejoin=r.lua_upvaluejoin,e.exports.lua_version=r.lua_version,e.exports.lua_xmove=r.lua_xmove,e.exports.lua_yield=s.lua_yield,e.exports.lua_yieldk=s.lua_yieldk,e.exports.lua_tocfunction=r.lua_tocfunction},940:(e,t,n)=>{"use strict";const{LUA_SIGNATURE:a,LUA_VERSION_MAJOR:r,LUA_VERSION_MINOR:i,constant_types:{LUA_TBOOLEAN:s,LUA_TLNGSTR:l,LUA_TNIL:o,LUA_TNUMFLT:u,LUA_TNUMINT:c,LUA_TSHRSTR:d},luastring_of:h}=n(696),f=h(25,147,13,10,26,10),m=16*Number(r)+Number(i);class p{constructor(){this.L=null,this.write=null,this.data=null,this.strip=NaN,this.status=NaN}}const _=function(e,t,n){0===n.status&&t>0&&(n.status=n.writer(n.L,e,t,n.data))},g=function(e,t){_(h(e),1,t)},b=function(e,t){let n=new ArrayBuffer(4);new DataView(n).setInt32(0,e,!0);let a=new Uint8Array(n);_(a,4,t)},w=function(e,t){let n=new ArrayBuffer(4);new DataView(n).setInt32(0,e,!0);let a=new Uint8Array(n);_(a,4,t)},v=function(e,t){let n=new ArrayBuffer(8);new DataView(n).setFloat64(0,e,!0);let a=new Uint8Array(n);_(a,8,t)},A=function(e,t){if(null===e)g(0,t);else{let n=e.tsslen()+1,a=e.getstr();n<255?g(n,t):(g(255,t),w(n,t)),_(a,n-1,t)}},y=function(e,t,n){n.strip||e.source===t?A(null,n):A(e.source,n),b(e.linedefined,n),b(e.lastlinedefined,n),g(e.numparams,n),g(e.is_vararg?1:0,n),g(e.maxstacksize,n),function(e,t){let n=e.code.map(e=>e.code);b(n.length,t);for(let e=0;e<n.length;e++)b(n[e],t)}(e,n),function(e,t){let n=e.k.length;b(n,t);for(let a=0;a<n;a++){let n=e.k[a];switch(g(n.ttype(),t),n.ttype()){case o:break;case s:g(n.value?1:0,t);break;case u:v(n.value,t);break;case c:w(n.value,t);break;case d:case l:A(n.tsvalue(),t)}}}(e,n),function(e,t){let n=e.upvalues.length;b(n,t);for(let a=0;a<n;a++)g(e.upvalues[a].instack?1:0,t),g(e.upvalues[a].idx,t)}(e,n),function(e,t){let n=e.p.length;b(n,t);for(let a=0;a<n;a++)y(e.p[a],e.source,t)}(e,n),function(e,t){let n=t.strip?0:e.lineinfo.length;b(n,t);for(let a=0;a<n;a++)b(e.lineinfo[a],t);n=t.strip?0:e.locvars.length,b(n,t);for(let a=0;a<n;a++)A(e.locvars[a].varname,t),b(e.locvars[a].startpc,t),b(e.locvars[a].endpc,t);n=t.strip?0:e.upvalues.length,b(n,t);for(let a=0;a<n;a++)A(e.upvalues[a].name,t)}(e,n)};e.exports.luaU_dump=function(e,t,n,r,i){let s=new p;return s.L=e,s.writer=n,s.data=r,s.strip=i,s.status=0,function(e){_(a,a.length,e),g(m,e),g(0,e),_(f,f.length,e),g(4,e),g(4,e),g(4,e),g(4,e),g(8,e),w(22136,e),v(370.5,e)}(s),g(t.upvalues.length,s),y(t,null,s),s.status}}},t={};function n(a){var r=t[a];if(void 0!==r)return r.exports;var i=t[a]={exports:{}};return e[a](i,i.exports,n),i.exports}n.d=(e,t)=>{for(var a in t)n.o(t,a)&&!n.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var a={};(()=>{"use strict";n.r(a),n.d(a,{common:()=>Rl,parsers:()=>ep,utils:()=>oj,version:()=>w,viewer:()=>Vb});var e={};n.r(e),n.d(e,{ARRAY_TYPE:()=>A,EPSILON:()=>v,RANDOM:()=>y,equals:()=>E,setMatrixArrayType:()=>S,toRadian:()=>x});var t={};n.r(t),n.d(t,{LDU:()=>z,add:()=>j,adjoint:()=>P,clone:()=>I,copy:()=>U,create:()=>L,determinant:()=>k,equals:()=>J,exactEquals:()=>$,frob:()=>H,fromRotation:()=>G,fromScaling:()=>V,fromValues:()=>C,identity:()=>R,invert:()=>N,mul:()=>Y,multiply:()=>O,multiplyScalar:()=>W,multiplyScalarAndAdd:()=>q,rotate:()=>D,scale:()=>F,set:()=>M,str:()=>K,sub:()=>Z,subtract:()=>X,transpose:()=>B});var r={};n.r(r),n.d(r,{add:()=>_e,clone:()=>ee,copy:()=>te,create:()=>Q,determinant:()=>se,equals:()=>Ae,exactEquals:()=>ve,frob:()=>pe,fromRotation:()=>de,fromScaling:()=>he,fromTranslation:()=>fe,fromValues:()=>ae,identity:()=>ne,invert:()=>ie,mul:()=>ye,multiply:()=>le,multiplyScalar:()=>be,multiplyScalarAndAdd:()=>we,rotate:()=>oe,scale:()=>ue,set:()=>re,str:()=>me,sub:()=>Se,subtract:()=>ge,translate:()=>ce});var i={};n.r(i),n.d(i,{add:()=>Je,adjoint:()=>Be,clone:()=>Ee,copy:()=>Le,create:()=>Te,determinant:()=>Ne,equals:()=>Qe,exactEquals:()=>Ze,frob:()=>$e,fromMat2d:()=>Ke,fromMat4:()=>xe,fromQuat:()=>He,fromRotation:()=>Ge,fromScaling:()=>Ve,fromTranslation:()=>Fe,fromValues:()=>Ie,identity:()=>Re,invert:()=>Me,mul:()=>et,multiply:()=>Pe,multiplyScalar:()=>qe,multiplyScalarAndAdd:()=>Ye,normalFromMat4:()=>ze,projection:()=>je,rotate:()=>Oe,scale:()=>De,set:()=>Ue,str:()=>Xe,sub:()=>tt,subtract:()=>We,translate:()=>ke,transpose:()=>Ce});var s={};n.r(s),n.d(s,{add:()=>Vt,adjoint:()=>ct,clone:()=>at,copy:()=>rt,create:()=>nt,determinant:()=>dt,equals:()=>Xt,exactEquals:()=>jt,frob:()=>Gt,fromQuat:()=>Mt,fromQuat2:()=>Et,fromRotation:()=>At,fromRotationTranslation:()=>xt,fromRotationTranslationScale:()=>Rt,fromRotationTranslationScaleOrigin:()=>Ct,fromScaling:()=>vt,fromTranslation:()=>wt,fromValues:()=>it,fromXRotation:()=>yt,fromYRotation:()=>St,fromZRotation:()=>Tt,frustum:()=>Bt,getRotation:()=>Ut,getScaling:()=>It,getTranslation:()=>Lt,identity:()=>lt,invert:()=>ut,lookAt:()=>Ot,mul:()=>$t,multiply:()=>ht,multiplyScalar:()=>Ht,multiplyScalarAndAdd:()=>zt,ortho:()=>kt,perspective:()=>Nt,perspectiveFromFieldOfView:()=>Pt,rotate:()=>pt,rotateX:()=>_t,rotateY:()=>gt,rotateZ:()=>bt,scale:()=>mt,set:()=>st,str:()=>Ft,sub:()=>Jt,subtract:()=>Kt,targetTo:()=>Dt,translate:()=>ft,transpose:()=>ot});var l={};n.r(l),n.d(l,{add:()=>tn,angle:()=>Cn,bezier:()=>Sn,ceil:()=>sn,clone:()=>qt,copy:()=>Qt,create:()=>Wt,cross:()=>vn,dist:()=>Gn,distance:()=>fn,div:()=>Fn,divide:()=>rn,dot:()=>wn,equals:()=>Pn,exactEquals:()=>Nn,floor:()=>ln,forEach:()=>zn,fromValues:()=>Zt,hermite:()=>yn,inverse:()=>gn,len:()=>Kn,length:()=>Yt,lerp:()=>An,max:()=>un,min:()=>on,mul:()=>Dn,multiply:()=>an,negate:()=>_n,normalize:()=>bn,random:()=>Tn,rotateX:()=>In,rotateY:()=>Un,rotateZ:()=>Rn,round:()=>cn,scale:()=>dn,scaleAndAdd:()=>hn,set:()=>en,sqrDist:()=>Vn,sqrLen:()=>Hn,squaredDistance:()=>mn,squaredLength:()=>pn,str:()=>Bn,sub:()=>On,subtract:()=>nn,transformMat3:()=>En,transformMat4:()=>xn,transformQuat:()=>Ln,zero:()=>Mn});var o={};n.r(o),n.d(o,{add:()=>qn,ceil:()=>ea,clone:()=>Xn,copy:()=>Jn,create:()=>jn,cross:()=>pa,dist:()=>La,distance:()=>la,div:()=>Ea,divide:()=>Qn,dot:()=>ma,equals:()=>Sa,exactEquals:()=>ya,floor:()=>ta,forEach:()=>Ca,fromValues:()=>$n,inverse:()=>ha,len:()=>Ua,length:()=>ua,lerp:()=>_a,max:()=>aa,min:()=>na,mul:()=>xa,multiply:()=>Zn,negate:()=>da,normalize:()=>fa,random:()=>ga,round:()=>ra,scale:()=>ia,scaleAndAdd:()=>sa,set:()=>Wn,sqrDist:()=>Ia,sqrLen:()=>Ra,squaredDistance:()=>oa,squaredLength:()=>ca,str:()=>Aa,sub:()=>Ta,subtract:()=>Yn,transformMat4:()=>ba,transformQuat:()=>wa,zero:()=>va});var u={};n.r(u),n.d(u,{add:()=>or,calculateW:()=>Va,clone:()=>rr,conjugate:()=>Ja,copy:()=>sr,create:()=>Ma,dot:()=>dr,equals:()=>wr,exactEquals:()=>br,exp:()=>Ka,fromEuler:()=>qa,fromMat3:()=>Wa,fromValues:()=>ir,getAngle:()=>ka,getAxisAngle:()=>Pa,identity:()=>Ba,invert:()=>$a,len:()=>mr,length:()=>fr,lerp:()=>hr,ln:()=>Ha,mul:()=>ur,multiply:()=>Oa,normalize:()=>gr,pow:()=>za,random:()=>Xa,rotateX:()=>Da,rotateY:()=>Fa,rotateZ:()=>Ga,rotationTo:()=>vr,scale:()=>cr,set:()=>lr,setAxes:()=>yr,setAxisAngle:()=>Na,slerp:()=>ja,sqlerp:()=>Ar,sqrLen:()=>_r,squaredLength:()=>pr,str:()=>Ya});var c={};n.r(c),n.d(c,{add:()=>Xr,clone:()=>Tr,conjugate:()=>Qr,copy:()=>Cr,create:()=>Sr,dot:()=>qr,equals:()=>li,exactEquals:()=>si,fromMat4:()=>Rr,fromRotation:()=>Ur,fromRotationTranslation:()=>Lr,fromRotationTranslationValues:()=>Er,fromTranslation:()=>Ir,fromValues:()=>xr,getDual:()=>Pr,getReal:()=>Nr,getTranslation:()=>Dr,identity:()=>Mr,invert:()=>Zr,len:()=>ti,length:()=>ei,lerp:()=>Yr,mul:()=>Jr,multiply:()=>$r,normalize:()=>ri,rotateAroundAxis:()=>jr,rotateByQuatAppend:()=>Hr,rotateByQuatPrepend:()=>zr,rotateX:()=>Gr,rotateY:()=>Vr,rotateZ:()=>Kr,scale:()=>Wr,set:()=>Br,setDual:()=>Or,setReal:()=>kr,sqrLen:()=>ai,squaredLength:()=>ni,str:()=>ii,translate:()=>Fr});var d={};n.r(d),n.d(d,{add:()=>fi,angle:()=>Gi,ceil:()=>gi,clone:()=>ui,copy:()=>di,create:()=>oi,cross:()=>Mi,dist:()=>Wi,distance:()=>Ti,div:()=>Ji,divide:()=>_i,dot:()=>Ci,equals:()=>zi,exactEquals:()=>Hi,floor:()=>bi,forEach:()=>Zi,fromValues:()=>ci,inverse:()=>Ui,len:()=>ji,length:()=>Ei,lerp:()=>Bi,max:()=>vi,min:()=>wi,mul:()=>$i,multiply:()=>pi,negate:()=>Ii,normalize:()=>Ri,random:()=>Ni,rotate:()=>Fi,round:()=>Ai,scale:()=>yi,scaleAndAdd:()=>Si,set:()=>hi,sqrDist:()=>qi,sqrLen:()=>Yi,squaredDistance:()=>xi,squaredLength:()=>Li,str:()=>Ki,sub:()=>Xi,subtract:()=>mi,transformMat2:()=>Pi,transformMat2d:()=>ki,transformMat3:()=>Oi,transformMat4:()=>Di,zero:()=>Vi});var h={};n.r(h),n.d(h,{glMatrix:()=>e,mat2:()=>t,mat2d:()=>r,mat3:()=>i,mat4:()=>s,quat:()=>u,quat2:()=>c,vec2:()=>d,vec3:()=>l,vec4:()=>o});var f={};n.r(f),n.d(f,{QUAT_DEFAULT:()=>is,QUAT_ZERO:()=>rs,VEC3_ONE:()=>as,VEC3_UNIT_X:()=>Qi,VEC3_UNIT_Y:()=>es,VEC3_UNIT_Z:()=>ts,VEC3_ZERO:()=>ns,distanceToPlane:()=>os,distanceToPlane2:()=>us,distanceToPlane3:()=>cs,normalizePlane:()=>ms,planeLength:()=>fs,quatLookAt:()=>ws,testCell:()=>hs,testSphere:()=>ds,unpackPlanes:()=>ps,unproject:()=>ls});var m={};n.r(m),n.d(m,{bezier:()=>Es,clamp:()=>Ss,copysign:()=>Ls,degToRad:()=>vs,hermite:()=>xs,isPowerOfTwo:()=>Us,lerp:()=>Ts,powerOfTwo:()=>Is,radToDeg:()=>As,randomInRange:()=>ys});var p={};n.r(p),n.d(p,{blobToImage:()=>Ns,blobToImageData:()=>Ps,imageDataToBlob:()=>ks,imageDataToDataUrl:()=>Os,imageDataToImage:()=>Ds,imageToImageData:()=>Fs,resizeImageData:()=>Gs});var _={};n.r(_),n.d(_,{basename:()=>Sl,extname:()=>Tl,filename:()=>xl});var g={};n.r(g),n.d(g,{JassAgent:()=>Yb,JassAiDifficulty:()=>ww,JassAllianceType:()=>cw,JassAttackType:()=>Zw,JassBlendMode:()=>jw,JassCameraField:()=>Fw,JassCameraSetup:()=>Gw,JassDamageType:()=>Qw,JassDialogEvent:()=>Lw,JassEffectType:()=>$w,JassEventId:()=>vw,JassFGameState:()=>mw,JassFogState:()=>Ww,JassForce:()=>tw,JassGameDifficulty:()=>Rw,JassGameEvent:()=>Aw,JassGameSpeed:()=>Uw,JassGameState:()=>hw,JassGameType:()=>Cw,JassGroup:()=>nw,JassHandle:()=>qb,JassHashtable:()=>av,JassIGameState:()=>fw,JassItemType:()=>Yw,JassLimitOp:()=>xw,JassLocation:()=>iw,JassMapControl:()=>kw,JassMapDensity:()=>Pw,JassMapFlag:()=>Mw,JassMapSetting:()=>Nw,JassMapVisibility:()=>Bw,JassPathingType:()=>nv,JassPlacement:()=>Kw,JassPlayer:()=>Zb,JassPlayerColor:()=>Vw,JassPlayerEvent:()=>yw,JassPlayerGameResult:()=>gw,JassPlayerScore:()=>_w,JassPlayerSlotState:()=>Ow,JassPlayerState:()=>pw,JassPlayerUnitEvent:()=>Sw,JassRace:()=>uw,JassRacePreference:()=>dw,JassRarityControl:()=>zw,JassRect:()=>lw,JassRegion:()=>sw,JassSoundType:()=>tv,JassStartLocPrio:()=>Hw,JassTexMapFlags:()=>Xw,JassTimer:()=>rw,JassTrigger:()=>aw,JassUnit:()=>ew,JassUnitEvent:()=>Tw,JassUnitState:()=>bw,JassUnitType:()=>Iw,JassVersion:()=>qw,JassVolumeGroup:()=>Dw,JassWeaponType:()=>ev,JassWeatherEffect:()=>Jw,JassWidget:()=>Qb,JassWidgetEvent:()=>Ew});var b={};n.r(b),n.d(b,{createCube:()=>pz,createCylinder:()=>wz,createFrustum:()=>Az,createRectangle:()=>fz,createSphere:()=>gz,createUnitCube:()=>_z,createUnitCylinder:()=>vz,createUnitRectangle:()=>mz,createUnitSphere:()=>bz});const w="5.12.0";var v=1e-6,A="undefined"!=typeof Float32Array?Float32Array:Array,y=Math.random;function S(e){A=e}var T=Math.PI/180;function x(e){return e*T}function E(e,t){return Math.abs(e-t)<=v*Math.max(1,Math.abs(e),Math.abs(t))}function L(){var e=new A(4);return A!=Float32Array&&(e[1]=0,e[2]=0),e[0]=1,e[3]=1,e}function I(e){var t=new A(4);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function U(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}function R(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e}function C(e,t,n,a){var r=new A(4);return r[0]=e,r[1]=t,r[2]=n,r[3]=a,r}function M(e,t,n,a,r){return e[0]=t,e[1]=n,e[2]=a,e[3]=r,e}function B(e,t){if(e===t){var n=t[1];e[1]=t[2],e[2]=n}else e[0]=t[0],e[1]=t[2],e[2]=t[1],e[3]=t[3];return e}function N(e,t){var n=t[0],a=t[1],r=t[2],i=t[3],s=n*i-r*a;return s?(s=1/s,e[0]=i*s,e[1]=-a*s,e[2]=-r*s,e[3]=n*s,e):null}function P(e,t){var n=t[0];return e[0]=t[3],e[1]=-t[1],e[2]=-t[2],e[3]=n,e}function k(e){return e[0]*e[3]-e[2]*e[1]}function O(e,t,n){var a=t[0],r=t[1],i=t[2],s=t[3],l=n[0],o=n[1],u=n[2],c=n[3];return e[0]=a*l+i*o,e[1]=r*l+s*o,e[2]=a*u+i*c,e[3]=r*u+s*c,e}function D(e,t,n){var a=t[0],r=t[1],i=t[2],s=t[3],l=Math.sin(n),o=Math.cos(n);return e[0]=a*o+i*l,e[1]=r*o+s*l,e[2]=a*-l+i*o,e[3]=r*-l+s*o,e}function F(e,t,n){var a=t[0],r=t[1],i=t[2],s=t[3],l=n[0],o=n[1];return e[0]=a*l,e[1]=r*l,e[2]=i*o,e[3]=s*o,e}function G(e,t){var n=Math.sin(t),a=Math.cos(t);return e[0]=a,e[1]=n,e[2]=-n,e[3]=a,e}function V(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=t[1],e}function K(e){return"mat2("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+")"}function H(e){return Math.hypot(e[0],e[1],e[2],e[3])}function z(e,t,n,a){return e[2]=a[2]/a[0],n[0]=a[0],n[1]=a[1],n[3]=a[3]-e[2]*n[1],[e,t,n]}function j(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e[3]=t[3]+n[3],e}function X(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e[3]=t[3]-n[3],e}function $(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]}function J(e,t){var n=e[0],a=e[1],r=e[2],i=e[3],s=t[0],l=t[1],o=t[2],u=t[3];return Math.abs(n-s)<=v*Math.max(1,Math.abs(n),Math.abs(s))&&Math.abs(a-l)<=v*Math.max(1,Math.abs(a),Math.abs(l))&&Math.abs(r-o)<=v*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(i-u)<=v*Math.max(1,Math.abs(i),Math.abs(u))}function W(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e}function q(e,t,n,a){return e[0]=t[0]+n[0]*a,e[1]=t[1]+n[1]*a,e[2]=t[2]+n[2]*a,e[3]=t[3]+n[3]*a,e}Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)});var Y=O,Z=X;function Q(){var e=new A(6);return A!=Float32Array&&(e[1]=0,e[2]=0,e[4]=0,e[5]=0),e[0]=1,e[3]=1,e}function ee(e){var t=new A(6);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t}function te(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e}function ne(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e[4]=0,e[5]=0,e}function ae(e,t,n,a,r,i){var s=new A(6);return s[0]=e,s[1]=t,s[2]=n,s[3]=a,s[4]=r,s[5]=i,s}function re(e,t,n,a,r,i,s){return e[0]=t,e[1]=n,e[2]=a,e[3]=r,e[4]=i,e[5]=s,e}function ie(e,t){var n=t[0],a=t[1],r=t[2],i=t[3],s=t[4],l=t[5],o=n*i-a*r;return o?(o=1/o,e[0]=i*o,e[1]=-a*o,e[2]=-r*o,e[3]=n*o,e[4]=(r*l-i*s)*o,e[5]=(a*s-n*l)*o,e):null}function se(e){return e[0]*e[3]-e[1]*e[2]}function le(e,t,n){var a=t[0],r=t[1],i=t[2],s=t[3],l=t[4],o=t[5],u=n[0],c=n[1],d=n[2],h=n[3],f=n[4],m=n[5];return e[0]=a*u+i*c,e[1]=r*u+s*c,e[2]=a*d+i*h,e[3]=r*d+s*h,e[4]=a*f+i*m+l,e[5]=r*f+s*m+o,e}function oe(e,t,n){var a=t[0],r=t[1],i=t[2],s=t[3],l=t[4],o=t[5],u=Math.sin(n),c=Math.cos(n);return e[0]=a*c+i*u,e[1]=r*c+s*u,e[2]=a*-u+i*c,e[3]=r*-u+s*c,e[4]=l,e[5]=o,e}function ue(e,t,n){var a=t[0],r=t[1],i=t[2],s=t[3],l=t[4],o=t[5],u=n[0],c=n[1];return e[0]=a*u,e[1]=r*u,e[2]=i*c,e[3]=s*c,e[4]=l,e[5]=o,e}function ce(e,t,n){var a=t[0],r=t[1],i=t[2],s=t[3],l=t[4],o=t[5],u=n[0],c=n[1];return e[0]=a,e[1]=r,e[2]=i,e[3]=s,e[4]=a*u+i*c+l,e[5]=r*u+s*c+o,e}function de(e,t){var n=Math.sin(t),a=Math.cos(t);return e[0]=a,e[1]=n,e[2]=-n,e[3]=a,e[4]=0,e[5]=0,e}function he(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=t[1],e[4]=0,e[5]=0,e}function fe(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e[4]=t[0],e[5]=t[1],e}function me(e){return"mat2d("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+")"}function pe(e){return Math.hypot(e[0],e[1],e[2],e[3],e[4],e[5],1)}function _e(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e[3]=t[3]+n[3],e[4]=t[4]+n[4],e[5]=t[5]+n[5],e}function ge(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e[3]=t[3]-n[3],e[4]=t[4]-n[4],e[5]=t[5]-n[5],e}function be(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*n,e[5]=t[5]*n,e}function we(e,t,n,a){return e[0]=t[0]+n[0]*a,e[1]=t[1]+n[1]*a,e[2]=t[2]+n[2]*a,e[3]=t[3]+n[3]*a,e[4]=t[4]+n[4]*a,e[5]=t[5]+n[5]*a,e}function ve(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]}function Ae(e,t){var n=e[0],a=e[1],r=e[2],i=e[3],s=e[4],l=e[5],o=t[0],u=t[1],c=t[2],d=t[3],h=t[4],f=t[5];return Math.abs(n-o)<=v*Math.max(1,Math.abs(n),Math.abs(o))&&Math.abs(a-u)<=v*Math.max(1,Math.abs(a),Math.abs(u))&&Math.abs(r-c)<=v*Math.max(1,Math.abs(r),Math.abs(c))&&Math.abs(i-d)<=v*Math.max(1,Math.abs(i),Math.abs(d))&&Math.abs(s-h)<=v*Math.max(1,Math.abs(s),Math.abs(h))&&Math.abs(l-f)<=v*Math.max(1,Math.abs(l),Math.abs(f))}var ye=le,Se=ge;function Te(){var e=new A(9);return A!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[5]=0,e[6]=0,e[7]=0),e[0]=1,e[4]=1,e[8]=1,e}function xe(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[4],e[4]=t[5],e[5]=t[6],e[6]=t[8],e[7]=t[9],e[8]=t[10],e}function Ee(e){var t=new A(9);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t}function Le(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e}function Ie(e,t,n,a,r,i,s,l,o){var u=new A(9);return u[0]=e,u[1]=t,u[2]=n,u[3]=a,u[4]=r,u[5]=i,u[6]=s,u[7]=l,u[8]=o,u}function Ue(e,t,n,a,r,i,s,l,o,u){return e[0]=t,e[1]=n,e[2]=a,e[3]=r,e[4]=i,e[5]=s,e[6]=l,e[7]=o,e[8]=u,e}function Re(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e}function Ce(e,t){if(e===t){var n=t[1],a=t[2],r=t[5];e[1]=t[3],e[2]=t[6],e[3]=n,e[5]=t[7],e[6]=a,e[7]=r}else e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8];return e}function Me(e,t){var n=t[0],a=t[1],r=t[2],i=t[3],s=t[4],l=t[5],o=t[6],u=t[7],c=t[8],d=c*s-l*u,h=-c*i+l*o,f=u*i-s*o,m=n*d+a*h+r*f;return m?(m=1/m,e[0]=d*m,e[1]=(-c*a+r*u)*m,e[2]=(l*a-r*s)*m,e[3]=h*m,e[4]=(c*n-r*o)*m,e[5]=(-l*n+r*i)*m,e[6]=f*m,e[7]=(-u*n+a*o)*m,e[8]=(s*n-a*i)*m,e):null}function Be(e,t){var n=t[0],a=t[1],r=t[2],i=t[3],s=t[4],l=t[5],o=t[6],u=t[7],c=t[8];return e[0]=s*c-l*u,e[1]=r*u-a*c,e[2]=a*l-r*s,e[3]=l*o-i*c,e[4]=n*c-r*o,e[5]=r*i-n*l,e[6]=i*u-s*o,e[7]=a*o-n*u,e[8]=n*s-a*i,e}function Ne(e){var t=e[0],n=e[1],a=e[2],r=e[3],i=e[4],s=e[5],l=e[6],o=e[7],u=e[8];return t*(u*i-s*o)+n*(-u*r+s*l)+a*(o*r-i*l)}function Pe(e,t,n){var a=t[0],r=t[1],i=t[2],s=t[3],l=t[4],o=t[5],u=t[6],c=t[7],d=t[8],h=n[0],f=n[1],m=n[2],p=n[3],_=n[4],g=n[5],b=n[6],w=n[7],v=n[8];return e[0]=h*a+f*s+m*u,e[1]=h*r+f*l+m*c,e[2]=h*i+f*o+m*d,e[3]=p*a+_*s+g*u,e[4]=p*r+_*l+g*c,e[5]=p*i+_*o+g*d,e[6]=b*a+w*s+v*u,e[7]=b*r+w*l+v*c,e[8]=b*i+w*o+v*d,e}function ke(e,t,n){var a=t[0],r=t[1],i=t[2],s=t[3],l=t[4],o=t[5],u=t[6],c=t[7],d=t[8],h=n[0],f=n[1];return e[0]=a,e[1]=r,e[2]=i,e[3]=s,e[4]=l,e[5]=o,e[6]=h*a+f*s+u,e[7]=h*r+f*l+c,e[8]=h*i+f*o+d,e}function Oe(e,t,n){var a=t[0],r=t[1],i=t[2],s=t[3],l=t[4],o=t[5],u=t[6],c=t[7],d=t[8],h=Math.sin(n),f=Math.cos(n);return e[0]=f*a+h*s,e[1]=f*r+h*l,e[2]=f*i+h*o,e[3]=f*s-h*a,e[4]=f*l-h*r,e[5]=f*o-h*i,e[6]=u,e[7]=c,e[8]=d,e}function De(e,t,n){var a=n[0],r=n[1];return e[0]=a*t[0],e[1]=a*t[1],e[2]=a*t[2],e[3]=r*t[3],e[4]=r*t[4],e[5]=r*t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e}function Fe(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=t[0],e[7]=t[1],e[8]=1,e}function Ge(e,t){var n=Math.sin(t),a=Math.cos(t);return e[0]=a,e[1]=n,e[2]=0,e[3]=-n,e[4]=a,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e}function Ve(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=t[1],e[5]=0,e[6]=0,e[7]=0,e[8]=1,e}function Ke(e,t){return e[0]=t[0],e[1]=t[1],e[2]=0,e[3]=t[2],e[4]=t[3],e[5]=0,e[6]=t[4],e[7]=t[5],e[8]=1,e}function He(e,t){var n=t[0],a=t[1],r=t[2],i=t[3],s=n+n,l=a+a,o=r+r,u=n*s,c=a*s,d=a*l,h=r*s,f=r*l,m=r*o,p=i*s,_=i*l,g=i*o;return e[0]=1-d-m,e[3]=c-g,e[6]=h+_,e[1]=c+g,e[4]=1-u-m,e[7]=f-p,e[2]=h-_,e[5]=f+p,e[8]=1-u-d,e}function ze(e,t){var n=t[0],a=t[1],r=t[2],i=t[3],s=t[4],l=t[5],o=t[6],u=t[7],c=t[8],d=t[9],h=t[10],f=t[11],m=t[12],p=t[13],_=t[14],g=t[15],b=n*l-a*s,w=n*o-r*s,v=n*u-i*s,A=a*o-r*l,y=a*u-i*l,S=r*u-i*o,T=c*p-d*m,x=c*_-h*m,E=c*g-f*m,L=d*_-h*p,I=d*g-f*p,U=h*g-f*_,R=b*U-w*I+v*L+A*E-y*x+S*T;return R?(R=1/R,e[0]=(l*U-o*I+u*L)*R,e[1]=(o*E-s*U-u*x)*R,e[2]=(s*I-l*E+u*T)*R,e[3]=(r*I-a*U-i*L)*R,e[4]=(n*U-r*E+i*x)*R,e[5]=(a*E-n*I-i*T)*R,e[6]=(p*S-_*y+g*A)*R,e[7]=(_*v-m*S-g*w)*R,e[8]=(m*y-p*v+g*b)*R,e):null}function je(e,t,n){return e[0]=2/t,e[1]=0,e[2]=0,e[3]=0,e[4]=-2/n,e[5]=0,e[6]=-1,e[7]=1,e[8]=1,e}function Xe(e){return"mat3("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+", "+e[6]+", "+e[7]+", "+e[8]+")"}function $e(e){return Math.hypot(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])}function Je(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e[3]=t[3]+n[3],e[4]=t[4]+n[4],e[5]=t[5]+n[5],e[6]=t[6]+n[6],e[7]=t[7]+n[7],e[8]=t[8]+n[8],e}function We(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e[3]=t[3]-n[3],e[4]=t[4]-n[4],e[5]=t[5]-n[5],e[6]=t[6]-n[6],e[7]=t[7]-n[7],e[8]=t[8]-n[8],e}function qe(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*n,e[5]=t[5]*n,e[6]=t[6]*n,e[7]=t[7]*n,e[8]=t[8]*n,e}function Ye(e,t,n,a){return e[0]=t[0]+n[0]*a,e[1]=t[1]+n[1]*a,e[2]=t[2]+n[2]*a,e[3]=t[3]+n[3]*a,e[4]=t[4]+n[4]*a,e[5]=t[5]+n[5]*a,e[6]=t[6]+n[6]*a,e[7]=t[7]+n[7]*a,e[8]=t[8]+n[8]*a,e}function Ze(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]}function Qe(e,t){var n=e[0],a=e[1],r=e[2],i=e[3],s=e[4],l=e[5],o=e[6],u=e[7],c=e[8],d=t[0],h=t[1],f=t[2],m=t[3],p=t[4],_=t[5],g=t[6],b=t[7],w=t[8];return Math.abs(n-d)<=v*Math.max(1,Math.abs(n),Math.abs(d))&&Math.abs(a-h)<=v*Math.max(1,Math.abs(a),Math.abs(h))&&Math.abs(r-f)<=v*Math.max(1,Math.abs(r),Math.abs(f))&&Math.abs(i-m)<=v*Math.max(1,Math.abs(i),Math.abs(m))&&Math.abs(s-p)<=v*Math.max(1,Math.abs(s),Math.abs(p))&&Math.abs(l-_)<=v*Math.max(1,Math.abs(l),Math.abs(_))&&Math.abs(o-g)<=v*Math.max(1,Math.abs(o),Math.abs(g))&&Math.abs(u-b)<=v*Math.max(1,Math.abs(u),Math.abs(b))&&Math.abs(c-w)<=v*Math.max(1,Math.abs(c),Math.abs(w))}var et=Pe,tt=We;function nt(){var e=new A(16);return A!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function at(e){var t=new A(16);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function rt(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function it(e,t,n,a,r,i,s,l,o,u,c,d,h,f,m,p){var _=new A(16);return _[0]=e,_[1]=t,_[2]=n,_[3]=a,_[4]=r,_[5]=i,_[6]=s,_[7]=l,_[8]=o,_[9]=u,_[10]=c,_[11]=d,_[12]=h,_[13]=f,_[14]=m,_[15]=p,_}function st(e,t,n,a,r,i,s,l,o,u,c,d,h,f,m,p,_){return e[0]=t,e[1]=n,e[2]=a,e[3]=r,e[4]=i,e[5]=s,e[6]=l,e[7]=o,e[8]=u,e[9]=c,e[10]=d,e[11]=h,e[12]=f,e[13]=m,e[14]=p,e[15]=_,e}function lt(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function ot(e,t){if(e===t){var n=t[1],a=t[2],r=t[3],i=t[6],s=t[7],l=t[11];e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=n,e[6]=t[9],e[7]=t[13],e[8]=a,e[9]=i,e[11]=t[14],e[12]=r,e[13]=s,e[14]=l}else e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15];return e}function ut(e,t){var n=t[0],a=t[1],r=t[2],i=t[3],s=t[4],l=t[5],o=t[6],u=t[7],c=t[8],d=t[9],h=t[10],f=t[11],m=t[12],p=t[13],_=t[14],g=t[15],b=n*l-a*s,w=n*o-r*s,v=n*u-i*s,A=a*o-r*l,y=a*u-i*l,S=r*u-i*o,T=c*p-d*m,x=c*_-h*m,E=c*g-f*m,L=d*_-h*p,I=d*g-f*p,U=h*g-f*_,R=b*U-w*I+v*L+A*E-y*x+S*T;return R?(R=1/R,e[0]=(l*U-o*I+u*L)*R,e[1]=(r*I-a*U-i*L)*R,e[2]=(p*S-_*y+g*A)*R,e[3]=(h*y-d*S-f*A)*R,e[4]=(o*E-s*U-u*x)*R,e[5]=(n*U-r*E+i*x)*R,e[6]=(_*v-m*S-g*w)*R,e[7]=(c*S-h*v+f*w)*R,e[8]=(s*I-l*E+u*T)*R,e[9]=(a*E-n*I-i*T)*R,e[10]=(m*y-p*v+g*b)*R,e[11]=(d*v-c*y-f*b)*R,e[12]=(l*x-s*L-o*T)*R,e[13]=(n*L-a*x+r*T)*R,e[14]=(p*w-m*A-_*b)*R,e[15]=(c*A-d*w+h*b)*R,e):null}function ct(e,t){var n=t[0],a=t[1],r=t[2],i=t[3],s=t[4],l=t[5],o=t[6],u=t[7],c=t[8],d=t[9],h=t[10],f=t[11],m=t[12],p=t[13],_=t[14],g=t[15];return e[0]=l*(h*g-f*_)-d*(o*g-u*_)+p*(o*f-u*h),e[1]=-(a*(h*g-f*_)-d*(r*g-i*_)+p*(r*f-i*h)),e[2]=a*(o*g-u*_)-l*(r*g-i*_)+p*(r*u-i*o),e[3]=-(a*(o*f-u*h)-l*(r*f-i*h)+d*(r*u-i*o)),e[4]=-(s*(h*g-f*_)-c*(o*g-u*_)+m*(o*f-u*h)),e[5]=n*(h*g-f*_)-c*(r*g-i*_)+m*(r*f-i*h),e[6]=-(n*(o*g-u*_)-s*(r*g-i*_)+m*(r*u-i*o)),e[7]=n*(o*f-u*h)-s*(r*f-i*h)+c*(r*u-i*o),e[8]=s*(d*g-f*p)-c*(l*g-u*p)+m*(l*f-u*d),e[9]=-(n*(d*g-f*p)-c*(a*g-i*p)+m*(a*f-i*d)),e[10]=n*(l*g-u*p)-s*(a*g-i*p)+m*(a*u-i*l),e[11]=-(n*(l*f-u*d)-s*(a*f-i*d)+c*(a*u-i*l)),e[12]=-(s*(d*_-h*p)-c*(l*_-o*p)+m*(l*h-o*d)),e[13]=n*(d*_-h*p)-c*(a*_-r*p)+m*(a*h-r*d),e[14]=-(n*(l*_-o*p)-s*(a*_-r*p)+m*(a*o-r*l)),e[15]=n*(l*h-o*d)-s*(a*h-r*d)+c*(a*o-r*l),e}function dt(e){var t=e[0],n=e[1],a=e[2],r=e[3],i=e[4],s=e[5],l=e[6],o=e[7],u=e[8],c=e[9],d=e[10],h=e[11],f=e[12],m=e[13],p=e[14],_=e[15];return(t*s-n*i)*(d*_-h*p)-(t*l-a*i)*(c*_-h*m)+(t*o-r*i)*(c*p-d*m)+(n*l-a*s)*(u*_-h*f)-(n*o-r*s)*(u*p-d*f)+(a*o-r*l)*(u*m-c*f)}function ht(e,t,n){var a=t[0],r=t[1],i=t[2],s=t[3],l=t[4],o=t[5],u=t[6],c=t[7],d=t[8],h=t[9],f=t[10],m=t[11],p=t[12],_=t[13],g=t[14],b=t[15],w=n[0],v=n[1],A=n[2],y=n[3];return e[0]=w*a+v*l+A*d+y*p,e[1]=w*r+v*o+A*h+y*_,e[2]=w*i+v*u+A*f+y*g,e[3]=w*s+v*c+A*m+y*b,w=n[4],v=n[5],A=n[6],y=n[7],e[4]=w*a+v*l+A*d+y*p,e[5]=w*r+v*o+A*h+y*_,e[6]=w*i+v*u+A*f+y*g,e[7]=w*s+v*c+A*m+y*b,w=n[8],v=n[9],A=n[10],y=n[11],e[8]=w*a+v*l+A*d+y*p,e[9]=w*r+v*o+A*h+y*_,e[10]=w*i+v*u+A*f+y*g,e[11]=w*s+v*c+A*m+y*b,w=n[12],v=n[13],A=n[14],y=n[15],e[12]=w*a+v*l+A*d+y*p,e[13]=w*r+v*o+A*h+y*_,e[14]=w*i+v*u+A*f+y*g,e[15]=w*s+v*c+A*m+y*b,e}function ft(e,t,n){var a,r,i,s,l,o,u,c,d,h,f,m,p=n[0],_=n[1],g=n[2];return t===e?(e[12]=t[0]*p+t[4]*_+t[8]*g+t[12],e[13]=t[1]*p+t[5]*_+t[9]*g+t[13],e[14]=t[2]*p+t[6]*_+t[10]*g+t[14],e[15]=t[3]*p+t[7]*_+t[11]*g+t[15]):(a=t[0],r=t[1],i=t[2],s=t[3],l=t[4],o=t[5],u=t[6],c=t[7],d=t[8],h=t[9],f=t[10],m=t[11],e[0]=a,e[1]=r,e[2]=i,e[3]=s,e[4]=l,e[5]=o,e[6]=u,e[7]=c,e[8]=d,e[9]=h,e[10]=f,e[11]=m,e[12]=a*p+l*_+d*g+t[12],e[13]=r*p+o*_+h*g+t[13],e[14]=i*p+u*_+f*g+t[14],e[15]=s*p+c*_+m*g+t[15]),e}function mt(e,t,n){var a=n[0],r=n[1],i=n[2];return e[0]=t[0]*a,e[1]=t[1]*a,e[2]=t[2]*a,e[3]=t[3]*a,e[4]=t[4]*r,e[5]=t[5]*r,e[6]=t[6]*r,e[7]=t[7]*r,e[8]=t[8]*i,e[9]=t[9]*i,e[10]=t[10]*i,e[11]=t[11]*i,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function pt(e,t,n,a){var r,i,s,l,o,u,c,d,h,f,m,p,_,g,b,w,A,y,S,T,x,E,L,I,U=a[0],R=a[1],C=a[2],M=Math.hypot(U,R,C);return M<v?null:(U*=M=1/M,R*=M,C*=M,r=Math.sin(n),s=1-(i=Math.cos(n)),l=t[0],o=t[1],u=t[2],c=t[3],d=t[4],h=t[5],f=t[6],m=t[7],p=t[8],_=t[9],g=t[10],b=t[11],w=U*U*s+i,A=R*U*s+C*r,y=C*U*s-R*r,S=U*R*s-C*r,T=R*R*s+i,x=C*R*s+U*r,E=U*C*s+R*r,L=R*C*s-U*r,I=C*C*s+i,e[0]=l*w+d*A+p*y,e[1]=o*w+h*A+_*y,e[2]=u*w+f*A+g*y,e[3]=c*w+m*A+b*y,e[4]=l*S+d*T+p*x,e[5]=o*S+h*T+_*x,e[6]=u*S+f*T+g*x,e[7]=c*S+m*T+b*x,e[8]=l*E+d*L+p*I,e[9]=o*E+h*L+_*I,e[10]=u*E+f*L+g*I,e[11]=c*E+m*L+b*I,t!==e&&(e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e)}function _t(e,t,n){var a=Math.sin(n),r=Math.cos(n),i=t[4],s=t[5],l=t[6],o=t[7],u=t[8],c=t[9],d=t[10],h=t[11];return t!==e&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[4]=i*r+u*a,e[5]=s*r+c*a,e[6]=l*r+d*a,e[7]=o*r+h*a,e[8]=u*r-i*a,e[9]=c*r-s*a,e[10]=d*r-l*a,e[11]=h*r-o*a,e}function gt(e,t,n){var a=Math.sin(n),r=Math.cos(n),i=t[0],s=t[1],l=t[2],o=t[3],u=t[8],c=t[9],d=t[10],h=t[11];return t!==e&&(e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=i*r-u*a,e[1]=s*r-c*a,e[2]=l*r-d*a,e[3]=o*r-h*a,e[8]=i*a+u*r,e[9]=s*a+c*r,e[10]=l*a+d*r,e[11]=o*a+h*r,e}function bt(e,t,n){var a=Math.sin(n),r=Math.cos(n),i=t[0],s=t[1],l=t[2],o=t[3],u=t[4],c=t[5],d=t[6],h=t[7];return t!==e&&(e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=i*r+u*a,e[1]=s*r+c*a,e[2]=l*r+d*a,e[3]=o*r+h*a,e[4]=u*r-i*a,e[5]=c*r-s*a,e[6]=d*r-l*a,e[7]=h*r-o*a,e}function wt(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=t[0],e[13]=t[1],e[14]=t[2],e[15]=1,e}function vt(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=t[1],e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=t[2],e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function At(e,t,n){var a,r,i,s=n[0],l=n[1],o=n[2],u=Math.hypot(s,l,o);return u<v?null:(s*=u=1/u,l*=u,o*=u,a=Math.sin(t),i=1-(r=Math.cos(t)),e[0]=s*s*i+r,e[1]=l*s*i+o*a,e[2]=o*s*i-l*a,e[3]=0,e[4]=s*l*i-o*a,e[5]=l*l*i+r,e[6]=o*l*i+s*a,e[7]=0,e[8]=s*o*i+l*a,e[9]=l*o*i-s*a,e[10]=o*o*i+r,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e)}function yt(e,t){var n=Math.sin(t),a=Math.cos(t);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=a,e[6]=n,e[7]=0,e[8]=0,e[9]=-n,e[10]=a,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function St(e,t){var n=Math.sin(t),a=Math.cos(t);return e[0]=a,e[1]=0,e[2]=-n,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=n,e[9]=0,e[10]=a,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function Tt(e,t){var n=Math.sin(t),a=Math.cos(t);return e[0]=a,e[1]=n,e[2]=0,e[3]=0,e[4]=-n,e[5]=a,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function xt(e,t,n){var a=t[0],r=t[1],i=t[2],s=t[3],l=a+a,o=r+r,u=i+i,c=a*l,d=a*o,h=a*u,f=r*o,m=r*u,p=i*u,_=s*l,g=s*o,b=s*u;return e[0]=1-(f+p),e[1]=d+b,e[2]=h-g,e[3]=0,e[4]=d-b,e[5]=1-(c+p),e[6]=m+_,e[7]=0,e[8]=h+g,e[9]=m-_,e[10]=1-(c+f),e[11]=0,e[12]=n[0],e[13]=n[1],e[14]=n[2],e[15]=1,e}function Et(e,t){var n=new A(3),a=-t[0],r=-t[1],i=-t[2],s=t[3],l=t[4],o=t[5],u=t[6],c=t[7],d=a*a+r*r+i*i+s*s;return d>0?(n[0]=2*(l*s+c*a+o*i-u*r)/d,n[1]=2*(o*s+c*r+u*a-l*i)/d,n[2]=2*(u*s+c*i+l*r-o*a)/d):(n[0]=2*(l*s+c*a+o*i-u*r),n[1]=2*(o*s+c*r+u*a-l*i),n[2]=2*(u*s+c*i+l*r-o*a)),xt(e,t,n),e}function Lt(e,t){return e[0]=t[12],e[1]=t[13],e[2]=t[14],e}function It(e,t){var n=t[0],a=t[1],r=t[2],i=t[4],s=t[5],l=t[6],o=t[8],u=t[9],c=t[10];return e[0]=Math.hypot(n,a,r),e[1]=Math.hypot(i,s,l),e[2]=Math.hypot(o,u,c),e}function Ut(e,t){var n=new A(3);It(n,t);var a=1/n[0],r=1/n[1],i=1/n[2],s=t[0]*a,l=t[1]*r,o=t[2]*i,u=t[4]*a,c=t[5]*r,d=t[6]*i,h=t[8]*a,f=t[9]*r,m=t[10]*i,p=s+c+m,_=0;return p>0?(_=2*Math.sqrt(p+1),e[3]=.25*_,e[0]=(d-f)/_,e[1]=(h-o)/_,e[2]=(l-u)/_):s>c&&s>m?(_=2*Math.sqrt(1+s-c-m),e[3]=(d-f)/_,e[0]=.25*_,e[1]=(l+u)/_,e[2]=(h+o)/_):c>m?(_=2*Math.sqrt(1+c-s-m),e[3]=(h-o)/_,e[0]=(l+u)/_,e[1]=.25*_,e[2]=(d+f)/_):(_=2*Math.sqrt(1+m-s-c),e[3]=(l-u)/_,e[0]=(h+o)/_,e[1]=(d+f)/_,e[2]=.25*_),e}function Rt(e,t,n,a){var r=t[0],i=t[1],s=t[2],l=t[3],o=r+r,u=i+i,c=s+s,d=r*o,h=r*u,f=r*c,m=i*u,p=i*c,_=s*c,g=l*o,b=l*u,w=l*c,v=a[0],A=a[1],y=a[2];return e[0]=(1-(m+_))*v,e[1]=(h+w)*v,e[2]=(f-b)*v,e[3]=0,e[4]=(h-w)*A,e[5]=(1-(d+_))*A,e[6]=(p+g)*A,e[7]=0,e[8]=(f+b)*y,e[9]=(p-g)*y,e[10]=(1-(d+m))*y,e[11]=0,e[12]=n[0],e[13]=n[1],e[14]=n[2],e[15]=1,e}function Ct(e,t,n,a,r){var i=t[0],s=t[1],l=t[2],o=t[3],u=i+i,c=s+s,d=l+l,h=i*u,f=i*c,m=i*d,p=s*c,_=s*d,g=l*d,b=o*u,w=o*c,v=o*d,A=a[0],y=a[1],S=a[2],T=r[0],x=r[1],E=r[2],L=(1-(p+g))*A,I=(f+v)*A,U=(m-w)*A,R=(f-v)*y,C=(1-(h+g))*y,M=(_+b)*y,B=(m+w)*S,N=(_-b)*S,P=(1-(h+p))*S;return e[0]=L,e[1]=I,e[2]=U,e[3]=0,e[4]=R,e[5]=C,e[6]=M,e[7]=0,e[8]=B,e[9]=N,e[10]=P,e[11]=0,e[12]=n[0]+T-(L*T+R*x+B*E),e[13]=n[1]+x-(I*T+C*x+N*E),e[14]=n[2]+E-(U*T+M*x+P*E),e[15]=1,e}function Mt(e,t){var n=t[0],a=t[1],r=t[2],i=t[3],s=n+n,l=a+a,o=r+r,u=n*s,c=a*s,d=a*l,h=r*s,f=r*l,m=r*o,p=i*s,_=i*l,g=i*o;return e[0]=1-d-m,e[1]=c+g,e[2]=h-_,e[3]=0,e[4]=c-g,e[5]=1-u-m,e[6]=f+p,e[7]=0,e[8]=h+_,e[9]=f-p,e[10]=1-u-d,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function Bt(e,t,n,a,r,i,s){var l=1/(n-t),o=1/(r-a),u=1/(i-s);return e[0]=2*i*l,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=2*i*o,e[6]=0,e[7]=0,e[8]=(n+t)*l,e[9]=(r+a)*o,e[10]=(s+i)*u,e[11]=-1,e[12]=0,e[13]=0,e[14]=s*i*2*u,e[15]=0,e}function Nt(e,t,n,a,r){var i,s=1/Math.tan(t/2);return e[0]=s/n,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=s,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,null!=r&&r!==1/0?(i=1/(a-r),e[10]=(r+a)*i,e[14]=2*r*a*i):(e[10]=-1,e[14]=-2*a),e}function Pt(e,t,n,a){var r=Math.tan(t.upDegrees*Math.PI/180),i=Math.tan(t.downDegrees*Math.PI/180),s=Math.tan(t.leftDegrees*Math.PI/180),l=Math.tan(t.rightDegrees*Math.PI/180),o=2/(s+l),u=2/(r+i);return e[0]=o,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=u,e[6]=0,e[7]=0,e[8]=-(s-l)*o*.5,e[9]=(r-i)*u*.5,e[10]=a/(n-a),e[11]=-1,e[12]=0,e[13]=0,e[14]=a*n/(n-a),e[15]=0,e}function kt(e,t,n,a,r,i,s){var l=1/(t-n),o=1/(a-r),u=1/(i-s);return e[0]=-2*l,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*o,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*u,e[11]=0,e[12]=(t+n)*l,e[13]=(r+a)*o,e[14]=(s+i)*u,e[15]=1,e}function Ot(e,t,n,a){var r,i,s,l,o,u,c,d,h,f,m=t[0],p=t[1],_=t[2],g=a[0],b=a[1],w=a[2],A=n[0],y=n[1],S=n[2];return Math.abs(m-A)<v&&Math.abs(p-y)<v&&Math.abs(_-S)<v?lt(e):(c=m-A,d=p-y,h=_-S,r=b*(h*=f=1/Math.hypot(c,d,h))-w*(d*=f),i=w*(c*=f)-g*h,s=g*d-b*c,(f=Math.hypot(r,i,s))?(r*=f=1/f,i*=f,s*=f):(r=0,i=0,s=0),l=d*s-h*i,o=h*r-c*s,u=c*i-d*r,(f=Math.hypot(l,o,u))?(l*=f=1/f,o*=f,u*=f):(l=0,o=0,u=0),e[0]=r,e[1]=l,e[2]=c,e[3]=0,e[4]=i,e[5]=o,e[6]=d,e[7]=0,e[8]=s,e[9]=u,e[10]=h,e[11]=0,e[12]=-(r*m+i*p+s*_),e[13]=-(l*m+o*p+u*_),e[14]=-(c*m+d*p+h*_),e[15]=1,e)}function Dt(e,t,n,a){var r=t[0],i=t[1],s=t[2],l=a[0],o=a[1],u=a[2],c=r-n[0],d=i-n[1],h=s-n[2],f=c*c+d*d+h*h;f>0&&(c*=f=1/Math.sqrt(f),d*=f,h*=f);var m=o*h-u*d,p=u*c-l*h,_=l*d-o*c;return(f=m*m+p*p+_*_)>0&&(m*=f=1/Math.sqrt(f),p*=f,_*=f),e[0]=m,e[1]=p,e[2]=_,e[3]=0,e[4]=d*_-h*p,e[5]=h*m-c*_,e[6]=c*p-d*m,e[7]=0,e[8]=c,e[9]=d,e[10]=h,e[11]=0,e[12]=r,e[13]=i,e[14]=s,e[15]=1,e}function Ft(e){return"mat4("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+", "+e[6]+", "+e[7]+", "+e[8]+", "+e[9]+", "+e[10]+", "+e[11]+", "+e[12]+", "+e[13]+", "+e[14]+", "+e[15]+")"}function Gt(e){return Math.hypot(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])}function Vt(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e[3]=t[3]+n[3],e[4]=t[4]+n[4],e[5]=t[5]+n[5],e[6]=t[6]+n[6],e[7]=t[7]+n[7],e[8]=t[8]+n[8],e[9]=t[9]+n[9],e[10]=t[10]+n[10],e[11]=t[11]+n[11],e[12]=t[12]+n[12],e[13]=t[13]+n[13],e[14]=t[14]+n[14],e[15]=t[15]+n[15],e}function Kt(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e[3]=t[3]-n[3],e[4]=t[4]-n[4],e[5]=t[5]-n[5],e[6]=t[6]-n[6],e[7]=t[7]-n[7],e[8]=t[8]-n[8],e[9]=t[9]-n[9],e[10]=t[10]-n[10],e[11]=t[11]-n[11],e[12]=t[12]-n[12],e[13]=t[13]-n[13],e[14]=t[14]-n[14],e[15]=t[15]-n[15],e}function Ht(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*n,e[5]=t[5]*n,e[6]=t[6]*n,e[7]=t[7]*n,e[8]=t[8]*n,e[9]=t[9]*n,e[10]=t[10]*n,e[11]=t[11]*n,e[12]=t[12]*n,e[13]=t[13]*n,e[14]=t[14]*n,e[15]=t[15]*n,e}function zt(e,t,n,a){return e[0]=t[0]+n[0]*a,e[1]=t[1]+n[1]*a,e[2]=t[2]+n[2]*a,e[3]=t[3]+n[3]*a,e[4]=t[4]+n[4]*a,e[5]=t[5]+n[5]*a,e[6]=t[6]+n[6]*a,e[7]=t[7]+n[7]*a,e[8]=t[8]+n[8]*a,e[9]=t[9]+n[9]*a,e[10]=t[10]+n[10]*a,e[11]=t[11]+n[11]*a,e[12]=t[12]+n[12]*a,e[13]=t[13]+n[13]*a,e[14]=t[14]+n[14]*a,e[15]=t[15]+n[15]*a,e}function jt(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[11]===t[11]&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[15]===t[15]}function Xt(e,t){var n=e[0],a=e[1],r=e[2],i=e[3],s=e[4],l=e[5],o=e[6],u=e[7],c=e[8],d=e[9],h=e[10],f=e[11],m=e[12],p=e[13],_=e[14],g=e[15],b=t[0],w=t[1],A=t[2],y=t[3],S=t[4],T=t[5],x=t[6],E=t[7],L=t[8],I=t[9],U=t[10],R=t[11],C=t[12],M=t[13],B=t[14],N=t[15];return Math.abs(n-b)<=v*Math.max(1,Math.abs(n),Math.abs(b))&&Math.abs(a-w)<=v*Math.max(1,Math.abs(a),Math.abs(w))&&Math.abs(r-A)<=v*Math.max(1,Math.abs(r),Math.abs(A))&&Math.abs(i-y)<=v*Math.max(1,Math.abs(i),Math.abs(y))&&Math.abs(s-S)<=v*Math.max(1,Math.abs(s),Math.abs(S))&&Math.abs(l-T)<=v*Math.max(1,Math.abs(l),Math.abs(T))&&Math.abs(o-x)<=v*Math.max(1,Math.abs(o),Math.abs(x))&&Math.abs(u-E)<=v*Math.max(1,Math.abs(u),Math.abs(E))&&Math.abs(c-L)<=v*Math.max(1,Math.abs(c),Math.abs(L))&&Math.abs(d-I)<=v*Math.max(1,Math.abs(d),Math.abs(I))&&Math.abs(h-U)<=v*Math.max(1,Math.abs(h),Math.abs(U))&&Math.abs(f-R)<=v*Math.max(1,Math.abs(f),Math.abs(R))&&Math.abs(m-C)<=v*Math.max(1,Math.abs(m),Math.abs(C))&&Math.abs(p-M)<=v*Math.max(1,Math.abs(p),Math.abs(M))&&Math.abs(_-B)<=v*Math.max(1,Math.abs(_),Math.abs(B))&&Math.abs(g-N)<=v*Math.max(1,Math.abs(g),Math.abs(N))}var $t=ht,Jt=Kt;function Wt(){var e=new A(3);return A!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function qt(e){var t=new A(3);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function Yt(e){var t=e[0],n=e[1],a=e[2];return Math.hypot(t,n,a)}function Zt(e,t,n){var a=new A(3);return a[0]=e,a[1]=t,a[2]=n,a}function Qt(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function en(e,t,n,a){return e[0]=t,e[1]=n,e[2]=a,e}function tn(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e}function nn(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e}function an(e,t,n){return e[0]=t[0]*n[0],e[1]=t[1]*n[1],e[2]=t[2]*n[2],e}function rn(e,t,n){return e[0]=t[0]/n[0],e[1]=t[1]/n[1],e[2]=t[2]/n[2],e}function sn(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e[2]=Math.ceil(t[2]),e}function ln(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e[2]=Math.floor(t[2]),e}function on(e,t,n){return e[0]=Math.min(t[0],n[0]),e[1]=Math.min(t[1],n[1]),e[2]=Math.min(t[2],n[2]),e}function un(e,t,n){return e[0]=Math.max(t[0],n[0]),e[1]=Math.max(t[1],n[1]),e[2]=Math.max(t[2],n[2]),e}function cn(e,t){return e[0]=Math.round(t[0]),e[1]=Math.round(t[1]),e[2]=Math.round(t[2]),e}function dn(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e}function hn(e,t,n,a){return e[0]=t[0]+n[0]*a,e[1]=t[1]+n[1]*a,e[2]=t[2]+n[2]*a,e}function fn(e,t){var n=t[0]-e[0],a=t[1]-e[1],r=t[2]-e[2];return Math.hypot(n,a,r)}function mn(e,t){var n=t[0]-e[0],a=t[1]-e[1],r=t[2]-e[2];return n*n+a*a+r*r}function pn(e){var t=e[0],n=e[1],a=e[2];return t*t+n*n+a*a}function _n(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e}function gn(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e}function bn(e,t){var n=t[0],a=t[1],r=t[2],i=n*n+a*a+r*r;return i>0&&(i=1/Math.sqrt(i)),e[0]=t[0]*i,e[1]=t[1]*i,e[2]=t[2]*i,e}function wn(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function vn(e,t,n){var a=t[0],r=t[1],i=t[2],s=n[0],l=n[1],o=n[2];return e[0]=r*o-i*l,e[1]=i*s-a*o,e[2]=a*l-r*s,e}function An(e,t,n,a){var r=t[0],i=t[1],s=t[2];return e[0]=r+a*(n[0]-r),e[1]=i+a*(n[1]-i),e[2]=s+a*(n[2]-s),e}function yn(e,t,n,a,r,i){var s=i*i,l=s*(2*i-3)+1,o=s*(i-2)+i,u=s*(i-1),c=s*(3-2*i);return e[0]=t[0]*l+n[0]*o+a[0]*u+r[0]*c,e[1]=t[1]*l+n[1]*o+a[1]*u+r[1]*c,e[2]=t[2]*l+n[2]*o+a[2]*u+r[2]*c,e}function Sn(e,t,n,a,r,i){var s=1-i,l=s*s,o=i*i,u=l*s,c=3*i*l,d=3*o*s,h=o*i;return e[0]=t[0]*u+n[0]*c+a[0]*d+r[0]*h,e[1]=t[1]*u+n[1]*c+a[1]*d+r[1]*h,e[2]=t[2]*u+n[2]*c+a[2]*d+r[2]*h,e}function Tn(e,t){t=t||1;var n=2*y()*Math.PI,a=2*y()-1,r=Math.sqrt(1-a*a)*t;return e[0]=Math.cos(n)*r,e[1]=Math.sin(n)*r,e[2]=a*t,e}function xn(e,t,n){var a=t[0],r=t[1],i=t[2],s=n[3]*a+n[7]*r+n[11]*i+n[15];return s=s||1,e[0]=(n[0]*a+n[4]*r+n[8]*i+n[12])/s,e[1]=(n[1]*a+n[5]*r+n[9]*i+n[13])/s,e[2]=(n[2]*a+n[6]*r+n[10]*i+n[14])/s,e}function En(e,t,n){var a=t[0],r=t[1],i=t[2];return e[0]=a*n[0]+r*n[3]+i*n[6],e[1]=a*n[1]+r*n[4]+i*n[7],e[2]=a*n[2]+r*n[5]+i*n[8],e}function Ln(e,t,n){var a=n[0],r=n[1],i=n[2],s=n[3],l=t[0],o=t[1],u=t[2],c=r*u-i*o,d=i*l-a*u,h=a*o-r*l,f=r*h-i*d,m=i*c-a*h,p=a*d-r*c,_=2*s;return c*=_,d*=_,h*=_,f*=2,m*=2,p*=2,e[0]=l+c+f,e[1]=o+d+m,e[2]=u+h+p,e}function In(e,t,n,a){var r=[],i=[];return r[0]=t[0]-n[0],r[1]=t[1]-n[1],r[2]=t[2]-n[2],i[0]=r[0],i[1]=r[1]*Math.cos(a)-r[2]*Math.sin(a),i[2]=r[1]*Math.sin(a)+r[2]*Math.cos(a),e[0]=i[0]+n[0],e[1]=i[1]+n[1],e[2]=i[2]+n[2],e}function Un(e,t,n,a){var r=[],i=[];return r[0]=t[0]-n[0],r[1]=t[1]-n[1],r[2]=t[2]-n[2],i[0]=r[2]*Math.sin(a)+r[0]*Math.cos(a),i[1]=r[1],i[2]=r[2]*Math.cos(a)-r[0]*Math.sin(a),e[0]=i[0]+n[0],e[1]=i[1]+n[1],e[2]=i[2]+n[2],e}function Rn(e,t,n,a){var r=[],i=[];return r[0]=t[0]-n[0],r[1]=t[1]-n[1],r[2]=t[2]-n[2],i[0]=r[0]*Math.cos(a)-r[1]*Math.sin(a),i[1]=r[0]*Math.sin(a)+r[1]*Math.cos(a),i[2]=r[2],e[0]=i[0]+n[0],e[1]=i[1]+n[1],e[2]=i[2]+n[2],e}function Cn(e,t){var n=e[0],a=e[1],r=e[2],i=t[0],s=t[1],l=t[2],o=Math.sqrt(n*n+a*a+r*r)*Math.sqrt(i*i+s*s+l*l),u=o&&wn(e,t)/o;return Math.acos(Math.min(Math.max(u,-1),1))}function Mn(e){return e[0]=0,e[1]=0,e[2]=0,e}function Bn(e){return"vec3("+e[0]+", "+e[1]+", "+e[2]+")"}function Nn(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function Pn(e,t){var n=e[0],a=e[1],r=e[2],i=t[0],s=t[1],l=t[2];return Math.abs(n-i)<=v*Math.max(1,Math.abs(n),Math.abs(i))&&Math.abs(a-s)<=v*Math.max(1,Math.abs(a),Math.abs(s))&&Math.abs(r-l)<=v*Math.max(1,Math.abs(r),Math.abs(l))}var kn,On=nn,Dn=an,Fn=rn,Gn=fn,Vn=mn,Kn=Yt,Hn=pn,zn=(kn=Wt(),function(e,t,n,a,r,i){var s,l;for(t||(t=3),n||(n=0),l=a?Math.min(a*t+n,e.length):e.length,s=n;s<l;s+=t)kn[0]=e[s],kn[1]=e[s+1],kn[2]=e[s+2],r(kn,kn,i),e[s]=kn[0],e[s+1]=kn[1],e[s+2]=kn[2];return e});function jn(){var e=new A(4);return A!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e}function Xn(e){var t=new A(4);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function $n(e,t,n,a){var r=new A(4);return r[0]=e,r[1]=t,r[2]=n,r[3]=a,r}function Jn(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}function Wn(e,t,n,a,r){return e[0]=t,e[1]=n,e[2]=a,e[3]=r,e}function qn(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e[3]=t[3]+n[3],e}function Yn(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e[3]=t[3]-n[3],e}function Zn(e,t,n){return e[0]=t[0]*n[0],e[1]=t[1]*n[1],e[2]=t[2]*n[2],e[3]=t[3]*n[3],e}function Qn(e,t,n){return e[0]=t[0]/n[0],e[1]=t[1]/n[1],e[2]=t[2]/n[2],e[3]=t[3]/n[3],e}function ea(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e[2]=Math.ceil(t[2]),e[3]=Math.ceil(t[3]),e}function ta(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e[2]=Math.floor(t[2]),e[3]=Math.floor(t[3]),e}function na(e,t,n){return e[0]=Math.min(t[0],n[0]),e[1]=Math.min(t[1],n[1]),e[2]=Math.min(t[2],n[2]),e[3]=Math.min(t[3],n[3]),e}function aa(e,t,n){return e[0]=Math.max(t[0],n[0]),e[1]=Math.max(t[1],n[1]),e[2]=Math.max(t[2],n[2]),e[3]=Math.max(t[3],n[3]),e}function ra(e,t){return e[0]=Math.round(t[0]),e[1]=Math.round(t[1]),e[2]=Math.round(t[2]),e[3]=Math.round(t[3]),e}function ia(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e}function sa(e,t,n,a){return e[0]=t[0]+n[0]*a,e[1]=t[1]+n[1]*a,e[2]=t[2]+n[2]*a,e[3]=t[3]+n[3]*a,e}function la(e,t){var n=t[0]-e[0],a=t[1]-e[1],r=t[2]-e[2],i=t[3]-e[3];return Math.hypot(n,a,r,i)}function oa(e,t){var n=t[0]-e[0],a=t[1]-e[1],r=t[2]-e[2],i=t[3]-e[3];return n*n+a*a+r*r+i*i}function ua(e){var t=e[0],n=e[1],a=e[2],r=e[3];return Math.hypot(t,n,a,r)}function ca(e){var t=e[0],n=e[1],a=e[2],r=e[3];return t*t+n*n+a*a+r*r}function da(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=-t[3],e}function ha(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e[3]=1/t[3],e}function fa(e,t){var n=t[0],a=t[1],r=t[2],i=t[3],s=n*n+a*a+r*r+i*i;return s>0&&(s=1/Math.sqrt(s)),e[0]=n*s,e[1]=a*s,e[2]=r*s,e[3]=i*s,e}function ma(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3]}function pa(e,t,n,a){var r=n[0]*a[1]-n[1]*a[0],i=n[0]*a[2]-n[2]*a[0],s=n[0]*a[3]-n[3]*a[0],l=n[1]*a[2]-n[2]*a[1],o=n[1]*a[3]-n[3]*a[1],u=n[2]*a[3]-n[3]*a[2],c=t[0],d=t[1],h=t[2],f=t[3];return e[0]=d*u-h*o+f*l,e[1]=-c*u+h*s-f*i,e[2]=c*o-d*s+f*r,e[3]=-c*l+d*i-h*r,e}function _a(e,t,n,a){var r=t[0],i=t[1],s=t[2],l=t[3];return e[0]=r+a*(n[0]-r),e[1]=i+a*(n[1]-i),e[2]=s+a*(n[2]-s),e[3]=l+a*(n[3]-l),e}function ga(e,t){var n,a,r,i,s,l;t=t||1;do{s=(n=2*y()-1)*n+(a=2*y()-1)*a}while(s>=1);do{l=(r=2*y()-1)*r+(i=2*y()-1)*i}while(l>=1);var o=Math.sqrt((1-s)/l);return e[0]=t*n,e[1]=t*a,e[2]=t*r*o,e[3]=t*i*o,e}function ba(e,t,n){var a=t[0],r=t[1],i=t[2],s=t[3];return e[0]=n[0]*a+n[4]*r+n[8]*i+n[12]*s,e[1]=n[1]*a+n[5]*r+n[9]*i+n[13]*s,e[2]=n[2]*a+n[6]*r+n[10]*i+n[14]*s,e[3]=n[3]*a+n[7]*r+n[11]*i+n[15]*s,e}function wa(e,t,n){var a=t[0],r=t[1],i=t[2],s=n[0],l=n[1],o=n[2],u=n[3],c=u*a+l*i-o*r,d=u*r+o*a-s*i,h=u*i+s*r-l*a,f=-s*a-l*r-o*i;return e[0]=c*u+f*-s+d*-o-h*-l,e[1]=d*u+f*-l+h*-s-c*-o,e[2]=h*u+f*-o+c*-l-d*-s,e[3]=t[3],e}function va(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=0,e}function Aa(e){return"vec4("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+")"}function ya(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]}function Sa(e,t){var n=e[0],a=e[1],r=e[2],i=e[3],s=t[0],l=t[1],o=t[2],u=t[3];return Math.abs(n-s)<=v*Math.max(1,Math.abs(n),Math.abs(s))&&Math.abs(a-l)<=v*Math.max(1,Math.abs(a),Math.abs(l))&&Math.abs(r-o)<=v*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(i-u)<=v*Math.max(1,Math.abs(i),Math.abs(u))}var Ta=Yn,xa=Zn,Ea=Qn,La=la,Ia=oa,Ua=ua,Ra=ca,Ca=function(){var e=jn();return function(t,n,a,r,i,s){var l,o;for(n||(n=4),a||(a=0),o=r?Math.min(r*n+a,t.length):t.length,l=a;l<o;l+=n)e[0]=t[l],e[1]=t[l+1],e[2]=t[l+2],e[3]=t[l+3],i(e,e,s),t[l]=e[0],t[l+1]=e[1],t[l+2]=e[2],t[l+3]=e[3];return t}}();function Ma(){var e=new A(4);return A!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function Ba(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e}function Na(e,t,n){n*=.5;var a=Math.sin(n);return e[0]=a*t[0],e[1]=a*t[1],e[2]=a*t[2],e[3]=Math.cos(n),e}function Pa(e,t){var n=2*Math.acos(t[3]),a=Math.sin(n/2);return a>v?(e[0]=t[0]/a,e[1]=t[1]/a,e[2]=t[2]/a):(e[0]=1,e[1]=0,e[2]=0),n}function ka(e,t){var n=dr(e,t);return Math.acos(2*n*n-1)}function Oa(e,t,n){var a=t[0],r=t[1],i=t[2],s=t[3],l=n[0],o=n[1],u=n[2],c=n[3];return e[0]=a*c+s*l+r*u-i*o,e[1]=r*c+s*o+i*l-a*u,e[2]=i*c+s*u+a*o-r*l,e[3]=s*c-a*l-r*o-i*u,e}function Da(e,t,n){n*=.5;var a=t[0],r=t[1],i=t[2],s=t[3],l=Math.sin(n),o=Math.cos(n);return e[0]=a*o+s*l,e[1]=r*o+i*l,e[2]=i*o-r*l,e[3]=s*o-a*l,e}function Fa(e,t,n){n*=.5;var a=t[0],r=t[1],i=t[2],s=t[3],l=Math.sin(n),o=Math.cos(n);return e[0]=a*o-i*l,e[1]=r*o+s*l,e[2]=i*o+a*l,e[3]=s*o-r*l,e}function Ga(e,t,n){n*=.5;var a=t[0],r=t[1],i=t[2],s=t[3],l=Math.sin(n),o=Math.cos(n);return e[0]=a*o+r*l,e[1]=r*o-a*l,e[2]=i*o+s*l,e[3]=s*o-i*l,e}function Va(e,t){var n=t[0],a=t[1],r=t[2];return e[0]=n,e[1]=a,e[2]=r,e[3]=Math.sqrt(Math.abs(1-n*n-a*a-r*r)),e}function Ka(e,t){var n=t[0],a=t[1],r=t[2],i=t[3],s=Math.sqrt(n*n+a*a+r*r),l=Math.exp(i),o=s>0?l*Math.sin(s)/s:0;return e[0]=n*o,e[1]=a*o,e[2]=r*o,e[3]=l*Math.cos(s),e}function Ha(e,t){var n=t[0],a=t[1],r=t[2],i=t[3],s=Math.sqrt(n*n+a*a+r*r),l=s>0?Math.atan2(s,i)/s:0;return e[0]=n*l,e[1]=a*l,e[2]=r*l,e[3]=.5*Math.log(n*n+a*a+r*r+i*i),e}function za(e,t,n){return Ha(e,t),cr(e,e,n),Ka(e,e),e}function ja(e,t,n,a){var r,i,s,l,o,u=t[0],c=t[1],d=t[2],h=t[3],f=n[0],m=n[1],p=n[2],_=n[3];return(i=u*f+c*m+d*p+h*_)<0&&(i=-i,f=-f,m=-m,p=-p,_=-_),1-i>v?(r=Math.acos(i),s=Math.sin(r),l=Math.sin((1-a)*r)/s,o=Math.sin(a*r)/s):(l=1-a,o=a),e[0]=l*u+o*f,e[1]=l*c+o*m,e[2]=l*d+o*p,e[3]=l*h+o*_,e}function Xa(e){var t=y(),n=y(),a=y(),r=Math.sqrt(1-t),i=Math.sqrt(t);return e[0]=r*Math.sin(2*Math.PI*n),e[1]=r*Math.cos(2*Math.PI*n),e[2]=i*Math.sin(2*Math.PI*a),e[3]=i*Math.cos(2*Math.PI*a),e}function $a(e,t){var n=t[0],a=t[1],r=t[2],i=t[3],s=n*n+a*a+r*r+i*i,l=s?1/s:0;return e[0]=-n*l,e[1]=-a*l,e[2]=-r*l,e[3]=i*l,e}function Ja(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],e}function Wa(e,t){var n,a=t[0]+t[4]+t[8];if(a>0)n=Math.sqrt(a+1),e[3]=.5*n,n=.5/n,e[0]=(t[5]-t[7])*n,e[1]=(t[6]-t[2])*n,e[2]=(t[1]-t[3])*n;else{var r=0;t[4]>t[0]&&(r=1),t[8]>t[3*r+r]&&(r=2);var i=(r+1)%3,s=(r+2)%3;n=Math.sqrt(t[3*r+r]-t[3*i+i]-t[3*s+s]+1),e[r]=.5*n,n=.5/n,e[3]=(t[3*i+s]-t[3*s+i])*n,e[i]=(t[3*i+r]+t[3*r+i])*n,e[s]=(t[3*s+r]+t[3*r+s])*n}return e}function qa(e,t,n,a){var r=.5*Math.PI/180;t*=r,n*=r,a*=r;var i=Math.sin(t),s=Math.cos(t),l=Math.sin(n),o=Math.cos(n),u=Math.sin(a),c=Math.cos(a);return e[0]=i*o*c-s*l*u,e[1]=s*l*c+i*o*u,e[2]=s*o*u-i*l*c,e[3]=s*o*c+i*l*u,e}function Ya(e){return"quat("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+")"}var Za,Qa,er,tr,nr,ar,rr=Xn,ir=$n,sr=Jn,lr=Wn,or=qn,ur=Oa,cr=ia,dr=ma,hr=_a,fr=ua,mr=fr,pr=ca,_r=pr,gr=fa,br=ya,wr=Sa,vr=(Za=Wt(),Qa=Zt(1,0,0),er=Zt(0,1,0),function(e,t,n){var a=wn(t,n);return a<-.999999?(vn(Za,Qa,t),Kn(Za)<1e-6&&vn(Za,er,t),bn(Za,Za),Na(e,Za,Math.PI),e):a>.999999?(e[0]=0,e[1]=0,e[2]=0,e[3]=1,e):(vn(Za,t,n),e[0]=Za[0],e[1]=Za[1],e[2]=Za[2],e[3]=1+a,gr(e,e))}),Ar=(tr=Ma(),nr=Ma(),function(e,t,n,a,r,i){return ja(tr,t,r,i),ja(nr,n,a,i),ja(e,tr,nr,2*i*(1-i)),e}),yr=(ar=Te(),function(e,t,n,a){return ar[0]=n[0],ar[3]=n[1],ar[6]=n[2],ar[1]=a[0],ar[4]=a[1],ar[7]=a[2],ar[2]=-t[0],ar[5]=-t[1],ar[8]=-t[2],gr(e,Wa(e,ar))});function Sr(){var e=new A(8);return A!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[4]=0,e[5]=0,e[6]=0,e[7]=0),e[3]=1,e}function Tr(e){var t=new A(8);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t}function xr(e,t,n,a,r,i,s,l){var o=new A(8);return o[0]=e,o[1]=t,o[2]=n,o[3]=a,o[4]=r,o[5]=i,o[6]=s,o[7]=l,o}function Er(e,t,n,a,r,i,s){var l=new A(8);l[0]=e,l[1]=t,l[2]=n,l[3]=a;var o=.5*r,u=.5*i,c=.5*s;return l[4]=o*a+u*n-c*t,l[5]=u*a+c*e-o*n,l[6]=c*a+o*t-u*e,l[7]=-o*e-u*t-c*n,l}function Lr(e,t,n){var a=.5*n[0],r=.5*n[1],i=.5*n[2],s=t[0],l=t[1],o=t[2],u=t[3];return e[0]=s,e[1]=l,e[2]=o,e[3]=u,e[4]=a*u+r*o-i*l,e[5]=r*u+i*s-a*o,e[6]=i*u+a*l-r*s,e[7]=-a*s-r*l-i*o,e}function Ir(e,t){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e[4]=.5*t[0],e[5]=.5*t[1],e[6]=.5*t[2],e[7]=0,e}function Ur(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=0,e[5]=0,e[6]=0,e[7]=0,e}function Rr(e,t){var n=Ma();Ut(n,t);var a=new A(3);return Lt(a,t),Lr(e,n,a),e}function Cr(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e}function Mr(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e[4]=0,e[5]=0,e[6]=0,e[7]=0,e}function Br(e,t,n,a,r,i,s,l,o){return e[0]=t,e[1]=n,e[2]=a,e[3]=r,e[4]=i,e[5]=s,e[6]=l,e[7]=o,e}var Nr=sr;function Pr(e,t){return e[0]=t[4],e[1]=t[5],e[2]=t[6],e[3]=t[7],e}var kr=sr;function Or(e,t){return e[4]=t[0],e[5]=t[1],e[6]=t[2],e[7]=t[3],e}function Dr(e,t){var n=t[4],a=t[5],r=t[6],i=t[7],s=-t[0],l=-t[1],o=-t[2],u=t[3];return e[0]=2*(n*u+i*s+a*o-r*l),e[1]=2*(a*u+i*l+r*s-n*o),e[2]=2*(r*u+i*o+n*l-a*s),e}function Fr(e,t,n){var a=t[0],r=t[1],i=t[2],s=t[3],l=.5*n[0],o=.5*n[1],u=.5*n[2],c=t[4],d=t[5],h=t[6],f=t[7];return e[0]=a,e[1]=r,e[2]=i,e[3]=s,e[4]=s*l+r*u-i*o+c,e[5]=s*o+i*l-a*u+d,e[6]=s*u+a*o-r*l+h,e[7]=-a*l-r*o-i*u+f,e}function Gr(e,t,n){var a=-t[0],r=-t[1],i=-t[2],s=t[3],l=t[4],o=t[5],u=t[6],c=t[7],d=l*s+c*a+o*i-u*r,h=o*s+c*r+u*a-l*i,f=u*s+c*i+l*r-o*a,m=c*s-l*a-o*r-u*i;return Da(e,t,n),a=e[0],r=e[1],i=e[2],s=e[3],e[4]=d*s+m*a+h*i-f*r,e[5]=h*s+m*r+f*a-d*i,e[6]=f*s+m*i+d*r-h*a,e[7]=m*s-d*a-h*r-f*i,e}function Vr(e,t,n){var a=-t[0],r=-t[1],i=-t[2],s=t[3],l=t[4],o=t[5],u=t[6],c=t[7],d=l*s+c*a+o*i-u*r,h=o*s+c*r+u*a-l*i,f=u*s+c*i+l*r-o*a,m=c*s-l*a-o*r-u*i;return Fa(e,t,n),a=e[0],r=e[1],i=e[2],s=e[3],e[4]=d*s+m*a+h*i-f*r,e[5]=h*s+m*r+f*a-d*i,e[6]=f*s+m*i+d*r-h*a,e[7]=m*s-d*a-h*r-f*i,e}function Kr(e,t,n){var a=-t[0],r=-t[1],i=-t[2],s=t[3],l=t[4],o=t[5],u=t[6],c=t[7],d=l*s+c*a+o*i-u*r,h=o*s+c*r+u*a-l*i,f=u*s+c*i+l*r-o*a,m=c*s-l*a-o*r-u*i;return Ga(e,t,n),a=e[0],r=e[1],i=e[2],s=e[3],e[4]=d*s+m*a+h*i-f*r,e[5]=h*s+m*r+f*a-d*i,e[6]=f*s+m*i+d*r-h*a,e[7]=m*s-d*a-h*r-f*i,e}function Hr(e,t,n){var a=n[0],r=n[1],i=n[2],s=n[3],l=t[0],o=t[1],u=t[2],c=t[3];return e[0]=l*s+c*a+o*i-u*r,e[1]=o*s+c*r+u*a-l*i,e[2]=u*s+c*i+l*r-o*a,e[3]=c*s-l*a-o*r-u*i,l=t[4],o=t[5],u=t[6],c=t[7],e[4]=l*s+c*a+o*i-u*r,e[5]=o*s+c*r+u*a-l*i,e[6]=u*s+c*i+l*r-o*a,e[7]=c*s-l*a-o*r-u*i,e}function zr(e,t,n){var a=t[0],r=t[1],i=t[2],s=t[3],l=n[0],o=n[1],u=n[2],c=n[3];return e[0]=a*c+s*l+r*u-i*o,e[1]=r*c+s*o+i*l-a*u,e[2]=i*c+s*u+a*o-r*l,e[3]=s*c-a*l-r*o-i*u,l=n[4],o=n[5],u=n[6],c=n[7],e[4]=a*c+s*l+r*u-i*o,e[5]=r*c+s*o+i*l-a*u,e[6]=i*c+s*u+a*o-r*l,e[7]=s*c-a*l-r*o-i*u,e}function jr(e,t,n,a){if(Math.abs(a)<v)return Cr(e,t);var r=Math.hypot(n[0],n[1],n[2]);a*=.5;var i=Math.sin(a),s=i*n[0]/r,l=i*n[1]/r,o=i*n[2]/r,u=Math.cos(a),c=t[0],d=t[1],h=t[2],f=t[3];e[0]=c*u+f*s+d*o-h*l,e[1]=d*u+f*l+h*s-c*o,e[2]=h*u+f*o+c*l-d*s,e[3]=f*u-c*s-d*l-h*o;var m=t[4],p=t[5],_=t[6],g=t[7];return e[4]=m*u+g*s+p*o-_*l,e[5]=p*u+g*l+_*s-m*o,e[6]=_*u+g*o+m*l-p*s,e[7]=g*u-m*s-p*l-_*o,e}function Xr(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e[3]=t[3]+n[3],e[4]=t[4]+n[4],e[5]=t[5]+n[5],e[6]=t[6]+n[6],e[7]=t[7]+n[7],e}function $r(e,t,n){var a=t[0],r=t[1],i=t[2],s=t[3],l=n[4],o=n[5],u=n[6],c=n[7],d=t[4],h=t[5],f=t[6],m=t[7],p=n[0],_=n[1],g=n[2],b=n[3];return e[0]=a*b+s*p+r*g-i*_,e[1]=r*b+s*_+i*p-a*g,e[2]=i*b+s*g+a*_-r*p,e[3]=s*b-a*p-r*_-i*g,e[4]=a*c+s*l+r*u-i*o+d*b+m*p+h*g-f*_,e[5]=r*c+s*o+i*l-a*u+h*b+m*_+f*p-d*g,e[6]=i*c+s*u+a*o-r*l+f*b+m*g+d*_-h*p,e[7]=s*c-a*l-r*o-i*u+m*b-d*p-h*_-f*g,e}var Jr=$r;function Wr(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*n,e[5]=t[5]*n,e[6]=t[6]*n,e[7]=t[7]*n,e}var qr=dr;function Yr(e,t,n,a){var r=1-a;return qr(t,n)<0&&(a=-a),e[0]=t[0]*r+n[0]*a,e[1]=t[1]*r+n[1]*a,e[2]=t[2]*r+n[2]*a,e[3]=t[3]*r+n[3]*a,e[4]=t[4]*r+n[4]*a,e[5]=t[5]*r+n[5]*a,e[6]=t[6]*r+n[6]*a,e[7]=t[7]*r+n[7]*a,e}function Zr(e,t){var n=ni(t);return e[0]=-t[0]/n,e[1]=-t[1]/n,e[2]=-t[2]/n,e[3]=t[3]/n,e[4]=-t[4]/n,e[5]=-t[5]/n,e[6]=-t[6]/n,e[7]=t[7]/n,e}function Qr(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],e[4]=-t[4],e[5]=-t[5],e[6]=-t[6],e[7]=t[7],e}var ei=fr,ti=ei,ni=pr,ai=ni;function ri(e,t){var n=ni(t);if(n>0){n=Math.sqrt(n);var a=t[0]/n,r=t[1]/n,i=t[2]/n,s=t[3]/n,l=t[4],o=t[5],u=t[6],c=t[7],d=a*l+r*o+i*u+s*c;e[0]=a,e[1]=r,e[2]=i,e[3]=s,e[4]=(l-a*d)/n,e[5]=(o-r*d)/n,e[6]=(u-i*d)/n,e[7]=(c-s*d)/n}return e}function ii(e){return"quat2("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+", "+e[6]+", "+e[7]+")"}function si(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]}function li(e,t){var n=e[0],a=e[1],r=e[2],i=e[3],s=e[4],l=e[5],o=e[6],u=e[7],c=t[0],d=t[1],h=t[2],f=t[3],m=t[4],p=t[5],_=t[6],g=t[7];return Math.abs(n-c)<=v*Math.max(1,Math.abs(n),Math.abs(c))&&Math.abs(a-d)<=v*Math.max(1,Math.abs(a),Math.abs(d))&&Math.abs(r-h)<=v*Math.max(1,Math.abs(r),Math.abs(h))&&Math.abs(i-f)<=v*Math.max(1,Math.abs(i),Math.abs(f))&&Math.abs(s-m)<=v*Math.max(1,Math.abs(s),Math.abs(m))&&Math.abs(l-p)<=v*Math.max(1,Math.abs(l),Math.abs(p))&&Math.abs(o-_)<=v*Math.max(1,Math.abs(o),Math.abs(_))&&Math.abs(u-g)<=v*Math.max(1,Math.abs(u),Math.abs(g))}function oi(){var e=new A(2);return A!=Float32Array&&(e[0]=0,e[1]=0),e}function ui(e){var t=new A(2);return t[0]=e[0],t[1]=e[1],t}function ci(e,t){var n=new A(2);return n[0]=e,n[1]=t,n}function di(e,t){return e[0]=t[0],e[1]=t[1],e}function hi(e,t,n){return e[0]=t,e[1]=n,e}function fi(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e}function mi(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e}function pi(e,t,n){return e[0]=t[0]*n[0],e[1]=t[1]*n[1],e}function _i(e,t,n){return e[0]=t[0]/n[0],e[1]=t[1]/n[1],e}function gi(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e}function bi(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e}function wi(e,t,n){return e[0]=Math.min(t[0],n[0]),e[1]=Math.min(t[1],n[1]),e}function vi(e,t,n){return e[0]=Math.max(t[0],n[0]),e[1]=Math.max(t[1],n[1]),e}function Ai(e,t){return e[0]=Math.round(t[0]),e[1]=Math.round(t[1]),e}function yi(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e}function Si(e,t,n,a){return e[0]=t[0]+n[0]*a,e[1]=t[1]+n[1]*a,e}function Ti(e,t){var n=t[0]-e[0],a=t[1]-e[1];return Math.hypot(n,a)}function xi(e,t){var n=t[0]-e[0],a=t[1]-e[1];return n*n+a*a}function Ei(e){var t=e[0],n=e[1];return Math.hypot(t,n)}function Li(e){var t=e[0],n=e[1];return t*t+n*n}function Ii(e,t){return e[0]=-t[0],e[1]=-t[1],e}function Ui(e,t){return e[0]=1/t[0],e[1]=1/t[1],e}function Ri(e,t){var n=t[0],a=t[1],r=n*n+a*a;return r>0&&(r=1/Math.sqrt(r)),e[0]=t[0]*r,e[1]=t[1]*r,e}function Ci(e,t){return e[0]*t[0]+e[1]*t[1]}function Mi(e,t,n){var a=t[0]*n[1]-t[1]*n[0];return e[0]=e[1]=0,e[2]=a,e}function Bi(e,t,n,a){var r=t[0],i=t[1];return e[0]=r+a*(n[0]-r),e[1]=i+a*(n[1]-i),e}function Ni(e,t){t=t||1;var n=2*y()*Math.PI;return e[0]=Math.cos(n)*t,e[1]=Math.sin(n)*t,e}function Pi(e,t,n){var a=t[0],r=t[1];return e[0]=n[0]*a+n[2]*r,e[1]=n[1]*a+n[3]*r,e}function ki(e,t,n){var a=t[0],r=t[1];return e[0]=n[0]*a+n[2]*r+n[4],e[1]=n[1]*a+n[3]*r+n[5],e}function Oi(e,t,n){var a=t[0],r=t[1];return e[0]=n[0]*a+n[3]*r+n[6],e[1]=n[1]*a+n[4]*r+n[7],e}function Di(e,t,n){var a=t[0],r=t[1];return e[0]=n[0]*a+n[4]*r+n[12],e[1]=n[1]*a+n[5]*r+n[13],e}function Fi(e,t,n,a){var r=t[0]-n[0],i=t[1]-n[1],s=Math.sin(a),l=Math.cos(a);return e[0]=r*l-i*s+n[0],e[1]=r*s+i*l+n[1],e}function Gi(e,t){var n=e[0],a=e[1],r=t[0],i=t[1],s=Math.sqrt(n*n+a*a)*Math.sqrt(r*r+i*i),l=s&&(n*r+a*i)/s;return Math.acos(Math.min(Math.max(l,-1),1))}function Vi(e){return e[0]=0,e[1]=0,e}function Ki(e){return"vec2("+e[0]+", "+e[1]+")"}function Hi(e,t){return e[0]===t[0]&&e[1]===t[1]}function zi(e,t){var n=e[0],a=e[1],r=t[0],i=t[1];return Math.abs(n-r)<=v*Math.max(1,Math.abs(n),Math.abs(r))&&Math.abs(a-i)<=v*Math.max(1,Math.abs(a),Math.abs(i))}var ji=Ei,Xi=mi,$i=pi,Ji=_i,Wi=Ti,qi=xi,Yi=Li,Zi=function(){var e=oi();return function(t,n,a,r,i,s){var l,o;for(n||(n=2),a||(a=0),o=r?Math.min(r*n+a,t.length):t.length,l=a;l<o;l+=n)e[0]=t[l],e[1]=t[l+1],i(e,e,s),t[l]=e[0],t[l+1]=e[1];return t}}();const Qi=Zt(1,0,0),es=Zt(0,1,0),ts=Zt(0,0,1),ns=Wt(),as=Zt(1,1,1),rs=ir(0,0,0,0),is=Ma(),ss=jn();function ls(e,t,n,a){const r=2*(t[0]-a[0])/a[2]-1,i=1-2*(t[1]-a[1])/a[3],s=2*t[2]-1;return Wn(ss,r,i,s,1),ba(ss,ss,n),en(e,ss[0]/ss[3],ss[1]/ss[3],ss[2]/ss[3]),e}function os(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]}function us(e,t,n){return e[0]*t+e[1]*n+e[3]}function cs(e,t,n,a){return e[0]*t+e[1]*n+e[2]*a+e[3]}function ds(e,t,n,a,r,i){-1===i&&(i=0);for(let s=0;s<6;s++){const l=(i+s)%6;if(cs(e[l],t,n,a)<=-r)return l}return-1}function hs(e,t,n,a,r,i){-1===i&&(i=0);for(let s=0;s<6;s++){const l=(i+s)%6,o=e[l];if(us(o,t,a)<0&&us(o,t,r)<0&&us(o,n,r)<0&&us(o,n,a)<0)return l}return-1}function fs(e){return Math.hypot(e[0],e[1],e[2])}function ms(e,t){const n=fs(t);e[0]=t[0]/n,e[1]=t[1]/n,e[2]=t[2]/n,e[3]=t[3]/n}function ps(e,t){const n=t[0],a=t[4],r=t[8],i=t[12],s=t[1],l=t[5],o=t[9],u=t[13],c=t[2],d=t[6],h=t[10],f=t[14],m=t[3],p=t[7],_=t[11],g=t[15];let b;b=e[0],b[0]=m+n,b[1]=p+a,b[2]=_+r,b[3]=g+i,b=e[1],b[0]=m-n,b[1]=p-a,b[2]=_-r,b[3]=g-i,b=e[2],b[0]=m-s,b[1]=p-l,b[2]=_-o,b[3]=g-u,b=e[3],b[0]=m+s,b[1]=p+l,b[2]=_+o,b[3]=g+u,b=e[4],b[0]=m+c,b[1]=p+d,b[2]=_+h,b[3]=g+f,b=e[5],b[0]=m-c,b[1]=p-d,b[2]=_-h,b[3]=g-f,ms(e[0],e[0]),ms(e[1],e[1]),ms(e[2],e[2]),ms(e[3],e[3]),ms(e[4],e[4]),ms(e[5],e[5])}const _s=Wt(),gs=Wt(),bs=Wt();function ws(e,t,n,a){bn(_s,On(_s,n,t)),bn(gs,vn(gs,a,_s)),vn(bs,gs,_s);const r=gs[0]+bs[2]+_s[1];if(r>0){const t=.5/Math.sqrt(r+1);e[3]=.25/t,e[0]=(bs[1]-_s[2])*t,e[2]=(_s[0]-gs[1])*t,e[1]=(gs[2]-bs[0])*t}else if(gs[0]>bs[2]&&gs[0]>_s[1]){const t=2*Math.sqrt(1+gs[0]-bs[2]-_s[1]);e[3]=(bs[1]-_s[2])/t,e[0]=.25*t,e[2]=(bs[0]+gs[2])/t,e[1]=(_s[0]+gs[1])/t}else if(bs[2]>_s[1]){const t=2*Math.sqrt(1+bs[2]-gs[0]-_s[1]);e[3]=(_s[0]-gs[1])/t,e[0]=(bs[0]+gs[2])/t,e[2]=.25*t,e[1]=(_s[2]+bs[1])/t}else{const t=2*Math.sqrt(1+_s[1]-gs[0]-bs[2]);e[3]=(gs[2]-bs[0])/t,e[0]=(_s[0]+gs[1])/t,e[2]=(_s[2]+bs[1])/t,e[1]=.25*t}return e}function vs(e){return e*(Math.PI/180)}function As(e){return e*(180/Math.PI)}function ys(e,t){return e+Math.random()*(t-e)}function Ss(e,t,n){return Math.min(Math.max(e,t),n)}function Ts(e,t,n){return e+n*(t-e)}function xs(e,t,n,a,r){const i=r*r;return e*(i*(2*r-3)+1)+t*(i*(r-2)+r)+n*(i*(r-1))+a*(i*(3-2*r))}function Es(e,t,n,a,r){const i=1-r,s=r*r,l=i*i;return e*(l*i)+t*(3*r*l)+n*(3*s*i)+a*(s*r)}function Ls(e,t){const n=Math.sign(t);if(0===n)return 0;return Math.sign(e)!==n?-e:e}function Is(e){return e--,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e}function Us(e){return 0!==e&&!(e&e-1)}let Rs,Cs,Ms,Bs;function Ns(e){return new Promise((t,n)=>{const a=URL.createObjectURL(e),r=new Image;r.onload=()=>{t(r)},r.onerror=e=>{n(e)},r.src=a})}function Ps(e){return new Promise((t,n)=>{const a=URL.createObjectURL(e),r=new Image;r.onload=()=>{URL.revokeObjectURL(a),Rs.width=r.width,Rs.height=r.height,Cs.drawImage(r,0,0),t(Cs.getImageData(0,0,r.width,r.height))},r.onerror=e=>{n(e)},r.src=a})}function ks(e){return new Promise(t=>{Rs.width=e.width,Rs.height=e.height,Cs.putImageData(e,0,0),Rs.toBlob(e=>{t(e)})})}function Os(e){return Rs.width=e.width,Rs.height=e.height,Cs.putImageData(e,0,0),Rs.toDataURL()}function Ds(e){const t=new Image;return t.src=Os(e),t}function Fs(e){const t=e.width,n=e.height;return Rs.width=t,Rs.height=n,Cs.drawImage(e,0,0),Cs.getImageData(0,0,t,n)}function Gs(e,t,n){return e instanceof ImageData?(Rs.width=e.width,Rs.height=e.height,Cs.putImageData(e,0,0),Ms.width=t,Ms.height=n,Bs.drawImage(Rs,0,0,t,n),Bs.getImageData(0,0,t,n)):(Rs.width=t,Rs.height=n,Cs.drawImage(e,0,0,t,n),Cs.getImageData(0,0,t,n))}"object"==typeof window&&(Rs=document.createElement("canvas"),Cs=Rs.getContext("2d"),Ms=document.createElement("canvas"),Bs=Ms.getContext("2d"));const Vs=new TextDecoder,Ks=new TextEncoder;function Hs(e){return Vs.decode(e)}function zs(e){return Ks.encode(e)}function js(e){let t=e.length;for(let n=e.length-1;n>=0;n--){const a=e.charCodeAt(n);a>127&&a<=2047?t++:a>2047&&a<=65535&&(t+=2),a>=56320&&a<=57343&&n--}return t}function Xs(e,t){const n=[];let a=0,r=0;for(let i=0,s=e.length;i<s;i++){const s=e.charCodeAt(i);s<128?r+=1:s<2048?r+=2:s<55296||s>=57344?r+=3:(i++,r+=4),r>=t-3&&(n.push(e.substr(a,i)),a+=i,r=0)}return r>0&&n.push(e.substr(a)),n}function $s(e){return e instanceof Uint8Array?e:"string"==typeof e?zs(e):new Uint8Array(e)}function Js(e,t,n=0,a=1/0){const r=Math.max(n,0),i=Math.min(r+a,e.length);let s=0,l=t.charCodeAt(0);for(let n=r;n<i;n++){if(e[n]===l){if(s+=1,s===t.length)return!0;l=t.charCodeAt(s)}else s>0&&(s=0,l=t.charCodeAt(0))}return!1}const Ws=new ArrayBuffer(8),qs=new Int8Array(Ws),Ys=new Int16Array(Ws),Zs=new Int32Array(Ws),Qs=new Uint8Array(Ws),el=new Uint16Array(Ws),tl=new Uint32Array(Ws),nl=new Float32Array(Ws),al=new Float64Array(Ws);function rl(e){return Qs[0]=e,qs[0]}function il(e,t){return Qs[0]=e,Qs[1]=t,Ys[0]}function sl(e,t,n,a){return Qs[0]=e,Qs[1]=t,Qs[2]=n,Qs[3]=a,Zs[0]}function ll(e,t){return Qs[0]=e,Qs[1]=t,el[0]}function ol(e,t,n,a){return Qs[0]=e,Qs[1]=t,Qs[2]=n,Qs[3]=a,tl[0]}function ul(e,t,n,a){return Qs[0]=e,Qs[1]=t,Qs[2]=n,Qs[3]=a,nl[0]}function cl(e,t,n,a,r,i,s,l){return Qs[0]=e,Qs[1]=t,Qs[2]=n,Qs[3]=a,Qs[4]=r,Qs[5]=i,Qs[6]=s,Qs[7]=l,al[0]}function dl(e){return Qs[0]=e,qs[0]}function hl(e,t){return Ys[0]=t,e[0]=Qs[0],e[1]=Qs[1],e}function fl(e,t){return Zs[0]=t,e[0]=Qs[0],e[1]=Qs[1],e[2]=Qs[2],e[3]=Qs[3],e}function ml(e,t){return el[0]=t,e[0]=Qs[0],e[1]=Qs[1],e}function pl(e,t){return tl[0]=t,e[0]=Qs[0],e[1]=Qs[1],e[2]=Qs[2],e[3]=Qs[3],e}function _l(e,t){return nl[0]=t,e[0]=Qs[0],e[1]=Qs[1],e[2]=Qs[2],e[3]=Qs[3],e}function gl(e,t){return al[0]=t,e[0]=Qs[0],e[1]=Qs[1],e[2]=Qs[2],e[3]=Qs[3],e[4]=Qs[4],e[5]=Qs[5],e[6]=Qs[6],e[7]=Qs[7],e}function bl(e){return tl[0]=e,tl[0]}function wl(e){const t=[];for(;e>0;)t.push(String.fromCharCode(e%256)),e=Math.floor(e/256);return t.reverse().join("")}const vl=new Uint8Array(8);class Al{constructor(e,t,n){this.index=0;const a=$s(e);t=t||0,n=n||a.length,this.buffer=e,this.uint8array=a.subarray(t,t+n),this.byteLength=n,this.remaining=n}substream(e){if(this.remaining<e)throw new Error(`ByteStream: substream: want ${e} bytes but have ${this.remaining}`);const t=this.index;return this.index+=e,new Al(this.uint8array.subarray(t,t+e))}skip(e){if(this.remaining<e)throw new Error(`ByteStream: skip: premature end - want ${e} bytes but have ${this.remaining}`);this.index+=e,this.remaining-=e}seek(e){this.index=e,this.remaining=this.byteLength-e}read(e){if(this.remaining<e)throw new Error(`ByteStream: read: premature end - want ${e} bytes but have ${this.remaining}`);const t=this.uint8array,n=this.index;let a=function(e,t,n=0,a=1/0){const r=Math.max(n,0),i=Math.min(r+a,e.length);for(let n=r;n<i;n++)if(e[n]===t)return n;return-1}(t,0,n,e);return-1===a&&(a=n+e),this.index+=e,this.remaining-=e,Hs(t.subarray(n,a))}readNull(){if(this.remaining<1)throw new Error("ByteStream: readNull: premature end - want at least 1 byte but have 0");const e=this.uint8array,t=this.index;let n=e.indexOf(0,t);-1===n&&(n=e.length-1);const a=n-t+1;return this.index+=a,this.remaining-=a,Hs(e.subarray(t,n))}readBinary(e){if(this.remaining<e)throw new Error(`ByteStream: readBinary: premature end - want ${e} bytes but have ${this.remaining}`);const t=this.uint8array,n=this.index;let a="";for(let r=0;r<e;r++)a+=String.fromCharCode(t[n+r]);return this.index+=e,this.remaining-=e,a}readInt8(){if(this.remaining<1)throw new Error(`ByteStream: readInt8: premature end - want 1 byte but have ${this.remaining}`);const e=this.index,t=rl(this.uint8array[e]);return this.index+=1,this.remaining-=1,t}readInt16(){if(this.remaining<2)throw new Error(`ByteStream: readInt16: premature end - want 2 bytes but have ${this.remaining}`);const e=this.index,t=this.uint8array,n=il(t[e],t[e+1]);return this.index+=2,this.remaining-=2,n}readInt32(){if(this.remaining<4)throw new Error(`ByteStream: readInt32: premature end - want 4 bytes but have ${this.remaining}`);const e=this.index,t=this.uint8array,n=sl(t[e],t[e+1],t[e+2],t[e+3]);return this.index+=4,this.remaining-=4,n}readUint8(){if(this.remaining<1)throw new Error(`ByteStream: readUint8: premature end - want 1 byte but have ${this.remaining}`);const e=this.uint8array[this.index];return this.index+=1,this.remaining-=1,e}readUint16(){if(this.remaining<2)throw new Error(`ByteStream: readUint16: premature end - want 2 bytes but have ${this.remaining}`);const e=this.index,t=this.uint8array,n=ll(t[e],t[e+1]);return this.index+=2,this.remaining-=2,n}readUint32(){if(this.remaining<4)throw new Error(`ByteStream: readUint32: premature end - want 4 bytes but have ${this.remaining}`);const e=this.index,t=this.uint8array,n=ol(t[e],t[e+1],t[e+2],t[e+3]);return this.index+=4,this.remaining-=4,n}readFloat32(){if(this.remaining<4)throw new Error(`ByteStream: readFloat32: premature end - want 4 bytes but have ${this.remaining}`);const e=this.index,t=this.uint8array,n=ul(t[e],t[e+1],t[e+2],t[e+3]);return this.index+=4,this.remaining-=4,n}readFloat64(){if(this.remaining<8)throw new Error(`ByteStream: readFloat64: premature end - want 8 bytes but have ${this.remaining}`);const e=this.index,t=this.uint8array,n=cl(t[e],t[e+1],t[e+2],t[e+3],t[e+4],t[e+5],t[e+6],t[e+7]);return this.index+=8,this.remaining-=8,n}readInt8Array(e){if(ArrayBuffer.isView(e)||(e=new Int8Array(e)),this.remaining<e.byteLength)throw new Error(`ByteStream: readInt8Array: premature end - want ${e.byteLength} bytes but have ${this.remaining}`);const t=this.index,n=this.uint8array;for(let a=0,r=e.length;a<r;a++)e[a]=rl(n[t+a]);return this.index+=e.byteLength,this.remaining-=e.byteLength,e}readInt16Array(e){if(ArrayBuffer.isView(e)||(e=new Int16Array(e)),this.remaining<e.byteLength)throw new Error(`ByteStream: readInt16Array: premature end - want ${e.byteLength} bytes but have ${this.remaining}`);const t=this.index,n=this.uint8array;for(let a=0,r=e.length;a<r;a++){const r=t+2*a;e[a]=il(n[r],n[r+1])}return this.index+=e.byteLength,this.remaining-=e.byteLength,e}readInt32Array(e){if(ArrayBuffer.isView(e)||(e=new Int32Array(e)),this.remaining<e.byteLength)throw new Error(`ByteStream: readInt32Array: premature end - want ${e.byteLength} bytes but have ${this.remaining}`);const t=this.index,n=this.uint8array;for(let a=0,r=e.length;a<r;a++){const r=t+4*a;e[a]=sl(n[r],n[r+1],n[r+2],n[r+3])}return this.index+=e.byteLength,this.remaining-=e.byteLength,e}readUint8Array(e){if(ArrayBuffer.isView(e)||(e=new Uint8Array(e)),this.remaining<e.byteLength)throw new Error(`ByteStream: readUint8Array: premature end - want ${e.byteLength} bytes but have ${this.remaining}`);const t=this.index,n=this.uint8array;for(let a=0,r=e.length;a<r;a++)e[a]=n[t+a];return this.index+=e.byteLength,this.remaining-=e.byteLength,e}readUint16Array(e){if(ArrayBuffer.isView(e)||(e=new Uint16Array(e)),this.remaining<e.byteLength)throw new Error(`ByteStream: readUint16Array: premature end - want ${e.byteLength} bytes but have ${this.remaining}`);const t=this.index,n=this.uint8array;for(let a=0,r=e.length;a<r;a++){const r=t+2*a;e[a]=ll(n[r],n[r+1])}return this.index+=e.byteLength,this.remaining-=e.byteLength,e}readUint32Array(e){if(ArrayBuffer.isView(e)||(e=new Uint32Array(e)),this.remaining<e.byteLength)throw new Error(`ByteStream: readUint32Array: premature end - want ${e.byteLength} bytes but have ${this.remaining}`);const t=this.index,n=this.uint8array;for(let a=0,r=e.length;a<r;a++){const r=t+4*a;e[a]=ol(n[r],n[r+1],n[r+2],n[r+3])}return this.index+=e.byteLength,this.remaining-=e.byteLength,e}readFloat32Array(e){if(ArrayBuffer.isView(e)||(e=new Float32Array(e)),this.remaining<e.byteLength)throw new Error(`ByteStream: readFloat32Array: premature end - want ${e.byteLength} bytes but have ${this.remaining}`);const t=this.index,n=this.uint8array;for(let a=0,r=e.length;a<r;a++){const r=t+4*a;e[a]=ul(n[r],n[r+1],n[r+2],n[r+3])}return this.index+=e.byteLength,this.remaining-=e.byteLength,e}readFloat64Array(e){if(ArrayBuffer.isView(e)||(e=new Float64Array(e)),this.remaining<e.byteLength)throw new Error(`ByteStream: readFloat64Array: premature end - want ${e.byteLength} bytes but have ${this.remaining}`);const t=this.index,n=this.uint8array;for(let a=0,r=e.length;a<r;a++){const r=t+8*a;e[a]=cl(n[r],n[r+1],n[r+2],n[r+3],n[r+4],n[r+5],n[r+6],n[r+7])}return this.index+=e.byteLength,this.remaining-=e.byteLength,e}write(e){const t=zs(e);return this.writeUint8Array(t),t.length}writeNull(e){const t=this.write(e);return this.index++,this.remaining--,t+1}writeBinary(e){const t=this.index,n=this.uint8array,a=e.length;for(let r=0;r<a;r++)n[t+r]=e.charCodeAt(r);this.index+=a}writeInt8(e){this.uint8array[this.index]=dl(e),this.index+=1}writeInt16(e){const t=this.index,n=this.uint8array;hl(vl,e),n[t]=vl[0],n[t+1]=vl[1],this.index+=2}writeInt32(e){const t=this.index,n=this.uint8array;fl(vl,e),n[t]=vl[0],n[t+1]=vl[1],n[t+2]=vl[2],n[t+3]=vl[3],this.index+=4}writeUint8(e){this.uint8array[this.index]=e,this.index+=1}writeUint16(e){const t=this.index,n=this.uint8array;ml(vl,e),n[t]=vl[0],n[t+1]=vl[1],this.index+=2}writeUint32(e){const t=this.index,n=this.uint8array;pl(vl,e),n[t]=vl[0],n[t+1]=vl[1],n[t+2]=vl[2],n[t+3]=vl[3],this.index+=4}writeFloat32(e){const t=this.index,n=this.uint8array;_l(vl,e),n[t]=vl[0],n[t+1]=vl[1],n[t+2]=vl[2],n[t+3]=vl[3],this.index+=4}writeFloat64(e){const t=this.index,n=this.uint8array;gl(vl,e),n[t]=vl[0],n[t+1]=vl[1],n[t+2]=vl[2],n[t+3]=vl[3],n[t+4]=vl[4],n[t+5]=vl[5],n[t+6]=vl[6],n[t+7]=vl[7],this.index+=8}writeInt8Array(e){const t=this.index,n=this.uint8array;for(let a=0,r=e.length;a<r;a++)n[t+a]=dl(e[a]);this.index+=e.byteLength}writeInt16Array(e){const t=this.index,n=this.uint8array;for(let a=0,r=e.length;a<r;a++){const r=t+2*a;hl(vl,e[a]),n[r]=vl[0],n[r+1]=vl[1]}this.index+=e.byteLength}writeInt32Array(e){const t=this.index,n=this.uint8array;for(let a=0,r=e.length;a<r;a++){const r=t+4*a;fl(vl,e[a]),n[r]=vl[0],n[r+1]=vl[1],n[r+2]=vl[2],n[r+3]=vl[3]}this.index+=e.byteLength}writeUint8Array(e){const t=this.index,n=this.uint8array;for(let a=0,r=e.length;a<r;a++)n[t+a]=e[a];this.index+=e.byteLength}writeUint16Array(e){const t=this.index,n=this.uint8array;for(let a=0,r=e.length;a<r;a++){const r=t+2*a;ml(vl,e[a]),n[r]=vl[0],n[r+1]=vl[1]}this.index+=e.byteLength}writeUint32Array(e){const t=this.index,n=this.uint8array;for(let a=0,r=e.length;a<r;a++){const r=t+4*a;pl(vl,e[a]),n[r]=vl[0],n[r+1]=vl[1],n[r+2]=vl[2],n[r+3]=vl[3]}this.index+=e.byteLength}writeFloat32Array(e){const t=this.index,n=this.uint8array;for(let a=0,r=e.length;a<r;a++){const r=t+4*a;_l(vl,e[a]),n[r]=vl[0],n[r+1]=vl[1],n[r+2]=vl[2],n[r+3]=vl[3]}this.index+=e.byteLength}writeFloat64Array(e){const t=this.index,n=this.uint8array;for(let a=0,r=e.length;a<r;a++){const r=t+8*a;gl(vl,e[a]),n[r]=vl[0],n[r+1]=vl[1],n[r+2]=vl[2],n[r+3]=vl[3],n[r+4]=vl[4],n[r+5]=vl[5],n[r+6]=vl[6],n[r+7]=vl[7]}this.index+=e.byteLength}}class yl{constructor(e,t,n){this.index=0,this.bitBuffer=0,this.bits=0;const a=$s(e);t=t||0,n=n||a.length,this.buffer=e,this.uint8array=a.subarray(t,t+n),this.byteLength=e.byteLength}peekBits(e){return this.loadBits(e),this.bitBuffer&(1<<e)-1}readBits(e){const t=this.peekBits(e);return this.bitBuffer>>>=e,this.bits-=e,t}skipBits(e){this.loadBits(e),this.bitBuffer>>>=e,this.bits-=e}loadBits(e){for(;this.bits<e;)this.bitBuffer+=this.uint8array[this.index]<<this.bits,this.bits+=8,this.index+=1}}function Sl(e){if(e&&e.length){let t=e.lastIndexOf("/");return-1!==t&&(e=e.slice(t+1)),t=e.lastIndexOf("\\"),-1!==t&&(e=e.slice(t+1)),e}return""}function Tl(e){if(e&&e.length){const t=e.lastIndexOf(".");return-1!==t&&(e=e.slice(t).toLowerCase()),e}return""}function xl(e){const t=(e=Sl(e)).lastIndexOf(".");return-1!==t&&(e=e.slice(0,t)),e}function El(e){return e instanceof ArrayBuffer&&(e=new Uint8Array(e)),e instanceof Uint8Array&&137===e[0]&&80===e[1]&&78===e[2]&&71===e[3]&&13===e[4]&&10===e[5]&&26===e[6]&&10===e[7]}function Ll(e){return e instanceof ArrayBuffer&&(e=new Uint8Array(e)),e instanceof Uint8Array&&255===e[0]&&216===e[1]&&255===e[e.length-2]&&217===e[e.length-1]}function Il(e){return e instanceof ArrayBuffer&&(e=new Uint8Array(e)),e instanceof Uint8Array&&71===e[0]&&73===e[1]&&70===e[2]&&56===e[3]&&(55===e[4]||57===e[4])&&97===e[5]}function Ul(e){return e instanceof ArrayBuffer&&(e=new Uint8Array(e)),e instanceof Uint8Array&&82===e[0]&&73===e[1]&&70===e[2]&&70===e[3]&&87===e[8]&&69===e[9]&&66===e[10]&&80===e[11]}const Rl={glMatrix:h,glMatrixAddon:f,math:m,canvas:p,BinaryStream:Al,BitStream:yl,urlWithParams:function(e,t){if(t){const n=Object.entries(t);if(n.length){const t=n.map(([e,t])=>`${e}=${t}`).join("&");let a="&";return-1===e.indexOf("?")&&(a="?"),`${e}${a}${t}`}}return e},path:_,isPng:El,isJpeg:Ll,isGif:Il,isWebP:Ul};class Cl{constructor(){this.properties=new Map,this.sections=new Map}load(e){let t=this.properties;const n=this.sections;for(const a of e.split("\r\n"))if(a.length&&!a.startsWith("//")&&!a.startsWith(";")){let e=a.match(/^\[(.+?)\]/);if(e){const a=e[1].trim();t=n.get(a),t||(t=new Map,n.set(a,t))}else if(e=a.match(/^(.+?)=(.*?)$/),e){let n=e[2];'"'===n[0]&&(n=n.slice(1,-1)),t.set(e[1],n)}}}save(){const e=[];for(const[t,n]of this.properties)e.push(`${t}=${n}`);for(const[t,n]of this.sections){e.push(`[${t}]`);for(const[t,a]of n)e.push(`${t}=${a}`)}return e.join("\r\n")}getSection(e){return this.sections.get(e)}}const Ml={File:Cl};class Bl{constructor(){this.rows=[]}load(e){if(!e.startsWith("ID"))throw new Error("WrongMagicNumber");const t=this.rows;let n=0,a=0;for(const r of e.split("\n"))if("B"!==r[0])for(const e of r.split(";")){const r=e[0],i=e.substring(1).trim();let s;"X"===r?n=parseInt(i,10)-1:"Y"===r?a=parseInt(i,10)-1:"K"===r&&(t[a]||(t[a]=[]),s='"'===i[0]?i.slice(1,-1):i,t[a][n]=s)}}save(){const e=this.rows,t=e.length,n=[];let a=0;for(let r=0;r<t;r++){const t=e[r],i=t.length;i>a&&(a=i);let s=!0;for(let e=0;e<i;e++){const a=t[e];if(void 0!==a){let t;t="string"==typeof a?`"${a}"`:"boolean"==typeof a?a?"TRUE":"FALSE":`${a}`,s?(s=!1,n.push(`C;X${e+1};Y${r+1};K${t}`)):n.push(`C;X${e+1};K${t}`)}}}return`ID;P\r\nB;X${a};Y${t}\r\n${n.join("\r\n")}\r\nE`}}const Nl={File:Bl};function Pl(e){return[...e].reverse().join("")}class kl{constructor(){this.index=null,this.entries=0,this.id=0,this.flags=0}load(e,t){this.index=t,this.entries=e.readUint32(),this.id=e.readUint32(),this.flags=e.readUint32()}get(){if(this.index&&0!==this.id&&0!==this.entries)return this.index[this.id].entries}first(){const e=this.get();if(e)return e[0]}}class Ol{constructor(){this.version=-1,this.tag="",this.offset=0,this.entries=0,this.model=new kl}load(e,t,n){this.version=t,this.tag=Pl(e.readBinary(4)),this.offset=e.readUint32(),this.entries=e.readUint32(),this.model.load(e,n)}}class Dl{constructor(){this.min=new Float32Array(3),this.max=new Float32Array(3),this.radius=0}load(e){e.readFloat32Array(this.min),e.readFloat32Array(this.max),this.radius=e.readFloat32()}}class Fl{constructor(){this.shape=-1,this.bone=-1,this.unknown0=0,this.matrix=new Float32Array(16),this.unknown1=0,this.unknown2=0,this.unknown3=0,this.unknown4=0,this.unknown5=0,this.unknown6=0,this.size=new Float32Array(3)}load(e){this.shape=e.readUint32(),this.bone=e.readInt16(),this.unknown0=e.readUint16(),e.readFloat32Array(this.matrix),this.unknown1=e.readUint32(),this.unknown2=e.readUint32(),this.unknown3=e.readUint32(),this.unknown4=e.readUint32(),this.unknown5=e.readUint32(),this.unknown6=e.readUint32(),e.readFloat32Array(this.size)}}class Gl{constructor(){this.interpolationType=0,this.animFlags=0,this.animId=-1,this.initValue=null,this.nullValue=null}load(e){this.interpolationType=e.readUint16(),this.animFlags=e.readUint16(),this.animId=e.readUint32(),this.readInitNullValues(e),e.skip(4)}}class Vl extends Gl{readInitNullValues(e){this.initValue=e.readUint8Array(4),this.nullValue=e.readUint8Array(4)}}class Kl extends Gl{readInitNullValues(e){this.initValue=e.readUint16(),this.nullValue=e.readUint16()}}class Hl extends Gl{readInitNullValues(e){this.initValue=e.readUint32(),this.nullValue=e.readUint32()}}class zl extends Gl{readInitNullValues(e){this.initValue=e.readFloat32(),this.nullValue=e.readFloat32()}}class jl extends Gl{readInitNullValues(e){this.initValue=e.readFloat32Array(2),this.nullValue=e.readFloat32Array(2)}}class Xl extends Gl{readInitNullValues(e){this.initValue=e.readFloat32Array(3),this.nullValue=e.readFloat32Array(3)}}class $l extends Gl{readInitNullValues(e){this.initValue=e.readFloat32Array(4),this.nullValue=e.readFloat32Array(4)}}class Jl{constructor(){this.version=-1,this.keys=new kl,this.flags=0,this.biggestKey=-1,this.values=new kl}load(e,t,n){this.version=t,this.keys.load(e,n),this.flags=e.readUint32(),this.biggestKey=e.readUint32(),this.values.load(e,n)}}class Wl{constructor(e,t,n){this.stream=e,this.version=t,this.index=n}}const ql={MD34:[Ol,{11:24}],MODL:[class{constructor(){this.version=-1,this.modelName=new kl,this.flags=0,this.sequences=new kl,this.stc=new kl,this.stg=new kl,this.unknown0=0,this.unknown1=0,this.unknown2=0,this.unknown3=0,this.sts=new kl,this.bones=new kl,this.numberOfBonesToCheckForSkin=0,this.vertexFlags=0,this.vertices=new kl,this.divisions=new kl,this.boneLookup=new kl,this.boundings=new Dl,this.unknown4To20=new Uint32Array(16),this.attachmentPoints=new kl,this.attachmentPointAddons=new kl,this.ligts=new kl,this.shbxData=new kl,this.cameras=new kl,this.unknown21=new kl,this.materialReferences=new kl,this.materials=[],this.particleEmitters=new kl,this.particleEmitterCopies=new kl,this.ribbonEmitters=new kl,this.projections=new kl,this.forces=new kl,this.warps=new kl,this.unknown22=new kl,this.rigidBodies=new kl,this.unknown23=new kl,this.physicsJoints=new kl,this.clothBehavior=new kl,this.unknown24=new kl,this.ikjtData=new kl,this.unknown25=new kl,this.unknown26=new kl,this.partsOfTurrentBehaviors=new kl,this.turrentBehaviors=new kl,this.absoluteInverseBoneRestPositions=new kl,this.tightHitTest=new Fl,this.fuzzyHitTestObjects=new kl,this.attachmentVolumes=new kl,this.attachmentVolumesAddon0=new kl,this.attachmentVolumesAddon1=new kl,this.billboardBehaviors=new kl,this.tmdData=new kl,this.unknown27=0,this.unknown28=new kl;for(let e=0;e<11;e++)this.materials[e]=new kl}load(e,t,n){this.version=t,this.modelName.load(e,n),this.flags=e.readUint32(),this.sequences.load(e,n),this.stc.load(e,n),this.stg.load(e,n),this.unknown0=e.readFloat32(),this.unknown1=e.readFloat32(),this.unknown2=e.readFloat32(),this.unknown3=e.readFloat32(),this.sts.load(e,n),this.bones.load(e,n),this.numberOfBonesToCheckForSkin=e.readUint32(),this.vertexFlags=e.readUint32(),this.vertices.load(e,n),this.divisions.load(e,n),this.boneLookup.load(e,n),this.boundings.load(e),e.readUint32Array(this.unknown4To20),this.attachmentPoints.load(e,n),this.attachmentPointAddons.load(e,n),this.ligts.load(e,n),this.shbxData.load(e,n),this.cameras.load(e,n),this.unknown21.load(e,n),this.materialReferences.load(e,n);for(let t=0;t<7;t++)this.materials[t].load(e,n);t>24&&this.materials[7].load(e,n),t>25&&this.materials[8].load(e,n),t>27&&this.materials[9].load(e,n),t>28&&this.materials[10].load(e,n),this.particleEmitters.load(e,n),this.particleEmitterCopies.load(e,n),this.ribbonEmitters.load(e,n),this.projections.load(e,n),this.forces.load(e,n),this.warps.load(e,n),this.unknown22.load(e,n),this.rigidBodies.load(e,n),this.unknown23.load(e,n),this.physicsJoints.load(e,n),t>27&&this.clothBehavior.load(e,n),this.unknown24.load(e,n),this.ikjtData.load(e,n),this.unknown25.load(e,n),t>24&&this.unknown26.load(e,n),this.partsOfTurrentBehaviors.load(e,n),this.turrentBehaviors.load(e,n),this.absoluteInverseBoneRestPositions.load(e,n),this.tightHitTest.load(e),this.fuzzyHitTestObjects.load(e,n),this.attachmentVolumes.load(e,n),this.attachmentVolumesAddon0.load(e,n),this.attachmentVolumesAddon1.load(e,n),this.billboardBehaviors.load(e,n),this.tmdData.load(e,n),this.unknown27=e.readUint32(),this.unknown28.load(e,n)}},{23:784,25:808,26:820,28:844,29:856}],SEQS:[class{constructor(){this.version=-1,this.name=new kl,this.interval=new Uint32Array(2),this.movementSpeed=0,this.flags=0,this.frequency=0,this.boundingSphere=new Dl}load(e,t,n){this.version=t,e.skip(8),this.name.load(e,n),e.readUint32Array(this.interval),this.movementSpeed=e.readFloat32(),this.flags=e.readUint32(),this.frequency=e.readUint32(),e.skip(12),t<2&&e.skip(4),this.boundingSphere.load(e),e.skip(12)}},{1:96,2:92}],STC_:[class{constructor(){this.version=-1,this.name=new kl,this.runsConcurrent=0,this.priority=0,this.stsIndex=-1,this.stsIndexCopy=-1,this.animIds=new kl,this.animRefs=new kl,this.sd=[];for(let e=0;e<13;e++)this.sd[e]=new kl}load(e,t,n){this.version=t,this.name.load(e,n),this.runsConcurrent=e.readUint16(),this.priority=e.readUint16(),this.stsIndex=e.readUint16(),this.stsIndexCopy=e.readUint16(),this.animIds.load(e,n),this.animRefs.load(e,n),e.skip(4);for(let t=0;t<13;t++)this.sd[t].load(e,n)}},{4:204}],STG_:[class{constructor(){this.version=-1,this.name=new kl,this.stcIndices=new kl}load(e,t,n){this.version=t,this.name.load(e,n),this.stcIndices.load(e,n)}},{0:24}],STS_:[class{constructor(){this.version=-1,this.animIds=new kl}load(e,t,n){this.version=t,this.animIds.load(e,n),e.skip(16)}},{0:28}],BONE:[class{constructor(){this.version=-1,this.unknown0=0,this.name=new kl,this.flags=0,this.parent=-1,this.unknown1=0,this.location=new Xl,this.rotation=new $l,this.scale=new Xl,this.visibility=new Hl}load(e,t,n){this.version=t,this.unknown0=e.readInt32(),this.name.load(e,n),this.flags=e.readUint32(),this.parent=e.readInt16(),this.unknown1=e.readUint16(),this.location.load(e),this.rotation.load(e),this.scale.load(e),this.visibility.load(e)}},{1:160}],DIV_:[class{constructor(){this.version=-1,this.triangles=new kl,this.regions=new kl,this.batches=new kl,this.MSEC=new kl,this.unknown0=0}load(e,t,n){this.version=t,this.triangles.load(e,n),this.regions.load(e,n),this.batches.load(e,n),this.MSEC.load(e,n),this.unknown0=e.readUint32()}},{2:52}],REGN:[class{constructor(){this.version=-1,this.unknown0=0,this.unknown1=0,this.firstVertexIndex=-1,this.verticesCount=0,this.firstTriangleIndex=-1,this.triangleIndicesCount=0,this.bonesCount=0,this.firstBoneLookupIndex=-1,this.boneLookupIndicesCount=0,this.unknown2=0,this.boneWeightPairsCount=0,this.unknown3=0,this.rootBoneIndex=-1,this.unknown4=0,this.unknown5=new Uint8Array(8)}load(e,t,n){this.version=t,this.unknown0=e.readUint32(),this.unknown1=e.readUint32(),this.firstVertexIndex=e.readUint32(),this.verticesCount=e.readUint32(),this.firstTriangleIndex=e.readUint32(),this.triangleIndicesCount=e.readUint32(),this.bonesCount=e.readUint16(),this.firstBoneLookupIndex=e.readUint16(),this.boneLookupIndicesCount=e.readUint16(),this.unknown2=e.readUint16(),this.boneWeightPairsCount=e.readUint8(),this.unknown3=e.readUint8(),this.rootBoneIndex=e.readUint16(),t>3&&(this.unknown4=e.readUint32()),t>4&&e.readUint8Array(this.unknown5)}},{3:36,4:40,5:48}],BAT_:[class{constructor(){this.version=-1,this.unknown0=0,this.regionIndex=-1,this.unknown1=0,this.materialReferenceIndex=-1,this.unknown2=0}load(e,t,n){this.version=t,this.unknown0=e.readUint32(),this.regionIndex=e.readUint16(),this.unknown1=e.readUint32(),this.materialReferenceIndex=e.readUint16(),this.unknown2=e.readUint16()}},{1:14}],MATM:[class{constructor(){this.version=-1,this.materialType=0,this.materialIndex=-1}load(e,t,n){this.version=t,this.materialType=e.readUint32(),this.materialIndex=e.readUint32()}},{0:8}],MAT_:[class{constructor(){this.version=-1,this.name=new kl,this.additionalFlags=0,this.flags=0,this.blendMode=0,this.priority=0,this.usedRTTChannels=0,this.specularity=0,this.depthBlendFalloff=0,this.cutoutThreshold=0,this.unknown1=0,this.unknown2=0,this.unknown3=0,this.specMult=0,this.emisMult=0,this.diffuseLayer=new kl,this.decalLayer=new kl,this.specularLayer=new kl,this.glossLayer=new kl,this.emissiveLayer=new kl,this.emissive2Layer=new kl,this.evioLayer=new kl,this.evioMaskLayer=new kl,this.alphaMaskLayer=new kl,this.alphaMask2Layer=new kl,this.normalLayer=new kl,this.heightLayer=new kl,this.lightMapLayer=new kl,this.ambientOcclusionLayer=new kl,this.unknown4=new kl,this.unknown5=new kl,this.unknown6=new kl,this.unknown7=new kl,this.unknown8=0,this.layerBlendType=0,this.emisBlendType=0,this.emisMode=0,this.specType=0,this.unknown9=new zl,this.unknown10=new Hl,this.unknown11=new Uint8Array(12)}load(e,t,n){this.version=t,this.name.load(e,n),this.additionalFlags=e.readUint32(),this.flags=e.readUint32(),this.blendMode=e.readUint32(),this.priority=e.readInt32(),this.usedRTTChannels=e.readUint32(),this.specularity=e.readFloat32(),this.depthBlendFalloff=e.readFloat32(),this.cutoutThreshold=e.readUint8(),this.unknown1=e.readUint8(),this.unknown2=e.readUint8(),this.unknown3=e.readUint8(),this.specMult=e.readFloat32(),this.emisMult=e.readFloat32(),this.diffuseLayer.load(e,n),this.decalLayer.load(e,n),this.specularLayer.load(e,n),t>15&&this.glossLayer.load(e,n),this.emissiveLayer.load(e,n),this.emissive2Layer.load(e,n),this.evioLayer.load(e,n),this.evioMaskLayer.load(e,n),this.alphaMaskLayer.load(e,n),this.alphaMask2Layer.load(e,n),this.normalLayer.load(e,n),this.heightLayer.load(e,n),this.lightMapLayer.load(e,n),this.ambientOcclusionLayer.load(e,n),t>18&&(this.unknown4.load(e,n),this.unknown5.load(e,n),this.unknown6.load(e,n),this.unknown7.load(e,n)),this.unknown8=e.readUint32(),this.layerBlendType=e.readUint32(),this.emisBlendType=e.readUint32(),this.emisMode=e.readUint32(),this.specType=e.readUint32(),this.unknown9.load(e),this.unknown10.load(e),t>18&&(this.unknown11=e.readUint8Array(this.unknown11))}},{15:268,16:280,17:280,18:280,19:340}],LAYR:[class{constructor(){this.version=-1,this.unknown0=0,this.imagePath=new kl,this.color=new Vl,this.flags=0,this.uvSource=-1,this.colorChannelSetting=0,this.brightMult=new zl,this.midtoneOffset=new zl,this.unknown1=0,this.noiseAmp=0,this.noiseFreq=0,this.rttChannel=0,this.videoFrameRate=0,this.videoStartFrame=0,this.videoEndFrame=0,this.videoMode=0,this.videoSyncTiming=0,this.videoPlay=new Hl,this.videoRestart=new Hl,this.flipBookRows=0,this.flipBookColumns=0,this.flipBookFrame=new Kl,this.uvOffset=new jl,this.uvAngle=new Xl,this.uvTiling=new jl,this.unknown2=new Hl,this.unknown3=new zl,this.brightness=new zl,this.triPlanarOffset=new Xl,this.triPlanarScale=new Xl,this.unknown4=0,this.fresnelType=0,this.fresnelExponent=0,this.fresnelMin=0,this.fresnelMaxOffset=0,this.unknown5=0,this.unknown6=new Uint8Array(8),this.fresnelInvertedMaskX=0,this.fresnelInvertedMaskY=0,this.fresnelInvertedMaskZ=0,this.fresnelRotationYaw=0,this.fresnelRotationPitch=0,this.unknown7=0}load(e,t,n){this.version=t,this.unknown0=e.readUint32(),this.imagePath.load(e,n),this.color.load(e),this.flags=e.readUint32(),this.uvSource=e.readUint32(),this.colorChannelSetting=e.readUint32(),this.brightMult.load(e),this.midtoneOffset.load(e),this.unknown1=e.readUint32(),t>23&&(this.noiseAmp=e.readFloat32(),this.noiseFreq=e.readFloat32()),this.rttChannel=e.readInt32(),this.videoFrameRate=e.readUint32(),this.videoStartFrame=e.readUint32(),this.videoEndFrame=e.readInt32(),this.videoMode=e.readUint32(),this.videoSyncTiming=e.readUint32(),this.videoPlay.load(e),this.videoRestart.load(e),this.flipBookRows=e.readUint32(),this.flipBookColumns=e.readUint32(),this.flipBookFrame.load(e),this.uvOffset.load(e),this.uvAngle.load(e),this.uvTiling.load(e),this.unknown2.load(e),this.unknown3.load(e),this.brightness.load(e),t>23&&(this.triPlanarOffset.load(e),this.triPlanarScale.load(e)),this.unknown4=e.readInt32(),this.fresnelType=e.readUint32(),this.fresnelExponent=e.readFloat32(),this.fresnelMin=e.readFloat32(),this.fresnelMaxOffset=e.readFloat32(),this.unknown5=e.readFloat32(),t>24&&(this.unknown6=e.readUint8Array(8),this.fresnelInvertedMaskX=e.readFloat32(),this.fresnelInvertedMaskY=e.readFloat32(),this.fresnelInvertedMaskZ=e.readFloat32(),this.fresnelRotationYaw=e.readFloat32(),this.fresnelRotationPitch=e.readFloat32(),this.unknown7=e.readUint32())}},{22:356,24:436,25:468,26:464}],EVNT:[class{constructor(){this.version=-1,this.name=new kl,this.unknown0=0,this.unknown1=0,this.unknown2=0,this.matrix=new Float32Array(16),this.unknown3=0,this.unknown4=0,this.unknown5=0,this.unknown6=0,this.unknown7=0,this.unknown8=0}load(e,t,n){this.version=t,this.name.load(e,n),this.unknown0=e.readInt32(),this.unknown1=e.readInt16(),this.unknown2=e.readUint16(),e.readFloat32Array(this.matrix),this.unknown3=e.readInt32(),this.unknown4=e.readInt32(),this.unknown5=e.readInt32(),t>0&&(this.unknown6=e.readInt32(),this.unknown7=e.readInt32()),t>1&&(this.unknown8=e.readInt32())}},{0:96,1:104,2:108}],BNDS:[Dl,{0:28}],ATT_:[class{constructor(){this.version=-1,this.unknown=0,this.name=new kl,this.bone=-1}load(e,t,n){this.version=t,this.unknown=e.readInt32(),this.name.load(e,n),this.bone=e.readUint32()}},{1:20}],CAM_:[class{constructor(){this.version=-1,this.bone=-1,this.name=new kl,this.fieldOfView=new zl,this.unknown0=0,this.farClip=new zl,this.nearClip=new zl,this.clip2=new zl,this.focalDepth=new zl,this.falloffStart=new zl,this.falloffEnd=new zl,this.depthOfField=new zl}load(e,t,n){this.version=t,this.bone=e.readUint32(),this.name.load(e,n),this.fieldOfView.load(e),this.unknown0=e.readUint32(),this.farClip.load(e),this.nearClip.load(e),this.clip2.load(e),this.focalDepth.load(e),this.falloffStart.load(e),this.falloffEnd.load(e),this.depthOfField.load(e)}},{3:180,5:264}],SDEV:[Jl,{0:32}],SDU6:[Jl,{0:32}],SDFG:[Jl,{0:32}],SDS6:[Jl,{0:32}],SDR3:[Jl,{0:32}],SD2V:[Jl,{0:32}],SD3V:[Jl,{0:32}],SD4Q:[Jl,{0:32}],SDCC:[Jl,{0:32}],SDMB:[Jl,{0:32}],FLAG:[Jl,{0:32}],MSEC:[Wl,{1:72}],LITE:[Wl,{7:212}],ATVL:[Wl,{0:116}],PATU:[Wl,{4:152}],TRGD:[Wl,{0:24}],DIS_:[Wl,{4:68}],CMS_:[Wl,{0:24}],CMP_:[Wl,{2:28}],TER_:[Wl,{0:24,1:28}],VOL_:[Wl,{0:84}],VON_:[Wl,{0:268}],CREP:[Wl,{0:24,1:28}],STBM:[Wl,{0:48}],LFSB:[Wl,{2:56}],LFLR:[Wl,{2:80,3:152}],PAR_:[Wl,{12:1316,17:1460,18:1464,19:1464,21:1464,22:1484,23:1492,24:1496}],PARC:[Wl,{0:40}],PROJ:[Wl,{4:388,5:382}],PHYJ:[Wl,{0:180}],PHCC:[Wl,{0:76}],PHAC:[Wl,{0:32}],PHCL:[Wl,{2:128}],FOR_:[Wl,{1:104,2:104}],DMSE:[Wl,{0:4}],PHSH:[Wl,{1:132,3:300}],PHRB:[Wl,{2:104,4:80}],SSGS:[Wl,{1:108}],BBSC:[Wl,{0:48}],SRIB:[Wl,{0:272}],RIB_:[Wl,{6:748,8:756,9:760}],IKJT:[Wl,{0:32}],SHBX:[Wl,{0:64}],WRP_:[Wl,{1:132}]};class Yl{constructor(e,t){const n=Pl(e.readBinary(4)),a=e.readUint32(),r=e.readUint32(),i=e.readUint32();this.index=t,this.tag=n,this.offset=a,this.version=i;const s=ql[n],l=e.index;if(e.seek(a),s){const a=s[0],l=s[1][i];if(!l)throw new Error(": Unsupported object version - tag "+n+" and version "+i);this.entries=[];for(let n=0,s=r;n<s;n++)if(a===Wl)this.entries[n]=new Wl(e.substream(l),i,t);else{const r=new a;r.load(e.substream(l),i,t),this.entries[n]=r}}else if("CHAR"===n||"SCHR"===n)this.entries=e.read(r);else if("U8__"===n)this.entries=e.readUint8Array(r);else if("U16_"===n)this.entries=e.readUint16Array(r);else if("U32_"===n)this.entries=e.readUint32Array(r);else if("I16_"===n)this.entries=e.readInt16Array(r);else if("I32_"===n)this.entries=e.readInt32Array(r);else if("REAL"===n)this.entries=e.readFloat32Array(r);else if("VEC2"===n){this.entries=[];for(let t=0;t<r;t++)this.entries[t]=e.readFloat32Array(2)}else if("VEC3"===n||"SVC3"===n){this.entries=[];for(let t=0;t<r;t++)this.entries[t]=e.readFloat32Array(3)}else if("VEC4"===n||"QUAT"===n){this.entries=[];for(let t=0;t<r;t++)this.entries[t]=e.readFloat32Array(4)}else{if("IREF"!==n)throw this.entries=[],new Error(": Unsupported object tag - tag "+n+" and version "+i);this.entries=[];for(let t=0;t<r;t++)this.entries[t]=e.readFloat32Array(16)}e.seek(l)}}class Zl{constructor(){this.index=[],this.model=null}load(e){const t=new Al(e),n=new Ol;if(n.load(t,11,this.index),"MD34"!==n.tag)throw new Error("WrongMagicNumber");t.seek(n.offset);for(let e=0,a=n.entries;e<a;e++)this.index[e]=new Yl(t,this.index);const a=this.index[n.model.id].entries;a&&(this.model=a[0])}}function Ql(e){return e instanceof ArrayBuffer&&(e=new Uint8Array(e)),e instanceof Uint8Array&&52===e[0]&&51===e[1]&&68===e[2]&&77===e[3]}const eo={Model:Zl,isM3:Ql};class to{constructor(e){this.index=0,this.ident=0,this.indentSpaces=4,this.precision=1e6,this.buffer=e||""}clear(){this.buffer="",this.index=0,this.ident=0}readToken(){const e=this.buffer,t=e.length;let n=!1,a=!1,r="";for(;this.index<t;){const t=e[this.index++];if(n)"\n"===t&&(n=!1);else if(a)if("\\"===t)r+=t+e[this.index++];else if("\n"===t)r+="\\n";else if("\r"===t)r+="\\r";else{if('"'===t)return r;r+=t}else if(" "===t||","===t||"\t"===t||"\n"===t||":"===t||"\r"===t){if(r.length)return r}else{if("{"===t||"}"===t)return r.length?(this.index--,r):t;if("/"===t&&"/"===e[this.index]){if(r.length)return this.index--,r;n=!0}else if('"'===t){if(r.length)return this.index--,r;a=!0}else r+=t}}}read(){const e=this.readToken();if(void 0===e)throw new Error("End of stream reached prematurely");return e}peek(){const e=this.index,t=this.read();return this.index=e,t}readInt(){return parseInt(this.read())}readFloat(){return parseFloat(this.read())}readVector(e){this.read();for(let t=0,n=e.length;t<n;t++)e[t]=this.readFloat();return this.read(),e}readVectorsBlock(e,t){this.read();for(let n=0,a=e.length;n<a;n+=t)this.readVector(e.subarray(n,n+t));return this.read(),e}readColor(e){return this.read(),e[2]=this.readFloat(),e[1]=this.readFloat(),e[0]=this.readFloat(),this.read(),e}*readBlock(){this.read();let e=this.read();for(;"}"!==e;)yield e,e=this.read()}writeLine(e){this.buffer+=`${" ".repeat(this.ident*this.indentSpaces)}${e}\n`}writeFlag(e){this.writeLine(`${e},`)}writeFlagAttrib(e,t){this.writeLine(`${e} ${t},`)}writeNumberAttrib(e,t){this.writeLine(`${e} ${this.floatDecimals(t)},`)}writeStringAttrib(e,t){this.writeLine(`${e} "${t}",`)}writeVectorAttrib(e,t){this.writeLine(`${e} { ${this.floatArrayDecimals(t)} },`)}writeColor(e,t){const n=this.floatDecimals(t[0]),a=this.floatDecimals(t[1]),r=this.floatDecimals(t[2]);this.writeLine(`${e} { ${r}, ${a}, ${n} },`)}writeVector(e){this.writeLine(`{ ${this.floatArrayDecimals(e)} },`)}writeVectorArrayBlock(e,t,n){this.startBlock(e,t.length/n);for(let e=0,a=t.length;e<a;e+=n)this.writeVector(t.subarray(e,e+n));this.endBlock()}startBlock(e,...t){t.length&&(e=`${e} ${t.join(" ")}`),this.writeLine(`${e} {`),this.ident+=1}startObjectBlock(e,t){this.writeLine(`${e} "${t.replace(/"/g,'\\"')}" {`),this.ident+=1}endBlock(){this.ident-=1,this.writeLine("}")}endBlockComma(){this.ident-=1,this.writeLine("},")}indent(){this.ident+=1}unindent(){this.ident-=1}floatDecimals(e){return""+Math.trunc(e*this.precision)/this.precision}floatArrayDecimals(e){if(e instanceof Float32Array){const t=[];for(let n=0,a=e.length;n<a;n++)t[n]=this.floatDecimals(e[n]);return t.join(", ")}return e.join(", ")}}class no{constructor(){this.boundsRadius=0,this.min=new Float32Array(3),this.max=new Float32Array(3)}readMdx(e){this.boundsRadius=e.readFloat32(),e.readFloat32Array(this.min),e.readFloat32Array(this.max)}writeMdx(e){e.writeFloat32(this.boundsRadius),e.writeFloat32Array(this.min),e.writeFloat32Array(this.max)}writeMdl(e){0===this.min[0]&&0===this.min[1]&&0===this.min[2]||e.writeVectorAttrib("MinimumExtent",this.min),0===this.max[0]&&0===this.max[1]&&0===this.max[2]||e.writeVectorAttrib("MaximumExtent",this.max),0!==this.boundsRadius&&e.writeNumberAttrib("BoundsRadius",this.boundsRadius)}}class ao{constructor(){this.name="",this.interval=new Uint32Array(2),this.moveSpeed=0,this.nonLooping=0,this.rarity=0,this.syncPoint=0,this.extent=new no}readMdx(e){this.name=e.read(80),e.readUint32Array(this.interval),this.moveSpeed=e.readFloat32(),this.nonLooping=e.readUint32(),this.rarity=e.readFloat32(),this.syncPoint=e.readUint32(),this.extent.readMdx(e)}writeMdx(e){e.skip(80-e.write(this.name)),e.writeUint32Array(this.interval),e.writeFloat32(this.moveSpeed),e.writeUint32(this.nonLooping),e.writeFloat32(this.rarity),e.writeUint32(this.syncPoint),this.extent.writeMdx(e)}readMdl(e){this.name=e.read();for(const t of e.readBlock())if("Interval"===t)e.readVector(this.interval);else if("NonLooping"===t)this.nonLooping=1;else if("MoveSpeed"===t)this.moveSpeed=e.readFloat();else if("Rarity"===t)this.rarity=e.readFloat();else if("MinimumExtent"===t)e.readVector(this.extent.min);else if("MaximumExtent"===t)e.readVector(this.extent.max);else{if("BoundsRadius"!==t)throw new Error(`Unknown token in Sequence: "${t}"`);this.extent.boundsRadius=e.readFloat()}}writeMdl(e){e.startObjectBlock("Anim",this.name),e.writeVectorAttrib("Interval",this.interval),1===this.nonLooping&&e.writeFlag("NonLooping"),0!==this.moveSpeed&&e.writeNumberAttrib("MoveSpeed",this.moveSpeed),0!==this.rarity&&e.writeNumberAttrib("Rarity",this.rarity),this.extent.writeMdl(e),e.endBlock()}}class ro{constructor(){this.name="",this.interpolationType=0,this.globalSequenceId=-1,this.frames=[],this.values=[],this.inTans=[],this.outTans=[]}readMdx(e,t){const n=this.frames,a=this.values,r=this.inTans,i=this.outTans,s=e.readUint32(),l=e.readUint32();this.name=t,this.interpolationType=l,this.globalSequenceId=e.readInt32();for(let t=0;t<s;t++)n.push(e.readInt32()),a.push(this.readMdxValue(e)),l>1&&(r.push(this.readMdxValue(e)),i.push(this.readMdxValue(e)))}writeMdx(e){const t=this.interpolationType,n=this.frames,a=this.values,r=this.inTans,i=this.outTans,s=n.length;e.writeBinary(this.name),e.writeUint32(s),e.writeUint32(t),e.writeInt32(this.globalSequenceId);for(let l=0;l<s;l++)e.writeInt32(n[l]),this.writeMdxValue(e,a[l]),t>1&&(this.writeMdxValue(e,r[l]),this.writeMdxValue(e,i[l]))}readMdl(e,t){const n=this.frames,a=this.values,r=this.inTans,i=this.outTans;this.name=t;const s=e.readInt();e.read();let l=0;const o=e.read();"DontInterp"===o?l=0:"Linear"===o?l=1:"Hermite"===o?l=2:"Bezier"===o&&(l=3),this.interpolationType=l,"GlobalSeqId"===e.peek()&&(e.read(),this.globalSequenceId=e.readInt());for(let t=0;t<s;t++)n[t]=e.readInt(),a[t]=this.readMdlValue(e),l>1&&(e.read(),r[t]=this.readMdlValue(e),e.read(),i[t]=this.readMdlValue(e));e.read()}writeMdl(e,t){const n=this.interpolationType,a=this.frames,r=this.values,i=this.inTans,s=this.outTans,l=a.length;e.startBlock(t,this.frames.length);let o="";0===this.interpolationType?o="DontInterp":1===this.interpolationType?o="Linear":2===this.interpolationType?o="Hermite":3===this.interpolationType&&(o="Bezier"),e.writeFlag(o),-1!==this.globalSequenceId&&e.writeNumberAttrib("GlobalSeqId",this.globalSequenceId);for(let t=0;t<l;t++)this.writeMdlValue(e,`${a[t]}:`,r[t]),n>1&&(e.indent(),this.writeMdlValue(e,"InTan",i[t]),this.writeMdlValue(e,"OutTan",s[t]),e.unindent());e.endBlock()}getByteLength(){const e=this.frames.length;let t=16;if(e){const n=this.values[0].byteLength;let a=1;this.interpolationType>1&&(a=3),t+=(4+a*n)*e}return t}}class io extends ro{readMdxValue(e){return e.readUint32Array(1)}writeMdxValue(e,t){e.writeUint32(t[0])}readMdlValue(e){return new Uint32Array([e.readInt()])}writeMdlValue(e,t,n){e.writeNumberAttrib(t,n[0])}}class so extends ro{readMdxValue(e){return e.readFloat32Array(1)}writeMdxValue(e,t){e.writeFloat32(t[0])}readMdlValue(e){return new Float32Array([e.readFloat()])}writeMdlValue(e,t,n){e.writeNumberAttrib(t,n[0])}}class lo extends ro{readMdxValue(e){return e.readFloat32Array(3)}writeMdxValue(e,t){e.writeFloat32Array(t)}readMdlValue(e){return e.readVector(new Float32Array(3))}writeMdlValue(e,t,n){e.writeVectorAttrib(t,n)}}class oo extends ro{readMdxValue(e){return e.readFloat32Array(4)}writeMdxValue(e,t){e.writeFloat32Array(t)}readMdlValue(e){return e.readVector(new Float32Array(4))}writeMdlValue(e,t,n){e.writeVectorAttrib(t,n)}}const uo={KMTF:["TextureID",io],KMTA:["Alpha",so],KMTE:["EmissiveGain",so],KFC3:["FresnelColor",lo],KFCA:["FresnelOpacity",so],KFTC:["FresnelTeamColor",io],KTAT:["Translation",lo],KTAR:["Rotation",oo],KTAS:["Scaling",lo],KGAO:["Alpha",so],KGAC:["Color",lo],KGTR:["Translation",lo],KGRT:["Rotation",oo],KGSC:["Scaling",lo],KLAS:["AttenuationStart",so],KLAE:["AttenuationEnd",so],KLAC:["Color",lo],KLAI:["Intensity",so],KLBI:["AmbIntensity",so],KLBC:["AmbColor",lo],KLAV:["Visibility",so],KATV:["Visibility",so],KPEE:["EmissionRate",so],KPEG:["Gravity",so],KPLN:["Longitude",so],KPLT:["Latitude",so],KPEL:["LifeSpan",so],KPES:["InitVelocity",so],KPEV:["Visibility",so],KP2S:["Speed",so],KP2R:["Variation",so],KP2L:["Latitude",so],KP2G:["Gravity",so],KP2E:["EmissionRate",so],KP2N:["Width",so],KP2W:["Length",so],KP2V:["Visibility",so],KPPA:["Alpha",so],KPPC:["Color",lo],KPPE:["EmissionRate",so],KPPL:["LifeSpan",so],KPPS:["Speed",so],KPPV:["Visibility",so],KRHA:["HeightAbove",so],KRHB:["HeightBelow",so],KRAL:["Alpha",so],KRCO:["Color",lo],KRTX:["TextureSlot",io],KRVS:["Visibility",so],KCTR:["Translation",lo],KTTR:["Translation",lo],KCRL:["Rotation",so]};class co{constructor(){this.animations=[]}readAnimations(e,t){const n=e.index+t;for(;e.index<n;){const t=e.readBinary(4),n=new uo[t][1];n.readMdx(e,t),this.animations.push(n)}}writeAnimations(e){for(const t of this.animations)t.writeMdx(e)}*readAnimatedBlock(e){for(const t of e.readBlock())"static"===t?yield`static ${e.read()}`:yield t}readAnimation(e,t){const n=new uo[t][1];n.readMdl(e,t),this.animations.push(n)}writeAnimation(e,t){for(const n of this.animations)if(n.name===t)return n.writeMdl(e,uo[t][0]),!0;return!1}getByteLength(e=0){let t=0;for(const e of this.animations)t+=e.getByteLength();return t}}function ho(e){return"None"===e?0:"Transparent"===e?1:"Blend"===e?2:"Additive"===e?3:"AddAlpha"===e?4:"Modulate"===e?5:"Modulate2x"===e?6:0}class fo extends co{constructor(){super(...arguments),this.filterMode=0,this.flags=0,this.textureId=-1,this.textureAnimationId=-1,this.coordId=0,this.alpha=1,this.emissiveGain=1,this.fresnelColor=new Float32Array([1,1,1]),this.fresnelOpacity=0,this.fresnelTeamColor=0}readMdx(e,t){const n=e.index,a=e.readUint32();this.filterMode=e.readUint32(),this.flags=e.readUint32(),this.textureId=e.readInt32(),this.textureAnimationId=e.readInt32(),this.coordId=e.readUint32(),this.alpha=e.readFloat32(),t>800&&(this.emissiveGain=e.readFloat32(),e.readFloat32Array(this.fresnelColor),this.fresnelOpacity=e.readFloat32(),this.fresnelTeamColor=e.readFloat32()),this.readAnimations(e,a-(e.index-n))}writeMdx(e,t){e.writeUint32(this.getByteLength(t)),e.writeUint32(this.filterMode),e.writeUint32(this.flags),e.writeInt32(this.textureId),e.writeInt32(this.textureAnimationId),e.writeUint32(this.coordId),e.writeFloat32(this.alpha),t>800&&(e.writeFloat32(this.emissiveGain),e.writeFloat32Array(this.fresnelColor),e.writeFloat32(this.fresnelOpacity),e.writeFloat32(this.fresnelTeamColor)),this.writeAnimations(e)}readMdl(e){for(const t of super.readAnimatedBlock(e))if("FilterMode"===t)this.filterMode=ho(e.read());else if("Unshaded"===t)this.flags|=1;else if("SphereEnvMap"===t)this.flags|=2;else if("TwoSided"===t)this.flags|=16;else if("Unfogged"===t)this.flags|=32;else if("NoDepthTest"===t)this.flags|=64;else if("NoDepthSet"===t)this.flags|=128;else if("Unlit"===t)this.flags|=256;else if("static TextureID"===t)this.textureId=e.readInt();else if("TextureID"===t)this.readAnimation(e,"KMTF");else if("TVertexAnimId"===t)this.textureAnimationId=e.readInt();else if("CoordId"===t)this.coordId=e.readInt();else if("static Alpha"===t)this.alpha=e.readFloat();else if("Alpha"===t)this.readAnimation(e,"KMTA");else if("static EmissiveGain"===t)this.emissiveGain=e.readFloat();else if("EmissiveGain"===t)this.readAnimation(e,"KMTE");else if("static FresnelColor"===t)e.readVector(this.fresnelColor);else if("FresnelColor"===t)this.readAnimation(e,"KFC3");else if("static FresnelOpacity"===t)this.fresnelOpacity=e.readFloat();else if("FresnelOpacity"===t)this.readAnimation(e,"KFCA");else if("static FresnelTeamColor"===t)this.fresnelTeamColor=e.readFloat();else{if("FresnelTeamColor"!==t)throw new Error(`Unknown token in Layer: "${t}"`);this.readAnimation(e,"KFTC")}}writeMdl(e,t){var n;e.startBlock("Layer"),e.writeFlagAttrib("FilterMode",0===(n=this.filterMode)?"None":1===n?"Transparent":2===n?"Blend":3===n?"Additive":4===n?"AddAlpha":5===n?"Modulate":6===n?"Modulate2x":"None"),1&this.flags&&e.writeFlag("Unshaded"),2&this.flags&&e.writeFlag("SphereEnvMap"),16&this.flags&&e.writeFlag("TwoSided"),32&this.flags&&e.writeFlag("Unfogged"),64&this.flags&&e.writeFlag("NoDepthTest"),128&this.flags&&e.writeFlag("NoDepthSet"),t>800&&256&this.flags&&e.writeFlag("Unlit"),this.writeAnimation(e,"KMTF")||e.writeNumberAttrib("static TextureID",this.textureId),-1!==this.textureAnimationId&&e.writeNumberAttrib("TVertexAnimId",this.textureAnimationId),0!==this.coordId&&e.writeNumberAttrib("CoordId",this.coordId),this.writeAnimation(e,"KMTA")||1===this.alpha||e.writeNumberAttrib("static Alpha",this.alpha),t>800&&(this.writeAnimation(e,"KMTE")||1===this.emissiveGain||e.writeNumberAttrib("static EmissiveGain",this.emissiveGain),this.writeAnimation(e,"KFC3")||1===this.fresnelColor[0]&&1===this.fresnelColor[1]&&1===this.fresnelColor[2]||e.writeVectorAttrib("static FresnelColor",this.fresnelColor),this.writeAnimation(e,"KFCA")||0===this.fresnelOpacity||e.writeNumberAttrib("static FresnelOpacity",this.fresnelOpacity),this.writeAnimation(e,"KFTC")||0===this.fresnelTeamColor||e.writeNumberAttrib("static FresnelTeamColor",this.fresnelTeamColor)),e.endBlock()}getByteLength(e){let t=28+super.getByteLength();return e>800&&(t+=24),t}}class mo{constructor(){this.priorityPlane=0,this.flags=0,this.shader="",this.layers=[]}readMdx(e,t){e.readUint32(),this.priorityPlane=e.readInt32(),this.flags=e.readUint32(),t>800&&(this.shader=e.read(80)),e.skip(4);for(let n=0,a=e.readUint32();n<a;n++){const n=new fo;n.readMdx(e,t),this.layers.push(n)}}writeMdx(e,t){e.writeUint32(this.getByteLength(t)),e.writeInt32(this.priorityPlane),e.writeUint32(this.flags),t>800&&e.skip(80-e.write(this.shader)),e.writeBinary("LAYS"),e.writeUint32(this.layers.length);for(const n of this.layers)n.writeMdx(e,t)}readMdl(e){for(const t of e.readBlock())if("ConstantColor"===t)this.flags|=1;else if("TwoSided"===t)this.flags|=2;else if("SortPrimsNearZ"===t)this.flags|=8;else if("SortPrimsFarZ"===t)this.flags|=16;else if("FullResolution"===t)this.flags|=32;else if("PriorityPlane"===t)this.priorityPlane=e.readInt();else if("Shader"===t)this.shader=e.read();else{if("Layer"!==t)throw new Error(`Unknown token in Material: "${t}"`);{const t=new fo;t.readMdl(e),this.layers.push(t)}}}writeMdl(e,t){e.startBlock("Material"),1&this.flags&&e.writeFlag("ConstantColor"),t>800&&2&this.flags&&e.writeFlag("TwoSided"),8&this.flags&&e.writeFlag("SortPrimsNearZ"),16&this.flags&&e.writeFlag("SortPrimsFarZ"),32&this.flags&&e.writeFlag("FullResolution"),0!==this.priorityPlane&&e.writeNumberAttrib("PriorityPlane",this.priorityPlane),t>800&&e.writeStringAttrib("Shader",this.shader);for(const n of this.layers)n.writeMdl(e,t);e.endBlock()}getByteLength(e){let t=20;e>800&&(t+=80);for(const n of this.layers)t+=n.getByteLength(e);return t}}class po{constructor(){this.replaceableId=0,this.path="",this.wrapMode=0}readMdx(e){this.replaceableId=e.readUint32(),this.path=e.read(260),this.wrapMode=e.readUint32()}writeMdx(e){e.writeUint32(this.replaceableId),e.skip(260-e.write(this.path)),e.writeUint32(this.wrapMode)}readMdl(e){for(const t of e.readBlock())if("Image"===t)this.path=e.read();else if("ReplaceableId"===t)this.replaceableId=e.readInt();else if("WrapWidth"===t)this.wrapMode|=1;else{if("WrapHeight"!==t)throw new Error(`Unknown token in Texture: "${t}"`);this.wrapMode|=2}}writeMdl(e){e.startBlock("Bitmap"),this.path.length&&e.writeStringAttrib("Image",this.path),0!==this.replaceableId&&e.writeNumberAttrib("ReplaceableId",this.replaceableId),1&this.wrapMode&&e.writeFlag("WrapWidth"),2&this.wrapMode&&e.writeFlag("WrapHeight"),e.endBlock()}}class _o extends co{readMdx(e){const t=e.readUint32();this.readAnimations(e,t-4)}writeMdx(e){e.writeUint32(this.getByteLength()),this.writeAnimations(e)}readMdl(e){for(const t of e.readBlock())if("Translation"===t)this.readAnimation(e,"KTAT");else if("Rotation"===t)this.readAnimation(e,"KTAR");else{if("Scaling"!==t)throw new Error(`Unknown token in TextureAnimation: "${t}"`);this.readAnimation(e,"KTAS")}}writeMdl(e){e.startBlock("TVertexAnim "),this.writeAnimation(e,"KTAT"),this.writeAnimation(e,"KTAR"),this.writeAnimation(e,"KTAS"),e.endBlock()}getByteLength(){return 4+super.getByteLength()}}class go{constructor(){this.vertices=new Float32Array(0),this.normals=new Float32Array(0),this.faceTypeGroups=new Uint32Array(0),this.faceGroups=new Uint32Array(0),this.faces=new Uint16Array(0),this.vertexGroups=new Uint8Array(0),this.matrixGroups=new Uint32Array(0),this.matrixIndices=new Uint32Array(0),this.materialId=0,this.selectionGroup=0,this.selectionFlags=0,this.lod=-1,this.lodName="",this.extent=new no,this.sequenceExtents=[],this.tangents=new Float32Array(0),this.skin=new Uint8Array(0),this.uvSets=[]}readMdx(e,t){e.readUint32(),e.skip(4),this.vertices=e.readFloat32Array(3*e.readUint32()),e.skip(4),this.normals=e.readFloat32Array(3*e.readUint32()),e.skip(4),this.faceTypeGroups=e.readUint32Array(e.readUint32()),e.skip(4),this.faceGroups=e.readUint32Array(e.readUint32()),e.skip(4),this.faces=e.readUint16Array(e.readUint32()),e.skip(4),this.vertexGroups=e.readUint8Array(e.readUint32()),e.skip(4),this.matrixGroups=e.readUint32Array(e.readUint32()),e.skip(4),this.matrixIndices=e.readUint32Array(e.readUint32()),this.materialId=e.readUint32(),this.selectionGroup=e.readUint32(),this.selectionFlags=e.readUint32(),t>800&&(this.lod=e.readInt32(),this.lodName=e.read(80)),this.extent.readMdx(e);for(let t=0,n=e.readUint32();t<n;t++){const t=new no;t.readMdx(e),this.sequenceExtents.push(t)}t>800&&("TANG"===e.readBinary(4)?this.tangents=e.readFloat32Array(4*e.readUint32()):e.skip(-4),"SKIN"===e.readBinary(4)?this.skin=e.readUint8Array(e.readUint32()):e.skip(-4)),e.skip(4);for(let t=0,n=e.readUint32();t<n;t++)e.skip(4),this.uvSets.push(e.readFloat32Array(2*e.readUint32()))}writeMdx(e,t){e.writeUint32(this.getByteLength(t)),e.writeBinary("VRTX"),e.writeUint32(this.vertices.length/3),e.writeFloat32Array(this.vertices),e.writeBinary("NRMS"),e.writeUint32(this.normals.length/3),e.writeFloat32Array(this.normals),e.writeBinary("PTYP"),e.writeUint32(this.faceTypeGroups.length),e.writeUint32Array(this.faceTypeGroups),e.writeBinary("PCNT"),e.writeUint32(this.faceGroups.length),e.writeUint32Array(this.faceGroups),e.writeBinary("PVTX"),e.writeUint32(this.faces.length),e.writeUint16Array(this.faces),e.writeBinary("GNDX"),e.writeUint32(this.vertexGroups.length),e.writeUint8Array(this.vertexGroups),e.writeBinary("MTGC"),e.writeUint32(this.matrixGroups.length),e.writeUint32Array(this.matrixGroups),e.writeBinary("MATS"),e.writeUint32(this.matrixIndices.length),e.writeUint32Array(this.matrixIndices),e.writeUint32(this.materialId),e.writeUint32(this.selectionGroup),e.writeUint32(this.selectionFlags),t>800&&(e.writeInt32(this.lod),e.skip(80-e.write(this.lodName))),this.extent.writeMdx(e),e.writeUint32(this.sequenceExtents.length);for(const t of this.sequenceExtents)t.writeMdx(e);t>800&&(this.tangents.length&&(e.writeBinary("TANG"),e.writeUint32(this.tangents.length/4),e.writeFloat32Array(this.tangents)),this.skin.length&&(e.writeBinary("SKIN"),e.writeUint32(this.skin.length),e.writeUint8Array(this.skin))),e.writeBinary("UVAS"),e.writeUint32(this.uvSets.length);for(const t of this.uvSets)e.writeBinary("UVBS"),e.writeUint32(t.length/2),e.writeFloat32Array(t)}readMdl(e){for(let t of e.readBlock())if("Vertices"===t)this.vertices=e.readVectorsBlock(new Float32Array(3*e.readInt()),3);else if("Normals"===t)this.normals=e.readVectorsBlock(new Float32Array(3*e.readInt()),3);else if("TVertices"===t)this.uvSets.push(e.readVectorsBlock(new Float32Array(2*e.readInt()),2));else if("VertexGroup"===t){const t=[];for(const n of e.readBlock())t.push(parseInt(n));this.vertexGroups=new Uint8Array(t)}else if("Tangents"===t)this.tangents=e.readVectorsBlock(new Float32Array(4*e.readInt()),4);else if("SkinWeights"===t)this.skin=e.readVector(new Uint8Array(8*e.readInt()));else if("Faces"===t){this.faceTypeGroups=new Uint32Array([4]);const t=e.readInt(),n=e.readInt();e.read(),e.read(),this.faces=e.readVectorsBlock(new Uint16Array(n),n/t),this.faceGroups=new Uint32Array([n]),e.read()}else if("Groups"===t){const t=[],n=[];e.readInt(),e.readInt();for(const a of e.readBlock()){let a=0;for(const n of e.readBlock())t.push(parseInt(n)),a+=1;n.push(a)}this.matrixIndices=new Uint32Array(t),this.matrixGroups=new Uint32Array(n)}else if("MinimumExtent"===t)e.readVector(this.extent.min);else if("MaximumExtent"===t)e.readVector(this.extent.max);else if("BoundsRadius"===t)this.extent.boundsRadius=e.readFloat();else if("Anim"===t){const n=new no;for(t of e.readBlock())"MinimumExtent"===t?e.readVector(n.min):"MaximumExtent"===t?e.readVector(n.max):"BoundsRadius"===t&&(n.boundsRadius=e.readFloat());this.sequenceExtents.push(n)}else if("MaterialID"===t)this.materialId=e.readInt();else if("SelectionGroup"===t)this.selectionGroup=e.readInt();else if("Unselectable"===t)this.selectionFlags=4;else if("LevelOfDetail"===t)this.lod=e.readInt();else{if("Name"!==t)throw new Error(`Unknown token in Geoset: "${t}"`);this.lodName=e.read()}}writeMdl(e,t){e.startBlock("Geoset"),e.writeVectorArrayBlock("Vertices",this.vertices,3),e.writeVectorArrayBlock("Normals",this.normals,3);for(const t of this.uvSets)e.writeVectorArrayBlock("TVertices",t,2);if(t>800&&this.tangents.length&&e.writeVectorArrayBlock("Tangents",this.tangents,4),this.vertexGroups.length){e.startBlock("VertexGroup");for(let t=0,n=this.vertexGroups.length;t<n;t++)e.writeLine(`${this.vertexGroups[t]},`);e.endBlock()}if(t>800&&this.skin.length){e.startBlock("SkinWeights",this.skin.length/8);for(let t=0,n=this.skin.length;t<n;t+=8)e.writeLine(`${this.skin.subarray(t,t+8).join(", ")},`);e.endBlock()}e.startBlock("Faces",1,this.faces.length),e.startBlock("Triangles"),e.writeVector(this.faces),e.endBlock(),e.endBlock(),e.startBlock("Groups",this.matrixGroups.length,this.matrixIndices.length);let n=0;for(const t of this.matrixGroups)e.writeVectorAttrib("Matrices",this.matrixIndices.subarray(n,n+t)),n+=t;e.endBlock(),this.extent.writeMdl(e);for(const t of this.sequenceExtents)e.startBlock("Anim"),t.writeMdl(e),e.endBlock();e.writeNumberAttrib("MaterialID",this.materialId),e.writeNumberAttrib("SelectionGroup",this.selectionGroup),4===this.selectionFlags&&e.writeFlag("Unselectable"),t>800&&(e.writeNumberAttrib("LevelOfDetail",this.lod),this.lodName.length&&e.writeStringAttrib("Name",this.lodName)),e.endBlock()}getByteLength(e){let t=120+this.vertices.byteLength+this.normals.byteLength+this.faceTypeGroups.byteLength+this.faceGroups.byteLength+this.faces.byteLength+this.vertexGroups.byteLength+this.matrixGroups.byteLength+this.matrixIndices.byteLength+28*this.sequenceExtents.length;e>800&&(t+=84,this.tangents.length&&(t+=8+this.tangents.byteLength),this.skin.length&&(t+=8+this.skin.byteLength));for(const e of this.uvSets)t+=8+e.byteLength;return t}}class bo extends co{constructor(){super(...arguments),this.alpha=1,this.flags=0,this.color=new Float32Array([1,1,1]),this.geosetId=-1}readMdx(e){const t=e.readUint32();this.alpha=e.readFloat32(),this.flags=e.readUint32(),e.readFloat32Array(this.color),this.geosetId=e.readInt32(),this.readAnimations(e,t-28)}writeMdx(e){e.writeUint32(this.getByteLength()),e.writeFloat32(this.alpha),e.writeUint32(this.flags),e.writeFloat32Array(this.color),e.writeInt32(this.geosetId),this.writeAnimations(e)}readMdl(e){for(const t of super.readAnimatedBlock(e))if("DropShadow"===t)this.flags|=1;else if("static Alpha"===t)this.alpha=e.readFloat();else if("Alpha"===t)this.readAnimation(e,"KGAO");else if("static Color"===t)this.flags|=2,e.readColor(this.color);else if("Color"===t)this.flags|=2,this.readAnimation(e,"KGAC");else{if("GeosetId"!==t)throw new Error(`Unknown token in GeosetAnimation: "${t}"`);this.geosetId=e.readInt()}}writeMdl(e){e.startBlock("GeosetAnim"),1&this.flags&&e.writeFlag("DropShadow"),this.writeAnimation(e,"KGAO")||e.writeNumberAttrib("static Alpha",this.alpha),2&this.flags&&(this.writeAnimation(e,"KGAC")||1===this.color[0]&&1===this.color[1]&&1===this.color[2]||e.writeColor("static Color ",this.color)),e.writeNumberAttrib("GeosetId",this.geosetId),e.endBlock()}getByteLength(){return 28+super.getByteLength()}}class wo extends co{constructor(e=0){super(),this.name="",this.objectId=-1,this.parentId=-1,this.flags=e}readMdx(e){const t=e.readUint32();this.name=e.read(80),this.objectId=e.readInt32(),this.parentId=e.readInt32(),this.flags=e.readUint32(),this.readAnimations(e,t-96)}writeMdx(e){e.writeUint32(this.getGenericByteLength()),e.skip(80-e.write(this.name)),e.writeInt32(this.objectId),e.writeInt32(this.parentId),e.writeUint32(this.flags);for(const t of this.eachAnimation(!0))t.writeMdx(e)}writeNonGenericAnimationChunks(e){for(const t of this.eachAnimation(!1))t.writeMdx(e)}*readGenericBlock(e){this.name=e.read();for(let t of this.readAnimatedBlock(e))if("ObjectId"===t)this.objectId=e.readInt();else if("Parent"===t)this.parentId=e.readInt();else if("BillboardedLockZ"===t)this.flags|=64;else if("BillboardedLockY"===t)this.flags|=32;else if("BillboardedLockX"===t)this.flags|=16;else if("Billboarded"===t)this.flags|=8;else if("CameraAnchored"===t)this.flags|=128;else if("DontInherit"===t)for(t of e.readBlock())"Rotation"===t?this.flags|=4:"Translation"===t?this.flags|=1:"Scaling"===t&&(this.flags|=2);else"Translation"===t?this.readAnimation(e,"KGTR"):"Rotation"===t?this.readAnimation(e,"KGRT"):"Scaling"===t?this.readAnimation(e,"KGSC"):yield t}writeGenericHeader(e){e.writeNumberAttrib("ObjectId",this.objectId),-1!==this.parentId&&e.writeNumberAttrib("Parent",this.parentId),64&this.flags&&e.writeFlag("BillboardedLockZ"),32&this.flags&&e.writeFlag("BillboardedLockY"),16&this.flags&&e.writeFlag("BillboardedLockX"),8&this.flags&&e.writeFlag("Billboarded"),128&this.flags&&e.writeFlag("CameraAnchored"),4&this.flags&&e.writeFlag("DontInherit { Rotation }"),1&this.flags&&e.writeFlag("DontInherit { Translation }"),2&this.flags&&e.writeFlag("DontInherit { Scaling }")}writeGenericAnimations(e){this.writeAnimation(e,"KGTR"),this.writeAnimation(e,"KGRT"),this.writeAnimation(e,"KGSC")}*eachAnimation(e){for(const t of this.animations){const n=t.name,a="KGTR"===n||"KGRT"===n||"KGSC"===n;(e&&a||!e&&!a)&&(yield t)}}getGenericByteLength(){let e=96;for(const t of this.eachAnimation(!0))e+=t.getByteLength();return e}getByteLength(){return 96+super.getByteLength()}}class vo extends wo{constructor(){super(256),this.geosetId=-1,this.geosetAnimationId=-1}readMdx(e){super.readMdx(e),this.geosetId=e.readInt32(),this.geosetAnimationId=e.readInt32()}writeMdx(e){super.writeMdx(e),e.writeInt32(this.geosetId),e.writeInt32(this.geosetAnimationId)}readMdl(e){for(let t of super.readGenericBlock(e))if("GeosetId"===t)t=e.read(),this.geosetId="Multiple"===t?-1:parseInt(t);else{if("GeosetAnimId"!==t)throw new Error(`Unknown token in Bone ${this.name}: "${t}"`);t=e.read(),this.geosetAnimationId="None"===t?-1:parseInt(t)}}writeMdl(e){e.startObjectBlock("Bone",this.name),this.writeGenericHeader(e),-1===this.geosetId?e.writeFlagAttrib("GeosetId","Multiple"):e.writeNumberAttrib("GeosetId",this.geosetId),-1===this.geosetAnimationId?e.writeFlagAttrib("GeosetAnimId","None"):e.writeNumberAttrib("GeosetAnimId",this.geosetAnimationId),this.writeGenericAnimations(e),e.endBlock()}getByteLength(){return 8+super.getByteLength()}}class Ao extends wo{constructor(){super(512),this.type=-1,this.attenuation=new Float32Array(2),this.color=new Float32Array(3),this.intensity=0,this.ambientColor=new Float32Array(3),this.ambientIntensity=0}readMdx(e){const t=e.index,n=e.readUint32();super.readMdx(e),this.type=e.readUint32(),e.readFloat32Array(this.attenuation),e.readFloat32Array(this.color),this.intensity=e.readFloat32(),e.readFloat32Array(this.ambientColor),this.ambientIntensity=e.readFloat32(),this.readAnimations(e,n-(e.index-t))}writeMdx(e){e.writeUint32(this.getByteLength()),super.writeMdx(e),e.writeUint32(this.type),e.writeFloat32Array(this.attenuation),e.writeFloat32Array(this.color),e.writeFloat32(this.intensity),e.writeFloat32Array(this.ambientColor),e.writeFloat32(this.ambientIntensity),this.writeNonGenericAnimationChunks(e)}readMdl(e){for(const t of super.readGenericBlock(e))if("Omnidirectional"===t)this.type=0;else if("Directional"===t)this.type=1;else if("Ambient"===t)this.type=2;else if("static AttenuationStart"===t)this.attenuation[0]=e.readFloat();else if("AttenuationStart"===t)this.readAnimation(e,"KLAS");else if("static AttenuationEnd"===t)this.attenuation[1]=e.readFloat();else if("AttenuationEnd"===t)this.readAnimation(e,"KLAE");else if("static Intensity"===t)this.intensity=e.readFloat();else if("Intensity"===t)this.readAnimation(e,"KLAI");else if("static Color"===t)e.readColor(this.color);else if("Color"===t)this.readAnimation(e,"KLAC");else if("static AmbIntensity"===t)this.ambientIntensity=e.readFloat();else if("AmbIntensity"===t)this.readAnimation(e,"KLBI");else if("static AmbColor"===t)e.readColor(this.ambientColor);else if("AmbColor"===t)this.readAnimation(e,"KLBC");else{if("Visibility"!==t)throw new Error(`Unknown token in Light: "${t}"`);this.readAnimation(e,"KLAV")}}writeMdl(e){e.startObjectBlock("Light",this.name),this.writeGenericHeader(e),0===this.type?e.writeFlag("Omnidirectional"):1===this.type?e.writeFlag("Directional"):2===this.type&&e.writeFlag("Ambient"),this.writeAnimation(e,"KLAS")||e.writeNumberAttrib("static AttenuationStart",this.attenuation[0]),this.writeAnimation(e,"KLAE")||e.writeNumberAttrib("static AttenuationEnd",this.attenuation[1]),this.writeAnimation(e,"KLAI")||e.writeNumberAttrib("static Intensity",this.intensity),this.writeAnimation(e,"KLAC")||e.writeColor("static Color",this.color),this.writeAnimation(e,"KLBI")||e.writeNumberAttrib("static AmbIntensity",this.ambientIntensity),this.writeAnimation(e,"KLBC")||e.writeColor("static AmbColor",this.ambientColor),this.writeAnimation(e,"KLAV"),this.writeGenericAnimations(e),e.endBlock()}getByteLength(){return 48+super.getByteLength()}}class yo extends wo{readMdl(e){for(const t of super.readGenericBlock(e))throw new Error(`Unknown token in Helper: "${t}"`)}writeMdl(e){e.startObjectBlock("Helper",this.name),this.writeGenericHeader(e),this.writeGenericAnimations(e),e.endBlock()}}class So extends wo{constructor(){super(2048),this.path="",this.attachmentId=0}readMdx(e){const t=e.index,n=e.readUint32();super.readMdx(e),this.path=e.read(260),this.attachmentId=e.readInt32(),this.readAnimations(e,n-(e.index-t))}writeMdx(e){e.writeUint32(this.getByteLength()),super.writeMdx(e),e.skip(260-e.write(this.path)),e.writeInt32(this.attachmentId),this.writeNonGenericAnimationChunks(e)}readMdl(e){for(const t of super.readGenericBlock(e))if("AttachmentID"===t)this.attachmentId=e.readInt();else if("Path"===t)this.path=e.read();else{if("Visibility"!==t)throw new Error(`Unknown token in Attachment ${this.name}: "${t}"`);this.readAnimation(e,"KATV")}}writeMdl(e){e.startObjectBlock("Attachment",this.name),this.writeGenericHeader(e),e.writeNumberAttrib("AttachmentID",this.attachmentId),this.path.length&&e.writeStringAttrib("Path",this.path),this.writeAnimation(e,"KATV"),this.writeGenericAnimations(e),e.endBlock()}getByteLength(){return 268+super.getByteLength()}}class To extends wo{constructor(){super(4096),this.emissionRate=0,this.gravity=0,this.longitude=0,this.latitude=0,this.path="",this.lifeSpan=0,this.speed=0}readMdx(e){const t=e.index,n=e.readUint32();super.readMdx(e),this.emissionRate=e.readFloat32(),this.gravity=e.readFloat32(),this.longitude=e.readFloat32(),this.latitude=e.readFloat32(),this.path=e.read(260),this.lifeSpan=e.readFloat32(),this.speed=e.readFloat32(),this.readAnimations(e,n-(e.index-t))}writeMdx(e){e.writeUint32(this.getByteLength()),super.writeMdx(e),e.writeFloat32(this.emissionRate),e.writeFloat32(this.gravity),e.writeFloat32(this.longitude),e.writeFloat32(this.latitude),e.skip(260-e.write(this.path)),e.writeFloat32(this.lifeSpan),e.writeFloat32(this.speed),this.writeNonGenericAnimationChunks(e)}readMdl(e){for(let t of super.readGenericBlock(e))if("EmitterUsesMDL"===t)this.flags|=32768;else if("EmitterUsesTGA"===t)this.flags|=65536;else if("static EmissionRate"===t)this.emissionRate=e.readFloat();else if("EmissionRate"===t)this.readAnimation(e,"KPEE");else if("static Gravity"===t)this.gravity=e.readFloat();else if("Gravity"===t)this.readAnimation(e,"KPEG");else if("static Longitude"===t)this.longitude=e.readFloat();else if("Longitude"===t)this.readAnimation(e,"KPLN");else if("static Latitude"===t)this.latitude=e.readFloat();else if("Latitude"===t)this.readAnimation(e,"KPLT");else if("Visibility"===t)this.readAnimation(e,"KPEV");else{if("Particle"!==t)throw new Error(`Unknown token in ParticleEmitter: "${t}"`);for(t of this.readAnimatedBlock(e))"static LifeSpan"===t?this.lifeSpan=e.readFloat():"LifeSpan"===t?this.readAnimation(e,"KPEL"):"static InitVelocity"===t?this.speed=e.readFloat():"InitVelocity"===t?this.readAnimation(e,"KPES"):"Path"===t&&(this.path=e.read())}}writeMdl(e){e.startObjectBlock("ParticleEmitter",this.name),this.writeGenericHeader(e),32768&this.flags&&e.writeFlag("EmitterUsesMDL"),65536&this.flags&&e.writeFlag("EmitterUsesTGA"),this.writeAnimation(e,"KPEE")||e.writeNumberAttrib("static EmissionRate",this.emissionRate),this.writeAnimation(e,"KPEG")||e.writeNumberAttrib("static Gravity",this.gravity),this.writeAnimation(e,"KPLN")||e.writeNumberAttrib("static Longitude",this.longitude),this.writeAnimation(e,"KPLT")||e.writeNumberAttrib("static Latitude",this.latitude),this.writeAnimation(e,"KPEV"),e.startBlock("Particle"),this.writeAnimation(e,"KPEL")||e.writeNumberAttrib("static LifeSpan",this.lifeSpan),this.writeAnimation(e,"KPES")||e.writeNumberAttrib("static InitVelocity",this.speed),(32768&this.flags||65536&this.flags)&&e.writeStringAttrib("Path",this.path),e.endBlock(),this.writeGenericAnimations(e),e.endBlock()}getByteLength(){return 288+super.getByteLength()}}class xo extends wo{constructor(){super(...arguments),this.speed=0,this.variation=0,this.latitude=0,this.gravity=0,this.lifeSpan=0,this.emissionRate=0,this.width=0,this.length=0,this.filterMode=0,this.rows=0,this.columns=0,this.headOrTail=0,this.tailLength=0,this.timeMiddle=0,this.segmentColors=[new Float32Array(3),new Float32Array(3),new Float32Array(3)],this.segmentAlphas=new Uint8Array(3),this.segmentScaling=new Float32Array(3),this.headIntervals=[new Uint32Array(3),new Uint32Array(3)],this.tailIntervals=[new Uint32Array(3),new Uint32Array(3)],this.textureId=-1,this.squirt=0,this.priorityPlane=0,this.replaceableId=0}readMdx(e){const t=e.index,n=e.readUint32();super.readMdx(e),this.speed=e.readFloat32(),this.variation=e.readFloat32(),this.latitude=e.readFloat32(),this.gravity=e.readFloat32(),this.lifeSpan=e.readFloat32(),this.emissionRate=e.readFloat32(),this.width=e.readFloat32(),this.length=e.readFloat32(),this.filterMode=e.readUint32(),this.rows=e.readUint32(),this.columns=e.readUint32(),this.headOrTail=e.readUint32(),this.tailLength=e.readFloat32(),this.timeMiddle=e.readFloat32(),e.readFloat32Array(this.segmentColors[0]),e.readFloat32Array(this.segmentColors[1]),e.readFloat32Array(this.segmentColors[2]),e.readUint8Array(this.segmentAlphas),e.readFloat32Array(this.segmentScaling),e.readUint32Array(this.headIntervals[0]),e.readUint32Array(this.headIntervals[1]),e.readUint32Array(this.tailIntervals[0]),e.readUint32Array(this.tailIntervals[1]),this.textureId=e.readInt32(),this.squirt=e.readUint32(),this.priorityPlane=e.readInt32(),this.replaceableId=e.readUint32(),this.readAnimations(e,n-(e.index-t))}writeMdx(e){e.writeUint32(this.getByteLength()),super.writeMdx(e),e.writeFloat32(this.speed),e.writeFloat32(this.variation),e.writeFloat32(this.latitude),e.writeFloat32(this.gravity),e.writeFloat32(this.lifeSpan),e.writeFloat32(this.emissionRate),e.writeFloat32(this.width),e.writeFloat32(this.length),e.writeUint32(this.filterMode),e.writeUint32(this.rows),e.writeUint32(this.columns),e.writeUint32(this.headOrTail),e.writeFloat32(this.tailLength),e.writeFloat32(this.timeMiddle),e.writeFloat32Array(this.segmentColors[0]),e.writeFloat32Array(this.segmentColors[1]),e.writeFloat32Array(this.segmentColors[2]),e.writeUint8Array(this.segmentAlphas),e.writeFloat32Array(this.segmentScaling),e.writeUint32Array(this.headIntervals[0]),e.writeUint32Array(this.headIntervals[1]),e.writeUint32Array(this.tailIntervals[0]),e.writeUint32Array(this.tailIntervals[1]),e.writeInt32(this.textureId),e.writeUint32(this.squirt),e.writeInt32(this.priorityPlane),e.writeUint32(this.replaceableId),this.writeNonGenericAnimationChunks(e)}readMdl(e){for(const t of super.readGenericBlock(e))if("SortPrimsFarZ"===t)this.flags|=65536;else if("Unshaded"===t)this.flags|=32768;else if("LineEmitter"===t)this.flags|=131072;else if("Unfogged"===t)this.flags|=262144;else if("ModelSpace"===t)this.flags|=524288;else if("XYQuad"===t)this.flags|=1048576;else if("static Speed"===t)this.speed=e.readFloat();else if("Speed"===t)this.readAnimation(e,"KP2S");else if("static Variation"===t)this.variation=e.readFloat();else if("Variation"===t)this.readAnimation(e,"KP2R");else if("static Latitude"===t)this.latitude=e.readFloat();else if("Latitude"===t)this.readAnimation(e,"KP2L");else if("static Gravity"===t)this.gravity=e.readFloat();else if("Gravity"===t)this.readAnimation(e,"KP2G");else if("Visibility"===t)this.readAnimation(e,"KP2V");else if("Squirt"===t)this.squirt=1;else if("LifeSpan"===t)this.lifeSpan=e.readFloat();else if("static EmissionRate"===t)this.emissionRate=e.readFloat();else if("EmissionRate"===t)this.readAnimation(e,"KP2E");else if("static Width"===t)this.width=e.readFloat();else if("Width"===t)this.readAnimation(e,"KP2N");else if("static Length"===t)this.length=e.readFloat();else if("Length"===t)this.readAnimation(e,"KP2W");else if("Blend"===t)this.filterMode=0;else if("Additive"===t)this.filterMode=1;else if("Modulate"===t)this.filterMode=2;else if("Modulate2x"===t)this.filterMode=3;else if("AlphaKey"===t)this.filterMode=4;else if("Rows"===t)this.rows=e.readInt();else if("Columns"===t)this.columns=e.readInt();else if("Head"===t)this.headOrTail=0;else if("Tail"===t)this.headOrTail=1;else if("Both"===t)this.headOrTail=2;else if("TailLength"===t)this.tailLength=e.readFloat();else if("Time"===t)this.timeMiddle=e.readFloat();else if("SegmentColor"===t){e.read();for(let t=0;t<3;t++)e.read(),e.readColor(this.segmentColors[t]);e.read()}else if("Alpha"===t)e.readVector(this.segmentAlphas);else if("ParticleScaling"===t)e.readVector(this.segmentScaling);else if("LifeSpanUVAnim"===t)e.readVector(this.headIntervals[0]);else if("DecayUVAnim"===t)e.readVector(this.headIntervals[1]);else if("TailUVAnim"===t)e.readVector(this.tailIntervals[0]);else if("TailDecayUVAnim"===t)e.readVector(this.tailIntervals[1]);else if("TextureID"===t)this.textureId=e.readInt();else if("ReplaceableId"===t)this.replaceableId=e.readInt();else{if("PriorityPlane"!==t)throw new Error(`Unknown token in ParticleEmitter2: "${t}"`);this.priorityPlane=e.readInt()}}writeMdl(e){e.startObjectBlock("ParticleEmitter2",this.name),this.writeGenericHeader(e),65536&this.flags&&e.writeFlag("SortPrimsFarZ"),32768&this.flags&&e.writeFlag("Unshaded"),131072&this.flags&&e.writeFlag("LineEmitter"),262144&this.flags&&e.writeFlag("Unfogged"),524288&this.flags&&e.writeFlag("ModelSpace"),1048576&this.flags&&e.writeFlag("XYQuad"),this.writeAnimation(e,"KP2S")||e.writeNumberAttrib("static Speed",this.speed),this.writeAnimation(e,"KP2R")||e.writeNumberAttrib("static Variation",this.variation),this.writeAnimation(e,"KP2L")||e.writeNumberAttrib("static Latitude",this.latitude),this.writeAnimation(e,"KP2G")||e.writeNumberAttrib("static Gravity",this.gravity),this.writeAnimation(e,"KP2V"),this.squirt&&e.writeFlag("Squirt"),e.writeNumberAttrib("LifeSpan",this.lifeSpan),this.writeAnimation(e,"KP2E")||e.writeNumberAttrib("static EmissionRate",this.emissionRate),this.writeAnimation(e,"KP2N")||e.writeNumberAttrib("static Width",this.width),this.writeAnimation(e,"KP2W")||e.writeNumberAttrib("static Length",this.length),0===this.filterMode?e.writeFlag("Blend"):1===this.filterMode?e.writeFlag("Additive"):2===this.filterMode?e.writeFlag("Modulate"):3===this.filterMode?e.writeFlag("Modulate2x"):4===this.filterMode&&e.writeFlag("AlphaKey"),e.writeNumberAttrib("Rows",this.rows),e.writeNumberAttrib("Columns",this.columns),0===this.headOrTail?e.writeFlag("Head"):1===this.headOrTail?e.writeFlag("Tail"):2===this.headOrTail&&e.writeFlag("Both"),e.writeNumberAttrib("TailLength",this.tailLength),e.writeNumberAttrib("Time",this.timeMiddle),e.startBlock("SegmentColor"),e.writeColor("Color",this.segmentColors[0]),e.writeColor("Color",this.segmentColors[1]),e.writeColor("Color",this.segmentColors[2]),e.endBlockComma(),e.writeVectorAttrib("Alpha",this.segmentAlphas),e.writeVectorAttrib("ParticleScaling",this.segmentScaling),e.writeVectorAttrib("LifeSpanUVAnim",this.headIntervals[0]),e.writeVectorAttrib("DecayUVAnim",this.headIntervals[1]),e.writeVectorAttrib("TailUVAnim",this.tailIntervals[0]),e.writeVectorAttrib("TailDecayUVAnim",this.tailIntervals[1]),e.writeNumberAttrib("TextureID",this.textureId),0!==this.replaceableId&&e.writeNumberAttrib("ReplaceableId",this.replaceableId),0!==this.priorityPlane&&e.writeNumberAttrib("PriorityPlane",this.priorityPlane),this.writeGenericAnimations(e),e.endBlock()}getByteLength(){return 175+super.getByteLength()}}class Eo extends wo{constructor(){super(...arguments),this.lifeSpan=0,this.emissionRate=0,this.speed=0,this.color=new Float32Array(3),this.alpha=1,this.replaceableId=0,this.path="",this.animationVisiblityGuide=""}readMdx(e){const t=e.index,n=e.readUint32();super.readMdx(e),this.lifeSpan=e.readFloat32(),this.emissionRate=e.readFloat32(),this.speed=e.readFloat32(),e.readFloat32Array(this.color),this.alpha=e.readFloat32(),this.replaceableId=e.readUint32(),this.path=e.read(260),this.animationVisiblityGuide=e.read(260),this.readAnimations(e,n-(e.index-t))}writeMdx(e){e.writeUint32(this.getByteLength()),super.writeMdx(e),e.writeFloat32(this.lifeSpan),e.writeFloat32(this.emissionRate),e.writeFloat32(this.speed),e.writeFloat32Array(this.color),e.writeFloat32(this.alpha),e.writeUint32(this.replaceableId),e.skip(260-e.write(this.path)),e.skip(260-e.write(this.animationVisiblityGuide)),this.writeNonGenericAnimationChunks(e)}readMdl(e){for(const t of super.readGenericBlock(e))if("SortPrimsFarZ"===t)this.flags|=65536;else if("Unshaded"===t)this.flags|=32768;else if("Unfogged"===t)this.flags|=262144;else if("static LifeSpan"===t)this.lifeSpan=e.readFloat();else if("LifeSpan"===t)this.readAnimation(e,"KPPL");else if("static EmissionRate"===t)this.emissionRate=e.readFloat();else if("EmissionRate"===t)this.readAnimation(e,"KPPE");else if("static Speed"===t)this.speed=e.readFloat();else if("Speed"===t)this.readAnimation(e,"KPPS");else if("static Color"===t)e.readVector(this.color);else if("Color"===t)this.readAnimation(e,"KPPC");else if("static Alpha"===t)this.alpha=e.readFloat();else if("Alpha"===t)this.readAnimation(e,"KPPA");else if("Visibility"===t)this.readAnimation(e,"KPPV");else if("ReplaceableId"===t)this.replaceableId=e.readInt();else if("Path"===t)this.path=e.read();else{if("AnimVisibilityGuide"!==t)throw new Error(`Unknown token in ParticleEmitterPopcorn: "${t}"`);this.animationVisiblityGuide=e.read()}}writeMdl(e){e.startObjectBlock("ParticleEmitterPopcorn",this.name),this.writeGenericHeader(e),65536&this.flags&&e.writeFlag("SortPrimsFarZ"),32768&this.flags&&e.writeFlag("Unshaded"),262144&this.flags&&e.writeFlag("Unfogged"),this.writeAnimation(e,"KPPL")||e.writeNumberAttrib("static LifeSpan",this.lifeSpan),this.writeAnimation(e,"KPPE")||e.writeNumberAttrib("static EmissionRate",this.emissionRate),this.writeAnimation(e,"KPPS")||e.writeNumberAttrib("static Speed",this.speed),this.writeAnimation(e,"KPPC")||e.writeVectorAttrib("static Color",this.color),this.writeAnimation(e,"KPPA")||e.writeNumberAttrib("static Alpha",this.alpha),this.writeAnimation(e,"KPPV"),0!==this.replaceableId&&e.writeNumberAttrib("ReplaceableId",this.replaceableId),this.path.length&&e.writeStringAttrib("Path",this.path),this.animationVisiblityGuide.length&&e.writeStringAttrib("AnimVisibilityGuide",this.animationVisiblityGuide),this.writeGenericAnimations(e),e.endBlock()}getByteLength(){return 556+super.getByteLength()}}class Lo extends wo{constructor(){super(16384),this.heightAbove=0,this.heightBelow=0,this.alpha=0,this.color=new Float32Array(3),this.lifeSpan=0,this.textureSlot=0,this.emissionRate=0,this.rows=0,this.columns=0,this.materialId=0,this.gravity=0}readMdx(e){const t=e.index,n=e.readUint32();super.readMdx(e),this.heightAbove=e.readFloat32(),this.heightBelow=e.readFloat32(),this.alpha=e.readFloat32(),e.readFloat32Array(this.color),this.lifeSpan=e.readFloat32(),this.textureSlot=e.readUint32(),this.emissionRate=e.readUint32(),this.rows=e.readUint32(),this.columns=e.readUint32(),this.materialId=e.readInt32(),this.gravity=e.readFloat32(),this.readAnimations(e,n-(e.index-t))}writeMdx(e){e.writeUint32(this.getByteLength()),super.writeMdx(e),e.writeFloat32(this.heightAbove),e.writeFloat32(this.heightBelow),e.writeFloat32(this.alpha),e.writeFloat32Array(this.color),e.writeFloat32(this.lifeSpan),e.writeUint32(this.textureSlot),e.writeUint32(this.emissionRate),e.writeUint32(this.rows),e.writeUint32(this.columns),e.writeInt32(this.materialId),e.writeFloat32(this.gravity),this.writeNonGenericAnimationChunks(e)}readMdl(e){for(const t of super.readGenericBlock(e))if("static HeightAbove"===t)this.heightAbove=e.readFloat();else if("HeightAbove"===t)this.readAnimation(e,"KRHA");else if("static HeightBelow"===t)this.heightBelow=e.readFloat();else if("HeightBelow"===t)this.readAnimation(e,"KRHB");else if("static Alpha"===t)this.alpha=e.readFloat();else if("Alpha"===t)this.readAnimation(e,"KRAL");else if("static Color"===t)e.readColor(this.color);else if("Color"===t)this.readAnimation(e,"KRCO");else if("static TextureSlot"===t)this.textureSlot=e.readInt();else if("TextureSlot"===t)this.readAnimation(e,"KRTX");else if("Visibility"===t)this.readAnimation(e,"KRVS");else if("EmissionRate"===t)this.emissionRate=e.readInt();else if("LifeSpan"===t)this.lifeSpan=e.readFloat();else if("Gravity"===t)this.gravity=e.readFloat();else if("Rows"===t)this.rows=e.readInt();else if("Columns"===t)this.columns=e.readInt();else{if("MaterialID"!==t)throw new Error(`Unknown token in RibbonEmitter: "${t}"`);this.materialId=e.readInt()}}writeMdl(e){e.startObjectBlock("RibbonEmitter",this.name),this.writeGenericHeader(e),this.writeAnimation(e,"KRHA")||e.writeNumberAttrib("static HeightAbove",this.heightAbove),this.writeAnimation(e,"KRHB")||e.writeNumberAttrib("static HeightBelow",this.heightBelow),this.writeAnimation(e,"KRAL")||e.writeNumberAttrib("static Alpha",this.alpha),this.writeAnimation(e,"KRCO")||e.writeColor("static Color",this.color),this.writeAnimation(e,"KRTX")||e.writeNumberAttrib("static TextureSlot",this.textureSlot),this.writeAnimation(e,"KRVS"),e.writeNumberAttrib("EmissionRate",this.emissionRate),e.writeNumberAttrib("LifeSpan",this.lifeSpan),0!==this.gravity&&e.writeNumberAttrib("Gravity",this.gravity),e.writeNumberAttrib("Rows",this.rows),e.writeNumberAttrib("Columns",this.columns),e.writeNumberAttrib("MaterialID",this.materialId),this.writeGenericAnimations(e),e.endBlock()}getByteLength(){return 56+super.getByteLength()}}class Io extends co{constructor(){super(...arguments),this.name="",this.position=new Float32Array(3),this.fieldOfView=0,this.farClippingPlane=0,this.nearClippingPlane=0,this.targetPosition=new Float32Array(3)}readMdx(e){const t=e.readUint32();this.name=e.read(80),e.readFloat32Array(this.position),this.fieldOfView=e.readFloat32(),this.farClippingPlane=e.readFloat32(),this.nearClippingPlane=e.readFloat32(),e.readFloat32Array(this.targetPosition),this.readAnimations(e,t-120)}writeMdx(e){e.writeUint32(this.getByteLength()),e.skip(80-e.write(this.name)),e.writeFloat32Array(this.position),e.writeFloat32(this.fieldOfView),e.writeFloat32(this.farClippingPlane),e.writeFloat32(this.nearClippingPlane),e.writeFloat32Array(this.targetPosition),this.writeAnimations(e)}readMdl(e){this.name=e.read();for(let t of e.readBlock())if("Position"===t)e.readVector(this.position);else if("Translation"===t)this.readAnimation(e,"KCTR");else if("Rotation"===t)this.readAnimation(e,"KCRL");else if("FieldOfView"===t)this.fieldOfView=e.readFloat();else if("FarClip"===t)this.farClippingPlane=e.readFloat();else if("NearClip"===t)this.nearClippingPlane=e.readFloat();else{if("Target"!==t)throw new Error(`Unknown token in Camera ${this.name}: "${t}"`);for(t of e.readBlock())if("Position"===t)e.readVector(this.targetPosition);else{if("Translation"!==t)throw new Error(`Unknown token in Camera ${this.name}'s Target: "${t}"`);this.readAnimation(e,"KTTR")}}}writeMdl(e){e.startObjectBlock("Camera",this.name),e.writeVectorAttrib("Position",this.position),this.writeAnimation(e,"KCTR"),this.writeAnimation(e,"KCRL"),e.writeNumberAttrib("FieldOfView",this.fieldOfView),e.writeNumberAttrib("FarClip",this.farClippingPlane),e.writeNumberAttrib("NearClip",this.nearClippingPlane),e.startBlock("Target"),e.writeVectorAttrib("Position",this.targetPosition),this.writeAnimation(e,"KTTR"),e.endBlock(),e.endBlock()}getByteLength(){return 120+super.getByteLength()}}class Uo extends wo{constructor(){super(1024),this.globalSequenceId=-1,this.tracks=new Uint32Array(0)}readMdx(e){super.readMdx(e),e.skip(4);const t=e.readUint32();this.globalSequenceId=e.readInt32(),this.tracks=e.readUint32Array(t)}writeMdx(e){super.writeMdx(e),e.writeBinary("KEVT"),e.writeUint32(this.tracks.length),e.writeInt32(this.globalSequenceId),e.writeUint32Array(this.tracks)}readMdl(e){for(const t of super.readGenericBlock(e)){if("EventTrack"!==t)throw new Error(`Unknown token in EventObject: "${t}"`);{const t=e.readInt();this.tracks=new Uint32Array(t),e.read(),"GlobalSeqId"===e.peek()&&(e.read(),this.globalSequenceId=e.readInt());for(let n=0;n<t;n++)this.tracks[n]=e.readInt();e.read()}}}writeMdl(e){e.startObjectBlock("EventObject",this.name),this.writeGenericHeader(e),e.startBlock("EventTrack",this.tracks.length),-1!==this.globalSequenceId&&e.writeNumberAttrib("GlobalSeqId",this.globalSequenceId);for(const t of this.tracks)e.writeFlag(`${t}`);e.endBlock(),this.writeGenericAnimations(e),e.endBlock()}getByteLength(){return 12+this.tracks.byteLength+super.getByteLength()}}class Ro extends wo{constructor(){super(8192),this.type=0,this.vertices=[new Float32Array(3),new Float32Array(3)],this.boundsRadius=0}readMdx(e){super.readMdx(e),this.type=e.readUint32(),e.readFloat32Array(this.vertices[0]),2!==this.type&&e.readFloat32Array(this.vertices[1]),2!==this.type&&3!==this.type||(this.boundsRadius=e.readFloat32())}writeMdx(e){super.writeMdx(e),e.writeUint32(this.type),e.writeFloat32Array(this.vertices[0]),2!==this.type&&e.writeFloat32Array(this.vertices[1]),2!==this.type&&3!==this.type||e.writeFloat32(this.boundsRadius)}readMdl(e){for(const t of super.readGenericBlock(e))if("Box"===t)this.type=0;else if("Plane"===t)this.type=1;else if("Sphere"===t)this.type=2;else if("Cylinder"===t)this.type=3;else if("Vertices"===t){const t=e.readInt();e.read(),e.readVector(this.vertices[0]),2===t&&e.readVector(this.vertices[1]),e.read()}else{if("BoundsRadius"!==t)throw new Error(`Unknown token in CollisionShape: "${t}"`);this.boundsRadius=e.readFloat()}}writeMdl(e){e.startObjectBlock("CollisionShape",this.name),this.writeGenericHeader(e);let t="",n=2,a=!1;0===this.type?t="Box":1===this.type?t="Plane":2===this.type?(t="Sphere",n=1,a=!0):3===this.type&&(t="Cylinder",a=!0),e.writeFlag(t),e.startBlock("Vertices",n),e.writeVector(this.vertices[0]),2===n&&e.writeVector(this.vertices[1]),e.endBlock(),a&&e.writeNumberAttrib("BoundsRadius",this.boundsRadius),this.writeGenericAnimations(e),e.endBlock()}getByteLength(){let e=16+super.getByteLength();return 2!==this.type&&(e+=12),2!==this.type&&3!==this.type||(e+=4),e}}class Co{constructor(){this.type="",this.path=""}readMdx(e){this.type=e.read(80),this.path=e.read(260)}writeMdx(e){e.skip(80-e.write(this.type)),e.skip(260-e.write(this.path))}readMdl(e){this.type=e.read();for(const t of e.readBlock()){if("Path"!==t)throw new Error(`Unknown token in FaceEffect: "${t}"`);this.path=e.read()}}writeMdl(e){e.startObjectBlock("FaceFX",this.type),e.writeStringAttrib("Path",this.path),e.endBlock()}}class Mo{constructor(e,t,n){this.tag=n,this.chunk=e.readUint8Array(new Uint8Array(t))}writeMdx(e){e.writeBinary(this.tag),e.writeUint32(this.chunk.byteLength),e.writeUint8Array(this.chunk)}getByteLength(){return 8+this.chunk.byteLength}}function Bo(e){return e instanceof ArrayBuffer&&(e=new Uint8Array(e)),e instanceof Uint8Array&&77===e[0]&&68===e[1]&&76===e[2]&&88===e[3]||!("string"!=typeof e||!e.startsWith("MDLX"))}function No(e){return e instanceof ArrayBuffer&&(e=new Uint8Array(e)),!!(e instanceof Uint8Array&&Js(e,"FormatVersion",0,4096))||!("string"!=typeof e||!function(e,t,n=0,a=1/0){const r=Math.max(n,0),i=Math.min(r+a,e.length);let s=0,l=t[0];for(let n=r;n<i;n++)if(e[n]===l){if(s+=1,s===t.length)return!0;l=t[s]}else s>0&&(s=0,l=t[0]);return!1}(e,"FormatVersion",0,4096))}class Po{constructor(){this.version=800,this.name="",this.animationFile="",this.extent=new no,this.blendTime=0,this.sequences=[],this.globalSequences=[],this.materials=[],this.textures=[],this.textureAnimations=[],this.geosets=[],this.geosetAnimations=[],this.bones=[],this.lights=[],this.helpers=[],this.attachments=[],this.pivotPoints=[],this.particleEmitters=[],this.particleEmitters2=[],this.particleEmittersPopcorn=[],this.ribbonEmitters=[],this.cameras=[],this.eventObjects=[],this.collisionShapes=[],this.faceEffects=[],this.bindPose=[],this.unknownChunks=[]}load(e){if(Bo(e))"string"==typeof e&&(e=zs(e)),this.loadMdx(e);else{if(!No(e))throw new Error("Not a valid MDX/MDL buffer");"string"!=typeof e&&(e=Hs(e)),this.loadMdl(e)}}loadMdx(e){const t=new Al(e);let n,a;for(t.skip(4);t.remaining>0;)n=t.readBinary(4),a=t.readUint32(),"VERS"===n?this.loadVersionChunk(t):"MODL"===n?this.loadModelChunk(t):"SEQS"===n?this.loadStaticObjects(this.sequences,ao,t,a/132):"GLBS"===n?this.loadGlobalSequenceChunk(t,a):"MTLS"===n?this.loadDynamicObjects(this.materials,mo,t,a):"TEXS"===n?this.loadStaticObjects(this.textures,po,t,a/268):"TXAN"===n?this.loadDynamicObjects(this.textureAnimations,_o,t,a):"GEOS"===n?this.loadDynamicObjects(this.geosets,go,t,a):"GEOA"===n?this.loadDynamicObjects(this.geosetAnimations,bo,t,a):"BONE"===n?this.loadDynamicObjects(this.bones,vo,t,a):"LITE"===n?this.loadDynamicObjects(this.lights,Ao,t,a):"HELP"===n?this.loadDynamicObjects(this.helpers,yo,t,a):"ATCH"===n?this.loadDynamicObjects(this.attachments,So,t,a):"PIVT"===n?this.loadPivotPointChunk(t,a):"PREM"===n?this.loadDynamicObjects(this.particleEmitters,To,t,a):"PRE2"===n?this.loadDynamicObjects(this.particleEmitters2,xo,t,a):"CORN"===n?this.loadDynamicObjects(this.particleEmittersPopcorn,Eo,t,a):"RIBB"===n?this.loadDynamicObjects(this.ribbonEmitters,Lo,t,a):"CAMS"===n?this.loadDynamicObjects(this.cameras,Io,t,a):"EVTS"===n?this.loadDynamicObjects(this.eventObjects,Uo,t,a):"CLID"===n?this.loadDynamicObjects(this.collisionShapes,Ro,t,a):"FAFX"===n?this.loadStaticObjects(this.faceEffects,Co,t,a/340):"BPOS"===n?this.loadBindPoseChunk(t,a):this.unknownChunks.push(new Mo(t,a,n))}loadVersionChunk(e){this.version=e.readUint32()}loadModelChunk(e){this.name=e.read(80),this.animationFile=e.read(260),this.extent.readMdx(e),this.blendTime=e.readUint32()}loadStaticObjects(e,t,n,a){for(let r=0;r<a;r++){const a=new t;a.readMdx(n),e.push(a)}}loadGlobalSequenceChunk(e,t){for(let n=0,a=t/4;n<a;n++)this.globalSequences.push(e.readUint32())}loadDynamicObjects(e,t,n,a){const r=n.index+a;for(;n.index<r;){const a=new t;a.readMdx(n,this.version),e.push(a)}}loadPivotPointChunk(e,t){for(let n=0,a=t/12;n<a;n++)this.pivotPoints.push(e.readFloat32Array(3))}loadBindPoseChunk(e,t){for(let t=0,n=e.readUint32();t<n;t++)this.bindPose[t]=e.readFloat32Array(12)}saveMdx(){const e=new Al(new ArrayBuffer(this.getByteLength()));e.writeBinary("MDLX"),this.saveVersionChunk(e),this.saveModelChunk(e),this.saveStaticObjectChunk(e,"SEQS",this.sequences,132),this.saveGlobalSequenceChunk(e),this.saveDynamicObjectChunk(e,"MTLS",this.materials),this.saveStaticObjectChunk(e,"TEXS",this.textures,268),this.saveDynamicObjectChunk(e,"TXAN",this.textureAnimations),this.saveDynamicObjectChunk(e,"GEOS",this.geosets),this.saveDynamicObjectChunk(e,"GEOA",this.geosetAnimations),this.saveDynamicObjectChunk(e,"BONE",this.bones),this.saveDynamicObjectChunk(e,"LITE",this.lights),this.saveDynamicObjectChunk(e,"HELP",this.helpers),this.saveDynamicObjectChunk(e,"ATCH",this.attachments),this.savePivotPointChunk(e),this.saveDynamicObjectChunk(e,"PREM",this.particleEmitters),this.saveDynamicObjectChunk(e,"PRE2",this.particleEmitters2),this.version>800&&this.saveDynamicObjectChunk(e,"CORN",this.particleEmittersPopcorn),this.saveDynamicObjectChunk(e,"RIBB",this.ribbonEmitters),this.saveDynamicObjectChunk(e,"CAMS",this.cameras),this.saveDynamicObjectChunk(e,"EVTS",this.eventObjects),this.saveDynamicObjectChunk(e,"CLID",this.collisionShapes),this.version>800&&(this.saveStaticObjectChunk(e,"FAFX",this.faceEffects,340),this.saveBindPoseChunk(e));for(const t of this.unknownChunks)t.writeMdx(e);return e.uint8array}saveVersionChunk(e){e.writeBinary("VERS"),e.writeUint32(4),e.writeUint32(this.version)}saveModelChunk(e){e.writeBinary("MODL"),e.writeUint32(372),e.skip(80-e.write(this.name)),e.skip(260-e.write(this.animationFile)),this.extent.writeMdx(e),e.writeUint32(this.blendTime)}saveStaticObjectChunk(e,t,n,a){if(n.length){e.writeBinary(t),e.writeUint32(n.length*a);for(const t of n)t.writeMdx(e)}}saveGlobalSequenceChunk(e){if(this.globalSequences.length){e.writeBinary("GLBS"),e.writeUint32(4*this.globalSequences.length);for(const t of this.globalSequences)e.writeUint32(t)}}saveDynamicObjectChunk(e,t,n){if(n.length){e.writeBinary(t),e.writeUint32(this.getObjectsByteLength(n));for(const t of n)t.writeMdx(e,this.version)}}savePivotPointChunk(e){if(this.pivotPoints.length){e.writeBinary("PIVT"),e.writeUint32(12*this.pivotPoints.length);for(const t of this.pivotPoints)e.writeFloat32Array(t)}}saveBindPoseChunk(e){if(this.bindPose.length){e.writeBinary("BPOS"),e.writeUint32(4+48*this.bindPose.length),e.writeUint32(this.bindPose.length);for(const t of this.bindPose)e.writeFloat32Array(t)}}loadMdl(e){let t;const n=new to(e);for(;t=n.readToken();)if("Version"===t)this.loadVersionBlock(n);else if("Model"===t)this.loadModelBlock(n);else if("Sequences"===t)this.loadNumberedObjectBlock(this.sequences,ao,"Anim",n);else if("GlobalSequences"===t)this.loadGlobalSequenceBlock(n);else if("Textures"===t)this.loadNumberedObjectBlock(this.textures,po,"Bitmap",n);else if("Materials"===t)this.loadNumberedObjectBlock(this.materials,mo,"Material",n);else if("TextureAnims"===t)this.loadNumberedObjectBlock(this.textureAnimations,_o,"TVertexAnim",n);else if("Geoset"===t)this.loadObject(this.geosets,go,n);else if("GeosetAnim"===t)this.loadObject(this.geosetAnimations,bo,n);else if("Bone"===t)this.loadObject(this.bones,vo,n);else if("Light"===t)this.loadObject(this.lights,Ao,n);else if("Helper"===t)this.loadObject(this.helpers,yo,n);else if("Attachment"===t)this.loadObject(this.attachments,So,n);else if("PivotPoints"===t)this.loadPivotPointBlock(n);else if("ParticleEmitter"===t)this.loadObject(this.particleEmitters,To,n);else if("ParticleEmitter2"===t)this.loadObject(this.particleEmitters2,xo,n);else if("ParticleEmitterPopcorn"===t)this.loadObject(this.particleEmittersPopcorn,Eo,n);else if("RibbonEmitter"===t)this.loadObject(this.ribbonEmitters,Lo,n);else if("Camera"===t)this.loadObject(this.cameras,Io,n);else if("EventObject"===t)this.loadObject(this.eventObjects,Uo,n);else if("CollisionShape"===t)this.loadObject(this.collisionShapes,Ro,n);else if("FaceFX"===t)this.loadObject(this.faceEffects,Co,n);else{if("BindPose"!==t)throw new Error(`Unsupported block: ${t}`);this.loadBindPoseBlock(n)}}loadVersionBlock(e){for(const t of e.readBlock()){if("FormatVersion"!==t)throw new Error(`Unknown token in Version: "${t}"`);this.version=e.readInt()}}loadModelBlock(e){this.name=e.read();for(const t of e.readBlock())if(t.startsWith("Num"))e.read();else if("BlendTime"===t)this.blendTime=e.readInt();else if("MinimumExtent"===t)e.readVector(this.extent.min);else if("MaximumExtent"===t)e.readVector(this.extent.max);else if("BoundsRadius"===t)this.extent.boundsRadius=e.readFloat();else{if("AnimationFile"!==t)throw new Error(`Unknown token in Model: "${t}"`);this.animationFile=e.read()}}loadNumberedObjectBlock(e,t,n,a){a.read();for(const r of a.readBlock()){if(r!==n)throw new Error(`Unknown token in ${n}: "${r}"`);{const n=new t;n.readMdl(a),e.push(n)}}}loadGlobalSequenceBlock(e){e.read();for(const t of e.readBlock()){if("Duration"!==t)throw new Error(`Unknown token in GlobalSequences: "${t}"`);this.globalSequences.push(e.readInt())}}loadObject(e,t,n){const a=new t;a.readMdl(n),e.push(a)}loadPivotPointBlock(e){const t=e.readInt();e.read();for(let n=0;n<t;n++)this.pivotPoints.push(e.readVector(new Float32Array(3)));e.read()}loadBindPoseBlock(e){for(const t of e.readBlock()){if("Matrices"!==t)throw new Error(`Unknown token in BindPose: "${t}"`);{const t=e.readInt();e.read();for(let n=0;n<t;n++)this.bindPose[n]=e.readVector(new Float32Array(12));e.read()}}}saveMdl(){const e=new to;return this.saveVersionBlock(e),this.saveModelBlock(e),this.saveStaticObjectsBlock(e,"Sequences",this.sequences),this.saveGlobalSequenceBlock(e),this.saveStaticObjectsBlock(e,"Textures",this.textures),this.saveStaticObjectsBlock(e,"Materials",this.materials),this.saveStaticObjectsBlock(e,"TextureAnims",this.textureAnimations),this.saveObjects(e,this.geosets),this.saveObjects(e,this.geosetAnimations),this.saveObjects(e,this.bones),this.saveObjects(e,this.lights),this.saveObjects(e,this.helpers),this.saveObjects(e,this.attachments),this.savePivotPointBlock(e),this.saveObjects(e,this.particleEmitters),this.saveObjects(e,this.particleEmitters2),this.version>800&&this.saveObjects(e,this.particleEmittersPopcorn),this.saveObjects(e,this.ribbonEmitters),this.saveObjects(e,this.cameras),this.saveObjects(e,this.eventObjects),this.saveObjects(e,this.collisionShapes),this.version>800&&(this.saveObjects(e,this.faceEffects),this.saveBindPoseBlock(e)),e.buffer}saveVersionBlock(e){e.startBlock("Version"),e.writeNumberAttrib("FormatVersion",this.version),e.endBlock()}saveModelBlock(e){e.startObjectBlock("Model",this.name),e.writeNumberAttrib("BlendTime",this.blendTime),this.extent.writeMdl(e),this.animationFile.length&&e.writeStringAttrib("AnimationFile",this.animationFile),e.endBlock()}saveStaticObjectsBlock(e,t,n){if(n.length){e.startBlock(t,n.length);for(const t of n)t.writeMdl(e,this.version);e.endBlock()}}saveGlobalSequenceBlock(e){if(this.globalSequences.length){e.startBlock("GlobalSequences",this.globalSequences.length);for(const t of this.globalSequences)e.writeNumberAttrib("Duration",t);e.endBlock()}}saveObjects(e,t){for(const n of t)n.writeMdl(e,this.version)}savePivotPointBlock(e){if(this.pivotPoints.length){e.startBlock("PivotPoints",this.pivotPoints.length);for(const t of this.pivotPoints)e.writeVector(t);e.endBlock()}}saveBindPoseBlock(e){if(this.bindPose.length){e.startBlock("BindPose"),e.startBlock("Matrices",this.bindPose.length);for(const t of this.bindPose)e.writeVector(t);e.endBlock(),e.endBlock()}}getByteLength(){let e=396;return e+=this.getStaticObjectsChunkByteLength(this.sequences,132),e+=this.getStaticObjectsChunkByteLength(this.globalSequences,4),e+=this.getDynamicObjectsChunkByteLength(this.materials),e+=this.getStaticObjectsChunkByteLength(this.textures,268),e+=this.getDynamicObjectsChunkByteLength(this.textureAnimations),e+=this.getDynamicObjectsChunkByteLength(this.geosets),e+=this.getDynamicObjectsChunkByteLength(this.geosetAnimations),e+=this.getDynamicObjectsChunkByteLength(this.bones),e+=this.getDynamicObjectsChunkByteLength(this.lights),e+=this.getDynamicObjectsChunkByteLength(this.helpers),e+=this.getDynamicObjectsChunkByteLength(this.attachments),e+=this.getStaticObjectsChunkByteLength(this.pivotPoints,12),e+=this.getDynamicObjectsChunkByteLength(this.particleEmitters),e+=this.getDynamicObjectsChunkByteLength(this.particleEmitters2),this.version>800&&(e+=this.getDynamicObjectsChunkByteLength(this.particleEmittersPopcorn)),e+=this.getDynamicObjectsChunkByteLength(this.ribbonEmitters),e+=this.getDynamicObjectsChunkByteLength(this.cameras),e+=this.getDynamicObjectsChunkByteLength(this.eventObjects),e+=this.getDynamicObjectsChunkByteLength(this.collisionShapes),this.version>800&&(e+=this.getStaticObjectsChunkByteLength(this.faceEffects,340),e+=this.getBindPoseChunkByteLength()),e+=this.getObjectsByteLength(this.unknownChunks),e}getObjectsByteLength(e){let t=0;for(const n of e)t+=n.getByteLength(this.version);return t}getDynamicObjectsChunkByteLength(e){return e.length?8+this.getObjectsByteLength(e):0}getStaticObjectsChunkByteLength(e,t){return e.length?8+e.length*t:0}getBindPoseChunkByteLength(){return this.bindPose.length?12+48*this.bindPose.length:0}}const ko={Model:Po,Sequence:ao,Material:mo,Layer:fo,Texture:po,TextureAnimation:_o,Geoset:go,GeosetAnimation:bo,Bone:vo,Light:Ao,Helper:yo,Attachment:So,ParticleEmitter:To,ParticleEmitter2:xo,ParticleEmitterPopcorn:Eo,RibbonEmitter:Lo,Camera:Io,EventObject:Uo,CollisionShape:Ro,UnknownChunk:Mo,TokenStream:to,isMdx:Bo,isMdl:No};class Oo{constructor(){this.offset=0,this.compressedSize=0,this.normalSize=0,this.flags=0}load(e){this.offset=e[0],this.compressedSize=e[1],this.normalSize=e[2],this.flags=e[3]}save(e){e[0]=this.offset,e[1]=this.compressedSize,e[2]=this.normalSize,e[3]=this.flags}}const Do=3283040112,Fo=4294967294,Go=4294967295,Vo=3968054179,Ko=65536,Ho=131072,zo=16777216,jo=2147483648;class Xo{constructor(e){this.c=e,this.entries=[]}add(e){const t=new Oo;return t.normalSize=e.byteLength,this.entries.push(t),t}clear(){this.entries.length=0}addEmpties(e){for(let t=0;t<e;t++)this.entries.push(new Oo)}load(e){const t=e.byteLength/16,n=new Uint32Array(this.c.decryptBlock(e,Vo).buffer);let a=0;this.clear(),this.addEmpties(t);for(const e of this.entries)e.load(n.subarray(a,a+4)),a+=4}save(e){const t=new Uint32Array(4*this.entries.length);let n=0;for(const e of this.entries)e.save(t.subarray(n,n+4)),n+=4;const a=new Uint8Array(t.buffer);this.c.encryptBlock(a,Vo),e.set(a)}}const $o=new Uint8Array(4),Jo=new Uint32Array($o.buffer);class Wo{constructor(){this.cryptTable=new Uint32Array(1280);let e=1048577,t=0,n=0;for(let a=0;a<256;a++)for(let r=a,i=0;i<5;i+=1,r+=256)e=(125*e+3)%2796203,t=(65535&e)<<16,e=(125*e+3)%2796203,n=65535&e,this.cryptTable[r]=t|n}hash(e,t){const n=this.cryptTable;let a=2146271213,r=4008636142;e=e.toUpperCase();for(let i=0;i<e.length;i++){const s=e.charCodeAt(i);a=n[(t<<8)+s]^a+r,r=s+a+r+(r<<5)+3}return a>>>0}decryptBlock(e,t){const n=this.cryptTable;let a=4008636142;const r=new Uint8Array(e.buffer,e.byteOffset,e.byteLength);for(let i=0,s=e.byteLength>>>2;i<s;i++)a+=n[1024+(255&t)],$o[0]=r[4*i],$o[1]=r[4*i+1],$o[2]=r[4*i+2],$o[3]=r[4*i+3],Jo[0]^=t+a,t=286331153+(~t<<21)|t>>>11,a=Jo[0]+a+(a<<5)+3,r[4*i]=$o[0],r[4*i+1]=$o[1],r[4*i+2]=$o[2],r[4*i+3]=$o[3];return e}encryptBlock(e,t){const n=this.cryptTable;let a=4008636142;const r=new Uint8Array(e.buffer,e.byteOffset,e.byteLength);for(let i=0,s=e.byteLength>>>2;i<s;i++){a+=n[1024+(255&t)],$o[0]=r[4*i],$o[1]=r[4*i+1],$o[2]=r[4*i+2],$o[3]=r[4*i+3];const e=Jo[0];Jo[0]^=t+a,t=286331153+(~t<<21)|t>>>11,a=e+a+(a<<5)+3,r[4*i]=$o[0],r[4*i+1]=$o[1],r[4*i+2]=$o[2],r[4*i+3]=$o[3]}return e}computeFileKey(e,t){const n=e.lastIndexOf("\\"),a=e.substring(n+1);let r=this.hash(a,3);return t.flags&Ho&&(r=r+t.offset^t.normalSize),r}}function qo(e){let t=e.length;for(;--t>=0;)e[t]=0}const Yo=256,Zo=286,Qo=30,eu=15,tu=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),nu=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),au=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),ru=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),iu=new Array(576);qo(iu);const su=new Array(60);qo(su);const lu=new Array(512);qo(lu);const ou=new Array(256);qo(ou);const uu=new Array(29);qo(uu);const cu=new Array(Qo);function du(e,t,n,a,r){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=a,this.max_length=r,this.has_stree=e&&e.length}let hu,fu,mu;function pu(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}qo(cu);const _u=e=>e<256?lu[e]:lu[256+(e>>>7)],gu=(e,t)=>{e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},bu=(e,t,n)=>{e.bi_valid>16-n?(e.bi_buf|=t<<e.bi_valid&65535,gu(e,e.bi_buf),e.bi_buf=t>>16-e.bi_valid,e.bi_valid+=n-16):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)},wu=(e,t,n)=>{bu(e,n[2*t],n[2*t+1])},vu=(e,t)=>{let n=0;do{n|=1&e,e>>>=1,n<<=1}while(--t>0);return n>>>1},Au=(e,t,n)=>{const a=new Array(16);let r,i,s=0;for(r=1;r<=eu;r++)s=s+n[r-1]<<1,a[r]=s;for(i=0;i<=t;i++){let t=e[2*i+1];0!==t&&(e[2*i]=vu(a[t]++,t))}},yu=e=>{let t;for(t=0;t<Zo;t++)e.dyn_ltree[2*t]=0;for(t=0;t<Qo;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},Su=e=>{e.bi_valid>8?gu(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},Tu=(e,t,n,a)=>{const r=2*t,i=2*n;return e[r]<e[i]||e[r]===e[i]&&a[t]<=a[n]},xu=(e,t,n)=>{const a=e.heap[n];let r=n<<1;for(;r<=e.heap_len&&(r<e.heap_len&&Tu(t,e.heap[r+1],e.heap[r],e.depth)&&r++,!Tu(t,a,e.heap[r],e.depth));)e.heap[n]=e.heap[r],n=r,r<<=1;e.heap[n]=a},Eu=(e,t,n)=>{let a,r,i,s,l=0;if(0!==e.sym_next)do{a=255&e.pending_buf[e.sym_buf+l++],a+=(255&e.pending_buf[e.sym_buf+l++])<<8,r=e.pending_buf[e.sym_buf+l++],0===a?wu(e,r,t):(i=ou[r],wu(e,i+Yo+1,t),s=tu[i],0!==s&&(r-=uu[i],bu(e,r,s)),a--,i=_u(a),wu(e,i,n),s=nu[i],0!==s&&(a-=cu[i],bu(e,a,s)))}while(l<e.sym_next);wu(e,256,t)},Lu=(e,t)=>{const n=t.dyn_tree,a=t.stat_desc.static_tree,r=t.stat_desc.has_stree,i=t.stat_desc.elems;let s,l,o,u=-1;for(e.heap_len=0,e.heap_max=573,s=0;s<i;s++)0!==n[2*s]?(e.heap[++e.heap_len]=u=s,e.depth[s]=0):n[2*s+1]=0;for(;e.heap_len<2;)o=e.heap[++e.heap_len]=u<2?++u:0,n[2*o]=1,e.depth[o]=0,e.opt_len--,r&&(e.static_len-=a[2*o+1]);for(t.max_code=u,s=e.heap_len>>1;s>=1;s--)xu(e,n,s);o=i;do{s=e.heap[1],e.heap[1]=e.heap[e.heap_len--],xu(e,n,1),l=e.heap[1],e.heap[--e.heap_max]=s,e.heap[--e.heap_max]=l,n[2*o]=n[2*s]+n[2*l],e.depth[o]=(e.depth[s]>=e.depth[l]?e.depth[s]:e.depth[l])+1,n[2*s+1]=n[2*l+1]=o,e.heap[1]=o++,xu(e,n,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],((e,t)=>{const n=t.dyn_tree,a=t.max_code,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,s=t.stat_desc.extra_bits,l=t.stat_desc.extra_base,o=t.stat_desc.max_length;let u,c,d,h,f,m,p=0;for(h=0;h<=eu;h++)e.bl_count[h]=0;for(n[2*e.heap[e.heap_max]+1]=0,u=e.heap_max+1;u<573;u++)c=e.heap[u],h=n[2*n[2*c+1]+1]+1,h>o&&(h=o,p++),n[2*c+1]=h,c>a||(e.bl_count[h]++,f=0,c>=l&&(f=s[c-l]),m=n[2*c],e.opt_len+=m*(h+f),i&&(e.static_len+=m*(r[2*c+1]+f)));if(0!==p){do{for(h=o-1;0===e.bl_count[h];)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[o]--,p-=2}while(p>0);for(h=o;0!==h;h--)for(c=e.bl_count[h];0!==c;)d=e.heap[--u],d>a||(n[2*d+1]!==h&&(e.opt_len+=(h-n[2*d+1])*n[2*d],n[2*d+1]=h),c--)}})(e,t),Au(n,u,e.bl_count)},Iu=(e,t,n)=>{let a,r,i=-1,s=t[1],l=0,o=7,u=4;for(0===s&&(o=138,u=3),t[2*(n+1)+1]=65535,a=0;a<=n;a++)r=s,s=t[2*(a+1)+1],++l<o&&r===s||(l<u?e.bl_tree[2*r]+=l:0!==r?(r!==i&&e.bl_tree[2*r]++,e.bl_tree[32]++):l<=10?e.bl_tree[34]++:e.bl_tree[36]++,l=0,i=r,0===s?(o=138,u=3):r===s?(o=6,u=3):(o=7,u=4))},Uu=(e,t,n)=>{let a,r,i=-1,s=t[1],l=0,o=7,u=4;for(0===s&&(o=138,u=3),a=0;a<=n;a++)if(r=s,s=t[2*(a+1)+1],!(++l<o&&r===s)){if(l<u)do{wu(e,r,e.bl_tree)}while(0!==--l);else 0!==r?(r!==i&&(wu(e,r,e.bl_tree),l--),wu(e,16,e.bl_tree),bu(e,l-3,2)):l<=10?(wu(e,17,e.bl_tree),bu(e,l-3,3)):(wu(e,18,e.bl_tree),bu(e,l-11,7));l=0,i=r,0===s?(o=138,u=3):r===s?(o=6,u=3):(o=7,u=4)}};let Ru=!1;const Cu=(e,t,n,a)=>{bu(e,0+(a?1:0),3),Su(e),gu(e,n),gu(e,~n),n&&e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n};var Mu=e=>{Ru||((()=>{let e,t,n,a,r;const i=new Array(16);for(n=0,a=0;a<28;a++)for(uu[a]=n,e=0;e<1<<tu[a];e++)ou[n++]=a;for(ou[n-1]=a,r=0,a=0;a<16;a++)for(cu[a]=r,e=0;e<1<<nu[a];e++)lu[r++]=a;for(r>>=7;a<Qo;a++)for(cu[a]=r<<7,e=0;e<1<<nu[a]-7;e++)lu[256+r++]=a;for(t=0;t<=eu;t++)i[t]=0;for(e=0;e<=143;)iu[2*e+1]=8,e++,i[8]++;for(;e<=255;)iu[2*e+1]=9,e++,i[9]++;for(;e<=279;)iu[2*e+1]=7,e++,i[7]++;for(;e<=287;)iu[2*e+1]=8,e++,i[8]++;for(Au(iu,287,i),e=0;e<Qo;e++)su[2*e+1]=5,su[2*e]=vu(e,5);hu=new du(iu,tu,257,Zo,eu),fu=new du(su,nu,0,Qo,eu),mu=new du(new Array(0),au,0,19,7)})(),Ru=!0),e.l_desc=new pu(e.dyn_ltree,hu),e.d_desc=new pu(e.dyn_dtree,fu),e.bl_desc=new pu(e.bl_tree,mu),e.bi_buf=0,e.bi_valid=0,yu(e)},Bu=(e,t,n,a)=>{let r,i,s=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=(e=>{let t,n=4093624447;for(t=0;t<=31;t++,n>>>=1)if(1&n&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<Yo;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0})(e)),Lu(e,e.l_desc),Lu(e,e.d_desc),s=(e=>{let t;for(Iu(e,e.dyn_ltree,e.l_desc.max_code),Iu(e,e.dyn_dtree,e.d_desc.max_code),Lu(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*ru[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t})(e),r=e.opt_len+3+7>>>3,i=e.static_len+3+7>>>3,i<=r&&(r=i)):r=i=n+5,n+4<=r&&-1!==t?Cu(e,t,n,a):4===e.strategy||i===r?(bu(e,2+(a?1:0),3),Eu(e,iu,su)):(bu(e,4+(a?1:0),3),((e,t,n,a)=>{let r;for(bu(e,t-257,5),bu(e,n-1,5),bu(e,a-4,4),r=0;r<a;r++)bu(e,e.bl_tree[2*ru[r]+1],3);Uu(e,e.dyn_ltree,t-1),Uu(e,e.dyn_dtree,n-1)})(e,e.l_desc.max_code+1,e.d_desc.max_code+1,s+1),Eu(e,e.dyn_ltree,e.dyn_dtree)),yu(e),a&&Su(e)},Nu=(e,t,n)=>(e.pending_buf[e.sym_buf+e.sym_next++]=t,e.pending_buf[e.sym_buf+e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+e.sym_next++]=n,0===t?e.dyn_ltree[2*n]++:(e.matches++,t--,e.dyn_ltree[2*(ou[n]+Yo+1)]++,e.dyn_dtree[2*_u(t)]++),e.sym_next===e.sym_end),Pu=e=>{bu(e,2,3),wu(e,256,iu),(e=>{16===e.bi_valid?(gu(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)})(e)},ku={_tr_init:Mu,_tr_stored_block:Cu,_tr_flush_block:Bu,_tr_tally:Nu,_tr_align:Pu};var Ou=(e,t,n,a)=>{let r=65535&e,i=e>>>16&65535,s=0;for(;0!==n;){s=n>2e3?2e3:n,n-=s;do{r=r+t[a++]|0,i=i+r|0}while(--s);r%=65521,i%=65521}return r|i<<16};const Du=new Uint32Array((()=>{let e,t=[];for(var n=0;n<256;n++){e=n;for(var a=0;a<8;a++)e=1&e?3988292384^e>>>1:e>>>1;t[n]=e}return t})());var Fu=(e,t,n,a)=>{const r=Du,i=a+n;e^=-1;for(let n=a;n<i;n++)e=e>>>8^r[255&(e^t[n])];return-1^e},Gu={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},Vu={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:Ku,_tr_stored_block:Hu,_tr_flush_block:zu,_tr_tally:ju,_tr_align:Xu}=ku,{Z_NO_FLUSH:$u,Z_PARTIAL_FLUSH:Ju,Z_FULL_FLUSH:Wu,Z_FINISH:qu,Z_BLOCK:Yu,Z_OK:Zu,Z_STREAM_END:Qu,Z_STREAM_ERROR:ec,Z_DATA_ERROR:tc,Z_BUF_ERROR:nc,Z_DEFAULT_COMPRESSION:ac,Z_FILTERED:rc,Z_HUFFMAN_ONLY:ic,Z_RLE:sc,Z_FIXED:lc,Z_DEFAULT_STRATEGY:oc,Z_UNKNOWN:uc,Z_DEFLATED:cc}=Vu,dc=258,hc=262,fc=42,mc=113,pc=666,_c=(e,t)=>(e.msg=Gu[t],t),gc=e=>2*e-(e>4?9:0),bc=e=>{let t=e.length;for(;--t>=0;)e[t]=0},wc=e=>{let t,n,a,r=e.w_size;t=e.hash_size,a=t;do{n=e.head[--a],e.head[a]=n>=r?n-r:0}while(--t);t=r,a=t;do{n=e.prev[--a],e.prev[a]=n>=r?n-r:0}while(--t)};let vc=(e,t,n)=>(t<<e.hash_shift^n)&e.hash_mask;const Ac=e=>{const t=e.state;let n=t.pending;n>e.avail_out&&(n=e.avail_out),0!==n&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+n),e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,0===t.pending&&(t.pending_out=0))},yc=(e,t)=>{zu(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Ac(e.strm)},Sc=(e,t)=>{e.pending_buf[e.pending++]=t},Tc=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},xc=(e,t,n,a)=>{let r=e.avail_in;return r>a&&(r=a),0===r?0:(e.avail_in-=r,t.set(e.input.subarray(e.next_in,e.next_in+r),n),1===e.state.wrap?e.adler=Ou(e.adler,t,r,n):2===e.state.wrap&&(e.adler=Fu(e.adler,t,r,n)),e.next_in+=r,e.total_in+=r,r)},Ec=(e,t)=>{let n,a,r=e.max_chain_length,i=e.strstart,s=e.prev_length,l=e.nice_match;const o=e.strstart>e.w_size-hc?e.strstart-(e.w_size-hc):0,u=e.window,c=e.w_mask,d=e.prev,h=e.strstart+dc;let f=u[i+s-1],m=u[i+s];e.prev_length>=e.good_match&&(r>>=2),l>e.lookahead&&(l=e.lookahead);do{if(n=t,u[n+s]===m&&u[n+s-1]===f&&u[n]===u[i]&&u[++n]===u[i+1]){i+=2,n++;do{}while(u[++i]===u[++n]&&u[++i]===u[++n]&&u[++i]===u[++n]&&u[++i]===u[++n]&&u[++i]===u[++n]&&u[++i]===u[++n]&&u[++i]===u[++n]&&u[++i]===u[++n]&&i<h);if(a=dc-(h-i),i=h-dc,a>s){if(e.match_start=t,s=a,a>=l)break;f=u[i+s-1],m=u[i+s]}}}while((t=d[t&c])>o&&0!==--r);return s<=e.lookahead?s:e.lookahead},Lc=e=>{const t=e.w_size;let n,a,r;do{if(a=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-hc)&&(e.window.set(e.window.subarray(t,t+t-a),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),wc(e),a+=t),0===e.strm.avail_in)break;if(n=xc(e.strm,e.window,e.strstart+e.lookahead,a),e.lookahead+=n,e.lookahead+e.insert>=3)for(r=e.strstart-e.insert,e.ins_h=e.window[r],e.ins_h=vc(e,e.ins_h,e.window[r+1]);e.insert&&(e.ins_h=vc(e,e.ins_h,e.window[r+3-1]),e.prev[r&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=r,r++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead<hc&&0!==e.strm.avail_in)},Ic=(e,t)=>{let n,a,r,i=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,s=0,l=e.strm.avail_in;do{if(n=65535,r=e.bi_valid+42>>3,e.strm.avail_out<r)break;if(r=e.strm.avail_out-r,a=e.strstart-e.block_start,n>a+e.strm.avail_in&&(n=a+e.strm.avail_in),n>r&&(n=r),n<i&&(0===n&&t!==qu||t===$u||n!==a+e.strm.avail_in))break;s=t===qu&&n===a+e.strm.avail_in?1:0,Hu(e,0,0,s),e.pending_buf[e.pending-4]=n,e.pending_buf[e.pending-3]=n>>8,e.pending_buf[e.pending-2]=~n,e.pending_buf[e.pending-1]=~n>>8,Ac(e.strm),a&&(a>n&&(a=n),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+a),e.strm.next_out),e.strm.next_out+=a,e.strm.avail_out-=a,e.strm.total_out+=a,e.block_start+=a,n-=a),n&&(xc(e.strm,e.strm.output,e.strm.next_out,n),e.strm.next_out+=n,e.strm.avail_out-=n,e.strm.total_out+=n)}while(0===s);return l-=e.strm.avail_in,l&&(l>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=l&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-l,e.strm.next_in),e.strstart),e.strstart+=l,e.insert+=l>e.w_size-e.insert?e.w_size-e.insert:l),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),s?4:t!==$u&&t!==qu&&0===e.strm.avail_in&&e.strstart===e.block_start?2:(r=e.window_size-e.strstart,e.strm.avail_in>r&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,r+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),r>e.strm.avail_in&&(r=e.strm.avail_in),r&&(xc(e.strm,e.window,e.strstart,r),e.strstart+=r,e.insert+=r>e.w_size-e.insert?e.w_size-e.insert:r),e.high_water<e.strstart&&(e.high_water=e.strstart),r=e.bi_valid+42>>3,r=e.pending_buf_size-r>65535?65535:e.pending_buf_size-r,i=r>e.w_size?e.w_size:r,a=e.strstart-e.block_start,(a>=i||(a||t===qu)&&t!==$u&&0===e.strm.avail_in&&a<=r)&&(n=a>r?r:a,s=t===qu&&0===e.strm.avail_in&&n===a?1:0,Hu(e,e.block_start,n,s),e.block_start+=n,Ac(e.strm)),s?3:1)},Uc=(e,t)=>{let n,a;for(;;){if(e.lookahead<hc){if(Lc(e),e.lookahead<hc&&t===$u)return 1;if(0===e.lookahead)break}if(n=0,e.lookahead>=3&&(e.ins_h=vc(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==n&&e.strstart-n<=e.w_size-hc&&(e.match_length=Ec(e,n)),e.match_length>=3)if(a=ju(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=vc(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!==--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=vc(e,e.ins_h,e.window[e.strstart+1]);else a=ju(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(a&&(yc(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,t===qu?(yc(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(yc(e,!1),0===e.strm.avail_out)?1:2},Rc=(e,t)=>{let n,a,r;for(;;){if(e.lookahead<hc){if(Lc(e),e.lookahead<hc&&t===$u)return 1;if(0===e.lookahead)break}if(n=0,e.lookahead>=3&&(e.ins_h=vc(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,0!==n&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-hc&&(e.match_length=Ec(e,n),e.match_length<=5&&(e.strategy===rc||3===e.match_length&&e.strstart-e.match_start>4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){r=e.strstart+e.lookahead-3,a=ju(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=r&&(e.ins_h=vc(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!==--e.prev_length);if(e.match_available=0,e.match_length=2,e.strstart++,a&&(yc(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(a=ju(e,0,e.window[e.strstart-1]),a&&yc(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(a=ju(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,t===qu?(yc(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(yc(e,!1),0===e.strm.avail_out)?1:2};function Cc(e,t,n,a,r){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=a,this.func=r}const Mc=[new Cc(0,0,0,0,Ic),new Cc(4,4,8,4,Uc),new Cc(4,5,16,8,Uc),new Cc(4,6,32,32,Uc),new Cc(4,4,16,16,Rc),new Cc(8,16,32,32,Rc),new Cc(8,16,128,128,Rc),new Cc(8,32,128,256,Rc),new Cc(32,128,258,1024,Rc),new Cc(32,258,258,4096,Rc)];function Bc(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=cc,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),bc(this.dyn_ltree),bc(this.dyn_dtree),bc(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),bc(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),bc(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const Nc=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==fc&&57!==t.status&&69!==t.status&&73!==t.status&&91!==t.status&&103!==t.status&&t.status!==mc&&t.status!==pc?1:0},Pc=e=>{if(Nc(e))return _c(e,ec);e.total_in=e.total_out=0,e.data_type=uc;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=2===t.wrap?57:t.wrap?fc:mc,e.adler=2===t.wrap?0:1,t.last_flush=-2,Ku(t),Zu},kc=e=>{const t=Pc(e);return t===Zu&&(e=>{e.window_size=2*e.w_size,bc(e.head),e.max_lazy_match=Mc[e.level].max_lazy,e.good_match=Mc[e.level].good_length,e.nice_match=Mc[e.level].nice_length,e.max_chain_length=Mc[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=2,e.match_available=0,e.ins_h=0})(e.state),t},Oc=(e,t,n,a,r,i)=>{if(!e)return ec;let s=1;if(t===ac&&(t=6),a<0?(s=0,a=-a):a>15&&(s=2,a-=16),r<1||r>9||n!==cc||a<8||a>15||t<0||t>9||i<0||i>lc||8===a&&1!==s)return _c(e,ec);8===a&&(a=9);const l=new Bc;return e.state=l,l.strm=e,l.status=fc,l.wrap=s,l.gzhead=null,l.w_bits=a,l.w_size=1<<l.w_bits,l.w_mask=l.w_size-1,l.hash_bits=r+7,l.hash_size=1<<l.hash_bits,l.hash_mask=l.hash_size-1,l.hash_shift=~~((l.hash_bits+3-1)/3),l.window=new Uint8Array(2*l.w_size),l.head=new Uint16Array(l.hash_size),l.prev=new Uint16Array(l.w_size),l.lit_bufsize=1<<r+6,l.pending_buf_size=4*l.lit_bufsize,l.pending_buf=new Uint8Array(l.pending_buf_size),l.sym_buf=l.lit_bufsize,l.sym_end=3*(l.lit_bufsize-1),l.level=t,l.strategy=i,l.method=n,kc(e)};var Dc=(e,t)=>{if(Nc(e)||t>Yu||t<0)return e?_c(e,ec):ec;const n=e.state;if(!e.output||0!==e.avail_in&&!e.input||n.status===pc&&t!==qu)return _c(e,0===e.avail_out?nc:ec);const a=n.last_flush;if(n.last_flush=t,0!==n.pending){if(Ac(e),0===e.avail_out)return n.last_flush=-1,Zu}else if(0===e.avail_in&&gc(t)<=gc(a)&&t!==qu)return _c(e,nc);if(n.status===pc&&0!==e.avail_in)return _c(e,nc);if(n.status===fc&&0===n.wrap&&(n.status=mc),n.status===fc){let t=cc+(n.w_bits-8<<4)<<8,a=-1;if(a=n.strategy>=ic||n.level<2?0:n.level<6?1:6===n.level?2:3,t|=a<<6,0!==n.strstart&&(t|=32),t+=31-t%31,Tc(n,t),0!==n.strstart&&(Tc(n,e.adler>>>16),Tc(n,65535&e.adler)),e.adler=1,n.status=mc,Ac(e),0!==n.pending)return n.last_flush=-1,Zu}if(57===n.status)if(e.adler=0,Sc(n,31),Sc(n,139),Sc(n,8),n.gzhead)Sc(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),Sc(n,255&n.gzhead.time),Sc(n,n.gzhead.time>>8&255),Sc(n,n.gzhead.time>>16&255),Sc(n,n.gzhead.time>>24&255),Sc(n,9===n.level?2:n.strategy>=ic||n.level<2?4:0),Sc(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(Sc(n,255&n.gzhead.extra.length),Sc(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=Fu(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69;else if(Sc(n,0),Sc(n,0),Sc(n,0),Sc(n,0),Sc(n,0),Sc(n,9===n.level?2:n.strategy>=ic||n.level<2?4:0),Sc(n,3),n.status=mc,Ac(e),0!==n.pending)return n.last_flush=-1,Zu;if(69===n.status){if(n.gzhead.extra){let t=n.pending,a=(65535&n.gzhead.extra.length)-n.gzindex;for(;n.pending+a>n.pending_buf_size;){let r=n.pending_buf_size-n.pending;if(n.pending_buf.set(n.gzhead.extra.subarray(n.gzindex,n.gzindex+r),n.pending),n.pending=n.pending_buf_size,n.gzhead.hcrc&&n.pending>t&&(e.adler=Fu(e.adler,n.pending_buf,n.pending-t,t)),n.gzindex+=r,Ac(e),0!==n.pending)return n.last_flush=-1,Zu;t=0,a-=r}let r=new Uint8Array(n.gzhead.extra);n.pending_buf.set(r.subarray(n.gzindex,n.gzindex+a),n.pending),n.pending+=a,n.gzhead.hcrc&&n.pending>t&&(e.adler=Fu(e.adler,n.pending_buf,n.pending-t,t)),n.gzindex=0}n.status=73}if(73===n.status){if(n.gzhead.name){let t,a=n.pending;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>a&&(e.adler=Fu(e.adler,n.pending_buf,n.pending-a,a)),Ac(e),0!==n.pending)return n.last_flush=-1,Zu;a=0}t=n.gzindex<n.gzhead.name.length?255&n.gzhead.name.charCodeAt(n.gzindex++):0,Sc(n,t)}while(0!==t);n.gzhead.hcrc&&n.pending>a&&(e.adler=Fu(e.adler,n.pending_buf,n.pending-a,a)),n.gzindex=0}n.status=91}if(91===n.status){if(n.gzhead.comment){let t,a=n.pending;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>a&&(e.adler=Fu(e.adler,n.pending_buf,n.pending-a,a)),Ac(e),0!==n.pending)return n.last_flush=-1,Zu;a=0}t=n.gzindex<n.gzhead.comment.length?255&n.gzhead.comment.charCodeAt(n.gzindex++):0,Sc(n,t)}while(0!==t);n.gzhead.hcrc&&n.pending>a&&(e.adler=Fu(e.adler,n.pending_buf,n.pending-a,a))}n.status=103}if(103===n.status){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&(Ac(e),0!==n.pending))return n.last_flush=-1,Zu;Sc(n,255&e.adler),Sc(n,e.adler>>8&255),e.adler=0}if(n.status=mc,Ac(e),0!==n.pending)return n.last_flush=-1,Zu}if(0!==e.avail_in||0!==n.lookahead||t!==$u&&n.status!==pc){let a=0===n.level?Ic(n,t):n.strategy===ic?((e,t)=>{let n;for(;;){if(0===e.lookahead&&(Lc(e),0===e.lookahead)){if(t===$u)return 1;break}if(e.match_length=0,n=ju(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(yc(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===qu?(yc(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(yc(e,!1),0===e.strm.avail_out)?1:2})(n,t):n.strategy===sc?((e,t)=>{let n,a,r,i;const s=e.window;for(;;){if(e.lookahead<=dc){if(Lc(e),e.lookahead<=dc&&t===$u)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(r=e.strstart-1,a=s[r],a===s[++r]&&a===s[++r]&&a===s[++r])){i=e.strstart+dc;do{}while(a===s[++r]&&a===s[++r]&&a===s[++r]&&a===s[++r]&&a===s[++r]&&a===s[++r]&&a===s[++r]&&a===s[++r]&&r<i);e.match_length=dc-(i-r),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(n=ju(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=ju(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(yc(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===qu?(yc(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(yc(e,!1),0===e.strm.avail_out)?1:2})(n,t):Mc[n.level].func(n,t);if(3!==a&&4!==a||(n.status=pc),1===a||3===a)return 0===e.avail_out&&(n.last_flush=-1),Zu;if(2===a&&(t===Ju?Xu(n):t!==Yu&&(Hu(n,0,0,!1),t===Wu&&(bc(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),Ac(e),0===e.avail_out))return n.last_flush=-1,Zu}return t!==qu?Zu:n.wrap<=0?Qu:(2===n.wrap?(Sc(n,255&e.adler),Sc(n,e.adler>>8&255),Sc(n,e.adler>>16&255),Sc(n,e.adler>>24&255),Sc(n,255&e.total_in),Sc(n,e.total_in>>8&255),Sc(n,e.total_in>>16&255),Sc(n,e.total_in>>24&255)):(Tc(n,e.adler>>>16),Tc(n,65535&e.adler)),Ac(e),n.wrap>0&&(n.wrap=-n.wrap),0!==n.pending?Zu:Qu)},Fc=(e,t)=>{let n=t.length;if(Nc(e))return ec;const a=e.state,r=a.wrap;if(2===r||1===r&&a.status!==fc||a.lookahead)return ec;if(1===r&&(e.adler=Ou(e.adler,t,n,0)),a.wrap=0,n>=a.w_size){0===r&&(bc(a.head),a.strstart=0,a.block_start=0,a.insert=0);let e=new Uint8Array(a.w_size);e.set(t.subarray(n-a.w_size,n),0),t=e,n=a.w_size}const i=e.avail_in,s=e.next_in,l=e.input;for(e.avail_in=n,e.next_in=0,e.input=t,Lc(a);a.lookahead>=3;){let e=a.strstart,t=a.lookahead-2;do{a.ins_h=vc(a,a.ins_h,a.window[e+3-1]),a.prev[e&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=e,e++}while(--t);a.strstart=e,a.lookahead=2,Lc(a)}return a.strstart+=a.lookahead,a.block_start=a.strstart,a.insert=a.lookahead,a.lookahead=0,a.match_length=a.prev_length=2,a.match_available=0,e.next_in=s,e.input=l,e.avail_in=i,a.wrap=r,Zu},Gc={deflateInit:(e,t)=>Oc(e,t,cc,15,8,oc),deflateInit2:Oc,deflateReset:kc,deflateResetKeep:Pc,deflateSetHeader:(e,t)=>Nc(e)||2!==e.state.wrap?ec:(e.state.gzhead=t,Zu),deflate:Dc,deflateEnd:e=>{if(Nc(e))return ec;const t=e.state.status;return e.state=null,t===mc?_c(e,tc):Zu},deflateSetDictionary:Fc,deflateInfo:"pako deflate (from Nodeca project)"};const Vc=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var Kc=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const n=t.shift();if(n){if("object"!=typeof n)throw new TypeError(n+"must be non-object");for(const t in n)Vc(n,t)&&(e[t]=n[t])}}return e},Hc=e=>{let t=0;for(let n=0,a=e.length;n<a;n++)t+=e[n].length;const n=new Uint8Array(t);for(let t=0,a=0,r=e.length;t<r;t++){let r=e[t];n.set(r,a),a+=r.length}return n};let zc=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){zc=!1}const jc=new Uint8Array(256);for(let e=0;e<256;e++)jc[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;jc[254]=jc[254]=1;var Xc=e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let t,n,a,r,i,s=e.length,l=0;for(r=0;r<s;r++)n=e.charCodeAt(r),55296==(64512&n)&&r+1<s&&(a=e.charCodeAt(r+1),56320==(64512&a)&&(n=65536+(n-55296<<10)+(a-56320),r++)),l+=n<128?1:n<2048?2:n<65536?3:4;for(t=new Uint8Array(l),i=0,r=0;i<l;r++)n=e.charCodeAt(r),55296==(64512&n)&&r+1<s&&(a=e.charCodeAt(r+1),56320==(64512&a)&&(n=65536+(n-55296<<10)+(a-56320),r++)),n<128?t[i++]=n:n<2048?(t[i++]=192|n>>>6,t[i++]=128|63&n):n<65536?(t[i++]=224|n>>>12,t[i++]=128|n>>>6&63,t[i++]=128|63&n):(t[i++]=240|n>>>18,t[i++]=128|n>>>12&63,t[i++]=128|n>>>6&63,t[i++]=128|63&n);return t},$c=(e,t)=>{const n=t||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,t));let a,r;const i=new Array(2*n);for(r=0,a=0;a<n;){let t=e[a++];if(t<128){i[r++]=t;continue}let s=jc[t];if(s>4)i[r++]=65533,a+=s-1;else{for(t&=2===s?31:3===s?15:7;s>1&&a<n;)t=t<<6|63&e[a++],s--;s>1?i[r++]=65533:t<65536?i[r++]=t:(t-=65536,i[r++]=55296|t>>10&1023,i[r++]=56320|1023&t)}}return((e,t)=>{if(t<65534&&e.subarray&&zc)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let n="";for(let a=0;a<t;a++)n+=String.fromCharCode(e[a]);return n})(i,r)},Jc=(e,t)=>{(t=t||e.length)>e.length&&(t=e.length);let n=t-1;for(;n>=0&&128==(192&e[n]);)n--;return n<0||0===n?t:n+jc[e[n]]>t?n:t};var Wc=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const qc=Object.prototype.toString,{Z_NO_FLUSH:Yc,Z_SYNC_FLUSH:Zc,Z_FULL_FLUSH:Qc,Z_FINISH:ed,Z_OK:td,Z_STREAM_END:nd,Z_DEFAULT_COMPRESSION:ad,Z_DEFAULT_STRATEGY:rd,Z_DEFLATED:id}=Vu;function sd(e){this.options=Kc({level:ad,method:id,chunkSize:16384,windowBits:15,memLevel:8,strategy:rd},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Wc,this.strm.avail_out=0;let n=Gc.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==td)throw new Error(Gu[n]);if(t.header&&Gc.deflateSetHeader(this.strm,t.header),t.dictionary){let e;if(e="string"==typeof t.dictionary?Xc(t.dictionary):"[object ArrayBuffer]"===qc.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,n=Gc.deflateSetDictionary(this.strm,e),n!==td)throw new Error(Gu[n]);this._dict_set=!0}}function ld(e,t){const n=new sd(t);if(n.push(e,!0),n.err)throw n.msg||Gu[n.err];return n.result}sd.prototype.push=function(e,t){const n=this.strm,a=this.options.chunkSize;let r,i;if(this.ended)return!1;for(i=t===~~t?t:!0===t?ed:Yc,"string"==typeof e?n.input=Xc(e):"[object ArrayBuffer]"===qc.call(e)?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;)if(0===n.avail_out&&(n.output=new Uint8Array(a),n.next_out=0,n.avail_out=a),(i===Zc||i===Qc)&&n.avail_out<=6)this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;else{if(r=Gc.deflate(n,i),r===nd)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),r=Gc.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===td;if(0!==n.avail_out){if(i>0&&n.next_out>0)this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;else if(0===n.avail_in)break}else this.onData(n.output)}return!0},sd.prototype.onData=function(e){this.chunks.push(e)},sd.prototype.onEnd=function(e){e===td&&(this.result=Hc(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var od={Deflate:sd,deflate:ld,deflateRaw:function(e,t){return(t=t||{}).raw=!0,ld(e,t)},gzip:function(e,t){return(t=t||{}).gzip=!0,ld(e,t)},constants:Vu};const ud=16209;var cd=function(e,t){let n,a,r,i,s,l,o,u,c,d,h,f,m,p,_,g,b,w,v,A,y,S,T,x;const E=e.state;n=e.next_in,T=e.input,a=n+(e.avail_in-5),r=e.next_out,x=e.output,i=r-(t-e.avail_out),s=r+(e.avail_out-257),l=E.dmax,o=E.wsize,u=E.whave,c=E.wnext,d=E.window,h=E.hold,f=E.bits,m=E.lencode,p=E.distcode,_=(1<<E.lenbits)-1,g=(1<<E.distbits)-1;e:do{f<15&&(h+=T[n++]<<f,f+=8,h+=T[n++]<<f,f+=8),b=m[h&_];t:for(;;){if(w=b>>>24,h>>>=w,f-=w,w=b>>>16&255,0===w)x[r++]=65535&b;else{if(!(16&w)){if(64&w){if(32&w){E.mode=16191;break e}e.msg="invalid literal/length code",E.mode=ud;break e}b=m[(65535&b)+(h&(1<<w)-1)];continue t}for(v=65535&b,w&=15,w&&(f<w&&(h+=T[n++]<<f,f+=8),v+=h&(1<<w)-1,h>>>=w,f-=w),f<15&&(h+=T[n++]<<f,f+=8,h+=T[n++]<<f,f+=8),b=p[h&g];;){if(w=b>>>24,h>>>=w,f-=w,w=b>>>16&255,16&w){if(A=65535&b,w&=15,f<w&&(h+=T[n++]<<f,f+=8,f<w&&(h+=T[n++]<<f,f+=8)),A+=h&(1<<w)-1,A>l){e.msg="invalid distance too far back",E.mode=ud;break e}if(h>>>=w,f-=w,w=r-i,A>w){if(w=A-w,w>u&&E.sane){e.msg="invalid distance too far back",E.mode=ud;break e}if(y=0,S=d,0===c){if(y+=o-w,w<v){v-=w;do{x[r++]=d[y++]}while(--w);y=r-A,S=x}}else if(c<w){if(y+=o+c-w,w-=c,w<v){v-=w;do{x[r++]=d[y++]}while(--w);if(y=0,c<v){w=c,v-=w;do{x[r++]=d[y++]}while(--w);y=r-A,S=x}}}else if(y+=c-w,w<v){v-=w;do{x[r++]=d[y++]}while(--w);y=r-A,S=x}for(;v>2;)x[r++]=S[y++],x[r++]=S[y++],x[r++]=S[y++],v-=3;v&&(x[r++]=S[y++],v>1&&(x[r++]=S[y++]))}else{y=r-A;do{x[r++]=x[y++],x[r++]=x[y++],x[r++]=x[y++],v-=3}while(v>2);v&&(x[r++]=x[y++],v>1&&(x[r++]=x[y++]))}break}if(64&w){e.msg="invalid distance code",E.mode=ud;break e}b=p[(65535&b)+(h&(1<<w)-1)]}}break}}while(n<a&&r<s);v=f>>3,n-=v,f-=v<<3,h&=(1<<f)-1,e.next_in=n,e.next_out=r,e.avail_in=n<a?a-n+5:5-(n-a),e.avail_out=r<s?s-r+257:257-(r-s),E.hold=h,E.bits=f};const dd=15,hd=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),fd=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),md=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),pd=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);var _d=(e,t,n,a,r,i,s,l)=>{const o=l.bits;let u,c,d,h,f,m,p=0,_=0,g=0,b=0,w=0,v=0,A=0,y=0,S=0,T=0,x=null;const E=new Uint16Array(16),L=new Uint16Array(16);let I,U,R,C=null;for(p=0;p<=dd;p++)E[p]=0;for(_=0;_<a;_++)E[t[n+_]]++;for(w=o,b=dd;b>=1&&0===E[b];b--);if(w>b&&(w=b),0===b)return r[i++]=20971520,r[i++]=20971520,l.bits=1,0;for(g=1;g<b&&0===E[g];g++);for(w<g&&(w=g),y=1,p=1;p<=dd;p++)if(y<<=1,y-=E[p],y<0)return-1;if(y>0&&(0===e||1!==b))return-1;for(L[1]=0,p=1;p<dd;p++)L[p+1]=L[p]+E[p];for(_=0;_<a;_++)0!==t[n+_]&&(s[L[t[n+_]]++]=_);if(0===e?(x=C=s,m=20):1===e?(x=hd,C=fd,m=257):(x=md,C=pd,m=0),T=0,_=0,p=g,f=i,v=w,A=0,d=-1,S=1<<w,h=S-1,1===e&&S>852||2===e&&S>592)return 1;for(;;){I=p-A,s[_]+1<m?(U=0,R=s[_]):s[_]>=m?(U=C[s[_]-m],R=x[s[_]-m]):(U=96,R=0),u=1<<p-A,c=1<<v,g=c;do{c-=u,r[f+(T>>A)+c]=I<<24|U<<16|R}while(0!==c);for(u=1<<p-1;T&u;)u>>=1;if(0!==u?(T&=u-1,T+=u):T=0,_++,0===--E[p]){if(p===b)break;p=t[n+s[_]]}if(p>w&&(T&h)!==d){for(0===A&&(A=w),f+=g,v=p-A,y=1<<v;v+A<b&&(y-=E[v+A],!(y<=0));)v++,y<<=1;if(S+=1<<v,1===e&&S>852||2===e&&S>592)return 1;d=T&h,r[d]=w<<24|v<<16|f-i}}return 0!==T&&(r[f+T]=p-A<<24|64<<16),l.bits=w,0};const{Z_FINISH:gd,Z_BLOCK:bd,Z_TREES:wd,Z_OK:vd,Z_STREAM_END:Ad,Z_NEED_DICT:yd,Z_STREAM_ERROR:Sd,Z_DATA_ERROR:Td,Z_MEM_ERROR:xd,Z_BUF_ERROR:Ed,Z_DEFLATED:Ld}=Vu,Id=16180,Ud=16190,Rd=16191,Cd=16192,Md=16194,Bd=16199,Nd=16200,Pd=16206,kd=16209,Od=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function Dd(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Fd=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<Id||t.mode>16211?1:0},Gd=e=>{if(Fd(e))return Sd;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=Id,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,vd},Vd=e=>{if(Fd(e))return Sd;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,Gd(e)},Kd=(e,t)=>{let n;if(Fd(e))return Sd;const a=e.state;return t<0?(n=0,t=-t):(n=5+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?Sd:(null!==a.window&&a.wbits!==t&&(a.window=null),a.wrap=n,a.wbits=t,Vd(e))},Hd=(e,t)=>{if(!e)return Sd;const n=new Dd;e.state=n,n.strm=e,n.window=null,n.mode=Id;const a=Kd(e,t);return a!==vd&&(e.state=null),a};let zd,jd,Xd=!0;const $d=e=>{if(Xd){zd=new Int32Array(512),jd=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(_d(1,e.lens,0,288,zd,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;_d(2,e.lens,0,32,jd,0,e.work,{bits:5}),Xd=!1}e.lencode=zd,e.lenbits=9,e.distcode=jd,e.distbits=5},Jd=(e,t,n,a)=>{let r;const i=e.state;return null===i.window&&(i.wsize=1<<i.wbits,i.wnext=0,i.whave=0,i.window=new Uint8Array(i.wsize)),a>=i.wsize?(i.window.set(t.subarray(n-i.wsize,n),0),i.wnext=0,i.whave=i.wsize):(r=i.wsize-i.wnext,r>a&&(r=a),i.window.set(t.subarray(n-a,n-a+r),i.wnext),(a-=r)?(i.window.set(t.subarray(n-a,n),0),i.wnext=a,i.whave=i.wsize):(i.wnext+=r,i.wnext===i.wsize&&(i.wnext=0),i.whave<i.wsize&&(i.whave+=r))),0};var Wd=(e,t)=>{let n,a,r,i,s,l,o,u,c,d,h,f,m,p,_,g,b,w,v,A,y,S,T=0;const x=new Uint8Array(4);let E,L;const I=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Fd(e)||!e.output||!e.input&&0!==e.avail_in)return Sd;n=e.state,n.mode===Rd&&(n.mode=Cd),s=e.next_out,r=e.output,o=e.avail_out,i=e.next_in,a=e.input,l=e.avail_in,u=n.hold,c=n.bits,d=l,h=o,S=vd;e:for(;;)switch(n.mode){case Id:if(0===n.wrap){n.mode=Cd;break}for(;c<16;){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}if(2&n.wrap&&35615===u){0===n.wbits&&(n.wbits=15),n.check=0,x[0]=255&u,x[1]=u>>>8&255,n.check=Fu(n.check,x,2,0),u=0,c=0,n.mode=16181;break}if(n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&u)<<8)+(u>>8))%31){e.msg="incorrect header check",n.mode=kd;break}if((15&u)!==Ld){e.msg="unknown compression method",n.mode=kd;break}if(u>>>=4,c-=4,y=8+(15&u),0===n.wbits&&(n.wbits=y),y>15||y>n.wbits){e.msg="invalid window size",n.mode=kd;break}n.dmax=1<<n.wbits,n.flags=0,e.adler=n.check=1,n.mode=512&u?16189:Rd,u=0,c=0;break;case 16181:for(;c<16;){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}if(n.flags=u,(255&n.flags)!==Ld){e.msg="unknown compression method",n.mode=kd;break}if(57344&n.flags){e.msg="unknown header flags set",n.mode=kd;break}n.head&&(n.head.text=u>>8&1),512&n.flags&&4&n.wrap&&(x[0]=255&u,x[1]=u>>>8&255,n.check=Fu(n.check,x,2,0)),u=0,c=0,n.mode=16182;case 16182:for(;c<32;){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}n.head&&(n.head.time=u),512&n.flags&&4&n.wrap&&(x[0]=255&u,x[1]=u>>>8&255,x[2]=u>>>16&255,x[3]=u>>>24&255,n.check=Fu(n.check,x,4,0)),u=0,c=0,n.mode=16183;case 16183:for(;c<16;){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}n.head&&(n.head.xflags=255&u,n.head.os=u>>8),512&n.flags&&4&n.wrap&&(x[0]=255&u,x[1]=u>>>8&255,n.check=Fu(n.check,x,2,0)),u=0,c=0,n.mode=16184;case 16184:if(1024&n.flags){for(;c<16;){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}n.length=u,n.head&&(n.head.extra_len=u),512&n.flags&&4&n.wrap&&(x[0]=255&u,x[1]=u>>>8&255,n.check=Fu(n.check,x,2,0)),u=0,c=0}else n.head&&(n.head.extra=null);n.mode=16185;case 16185:if(1024&n.flags&&(f=n.length,f>l&&(f=l),f&&(n.head&&(y=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(a.subarray(i,i+f),y)),512&n.flags&&4&n.wrap&&(n.check=Fu(n.check,a,f,i)),l-=f,i+=f,n.length-=f),n.length))break e;n.length=0,n.mode=16186;case 16186:if(2048&n.flags){if(0===l)break e;f=0;do{y=a[i+f++],n.head&&y&&n.length<65536&&(n.head.name+=String.fromCharCode(y))}while(y&&f<l);if(512&n.flags&&4&n.wrap&&(n.check=Fu(n.check,a,f,i)),l-=f,i+=f,y)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=16187;case 16187:if(4096&n.flags){if(0===l)break e;f=0;do{y=a[i+f++],n.head&&y&&n.length<65536&&(n.head.comment+=String.fromCharCode(y))}while(y&&f<l);if(512&n.flags&&4&n.wrap&&(n.check=Fu(n.check,a,f,i)),l-=f,i+=f,y)break e}else n.head&&(n.head.comment=null);n.mode=16188;case 16188:if(512&n.flags){for(;c<16;){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}if(4&n.wrap&&u!==(65535&n.check)){e.msg="header crc mismatch",n.mode=kd;break}u=0,c=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=Rd;break;case 16189:for(;c<32;){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}e.adler=n.check=Od(u),u=0,c=0,n.mode=Ud;case Ud:if(0===n.havedict)return e.next_out=s,e.avail_out=o,e.next_in=i,e.avail_in=l,n.hold=u,n.bits=c,yd;e.adler=n.check=1,n.mode=Rd;case Rd:if(t===bd||t===wd)break e;case Cd:if(n.last){u>>>=7&c,c-=7&c,n.mode=Pd;break}for(;c<3;){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}switch(n.last=1&u,u>>>=1,c-=1,3&u){case 0:n.mode=16193;break;case 1:if($d(n),n.mode=Bd,t===wd){u>>>=2,c-=2;break e}break;case 2:n.mode=16196;break;case 3:e.msg="invalid block type",n.mode=kd}u>>>=2,c-=2;break;case 16193:for(u>>>=7&c,c-=7&c;c<32;){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}if((65535&u)!=(u>>>16^65535)){e.msg="invalid stored block lengths",n.mode=kd;break}if(n.length=65535&u,u=0,c=0,n.mode=Md,t===wd)break e;case Md:n.mode=16195;case 16195:if(f=n.length,f){if(f>l&&(f=l),f>o&&(f=o),0===f)break e;r.set(a.subarray(i,i+f),s),l-=f,i+=f,o-=f,s+=f,n.length-=f;break}n.mode=Rd;break;case 16196:for(;c<14;){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}if(n.nlen=257+(31&u),u>>>=5,c-=5,n.ndist=1+(31&u),u>>>=5,c-=5,n.ncode=4+(15&u),u>>>=4,c-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=kd;break}n.have=0,n.mode=16197;case 16197:for(;n.have<n.ncode;){for(;c<3;){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}n.lens[I[n.have++]]=7&u,u>>>=3,c-=3}for(;n.have<19;)n.lens[I[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,E={bits:n.lenbits},S=_d(0,n.lens,0,19,n.lencode,0,n.work,E),n.lenbits=E.bits,S){e.msg="invalid code lengths set",n.mode=kd;break}n.have=0,n.mode=16198;case 16198:for(;n.have<n.nlen+n.ndist;){for(;T=n.lencode[u&(1<<n.lenbits)-1],_=T>>>24,g=T>>>16&255,b=65535&T,!(_<=c);){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}if(b<16)u>>>=_,c-=_,n.lens[n.have++]=b;else{if(16===b){for(L=_+2;c<L;){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}if(u>>>=_,c-=_,0===n.have){e.msg="invalid bit length repeat",n.mode=kd;break}y=n.lens[n.have-1],f=3+(3&u),u>>>=2,c-=2}else if(17===b){for(L=_+3;c<L;){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}u>>>=_,c-=_,y=0,f=3+(7&u),u>>>=3,c-=3}else{for(L=_+7;c<L;){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}u>>>=_,c-=_,y=0,f=11+(127&u),u>>>=7,c-=7}if(n.have+f>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=kd;break}for(;f--;)n.lens[n.have++]=y}}if(n.mode===kd)break;if(0===n.lens[256]){e.msg="invalid code -- missing end-of-block",n.mode=kd;break}if(n.lenbits=9,E={bits:n.lenbits},S=_d(1,n.lens,0,n.nlen,n.lencode,0,n.work,E),n.lenbits=E.bits,S){e.msg="invalid literal/lengths set",n.mode=kd;break}if(n.distbits=6,n.distcode=n.distdyn,E={bits:n.distbits},S=_d(2,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,E),n.distbits=E.bits,S){e.msg="invalid distances set",n.mode=kd;break}if(n.mode=Bd,t===wd)break e;case Bd:n.mode=Nd;case Nd:if(l>=6&&o>=258){e.next_out=s,e.avail_out=o,e.next_in=i,e.avail_in=l,n.hold=u,n.bits=c,cd(e,h),s=e.next_out,r=e.output,o=e.avail_out,i=e.next_in,a=e.input,l=e.avail_in,u=n.hold,c=n.bits,n.mode===Rd&&(n.back=-1);break}for(n.back=0;T=n.lencode[u&(1<<n.lenbits)-1],_=T>>>24,g=T>>>16&255,b=65535&T,!(_<=c);){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}if(g&&!(240&g)){for(w=_,v=g,A=b;T=n.lencode[A+((u&(1<<w+v)-1)>>w)],_=T>>>24,g=T>>>16&255,b=65535&T,!(w+_<=c);){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}u>>>=w,c-=w,n.back+=w}if(u>>>=_,c-=_,n.back+=_,n.length=b,0===g){n.mode=16205;break}if(32&g){n.back=-1,n.mode=Rd;break}if(64&g){e.msg="invalid literal/length code",n.mode=kd;break}n.extra=15&g,n.mode=16201;case 16201:if(n.extra){for(L=n.extra;c<L;){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}n.length+=u&(1<<n.extra)-1,u>>>=n.extra,c-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=16202;case 16202:for(;T=n.distcode[u&(1<<n.distbits)-1],_=T>>>24,g=T>>>16&255,b=65535&T,!(_<=c);){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}if(!(240&g)){for(w=_,v=g,A=b;T=n.distcode[A+((u&(1<<w+v)-1)>>w)],_=T>>>24,g=T>>>16&255,b=65535&T,!(w+_<=c);){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}u>>>=w,c-=w,n.back+=w}if(u>>>=_,c-=_,n.back+=_,64&g){e.msg="invalid distance code",n.mode=kd;break}n.offset=b,n.extra=15&g,n.mode=16203;case 16203:if(n.extra){for(L=n.extra;c<L;){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}n.offset+=u&(1<<n.extra)-1,u>>>=n.extra,c-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=kd;break}n.mode=16204;case 16204:if(0===o)break e;if(f=h-o,n.offset>f){if(f=n.offset-f,f>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=kd;break}f>n.wnext?(f-=n.wnext,m=n.wsize-f):m=n.wnext-f,f>n.length&&(f=n.length),p=n.window}else p=r,m=s-n.offset,f=n.length;f>o&&(f=o),o-=f,n.length-=f;do{r[s++]=p[m++]}while(--f);0===n.length&&(n.mode=Nd);break;case 16205:if(0===o)break e;r[s++]=n.length,o--,n.mode=Nd;break;case Pd:if(n.wrap){for(;c<32;){if(0===l)break e;l--,u|=a[i++]<<c,c+=8}if(h-=o,e.total_out+=h,n.total+=h,4&n.wrap&&h&&(e.adler=n.check=n.flags?Fu(n.check,r,h,s-h):Ou(n.check,r,h,s-h)),h=o,4&n.wrap&&(n.flags?u:Od(u))!==n.check){e.msg="incorrect data check",n.mode=kd;break}u=0,c=0}n.mode=16207;case 16207:if(n.wrap&&n.flags){for(;c<32;){if(0===l)break e;l--,u+=a[i++]<<c,c+=8}if(4&n.wrap&&u!==(4294967295&n.total)){e.msg="incorrect length check",n.mode=kd;break}u=0,c=0}n.mode=16208;case 16208:S=Ad;break e;case kd:S=Td;break e;case 16210:return xd;default:return Sd}return e.next_out=s,e.avail_out=o,e.next_in=i,e.avail_in=l,n.hold=u,n.bits=c,(n.wsize||h!==e.avail_out&&n.mode<kd&&(n.mode<Pd||t!==gd))&&Jd(e,e.output,e.next_out,h-e.avail_out),d-=e.avail_in,h-=e.avail_out,e.total_in+=d,e.total_out+=h,n.total+=h,4&n.wrap&&h&&(e.adler=n.check=n.flags?Fu(n.check,r,h,e.next_out-h):Ou(n.check,r,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===Rd?128:0)+(n.mode===Bd||n.mode===Md?256:0),(0===d&&0===h||t===gd)&&S===vd&&(S=Ed),S},qd={inflateReset:Vd,inflateReset2:Kd,inflateResetKeep:Gd,inflateInit:e=>Hd(e,15),inflateInit2:Hd,inflate:Wd,inflateEnd:e=>{if(Fd(e))return Sd;let t=e.state;return t.window&&(t.window=null),e.state=null,vd},inflateGetHeader:(e,t)=>{if(Fd(e))return Sd;const n=e.state;return 2&n.wrap?(n.head=t,t.done=!1,vd):Sd},inflateSetDictionary:(e,t)=>{const n=t.length;let a,r,i;return Fd(e)?Sd:(a=e.state,0!==a.wrap&&a.mode!==Ud?Sd:a.mode===Ud&&(r=1,r=Ou(r,t,n,0),r!==a.check)?Td:(i=Jd(e,t,n,n),i?(a.mode=16210,xd):(a.havedict=1,vd)))},inflateInfo:"pako inflate (from Nodeca project)"};var Yd=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const Zd=Object.prototype.toString,{Z_NO_FLUSH:Qd,Z_FINISH:eh,Z_OK:th,Z_STREAM_END:nh,Z_NEED_DICT:ah,Z_STREAM_ERROR:rh,Z_DATA_ERROR:ih,Z_MEM_ERROR:sh}=Vu;function lh(e){this.options=Kc({chunkSize:65536,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(15&t.windowBits||(t.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Wc,this.strm.avail_out=0;let n=qd.inflateInit2(this.strm,t.windowBits);if(n!==th)throw new Error(Gu[n]);if(this.header=new Yd,qd.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=Xc(t.dictionary):"[object ArrayBuffer]"===Zd.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=qd.inflateSetDictionary(this.strm,t.dictionary),n!==th)))throw new Error(Gu[n])}function oh(e,t){const n=new lh(t);if(n.push(e),n.err)throw n.msg||Gu[n.err];return n.result}lh.prototype.push=function(e,t){const n=this.strm,a=this.options.chunkSize,r=this.options.dictionary;let i,s,l;if(this.ended)return!1;for(s=t===~~t?t:!0===t?eh:Qd,"[object ArrayBuffer]"===Zd.call(e)?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){for(0===n.avail_out&&(n.output=new Uint8Array(a),n.next_out=0,n.avail_out=a),i=qd.inflate(n,s),i===ah&&r&&(i=qd.inflateSetDictionary(n,r),i===th?i=qd.inflate(n,s):i===ih&&(i=ah));n.avail_in>0&&i===nh&&n.state.wrap>0&&0!==e[n.next_in];)qd.inflateReset(n),i=qd.inflate(n,s);switch(i){case rh:case ih:case ah:case sh:return this.onEnd(i),this.ended=!0,!1}if(l=n.avail_out,n.next_out&&(0===n.avail_out||i===nh))if("string"===this.options.to){let e=Jc(n.output,n.next_out),t=n.next_out-e,r=$c(n.output,e);n.next_out=t,n.avail_out=a-t,t&&n.output.set(n.output.subarray(e,e+t),0),this.onData(r)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(i!==th||0!==l){if(i===nh)return i=qd.inflateEnd(this.strm),this.onEnd(i),this.ended=!0,!0;if(0===n.avail_in)break}}return!0},lh.prototype.onData=function(e){this.chunks.push(e)},lh.prototype.onEnd=function(e){e===th&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=Hc(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var uh={Inflate:lh,inflate:oh,inflateRaw:function(e,t){return(t=t||{}).raw=!0,oh(e,t)},ungzip:oh,constants:Vu};const{Deflate:ch,deflate:dh,deflateRaw:hh,gzip:fh}=od,{Inflate:mh,inflate:ph,inflateRaw:_h,ungzip:gh}=uh;var bh=dh,wh=ph;class vh{constructor(e){this.ctype=0,this.outputPos=0,this.dsize_bits=0,this.dsize_mask=0,this.bit_buff=0,this.extra_bits=0,this.in_pos=0,this.out_buff=[],this.in_buff=e}}const Ah=new Uint8Array([2,4,4,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]),yh=new Uint8Array([3,13,5,25,9,17,1,62,30,46,14,54,22,38,6,58,26,42,10,50,18,34,66,2,124,60,92,28,108,44,76,12,116,52,84,20,100,36,68,4,120,56,88,24,104,40,72,8,240,112,176,48,208,80,144,16,224,96,160,32,192,64,128,0]),Sh=new Uint8Array([0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8]),Th=new Uint16Array([0,1,2,3,4,5,6,7,8,10,14,22,38,70,134,262]),xh=new Uint8Array([3,2,3,3,4,4,4,5,5,5,5,6,6,6,7,7]),Eh=new Uint8Array([5,3,1,6,10,2,12,20,4,24,8,48,16,32,64,0]),Lh=new Uint8Array([11,12,12,12,12,12,12,12,12,8,7,12,12,7,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,12,4,10,8,12,10,12,10,8,7,7,8,9,7,6,7,8,7,6,7,7,7,7,8,7,7,8,8,12,11,7,9,11,12,6,7,6,6,5,7,8,8,6,11,9,6,7,6,6,7,11,6,6,6,7,9,8,9,9,11,8,11,9,12,8,12,5,6,6,6,5,6,6,6,5,11,7,5,6,5,5,6,10,5,5,5,5,8,7,8,8,10,11,11,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,13,13,13,12,13,13,13,12,13,13,13,13,12,13,13,13,12,12,12,13,13,13,13,13,13,13,13,13,13,13]),Ih=new Uint16Array([1168,4064,2016,3040,992,3552,1504,2528,480,184,98,3808,1760,34,2784,736,3296,1248,2272,224,3936,1888,2912,864,3424,1376,4672,2400,352,3680,1632,2656,15,592,56,608,80,3168,912,216,66,2,88,432,124,41,60,152,92,9,28,108,44,76,24,12,116,232,104,1120,144,52,176,1808,2144,49,84,17,33,23,20,168,40,1,784,304,62,100,30,46,36,1296,14,54,22,68,48,200,464,208,272,72,1552,336,96,136,4e3,7,38,6,58,27,26,42,10,11,528,4,19,50,3,29,18,400,13,21,5,25,8,120,240,112,656,1040,16,1952,2976,928,576,7232,3136,5184,1088,6208,2112,4160,64,8064,3968,6016,1920,7040,2944,4992,896,7552,3456,5504,1408,6528,2432,4480,384,7808,3712,5760,1664,6784,2688,4736,640,7296,3200,5248,1152,6272,2176,4224,128,7936,3840,5888,1792,6912,2816,4864,3488,1440,2464,416,3744,1696,2720,672,3232,1184,2208,160,3872,1824,2848,800,3360,1312,2336,288,3616,1568,2592,544,3104,1056,2080,32,4032,1984,3008,960,3520,1472,2496,448,3776,1728,2752,704,3264,1216,2240,192,3904,1856,2880,832,768,3392,7424,3328,5376,1344,1280,6400,2304,2368,4352,256,7680,3584,320,5632,1536,6656,3648,1600,2624,2560,4608,512,7168,3072,5120,1024,6144,2048,4096,0]);let Uh=!1;const Rh=new Uint8Array(256),Ch=new Uint8Array(256);let Mh=!1;const Bh=new Uint8Array(256),Nh=new Uint8Array(256),Ph=new Uint8Array(128),kh=new Uint8Array(256);function Oh(e,t,n){for(let a=0,r=t.length;a<r;a++){const r=1<<n[a];for(let n=t[a];n<256;n+=r)e[n]=a}}function Dh(e,t){return t<=e.extra_bits?(e.extra_bits-=t,e.bit_buff>>=t,0):(e.bit_buff>>=e.extra_bits,e.in_pos===e.in_buff.byteLength?1:(e.bit_buff|=e.in_buff[e.in_pos++]<<8,e.bit_buff>>=t-e.extra_bits,e.extra_bits=e.extra_bits-t+8,0))}function Fh(e){if(1&e.bit_buff){if(Dh(e,1))return 774;let t,n=Ch[255&e.bit_buff];if(Dh(e,xh[n]))return 774;if(0!=(t=Sh[n])){const a=e.bit_buff&(1<<t)-1;if(Dh(e,t)&&n+a!=270)return 774;n=Th[n]+a}return n+256}if(Dh(e,1))return 774;if(0==e.ctype){const t=255&e.bit_buff;return Dh(e,8)?774:t}let t;if(255&e.bit_buff){if(t=Bh[255&e.bit_buff],255==t)if(63&e.bit_buff){if(Dh(e,4))return 774;t=Nh[255&e.bit_buff]}else{if(Dh(e,6))return 774;t=Ph[127&e.bit_buff]}}else{if(Dh(e,8))return 774;t=kh[255&e.bit_buff]}return Dh(e,Lh[t])?774:t}function Gh(e,t){const n=Rh[255&e.bit_buff];if(Dh(e,Ah[n]))return 0;let a;if(2==t){if(a=n<<2|3&e.bit_buff,Dh(e,2))return 0}else if(a=n<<e.dsize_bits|e.bit_buff&e.dsize_mask,Dh(e,e.dsize_bits))return 0;return a+1}function Vh(e){const t=new vh(e);if(t.in_buff.byteLength<=4)throw new Error("Bad data");if(t.ctype=t.in_buff[0],t.dsize_bits=t.in_buff[1],t.bit_buff=t.in_buff[2],t.extra_bits=0,t.in_pos=3,4>t.dsize_bits||t.dsize_bits>6)throw new Error("Invalid dictionary size");if(t.dsize_mask=65535>>16-t.dsize_bits,0!==t.ctype){if(1!==t.ctype)throw new Error("Invalid mode");Mh||(!function(){let e,t,n=255;for(let a=255;n>=0;n--,a--){const r=a;let i=Lh[r];if(i<=8){t=1<<i,e=Ih[n];do{Bh[e]=a,e+=t}while(e<256)}else if(0!=(e=255&Ih[n]))if(Bh[e]=255,63&Ih[n]){i-=4,Lh[r]=i,t=1<<i,e=Ih[n]>>4;do{Nh[e]=a,e+=t}while(e<256)}else{i-=6,Lh[r]=i,t=1<<i,e=Ih[n]>>6;do{Ph[e]=a,e+=t}while(e<128)}else{i-=8,Lh[r]=i,t=1<<i,e=Ih[n]>>8;do{kh[e]=a,e+=t}while(e<256)}}}(),Mh=!0)}if(Uh||(Oh(Ch,Eh,xh),Oh(Rh,yh,Ah),Uh=!0),774===function(e){let t;for(;(t=Fh(e))<773;)if(t>=256){let n,a=t-254;if(0==(n=Gh(e,a)))return 774;let r=e.outputPos,i=r-n;for(e.outputPos+=a;a-- >0;)e.out_buff[r++]=e.out_buff[i++]}else e.out_buff[e.outputPos++]=t;return t}(t))throw new Error("Error while expanding");return new Uint8Array(t.out_buff)}function Kh(e){let t=-1;for(let n=0,a=Math.ceil(e.byteLength/512);n<a;n++){const a=512*n;77===e[a]&&80===e[a+1]&&81===e[a+2]&&26===e[a+3]&&(t=a)}return t}function Hh(e){return 72===e[0]&&77===e[1]&&51===e[2]&&87===e[3]||-1!==Kh(e)}class zh{constructor(e,t,n,a,r){this.rawBuffer=null,this.buffer=null;const i=e.headerOffset;this.archive=e,this.c=e.c,this.name=`File${`${t.blockIndex}`.padStart(8,"0")}`,this.nameResolved=!1,this.hash=t,this.block=n,a&&(this.rawBuffer=a.slice(i+n.offset,i+n.offset+n.compressedSize)),r&&(this.buffer=r)}bytes(){return null===this.buffer&&this.decode(),this.buffer}arrayBuffer(){const e=this.bytes(),t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(e),t}text(){return Hs(this.bytes())}set(e){if(this.archive.readonly)return!1;const t=this.hash,n=this.block;return t.locale=0,t.platform=0,n.compressedSize=0,n.normalSize=e.byteLength,n.flags=0,this.buffer=e,this.rawBuffer=null,!0}delete(){if(this.archive.readonly)return!1;const e=this.archive,t=this.hash,n=t.blockIndex;t.delete();for(const t of e.hashTable.entries)t.blockIndex<Fo&&t.blockIndex>n&&(t.blockIndex-=1);return e.blockTable.entries.splice(n,1),e.files.splice(n,1),!0}rename(e){if(this.archive.readonly)return!1;const t=this.hash,n=t.locale,a=t.platform,r=t.blockIndex;t.delete();const i=this.archive.hashTable.add(e,r);return i.locale=n,i.platform=a,this.name=e,this.nameResolved=!0,this.hash=i,!0}decode(){if(!this.rawBuffer)throw new Error(`File ${this.name}: Nothing to decode`);const e=this.archive,t=this.block,n=e.c,a=n.computeFileKey(this.name,t),r=this.rawBuffer,i=t.flags;if(i===jo)this.buffer=r.slice(0,t.normalSize);else if(i&zo){let e;e=i&Ko?n.decryptBlock(r.slice(0,t.compressedSize),a):r.subarray(0,t.compressedSize),e=512&i?this.decompressSector(e,t.normalSize):e.slice(),this.buffer=e}else{const s=Math.ceil(t.normalSize/e.sectorSize),l=new Uint8Array(t.normalSize);let o=new Uint32Array(r.buffer,0,s+1);i&Ko&&(o=n.decryptBlock(o.slice(),a-1));let u=o[0],c=o[1],d=0;for(let h=0;h<s;h++){let f;if(f=i&Ko?n.decryptBlock(r.slice(u,c),a+h):r.subarray(u,c),512&i){let n=e.sectorSize;t.normalSize-d<n&&(n=t.normalSize-d),f=this.decompressSector(f,n)}256&i&&(f=Vh(f)),l.set(f,d),d+=f.byteLength,h<s&&(u=c,c=o[h+2])}this.buffer=l}e.readonly&&(this.rawBuffer=null)}decompressSector(e,t){if(e.byteLength===t)return e;{const t=e[0];if(16&t)throw new Error(`File ${this.name}: compression type 'bzip2' not supported`);if(8&t)try{e=Vh(e.subarray(1))}catch(e){throw new Error(`File ${this.name}: failed to decompress with 'explode': ${e}`)}if(2&t)try{e=wh(e.subarray(1))}catch(e){throw new Error(`File ${this.name}: failed to decompress with 'zlib': ${e}`)}if(1&t)throw new Error(`File ${this.name}: compression type 'huffman' not supported`);if(128&t)throw new Error(`File ${this.name}: compression type 'adpcm stereo' not supported`);if(64&t)throw new Error(`File ${this.name}: compression type 'adpcm mono' not supported`);return e}}encode(){if(null!==this.buffer&&null===this.rawBuffer){const e=this.buffer;if(Hh(e))this.rawBuffer=this.buffer,this.block.compressedSize=this.buffer.byteLength,this.block.flags=jo;else{const t=this.archive.sectorSize,n=Math.ceil(e.byteLength/t),a=new Uint32Array(n+1);let r=a.byteLength;const i=[],s=[];a[0]=r;for(let l=0;l<n;l++){const n=l*t;let o=e.subarray(n,n+t),u=o.byteLength;const c=bh(o);let d=!1;c.byteLength+1<u&&(o=c,u=c.byteLength+1,d=!0),r+=u,a[l+1]=r,i[l]=o,s[l]=d}if(r<e.byteLength){const e=new Uint8Array(r);e.set(new Uint8Array(a.buffer)),r=a.byteLength;for(let t=0;t<n;t++){s[t]&&(e[r]=2,r+=1);const n=i[t];e.set(n,r),r+=n.byteLength}this.rawBuffer=e,this.block.compressedSize=e.byteLength,this.block.flags=2147484160}else this.rawBuffer=this.buffer,this.block.compressedSize=this.buffer.byteLength,this.block.flags=jo}}}reEncrypt(e){if(!this.rawBuffer)return!1;const t=this.archive,n=this.block,a=t.c,r=this.rawBuffer,i=n.flags,s=a.computeFileKey(this.name,n);n.offset=e;const l=a.computeFileKey(this.name,n);if(i&zo)a.decryptBlock(r,s),a.encryptBlock(r,l);else{const e=Math.ceil(n.normalSize/t.sectorSize),i=new Uint32Array(r.buffer,0,e+1);a.decryptBlock(i,s-1);let o=i[0],u=i[1];for(let t=0;t<e;t++){const n=r.subarray(o,u);a.decryptBlock(n,s+t),a.encryptBlock(n,l+t),t<e&&(o=u,u=i[t+2])}a.encryptBlock(i,l-1)}return!0}offsetChanged(e){const t=this.block;return t.offset!==e&&t.flags&Ho?!!this.nameResolved&&this.reEncrypt(e):(t.offset=e,!0)}}class jh{constructor(){this.nameA=4294967295,this.nameB=4294967295,this.locale=65535,this.platform=65535,this.blockIndex=Go}load(e){const t=e[2];this.nameA=e[0],this.nameB=e[1],this.locale=65535&t,this.platform=t>>>16,this.blockIndex=e[3]}copy(e){this.nameA=e.nameA,this.nameB=e.nameB,this.locale=e.locale,this.platform=e.platform,this.blockIndex=e.blockIndex}save(e){e[0]=this.nameA,e[1]=this.nameB,e[2]=this.locale<<16|this.platform,e[3]=this.blockIndex}delete(){this.nameA=4294967295,this.nameB=4294967295,this.locale=65535,this.platform=65535,this.blockIndex=Fo}}class Xh{constructor(e){this.c=e,this.entries=[],this.addEmpties(4)}clear(){this.entries.length=0}addEmpties(e){for(let t=0;t<e;t++)this.entries.push(new jh)}getInsertionIndex(e){const t=this.entries,n=this.c.hash(e,0)&t.length-1;for(let e=0,a=t.length;e<a;e++){const r=(e+n)%a;if(65535===t[r].platform)return r}return-1}add(e,t){const n=this.getInsertionIndex(e);if(-1!==n){const a=this.entries[n];return a.nameA=this.c.hash(e,1),a.nameB=this.c.hash(e,2),a.locale=0,a.platform=0,a.blockIndex=t,a}}load(e){const t=e.byteLength/16,n=new Uint32Array(this.c.decryptBlock(e,Do).buffer);let a=0;this.clear(),this.addEmpties(t);for(const e of this.entries)e.load(n.subarray(a,a+4)),a+=4}save(e){const t=new Uint32Array(4*this.entries.length);let n=0;for(const e of this.entries)e.save(t.subarray(n,n+4)),n+=4;const a=new Uint8Array(t.buffer);this.c.encryptBlock(a,Do),e.set(a)}get(e){const t=this.c,n=this.entries,a=t.hash(e,0)&n.length-1,r=t.hash(e,1),i=t.hash(e,2);for(let e=0,t=n.length;e<t;e++){const s=n[(e+a)%t];if(r===s.nameA&&i===s.nameB)return s;if(4294967295===s.blockIndex)return null}return null}}class $h{constructor(){this.readonly=!1,this.headerOffset=0,this.sectorSize=4096,this.c=new Wo,this.hashTable=new Xh(this.c),this.blockTable=new Xo(this.c),this.files=[]}load(e,t=!1){const n=$s(e);this.readonly=t;const a=Kh(n);if(-1===a)throw new Error("No MPQ header");const r=new Uint32Array(n.buffer,a,8),i=r[3],s=bl(r[4]+a),l=bl(r[5]+a),o=r[6];let u=r[7];u>o&&(u=o),this.headerOffset=a,this.sectorSize=512*(1<<(i>>>16)),this.hashTable.load(n.slice(s,s+16*o)),this.blockTable.load(n.slice(l,l+16*u)),this.files.length=0;for(const e of this.hashTable.entries){const t=e.blockIndex;t<this.blockTable.entries.length&&(this.files[t]=new zh(this,e,this.blockTable.entries[t],n,null))}const c=this.get("(listfile)");if(c){const e=c.text();if(e)for(const t of e.split("\r\n"))this.get(t)}}save(){if(this.readonly)return null;const e=32;this.delete("(attributes)"),this.saveMemory(),this.set("(listfile)",this.getFileNames().join("\r\n"));let t=e;for(const e of this.files)if(e){if(!e.offsetChanged(t))return null;e.encode(),t+=e.block.compressedSize}const n=this.hashTable,a=this.blockTable,r=n.entries.length,i=a.entries.length,s=t-e,l=e+s+16*r+16*i,o=e+s,u=o+16*r,c=new Uint8Array(l),d=new Uint32Array(c.buffer,0,8);d[0]=441536589,d[1]=e,d[2]=l,d[3]=Math.log2(this.sectorSize/512)<<16,d[4]=o,d[5]=u,d[6]=r,d[7]=i,t=e;for(const e of this.files)e&&(e.rawBuffer&&c.set(e.rawBuffer,t),t+=e.block.compressedSize);return n.save(c.subarray(t,t+16*n.entries.length)),t+=16*n.entries.length,a.save(c.subarray(t,t+16*a.entries.length)),c}saveMemory(){if(this.readonly)return 0;const e=this.blockTable.entries,t=this.hashTable.entries;let n=e.length,a=0;for(;n--;){const r=e[n];if(0===r.normalSize)this.removeBlock(n),a+=r.compressedSize;else{let e=!1;for(const a of t)if(a.blockIndex===n){e=!0;break}e||(this.removeBlock(n),a+=r.compressedSize)}}return a}removeBlock(e){for(const t of this.hashTable.entries)t.blockIndex<Fo&&t.blockIndex>e&&(t.blockIndex-=1);this.blockTable.entries.splice(e,1)}getFileNames(){const e=[];for(const t of this.files)t&&""!==t.name&&e.push(t.name);return e}countUnresolved(){let e=0;for(const t of this.files)t.nameResolved||e++;return e}applyListfile(e){for(const t of e)this.get(t)}set(e,t){if(this.readonly)return!1;const n=$s(t);let a=this.get(e);if(a)a.set(n);else{const t=this.blockTable.entries.length,r=this.hashTable.add(e,t);if(!r)return!1;const i=this.blockTable.add(n);a=new zh(this,r,i,null,n),a.name=e,a.nameResolved=!0,this.files[t]=a}return!0}get(e){const t=this.hashTable.get(e);if(t){const n=t.blockIndex;if(n<Fo){const t=this.files[n];if(t)return t.name=e,t.nameResolved=!0,t}}return null}has(e){return!!this.get(e)}delete(e){if(this.readonly)return!1;const t=this.get(e);return!!t&&(t.delete(),!0)}rename(e,t){if(this.readonly)return!1;const n=this.get(e);return!!n&&(n.rename(t),!0)}resizeHashtable(e){if(this.readonly)return!1;e=Math.max(4,Is(e));const t=this.files;if(t.length>e)return!1;for(const e of t)if(!e.nameResolved)return!1;const n=this.hashTable,a=n.entries,r=a.slice();n.clear(),n.addEmpties(e);for(const e of r)if(e.blockIndex!==Go){const r=t[e.blockIndex];a[n.getInsertionIndex(r.name)].copy(e)}return!0}}const Jh={Archive:$h,Crypto:Wo,HashTable:Xh,Hash:jh,BlockTable:Xo,Block:Oo,File:zh,isArchive:Hh};class Wh{constructor(){this.isCustom=0,this.path=""}load(e){this.isCustom=e.readUint8(),this.path=e.readNull()}save(e){e.writeUint8(this.isCustom),e.writeNull(this.path)}getByteLength(){return 2+js(this.path)}}class qh{constructor(){this.version=1,this.entries=new Map}load(e){const t=new Al(e);this.version=t.readUint32();for(let e=0,n=t.readUint32();e<n;e++){const e=new Wh;e.load(t),e.isCustom?this.entries.set(e.path,e):this.entries.set(`war3mapimported\\${e.path}`,e)}}save(){const e=new Al(new ArrayBuffer(this.getByteLength()));e.writeUint32(this.version),e.writeUint32(this.entries.size);for(const t of this.entries.values())t.save(e);return e.uint8array}getByteLength(){let e=8;for(const t of this.entries.values())e+=t.getByteLength();return e}set(e){if(!this.entries.has(e)){const t=new Wh;return t.isCustom=10,t.path=e,this.entries.set(e,t),!0}return!1}has(e){return this.entries.has(e)}delete(e){return this.entries.delete(e)}rename(e,t){const n=this.entries.get(e);return!!n&&(n.isCustom=10,n.path=t,!0)}}class Yh{constructor(){this.id="\0\0\0\0",this.variableType=0,this.levelOrVariation=0,this.dataPointer=0,this.value=0,this.u1=0}load(e,t){if(this.id=e.readBinary(4),this.variableType=e.readInt32(),t&&(this.levelOrVariation=e.readInt32(),this.dataPointer=e.readInt32()),0===this.variableType)this.value=e.readInt32();else if(1===this.variableType||2===this.variableType)this.value=e.readFloat32();else{if(3!==this.variableType)throw new Error(`Modification: unknown variable type ${this.variableType}`);this.value=e.readNull()}this.u1=e.readInt32()}save(e,t){if(e.writeBinary(this.id),e.writeInt32(this.variableType),t&&(e.writeInt32(this.levelOrVariation),e.writeInt32(this.dataPointer)),0===this.variableType)e.writeInt32(this.value);else if(1===this.variableType||2===this.variableType)e.writeFloat32(this.value);else{if(3!==this.variableType)throw new Error(`Modification: unknown variable type ${this.variableType}`);e.writeNull(this.value)}e.writeInt32(this.u1)}getByteLength(e){let t=12;return e&&(t+=8),3===this.variableType?t+=js(this.value)+1:t+=4,t}}class Zh{constructor(){this.oldId="\0\0\0\0",this.newId="\0\0\0\0",this.sets=1,this.setsFlag=[],this.modifications=[]}load(e,t,n){this.oldId=e.readBinary(4),this.newId=e.readBinary(4),n>=3&&(this.sets=e.readUint32());for(let a=0;a<this.sets;a++){n>=3&&(this.setsFlag[a]=e.readUint32());for(let n=0,a=e.readUint32();n<a;n++){const a=new Yh;a.load(e,t),this.modifications[n]=a}}}save(e,t,n){"\0\0\0\0"!==this.oldId?e.writeBinary(this.oldId):e.writeUint32(0),"\0\0\0\0"!==this.newId?e.writeBinary(this.newId):e.writeUint32(0),n>=3&&e.writeUint32(this.sets),e.writeUint32(this.modifications.length);for(let a=0;a<this.sets;a++){n>=3&&e.writeUint32(this.setsFlag[a]);for(const n of this.modifications)n.save(e,t)}}getByteLength(e,t){let n=t>=3?16:12;for(let a=0;a<this.sets;a++){t>=3&&(n+=4);for(const t of this.modifications)n+=t.getByteLength(e)}return n}}class Qh{constructor(){this.objects=[]}load(e,t,n){for(let a=0,r=e.readUint32();a<r;a++){const r=new Zh;r.load(e,t,n),this.objects[a]=r}}save(e,t,n){e.writeUint32(this.objects.length);for(const a of this.objects)a.save(e,t,n)}getByteLength(e,t){let n=4;for(const a of this.objects)n+=a.getByteLength(e,t);return n}}class ef{constructor(){this.version=0,this.originalTable=new Qh,this.customTable=new Qh}load(e){let t;t=e instanceof Al?e:new Al(e),this.version=t.readInt32(),this.originalTable.load(t,!0,this.version),this.customTable.load(t,!0,this.version)}save(){const e=new Al(new ArrayBuffer(this.getByteLength()));return e.writeInt32(this.version),this.originalTable.save(e,!0,this.version),this.customTable.save(e,!0,this.version),e.uint8array}getByteLength(){return 4+this.originalTable.getByteLength(!0,this.version)+this.customTable.getByteLength(!0,this.version)}}class tf{constructor(){this.version=0,this.originalTable=new Qh,this.customTable=new Qh}load(e){let t;t=e instanceof Al?e:new Al(e),this.version=t.readInt32(),this.originalTable.load(t,!1,this.version),this.customTable.load(t,!1,this.version)}save(){const e=new Al(new ArrayBuffer(this.getByteLength()));return e.writeInt32(this.version),this.originalTable.save(e,!1,this.version),this.customTable.save(e,!1,this.version),e.uint8array}getByteLength(){return 4+this.originalTable.getByteLength(!1,this.version)+this.customTable.getByteLength(!1,this.version)}}class nf{constructor(){this.text=""}load(e){const t=e.readInt32();t&&(this.text=e.read(t-1),e.skip(1))}save(e){this.text.length?(e.writeInt32(js(this.text)+1),e.write(this.text),e.skip(1)):e.writeInt32(0)}getByteLength(){let e=4;return this.text.length&&(e+=js(this.text)+1),e}}class af{constructor(){this.version=0,this.comment="",this.trigger=new nf,this.triggers=[]}load(e){const t=new Al(e);this.version=t.readInt32(),1===this.version&&(this.comment=t.readNull(),this.trigger.load(t));for(let e=0,n=t.readUint32();e<n;e++){const n=new nf;n.load(t),this.triggers[e]=n}}save(){const e=new Al(new ArrayBuffer(this.getByteLength()));e.writeInt32(this.version),1===this.version&&(e.writeNull(this.comment),this.trigger.save(e)),e.writeUint32(this.triggers.length);for(const t of this.triggers)t.save(e);return e.uint8array}getByteLength(){let e=8;1===this.version&&(e+=js(this.comment)+1+this.trigger.getByteLength());for(const t of this.triggers)e+=t.getByteLength();return e}}class rf{constructor(){this.id=0,this.name="",this.isComment=0}load(e,t){this.id=e.readInt32(),this.name=e.readNull(),7===t&&(this.isComment=e.readInt32())}save(e,t){e.writeInt32(this.id),e.writeNull(this.name),7===t&&e.writeInt32(this.isComment)}getByteLength(e){let t=5+js(this.name);return 7===e&&(t+=4),t}}class sf{constructor(){this.name="",this.type="",this.u1=0,this.isArray=0,this.arraySize=0,this.isInitialized=0,this.initialValue=""}load(e,t){this.name=e.readNull(),this.type=e.readNull(),this.u1=e.readInt32(),this.isArray=e.readInt32(),7===t&&(this.arraySize=e.readInt32()),this.isInitialized=e.readInt32(),this.initialValue=e.readNull()}save(e,t){e.writeNull(this.name),e.writeNull(this.type),e.writeInt32(this.u1),e.writeInt32(this.isArray),7===t&&e.writeInt32(this.arraySize),e.writeInt32(this.isInitialized),e.writeNull(this.initialValue)}getByteLength(e){let t=15+js(this.name)+js(this.type)+js(this.initialValue);return 7===e&&(t+=4),t}}class lf{constructor(){this.type=0,this.name="",this.beginParameters=0,this.parameters=[]}load(e,t,n){if(this.type=e.readInt32(),this.type<0||this.type>3)throw new Error(`SubParameters: Bad type: ${this.type}`);if(this.name=e.readNull(),0===this.name.length)throw new Error("SubParameters: Empty name");if(this.beginParameters=e.readInt32(),this.beginParameters){const a=n.getFunction(this.type,this.name);if(!a)throw new Error(`SubParameters "${this.name}:${this.type}": Unknown signature`);for(let r=0,i=a.args.length;r<i;r++){const a=new of;try{a.load(e,t,n)}catch(e){throw new Error(`SubParameters "${this.name}": Parameter ${r}: ${e}`)}this.parameters[r]=a}}}save(e,t){e.writeInt32(this.type),e.writeNull(this.name),e.writeInt32(this.beginParameters);for(const n of this.parameters)n.save(e,t)}getByteLength(e){let t=9+js(this.name);if(this.parameters.length)for(const n of this.parameters)t+=n.getByteLength(e);return t}}class of{constructor(){this.type=0,this.value="",this.subParameters=null,this.u1=0,this.isArray=0,this.arrayIndex=null}load(e,t,n){if(this.type=e.readInt32(),this.type<-1||this.type>3)throw new Error(`Parameter: Bad type: ${this.type}`);if(this.value=e.readNull(),e.readInt32()){const a=new lf;try{a.load(e,t,n)}catch(e){throw new Error(`Parameter "${this.value}": SubParameters ${e}`)}this.subParameters=a}if((4===t&&2===this.type||7===t&&this.subParameters)&&(this.u1=e.readInt32()),(4===t&&2!==this.type||7===t)&&(this.isArray=e.readInt32()),this.isArray){const a=new of;try{a.load(e,t,n)}catch(e){throw new Error(`Parameter "${this.value}": ArrayIndex: ${e}`)}this.arrayIndex=a}}save(e,t){e.writeInt32(this.type),e.writeNull(this.value),this.subParameters?(e.writeInt32(1),this.subParameters.save(e,t)):e.writeInt32(0),(4===t&&2===this.type||7===t&&this.subParameters)&&e.writeInt32(this.u1),(4===t&&2!==this.type||7===t)&&e.writeInt32(this.isArray),this.isArray&&this.arrayIndex&&this.arrayIndex.save(e,t)}getByteLength(e){let t=9+js(this.value);return this.subParameters&&(t+=this.subParameters.getByteLength(e)),(4===e&&2===this.type||7===e&&this.subParameters)&&(t+=4),(4===e&&2!==this.type||7===e)&&(t+=4),this.isArray&&this.arrayIndex&&(t+=this.arrayIndex.getByteLength(e)),t}}class uf{constructor(){this.type=-1,this.group=-1,this.name="",this.isEnabled=0,this.parameters=[],this.ecas=[]}load(e,t,n,a){if(this.type=e.readInt32(),this.type<0||this.type>3)throw new Error(`ECA: Bad type: ${this.type}`);if(n&&(this.group=e.readUint32()),this.name=e.readNull(),0===this.name.length)throw new Error("ECA: Empty name");this.isEnabled=e.readInt32();const r=a.getFunction(this.type,this.name);if(!r)throw new Error(`ECA "${this.name}:${this.type}": Unknown signature`);for(let n=0,i=r.args.length;n<i;n++){const r=new of;try{r.load(e,t,a)}catch(e){throw new Error(`ECA "${this.name}": Parameter ${n}: ${e}`)}this.parameters[n]=r}if(7===t)for(let n=0,r=e.readUint32();n<r;n++){const r=new uf;try{r.load(e,t,!0,a)}catch(e){throw new Error(`ECA "${this.name}": Child ECA ${n} ${e}`)}this.ecas[n]=r}}save(e,t){e.writeInt32(this.type),-1!==this.group&&e.writeInt32(this.group),e.writeNull(this.name),e.writeInt32(this.isEnabled);for(const n of this.parameters)n.save(e,t);if(7===t){e.writeUint32(this.ecas.length);for(const n of this.ecas)n.save(e,t)}}getByteLength(e){let t=9+js(this.name);-1!==this.group&&(t+=4);for(const n of this.parameters)t+=n.getByteLength(e);if(7===e){t+=4;for(const n of this.ecas)t+=n.getByteLength(e)}return t}}class cf{constructor(){this.name="",this.description="",this.isComment=0,this.isEnabled=0,this.isCustom=0,this.isInitiallyOff=0,this.runOnInitialization=0,this.category=0,this.ecas=[]}load(e,t,n){this.name=e.readNull(),this.description=e.readNull(),7===t&&(this.isComment=e.readInt32()),this.isEnabled=e.readInt32(),this.isCustom=e.readInt32(),this.isInitiallyOff=e.readInt32(),this.runOnInitialization=e.readInt32(),this.category=e.readInt32();for(let a=0,r=e.readUint32();a<r;a++){const r=new uf;try{r.load(e,t,!1,n)}catch(e){throw new Error(`Trigger "${this.name}": ECA ${a}: ${e}`)}this.ecas[a]=r}}save(e,t){e.writeNull(this.name),e.writeNull(this.description),7===t&&e.writeInt32(this.isComment),e.writeInt32(this.isEnabled),e.writeInt32(this.isCustom),e.writeInt32(this.isInitiallyOff),e.writeInt32(this.runOnInitialization),e.writeInt32(this.category),e.writeUint32(this.ecas.length);for(const n of this.ecas)n.save(e,t)}getByteLength(e){let t=26+js(this.name)+js(this.description);7===e&&(t+=4);for(const n of this.ecas)t+=n.getByteLength(e);return t}}class df{constructor(){this.version=0,this.categories=[],this.u1=0,this.variables=[],this.triggers=[]}load(e,t){const n=new Al(e);if("WTG!"!==n.readBinary(4))throw new Error("Not a WTG file");this.version=n.readInt32();for(let e=0,t=n.readUint32();e<t;e++){const t=new rf;t.load(n,this.version),this.categories[e]=t}this.u1=n.readInt32();for(let e=0,t=n.readUint32();e<t;e++){const t=new sf;t.load(n,this.version),this.variables[e]=t}for(let e=0,a=n.readUint32();e<a;e++){const a=new cf;try{a.load(n,this.version,t)}catch(t){throw new Error(`Trigger ${e}: ${t}`)}this.triggers[e]=a}}save(){const e=new Al(new ArrayBuffer(this.getByteLength()));e.writeBinary("WTG!"),e.writeInt32(this.version),e.writeUint32(this.categories.length);for(const t of this.categories)t.save(e,this.version);e.writeInt32(this.u1),e.writeUint32(this.variables.length);for(const t of this.variables)t.save(e,this.version);e.writeUint32(this.triggers.length);for(const t of this.triggers)t.save(e,this.version);return e.uint8array}getByteLength(){let e=24;const t=this.version;for(const n of this.categories)e+=n.getByteLength(t);for(const n of this.variables)e+=n.getByteLength(t);for(const n of this.triggers)e+=n.getByteLength(t);return e}}class hf{constructor(){this.stringMap=new Map}load(e){const t=new to(e);let n;const a=e.indexOf("STRING");if(-1===a)throw new Error("Not a valid war3map.wts buffer");for(t.index=a;n=t.readToken();)if("STRING"===n){const n=t.readInt();t.read();const a=e.indexOf("}",t.index);if(-1===a)throw this.stringMap.set(n,e.slice(t.index,e.length).trim()),new Error(`WTS: missing data in string ${this.stringMap.size} (and maybe more)`);this.stringMap.set(n,e.slice(t.index,a).trim()),t.index=a}}save(){let e="";for(const[t,n]of this.stringMap)e+=`STRING ${t}\r\n{\r\n${n}\r\n}\r\n\r\n`;return e}getString(e){return"string"!=typeof e?this.stringMap.get(e):e.startsWith("TRIGSTR_")?this.stringMap.get(parseInt(e.slice(8))):void 0}setString(e,t){"string"==typeof e?e.startsWith("TRIGSTR_")&&this.stringMap.set(parseInt(e.slice(8)),t):this.stringMap.set(e,t)}}class ff{constructor(){this.flags=0,this.playerMasks=0,this.name=""}load(e){this.flags=e.readUint32(),this.playerMasks=e.readUint32(),this.name=e.readNull()}save(e){e.writeUint32(this.flags),e.writeUint32(this.playerMasks),e.writeNull(this.name)}getByteLength(){return 9+js(this.name)}}class mf{constructor(){this.id=0,this.type=0,this.race=0,this.isFixedStartPosition=0,this.name="",this.startLocation=new Float32Array(2),this.allyLowPriorities=0,this.allyHighPriorities=0,this.unknown1=new Uint8Array(8)}load(e,t){this.id=e.readInt32(),this.type=e.readInt32(),this.race=e.readInt32(),this.isFixedStartPosition=e.readInt32(),this.name=e.readNull(),e.readFloat32Array(this.startLocation),this.allyLowPriorities=e.readUint32(),this.allyHighPriorities=e.readUint32(),t>30&&e.readUint8Array(this.unknown1)}save(e,t){e.writeInt32(this.id),e.writeInt32(this.type),e.writeInt32(this.race),e.writeInt32(this.isFixedStartPosition),e.writeNull(this.name),e.writeFloat32Array(this.startLocation),e.writeUint32(this.allyLowPriorities),e.writeUint32(this.allyHighPriorities),t>30&&e.writeUint8Array(this.unknown1)}getByteLength(e){let t=33+js(this.name);return e>30&&(t+=8),t}}class pf{constructor(){this.chance=0,this.id="\0\0\0\0"}load(e){this.chance=e.readInt32(),this.id=e.readBinary(4)}save(e){e.writeInt32(this.chance),e.writeBinary(this.id)}}class _f{constructor(){this.items=[]}load(e){for(let t=0,n=e.readUint32();t<n;t++){const n=new pf;n.load(e),this.items[t]=n}}save(e){e.writeUint32(this.items.length);for(const t of this.items)t.save(e)}getByteLength(){return 4+8*this.items.length}}class gf{constructor(){this.id=0,this.name="",this.sets=[]}load(e){this.id=e.readInt32(),this.name=e.readNull();for(let t=0,n=e.readUint32();t<n;t++){const n=new _f;n.load(e),this.sets[t]=n}}save(e){e.writeInt32(this.id),e.writeNull(this.name),e.writeUint32(this.sets.length);for(const t of this.sets)t.save(e)}getByteLength(){let e=9+js(this.name);for(const t of this.sets)e+=t.getByteLength();return e}}class bf{constructor(){this.chance=0,this.ids=[]}load(e,t){this.chance=e.readInt32();for(let n=0;n<t;n++)this.ids[n]=e.readBinary(4)}save(e){e.writeInt32(this.chance);for(const t of this.ids)e.writeBinary(t)}}class wf{constructor(){this.id=0,this.name="",this.positions=0,this.columnTypes=new Int32Array(0),this.units=[]}load(e){this.id=e.readInt32(),this.name=e.readNull(),this.positions=e.readInt32(),this.columnTypes=e.readInt32Array(this.positions);for(let t=0,n=e.readUint32();t<n;t++){const n=new bf;n.load(e,this.positions),this.units[t]=n}}save(e){e.writeInt32(this.id),e.writeNull(this.name),e.writeInt32(this.positions),e.writeInt32Array(this.columnTypes),e.writeUint32(this.units.length);for(const t of this.units)t.save(e)}getByteLength(){return 13+js(this.name)+this.columnTypes.byteLength+this.units.length*(4+4*this.positions)}}class vf{constructor(){this.playerFlags=0,this.id="\0\0\0\0"}load(e){this.playerFlags=e.readUint32(),this.id=e.readBinary(4)}save(e){e.writeUint32(this.playerFlags),e.writeBinary(this.id)}}class Af{constructor(){this.playerFlags=0,this.id="\0\0\0\0",this.levelAffected=0,this.availability=0}load(e){this.playerFlags=e.readUint32(),this.id=e.readBinary(4),this.levelAffected=e.readInt32(),this.availability=e.readInt32()}save(e){e.writeUint32(this.playerFlags),e.writeBinary(this.id),e.writeInt32(this.levelAffected),e.writeInt32(this.availability)}}class yf{constructor(){this.version=0,this.saves=0,this.editorVersion=0,this.buildVersion=new Uint32Array(4),this.name="",this.author="",this.description="",this.recommendedPlayers="",this.cameraBounds=new Float32Array(8),this.cameraBoundsComplements=new Int32Array(4),this.playableSize=new Int32Array(2),this.flags=0,this.tileset="A",this.campaignBackground=0,this.loadingScreenModel="",this.loadingScreenText="",this.loadingScreenTitle="",this.loadingScreenSubtitle="",this.loadingScreen=0,this.prologueScreenModel="",this.prologueScreenText="",this.prologueScreenTitle="",this.prologueScreenSubtitle="",this.useTerrainFog=0,this.fogHeight=new Float32Array(2),this.fogDensity=0,this.fogColor=new Uint8Array(4),this.globalWeather=0,this.soundEnvironment="",this.lightEnvironmentTileset="\0",this.waterVertexColor=new Uint8Array(4),this.scriptMode=0,this.graphicsMode=0,this.defaultCameraZoom=0,this.maxCameraZoom=0,this.minCameraZoom=0,this.players=[],this.forces=[],this.upgradeAvailabilityChanges=[],this.techAvailabilityChanges=[],this.randomUnitTables=[],this.randomItemTables=[],this.unknown1=0}load(e){const t=new Al(e);this.version=t.readInt32(),this.saves=t.readInt32(),this.editorVersion=t.readInt32(),this.version>27&&t.readUint32Array(this.buildVersion),this.name=t.readNull(),this.author=t.readNull(),this.description=t.readNull(),this.recommendedPlayers=t.readNull(),t.readFloat32Array(this.cameraBounds),t.readInt32Array(this.cameraBoundsComplements),t.readInt32Array(this.playableSize),this.flags=t.readUint32(),this.tileset=t.readBinary(1),this.campaignBackground=t.readInt32(),this.version>24&&(this.loadingScreenModel=t.readNull()),this.loadingScreenText=t.readNull(),this.loadingScreenTitle=t.readNull(),this.loadingScreenSubtitle=t.readNull(),this.loadingScreen=t.readInt32(),this.version>24&&(this.prologueScreenModel=t.readNull()),this.prologueScreenText=t.readNull(),this.prologueScreenTitle=t.readNull(),this.prologueScreenSubtitle=t.readNull(),this.version>24&&(this.useTerrainFog=t.readInt32(),t.readFloat32Array(this.fogHeight),this.fogDensity=t.readFloat32(),t.readUint8Array(this.fogColor),this.globalWeather=t.readInt32(),this.soundEnvironment=t.readNull(),this.lightEnvironmentTileset=t.readBinary(1),t.readUint8Array(this.waterVertexColor)),this.version>27&&(this.scriptMode=t.readUint32()),this.version>30&&(this.graphicsMode=t.readUint32(),this.unknown1=t.readUint32()),this.version>32&&(this.defaultCameraZoom=t.readUint32(),this.maxCameraZoom=t.readUint32(),this.minCameraZoom=t.readUint32());for(let e=0,n=t.readInt32();e<n;e++){const n=new mf;n.load(t,this.version),this.players[e]=n}for(let e=0,n=t.readInt32();e<n;e++){const n=new ff;n.load(t),this.forces[e]=n}for(let e=0,n=t.readInt32();e<n;e++){const n=new Af;n.load(t),this.upgradeAvailabilityChanges[e]=n}for(let e=0,n=t.readInt32();e<n;e++){const n=new vf;n.load(t),this.techAvailabilityChanges[e]=n}for(let e=0,n=t.readInt32();e<n;e++){const n=new wf;n.load(t),this.randomUnitTables[e]=n}if(this.version>24)for(let e=0,n=t.readInt32();e<n;e++){const n=new gf;n.load(t),this.randomItemTables[e]=n}}save(){const e=new Al(new ArrayBuffer(this.getByteLength()));e.writeInt32(this.version),e.writeInt32(this.saves),e.writeInt32(this.editorVersion),this.version>27&&e.writeUint32Array(this.buildVersion),e.writeNull(this.name),e.writeNull(this.author),e.writeNull(this.description),e.writeNull(this.recommendedPlayers),e.writeFloat32Array(this.cameraBounds),e.writeInt32Array(this.cameraBoundsComplements),e.writeInt32Array(this.playableSize),e.writeUint32(this.flags),e.writeBinary(this.tileset),e.writeInt32(this.campaignBackground),this.version>24&&e.writeNull(this.loadingScreenModel),e.writeNull(this.loadingScreenText),e.writeNull(this.loadingScreenTitle),e.writeNull(this.loadingScreenSubtitle),e.writeInt32(this.loadingScreen),this.version>24&&e.writeNull(this.prologueScreenModel),e.writeNull(this.prologueScreenText),e.writeNull(this.prologueScreenTitle),e.writeNull(this.prologueScreenSubtitle),this.version>24&&(e.writeInt32(this.useTerrainFog),e.writeFloat32Array(this.fogHeight),e.writeFloat32(this.fogDensity),e.writeUint8Array(this.fogColor),e.writeInt32(this.globalWeather),e.writeNull(this.soundEnvironment),e.writeBinary(this.lightEnvironmentTileset),e.writeUint8Array(this.waterVertexColor)),this.version>27&&e.writeUint32(this.scriptMode),this.version>30&&(e.writeUint32(this.graphicsMode),e.writeUint32(this.unknown1)),this.version>32&&(e.writeUint32(this.defaultCameraZoom),e.writeUint32(this.maxCameraZoom),e.writeUint32(this.minCameraZoom)),e.writeUint32(this.players.length);for(const t of this.players)t.save(e,this.version);e.writeUint32(this.forces.length);for(const t of this.forces)t.save(e);e.writeUint32(this.upgradeAvailabilityChanges.length);for(const t of this.upgradeAvailabilityChanges)t.save(e);e.writeUint32(this.techAvailabilityChanges.length);for(const t of this.techAvailabilityChanges)t.save(e);e.writeUint32(this.randomUnitTables.length);for(const t of this.randomUnitTables)t.save(e);if(this.version>24){e.writeUint32(this.randomItemTables.length);for(const t of this.randomItemTables)t.save(e)}return e.uint8array}getByteLength(){let e=111+js(this.name)+js(this.author)+js(this.description)+js(this.recommendedPlayers)+js(this.loadingScreenText)+js(this.loadingScreenTitle)+js(this.loadingScreenSubtitle)+js(this.prologueScreenText)+js(this.prologueScreenTitle)+js(this.prologueScreenSubtitle);for(const t of this.players)e+=t.getByteLength(this.version);for(const t of this.forces)e+=t.getByteLength();e+=16*this.upgradeAvailabilityChanges.length,e+=8*this.techAvailabilityChanges.length;for(const t of this.randomUnitTables)e+=t.getByteLength();if(this.version>24){e+=36+js(this.loadingScreenModel)+js(this.prologueScreenModel)+js(this.soundEnvironment);for(const t of this.randomItemTables)e+=t.getByteLength()}return this.version>27&&(e+=20),this.version>30&&(e+=8),e}getBuildVersion(){return 100*this.buildVersion[0]+this.buildVersion[1]}}class Sf{constructor(){this.u1=0,this.name="",this.flags=0,this.maxPlayers=0,this.archive=new $h,this.imports=new qh,this.readonly=!1}load(e,t=!1){const n=new Al(e);"HM3W"===n.readBinary(4)&&(this.u1=n.readUint32(),this.name=n.readNull(),this.flags=n.readUint32(),this.maxPlayers=n.readUint32()),this.readonly=t,this.archive.load(e,t),this.readImports()}save(){this.setImportsFile();const e=this.archive.save();if(!e)throw Error("Failed to save the map MPQ archive");const t=this.getMapInformation();if(!t||t.getBuildVersion()<131){const t=new Uint8Array(512+e.byteLength),n=new Al(t);return n.writeBinary("HM3W"),n.writeUint32(this.u1),n.writeNull(this.name),n.writeUint32(this.flags),n.writeUint32(this.maxPlayers),t.set(e,512),t}return e}getFileNames(){return this.archive.getFileNames()}getImportNames(){const e=[];for(const t of this.imports.entries.values()){const n=t.isCustom;10===n||13===n?e.push(t.path):e.push(`war3mapImported\\${t.path}`)}return e}setImportsFile(){return!this.readonly&&(this.imports.entries.size>0&&this.set("war3map.imp",this.imports.save()))}import(e,t){return!this.readonly&&(!!this.archive.set(e,t)&&(this.imports.set(e),!0))}set(e,t){return!this.readonly&&this.archive.set(e,t)}get(e){return this.archive.get(e)}getScriptFile(){return this.get("war3map.j")||this.get("scripts\\war3map.j")||this.get("war3map.lua")||this.get("scripts\\war3map.lua")}has(e){return this.archive.has(e)}delete(e){return!this.readonly&&(this.imports.delete(e),this.archive.delete(e))}rename(e,t){return!this.readonly&&(!!this.archive.rename(e,t)&&(this.imports.rename(e,t),!0))}getMapInformation(){const e=this.archive.get("war3map.w3i");if(!e)throw new Error("File does not exist");const t=new yf;return t.load(e.bytes()),t}readImports(){const e=this.archive.get("war3map.imp");if(e){const t=e.arrayBuffer();t&&this.imports.load(t)}}readTriggers(e){const t=this.archive.get("war3map.wtg");if(t){const n=t.arrayBuffer();if(n){const t=new df;return t.load(n,e),t}}}readCustomTextTriggers(){const e=this.archive.get("war3map.wct");if(e){const t=e.arrayBuffer();if(t){const e=new af;return e.load(t),e}}}readStringTable(){const e=this.archive.get("war3map.wts");if(e){const t=e.text();if(t){const e=new hf;return e.load(t),e}}}readModifications(){const e={},t=["w3u","w3t","w3b","w3d","w3a","w3h","w3q"],n=[!1,!1,!1,!0,!0,!1,!0];for(let a=0,r=t.length;a<r;a++){const r=this.archive.get(`war3map.${t[a]}`);if(r){const i=r.arrayBuffer();if(i){let r;r=n[a]?new ef:new tf,r.load(i),e[t[a]]=r}}}return e}}class Tf{constructor(){this.id="\0\0\0\0",this.chance=0}load(e){this.id=e.readBinary(4),this.chance=e.readInt32()}save(e){e.writeBinary(this.id),e.writeInt32(this.chance)}}class xf{constructor(){this.items=[]}load(e){for(let t=0,n=e.readUint32();t<n;t++){const t=new Tf;t.load(e),this.items.push(t)}}save(e){e.writeUint32(this.items.length);for(const t of this.items)t.save(e)}getByteLength(){return 4+8*this.items.length}}class Ef{constructor(){this.id="\0\0\0\0",this.variation=0,this.location=new Float32Array(3),this.angle=0,this.scale=new Float32Array([1,1,1]),this.skin="\0\0\0\0",this.flags=0,this.life=0,this.itemTable=-1,this.itemSets=[],this.editorId=0,this.u1=new Uint8Array(8)}load(e,t,n){if(this.id=e.readBinary(4),this.variation=e.readInt32(),e.readFloat32Array(this.location),this.angle=e.readFloat32(),e.readFloat32Array(this.scale),n>131&&(this.skin=e.readBinary(4)),this.flags=e.readUint8(),this.life=e.readUint8(),t>7){this.itemTable=e.readUint32();for(let t=0,n=e.readUint32();t<n;t++){const t=new xf;t.load(e),this.itemSets.push(t)}}this.editorId=e.readInt32()}save(e,t,n){if(e.writeBinary(this.id),e.writeInt32(this.variation),e.writeFloat32Array(this.location),e.writeFloat32(this.angle),e.writeFloat32Array(this.scale),n>131&&e.writeBinary(this.skin),e.writeUint8(this.flags),e.writeUint8(this.life),t>7){e.writeUint32(this.itemTable),e.writeUint32(this.itemSets.length);for(const t of this.itemSets)t.save(e)}e.writeInt32(this.editorId)}getByteLength(e,t){let n=42;if(t>131&&(n+=4),e>7){n+=8;for(const e of this.itemSets)n+=e.getByteLength()}return n}}class Lf{constructor(){this.id="\0\0\0\0",this.u1=0,this.location=new Uint32Array(2)}load(e,t){this.id=e.readBinary(4),this.u1=e.readUint32(),e.readUint32Array(this.location)}save(e,t){e.writeBinary(this.id),e.writeUint32(this.u1),e.writeUint32Array(this.location)}}class If{constructor(){this.version=0,this.u1=new Uint8Array(4),this.doodads=[],this.u2=new Uint8Array(4),this.terrainDoodads=[]}load(e,t){const n=new Al(e);if("W3do"!==n.readBinary(4))throw new Error("Not a valid war3map.doo buffer");this.version=n.readInt32(),n.readUint8Array(this.u1);for(let e=0,a=n.readInt32();e<a;e++){const e=new Ef;e.load(n,this.version,t),this.doodads.push(e)}n.readUint8Array(this.u2);for(let e=0,t=n.readInt32();e<t;e++){const e=new Lf;e.load(n,this.version),this.terrainDoodads.push(e)}}save(e){const t=new Al(new ArrayBuffer(this.getByteLength(e)));t.writeBinary("W3do"),t.writeInt32(this.version),t.writeUint8Array(this.u1),t.writeUint32(this.doodads.length);for(const n of this.doodads)n.save(t,this.version,e);t.writeUint8Array(this.u2),t.writeUint32(this.terrainDoodads.length);for(const e of this.terrainDoodads)e.save(t,this.version);return t.uint8array}getByteLength(e){let t=24+16*this.terrainDoodads.length;for(const n of this.doodads)t+=n.getByteLength(this.version,e);return t}}const Uf={File:If,Doodad:Ef,RandomItemSet:xf,RandomItem:Tf,TerrainDoodad:Lf},Rf={File:qh,Import:Wh};class Cf{constructor(){this.type=0,this.location=new Int32Array(2),this.color=new Uint8Array(4)}load(e){this.type=e.readInt32(),e.readInt32Array(this.location),e.readUint8Array(this.color)}save(e){e.writeInt32(this.type),e.writeInt32Array(this.location),e.writeUint8Array(this.color)}}const Mf={File:class{constructor(){this.u1=0,this.icons=[]}load(e){const t=new Al(e);this.u1=t.readInt32();for(let e=0,n=t.readInt32();e<n;e++){const n=new Cf;n.load(t),this.icons[e]=n}}save(){const e=new Al(new ArrayBuffer(this.getByteLength()));e.writeInt32(this.u1),e.writeUint32(this.icons.length);for(const t of this.icons)t.save(e);return e.uint8array}getByteLength(){return 8+16*this.icons.length}},MinimapIcon:Cf};const Bf={File:class{constructor(){this.shadows=new Uint8Array(0)}load(e,t,n){this.shadows=new Uint8Array(e.slice(0,t*n*16))}save(){return this.shadows.slice()}getByteLength(){return this.shadows.length}}};class Nf{constructor(){this.targetLocation=new Float32Array(3),this.rotation=0,this.angleOfAttack=0,this.distance=0,this.roll=0,this.fieldOfView=0,this.farClippingPlane=0,this.nearClippingPlane=0,this.cinematicName="",this.localPitch=0,this.localYaw=0,this.localRoll=0}load(e,t){e.readFloat32Array(this.targetLocation),this.rotation=e.readFloat32(),this.angleOfAttack=e.readFloat32(),this.distance=e.readFloat32(),this.roll=e.readFloat32(),this.fieldOfView=e.readFloat32(),this.farClippingPlane=e.readFloat32(),this.nearClippingPlane=e.readFloat32(),this.cinematicName=e.readNull(),t>131&&(this.localPitch=e.readFloat32(),this.localYaw=e.readFloat32(),this.localRoll=e.readFloat32())}save(e,t){e.writeFloat32Array(this.targetLocation),e.writeFloat32(this.rotation),e.writeFloat32(this.angleOfAttack),e.writeFloat32(this.distance),e.writeFloat32(this.roll),e.writeFloat32(this.fieldOfView),e.writeFloat32(this.farClippingPlane),e.writeFloat32(this.nearClippingPlane),e.writeNull(this.cinematicName),t>131&&(e.writeFloat32(this.localPitch),e.writeFloat32(this.localYaw),e.writeFloat32(this.localRoll))}getByteLength(e){let t=41+js(this.cinematicName);return e>131&&(t+=12),t}}const Pf={File:class{constructor(){this.version=0,this.cameras=[]}load(e,t){const n=new Al(e);this.version=n.readInt32();for(let e=0,a=n.readUint32();e<a;e++){const a=new Nf;a.load(n,t),this.cameras[e]=a}}save(e){const t=new Al(new ArrayBuffer(this.getByteLength(e)));t.writeInt32(this.version),t.writeUint32(this.cameras.length);for(const n of this.cameras)n.save(t,e);return t.uint8array}getByteLength(e){let t=8;for(const n of this.cameras)t+=n.getByteLength(e);return t}},Camera:Nf},kf={File:ef};class Of{constructor(){this.groundHeight=0,this.waterHeight=0,this.mapEdge=0,this.ramp=0,this.blight=0,this.water=0,this.boundary=0,this.groundTexture=0,this.cliffVariation=0,this.groundVariation=0,this.cliffTexture=0,this.layerHeight=0}load(e){this.groundHeight=(e.readInt16()-8192)/512;const t=e.readInt16();this.waterHeight=((16383&t)-8192)/512,this.mapEdge=16384&t;const n=e.readUint8();this.ramp=16&n,this.blight=32&n,this.water=64&n,this.boundary=128&n,this.groundTexture=15&n;const a=e.readUint8();this.cliffVariation=(224&a)>>>5,this.groundVariation=31&a;const r=e.readUint8();this.cliffTexture=(240&r)>>>4,this.layerHeight=15&r}save(e){e.writeInt16(512*this.groundHeight+8192),e.writeInt16(512*this.waterHeight+8192+this.mapEdge<<14),e.writeUint8(this.ramp<<4|this.blight<<5|this.water<<6|this.boundary<<7|this.groundTexture),e.writeUint8(this.cliffVariation<<5|this.groundVariation),e.writeUint8((this.cliffTexture<<4)+this.layerHeight)}}class Df{constructor(){this.version=0,this.tileset="A",this.haveCustomTileset=0,this.groundTilesets=[],this.cliffTilesets=[],this.mapSize=new Int32Array(2),this.centerOffset=new Float32Array(2),this.corners=[]}load(e){const t=new Al(e);if("W3E!"===t.readBinary(4)){this.version=t.readInt32(),this.tileset=t.readBinary(1),this.haveCustomTileset=t.readInt32();for(let e=0,n=t.readInt32();e<n;e++)this.groundTilesets[e]=t.readBinary(4);for(let e=0,n=t.readInt32();e<n;e++)this.cliffTilesets[e]=t.readBinary(4);t.readInt32Array(this.mapSize),t.readFloat32Array(this.centerOffset);for(let e=0,n=this.mapSize[1];e<n;e++){this.corners[e]=[];for(let n=0,a=this.mapSize[0];n<a;n++){const a=new Of;a.load(t),this.corners[e][n]=a}}}}save(){const e=new Al(new ArrayBuffer(this.getByteLength()));e.writeBinary("W3E!"),e.writeInt32(this.version),e.writeBinary(this.tileset),e.writeInt32(this.haveCustomTileset),e.writeUint32(this.groundTilesets.length);for(const t of this.groundTilesets)e.writeBinary(t);e.writeUint32(this.cliffTilesets.length);for(const t of this.cliffTilesets)e.writeBinary(t);e.writeInt32Array(this.mapSize),e.writeFloat32Array(this.centerOffset);for(const t of this.corners)for(const n of t)n.save(e);return e.uint8array}getByteLength(){return 37+4*this.groundTilesets.length+4*this.cliffTilesets.length+this.mapSize[0]*this.mapSize[1]*7}}const Ff={File:Df,Corner:Of},Gf={File:yf,Player:mf,Force:ff,UpgradeAvailabilityChange:Af,TechAvailabilityChange:vf,RandomUnitTable:wf,RandomUnit:bf,RandomItemTable:gf,RandomItemSet:_f,RandomItem:pf};const Vf={File:class{constructor(){this.version=0,this.units=null,this.items=null,this.destructables=null,this.doodads=null,this.abilities=null,this.buffs=null,this.upgrades=null}load(e){const t=new Al(e);this.version=t.readInt32(),t.readInt32()&&(this.units=new tf,this.units.load(t)),t.readInt32()&&(this.items=new tf,this.items.load(t)),t.readInt32()&&(this.destructables=new tf,this.destructables.load(t)),t.readInt32()&&(this.doodads=new ef,this.doodads.load(t)),t.readInt32()&&(this.abilities=new ef,this.abilities.load(t)),t.readInt32()&&(this.buffs=new tf,this.buffs.load(t)),t.readInt32()&&(this.upgrades=new ef,this.upgrades.load(t))}save(){const e=new Al(new ArrayBuffer(this.getByteLength()));return e.writeInt32(this.version),this.units?(e.writeInt32(1),e.writeUint8Array(this.units.save())):e.writeInt32(0),this.items?(e.writeInt32(1),e.writeUint8Array(this.items.save())):e.writeInt32(0),this.destructables?(e.writeInt32(1),e.writeUint8Array(this.destructables.save())):e.writeInt32(0),this.doodads?(e.writeInt32(1),e.writeUint8Array(this.doodads.save())):e.writeInt32(0),this.abilities?(e.writeInt32(1),e.writeUint8Array(this.abilities.save())):e.writeInt32(0),this.buffs?(e.writeInt32(1),e.writeUint8Array(this.buffs.save())):e.writeInt32(0),this.upgrades?(e.writeInt32(1),e.writeUint8Array(this.upgrades.save())):e.writeInt32(0),e.uint8array}getByteLength(){let e=32;return this.units&&(e+=this.units.getByteLength()),this.items&&(e+=this.items.getByteLength()),this.destructables&&(e+=this.destructables.getByteLength()),this.doodads&&(e+=this.doodads.getByteLength()),this.abilities&&(e+=this.abilities.getByteLength()),this.buffs&&(e+=this.buffs.getByteLength()),this.upgrades&&(e+=this.upgrades.getByteLength()),e}}};class Kf{constructor(){this.left=0,this.right=0,this.bottom=0,this.top=0,this.name="",this.creationNumber=0,this.weatherEffectId="\0\0\0\0",this.ambientSound="",this.color=new Uint8Array(4)}load(e){this.left=e.readFloat32(),this.right=e.readFloat32(),this.bottom=e.readFloat32(),this.top=e.readFloat32(),this.name=e.readNull(),this.creationNumber=e.readUint32(),this.weatherEffectId=e.readBinary(4),this.ambientSound=e.readNull(),e.readUint8Array(this.color)}save(e){e.writeFloat32(this.left),e.writeFloat32(this.right),e.writeFloat32(this.bottom),e.writeFloat32(this.top),e.writeNull(this.name),e.writeUint32(this.creationNumber),this.weatherEffectId?e.writeBinary(this.weatherEffectId):e.writeUint32(0),e.writeNull(this.ambientSound),e.writeUint8Array(this.color)}getByteLength(){return 30+js(this.name)+js(this.ambientSound)}}const Hf={File:class{constructor(){this.version=0,this.regions=[]}load(e){const t=new Al(e);this.version=t.readInt32();for(let e=0,n=t.readUint32();e<n;e++){const n=new Kf;n.load(t),this.regions[e]=n}}save(){const e=new Al(new ArrayBuffer(this.getByteLength()));e.writeInt32(this.version),e.writeUint32(this.regions.length);for(const t of this.regions)t.save(e);return e.uint8array}getByteLength(){let e=8;for(const t of this.regions)e+=t.getByteLength();return e}},Region:Kf};class zf{constructor(){this.name="",this.file="",this.eaxEffect="",this.flags=0,this.fadeInRate=0,this.fadeOutRate=0,this.volume=0,this.pitch=0,this.pitchVariance=0,this.priority=0,this.channel=0,this.minDistance=0,this.maxDistance=0,this.distanceCutoff=0,this.coneInside=0,this.coneOutside=0,this.coneOutsideVolume=0,this.coneOrientationX=0,this.coneOrientationY=0,this.coneOrientationZ=0}load(e,t){this.name=e.readNull(),this.file=e.readNull(),this.eaxEffect=e.readNull(),this.flags=e.readUint32(),this.fadeInRate=e.readInt32(),this.fadeOutRate=e.readInt32(),this.volume=e.readInt32(),this.pitch=e.readFloat32(),this.pitchVariance=e.readFloat32(),this.priority=e.readInt32(),this.channel=e.readInt32(),this.minDistance=e.readFloat32(),this.maxDistance=e.readFloat32(),this.distanceCutoff=e.readFloat32(),this.coneInside=e.readFloat32(),this.coneOutside=e.readFloat32(),this.coneOutsideVolume=e.readInt32(),this.coneOrientationX=e.readFloat32(),this.coneOrientationY=e.readFloat32(),this.coneOrientationZ=e.readFloat32()}save(e,t){e.writeNull(this.name),e.writeNull(this.file),e.writeNull(this.eaxEffect),e.writeUint32(this.flags),e.writeUint32(this.fadeInRate),e.writeUint32(this.fadeOutRate),e.writeUint32(this.volume),e.writeFloat32(this.pitch),e.writeFloat32(this.pitchVariance),e.writeInt32(this.priority),e.writeInt32(this.channel),e.writeFloat32(this.minDistance),e.writeFloat32(this.maxDistance),e.writeFloat32(this.distanceCutoff),e.writeFloat32(this.coneInside),e.writeFloat32(this.coneOutside),e.writeInt32(this.coneOutsideVolume),e.writeFloat32(this.coneOrientationX),e.writeFloat32(this.coneOrientationY),e.writeFloat32(this.coneOrientationZ)}getByteLength(e){return 71+js(this.name)+js(this.file)+js(this.eaxEffect)}}class jf{constructor(){this.version=0,this.sounds=[]}load(e){const t=new Al(e);this.version=t.readInt32();for(let e=0,n=t.readUint32();e<n;e++){const n=new zf;n.load(t,this.version),this.sounds[e]=n}}save(){const e=new Al(new ArrayBuffer(this.getByteLength()));e.writeInt32(this.version),e.writeUint32(this.sounds.length);for(const t of this.sounds)t.save(e,this.version);return e.uint8array}getByteLength(){let e=8;for(const t of this.sounds)e+=t.getByteLength(this.version);return e}}const Xf={File:jf,Sound:zf},$f={File:tf,ModificationTable:Qh,ModificationObject:Zh,Modification:Yh},Jf={File:af,CustomTextTrigger:nf};const Wf={File:class{constructor(){this.version=0,this.size=new Int32Array(2),this.pathing=new Uint8Array(0)}load(e){const t=new Al(e);"MP3W"===t.readBinary(4)&&(this.version=t.readInt32(),t.readInt32Array(this.size),this.pathing=t.readUint8Array(this.size[0]*this.size[1]))}save(){const e=new Al(new ArrayBuffer(this.getByteLength()));return e.writeBinary("MP3W"),e.writeInt32(this.version),e.writeInt32Array(this.size),e.writeUint8Array(this.pathing),e.uint8array}getByteLength(){return 16+this.size[0]*this.size[1]}}};class qf{constructor(e){this.buffer=e,this.index=0}read(){const e=this.buffer,t=e.length;let n=!1,a=!1,r=!1,i="";for(;this.index<t;){const s=e[this.index++];if(n)"\n"===s&&(n=!1,this.index--);else if(a){if(i+="\\"===s?s+e[this.index++]:"\n"===s?"\\n":"\r"===s?"\\r":s,'"'===s)return i}else if(r){if(i+=s,"'"===s)return i}else if(" "===s||"\t"===s){if(i.length)return i}else if("("===s||")"===s||"["===s||"]"===s||"="===s||"\r"===s||"\n"===s||","===s||"!"===s||"-"===s||"<"===s||">"===s||"+"===s||"*"===s||"/"===s){if(i.length)return this.index--,i;{const t=e[this.index];if("="===s&&"="===t)return this.index++,"==";if("\r"===s)return"\n"===t&&this.index++,"\n";if("!"===s&&"="===t)return this.index++,"!=";if("/"!==s||"/"!==t)return s;if(i.length)return this.index--,i;n=!0}}else if('"'===s){if(i.length)return this.index--,i;i+=s,a=!0}else if("'"===s){if(i.length)return this.index--,i;i+=s,r=!0}else i+=s;if(this.index===t)return i}}peek(){const e=this.index,t=this.read();return this.index=e,t}readSafe(){const e=this.read();if(void 0===e)throw new Error("Premature end of stream reached");return"null"===e?"nil":"!="===e?"~=":"'"===e[0]?`${function(e){let t=0;for(const n of e)t=256*t+n.charCodeAt(0);return t}(e.slice(1,e.indexOf("'",1)))}`:"break"===e||"do"===e||"end"===e||"for"===e||"goto"===e||"in"===e||"nil"===e||"repeat"===e||"until"===e||"while"===e?e+"_":"and"===e||"or"===e?" "+e+" ":"$"===e[0]?"0x"+e.slice(1):e}readUntil(e){let t,n="";for(;(t=this.readSafe())!==e;)n+=t;return n}}const Yf={File:df,TriggerCategory:rf,Variable:sf,Trigger:cf,ECA:uf,Parameter:of,SubParameters:lf,TriggerData:class{constructor(){this.types={},this.functions=[{},{},{},{}],this.presets={},this.externalTypes={},this.externalFunctions=[{},{},{},{}],this.externalPresets={}}addTriggerData(e,t){let n=this.types,a=this.functions,r=this.presets;t&&(n=this.externalTypes,a=this.externalFunctions,r=this.externalPresets);const i=new Cl;i.load(e);let s=i.getSection("TriggerTypes");s&&this.addTriggerTypes(n,s),s=i.getSection("TriggerEvents"),s&&this.addTriggerDataFunctions(a[0],s,1),s=i.getSection("TriggerConditions"),s&&this.addTriggerDataFunctions(a[1],s,1),s=i.getSection("TriggerActions"),s&&this.addTriggerDataFunctions(a[2],s,1),s=i.getSection("TriggerCalls"),s&&this.addTriggerDataFunctions(a[3],s,3),s=i.getSection("TriggerParams"),s&&this.addTriggerDataPresets(r,s)}addTriggerTypes(e,t){for(const[n,a]of t){const t=a.split(",");e[n.toLowerCase()]=t[4]||""}}addTriggerDataFunctions(e,t,n){for(const[a,r]of t)if("_"!==a[0]){const i=r.split(","),s=[],l=t.get(`_${a}_scriptname`)||null;let o=null;3===n&&(o=i[2]);for(let e=n,t=i.length;e<t;e++){const t=i[e];Number.isNaN(parseFloat(t))&&"nothing"!==t&&""!==t&&s.push(t)}e[a.toLowerCase()]={args:s,scriptName:l,returnType:o}}}addTriggerDataPresets(e,t){for(const[n,a]of t){const t=a.split(",");e[n.toLowerCase()]=t[2].replace(/"/g,"").replace(/`/g,'"')}}addJassFunctions(e){const t=new qf(e);let n;for(;void 0!==(n=t.read());)if("native"===n||"function"===n){const e=t.read();if(e&&(n=t.read(),"takes"===n)){const n=[],a=t.readSafe();if("nothing"!==a)for(n.push(a),t.readSafe();","===t.read();)n.push(t.readSafe()),t.readSafe();else t.read();let r=t.readSafe();"nothing"===r&&(r=null);const i=e.toLowerCase(),s={args:n,scriptName:e,returnType:r};this.externalFunctions[2][i]=s,"nothing"!==r&&(this.externalFunctions[3][i]=s)}}}getBaseType(e){e=e.toLowerCase();let t=this.types[e];return void 0===t&&(t=this.externalTypes[e]),""===t||void 0===t?e:t}isBaseFunction(e,t){return t=t.toLowerCase(),!!this.functions[e][t]}getFunction(e,t){t=t.toLowerCase();let n=this.functions[e][t];return n||(n=this.externalFunctions[e][t]),n}getFunctionType(e){e=e.toLowerCase();const t=this.functions;for(let n=0;n<4;n++)if(t[n][e])return n;return-1}getPreset(e){e=e.toLowerCase();let t=this.presets[e];return void 0===t&&(t=this.externalPresets[e]),t}isCustomPreset(e){if(e=e.toLowerCase(),void 0!==this.presets[e])return!1;if(void 0!==this.externalPresets[e])return!0;throw new Error(`Failed to find a preset: ${e}`)}}},Zf={File:hf};class Qf{constructor(){this.id="\0\0\0\0",this.chance=0}load(e){this.id=e.readBinary(4),this.chance=e.readInt32()}save(e){e.writeBinary(this.id),e.writeInt32(this.chance)}}class em{constructor(){this.items=[]}load(e){for(let t=0,n=e.readInt32();t<n;t++){const n=new Qf;n.load(e),this.items[t]=n}}save(e){e.writeInt32(this.items.length);for(const t of this.items)t.save(e)}getByteLength(){return 4+8*this.items.length}}class tm{constructor(){this.slot=0,this.id="\0\0\0\0"}load(e){this.slot=e.readInt32(),this.id=e.readBinary(4)}save(e){e.writeInt32(this.slot),e.writeBinary(this.id)}}class nm{constructor(){this.id="\0\0\0\0",this.activeForAutocast=0,this.heroLevel=1}load(e){this.id=e.readBinary(4),this.activeForAutocast=e.readInt32(),this.heroLevel=e.readInt32()}save(e){e.writeBinary(this.id),e.writeInt32(this.activeForAutocast),e.writeInt32(this.heroLevel)}}class am{constructor(){this.id="\0\0\0\0",this.chance=0}load(e){this.id=e.readBinary(4),this.chance=e.readInt32()}save(e){e.writeBinary(this.id),e.writeInt32(this.chance)}}class rm{constructor(){this.id="\0\0\0\0",this.variation=0,this.location=new Float32Array(3),this.angle=0,this.scale=new Float32Array([1,1,1]),this.skin="\0\0\0\0",this.flags=0,this.player=0,this.unknown=0,this.hitpoints=-1,this.mana=-1,this.droppedItemTable=0,this.droppedItemSets=[],this.goldAmount=0,this.targetAcquisition=0,this.heroLevel=0,this.heroStrength=0,this.heroAgility=0,this.heroIntelligence=0,this.itemsInInventory=[],this.modifiedAbilities=[],this.randomFlag=0,this.level=new Uint8Array(3),this.itemClass=0,this.unitGroup=0,this.positionInGroup=0,this.randomUnitTables=[],this.customTeamColor=0,this.waygate=0,this.creationNumber=0}load(e,t,n,a){this.id=e.readBinary(4),this.variation=e.readInt32(),e.readFloat32Array(this.location),this.angle=e.readFloat32(),e.readFloat32Array(this.scale),a>131&&(this.skin=e.readBinary(4)),this.flags=e.readUint8(),this.player=e.readInt32(),this.unknown=e.readUint16(),this.hitpoints=e.readInt32(),this.mana=e.readInt32(),n>10&&(this.droppedItemTable=e.readInt32());for(let t=0,n=e.readInt32();t<n;t++){const n=new em;n.load(e),this.droppedItemSets[t]=n}this.goldAmount=e.readInt32(),this.targetAcquisition=e.readFloat32(),this.heroLevel=e.readInt32(),n>10&&(this.heroStrength=e.readInt32(),this.heroAgility=e.readInt32(),this.heroIntelligence=e.readInt32());for(let t=0,n=e.readInt32();t<n;t++){const n=new tm;n.load(e),this.itemsInInventory[t]=n}for(let t=0,n=e.readInt32();t<n;t++){const n=new nm;n.load(e),this.modifiedAbilities[t]=n}if(this.randomFlag=e.readInt32(),0===this.randomFlag)e.readUint8Array(this.level),this.itemClass=e.readUint8();else if(1===this.randomFlag)this.unitGroup=e.readUint32(),this.positionInGroup=e.readUint32();else if(2===this.randomFlag)for(let t=0,n=e.readInt32();t<n;t++){const n=new am;n.load(e),this.randomUnitTables[t]=n}this.customTeamColor=e.readInt32(),this.waygate=e.readInt32(),this.creationNumber=e.readInt32()}save(e,t,n,a){e.writeBinary(this.id),e.writeInt32(this.variation),e.writeFloat32Array(this.location),e.writeFloat32(this.angle),e.writeFloat32Array(this.scale),a>131&&e.writeBinary(this.skin),e.writeUint8(this.flags),e.writeInt32(this.player),e.writeUint16(this.unknown),e.writeInt32(this.hitpoints),e.writeInt32(this.mana),n>10&&e.writeInt32(this.droppedItemTable),e.writeInt32(this.droppedItemSets.length);for(const t of this.droppedItemSets)t.save(e);e.writeInt32(this.goldAmount),e.writeFloat32(this.targetAcquisition),e.writeInt32(this.heroLevel),n>10&&(e.writeInt32(this.heroStrength),e.writeInt32(this.heroAgility),e.writeInt32(this.heroIntelligence)),e.writeInt32(this.itemsInInventory.length);for(const t of this.itemsInInventory)t.save(e);e.writeInt32(this.modifiedAbilities.length);for(const t of this.modifiedAbilities)t.save(e);if(e.writeInt32(this.randomFlag),0===this.randomFlag)e.writeUint8Array(this.level),e.writeUint8(this.itemClass);else if(1===this.randomFlag)e.writeUint32(this.unitGroup),e.writeUint32(this.positionInGroup);else if(2===this.randomFlag){e.writeInt32(this.randomUnitTables.length);for(const t of this.randomUnitTables)t.save(e)}e.writeInt32(this.customTeamColor),e.writeInt32(this.waygate),e.writeInt32(this.creationNumber)}getByteLength(e,t,n){let a=91;n>131&&(a+=4),t>10&&(a+=16);for(const e of this.droppedItemSets)a+=e.getByteLength();return a+=8*this.itemsInInventory.length,a+=12*this.modifiedAbilities.length,0===this.randomFlag?a+=4:1===this.randomFlag?a+=8:2===this.randomFlag&&(a+=4+8*this.randomUnitTables.length),a}}class im{constructor(){this.version=8,this.subversion=11,this.units=[]}load(e,t){const n=new Al(e);if("W3do"!==n.readBinary(4))throw new Error("Not a valid war3mapUnits.doo buffer");this.version=n.readInt32(),this.subversion=n.readUint32();for(let e=0,a=n.readInt32();e<a;e++){const a=new rm;a.load(n,this.version,this.subversion,t),this.units[e]=a}}save(e){const t=new Al(new ArrayBuffer(this.getByteLength(e)));t.writeBinary("W3do"),t.writeInt32(this.version),t.writeUint32(this.subversion),t.writeInt32(this.units.length);for(const n of this.units)n.save(t,this.version,this.subversion,e);return t.uint8array}getByteLength(e){let t=16;for(const n of this.units)t+=n.getByteLength(this.version,this.subversion,e);return t}}const sm={File:im,Unit:rm,DroppedItemSet:em,DroppedItem:Qf,InventoryItem:tm,ModifiedAbility:nm,RandomUnit:am};class lm{constructor(){this.visible=0,this.chapterTitle="",this.mapTitle="",this.path=""}load(e){this.visible=e.readInt32(),this.chapterTitle=e.readNull(),this.mapTitle=e.readNull(),this.path=e.readNull()}save(e){e.writeInt32(this.visible),e.writeNull(this.chapterTitle),e.writeNull(this.mapTitle),e.writeNull(this.path)}getByteLength(){return 7+js(this.chapterTitle)+js(this.mapTitle)+js(this.path)}}class om{constructor(){this.u1=0,this.path=""}load(e){this.u1=e.readInt8(),this.path=e.readNull()}save(e){e.writeInt8(this.u1),e.writeNull(this.path)}getByteLength(){return 2+js(this.path)}}const um={File:class{constructor(){this.version=0,this.campaignVersion=0,this.editorVersion=0,this.name="",this.difficulty="",this.author="",this.description="",this.mode=-1,this.backgroundScreen=-1,this.backgroundScreenPath="",this.minimapImagePath="",this.ambientSound=0,this.ambientSoundPath="",this.terrainFog=0,this.fogStartZ=0,this.fogEndZ=0,this.fogDensity=0,this.fogColor=new Uint8Array(4),this.userInterface=-1,this.mapTitles=[],this.mapOrders=[]}load(e){const t=new Al(e);this.version=t.readInt32(),this.campaignVersion=t.readInt32(),this.editorVersion=t.readInt32(),this.name=t.readNull(),this.difficulty=t.readNull(),this.author=t.readNull(),this.description=t.readNull(),this.mode=t.readInt32(),this.backgroundScreen=t.readInt32(),this.backgroundScreenPath=t.readNull(),this.minimapImagePath=t.readNull(),this.ambientSound=t.readInt32(),this.ambientSoundPath=t.readNull(),this.terrainFog=t.readInt32(),this.fogStartZ=t.readFloat32(),this.fogEndZ=t.readFloat32(),this.fogDensity=t.readFloat32(),t.readUint8Array(this.fogColor),this.userInterface=t.readInt32();for(let e=0,n=t.readUint32();e<n;e++){const n=new lm;n.load(t),this.mapTitles[e]=n}for(let e=0,n=t.readUint32();e<n;e++){const n=new om;n.load(t),this.mapOrders[e]=n}}save(){const e=new Al(new ArrayBuffer(this.getByteLength()));e.writeInt32(this.version),e.writeInt32(this.campaignVersion),e.writeInt32(this.editorVersion),e.writeNull(this.name),e.writeNull(this.difficulty),e.writeNull(this.author),e.writeNull(this.description),e.writeInt32(this.mode),e.writeInt32(this.backgroundScreen),e.writeNull(this.backgroundScreenPath),e.writeNull(this.minimapImagePath),e.writeInt32(this.ambientSound),e.writeNull(this.ambientSoundPath),e.writeInt32(this.terrainFog),e.writeFloat32(this.fogStartZ),e.writeFloat32(this.fogEndZ),e.writeFloat32(this.fogDensity),e.writeUint8Array(this.fogColor),e.writeInt32(this.userInterface),e.writeUint32(this.mapTitles.length);for(const t of this.mapTitles)t.save(e);e.writeUint32(this.mapOrders.length);for(const t of this.mapOrders)t.save(e);return e.uint8array}getByteLength(){let e=63+js(this.name)+js(this.difficulty)+js(this.author)+js(this.description)+js(this.backgroundScreenPath)+js(this.minimapImagePath)+js(this.ambientSoundPath);for(const t of this.mapTitles)e+=t.getByteLength();for(const t of this.mapOrders)e+=t.getByteLength();return e}},MapTitle:lm,MapOrder:om},cm={Map:Sf,doo:Uf,imp:Rf,mmp:Mf,shd:Bf,w3c:Pf,w3d:kf,w3e:Ff,w3i:Gf,w3o:Vf,w3r:Hf,w3s:Xf,w3u:$f,wct:Jf,wpm:Wf,wtg:Yf,wts:Zf,unitsdoo:sm,w3f:um};function dm(e,t){return((1<<t)-1)/((1<<e)-1)}const hm="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},fm=function(){function e(e){this.message="JPEG error: "+e}return e.prototype=new Error,e.prototype.name="JpegError",e.constructor=e,e}(),mm=new Uint8Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),pm=4017,_m=799,gm=3406,bm=2276,wm=1567,vm=3784,Am=5793,ym=2896;function Sm(e,t){let n,a,r=0,i=[],s=16;for(;s>0&&!e[s-1];)s--;i.push({children:[],index:0});let l,o=i[0];for(n=0;n<s;n++){for(a=0;a<e[n];a++){for(o=i.pop(),o.children[o.index]=t[r];o.index>0;)o=i.pop();for(o.index++,i.push(o);i.length<=n;)i.push(l={children:[],index:0}),o.children[o.index]=l.children,o=l;r++}n+1<s&&(i.push(l={children:[],index:0}),o.children[o.index]=l.children,o=l)}return i[0].children}function Tm(e,t,n){return 64*((e.blocksPerLine+1)*t+n)}function xm(e,t,n,a,r,i,s,l,o){const u=n.mcusPerLine,c=n.progressive;let d=t,h=0,f=0;function m(){if(f>0)return f--,h>>f&1;if(h=e[t++],255===h){const n=e[t++];if(n)throw new fm("unexpected marker "+(h<<8|n).toString(16))}return f=7,h>>>7}function p(e){let t=e;for(;;){if(t=t[m()],"number"==typeof t)return t;if("object"!==(void 0===t?"undefined":hm(t)))throw new fm("invalid huffman sequence")}}function _(e){let t=0;for(;e>0;)t=t<<1|m(),e--;return t}function g(e){if(1===e)return 1===m()?1:-1;const t=_(e);return t>=1<<e-1?t:t+(-1<<e)+1}let b=0;let w,v=0;function A(e,t,n,a,r){const i=n%u;t(e,Tm(e,(n/u|0)*e.v+a,i*e.h+r))}function y(e,t,n){t(e,Tm(e,n/e.blocksPerLine|0,n%e.blocksPerLine))}const S=a.length;let T,x,E,L,I,U;U=c?0===i?0===l?function(e,t){const n=p(e.huffmanTableDC),a=0===n?0:g(n)<<o;e.blockData[t]=e.pred+=a}:function(e,t){e.blockData[t]|=m()<<o}:0===l?function(e,t){if(b>0)return void b--;let n=i,a=s;for(;n<=a;){const a=p(e.huffmanTableAC),r=15&a,i=a>>4;if(0===r){if(i<15){b=_(i)+(1<<i)-1;break}n+=16;continue}n+=i;const s=mm[n];e.blockData[t+s]=g(r)*(1<<o),n++}}:function(e,t){let n=i;const a=s;let r,l,u=0;for(;n<=a;){const a=mm[n];switch(v){case 0:if(l=p(e.huffmanTableAC),r=15&l,u=l>>4,0===r)u<15?(b=_(u)+(1<<u),v=4):(u=16,v=1);else{if(1!==r)throw new fm("invalid ACn encoding");w=g(r),v=u?2:3}continue;case 1:case 2:e.blockData[t+a]?e.blockData[t+a]+=m()<<o:(u--,0===u&&(v=2===v?3:0));break;case 3:e.blockData[t+a]?e.blockData[t+a]+=m()<<o:(e.blockData[t+a]=w<<o,v=0);break;case 4:e.blockData[t+a]&&(e.blockData[t+a]+=m()<<o)}n++}4===v&&(b--,0===b&&(v=0))}:function(e,t){const n=p(e.huffmanTableDC),a=0===n?0:g(n);e.blockData[t]=e.pred+=a;let r=1;for(;r<64;){const n=p(e.huffmanTableAC),a=15&n,i=n>>4;if(0===a){if(i<15)break;r+=16;continue}r+=i;const s=mm[r];e.blockData[t+s]=g(a),r++}};let R,C,M,B,N=0;for(C=1===S?a[0].blocksPerLine*a[0].blocksPerColumn:u*n.mcusPerColumn;N<C;){const n=r?Math.min(C-N,r):C;for(x=0;x<S;x++)a[x].pred=0;if(b=0,1===S)for(T=a[0],I=0;I<n;I++)y(T,U,N),N++;else for(I=0;I<n;I++){for(x=0;x<S;x++)for(T=a[x],M=T.h,B=T.v,E=0;E<B;E++)for(L=0;L<M;L++)A(T,U,N,E,L);N++}f=0,R=Im(e,t),R&&R.invalid&&(t=R.offset);const i=R&&R.marker;if(!i||i<=65280)throw new fm("marker was not found");if(!(i>=65488&&i<=65495))break;t+=2}return R=Im(e,t),R&&R.invalid&&(t=R.offset),t-d}function Em(e,t,n){const a=e.quantizationTable,r=e.blockData;let i,s,l,o,u,c,d,h,f,m,p,_,g,b,w,v,A;if(!a)throw new fm("missing required Quantization Table.");for(let e=0;e<64;e+=8)f=r[t+e],m=r[t+e+1],p=r[t+e+2],_=r[t+e+3],g=r[t+e+4],b=r[t+e+5],w=r[t+e+6],v=r[t+e+7],f*=a[e],0!==(m|p|_|g|b|w|v)?(m*=a[e+1],p*=a[e+2],_*=a[e+3],g*=a[e+4],b*=a[e+5],w*=a[e+6],v*=a[e+7],i=Am*f+128>>8,s=Am*g+128>>8,l=p,o=w,u=ym*(m-v)+128>>8,h=ym*(m+v)+128>>8,c=_<<4,d=b<<4,i=i+s+1>>1,s=i-s,A=l*vm+o*wm+128>>8,l=l*wm-o*vm+128>>8,o=A,u=u+d+1>>1,d=u-d,h=h+c+1>>1,c=h-c,i=i+o+1>>1,o=i-o,s=s+l+1>>1,l=s-l,A=u*bm+h*gm+2048>>12,u=u*gm-h*bm+2048>>12,h=A,A=c*_m+d*pm+2048>>12,c=c*pm-d*_m+2048>>12,d=A,n[e]=i+h,n[e+7]=i-h,n[e+1]=s+d,n[e+6]=s-d,n[e+2]=l+c,n[e+5]=l-c,n[e+3]=o+u,n[e+4]=o-u):(A=Am*f+512>>10,n[e]=A,n[e+1]=A,n[e+2]=A,n[e+3]=A,n[e+4]=A,n[e+5]=A,n[e+6]=A,n[e+7]=A);for(let e=0;e<8;++e)f=n[e],m=n[e+8],p=n[e+16],_=n[e+24],g=n[e+32],b=n[e+40],w=n[e+48],v=n[e+56],0!==(m|p|_|g|b|w|v)?(i=Am*f+2048>>12,s=Am*g+2048>>12,l=p,o=w,u=ym*(m-v)+2048>>12,h=ym*(m+v)+2048>>12,c=_,d=b,i=4112+(i+s+1>>1),s=i-s,A=l*vm+o*wm+2048>>12,l=l*wm-o*vm+2048>>12,o=A,u=u+d+1>>1,d=u-d,h=h+c+1>>1,c=h-c,i=i+o+1>>1,o=i-o,s=s+l+1>>1,l=s-l,A=u*bm+h*gm+2048>>12,u=u*gm-h*bm+2048>>12,h=A,A=c*_m+d*pm+2048>>12,c=c*pm-d*_m+2048>>12,d=A,f=i+h,v=i-h,m=s+d,w=s-d,p=l+c,b=l-c,_=o+u,g=o-u,f=f<16?0:f>=4080?255:f>>4,m=m<16?0:m>=4080?255:m>>4,p=p<16?0:p>=4080?255:p>>4,_=_<16?0:_>=4080?255:_>>4,g=g<16?0:g>=4080?255:g>>4,b=b<16?0:b>=4080?255:b>>4,w=w<16?0:w>=4080?255:w>>4,v=v<16?0:v>=4080?255:v>>4,r[t+e]=f,r[t+e+8]=m,r[t+e+16]=p,r[t+e+24]=_,r[t+e+32]=g,r[t+e+40]=b,r[t+e+48]=w,r[t+e+56]=v):(A=Am*f+8192>>14,A=A<-2040?0:A>=2024?255:A+2056>>4,r[t+e]=A,r[t+e+8]=A,r[t+e+16]=A,r[t+e+24]=A,r[t+e+32]=A,r[t+e+40]=A,r[t+e+48]=A,r[t+e+56]=A)}function Lm(e,t){const n=t.blocksPerLine,a=t.blocksPerColumn,r=new Int16Array(64);for(let e=0;e<a;e++)for(let a=0;a<n;a++){Em(t,Tm(t,e,a),r)}return t.blockData}function Im(e,t,n){function a(t){return e[t]<<8|e[t+1]}const r=e.length-1;let i=n<t?n:t;if(t>=r)return null;const s=a(t);if(s>=65472&&s<=65534)return{invalid:null,marker:s,offset:t};let l=a(i);for(;!(l>=65472&&l<=65534);){if(++i>=r)return null;l=a(i)}return{invalid:s.toString(16),marker:l,offset:i}}class Um{constructor(){this.decodeTransform=null,this.colorTransform=-1,this.width=0,this.height=0}parse(e){function t(){const t=e[r]<<8|e[r+1];return r+=2,t}function n(){const n=t();let a=r+n-2;const i=Im(e,a,r);i&&i.invalid&&(a=i.offset);const s=e.subarray(r,a);return r+=s.length,s}function a(e){const t=Math.ceil(e.samplesPerLine/8/e.maxH),n=Math.ceil(e.scanLines/8/e.maxV);for(let a=0;a<e.components.length;a++){S=e.components[a];const r=Math.ceil(Math.ceil(e.samplesPerLine/8)*S.h/e.maxH),i=Math.ceil(Math.ceil(e.scanLines/8)*S.v/e.maxV),s=t*S.h,l=64*(n*S.v)*(s+1);S.blockData=new Int16Array(l),S.blocksPerLine=r,S.blocksPerColumn=i}e.mcusPerLine=t,e.mcusPerColumn=n}var r=0;let i,s,l=null,o=null;const u=[],c=[],d=[];let h=t();if(65496!==h)throw new fm("SOI not found");for(h=t();65497!==h;){var f,m,p;switch(h){case 65504:case 65505:case 65506:case 65507:case 65508:case 65509:case 65510:case 65511:case 65512:case 65513:case 65514:case 65515:case 65516:case 65517:case 65518:case 65519:case 65534:var _=n();65504===h&&74===_[0]&&70===_[1]&&73===_[2]&&70===_[3]&&0===_[4]&&(l={version:{major:_[5],minor:_[6]},densityUnits:_[7],xDensity:_[8]<<8|_[9],yDensity:_[10]<<8|_[11],thumbWidth:_[12],thumbHeight:_[13],thumbData:_.subarray(14,14+3*_[12]*_[13])}),65518===h&&65===_[0]&&100===_[1]&&111===_[2]&&98===_[3]&&101===_[4]&&(o={version:_[5]<<8|_[6],flags0:_[7]<<8|_[8],flags1:_[9]<<8|_[10],transformCode:_[11]});break;case 65499:for(var g=t()+r-2;r<g;){const n=e[r++],a=new Uint16Array(64);if(n>>4){if(n>>4!=1)throw new fm("DQT - invalid table spec");for(m=0;m<64;m++)a[mm[m]]=t()}else for(m=0;m<64;m++)a[mm[m]]=e[r++];u[15&n]=a}break;case 65472:case 65473:case 65474:if(i)throw new fm("Only single frame JPEGs supported");t(),i={},i.extended=65473===h,i.progressive=65474===h,i.precision=e[r++],i.scanLines=t(),i.samplesPerLine=t(),i.components=[],i.componentIds={};var b,w=e[r++],v=0,A=0;for(f=0;f<w;f++){b=e[r];const t=e[r+1]>>4,n=15&e[r+1];v<t&&(v=t),A<n&&(A=n);const a=e[r+2];p=i.components.push({h:t,v:n,quantizationId:a,quantizationTable:null}),i.componentIds[b]=p-1,r+=3}i.maxH=v,i.maxV=A,a(i);break;case 65476:var y=t();for(f=2;f<y;){const t=e[r++],n=new Uint8Array(16);let a=0;for(m=0;m<16;m++,r++)a+=n[m]=e[r];const i=new Uint8Array(a);for(m=0;m<a;m++,r++)i[m]=e[r];f+=17+a,(t>>4?c:d)[15&t]=Sm(n,i)}break;case 65501:t(),s=t();break;case 65498:t();var S,T=e[r++],x=[];for(f=0;f<T;f++){const t=i.componentIds[e[r++]];S=i.components[t];const n=e[r++];S.huffmanTableDC=d[n>>4],S.huffmanTableAC=c[15&n],x.push(S)}var E=e[r++],L=e[r++],I=e[r++],U=xm(e,r,i,x,s,E,L,I>>4,15&I);r+=U;break;case 65535:255!==e[r]&&r--;break;default:if(255===e[r-3]&&e[r-2]>=192&&e[r-2]<=254){r-=3;break}throw new fm("unknown marker "+h.toString(16))}h=t()}for(this.width=i.samplesPerLine,this.height=i.scanLines,this.jfif=l,this.adobe=o,this.components=[],f=0;f<i.components.length;f++){const e=u[(S=i.components[f]).quantizationId];e&&(S.quantizationTable=e),this.components.push({output:Lm(0,S),scaleX:S.h/i.maxH,scaleY:S.v/i.maxV,blocksPerLine:S.blocksPerLine,blocksPerColumn:S.blocksPerColumn})}this.numComponents=this.components.length}getData(e){const t=e.data,n=this.components,a=new Uint8Array((n[0].blocksPerLine<<3)*n[0].blocksPerColumn*8);[n[0],n[2]]=[n[2],n[0]];for(let e=0,l=n.length;e<l;e++){const o=n[e],u=o.blocksPerLine,c=o.blocksPerColumn,d=u<<3;var r,i,s=0;for(let e=0;e<c;e++){const t=e<<3;for(let n=0;n<u;n++){const l=Tm(o,e,n);let u=0,c=n<<3;for(r=0;r<8;r++){s=(t+r)*d;for(i=0;i<8;i++)a[s+c+i]=o.output[l+u++]}}}let h=e;for(let e=0;e<this.height;e++)for(let n=0;n<this.width;n++)t[h]=a[e*d+n],h+=l}return t}}class Rm{constructor(){this.content=0,this.alphaBits=0,this.width=0,this.height=0,this.type=0,this.hasMipmaps=!1,this.mipmapOffsets=new Uint32Array(16),this.mipmapSizes=new Uint32Array(16),this.uint8array=null,this.jpgHeader=null,this.pallete=null}load(e){const t=$s(e),n=new Int32Array(t.buffer,0,40);if(827345986!==n[0])throw new Error("WrongMagicNumber");this.content=n[1],this.alphaBits=n[2],this.width=n[3],this.height=n[4],this.type=n[5],this.hasMipmaps=0!==n[6];for(let e=0;e<16;e++)this.mipmapOffsets[e]=n[7+e],this.mipmapSizes[e]=n[23+e];this.uint8array=t,0===this.content?this.jpgHeader=t.subarray(160,160+n[39]):this.pallete=t.subarray(156,1180)}getMipmap(e){const t=this.uint8array,n=this.mipmapOffsets[e],a=this.mipmapSizes[e];let r;if(0===this.content){const e=this.jpgHeader,i=new Uint8Array(e.length+a),s=new Um;i.set(e),i.set(t.subarray(n,n+a),e.length),s.parse(i),r=new ImageData(s.width,s.height),s.getData(r)}else{const a=this.pallete,i=Math.max(this.width/(1<<e),1),s=Math.max(this.height/(1<<e),1),l=i*s;let o,u=this.alphaBits,c=0;r=new ImageData(i,s),u>0&&(u>8&&(u=8),o=new yl(t.buffer,n+l,Math.ceil(l*u/8)),c=dm(u,8));const d=r.data;for(let e=0;e<l;e++){const r=4*e,i=4*t[n+e];d[r]=a[i+2],d[r+1]=a[i+1],d[r+2]=a[i],d[r+3]=u>0?o.readBits(u)*c:255}}return r}mipmaps(){let e=0;for(const t of this.mipmapSizes)t>0&&(e+=1);return e}fakeMipmaps(){const e=this.mipmapOffsets;let t=0;for(let n=0;n<16;n++){const a=e[n];if(a>0)for(let r=n+1;r<16;r++)if(a===e[r]){t+=1;break}}return t}}const Cm={Image:Rm},Mm=dm(4,8),Bm=dm(5,8),Nm=dm(6,8),Pm=new Uint8Array(16),km=new Uint8Array(12),Om=new Uint8Array(8),Dm=new Uint8Array(8),Fm=new Uint8Array(8);function Gm(e,t,n){const a=(t>>11&31)*Bm,r=(t>>5&63)*Nm,i=(31&t)*Bm,s=(n>>11&31)*Bm,l=(n>>5&63)*Nm,o=(31&n)*Bm;e[0]=a,e[1]=r,e[2]=i,e[3]=255,e[4]=s,e[5]=l,e[6]=o,e[7]=255,t>n?(e[8]=5*a+3*s>>3,e[9]=5*r+3*l>>3,e[10]=5*i+3*o>>3,e[11]=255,e[12]=5*s+3*a>>3,e[13]=5*l+3*r>>3,e[14]=5*o+3*i>>3,e[15]=255):(e[8]=a+s>>1,e[9]=r+l>>1,e[10]=i+o>>1,e[11]=255,e[12]=0,e[13]=0,e[14]=0,e[15]=0)}function Vm(e,t,n){const a=(t>>11&31)*Bm,r=(t>>5&63)*Nm,i=(31&t)*Bm,s=(n>>11&31)*Bm,l=(n>>5&63)*Nm,o=(31&n)*Bm;e[0]=a,e[1]=r,e[2]=i,e[3]=s,e[4]=l,e[5]=o,e[6]=5*a+3*s>>3,e[7]=5*r+3*l>>3,e[8]=5*i+3*o>>3,e[9]=5*s+3*a>>3,e[10]=5*l+3*r>>3,e[11]=5*o+3*i>>3}function Km(e,t,n){e[0]=t,e[1]=n,t>n?(e[2]=54*t+9*n>>6,e[3]=45*t+18*n>>6,e[4]=36*t+27*n>>6,e[5]=27*t+36*n>>6,e[6]=18*t+45*n>>6,e[7]=9*t+54*n>>6):(e[2]=12*t+3*n>>4,e[3]=9*t+6*n>>4,e[4]=6*t+9*n>>4,e[5]=3*t+12*n>>4,e[6]=0,e[7]=255)}function Hm(e,t,n){e[0]=t,e[1]=n,t>n?(e[2]=(6*t+1*n)/7,e[3]=(5*t+2*n)/7,e[4]=(4*t+3*n)/7,e[5]=(3*t+4*n)/7,e[6]=(2*t+5*n)/7,e[7]=(1*t+6*n)/7):(e[2]=(4*t+1*n)/5,e[3]=(3*t+2*n)/5,e[4]=(2*t+3*n)/5,e[5]=(1*t+4*n)/5,e[6]=0,e[7]=1)}const zm=827611204,jm=861165636,Xm=894720068,$m=843666497;class Jm{constructor(){this.width=0,this.height=0,this.format=0,this.mipmapWidths=[],this.mipmapHeights=[],this.mipmapDatas=[]}load(e){const t=$s(e),n=new Int32Array(t.buffer,0,31);let a=128;if(542327876!==n[0])throw new Error("Wrong magic number");if(!(4&n[20]))throw new Error("Not FourCC");let r=n[21];if(r!==zm&&r!==jm&&r!==Xm&&r!==$m){if(808540228!==r)throw new Error(`Unsupported FourCC: ${wl(r)}`);{a+=20;const e=new Int32Array(t.buffer,128,5),n=e[0];if(71===n)r=zm;else if(74===n)r=jm;else if(77===n)r=Xm;else{if(83!==n)throw new Error(`Unsupported DXGI format: ${n}`);r=$m}console.log(e)}}this.format=r;let i=1;131072&n[2]&&(i=Math.max(1,n[7]));let s=n[4],l=n[3],o=16;r===zm&&(o=8),this.width=s,this.height=l;for(let e=0;e<i;e++){const n=Math.max(4,s)/4*Math.max(4,l)/4*o;this.mipmapWidths[e]=s,this.mipmapHeights[e]=l,this.mipmapDatas[e]=t.subarray(a,a+n),a+=n,s=Math.max(s/2,1),l=Math.max(l/2,1)}}mipmaps(){return this.mipmapDatas.length}getMipmap(e,t=!1){const n=this.mipmapWidths[e],a=this.mipmapHeights[e],r=this.mipmapDatas[e];let i;return i=t?r:this.format===zm?function(e,t,n){const a=new Uint8Array(t*n*4);for(let r=0,i=n/4;r<i;r++)for(let n=0,i=t/4;n<i;n++){const s=8*(r*i+n);Gm(Pm,e[s]+256*e[s+1],e[s+2]+256*e[s+3]);const l=16*r*t+16*n,o=e[s+4]|e[s+5]<<8|e[s+6]<<16|e[s+7]<<24;for(let e=0;e<4;e++){const n=8*e,r=l+e*t*4;for(let e=0;e<4;e++){const t=r+4*e,i=4*(o>>n+2*e&3);a[t+0]=Pm[i+0],a[t+1]=Pm[i+1],a[t+2]=Pm[i+2],a[t+3]=Pm[i+3]}}}return a}(r,n,a):this.format===jm?function(e,t,n){const a=new Uint8Array(t*n*4),r=4*t;for(let i=0,s=n/4;i<s;i++)for(let n=0,s=t/4;n<s;n++){const l=16*(i*s+n);Vm(km,e[l+8]+256*e[l+9],e[l+10]+256*e[l+11]);let o=16*i*t+16*n;for(let t=0;t<4;t++){const n=e[l+2*t]+256*e[l+1+2*t],i=e[l+12+t];for(let e=0;e<4;e++){const t=o+4*e,r=3*(i>>2*e&3);a[t+0]=km[r+0],a[t+1]=km[r+1],a[t+2]=km[r+2],a[t+3]=(n>>4*e&15)*Mm}o+=r}}return a}(r,n,a):this.format===Xm?function(e,t,n){const a=new Uint8Array(t*n*4),r=4*t;for(let i=0,s=n/4;i<s;i++)for(let n=0,s=t/4;n<s;n++){const l=16*(i*s+n);Km(Om,e[l],e[l+1]),Vm(km,e[l+8]+256*e[l+9],e[l+10]+256*e[l+11]);let o=16*i*t+16*n;for(let t=0;t<2;t++){const n=l+2+3*t,i=l+12+2*t,s=e[n]+256*(e[n+1]+256*e[n+2]);for(let t=0;t<2;t++){const n=e[i+t];for(let e=0;e<4;e++){const r=o+4*e,i=3*(n>>2*e&3),l=s>>12*t+3*e&7;a[r+0]=km[i+0],a[r+1]=km[i+1],a[r+2]=km[i+2],a[r+3]=Om[l]}o+=r}}}return a}(r,n,a):function(e,t,n){const a=new Uint8Array(t*n*2),r=2*t;for(let i=0,s=n/4;i<s;i++)for(let n=0,s=t/4;n<s;n++){const l=16*(i*s+n);Hm(Dm,e[l],e[l+1]),Hm(Fm,e[l+8],e[l+9]);let o=8*i*t+8*n;for(let t=0;t<2;t++){const n=l+3*t,i=e[n+2]+256*(e[n+3]+256*e[n+4]),s=e[n+10]+256*(e[n+11]+256*e[n+12]);for(let e=0;e<2;e++){const t=4*e;for(let e=0;e<4;e++){const n=o+2*e,r=3*(t+e);a[n+1]=Dm[i>>r&7],a[n+2]=Fm[s>>r&7]}o+=r}}}return a}(r,n,a),{width:n,height:a,data:i}}}function Wm(e){return e instanceof ArrayBuffer&&(e=new Uint8Array(e)),e instanceof Uint8Array&&68===e[0]&&68===e[1]&&83===e[2]&&32===e[3]}const qm={Image:Jm,FOURCC_DXT1:zm,FOURCC_DXT3:jm,FOURCC_DXT5:Xm,FOURCC_ATI2:$m,isDds:Wm},Ym=class{_checkHeader(){const e=this.header;if(0===e.imageType)throw Error("No data");if(e.hasColorMap){if(e.colorMapLength>256||24!==e.colorMapDepth||1!==e.colorMapType)throw Error("Invalid colormap for indexed type")}else if(e.colorMapType)throw Error("Why does the image contain a palette ?");if(!e.width||!e.height)throw Error("Invalid image size");if(8!==e.pixelDepth&&16!==e.pixelDepth&&24!==e.pixelDepth&&32!==e.pixelDepth)throw Error('Invalid pixel size "'+e.pixelDepth+'"')}_decodeRLE(e,t,n,a){const r=new Uint8Array(a),i=new Uint8Array(n);let s=0;for(;s<a;){const a=e[t++];let l=1+(127&a);if(128&a){for(let a=0;a<n;++a)i[a]=e[t+a];t+=n;for(let e=0;e<l;++e)r.set(i,s),s+=n}else{l*=n;for(let n=0;n<l;++n)r[s+n]=e[t+n];s+=l,t+=l}}return r}_getImageData8bits(e,t,n,a,r,i,s,l,o,u){for(let c=0,d=r;d!==s;d+=i)for(let r=l;r!==u;r+=o,c++){const i=t[c];e[4*(r+a*d)+3]=255,e[4*(r+a*d)+2]=n[3*i+0],e[4*(r+a*d)+1]=n[3*i+1],e[4*(r+a*d)+0]=n[3*i+2]}return e}_getImageData16bits(e,t,n,a,r,i,s,l,o,u){for(let n=0,c=r;c!==s;c+=i)for(let r=l;r!==u;r+=o,n+=2){const i=t[n+0]|t[n+1]<<8;e[4*(r+a*c)+0]=(31744&i)>>7,e[4*(r+a*c)+1]=(992&i)>>2,e[4*(r+a*c)+2]=(31&i)>>3,e[4*(r+a*c)+3]=32768&i?0:255}return e}_getImageData24bits(e,t,n,a,r,i,s,l,o,u){for(let n=0,c=r;c!==s;c+=i)for(let r=l;r!==u;r+=o,n+=3)e[4*(r+a*c)+3]=255,e[4*(r+a*c)+2]=t[n+0],e[4*(r+a*c)+1]=t[n+1],e[4*(r+a*c)+0]=t[n+2];return e}_getImageData32bits(e,t,n,a,r,i,s,l,o,u){for(let n=0,c=r;c!==s;c+=i)for(let r=l;r!==u;r+=o,n+=4)e[4*(r+a*c)+2]=t[n+0],e[4*(r+a*c)+1]=t[n+1],e[4*(r+a*c)+0]=t[n+2],e[4*(r+a*c)+3]=t[n+3];return e}_getImageDataGrey8bits(e,t,n,a,r,i,s,l,o,u){for(let n=0,c=r;c!==s;c+=i)for(let r=l;r!==u;r+=o,n++){const i=t[n];e[4*(r+a*c)+0]=i,e[4*(r+a*c)+1]=i,e[4*(r+a*c)+2]=i,e[4*(r+a*c)+3]=255}return e}_getImageDataGrey16bits(e,t,n,a,r,i,s,l,o,u){for(let n=0,c=r;c!==s;c+=i)for(let r=l;r!==u;r+=o,n+=2)e[4*(r+a*c)+0]=t[n+0],e[4*(r+a*c)+1]=t[n+0],e[4*(r+a*c)+2]=t[n+0],e[4*(r+a*c)+3]=t[n+1];return e}open(e,t){const n=new XMLHttpRequest;n.responseType="arraybuffer",n.open("GET",e,!0),n.onload=()=>{200===n.status&&(this.load(new Uint8Array(n.response)),t&&t())},n.send(null)}load(e){let t=0;if(e.length<18)throw Error("Not enough data to contain header");const n={idLength:e[t++],colorMapType:e[t++],imageType:e[t++],colorMapIndex:e[t++]|e[t++]<<8,colorMapLength:e[t++]|e[t++]<<8,colorMapDepth:e[t++],offsetX:e[t++]|e[t++]<<8,offsetY:e[t++]|e[t++]<<8,width:e[t++]|e[t++]<<8,height:e[t++]|e[t++]<<8,pixelDepth:e[t++],flags:e[t++]};if(n.hasEncoding=9===n.imageType||10===n.imageType||11===n.imageType,n.hasColorMap=9===n.imageType||1===n.imageType,n.isGreyColor=11===n.imageType||3===n.imageType,this.header=n,this._checkHeader(),(t+=n.idLength)>=e.length)throw Error("No data");if(n.hasColorMap){const a=n.colorMapLength*(n.colorMapDepth>>3);this.palette=e.subarray(t,t+a),t+=a}const a=n.pixelDepth>>3,r=n.width*n.height,i=r*a;n.hasEncoding?this.imageData=this._decodeRLE(e,t,a,i):this.imageData=e.subarray(t,t+(n.hasColorMap?r:i))}getImageData(e){const{width:t,height:n,flags:a,pixelDepth:r,isGreyColor:i}=this.header,s=(48&a)>>4;let l,o,u,c,d,h,f;switch(e||(e=document?document.createElement("canvas").getContext("2d").createImageData(t,n):{width:t,height:n,data:new Uint8ClampedArray(t*n*4)}),2===s||3===s?(c=0,d=1,h=n):(c=n-1,d=-1,h=-1),2===s||0===s?(l=0,o=1,u=t):(l=t-1,o=-1,u=-1),r){case 8:f=i?this._getImageDataGrey8bits:this._getImageData8bits;break;case 16:f=i?this._getImageDataGrey16bits:this._getImageData16bits;break;case 24:f=this._getImageData24bits;break;case 32:f=this._getImageData32bits}return f.call(this,e.data,this.imageData,this.palette,t,c,d,h,l,o,u),e}getCanvas(){const{width:e,height:t}=this.header,n=document.createElement("canvas"),a=n.getContext("2d"),r=a.createImageData(e,t);return n.width=e,n.height=t,a.putImageData(this.getImageData(r),0,0),n}getDataURL(e){return this.getCanvas().toDataURL(e||"image/png")}};class Zm{constructor(){this.width=0,this.height=0,this.data=null}load(e){const t=$s(e),n=new Ym;n.load(t);const a=n.header;this.width=a.width,this.height=a.height,this.data=new ImageData(a.width,a.height),n.getImageData(this.data)}}function Qm(e){return e instanceof ArrayBuffer&&(e=new Uint8Array(e)),!!(e instanceof Uint8Array&&Js(e,"TRUEVISION-XFILE.\0",e.length-18))}const ep={ini:Ml,slk:Nl,m3:eo,mdlx:ko,mpq:Jh,w3x:cm,blp:Cm,dds:qm,tga:{Image:Zm,isTga:Qm}};var tp=n(7);async function np(e,t){if("image"===t)return new Promise(t=>{const n=new Image;n.onload=()=>{t({ok:!0,data:n})},n.onerror=e=>{t({ok:!1,error:"Image Error",data:e})},n.src=e});{let n;try{n=await fetch(e)}catch(e){return{ok:!1,error:"Network Error",data:e}}if(!n.ok)return{ok:!1,error:"Http Error",data:n};try{let e=null;return"text"===t?e=await n.text():"arrayBuffer"===t||"bytes"===t?e=await n.arrayBuffer():"blob"===t&&(e=await n.blob()),"bytes"===t&&(e=new Uint8Array(e)),{ok:!0,data:e}}catch(e){return{ok:!1,error:"Data Error",data:e}}}}class ap{constructor(e,t=4){this.size=0,this.arrayBuffer=null,this.byteView=null,this.floatView=null,this.gl=e,this.buffer=e.createBuffer(),this.reserve(t)}reserve(e){if(this.size<e){const t=this.gl;this.size=4*Math.ceil(e/4),t.bindBuffer(t.ARRAY_BUFFER,this.buffer),t.bufferData(t.ARRAY_BUFFER,this.size,t.DYNAMIC_DRAW),this.arrayBuffer=new ArrayBuffer(this.size),this.byteView=new Uint8Array(this.arrayBuffer),this.floatView=new Float32Array(this.arrayBuffer)}}bindAndUpdate(e=this.size){const t=this.gl,n=this.byteView;t.bindBuffer(t.ARRAY_BUFFER,this.buffer),t.bufferSubData(t.ARRAY_BUFFER,0,n.subarray(0,e))}}class rp{constructor(e,t=1,n=1){this.width=0,this.height=0,this.arrayBuffer=new ArrayBuffer(0),this.byteView=null,this.floatView=null,this.gl=e,this.texture=e.createTexture(),e.bindTexture(e.TEXTURE_2D,this.texture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),this.reserve(t,n)}reserve(e,t){if(this.width<e||this.height<t){const n=this.gl;this.width=Math.max(this.width,e),this.height=Math.max(this.height,t),n.bindTexture(n.TEXTURE_2D,this.texture),n.texImage2D(n.TEXTURE_2D,0,n.RGBA,this.width,this.height,0,n.RGBA,n.FLOAT,null),this.arrayBuffer=new ArrayBuffer(this.width*this.height*16),this.byteView=new Uint8Array(this.arrayBuffer),this.floatView=new Float32Array(this.arrayBuffer)}}bindAndUpdate(e=this.width,t=this.height){const n=this.gl;n.bindTexture(n.TEXTURE_2D,this.texture),n.texSubImage2D(n.TEXTURE_2D,0,0,0,e,t,n.RGBA,n.FLOAT,this.byteView)}}class ip{constructor(e,t=4,n=1,a=1){this.width=0,this.height=0,this.gl=e,this.texture=e.createTexture(),this.format=3===t?e.RGB:e.RGBA,e.bindTexture(e.TEXTURE_2D,this.texture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),this.reserve(n,a)}reserve(e,t){if(this.width<e||this.height<t){const n=this.gl;this.width=Math.max(this.width,e),this.height=Math.max(this.height,t),n.bindTexture(n.TEXTURE_2D,this.texture),n.texImage2D(n.TEXTURE_2D,0,this.format,this.width,this.height,0,this.format,n.FLOAT,null)}}bindAndUpdate(e,t=this.width,n=this.height){const a=this.gl;a.bindTexture(a.TEXTURE_2D,this.texture),a.texSubImage2D(a.TEXTURE_2D,0,0,0,t,n,this.format,a.FLOAT,e)}bind(e){const t=this.gl;t.activeTexture(t.TEXTURE0+e),t.bindTexture(t.TEXTURE_2D,this.texture)}}class sp{constructor(e,t){this.uniforms={},this.attribs={},this.attribsCount=0,this.webgl=e,this.program=t;const n=e.gl;for(let e=0,a=n.getProgramParameter(t,n.ACTIVE_UNIFORMS);e<a;e++){const a=n.getActiveUniform(t,e);if(a)if(1===a.size)this.uniforms[a.name]=n.getUniformLocation(t,a.name);else{const e=a.name.substr(0,a.name.length-3);for(let r=0;r<a.size;r++){const a=e+"["+r+"]";this.uniforms[a]=n.getUniformLocation(t,a)}}}for(let e=0,a=n.getProgramParameter(t,n.ACTIVE_ATTRIBUTES);e<a;e++){const a=n.getActiveAttrib(t,e);if(a)if(this.attribsCount+=a.size,1===a.size)this.attribs[a.name]=n.getAttribLocation(t,a.name);else{const e=a.name.substr(0,a.name.length-3);for(let r=0;r<a.size;r++){const a=e+"["+r+"]";this.attribs[a]=n.getAttribLocation(t,a)}}}}use(){this.webgl.useShader(this)}}class lp{constructor(e,t={alpha:!1}){this.currentShader=null,this.extensions={};let n=e.getContext("webgl",t);if(n||(n=e.getContext("experimental-webgl",t)),!n)throw new Error("WebGL: Failed to create a WebGL context!");const a=new Uint8ClampedArray(16).fill(255),r=n.createTexture();n.bindTexture(n.TEXTURE_2D,r),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,n.NEAREST),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.NEAREST),n.texImage2D(n.TEXTURE_2D,0,n.RGBA,2,2,0,n.RGBA,n.UNSIGNED_BYTE,a),this.gl=n,this.emptyTexture=r}ensureExtension(e){const t=this.gl.getExtension(e);return!!t&&(this.extensions[e]=t,!0)}createShader(e,t){const n=this.gl,a=n.createShader(n.VERTEX_SHADER);n.shaderSource(a,e),n.compileShader(a);const r=n.createShader(n.FRAGMENT_SHADER);n.shaderSource(r,t),n.compileShader(r);const i=n.createProgram();if(n.attachShader(i,a),n.attachShader(i,r),n.linkProgram(i),!n.getProgramParameter(i,n.LINK_STATUS)){let e="Shader failed to link:";const t=n.getShaderInfoLog(a);t&&t.length&&(e+=` Vertex shader: ${t}`);const i=n.getShaderInfoLog(r);throw i&&i.length&&(e+=` Fragment shader: ${i}`),new Error(e)}return new sp(this,i)}enableVertexAttribs(e,t){const n=this.gl;for(let a=e;a<t;a++)n.enableVertexAttribArray(a)}disableVertexAttribs(e,t){const n=this.gl;for(let a=e;a<t;a++)n.disableVertexAttribArray(a)}useShader(e){if(e&&e!==this.currentShader){let t=0;const n=e.attribsCount;this.currentShader&&(t=this.currentShader.attribsCount),this.gl.useProgram(e.program),n>t?this.enableVertexAttribs(t,n):n<t&&this.disableVertexAttribs(n,t),this.currentShader=e}}bindTexture(e,t){const n=this.gl;n.activeTexture(n.TEXTURE0+t),e?n.bindTexture(n.TEXTURE_2D,e.webglResource):n.bindTexture(n.TEXTURE_2D,this.emptyTexture)}bindTextureAndWrap(e,t,n,a){const r=this.gl;r.activeTexture(r.TEXTURE0+t),e?r.bindTexture(r.TEXTURE_2D,e.webglResource):r.bindTexture(r.TEXTURE_2D,this.emptyTexture),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,n),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,a)}setTextureMode(e,t,n,a){const r=this.gl;r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,e),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,t),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,n),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,a)}createClientBuffer(e=4){return new ap(this.gl,e)}createDataTexture(e=4,t=1,n=1){return new ip(this.gl,e,t,n)}createClientDataTexture(e=1,t=1){return new rp(this.gl,e,t)}}const op=Wt(),up=Wt(),cp=Wt(),dp=Ma(),hp=Na(Ma(),Qi,Math.PI/2);class fp{constructor(){this.isPerspective=!0,this.fov=0,this.aspect=0,this.isOrtho=!1,this.leftClipPlane=0,this.rightClipPlane=0,this.bottomClipPlane=0,this.topClipPlane=0,this.nearClipPlane=0,this.farClipPlane=0,this.location=Wt(),this.rotation=Ma(),this.inverseRotation=Ma(),this.viewMatrix=nt(),this.projectionMatrix=nt(),this.viewProjectionMatrix=nt(),this.inverseViewMatrix=nt(),this.inverseViewProjectionMatrix=nt(),this.directionX=Wt(),this.directionY=Wt(),this.directionZ=Wt(),this.vectors=[Zt(-1,-1,0),Zt(-1,1,0),Zt(1,1,0),Zt(1,-1,0),Zt(1,0,0),Zt(0,1,0),Zt(0,0,1)],this.billboardedVectors=[Wt(),Wt(),Wt(),Wt(),Wt(),Wt(),Wt()],this.planes=[jn(),jn(),jn(),jn(),jn(),jn()]}perspective(e,t,n,a){this.isPerspective=!0,this.isOrtho=!1,this.fov=e,this.aspect=t,this.nearClipPlane=n,this.farClipPlane=a,this.update()}ortho(e,t,n,a,r,i){this.isPerspective=!1,this.isOrtho=!0,this.leftClipPlane=e,this.rightClipPlane=t,this.bottomClipPlane=n,this.topClipPlane=a,this.nearClipPlane=r,this.farClipPlane=i,this.update()}setLocation(e){Qt(this.location,e),this.update()}move(e){tn(this.location,this.location,e),this.update()}setRotation(e){sr(this.rotation,e),this.update()}rotate(e){ur(this.rotation,this.rotation,e),this.update()}face(e,t){ur(this.rotation,hp,ws(dp,e,this.location,t)),this.update()}moveToAndFace(e,t,n){Qt(this.location,e),this.face(t,n)}reset(){en(this.location,0,0,0),Ba(this.rotation),this.update()}update(){const e=this.location,t=this.rotation,n=this.inverseRotation,a=this.viewMatrix,r=this.projectionMatrix,i=this.viewProjectionMatrix,s=this.vectors,l=this.billboardedVectors;this.isPerspective?Nt(r,this.fov,this.aspect,this.nearClipPlane,this.farClipPlane):kt(r,this.leftClipPlane,this.rightClipPlane,this.bottomClipPlane,this.topClipPlane,this.nearClipPlane,this.farClipPlane),Mt(a,t),ft(a,a,_n(op,e)),$t(i,r,a),ut(this.inverseViewMatrix,a),ut(this.inverseViewProjectionMatrix,i),ps(this.planes,i),Ja(n,t),Ln(this.directionX,Qi,n),Ln(this.directionY,es,n),Ln(this.directionZ,ts,n);for(let e=0;e<7;e++)Ln(l[e],s[e],n)}cameraToWorld(e,t){return xn(e,t,this.inverseViewMatrix)}worldToCamera(e,t){return xn(e,t,this.viewMatrix)}worldToScreen(e,t,n){return xn(op,t,this.viewProjectionMatrix),e[0]=Math.round((op[0]+1)/2*n[2]),e[1]=Math.round((op[1]+1)/2*n[3]),e}screenToWorldRay(e,t,n){const a=op,r=up,i=cp,s=t[0],l=t[1],o=this.inverseViewProjectionMatrix;return ls(a,en(i,s,l,0),o,n),ls(r,en(i,s,l,1),o,n),e.set(a,0),e.set(r,3),e}}class mp{constructor(e,t,n,a){this.plane=-1,this.instances=[],this.visible=!1,this.left=e,this.right=t,this.bottom=n,this.top=a}add(e){this.instances.push(e)}remove(e){const t=this.instances.indexOf(e);this.instances.splice(t,1)}clear(){this.instances.length=0}isVisible(e){return this.plane=hs(e.planes,this.left,this.right,this.bottom,this.top,this.plane),-1===this.plane}}class pp{constructor(e,t,n,a,r,i){this.cells=[];const s=n/r,l=a/i;this.x=e,this.y=t,this.width=n,this.depth=a,this.cellWidth=r,this.cellDepth=i,this.columns=s,this.rows=l;for(let n=0;n<l;n++)for(let a=0;a<s;a++){const l=e+a*r,o=l+r,u=t+n*i,c=u+i;this.cells[n*s+a]=new mp(l,o,u,c)}}add(e){const t=this.cells,n=this.columns,a=e.left,r=e.right+1,i=e.bottom,s=e.top+1;if(-1!==a)for(let l=i;l<s;l++)for(let i=a;i<r;i++)t[l*n+i].add(e)}remove(e){const t=this.cells,n=this.columns,a=e.left,r=e.right+1,i=e.bottom,s=e.top+1;if(-1!==a){e.left=-1;for(let l=i;l<s;l++)for(let i=a;i<r;i++)t[l*n+i].remove(e)}}moved(e){const t=this.cellWidth,n=this.cellDepth,a=e.model.bounds,r=e.worldLocation[0]+a.x-this.x,i=e.worldLocation[1]+a.y-this.y,s=a.r,l=e.worldScale;let o=Math.floor((r-s*l[0])/t),u=Math.floor((r+s*l[0])/t),c=Math.floor((i-s*l[1])/n),d=Math.floor((i+s*l[1])/n);u<0||o>this.columns-1||d<0||c>this.rows-1?this.remove(e):(o=Math.max(o,0),u=Math.min(u,this.columns-1),c=Math.max(c,0),d=Math.min(d,this.rows-1),o===e.left&&u===e.right&&c===e.bottom&&d===e.top||(this.remove(e),e.left=o,e.right=u,e.bottom=c,e.top=d,this.add(e)))}clear(){for(const e of this.cells)e.clear()}}class _p{constructor(){this.objects=[],this.alive=0}add(e){this.objects[this.alive++]=e}update(e){const t=this.objects;for(let n=0;n<this.alive;n++){const a=t[n];a.update(e*a.emitter.instance.timeScale),a.health<=0&&(this.alive-=1,a.emitter.kill(a),n!==this.alive&&(t[n]=t[this.alive],n-=1))}}}class gp{constructor(e){this.camera=new fp,this.grid=new pp(-1e5,-1e5,2e5,2e5,2e5,2e5),this.visibleCells=0,this.visibleInstances=0,this.updatedParticles=0,this.audioEnabled=!1,this.audioContext=null,this.instances=[],this.emittedObjectUpdater=new _p,this.alpha=!1,this.color=Wt(),this.viewport=jn(),this.lightPosition=Zt(0,0,1e4),this.viewer=e;const t=e.canvas,n=t.width,a=t.height;this.viewport[2]=n,this.viewport[3]=a,this.camera.perspective(Math.PI/4,n/a,8,1e4)}async enableAudio(){return"function"==typeof AudioContext&&(this.audioContext||(this.audioContext=new AudioContext),"suspended"!==this.audioContext.state&&await this.audioContext.resume(),this.audioEnabled="running"===this.audioContext.state,this.audioEnabled)}disableAudio(){this.audioContext&&this.audioContext.suspend(),this.audioEnabled=!1}addInstance(e){return e.scene!==this&&(e.scene&&e.scene.removeInstance(e),e.scene=this,this.grid.moved(e),!0)}removeInstance(e){return e.scene===this&&(this.grid.remove(e),e.scene=null,!0)}clear(){for(const e of this.grid.cells)for(const t of e.instances)t.scene=null;this.grid.clear()}detach(){return!!this.viewer&&this.viewer.removeScene(this)}update(e){const t=this.camera;if(this.audioContext){const e=this.audioContext.listener,n=t.location,a=t.directionY,r=t.directionZ;e.positionX.value=-n[0],e.positionY.value=-n[1],e.positionZ.value=-n[2],e.forwardX.value=a[0],e.forwardY.value=a[1],e.forwardZ.value=a[2],e.upX.value=r[0],e.upY.value=r[1],e.upZ.value=r[2]}const n=this.viewer.frame,a=this.instances;this.visibleCells=0,this.visibleInstances=0;for(const a of this.grid.cells)if(a.isVisible(t)){this.visibleCells+=1;for(const t of a.instances)t.rendered&&t.updateFrame<n&&!t.parent&&(t.updateFrame=n,t.update(e))}a.length=this.visibleInstances,a.sort((e,t)=>e.depth-t.depth),this.emittedObjectUpdater.update(e),this.updatedParticles=this.emittedObjectUpdater.alive}renderInstance(e){this.instances[this.visibleInstances++]=e}startFrame(){const e=this.viewer.gl,t=this.viewport;if(e.viewport(t[0],t[1],t[2],t[3]),e.scissor(t[0],t[1],t[2],t[3]),!this.alpha){const t=this.color;e.depthMask(!0),e.clearColor(t[0],t[1],t[2],1),e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT)}}renderOpaque(){const e=this.instances;for(let t=0,n=e.length;t<n;t++)e[t].renderOpaque()}renderTranslucent(){const e=this.instances;for(let t=e.length-1;t>=0;t--)e[t].renderTranslucent()}render(){this.startFrame(),this.renderOpaque(),this.renderTranslucent()}clearEmittedObjects(){for(const e of this.emittedObjectUpdater.objects)e.health=0}}class bp{constructor(e){this.blockers=[],this.viewer=e.viewer,this.fetchUrl=e.fetchUrl}detach(){return this.viewer.unload(this)}}class wp extends bp{constructor(e,t){super(t),this.data=null,this.data=e}}class vp extends bp{constructor(e){super(e),this.pathSolver=e.pathSolver}}class Ap extends vp{constructor(){super(...arguments),this.webglResource=null,this.width=0,this.height=0}}class yp extends Ap{constructor(e,t){super(t);const n=this.viewer.gl;this.webglResource=n.createTexture(),n.bindTexture(n.TEXTURE_2D,this.webglResource),n.texImage2D(n.TEXTURE_2D,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,e),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,n.LINEAR),Us(e.width)&&Us(e.height)?(n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.LINEAR_MIPMAP_LINEAR),n.generateMipmap(n.TEXTURE_2D)):(n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.LINEAR),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE)),this.width=e.width,this.height=e.height}}var Sp;!function(e){e[e.None=0]="None",e[e.Diffuse=1]="Diffuse",e[e.NormalMap=2]="NormalMap",e[e.Occlusion=3]="Occlusion",e[e.Roughness=4]="Roughness",e[e.Metallic=5]="Metallic",e[e.TCFactor=6]="TCFactor",e[e.Emissive=7]="Emissive",e[e.TexCoords=8]="TexCoords",e[e.Normals=9]="Normals",e[e.Tangents=10]="Tangents"}(Sp||(Sp={}));class Tp extends tp.EventEmitter{constructor(e,t){super(),this.resources=[],this.resourceMap=new Map,this.promiseMap=new Map,this.handlers=new Set,this.scenes=[],this.frame=0,this.visibleCells=0,this.visibleInstances=0,this.updatedParticles=0,this.audioEnabled=!1,this.sharedCache=new Map,this.debugRenderMode=Sp.None,this.directLoadId=0;const n=new lp(e,t),a=n.gl;this.canvas=e,this.gl=a,this.webgl=n,this.buffer=n.createClientBuffer(),a.depthFunc(a.LEQUAL),a.enable(a.DEPTH_TEST),a.enable(a.SCISSOR_TEST)}enableAudio(){return"function"==typeof AudioContext&&(this.audioEnabled=!0,!0)}addHandler(e,...t){if(e){const n=this.handlers;if(!n.has(e)){if(!e.isValidSource)return this.emit("error",{viewer:this,error:"Handler missing the isValidSource function",handler:e}),!1;if(e.load)try{e.load(this,...t)}catch(t){return this.emit("error",{viewer:this,error:"Handler failed to load",handler:e,reason:t}),!1}return n.add(e),!0}}return!1}addScene(){const e=new gp(this);return this.scenes.push(e),e}removeScene(e){const t=this.scenes,n=t.indexOf(e);return-1!==n&&(t.splice(n,1),!0)}clear(){this.scenes.length=0}async load(e,t,n){let a,r,i="";if(t)try{a=t(e,n)}catch(a){return void this.emit("error",{viewer:this,error:"Path solver failed",src:e,reason:a,pathSolver:t,solverParams:n})}else a=e;if(a){if(a instanceof Promise&&(a=await a),a instanceof bp)return a;if("string"!=typeof a||this.detectFormat(a))i="__DIRECT_LOAD_"+this.directLoadId++,r=Promise.resolve(a);else{if(i=a,r=this.promiseMap.get(i),r)return r;const e=this.resourceMap.get(i);if(e)return e;r=np(i,"arrayBuffer").then(e=>e.ok?e.data:void this.emit("error",{viewer:this,error:`Failed to fetch a resource: ${e.error}`,fetchUrl:i,reason:e.data}))}return r=r.then(async n=>{if(n){if(n instanceof ArrayBuffer&&(n=new Uint8Array(n)),function(e){return e instanceof ImageData||e instanceof HTMLImageElement||e instanceof HTMLCanvasElement||e instanceof HTMLVideoElement}(n))return new yp(n,{viewer:this,fetchUrl:i,pathSolver:t});if(n instanceof Uint8Array){const e=function(e){return El(e)?"image/png":Ll(e)?"image/jpeg":Il(e)?"image/gif":Ul(e)?"image/webp":""}(n);if(e.length)return new yp(await Ns(new Blob([n.buffer],{type:e})),{viewer:this,fetchUrl:i,pathSolver:t})}const a=this.detectFormat(n);if(a)try{const e=new a.resource(n,{viewer:this,fetchUrl:i,pathSolver:t});return await Promise.all(e.blockers),e.blockers.length=0,e}catch(t){this.emit("error",{viewer:this,error:"Failed to create a resource",fetchUrl:i,src:e,reason:t})}else this.emit("error",{viewer:this,error:"Source has no matching handler",fetchUrl:i,src:e})}}).then(e=>(this.promiseMap.delete(i),e&&(this.resourceMap.set(i,e),this.resources.push(e),this.emit("load",{viewer:this,fetchUrl:i,resource:e})),this.emit("loadend",{viewer:this,fetchUrl:i,resource:e}),this.checkLoadingStatus(),e)),this.promiseMap.set(i,r),this.emit("loadstart",{viewer:this,fetchUrl:i,promise:r}),r}}detectFormat(e){for(const t of this.handlers)if(t.isValidSource(e))return t}has(e){return this.resourceMap.has(e)}get(e){return this.resourceMap.get(e)}async loadGeneric(e,t,n){const a=this.promiseMap.get(e);if(a)return a;const r=this.resourceMap.get(e);if(r)return r;const i=np(e,t).then(async t=>{let a;if(this.promiseMap.delete(e),t.ok){let r=t.data;n&&(r=await n(r)),a=new wp(r,{viewer:this,fetchUrl:e}),this.resourceMap.set(e,a),this.resources.push(a),this.emit("load",{viewer:this,fetchUrl:e,resource:a})}else this.emit("error",{viewer:this,error:"Failed to fetch a generic resource",fetchUrl:e});return this.emit("loadend",{viewer:this,fetchUrl:e,resource:a}),this.checkLoadingStatus(),a});return this.promiseMap.set(e,i),this.emit("loadstart",{viewer:this,fetchUrl:e}),i}unload(e){const t=e.fetchUrl;""!==t&&this.resourceMap.delete(t);const n=this.resources,a=n.indexOf(e);return-1!==a&&(n.splice(a,1),!0)}promise(){const e=Promise.resolve(void 0),t=`${performance.now()}`;return this.promiseMap.set(t,e),()=>{this.promiseMap.delete(t),this.checkLoadingStatus()}}checkLoadingStatus(){0===this.promiseMap.size&&setTimeout(()=>this.emit("idle"),0)}whenAllLoaded(e){const t=new Promise(e=>{0===this.promiseMap.size?e(this):this.once("idle",()=>e(this))});if(!e)return t;t.then(()=>e(this))}toBlob(e){const t=new Promise(e=>this.canvas.toBlob(t=>e(t)));if(!e)return t;t.then(t=>e(t))}updateAndRender(e=1e3/60){this.update(e),this.startFrame(),this.render()}update(e=1e3/60){e*=.001,this.frame+=1,this.visibleCells=0,this.visibleInstances=0,this.updatedParticles=0;for(const t of this.scenes)t.update(e),this.visibleCells+=t.visibleCells,this.visibleInstances+=t.visibleInstances,this.updatedParticles+=t.updatedParticles}startFrame(){const e=this.gl;e.depthMask(!0),e.clearColor(0,0,0,1),e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT)}render(){for(const e of this.scenes)e.render()}clearEmittedObjects(){for(const e of this.scenes)e.clearEmittedObjects()}}const xp=Wt(),Ep=Ma(),Lp=Wt();class Ip{constructor(){this.pivot=Wt(),this.localLocation=Wt(),this.localRotation=Ma(),this.localScale=Zt(1,1,1),this.worldLocation=Wt(),this.worldRotation=Ma(),this.worldScale=Zt(1,1,1),this.inverseWorldLocation=Wt(),this.inverseWorldRotation=Ma(),this.inverseWorldScale=Zt(1,1,1),this.localMatrix=nt(),this.worldMatrix=nt(),this.dontInheritTranslation=!1,this.dontInheritRotation=!1,this.dontInheritScaling=!0,this.parent=null,this.children=[]}setPivot(e){return Qt(this.pivot,e),this.recalculateTransformation(),this}setLocation(e){return Qt(this.localLocation,e),this.recalculateTransformation(),this}setRotation(e){return sr(this.localRotation,e),this.recalculateTransformation(),this}setScale(e){return Qt(this.localScale,e),this.recalculateTransformation(),this}setUniformScale(e){return en(this.localScale,e,e,e),this.recalculateTransformation(),this}setTransformation(e,t,n){const a=this.localLocation,r=this.localRotation,i=this.localScale;return a[0]=e[0],a[1]=e[1],a[2]=e[2],r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=t[3],i[0]=n[0],i[1]=n[1],i[2]=n[2],this.recalculateTransformation(),this}resetTransformation(){return Qt(this.pivot,ns),Qt(this.localLocation,ns),sr(this.localRotation,is),Qt(this.localScale,as),this.recalculateTransformation(),this}movePivot(e){return tn(this.pivot,this.pivot,e),this.recalculateTransformation(),this}move(e){return tn(this.localLocation,this.localLocation,e),this.recalculateTransformation(),this}rotate(e){return ur(this.localRotation,this.localRotation,e),this.recalculateTransformation(),this}rotateLocal(e){return ur(this.localRotation,e,this.localRotation),this.recalculateTransformation(),this}scale(e){return Dn(this.localScale,this.localScale,e),this.recalculateTransformation(),this}uniformScale(e){return dn(this.localScale,this.localScale,e),this.recalculateTransformation(),this}face(e,t){return Ja(this.localRotation,ws(this.localRotation,this.localLocation,e,t)),this.recalculateTransformation(),this}setParent(e){if(this.parent){const e=this.parent.children,t=e.indexOf(this);-1!==t&&e.splice(t,1)}return this.parent=e||null,e&&e.children.push(this),this.recalculateTransformation(),this}recalculateTransformation(){const e=this.parent,t=this.localMatrix,n=this.localLocation,a=this.localRotation,r=this.localScale,i=this.worldMatrix,s=this.worldLocation,l=this.worldRotation,o=this.worldScale,u=this.inverseWorldLocation,c=this.inverseWorldRotation,d=this.inverseWorldScale;if(e){const s=xp,u=e.pivot;let c,d;if(s[0]=n[0]+u[0],s[1]=n[1]+u[1],s[2]=n[2]+u[2],this.dontInheritRotation?(c=Ep,ur(c,a,e.inverseWorldRotation)):c=a,this.dontInheritScaling){d=Lp;const t=e.inverseWorldScale;d[0]=t[0]*r[0],d[1]=t[1]*r[1],d[2]=t[2]*r[2],o[0]=r[0],o[1]=r[1],o[2]=r[2]}else{d=r;const t=e.worldScale;o[0]=t[0]*r[0],o[1]=t[1]*r[1],o[2]=t[2]*r[2]}Rt(t,c,s,d),$t(i,e.worldMatrix,t),ur(l,e.worldRotation,c)}else Rt(t,a,n,r),i[0]=t[0],i[1]=t[1],i[2]=t[2],i[3]=t[3],i[4]=t[4],i[5]=t[5],i[6]=t[6],i[7]=t[7],i[8]=t[8],i[9]=t[9],i[10]=t[10],i[11]=t[11],i[12]=t[12],i[13]=t[13],i[14]=t[14],i[15]=t[15],l[0]=a[0],l[1]=a[1],l[2]=a[2],l[3]=a[3],o[0]=r[0],o[1]=r[1],o[2]=r[2];c[0]=-l[0],c[1]=-l[1],c[2]=-l[2],c[3]=l[3],d[0]=1/o[0],d[1]=1/o[1],d[2]=1/o[2],s[0]=i[12],s[1]=i[13],s[2]=i[14],u[0]=-s[0],u[1]=-s[1],u[2]=-s[2];for(const e of this.children)e.recalculateTransformation()}update(e){for(const t of this.children)t.update(e)}}class Up{constructor(){this.x=0,this.y=0,this.z=0,this.r=0}fromExtents(e,t){const n=e[0],a=e[1],r=e[2],i=t[0]-n,s=t[1]-a,l=t[2]-r;this.x=n+i/2,this.y=a+s/2,this.z=r+l/2,this.r=Math.max(0,Math.max(i,s,l)/2)}}class Rp extends vp{constructor(){super(...arguments),this.bounds=new Up}}class Cp extends Ip{constructor(e){super(),this.scene=null,this.left=-1,this.right=-1,this.bottom=-1,this.top=-1,this.plane=-1,this.depth=0,this.updateFrame=0,this.timeScale=1,this.rendered=!0,this.textureOverrides=new Map,this.model=e}show(){this.rendered=!0}hide(){this.rendered=!1}shown(){return this.rendered}hidden(){return!this.rendered}detach(){return!!this.scene&&this.scene.removeInstance(this)}overrideTexture(e,t){t?this.textureOverrides.set(e,t):this.textureOverrides.delete(e)}getBounds(){return this.model.bounds}clearEmittedObjects(){}setScene(e){return e.addInstance(this)}recalculateTransformation(){super.recalculateTransformation(),this.scene&&this.scene.grid.moved(this)}update(e){const t=this.scene;t&&this.rendered&&this.isVisible(t.camera)&&(t.renderInstance(this),this.updateAnimations(e*this.timeScale),super.update(e))}updateAnimations(e){}renderOpaque(){}renderTranslucent(){}isVisible(e){const[t,n,a]=this.worldLocation,[r,i,s]=this.worldScale,l=this.getBounds(),o=e.planes;let u=r;return i>u&&(u=i),s>u&&(u=s),this.plane=ds(o,t+l.x,n+l.y,a+l.z,l.r*u,this.plane),-1===this.plane&&(this.depth=cs(o[4],t,n,a),!0)}}const Mp={WebGL:lp,Shader:sp,ClientBuffer:ap,DataTexture:ip,ClientDataTexture:rp};const Bp={isValidSource(e){return e instanceof Rm||((t=e)instanceof ArrayBuffer&&(t=new Uint8Array(t)),t instanceof Uint8Array&&66===t[0]&&76===t[1]&&80===t[2]&&49===t[3]);var t},resource:class extends Ap{constructor(e,t){let n;super(t),e instanceof Rm?n=e:(n=new Rm,n.load(e));const a=this.viewer.gl,r=a.createTexture();a.bindTexture(a.TEXTURE_2D,r),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.LINEAR);const i=Us(n.width)&&Us(n.height);i||(a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE));const s=n.mipmaps();if(1===s||n.fakeMipmaps()||!i){const e=n.getMipmap(0);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR),a.texImage2D(a.TEXTURE_2D,0,a.RGBA,a.RGBA,a.UNSIGNED_BYTE,e)}else{a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR_MIPMAP_LINEAR);let e=n.width,t=n.height;for(let r=0;r<s;r++){const i=n.getMipmap(r);a.texImage2D(a.TEXTURE_2D,r,a.RGBA,e,t,0,a.RGBA,a.UNSIGNED_BYTE,i.data),e=Math.ceil(e/2),t=Math.ceil(t/2)}}this.width=n.width,this.height=n.height,this.webglResource=r}}};const Np={load(e){e.webgl.ensureExtension("WEBGL_compressed_texture_s3tc")||console.warn("DDS: No compressed textures support! This might reduce performance.")},isValidSource:e=>e instanceof Jm||Wm(e),resource:class extends Ap{constructor(e,t){let n;super(t),e instanceof Jm?n=e:(n=new Jm,n.load(e));const a=this.viewer,r=a.gl,i=a.webgl.extensions.WEBGL_compressed_texture_s3tc,s=n.format;let l=0;i&&(s===zm?l=i.COMPRESSED_RGB_S3TC_DXT1_EXT:s===jm?l=i.COMPRESSED_RGBA_S3TC_DXT3_EXT:s===Xm&&(l=i.COMPRESSED_RGBA_S3TC_DXT5_EXT));const o=r.createTexture();this.width=n.width,this.height=n.height,this.webglResource=o,r.bindTexture(r.TEXTURE_2D,o);const u=n.mipmaps();s!==zm&&s!==$m||r.pixelStorei(r.UNPACK_ALIGNMENT,2);for(let e=0;e<u;e++){const{width:t,height:a,data:i}=n.getMipmap(e,0!==l);l?r.compressedTexImage2D(r.TEXTURE_2D,e,l,t,a,0,i):s===zm||s===jm||s===Xm?r.texImage2D(r.TEXTURE_2D,e,r.RGBA,t,a,0,r.RGBA,r.UNSIGNED_BYTE,i):r.texImage2D(r.TEXTURE_2D,e,r.LUMINANCE_ALPHA,t,a,0,r.LUMINANCE_ALPHA,r.UNSIGNED_BYTE,i)}r.pixelStorei(r.UNPACK_ALIGNMENT,4),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR),u>1?r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR_MIPMAP_LINEAR):r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR)}}};class Pp{constructor(e,t){this.texture=null,this.wrapS=33071,this.wrapT=33071,e&&(this.wrapS=10497),t&&(this.wrapT=10497)}}const kp={diffuse:1,decal:2,specular:3,gloss:4,emissive:5,emissive2:6,evio:7,evioMask:8,alphaMask:9,alphaMask2:10,normal:11,heightMap:12,lightMap:13,ao:14};class Op{constructor(e,t,n,a,r){this.active=0,this.layer=null,this.source="",this.texture=null,this.flags=0,this.colorChannels=0,this.type="",this.op=0,this.uvCoordinate=0,this.textureUnit=0,this.invert=0,this.clampResult=0,this.teamColorMode=0;const i=e.model;this.model=i,this.material=e,this.gl=e.gl,this.index=t;const s="u_"+a,l=s+"LayerSettings.";if(this.uniformMap={map:s+"Map",enabled:l+"enabled",op:l+"op",channels:l+"channels",teamColorMode:l+"teamColorMode",invert:l+"invert",clampResult:l+"clampResult",uvCoordinate:l+"uvCoordinate"},n.entries){const e=n.first();this.layer=e;const t=i.pathSolver,s=e.imagePath.get();if(s){const n=s.toLowerCase();if(n.length){this.source=n,this.active=1;const s=e.uvSource,l=e.flags;this.flags=l,this.colorChannels=e.colorChannelSetting,this.model=i,this.type=a,this.op=r;let o=0;1===s?o=1:9===s?o=2:10===s&&(o=3),this.uvCoordinate=o,this.textureUnit=kp[a],this.invert=16&l,this.clampResult=32&l,"diffuse"===a&&(this.teamColorMode=1);const u=new Pp(!!(4&l),!!(8&l));i.viewer.load(n,t).then(e=>{e&&(u.texture=e)}),this.texture=u}}}}bind(e,t){const n=this.gl,a=this.uniformMap,r=e.uniforms,i=this.active;if(n.uniform1f(r[a.enabled],i),i){const e=this.texture,i=t.get(this.material.index*Dp+this.index)||e.texture,s=this.textureUnit;n.uniform1i(r[a.map],s),this.model.viewer.webgl.bindTextureAndWrap(i,s,e.wrapS,e.wrapT),n.uniform1f(r[a.op],this.op),n.uniform1f(r[a.channels],this.colorChannels),n.uniform1f(r[a.teamColorMode],this.teamColorMode),n.uniform1f(r[a.invert],this.invert),n.uniform1f(r[a.clampResult],this.clampResult),n.uniform1f(r[a.uvCoordinate],this.uvCoordinate)}}unbind(e){this.active&&this.gl.uniform1f(e.uniforms[this.uniformMap.enabled],0)}}const Dp=100;class Fp{constructor(e,t,n){this.model=e,this.gl=e.viewer.gl,this.index=t,this.name=n.name.get(),this.flags=n.flags,this.blendMode=n.blendMode,this.priority=n.priority,this.specularity=n.specularity,this.specMult=n.specMult,this.emisMult=n.emisMult,this.layerBlendType=n.layerBlendType,this.emisBlendType=n.emisBlendType,this.emisMode=n.emisMode,this.doubleSided=8&n.flags,this.layers=[new Op(this,0,n.diffuseLayer,"diffuse",2),new Op(this,1,n.decalLayer,"decal",2),new Op(this,2,n.specularLayer,"specular",2),new Op(this,3,n.glossLayer,"gloss",2),new Op(this,4,n.emissiveLayer,"emissive",n.emisBlendType),new Op(this,5,n.emissive2Layer,"emissive2",n.emisMode),new Op(this,6,n.evioLayer,"evio",2),new Op(this,7,n.evioMaskLayer,"evioMask",2),new Op(this,8,n.alphaMaskLayer,"alphaMask",2),new Op(this,9,n.alphaMask2Layer,"alphaMask2",2),new Op(this,10,n.normalLayer,"normal",2),new Op(this,11,n.heightLayer,"heightMap",2),new Op(this,12,n.lightMapLayer,"lightMap",2),new Op(this,13,n.ambientOcclusionLayer,"ao",2)]}bindCommon(){const e=this.gl;1===this.blendMode||2===this.blendMode?(e.enable(e.BLEND),e.blendFunc(e.ONE,e.ONE)):e.disable(e.BLEND),this.doubleSided?e.disable(e.CULL_FACE):e.enable(e.CULL_FACE),e.enable(e.DEPTH_TEST),e.depthMask(!0)}bind(e,t){const n=this.gl;this.bindCommon(),n.uniform1f(e.uniforms.u_specularity,this.specularity),n.uniform1f(e.uniforms.u_specMult,this.specMult),n.uniform1f(e.uniforms.u_emisMult,this.emisMult),n.uniform4f(e.uniforms.u_lightAmbient,.02,.02,.02,0);const a=this.layers;a[0].bind(e,t),a[1].bind(e,t),a[2].bind(e,t),a[4].bind(e,t),a[5].bind(e,t),a[10].bind(e,t),a[12].bind(e,t)}unbind(e){const t=this.gl;t.disable(t.BLEND),t.enable(t.CULL_FACE);const n=this.layers;n[0].unbind(e),n[1].unbind(e),n[2].unbind(e),n[4].unbind(e),n[5].unbind(e),n[10].unbind(e),n[12].unbind(e)}}class Gp{constructor(e){const t=e.flags;this.name=e.name.get(),this.parent=e.parent,this.location=e.location,this.rotation=e.rotation,this.scale=e.scale,this.visibility=e.visibility,this.inhertTranslation=1&t,this.inheritScale=2&t,this.inheritRotation=4&t,this.billboard1=16&t,this.billboard2=64&t,this.twoDProjection=256&t,this.animated=512&t,this.inverseKinematics=1024&t,this.skinned=2048&t,this.real=8192&t}}class Vp{constructor(e){this.name=e.name.get(),this.interval=e.interval,this.movementSpeed=e.movementSpeed,this.frequency=e.frequency,this.boundingSphere=e.boundingSphere,this.flags=e.flags}}class Kp{constructor(e){this.animIds=new Map;const t=e.animIds.get();for(let e=0,n=t.length;e<n;e++)this.animIds.set(t[e],e)}hasData(e){return this.animIds.has(e.animId)}}const Hp=Wt(),zp=Ma();class jp{constructor(e){this.keys=e.keys.get(),this.values=e.values.get(),this.biggestKey=e.biggestKey}}class Xp{constructor(){this.sd=[]}addSds(e){for(const t of e)this.sd.push(new jp(t))}getValueUnsafe(e,t,n,a){const r=this.sd[e];a&&(n%=r.biggestKey);const i=r.keys,s=r.values;let l=i.length,o=0;for(;o!==i.length&&n>i[o];)l=o,o++;const u=i.length;if(l===u)return o===u?t.initValue:s[o];if(o===u||l>=o)return s[l];const c=Ss((n-i[l])/(i[o]-i[l]),0,1),d=s[l],h=s[o],f=t.interpolationType,m=d;return 4===m.length?0===f?sr(zp,d):ja(zp,d,h,c):3===m.length?0===f?Qt(Hp,d):An(Hp,d,h,c):0===f?d:Ts(d,h,c)}}class $p{constructor(e){this.animRefs=[],this.sd=[];const t=e.animIds.get();this.name=e.name.get(),this.runsConcurrent=e.runsConcurrent,this.priority=e.priority,this.stsIndex=e.stsIndex;const n=e.animRefs.get(),a=new Uint16Array(n.buffer);for(let e=0,n=t.length;e<n;e++)this.animRefs[t[e]]=[a[2*e+1],a[2*e]];for(const t of e.sd){const e=new Xp,n=t.get();n&&e.addSds(n),this.sd.push(e)}}getValueUnsafe(e,t){const n=this.animRefs[e.animId];return n?this.sd[n[0]].getValueUnsafe(n[1],e,t.frame,this.runsConcurrent):e.initValue}}class Jp{constructor(e,t,n){this.name=e.name.get(),this.stcIndices=e.stcIndices.get(),this.sts=t,this.stc=n}getValueUnsafe(e,t){const n=this.stcIndices,a=this.stc,r=this.sts;for(let i=0,s=n.length;i<s;i++){const s=a[n[i]];if(r[s.stsIndex].hasData(e))return s.getValueUnsafe(e,t)}return e.initValue}}class Wp{constructor(e){this.name=e.name.get(),this.bone=e.bone}}class qp{constructor(e){this.bone=e.bone,this.name=e.name.get()}}class Yp{constructor(e,t,n,a,r){const i=t.firstVertexIndex,s=t.triangleIndicesCount,l=t.firstTriangleIndex;for(let e=0;e<s;e++)a[r+e]=n[l+e]+i;this.gl=e.viewer.gl,this.firstBoneLookupIndex=t.firstBoneLookupIndex,this.boneWeightPairsCount=t.boneWeightPairsCount,this.offset=2*r,this.verticesCount=t.verticesCount,this.elements=s}render(e){const t=this.gl;t.uniform1f(e.uniforms.u_firstBoneLookupIndex,this.firstBoneLookupIndex),t.uniform1f(e.uniforms.u_boneWeightPairsCount,this.boneWeightPairsCount),t.drawElements(t.TRIANGLES,this.elements,t.UNSIGNED_SHORT,this.offset)}}const Zp=Wt(),Qp=Ma(),e_=Wt(),t_=Wt(),n_=Ma();class a_{constructor(e,t,n,a,r,i,s,l,o,u,c,d){this.dontInheritTranslation=!1,this.dontInheritRotation=!1,this.dontInheritScaling=!1,this.billboarded=!1,this.billboardedX=!1,this.billboardedY=!1,this.billboardedZ=!1,this.dirty=!0,this.wasDirty=!1,this.parent=null,this.children=[],this.object=null,this.pivot=e,this.localLocation=t,this.localRotation=n,this.localScale=a,this.worldLocation=r,this.worldRotation=i,this.worldScale=s,this.inverseWorldLocation=l,this.inverseWorldRotation=o,this.inverseWorldScale=u,this.localMatrix=c,this.worldMatrix=d,this.localRotation[3]=1,this.localScale.fill(1),this.localMatrix[0]=1,this.localMatrix[5]=1,this.localMatrix[10]=1,this.localMatrix[15]=1}recalculateTransformation(e){const t=e.scene,n=this.localMatrix,a=this.localLocation,r=this.localRotation,i=this.localScale,s=this.worldMatrix,l=this.worldLocation,o=this.worldRotation,u=this.worldScale,c=this.pivot,d=this.inverseWorldLocation,h=this.inverseWorldRotation,f=this.inverseWorldScale,m=this.parent;let p,_,g;if(this.dontInheritTranslation?(tn(Zp,m.inverseWorldLocation,l),p=tn(Zp,Zp,a)):p=a,this.dontInheritScaling?(Dn(Zp,m.inverseWorldScale,e.worldScale),g=Dn(Zp,Zp,i)):g=i,this.billboarded)_=Qp,sr(_,m.inverseWorldRotation),ur(_,_,t.camera.inverseRotation),this.convertBasis(_),ur(_,_,r);else{const{billboardedX:e,billboardedY:n,billboardedZ:a}=this;e||n||a?(e&&(g===i&&(g=e_,Qt(g,i)),g[2]*=-1),n_[0]=-r[0],n_[1]=-r[1],n_[2]=-r[2],ur(n_,n_,m.inverseWorldRotation),Ln(t_,t.camera.billboardedVectors[6],n_),e?Na(n_,Qi,Math.atan2(t_[2],t_[1])):n?Na(n_,es,Math.atan2(-t_[2],t_[0])):Na(n_,ts,Math.atan2(t_[1],t_[0])),_=Qp,ur(_,r,n_)):_=r}this.dontInheritRotation&&(ur(n_,m.inverseWorldRotation,e.worldRotation),_=ur(Qp,n_,_)),Ct(n,_,p,g,c),$t(s,m.worldMatrix,n);const b=c[0],w=c[1],v=c[2];l[0]=s[0]*b+s[4]*w+s[8]*v+s[12],l[1]=s[1]*b+s[5]*w+s[9]*v+s[13],l[2]=s[2]*b+s[6]*w+s[10]*v+s[14],d[0]=-l[0],d[1]=-l[1],d[2]=-l[2],ur(o,m.worldRotation,_),h[0]=-o[0],h[1]=-o[1],h[2]=-o[2],h[3]=o[3];const A=m.worldScale;u[0]=A[0]*g[0],u[1]=A[1]*g[1],u[2]=A[2]*g[2],f[0]=1/u[0],f[1]=1/u[1],f[2]=1/u[2]}convertBasis(e){}}function r_(e,t=a_){const n=new Float32Array(65*e),a=[];let r=0;const i=3*e,s=4*e,l=16*e,o=n.subarray(r,r+i);r+=i;const u=n.subarray(r,r+i);r+=i;const c=n.subarray(r,r+s);r+=s;const d=n.subarray(r,r+i);r+=i;const h=n.subarray(r,r+i);r+=i;const f=n.subarray(r,r+s);r+=s;const m=n.subarray(r,r+i);r+=i;const p=n.subarray(r,r+i);r+=i;const _=n.subarray(r,r+s);r+=s;const g=n.subarray(r,r+i);r+=i;const b=n.subarray(r,r+l);r+=l;const w=n.subarray(r,r+l);for(let n=0;n<e;n++){const e=3*n,r=e+3,i=4*n,s=i+4,l=16*n,v=l+16;a[n]=new t(o.subarray(e,r),u.subarray(e,r),c.subarray(i,s),d.subarray(e,r),h.subarray(e,r),f.subarray(i,s),m.subarray(e,r),p.subarray(e,r),_.subarray(i,s),g.subarray(e,r),b.subarray(l,v),w.subarray(l,v))}return{data:n,nodes:a,pivots:o,localLocations:u,localRotations:c,localScales:d,worldLocations:h,worldRotations:f,worldScales:m,inverseWorldLocations:p,invereseWorldRotations:_,inverseWorldScales:g,localMatrices:b,worldMatrices:w}}class i_ extends a_{convertBasis(e){const t=Math.PI/2;Ga(e,e,t),Fa(e,e,-t)}}class s_{constructor(e){const t=e.model,n=t.bones,a=t.boneLookup,r=r_(n.length,i_),i=r.nodes;this.nodes=i,this.worldMatrices=r.worldMatrices,this.instance=e,this.modelNodes=n,this.initialReference=t.initialReference,this.sts=t.sts,this.stc=t.stc,this.stg=t.stg,this.boneLookup=a;for(let t=0,a=n.length;t<a;t++){const a=n[t];-1===a.parent?i[t].parent=e:i[t].parent=i[a.parent],a.billboard1&&(i[t].billboarded=!0)}}update(e){const t=this.instance,n=this.nodes,a=this.modelNodes;for(let r=0,i=n.length;r<i;r++){const i=n[r],s=a[r];this.getValue4(i.localRotation,s.rotation,t),this.getValue3(i.localLocation,s.location,t),this.getValue3(i.localScale,s.scale,t),i.recalculateTransformation(t);for(const t of i.children)t.recalculateTransformation(),t.update(e)}}getValueUnsafe(e,t){const n=t.sequence;return-1!==n?this.stg[n].getValueUnsafe(e,t):e.initValue}getValue(e,t){return this.getValueUnsafe(e,t)}getValue2(e,t,n){const a=this.getValueUnsafe(t,n);return e[0]=a[0],e[1]=a[1],e}getValue3(e,t,n){const a=this.getValueUnsafe(t,n);return e[0]=a[0],e[1]=a[1],e[2]=a[2],e}getValue4(e,t,n){const a=this.getValueUnsafe(t,n);return e[0]=a[0],e[1]=a[1],e[2]=a[2],e[3]=a[3],e}}const l_=nt();class o_ extends Cp{constructor(e){super(e),this.skeleton=null,this.teamColor=0,this.vertexColor=new Float32Array([1,1,1,1]),this.sequence=-1,this.frame=0,this.sequenceLoopMode=0,this.sequenceEnded=!1,this.forced=!0,this.boneTexture=null,this.skeleton=new s_(this),-1!==this.sequence&&this.setSequence(this.sequence),this.boneTexture=new ip(e.viewer.gl,3,4*e.boneLookup.length,1)}setTexture(e,t,n){this.overrideTexture(e*Dp+t,n)}updateSkeletonAndBoneTexture(e){const t=this.model,n=t.viewer.buffer,a=t.boneLookup,r=this.skeleton,i=r.nodes,s=t.initialReference,l=a.length,o=-1!==this.sequence,u=this.boneTexture;r.update(e),n.reserve(48*l);const c=n.floatView;let d;d=o?l_:this.worldMatrix;for(let e=0;e<l;e++){const t=12*e;if(o){const t=a[e];d=$t(l_,i[t].worldMatrix,s[t])}c[t+0]=d[0],c[t+1]=d[1],c[t+2]=d[2],c[t+3]=d[4],c[t+4]=d[5],c[t+5]=d[6],c[t+6]=d[8],c[t+7]=d[9],c[t+8]=d[10],c[t+9]=d[12],c[t+10]=d[13],c[t+11]=d[14]}u.bindAndUpdate(c,u.width,1)}renderOpaque(){const e=this.model,t=e.batches;if(t.length){const n=e.viewer,a=n.sharedCache.get("m3"),r=n.gl,i=e.vertexSize,s=e.uvSetCount,l=a.standardShaders[s-1],o=l.attribs,u=l.uniforms,c=this.scene,d=c.camera,h=this.textureOverrides,f=this.boneTexture;l.use(),r.uniform1f(u.u_teamColor,this.teamColor),r.uniform4fv(u.u_vertexColor,this.vertexColor),r.uniformMatrix4fv(u.u_VP,!1,d.viewProjectionMatrix),r.uniformMatrix4fv(u.u_MV,!1,d.viewMatrix),r.uniform3fv(u.u_eyePos,d.location),r.uniform3fv(u.u_lightPos,c.lightPosition),f.bind(15),r.uniform1i(u.u_boneMap,15),r.uniform1f(u.u_vectorSize,1/f.width),r.uniform1f(u.u_rowSize,1),r.bindBuffer(r.ARRAY_BUFFER,e.arrayBuffer),r.vertexAttribPointer(o.a_position,3,r.FLOAT,!1,i,0),r.vertexAttribPointer(o.a_weights,4,r.UNSIGNED_BYTE,!1,i,12),r.vertexAttribPointer(o.a_bones,4,r.UNSIGNED_BYTE,!1,i,16),r.vertexAttribPointer(o.a_normal,4,r.UNSIGNED_BYTE,!1,i,20);for(let e=0;e<s;e++)r.vertexAttribPointer(o[`a_uv${e}`],2,r.SHORT,!1,i,24+4*e);r.vertexAttribPointer(o.a_tangent,4,r.UNSIGNED_BYTE,!1,i,24+4*s),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,e.elementBuffer);for(const e of t){const t=e.material,n=e.region;t.bind(l,h),n.render(l),t.unbind(l)}}}updateAnimations(e){const t=this.sequence;if(-1!==t){const n=this.model.sequences[t],a=n.interval;this.frame+=1e3*e,this.frame>a[1]?((0!==this.sequenceLoopMode||1&n.flags)&&2!==this.sequenceLoopMode?this.frame=a[1]:this.frame=a[0],this.sequenceEnded=!0):this.sequenceEnded=!1}(this.forced||-1!==t)&&(this.forced=!1,this.updateSkeletonAndBoneTexture(e))}setTeamColor(e){return this.teamColor=e,this}setVertexColor(e){return this.vertexColor.set(e),this}setSequence(e){const t=this.model;return this.sequence=e,this.frame=0,(e<-1||e>t.sequences.length-1)&&(e=-1,this.sequence=e),this.forced=!0,this}setSequenceLoopMode(e){return this.sequenceLoopMode=e,this}getAttachment(e){const t=this.model.attachments[e];if(t)return this.skeleton.nodes[t.bone]}}class u_{constructor(e,t){this.region=e,this.material=t}}const c_="\nuniform sampler2D u_boneMap;\nuniform float u_vectorSize;\nuniform float u_rowSize;\n\nmat4 fetchMatrix(float column, float row) {\n column *= u_vectorSize * 4.0;\n row *= u_rowSize;\n // Add in half a texel, to sample in the middle of the texel.\n // Otherwise, since the sample is directly on the boundary, floating point errors can cause the sample to get the wrong pixel.\n // This is most noticeable with NPOT textures, which the bone maps are.\n column += 0.5 * u_vectorSize;\n row += 0.5 * u_rowSize;\n\n return mat4(texture2D(u_boneMap, vec2(column, row)),\n texture2D(u_boneMap, vec2(column + u_vectorSize, row)),\n texture2D(u_boneMap, vec2(column + u_vectorSize * 2.0, row)),\n texture2D(u_boneMap, vec2(column + u_vectorSize * 3.0, row)));\n}\n",d_=`\nuniform mat4 u_VP;\nuniform mat4 u_MV;\nuniform vec3 u_eyePos;\nuniform vec3 u_lightPos;\nuniform float u_firstBoneLookupIndex;\nuniform float u_boneWeightPairsCount;\nuniform vec3 u_teamColors[14];\nuniform float u_teamColor;\nuniform vec4 u_vertexColor;\n\nattribute vec3 a_position;\nattribute vec4 a_normal;\nattribute vec2 a_uv0;\n\n#ifdef EXPLICITUV1\nattribute vec2 a_uv1;\n#endif\n#ifdef EXPLICITUV2\nattribute vec2 a_uv1, a_uv2;\n#endif\n#ifdef EXPLICITUV3\nattribute vec2 a_uv1, a_uv2, a_uv3;\n#endif\n\nattribute vec4 a_tangent;\nattribute vec4 a_bones;\nattribute vec4 a_weights;\n\nvarying vec3 v_normal;\nvarying vec4 v_uv[2]; // Pack 4 vec2 in 2 vec4, to reduce the varyings count\nvarying vec3 v_lightDir;\n// varying vec3 v_eyeVec;\nvarying vec3 v_halfVec;\nvarying vec3 v_teamColor;\nvarying vec4 v_vertexColor;\n\n${c_}\n\nvec3 TBN(vec3 vector, vec3 tangent, vec3 binormal, vec3 normal) {\n return vec3(dot(vector, tangent), dot(vector, binormal), dot(vector, normal));\n}\n\nvec4 decodeVector(vec4 v) {\n return ((v / 255.0) * 2.0) - 1.0;\n}\n\nvoid transform(inout vec3 position, inout vec3 normal, inout vec3 tangent, inout vec3 binormal, vec4 bones, vec4 weights) {\n if (u_boneWeightPairsCount > 0.0) {\n mat4 bone;\n\n if (u_boneWeightPairsCount == 1.0) {\n bone = fetchMatrix(bones[0], 0.0);\n } else {\n bone += fetchMatrix(bones[0], 0.0) * weights[0];\n bone += fetchMatrix(bones[1], 0.0) * weights[1];\n bone += fetchMatrix(bones[2], 0.0) * weights[2];\n bone += fetchMatrix(bones[3], 0.0) * weights[3];\n }\n\n position = vec3(bone * vec4(position, 1.0));\n normal = mat3(bone) * normal;\n tangent = vec3(bone * vec4(tangent, 0.0));\n binormal = vec3(bone * vec4(binormal, 0.0));\n }\n}\n\nvoid main() {\n vec4 decodedNormal = decodeVector(a_normal);\n\n vec3 position = a_position;\n vec3 normal = decodedNormal.xyz;\n vec3 tangent = vec3(decodeVector(a_tangent));\n vec3 binormal = cross(normal, tangent) * decodedNormal.w;\n\n transform(position, normal, tangent, binormal, a_bones + u_firstBoneLookupIndex, a_weights / 255.0);\n\n vec3 position_mv = vec3(u_MV * vec4(position, 1));\n\n mat3 mv = mat3(u_MV);\n vec3 t = normalize(mv * tangent);\n vec3 b = normalize(mv * binormal);\n vec3 n = normalize(mv * normal);\n\n vec3 lightDir = normalize(u_lightPos - position_mv);\n\n v_lightDir = normalize(TBN(lightDir, t, b, n));\n\n vec3 eyeVec = normalize(u_eyePos - position_mv);\n vec3 halfVec = normalize(eyeVec - u_lightPos);\n\n // v_eyeVec = TBN(eyeVec, t, b, n);\n v_halfVec = TBN(halfVec, t, b, n);\n\n v_normal = n;\n\n vec4 uv0, uv1;\n\n uv0.xy = a_uv0 / 2048.0;\n\n #ifdef EXPLICITUV1\n uv0.zw = a_uv1 / 2048.0;\n #endif\n\n #ifdef EXPLICITUV2\n uv0.zw = a_uv1 / 2048.0;\n uv1.xy = a_uv2 / 2048.0;\n #endif\n\n #ifdef EXPLICITUV3\n uv0.zw = a_uv1 / 2048.0;\n uv1.xy = a_uv2 / 2048.0;\n uv1.zw = a_uv3 / 2048.0;\n #endif\n\n v_uv[0] = uv0;\n v_uv[1] = uv1;\n\n v_teamColor = u_teamColors[int(u_teamColor)];\n v_vertexColor = u_vertexColor;\n\n gl_Position = u_VP * vec4(position, 1.0);\n}\n`,h_="\n#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\n",f_=`\n${h_}\n\n\nvarying vec3 v_normal;\nvarying vec4 v_uv[2];\nvarying vec3 v_lightDir;\n// varying vec3 v_eyeVec;\nvarying vec3 v_halfVec;\nvarying vec3 v_teamColor;\nvarying vec4 v_vertexColor;\n\nstruct LayerSettings {\n bool enabled;\n float op;\n float channels;\n float teamColorMode;\n // vec3 multAddAlpha;\n // bool useAlphaFactor;\n bool invert;\n // bool multColor;\n // bool addColor;\n bool clampResult;\n // bool useConstantColor;\n // vec4 constantColor;\n // float uvSource;\n float uvCoordinate;\n // float fresnelMode;\n // float fresnelTransformMode;\n // mat4 fresnelTransform;\n // bool fresnelClamp;\n // vec3 fresnelExponentBiasScale;\n};\n\nuniform float u_specularity;\nuniform float u_specMult;\nuniform float u_emisMult;\nuniform vec4 u_lightAmbient;\n\nuniform LayerSettings u_diffuseLayerSettings;\nuniform sampler2D u_diffuseMap;\nuniform LayerSettings u_decalLayerSettings;\nuniform sampler2D u_decalMap;\nuniform LayerSettings u_specularLayerSettings;\nuniform sampler2D u_specularMap;\nuniform LayerSettings u_glossLayerSettings;\nuniform sampler2D u_glossMap;\nuniform LayerSettings u_emissiveLayerSettings;\nuniform sampler2D u_emissiveMap;\nuniform LayerSettings u_emissive2LayerSettings;\nuniform sampler2D u_emissive2Map;\nuniform LayerSettings u_evioLayerSettings;\nuniform sampler2D u_evioMap;\nuniform LayerSettings u_evioMaskLayerSettings;\nuniform sampler2D u_evioMaskMap;\nuniform LayerSettings u_alphaLayerSettings;\nuniform sampler2D u_alphaMap;\nuniform LayerSettings u_alphaMaskLayerSettings;\nuniform sampler2D u_alphaMaskMap;\nuniform LayerSettings u_normalLayerSettings;\nuniform sampler2D u_normalMap;\nuniform LayerSettings u_heightLayerSettings;\nuniform sampler2D u_heightMap;\nuniform LayerSettings u_lightMapLayerSettings;\nuniform sampler2D u_lightMapMap;\nuniform LayerSettings u_aoLayerSettings;\nuniform sampler2D u_aoMap;\n\n#define SPECULAR_RGB 0.0\n#define SPECULAR_A_ONLY 1.0\n\n#define FRESNELMODE_NONE 0.0\n#define FRESNELMODE_STANDARD 1.0\n#define FRESNELMODE_INVERTED 2.0\n\n#define FRESNELTRANSFORM_NONE 0.0\n#define FRESNELTRANSFORM_SIMPLE 1.0\n#define FRESNELTRANSFORM_NORMALIZED 2.0\n\n#define UVMAP_EXPLICITUV0 0.0\n#define UVMAP_EXPLICITUV1 1.0\n#define UVMAP_REFLECT_CUBICENVIO 2.0\n#define UVMAP_REFLECT_SPHERICALENVIO 3.0\n#define UVMAP_PLANARLOCALZ 4.0\n#define UVMAP_PLANARWORLDZ 5.0\n#define UVMAP_PARTICLE_FLIPBOOK 6.0\n#define UVMAP_CUBICENVIO 7.0\n#define UVMAP_SPHERICALENVIO 8.0\n#define UVMAP_EXPLICITUV2 9.0\n#define UVMAP_EXPLICITUV3 10.0\n#define UVMAP_PLANARLOCALX 11.0\n#define UVMAP_PLANARLOCALY 12.0\n#define UVMAP_PLANARWORLDX 13.0\n#define UVMAP_PLANARWORLDY 14.0\n#define UVMAP_SCREENSPACE 15.0\n#define UVMAP_TRIPLANAR_LOCAL 16.0\n#define UVMAP_TRIPLANAR_WORLD 17.0\n#define UVMAP_TRIPLANAR_WORLD_LOCAL_Z 18.0\n\n#define CHANNELSELECT_RGB 0.0\n#define CHANNELSELECT_RGBA 1.0\n#define CHANNELSELECT_A 2.0\n#define CHANNELSELECT_R 3.0\n#define CHANNELSELECT_G 4.0\n#define CHANNELSELECT_B 5.0\n\n#define TEAMCOLOR_NONE 0.0\n#define TEAMCOLOR_DIFFUSE 1.0\n#define TEAMCOLOR_EMISSIVE 2.0\n\n#define LAYEROP_MOD 0.0\n#define LAYEROP_MOD2X 1.0\n#define LAYEROP_ADD 2.0\n#define LAYEROP_LERP 3.0\n#define LAYEROP_TEAMCOLOR_EMISSIVE_ADD 4.0\n#define LAYEROP_TEAMCOLOR_DIFFUSE_ADD 5.0\n#define LAYEROP_ADD_NO_ALPHA 6.0\n\n// float calculateFresnelTerm(vec3 normal, vec3 eyeToVertex, float exponent, mat4 fresnelTransform, float fresnelTransformMode, bool fresnelClamp) {\n// vec3 fresnelDir = eyeToVertex;\n// float result;\n\n// if (fresnelTransformMode != FRESNELTRANSFORM_NONE) {\n// fresnelDir = (fresnelTransform * vec4(fresnelDir, 1.0)).xyz;\n\n// if (fresnelTransformMode == FRESNELTRANSFORM_NORMALIZED) {\n// fresnelDir = normalize(fresnelDir);\n// }\n// }\n\n// if (fresnelClamp) {\n// result = 1.0 - clamp(-dot(normal, fresnelDir), 0.0, 1.0);\n// } else {\n// result = 1.0 - abs(dot(normal, fresnelDir));\n// }\n\n// result = max(result, 0.0000001);\n\n// return pow(result, exponent);\n// }\n\nvec3 combineLayerColor(vec4 color, vec3 result, LayerSettings layerSettings) {\n if (layerSettings.op == LAYEROP_MOD) {\n result *= color.rgb;\n } else if (layerSettings.op == LAYEROP_MOD2X) {\n result *= color.rgb * 2.0;\n } else if (layerSettings.op == LAYEROP_ADD) {\n result += color.rgb * color.a;\n } else if (layerSettings.op == LAYEROP_ADD_NO_ALPHA) {\n result += color.rgb;\n } else if (layerSettings.op == LAYEROP_LERP) {\n result = mix(result, color.rgb, color.a);\n } else if (layerSettings.op == LAYEROP_TEAMCOLOR_EMISSIVE_ADD) {\n result += color.a * v_teamColor;\n } else if (layerSettings.op == LAYEROP_TEAMCOLOR_DIFFUSE_ADD) {\n result += color.a * v_teamColor;\n }\n\n return result;\n}\n\nvec4 chooseChannel(float channel, vec4 texel) {\n if (channel == CHANNELSELECT_R) {\n texel = texel.rrrr;\n } else if (channel == CHANNELSELECT_G) {\n texel = texel.gggg;\n } else if (channel == CHANNELSELECT_B) {\n texel = texel.bbbb;\n } else if (channel == CHANNELSELECT_A) {\n texel = texel.aaaa;\n } else if (channel == CHANNELSELECT_RGB) {\n texel.a = 1.0;\n }\n\n return texel;\n}\n\nvec2 getUV(LayerSettings layerSettings) {\n if (layerSettings.uvCoordinate == 1.0) {\n return v_uv[0].zw;\n } else if (layerSettings.uvCoordinate == 2.0) {\n return v_uv[1].xy;\n } else if (layerSettings.uvCoordinate == 3.0) {\n return v_uv[1].zw;\n }\n\n return v_uv[0].xy;\n}\n\nvec4 sampleLayer(sampler2D layer, LayerSettings layerSettings) {\n // if (layerSettings.useConstantColor) {\n // return layerSettings.constantColor;\n // }\n\n return texture2D(layer, getUV(layerSettings));\n}\n\nvec4 computeLayerColor(sampler2D layer, LayerSettings layerSettings) {\n vec4 color = sampleLayer(layer, layerSettings);\n\n // if (layerSettings.useMask) {\n // result *= mask;\n // }\n\n vec4 result = chooseChannel(layerSettings.channels, color);\n\n // if (layerSettings.useAlphaFactor) {\n // result.a *= layerSettings.multiplyAddAlpha.z;\n // }\n\n if (layerSettings.teamColorMode == TEAMCOLOR_DIFFUSE) {\n result = vec4(mix(v_teamColor, result.rgb, color.a), 1.0);\n } else if (layerSettings.teamColorMode == TEAMCOLOR_EMISSIVE) {\n result = vec4(mix(v_teamColor, result.rgb, color.a), 1.0);\n }\n\n if (layerSettings.invert) {\n result = vec4(1.0) - result;\n }\n\n // if (layerSettings.multiplyEnable) {\n // result *= layerSettings.multiplyAddAlpha.x;\n // }\n\n // if (layerSettings.addEnable) {\n // result += layerSettings.multiplyAddAlpha.y;\n // }\n\n if (layerSettings.clampResult) {\n result = clamp(result, 0.0, 1.0);\n }\n\n // if (layerSettings.fresnelMode != FRESNELMODE_NONE) {\n // float fresnelTerm = calculateFresnelTerm(v_normal, v_eyeVec, layerSettings.fresnelExponentBiasScale.x, layerSettings.fresnelTransform, layerSettings.fresnelTransformMode, layerSettings.fresnelClamp);\n \n // if (layerSettings.fresnelMode == FRESNELMODE_INVERTED) {\n // fresnelTerm = 1.0 - fresnelTerm;\n // }\n \n // fresnelTerm = clamp(fresnelTerm * layerSettings.fresnelExponentBiasScale.z + layerSettings.fresnelExponentBiasScale.y, 0.0, 1.0);\n \n // result *= fresnelTerm;\n // }\n\n return result;\n}\n\nvec3 decodeNormal(sampler2D map) {\n vec4 texel = texture2D(map, v_uv[0].xy);\n vec3 normal;\n\n normal.xy = 2.0 * texel.wy - 1.0;\n normal.z = sqrt(max(0.0, 1.0 - dot(normal.xy, normal.xy)));\n\n return normal;\n}\n\nvec4 computeSpecular(sampler2D specularMap, LayerSettings layerSettings, float specularity, float specMult, vec3 normal) {\n vec4 color;\n\n if (layerSettings.enabled) {\n color = computeLayerColor(specularMap, layerSettings);\n } else {\n color = vec4(0);\n }\n\n float factor = pow(max(-dot(v_halfVec, normal), 0.0), specularity) * specMult;\n\n return color * factor;\n}\n\n\nvoid main() {\n vec3 color;\n vec4 final = u_lightAmbient;\n vec3 normal;\n vec3 lightMapDiffuse;\n\n if (u_normalLayerSettings.enabled) {\n normal = decodeNormal(u_normalMap);\n } else {\n normal = v_normal;\n }\n\n float lambertFactor = max(dot(normal, v_lightDir), 0.0);\n\n if (lambertFactor > 0.0) {\n if (u_diffuseLayerSettings.enabled) {\n vec4 diffuseColor = computeLayerColor(u_diffuseMap, u_diffuseLayerSettings);\n\n color = combineLayerColor(diffuseColor, color, u_diffuseLayerSettings);\n }\n\n if (u_decalLayerSettings.enabled) {\n vec4 decalColor = computeLayerColor(u_decalMap, u_decalLayerSettings);\n\n color = combineLayerColor(decalColor, color, u_decalLayerSettings);\n }\n\n vec4 specularColor = computeSpecular(u_specularMap, u_specularLayerSettings, u_specularity, u_specMult, normal);\n\n if (u_lightMapLayerSettings.enabled) {\n vec4 lightMapColor = computeLayerColor(u_lightMapMap, u_lightMapLayerSettings) * 2.0;\n\n lightMapDiffuse = lightMapColor.rgb;\n }\n\n // final.rgb = color * lightMapDiffuse + specularColor.rgb;\n final.rgb = (color + specularColor.rgb) * lambertFactor;\n\n bool addEmissive = false;\n vec3 emissiveColor;\n vec4 tempColor;\n\n if (u_emissiveLayerSettings.enabled) {\n tempColor = computeLayerColor(u_emissiveMap, u_emissiveLayerSettings);\n\n if (u_emissiveLayerSettings.op == LAYEROP_MOD || u_emissiveLayerSettings.op == LAYEROP_MOD2X || u_emissiveLayerSettings.op == LAYEROP_LERP) {\n final.rgb = combineLayerColor(tempColor, final.rgb, u_emissiveLayerSettings);\n } else {\n emissiveColor = combineLayerColor(tempColor, emissiveColor, u_emissiveLayerSettings);\n addEmissive = true;\n }\n }\n\n if (u_emissive2LayerSettings.enabled) {\n tempColor = computeLayerColor(u_emissive2Map, u_emissive2LayerSettings);\n\n if (!addEmissive && (u_emissive2LayerSettings.op == LAYEROP_MOD || u_emissive2LayerSettings.op == LAYEROP_MOD2X || u_emissive2LayerSettings.op == LAYEROP_LERP)) {\n final.rgb = combineLayerColor(tempColor, final.rgb, u_emissive2LayerSettings);\n } else {\n emissiveColor = combineLayerColor(tempColor, emissiveColor, u_emissive2LayerSettings);\n addEmissive = true;\n }\n }\n\n if (addEmissive) {\n final.rgb += emissiveColor * u_emisMult;\n }\n }\n\n gl_FragColor = final * v_vertexColor;\n}\n`,m_={load(e){const t=e.gl,n=e.webgl,a=[[255,3,3],[0,66,255],[28,230,185],[84,0,129],[255,252,1],[254,138,14],[32,192,0],[229,91,176],[149,150,151],[126,191,241],[16,98,70],[78,42,4],[40,40,40],[0,0,0]];if(!n.ensureExtension("OES_texture_float"))throw new Error("M3: No float texture support!");const r=[];for(let e=0;e<4;e++){const i=n.createShader(`#define EXPLICITUV${e}\n${d_}`,f_);i.use();for(let e=0;e<14;e++){const n=a[e];t.uniform3f(i.uniforms["u_teamColors["+e+"]"],n[0]/255,n[1]/255,n[2]/255)}r[e]=i}const i={standardShaders:r};e.sharedCache.set("m3",i)},isValidSource:e=>e instanceof Zl||Ql(e),resource:class extends Rp{constructor(e,t){let n;super(t),this.name="",this.batches=[],this.materials=[[],[]],this.materialMaps=[],this.bones=[],this.sequences=[],this.sts=[],this.stc=[],this.stg=[],this.attachments=[],this.cameras=[],this.regions=[],this.initialReference=[],this.elementBuffer=null,this.arrayBuffer=null,this.vertexSize=0,this.uvSetCount=0,e instanceof Zl?n=e:(n=new Zl,n.load(e));const a=n.model,r=a.divisions.first();this.name=a.modelName.get(),this.setupGeometry(a,r);const i=a.materialReferences.get();this.materialMaps=i;const s=a.materials[0].get();for(let e=0,t=s.length;e<t;e++)this.materials[1].push(new Fp(this,e,s[e]));for(const e of r.batches.get()){const t=e.regionIndex,n=i[e.materialReferenceIndex];1===n.materialType&&this.batches.push(new u_(this.regions[t],this.materials[1][n.materialIndex]))}this.initialReference=a.absoluteInverseBoneRestPositions.get();for(const e of a.bones.get())this.bones.push(new Gp(e));this.boneLookup=a.boneLookup.get();const l=a.sequences.get();if(l)for(const e of l)this.sequences.push(new Vp(e));const o=a.sts.get();if(o)for(const e of o)this.sts.push(new Kp(e));const u=a.stc.get();if(u)for(const e of u)this.stc.push(new $p(e));const c=a.stg.get();if(c)for(const e of c)this.stg.push(new Jp(e,this.sts,this.stc));this.addGlobalAnims();const d=a.attachmentPoints.get();if(d)for(const e of d)this.attachments.push(new Wp(e));const h=a.cameras.get();if(h)for(const e of h)this.cameras.push(new qp(e))}addInstance(){return new o_(this)}setupGeometry(e,t){const n=this.viewer.gl;let a=1;const r=e.vertexFlags;262144&r?a=2:524288&r?a=3:1048576&r&&(a=4);const i=t.regions.get();let s=0;const l=[];for(let e=0,t=i.length;e<t;e++)l[e]=s,s+=i[e].triangleIndicesCount;const o=new Uint16Array(s),u=t.triangles.get();for(let e=0,t=i.length;e<t;e++)this.regions.push(new Yp(this,i[e],u,o,l[e]));const c=e.vertices.get();this.elementBuffer=n.createBuffer(),n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,this.elementBuffer),n.bufferData(n.ELEMENT_ARRAY_BUFFER,o,n.STATIC_DRAW);const d=n.createBuffer();n.bindBuffer(n.ARRAY_BUFFER,d),n.bufferData(n.ARRAY_BUFFER,c,n.STATIC_DRAW),this.arrayBuffer=d,this.vertexSize=4*(7+a),this.uvSetCount=a}mapMaterial(e){const t=this.materialMaps[e];return this.materials[1][t.materialIndex]}addGlobalAnims(){}}};let p_;"function"==typeof OfflineAudioContext&&(p_=new OfflineAudioContext(1,1,48e3));class __{constructor(){this.map={}}set(e,t){"string"!=typeof t&&(t=t.toString()),this.map[e.toLowerCase()]=t}string(e){return this.map[e.toLowerCase()]}number(e){const t=this.string(e);return t?parseFloat(t):0}}class g_{constructor(e){this.map={},e&&this.load(e)}load(e){if(e.startsWith("ID;")){const t=new Bl;t.load(e);const n=t.rows,a=n[0],r=this.map;for(let e=1,t=n.length;e<t;e++){const t=n[e];if(t){const e=t[0];if(e&&"_"!==e){r[e]||(r[e]=new __);const n=r[e];for(let e=0,r=a.length;e<r;e++){let r=a[e];void 0===r&&(r=`column${e}`),n.map[r.toLowerCase()]=t[e]}}}}}else{const t=new Cl;t.load(e);const n=t.sections,a=this.map;for(const[e,t]of n.entries()){a[e]||(a[e]=new __);const n=a[e];for(const[e,a]of t)n.map[e.toLowerCase()]=a}}}getRow(e){return this.map[e]}getProperty(e,t){return this.map[e].map[t]}setRow(e,t){this.map[e]=t}findRow(e,t){for(const n of Object.values(this.map))if(n.string(e)===t)return n}}class b_{constructor(e){this.name=e.name,this.interval=e.interval,this.nonLooping=e.nonLooping,this.rarity=e.rarity,this.bounds=new Up;const t=e.extent;this.bounds.fromExtents(t.min,t.max)}}class w_{constructor(e,t,n,a,r){this.frames=[],this.values=[],this.inTans=[],this.outTans=[],this.constant=!1,this.sd=e,this.start=t,this.end=n;const i=e.interpolationType,s=a.frames,l=a.values,o=a.inTans,u=a.outTans,c=e.defval;r&&s[0]>n&&(this.frames[0]=s[0],this.values[0]=l[0]);for(let e=0,a=s.length;e<a;e++){const a=s[e];a>=t&&a<=n&&(this.frames.push(a),this.values.push(l[e]),i>1&&(this.inTans.push(o[e]),this.outTans.push(u[e])))}const d=this.frames.length;if(0===d)this.constant=!0,this.frames[0]=t,this.values[0]=c;else if(1===d)this.constant=!0;else{const e=this.values[0];this.constant=this.values.every(t=>e.every((e,n)=>e===t[n]))}}getValue(e,t){const n=this.frames.length;if(this.constant||t<this.start)return this.sd.copy(e,this.values[0]),-1;{let a=-1,r=-1;const i=n-1;if(t<this.frames[0]||t>=this.frames[i])a=i,r=0;else for(let e=1;e<n;e++)if(this.frames[e]>t){a=e-1,r=e;break}let s=this.frames[a];const l=this.frames[r];let o=l-s;o<0&&(o+=this.end-this.start,t<s&&(s=l));const u=0==o?0:(t-s)/o;return this.sd.interpolate(e,this.values,this.inTans,this.outTans,a,r,u),a}}}const v_={KLAV:0,KATV:0,KPEV:0,KP2V:0,KRVS:0},A_=new Float32Array(1),y_=new Uint32Array(1),S_=new Float32Array([1]),T_=Wt(),x_=Ma(),E_=Zt(1,1,1),L_=T_,I_={KMTF:A_,KMTA:S_,KTAT:T_,KTAR:x_,KTAS:E_,KGAO:S_,KGAC:L_,KLAS:A_,KLAE:A_,KLAC:L_,KLAI:A_,KLBI:A_,KLBC:L_,KLAV:S_,KATV:S_,KPEE:A_,KPEG:A_,KPLN:A_,KPLT:A_,KPEL:A_,KPES:A_,KPEV:S_,KP2S:A_,KP2R:A_,KP2L:A_,KP2G:A_,KP2E:A_,KP2N:A_,KP2W:A_,KP2V:S_,KRHA:A_,KRHB:A_,KRAL:new Float32Array([0]),KRCO:L_,KRTX:A_,KRVS:S_,KCTR:T_,KTTR:T_,KCRL:y_,KGTR:T_,KGRT:x_,KGSC:E_};class U_{constructor(e,t){this.globalSequence=null,this.sequences=[];const n=e.globalSequences,a=t.globalSequenceId,r=v_[t.name];if(this.model=e,this.name=t.name,this.defval=I_[t.name],this.interpolationType=void 0!==r?r:t.interpolationType,-1!==a&&n)this.globalSequence=new w_(this,0,n[a],t,!0);else for(const n of e.sequences){const e=n.interval;this.sequences.push(new w_(this,e[0],e[1],t,!1))}}getValue(e,t,n,a){return this.globalSequence?this.globalSequence.getValue(e,a%this.globalSequence.end):this.sequences[t].getValue(e,n)}isVariant(e){return this.globalSequence?!this.globalSequence.constant:!this.sequences[e].constant}}class R_ extends U_{copy(e,t){e[0]=t[0]}interpolate(e,t,n,a,r,i,s){const l=this.interpolationType,o=t[r][0];0===l?e[0]=o:1===l?e[0]=Ts(o,t[i][0],s):2===l?e[0]=xs(o,a[r][0],n[i][0],t[i][0],s):3===l&&(e[0]=Es(o,a[r][0],n[i][0],t[i][0],s))}}class C_ extends U_{copy(e,t){Qt(e,t)}interpolate(e,t,n,a,r,i,s){const l=this.interpolationType;0===l?Qt(e,t[r]):1===l?An(e,t[r],t[i],s):2===l?yn(e,t[r],a[r],n[i],t[i],s):3===l&&Sn(e,t[r],a[r],n[i],t[i],s)}}class M_ extends U_{copy(e,t){sr(e,t)}interpolate(e,t,n,a,r,i,s){const l=this.interpolationType;0===l?sr(e,t[r]):1===l?ja(e,t[r],t[i],s):2!==l&&3!==l||Ar(e,t[r],a[r],n[i],t[i],s)}}function B_(e,t){return t instanceof io||t instanceof so?new R_(e,t):t instanceof lo?new C_(e,t):new M_(e,t)}class N_{constructor(e,t){this.animations=new Map,this.variants={},this.model=e;for(const n of t.animations)this.animations.set(n.name,B_(e,n))}getScalarValue(e,t,n,a,r,i){if(-1!==n){const i=this.animations.get(t);if(i)return i.getValue(e,n,a,r)}return e[0]=i,-1}getVectorValue(e,t,n,a,r,i){if(-1!==n){const i=this.animations.get(t);if(i)return i.getValue(e,n,a,r)}return e[0]=i[0],e[1]=i[1],e[2]=i[2],-1}getQuatValue(e,t,n,a,r,i){if(-1!==n){const i=this.animations.get(t);if(i)return i.getValue(e,n,a,r)}return e[0]=i[0],e[1]=i[1],e[2]=i[2],e[3]=i[3],-1}addVariants(e,t){const n=this.animations.get(e),a=this.model.sequences.length,r=new Uint8Array(a);if(n)for(let e=0;e<a;e++)n.isVariant(e)&&(r[e]=1);this.variants[t]=r}addVariantIntersection(e,t){const n=this.model.sequences.length,a=new Uint8Array(n);for(let t=0;t<n;t++)for(const n of e)this.variants[n][t]&&(a[t]=1);this.variants[t]=a}}class P_ extends N_{constructor(e,t){super(e,t),this.addVariants("KTAT","translation"),this.addVariants("KTAR","rotation"),this.addVariants("KTAS","scale")}getTranslation(e,t,n,a){return this.getVectorValue(e,"KTAT",t,n,a,ns)}getRotation(e,t,n,a){return this.getQuatValue(e,"KTAR",t,n,a,is)}getScale(e,t,n,a){return this.getVectorValue(e,"KTAS",t,n,a,as)}}function k_(e,t){return 0===e?[t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA]:1===e?[t.SRC_ALPHA,t.ONE]:2===e?[t.ZERO,t.SRC_COLOR]:3===e?[t.DST_COLOR,t.SRC_COLOR]:4===e?[t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA]:[0,0]}class O_ extends N_{constructor(e,t,n,a){super(e,t),this.textureId=0,this.blendSrc=0,this.blendDst=0,this.blended=!1,this.textureAnimation=null;let r=t.filterMode;const i=t.textureAnimationId,s=e.viewer.gl;this.index=n,this.priorityPlane=a,r>6&&(r=2),this.filterMode=r,-1!==t.textureId&&(this.textureId=t.textureId),this.coordId=t.coordId,this.alpha=t.alpha;const l=t.flags;if(this.unshaded=1&l,this.sphereEnvironmentMap=2&l,this.twoSided=16&l,this.unfogged=32&l,this.noDepthTest=64&l,this.noDepthSet=128&l,this.depthMaskValue=0===r||1===r,r>1&&(this.blended=!0,[this.blendSrc,this.blendDst]=function(e,t){return 2===e?[t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA]:3===e||4===e?[t.SRC_ALPHA,t.ONE]:5===e?[t.ZERO,t.SRC_COLOR]:6===e?[t.DST_COLOR,t.SRC_COLOR]:[0,0]}(r,s)),-1!==i){const t=e.textureAnimations[i];t&&(this.textureAnimation=t)}this.addVariants("KMTA","alpha"),this.addVariants("KMTF","textureId")}bind(e){const t=this.model.viewer.gl;t.uniform1f(e.uniforms.u_filterMode,this.filterMode),this.blended?(t.enable(t.BLEND),t.blendFunc(this.blendSrc,this.blendDst)):t.disable(t.BLEND),this.twoSided?t.disable(t.CULL_FACE):t.enable(t.CULL_FACE),this.noDepthTest?t.disable(t.DEPTH_TEST):t.enable(t.DEPTH_TEST),this.noDepthSet?t.depthMask(!1):t.depthMask(this.depthMaskValue)}getAlpha(e,t,n,a){return this.getScalarValue(e,"KMTA",t,n,a,this.alpha)}getTextureId(e,t,n,a){return this.getScalarValue(e,"KMTF",t,n,a,this.textureId)}}class D_{constructor(e,t,n){this.model=e,this.shader=t,this.layers=n}}class F_ extends N_{constructor(e,t){super(e,t);const n=t.color;this.alpha=t.alpha,this.color=Zt(n[2],n[1],n[0]),this.geosetId=t.geosetId,this.addVariants("KGAO","alpha"),this.addVariants("KGAC","color")}getAlpha(e,t,n,a){return this.getScalarValue(e,"KGAO",t,n,a,this.alpha)}getColor(e,t,n,a){return this.getVectorValue(e,"KGAC",t,n,a,this.color)}}const G_={1:"TeamColor/TeamColor00",2:"TeamGlow/TeamGlow00",11:"Cliff/Cliff0",21:"",31:"LordaeronTree/LordaeronSummerTree",32:"AshenvaleTree/AshenTree",33:"BarrensTree/BarrensTree",34:"NorthrendTree/NorthTree",35:"Mushroom/MushroomTree",36:"RuinsTree/RuinsTree",37:"OutlandMushroomTree/MushroomTree"};class V_ extends N_{constructor(e,t,n){super(e,t),this.index=n,this.name=t.name,this.objectId=t.objectId,this.parentId=t.parentId,this.pivot=e.pivotPoints[t.objectId]||Wt();const a=t.flags;this.dontInheritTranslation=(1&a)>0,this.dontInheritRotation=(4&a)>0,this.dontInheritScaling=(2&a)>0,this.billboarded=(8&a)>0,this.billboardedX=(16&a)>0,this.billboardedY=(32&a)>0,this.billboardedZ=(64&a)>0,this.cameraAnchored=(128&a)>0,this.anyBillboarding=this.billboarded||this.billboardedX||this.billboardedY||this.billboardedZ,t.objectId===t.parentId&&(this.parentId=-1),this.addVariants("KGTR","translation"),this.addVariants("KGRT","rotation"),this.addVariants("KGSC","scale"),this.addVariantIntersection(["translation","rotation","scale"],"generic")}getVisibility(e,t,n,a){return e[0]=1,-1}getTranslation(e,t,n,a){return this.getVectorValue(e,"KGTR",t,n,a,ns)}getRotation(e,t,n,a){return this.getQuatValue(e,"KGRT",t,n,a,is)}getScale(e,t,n,a){return this.getVectorValue(e,"KGSC",t,n,a,as)}}class K_ extends V_{constructor(e,t,n){super(e,t,n),this.geosetAnimation=e.geosetAnimations[t.geosetAnimationId]}getVisibility(e,t,n,a){return this.geosetAnimation?this.geosetAnimation.getAlpha(e,t,n,a):(e[0]=1,-1)}}class H_ extends V_{constructor(e,t,n){super(e,t,n),this.type=t.type,this.attenuation=t.attenuation,this.color=t.color,this.intensity=t.intensity,this.ambientColor=t.ambientColor,this.ambientIntensity=t.ambientIntensity}getAttenuationStart(e,t,n,a){return this.getScalarValue(e,"KLAS",t,n,a,this.attenuation[0])}getAttenuationEnd(e,t,n,a){return this.getScalarValue(e,"KLAE",t,n,a,this.attenuation[1])}getIntensity(e,t,n,a){return this.getScalarValue(e,"KLAI",t,n,a,this.intensity)}getColor(e,t,n,a){return this.getVectorValue(e,"KLAC",t,n,a,this.color)}getAmbientIntensity(e,t,n,a){return this.getScalarValue(e,"KLBI",t,n,a,this.ambientIntensity)}getAmbientColor(e,t,n,a){return this.getVectorValue(e,"KLBC",t,n,a,this.ambientColor)}}class z_ extends V_{}class j_ extends V_{constructor(e,t,n){super(e,t,n),this.internalModel=null;const a=t.path.replace(/\\/g,"/").toLowerCase().replace(".mdl",".mdx");if(this.path=a,this.attachmentId=t.attachmentId,""!==a&&-1!=a.indexOf(".mdx")){const t=e.viewer.load(a,e.pathSolver,e.solverParams);t.then(e=>{e&&(this.internalModel=e)}),e.blockers.push(t)}}getVisibility(e,t,n,a){return this.getScalarValue(e,"KATV",t,n,a,1)}}class X_ extends V_{constructor(e,t,n){super(e,t,n),this.internalModel=null,this.ok=!1,this.speed=t.speed,this.latitude=t.latitude,this.longitude=t.longitude,this.lifeSpan=t.lifeSpan,this.gravity=t.gravity,this.emissionRate=t.emissionRate,e.viewer.load(t.path.replace(/\\/g,"/").toLowerCase().replace(".mdl",".mdx"),e.pathSolver,e.solverParams).then(e=>{e&&(this.internalModel=e,this.ok=!0)})}getSpeed(e,t,n,a){return this.getScalarValue(e,"KPES",t,n,a,this.speed)}getLatitude(e,t,n,a){return this.getScalarValue(e,"KPLTV",t,n,a,this.latitude)}getLongitude(e,t,n,a){return this.getScalarValue(e,"KPLN",t,n,a,this.longitude)}getLifeSpan(e,t,n,a){return this.getScalarValue(e,"KPEL",t,n,a,this.lifeSpan)}getGravity(e,t,n,a){return this.getScalarValue(e,"KPEG",t,n,a,this.gravity)}getEmissionRate(e,t,n,a){return this.getScalarValue(e,"KPEE",t,n,a,this.emissionRate)}getVisibility(e,t,n,a){return this.getScalarValue(e,"KPEV",t,n,a,1)}}const $_=Wt(),J_=Wt(),W_=Wt(),q_=60,Y_=1e4;function Z_(e,t){const n=e.objects,a=t.floatView;let r=0;for(const e of n){const t=15*r,n=t+0,i=e.vertices;a[n+0]=i[0],a[n+1]=i[1],a[n+2]=i[2],a[n+3]=i[3],a[n+4]=i[4],a[n+5]=i[5],a[n+6]=i[6],a[n+7]=i[7],a[n+8]=i[8],a[n+9]=i[9],a[n+10]=i[10],a[n+11]=i[11],a[t+12]=e.health,r+=1}}function Q_(e,t){let n=e.alive;const a=e.emitterObject.geometryEmitterType;if(1===a&&(n-=1),n>0){const r=e.instance.model.viewer,i=r.buffer,s=r.gl,l=r.webgl.extensions.ANGLE_instanced_arrays,o=n*q_,u=t.attribs;i.reserve(o),0===a?(function(e,t){const n=e.instance,a=e.objects,r=t.byteView,i=t.floatView,s=e.emitterObject,l=s.modelSpace,o=s.tailLength,u=e.node,c=n.teamColor;let d=0;for(const e of a){const t=d*q_,n=15*d,a=n+0;let s=e.location;const h=e.scale,f=e.tail;if(0===f)l&&(s=xn($_,s,u.worldMatrix)),i[a+0]=s[0],i[a+1]=s[1],i[a+2]=s[2],i[a+3]=e.facing;else{const t=e.velocity;let n=J_,r=s;n[0]=r[0]-o*t[0],n[1]=r[1]-o*t[1],n[2]=r[2]-o*t[2],l&&(n=xn(n,n,u.worldMatrix),r=xn(W_,r,u.worldMatrix)),i[a+0]=n[0],i[a+1]=n[1],i[a+2]=n[2],i[a+3]=r[0],i[a+4]=r[1],i[a+5]=r[2]}i[a+6]=h[0],i[a+7]=h[0],i[a+8]=h[0],i[n+12]=e.health,r[t+56]=f,r[t+57]=c,d+=1}}(e,i),function(e,t){const n=e.instance,a=n.textureOverrides,r=n.scene.camera,i=e.emitterObject,s=i.model,l=s.viewer,o=l.gl,u=l.sharedCache.get("mdx"),c=t.uniforms,d=i.colors,h=i.intervals,f=i.replaceableId;let m,p=i.internalTexture;o.blendFunc(i.blendSrc,i.blendDst),o.uniform1f(c.u_filterMode,i.filterMode),p=i.internalTexture?i.internalTexture:1===f?u.teamColors[n.teamColor]:2===f?u.teamGlows[n.teamColor]:s.textures[i.textureId];let _=a.get(1e3+i.index);_||(0===f&&(_=a.get(i.textureId)),_||(_=p.texture)),l.webgl.bindTextureAndWrap(_,0,p.wrapS,p.wrapT),m=i.xYQuad?r.vectors:r.billboardedVectors,o.uniform1f(c.u_lifeSpan,i.lifeSpan),o.uniform1f(c.u_timeMiddle,i.timeMiddle),o.uniform1f(c.u_columns,i.columns),o.uniform1f(c.u_rows,i.rows),o.uniform1f(c.u_teamColored,i.teamColored),o.uniform3fv(c["u_intervals[0]"],h[0]),o.uniform3fv(c["u_intervals[1]"],h[1]),o.uniform3fv(c["u_intervals[2]"],h[2]),o.uniform3fv(c["u_intervals[3]"],h[3]),o.uniform4fv(c["u_colors[0]"],d[0]),o.uniform4fv(c["u_colors[1]"],d[1]),o.uniform4fv(c["u_colors[2]"],d[2]),o.uniform3fv(c.u_scaling,i.scaling),i.head&&(o.uniform3fv(c["u_vertices[0]"],m[0]),o.uniform3fv(c["u_vertices[1]"],m[1]),o.uniform3fv(c["u_vertices[2]"],m[2]),o.uniform3fv(c["u_vertices[3]"],m[3])),i.tail&&o.uniform3fv(c.u_cameraZ,r.directionZ)}(e,t)):1===a?(function(e,t){let n=e.first;const a=t.byteView,r=t.floatView,i=e.emitterObject.columns,s=1/(e.alive-1);let l=0;for(;n.next;){const e=n.next.vertices,t=l*q_,o=15*l+0,u=t+52,c=t+57,d=(n.slot%i+(1-l*s-s))/i,h=n.slot/i,f=d+s,m=n.vertices,p=n.color;r[o+0]=m[0],r[o+1]=m[1],r[o+2]=m[2],r[o+3]=m[3],r[o+4]=m[4],r[o+5]=m[5],r[o+6]=e[3],r[o+7]=e[4],r[o+8]=e[5],r[o+9]=e[0],r[o+10]=e[1],r[o+11]=e[2],a[u+0]=p[0],a[u+1]=p[1],a[u+2]=p[2],a[u+3]=p[3],a[c+0]=255*d,a[c+1]=255*f,a[c+2]=255*h,n=n.next,l+=1}}(e,i),function(e,t){const n=e.instance.textureOverrides,a=e.emitterObject,r=a.layer,i=a.model,s=i.viewer.gl,l=t.uniforms,o=i.textures[r.textureId],u=n.get(r.textureId)||o.texture;r.bind(t),s.uniform1f(l.u_filterMode,r.filterMode),i.viewer.webgl.bindTextureAndWrap(u,0,o.wrapS,o.wrapT),s.uniform1f(l.u_columns,a.columns),s.uniform1f(l.u_rows,a.rows)}(e,t)):2===a?(Z_(e,i),function(e,t){const n=e.instance.textureOverrides,a=e.emitterObject,r=a.intervalTimes,i=a.intervals,s=a.colors,l=a.model,o=l.viewer.gl,u=t.uniforms,c=a.internalTexture,d=n.get(Y_+a.index)||c.texture;o.blendFunc(a.blendSrc,a.blendDst),l.viewer.webgl.bindTextureAndWrap(d,0,c.wrapS,c.wrapT),o.uniform1f(u.u_lifeSpan,a.lifeSpan),o.uniform1f(u.u_columns,a.columns),o.uniform1f(u.u_rows,a.rows),o.uniform3f(u.u_intervalTimes,r[0],r[1],0),o.uniform3fv(u["u_intervals[0]"],i[0]),o.uniform3fv(u["u_intervals[1]"],i[1]),o.uniform4fv(u["u_colors[0]"],s[0]),o.uniform4fv(u["u_colors[1]"],s[1]),o.uniform4fv(u["u_colors[2]"],s[2])}(e,t)):(Z_(e,i),function(e,t){const n=e.instance.textureOverrides,a=e.emitterObject,r=a.intervalTimes,i=a.colors,s=a.model,l=s.viewer.gl,o=t.uniforms,u=a.internalTexture,c=n.get(Y_+a.index)||u.texture;l.blendFunc(a.blendSrc,a.blendDst),s.viewer.webgl.bindTextureAndWrap(c,0,u.wrapS,u.wrapT),l.uniform1f(o.u_lifeSpan,a.lifeSpan),l.uniform1f(o.u_columns,a.columns),l.uniform1f(o.u_rows,a.rows),l.uniform3fv(o.u_intervalTimes,r),l.uniform4fv(o["u_colors[0]"],i[0]),l.uniform4fv(o["u_colors[1]"],i[1]),l.uniform4fv(o["u_colors[2]"],i[2])}(e,t)),i.bindAndUpdate(o),s.uniform1i(t.uniforms.u_emitter,a),s.vertexAttribPointer(u.a_p0,3,s.FLOAT,!1,q_,0),s.vertexAttribPointer(u.a_p1,3,s.FLOAT,!1,q_,12),s.vertexAttribPointer(u.a_p2,3,s.FLOAT,!1,q_,24),s.vertexAttribPointer(u.a_p3,3,s.FLOAT,!1,q_,36),s.vertexAttribPointer(u.a_health,1,s.FLOAT,!1,q_,48),s.vertexAttribPointer(u.a_color,4,s.UNSIGNED_BYTE,!0,q_,52),s.vertexAttribPointer(u.a_tail,1,s.UNSIGNED_BYTE,!1,q_,56),s.vertexAttribPointer(u.a_leftRightTop,3,s.UNSIGNED_BYTE,!1,q_,57),l.drawArraysInstancedANGLE(s.TRIANGLES,0,6,n)}}class eg{constructor(e,t){this.texture=null,this.wrapS=33071,this.wrapT=33071,this.replaceableId=e,1&t&&(this.wrapS=10497),2&t&&(this.wrapT=10497)}}class tg extends V_{constructor(e,t,n){super(e,t,n),this.geometryEmitterType=0,this.teamColored=0,this.internalTexture=null,this.colors=[],this.ok=!0,this.width=t.width,this.length=t.length,this.speed=t.speed,this.latitude=t.latitude,this.gravity=t.gravity,this.emissionRate=2*t.emissionRate,this.squirt=t.squirt,this.lifeSpan=t.lifeSpan,this.variation=t.variation,this.tailLength=t.tailLength,this.timeMiddle=t.timeMiddle;const a=t.flags;this.lineEmitter=131072&a,this.unfogged=262144&a,this.modelSpace=524288&a,this.xYQuad=1048576&a;const r=t.replaceableId;if(this.columns=t.columns,this.rows=t.rows,1===r||2===r)this.teamColored=1;else if(r>2){const t=e.reforged?".dds":".blp";this.internalTexture=new eg(r,0),e.viewer.load(`ReplaceableTextures\\${G_[r]}${t}`,e.pathSolver,e.solverParams).then(e=>{e&&(this.internalTexture.texture=e)})}this.replaceableId=t.replaceableId,this.textureId=t.textureId;const i=t.headOrTail;this.head=0===i||2===i,this.tail=1===i||2===i,this.cellWidth=1/t.columns,this.cellHeight=1/t.rows;const s=t.segmentColors,l=t.segmentAlphas;for(let e=0;e<3;e++){const t=s[e];this.colors[e]=new Float32Array([t[0],t[1],t[2],l[e]/255])}this.scaling=t.segmentScaling;const o=t.headIntervals,u=t.tailIntervals;this.intervals=[new Float32Array(o[0]),new Float32Array(o[1]),new Float32Array(u[0]),new Float32Array(u[1])];const c=k_(t.filterMode,this.model.viewer.gl);this.filterMode=t.filterMode,this.blendSrc=c[0],this.blendDst=c[1],this.priorityPlane=t.priorityPlane}getWidth(e,t,n,a){return this.getScalarValue(e,"KP2N",t,n,a,this.width)}getLength(e,t,n,a){return this.getScalarValue(e,"KP2W",t,n,a,this.length)}getSpeed(e,t,n,a){return this.getScalarValue(e,"KP2S",t,n,a,this.speed)}getLatitude(e,t,n,a){return this.getScalarValue(e,"KP2L",t,n,a,this.latitude)}getGravity(e,t,n,a){return this.getScalarValue(e,"KP2G",t,n,a,this.gravity)}getEmissionRate(e,t,n,a){return this.getScalarValue(e,"KP2E",t,n,a,this.emissionRate)}getVariation(e,t,n,a){return this.getScalarValue(e,"KP2R",t,n,a,this.variation)}getVisibility(e,t,n,a){return this.getScalarValue(e,"KP2V",t,n,a,1)}}class ng extends V_{constructor(e,t,n){super(e,t,n),this.geometryEmitterType=1,this.ok=!0,this.layer=e.materials[t.materialId].layers[0],this.heightAbove=t.heightAbove,this.heightBelow=t.heightBelow,this.alpha=t.alpha,this.color=t.color,this.lifeSpan=t.lifeSpan,this.textureSlot=t.textureSlot,this.emissionRate=2*t.emissionRate,this.gravity=t.gravity,this.columns=t.columns,this.rows=t.rows}getHeightBelow(e,t,n,a){return this.getScalarValue(e,"KRHB",t,n,a,this.heightBelow)}getHeightAbove(e,t,n,a){return this.getScalarValue(e,"KRHA",t,n,a,this.heightAbove)}getTextureSlot(e,t,n,a){return this.getScalarValue(e,"KRTX",t,n,a,0)}getColor(e,t,n,a){return this.getVectorValue(e,"KRCO",t,n,a,this.color)}getAlpha(e,t,n,a){return this.getScalarValue(e,"KRAL",t,n,a,this.alpha)}getVisibility(e,t,n,a){const r=this.getAlpha(e,t,n,a);return 0===e[0]?r:this.getScalarValue(e,"KRVS",t,n,a,1)}}class ag extends N_{constructor(e,t){super(e,t),this.name=t.name,this.position=t.position,this.fieldOfView=t.fieldOfView,this.farClippingPlane=t.farClippingPlane,this.nearClippingPlane=t.nearClippingPlane,this.targetPosition=t.targetPosition}getTranslation(e,t,n,a){return this.getVectorValue(e,"KCTR",t,n,a,ns)}getTargetTranslation(e,t,n,a){return this.getVectorValue(e,"KTTR",t,n,a,ns)}getRotation(e,t,n,a){return this.getScalarValue(e,"KCRL",t,n,a,0)}}class rg extends V_{constructor(e,t,n){super(e,t,n),this.geometryEmitterType=-1,this.globalSequence=-1,this.defval=new Uint32Array(1),this.internalModel=null,this.internalTexture=null,this.colors=[],this.intervalTimes=new Float32Array(3),this.scale=0,this.columns=0,this.rows=0,this.lifeSpan=0,this.blendSrc=0,this.blendDst=0,this.intervals=[],this.distanceCutoff=0,this.maxDistance=0,this.minDistance=0,this.pitch=0,this.pitchVariance=0,this.volume=0,this.decodedBuffers=[],this.ok=!1;const a=e.viewer,r=t.name;let i=r.substring(0,3);const s=r.substring(4);"FPT"===i&&(i="SPL"),"SPL"===i?this.geometryEmitterType=2:"UBR"===i&&(this.geometryEmitterType=3),this.type=i,this.id=s,this.tracks=t.tracks;const l=t.globalSequenceId;if(-1!==l&&(this.globalSequence=e.globalSequences[l]),"SND"===i&&!a.audioEnabled)return;const o=a.promise();bb.getEventObjectData(a,i,s,e.hd).then(e=>{if(o(),e){const{row:t,resources:n}=e;if(this.ok=!0,"SPN"===i)this.internalModel=n[0];else if("SPL"===i||"UBR"===i){this.internalTexture=new eg(0,3),this.internalTexture.texture=n[0],this.scale=t.number("Scale"),this.colors[0]=new Float32Array([t.number("StartR"),t.number("StartG"),t.number("StartB"),t.number("StartA")]),this.colors[1]=new Float32Array([t.number("MiddleR"),t.number("MiddleG"),t.number("MiddleB"),t.number("MiddleA")]),this.colors[2]=new Float32Array([t.number("EndR"),t.number("EndG"),t.number("EndB"),t.number("EndA")]),"SPL"===i?(this.columns=t.number("Columns"),this.rows=t.number("Rows"),this.lifeSpan=t.number("Lifespan")+t.number("Decay"),this.intervalTimes[0]=t.number("Lifespan"),this.intervalTimes[1]=t.number("Decay"),this.intervals[0]=new Float32Array([t.number("UVLifespanStart"),t.number("UVLifespanEnd"),t.number("LifespanRepeat")]),this.intervals[1]=new Float32Array([t.number("UVDecayStart"),t.number("UVDecayEnd"),t.number("DecayRepeat")])):(this.columns=1,this.rows=1,this.lifeSpan=t.number("BirthTime")+t.number("PauseTime")+t.number("Decay"),this.intervalTimes[0]=t.number("BirthTime"),this.intervalTimes[1]=t.number("PauseTime"),this.intervalTimes[2]=t.number("Decay"));const e=k_(t.number("BlendMode"),a.gl);this.blendSrc=e[0],this.blendDst=e[1]}else{this.distanceCutoff=t.number("DistanceCutoff"),this.maxDistance=t.number("MaxDistance"),this.minDistance=t.number("MinDistance"),this.pitch=t.number("Pitch"),this.pitchVariance=t.number("PitchVariance"),this.volume=t.number("Volume");for(const e of n)this.decodedBuffers.push(e.data)}}})}getValue(e,t){if(-1!==this.globalSequence){const n=this.globalSequence;return this.getValueAtTime(e,t.counter%n,0,n)}if(-1!==t.sequence){const n=this.model.sequences[t.sequence].interval;return this.getValueAtTime(e,t.frame,n[0],n[1])}return e[0]=this.defval[0],-1}getValueAtTime(e,t,n,a){const r=this.tracks;if(t>=n&&t<=a)for(let a=r.length-1;a>-1;a--){if(r[a]<n)return e[0]=0,a;if(r[a]<=t)return e[0]=1,a}return e[0]=0,-1}}class ig extends V_{constructor(e,t,n){super(e,t,n),this.type=t.type,this.vertices=t.vertices,this.boundsRadius=t.boundsRadius}}var sg;!function(e){e[e.VertexGroups=0]="VertexGroups",e[e.ExtendedVertexGroups=1]="ExtendedVertexGroups",e[e.Skin=2]="Skin"}(sg||(sg={}));class lg{constructor(e,t,n,a,r){let i,s;r?(i=n,s=i.layers[0]):(i=null,s=n),this.index=e,this.geoset=t,this.skinningType=a,this.isHd=r,this.layer=s,this.material=i}}class og{constructor(e,t,n,a,r,i,s,l,o,u,c){this.geosetAnimation=null,this.model=e,this.index=t,this.positionOffset=n,this.normalOffset=a,this.uvOffset=r,this.tangentOffset=i,this.skinOffset=s,this.faceOffset=l,this.vertices=o,this.elements=u,this.faceType=c;for(const n of e.geosetAnimations)n.geosetId===t&&(this.geosetAnimation=n)}bindShared(e,t,n){e.vertexAttribPointer(t.a_position,3,e.FLOAT,!1,0,this.positionOffset),e.vertexAttribPointer(t.a_normal,3,e.FLOAT,!1,0,this.normalOffset),e.vertexAttribPointer(t.a_uv,2,e.FLOAT,!1,0,this.uvOffset+n*this.vertices*8)}bindVertexGroups(e,t){const n=this.model,a=n.skinDataType,r=n.bytesPerSkinElement;e.vertexAttribPointer(t.a_bones,4,a,!1,5*r,this.skinOffset),e.vertexAttribPointer(t.a_boneNumber,1,a,!1,5*r,this.skinOffset+4*r)}bindVertexGroupsExtended(e,t){const n=this.model,a=n.skinDataType,r=n.bytesPerSkinElement;e.vertexAttribPointer(t.a_bones,4,a,!1,9*r,this.skinOffset),e.vertexAttribPointer(t.a_extendedBones,4,a,!1,9*r,this.skinOffset+4*r),e.vertexAttribPointer(t.a_boneNumber,1,a,!1,9*r,this.skinOffset+8*r)}bindSkin(e,t){e.vertexAttribPointer(t.a_bones,4,e.UNSIGNED_BYTE,!1,8,this.skinOffset),e.vertexAttribPointer(t.a_weights,4,e.UNSIGNED_BYTE,!0,8,this.skinOffset+4)}bind(e,t){const n=this.model.viewer.gl,a=e.attribs;this.bindShared(n,a,t),void 0!==a.a_weights?this.bindSkin(n,a):this.bindVertexGroups(n,a)}bindExtended(e,t){const n=this.model.viewer.gl,a=e.attribs;this.bindShared(n,a,t),this.bindVertexGroupsExtended(n,a)}bindHd(e,t,n){const a=this.model.viewer.gl,r=e.attribs;this.bindShared(a,r,n),a.vertexAttribPointer(r.a_tangent,4,a.FLOAT,!1,0,this.tangentOffset),t===sg.Skin?this.bindSkin(a,r):t===sg.ExtendedVertexGroups?this.bindVertexGroupsExtended(a,r):this.bindVertexGroups(a,r)}render(){const e=this.model.viewer.gl;e.drawElements(this.faceType,this.elements,e.UNSIGNED_SHORT,this.faceOffset)}}class ug{constructor(e,t,n){this.objects=[],this.model=e,this.skinningType=t,this.isHd=n}render(e){const t=e.scene,n=t.camera,a=e.textureOverrides,r=e.layerAlphas,i=this.model,s=i.textures,l=i.batches,o=i.viewer,u=o.sharedCache.get("mdx"),c=o.gl,d=o.webgl,h=this.skinningType,f=this.isHd,m=u.teamColors,p=u.teamGlows,_=bb.getBatchShader(o,h,f);_.use();const g=_.uniforms;c.uniformMatrix4fv(g.u_VP,!1,n.viewProjectionMatrix);const b=e.boneTexture;if(b?(b.bind(15),c.uniform1f(g.u_hasBones,1),c.uniform1i(g.u_boneMap,15),c.uniform1f(g.u_vectorSize,1/b.width),c.uniform1f(g.u_rowSize,1)):c.uniform1f(g.u_hasBones,0),c.uniform3fv(g.u_lightPos,t.lightPosition),c.bindBuffer(c.ARRAY_BUFFER,i.arrayBuffer),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,i.elementBuffer),f){c.uniform1i(g.u_diffuseMap,0),c.uniform1i(g.u_normalsMap,1),c.uniform1i(g.u_ormMap,2),c.uniform1i(g.u_emissiveMap,3),c.uniform1i(g.u_teamColorMap,4),c.uniform1i(g.u_environmentMap,5),c.disable(c.BLEND),c.enable(c.DEPTH_TEST),c.depthMask(!0),c.uniformMatrix4fv(g.u_MV,!1,n.viewMatrix),c.uniform3fv(g.u_eyePos,n.location);for(const t of this.objects){const n=l[t],i=n.geoset,o=n.material,[u,h,f,p,b,w]=o.layers,v=r[u.index];if(v>0){c.uniform1f(g.u_layerAlpha,v),c.uniform1f(g.u_filterMode,u.filterMode);const t=u.textureId,r=h.textureId,l=f.textureId,o=p.textureId,A=b.textureId,y=w.textureId,S=s[t],T=s[r],x=s[l],E=s[o];let L=s[A];const I=s[y];0!==L.replaceableId&&1!==L.replaceableId||(L=m[e.teamColor]);const U=a.get(t)||S.texture,R=a.get(r)||T.texture,C=a.get(l)||x.texture,M=a.get(o)||E.texture,B=a.get(A)||L.texture,N=a.get(y)||I.texture;d.bindTextureAndWrap(U,0,S.wrapS,S.wrapT),d.bindTextureAndWrap(R,1,T.wrapS,T.wrapT),d.bindTextureAndWrap(C,2,x.wrapS,x.wrapT),d.bindTextureAndWrap(M,3,E.wrapS,E.wrapT),d.bindTextureAndWrap(B,4,L.wrapS,L.wrapT),d.bindTextureAndWrap(N,5,I.wrapS,I.wrapT),i.bindHd(_,n.skinningType,u.coordId),i.render()}}}else{const t=e.geosetColors,n=e.layerTextures,i=e.uvAnims;c.uniform4fv(g.u_vertexColor,e.vertexColor),c.uniform1i(g.u_texture,0);for(const o of this.objects){const u=l[o],f=u.geoset,b=u.layer,w=f.index,v=b.index,A=t[w],y=r[v];if(A[3]>.01&&y>.01){const t=n[v],r=s[t],l=i[v];c.uniform4fv(g.u_geosetColor,A),c.uniform1f(g.u_layerAlpha,y),c.uniform1f(g.u_unshaded,b.unshaded),c.uniform2f(g.u_uvTrans,l[0],l[1]),c.uniform2f(g.u_uvRot,l[2],l[3]),c.uniform1f(g.u_uvScale,l[4]),b.bind(_);let o=a.get(t);if(!o){const t=r.replaceableId;let n;n=1===t?m[e.teamColor]:2===t?p[e.teamColor]:r,n&&(o=n.texture)}d.bindTextureAndWrap(o,0,r.wrapS,r.wrapT),h===sg.ExtendedVertexGroups?f.bindExtended(_,b.coordId):f.bind(_,b.coordId),f.render()}}}}}class cg{constructor(e){this.objects=[],this.model=e}render(e){const t=e.scene,n=e.nodes,a=e.model.viewer,r=a.gl,i=a.webgl.extensions.ANGLE_instanced_arrays,s=a.sharedCache.get("mdx"),l=s.particlesShader,o=l.uniforms,u=l.attribs,c=s.rectBuffer;r.depthMask(!1),r.enable(r.BLEND),r.disable(r.CULL_FACE),r.enable(r.DEPTH_TEST),l.use(),r.uniformMatrix4fv(o.u_VP,!1,t.camera.viewProjectionMatrix),r.uniform1i(o.u_texture,0),i.vertexAttribDivisorANGLE(u.a_position,0),r.bindBuffer(r.ARRAY_BUFFER,c),r.vertexAttribPointer(u.a_position,1,r.UNSIGNED_BYTE,!1,0,0),i.vertexAttribDivisorANGLE(u.a_p0,1),i.vertexAttribDivisorANGLE(u.a_p1,1),i.vertexAttribDivisorANGLE(u.a_p2,1),i.vertexAttribDivisorANGLE(u.a_p3,1),i.vertexAttribDivisorANGLE(u.a_health,1),i.vertexAttribDivisorANGLE(u.a_color,1),i.vertexAttribDivisorANGLE(u.a_tail,1),i.vertexAttribDivisorANGLE(u.a_leftRightTop,1);for(const e of this.objects)Q_(n[e].object,l);i.vertexAttribDivisorANGLE(u.a_leftRightTop,0),i.vertexAttribDivisorANGLE(u.a_tail,0),i.vertexAttribDivisorANGLE(u.a_color,0),i.vertexAttribDivisorANGLE(u.a_health,0),i.vertexAttribDivisorANGLE(u.a_p3,0),i.vertexAttribDivisorANGLE(u.a_p2,0),i.vertexAttribDivisorANGLE(u.a_p1,0),i.vertexAttribDivisorANGLE(u.a_p0,0)}}function dg(e){return e instanceof lg||e instanceof ng?e.layer.priorityPlane:e instanceof tg?e.priorityPlane:0}function hg(e,t){return e instanceof ug?t instanceof lg&&t.skinningType===e.skinningType&&t.isHd===e.isHd:t instanceof V_}function fg(e,t){return t instanceof lg?new ug(e,t.skinningType,t.isHd):new cg(e)}class mg extends a_{convertBasis(e){Fa(e,e,-Math.PI/2),Da(e,e,-Math.PI/2)}}const pg=new Float32Array(1);class _g{constructor(e,t){const n=t.internalModel.addInstance();n.setSequenceLoopMode(2),n.dontInheritScaling=!1,n.hide(),n.setParent(e.nodes[t.objectId]),this.instance=e,this.attachment=t,this.internalInstance=n}update(){const e=this.instance,t=this.internalInstance;e.scene&&-1!==e.sequence&&(this.attachment.getVisibility(pg,e.sequence,e.frame,e.counter),pg[0]>.1?(e.scene.addInstance(t),t.hidden()&&(t.show(),t.setSequence(0))):t.hide())}}class gg{constructor(e){this.objects=[],this.alive=0,this.currentEmission=0,this.instance=e}update(e){this.updateEmission(e);const t=this.currentEmission;if(t>=1)for(let e=0;e<t;e+=1)this.emit()}clear(){const e=this.objects;for(let t=0,n=this.alive;t<n;t++){e[t].health=0}this.currentEmission=0}emitObject(e){const t=this.objects;this.alive===t.length&&t.push(this.createObject());const n=t[this.alive];n.index=this.alive,n.bind(e),this.alive+=1,this.currentEmission-=1;return this.instance.scene.emittedObjectUpdater.add(n),n}kill(e){const t=this.objects;this.alive-=1;const n=t[this.alive];t[e.index]=n,t[this.alive]=e,n.index=e.index,e.index=-1}}class bg extends gg{constructor(e,t){super(e),this.emitterObject=t}update(e){this.emitterObject.ok&&super.update(e)}}class wg{constructor(e){this.index=-1,this.health=0,this.emitter=e}}const vg=Ma(),Ag=Wt(),yg=new Float32Array(1),Sg=new Float32Array(1),Tg=new Float32Array(1),xg=new Float32Array(1);class Eg extends wg{constructor(e){super(e),this.velocity=Wt(),this.gravity=0;const t=e.emitterObject.internalModel;this.internalInstance=t.addInstance()}bind(){const e=this.emitter,t=e.instance,n=t.sequence,a=t.frame,r=t.counter,i=t.scene,s=e.emitterObject,l=t.nodes[s.index],o=this.internalInstance,u=l.worldScale,c=this.velocity;s.getLatitude(yg,n,a,r),s.getLifeSpan(Sg,n,a,r),s.getGravity(Tg,n,a,r),s.getSpeed(xg,n,a,r),this.health=Sg[0],this.gravity=Tg[0]*u[2],Ba(vg),Ga(vg,vg,ys(-Math.PI,Math.PI)),Fa(vg,vg,ys(-yg[0],yg[0])),Ln(c,ts,vg),Ln(c,c,l.worldRotation),dn(c,c,xg[0]),Dn(c,c,u),o.setScene(i),o.setSequence(0),o.setTransformation(l.worldLocation,Na(vg,ts,ys(0,2*Math.PI)),l.worldScale),o.show()}update(e){const t=this.internalInstance;if(this.health-=e,this.health>0){const n=this.velocity;n[2]-=this.gravity*e,t.move(dn(Ag,n,e))}else t.hide()}}const Lg=new Float32Array(1);class Ig extends bg{updateEmission(e){const t=this.instance;if(t.allowParticleSpawn){this.emitterObject.getEmissionRate(Lg,t.sequence,t.frame,t.counter),this.currentEmission+=Lg[0]*e}}emit(){this.emitObject()}createObject(){return new Eg(this)}}const Ug=Ma(),Rg=new Float32Array(1),Cg=new Float32Array(1),Mg=new Float32Array(1),Bg=new Float32Array(1),Ng=new Float32Array(1),Pg=new Float32Array(1);class kg extends wg{constructor(){super(...arguments),this.tail=0,this.gravity=0,this.location=Wt(),this.velocity=Wt(),this.scale=Wt(),this.facing=0}bind(e){const t=this.emitter,n=t.instance,a=n.sequence,r=n.frame,i=n.counter,s=t.emitterObject;s.getWidth(Rg,a,r,i),s.getLength(Cg,a,r,i),s.getLatitude(Mg,a,r,i),s.getVariation(Bg,a,r,i),s.getSpeed(Ng,a,r,i),s.getGravity(Pg,a,r,i);const l=t.node,o=l.pivot,u=l.worldScale,c=.5*Rg[0],d=.5*Cg[0],h=vs(Mg[0]),f=Bg[0],m=Ng[0],p=this.location,_=this.velocity;this.health=s.lifeSpan,this.tail=e,this.gravity=Pg[0]*u[2],Qt(this.scale,u),p[0]=o[0]+ys(-c,c),p[1]=o[1]+ys(-d,d),p[2]=o[2],s.modelSpace||xn(p,p,l.worldMatrix),Ba(Ug),Ga(Ug,Ug,Math.PI/2),Fa(Ug,Ug,ys(-h,h)),s.lineEmitter||Da(Ug,Ug,ys(-h,h)),s.modelSpace||ur(Ug,l.worldRotation,Ug),Ln(_,ts,Ug),dn(_,_,m*(1+ys(-f,f))),s.modelSpace||Dn(_,_,u),s.xYQuad&&(this.facing=Math.atan2(_[1],_[0])-Math.PI+Math.PI/8)}update(e){if(this.health-=e,this.health>0){const t=this.location,n=this.velocity;n[2]-=this.gravity*e,t[0]+=n[0]*e,t[1]+=n[1]*e,t[2]+=n[2]*e}}}const Og=new Float32Array(1);class Dg extends bg{constructor(e,t){super(e,t),this.lastEmissionKey=-1,this.node=e.nodes[t.index]}updateEmission(e){const t=this.instance;if(t.allowParticleSpawn){const n=this.emitterObject,a=n.getEmissionRate(Og,t.sequence,t.frame,t.counter);n.squirt?(a!==this.lastEmissionKey&&(this.currentEmission+=Og[0]),this.lastEmissionKey=a):this.currentEmission+=Og[0]*e}}emit(){const e=this.emitterObject;e.head&&this.emitObject(0),e.tail&&this.emitObject(1)}createObject(){return new kg(this)}}const Fg=Wt(),Gg=Wt(),Vg=new Float32Array(3),Kg=new Float32Array(1),Hg=new Uint32Array(1);class zg extends wg{constructor(){super(...arguments),this.vertices=new Float32Array(6),this.color=new Uint8Array(4),this.slot=0,this.prev=null,this.next=null}bind(){const e=this.emitter,t=e.instance,n=t.sequence,a=t.frame,r=t.counter,i=e.emitterObject,s=t.nodes[i.index],[l,o,u]=s.pivot,c=s.worldMatrix,d=this.vertices;this.health=e.emitterObject.lifeSpan,i.getHeightBelow(Fg,n,a,r),i.getHeightAbove(Gg,n,a,r),Fg[1]=o-Fg[0],Fg[0]=l,Fg[2]=u,Gg[1]=o+Gg[0],Gg[0]=l,Gg[2]=u,xn(Fg,Fg,c),xn(Gg,Gg,c),d[0]=Gg[0],d[1]=Gg[1],d[2]=Gg[2],d[3]=Fg[0],d[4]=Fg[1],d[5]=Fg[2]}update(e){if(this.health-=e,this.health>0){const t=this.emitter,n=t.instance,a=n.sequence,r=n.frame,i=n.counter,s=t.emitterObject,l=this.color,o=this.vertices,u=s.gravity*e*e;s.getColor(Vg,a,r,i),s.getAlpha(Kg,a,r,i),s.getTextureSlot(Hg,a,r,i),o[1]-=u,o[4]-=u,l[0]=255*Vg[0],l[1]=255*Vg[1],l[2]=255*Vg[2],l[3]=255*Kg[0],this.slot=Hg[0]}}}class jg extends bg{constructor(){super(...arguments),this.first=null,this.last=null}updateEmission(e){if(this.instance.allowParticleSpawn){const t=this.emitterObject;this.currentEmission+=t.emissionRate*e}}emit(){const e=this.emitObject(),t=this.last;t?(t.next=e,e.prev=t):this.first=e,this.last=e}kill(e){super.kill(e);const t=e.prev,n=e.next;e===this.first&&(this.first=n),e===this.last&&(this.first=null,this.last=null),t&&(t.next=n),n&&(n.prev=t),e.prev=null,e.next=null}createObject(){return new zg(this)}}const Xg=new Uint32Array(1);class $g extends bg{constructor(){super(...arguments),this.lastValue=0}updateEmission(e){const t=this.instance;if(t.allowParticleSpawn){this.emitterObject.getValue(Xg,t);const e=Xg[0];1===e&&e!==this.lastValue&&(this.currentEmission+=1),this.lastValue=e}}emit(){this.emitObject()}}class Jg extends wg{constructor(e){super(e);const t=e.emitterObject.internalModel;this.internalInstance=t.addInstance()}bind(){const e=this.emitter,t=e.instance,n=t.scene,a=t.nodes[e.emitterObject.index],r=this.internalInstance;r.setScene(n),r.setSequence(0),r.setTransformation(a.worldLocation,a.worldRotation,a.worldScale),r.show(),this.health=1}update(e){const t=this.internalInstance,n=t.model;t.frame>=n.sequences[0].interval[1]&&(this.health=0,t.hide())}}class Wg extends $g{createObject(){return new Jg(this)}}const qg=Wt();class Yg extends wg{constructor(){super(...arguments),this.vertices=new Float32Array(12)}bind(){const e=this.emitter,t=e.instance,n=e.emitterObject,a=this.vertices,r=n.scale,{worldLocation:i,worldRotation:s}=t.nodes[n.index];this.health=n.lifeSpan,en(qg,r,r,0),Ln(qg,qg,s),tn(a.subarray(0,2),qg,i),en(qg,-r,r,0),Ln(qg,qg,s),tn(a.subarray(3,5),qg,i),en(qg,-r,-r,0),Ln(qg,qg,s),tn(a.subarray(6,8),qg,i),en(qg,r,-r,0),Ln(qg,qg,s),tn(a.subarray(9,11),qg,i)}update(e){this.health-=e}}class Zg extends $g{createObject(){return new Yg(this)}}class Qg extends $g{createObject(){return new Yg(this)}}class eb extends wg{bind(){const e=this.emitter,t=e.instance,n=t.model.viewer,a=t.scene;if(n.audioEnabled&&a.audioEnabled){const n=e.emitterObject,r=t.nodes[n.index],i=a.audioContext,s=n.decodedBuffers,l=i.createPanner(),o=i.createBufferSource(),u=r.worldLocation;l.positionX.value=u[0],l.positionY.value=u[1],l.positionZ.value=u[2],l.maxDistance=n.distanceCutoff,l.refDistance=n.minDistance,l.connect(i.destination),o.buffer=s[Math.random()*s.length|0],o.connect(l),o.start(0)}}update(e){}}class tb extends $g{createObject(){return new eb(this)}}const nb=new Float32Array(1),ab=Wt(),rb=Ma(),ib=Wt(),sb=new Float32Array(3),lb=new Float32Array(1),ob=new Uint32Array(1);class ub extends Cp{constructor(e){super(e),this.attachments=[],this.particleEmitters=[],this.particleEmitters2=[],this.ribbonEmitters=[],this.eventObjectEmitters=[],this.nodes=[],this.sortedNodes=[],this.frame=0,this.counter=0,this.sequence=-1,this.sequenceLoopMode=0,this.sequenceEnded=!1,this.teamColor=0,this.vertexColor=new Float32Array([1,1,1,1]),this.allowParticleSpawn=!1,this.forced=!0,this.geosetColors=[],this.layerAlphas=[],this.layerTextures=[],this.uvAnims=[],this.worldMatrices=null,this.boneTexture=null;for(let t=0,n=e.geosets.length;t<n;t++)this.geosetColors[t]=new Float32Array(4);for(let t=0,n=e.layers.length;t<n;t++)this.layerAlphas[t]=0,this.layerTextures[t]=0,this.uvAnims[t]=new Float32Array(5);const t=r_(e.genericObjects.length,mg),n=t.nodes;let a=0;this.nodes.push(...n),this.worldMatrices=t.worldMatrices;for(const t of e.bones)this.initNode(n,n[a++],t);for(const t of e.lights)this.initNode(n,n[a++],t);for(const t of e.helpers)this.initNode(n,n[a++],t);for(const t of e.attachments){let e;t.internalModel&&(e=new _g(this,t),this.attachments.push(e)),this.initNode(n,n[a++],t,e)}for(const t of e.particleEmitters){const e=new Ig(this,t);this.particleEmitters.push(e),this.initNode(n,n[a++],t,e)}for(const t of e.particleEmitters2){const e=new Dg(this,t);this.particleEmitters2.push(e),this.initNode(n,n[a++],t,e)}for(const t of e.ribbonEmitters){const e=new jg(this,t);this.ribbonEmitters.push(e),this.initNode(n,n[a++],t,e)}for(const t of e.eventObjects){const e=t.type;let r;r="SPN"===e?new Wg(this,t):"SPL"===e?new Zg(this,t):"UBR"===e?new Qg(this,t):new tb(this,t),this.eventObjectEmitters.push(r),this.initNode(n,n[a++],t,r)}for(const t of e.collisionShapes)this.initNode(n,n[a++],t);const r=e.hierarchy;for(let e=0,t=n.length;e<t;e++)this.sortedNodes[e]=n[r[e]];e.bones.length&&(this.boneTexture=new ip(e.viewer.gl,4,4*e.bones.length,1))}setTexture(e,t){this.overrideTexture(e,t)}setParticle2Texture(e,t){this.overrideTexture(1e3+e,t)}setEventTexture(e,t){this.overrideTexture(Y_+e,t)}clearEmittedObjects(){for(const e of this.particleEmitters)e.clear();for(const e of this.particleEmitters2)e.clear();for(const e of this.ribbonEmitters)e.clear();for(const e of this.eventObjectEmitters)e.clear()}initNode(e,t,n,a){Qt(t.pivot,n.pivot),-1===n.parentId?t.parent=this:t.parent=e[n.parentId],t.dontInheritTranslation=n.dontInheritTranslation,t.dontInheritRotation=n.dontInheritRotation,t.dontInheritScaling=n.dontInheritScaling,n.billboarded?t.billboarded=!0:n.billboardedX?t.billboardedX=!0:n.billboardedY?t.billboardedY=!0:n.billboardedZ&&(t.billboardedZ=!0),a&&(t.object=a)}hide(){super.hide(),this.resetAttachments()}updateNodes(e,t){const n=this.sequence,a=this.frame,r=this.counter,i=this.sortedNodes,s=this.model.sortedGenericObjects;for(let l=0,o=i.length;l<o;l++){const o=s[l],u=i[l],c=u.parent;let d=t||c.wasDirty||o.anyBillboarding;const h=o.variants;(t||h.generic[n])&&(d=!0,(t||h.translation[n])&&o.getTranslation(u.localLocation,n,a,r),(t||h.rotation[n])&&o.getRotation(u.localRotation,n,a,r),(t||h.scale[n])&&o.getScale(u.localScale,n,a,r)),u.wasDirty=d,d&&u.recalculateTransformation(this),u.object&&(o.getVisibility(nb,n,a,r),nb[0]>0&&u.object.update(e));for(const t of u.children)d&&t.recalculateTransformation(),t.update(e)}}recalculateTransformation(){super.recalculateTransformation(),this.forced=!0}updateBatches(e){const t=this.sequence,n=this.frame,a=this.counter,r=this.model,i=r.geosets,s=r.layers,l=this.geosetColors,o=this.layerAlphas,u=this.layerTextures,c=this.uvAnims;for(let r=0,s=i.length;r<s;r++){const s=i[r].geosetAnimation,o=l[r];s?((e||s.variants.color[t])&&(s.getColor(sb,t,n,a),o[0]=sb[0],o[1]=sb[1],o[2]=sb[2]),(e||s.variants.alpha[t])&&(s.getAlpha(lb,t,n,a),o[3]=lb[0])):e&&(o[0]=1,o[1]=1,o[2]=1,o[3]=1)}for(let r=0,i=s.length;r<i;r++){const i=s[r],l=i.textureAnimation,d=c[r];(e||i.variants.alpha[t])&&(i.getAlpha(lb,t,n,a),o[r]=lb[0]),(e||i.variants.textureId[t])&&(i.getTextureId(ob,t,n,a),u[r]=ob[0]),l?((e||l.variants.translation[t])&&(l.getTranslation(ab,t,n,a),d[0]=ab[0],d[1]=ab[1]),(e||l.variants.rotation[t])&&(l.getRotation(rb,t,n,a),d[2]=rb[2],d[3]=rb[3]),(e||l.variants.scale[t])&&(l.getScale(ib,t,n,a),d[4]=ib[0])):e&&(d[0]=0,d[1]=0,d[2]=0,d[3]=1,d[4]=1)}}updateBoneTexture(){this.boneTexture&&this.boneTexture.bindAndUpdate(this.worldMatrices)}renderOpaque(){const e=this.model;for(const t of e.opaqueGroups)t.render(this)}renderTranslucent(){const e=this.model;for(const t of e.translucentGroups)t.render(this)}updateAnimations(e){const t=this.model,n=this.sequence;if(-1!==n){const a=t.sequences[n],r=a.interval,i=1e3*e;this.frame+=i,this.counter+=i,this.allowParticleSpawn=!0,this.frame>=r[1]?(2===this.sequenceLoopMode||0===this.sequenceLoopMode&&0===a.nonLooping?(this.frame=r[0],this.resetEventEmitters()):(this.frame=r[1],this.counter-=i,this.allowParticleSpawn=!1),this.sequenceEnded=!0):this.sequenceEnded=!1}const a=this.forced;(-1!==n||a)&&(this.updateNodes(e,a),this.updateBoneTexture(),this.updateBatches(a)),this.forced=!1}setTeamColor(e){return this.teamColor=e,this}setVertexColor(e){return this.vertexColor.set(e),this}setSequence(e){const t=this.model.sequences;return this.sequence=e,e<0||e>t.length-1?(this.sequence=-1,this.frame=0,this.allowParticleSpawn=!1):this.frame=t[e].interval[0],this.resetEventEmitters(),this.resetAttachments(),this.forced=!0,this}getBounds(){const e=this.model;if(-1===this.sequence)return e.bounds;const t=e.sequences[this.sequence].bounds;return 0===t.r?e.bounds:t}setSequenceLoopMode(e){return this.sequenceLoopMode=e,this}getAttachment(e){const t=this.model.attachments[e];if(t)return this.nodes[t.index]}resetEventEmitters(){for(const e of this.eventObjectEmitters)e.lastValue=0}resetAttachments(){for(const e of this.attachments)e.internalInstance.hide()}}const cb="\n#ifdef SKIN\nattribute vec4 a_bones;\nattribute vec4 a_weights;\n\nvoid transformSkin(inout vec3 position, inout vec3 normal, inout vec3 tangent, inout vec3 binormal) {\n mat4 bone;\n\n bone += fetchMatrix(a_bones[0], 0.0) * a_weights[0];\n bone += fetchMatrix(a_bones[1], 0.0) * a_weights[1];\n bone += fetchMatrix(a_bones[2], 0.0) * a_weights[2];\n bone += fetchMatrix(a_bones[3], 0.0) * a_weights[3];\n\n mat3 rotation = mat3(bone);\n\n position = vec3(bone * vec4(position, 1.0));\n normal = rotation * normal;\n tangent = rotation * tangent;\n binormal = rotation * binormal;\n}\n#else\nattribute vec4 a_bones;\n#ifdef EXTENDED_BONES\nattribute vec4 a_extendedBones;\n#endif\nattribute float a_boneNumber;\n\nmat4 getVertexGroupMatrix() {\n mat4 bone;\n\n // For the broken models out there, since the game supports this.\n if (a_boneNumber > 0.0) {\n for (int i = 0; i < 4; i++) {\n if (a_bones[i] > 0.0) {\n bone += fetchMatrix(a_bones[i] - 1.0, 0.0);\n }\n }\n\n #ifdef EXTENDED_BONES\n for (int i = 0; i < 4; i++) {\n if (a_extendedBones[i] > 0.0) {\n bone += fetchMatrix(a_extendedBones[i] - 1.0, 0.0);\n }\n }\n #endif\n }\n\n return bone / a_boneNumber;\n}\n\nvoid transformVertexGroups(inout vec3 position, inout vec3 normal) {\n mat4 bone = getVertexGroupMatrix();\n mat3 rotation = mat3(bone);\n\n position = vec3(bone * vec4(position, 1.0));\n normal = normalize(rotation * normal);\n}\n\nvoid transformVertexGroupsHD(inout vec3 position, inout vec3 normal, inout vec3 tangent, inout vec3 binormal) {\n mat4 bone = getVertexGroupMatrix();\n mat3 rotation = mat3(bone);\n\n position = vec3(bone * vec4(position, 1.0));\n normal = normalize(rotation * normal);\n tangent = normalize(rotation * tangent);\n binormal = normalize(rotation * binormal);\n}\n#endif\n",db=`\nuniform mat4 u_VP;\nuniform vec3 u_lightPos;\nuniform vec4 u_vertexColor;\nuniform vec4 u_geosetColor;\nuniform float u_layerAlpha;\nuniform vec2 u_uvTrans;\nuniform vec2 u_uvRot;\nuniform float u_uvScale;\nuniform bool u_hasBones;\n\nattribute vec3 a_position;\nattribute vec3 a_normal;\nattribute vec2 a_uv;\n\nvarying vec2 v_uv;\nvarying vec3 v_normal;\nvarying vec4 v_color;\nvarying vec4 v_uvTransRot;\nvarying float v_uvScale;\nvarying vec3 v_lightDir;\n\n${c_}\n${cb}\n\nvoid main() {\n vec3 position = a_position;\n vec3 normal = a_normal;\n\n if (u_hasBones) {\n #ifdef SKIN\n vec3 tangent = vec3(0.0);\n vec3 binormal = vec3(0.0);\n transformSkin(position, normal, tangent, binormal);\n #else\n transformVertexGroups(position, normal);\n #endif\n }\n\n v_uv = a_uv;\n v_normal = normal;\n v_color = u_vertexColor * u_geosetColor.bgra * vec4(1.0, 1.0, 1.0, u_layerAlpha);\n v_uvTransRot = vec4(u_uvTrans, u_uvRot);\n v_uvScale = u_uvScale;\n v_lightDir = normalize(u_lightPos - position);\n\n gl_Position = u_VP * vec4(position, 1.0);\n}\n`,hb=`\n${h_}\n\n\n// A 2D quaternion*vector.\n// q is the zw components of the original quaternion.\nvec2 quat_transform(vec2 q, vec2 v) {\n vec2 uv = vec2(-q.x * v.y, q.x * v.x);\n vec2 uuv = vec2(-q.x * uv.y, q.x * uv.x);\n\n return v + 2.0 * (uv * q.y + uuv);\n}\n\n\nuniform sampler2D u_texture;\nuniform float u_filterMode;\nuniform bool u_unshaded;\n\nvarying vec2 v_uv;\nvarying vec3 v_normal;\nvarying vec4 v_color;\nvarying vec4 v_uvTransRot;\nvarying float v_uvScale;\nvarying vec3 v_lightDir;\n\nvec4 getDiffuseColor() {\n vec2 uv = v_uv;\n\n // Translation animation\n uv += v_uvTransRot.xy;\n\n // Rotation animation\n uv = quat_transform(v_uvTransRot.zw, uv - 0.5) + 0.5;\n\n // Scale animation\n uv = v_uvScale * (uv - 0.5) + 0.5;\n\n vec4 texel = texture2D(u_texture, uv);\n vec4 color = texel * v_color;\n\n // 1bit Alpha\n if (u_filterMode == 1.0 && color.a < 0.75) {\n discard;\n }\n\n // "Close to 0 alpha"\n if (u_filterMode >= 5.0 && color.a < 0.02) {\n discard;\n }\n\n return color;\n}\n\nvoid onlyTexCoords() {\n gl_FragColor = vec4(v_uv, 0.0, 1.0);\n}\n\nvoid onlyNormals() {\n gl_FragColor = vec4(v_normal, 1.0);\n}\n\nvoid onlyDiffuse() {\n gl_FragColor = getDiffuseColor();\n}\n\nvoid lambert() {\n vec4 color = getDiffuseColor();\n\n if (!u_unshaded) {\n float lambertFactor = clamp(dot(v_normal, v_lightDir), 0.0, 1.0);\n lambertFactor = clamp(lambertFactor + 0.7, 0.0, 1.0);\n\n color.rgb *= lambertFactor;\n }\n\n gl_FragColor = color;\n}\n\nvoid main() {\n #if defined(ONLY_DIFFUSE)\n onlyDiffuse();\n #elif defined(ONLY_TEXCOORDS)\n onlyTexCoords();\n #elif defined(ONLY_NORMALS)\n onlyNormals();\n #else\n lambert();\n #endif\n}\n`,fb=`\nuniform mat4 u_VP;\nuniform mat4 u_MV;\nuniform vec3 u_eyePos;\nuniform vec3 u_lightPos;\nuniform float u_layerAlpha;\nuniform bool u_hasBones;\n\nattribute vec3 a_position;\nattribute vec3 a_normal;\nattribute vec2 a_uv;\nattribute vec4 a_tangent;\n\nvarying vec2 v_uv;\nvarying float v_layerAlpha;\nvarying vec3 v_lightDir;\nvarying vec3 v_eyeVec;\nvarying vec3 v_normal;\n// varying vec3 v_lightDirWorld;\n\n#if defined(ONLY_TANGENTS)\nvarying vec3 v_tangent;\n#endif\n\n${c_}\n${cb}\n\nvec3 TBN(vec3 vector, vec3 tangent, vec3 binormal, vec3 normal) {\n return vec3(dot(vector, tangent), dot(vector, binormal), dot(vector, normal));\n}\n\nvoid main() {\n vec3 position = a_position;\n vec3 normal = a_normal;\n vec3 tangent = a_tangent.xyz;\n\n // Re-orthogonalize the tangent in case it wasnt normalized.\n // See "One last thing" at https://learnopengl.com/Advanced-Lighting/Normal-Mapping\n tangent = normalize(tangent - dot(tangent, normal) * normal);\n\n vec3 binormal = cross(normal, tangent) * a_tangent.w;\n\n if (u_hasBones) {\n #ifdef SKIN\n transformSkin(position, normal, tangent, binormal);\n #else\n transformVertexGroupsHD(position, normal, tangent, binormal);\n #endif\n }\n\n vec3 position_mv = vec3(u_MV * vec4(position, 1));\n\n mat3 mv = mat3(u_MV);\n vec3 t = normalize(mv * tangent);\n vec3 b = normalize(mv * binormal);\n vec3 n = normalize(mv * normal);\n\n v_eyeVec = normalize(u_eyePos - position_mv);\n\n vec3 lightDir = normalize(u_lightPos - position_mv);\n v_lightDir = normalize(TBN(lightDir, t, b, n));\n \n v_uv = a_uv;\n v_layerAlpha = u_layerAlpha;\n\n v_normal = normal;\n // v_lightDirWorld = normalize(lightDir);\n\n #if defined(ONLY_TANGENTS)\n v_tangent = tangent;\n #endif\n\n gl_Position = u_VP * vec4(position, 1.0);\n}\n`,mb=`\n${h_}\n\nuniform sampler2D u_diffuseMap;\nuniform sampler2D u_normalsMap;\nuniform sampler2D u_ormMap;\nuniform sampler2D u_emissiveMap;\nuniform sampler2D u_teamColorMap;\nuniform sampler2D u_environmentMap;\nuniform float u_filterMode;\n\n// uniform sampler2D u_lutMap;\n// uniform sampler2D u_envDiffuseMap;\n// uniform sampler2D u_envSpecularMap;\n\nvarying vec2 v_uv;\nvarying float v_layerAlpha;\nvarying vec3 v_lightDir;\nvarying vec3 v_eyeVec;\nvarying vec3 v_normal;\n// varying vec3 v_lightDirWorld;\n\n#if defined(ONLY_TANGENTS)\nvarying vec3 v_tangent;\n#endif\n\nvec3 decodeNormal() {\n vec2 xy = texture2D(u_normalsMap, v_uv).xy * 2.0 - 1.0;\n \n return vec3(xy, sqrt(1.0 - dot(xy, xy)));\n}\n\nconst vec2 invAtan = vec2(0.1591, 0.3183);\nvec2 sampleEnvironmentMap(vec3 normal) {\n vec2 uv = vec2(atan(normal.x, normal.y), -asin(normal.z));\n uv *= invAtan;\n uv += 0.5;\n return uv;\n}\n\nvec4 getDiffuseColor() {\n vec4 color = texture2D(u_diffuseMap, v_uv);\n\n // 1bit Alpha\n if (u_filterMode == 1.0 && color.a < 0.75) {\n discard;\n }\n\n return color;\n}\n\nvec4 getOrmColor() {\n return texture2D(u_ormMap, v_uv);\n}\n\nvec3 getEmissiveColor() {\n return texture2D(u_emissiveMap, v_uv).rgb;\n}\n\nvec3 getTeamColor() {\n return texture2D(u_teamColorMap, v_uv).rgb;\n}\n\n// const float PI = 3.14159265359;\n// const float RECIPROCAL_PI = 0.31830988618;\n// const float RECIPROCAL_PI2 = 0.15915494;\n// const float LN2 = 0.6931472;\n// const float ENV_LODS = 6.0;\n// vec4 SRGBtoLinear(vec4 srgb) {\n// vec3 linOut = pow(srgb.xyz, vec3(2.2));\n// return vec4(linOut, srgb.w);;\n// }\n// vec4 RGBMToLinear(in vec4 value) {\n// float maxRange = 6.0;\n// return vec4(value.xyz * value.w * maxRange, 1.0);\n// }\n// vec3 linearToSRGB(vec3 color) {\n// return pow(color, vec3(1.0 / 2.2));\n// }\n// // vec3 getNormal() {\n// // vec3 pos_dx = dFdx(vMPos.xyz);\n// // vec3 pos_dy = dFdy(vMPos.xyz);\n// // vec2 tex_dx = dFdx(vUv);\n// // vec2 tex_dy = dFdy(vUv);\n// // vec3 t = normalize(pos_dx * tex_dy.t - pos_dy * tex_dx.t);\n// // vec3 b = normalize(-pos_dx * tex_dy.s + pos_dy * tex_dx.s);\n// // mat3 tbn = mat3(t, b, normalize(vNormal));\n// // vec3 n = texture2D(tNormal, vUv * uNormalUVScale).rgb * 2.0 - 1.0;\n// // n.xy *= uNormalScale;\n// // vec3 normal = normalize(tbn * n);\n// // // Get world normal from view normal (normalMatrix * normal)\n// // return normalize((vec4(normal, 0.0) * viewMatrix).xyz);\n// // }\n// vec3 specularReflection(vec3 specularEnvR0, vec3 specularEnvR90, float VdH) {\n// return specularEnvR0 + (specularEnvR90 - specularEnvR0) * pow(clamp(1.0 - VdH, 0.0, 1.0), 5.0);\n// }\n// float geometricOcclusion(float NdL, float NdV, float roughness) {\n// float r = roughness;\n// float attenuationL = 2.0 * NdL / (NdL + sqrt(r * r + (1.0 - r * r) * (NdL * NdL)));\n// float attenuationV = 2.0 * NdV / (NdV + sqrt(r * r + (1.0 - r * r) * (NdV * NdV)));\n// return attenuationL * attenuationV;\n// }\n// float microfacetDistribution(float roughness, float NdH) {\n// float roughnessSq = roughness * roughness;\n// float f = (NdH * roughnessSq - NdH) * NdH + 1.0;\n// return roughnessSq / (PI * f * f);\n// }\n// vec2 cartesianToPolar(vec3 n) {\n// vec2 uv;\n// uv.x = atan(n.z, n.x) * RECIPROCAL_PI2 + 0.5;\n// uv.y = asin(n.y) * RECIPROCAL_PI + 0.5;\n// return uv;\n// }\n// void getIBLContribution(inout vec3 diffuse, inout vec3 specular, float NdV, float roughness, vec3 n, vec3 reflection, vec3 diffuseColor, vec3 specularColor) {\n// vec3 brdf = SRGBtoLinear(texture2D(u_lutMap, vec2(NdV, roughness))).rgb;\n// vec3 diffuseLight = RGBMToLinear(texture2D(u_envDiffuseMap, sampleEnvironmentMap(n))).rgb;\n// // Sample 2 levels and mix between to get smoother degradation\n// float blend = roughness * ENV_LODS;\n// float level0 = floor(blend);\n// float level1 = min(ENV_LODS, level0 + 1.0);\n// blend -= level0;\n \n// // Sample the specular env map atlas depending on the roughness value\n// vec2 uvSpec = sampleEnvironmentMap(reflection);\n// uvSpec.y /= 2.0;\n// vec2 uv0 = uvSpec;\n// vec2 uv1 = uvSpec;\n// uv0 /= pow(2.0, level0);\n// uv0.y += 1.0 - exp(-LN2 * level0);\n// uv1 /= pow(2.0, level1);\n// uv1.y += 1.0 - exp(-LN2 * level1);\n// vec3 specular0 = RGBMToLinear(texture2D(u_envSpecularMap, uv0)).rgb;\n// vec3 specular1 = RGBMToLinear(texture2D(u_envSpecularMap, uv1)).rgb;\n// vec3 specularLight = mix(specular0, specular1, blend);\n// diffuse = diffuseLight * diffuseColor;\n \n// // Bit of extra reflection for smooth materials\n// float reflectivity = pow((1.0 - roughness), 2.0) * 0.05;\n// specular = specularLight * (specularColor * brdf.x + brdf.y + reflectivity);\n// // specular *= uEnvSpecular;\n// }\n\n// void PBR() {\n// vec4 baseDiffuseColor = getDiffuseColor();\n// vec3 baseColor = baseDiffuseColor.rgb;\n// vec4 orm = getOrmColor();\n// vec3 tc = getTeamColor();\n// float tcFactor = getOrmColor().a;\n\n// if (tcFactor > 0.1) {\n// baseColor *= tc * tcFactor;\n// }\n\n// float roughness = clamp(orm.g, 0.04, 1.0);\n// float metallic = clamp(orm.b, 0.04, 1.0);\n\n// vec3 f0 = vec3(0.04);\n// vec3 diffuseColor = baseColor * (vec3(1.0) - f0) * (1.0 - metallic);\n// vec3 specularColor = mix(f0, baseColor, metallic);\n// vec3 specularEnvR0 = specularColor;\n// vec3 specularEnvR90 = vec3(clamp(max(max(specularColor.r, specularColor.g), specularColor.b) * 25.0, 0.0, 1.0));\n\n// vec3 N = v_normal;\n// vec3 V = normalize(v_eyeVec);\n// vec3 L = normalize(v_lightDirWorld);\n// vec3 H = normalize(L + V);\n// vec3 reflection = normalize(reflect(-V, N));\n\n// float NdL = clamp(dot(N, L), 0.001, 1.0);\n// float NdV = clamp(abs(dot(N, V)), 0.001, 1.0);\n// float NdH = clamp(dot(N, H), 0.0, 1.0);\n// float LdH = clamp(dot(L, H), 0.0, 1.0);\n// float VdH = clamp(dot(V, H), 0.0, 1.0);\n\n// vec3 F = specularReflection(specularEnvR0, specularEnvR90, VdH);\n// float G = geometricOcclusion(NdL, NdV, roughness);\n// float D = microfacetDistribution(roughness, NdH);\n\n// vec3 diffuseContrib = (1.0 - F) * (diffuseColor / PI);\n// vec3 specContrib = F * G * D / (4.0 * NdL * NdV);\n \n// // Shading based off lights\n// // vec3 color = NdL * uLightColor * (diffuseContrib + specContrib);\n// vec3 color = NdL * (diffuseContrib + specContrib);\n\n// // Calculate IBL lighting\n// vec3 diffuseIBL;\n// vec3 specularIBL;\n// getIBLContribution(diffuseIBL, specularIBL, NdV, roughness, N, reflection, diffuseColor, specularColor);\n\n// // Add IBL on top of color\n// color += specularIBL;\n\n// color *= orm.r;\n\n// color += getEmissiveColor();\n\n// // Convert to sRGB to display\n// gl_FragColor.rgb = color;\n// gl_FragColor.a = baseDiffuseColor.a;\n// }\n\nvoid onlyDiffuse() {\n vec4 baseColor = getDiffuseColor();\n vec3 tc = getTeamColor();\n float tcFactor = getOrmColor().a;\n\n if (tcFactor > 0.1) {\n baseColor.rgb *= tc * tcFactor;\n }\n\n gl_FragColor = baseColor;\n}\n\nvoid onlyNormalMap() {\n gl_FragColor = vec4(decodeNormal(), 1.0);\n}\n\nvoid onlyOcclusion() {\n gl_FragColor = vec4(getOrmColor().rrr, 1.0);\n}\n\nvoid onlyRoughness() {\n gl_FragColor = vec4(getOrmColor().ggg, 1.0);\n}\n\nvoid onlyMetallic() {\n gl_FragColor = vec4(getOrmColor().bbb, 1.0);\n}\n\nvoid onlyTeamColorFactor() {\n gl_FragColor = vec4(getOrmColor().aaa, 1.0);\n}\n\nvoid onlyEmissiveMap() {\n gl_FragColor = vec4(getEmissiveColor(), 1.0);\n}\n\nvoid onlyTexCoords() {\n gl_FragColor = vec4(v_uv, 0.0, 1.0);\n}\n\nvoid onlyNormals() {\n gl_FragColor = vec4(v_normal, 1.0);\n}\n\n#if defined(ONLY_TANGENTS)\nvoid onlyTangents() {\n gl_FragColor = vec4(v_tangent, 1.0);\n}\n#endif\n\nvoid lambert() {\n vec4 baseColor = getDiffuseColor();\n vec3 normal = decodeNormal();\n vec4 orm = getOrmColor();\n vec3 emissive = getEmissiveColor();\n vec3 tc = getTeamColor();\n float aoFactor = orm.r;\n float tcFactor = orm.a;\n float lambertFactor = clamp(dot(normal, v_lightDir), 0.0, 1.0);\n vec3 color = baseColor.rgb;\n\n if (tcFactor > 0.1) {\n color *= tc * tcFactor;\n }\n \n color *= clamp(lambertFactor * aoFactor + 0.1, 0.0, 1.0);\n color += emissive;\n\n gl_FragColor = vec4(color, baseColor.a);\n}\n\nvoid main() {\n #if defined(ONLY_DIFFUSE)\n onlyDiffuse();\n #elif defined(ONLY_NORMAL_MAP)\n onlyNormalMap();\n #elif defined(ONLY_OCCLUSION)\n onlyOcclusion();\n #elif defined(ONLY_ROUGHNESS)\n onlyRoughness();\n #elif defined(ONLY_METALLIC)\n onlyMetallic();\n #elif defined(ONLY_TC_FACTOR)\n onlyTeamColorFactor();\n #elif defined(ONLY_EMISSIVE)\n onlyEmissiveMap();\n #elif defined(ONLY_TEXCOORDS)\n onlyTexCoords();\n #elif defined(ONLY_NORMALS)\n onlyNormals();\n #elif defined(ONLY_TANGENTS)\n onlyTangents();\n #else\n lambert();\n #endif\n}\n`,pb=`\n${h_}\n\n#define EMITTER_PARTICLE2 0\n#define EMITTER_RIBBON 1\n\nuniform sampler2D u_texture;\nuniform highp int u_emitter;\nuniform float u_filterMode;\n\nvarying vec2 v_texcoord;\nvarying vec4 v_color;\n\nvoid main() {\n vec4 texel = texture2D(u_texture, v_texcoord);\n vec4 color = texel * v_color;\n\n // 1bit Alpha, used by ribbon emitters.\n if (u_emitter == EMITTER_RIBBON && u_filterMode == 1.0 && color.a < 0.75) {\n discard;\n }\n\n // "Close to 0 alpha"\n if (u_emitter == EMITTER_PARTICLE2 && (u_filterMode == 2.0 || u_filterMode == 3.0) && color.a < 0.02) {\n discard;\n }\n\n // Alpha key.\n if (u_emitter == EMITTER_PARTICLE2 && (u_filterMode == 4.0) && color.a < 0.75) {\n discard;\n }\n\n gl_FragColor = color;\n}\n`,_b=e=>new g_(e),gb=e=>async function(e){if(p_)return p_.decodeAudioData(e)}(e),bb={load(e,t,n=!1){const a=e.gl,r=e.webgl;if(!r.ensureExtension("OES_texture_float"))throw new Error("MDX: No float texture support!");if(!r.ensureExtension("ANGLE_instanced_arrays"))throw new Error("MDX: No instanced rendering support!");const i="#define EXTENDED_BONES\n"+db,s="#define ONLY_DIFFUSE\n"+hb,l="#define ONLY_TEXCOORDS\n"+hb,o="#define ONLY_NORMALS\n"+hb,u="#define EXTENDED_BONES\n"+fb,c="#define SKIN\n"+fb,d="#define ONLY_DIFFUSE\n"+mb,h="#define ONLY_NORMAL_MAP\n"+mb,f="#define ONLY_OCCLUSION\n"+mb,m="#define ONLY_ROUGHNESS\n"+mb,p="#define ONLY_METALLIC\n"+mb,_="#define ONLY_TC_FACTOR\n"+mb,g="#define ONLY_EMISSIVE\n"+mb,b="#define ONLY_TEXCOORDS\n"+mb,w="#define ONLY_NORMALS\n"+mb,v="#define ONLY_TANGENTS\n"+mb,A=r.createShader(db,hb),y=r.createShader(i,hb),S="#define SKIN\n"+db,T=r.createShader(S,hb),x=r.createShader(fb,mb),E=r.createShader(u,mb),L=r.createShader(c,mb),I=r.createShader("\n#define EMITTER_PARTICLE2 0\n#define EMITTER_RIBBON 1\n#define EMITTER_SPLAT 2\n#define EMITTER_UBERSPLAT 3\n#define HEAD 0.0\n\nuniform mat4 u_VP;\nuniform int u_emitter;\n\n// Shared\nuniform vec4 u_colors[3];\nuniform vec3 u_vertices[4];\nuniform vec3 u_intervals[4];\nuniform float u_lifeSpan;\nuniform float u_columns;\nuniform float u_rows;\n\n// Particle2\nuniform vec3 u_scaling;\nuniform vec3 u_cameraZ;\nuniform float u_timeMiddle;\nuniform bool u_teamColored;\n\n// Splat and Uber.\nuniform vec3 u_intervalTimes;\n\n// Vertices\nattribute float a_position;\n\n// Instances\nattribute vec3 a_p0;\nattribute vec3 a_p1;\nattribute vec3 a_p2;\nattribute vec3 a_p3;\nattribute float a_health;\nattribute vec4 a_color;\nattribute float a_tail;\nattribute vec3 a_leftRightTop;\n\nvarying vec2 v_texcoord;\nvarying vec4 v_color;\n\nfloat getCell(vec3 interval, float factor) {\n float start = interval[0];\n float end = interval[1];\n float repeat = interval[2];\n float spriteCount = end - start;\n\n if (spriteCount > 0.0) {\n // Repeating speeds up the sprite animation, which makes it effectively run N times in its interval.\n // E.g. if repeat is 4, the sprite animation will be seen 4 times, and thus also run 4 times as fast.\n // The sprite index is limited to the number of actual sprites.\n return min(start + mod(floor(spriteCount * repeat * factor), spriteCount), u_columns * u_rows - 1.0);\n }\n\n return start;\n}\n\nvoid particle2() {\n float factor = (u_lifeSpan - a_health) / u_lifeSpan;\n int index = 0;\n\n if (factor < u_timeMiddle) {\n factor = factor / u_timeMiddle;\n index = 0;\n } else {\n factor = (factor - u_timeMiddle) / (1.0 - u_timeMiddle);\n index = 1;\n }\n\n factor = min(factor, 1.0);\n\n float scale = mix(u_scaling[index], u_scaling[index + 1], factor);\n vec4 color = mix(u_colors[index], u_colors[index + 1], factor);\n\n float cell = 0.0;\n\n if (u_teamColored) {\n cell = a_leftRightTop[0];\n } else {\n vec3 interval;\n\n if (a_tail == HEAD) {\n interval = u_intervals[index];\n } else {\n interval = u_intervals[index + 2];\n }\n\n cell = getCell(interval, factor);\n }\n\n float left = floor(mod(cell, u_columns));\n float top = floor(cell / u_columns);\n float right = left + 1.0;\n float bottom = top + 1.0;\n\n left /= u_columns;\n right /= u_columns;\n top /= u_rows;\n bottom /= u_rows;\n\n if (a_position == 0.0) {\n v_texcoord = vec2(right, top);\n } else if (a_position == 1.0) {\n v_texcoord = vec2(left, top);\n } else if (a_position == 2.0) {\n v_texcoord = vec2(left, bottom);\n } else if (a_position == 3.0) {\n v_texcoord = vec2(right, bottom);\n }\n\n v_color = color;\n \n if (a_tail == HEAD) {\n vec3 v = u_vertices[int(a_position)];\n float cs = cos(a_p1.x);\n float sn = sin(a_p1.x);\n\n float x = v.x * cs - v.y * sn;\n float y = v.x * sn + v.y * cs;\n\n vec3 fv = vec3(\n v.x * cs - v.y * sn,\n v.x * sn + v.y * cs,\n v.z);\n\n gl_Position = u_VP * vec4(a_p0 + fv * scale, 1.0);\n } else {\n // Get the normal to the tail in camera space.\n // This allows to build a 2D rectangle around the 3D tail.\n vec3 normal = cross(u_cameraZ, normalize(a_p1 - a_p0));\n vec3 boundary = normal * scale * a_p2[0];\n vec3 position;\n\n if (a_position == 0.0) {\n position = a_p0 - boundary;\n } else if (a_position == 1.0) {\n position = a_p1 - boundary;\n } else if (a_position == 2.0) {\n position = a_p1 + boundary;\n } else if (a_position == 3.0) {\n position = a_p0 + boundary;\n }\n\n gl_Position = u_VP * vec4(position, 1.0);\n }\n}\n\nvoid ribbon() {\n vec3 position;\n float left = a_leftRightTop[0] / 255.0;\n float right = a_leftRightTop[1] / 255.0;\n float top = a_leftRightTop[2] / 255.0;\n float bottom = top + 1.0;\n\n if (a_position == 0.0) {\n v_texcoord = vec2(right, top);\n position = a_p0;\n } else if (a_position == 1.0) {\n v_texcoord = vec2(right, bottom);\n position = a_p1;\n } else if (a_position == 2.0) {\n v_texcoord = vec2(left, bottom);\n position = a_p2;\n } else if (a_position == 3.0) {\n v_texcoord = vec2(left, top);\n position = a_p3;\n }\n\n v_texcoord[0] /= u_columns;\n v_texcoord[1] /= u_rows;\n\n v_color = a_color;\n\n gl_Position = u_VP * vec4(position, 1.0);\n}\n\nvoid splat() {\n float factor = u_lifeSpan - a_health;\n int index;\n\n if (factor < u_intervalTimes[0]) {\n factor = factor / u_intervalTimes[0];\n index = 0;\n } else {\n factor = (factor - u_intervalTimes[0]) / u_intervalTimes[1];\n index = 1;\n }\n\n float cell = getCell(u_intervals[index], factor);\n float left = floor(mod(cell, u_columns));\n float top = floor(cell / u_columns);\n float right = left + 1.0;\n float bottom = top + 1.0;\n vec3 position;\n\n if (a_position == 0.0) {\n v_texcoord = vec2(left, top);\n position = a_p0;\n } else if (a_position == 1.0) {\n v_texcoord = vec2(left, bottom);\n position = a_p1;\n } else if (a_position == 2.0) {\n v_texcoord = vec2(right, bottom);\n position = a_p2;\n } else if (a_position == 3.0) {\n v_texcoord = vec2(right, top);\n position = a_p3;\n }\n\n v_texcoord[0] /= u_columns;\n v_texcoord[1] /= u_rows;\n\n v_color = mix(u_colors[index], u_colors[index + 1], factor) / 255.0;\n\n gl_Position = u_VP * vec4(position, 1.0);\n}\n\nvoid ubersplat() {\n float factor = u_lifeSpan - a_health;\n vec4 color;\n\n if (factor < u_intervalTimes[0]) {\n color = mix(u_colors[0], u_colors[1], factor / u_intervalTimes[0]);\n } else if (factor < u_intervalTimes[0] + u_intervalTimes[1]) {\n color = u_colors[1];\n } else {\n color = mix(u_colors[1], u_colors[2], (factor - u_intervalTimes[0] - u_intervalTimes[1]) / u_intervalTimes[2]);\n }\n\n vec3 position;\n\n if (a_position == 0.0) {\n v_texcoord = vec2(0.0, 0.0);\n position = a_p0;\n } else if (a_position == 1.0) {\n v_texcoord = vec2(0.0, 1.0);\n position = a_p1;\n } else if (a_position == 2.0) {\n v_texcoord = vec2(1.0, 1.0);\n position = a_p2;\n } else if (a_position == 3.0) {\n v_texcoord = vec2(1.0, 0.0);\n position = a_p3;\n }\n\n v_color = color / 255.0;\n\n gl_Position = u_VP * vec4(position, 1.0);\n}\n\nvoid main() {\n if (u_emitter == EMITTER_PARTICLE2) {\n particle2();\n } else if (u_emitter == EMITTER_RIBBON) {\n ribbon();\n } else if (u_emitter == EMITTER_SPLAT) {\n splat();\n } else if (u_emitter == EMITTER_UBERSPLAT) {\n ubersplat();\n }\n}\n",pb),U=[],R=[];let C=[];C[Sp.Diffuse]=r.createShader(db,s),C[Sp.TexCoords]=r.createShader(db,l),C[Sp.Normals]=r.createShader(db,o),U[sg.VertexGroups]=C,C=[],C[Sp.Diffuse]=r.createShader(i,s),C[Sp.TexCoords]=r.createShader(i,l),C[Sp.Normals]=r.createShader(i,o),U[sg.ExtendedVertexGroups]=C,C=[],C[Sp.Diffuse]=r.createShader(fb,d),C[Sp.NormalMap]=r.createShader(fb,h),C[Sp.Occlusion]=r.createShader(fb,f),C[Sp.Roughness]=r.createShader(fb,m),C[Sp.Metallic]=r.createShader(fb,p),C[Sp.TCFactor]=r.createShader(fb,_),C[Sp.Emissive]=r.createShader(fb,g),C[Sp.TexCoords]=r.createShader(fb,b),C[Sp.Normals]=r.createShader(fb,w),C[Sp.Tangents]=r.createShader("#define ONLY_TANGENTS\n"+fb,v),R[sg.VertexGroups]=C,C=[],C[Sp.Diffuse]=r.createShader(u,d),C[Sp.NormalMap]=r.createShader(u,h),C[Sp.Occlusion]=r.createShader(u,f),C[Sp.Roughness]=r.createShader(u,m),C[Sp.Metallic]=r.createShader(u,p),C[Sp.TCFactor]=r.createShader(u,_),C[Sp.Emissive]=r.createShader(u,g),C[Sp.TexCoords]=r.createShader(u,b),C[Sp.Normals]=r.createShader(u,w),C[Sp.Tangents]=r.createShader("#define ONLY_TANGENTS\n"+u,v),R[sg.ExtendedVertexGroups]=C,C=[],C[Sp.Diffuse]=r.createShader(c,d),C[Sp.NormalMap]=r.createShader(c,h),C[Sp.Occlusion]=r.createShader(c,f),C[Sp.Roughness]=r.createShader(c,m),C[Sp.Metallic]=r.createShader(c,p),C[Sp.TCFactor]=r.createShader(c,_),C[Sp.Emissive]=r.createShader(c,g),C[Sp.TexCoords]=r.createShader(c,b),C[Sp.Normals]=r.createShader(c,w),C[Sp.Tangents]=r.createShader("#define ONLY_TANGENTS\n"+c,v),R[sg.Skin]=C;const M=a.createBuffer();a.bindBuffer(a.ARRAY_BUFFER,M),a.bufferData(a.ARRAY_BUFFER,new Uint8Array([0,1,2,0,2,3]),a.STATIC_DRAW);const B={pathSolver:t,reforged:n,sdShader:A,sdSkinShader:T,sdExtendedShader:y,hdShader:x,hdExtendedShader:E,hdSkinShader:L,particlesShader:I,sdDebugShaders:U,hdDebugShaders:R,rectBuffer:M,teamColors:[],teamGlows:[],eventObjectTables:{}};e.sharedCache.set("mdx",B)},isValidSource:e=>e instanceof Po||(Bo(e)||No(e)),resource:class extends Rp{constructor(e,t){let n;if(super(t),this.reforged=!1,this.hd=!1,this.solverParams={},this.name="",this.sequences=[],this.globalSequences=[],this.materials=[],this.layers=[],this.textures=[],this.textureAnimations=[],this.geosets=[],this.geosetAnimations=[],this.bones=[],this.lights=[],this.helpers=[],this.attachments=[],this.pivotPoints=[],this.particleEmitters=[],this.particleEmitters2=[],this.ribbonEmitters=[],this.cameras=[],this.eventObjects=[],this.collisionShapes=[],this.hasLayerAnims=!1,this.hasGeosetAnims=!1,this.batches=[],this.genericObjects=[],this.sortedGenericObjects=[],this.hierarchy=[],this.opaqueGroups=[],this.translucentGroups=[],this.arrayBuffer=null,this.elementBuffer=null,this.skinDataType=0,this.bytesPerSkinElement=1,e instanceof Po)n=e;else{n=new Po;try{n.load(e)}catch(e){}}const a=this.viewer,r=this.pathSolver,i=this.solverParams,s=n.version>800,l=s?".dds":".blp";let o=!1;this.reforged=s,this.name=n.name;const u=n.extent;this.bounds.fromExtents(u.min,u.max);for(const e of n.sequences)this.sequences.push(new b_(e));for(const e of n.globalSequences)this.globalSequences.push(e);for(const e of n.textureAnimations)this.textureAnimations.push(new P_(this,e));let c=0;for(const e of n.materials){const t=[];for(const n of e.layers){const a=new O_(this,n,c++,e.priorityPlane);t.push(a),this.layers.push(a)}this.materials.push(new D_(this,e.shader,t)),""!==e.shader&&(this.hd=!0)}s&&(i.reforged=!0),this.hd&&(i.hd=!0);const d=n.textures;for(let e=0,t=d.length;e<t;e++){const t=d[e];let n=t.path;const s=t.replaceableId,u=t.wrapMode;""===n&&0!==s&&(n=`ReplaceableTextures\\${G_[s]}${l}`,1!==s&&2!==s||(o=!0));const c=new eg(s,u);a.load(n,r,i).then(e=>{e&&(c.texture=e)}),this.textures[e]=c}for(const e of n.geosetAnimations)this.geosetAnimations.push(new F_(this,e));this.pivotPoints=n.pivotPoints;let h=0;for(const e of n.bones)this.bones.push(new K_(this,e,h++));for(const e of n.lights)this.lights.push(new H_(this,e,h++));for(const e of n.helpers)this.helpers.push(new z_(this,e,h++));for(const e of n.attachments)this.attachments.push(new j_(this,e,h++));for(const e of n.particleEmitters)this.particleEmitters.push(new X_(this,e,h++));for(const e of n.particleEmitters2){const t=new tg(this,e,h++);this.particleEmitters2.push(t),t.teamColored&&(o=!0)}for(const e of n.ribbonEmitters)this.ribbonEmitters.push(new ng(this,e,h++));for(const e of n.cameras)this.cameras.push(new ag(this,e));for(const e of n.eventObjects)this.eventObjects.push(new rg(this,e,h++));for(const e of n.collisionShapes)this.collisionShapes.push(new ig(this,e,h++));this.genericObjects.push(...this.bones,...this.lights,...this.helpers,...this.attachments,...this.particleEmitters,...this.particleEmitters2,...this.ribbonEmitters,...this.eventObjects,...this.collisionShapes),function(e,t){if(t.length>0){const n=e.viewer.gl;let a=0,r=0,i=0,s=0,l=0,o=0;const u=[];for(let e=0,n=t.length;e<n;e++){const n=t[e];if(0===n.lod||-1===n.lod){const t=n.vertices.length/3;if(a+=12*t,r+=12*t,i+=n.uvSets.length*t*8,n.tangents.length&&(s+=16*t),n.skin.length)l+=8*t,u[e]=sg.Skin;else{let a=0;for(const e of n.matrixGroups)e>a&&(a=e);a>4?(l+=9*t,u[e]=sg.ExtendedVertexGroups):(l+=5*t,u[e]=sg.VertexGroups)}o+=n.faces.byteLength}}let c=0,d=c+a,h=d+r,f=h+i,m=f+s,p=0,_=Uint8Array,g=n.UNSIGNED_BYTE;e.bones.length>255&&(l*=2,_=Uint16Array,g=n.UNSIGNED_SHORT),e.skinDataType=g,e.bytesPerSkinElement=_.BYTES_PER_ELEMENT,e.arrayBuffer=n.createBuffer(),n.bindBuffer(n.ARRAY_BUFFER,e.arrayBuffer),n.bufferData(n.ARRAY_BUFFER,m+l,n.STATIC_DRAW),e.elementBuffer=n.createBuffer(),n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,e.elementBuffer),n.bufferData(n.ELEMENT_ARRAY_BUFFER,o,n.STATIC_DRAW);for(let a=0,r=t.length;a<r;a++){const r=t[a];if(0===r.lod||-1===r.lod){const t=r.vertices,i=r.normals,s=r.uvSets,l=r.tangents,o=r.faces;let g;const b=r.vertices.length/3,w=u[a];if(w===sg.Skin)g=r.skin;else{const e=r.matrixIndices,t=r.vertexGroups,n=[];let a=0,i=4;w===sg.ExtendedVertexGroups&&(i=8),g=new _(b*(i+1));for(const t of r.matrixGroups)n.push(e.subarray(a,a+t)),a+=t;for(let e=0;e<b;e++){const r=n[t[e]];if(a=e*(i+1),r){const e=Math.min(r.length,i);for(let t=0;t<e;t++)g[a+t]=r[t]+1;g[a+i]=e}}}const v=new og(e,e.geosets.length,c,d,h,f,m,p,b,o.length,r.faceTypeGroups[0]);e.geosets.push(v);const A=e.materials[r.materialId];if("Shader_HD_DefaultUnit"===A.shader)e.batches.push(new lg(e.batches.length,v,A,w,!0));else for(const t of A.layers)e.batches.push(new lg(e.batches.length,v,t,w,!1));n.bufferSubData(n.ARRAY_BUFFER,c,t),c+=t.byteLength,n.bufferSubData(n.ARRAY_BUFFER,d,i),d+=i.byteLength;for(const e of s)n.bufferSubData(n.ARRAY_BUFFER,h,e),h+=e.byteLength;l.length&&(n.bufferSubData(n.ARRAY_BUFFER,f,l),f+=l.byteLength),n.bufferSubData(n.ARRAY_BUFFER,m,g),m+=g.byteLength,n.bufferSubData(n.ELEMENT_ARRAY_BUFFER,p,o),p+=o.byteLength}}}}(this,n.geosets),function(e){const t=[];let n=[];for(const a of e.batches)a.layer.filterMode<2?t.push(a):n.push(a);const a=e.opaqueGroups,r=e.translucentGroups;let i=null;for(const n of t)i&&hg(i,n)||(i=fg(e,n),a.push(i)),i.objects.push(n.index);n=n.sort((e,t)=>e.layer.filterMode-t.layer.filterMode);const s=[...n,...e.eventObjects,...e.particleEmitters2,...e.ribbonEmitters].sort((e,t)=>dg(e)-dg(t));i=null;for(const t of s)(t instanceof lg||-1!==t.geometryEmitterType)&&(i&&hg(i,t)||(i=fg(e,t),r.push(i)),i.objects.push(t.index))}(this),this.setupHierarchy(-1);for(let e=0,t=this.genericObjects.length;e<t;e++)this.sortedGenericObjects[e]=this.genericObjects[this.hierarchy[e]];o&&bb.loadTeamTextures(a)}addInstance(){return new ub(this)}setupHierarchy(e){for(let t=0,n=this.genericObjects.length;t<n;t++){const n=this.genericObjects[t];n.parentId===e&&(this.hierarchy.push(t),this.setupHierarchy(n.objectId))}}},loadTeamTextures(e){const{pathSolver:t,reforged:n,teamColors:a,teamGlows:r}=e.sharedCache.get("mdx");if(0===a.length){const i=n?28:16,s=n?"dds":"blp",l=n?{reforged:!0}:void 0;for(let n=0;n<i;n++){const i=`${`${n}`.padStart(2,"0")}.${s}`,o=new eg(1,3),u=new eg(2,3);e.load(`ReplaceableTextures\\TeamColor\\TeamColor${i}`,t,l).then(e=>o.texture=e),e.load(`ReplaceableTextures\\TeamGlow\\TeamGlow${i}`,t,l).then(e=>u.texture=e),a[n]=o,r[n]=u}}},getEventObjectSoundFile(e,t,n,a){if(!t||".flac"===Tl(e))return e;for(let t=1,r=a.length;t<r;t++){const r=a[t].data.getRow(e);if(r){const e=r.string("Flags"),t=r.string("Filepath");if("SD_ONLY"===e){if(!n)return t}else{if("HD_ONLY"!==e)return t;if(n)return t}}}},async getEventObjectData(e,t,n,a){if("SPN"!==t&&"SPL"!==t&&"UBR"!==t&&"SND"!==t)return;const{pathSolver:r,reforged:i,eventObjectTables:s}=e.sharedCache.get("mdx"),l=i?{reforged:!0}:{},o=(e,t)=>r?r(e,t):e;if(!s[t]){const n=[];"SPN"===t?n.push("Splats\\SpawnData.slk"):"SPL"===t?n.push("Splats\\SplatData.slk"):"UBR"===t?n.push("Splats\\UberSplatData.slk"):"SND"===t&&(n.push("UI\\SoundInfo\\AnimSounds.slk"),i?n.push("UI\\SoundInfo\\DialogueHumanBase.slk","UI\\SoundInfo\\DialogueOrcBase.slk","UI\\SoundInfo\\DialogueUndeadBase.slk","UI\\SoundInfo\\DialogueNightElfBase.slk","UI\\SoundInfo\\DialogueNagaBase.slk","UI\\SoundInfo\\DialogueDemonBase.slk","UI\\SoundInfo\\DialogueCreepsBase.slk"):n.push("UI\\SoundInfo\\AnimLookups.slk"));const a=n.map(t=>e.loadGeneric(o(t,l),"text",_b)),r=await Promise.all(a);for(const e of r)if(!e)return;s[t]=r}const u=s[t],c=u[0].data;let d;const h=[];if("SND"===t){if(i)d=c.findRow("AnimationEventCode",n);else{const e=u[1].data.getRow(n);e&&(d=c.getRow(e.string("SoundLabel")))}if(d)for(const t of d.string("FileNames").split(",")){const n=this.getEventObjectSoundFile(t,i,a,u);n&&h.push(e.loadGeneric(o(n,l),"arrayBuffer",gb))}}else d=c.getRow(n),d&&("SPN"===t?h.push(e.load(d.string("Model").replace(".mdl",".mdx"),o,l)):"SPL"!==t&&"UBR"!==t||h.push(e.load(`ReplaceableTextures\\Splats\\${d.string("file")}${i?".dds":".blp"}`,o,l)));if(d&&h.length){const e=(await Promise.all(h)).filter(e=>e);if(e.length)return{row:d,resources:e}}},getBatchShader(e,t,n){const a=e.sharedCache.get("mdx"),r=e.debugRenderMode;if(n){if(r!==Sp.None){const e=a.hdDebugShaders[t];if(e){const t=e[r];if(t)return t}}return t===sg.Skin?a.hdSkinShader:t===sg.VertexGroups?a.hdShader:a.hdExtendedShader}if(r!==Sp.None){const e=a.sdDebugShaders[t];if(e){const t=e[r];if(t)return t}}return t===sg.Skin?a.sdSkinShader:t===sg.VertexGroups?a.sdShader:a.sdExtendedShader}};const wb={isValidSource:e=>e instanceof Zm||Qm(e),resource:class extends Ap{constructor(e,t){let n;super(t),e instanceof Zm?n=e:(n=new Zm,n.load(e));const a=n.width,r=n.height,i=this.viewer.gl,s=i.createTexture();i.bindTexture(i.TEXTURE_2D,s),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,i.RGBA,i.UNSIGNED_BYTE,n.data),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.LINEAR),Us(a)&&Us(r)?(i.generateMipmap(i.TEXTURE_2D),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.LINEAR_MIPMAP_LINEAR)):i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.LINEAR),this.webglResource=s,this.width=a,this.height=r}}},vb=`\n${h_}\n\nuniform sampler2D u_tilesets[15];\n\nvarying vec4 v_tilesets;\nvarying vec2 v_uv[4];\nvarying vec3 v_normal;\n\nconst vec3 lightDirection = normalize(vec3(-0.3, -0.3, 0.25));\n\nvec4 sample(float tileset, vec2 uv) {\n // 1.0 - 1.0 == 0.0 is not always true.\n int i = int(tileset - 0.6);\n\n if (i == 0) {\n return texture2D(u_tilesets[0], uv);\n } else if (i == 1) {\n return texture2D(u_tilesets[1], uv);\n } else if (i == 2) {\n return texture2D(u_tilesets[2], uv);\n } else if (i == 3) {\n return texture2D(u_tilesets[3], uv);\n } else if (i == 4) {\n return texture2D(u_tilesets[4], uv);\n } else if (i == 5) {\n return texture2D(u_tilesets[5], uv);\n } else if (i == 6) {\n return texture2D(u_tilesets[6], uv);\n } else if (i == 7) {\n return texture2D(u_tilesets[7], uv);\n } else if (i == 8) {\n return texture2D(u_tilesets[8], uv);\n } else if (i == 9) {\n return texture2D(u_tilesets[9], uv);\n } else if (i == 10) {\n return texture2D(u_tilesets[10], uv);\n } else if (i == 11) {\n return texture2D(u_tilesets[11], uv);\n } else if (i == 12) {\n return texture2D(u_tilesets[12], uv);\n } else if (i == 13) {\n return texture2D(u_tilesets[13], uv);\n } else if (i == 14) {\n return texture2D(u_tilesets[14], uv);\n }\n}\n\nvec4 blend(vec4 color, float tileset, vec2 uv) {\n vec4 texel = sample(tileset, uv);\n\n return mix(color, texel, texel.a);\n}\n\nvoid main() {\n vec4 color = sample(v_tilesets[0], v_uv[0]);\n\n if (v_tilesets[1] > 0.5) {\n color = blend(color, v_tilesets[1], v_uv[1]);\n }\n\n if (v_tilesets[2] > 0.5) {\n color = blend(color, v_tilesets[2], v_uv[2]);\n }\n\n if (v_tilesets[3] > 0.5) {\n color = blend(color, v_tilesets[3], v_uv[3]);\n }\n\n //color *= clamp(dot(v_normal, lightDirection) + 0.45, 0.0, 1.0);\n\n gl_FragColor = vec4(color.rgb, 1.0);\n}\n`,Ab=`\n${h_}\n\nuniform sampler2D u_waterTexture;\n\nvarying vec2 v_uv;\nvarying vec4 v_color;\n\nvoid main() {\n gl_FragColor = texture2D(u_waterTexture, v_uv) * v_color;\n}\n`,yb=`\n// #extension GL_OES_standard_derivatives : enable\n\n${h_}\n\nuniform sampler2D u_texture1;\nuniform sampler2D u_texture2;\n\nvarying vec3 v_normal;\nvarying vec2 v_uv;\nvarying float v_texture;\nvarying vec3 v_position;\n\n// const vec3 lightDirection = normalize(vec3(-0.3, -0.3, 0.25));\n\nvec4 sample(float texture, vec2 uv) {\n // int(0.0) == 0 is not always true.\n int i = int(texture + 0.1);\n\n if (i == 0) {\n return texture2D(u_texture1, uv);\n } else {\n return texture2D(u_texture2, uv);\n }\n}\n\nvoid main() {\n vec4 color = sample(v_texture, v_uv);\n\n // vec3 faceNormal = cross(dFdx(v_position), dFdy(v_position));\n // vec3 normal = normalize((faceNormal + v_normal) * 0.5);\n\n // color *= clamp(dot(normal, lightDirection) + 0.45, 0.1, 1.0);\n\n gl_FragColor = color;\n}\n`;function Sb(e){return e.reverse().filter((e,t,n)=>-1===n.indexOf(e,t+1)).reverse()}const Tb={AAAB:1,AAAC:1,AABA:1,AABB:2,AABC:0,AACA:1,AACB:0,AACC:1,ABAA:1,ABAB:1,ABAC:0,ABBA:2,ABBB:1,ABBC:0,ABCA:0,ABCB:0,ABCC:0,ACAA:1,ACAB:0,ACAC:1,ACBA:0,ACBB:0,ACBC:0,ACCA:1,ACCB:0,ACCC:1,BAAA:1,BAAB:1,BAAC:0,BABA:1,BABB:1,BABC:0,BACA:0,BACB:0,BACC:0,BBAA:1,BBAB:1,BBAC:0,BBBA:1,BBCA:0,BCAA:0,BCAB:0,BCAC:0,BCBA:0,BCCA:0,CAAA:1,CAAB:0,CAAC:1,CABA:0,CABB:0,CABC:0,CACA:1,CACB:0,CACC:1,CBAA:0,CBAB:0,CBAC:0,CBBA:0,CBCA:0,CCAA:1,CCAB:0,CCAC:1,CCBA:0,CCCA:1},xb={AAAB:2,AAAC:1,AABA:1,AABB:3,AABC:0,AACA:1,AACB:0,AACC:3,ABAA:1,ABAB:2,ABAC:0,ABBA:3,ABBB:0,ABBC:0,ABCA:0,ABCB:0,ABCC:0,ACAA:1,ACAB:0,ACAC:2,ACBA:0,ACBB:0,ACBC:0,ACCA:3,ACCB:0,ACCC:1,BAAA:1,BAAB:3,BAAC:0,BABA:2,BABB:0,BABC:0,BACA:0,BACB:0,BACC:0,BBAA:3,BBAB:1,BBAC:0,BBBA:1,BBCA:0,BCAA:0,BCAB:0,BCAC:0,BCBA:0,BCCA:0,CAAA:1,CAAB:0,CAAC:3,CABA:0,CABB:0,CABC:0,CACA:2,CACB:0,CACC:1,CBAA:0,CBAB:0,CBAC:0,CBBA:0,CBCA:0,CCAA:3,CCAB:0,CCAC:1,CCBA:0,CCCA:1};function Eb(e,t,n){return"Cliffs"===e?Math.min(n,Tb[t]):Math.min(n,xb[t])}class Lb{constructor(e,t,n,a,r){const i=e.viewer.gl,s=e.viewer.webgl,l=s.extensions.ANGLE_instanced_arrays,o=s.extensions.OES_vertex_array_object,u=new Po;u.load(t);const c=u.geosets[0],d=c.vertices,h=c.normals,f=c.uvSets[0],m=c.faces,p=d.byteLength,_=p+h.byteLength;let g=null;const b=r.attribs;o&&(g=o.createVertexArrayOES(),o.bindVertexArrayOES(g));const w=i.createBuffer();i.bindBuffer(i.ARRAY_BUFFER,w),i.bufferData(i.ARRAY_BUFFER,_+f.byteLength,i.STATIC_DRAW),i.bufferSubData(i.ARRAY_BUFFER,0,d),i.bufferSubData(i.ARRAY_BUFFER,p,h),i.bufferSubData(i.ARRAY_BUFFER,_,f),o&&(i.vertexAttribPointer(b.a_position,3,i.FLOAT,!1,0,0),i.enableVertexAttribArray(b.a_position),i.vertexAttribPointer(b.a_normal,3,i.FLOAT,!1,0,p),i.enableVertexAttribArray(b.a_normal),i.vertexAttribPointer(b.a_uv,2,i.FLOAT,!1,0,_),i.enableVertexAttribArray(b.a_uv));const v=4*n.length,A=i.createBuffer();i.bindBuffer(i.ARRAY_BUFFER,A),i.bufferData(i.ARRAY_BUFFER,v+a.length,i.STATIC_DRAW),i.bufferSubData(i.ARRAY_BUFFER,0,new Float32Array(n)),i.bufferSubData(i.ARRAY_BUFFER,v,new Uint8Array(a)),o&&(i.vertexAttribPointer(b.a_instancePosition,3,i.FLOAT,!1,0,0),i.enableVertexAttribArray(b.a_instancePosition),l.vertexAttribDivisorANGLE(b.a_instancePosition,1),i.vertexAttribPointer(b.a_instanceTexture,1,i.UNSIGNED_BYTE,!1,0,v),i.enableVertexAttribArray(b.a_instanceTexture),l.vertexAttribDivisorANGLE(b.a_instanceTexture,1));const y=i.createBuffer();i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,y),i.bufferData(i.ELEMENT_ARRAY_BUFFER,m,i.STATIC_DRAW),o&&o.bindVertexArrayOES(null),this.map=e,this.vertexBuffer=w,this.faceBuffer=y,this.normalsOffset=p,this.uvsOffset=_,this.elements=m.length,this.locationAndTextureBuffer=A,this.texturesOffset=v,this.instances=n.length/3,this.vao=g}render(e){const t=this.map.viewer,n=t.gl,a=t.webgl,r=a.extensions.ANGLE_instanced_arrays,i=a.extensions.OES_vertex_array_object,s=e.attribs;i?i.bindVertexArrayOES(this.vao):(n.bindBuffer(n.ARRAY_BUFFER,this.locationAndTextureBuffer),n.vertexAttribPointer(s.a_instancePosition,3,n.FLOAT,!1,0,0),n.vertexAttribPointer(s.a_instanceTexture,1,n.UNSIGNED_BYTE,!1,0,this.texturesOffset),n.bindBuffer(n.ARRAY_BUFFER,this.vertexBuffer),n.vertexAttribPointer(s.a_position,3,n.FLOAT,!1,0,0),n.vertexAttribPointer(s.a_normal,3,n.FLOAT,!1,0,this.normalsOffset),n.vertexAttribPointer(s.a_uv,2,n.FLOAT,!1,0,this.uvsOffset),n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,this.faceBuffer)),r.drawElementsInstancedANGLE(n.TRIANGLES,this.elements,n.UNSIGNED_SHORT,0,this.instances),i&&i.bindVertexArrayOES(null)}}function Ib(e,t){return e.sequence.rarity-t.sequence.rarity}function Ub(e){const t=function(e,t){const n=function(e,t){const n=[];for(let a=0,r=t.length;a<r;a++){const r=t[a];r.name.split("-")[0].replace(/\d/g,"").trim().toLowerCase()===e&&n.push({sequence:r,index:a})}return n}(e,t);let a,r;for(n.sort(Ib),a=0,r=n.length;a<r;a++){const e=n[a].sequence.rarity;if(0===e)break;if(10*Math.random()>e)return n[a]}const i=n.length-a;return n[a+Math.floor(Math.random()*i)]}("stand",e.model.sequences);t&&e.setSequence(t.index)}var Rb;!function(e){e[e.IDLE=0]="IDLE",e[e.WALK=1]="WALK"}(Rb||(Rb={}));class Cb{constructor(e,t){this.state=Rb.IDLE,this.instance=t.addInstance(),this.instance.setScene(e.worldScene)}update(){(this.instance.sequenceEnded||-1===this.instance.sequence)&&this.state===Rb.IDLE&&Ub(this.instance)}}const Mb=Wt();class Bb extends Cb{constructor(e,t,n,a){super(e,t);const r=this.instance;r.move(a.location),r.rotateLocal(Na(Ma(),ts,a.angle)),r.scale(a.scale),r.setTeamColor(a.player),r.setScene(e.worldScene),n&&(Mb[2]=n.number("moveHeight"),r.move(Mb),r.setVertexColor([n.number("red")/255,n.number("green")/255,n.number("blue")/255,1]),r.uniformScale(n.number("modelScale"))),this.instance=r,this.row=n}}class Nb extends Cb{constructor(e,t,n,a){super(e,t);const r=this.instance;r.move(a.location),r.rotateLocal(Na(Ma(),ts,a.angle)),r.scale(a.scale),r.setScene(e.worldScene),this.instance=r,this.row=n}}const Pb=Wt();class kb{constructor(e,t,n,a){const r=e.centerOffset,i=t.addInstance();Pb[0]=128*a.location[0]+r[0]+128,Pb[1]=128*a.location[1]+r[1]+128,i.move(Pb),i.rotateLocal(Na(Ma(),ts,vs(n.number("fixedRot")))),i.setScene(e.worldScene),this.instance=i,this.row=n}}const Ob=Wt(),Db=Wt();class Fb{constructor(e,t){this.buildVersion=0,this.solverParams={tileset:"a"},this.waterIndex=0,this.waterIncreasePerFrame=0,this.waterHeightOffset=0,this.waterTextures=[],this.maxDeepColor=new Float32Array(4),this.minDeepColor=new Float32Array(4),this.maxShallowColor=new Float32Array(4),this.minShallowColor=new Float32Array(4),this.anyReady=!1,this.terrainReady=!1,this.cliffsReady=!1,this.doodads=[],this.terrainDoodads=[],this.doodadsReady=!1,this.units=[],this.unitsReady=!1,this.tilesetTextures=[],this.cliffTextures=[],this.cliffModels=[],this.corners=[],this.centerOffset=new Float32Array(2),this.mapSize=new Int32Array(2),this.tilesets=[],this.blightTextureIndex=-1,this.cliffTilesets=[],this.columns=0,this.rows=0,this.vertexBuffer=null,this.faceBuffer=null,this.instanceBuffer=null,this.textureBuffer=null,this.variationBuffer=null,this.waterBuffer=null,this.heightMap=null,this.waterHeightMap=null,this.cliffHeightMap=null,this.viewer=e,this.worldScene=e.addScene(),this.map=new Sf,this.map.load(t,!0),this.loadMapInformation(),this.pathSolver=(t,n)=>{if("string"==typeof t){const a=t.replace(/\//g,"\\"),r=this.map.get(a);return r?r.arrayBuffer():e.wc3PathSolver(t,n)}return t},this.loadTerrainCliffsAndWater();const n=this.map.readModifications();this.applyModificationFile(e.doodadsData,e.doodadMetaData,n.w3d),this.applyModificationFile(e.doodadsData,e.destructableMetaData,n.w3b),this.applyModificationFile(e.unitsData,e.unitMetaData,n.w3u),this.applyModificationFile(e.unitsData,e.unitMetaData,n.w3t),this.loadDoodadsAndDestructibles(),this.loadUnitsAndItems()}die(){this.worldScene.detach()}load(e){return this.viewer.load(e,this.pathSolver,this.solverParams)}loadMapInformation(){const e=this.map.get("war3map.w3i");if(!e)return void console.warn("Attempted to load war3map.w3i but it is not there. Using default tileset A.");const t=new yf;try{t.load(e.bytes())}catch(e){console.warn("Failed to correctly parse the map information file")}this.solverParams.tileset=t.tileset.toLowerCase(),this.buildVersion=t.getBuildVersion(),this.buildVersion>131&&(this.solverParams.reforged=!0)}async loadTerrainCliffsAndWater(){const e=this.map.get("war3map.w3e");if(!e)return void console.warn("Attempted to load war3map.w3e, but it is not there.");const t=new Df;try{t.load(e.bytes())}catch(e){return void console.warn(`Failed to load war3map.w3e: ${e}`)}const n=this.viewer,a=t.centerOffset,r=t.mapSize;this.corners=t.corners,this.centerOffset.set(a),this.mapSize.set(r),this.worldScene.grid=new pp(a[0],a[1],128*r[0]-128,128*r[1]-128,2048,2048);const i=this.solverParams.reforged?".dds":".blp",s=t.tileset,l=[],o=[],u=[];for(const e of t.groundTilesets){const t=n.terrainData.getRow(e);this.tilesets.push(t),l.push(this.load(`${t.string("dir")}\\${t.string("file")}${i}`))}this.blightTextureIndex=this.tilesetTextures.length,l.push(this.load(`TerrainArt\\Blight\\${{A:"Ashen",B:"Barrens",C:"Felwood",D:"Cave",F:"Lordf",G:"Dungeon",I:"Ice",J:"DRuins",K:"Citadel",L:"Lords",N:"North",O:"Outland",Q:"VillageFall",V:"Village",W:"Lordw",X:"Village",Y:"Village",Z:"Ruins"}[s]}_Blight${i}`));for(const e of t.cliffTilesets){const t=n.cliffTypesData.getRow(e);this.cliffTilesets.push(t),o.push(this.load(`${t.string("texDir")}\\${t.string("texFile")}${i}`))}const c=n.waterData.getRow(`${s}Sha`);this.waterHeightOffset=c.number("height"),this.waterIncreasePerFrame=c.number("texRate")/60,this.waterTextures.length=0,this.maxDeepColor.set([c.number("Dmax_R"),c.number("Dmax_G"),c.number("Dmax_B"),c.number("Dmax_A")]),this.minDeepColor.set([c.number("Dmin_R"),c.number("Dmin_G"),c.number("Dmin_B"),c.number("Dmin_A")]),this.maxShallowColor.set([c.number("Smax_R"),c.number("Smax_G"),c.number("Smax_B"),c.number("Smax_A")]),this.minShallowColor.set([c.number("Smin_R"),c.number("Smin_G"),c.number("Smin_B"),c.number("Smin_A")]);for(let e=0,t=c.number("numTex");e<t;e++)u.push(this.load(`${c.string("texFile")}${e<10?"0":""}${e}${i}`));this.tilesetTextures=await Promise.all(l),this.cliffTextures=await Promise.all(o),this.waterTextures=await Promise.all(u);const d=t.corners,[h,f]=this.mapSize,m=(h-1)*(f-1),p=new Float32Array(h*f),_=new Float32Array(h*f),g=new Float32Array(h*f),b=new Uint8Array(4*m),w=new Uint8Array(4*m),v=new Uint8Array(m);let A=0;const y={};this.columns=h-1,this.rows=f-1;for(let e=0;e<f;e++)for(let t=0;t<h;t++){const n=d[e][t],r=e*h+t;if(p[r]=n.groundHeight,_[r]=n.groundHeight+n.layerHeight-2,g[r]=n.waterHeight,e<f-1&&t<h-1){if(v[A]=this.isWater(t,e),this.isCliff(t,e)){const r=n.layerHeight,i=d[e][t+1].layerHeight,s=d[e+1][t].layerHeight,l=d[e+1][t+1].layerHeight,o=Math.min(r,i,s,l),u=this.cliffFileName(r,i,s,l,o);if("AAAA"!==u){let r=n.cliffTexture;15===r&&(r=1);const i=this.cliffTilesets[r].string("cliffModelDir"),s=`Doodads\\Terrain\\${i}\\${i}${u}${Eb(i,u,n.cliffVariation)}.mdx`;y[s]||(y[s]={locations:[],textures:[]}),y[s].locations.push(128*(t+1)+a[0],128*e+a[1],128*(o-2)),y[s].textures.push(r)}}else{const a=this.cornerTexture(t,e),r=this.cornerTexture(t+1,e),i=this.cornerTexture(t,e+1),s=this.cornerTexture(t+1,e+1),l=Sb([a,r,i,s]).sort();let o=l[0];b[4*A]=o+1,w[4*A]=this.getVariation(o,n.groundVariation),l.shift();for(let e=0,t=l.length;e<t;e++){let t=0;o=l[e],r===o&&(t|=1),a===o&&(t|=2),s===o&&(t|=4),i===o&&(t|=8),b[4*A+1+e]=o+1,w[4*A+1+e]=t}}A+=1}}const S=this.viewer.gl,T=this.viewer.webgl;this.vertexBuffer=S.createBuffer(),S.bindBuffer(S.ARRAY_BUFFER,this.vertexBuffer),S.bufferData(S.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,1,1]),S.STATIC_DRAW),this.faceBuffer=S.createBuffer(),S.bindBuffer(S.ELEMENT_ARRAY_BUFFER,this.faceBuffer),S.bufferData(S.ELEMENT_ARRAY_BUFFER,new Uint8Array([0,1,2,1,3,2]),S.STATIC_DRAW),this.cliffHeightMap=S.createTexture(),S.bindTexture(S.TEXTURE_2D,this.cliffHeightMap),T.setTextureMode(S.CLAMP_TO_EDGE,S.CLAMP_TO_EDGE,S.NEAREST,S.NEAREST),S.texImage2D(S.TEXTURE_2D,0,S.ALPHA,h,f,0,S.ALPHA,S.FLOAT,p),this.heightMap=S.createTexture(),S.bindTexture(S.TEXTURE_2D,this.heightMap),T.setTextureMode(S.CLAMP_TO_EDGE,S.CLAMP_TO_EDGE,S.NEAREST,S.NEAREST),S.texImage2D(S.TEXTURE_2D,0,S.ALPHA,h,f,0,S.ALPHA,S.FLOAT,_),this.waterHeightMap=S.createTexture(),S.bindTexture(S.TEXTURE_2D,this.waterHeightMap),T.setTextureMode(S.CLAMP_TO_EDGE,S.CLAMP_TO_EDGE,S.NEAREST,S.NEAREST),S.texImage2D(S.TEXTURE_2D,0,S.ALPHA,h,f,0,S.ALPHA,S.FLOAT,g),this.instanceBuffer=S.createBuffer(),S.bindBuffer(S.ARRAY_BUFFER,this.instanceBuffer),S.bufferData(S.ARRAY_BUFFER,new Float32Array(m).map((e,t)=>t),S.STATIC_DRAW),this.textureBuffer=S.createBuffer(),S.bindBuffer(S.ARRAY_BUFFER,this.textureBuffer),S.bufferData(S.ARRAY_BUFFER,b,S.STATIC_DRAW),this.variationBuffer=S.createBuffer(),S.bindBuffer(S.ARRAY_BUFFER,this.variationBuffer),S.bufferData(S.ARRAY_BUFFER,w,S.STATIC_DRAW),this.waterBuffer=S.createBuffer(),S.bindBuffer(S.ARRAY_BUFFER,this.waterBuffer),S.bufferData(S.ARRAY_BUFFER,v,S.STATIC_DRAW),this.terrainReady=!0,this.anyReady=!0;const x=n.cliffShader,E=Object.entries(y).map(async e=>{const t=e[0],{locations:a,textures:r}=e[1],i=await n.loadBaseFile(t,"arrayBuffer");if(i)return new Lb(this,i.data,a,r,x)}).filter(e=>e);this.cliffModels=await Promise.all(E),this.cliffsReady=!0}loadDoodadsAndDestructibles(){const e=this.map.get("war3map.doo");if(!e)return void console.warn("Attempted to load war3map.doo but it is not there");const t=new If;try{t.load(e.bytes(),this.buildVersion)}catch(e){return void console.warn(`Failed to load war3map.doo: ${e}`)}for(const e of t.doodads)try{const t=this.viewer.doodadsData.getRow(e.id);if(t){let n=t.string("file");if(n){const a=t.number("numVar");n.endsWith(".mdl")&&(n=n.slice(0,-4));let r=n;n+=".mdx",a>1&&(r+=Math.min(e.variation,a-1)),r+=".mdx";const i=this.map.get(r)||this.map.get(n);let s;s=i?this.load(i.name):this.load(r),s.then(n=>{n&&this.doodads.push(new Nb(this,n,t,e))})}else console.log("Unknown doodad ID",e.id,e)}}catch(t){console.warn(`Failed to load doodad/destructible ID ${e.id}: ${t}`)}for(const e of t.terrainDoodads)try{const t=this.viewer.doodadsData.getRow(e.id);this.load(`${t.string("file")}.mdx`).then(n=>{n&&this.terrainDoodads.push(new kb(this,n,t,e))})}catch(t){console.warn(`Failed to load cliff/terrain doodad ID ${e.id}: ${t}`)}this.doodadsReady=!0,this.anyReady=!0}loadUnitsAndItems(){const e=this.map.get("war3mapUnits.doo");if(!e)return void console.warn("Attempted to load war3mapUnits.doo but it is not there");const t=new im;try{t.load(e.bytes(),this.buildVersion)}catch(e){return void console.warn(`Failed to load war3mapUnits.doo: ${e}`)}for(const e of t.units)try{let t,n;"sloc"===e.id?n="Objects\\StartLocation\\StartLocation.mdx":(t=this.viewer.unitsData.getRow(e.id),t&&(n=t.string("file"),n&&(n.endsWith(".mdl")&&(n=n.slice(0,-4)),n+=".mdx"))),n?this.load(n).then(n=>{n&&this.units.push(new Bb(this,n,t,e))}):console.log("Unknown unit ID",e.id,e)}catch(t){console.warn(`Failed to load unit/item ID ${e.id}: ${t}`)}this.unitsReady=!0,this.anyReady=!0}update(){if(this.anyReady){this.waterIndex+=this.waterIncreasePerFrame,this.waterIndex>=this.waterTextures.length&&(this.waterIndex=0);for(const e of this.doodads)e.update();for(const e of this.units)e.update()}}render(){if(this.anyReady){const e=this.worldScene;e.startFrame(),this.renderGround(),this.renderCliffs(),e.renderOpaque(),this.renderWater(),e.renderTranslucent()}}renderGround(){if(this.terrainReady){const e=this.viewer.gl,t=this.viewer.webgl,n=t.extensions.ANGLE_instanced_arrays,a=this.viewer.groundShader,r=a.uniforms,i=a.attribs,s=this.tilesetTextures,l=i.a_InstanceID,o=i.a_position,u=i.a_textures,c=i.a_variations,d=s.length;e.enable(e.BLEND),e.blendFunc(e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA),t.useShader(a),e.uniformMatrix4fv(r.u_VP,!1,this.worldScene.camera.viewProjectionMatrix),e.uniform2fv(r.u_offset,this.centerOffset),e.uniform2f(r.u_size,this.columns,this.rows),e.uniform1i(r.u_heightMap,15),e.activeTexture(e.TEXTURE15),e.bindTexture(e.TEXTURE_2D,this.heightMap),e.bindBuffer(e.ARRAY_BUFFER,this.vertexBuffer),e.vertexAttribPointer(o,2,e.FLOAT,!1,0,0),e.bindBuffer(e.ARRAY_BUFFER,this.instanceBuffer),e.vertexAttribPointer(l,1,e.FLOAT,!1,0,0),n.vertexAttribDivisorANGLE(l,1),e.bindBuffer(e.ARRAY_BUFFER,this.textureBuffer),e.vertexAttribPointer(u,4,e.UNSIGNED_BYTE,!1,0,0),n.vertexAttribDivisorANGLE(u,1),e.bindBuffer(e.ARRAY_BUFFER,this.variationBuffer),e.vertexAttribPointer(c,4,e.UNSIGNED_BYTE,!1,0,0),n.vertexAttribDivisorANGLE(c,1),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,this.faceBuffer),e.uniform1f(r.u_baseTileset,0);for(let n=0,a=Math.min(d,15);n<a;n++){const a=s[n].width>s[n].height?1:0;e.uniform1f(r[`u_extended[${n}]`],a),e.uniform1i(r[`u_tilesets[${n}]`],n),t.bindTexture(s[n],n)}if(n.drawElementsInstancedANGLE(e.TRIANGLES,6,e.UNSIGNED_BYTE,0,this.rows*this.columns),d>15){e.uniform1f(r.u_baseTileset,15);for(let n=0,a=d-15;n<a;n++){const a=s[n+15].width>s[n+15].height?1:0;e.uniform1f(r[`u_extended[${n}]`],a),t.bindTexture(s[n+15],n)}n.drawElementsInstancedANGLE(e.TRIANGLES,6,e.UNSIGNED_BYTE,0,this.rows*this.columns)}n.vertexAttribDivisorANGLE(u,0),n.vertexAttribDivisorANGLE(c,0),n.vertexAttribDivisorANGLE(l,0)}}renderWater(){if(this.terrainReady){const e=this.viewer.gl,t=this.viewer.webgl,n=t.extensions.ANGLE_instanced_arrays,a=this.viewer.waterShader,r=a.uniforms,i=a.attribs,s=i.a_InstanceID,l=i.a_position,o=i.a_isWater;e.depthMask(!1),e.enable(e.BLEND),e.blendFunc(e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA),t.useShader(a),e.uniformMatrix4fv(r.u_VP,!1,this.worldScene.camera.viewProjectionMatrix),e.uniform2fv(r.u_offset,this.centerOffset),e.uniform2f(r.u_size,this.columns,this.rows),e.uniform1i(r.u_heightMap,0),e.uniform1i(r.u_waterHeightMap,1),e.uniform1i(r.u_waterTexture,2),e.uniform1f(r.u_offsetHeight,this.waterHeightOffset),e.uniform4fv(r.u_maxDeepColor,this.maxDeepColor),e.uniform4fv(r.u_minDeepColor,this.minDeepColor),e.uniform4fv(r.u_maxShallowColor,this.maxShallowColor),e.uniform4fv(r.u_minShallowColor,this.minShallowColor),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,this.heightMap),e.activeTexture(e.TEXTURE1),e.bindTexture(e.TEXTURE_2D,this.waterHeightMap),t.bindTexture(this.waterTextures[0|this.waterIndex],2),e.bindBuffer(e.ARRAY_BUFFER,this.vertexBuffer),e.vertexAttribPointer(l,2,e.FLOAT,!1,8,0),e.bindBuffer(e.ARRAY_BUFFER,this.instanceBuffer),e.vertexAttribPointer(s,1,e.FLOAT,!1,4,0),n.vertexAttribDivisorANGLE(s,1),e.bindBuffer(e.ARRAY_BUFFER,this.waterBuffer),e.vertexAttribPointer(o,1,e.UNSIGNED_BYTE,!1,1,0),n.vertexAttribDivisorANGLE(o,1),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,this.faceBuffer),n.drawElementsInstancedANGLE(e.TRIANGLES,6,e.UNSIGNED_BYTE,0,this.rows*this.columns),n.vertexAttribDivisorANGLE(o,0),n.vertexAttribDivisorANGLE(s,0)}}renderCliffs(){if(this.cliffsReady){const e=this.viewer.gl,t=this.viewer.webgl,n=t.extensions.ANGLE_instanced_arrays,a=t.extensions.OES_vertex_array_object,r=this.viewer.cliffShader,i=r.attribs,s=r.uniforms;e.disable(e.BLEND),r.use(),e.uniformMatrix4fv(s.u_VP,!1,this.worldScene.camera.viewProjectionMatrix),e.uniform1i(s.u_heightMap,0),e.uniform2f(s.u_pixel,1/(this.columns+1),1/(this.rows+1)),e.uniform2fv(s.u_centerOffset,this.centerOffset),e.uniform1i(s.u_texture1,1),e.uniform1i(s.u_texture2,2),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,this.cliffHeightMap),e.activeTexture(e.TEXTURE1),e.bindTexture(e.TEXTURE_2D,this.cliffTextures[0].webglResource),this.cliffTextures.length>1&&(e.activeTexture(e.TEXTURE2),e.bindTexture(e.TEXTURE_2D,this.cliffTextures[1].webglResource)),a||(n.vertexAttribDivisorANGLE(i.a_instancePosition,1),n.vertexAttribDivisorANGLE(i.a_instanceTexture,1));for(const e of this.cliffModels)e.render(r);a||(n.vertexAttribDivisorANGLE(i.a_instancePosition,0),n.vertexAttribDivisorANGLE(i.a_instanceTexture,0))}}cliffFileName(e,t,n,a,r){return String.fromCharCode(65+e-r)+String.fromCharCode(65+n-r)+String.fromCharCode(65+a-r)+String.fromCharCode(65+t-r)}getVariation(e,t){const n=this.tilesetTextures[e];return n.width>n.height?t<16?16+t:16===t?15:0:0===t?0:15}isCliff(e,t){if(e<1||e>this.columns-1||t<1||t>this.rows-1)return!1;const n=this.corners,a=n[t][e].layerHeight,r=n[t][e+1].layerHeight,i=n[t+1][e].layerHeight,s=n[t+1][e+1].layerHeight;return a!==r||a!==i||a!==s}isWater(e,t){const n=this.corners;return n[t][e].water||n[t][e+1].water||n[t+1][e].water||n[t+1][e+1].water}cliffGroundIndex(e){const t=this.cliffTilesets[e].string("groundTile"),n=this.tilesets;for(let e=0,a=n.length;e<a;e++)if(n[e].string("tileID")===t)return e;return 0}cornerTexture(e,t){const n=this.corners,a=this.columns,r=this.rows;for(let i=-1;i<1;i++)for(let s=-1;s<1;s++)if(e+s>0&&e+s<a-1&&t+i>0&&t+i<r-1&&this.isCliff(e+s,t+i)){let a=n[t+i][e+s].cliffTexture;return 15===a&&(a=1),this.cliffGroundIndex(a)}const i=n[t][e];return i.blight?this.blightTextureIndex:i.groundTexture}applyModificationFile(e,t,n){n&&(this.applyModificationTable(e,t,n.originalTable),this.applyModificationTable(e,t,n.customTable))}applyModificationTable(e,t,n){for(const a of n.objects){let n;""!==a.newId?(n=e.getRow(a.newId),n||(n=new __,n.map=Object.assign({},e.getRow(a.oldId).map),e.setRow(a.newId,n))):n=e.getRow(a.oldId);for(const e of a.modifications){const a=t.getRow(e.id);a?n.set(a.string("field"),e.value):console.warn("Unknown modification ID",e)}}}groundNormal(e,t,n){const a=this.centerOffset,r=this.mapSize,i=0|(t=(t-a[0])/128),s=0|(n=(n-a[1])/128);if(i>=0&&i<r[0]-1&&s>=0&&s<r[1]-1){const a=this.corners,r=a[s][i].groundHeight,l=a[s][i+1].groundHeight,o=a[s+1][i].groundHeight,u=a[s+1][i+1].groundHeight;t-i+(n-s)<1?(en(Ob,1,0,l-r),en(Db,0,1,o-r)):(en(Ob,-1,0,u-o),en(Db,0,1,u-l)),bn(e,vn(e,Ob,Db))}else en(e,0,0,1);return e}}const Gb={blp:Bp,dds:Np,m3:m_,mdx:bb,tga:wb,War3MapViewer:class extends Tp{constructor(e,t,n){super(e),this.terrainData=new g_,this.cliffTypesData=new g_,this.waterData=new g_,this.doodadsData=new g_,this.doodadMetaData=new g_,this.destructableMetaData=new g_,this.unitsData=new g_,this.unitMetaData=new g_,this.loadedBaseFiles=!1,this.map=null;const a=this.webgl;if(!a.ensureExtension("OES_texture_float"))throw new Error("War3MapViewer: No float texture support!");a.ensureExtension("OES_vertex_array_object")||console.warn("War3MapViewer: No vertex array object support! This might reduce performance."),this.on("error",e=>console.log(e)),this.addHandler(bb,t,n),this.addHandler(Bp),this.addHandler(wb),this.addHandler(Np),this.wc3PathSolver=t,this.isReforged=n,this.groundShader=this.webgl.createShader("\nuniform mat4 u_VP;\nuniform sampler2D u_heightMap;\nuniform vec2 u_size;\nuniform vec2 u_offset;\nuniform bool u_extended[14];\nuniform float u_baseTileset;\n\nattribute vec2 a_position;\nattribute float a_InstanceID;\nattribute vec4 a_textures;\nattribute vec4 a_variations;\n\nvarying vec4 v_tilesets;\nvarying vec2 v_uv[4];\nvarying vec3 v_normal;\n\nvec2 getCell(float variation) {\n if (variation < 16.0) {\n return vec2(mod(variation, 4.0), floor(variation / 4.0));\n } else {\n variation -= 16.0;\n\n return vec2(4.0 + mod(variation, 4.0), floor(variation / 4.0));\n }\n}\n\nvec2 getUV(vec2 position, bool extended, float variation) {\n vec2 cell = getCell(variation);\n vec2 cellSize = vec2(extended ? 0.125 : 0.25, 0.25);\n vec2 uv = vec2(position.x, 1.0 - position.y);\n vec2 pixelSize = vec2(1.0 / 512.0, 1.0 / 256.0); /// Note: hardcoded to 512x256 for now.\n\n return clamp((cell + uv) * cellSize, cell * cellSize + pixelSize, (cell + 1.0) * cellSize - pixelSize); \n}\n\nvoid main() {\n vec4 textures = a_textures - u_baseTileset;\n \n if (textures[0] > 0.0 || textures[1] > 0.0 || textures[2] > 0.0 || textures[3] > 0.0) {\n v_tilesets = textures;\n\n v_uv[0] = getUV(a_position, u_extended[int(textures[0]) - 1], a_variations[0]);\n v_uv[1] = getUV(a_position, u_extended[int(textures[1]) - 1], a_variations[1]);\n v_uv[2] = getUV(a_position, u_extended[int(textures[2]) - 1], a_variations[2]);\n v_uv[3] = getUV(a_position, u_extended[int(textures[3]) - 1], a_variations[3]);\n\n vec2 corner = vec2(mod(a_InstanceID, u_size.x), floor(a_InstanceID / u_size.x));\n vec2 base = corner + a_position;\n float height = texture2D(u_heightMap, base / u_size).a;\n\n float hL = texture2D(u_heightMap, vec2(base - vec2(1.0, 0.0)) / (u_size)).a;\n float hR = texture2D(u_heightMap, vec2(base + vec2(1.0, 0.0)) / (u_size)).a;\n float hD = texture2D(u_heightMap, vec2(base - vec2(0.0, 1.0)) / (u_size)).a;\n float hU = texture2D(u_heightMap, vec2(base + vec2(0.0, 1.0)) / (u_size)).a;\n\n v_normal = normalize(vec3(hL - hR, hD - hU, 2.0));\n\n gl_Position = u_VP * vec4(base * 128.0 + u_offset, height * 128.0, 1.0);\n } else {\n v_tilesets = vec4(0.0);\n\n v_uv[0] = vec2(0.0);\n v_uv[1] = vec2(0.0);\n v_uv[2] = vec2(0.0);\n v_uv[3] = vec2(0.0);\n\n v_normal = vec3(0.0);\n\n gl_Position = vec4(0.0);\n }\n}\n",vb),this.waterShader=this.webgl.createShader("\nuniform mat4 u_VP;\nuniform sampler2D u_heightMap;\nuniform sampler2D u_waterHeightMap;\nuniform vec2 u_size;\nuniform vec2 u_offset;\nuniform float u_offsetHeight;\nuniform vec4 u_minDeepColor;\nuniform vec4 u_maxDeepColor;\nuniform vec4 u_minShallowColor;\nuniform vec4 u_maxShallowColor;\n\nattribute vec2 a_position;\nattribute float a_InstanceID;\nattribute float a_isWater;\n\nvarying vec2 v_uv;\nvarying vec4 v_color;\n\nconst float minDepth = 10.0 / 128.0;\nconst float deepLevel = 64.0 / 128.0;\nconst float maxDepth = 72.0 / 128.0;\n\nvoid main() {\n if (a_isWater > 0.5) {\n v_uv = a_position;\n\n vec2 corner = vec2(mod(a_InstanceID, u_size.x), floor(a_InstanceID / u_size.x));\n vec2 base = corner + a_position;\n float height = texture2D(u_heightMap, base / u_size).a;\n float waterHeight = texture2D(u_waterHeightMap, base / u_size).a + u_offsetHeight;\n float value = clamp(waterHeight - height, 0.0, 1.0);\n\n if (value <= deepLevel) {\n value = max(0.0, value - minDepth) / (deepLevel - minDepth);\n v_color = mix(u_minShallowColor, u_maxShallowColor, value) / 255.0;\n } else {\n value = clamp(value - deepLevel, 0.0, maxDepth - deepLevel) / (maxDepth - deepLevel);\n v_color = mix(u_minDeepColor, u_maxDeepColor, value) / 255.0;\n }\n\n gl_Position = u_VP * vec4(base * 128.0 + u_offset, waterHeight * 128.0, 1.0);\n } else {\n v_uv = vec2(0.0);\n v_color = vec4(0.0);\n\n gl_Position = vec4(0.0);\n }\n}\n",Ab),this.cliffShader=this.webgl.createShader("\nuniform mat4 u_VP;\nuniform sampler2D u_heightMap;\nuniform vec2 u_pixel;\nuniform vec2 u_centerOffset;\n\nattribute vec3 a_position;\nattribute vec3 a_normal;\nattribute vec2 a_uv;\nattribute vec3 a_instancePosition;\nattribute float a_instanceTexture;\n\nvarying vec3 v_normal;\nvarying vec2 v_uv;\nvarying float v_texture;\nvarying vec3 v_position;\n\nvoid main() {\n // Half of a pixel in the cliff height map.\n vec2 halfPixel = u_pixel * 0.5;\n\n // The bottom left corner of the map tile this vertex is on.\n vec2 corner = floor((a_instancePosition.xy - vec2(1.0, 0.0) - u_centerOffset.xy) / 128.0);\n\n // Get the 4 closest heights in the height map.\n float bottomLeft = texture2D(u_heightMap, corner * u_pixel + halfPixel).a;\n float bottomRight = texture2D(u_heightMap, (corner + vec2(1.0, 0.0)) * u_pixel + halfPixel).a;\n float topLeft = texture2D(u_heightMap, (corner + vec2(0.0, 1.0)) * u_pixel + halfPixel).a;\n float topRight = texture2D(u_heightMap, (corner + vec2(1.0, 1.0)) * u_pixel + halfPixel).a;\n \n // Do a bilinear interpolation between the heights to get the final value.\n float bottom = mix(bottomRight, bottomLeft, -a_position.x / 128.0);\n float top = mix(topRight, topLeft, -a_position.x / 128.0);\n float height = mix(bottom, top, a_position.y / 128.0);\n\n v_normal = a_normal;\n v_uv = a_uv;\n v_texture = a_instanceTexture;\n v_position = a_position + vec3(a_instancePosition.xy, a_instancePosition.z + height * 128.0);\n\n gl_Position = u_VP * vec4(v_position, 1.0);\n}\n",yb),this.loadBaseFiles()}async loadBaseFiles(){const e=[this.loadBaseFile("TerrainArt\\Terrain.slk","text"),this.loadBaseFile("TerrainArt\\CliffTypes.slk","text"),this.loadBaseFile("TerrainArt\\Water.slk","text"),this.loadBaseFile("Doodads\\Doodads.slk","text"),this.loadBaseFile("Doodads\\DoodadMetaData.slk","text"),this.loadBaseFile("Units\\DestructableData.slk","text"),this.loadBaseFile("Units\\DestructableMetaData.slk","text"),this.loadBaseFile("Units\\UnitData.slk","text"),this.loadBaseFile("Units\\unitUI.slk","text"),this.loadBaseFile("Units\\ItemData.slk","text"),this.loadBaseFile("Units\\UnitMetaData.slk","text")];let t;this.isReforged&&(t=[this.loadBaseFile("Doodads\\doodadSkins.txt","text"),this.loadBaseFile("Units\\destructableSkin.txt","text"),this.loadBaseFile("Units\\unitSkin.txt","text"),this.loadBaseFile("Units\\itemSkin.txt","text")]);const[n,a,r,i,s,l,o,u,c,d,h]=await Promise.all(e);if(!(n&&a&&r&&i&&s&&l&&o&&u&&c&&d&&h))throw new Error("Failed to load the base files");if(this.terrainData.load(n.data),this.cliffTypesData.load(a.data),this.waterData.load(r.data),this.doodadsData.load(i.data),this.doodadMetaData.load(s.data),this.doodadsData.load(l.data),this.destructableMetaData.load(o.data),this.unitsData.load(u.data),this.unitsData.load(c.data),this.unitsData.load(d.data),this.unitMetaData.load(h.data),t){const[e,n,a,r]=await Promise.all(t);if(!(e&&n&&a&&r))throw new Error("Failed to load the base Reforged files");this.doodadsData.load(e.data),this.doodadsData.load(n.data),this.unitsData.load(a.data),this.unitsData.load(r.data)}this.loadedBaseFiles=!0,this.emit("loadedbasefiles")}loadBaseFile(e,t){return super.loadGeneric(this.wc3PathSolver(e),t)}loadMap(e){this.loadedBaseFiles&&(this.map&&this.map.die(),this.map=new Fb(this,e))}update(){this.map&&(super.update(),this.map.update())}render(){this.map&&this.map.render()}}},Vb={ModelViewer:Tp,DebugRenderMode:Sp,Scene:gp,Camera:fp,Node:Ip,Model:Rp,ModelInstance:Cp,Texture:Ap,GenericResource:wp,gl:Mp,handlers:Gb};function Kb(e,t){const n=t[e];for(let a=0;a<e;a++)if(t[a]===n)return!0;return!1}const Hb={sanityTest:function(e){const t=[],n=e.content,a=e.alphaBits,r=e.mipmapOffsets,i=e.mipmapSizes;let s=e.width,l=e.height;if(0!==n&&1!==n&&t.push({type:"warning",message:"Unknown content type"}),0!==a&&1!==a&&4!==a&&8!==a&&t.push({type:"warning",message:`Expected alpha bits to be 0, 1, 4, or 8, but got ${a}`}),(s>512||l>512)&&t.push({type:"warning",message:`Expected width and height up to 512, but got ${s}x${l}`}),0===n){const n=e.jpgHeader;n.length>624&&t.push({type:"warning",message:`Expected the JPG header to be at most 624 bytes, but got ${n.length}`})}Us(s)&&Us(l)||t.push({type:"warning",message:`Expected the width and height to be powers of two, but got ${s}x${l}`});for(let o=0;o<16;o++){if(i[o]>0)if(s<1&&l<1)t.push({type:"warning",message:`Mipmap ${o}: this mipmap should not exist`});else if(Kb(o,r))t.push({type:"warning",message:`Mipmap ${o}: this mipmap is fake`});else{let r;s=Math.max(s,1),l=Math.max(l,1);try{r=e.getMipmap(o)}catch(e){t.push({type:"warning",message:`Mipmap ${o}: Decoding failed`})}if(r)if(0===n)r.width===s&&r.height===l||t.push({type:"warning",message:`Mipmap ${o}: the JPG width (${r.width}) and height (${r.height}) do not match the mipmap width (${s}) and height (${l})`});else if(1===n){const e=s*l,n=e+Math.ceil(e*a/8);n!==i[o]&&t.push({type:"warning",message:`Mipmap ${o}: the declared size is ${i[o]}, but the real size is ${n}`})}}s>>=1,l>>=1}return{nodes:t,warnings:t.length}}};const zb={sanityTest:function(e){const t=[],n=e.width,a=e.height,r=e.mipmaps(),i=Math.log2(Math.max(n,a));r<i&&t.push({type:"warning",message:`Expected ${i} mipmaps, but got ${r}`}),n%4==0&&a%4==0||t.push({type:"warning",message:`Expected the width and height to be multiples of four, but got ${n}x${a}`}),Us(n)&&Us(a)||t.push({type:"warning",message:`Expected the width and height to be powers of two, but got ${n}x${a}`});for(let n=0;n<r;n++)try{e.getMipmap(n)}catch(e){t.push({type:"warning",message:`Mipmap ${n}: Decoding failed`})}return{nodes:t,warnings:t.length}}};var jb=n(660),Xb=n(696),$b=n(447),Jb=n(179);function Wb(e){const t=new qf(e),n=[];let a;for(;void 0!==(a=t.read());)if("function"===a){const e=t.readSafe();t.read(),a=t.read();let r="";if("nothing"!==a)for(r+=t.readSafe();","===t.read();)t.read(),r+=","+t.readSafe();else t.read();t.read();const i=`function ${e}(${r})`,s=[];for(;"endfunction"!==(a=t.readSafe());)if("local"===a){t.read();const e=t.readSafe();"array"===e?s.push(`local ${t.readSafe()}={}`):s.push(`local ${e}${t.readUntil("\n")}\n`)}else if("if"===a||"elseif"===a||"not"===a)s.push(a+" ");else if("then"===a)s.push(" "+a);else if("loop"===a)s.push("while 1 do");else if("endloop"===a||"endif"===a)s.push("end");else if("exitwhen"===a)s.push(`if ${t.readUntil("\n")} then break end\n`);else if("return"===a){const e=t.readUntil("\n");a=t.peek(),"endif"===a||"endloop"===a||"endfunction"===a?s.push(`return ${e}\n`):s.push(`if 1 then return ${e} end\n`)}else if("\n"===a){const e=s[s.length-1];e&&"\n"!==e[e.length-1]&&s.push("\n")}else"set"!==a&&"call"!==a&&"function"!==a&&s.push(a);n.push(`${i}\n${s.join("")}end`)}else if("globals"===a)for(;"endglobals"!==(a=t.read());)if("\n"!==a){"constant"===a&&(a=t.read());const e=t.read();if("array"===e)n.push(`${t.readSafe()}={}`);else{let a="nil";"="===t.peek()&&(t.read(),a=t.readUntil("\n")),"nil"!==a&&n.push(`${e}=${a}`)}}return n.join("\n")}class qb{constructor(){this.handleId=-1}}class Yb extends qb{}class Zb extends Yb{constructor(e,t){super(),this.team=-1,this.startLocation=-1,this.forcedStartLocation=-1,this.color=-1,this.race=0,this.racePreference=-1,this.raceSelectable=!1,this.controller=-1,this.alliances=new Map,this.index=e,this.name=`Player ${e}`;for(let n=0;n<t;n++)n!==e&&this.alliances.set(n,{passive:!1,helpRequest:!1,helpResponse:!1,sharedXp:!1,sharedSpells:!1,sharedVision:!1,sharedControl:!1,sharedAdvancedControl:!1,rescuable:!1,sharedVisionForced:!1})}}class Qb extends Yb{constructor(){super(...arguments),this.health=0,this.maxHealth=0}}class ew extends Qb{constructor(e,t,n,a,r){super(),this.acquireRange=500,this.player=e,this.unitId=wl(t),this.x=n,this.y=a,this.face=r}}class tw extends Yb{constructor(){super(...arguments),this.players=new Set}}class nw extends Yb{constructor(){super(...arguments),this.units=new Set}}class aw extends Yb{constructor(){super(...arguments),this.events=[],this.conditions=[],this.actions=[],this.enabled=!0}}class rw extends Yb{constructor(){super(...arguments),this.elapsed=0,this.timeout=0,this.periodic=!1,this.handlerFunc=-1}}class iw extends Yb{constructor(e,t){super(),this.z=0,this.x=e,this.y=t}}class sw extends Yb{constructor(){super(...arguments),this.rects=new Set}}class lw extends Yb{constructor(e,t,n,a){super(),this.center=new Float32Array([n-e,a-t]),this.min=new Float32Array([e,t]),this.max=new Float32Array([n,a])}}class ow extends qb{constructor(e){super(),this.id=e}}class uw extends ow{}class cw extends ow{}class dw extends ow{}class hw extends ow{}class fw extends hw{}class mw extends hw{}class pw extends ow{}class _w extends ow{}class gw extends ow{}class bw extends ow{}class ww extends ow{}class vw extends ow{}class Aw extends vw{}class yw extends vw{}class Sw extends vw{}class Tw extends vw{}class xw extends vw{}class Ew extends vw{}class Lw extends vw{}class Iw extends ow{}class Uw extends ow{}class Rw extends ow{}class Cw extends ow{}class Mw extends ow{}class Bw extends ow{}class Nw extends ow{}class Pw extends ow{}class kw extends ow{}class Ow extends ow{}class Dw extends ow{}class Fw extends ow{}class Gw extends qb{constructor(){super(...arguments),this.targetDistance=0,this.farZ=0,this.angleOfAttack=0,this.fieldOfView=0,this.roll=0,this.rotation=0,this.zOffset=0,this.destPosition=new iw(0,0)}}class Vw extends ow{}class Kw extends ow{}class Hw extends ow{}class zw extends ow{}class jw extends ow{}class Xw extends ow{}class $w extends ow{}class Jw extends qb{constructor(e,t){super(),this.enabled=!1,this.whichRect=e,this.effectId=t}}class Ww extends ow{}class qw extends ow{}class Yw extends ow{}class Zw extends ow{}class Qw extends ow{}class ev extends ow{}class tv extends ow{}class nv extends ow{}class av extends Yb{constructor(){super(...arguments),this.table=new Map}save(e,t,n){const a=this.table;let r=a.get(e);r||(r=new Map,a.set(e,r)),r.set(t,n)}load(e,t,n){const a=this.table.get(e);if(a){const e=a.get(t);if(void 0!==e)return e}return n}have(e,t){const n=this.table.get(e);return!!n&&n.has(t)}remove(e,t){const n=this.table,a=n.get(e);a&&(a.delete(t),a.size||n.delete(e))}flush(){this.table.clear()}flushChild(e){const t=this.table.get(e);t&&t.clear()}}function rv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.races[n]),1}function iv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.allianceTypes[n]),1}function sv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.racePrefs[n]),1}function lv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.gameStates[n]),1}function ov(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.gameStates[n]),1}function uv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.playerStates[n]),1}function cv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.playerScores[n]),1}function dv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.playerGameResults[n]),1}function hv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.unitStates[n]),1}function fv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.aiDifficulties[n]),1}function mv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.events[n]),1}function pv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.events[n]),1}function _v(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.events[n]),1}function gv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.events[n]),1}function bv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.events[n]),1}function wv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.events[n]),1}function vv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.limitOps[n]),1}function Av(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.unitTypes[n]),1}function yv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.gameSpeeds[n]),1}function Sv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.placements[n]),1}function Tv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.startLocPrios[n]),1}function xv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.gameDifficulties[n]),1}function Ev(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.gameTypes[n]),1}function Lv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.mapFlags[n]),1}function Iv(e,t){(0,$b.eN)(t,1);return console.warn("ConvertMapVisibility used, but the implementation is unknown"),(0,jb.lua_pushnil)(t),1}function Uv(e,t){(0,$b.eN)(t,1);return console.warn("ConvertMapSetting used, but the implementation is unknown"),(0,jb.lua_pushnil)(t),1}function Rv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.mapDensities[n]),1}function Cv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.mapControls[n]),1}function Mv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.playerColors[n]),1}function Bv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.playerSlotStates[n]),1}function Nv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.volumeGroups[n]),1}function Pv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.cameraFields[n]),1}function kv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.blendModes[n]),1}function Ov(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.rarityControls[n]),1}function Dv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.texMapFlags[n]),1}function Fv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.fogStates[n]),1}function Gv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.effectTypes[n]),1}function Vv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.versions[n]),1}function Kv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.itemTypes[n]),1}function Hv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.attackTypes[n]),1}function zv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.damageTypes[n]),1}function jv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.weaponTypes[n]),1}function Xv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.soundTypes[n]),1}function $v(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.pathingTypes[n]),1}function Jv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.mouseButtonTypes[n]),1}function Wv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.animTypes[n]),1}function qv(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.subAnimTypes[n]),1}function Yv(e,t){(0,$b.dK)(t,1);return console.warn("OrderId was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function Zv(e,t){(0,$b.eN)(t,1);return console.warn("OrderId2String was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function Qv(e,t){(0,$b.dK)(t,1);return console.warn("UnitId was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function eA(e,t){(0,$b.eN)(t,1);return console.warn("UnitId2String was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function tA(e,t){(0,$b.dK)(t,1);return console.warn("AbilityId was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function nA(e,t){(0,$b.eN)(t,1);return console.warn("AbilityId2String was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function aA(e,t){(0,$b.eN)(t,1);return console.warn("GetObjectName was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function rA(e,t){return(0,jb.lua_pushinteger)(t,24),1}function iA(e,t){return(0,jb.lua_pushinteger)(t,24),1}function sA(e,t){return(0,jb.lua_pushinteger)(t,25),1}function lA(e,t){return(0,jb.lua_pushinteger)(t,28),1}function oA(e,t){return(0,jb.lua_pushinteger)(t,26),1}function uA(e,t){return(0,jb.lua_pushinteger)(t,27),1}function cA(e,t){const n=(0,$b.hs)(t,1);return(0,jb.lua_pushnumber)(t,n*(Math.PI/180)),1}function dA(e,t){const n=(0,$b.hs)(t,1);return(0,jb.lua_pushnumber)(t,n*(180/Math.PI)),1}function hA(e,t){const n=(0,$b.hs)(t,1);return(0,jb.lua_pushnumber)(t,Math.sin(n)),1}function fA(e,t){const n=(0,$b.hs)(t,1);return(0,jb.lua_pushnumber)(t,Math.cos(n)),1}function mA(e,t){const n=(0,$b.hs)(t,1);return(0,jb.lua_pushnumber)(t,Math.tan(n)),1}function pA(e,t){const n=(0,$b.hs)(t,1);return(0,jb.lua_pushnumber)(t,Math.asin(n)),1}function _A(e,t){const n=(0,$b.hs)(t,1);return(0,jb.lua_pushnumber)(t,Math.acos(n)),1}function gA(e,t){const n=(0,$b.hs)(t,1);return(0,jb.lua_pushnumber)(t,Math.atan(n)),1}function bA(e,t){const n=(0,$b.hs)(t,1),a=(0,$b.hs)(t,2);return(0,jb.lua_pushnumber)(t,Math.atan2(n,a)),1}function wA(e,t){const n=(0,$b.hs)(t,1);return(0,jb.lua_pushnumber)(t,Math.sqrt(n)),1}function vA(e,t){const n=(0,$b.hs)(t,1),a=(0,$b.hs)(t,2);return(0,jb.lua_pushnumber)(t,Math.pow(n,a)),1}function AA(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushnumber)(t,n),1}function yA(e,t){const n=(0,$b.hs)(t,1);return(0,jb.lua_pushinteger)(t,0|n),1}function SA(e,t){(0,$b.eN)(t,1);return console.warn("I2S was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function TA(e,t){(0,$b.hs)(t,1);return console.warn("R2S was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function xA(e,t){(0,$b.hs)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("R2SW was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function EA(e,t){(0,$b.dK)(t,1);return console.warn("S2I was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function LA(e,t){(0,$b.dK)(t,1);return console.warn("S2R was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function IA(e,t){const n=(0,jb.lua_touserdata)(t,1);return(0,jb.lua_pushinteger)(t,n.handleId),1}function UA(e,t){(0,$b.dK)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("SubString was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function RA(e,t){(0,$b.dK)(t,1);return console.warn("StringLength was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function CA(e,t){(0,$b.dK)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("StringCase was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function MA(e,t){(0,$b.dK)(t,1);return console.warn("StringHash was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function BA(e,t){(0,$b.dK)(t,1);return console.warn("GetLocalizedString was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function NA(e,t){(0,$b.dK)(t,1);return console.warn("GetLocalizedHotkey was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function PA(e,t){(0,$b.dK)(t,1);return console.warn("SetMapName was called but is not implemented :("),0}function kA(e,t){(0,$b.dK)(t,1);return console.warn("SetMapDescription was called but is not implemented :("),0}function OA(e,t){(0,$b.eN)(t,1);return console.warn("SetTeams was called but is not implemented :("),0}function DA(e,t){(0,$b.eN)(t,1);return console.warn("SetPlayers was called but is not implemented :("),0}function FA(e,t){const n=(0,$b.eN)(t,1),a=(0,$b.hs)(t,2),r=(0,$b.hs)(t,3);return e.startLocations[n]=e.addHandle(new iw(a,r)),0}function GA(e,t){(0,$b.eN)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("DefineStartLocationLoc was called but is not implemented :("),0}function VA(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2);return console.warn("SetStartLocPrioCount was called but is not implemented :("),0}function KA(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SetStartLocPrio was called but is not implemented :("),0}function HA(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2);return console.warn("GetStartLocPrioSlot was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function zA(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2);return console.warn("GetStartLocPrio was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function jA(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetGameTypeSupported was called but is not implemented :("),0}function XA(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetMapFlag was called but is not implemented :("),0}function $A(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("SetGamePlacement was called but is not implemented :("),0}function JA(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("SetGameSpeed was called but is not implemented :("),0}function WA(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("SetGameDifficulty was called but is not implemented :("),0}function qA(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("SetResourceDensity was called but is not implemented :("),0}function YA(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("SetCreatureDensity was called but is not implemented :("),0}function ZA(e,t){return console.warn("GetTeams was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function QA(e,t){return console.warn("GetPlayers was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function ey(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsGameTypeSupported was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function ty(e,t){return console.warn("GetGameTypeSelected was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function ny(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsMapFlagSet was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function ay(e,t){return console.warn("GetGamePlacement was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function ry(e,t){return console.warn("GetGameSpeed was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function iy(e,t){return console.warn("GetGameDifficulty was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function sy(e,t){return console.warn("GetResourceDensity was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function ly(e,t){return console.warn("GetCreatureDensity was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function oy(e,t){(0,$b.eN)(t,1);return console.warn("GetStartLocationX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function uy(e,t){(0,$b.eN)(t,1);return console.warn("GetStartLocationY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function cy(e,t){(0,$b.eN)(t,1);return console.warn("GetStartLocationLoc was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function dy(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("SetPlayerTeam was called but is not implemented :("),0}function hy(e,t){const n=(0,jb.lua_touserdata)(t,1),a=(0,$b.eN)(t,2);return n.startLocation=a,0}function fy(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("ForcePlayerStartLocation was called but is not implemented :("),0}function my(e,t){const n=(0,jb.lua_touserdata)(t,1),a=(0,jb.lua_touserdata)(t,2);return n.color=a.id,0}function py(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3),(0,jb.lua_toboolean)(t,4);return console.warn("SetPlayerAlliance was called but is not implemented :("),0}function _y(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3),(0,$b.eN)(t,4);return console.warn("SetPlayerTaxRate was called but is not implemented :("),0}function gy(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("SetPlayerRacePreference was called but is not implemented :("),0}function by(e,t){const n=(0,jb.lua_touserdata)(t,1),a=(0,jb.lua_toboolean)(t,2);return n.raceSelectable=a,0}function wy(e,t){const n=(0,jb.lua_touserdata)(t,1),a=(0,jb.lua_touserdata)(t,2);return n.controller=a.id,0}function vy(e,t){const n=(0,jb.lua_touserdata)(t,1),a=(0,$b.dK)(t,2);return n.name=a,0}function Ay(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetPlayerOnScoreScreen was called but is not implemented :("),0}function yy(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetPlayerTeam was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function Sy(e,t){const n=(0,jb.lua_touserdata)(t,1);return(0,jb.lua_pushinteger)(t,n.startLocation),1}function Ty(e,t){const n=(0,jb.lua_touserdata)(t,1);return(0,jb.lua_pushlightuserdata)(t,n.color),1}function xy(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetPlayerSelectable was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function Ey(e,t){const n=(0,jb.lua_touserdata)(t,1);return(0,jb.lua_pushlightuserdata)(t,n.controller),1}function Ly(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetPlayerSlotState was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Iy(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("GetPlayerTaxRate was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function Uy(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsPlayerRacePrefSet was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function Ry(e,t){const n=(0,jb.lua_touserdata)(t,1);return(0,jb.lua_pushstring)(t,n.name),1}function Cy(e,t){return(0,jb.lua_pushlightuserdata)(t,e.addHandle(new rw)),1}function My(e,t){const n=(0,jb.lua_touserdata)(t,1);return e.timers.delete(n),e.freeHandle(n),0}function By(e,t){const n=(0,jb.lua_touserdata)(t,1),a=(0,$b.hs)(t,2),r=(0,jb.lua_toboolean)(t,3),i=(0,$b.oL)(t,Xb.LUA_REGISTRYINDEX);return n.elapsed=0,n.timeout=a,n.periodic=r,n.handlerFunc=i,e.timers.add(n),0}function Ny(e,t){const n=(0,jb.lua_touserdata)(t,1);return(0,jb.lua_pushnumber)(t,n.elapsed),1}function Py(e,t){const n=(0,jb.lua_touserdata)(t,1);return(0,jb.lua_pushnumber)(t,n.timeout-n.elapsed),1}function ky(e,t){const n=(0,jb.lua_touserdata)(t,1);return(0,jb.lua_pushnumber)(t,n.timeout),1}function Oy(e,t){const n=(0,jb.lua_touserdata)(t,1);return e.timers.delete(n),0}function Dy(e,t){const n=(0,jb.lua_touserdata)(t,1);return e.timers.add(n),0}function Fy(e,t){const n=e.currentThread;return n&&n.expiredTimer?(0,jb.lua_pushlightuserdata)(t,n.expiredTimer):(0,jb.lua_pushnil)(t),1}function Gy(e,t){return(0,jb.lua_pushlightuserdata)(t,e.addHandle(new nw)),1}function Vy(e,t){const n=(0,jb.lua_touserdata)(t,1);return e.freeHandle(n),0}function Ky(e,t){const n=(0,jb.lua_touserdata)(t,1),a=(0,jb.lua_touserdata)(t,2);return n.units.add(a),0}function Hy(e,t){const n=(0,jb.lua_touserdata)(t,1),a=(0,jb.lua_touserdata)(t,2);return n.units.delete(a),0}function zy(e,t){return(0,jb.lua_touserdata)(t,1).units.clear(),0}function jy(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("GroupEnumUnitsOfType was called but is not implemented :("),0}function Xy(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("GroupEnumUnitsOfPlayer was called but is not implemented :("),0}function $y(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,jb.lua_touserdata)(t,3),(0,$b.eN)(t,4);return console.warn("GroupEnumUnitsOfTypeCounted was called but is not implemented :("),0}function Jy(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("GroupEnumUnitsInRect was called but is not implemented :("),0}function Wy(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3),(0,$b.eN)(t,4);return console.warn("GroupEnumUnitsInRectCounted was called but is not implemented :("),0}function qy(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,jb.lua_touserdata)(t,5);return console.warn("GroupEnumUnitsInRange was called but is not implemented :("),0}function Yy(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.hs)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("GroupEnumUnitsInRangeOfLoc was called but is not implemented :("),0}function Zy(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,jb.lua_touserdata)(t,5),(0,$b.eN)(t,6);return console.warn("GroupEnumUnitsInRangeCounted was called but is not implemented :("),0}function Qy(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.hs)(t,3),(0,jb.lua_touserdata)(t,4),(0,$b.eN)(t,5);return console.warn("GroupEnumUnitsInRangeOfLocCounted was called but is not implemented :("),0}function eS(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("GroupEnumUnitsSelected was called but is not implemented :("),0}function tS(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("GroupImmediateOrder was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function nS(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("GroupImmediateOrderById was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function aS(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("GroupPointOrder was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function rS(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("GroupPointOrderLoc was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function iS(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("GroupPointOrderById was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function sS(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("GroupPointOrderByIdLoc was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function lS(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("GroupTargetOrder was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function oS(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("GroupTargetOrderById was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function uS(e,t){const n=(0,jb.lua_touserdata)(t,1),a=(0,$b.oL)(t,Xb.LUA_REGISTRYINDEX);for(const t of n.units)e.enumUnit=t,e.call(a);return e.enumUnit=null,(0,$b.eK)(t,Xb.LUA_REGISTRYINDEX,a),0}function cS(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("FirstOfGroup was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function dS(e,t){return(0,jb.lua_pushlightuserdata)(t,e.addHandle(new tw)),1}function hS(e,t){const n=(0,jb.lua_touserdata)(t,1);return e.freeHandle(n),0}function fS(e,t){const n=(0,jb.lua_touserdata)(t,1),a=(0,jb.lua_touserdata)(t,2);return n.players.add(a),0}function mS(e,t){const n=(0,jb.lua_touserdata)(t,1),a=(0,jb.lua_touserdata)(t,2);return n.players.delete(a),0}function pS(e,t){return(0,jb.lua_touserdata)(t,1).players.clear(),0}function _S(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("ForceEnumPlayers was called but is not implemented :("),0}function gS(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.eN)(t,3);return console.warn("ForceEnumPlayersCounted was called but is not implemented :("),0}function bS(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("ForceEnumAllies was called but is not implemented :("),0}function wS(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("ForceEnumEnemies was called but is not implemented :("),0}function vS(e,t){const n=(0,jb.lua_touserdata)(t,1),a=(0,$b.oL)(t,Xb.LUA_REGISTRYINDEX);for(const t of n.players)e.enumPlayer=t,e.call(a);return e.enumPlayer=null,(0,$b.eK)(t,Xb.LUA_REGISTRYINDEX,a),0}function AS(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("Rect was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function yS(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("RectFromLoc was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function SS(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("RemoveRect was called but is not implemented :("),0}function TS(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5);return console.warn("SetRect was called but is not implemented :("),0}function xS(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("SetRectFromLoc was called but is not implemented :("),0}function ES(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("MoveRectTo was called but is not implemented :("),0}function LS(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("MoveRectToLoc was called but is not implemented :("),0}function IS(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetRectCenterX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function US(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetRectCenterY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function RS(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetRectMinX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function CS(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetRectMinY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function MS(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetRectMaxX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function BS(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetRectMaxY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function NS(e,t){return console.warn("CreateRegion was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function PS(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("RemoveRegion was called but is not implemented :("),0}function kS(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("RegionAddRect was called but is not implemented :("),0}function OS(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("RegionClearRect was called but is not implemented :("),0}function DS(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("RegionAddCell was called but is not implemented :("),0}function FS(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("RegionAddCellAtLoc was called but is not implemented :("),0}function GS(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("RegionClearCell was called but is not implemented :("),0}function VS(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("RegionClearCellAtLoc was called but is not implemented :("),0}function KS(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2);return console.warn("Location was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function HS(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("RemoveLocation was called but is not implemented :("),0}function zS(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("MoveLocation was called but is not implemented :("),0}function jS(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetLocationX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function XS(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetLocationY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function $S(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetLocationZ was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function JS(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsUnitInRegion was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function WS(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("IsPointInRegion was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function qS(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsLocationInRegion was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function YS(e,t){return console.warn("GetWorldBounds was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function ZS(e,t){return(0,jb.lua_pushlightuserdata)(t,e.addHandle(new aw)),1}function QS(e,t){const n=(0,jb.lua_touserdata)(t,1);return e.triggers.delete(n),e.freeHandle(n),0}function eT(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("ResetTrigger was called but is not implemented :("),0}function tT(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("EnableTrigger was called but is not implemented :("),0}function nT(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DisableTrigger was called but is not implemented :("),0}function aT(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsTriggerEnabled was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function rT(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("TriggerWaitOnSleeps was called but is not implemented :("),0}function iT(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsTriggerWaitOnSleeps was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function sT(e,t){return(0,jb.lua_pushlightuserdata)(t,e.filterUnit),1}function lT(e,t){return(0,jb.lua_pushlightuserdata)(t,e.enumUnit),1}function oT(e,t){return console.warn("GetFilterDestructable was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function uT(e,t){return console.warn("GetEnumDestructable was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function cT(e,t){return console.warn("GetFilterItem was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function dT(e,t){return console.warn("GetEnumItem was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function hT(e,t){return console.warn("GetFilterPlayer was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function fT(e,t){return(0,jb.lua_pushlightuserdata)(t,e.enumPlayer),1}function mT(e,t){const n=e.currentThread;return n&&n.triggeringTrigger?(0,jb.lua_pushlightuserdata)(t,n.triggeringTrigger):(0,jb.lua_pushnil)(t),1}function pT(e,t){return console.warn("GetTriggerEventId was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function _T(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetTriggerEvalCount was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function gT(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetTriggerExecCount was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function bT(e,t){(0,$b.dK)(t,1);return console.warn("ExecuteFunc was called but is not implemented :("),0}function wT(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("And was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function vT(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("Or was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function AT(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("Not was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function yT(e,t){(0,$b.oL)(t,Xb.LUA_REGISTRYINDEX);return console.warn("Condition was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function ST(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DestroyCondition was called but is not implemented :("),0}function TT(e,t){(0,$b.oL)(t,Xb.LUA_REGISTRYINDEX);return console.warn("Filter was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function xT(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DestroyFilter was called but is not implemented :("),0}function ET(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DestroyBoolExpr was called but is not implemented :("),0}function LT(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,jb.lua_touserdata)(t,3),(0,$b.hs)(t,4);return console.warn("TriggerRegisterVariableEvent was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function IT(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("TriggerRegisterTimerEvent was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function UT(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("TriggerRegisterTimerExpireEvent was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function RT(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3),(0,$b.hs)(t,4);return console.warn("TriggerRegisterGameStateEvent was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function CT(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("TriggerRegisterDialogEvent was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function MT(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("TriggerRegisterDialogButtonEvent was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function BT(e,t){return console.warn("GetEventGameState was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function NT(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("TriggerRegisterGameEvent was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function PT(e,t){return console.warn("GetWinningPlayer was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function kT(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("TriggerRegisterEnterRegion was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function OT(e,t){return console.warn("GetTriggeringRegion was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function DT(e,t){return console.warn("GetEnteringUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function FT(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("TriggerRegisterLeaveRegion was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function GT(e,t){return console.warn("GetLeavingUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function VT(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("TriggerRegisterTrackableHitEvent was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function KT(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("TriggerRegisterTrackableTrackEvent was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function HT(e,t){return console.warn("GetTriggeringTrackable was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function zT(e,t){return console.warn("GetClickedButton was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function jT(e,t){return console.warn("GetClickedDialog was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function XT(e,t){return console.warn("GetTournamentFinishSoonTimeRemaining was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function $T(e,t){return console.warn("GetTournamentFinishNowRule was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function JT(e,t){return console.warn("GetTournamentFinishNowPlayer was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function WT(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetTournamentScore was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function qT(e,t){return console.warn("GetSaveBasicFilename was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function YT(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("TriggerRegisterPlayerEvent was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function ZT(e,t){return console.warn("GetTriggerPlayer was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function QT(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("TriggerRegisterPlayerUnitEvent was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function ex(e,t){return console.warn("GetLevelingUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function tx(e,t){return console.warn("GetLearningUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function nx(e,t){return console.warn("GetLearnedSkill was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function ax(e,t){return console.warn("GetLearnedSkillLevel was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function rx(e,t){return console.warn("GetRevivableUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function ix(e,t){return console.warn("GetRevivingUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function sx(e,t){return console.warn("GetAttacker was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function lx(e,t){return console.warn("GetRescuer was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function ox(e,t){return console.warn("GetDyingUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function ux(e,t){return console.warn("GetKillingUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function cx(e,t){return console.warn("GetDecayingUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function dx(e,t){return console.warn("GetConstructingStructure was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function hx(e,t){return console.warn("GetCancelledStructure was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function fx(e,t){return console.warn("GetConstructedStructure was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function mx(e,t){return console.warn("GetResearchingUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function px(e,t){return console.warn("GetResearched was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function _x(e,t){return console.warn("GetTrainedUnitType was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function gx(e,t){return console.warn("GetTrainedUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function bx(e,t){return console.warn("GetDetectedUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function wx(e,t){return console.warn("GetSummoningUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function vx(e,t){return console.warn("GetSummonedUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Ax(e,t){return console.warn("GetTransportUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function yx(e,t){return console.warn("GetLoadedUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Sx(e,t){return console.warn("GetSellingUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Tx(e,t){return console.warn("GetSoldUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function xx(e,t){return console.warn("GetBuyingUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Ex(e,t){return console.warn("GetSoldItem was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Lx(e,t){return console.warn("GetChangingUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Ix(e,t){return console.warn("GetChangingUnitPrevOwner was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Ux(e,t){return console.warn("GetManipulatingUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Rx(e,t){return console.warn("GetManipulatedItem was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Cx(e,t){return console.warn("GetOrderedUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Mx(e,t){return console.warn("GetIssuedOrderId was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function Bx(e,t){return console.warn("GetOrderPointX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function Nx(e,t){return console.warn("GetOrderPointY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function Px(e,t){return console.warn("GetOrderPointLoc was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function kx(e,t){return console.warn("GetOrderTarget was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Ox(e,t){return console.warn("GetOrderTargetDestructable was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Dx(e,t){return console.warn("GetOrderTargetItem was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Fx(e,t){return console.warn("GetOrderTargetUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Gx(e,t){return console.warn("GetSpellAbilityUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Vx(e,t){return console.warn("GetSpellAbilityId was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function Kx(e,t){return console.warn("GetSpellAbility was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Hx(e,t){return console.warn("GetSpellTargetLoc was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function zx(e,t){return console.warn("GetSpellTargetX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function jx(e,t){return console.warn("GetSpellTargetY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function Xx(e,t){return console.warn("GetSpellTargetDestructable was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function $x(e,t){return console.warn("GetSpellTargetItem was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Jx(e,t){return console.warn("GetSpellTargetUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Wx(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("TriggerRegisterPlayerAllianceChange was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function qx(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3),(0,jb.lua_touserdata)(t,4),(0,$b.hs)(t,5);return console.warn("TriggerRegisterPlayerStateEvent was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Yx(e,t){return console.warn("GetEventPlayerState was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Zx(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.dK)(t,3),(0,jb.lua_toboolean)(t,4);return console.warn("TriggerRegisterPlayerChatEvent was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Qx(e,t){return console.warn("GetEventPlayerChatString was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function eE(e,t){return console.warn("GetEventPlayerChatStringMatched was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function tE(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("TriggerRegisterDeathEvent was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function nE(e,t){const n=e.currentThread;return n&&n.triggerUnit?(0,jb.lua_pushlightuserdata)(t,n.triggerUnit):(0,jb.lua_pushnil)(t),1}function aE(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3),(0,jb.lua_touserdata)(t,4),(0,$b.hs)(t,5);return console.warn("TriggerRegisterUnitStateEvent was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function rE(e,t){return console.warn("GetEventUnitState was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function iE(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("TriggerRegisterUnitEvent was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function sE(e,t){return console.warn("GetEventDamage was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function lE(e,t){return console.warn("GetEventDamageSource was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function oE(e,t){return console.warn("GetEventDetectingPlayer was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function uE(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("TriggerRegisterFilterUnitEvent was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function cE(e,t){return console.warn("GetEventTargetUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function dE(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.hs)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("TriggerRegisterUnitInRange was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function hE(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("TriggerAddCondition was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function fE(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("TriggerRemoveCondition was called but is not implemented :("),0}function mE(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("TriggerClearConditions was called but is not implemented :("),0}function pE(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.oL)(t,Xb.LUA_REGISTRYINDEX);return console.warn("TriggerAddAction was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function _E(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("TriggerRemoveAction was called but is not implemented :("),0}function gE(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("TriggerClearActions was called but is not implemented :("),0}function bE(e,t){const n=(0,$b.hs)(t,1);return(0,jb.lua_pushnumber)(t,n),(0,Jb.lua_yield)(t,1),0}function wE(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("TriggerWaitForSound was called but is not implemented :("),0}function vE(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("TriggerEvaluate was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function AE(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("TriggerExecute was called but is not implemented :("),0}function yE(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("TriggerExecuteWait was called but is not implemented :("),0}function SE(e,t){return console.warn("TriggerSyncStart was called but is not implemented :("),0}function TE(e,t){return console.warn("TriggerSyncReady was called but is not implemented :("),0}function xE(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetWidgetLife was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function EE(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetWidgetLife was called but is not implemented :("),0}function LE(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetWidgetX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function IE(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetWidgetY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function UE(e,t){return console.warn("GetTriggerWidget was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function RE(e,t){(0,$b.eN)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5),(0,$b.eN)(t,6);return console.warn("CreateDestructable was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function CE(e,t){(0,$b.eN)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5),(0,$b.hs)(t,6),(0,$b.eN)(t,7);return console.warn("CreateDestructableZ was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function ME(e,t){(0,$b.eN)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5),(0,$b.eN)(t,6);return console.warn("CreateDeadDestructable was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function BE(e,t){(0,$b.eN)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5),(0,$b.hs)(t,6),(0,$b.eN)(t,7);return console.warn("CreateDeadDestructableZ was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function NE(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("RemoveDestructable was called but is not implemented :("),0}function PE(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("KillDestructable was called but is not implemented :("),0}function kE(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetDestructableInvulnerable was called but is not implemented :("),0}function OE(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsDestructableInvulnerable was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function DE(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.oL)(t,Xb.LUA_REGISTRYINDEX);return console.warn("EnumDestructablesInRect was called but is not implemented :("),0}function FE(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetDestructableTypeId was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function GE(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetDestructableX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function VE(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetDestructableY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function KE(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetDestructableLife was called but is not implemented :("),0}function HE(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetDestructableLife was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function zE(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetDestructableMaxLife was called but is not implemented :("),0}function jE(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetDestructableMaxLife was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function XE(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("DestructableRestoreLife was called but is not implemented :("),0}function $E(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("QueueDestructableAnimation was called but is not implemented :("),0}function JE(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("SetDestructableAnimation was called but is not implemented :("),0}function WE(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetDestructableAnimationSpeed was called but is not implemented :("),0}function qE(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("ShowDestructable was called but is not implemented :("),0}function YE(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetDestructableOccluderHeight was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function ZE(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetDestructableOccluderHeight was called but is not implemented :("),0}function QE(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetDestructableName was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function eL(e,t){return console.warn("GetTriggerDestructable was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function tL(e,t){(0,$b.eN)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("CreateItem was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function nL(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("RemoveItem was called but is not implemented :("),0}function aL(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetItemPlayer was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function rL(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetItemTypeId was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function iL(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetItemX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function sL(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetItemY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function lL(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("SetItemPosition was called but is not implemented :("),0}function oL(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetItemDropOnDeath was called but is not implemented :("),0}function uL(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetItemDroppable was called but is not implemented :("),0}function cL(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetItemPawnable was called but is not implemented :("),0}function dL(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("SetItemPlayer was called but is not implemented :("),0}function hL(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetItemInvulnerable was called but is not implemented :("),0}function fL(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsItemInvulnerable was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function mL(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetItemVisible was called but is not implemented :("),0}function pL(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsItemVisible was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function _L(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsItemOwned was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function gL(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsItemPowerup was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function bL(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsItemSellable was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function wL(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsItemPawnable was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function vL(e,t){(0,$b.eN)(t,1);return console.warn("IsItemIdPowerup was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function AL(e,t){(0,$b.eN)(t,1);return console.warn("IsItemIdSellable was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function yL(e,t){(0,$b.eN)(t,1);return console.warn("IsItemIdPawnable was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function SL(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.oL)(t,Xb.LUA_REGISTRYINDEX);return console.warn("EnumItemsInRect was called but is not implemented :("),0}function TL(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetItemLevel was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function xL(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetItemType was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function EL(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("SetItemDropID was called but is not implemented :("),0}function LL(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetItemName was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function IL(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetItemCharges was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function UL(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("SetItemCharges was called but is not implemented :("),0}function RL(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetItemUserData was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function CL(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("SetItemUserData was called but is not implemented :("),0}function ML(e,t){const n=(0,jb.lua_touserdata)(t,1),a=(0,$b.eN)(t,2),r=(0,$b.hs)(t,3),i=(0,$b.hs)(t,4),s=(0,$b.hs)(t,5);return(0,jb.lua_pushlightuserdata)(t,e.addHandle(new ew(n,a,r,i,s))),1}function BL(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5);return console.warn("CreateUnitByName was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function NL(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,jb.lua_touserdata)(t,3),(0,$b.hs)(t,4);return console.warn("CreateUnitAtLoc was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function PL(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,jb.lua_touserdata)(t,3),(0,$b.hs)(t,4);return console.warn("CreateUnitAtLocByName was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function kL(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5);return console.warn("CreateCorpse was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function OL(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("KillUnit was called but is not implemented :("),0}function DL(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("RemoveUnit was called but is not implemented :("),0}function FL(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("ShowUnit was called but is not implemented :("),0}function GL(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.hs)(t,3);return console.warn("SetUnitState was called but is not implemented :("),0}function VL(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetUnitX was called but is not implemented :("),0}function KL(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetUnitY was called but is not implemented :("),0}function HL(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("SetUnitPosition was called but is not implemented :("),0}function zL(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("SetUnitPositionLoc was called but is not implemented :("),0}function jL(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetUnitFacing was called but is not implemented :("),0}function XL(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("SetUnitFacingTimed was called but is not implemented :("),0}function $L(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetUnitMoveSpeed was called but is not implemented :("),0}function JL(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("SetUnitFlyHeight was called but is not implemented :("),0}function WL(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetUnitTurnSpeed was called but is not implemented :("),0}function qL(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetUnitPropWindow was called but is not implemented :("),0}function YL(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetUnitAcquireRange was called but is not implemented :("),0}function ZL(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetUnitCreepGuard was called but is not implemented :("),0}function QL(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitAcquireRange was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function eI(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitTurnSpeed was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function tI(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitPropWindow was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function nI(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitFlyHeight was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function aI(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitDefaultAcquireRange was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function rI(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitDefaultTurnSpeed was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function iI(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitDefaultPropWindow was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function sI(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitDefaultFlyHeight was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function lI(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("SetUnitOwner was called but is not implemented :("),0}function oI(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("SetUnitColor was called but is not implemented :("),0}function uI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("SetUnitScale was called but is not implemented :("),0}function cI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetUnitTimeScale was called but is not implemented :("),0}function dI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetUnitBlendTime was called but is not implemented :("),0}function hI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4),(0,$b.eN)(t,5);return console.warn("SetUnitVertexColor was called but is not implemented :("),0}function fI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("QueueUnitAnimation was called but is not implemented :("),0}function mI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("SetUnitAnimation was called but is not implemented :("),0}function pI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("SetUnitAnimationByIndex was called but is not implemented :("),0}function _I(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("SetUnitAnimationWithRarity was called but is not implemented :("),0}function gI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("AddUnitAnimationProperties was called but is not implemented :("),0}function bI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,jb.lua_touserdata)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5),(0,$b.hs)(t,6);return console.warn("SetUnitLookAt was called but is not implemented :("),0}function wI(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("ResetUnitLookAt was called but is not implemented :("),0}function vI(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("SetUnitRescuable was called but is not implemented :("),0}function AI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetUnitRescueRange was called but is not implemented :("),0}function yI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("SetHeroStr was called but is not implemented :("),0}function SI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("SetHeroAgi was called but is not implemented :("),0}function TI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("SetHeroInt was called but is not implemented :("),0}function xI(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("GetHeroStr was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function EI(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("GetHeroAgi was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function LI(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("GetHeroInt was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function II(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("UnitStripHeroLevel was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function UI(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetHeroXP was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function RI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("SetHeroXP was called but is not implemented :("),0}function CI(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetHeroSkillPoints was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function MI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("UnitModifySkillPoints was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function BI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("AddHeroXP was called but is not implemented :("),0}function NI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("SetHeroLevel was called but is not implemented :("),0}function PI(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetHeroLevel was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function kI(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitLevel was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function OI(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetHeroProperName was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function DI(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SuspendHeroXP was called but is not implemented :("),0}function FI(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsSuspendedXP was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function GI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("SelectHeroSkill was called but is not implemented :("),0}function VI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("GetUnitAbilityLevel was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function KI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("DecUnitAbilityLevel was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function HI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("IncUnitAbilityLevel was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function zI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("SetUnitAbilityLevel was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function jI(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,jb.lua_toboolean)(t,4);return console.warn("ReviveHero was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function XI(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("ReviveHeroLoc was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function $I(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetUnitExploded was called but is not implemented :("),0}function JI(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetUnitInvulnerable was called but is not implemented :("),0}function WI(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("PauseUnit was called but is not implemented :("),0}function qI(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsUnitPaused was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function YI(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetUnitPathing was called but is not implemented :("),0}function ZI(e,t){return console.warn("ClearSelection was called but is not implemented :("),0}function QI(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SelectUnit was called but is not implemented :("),0}function eU(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitPointValue was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function tU(e,t){(0,$b.eN)(t,1);return console.warn("GetUnitPointValueByType was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function nU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("UnitAddItem was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function aU(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("UnitAddItemById was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function rU(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("UnitAddItemToSlotById was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function iU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("UnitRemoveItem was called but is not implemented :("),0}function sU(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("UnitRemoveItemFromSlot was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function lU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("UnitHasItem was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function oU(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("UnitItemInSlot was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function uU(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("UnitInventorySize was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function cU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("UnitDropItemPoint was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function dU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.eN)(t,3);return console.warn("UnitDropItemSlot was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function hU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("UnitDropItemTarget was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function fU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("UnitUseItem was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function mU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("UnitUseItemPoint was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function pU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("UnitUseItemTarget was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function _U(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function gU(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function bU(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitLoc was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function wU(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitFacing was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function vU(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitMoveSpeed was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function AU(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitDefaultMoveSpeed was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function yU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("GetUnitState was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function SU(e,t){const n=(0,jb.lua_touserdata)(t,1);return(0,jb.lua_pushlightuserdata)(t,n.player),1}function TU(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitTypeId was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function xU(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitRace was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function EU(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitName was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function LU(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitFoodUsed was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function IU(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitFoodMade was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function UU(e,t){(0,$b.eN)(t,1);return console.warn("GetFoodMade was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function RU(e,t){(0,$b.eN)(t,1);return console.warn("GetFoodUsed was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function CU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetUnitUseFood was called but is not implemented :("),0}function MU(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitRallyPoint was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function BU(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitRallyUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function NU(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitRallyDestructable was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function PU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsUnitInGroup was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function kU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsUnitInForce was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function OU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsUnitOwnedByPlayer was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function DU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsUnitAlly was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function FU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsUnitEnemy was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function GU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsUnitVisible was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function VU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsUnitDetected was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function KU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsUnitInvisible was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function HU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsUnitFogged was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function zU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsUnitMasked was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function jU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsUnitSelected was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function XU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsUnitRace was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function $U(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsUnitType was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function JU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsUnit was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function WU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.hs)(t,3);return console.warn("IsUnitInRange was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function qU(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("IsUnitInRangeXY was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function YU(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.hs)(t,3);return console.warn("IsUnitInRangeLoc was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function ZU(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsUnitHidden was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function QU(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsUnitIllusion was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function eR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsUnitInTransport was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function tR(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsUnitLoaded was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function nR(e,t){(0,$b.eN)(t,1);return console.warn("IsHeroUnitId was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function aR(e,t){(0,$b.eN)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsUnitIdType was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function rR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("UnitShareVision was called but is not implemented :("),0}function iR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("UnitSuspendDecay was called but is not implemented :("),0}function sR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("UnitAddType was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function lR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("UnitRemoveType was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function oR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("UnitAddAbility was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function uR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("UnitRemoveAbility was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function cR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2),(0,$b.eN)(t,3);return console.warn("UnitMakeAbilityPermanent was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function dR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("UnitRemoveBuffs was called but is not implemented :("),0}function hR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2),(0,jb.lua_toboolean)(t,3),(0,jb.lua_toboolean)(t,4),(0,jb.lua_toboolean)(t,5),(0,jb.lua_toboolean)(t,6),(0,jb.lua_toboolean)(t,7),(0,jb.lua_toboolean)(t,8);return console.warn("UnitRemoveBuffsEx was called but is not implemented :("),0}function fR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2),(0,jb.lua_toboolean)(t,3),(0,jb.lua_toboolean)(t,4),(0,jb.lua_toboolean)(t,5),(0,jb.lua_toboolean)(t,6),(0,jb.lua_toboolean)(t,7),(0,jb.lua_toboolean)(t,8);return console.warn("UnitHasBuffsEx was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function mR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2),(0,jb.lua_toboolean)(t,3),(0,jb.lua_toboolean)(t,4),(0,jb.lua_toboolean)(t,5),(0,jb.lua_toboolean)(t,6),(0,jb.lua_toboolean)(t,7),(0,jb.lua_toboolean)(t,8);return console.warn("UnitCountBuffsEx was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function pR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("UnitAddSleep was called but is not implemented :("),0}function _R(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("UnitCanSleep was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function gR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("UnitAddSleepPerm was called but is not implemented :("),0}function bR(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("UnitCanSleepPerm was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function wR(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("UnitIsSleeping was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function vR(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("UnitWakeUp was called but is not implemented :("),0}function AR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.hs)(t,3);return console.warn("UnitApplyTimedLife was called but is not implemented :("),0}function yR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("UnitIgnoreAlarm was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function SR(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("UnitIgnoreAlarmToggled was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function TR(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("UnitResetCooldown was called but is not implemented :("),0}function xR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("UnitSetConstructionProgress was called but is not implemented :("),0}function ER(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("UnitSetUpgradeProgress was called but is not implemented :("),0}function LR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("UnitPauseTimedLife was called but is not implemented :("),0}function IR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("UnitSetUsesAltIcon was called but is not implemented :("),0}function UR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5),(0,$b.hs)(t,6),(0,jb.lua_toboolean)(t,7),(0,jb.lua_toboolean)(t,8),(0,jb.lua_touserdata)(t,9),(0,jb.lua_touserdata)(t,10),(0,jb.lua_touserdata)(t,11);return console.warn("UnitDamagePoint was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function RR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.hs)(t,3),(0,jb.lua_toboolean)(t,4),(0,jb.lua_toboolean)(t,5),(0,jb.lua_touserdata)(t,6),(0,jb.lua_touserdata)(t,7),(0,jb.lua_touserdata)(t,8);return console.warn("UnitDamageTarget was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function CR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("IssueImmediateOrder was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function MR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("IssueImmediateOrderById was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function BR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("IssuePointOrder was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function NR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("IssuePointOrderLoc was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function PR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("IssuePointOrderById was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function kR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("IssuePointOrderByIdLoc was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function OR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("IssueTargetOrder was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function DR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("IssueTargetOrderById was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function FR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,jb.lua_touserdata)(t,5);return console.warn("IssueInstantPointOrder was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function GR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,jb.lua_touserdata)(t,5);return console.warn("IssueInstantPointOrderById was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function VR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,jb.lua_touserdata)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("IssueInstantTargetOrder was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function KR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,jb.lua_touserdata)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("IssueInstantTargetOrderById was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function HR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("IssueBuildOrder was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function zR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("IssueBuildOrderById was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function jR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.dK)(t,3);return console.warn("IssueNeutralImmediateOrder was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function XR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.eN)(t,3);return console.warn("IssueNeutralImmediateOrderById was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function $R(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.dK)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5);return console.warn("IssueNeutralPointOrder was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function JR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.eN)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5);return console.warn("IssueNeutralPointOrderById was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function WR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.dK)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("IssueNeutralTargetOrder was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function qR(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("IssueNeutralTargetOrderById was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function YR(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitCurrentOrder was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function ZR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("SetResourceAmount was called but is not implemented :("),0}function QR(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("AddResourceAmount was called but is not implemented :("),0}function eC(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetResourceAmount was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function tC(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("WaygateGetDestinationX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function nC(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("WaygateGetDestinationY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function aC(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("WaygateSetDestination was called but is not implemented :("),0}function rC(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("WaygateActivate was called but is not implemented :("),0}function iC(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("WaygateIsActive was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function sC(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("AddItemToAllStock was called but is not implemented :("),0}function lC(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4);return console.warn("AddItemToStock was called but is not implemented :("),0}function oC(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("AddUnitToAllStock was called but is not implemented :("),0}function uC(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4);return console.warn("AddUnitToStock was called but is not implemented :("),0}function cC(e,t){(0,$b.eN)(t,1);return console.warn("RemoveItemFromAllStock was called but is not implemented :("),0}function dC(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("RemoveItemFromStock was called but is not implemented :("),0}function hC(e,t){(0,$b.eN)(t,1);return console.warn("RemoveUnitFromAllStock was called but is not implemented :("),0}function fC(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("RemoveUnitFromStock was called but is not implemented :("),0}function mC(e,t){(0,$b.eN)(t,1);return console.warn("SetAllItemTypeSlots was called but is not implemented :("),0}function pC(e,t){(0,$b.eN)(t,1);return console.warn("SetAllUnitTypeSlots was called but is not implemented :("),0}function _C(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("SetItemTypeSlots was called but is not implemented :("),0}function gC(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("SetUnitTypeSlots was called but is not implemented :("),0}function bC(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetUnitUserData was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function wC(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("SetUnitUserData was called but is not implemented :("),0}function vC(e,t){const n=(0,$b.eN)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.players[n]),1}function AC(e,t){return console.warn("GetLocalPlayer was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function yC(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsPlayerAlly was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function SC(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsPlayerEnemy was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function TC(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsPlayerInForce was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function xC(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsPlayerObserver was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function EC(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("IsVisibleToPlayer was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function LC(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsLocationVisibleToPlayer was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function IC(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("IsFoggedToPlayer was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function UC(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsLocationFoggedToPlayer was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function RC(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("IsMaskedToPlayer was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function CC(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("IsLocationMaskedToPlayer was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function MC(e,t){const n=(0,jb.lua_touserdata)(t,1);return(0,jb.lua_pushlightuserdata)(t,e.constantHandles.races[n.racePreference]),1}function BC(e,t){const n=(0,jb.lua_touserdata)(t,1);return(0,jb.lua_pushinteger)(t,n.index),1}function NC(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("GetPlayerUnitCount was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function PC(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,jb.lua_toboolean)(t,3),(0,jb.lua_toboolean)(t,4);return console.warn("GetPlayerTypedUnitCount was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function kC(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("GetPlayerStructureCount was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function OC(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("GetPlayerState was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function DC(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("GetPlayerScore was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function FC(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("GetPlayerAlliance was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function GC(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetPlayerHandicap was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function VC(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetPlayerHandicapXP was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function KC(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetPlayerHandicap was called but is not implemented :("),0}function HC(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetPlayerHandicapXP was called but is not implemented :("),0}function zC(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("SetPlayerTechMaxAllowed was called but is not implemented :("),0}function jC(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("GetPlayerTechMaxAllowed was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function XC(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("AddPlayerTechResearched was called but is not implemented :("),0}function $C(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("SetPlayerTechResearched was called but is not implemented :("),0}function JC(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("GetPlayerTechResearched was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function WC(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("GetPlayerTechCount was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function qC(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("SetPlayerUnitsOwner was called but is not implemented :("),0}function YC(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("CripplePlayer was called but is not implemented :("),0}function ZC(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("SetPlayerAbilityAvailable was called but is not implemented :("),0}function QC(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.eN)(t,3);return console.warn("SetPlayerState was called but is not implemented :("),0}function eM(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("RemovePlayer was called but is not implemented :("),0}function tM(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("CachePlayerHeroData was called but is not implemented :("),0}function nM(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3),(0,jb.lua_toboolean)(t,4);return console.warn("SetFogStateRect was called but is not implemented :("),0}function aM(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5),(0,jb.lua_toboolean)(t,6);return console.warn("SetFogStateRadius was called but is not implemented :("),0}function rM(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3),(0,$b.hs)(t,4),(0,jb.lua_toboolean)(t,5);return console.warn("SetFogStateRadiusLoc was called but is not implemented :("),0}function iM(e,t){(0,jb.lua_toboolean)(t,1);return console.warn("FogMaskEnable was called but is not implemented :("),0}function sM(e,t){return console.warn("IsFogMaskEnabled was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function lM(e,t){(0,jb.lua_toboolean)(t,1);return console.warn("FogEnable was called but is not implemented :("),0}function oM(e,t){return console.warn("IsFogEnabled was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function uM(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3),(0,jb.lua_toboolean)(t,4),(0,jb.lua_toboolean)(t,5);return console.warn("CreateFogModifierRect was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function cM(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5),(0,jb.lua_toboolean)(t,6),(0,jb.lua_toboolean)(t,7);return console.warn("CreateFogModifierRadius was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function dM(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3),(0,$b.hs)(t,4),(0,jb.lua_toboolean)(t,5),(0,jb.lua_toboolean)(t,6);return console.warn("CreateFogModifierRadiusLoc was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function hM(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DestroyFogModifier was called but is not implemented :("),0}function fM(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("FogModifierStart was called but is not implemented :("),0}function mM(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("FogModifierStop was called but is not implemented :("),0}function pM(e,t){return console.warn("VersionGet was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function _M(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("VersionCompatible was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function gM(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("VersionSupported was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function bM(e,t){(0,jb.lua_toboolean)(t,1);return console.warn("EndGame was called but is not implemented :("),0}function wM(e,t){(0,$b.dK)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("ChangeLevel was called but is not implemented :("),0}function vM(e,t){(0,jb.lua_toboolean)(t,1);return console.warn("RestartGame was called but is not implemented :("),0}function AM(e,t){return console.warn("ReloadGame was called but is not implemented :("),0}function yM(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("SetCampaignMenuRace was called but is not implemented :("),0}function SM(e,t){(0,$b.eN)(t,1);return console.warn("SetCampaignMenuRaceEx was called but is not implemented :("),0}function TM(e,t){return console.warn("ForceCampaignSelectScreen was called but is not implemented :("),0}function xM(e,t){(0,$b.dK)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("LoadGame was called but is not implemented :("),0}function EM(e,t){(0,$b.dK)(t,1);return console.warn("SaveGame was called but is not implemented :("),0}function LM(e,t){(0,$b.dK)(t,1),(0,$b.dK)(t,2);return console.warn("RenameSaveDirectory was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function IM(e,t){(0,$b.dK)(t,1);return console.warn("RemoveSaveDirectory was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function UM(e,t){(0,$b.dK)(t,1),(0,$b.dK)(t,2);return console.warn("CopySaveGame was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function RM(e,t){(0,$b.dK)(t,1);return console.warn("SaveGameExists was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function CM(e,t){return console.warn("SyncSelections was called but is not implemented :("),0}function MM(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetFloatGameState was called but is not implemented :("),0}function BM(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetFloatGameState was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function NM(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("SetIntegerGameState was called but is not implemented :("),0}function PM(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetIntegerGameState was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function kM(e,t){(0,jb.lua_toboolean)(t,1);return console.warn("SetTutorialCleared was called but is not implemented :("),0}function OM(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("SetMissionAvailable was called but is not implemented :("),0}function DM(e,t){(0,$b.eN)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetCampaignAvailable was called but is not implemented :("),0}function FM(e,t){(0,$b.eN)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetOpCinematicAvailable was called but is not implemented :("),0}function GM(e,t){(0,$b.eN)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetEdCinematicAvailable was called but is not implemented :("),0}function VM(e,t){return console.warn("GetDefaultDifficulty was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function KM(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("SetDefaultDifficulty was called but is not implemented :("),0}function HM(e,t){(0,$b.eN)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetCustomCampaignButtonVisible was called but is not implemented :("),0}function zM(e,t){(0,$b.eN)(t,1);return console.warn("GetCustomCampaignButtonVisible was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function jM(e,t){return console.warn("DoNotSaveReplay was called but is not implemented :("),0}function XM(e,t){return console.warn("DialogCreate was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function $M(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DialogDestroy was called but is not implemented :("),0}function JM(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DialogClear was called but is not implemented :("),0}function WM(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("DialogSetMessage was called but is not implemented :("),0}function qM(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.eN)(t,3);return console.warn("DialogAddButton was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function YM(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2),(0,$b.dK)(t,3),(0,$b.eN)(t,4);return console.warn("DialogAddQuitButton was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function ZM(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("DialogDisplay was called but is not implemented :("),0}function QM(e,t){return console.warn("ReloadGameCachesFromDisk was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function eB(e,t){(0,$b.dK)(t,1);return console.warn("InitGameCache was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function tB(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("SaveGameCache was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function nB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3),(0,$b.eN)(t,4);return console.warn("StoreInteger was called but is not implemented :("),0}function aB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3),(0,$b.hs)(t,4);return console.warn("StoreReal was called but is not implemented :("),0}function rB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3),(0,jb.lua_toboolean)(t,4);return console.warn("StoreBoolean was called but is not implemented :("),0}function iB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("StoreUnit was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function sB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3),(0,$b.dK)(t,4);return console.warn("StoreString was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function lB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("SyncStoredInteger was called but is not implemented :("),0}function oB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("SyncStoredReal was called but is not implemented :("),0}function uB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("SyncStoredBoolean was called but is not implemented :("),0}function cB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("SyncStoredUnit was called but is not implemented :("),0}function dB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("SyncStoredString was called but is not implemented :("),0}function hB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("HaveStoredInteger was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function fB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("HaveStoredReal was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function mB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("HaveStoredBoolean was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function pB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("HaveStoredUnit was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function _B(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("HaveStoredString was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function gB(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("FlushGameCache was called but is not implemented :("),0}function bB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("FlushStoredMission was called but is not implemented :("),0}function wB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("FlushStoredInteger was called but is not implemented :("),0}function vB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("FlushStoredReal was called but is not implemented :("),0}function AB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("FlushStoredBoolean was called but is not implemented :("),0}function yB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("FlushStoredUnit was called but is not implemented :("),0}function SB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("FlushStoredString was called but is not implemented :("),0}function TB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("GetStoredInteger was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function xB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("GetStoredReal was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function EB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("GetStoredBoolean was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function LB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3);return console.warn("GetStoredString was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function IB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.dK)(t,3),(0,jb.lua_touserdata)(t,4),(0,$b.hs)(t,5),(0,$b.hs)(t,6),(0,$b.hs)(t,7);return console.warn("RestoreUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function UB(e,t){return console.warn("InitHashtable was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function RB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4);return console.warn("SaveInteger was called but is not implemented :("),0}function CB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.hs)(t,4);return console.warn("SaveReal was called but is not implemented :("),0}function MB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_toboolean)(t,4);return console.warn("SaveBoolean was called but is not implemented :("),0}function BB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.dK)(t,4);return console.warn("SaveStr was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function NB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SavePlayerHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function PB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveWidgetHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function kB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveDestructableHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function OB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveItemHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function DB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveUnitHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function FB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveAbilityHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function GB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveTimerHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function VB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveTriggerHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function KB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveTriggerConditionHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function HB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveTriggerActionHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function zB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveTriggerEventHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function jB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveForceHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function XB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveGroupHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function $B(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveLocationHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function JB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveRectHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function WB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveBooleanExprHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function qB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveSoundHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function YB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveEffectHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function ZB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveUnitPoolHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function QB(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveItemPoolHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function eN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveQuestHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function tN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveQuestItemHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function nN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveDefeatConditionHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function aN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveTimerDialogHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function rN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveLeaderboardHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function iN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveMultiboardHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function sN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveMultiboardItemHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function lN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveTrackableHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function oN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveDialogHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function uN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveButtonHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function cN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveTextTagHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function dN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveLightningHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function hN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveImageHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function fN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveUbersplatHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function mN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveRegionHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function pN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveFogStateHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function _N(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveFogModifierHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function gN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveAgentHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function bN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("SaveHashtableHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function wN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadInteger was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function vN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadReal was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function AN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadBoolean was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function yN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadStr was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function SN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadPlayerHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function TN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadWidgetHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function xN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadDestructableHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function EN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadItemHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function LN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadUnitHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function IN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadAbilityHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function UN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadTimerHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function RN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadTriggerHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function CN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadTriggerConditionHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function MN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadTriggerActionHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function BN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadTriggerEventHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function NN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadForceHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function PN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadGroupHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function kN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadLocationHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function ON(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadRectHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function DN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadBooleanExprHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function FN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadSoundHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function GN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadEffectHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function VN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadUnitPoolHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function KN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadItemPoolHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function HN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadQuestHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function zN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadQuestItemHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function jN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadDefeatConditionHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function XN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadTimerDialogHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function $N(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadLeaderboardHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function JN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadMultiboardHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function WN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadMultiboardItemHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function qN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadTrackableHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function YN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadDialogHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function ZN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadButtonHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function QN(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadTextTagHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function eP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadLightningHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function tP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadImageHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function nP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadUbersplatHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function aP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadRegionHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function rP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadFogStateHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function iP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadFogModifierHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function sP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LoadHashtableHandle was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function lP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("HaveSavedInteger was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function oP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("HaveSavedReal was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function uP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("HaveSavedBoolean was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function cP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("HaveSavedString was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function dP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("HaveSavedHandle was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function hP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("RemoveSavedInteger was called but is not implemented :("),0}function fP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("RemoveSavedReal was called but is not implemented :("),0}function mP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("RemoveSavedBoolean was called but is not implemented :("),0}function pP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("RemoveSavedString was called but is not implemented :("),0}function _P(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("RemoveSavedHandle was called but is not implemented :("),0}function gP(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("FlushParentHashtable was called but is not implemented :("),0}function bP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("FlushChildHashtable was called but is not implemented :("),0}function wP(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2);return console.warn("GetRandomInt was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function vP(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2);return console.warn("GetRandomReal was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function AP(e,t){return console.warn("CreateUnitPool was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function yP(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DestroyUnitPool was called but is not implemented :("),0}function SP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.hs)(t,3);return console.warn("UnitPoolAddUnitType was called but is not implemented :("),0}function TP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("UnitPoolRemoveUnitType was called but is not implemented :("),0}function xP(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5);return console.warn("PlaceRandomUnit was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function EP(e,t){return console.warn("CreateItemPool was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function LP(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DestroyItemPool was called but is not implemented :("),0}function IP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.hs)(t,3);return console.warn("ItemPoolAddItemType was called but is not implemented :("),0}function UP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("ItemPoolRemoveItemType was called but is not implemented :("),0}function RP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("PlaceRandomItem was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function CP(e,t){(0,$b.eN)(t,1);return console.warn("ChooseRandomCreep was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function MP(e,t){return console.warn("ChooseRandomNPBuilding was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function BP(e,t){(0,$b.eN)(t,1);return console.warn("ChooseRandomItem was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function NP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("ChooseRandomItemEx was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function PP(e,t){(0,$b.eN)(t,1);return console.warn("SetRandomSeed was called but is not implemented :("),0}function kP(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5);return console.warn("SetTerrainFog was called but is not implemented :("),0}function OP(e,t){return console.warn("ResetTerrainFog was called but is not implemented :("),0}function DP(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5);return console.warn("SetUnitFog was called but is not implemented :("),0}function FP(e,t){(0,$b.eN)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5),(0,$b.hs)(t,6),(0,$b.hs)(t,7);return console.warn("SetTerrainFogEx was called but is not implemented :("),0}function GP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.dK)(t,4);return console.warn("DisplayTextToPlayer was called but is not implemented :("),0}function VP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.dK)(t,5);return console.warn("DisplayTimedTextToPlayer was called but is not implemented :("),0}function KP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.dK)(t,5);return console.warn("DisplayTimedTextFromPlayer was called but is not implemented :("),0}function HP(e,t){return console.warn("ClearTextMessages was called but is not implemented :("),0}function zP(e,t){(0,$b.dK)(t,1),(0,$b.dK)(t,2);return console.warn("SetDayNightModels was called but is not implemented :("),0}function jP(e,t){(0,$b.dK)(t,1);return console.warn("SetSkyModel was called but is not implemented :("),0}function XP(e,t){(0,jb.lua_toboolean)(t,1);return console.warn("EnableUserControl was called but is not implemented :("),0}function $P(e,t){(0,jb.lua_toboolean)(t,1);return console.warn("EnableUserUI was called but is not implemented :("),0}function JP(e,t){(0,jb.lua_toboolean)(t,1);return console.warn("SuspendTimeOfDay was called but is not implemented :("),0}function WP(e,t){(0,$b.hs)(t,1);return console.warn("SetTimeOfDayScale was called but is not implemented :("),0}function qP(e,t){return console.warn("GetTimeOfDayScale was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function YP(e,t){(0,jb.lua_toboolean)(t,1),(0,$b.hs)(t,2);return console.warn("ShowInterface was called but is not implemented :("),0}function ZP(e,t){(0,jb.lua_toboolean)(t,1);return console.warn("PauseGame was called but is not implemented :("),0}function QP(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4),(0,$b.eN)(t,5);return console.warn("UnitAddIndicator was called but is not implemented :("),0}function ek(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4),(0,$b.eN)(t,5);return console.warn("AddIndicator was called but is not implemented :("),0}function tk(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("PingMinimap was called but is not implemented :("),0}function nk(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.eN)(t,4),(0,$b.eN)(t,5),(0,$b.eN)(t,6),(0,jb.lua_toboolean)(t,7);return console.warn("PingMinimapEx was called but is not implemented :("),0}function ak(e,t){(0,jb.lua_toboolean)(t,1);return console.warn("EnableOcclusion was called but is not implemented :("),0}function rk(e,t){(0,$b.dK)(t,1);return console.warn("SetIntroShotText was called but is not implemented :("),0}function ik(e,t){(0,$b.dK)(t,1);return console.warn("SetIntroShotModel was called but is not implemented :("),0}function sk(e,t){(0,jb.lua_toboolean)(t,1);return console.warn("EnableWorldFogBoundary was called but is not implemented :("),0}function lk(e,t){(0,$b.dK)(t,1);return console.warn("PlayModelCinematic was called but is not implemented :("),0}function ok(e,t){(0,$b.dK)(t,1);return console.warn("PlayCinematic was called but is not implemented :("),0}function uk(e,t){(0,$b.dK)(t,1);return console.warn("ForceUIKey was called but is not implemented :("),0}function ck(e,t){return console.warn("ForceUICancel was called but is not implemented :("),0}function dk(e,t){return console.warn("DisplayLoadDialog was called but is not implemented :("),0}function hk(e,t){(0,$b.dK)(t,1);return console.warn("SetAltMinimapIcon was called but is not implemented :("),0}function fk(e,t){(0,jb.lua_toboolean)(t,1);return console.warn("DisableRestartMission was called but is not implemented :("),0}function mk(e,t){return console.warn("CreateTextTag was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function pk(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DestroyTextTag was called but is not implemented :("),0}function _k(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.hs)(t,3);return console.warn("SetTextTagText was called but is not implemented :("),0}function gk(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("SetTextTagPos was called but is not implemented :("),0}function bk(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.hs)(t,3);return console.warn("SetTextTagPosUnit was called but is not implemented :("),0}function wk(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4),(0,$b.eN)(t,5);return console.warn("SetTextTagColor was called but is not implemented :("),0}function vk(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("SetTextTagVelocity was called but is not implemented :("),0}function Ak(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetTextTagVisibility was called but is not implemented :("),0}function yk(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetTextTagSuspended was called but is not implemented :("),0}function Sk(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetTextTagPermanent was called but is not implemented :("),0}function Tk(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetTextTagAge was called but is not implemented :("),0}function xk(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetTextTagLifespan was called but is not implemented :("),0}function Ek(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetTextTagFadepoint was called but is not implemented :("),0}function Lk(e,t){(0,$b.eN)(t,1);return console.warn("SetReservedLocalHeroButtons was called but is not implemented :("),0}function Ik(e,t){return console.warn("GetAllyColorFilterState was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function Uk(e,t){(0,$b.eN)(t,1);return console.warn("SetAllyColorFilterState was called but is not implemented :("),0}function Rk(e,t){return console.warn("GetCreepCampFilterState was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function Ck(e,t){(0,jb.lua_toboolean)(t,1);return console.warn("SetCreepCampFilterState was called but is not implemented :("),0}function Mk(e,t){(0,jb.lua_toboolean)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("EnableMinimapFilterButtons was called but is not implemented :("),0}function Bk(e,t){(0,jb.lua_toboolean)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("EnableDragSelect was called but is not implemented :("),0}function Nk(e,t){(0,jb.lua_toboolean)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("EnablePreSelect was called but is not implemented :("),0}function Pk(e,t){(0,jb.lua_toboolean)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("EnableSelect was called but is not implemented :("),0}function kk(e,t){(0,$b.dK)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("CreateTrackable was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Ok(e,t){return console.warn("CreateQuest was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Dk(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DestroyQuest was called but is not implemented :("),0}function Fk(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("QuestSetTitle was called but is not implemented :("),0}function Gk(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("QuestSetDescription was called but is not implemented :("),0}function Vk(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("QuestSetIconPath was called but is not implemented :("),0}function Kk(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("QuestSetRequired was called but is not implemented :("),0}function Hk(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("QuestSetCompleted was called but is not implemented :("),0}function zk(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("QuestSetDiscovered was called but is not implemented :("),0}function jk(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("QuestSetFailed was called but is not implemented :("),0}function Xk(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("QuestSetEnabled was called but is not implemented :("),0}function $k(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsQuestRequired was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function Jk(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsQuestCompleted was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function Wk(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsQuestDiscovered was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function qk(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsQuestFailed was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function Yk(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsQuestEnabled was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function Zk(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("QuestCreateItem was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function Qk(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("QuestItemSetDescription was called but is not implemented :("),0}function eO(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("QuestItemSetCompleted was called but is not implemented :("),0}function tO(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsQuestItemCompleted was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function nO(e,t){return console.warn("CreateDefeatCondition was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function aO(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DestroyDefeatCondition was called but is not implemented :("),0}function rO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("DefeatConditionSetDescription was called but is not implemented :("),0}function iO(e,t){return console.warn("FlashQuestDialogButton was called but is not implemented :("),0}function sO(e,t){return console.warn("ForceQuestDialogUpdate was called but is not implemented :("),0}function lO(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("CreateTimerDialog was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function oO(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DestroyTimerDialog was called but is not implemented :("),0}function uO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("TimerDialogSetTitle was called but is not implemented :("),0}function cO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4),(0,$b.eN)(t,5);return console.warn("TimerDialogSetTitleColor was called but is not implemented :("),0}function dO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4),(0,$b.eN)(t,5);return console.warn("TimerDialogSetTimeColor was called but is not implemented :("),0}function hO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("TimerDialogSetSpeed was called but is not implemented :("),0}function fO(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("TimerDialogDisplay was called but is not implemented :("),0}function mO(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsTimerDialogDisplayed was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function pO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("TimerDialogSetRealTimeRemaining was called but is not implemented :("),0}function _O(e,t){return console.warn("CreateLeaderboard was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function gO(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DestroyLeaderboard was called but is not implemented :("),0}function bO(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("LeaderboardDisplay was called but is not implemented :("),0}function wO(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsLeaderboardDisplayed was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function vO(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("LeaderboardGetItemCount was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function AO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("LeaderboardSetSizeByItemCount was called but is not implemented :("),0}function yO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2),(0,$b.eN)(t,3),(0,jb.lua_touserdata)(t,4);return console.warn("LeaderboardAddItem was called but is not implemented :("),0}function SO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("LeaderboardRemoveItem was called but is not implemented :("),0}function TO(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("LeaderboardRemovePlayerItem was called but is not implemented :("),0}function xO(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("LeaderboardClear was called but is not implemented :("),0}function EO(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("LeaderboardSortItemsByValue was called but is not implemented :("),0}function LO(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("LeaderboardSortItemsByPlayer was called but is not implemented :("),0}function IO(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("LeaderboardSortItemsByLabel was called but is not implemented :("),0}function UO(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("LeaderboardHasPlayerItem was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function RO(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("LeaderboardGetPlayerIndex was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function CO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("LeaderboardSetLabel was called but is not implemented :("),0}function MO(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("LeaderboardGetLabelText was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function BO(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("PlayerSetLeaderboard was called but is not implemented :("),0}function NO(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("PlayerGetLeaderboard was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function PO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4),(0,$b.eN)(t,5);return console.warn("LeaderboardSetLabelColor was called but is not implemented :("),0}function kO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4),(0,$b.eN)(t,5);return console.warn("LeaderboardSetValueColor was called but is not implemented :("),0}function OO(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2),(0,jb.lua_toboolean)(t,3),(0,jb.lua_toboolean)(t,4),(0,jb.lua_toboolean)(t,5);return console.warn("LeaderboardSetStyle was called but is not implemented :("),0}function DO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("LeaderboardSetItemValue was called but is not implemented :("),0}function FO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.dK)(t,3);return console.warn("LeaderboardSetItemLabel was called but is not implemented :("),0}function GO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,jb.lua_toboolean)(t,3),(0,jb.lua_toboolean)(t,4),(0,jb.lua_toboolean)(t,5);return console.warn("LeaderboardSetItemStyle was called but is not implemented :("),0}function VO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4),(0,$b.eN)(t,5),(0,$b.eN)(t,6);return console.warn("LeaderboardSetItemLabelColor was called but is not implemented :("),0}function KO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4),(0,$b.eN)(t,5),(0,$b.eN)(t,6);return console.warn("LeaderboardSetItemValueColor was called but is not implemented :("),0}function HO(e,t){return console.warn("CreateMultiboard was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function zO(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DestroyMultiboard was called but is not implemented :("),0}function jO(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("MultiboardDisplay was called but is not implemented :("),0}function XO(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsMultiboardDisplayed was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function $O(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("MultiboardMinimize was called but is not implemented :("),0}function JO(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("IsMultiboardMinimized was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function WO(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("MultiboardClear was called but is not implemented :("),0}function qO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("MultiboardSetTitleText was called but is not implemented :("),0}function YO(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("MultiboardGetTitleText was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function ZO(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4),(0,$b.eN)(t,5);return console.warn("MultiboardSetTitleTextColor was called but is not implemented :("),0}function QO(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("MultiboardGetRowCount was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function eD(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("MultiboardGetColumnCount was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function tD(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("MultiboardSetColumnCount was called but is not implemented :("),0}function nD(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("MultiboardSetRowCount was called but is not implemented :("),0}function aD(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("MultiboardSetItemsStyle was called but is not implemented :("),0}function rD(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("MultiboardSetItemsValue was called but is not implemented :("),0}function iD(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4),(0,$b.eN)(t,5);return console.warn("MultiboardSetItemsValueColor was called but is not implemented :("),0}function sD(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("MultiboardSetItemsWidth was called but is not implemented :("),0}function lD(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("MultiboardSetItemsIcon was called but is not implemented :("),0}function oD(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("MultiboardGetItem was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function uD(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("MultiboardReleaseItem was called but is not implemented :("),0}function cD(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("MultiboardSetItemStyle was called but is not implemented :("),0}function dD(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("MultiboardSetItemValue was called but is not implemented :("),0}function hD(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4),(0,$b.eN)(t,5);return console.warn("MultiboardSetItemValueColor was called but is not implemented :("),0}function fD(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("MultiboardSetItemWidth was called but is not implemented :("),0}function mD(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("MultiboardSetItemIcon was called but is not implemented :("),0}function pD(e,t){(0,jb.lua_toboolean)(t,1);return console.warn("MultiboardSuppressDisplay was called but is not implemented :("),0}function _D(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2);return console.warn("SetCameraPosition was called but is not implemented :("),0}function gD(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2);return console.warn("SetCameraQuickPosition was called but is not implemented :("),0}function bD(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5),(0,$b.hs)(t,6),(0,$b.hs)(t,7),(0,$b.hs)(t,8);return console.warn("SetCameraBounds was called but is not implemented :("),0}function wD(e,t){return console.warn("StopCamera was called but is not implemented :("),0}function vD(e,t){(0,$b.hs)(t,1);return console.warn("ResetToGameCamera was called but is not implemented :("),0}function AD(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2);return console.warn("PanCameraTo was called but is not implemented :("),0}function yD(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("PanCameraToTimed was called but is not implemented :("),0}function SD(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("PanCameraToWithZ was called but is not implemented :("),0}function TD(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("PanCameraToTimedWithZ was called but is not implemented :("),0}function xD(e,t){(0,$b.dK)(t,1);return console.warn("SetCinematicCamera was called but is not implemented :("),0}function ED(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("SetCameraRotateMode was called but is not implemented :("),0}function LD(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("SetCameraField was called but is not implemented :("),0}function ID(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("AdjustCameraField was called but is not implemented :("),0}function UD(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,jb.lua_toboolean)(t,4);return console.warn("SetCameraTargetController was called but is not implemented :("),0}function RD(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("SetCameraOrientController was called but is not implemented :("),0}function CD(e,t){return console.warn("CreateCameraSetup was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function MD(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("CameraSetupSetField was called but is not implemented :("),0}function BD(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("CameraSetupGetField was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function ND(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("CameraSetupSetDestPosition was called but is not implemented :("),0}function PD(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("CameraSetupGetDestPositionLoc was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function kD(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("CameraSetupGetDestPositionX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function OD(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("CameraSetupGetDestPositionY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function DD(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("CameraSetupApply was called but is not implemented :("),0}function FD(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("CameraSetupApplyWithZ was called but is not implemented :("),0}function GD(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2),(0,$b.hs)(t,3);return console.warn("CameraSetupApplyForceDuration was called but is not implemented :("),0}function VD(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("CameraSetupApplyForceDurationWithZ was called but is not implemented :("),0}function KD(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2);return console.warn("CameraSetTargetNoise was called but is not implemented :("),0}function HD(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2);return console.warn("CameraSetSourceNoise was called but is not implemented :("),0}function zD(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("CameraSetTargetNoiseEx was called but is not implemented :("),0}function jD(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("CameraSetSourceNoiseEx was called but is not implemented :("),0}function XD(e,t){(0,$b.hs)(t,1);return console.warn("CameraSetSmoothingFactor was called but is not implemented :("),0}function $D(e,t){(0,$b.dK)(t,1);return console.warn("SetCineFilterTexture was called but is not implemented :("),0}function JD(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("SetCineFilterBlendMode was called but is not implemented :("),0}function WD(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("SetCineFilterTexMapFlags was called but is not implemented :("),0}function qD(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("SetCineFilterStartUV was called but is not implemented :("),0}function YD(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("SetCineFilterEndUV was called but is not implemented :("),0}function ZD(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4);return console.warn("SetCineFilterStartColor was called but is not implemented :("),0}function QD(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4);return console.warn("SetCineFilterEndColor was called but is not implemented :("),0}function eF(e,t){(0,$b.hs)(t,1);return console.warn("SetCineFilterDuration was called but is not implemented :("),0}function tF(e,t){(0,jb.lua_toboolean)(t,1);return console.warn("DisplayCineFilter was called but is not implemented :("),0}function nF(e,t){return console.warn("IsCineFilterDisplayed was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function aF(e,t){(0,$b.eN)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.dK)(t,3),(0,$b.dK)(t,4),(0,$b.hs)(t,5),(0,$b.hs)(t,6);return console.warn("SetCinematicScene was called but is not implemented :("),0}function rF(e,t){return console.warn("EndCinematicScene was called but is not implemented :("),0}function iF(e,t){(0,jb.lua_toboolean)(t,1);return console.warn("ForceCinematicSubtitles was called but is not implemented :("),0}function sF(e,t){(0,$b.eN)(t,1);return console.warn("GetCameraMargin was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function lF(e,t){return console.warn("GetCameraBoundMinX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function oF(e,t){return console.warn("GetCameraBoundMinY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function uF(e,t){return console.warn("GetCameraBoundMaxX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function cF(e,t){return console.warn("GetCameraBoundMaxY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function dF(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetCameraField was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function hF(e,t){return console.warn("GetCameraTargetPositionX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function fF(e,t){return console.warn("GetCameraTargetPositionY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function mF(e,t){return console.warn("GetCameraTargetPositionZ was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function pF(e,t){return console.warn("GetCameraTargetPositionLoc was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function _F(e,t){return console.warn("GetCameraEyePositionX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function gF(e,t){return console.warn("GetCameraEyePositionY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function bF(e,t){return console.warn("GetCameraEyePositionZ was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function wF(e,t){return console.warn("GetCameraEyePositionLoc was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function vF(e,t){(0,$b.dK)(t,1);return console.warn("NewSoundEnvironment was called but is not implemented :("),0}function AF(e,t){(0,$b.dK)(t,1),(0,jb.lua_toboolean)(t,2),(0,jb.lua_toboolean)(t,3),(0,jb.lua_toboolean)(t,4),(0,$b.eN)(t,5),(0,$b.eN)(t,6),(0,$b.dK)(t,7);return console.warn("CreateSound was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function yF(e,t){(0,$b.dK)(t,1),(0,jb.lua_toboolean)(t,2),(0,jb.lua_toboolean)(t,3),(0,jb.lua_toboolean)(t,4),(0,$b.eN)(t,5),(0,$b.eN)(t,6),(0,$b.dK)(t,7);return console.warn("CreateSoundFilenameWithLabel was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function SF(e,t){(0,$b.dK)(t,1),(0,jb.lua_toboolean)(t,2),(0,jb.lua_toboolean)(t,3),(0,jb.lua_toboolean)(t,4),(0,$b.eN)(t,5),(0,$b.eN)(t,6);return console.warn("CreateSoundFromLabel was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function TF(e,t){(0,$b.dK)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("CreateMIDISound was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function xF(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("SetSoundParamsFromLabel was called but is not implemented :("),0}function EF(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetSoundDistanceCutoff was called but is not implemented :("),0}function LF(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("SetSoundChannel was called but is not implemented :("),0}function IF(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("SetSoundVolume was called but is not implemented :("),0}function UF(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("SetSoundPitch was called but is not implemented :("),0}function RF(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("SetSoundPlayPosition was called but is not implemented :("),0}function CF(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("SetSoundDistances was called but is not implemented :("),0}function MF(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.eN)(t,4);return console.warn("SetSoundConeAngles was called but is not implemented :("),0}function BF(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("SetSoundConeOrientation was called but is not implemented :("),0}function NF(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("SetSoundPosition was called but is not implemented :("),0}function PF(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("SetSoundVelocity was called but is not implemented :("),0}function kF(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("AttachSoundToUnit was called but is not implemented :("),0}function OF(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("StartSound was called but is not implemented :("),0}function DF(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("StopSound was called but is not implemented :("),0}function FF(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("KillSoundWhenDone was called but is not implemented :("),0}function GF(e,t){(0,$b.dK)(t,1),(0,jb.lua_toboolean)(t,2),(0,$b.eN)(t,3);return console.warn("SetMapMusic was called but is not implemented :("),0}function VF(e,t){return console.warn("ClearMapMusic was called but is not implemented :("),0}function KF(e,t){(0,$b.dK)(t,1);return console.warn("PlayMusic was called but is not implemented :("),0}function HF(e,t){(0,$b.dK)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("PlayMusicEx was called but is not implemented :("),0}function zF(e,t){(0,jb.lua_toboolean)(t,1);return console.warn("StopMusic was called but is not implemented :("),0}function jF(e,t){return console.warn("ResumeMusic was called but is not implemented :("),0}function XF(e,t){(0,$b.dK)(t,1);return console.warn("PlayThematicMusic was called but is not implemented :("),0}function $F(e,t){(0,$b.dK)(t,1),(0,$b.eN)(t,2);return console.warn("PlayThematicMusicEx was called but is not implemented :("),0}function JF(e,t){return console.warn("EndThematicMusic was called but is not implemented :("),0}function WF(e,t){(0,$b.eN)(t,1);return console.warn("SetMusicVolume was called but is not implemented :("),0}function qF(e,t){(0,$b.eN)(t,1);return console.warn("SetMusicPlayPosition was called but is not implemented :("),0}function YF(e,t){(0,$b.eN)(t,1);return console.warn("SetThematicMusicPlayPosition was called but is not implemented :("),0}function ZF(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("SetSoundDuration was called but is not implemented :("),0}function QF(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetSoundDuration was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function eG(e,t){(0,$b.dK)(t,1);return console.warn("GetSoundFileDuration was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function tG(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("VolumeGroupSetVolume was called but is not implemented :("),0}function nG(e,t){return console.warn("VolumeGroupReset was called but is not implemented :("),0}function aG(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetSoundIsPlaying was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function rG(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetSoundIsLoading was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function iG(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("RegisterStackedSound was called but is not implemented :("),0}function sG(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("UnregisterStackedSound was called but is not implemented :("),0}function lG(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("AddWeatherEffect was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function oG(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("RemoveWeatherEffect was called but is not implemented :("),0}function uG(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("EnableWeatherEffect was called but is not implemented :("),0}function cG(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.eN)(t,5),(0,jb.lua_toboolean)(t,6);return console.warn("TerrainDeformCrater was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function dG(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.eN)(t,5),(0,$b.eN)(t,6),(0,$b.hs)(t,7),(0,$b.hs)(t,8),(0,$b.hs)(t,9),(0,jb.lua_toboolean)(t,10);return console.warn("TerrainDeformRipple was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function hG(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5),(0,$b.hs)(t,6),(0,$b.hs)(t,7),(0,$b.hs)(t,8),(0,$b.eN)(t,9),(0,$b.eN)(t,10);return console.warn("TerrainDeformWave was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function fG(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5),(0,$b.eN)(t,6),(0,$b.eN)(t,7);return console.warn("TerrainDeformRandom was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function mG(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("TerrainDeformStop was called but is not implemented :("),0}function pG(e,t){return console.warn("TerrainDeformStopAll was called but is not implemented :("),0}function _G(e,t){(0,$b.dK)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3);return console.warn("AddSpecialEffect was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function gG(e,t){(0,$b.dK)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("AddSpecialEffectLoc was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function bG(e,t){(0,$b.dK)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.dK)(t,3);return console.warn("AddSpecialEffectTarget was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function wG(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DestroyEffect was called but is not implemented :("),0}function vG(e,t){(0,$b.dK)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("AddSpellEffect was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function AG(e,t){(0,$b.dK)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("AddSpellEffectLoc was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function yG(e,t){(0,$b.eN)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("AddSpellEffectById was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function SG(e,t){(0,$b.eN)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("AddSpellEffectByIdLoc was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function TG(e,t){(0,$b.dK)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3),(0,$b.dK)(t,4);return console.warn("AddSpellEffectTarget was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function xG(e,t){(0,$b.eN)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_touserdata)(t,3),(0,$b.dK)(t,4);return console.warn("AddSpellEffectTargetById was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function EG(e,t){(0,$b.dK)(t,1),(0,jb.lua_toboolean)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5),(0,$b.hs)(t,6);return console.warn("AddLightning was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function LG(e,t){(0,$b.dK)(t,1),(0,jb.lua_toboolean)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5),(0,$b.hs)(t,6),(0,$b.hs)(t,7),(0,$b.hs)(t,8);return console.warn("AddLightningEx was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function IG(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DestroyLightning was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function UG(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5),(0,$b.hs)(t,6);return console.warn("MoveLightning was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function RG(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5),(0,$b.hs)(t,6),(0,$b.hs)(t,7),(0,$b.hs)(t,8);return console.warn("MoveLightningEx was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function CG(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetLightningColorA was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function MG(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetLightningColorR was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function BG(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetLightningColorG was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function NG(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetLightningColorB was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function PG(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5);return console.warn("SetLightningColor was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function kG(e,t){(0,$b.dK)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.eN)(t,3);return console.warn("GetAbilityEffect was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function OG(e,t){(0,$b.eN)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.eN)(t,3);return console.warn("GetAbilityEffectById was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function DG(e,t){(0,$b.dK)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("GetAbilitySound was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function FG(e,t){(0,$b.eN)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("GetAbilitySoundById was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function GG(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2);return console.warn("GetTerrainCliffLevel was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function VG(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4);return console.warn("SetWaterBaseColor was called but is not implemented :("),0}function KG(e,t){(0,jb.lua_toboolean)(t,1);return console.warn("SetWaterDeforms was called but is not implemented :("),0}function HG(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2);return console.warn("GetTerrainType was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function zG(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2);return console.warn("GetTerrainVariance was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function jG(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4),(0,$b.eN)(t,5),(0,$b.eN)(t,6);return console.warn("SetTerrainType was called but is not implemented :("),0}function XG(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,jb.lua_touserdata)(t,3);return console.warn("IsTerrainPathable was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function $G(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,jb.lua_touserdata)(t,3),(0,jb.lua_toboolean)(t,4);return console.warn("SetTerrainPathable was called but is not implemented :("),0}function JG(e,t){(0,$b.dK)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,$b.hs)(t,5),(0,$b.hs)(t,6),(0,$b.hs)(t,7),(0,$b.hs)(t,8),(0,$b.hs)(t,9),(0,$b.hs)(t,10),(0,$b.eN)(t,11);return console.warn("CreateImage was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function WG(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DestroyImage was called but is not implemented :("),0}function qG(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("ShowImage was called but is not implemented :("),0}function YG(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2),(0,$b.hs)(t,3);return console.warn("SetImageConstantHeight was called but is not implemented :("),0}function ZG(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("SetImagePosition was called but is not implemented :("),0}function QG(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4),(0,$b.eN)(t,5);return console.warn("SetImageColor was called but is not implemented :("),0}function eV(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetImageRender was called but is not implemented :("),0}function tV(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetImageRenderAlways was called but is not implemented :("),0}function nV(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("SetImageAboveWater was called but is not implemented :("),0}function aV(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("SetImageType was called but is not implemented :("),0}function rV(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.dK)(t,3),(0,$b.eN)(t,4),(0,$b.eN)(t,5),(0,$b.eN)(t,6),(0,$b.eN)(t,7),(0,jb.lua_toboolean)(t,8),(0,jb.lua_toboolean)(t,9);return console.warn("CreateUbersplat was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function iV(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("DestroyUbersplat was called but is not implemented :("),0}function sV(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("ResetUbersplat was called but is not implemented :("),0}function lV(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("FinishUbersplat was called but is not implemented :("),0}function oV(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("ShowUbersplat was called but is not implemented :("),0}function uV(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetUbersplatRender was called but is not implemented :("),0}function cV(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("SetUbersplatRenderAlways was called but is not implemented :("),0}function dV(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4),(0,jb.lua_toboolean)(t,5);return console.warn("SetBlight was called but is not implemented :("),0}function hV(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("SetBlightRect was called but is not implemented :("),0}function fV(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,jb.lua_toboolean)(t,4);return console.warn("SetBlightPoint was called but is not implemented :("),0}function mV(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2),(0,$b.hs)(t,3),(0,jb.lua_toboolean)(t,4);return console.warn("SetBlightLoc was called but is not implemented :("),0}function pV(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("CreateBlightedGoldmine was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function _V(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2);return console.warn("IsPointBlighted was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function gV(e,t){(0,$b.hs)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.eN)(t,4),(0,jb.lua_toboolean)(t,5),(0,$b.dK)(t,6),(0,jb.lua_toboolean)(t,7);return console.warn("SetDoodadAnimation was called but is not implemented :("),0}function bV(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.dK)(t,3),(0,jb.lua_toboolean)(t,4);return console.warn("SetDoodadAnimationRect was called but is not implemented :("),0}function wV(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("StartMeleeAI was called but is not implemented :("),0}function vV(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("StartCampaignAI was called but is not implemented :("),0}function AV(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("CommandAI was called but is not implemented :("),0}function yV(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_toboolean)(t,2);return console.warn("PauseCompAI was called but is not implemented :("),0}function SV(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("GetAIDifficulty was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function TV(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("RemoveGuardPosition was called but is not implemented :("),0}function xV(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("RecycleGuardPosition was called but is not implemented :("),0}function EV(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("RemoveAllGuardPositions was called but is not implemented :("),0}function LV(e,t){(0,$b.dK)(t,1);return console.warn("Cheat was called but is not implemented :("),0}function IV(e,t){return console.warn("IsNoVictoryCheat was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function UV(e,t){return console.warn("IsNoDefeatCheat was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function RV(e,t){(0,$b.dK)(t,1);return console.warn("Preload was called but is not implemented :("),0}function CV(e,t){(0,$b.hs)(t,1);return console.warn("PreloadEnd was called but is not implemented :("),0}function MV(e,t){return console.warn("PreloadStart was called but is not implemented :("),0}function BV(e,t){return console.warn("PreloadRefresh was called but is not implemented :("),0}function NV(e,t){return console.warn("PreloadEndEx was called but is not implemented :("),0}function PV(e,t){return console.warn("PreloadGenClear was called but is not implemented :("),0}function kV(e,t){return console.warn("PreloadGenStart was called but is not implemented :("),0}function OV(e,t){(0,$b.dK)(t,1);return console.warn("PreloadGenEnd was called but is not implemented :("),0}function DV(e,t){(0,$b.dK)(t,1);return console.warn("Preloader was called but is not implemented :("),0}function FV(e,t){(0,$b.dK)(t,1);return console.warn("AutomationTestStart was called but is not implemented :("),0}function GV(e,t){(0,$b.dK)(t,1);return console.warn("AutomationTestEnd was called but is not implemented :("),0}function VV(e,t){return console.warn("BlzGetTriggerPlayerMouseX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function KV(e,t){return console.warn("BlzGetTriggerPlayerMouseY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function HV(e,t){return console.warn("BlzGetTriggerPlayerMousePosition was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function zV(e,t){return console.warn("BlzGetTriggerPlayerMouseButton was called but is not implemented :("),(0,jb.lua_pushlightuserdata)(t,{name:"FAKE"}),1}function jV(e,t){(0,$b.eN)(t,1),(0,$b.dK)(t,2),(0,$b.eN)(t,3);return console.warn("BlzSetAbilityTooltip was called but is not implemented :("),0}function XV(e,t){(0,$b.eN)(t,1),(0,$b.dK)(t,2),(0,$b.eN)(t,3);return console.warn("BlzSetAbilityActivatedTooltip was called but is not implemented :("),0}function $V(e,t){(0,$b.eN)(t,1),(0,$b.dK)(t,2),(0,$b.eN)(t,3);return console.warn("BlzSetAbilityExtendedTooltip was called but is not implemented :("),0}function JV(e,t){(0,$b.eN)(t,1),(0,$b.dK)(t,2),(0,$b.eN)(t,3);return console.warn("BlzSetAbilityActivatedExtendedTooltip was called but is not implemented :("),0}function WV(e,t){(0,$b.eN)(t,1),(0,$b.dK)(t,2),(0,$b.eN)(t,3);return console.warn("BlzSetAbilityResearchTooltip was called but is not implemented :("),0}function qV(e,t){(0,$b.eN)(t,1),(0,$b.dK)(t,2),(0,$b.eN)(t,3);return console.warn("BlzSetAbilityResearchExtendedTooltip was called but is not implemented :("),0}function YV(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2);return console.warn("BlzGetAbilityTooltip was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function ZV(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2);return console.warn("BlzGetAbilityActivatedTooltip was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function QV(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2);return console.warn("BlzGetAbilityExtendedTooltip was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function eK(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2);return console.warn("BlzGetAbilityActivatedExtendedTooltip was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function tK(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2);return console.warn("BlzGetAbilityResearchTooltip was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function nK(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2);return console.warn("BlzGetAbilityResearchExtendedTooltip was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function aK(e,t){(0,$b.eN)(t,1),(0,$b.dK)(t,2);return console.warn("BlzSetAbilityIcon was called but is not implemented :("),0}function rK(e,t){(0,$b.eN)(t,1);return console.warn("BlzGetAbilityIcon was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function iK(e,t){(0,$b.eN)(t,1),(0,$b.dK)(t,2);return console.warn("BlzSetAbilityActivatedIcon was called but is not implemented :("),0}function sK(e,t){(0,$b.eN)(t,1);return console.warn("BlzGetAbilityActivatedIcon was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function lK(e,t){(0,$b.eN)(t,1);return console.warn("BlzGetAbilityPosX was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function oK(e,t){(0,$b.eN)(t,1);return console.warn("BlzGetAbilityPosY was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function uK(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2);return console.warn("BlzSetAbilityPosX was called but is not implemented :("),0}function cK(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2);return console.warn("BlzSetAbilityPosY was called but is not implemented :("),0}function dK(e,t){(0,$b.eN)(t,1);return console.warn("BlzGetAbilityActivatedPosX was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function hK(e,t){(0,$b.eN)(t,1);return console.warn("BlzGetAbilityActivatedPosY was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function fK(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2);return console.warn("BlzSetAbilityActivatedPosX was called but is not implemented :("),0}function mK(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2);return console.warn("BlzSetAbilityActivatedPosY was called but is not implemented :("),0}function pK(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("BlzGetUnitMaxHP was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function _K(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("BlzSetUnitMaxHP was called but is not implemented :("),0}function gK(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("BlzGetUnitMaxMana was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function bK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("BlzSetUnitMaxMana was called but is not implemented :("),0}function wK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("BlzDeleteHeroAbility was called but is not implemented :("),0}function vK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("BlzSetItemName was called but is not implemented :("),0}function AK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("BlzSetItemDescription was called but is not implemented :("),0}function yK(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("BlzGetItemDescription was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function SK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("BlzSetItemTooltip was called but is not implemented :("),0}function TK(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("BlzGetItemTooltip was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function xK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("BlzSetItemExtendedTooltip was called but is not implemented :("),0}function EK(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("BlzGetItemExtendedTooltip was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function LK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("BlzSetItemIconPath was called but is not implemented :("),0}function IK(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("BlzGetItemIconPath was called but is not implemented :("),(0,jb.lua_pushstring)(t,""),1}function UK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("BlzSetUnitName was called but is not implemented :("),0}function RK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.dK)(t,2);return console.warn("BlzSetHeroProperName was called but is not implemented :("),0}function CK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("BlzGetUnitBaseDamage was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function MK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("BlzSetUnitBaseDamage was called but is not implemented :("),0}function BK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("BlzGetUnitDiceNumber was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function NK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("BlzSetUnitDiceNumber was called but is not implemented :("),0}function PK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("BlzGetUnitDiceSides was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function kK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("BlzSetUnitDiceSides was called but is not implemented :("),0}function OK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("BlzGetUnitAttackCooldown was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function DK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.eN)(t,3);return console.warn("BlzSetUnitAttackCooldown was called but is not implemented :("),0}function FK(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("BlzSetSpecialEffectColorByPlayer was called but is not implemented :("),0}function GK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4);return console.warn("BlzSetSpecialEffectColor was called but is not implemented :("),0}function VK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("BlzSetSpecialEffectAlpha was called but is not implemented :("),0}function KK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("BlzSetSpecialEffectScale was called but is not implemented :("),0}function HK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("BlzSetSpecialEffectPosition was called but is not implemented :("),0}function zK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("BlzSetSpecialEffectHeight was called but is not implemented :("),0}function jK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("BlzSetSpecialEffectTimeScale was called but is not implemented :("),0}function XK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("BlzSetSpecialEffectTime was called but is not implemented :("),0}function $K(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2),(0,$b.hs)(t,3),(0,$b.hs)(t,4);return console.warn("BlzSetSpecialEffectOrientation was called but is not implemented :("),0}function JK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("BlzSetSpecialEffectYaw was called but is not implemented :("),0}function WK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("BlzSetSpecialEffectPitch was called but is not implemented :("),0}function qK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("BlzSetSpecialEffectRoll was called but is not implemented :("),0}function YK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("BlzSetSpecialEffectX was called but is not implemented :("),0}function ZK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("BlzSetSpecialEffectY was called but is not implemented :("),0}function QK(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("BlzSetSpecialEffectZ was called but is not implemented :("),0}function eH(e,t){(0,jb.lua_touserdata)(t,1),(0,jb.lua_touserdata)(t,2);return console.warn("BlzSetSpecialEffectPositionLoc was called but is not implemented :("),0}function tH(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("BlzGetLocalSpecialEffectX was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function nH(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("BlzGetLocalSpecialEffectY was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function aH(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("BlzGetLocalSpecialEffectZ was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function rH(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("BlzGetUnitArmor was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function iH(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.hs)(t,2);return console.warn("BlzSetUnitArmor was called but is not implemented :("),0}function sH(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,jb.lua_toboolean)(t,3);return console.warn("BlzUnitHideAbility was called but is not implemented :("),0}function lH(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,jb.lua_toboolean)(t,3),(0,jb.lua_toboolean)(t,4);return console.warn("BlzUnitDisableAbility was called but is not implemented :("),0}function oH(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("BlzUnitCancelTimedLife was called but is not implemented :("),0}function uH(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("BlzIsUnitSelectable was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function cH(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("BlzIsUnitInvulnerable was called but is not implemented :("),(0,jb.lua_pushboolean)(t,!1),1}function dH(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("BlzUnitInterruptAttack was called but is not implemented :("),0}function hH(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("BlzGetUnitCollisionSize was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function fH(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2);return console.warn("BlzGetAbilityManaCost was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function mH(e,t){(0,$b.eN)(t,1),(0,$b.eN)(t,2);return console.warn("BlzGetAbilityCooldown was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function pH(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.hs)(t,4);return console.warn("BlzSetUnitAbilityCooldown was called but is not implemented :("),0}function _H(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("BlzGetUnitAbilityCooldown was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function gH(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("BlzGetUnitAbilityCooldownRemaining was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function bH(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2);return console.warn("BlzEndUnitAbilityCooldown was called but is not implemented :("),0}function wH(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("BlzGetUnitAbilityManaCost was called but is not implemented :("),(0,jb.lua_pushinteger)(t,0),1}function vH(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3),(0,$b.eN)(t,4);return console.warn("BlzSetUnitAbilityManaCost was called but is not implemented :("),0}function AH(e,t){(0,jb.lua_touserdata)(t,1);return console.warn("BlzGetLocalUnitZ was called but is not implemented :("),(0,jb.lua_pushnumber)(t,0),1}function yH(e,t){(0,jb.lua_touserdata)(t,1),(0,$b.eN)(t,2),(0,$b.eN)(t,3);return console.warn("BlzDecPlayerTechResearched was called but is not implemented :("),0}function SH(e,t){(0,$b.hs)(t,1);return console.warn("BlzSetEventDamage was called but is not implemented :("),0}function TH(e){const t=e.L;(0,jb.lua_register)(t,"ConvertRace",rv.bind(null,e)),(0,jb.lua_register)(t,"ConvertAllianceType",iv.bind(null,e)),(0,jb.lua_register)(t,"ConvertRacePref",sv.bind(null,e)),(0,jb.lua_register)(t,"ConvertIGameState",lv.bind(null,e)),(0,jb.lua_register)(t,"ConvertFGameState",ov.bind(null,e)),(0,jb.lua_register)(t,"ConvertPlayerState",uv.bind(null,e)),(0,jb.lua_register)(t,"ConvertPlayerScore",cv.bind(null,e)),(0,jb.lua_register)(t,"ConvertPlayerGameResult",dv.bind(null,e)),(0,jb.lua_register)(t,"ConvertUnitState",hv.bind(null,e)),(0,jb.lua_register)(t,"ConvertAIDifficulty",fv.bind(null,e)),(0,jb.lua_register)(t,"ConvertGameEvent",mv.bind(null,e)),(0,jb.lua_register)(t,"ConvertPlayerEvent",pv.bind(null,e)),(0,jb.lua_register)(t,"ConvertPlayerUnitEvent",_v.bind(null,e)),(0,jb.lua_register)(t,"ConvertWidgetEvent",gv.bind(null,e)),(0,jb.lua_register)(t,"ConvertDialogEvent",bv.bind(null,e)),(0,jb.lua_register)(t,"ConvertUnitEvent",wv.bind(null,e)),(0,jb.lua_register)(t,"ConvertLimitOp",vv.bind(null,e)),(0,jb.lua_register)(t,"ConvertUnitType",Av.bind(null,e)),(0,jb.lua_register)(t,"ConvertGameSpeed",yv.bind(null,e)),(0,jb.lua_register)(t,"ConvertPlacement",Sv.bind(null,e)),(0,jb.lua_register)(t,"ConvertStartLocPrio",Tv.bind(null,e)),(0,jb.lua_register)(t,"ConvertGameDifficulty",xv.bind(null,e)),(0,jb.lua_register)(t,"ConvertGameType",Ev.bind(null,e)),(0,jb.lua_register)(t,"ConvertMapFlag",Lv.bind(null,e)),(0,jb.lua_register)(t,"ConvertMapVisibility",Iv.bind(null,e)),(0,jb.lua_register)(t,"ConvertMapSetting",Uv.bind(null,e)),(0,jb.lua_register)(t,"ConvertMapDensity",Rv.bind(null,e)),(0,jb.lua_register)(t,"ConvertMapControl",Cv.bind(null,e)),(0,jb.lua_register)(t,"ConvertPlayerColor",Mv.bind(null,e)),(0,jb.lua_register)(t,"ConvertPlayerSlotState",Bv.bind(null,e)),(0,jb.lua_register)(t,"ConvertVolumeGroup",Nv.bind(null,e)),(0,jb.lua_register)(t,"ConvertCameraField",Pv.bind(null,e)),(0,jb.lua_register)(t,"ConvertBlendMode",kv.bind(null,e)),(0,jb.lua_register)(t,"ConvertRarityControl",Ov.bind(null,e)),(0,jb.lua_register)(t,"ConvertTexMapFlags",Dv.bind(null,e)),(0,jb.lua_register)(t,"ConvertFogState",Fv.bind(null,e)),(0,jb.lua_register)(t,"ConvertEffectType",Gv.bind(null,e)),(0,jb.lua_register)(t,"ConvertVersion",Vv.bind(null,e)),(0,jb.lua_register)(t,"ConvertItemType",Kv.bind(null,e)),(0,jb.lua_register)(t,"ConvertAttackType",Hv.bind(null,e)),(0,jb.lua_register)(t,"ConvertDamageType",zv.bind(null,e)),(0,jb.lua_register)(t,"ConvertWeaponType",jv.bind(null,e)),(0,jb.lua_register)(t,"ConvertSoundType",Xv.bind(null,e)),(0,jb.lua_register)(t,"ConvertPathingType",$v.bind(null,e)),(0,jb.lua_register)(t,"ConvertMouseButtonType",Jv.bind(null,e)),(0,jb.lua_register)(t,"ConvertAnimType",Wv.bind(null,e)),(0,jb.lua_register)(t,"ConvertSubAnimType",qv.bind(null,e)),(0,jb.lua_register)(t,"OrderId",Yv.bind(null,e)),(0,jb.lua_register)(t,"OrderId2String",Zv.bind(null,e)),(0,jb.lua_register)(t,"UnitId",Qv.bind(null,e)),(0,jb.lua_register)(t,"UnitId2String",eA.bind(null,e)),(0,jb.lua_register)(t,"AbilityId",tA.bind(null,e)),(0,jb.lua_register)(t,"AbilityId2String",nA.bind(null,e)),(0,jb.lua_register)(t,"GetObjectName",aA.bind(null,e)),(0,jb.lua_register)(t,"GetBJMaxPlayers",rA.bind(null,e)),(0,jb.lua_register)(t,"GetBJPlayerNeutralVictim",iA.bind(null,e)),(0,jb.lua_register)(t,"GetBJPlayerNeutralExtra",sA.bind(null,e)),(0,jb.lua_register)(t,"GetBJMaxPlayerSlots",lA.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerNeutralPassive",oA.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerNeutralAggressive",uA.bind(null,e)),(0,jb.lua_register)(t,"Deg2Rad",cA.bind(null,e)),(0,jb.lua_register)(t,"Rad2Deg",dA.bind(null,e)),(0,jb.lua_register)(t,"Sin",hA.bind(null,e)),(0,jb.lua_register)(t,"Cos",fA.bind(null,e)),(0,jb.lua_register)(t,"Tan",mA.bind(null,e)),(0,jb.lua_register)(t,"Asin",pA.bind(null,e)),(0,jb.lua_register)(t,"Acos",_A.bind(null,e)),(0,jb.lua_register)(t,"Atan",gA.bind(null,e)),(0,jb.lua_register)(t,"Atan2",bA.bind(null,e)),(0,jb.lua_register)(t,"SquareRoot",wA.bind(null,e)),(0,jb.lua_register)(t,"Pow",vA.bind(null,e)),(0,jb.lua_register)(t,"I2R",AA.bind(null,e)),(0,jb.lua_register)(t,"R2I",yA.bind(null,e)),(0,jb.lua_register)(t,"I2S",SA.bind(null,e)),(0,jb.lua_register)(t,"R2S",TA.bind(null,e)),(0,jb.lua_register)(t,"R2SW",xA.bind(null,e)),(0,jb.lua_register)(t,"S2I",EA.bind(null,e)),(0,jb.lua_register)(t,"S2R",LA.bind(null,e)),(0,jb.lua_register)(t,"GetHandleId",IA.bind(null,e)),(0,jb.lua_register)(t,"SubString",UA.bind(null,e)),(0,jb.lua_register)(t,"StringLength",RA.bind(null,e)),(0,jb.lua_register)(t,"StringCase",CA.bind(null,e)),(0,jb.lua_register)(t,"StringHash",MA.bind(null,e)),(0,jb.lua_register)(t,"GetLocalizedString",BA.bind(null,e)),(0,jb.lua_register)(t,"GetLocalizedHotkey",NA.bind(null,e)),(0,jb.lua_register)(t,"SetMapName",PA.bind(null,e)),(0,jb.lua_register)(t,"SetMapDescription",kA.bind(null,e)),(0,jb.lua_register)(t,"SetTeams",OA.bind(null,e)),(0,jb.lua_register)(t,"SetPlayers",DA.bind(null,e)),(0,jb.lua_register)(t,"DefineStartLocation",FA.bind(null,e)),(0,jb.lua_register)(t,"DefineStartLocationLoc",GA.bind(null,e)),(0,jb.lua_register)(t,"SetStartLocPrioCount",VA.bind(null,e)),(0,jb.lua_register)(t,"SetStartLocPrio",KA.bind(null,e)),(0,jb.lua_register)(t,"GetStartLocPrioSlot",HA.bind(null,e)),(0,jb.lua_register)(t,"GetStartLocPrio",zA.bind(null,e)),(0,jb.lua_register)(t,"SetGameTypeSupported",jA.bind(null,e)),(0,jb.lua_register)(t,"SetMapFlag",XA.bind(null,e)),(0,jb.lua_register)(t,"SetGamePlacement",$A.bind(null,e)),(0,jb.lua_register)(t,"SetGameSpeed",JA.bind(null,e)),(0,jb.lua_register)(t,"SetGameDifficulty",WA.bind(null,e)),(0,jb.lua_register)(t,"SetResourceDensity",qA.bind(null,e)),(0,jb.lua_register)(t,"SetCreatureDensity",YA.bind(null,e)),(0,jb.lua_register)(t,"GetTeams",ZA.bind(null,e)),(0,jb.lua_register)(t,"GetPlayers",QA.bind(null,e)),(0,jb.lua_register)(t,"IsGameTypeSupported",ey.bind(null,e)),(0,jb.lua_register)(t,"GetGameTypeSelected",ty.bind(null,e)),(0,jb.lua_register)(t,"IsMapFlagSet",ny.bind(null,e)),(0,jb.lua_register)(t,"GetGamePlacement",ay.bind(null,e)),(0,jb.lua_register)(t,"GetGameSpeed",ry.bind(null,e)),(0,jb.lua_register)(t,"GetGameDifficulty",iy.bind(null,e)),(0,jb.lua_register)(t,"GetResourceDensity",sy.bind(null,e)),(0,jb.lua_register)(t,"GetCreatureDensity",ly.bind(null,e)),(0,jb.lua_register)(t,"GetStartLocationX",oy.bind(null,e)),(0,jb.lua_register)(t,"GetStartLocationY",uy.bind(null,e)),(0,jb.lua_register)(t,"GetStartLocationLoc",cy.bind(null,e)),(0,jb.lua_register)(t,"SetPlayerTeam",dy.bind(null,e)),(0,jb.lua_register)(t,"SetPlayerStartLocation",hy.bind(null,e)),(0,jb.lua_register)(t,"ForcePlayerStartLocation",fy.bind(null,e)),(0,jb.lua_register)(t,"SetPlayerColor",my.bind(null,e)),(0,jb.lua_register)(t,"SetPlayerAlliance",py.bind(null,e)),(0,jb.lua_register)(t,"SetPlayerTaxRate",_y.bind(null,e)),(0,jb.lua_register)(t,"SetPlayerRacePreference",gy.bind(null,e)),(0,jb.lua_register)(t,"SetPlayerRaceSelectable",by.bind(null,e)),(0,jb.lua_register)(t,"SetPlayerController",wy.bind(null,e)),(0,jb.lua_register)(t,"SetPlayerName",vy.bind(null,e)),(0,jb.lua_register)(t,"SetPlayerOnScoreScreen",Ay.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerTeam",yy.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerStartLocation",Sy.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerColor",Ty.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerSelectable",xy.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerController",Ey.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerSlotState",Ly.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerTaxRate",Iy.bind(null,e)),(0,jb.lua_register)(t,"IsPlayerRacePrefSet",Uy.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerName",Ry.bind(null,e)),(0,jb.lua_register)(t,"CreateTimer",Cy.bind(null,e)),(0,jb.lua_register)(t,"DestroyTimer",My.bind(null,e)),(0,jb.lua_register)(t,"TimerStart",By.bind(null,e)),(0,jb.lua_register)(t,"TimerGetElapsed",Ny.bind(null,e)),(0,jb.lua_register)(t,"TimerGetRemaining",Py.bind(null,e)),(0,jb.lua_register)(t,"TimerGetTimeout",ky.bind(null,e)),(0,jb.lua_register)(t,"PauseTimer",Oy.bind(null,e)),(0,jb.lua_register)(t,"ResumeTimer",Dy.bind(null,e)),(0,jb.lua_register)(t,"GetExpiredTimer",Fy.bind(null,e)),(0,jb.lua_register)(t,"CreateGroup",Gy.bind(null,e)),(0,jb.lua_register)(t,"DestroyGroup",Vy.bind(null,e)),(0,jb.lua_register)(t,"GroupAddUnit",Ky.bind(null,e)),(0,jb.lua_register)(t,"GroupRemoveUnit",Hy.bind(null,e)),(0,jb.lua_register)(t,"GroupClear",zy.bind(null,e)),(0,jb.lua_register)(t,"GroupEnumUnitsOfType",jy.bind(null,e)),(0,jb.lua_register)(t,"GroupEnumUnitsOfPlayer",Xy.bind(null,e)),(0,jb.lua_register)(t,"GroupEnumUnitsOfTypeCounted",$y.bind(null,e)),(0,jb.lua_register)(t,"GroupEnumUnitsInRect",Jy.bind(null,e)),(0,jb.lua_register)(t,"GroupEnumUnitsInRectCounted",Wy.bind(null,e)),(0,jb.lua_register)(t,"GroupEnumUnitsInRange",qy.bind(null,e)),(0,jb.lua_register)(t,"GroupEnumUnitsInRangeOfLoc",Yy.bind(null,e)),(0,jb.lua_register)(t,"GroupEnumUnitsInRangeCounted",Zy.bind(null,e)),(0,jb.lua_register)(t,"GroupEnumUnitsInRangeOfLocCounted",Qy.bind(null,e)),(0,jb.lua_register)(t,"GroupEnumUnitsSelected",eS.bind(null,e)),(0,jb.lua_register)(t,"GroupImmediateOrder",tS.bind(null,e)),(0,jb.lua_register)(t,"GroupImmediateOrderById",nS.bind(null,e)),(0,jb.lua_register)(t,"GroupPointOrder",aS.bind(null,e)),(0,jb.lua_register)(t,"GroupPointOrderLoc",rS.bind(null,e)),(0,jb.lua_register)(t,"GroupPointOrderById",iS.bind(null,e)),(0,jb.lua_register)(t,"GroupPointOrderByIdLoc",sS.bind(null,e)),(0,jb.lua_register)(t,"GroupTargetOrder",lS.bind(null,e)),(0,jb.lua_register)(t,"GroupTargetOrderById",oS.bind(null,e)),(0,jb.lua_register)(t,"ForGroup",uS.bind(null,e)),(0,jb.lua_register)(t,"FirstOfGroup",cS.bind(null,e)),(0,jb.lua_register)(t,"CreateForce",dS.bind(null,e)),(0,jb.lua_register)(t,"DestroyForce",hS.bind(null,e)),(0,jb.lua_register)(t,"ForceAddPlayer",fS.bind(null,e)),(0,jb.lua_register)(t,"ForceRemovePlayer",mS.bind(null,e)),(0,jb.lua_register)(t,"ForceClear",pS.bind(null,e)),(0,jb.lua_register)(t,"ForceEnumPlayers",_S.bind(null,e)),(0,jb.lua_register)(t,"ForceEnumPlayersCounted",gS.bind(null,e)),(0,jb.lua_register)(t,"ForceEnumAllies",bS.bind(null,e)),(0,jb.lua_register)(t,"ForceEnumEnemies",wS.bind(null,e)),(0,jb.lua_register)(t,"ForForce",vS.bind(null,e)),(0,jb.lua_register)(t,"Rect",AS.bind(null,e)),(0,jb.lua_register)(t,"RectFromLoc",yS.bind(null,e)),(0,jb.lua_register)(t,"RemoveRect",SS.bind(null,e)),(0,jb.lua_register)(t,"SetRect",TS.bind(null,e)),(0,jb.lua_register)(t,"SetRectFromLoc",xS.bind(null,e)),(0,jb.lua_register)(t,"MoveRectTo",ES.bind(null,e)),(0,jb.lua_register)(t,"MoveRectToLoc",LS.bind(null,e)),(0,jb.lua_register)(t,"GetRectCenterX",IS.bind(null,e)),(0,jb.lua_register)(t,"GetRectCenterY",US.bind(null,e)),(0,jb.lua_register)(t,"GetRectMinX",RS.bind(null,e)),(0,jb.lua_register)(t,"GetRectMinY",CS.bind(null,e)),(0,jb.lua_register)(t,"GetRectMaxX",MS.bind(null,e)),(0,jb.lua_register)(t,"GetRectMaxY",BS.bind(null,e)),(0,jb.lua_register)(t,"CreateRegion",NS.bind(null,e)),(0,jb.lua_register)(t,"RemoveRegion",PS.bind(null,e)),(0,jb.lua_register)(t,"RegionAddRect",kS.bind(null,e)),(0,jb.lua_register)(t,"RegionClearRect",OS.bind(null,e)),(0,jb.lua_register)(t,"RegionAddCell",DS.bind(null,e)),(0,jb.lua_register)(t,"RegionAddCellAtLoc",FS.bind(null,e)),(0,jb.lua_register)(t,"RegionClearCell",GS.bind(null,e)),(0,jb.lua_register)(t,"RegionClearCellAtLoc",VS.bind(null,e)),(0,jb.lua_register)(t,"Location",KS.bind(null,e)),(0,jb.lua_register)(t,"RemoveLocation",HS.bind(null,e)),(0,jb.lua_register)(t,"MoveLocation",zS.bind(null,e)),(0,jb.lua_register)(t,"GetLocationX",jS.bind(null,e)),(0,jb.lua_register)(t,"GetLocationY",XS.bind(null,e)),(0,jb.lua_register)(t,"GetLocationZ",$S.bind(null,e)),(0,jb.lua_register)(t,"IsUnitInRegion",JS.bind(null,e)),(0,jb.lua_register)(t,"IsPointInRegion",WS.bind(null,e)),(0,jb.lua_register)(t,"IsLocationInRegion",qS.bind(null,e)),(0,jb.lua_register)(t,"GetWorldBounds",YS.bind(null,e)),(0,jb.lua_register)(t,"CreateTrigger",ZS.bind(null,e)),(0,jb.lua_register)(t,"DestroyTrigger",QS.bind(null,e)),(0,jb.lua_register)(t,"ResetTrigger",eT.bind(null,e)),(0,jb.lua_register)(t,"EnableTrigger",tT.bind(null,e)),(0,jb.lua_register)(t,"DisableTrigger",nT.bind(null,e)),(0,jb.lua_register)(t,"IsTriggerEnabled",aT.bind(null,e)),(0,jb.lua_register)(t,"TriggerWaitOnSleeps",rT.bind(null,e)),(0,jb.lua_register)(t,"IsTriggerWaitOnSleeps",iT.bind(null,e)),(0,jb.lua_register)(t,"GetFilterUnit",sT.bind(null,e)),(0,jb.lua_register)(t,"GetEnumUnit",lT.bind(null,e)),(0,jb.lua_register)(t,"GetFilterDestructable",oT.bind(null,e)),(0,jb.lua_register)(t,"GetEnumDestructable",uT.bind(null,e)),(0,jb.lua_register)(t,"GetFilterItem",cT.bind(null,e)),(0,jb.lua_register)(t,"GetEnumItem",dT.bind(null,e)),(0,jb.lua_register)(t,"GetFilterPlayer",hT.bind(null,e)),(0,jb.lua_register)(t,"GetEnumPlayer",fT.bind(null,e)),(0,jb.lua_register)(t,"GetTriggeringTrigger",mT.bind(null,e)),(0,jb.lua_register)(t,"GetTriggerEventId",pT.bind(null,e)),(0,jb.lua_register)(t,"GetTriggerEvalCount",_T.bind(null,e)),(0,jb.lua_register)(t,"GetTriggerExecCount",gT.bind(null,e)),(0,jb.lua_register)(t,"ExecuteFunc",bT.bind(null,e)),(0,jb.lua_register)(t,"And",wT.bind(null,e)),(0,jb.lua_register)(t,"Or",vT.bind(null,e)),(0,jb.lua_register)(t,"Not",AT.bind(null,e)),(0,jb.lua_register)(t,"Condition",yT.bind(null,e)),(0,jb.lua_register)(t,"DestroyCondition",ST.bind(null,e)),(0,jb.lua_register)(t,"Filter",TT.bind(null,e)),(0,jb.lua_register)(t,"DestroyFilter",xT.bind(null,e)),(0,jb.lua_register)(t,"DestroyBoolExpr",ET.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterVariableEvent",LT.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterTimerEvent",IT.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterTimerExpireEvent",UT.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterGameStateEvent",RT.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterDialogEvent",CT.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterDialogButtonEvent",MT.bind(null,e)),(0,jb.lua_register)(t,"GetEventGameState",BT.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterGameEvent",NT.bind(null,e)),(0,jb.lua_register)(t,"GetWinningPlayer",PT.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterEnterRegion",kT.bind(null,e)),(0,jb.lua_register)(t,"GetTriggeringRegion",OT.bind(null,e)),(0,jb.lua_register)(t,"GetEnteringUnit",DT.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterLeaveRegion",FT.bind(null,e)),(0,jb.lua_register)(t,"GetLeavingUnit",GT.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterTrackableHitEvent",VT.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterTrackableTrackEvent",KT.bind(null,e)),(0,jb.lua_register)(t,"GetTriggeringTrackable",HT.bind(null,e)),(0,jb.lua_register)(t,"GetClickedButton",zT.bind(null,e)),(0,jb.lua_register)(t,"GetClickedDialog",jT.bind(null,e)),(0,jb.lua_register)(t,"GetTournamentFinishSoonTimeRemaining",XT.bind(null,e)),(0,jb.lua_register)(t,"GetTournamentFinishNowRule",$T.bind(null,e)),(0,jb.lua_register)(t,"GetTournamentFinishNowPlayer",JT.bind(null,e)),(0,jb.lua_register)(t,"GetTournamentScore",WT.bind(null,e)),(0,jb.lua_register)(t,"GetSaveBasicFilename",qT.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterPlayerEvent",YT.bind(null,e)),(0,jb.lua_register)(t,"GetTriggerPlayer",ZT.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterPlayerUnitEvent",QT.bind(null,e)),(0,jb.lua_register)(t,"GetLevelingUnit",ex.bind(null,e)),(0,jb.lua_register)(t,"GetLearningUnit",tx.bind(null,e)),(0,jb.lua_register)(t,"GetLearnedSkill",nx.bind(null,e)),(0,jb.lua_register)(t,"GetLearnedSkillLevel",ax.bind(null,e)),(0,jb.lua_register)(t,"GetRevivableUnit",rx.bind(null,e)),(0,jb.lua_register)(t,"GetRevivingUnit",ix.bind(null,e)),(0,jb.lua_register)(t,"GetAttacker",sx.bind(null,e)),(0,jb.lua_register)(t,"GetRescuer",lx.bind(null,e)),(0,jb.lua_register)(t,"GetDyingUnit",ox.bind(null,e)),(0,jb.lua_register)(t,"GetKillingUnit",ux.bind(null,e)),(0,jb.lua_register)(t,"GetDecayingUnit",cx.bind(null,e)),(0,jb.lua_register)(t,"GetConstructingStructure",dx.bind(null,e)),(0,jb.lua_register)(t,"GetCancelledStructure",hx.bind(null,e)),(0,jb.lua_register)(t,"GetConstructedStructure",fx.bind(null,e)),(0,jb.lua_register)(t,"GetResearchingUnit",mx.bind(null,e)),(0,jb.lua_register)(t,"GetResearched",px.bind(null,e)),(0,jb.lua_register)(t,"GetTrainedUnitType",_x.bind(null,e)),(0,jb.lua_register)(t,"GetTrainedUnit",gx.bind(null,e)),(0,jb.lua_register)(t,"GetDetectedUnit",bx.bind(null,e)),(0,jb.lua_register)(t,"GetSummoningUnit",wx.bind(null,e)),(0,jb.lua_register)(t,"GetSummonedUnit",vx.bind(null,e)),(0,jb.lua_register)(t,"GetTransportUnit",Ax.bind(null,e)),(0,jb.lua_register)(t,"GetLoadedUnit",yx.bind(null,e)),(0,jb.lua_register)(t,"GetSellingUnit",Sx.bind(null,e)),(0,jb.lua_register)(t,"GetSoldUnit",Tx.bind(null,e)),(0,jb.lua_register)(t,"GetBuyingUnit",xx.bind(null,e)),(0,jb.lua_register)(t,"GetSoldItem",Ex.bind(null,e)),(0,jb.lua_register)(t,"GetChangingUnit",Lx.bind(null,e)),(0,jb.lua_register)(t,"GetChangingUnitPrevOwner",Ix.bind(null,e)),(0,jb.lua_register)(t,"GetManipulatingUnit",Ux.bind(null,e)),(0,jb.lua_register)(t,"GetManipulatedItem",Rx.bind(null,e)),(0,jb.lua_register)(t,"GetOrderedUnit",Cx.bind(null,e)),(0,jb.lua_register)(t,"GetIssuedOrderId",Mx.bind(null,e)),(0,jb.lua_register)(t,"GetOrderPointX",Bx.bind(null,e)),(0,jb.lua_register)(t,"GetOrderPointY",Nx.bind(null,e)),(0,jb.lua_register)(t,"GetOrderPointLoc",Px.bind(null,e)),(0,jb.lua_register)(t,"GetOrderTarget",kx.bind(null,e)),(0,jb.lua_register)(t,"GetOrderTargetDestructable",Ox.bind(null,e)),(0,jb.lua_register)(t,"GetOrderTargetItem",Dx.bind(null,e)),(0,jb.lua_register)(t,"GetOrderTargetUnit",Fx.bind(null,e)),(0,jb.lua_register)(t,"GetSpellAbilityUnit",Gx.bind(null,e)),(0,jb.lua_register)(t,"GetSpellAbilityId",Vx.bind(null,e)),(0,jb.lua_register)(t,"GetSpellAbility",Kx.bind(null,e)),(0,jb.lua_register)(t,"GetSpellTargetLoc",Hx.bind(null,e)),(0,jb.lua_register)(t,"GetSpellTargetX",zx.bind(null,e)),(0,jb.lua_register)(t,"GetSpellTargetY",jx.bind(null,e)),(0,jb.lua_register)(t,"GetSpellTargetDestructable",Xx.bind(null,e)),(0,jb.lua_register)(t,"GetSpellTargetItem",$x.bind(null,e)),(0,jb.lua_register)(t,"GetSpellTargetUnit",Jx.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterPlayerAllianceChange",Wx.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterPlayerStateEvent",qx.bind(null,e)),(0,jb.lua_register)(t,"GetEventPlayerState",Yx.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterPlayerChatEvent",Zx.bind(null,e)),(0,jb.lua_register)(t,"GetEventPlayerChatString",Qx.bind(null,e)),(0,jb.lua_register)(t,"GetEventPlayerChatStringMatched",eE.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterDeathEvent",tE.bind(null,e)),(0,jb.lua_register)(t,"GetTriggerUnit",nE.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterUnitStateEvent",aE.bind(null,e)),(0,jb.lua_register)(t,"GetEventUnitState",rE.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterUnitEvent",iE.bind(null,e)),(0,jb.lua_register)(t,"GetEventDamage",sE.bind(null,e)),(0,jb.lua_register)(t,"GetEventDamageSource",lE.bind(null,e)),(0,jb.lua_register)(t,"GetEventDetectingPlayer",oE.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterFilterUnitEvent",uE.bind(null,e)),(0,jb.lua_register)(t,"GetEventTargetUnit",cE.bind(null,e)),(0,jb.lua_register)(t,"TriggerRegisterUnitInRange",dE.bind(null,e)),(0,jb.lua_register)(t,"TriggerAddCondition",hE.bind(null,e)),(0,jb.lua_register)(t,"TriggerRemoveCondition",fE.bind(null,e)),(0,jb.lua_register)(t,"TriggerClearConditions",mE.bind(null,e)),(0,jb.lua_register)(t,"TriggerAddAction",pE.bind(null,e)),(0,jb.lua_register)(t,"TriggerRemoveAction",_E.bind(null,e)),(0,jb.lua_register)(t,"TriggerClearActions",gE.bind(null,e)),(0,jb.lua_register)(t,"TriggerSleepAction",bE.bind(null,e)),(0,jb.lua_register)(t,"TriggerWaitForSound",wE.bind(null,e)),(0,jb.lua_register)(t,"TriggerEvaluate",vE.bind(null,e)),(0,jb.lua_register)(t,"TriggerExecute",AE.bind(null,e)),(0,jb.lua_register)(t,"TriggerExecuteWait",yE.bind(null,e)),(0,jb.lua_register)(t,"TriggerSyncStart",SE.bind(null,e)),(0,jb.lua_register)(t,"TriggerSyncReady",TE.bind(null,e)),(0,jb.lua_register)(t,"GetWidgetLife",xE.bind(null,e)),(0,jb.lua_register)(t,"SetWidgetLife",EE.bind(null,e)),(0,jb.lua_register)(t,"GetWidgetX",LE.bind(null,e)),(0,jb.lua_register)(t,"GetWidgetY",IE.bind(null,e)),(0,jb.lua_register)(t,"GetTriggerWidget",UE.bind(null,e)),(0,jb.lua_register)(t,"CreateDestructable",RE.bind(null,e)),(0,jb.lua_register)(t,"CreateDestructableZ",CE.bind(null,e)),(0,jb.lua_register)(t,"CreateDeadDestructable",ME.bind(null,e)),(0,jb.lua_register)(t,"CreateDeadDestructableZ",BE.bind(null,e)),(0,jb.lua_register)(t,"RemoveDestructable",NE.bind(null,e)),(0,jb.lua_register)(t,"KillDestructable",PE.bind(null,e)),(0,jb.lua_register)(t,"SetDestructableInvulnerable",kE.bind(null,e)),(0,jb.lua_register)(t,"IsDestructableInvulnerable",OE.bind(null,e)),(0,jb.lua_register)(t,"EnumDestructablesInRect",DE.bind(null,e)),(0,jb.lua_register)(t,"GetDestructableTypeId",FE.bind(null,e)),(0,jb.lua_register)(t,"GetDestructableX",GE.bind(null,e)),(0,jb.lua_register)(t,"GetDestructableY",VE.bind(null,e)),(0,jb.lua_register)(t,"SetDestructableLife",KE.bind(null,e)),(0,jb.lua_register)(t,"GetDestructableLife",HE.bind(null,e)),(0,jb.lua_register)(t,"SetDestructableMaxLife",zE.bind(null,e)),(0,jb.lua_register)(t,"GetDestructableMaxLife",jE.bind(null,e)),(0,jb.lua_register)(t,"DestructableRestoreLife",XE.bind(null,e)),(0,jb.lua_register)(t,"QueueDestructableAnimation",$E.bind(null,e)),(0,jb.lua_register)(t,"SetDestructableAnimation",JE.bind(null,e)),(0,jb.lua_register)(t,"SetDestructableAnimationSpeed",WE.bind(null,e)),(0,jb.lua_register)(t,"ShowDestructable",qE.bind(null,e)),(0,jb.lua_register)(t,"GetDestructableOccluderHeight",YE.bind(null,e)),(0,jb.lua_register)(t,"SetDestructableOccluderHeight",ZE.bind(null,e)),(0,jb.lua_register)(t,"GetDestructableName",QE.bind(null,e)),(0,jb.lua_register)(t,"GetTriggerDestructable",eL.bind(null,e)),(0,jb.lua_register)(t,"CreateItem",tL.bind(null,e)),(0,jb.lua_register)(t,"RemoveItem",nL.bind(null,e)),(0,jb.lua_register)(t,"GetItemPlayer",aL.bind(null,e)),(0,jb.lua_register)(t,"GetItemTypeId",rL.bind(null,e)),(0,jb.lua_register)(t,"GetItemX",iL.bind(null,e)),(0,jb.lua_register)(t,"GetItemY",sL.bind(null,e)),(0,jb.lua_register)(t,"SetItemPosition",lL.bind(null,e)),(0,jb.lua_register)(t,"SetItemDropOnDeath",oL.bind(null,e)),(0,jb.lua_register)(t,"SetItemDroppable",uL.bind(null,e)),(0,jb.lua_register)(t,"SetItemPawnable",cL.bind(null,e)),(0,jb.lua_register)(t,"SetItemPlayer",dL.bind(null,e)),(0,jb.lua_register)(t,"SetItemInvulnerable",hL.bind(null,e)),(0,jb.lua_register)(t,"IsItemInvulnerable",fL.bind(null,e)),(0,jb.lua_register)(t,"SetItemVisible",mL.bind(null,e)),(0,jb.lua_register)(t,"IsItemVisible",pL.bind(null,e)),(0,jb.lua_register)(t,"IsItemOwned",_L.bind(null,e)),(0,jb.lua_register)(t,"IsItemPowerup",gL.bind(null,e)),(0,jb.lua_register)(t,"IsItemSellable",bL.bind(null,e)),(0,jb.lua_register)(t,"IsItemPawnable",wL.bind(null,e)),(0,jb.lua_register)(t,"IsItemIdPowerup",vL.bind(null,e)),(0,jb.lua_register)(t,"IsItemIdSellable",AL.bind(null,e)),(0,jb.lua_register)(t,"IsItemIdPawnable",yL.bind(null,e)),(0,jb.lua_register)(t,"EnumItemsInRect",SL.bind(null,e)),(0,jb.lua_register)(t,"GetItemLevel",TL.bind(null,e)),(0,jb.lua_register)(t,"GetItemType",xL.bind(null,e)),(0,jb.lua_register)(t,"SetItemDropID",EL.bind(null,e)),(0,jb.lua_register)(t,"GetItemName",LL.bind(null,e)),(0,jb.lua_register)(t,"GetItemCharges",IL.bind(null,e)),(0,jb.lua_register)(t,"SetItemCharges",UL.bind(null,e)),(0,jb.lua_register)(t,"GetItemUserData",RL.bind(null,e)),(0,jb.lua_register)(t,"SetItemUserData",CL.bind(null,e)),(0,jb.lua_register)(t,"CreateUnit",ML.bind(null,e)),(0,jb.lua_register)(t,"CreateUnitByName",BL.bind(null,e)),(0,jb.lua_register)(t,"CreateUnitAtLoc",NL.bind(null,e)),(0,jb.lua_register)(t,"CreateUnitAtLocByName",PL.bind(null,e)),(0,jb.lua_register)(t,"CreateCorpse",kL.bind(null,e)),(0,jb.lua_register)(t,"KillUnit",OL.bind(null,e)),(0,jb.lua_register)(t,"RemoveUnit",DL.bind(null,e)),(0,jb.lua_register)(t,"ShowUnit",FL.bind(null,e)),(0,jb.lua_register)(t,"SetUnitState",GL.bind(null,e)),(0,jb.lua_register)(t,"SetUnitX",VL.bind(null,e)),(0,jb.lua_register)(t,"SetUnitY",KL.bind(null,e)),(0,jb.lua_register)(t,"SetUnitPosition",HL.bind(null,e)),(0,jb.lua_register)(t,"SetUnitPositionLoc",zL.bind(null,e)),(0,jb.lua_register)(t,"SetUnitFacing",jL.bind(null,e)),(0,jb.lua_register)(t,"SetUnitFacingTimed",XL.bind(null,e)),(0,jb.lua_register)(t,"SetUnitMoveSpeed",$L.bind(null,e)),(0,jb.lua_register)(t,"SetUnitFlyHeight",JL.bind(null,e)),(0,jb.lua_register)(t,"SetUnitTurnSpeed",WL.bind(null,e)),(0,jb.lua_register)(t,"SetUnitPropWindow",qL.bind(null,e)),(0,jb.lua_register)(t,"SetUnitAcquireRange",YL.bind(null,e)),(0,jb.lua_register)(t,"SetUnitCreepGuard",ZL.bind(null,e)),(0,jb.lua_register)(t,"GetUnitAcquireRange",QL.bind(null,e)),(0,jb.lua_register)(t,"GetUnitTurnSpeed",eI.bind(null,e)),(0,jb.lua_register)(t,"GetUnitPropWindow",tI.bind(null,e)),(0,jb.lua_register)(t,"GetUnitFlyHeight",nI.bind(null,e)),(0,jb.lua_register)(t,"GetUnitDefaultAcquireRange",aI.bind(null,e)),(0,jb.lua_register)(t,"GetUnitDefaultTurnSpeed",rI.bind(null,e)),(0,jb.lua_register)(t,"GetUnitDefaultPropWindow",iI.bind(null,e)),(0,jb.lua_register)(t,"GetUnitDefaultFlyHeight",sI.bind(null,e)),(0,jb.lua_register)(t,"SetUnitOwner",lI.bind(null,e)),(0,jb.lua_register)(t,"SetUnitColor",oI.bind(null,e)),(0,jb.lua_register)(t,"SetUnitScale",uI.bind(null,e)),(0,jb.lua_register)(t,"SetUnitTimeScale",cI.bind(null,e)),(0,jb.lua_register)(t,"SetUnitBlendTime",dI.bind(null,e)),(0,jb.lua_register)(t,"SetUnitVertexColor",hI.bind(null,e)),(0,jb.lua_register)(t,"QueueUnitAnimation",fI.bind(null,e)),(0,jb.lua_register)(t,"SetUnitAnimation",mI.bind(null,e)),(0,jb.lua_register)(t,"SetUnitAnimationByIndex",pI.bind(null,e)),(0,jb.lua_register)(t,"SetUnitAnimationWithRarity",_I.bind(null,e)),(0,jb.lua_register)(t,"AddUnitAnimationProperties",gI.bind(null,e)),(0,jb.lua_register)(t,"SetUnitLookAt",bI.bind(null,e)),(0,jb.lua_register)(t,"ResetUnitLookAt",wI.bind(null,e)),(0,jb.lua_register)(t,"SetUnitRescuable",vI.bind(null,e)),(0,jb.lua_register)(t,"SetUnitRescueRange",AI.bind(null,e)),(0,jb.lua_register)(t,"SetHeroStr",yI.bind(null,e)),(0,jb.lua_register)(t,"SetHeroAgi",SI.bind(null,e)),(0,jb.lua_register)(t,"SetHeroInt",TI.bind(null,e)),(0,jb.lua_register)(t,"GetHeroStr",xI.bind(null,e)),(0,jb.lua_register)(t,"GetHeroAgi",EI.bind(null,e)),(0,jb.lua_register)(t,"GetHeroInt",LI.bind(null,e)),(0,jb.lua_register)(t,"UnitStripHeroLevel",II.bind(null,e)),(0,jb.lua_register)(t,"GetHeroXP",UI.bind(null,e)),(0,jb.lua_register)(t,"SetHeroXP",RI.bind(null,e)),(0,jb.lua_register)(t,"GetHeroSkillPoints",CI.bind(null,e)),(0,jb.lua_register)(t,"UnitModifySkillPoints",MI.bind(null,e)),(0,jb.lua_register)(t,"AddHeroXP",BI.bind(null,e)),(0,jb.lua_register)(t,"SetHeroLevel",NI.bind(null,e)),(0,jb.lua_register)(t,"GetHeroLevel",PI.bind(null,e)),(0,jb.lua_register)(t,"GetUnitLevel",kI.bind(null,e)),(0,jb.lua_register)(t,"GetHeroProperName",OI.bind(null,e)),(0,jb.lua_register)(t,"SuspendHeroXP",DI.bind(null,e)),(0,jb.lua_register)(t,"IsSuspendedXP",FI.bind(null,e)),(0,jb.lua_register)(t,"SelectHeroSkill",GI.bind(null,e)),(0,jb.lua_register)(t,"GetUnitAbilityLevel",VI.bind(null,e)),(0,jb.lua_register)(t,"DecUnitAbilityLevel",KI.bind(null,e)),(0,jb.lua_register)(t,"IncUnitAbilityLevel",HI.bind(null,e)),(0,jb.lua_register)(t,"SetUnitAbilityLevel",zI.bind(null,e)),(0,jb.lua_register)(t,"ReviveHero",jI.bind(null,e)),(0,jb.lua_register)(t,"ReviveHeroLoc",XI.bind(null,e)),(0,jb.lua_register)(t,"SetUnitExploded",$I.bind(null,e)),(0,jb.lua_register)(t,"SetUnitInvulnerable",JI.bind(null,e)),(0,jb.lua_register)(t,"PauseUnit",WI.bind(null,e)),(0,jb.lua_register)(t,"IsUnitPaused",qI.bind(null,e)),(0,jb.lua_register)(t,"SetUnitPathing",YI.bind(null,e)),(0,jb.lua_register)(t,"ClearSelection",ZI.bind(null,e)),(0,jb.lua_register)(t,"SelectUnit",QI.bind(null,e)),(0,jb.lua_register)(t,"GetUnitPointValue",eU.bind(null,e)),(0,jb.lua_register)(t,"GetUnitPointValueByType",tU.bind(null,e)),(0,jb.lua_register)(t,"UnitAddItem",nU.bind(null,e)),(0,jb.lua_register)(t,"UnitAddItemById",aU.bind(null,e)),(0,jb.lua_register)(t,"UnitAddItemToSlotById",rU.bind(null,e)),(0,jb.lua_register)(t,"UnitRemoveItem",iU.bind(null,e)),(0,jb.lua_register)(t,"UnitRemoveItemFromSlot",sU.bind(null,e)),(0,jb.lua_register)(t,"UnitHasItem",lU.bind(null,e)),(0,jb.lua_register)(t,"UnitItemInSlot",oU.bind(null,e)),(0,jb.lua_register)(t,"UnitInventorySize",uU.bind(null,e)),(0,jb.lua_register)(t,"UnitDropItemPoint",cU.bind(null,e)),(0,jb.lua_register)(t,"UnitDropItemSlot",dU.bind(null,e)),(0,jb.lua_register)(t,"UnitDropItemTarget",hU.bind(null,e)),(0,jb.lua_register)(t,"UnitUseItem",fU.bind(null,e)),(0,jb.lua_register)(t,"UnitUseItemPoint",mU.bind(null,e)),(0,jb.lua_register)(t,"UnitUseItemTarget",pU.bind(null,e)),(0,jb.lua_register)(t,"GetUnitX",_U.bind(null,e)),(0,jb.lua_register)(t,"GetUnitY",gU.bind(null,e)),(0,jb.lua_register)(t,"GetUnitLoc",bU.bind(null,e)),(0,jb.lua_register)(t,"GetUnitFacing",wU.bind(null,e)),(0,jb.lua_register)(t,"GetUnitMoveSpeed",vU.bind(null,e)),(0,jb.lua_register)(t,"GetUnitDefaultMoveSpeed",AU.bind(null,e)),(0,jb.lua_register)(t,"GetUnitState",yU.bind(null,e)),(0,jb.lua_register)(t,"GetOwningPlayer",SU.bind(null,e)),(0,jb.lua_register)(t,"GetUnitTypeId",TU.bind(null,e)),(0,jb.lua_register)(t,"GetUnitRace",xU.bind(null,e)),(0,jb.lua_register)(t,"GetUnitName",EU.bind(null,e)),(0,jb.lua_register)(t,"GetUnitFoodUsed",LU.bind(null,e)),(0,jb.lua_register)(t,"GetUnitFoodMade",IU.bind(null,e)),(0,jb.lua_register)(t,"GetFoodMade",UU.bind(null,e)),(0,jb.lua_register)(t,"GetFoodUsed",RU.bind(null,e)),(0,jb.lua_register)(t,"SetUnitUseFood",CU.bind(null,e)),(0,jb.lua_register)(t,"GetUnitRallyPoint",MU.bind(null,e)),(0,jb.lua_register)(t,"GetUnitRallyUnit",BU.bind(null,e)),(0,jb.lua_register)(t,"GetUnitRallyDestructable",NU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitInGroup",PU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitInForce",kU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitOwnedByPlayer",OU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitAlly",DU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitEnemy",FU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitVisible",GU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitDetected",VU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitInvisible",KU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitFogged",HU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitMasked",zU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitSelected",jU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitRace",XU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitType",$U.bind(null,e)),(0,jb.lua_register)(t,"IsUnit",JU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitInRange",WU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitInRangeXY",qU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitInRangeLoc",YU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitHidden",ZU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitIllusion",QU.bind(null,e)),(0,jb.lua_register)(t,"IsUnitInTransport",eR.bind(null,e)),(0,jb.lua_register)(t,"IsUnitLoaded",tR.bind(null,e)),(0,jb.lua_register)(t,"IsHeroUnitId",nR.bind(null,e)),(0,jb.lua_register)(t,"IsUnitIdType",aR.bind(null,e)),(0,jb.lua_register)(t,"UnitShareVision",rR.bind(null,e)),(0,jb.lua_register)(t,"UnitSuspendDecay",iR.bind(null,e)),(0,jb.lua_register)(t,"UnitAddType",sR.bind(null,e)),(0,jb.lua_register)(t,"UnitRemoveType",lR.bind(null,e)),(0,jb.lua_register)(t,"UnitAddAbility",oR.bind(null,e)),(0,jb.lua_register)(t,"UnitRemoveAbility",uR.bind(null,e)),(0,jb.lua_register)(t,"UnitMakeAbilityPermanent",cR.bind(null,e)),(0,jb.lua_register)(t,"UnitRemoveBuffs",dR.bind(null,e)),(0,jb.lua_register)(t,"UnitRemoveBuffsEx",hR.bind(null,e)),(0,jb.lua_register)(t,"UnitHasBuffsEx",fR.bind(null,e)),(0,jb.lua_register)(t,"UnitCountBuffsEx",mR.bind(null,e)),(0,jb.lua_register)(t,"UnitAddSleep",pR.bind(null,e)),(0,jb.lua_register)(t,"UnitCanSleep",_R.bind(null,e)),(0,jb.lua_register)(t,"UnitAddSleepPerm",gR.bind(null,e)),(0,jb.lua_register)(t,"UnitCanSleepPerm",bR.bind(null,e)),(0,jb.lua_register)(t,"UnitIsSleeping",wR.bind(null,e)),(0,jb.lua_register)(t,"UnitWakeUp",vR.bind(null,e)),(0,jb.lua_register)(t,"UnitApplyTimedLife",AR.bind(null,e)),(0,jb.lua_register)(t,"UnitIgnoreAlarm",yR.bind(null,e)),(0,jb.lua_register)(t,"UnitIgnoreAlarmToggled",SR.bind(null,e)),(0,jb.lua_register)(t,"UnitResetCooldown",TR.bind(null,e)),(0,jb.lua_register)(t,"UnitSetConstructionProgress",xR.bind(null,e)),(0,jb.lua_register)(t,"UnitSetUpgradeProgress",ER.bind(null,e)),(0,jb.lua_register)(t,"UnitPauseTimedLife",LR.bind(null,e)),(0,jb.lua_register)(t,"UnitSetUsesAltIcon",IR.bind(null,e)),(0,jb.lua_register)(t,"UnitDamagePoint",UR.bind(null,e)),(0,jb.lua_register)(t,"UnitDamageTarget",RR.bind(null,e)),(0,jb.lua_register)(t,"IssueImmediateOrder",CR.bind(null,e)),(0,jb.lua_register)(t,"IssueImmediateOrderById",MR.bind(null,e)),(0,jb.lua_register)(t,"IssuePointOrder",BR.bind(null,e)),(0,jb.lua_register)(t,"IssuePointOrderLoc",NR.bind(null,e)),(0,jb.lua_register)(t,"IssuePointOrderById",PR.bind(null,e)),(0,jb.lua_register)(t,"IssuePointOrderByIdLoc",kR.bind(null,e)),(0,jb.lua_register)(t,"IssueTargetOrder",OR.bind(null,e)),(0,jb.lua_register)(t,"IssueTargetOrderById",DR.bind(null,e)),(0,jb.lua_register)(t,"IssueInstantPointOrder",FR.bind(null,e)),(0,jb.lua_register)(t,"IssueInstantPointOrderById",GR.bind(null,e)),(0,jb.lua_register)(t,"IssueInstantTargetOrder",VR.bind(null,e)),(0,jb.lua_register)(t,"IssueInstantTargetOrderById",KR.bind(null,e)),(0,jb.lua_register)(t,"IssueBuildOrder",HR.bind(null,e)),(0,jb.lua_register)(t,"IssueBuildOrderById",zR.bind(null,e)),(0,jb.lua_register)(t,"IssueNeutralImmediateOrder",jR.bind(null,e)),(0,jb.lua_register)(t,"IssueNeutralImmediateOrderById",XR.bind(null,e)),(0,jb.lua_register)(t,"IssueNeutralPointOrder",$R.bind(null,e)),(0,jb.lua_register)(t,"IssueNeutralPointOrderById",JR.bind(null,e)),(0,jb.lua_register)(t,"IssueNeutralTargetOrder",WR.bind(null,e)),(0,jb.lua_register)(t,"IssueNeutralTargetOrderById",qR.bind(null,e)),(0,jb.lua_register)(t,"GetUnitCurrentOrder",YR.bind(null,e)),(0,jb.lua_register)(t,"SetResourceAmount",ZR.bind(null,e)),(0,jb.lua_register)(t,"AddResourceAmount",QR.bind(null,e)),(0,jb.lua_register)(t,"GetResourceAmount",eC.bind(null,e)),(0,jb.lua_register)(t,"WaygateGetDestinationX",tC.bind(null,e)),(0,jb.lua_register)(t,"WaygateGetDestinationY",nC.bind(null,e)),(0,jb.lua_register)(t,"WaygateSetDestination",aC.bind(null,e)),(0,jb.lua_register)(t,"WaygateActivate",rC.bind(null,e)),(0,jb.lua_register)(t,"WaygateIsActive",iC.bind(null,e)),(0,jb.lua_register)(t,"AddItemToAllStock",sC.bind(null,e)),(0,jb.lua_register)(t,"AddItemToStock",lC.bind(null,e)),(0,jb.lua_register)(t,"AddUnitToAllStock",oC.bind(null,e)),(0,jb.lua_register)(t,"AddUnitToStock",uC.bind(null,e)),(0,jb.lua_register)(t,"RemoveItemFromAllStock",cC.bind(null,e)),(0,jb.lua_register)(t,"RemoveItemFromStock",dC.bind(null,e)),(0,jb.lua_register)(t,"RemoveUnitFromAllStock",hC.bind(null,e)),(0,jb.lua_register)(t,"RemoveUnitFromStock",fC.bind(null,e)),(0,jb.lua_register)(t,"SetAllItemTypeSlots",mC.bind(null,e)),(0,jb.lua_register)(t,"SetAllUnitTypeSlots",pC.bind(null,e)),(0,jb.lua_register)(t,"SetItemTypeSlots",_C.bind(null,e)),(0,jb.lua_register)(t,"SetUnitTypeSlots",gC.bind(null,e)),(0,jb.lua_register)(t,"GetUnitUserData",bC.bind(null,e)),(0,jb.lua_register)(t,"SetUnitUserData",wC.bind(null,e)),(0,jb.lua_register)(t,"Player",vC.bind(null,e)),(0,jb.lua_register)(t,"GetLocalPlayer",AC.bind(null,e)),(0,jb.lua_register)(t,"IsPlayerAlly",yC.bind(null,e)),(0,jb.lua_register)(t,"IsPlayerEnemy",SC.bind(null,e)),(0,jb.lua_register)(t,"IsPlayerInForce",TC.bind(null,e)),(0,jb.lua_register)(t,"IsPlayerObserver",xC.bind(null,e)),(0,jb.lua_register)(t,"IsVisibleToPlayer",EC.bind(null,e)),(0,jb.lua_register)(t,"IsLocationVisibleToPlayer",LC.bind(null,e)),(0,jb.lua_register)(t,"IsFoggedToPlayer",IC.bind(null,e)),(0,jb.lua_register)(t,"IsLocationFoggedToPlayer",UC.bind(null,e)),(0,jb.lua_register)(t,"IsMaskedToPlayer",RC.bind(null,e)),(0,jb.lua_register)(t,"IsLocationMaskedToPlayer",CC.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerRace",MC.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerId",BC.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerUnitCount",NC.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerTypedUnitCount",PC.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerStructureCount",kC.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerState",OC.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerScore",DC.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerAlliance",FC.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerHandicap",GC.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerHandicapXP",VC.bind(null,e)),(0,jb.lua_register)(t,"SetPlayerHandicap",KC.bind(null,e)),(0,jb.lua_register)(t,"SetPlayerHandicapXP",HC.bind(null,e)),(0,jb.lua_register)(t,"SetPlayerTechMaxAllowed",zC.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerTechMaxAllowed",jC.bind(null,e)),(0,jb.lua_register)(t,"AddPlayerTechResearched",XC.bind(null,e)),(0,jb.lua_register)(t,"SetPlayerTechResearched",$C.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerTechResearched",JC.bind(null,e)),(0,jb.lua_register)(t,"GetPlayerTechCount",WC.bind(null,e)),(0,jb.lua_register)(t,"SetPlayerUnitsOwner",qC.bind(null,e)),(0,jb.lua_register)(t,"CripplePlayer",YC.bind(null,e)),(0,jb.lua_register)(t,"SetPlayerAbilityAvailable",ZC.bind(null,e)),(0,jb.lua_register)(t,"SetPlayerState",QC.bind(null,e)),(0,jb.lua_register)(t,"RemovePlayer",eM.bind(null,e)),(0,jb.lua_register)(t,"CachePlayerHeroData",tM.bind(null,e)),(0,jb.lua_register)(t,"SetFogStateRect",nM.bind(null,e)),(0,jb.lua_register)(t,"SetFogStateRadius",aM.bind(null,e)),(0,jb.lua_register)(t,"SetFogStateRadiusLoc",rM.bind(null,e)),(0,jb.lua_register)(t,"FogMaskEnable",iM.bind(null,e)),(0,jb.lua_register)(t,"IsFogMaskEnabled",sM.bind(null,e)),(0,jb.lua_register)(t,"FogEnable",lM.bind(null,e)),(0,jb.lua_register)(t,"IsFogEnabled",oM.bind(null,e)),(0,jb.lua_register)(t,"CreateFogModifierRect",uM.bind(null,e)),(0,jb.lua_register)(t,"CreateFogModifierRadius",cM.bind(null,e)),(0,jb.lua_register)(t,"CreateFogModifierRadiusLoc",dM.bind(null,e)),(0,jb.lua_register)(t,"DestroyFogModifier",hM.bind(null,e)),(0,jb.lua_register)(t,"FogModifierStart",fM.bind(null,e)),(0,jb.lua_register)(t,"FogModifierStop",mM.bind(null,e)),(0,jb.lua_register)(t,"VersionGet",pM.bind(null,e)),(0,jb.lua_register)(t,"VersionCompatible",_M.bind(null,e)),(0,jb.lua_register)(t,"VersionSupported",gM.bind(null,e)),(0,jb.lua_register)(t,"EndGame",bM.bind(null,e)),(0,jb.lua_register)(t,"ChangeLevel",wM.bind(null,e)),(0,jb.lua_register)(t,"RestartGame",vM.bind(null,e)),(0,jb.lua_register)(t,"ReloadGame",AM.bind(null,e)),(0,jb.lua_register)(t,"SetCampaignMenuRace",yM.bind(null,e)),(0,jb.lua_register)(t,"SetCampaignMenuRaceEx",SM.bind(null,e)),(0,jb.lua_register)(t,"ForceCampaignSelectScreen",TM.bind(null,e)),(0,jb.lua_register)(t,"LoadGame",xM.bind(null,e)),(0,jb.lua_register)(t,"SaveGame",EM.bind(null,e)),(0,jb.lua_register)(t,"RenameSaveDirectory",LM.bind(null,e)),(0,jb.lua_register)(t,"RemoveSaveDirectory",IM.bind(null,e)),(0,jb.lua_register)(t,"CopySaveGame",UM.bind(null,e)),(0,jb.lua_register)(t,"SaveGameExists",RM.bind(null,e)),(0,jb.lua_register)(t,"SyncSelections",CM.bind(null,e)),(0,jb.lua_register)(t,"SetFloatGameState",MM.bind(null,e)),(0,jb.lua_register)(t,"GetFloatGameState",BM.bind(null,e)),(0,jb.lua_register)(t,"SetIntegerGameState",NM.bind(null,e)),(0,jb.lua_register)(t,"GetIntegerGameState",PM.bind(null,e)),(0,jb.lua_register)(t,"SetTutorialCleared",kM.bind(null,e)),(0,jb.lua_register)(t,"SetMissionAvailable",OM.bind(null,e)),(0,jb.lua_register)(t,"SetCampaignAvailable",DM.bind(null,e)),(0,jb.lua_register)(t,"SetOpCinematicAvailable",FM.bind(null,e)),(0,jb.lua_register)(t,"SetEdCinematicAvailable",GM.bind(null,e)),(0,jb.lua_register)(t,"GetDefaultDifficulty",VM.bind(null,e)),(0,jb.lua_register)(t,"SetDefaultDifficulty",KM.bind(null,e)),(0,jb.lua_register)(t,"SetCustomCampaignButtonVisible",HM.bind(null,e)),(0,jb.lua_register)(t,"GetCustomCampaignButtonVisible",zM.bind(null,e)),(0,jb.lua_register)(t,"DoNotSaveReplay",jM.bind(null,e)),(0,jb.lua_register)(t,"DialogCreate",XM.bind(null,e)),(0,jb.lua_register)(t,"DialogDestroy",$M.bind(null,e)),(0,jb.lua_register)(t,"DialogClear",JM.bind(null,e)),(0,jb.lua_register)(t,"DialogSetMessage",WM.bind(null,e)),(0,jb.lua_register)(t,"DialogAddButton",qM.bind(null,e)),(0,jb.lua_register)(t,"DialogAddQuitButton",YM.bind(null,e)),(0,jb.lua_register)(t,"DialogDisplay",ZM.bind(null,e)),(0,jb.lua_register)(t,"ReloadGameCachesFromDisk",QM.bind(null,e)),(0,jb.lua_register)(t,"InitGameCache",eB.bind(null,e)),(0,jb.lua_register)(t,"SaveGameCache",tB.bind(null,e)),(0,jb.lua_register)(t,"StoreInteger",nB.bind(null,e)),(0,jb.lua_register)(t,"StoreReal",aB.bind(null,e)),(0,jb.lua_register)(t,"StoreBoolean",rB.bind(null,e)),(0,jb.lua_register)(t,"StoreUnit",iB.bind(null,e)),(0,jb.lua_register)(t,"StoreString",sB.bind(null,e)),(0,jb.lua_register)(t,"SyncStoredInteger",lB.bind(null,e)),(0,jb.lua_register)(t,"SyncStoredReal",oB.bind(null,e)),(0,jb.lua_register)(t,"SyncStoredBoolean",uB.bind(null,e)),(0,jb.lua_register)(t,"SyncStoredUnit",cB.bind(null,e)),(0,jb.lua_register)(t,"SyncStoredString",dB.bind(null,e)),(0,jb.lua_register)(t,"HaveStoredInteger",hB.bind(null,e)),(0,jb.lua_register)(t,"HaveStoredReal",fB.bind(null,e)),(0,jb.lua_register)(t,"HaveStoredBoolean",mB.bind(null,e)),(0,jb.lua_register)(t,"HaveStoredUnit",pB.bind(null,e)),(0,jb.lua_register)(t,"HaveStoredString",_B.bind(null,e)),(0,jb.lua_register)(t,"FlushGameCache",gB.bind(null,e)),(0,jb.lua_register)(t,"FlushStoredMission",bB.bind(null,e)),(0,jb.lua_register)(t,"FlushStoredInteger",wB.bind(null,e)),(0,jb.lua_register)(t,"FlushStoredReal",vB.bind(null,e)),(0,jb.lua_register)(t,"FlushStoredBoolean",AB.bind(null,e)),(0,jb.lua_register)(t,"FlushStoredUnit",yB.bind(null,e)),(0,jb.lua_register)(t,"FlushStoredString",SB.bind(null,e)),(0,jb.lua_register)(t,"GetStoredInteger",TB.bind(null,e)),(0,jb.lua_register)(t,"GetStoredReal",xB.bind(null,e)),(0,jb.lua_register)(t,"GetStoredBoolean",EB.bind(null,e)),(0,jb.lua_register)(t,"GetStoredString",LB.bind(null,e)),(0,jb.lua_register)(t,"RestoreUnit",IB.bind(null,e)),(0,jb.lua_register)(t,"InitHashtable",UB.bind(null,e)),(0,jb.lua_register)(t,"SaveInteger",RB.bind(null,e)),(0,jb.lua_register)(t,"SaveReal",CB.bind(null,e)),(0,jb.lua_register)(t,"SaveBoolean",MB.bind(null,e)),(0,jb.lua_register)(t,"SaveStr",BB.bind(null,e)),(0,jb.lua_register)(t,"SavePlayerHandle",NB.bind(null,e)),(0,jb.lua_register)(t,"SaveWidgetHandle",PB.bind(null,e)),(0,jb.lua_register)(t,"SaveDestructableHandle",kB.bind(null,e)),(0,jb.lua_register)(t,"SaveItemHandle",OB.bind(null,e)),(0,jb.lua_register)(t,"SaveUnitHandle",DB.bind(null,e)),(0,jb.lua_register)(t,"SaveAbilityHandle",FB.bind(null,e)),(0,jb.lua_register)(t,"SaveTimerHandle",GB.bind(null,e)),(0,jb.lua_register)(t,"SaveTriggerHandle",VB.bind(null,e)),(0,jb.lua_register)(t,"SaveTriggerConditionHandle",KB.bind(null,e)),(0,jb.lua_register)(t,"SaveTriggerActionHandle",HB.bind(null,e)),(0,jb.lua_register)(t,"SaveTriggerEventHandle",zB.bind(null,e)),(0,jb.lua_register)(t,"SaveForceHandle",jB.bind(null,e)),(0,jb.lua_register)(t,"SaveGroupHandle",XB.bind(null,e)),(0,jb.lua_register)(t,"SaveLocationHandle",$B.bind(null,e)),(0,jb.lua_register)(t,"SaveRectHandle",JB.bind(null,e)),(0,jb.lua_register)(t,"SaveBooleanExprHandle",WB.bind(null,e)),(0,jb.lua_register)(t,"SaveSoundHandle",qB.bind(null,e)),(0,jb.lua_register)(t,"SaveEffectHandle",YB.bind(null,e)),(0,jb.lua_register)(t,"SaveUnitPoolHandle",ZB.bind(null,e)),(0,jb.lua_register)(t,"SaveItemPoolHandle",QB.bind(null,e)),(0,jb.lua_register)(t,"SaveQuestHandle",eN.bind(null,e)),(0,jb.lua_register)(t,"SaveQuestItemHandle",tN.bind(null,e)),(0,jb.lua_register)(t,"SaveDefeatConditionHandle",nN.bind(null,e)),(0,jb.lua_register)(t,"SaveTimerDialogHandle",aN.bind(null,e)),(0,jb.lua_register)(t,"SaveLeaderboardHandle",rN.bind(null,e)),(0,jb.lua_register)(t,"SaveMultiboardHandle",iN.bind(null,e)),(0,jb.lua_register)(t,"SaveMultiboardItemHandle",sN.bind(null,e)),(0,jb.lua_register)(t,"SaveTrackableHandle",lN.bind(null,e)),(0,jb.lua_register)(t,"SaveDialogHandle",oN.bind(null,e)),(0,jb.lua_register)(t,"SaveButtonHandle",uN.bind(null,e)),(0,jb.lua_register)(t,"SaveTextTagHandle",cN.bind(null,e)),(0,jb.lua_register)(t,"SaveLightningHandle",dN.bind(null,e)),(0,jb.lua_register)(t,"SaveImageHandle",hN.bind(null,e)),(0,jb.lua_register)(t,"SaveUbersplatHandle",fN.bind(null,e)),(0,jb.lua_register)(t,"SaveRegionHandle",mN.bind(null,e)),(0,jb.lua_register)(t,"SaveFogStateHandle",pN.bind(null,e)),(0,jb.lua_register)(t,"SaveFogModifierHandle",_N.bind(null,e)),(0,jb.lua_register)(t,"SaveAgentHandle",gN.bind(null,e)),(0,jb.lua_register)(t,"SaveHashtableHandle",bN.bind(null,e)),(0,jb.lua_register)(t,"LoadInteger",wN.bind(null,e)),(0,jb.lua_register)(t,"LoadReal",vN.bind(null,e)),(0,jb.lua_register)(t,"LoadBoolean",AN.bind(null,e)),(0,jb.lua_register)(t,"LoadStr",yN.bind(null,e)),(0,jb.lua_register)(t,"LoadPlayerHandle",SN.bind(null,e)),(0,jb.lua_register)(t,"LoadWidgetHandle",TN.bind(null,e)),(0,jb.lua_register)(t,"LoadDestructableHandle",xN.bind(null,e)),(0,jb.lua_register)(t,"LoadItemHandle",EN.bind(null,e)),(0,jb.lua_register)(t,"LoadUnitHandle",LN.bind(null,e)),(0,jb.lua_register)(t,"LoadAbilityHandle",IN.bind(null,e)),(0,jb.lua_register)(t,"LoadTimerHandle",UN.bind(null,e)),(0,jb.lua_register)(t,"LoadTriggerHandle",RN.bind(null,e)),(0,jb.lua_register)(t,"LoadTriggerConditionHandle",CN.bind(null,e)),(0,jb.lua_register)(t,"LoadTriggerActionHandle",MN.bind(null,e)),(0,jb.lua_register)(t,"LoadTriggerEventHandle",BN.bind(null,e)),(0,jb.lua_register)(t,"LoadForceHandle",NN.bind(null,e)),(0,jb.lua_register)(t,"LoadGroupHandle",PN.bind(null,e)),(0,jb.lua_register)(t,"LoadLocationHandle",kN.bind(null,e)),(0,jb.lua_register)(t,"LoadRectHandle",ON.bind(null,e)),(0,jb.lua_register)(t,"LoadBooleanExprHandle",DN.bind(null,e)),(0,jb.lua_register)(t,"LoadSoundHandle",FN.bind(null,e)),(0,jb.lua_register)(t,"LoadEffectHandle",GN.bind(null,e)),(0,jb.lua_register)(t,"LoadUnitPoolHandle",VN.bind(null,e)),(0,jb.lua_register)(t,"LoadItemPoolHandle",KN.bind(null,e)),(0,jb.lua_register)(t,"LoadQuestHandle",HN.bind(null,e)),(0,jb.lua_register)(t,"LoadQuestItemHandle",zN.bind(null,e)),(0,jb.lua_register)(t,"LoadDefeatConditionHandle",jN.bind(null,e)),(0,jb.lua_register)(t,"LoadTimerDialogHandle",XN.bind(null,e)),(0,jb.lua_register)(t,"LoadLeaderboardHandle",$N.bind(null,e));(0,jb.lua_register)(t,"LoadMultiboardHandle",JN.bind(null,e)),(0,jb.lua_register)(t,"LoadMultiboardItemHandle",WN.bind(null,e)),(0,jb.lua_register)(t,"LoadTrackableHandle",qN.bind(null,e)),(0,jb.lua_register)(t,"LoadDialogHandle",YN.bind(null,e)),(0,jb.lua_register)(t,"LoadButtonHandle",ZN.bind(null,e)),(0,jb.lua_register)(t,"LoadTextTagHandle",QN.bind(null,e)),(0,jb.lua_register)(t,"LoadLightningHandle",eP.bind(null,e)),(0,jb.lua_register)(t,"LoadImageHandle",tP.bind(null,e)),(0,jb.lua_register)(t,"LoadUbersplatHandle",nP.bind(null,e)),(0,jb.lua_register)(t,"LoadRegionHandle",aP.bind(null,e)),(0,jb.lua_register)(t,"LoadFogStateHandle",rP.bind(null,e)),(0,jb.lua_register)(t,"LoadFogModifierHandle",iP.bind(null,e)),(0,jb.lua_register)(t,"LoadHashtableHandle",sP.bind(null,e)),(0,jb.lua_register)(t,"HaveSavedInteger",lP.bind(null,e)),(0,jb.lua_register)(t,"HaveSavedReal",oP.bind(null,e)),(0,jb.lua_register)(t,"HaveSavedBoolean",uP.bind(null,e)),(0,jb.lua_register)(t,"HaveSavedString",cP.bind(null,e)),(0,jb.lua_register)(t,"HaveSavedHandle",dP.bind(null,e)),(0,jb.lua_register)(t,"RemoveSavedInteger",hP.bind(null,e)),(0,jb.lua_register)(t,"RemoveSavedReal",fP.bind(null,e)),(0,jb.lua_register)(t,"RemoveSavedBoolean",mP.bind(null,e)),(0,jb.lua_register)(t,"RemoveSavedString",pP.bind(null,e)),(0,jb.lua_register)(t,"RemoveSavedHandle",_P.bind(null,e)),(0,jb.lua_register)(t,"FlushParentHashtable",gP.bind(null,e)),(0,jb.lua_register)(t,"FlushChildHashtable",bP.bind(null,e)),(0,jb.lua_register)(t,"GetRandomInt",wP.bind(null,e)),(0,jb.lua_register)(t,"GetRandomReal",vP.bind(null,e)),(0,jb.lua_register)(t,"CreateUnitPool",AP.bind(null,e)),(0,jb.lua_register)(t,"DestroyUnitPool",yP.bind(null,e)),(0,jb.lua_register)(t,"UnitPoolAddUnitType",SP.bind(null,e)),(0,jb.lua_register)(t,"UnitPoolRemoveUnitType",TP.bind(null,e)),(0,jb.lua_register)(t,"PlaceRandomUnit",xP.bind(null,e)),(0,jb.lua_register)(t,"CreateItemPool",EP.bind(null,e)),(0,jb.lua_register)(t,"DestroyItemPool",LP.bind(null,e)),(0,jb.lua_register)(t,"ItemPoolAddItemType",IP.bind(null,e)),(0,jb.lua_register)(t,"ItemPoolRemoveItemType",UP.bind(null,e)),(0,jb.lua_register)(t,"PlaceRandomItem",RP.bind(null,e)),(0,jb.lua_register)(t,"ChooseRandomCreep",CP.bind(null,e)),(0,jb.lua_register)(t,"ChooseRandomNPBuilding",MP.bind(null,e)),(0,jb.lua_register)(t,"ChooseRandomItem",BP.bind(null,e)),(0,jb.lua_register)(t,"ChooseRandomItemEx",NP.bind(null,e)),(0,jb.lua_register)(t,"SetRandomSeed",PP.bind(null,e)),(0,jb.lua_register)(t,"SetTerrainFog",kP.bind(null,e)),(0,jb.lua_register)(t,"ResetTerrainFog",OP.bind(null,e)),(0,jb.lua_register)(t,"SetUnitFog",DP.bind(null,e)),(0,jb.lua_register)(t,"SetTerrainFogEx",FP.bind(null,e)),(0,jb.lua_register)(t,"DisplayTextToPlayer",GP.bind(null,e)),(0,jb.lua_register)(t,"DisplayTimedTextToPlayer",VP.bind(null,e)),(0,jb.lua_register)(t,"DisplayTimedTextFromPlayer",KP.bind(null,e)),(0,jb.lua_register)(t,"ClearTextMessages",HP.bind(null,e)),(0,jb.lua_register)(t,"SetDayNightModels",zP.bind(null,e)),(0,jb.lua_register)(t,"SetSkyModel",jP.bind(null,e)),(0,jb.lua_register)(t,"EnableUserControl",XP.bind(null,e)),(0,jb.lua_register)(t,"EnableUserUI",$P.bind(null,e)),(0,jb.lua_register)(t,"SuspendTimeOfDay",JP.bind(null,e)),(0,jb.lua_register)(t,"SetTimeOfDayScale",WP.bind(null,e)),(0,jb.lua_register)(t,"GetTimeOfDayScale",qP.bind(null,e)),(0,jb.lua_register)(t,"ShowInterface",YP.bind(null,e)),(0,jb.lua_register)(t,"PauseGame",ZP.bind(null,e)),(0,jb.lua_register)(t,"UnitAddIndicator",QP.bind(null,e)),(0,jb.lua_register)(t,"AddIndicator",ek.bind(null,e)),(0,jb.lua_register)(t,"PingMinimap",tk.bind(null,e)),(0,jb.lua_register)(t,"PingMinimapEx",nk.bind(null,e)),(0,jb.lua_register)(t,"EnableOcclusion",ak.bind(null,e)),(0,jb.lua_register)(t,"SetIntroShotText",rk.bind(null,e)),(0,jb.lua_register)(t,"SetIntroShotModel",ik.bind(null,e)),(0,jb.lua_register)(t,"EnableWorldFogBoundary",sk.bind(null,e)),(0,jb.lua_register)(t,"PlayModelCinematic",lk.bind(null,e)),(0,jb.lua_register)(t,"PlayCinematic",ok.bind(null,e)),(0,jb.lua_register)(t,"ForceUIKey",uk.bind(null,e)),(0,jb.lua_register)(t,"ForceUICancel",ck.bind(null,e)),(0,jb.lua_register)(t,"DisplayLoadDialog",dk.bind(null,e)),(0,jb.lua_register)(t,"SetAltMinimapIcon",hk.bind(null,e)),(0,jb.lua_register)(t,"DisableRestartMission",fk.bind(null,e)),(0,jb.lua_register)(t,"CreateTextTag",mk.bind(null,e)),(0,jb.lua_register)(t,"DestroyTextTag",pk.bind(null,e)),(0,jb.lua_register)(t,"SetTextTagText",_k.bind(null,e)),(0,jb.lua_register)(t,"SetTextTagPos",gk.bind(null,e)),(0,jb.lua_register)(t,"SetTextTagPosUnit",bk.bind(null,e)),(0,jb.lua_register)(t,"SetTextTagColor",wk.bind(null,e)),(0,jb.lua_register)(t,"SetTextTagVelocity",vk.bind(null,e)),(0,jb.lua_register)(t,"SetTextTagVisibility",Ak.bind(null,e)),(0,jb.lua_register)(t,"SetTextTagSuspended",yk.bind(null,e)),(0,jb.lua_register)(t,"SetTextTagPermanent",Sk.bind(null,e)),(0,jb.lua_register)(t,"SetTextTagAge",Tk.bind(null,e)),(0,jb.lua_register)(t,"SetTextTagLifespan",xk.bind(null,e)),(0,jb.lua_register)(t,"SetTextTagFadepoint",Ek.bind(null,e)),(0,jb.lua_register)(t,"SetReservedLocalHeroButtons",Lk.bind(null,e)),(0,jb.lua_register)(t,"GetAllyColorFilterState",Ik.bind(null,e)),(0,jb.lua_register)(t,"SetAllyColorFilterState",Uk.bind(null,e)),(0,jb.lua_register)(t,"GetCreepCampFilterState",Rk.bind(null,e)),(0,jb.lua_register)(t,"SetCreepCampFilterState",Ck.bind(null,e)),(0,jb.lua_register)(t,"EnableMinimapFilterButtons",Mk.bind(null,e)),(0,jb.lua_register)(t,"EnableDragSelect",Bk.bind(null,e)),(0,jb.lua_register)(t,"EnablePreSelect",Nk.bind(null,e)),(0,jb.lua_register)(t,"EnableSelect",Pk.bind(null,e)),(0,jb.lua_register)(t,"CreateTrackable",kk.bind(null,e)),(0,jb.lua_register)(t,"CreateQuest",Ok.bind(null,e)),(0,jb.lua_register)(t,"DestroyQuest",Dk.bind(null,e)),(0,jb.lua_register)(t,"QuestSetTitle",Fk.bind(null,e)),(0,jb.lua_register)(t,"QuestSetDescription",Gk.bind(null,e)),(0,jb.lua_register)(t,"QuestSetIconPath",Vk.bind(null,e)),(0,jb.lua_register)(t,"QuestSetRequired",Kk.bind(null,e)),(0,jb.lua_register)(t,"QuestSetCompleted",Hk.bind(null,e)),(0,jb.lua_register)(t,"QuestSetDiscovered",zk.bind(null,e)),(0,jb.lua_register)(t,"QuestSetFailed",jk.bind(null,e)),(0,jb.lua_register)(t,"QuestSetEnabled",Xk.bind(null,e)),(0,jb.lua_register)(t,"IsQuestRequired",$k.bind(null,e)),(0,jb.lua_register)(t,"IsQuestCompleted",Jk.bind(null,e)),(0,jb.lua_register)(t,"IsQuestDiscovered",Wk.bind(null,e)),(0,jb.lua_register)(t,"IsQuestFailed",qk.bind(null,e)),(0,jb.lua_register)(t,"IsQuestEnabled",Yk.bind(null,e)),(0,jb.lua_register)(t,"QuestCreateItem",Zk.bind(null,e)),(0,jb.lua_register)(t,"QuestItemSetDescription",Qk.bind(null,e)),(0,jb.lua_register)(t,"QuestItemSetCompleted",eO.bind(null,e)),(0,jb.lua_register)(t,"IsQuestItemCompleted",tO.bind(null,e)),(0,jb.lua_register)(t,"CreateDefeatCondition",nO.bind(null,e)),(0,jb.lua_register)(t,"DestroyDefeatCondition",aO.bind(null,e)),(0,jb.lua_register)(t,"DefeatConditionSetDescription",rO.bind(null,e)),(0,jb.lua_register)(t,"FlashQuestDialogButton",iO.bind(null,e)),(0,jb.lua_register)(t,"ForceQuestDialogUpdate",sO.bind(null,e)),(0,jb.lua_register)(t,"CreateTimerDialog",lO.bind(null,e)),(0,jb.lua_register)(t,"DestroyTimerDialog",oO.bind(null,e)),(0,jb.lua_register)(t,"TimerDialogSetTitle",uO.bind(null,e)),(0,jb.lua_register)(t,"TimerDialogSetTitleColor",cO.bind(null,e)),(0,jb.lua_register)(t,"TimerDialogSetTimeColor",dO.bind(null,e)),(0,jb.lua_register)(t,"TimerDialogSetSpeed",hO.bind(null,e)),(0,jb.lua_register)(t,"TimerDialogDisplay",fO.bind(null,e)),(0,jb.lua_register)(t,"IsTimerDialogDisplayed",mO.bind(null,e)),(0,jb.lua_register)(t,"TimerDialogSetRealTimeRemaining",pO.bind(null,e)),(0,jb.lua_register)(t,"CreateLeaderboard",_O.bind(null,e)),(0,jb.lua_register)(t,"DestroyLeaderboard",gO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardDisplay",bO.bind(null,e)),(0,jb.lua_register)(t,"IsLeaderboardDisplayed",wO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardGetItemCount",vO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardSetSizeByItemCount",AO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardAddItem",yO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardRemoveItem",SO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardRemovePlayerItem",TO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardClear",xO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardSortItemsByValue",EO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardSortItemsByPlayer",LO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardSortItemsByLabel",IO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardHasPlayerItem",UO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardGetPlayerIndex",RO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardSetLabel",CO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardGetLabelText",MO.bind(null,e)),(0,jb.lua_register)(t,"PlayerSetLeaderboard",BO.bind(null,e)),(0,jb.lua_register)(t,"PlayerGetLeaderboard",NO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardSetLabelColor",PO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardSetValueColor",kO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardSetStyle",OO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardSetItemValue",DO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardSetItemLabel",FO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardSetItemStyle",GO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardSetItemLabelColor",VO.bind(null,e)),(0,jb.lua_register)(t,"LeaderboardSetItemValueColor",KO.bind(null,e)),(0,jb.lua_register)(t,"CreateMultiboard",HO.bind(null,e)),(0,jb.lua_register)(t,"DestroyMultiboard",zO.bind(null,e)),(0,jb.lua_register)(t,"MultiboardDisplay",jO.bind(null,e)),(0,jb.lua_register)(t,"IsMultiboardDisplayed",XO.bind(null,e)),(0,jb.lua_register)(t,"MultiboardMinimize",$O.bind(null,e)),(0,jb.lua_register)(t,"IsMultiboardMinimized",JO.bind(null,e)),(0,jb.lua_register)(t,"MultiboardClear",WO.bind(null,e)),(0,jb.lua_register)(t,"MultiboardSetTitleText",qO.bind(null,e)),(0,jb.lua_register)(t,"MultiboardGetTitleText",YO.bind(null,e)),(0,jb.lua_register)(t,"MultiboardSetTitleTextColor",ZO.bind(null,e)),(0,jb.lua_register)(t,"MultiboardGetRowCount",QO.bind(null,e)),(0,jb.lua_register)(t,"MultiboardGetColumnCount",eD.bind(null,e)),(0,jb.lua_register)(t,"MultiboardSetColumnCount",tD.bind(null,e)),(0,jb.lua_register)(t,"MultiboardSetRowCount",nD.bind(null,e)),(0,jb.lua_register)(t,"MultiboardSetItemsStyle",aD.bind(null,e)),(0,jb.lua_register)(t,"MultiboardSetItemsValue",rD.bind(null,e)),(0,jb.lua_register)(t,"MultiboardSetItemsValueColor",iD.bind(null,e)),(0,jb.lua_register)(t,"MultiboardSetItemsWidth",sD.bind(null,e)),(0,jb.lua_register)(t,"MultiboardSetItemsIcon",lD.bind(null,e)),(0,jb.lua_register)(t,"MultiboardGetItem",oD.bind(null,e)),(0,jb.lua_register)(t,"MultiboardReleaseItem",uD.bind(null,e)),(0,jb.lua_register)(t,"MultiboardSetItemStyle",cD.bind(null,e)),(0,jb.lua_register)(t,"MultiboardSetItemValue",dD.bind(null,e)),(0,jb.lua_register)(t,"MultiboardSetItemValueColor",hD.bind(null,e)),(0,jb.lua_register)(t,"MultiboardSetItemWidth",fD.bind(null,e)),(0,jb.lua_register)(t,"MultiboardSetItemIcon",mD.bind(null,e)),(0,jb.lua_register)(t,"MultiboardSuppressDisplay",pD.bind(null,e)),(0,jb.lua_register)(t,"SetCameraPosition",_D.bind(null,e)),(0,jb.lua_register)(t,"SetCameraQuickPosition",gD.bind(null,e)),(0,jb.lua_register)(t,"SetCameraBounds",bD.bind(null,e)),(0,jb.lua_register)(t,"StopCamera",wD.bind(null,e)),(0,jb.lua_register)(t,"ResetToGameCamera",vD.bind(null,e)),(0,jb.lua_register)(t,"PanCameraTo",AD.bind(null,e)),(0,jb.lua_register)(t,"PanCameraToTimed",yD.bind(null,e)),(0,jb.lua_register)(t,"PanCameraToWithZ",SD.bind(null,e)),(0,jb.lua_register)(t,"PanCameraToTimedWithZ",TD.bind(null,e)),(0,jb.lua_register)(t,"SetCinematicCamera",xD.bind(null,e)),(0,jb.lua_register)(t,"SetCameraRotateMode",ED.bind(null,e)),(0,jb.lua_register)(t,"SetCameraField",LD.bind(null,e)),(0,jb.lua_register)(t,"AdjustCameraField",ID.bind(null,e)),(0,jb.lua_register)(t,"SetCameraTargetController",UD.bind(null,e)),(0,jb.lua_register)(t,"SetCameraOrientController",RD.bind(null,e)),(0,jb.lua_register)(t,"CreateCameraSetup",CD.bind(null,e)),(0,jb.lua_register)(t,"CameraSetupSetField",MD.bind(null,e)),(0,jb.lua_register)(t,"CameraSetupGetField",BD.bind(null,e)),(0,jb.lua_register)(t,"CameraSetupSetDestPosition",ND.bind(null,e)),(0,jb.lua_register)(t,"CameraSetupGetDestPositionLoc",PD.bind(null,e)),(0,jb.lua_register)(t,"CameraSetupGetDestPositionX",kD.bind(null,e)),(0,jb.lua_register)(t,"CameraSetupGetDestPositionY",OD.bind(null,e)),(0,jb.lua_register)(t,"CameraSetupApply",DD.bind(null,e)),(0,jb.lua_register)(t,"CameraSetupApplyWithZ",FD.bind(null,e)),(0,jb.lua_register)(t,"CameraSetupApplyForceDuration",GD.bind(null,e)),(0,jb.lua_register)(t,"CameraSetupApplyForceDurationWithZ",VD.bind(null,e)),(0,jb.lua_register)(t,"CameraSetTargetNoise",KD.bind(null,e)),(0,jb.lua_register)(t,"CameraSetSourceNoise",HD.bind(null,e)),(0,jb.lua_register)(t,"CameraSetTargetNoiseEx",zD.bind(null,e)),(0,jb.lua_register)(t,"CameraSetSourceNoiseEx",jD.bind(null,e)),(0,jb.lua_register)(t,"CameraSetSmoothingFactor",XD.bind(null,e)),(0,jb.lua_register)(t,"SetCineFilterTexture",$D.bind(null,e)),(0,jb.lua_register)(t,"SetCineFilterBlendMode",JD.bind(null,e)),(0,jb.lua_register)(t,"SetCineFilterTexMapFlags",WD.bind(null,e)),(0,jb.lua_register)(t,"SetCineFilterStartUV",qD.bind(null,e)),(0,jb.lua_register)(t,"SetCineFilterEndUV",YD.bind(null,e)),(0,jb.lua_register)(t,"SetCineFilterStartColor",ZD.bind(null,e)),(0,jb.lua_register)(t,"SetCineFilterEndColor",QD.bind(null,e)),(0,jb.lua_register)(t,"SetCineFilterDuration",eF.bind(null,e)),(0,jb.lua_register)(t,"DisplayCineFilter",tF.bind(null,e)),(0,jb.lua_register)(t,"IsCineFilterDisplayed",nF.bind(null,e)),(0,jb.lua_register)(t,"SetCinematicScene",aF.bind(null,e)),(0,jb.lua_register)(t,"EndCinematicScene",rF.bind(null,e)),(0,jb.lua_register)(t,"ForceCinematicSubtitles",iF.bind(null,e)),(0,jb.lua_register)(t,"GetCameraMargin",sF.bind(null,e)),(0,jb.lua_register)(t,"GetCameraBoundMinX",lF.bind(null,e)),(0,jb.lua_register)(t,"GetCameraBoundMinY",oF.bind(null,e)),(0,jb.lua_register)(t,"GetCameraBoundMaxX",uF.bind(null,e)),(0,jb.lua_register)(t,"GetCameraBoundMaxY",cF.bind(null,e)),(0,jb.lua_register)(t,"GetCameraField",dF.bind(null,e)),(0,jb.lua_register)(t,"GetCameraTargetPositionX",hF.bind(null,e)),(0,jb.lua_register)(t,"GetCameraTargetPositionY",fF.bind(null,e)),(0,jb.lua_register)(t,"GetCameraTargetPositionZ",mF.bind(null,e)),(0,jb.lua_register)(t,"GetCameraTargetPositionLoc",pF.bind(null,e)),(0,jb.lua_register)(t,"GetCameraEyePositionX",_F.bind(null,e)),(0,jb.lua_register)(t,"GetCameraEyePositionY",gF.bind(null,e)),(0,jb.lua_register)(t,"GetCameraEyePositionZ",bF.bind(null,e)),(0,jb.lua_register)(t,"GetCameraEyePositionLoc",wF.bind(null,e)),(0,jb.lua_register)(t,"NewSoundEnvironment",vF.bind(null,e)),(0,jb.lua_register)(t,"CreateSound",AF.bind(null,e)),(0,jb.lua_register)(t,"CreateSoundFilenameWithLabel",yF.bind(null,e)),(0,jb.lua_register)(t,"CreateSoundFromLabel",SF.bind(null,e)),(0,jb.lua_register)(t,"CreateMIDISound",TF.bind(null,e)),(0,jb.lua_register)(t,"SetSoundParamsFromLabel",xF.bind(null,e)),(0,jb.lua_register)(t,"SetSoundDistanceCutoff",EF.bind(null,e)),(0,jb.lua_register)(t,"SetSoundChannel",LF.bind(null,e)),(0,jb.lua_register)(t,"SetSoundVolume",IF.bind(null,e)),(0,jb.lua_register)(t,"SetSoundPitch",UF.bind(null,e)),(0,jb.lua_register)(t,"SetSoundPlayPosition",RF.bind(null,e)),(0,jb.lua_register)(t,"SetSoundDistances",CF.bind(null,e)),(0,jb.lua_register)(t,"SetSoundConeAngles",MF.bind(null,e)),(0,jb.lua_register)(t,"SetSoundConeOrientation",BF.bind(null,e)),(0,jb.lua_register)(t,"SetSoundPosition",NF.bind(null,e)),(0,jb.lua_register)(t,"SetSoundVelocity",PF.bind(null,e)),(0,jb.lua_register)(t,"AttachSoundToUnit",kF.bind(null,e)),(0,jb.lua_register)(t,"StartSound",OF.bind(null,e)),(0,jb.lua_register)(t,"StopSound",DF.bind(null,e)),(0,jb.lua_register)(t,"KillSoundWhenDone",FF.bind(null,e)),(0,jb.lua_register)(t,"SetMapMusic",GF.bind(null,e)),(0,jb.lua_register)(t,"ClearMapMusic",VF.bind(null,e)),(0,jb.lua_register)(t,"PlayMusic",KF.bind(null,e)),(0,jb.lua_register)(t,"PlayMusicEx",HF.bind(null,e)),(0,jb.lua_register)(t,"StopMusic",zF.bind(null,e)),(0,jb.lua_register)(t,"ResumeMusic",jF.bind(null,e)),(0,jb.lua_register)(t,"PlayThematicMusic",XF.bind(null,e)),(0,jb.lua_register)(t,"PlayThematicMusicEx",$F.bind(null,e)),(0,jb.lua_register)(t,"EndThematicMusic",JF.bind(null,e)),(0,jb.lua_register)(t,"SetMusicVolume",WF.bind(null,e)),(0,jb.lua_register)(t,"SetMusicPlayPosition",qF.bind(null,e)),(0,jb.lua_register)(t,"SetThematicMusicPlayPosition",YF.bind(null,e)),(0,jb.lua_register)(t,"SetSoundDuration",ZF.bind(null,e)),(0,jb.lua_register)(t,"GetSoundDuration",QF.bind(null,e)),(0,jb.lua_register)(t,"GetSoundFileDuration",eG.bind(null,e)),(0,jb.lua_register)(t,"VolumeGroupSetVolume",tG.bind(null,e)),(0,jb.lua_register)(t,"VolumeGroupReset",nG.bind(null,e)),(0,jb.lua_register)(t,"GetSoundIsPlaying",aG.bind(null,e)),(0,jb.lua_register)(t,"GetSoundIsLoading",rG.bind(null,e)),(0,jb.lua_register)(t,"RegisterStackedSound",iG.bind(null,e)),(0,jb.lua_register)(t,"UnregisterStackedSound",sG.bind(null,e)),(0,jb.lua_register)(t,"AddWeatherEffect",lG.bind(null,e)),(0,jb.lua_register)(t,"RemoveWeatherEffect",oG.bind(null,e)),(0,jb.lua_register)(t,"EnableWeatherEffect",uG.bind(null,e)),(0,jb.lua_register)(t,"TerrainDeformCrater",cG.bind(null,e)),(0,jb.lua_register)(t,"TerrainDeformRipple",dG.bind(null,e)),(0,jb.lua_register)(t,"TerrainDeformWave",hG.bind(null,e)),(0,jb.lua_register)(t,"TerrainDeformRandom",fG.bind(null,e)),(0,jb.lua_register)(t,"TerrainDeformStop",mG.bind(null,e)),(0,jb.lua_register)(t,"TerrainDeformStopAll",pG.bind(null,e)),(0,jb.lua_register)(t,"AddSpecialEffect",_G.bind(null,e)),(0,jb.lua_register)(t,"AddSpecialEffectLoc",gG.bind(null,e)),(0,jb.lua_register)(t,"AddSpecialEffectTarget",bG.bind(null,e)),(0,jb.lua_register)(t,"DestroyEffect",wG.bind(null,e)),(0,jb.lua_register)(t,"AddSpellEffect",vG.bind(null,e)),(0,jb.lua_register)(t,"AddSpellEffectLoc",AG.bind(null,e)),(0,jb.lua_register)(t,"AddSpellEffectById",yG.bind(null,e)),(0,jb.lua_register)(t,"AddSpellEffectByIdLoc",SG.bind(null,e)),(0,jb.lua_register)(t,"AddSpellEffectTarget",TG.bind(null,e)),(0,jb.lua_register)(t,"AddSpellEffectTargetById",xG.bind(null,e)),(0,jb.lua_register)(t,"AddLightning",EG.bind(null,e)),(0,jb.lua_register)(t,"AddLightningEx",LG.bind(null,e)),(0,jb.lua_register)(t,"DestroyLightning",IG.bind(null,e)),(0,jb.lua_register)(t,"MoveLightning",UG.bind(null,e)),(0,jb.lua_register)(t,"MoveLightningEx",RG.bind(null,e)),(0,jb.lua_register)(t,"GetLightningColorA",CG.bind(null,e)),(0,jb.lua_register)(t,"GetLightningColorR",MG.bind(null,e)),(0,jb.lua_register)(t,"GetLightningColorG",BG.bind(null,e)),(0,jb.lua_register)(t,"GetLightningColorB",NG.bind(null,e)),(0,jb.lua_register)(t,"SetLightningColor",PG.bind(null,e)),(0,jb.lua_register)(t,"GetAbilityEffect",kG.bind(null,e)),(0,jb.lua_register)(t,"GetAbilityEffectById",OG.bind(null,e)),(0,jb.lua_register)(t,"GetAbilitySound",DG.bind(null,e)),(0,jb.lua_register)(t,"GetAbilitySoundById",FG.bind(null,e)),(0,jb.lua_register)(t,"GetTerrainCliffLevel",GG.bind(null,e)),(0,jb.lua_register)(t,"SetWaterBaseColor",VG.bind(null,e)),(0,jb.lua_register)(t,"SetWaterDeforms",KG.bind(null,e)),(0,jb.lua_register)(t,"GetTerrainType",HG.bind(null,e)),(0,jb.lua_register)(t,"GetTerrainVariance",zG.bind(null,e)),(0,jb.lua_register)(t,"SetTerrainType",jG.bind(null,e)),(0,jb.lua_register)(t,"IsTerrainPathable",XG.bind(null,e)),(0,jb.lua_register)(t,"SetTerrainPathable",$G.bind(null,e)),(0,jb.lua_register)(t,"CreateImage",JG.bind(null,e)),(0,jb.lua_register)(t,"DestroyImage",WG.bind(null,e)),(0,jb.lua_register)(t,"ShowImage",qG.bind(null,e)),(0,jb.lua_register)(t,"SetImageConstantHeight",YG.bind(null,e)),(0,jb.lua_register)(t,"SetImagePosition",ZG.bind(null,e)),(0,jb.lua_register)(t,"SetImageColor",QG.bind(null,e)),(0,jb.lua_register)(t,"SetImageRender",eV.bind(null,e)),(0,jb.lua_register)(t,"SetImageRenderAlways",tV.bind(null,e)),(0,jb.lua_register)(t,"SetImageAboveWater",nV.bind(null,e)),(0,jb.lua_register)(t,"SetImageType",aV.bind(null,e)),(0,jb.lua_register)(t,"CreateUbersplat",rV.bind(null,e)),(0,jb.lua_register)(t,"DestroyUbersplat",iV.bind(null,e)),(0,jb.lua_register)(t,"ResetUbersplat",sV.bind(null,e)),(0,jb.lua_register)(t,"FinishUbersplat",lV.bind(null,e)),(0,jb.lua_register)(t,"ShowUbersplat",oV.bind(null,e)),(0,jb.lua_register)(t,"SetUbersplatRender",uV.bind(null,e)),(0,jb.lua_register)(t,"SetUbersplatRenderAlways",cV.bind(null,e)),(0,jb.lua_register)(t,"SetBlight",dV.bind(null,e)),(0,jb.lua_register)(t,"SetBlightRect",hV.bind(null,e)),(0,jb.lua_register)(t,"SetBlightPoint",fV.bind(null,e)),(0,jb.lua_register)(t,"SetBlightLoc",mV.bind(null,e)),(0,jb.lua_register)(t,"CreateBlightedGoldmine",pV.bind(null,e)),(0,jb.lua_register)(t,"IsPointBlighted",_V.bind(null,e)),(0,jb.lua_register)(t,"SetDoodadAnimation",gV.bind(null,e)),(0,jb.lua_register)(t,"SetDoodadAnimationRect",bV.bind(null,e)),(0,jb.lua_register)(t,"StartMeleeAI",wV.bind(null,e)),(0,jb.lua_register)(t,"StartCampaignAI",vV.bind(null,e)),(0,jb.lua_register)(t,"CommandAI",AV.bind(null,e)),(0,jb.lua_register)(t,"PauseCompAI",yV.bind(null,e)),(0,jb.lua_register)(t,"GetAIDifficulty",SV.bind(null,e)),(0,jb.lua_register)(t,"RemoveGuardPosition",TV.bind(null,e)),(0,jb.lua_register)(t,"RecycleGuardPosition",xV.bind(null,e)),(0,jb.lua_register)(t,"RemoveAllGuardPositions",EV.bind(null,e)),(0,jb.lua_register)(t,"Cheat",LV.bind(null,e)),(0,jb.lua_register)(t,"IsNoVictoryCheat",IV.bind(null,e)),(0,jb.lua_register)(t,"IsNoDefeatCheat",UV.bind(null,e)),(0,jb.lua_register)(t,"Preload",RV.bind(null,e)),(0,jb.lua_register)(t,"PreloadEnd",CV.bind(null,e)),(0,jb.lua_register)(t,"PreloadStart",MV.bind(null,e)),(0,jb.lua_register)(t,"PreloadRefresh",BV.bind(null,e)),(0,jb.lua_register)(t,"PreloadEndEx",NV.bind(null,e)),(0,jb.lua_register)(t,"PreloadGenClear",PV.bind(null,e)),(0,jb.lua_register)(t,"PreloadGenStart",kV.bind(null,e)),(0,jb.lua_register)(t,"PreloadGenEnd",OV.bind(null,e)),(0,jb.lua_register)(t,"Preloader",DV.bind(null,e)),(0,jb.lua_register)(t,"AutomationTestStart",FV.bind(null,e)),(0,jb.lua_register)(t,"AutomationTestEnd",GV.bind(null,e)),(0,jb.lua_register)(t,"BlzGetTriggerPlayerMouseX",VV.bind(null,e)),(0,jb.lua_register)(t,"BlzGetTriggerPlayerMouseY",KV.bind(null,e)),(0,jb.lua_register)(t,"BlzGetTriggerPlayerMousePosition",HV.bind(null,e)),(0,jb.lua_register)(t,"BlzGetTriggerPlayerMouseButton",zV.bind(null,e)),(0,jb.lua_register)(t,"BlzSetAbilityTooltip",jV.bind(null,e)),(0,jb.lua_register)(t,"BlzSetAbilityActivatedTooltip",XV.bind(null,e)),(0,jb.lua_register)(t,"BlzSetAbilityExtendedTooltip",$V.bind(null,e)),(0,jb.lua_register)(t,"BlzSetAbilityActivatedExtendedTooltip",JV.bind(null,e)),(0,jb.lua_register)(t,"BlzSetAbilityResearchTooltip",WV.bind(null,e)),(0,jb.lua_register)(t,"BlzSetAbilityResearchExtendedTooltip",qV.bind(null,e)),(0,jb.lua_register)(t,"BlzGetAbilityTooltip",YV.bind(null,e)),(0,jb.lua_register)(t,"BlzGetAbilityActivatedTooltip",ZV.bind(null,e)),(0,jb.lua_register)(t,"BlzGetAbilityExtendedTooltip",QV.bind(null,e)),(0,jb.lua_register)(t,"BlzGetAbilityActivatedExtendedTooltip",eK.bind(null,e)),(0,jb.lua_register)(t,"BlzGetAbilityResearchTooltip",tK.bind(null,e)),(0,jb.lua_register)(t,"BlzGetAbilityResearchExtendedTooltip",nK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetAbilityIcon",aK.bind(null,e)),(0,jb.lua_register)(t,"BlzGetAbilityIcon",rK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetAbilityActivatedIcon",iK.bind(null,e)),(0,jb.lua_register)(t,"BlzGetAbilityActivatedIcon",sK.bind(null,e)),(0,jb.lua_register)(t,"BlzGetAbilityPosX",lK.bind(null,e)),(0,jb.lua_register)(t,"BlzGetAbilityPosY",oK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetAbilityPosX",uK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetAbilityPosY",cK.bind(null,e)),(0,jb.lua_register)(t,"BlzGetAbilityActivatedPosX",dK.bind(null,e)),(0,jb.lua_register)(t,"BlzGetAbilityActivatedPosY",hK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetAbilityActivatedPosX",fK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetAbilityActivatedPosY",mK.bind(null,e)),(0,jb.lua_register)(t,"BlzGetUnitMaxHP",pK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetUnitMaxHP",_K.bind(null,e)),(0,jb.lua_register)(t,"BlzGetUnitMaxMana",gK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetUnitMaxMana",bK.bind(null,e)),(0,jb.lua_register)(t,"BlzDeleteHeroAbility",wK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetItemName",vK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetItemDescription",AK.bind(null,e)),(0,jb.lua_register)(t,"BlzGetItemDescription",yK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetItemTooltip",SK.bind(null,e)),(0,jb.lua_register)(t,"BlzGetItemTooltip",TK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetItemExtendedTooltip",xK.bind(null,e)),(0,jb.lua_register)(t,"BlzGetItemExtendedTooltip",EK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetItemIconPath",LK.bind(null,e)),(0,jb.lua_register)(t,"BlzGetItemIconPath",IK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetUnitName",UK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetHeroProperName",RK.bind(null,e)),(0,jb.lua_register)(t,"BlzGetUnitBaseDamage",CK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetUnitBaseDamage",MK.bind(null,e)),(0,jb.lua_register)(t,"BlzGetUnitDiceNumber",BK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetUnitDiceNumber",NK.bind(null,e)),(0,jb.lua_register)(t,"BlzGetUnitDiceSides",PK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetUnitDiceSides",kK.bind(null,e)),(0,jb.lua_register)(t,"BlzGetUnitAttackCooldown",OK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetUnitAttackCooldown",DK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetSpecialEffectColorByPlayer",FK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetSpecialEffectColor",GK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetSpecialEffectAlpha",VK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetSpecialEffectScale",KK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetSpecialEffectPosition",HK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetSpecialEffectHeight",zK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetSpecialEffectTimeScale",jK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetSpecialEffectTime",XK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetSpecialEffectOrientation",$K.bind(null,e)),(0,jb.lua_register)(t,"BlzSetSpecialEffectYaw",JK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetSpecialEffectPitch",WK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetSpecialEffectRoll",qK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetSpecialEffectX",YK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetSpecialEffectY",ZK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetSpecialEffectZ",QK.bind(null,e)),(0,jb.lua_register)(t,"BlzSetSpecialEffectPositionLoc",eH.bind(null,e)),(0,jb.lua_register)(t,"BlzGetLocalSpecialEffectX",tH.bind(null,e)),(0,jb.lua_register)(t,"BlzGetLocalSpecialEffectY",nH.bind(null,e)),(0,jb.lua_register)(t,"BlzGetLocalSpecialEffectZ",aH.bind(null,e)),(0,jb.lua_register)(t,"BlzGetUnitArmor",rH.bind(null,e)),(0,jb.lua_register)(t,"BlzSetUnitArmor",iH.bind(null,e)),(0,jb.lua_register)(t,"BlzUnitHideAbility",sH.bind(null,e)),(0,jb.lua_register)(t,"BlzUnitDisableAbility",lH.bind(null,e)),(0,jb.lua_register)(t,"BlzUnitCancelTimedLife",oH.bind(null,e)),(0,jb.lua_register)(t,"BlzIsUnitSelectable",uH.bind(null,e)),(0,jb.lua_register)(t,"BlzIsUnitInvulnerable",cH.bind(null,e)),(0,jb.lua_register)(t,"BlzUnitInterruptAttack",dH.bind(null,e)),(0,jb.lua_register)(t,"BlzGetUnitCollisionSize",hH.bind(null,e)),(0,jb.lua_register)(t,"BlzGetAbilityManaCost",fH.bind(null,e)),(0,jb.lua_register)(t,"BlzGetAbilityCooldown",mH.bind(null,e)),(0,jb.lua_register)(t,"BlzSetUnitAbilityCooldown",pH.bind(null,e)),(0,jb.lua_register)(t,"BlzGetUnitAbilityCooldown",_H.bind(null,e)),(0,jb.lua_register)(t,"BlzGetUnitAbilityCooldownRemaining",gH.bind(null,e)),(0,jb.lua_register)(t,"BlzEndUnitAbilityCooldown",bH.bind(null,e)),(0,jb.lua_register)(t,"BlzGetUnitAbilityManaCost",wH.bind(null,e)),(0,jb.lua_register)(t,"BlzSetUnitAbilityManaCost",vH.bind(null,e)),(0,jb.lua_register)(t,"BlzGetLocalUnitZ",AH.bind(null,e)),(0,jb.lua_register)(t,"BlzDecPlayerTechResearched",yH.bind(null,e)),(0,jb.lua_register)(t,"BlzSetEventDamage",SH.bind(null,e))}class xH extends ow{}class EH extends ow{}class LH extends ow{}var IH=n(809);class UH{constructor(e,t){this.sleep=0,this.L=(0,IH.lua_newthread)(e),this.expiredTimer=t.expiredTimer||null,this.triggerUnit=t.triggerUnit||null,this.triggeringTrigger=t.triggeringTrigger||null}}class RH extends tp.EventEmitter{constructor(){super(),this.map=null,this.handle=0,this.freeHandles=[],this.handles=[],this.name="",this.description="",this.players=[],this.actualPlayers=0,this.startLocations=[],this.constantHandles=function(){const e=[],t=[],n=[],a=[],r=[],i=[],s=[],l=[],o=[],u=[],c=[],d=[],h=[],f=[],m=[],p=[],_=[],g=[],b=[],w=[],v=[],A=[],y=[],S=[],T=[],x=[],E=[],L=[],I=[],U=[],R=[],C=[],M=[],B=[],N=[],P=[],k=[],O=[],D=[];for(let t=0;t<24;t++)e[t]=new Vw(t);for(let e=0;e<8;e++)t[e]=new uw(e);for(let e=0;e<4;e++)n[e]=new gw(e);for(let e=0;e<10;e++)a[e]=new cw(e);for(let e=0;e<2;e++)r[e]=new qw(e);for(let e=0;e<7;e++)i[e]=new Zw(e);for(let e=0;e<27;e++)s[e]=new Qw(e);for(let e=0;e<24;e++)l[e]=new ev(e);for(let e=0;e<8;e++)o[e]=new nv(e);for(let e=0;e<4;e++)u[e]=new xH(e);for(let e=0;e<11;e++)c[e]=new EH(e);for(let e=11;e<63;e++)d[e]=new LH(e);for(let e=0;e<8;e++){const t=Math.pow(2,e);h[t]=new dw(t)}for(let e=0;e<6;e++)f[e]=new kw(e);for(let e=0;e<8;e++){const t=Math.pow(2,e);m[t]=new Cw(t)}for(let e=0;e<20;e++){const t=Math.pow(2,e);p[t]=new Mw(t)}for(let e=0;e<4;e++)_[e]=new Kw(e);for(let e=0;e<3;e++)g[e]=new Hw(e);for(let e=0;e<4;e++)b[e]=new Pw(e);for(let e=0;e<4;e++)w[e]=new Rw(e);for(let e=0;e<5;e++)v[e]=new Uw(e);for(let e=0;e<3;e++)A[e]=new Ow(e);for(let e=0;e<8;e++)y[e]=new Dw(e);for(let e=0;e<2;e++)S[e]=new fw(e);for(let e=2;e<3;e++)S[e]=new mw(e);for(let e=0;e<26;e++)T[e]=new pw(e);for(let e=0;e<4;e++)x[e]=new bw(e);for(let e=0;e<3;e++)E[e]=new ww(e);for(let e=0;e<25;e++)L[e]=new _w(e);for(let e=0;e<11;e++)I[e]=new Aw(e);for(let e=11;e<18;e++)I[e]=new yw(e);for(let e=18;e<52;e++)I[e]=new Sw(e);for(let e=52;e<89;e++)I[e]=new Tw(e);for(let e=89;e<90;e++)I[e]=new Ew(e);for(let e=90;e<92;e++)I[e]=new Lw(e);for(let e=256;e<260;e++)I[e]=new Aw(e);for(let e=261;e<269;e++)I[e]=new yw(e);for(let e=269;e<278;e++)I[e]=new Sw(e);for(let e=286;e<295;e++)I[e]=new Tw(e);for(let e=0;e<6;e++)U[e]=new xw(e);for(let e=0;e<27;e++)R[e]=new Iw(e);for(let e=0;e<9;e++)C[e]=new Yw(e);for(let e=0;e<7;e++)M[e]=new Fw(e);for(let e=0;e<6;e++)B[e]=new jw(e);for(let e=0;e<1;e++)N[e]=new zw(e);for(let e=0;e<4;e++)P[e]=new Xw(e);for(let e=0;e<3;e++){const t=Math.pow(2,e);k[t]=new Ww(t)}for(let e=0;e<7;e++)O[e]=new $w(e);for(let e=0;e<2;e++)D[e]=new tv(e);return{playerColors:e,races:t,playerGameResults:n,allianceTypes:a,versions:r,attackTypes:i,damageTypes:s,weaponTypes:l,pathingTypes:o,mouseButtonTypes:u,animTypes:c,subAnimTypes:d,racePrefs:h,mapControls:f,gameTypes:m,mapFlags:p,placements:_,startLocPrios:g,mapDensities:b,gameDifficulties:w,gameSpeeds:v,playerSlotStates:A,volumeGroups:y,gameStates:S,playerStates:T,unitStates:x,aiDifficulties:E,playerScores:L,events:I,limitOps:U,unitTypes:R,itemTypes:C,cameraFields:M,blendModes:B,rarityControls:N,texMapFlags:P,fogStates:k,effectTypes:O,soundTypes:D}}(),this.timers=new Set,this.triggers=new Set,this.threads=new Set,this.currentThread=null,this.enumUnit=null,this.filterUnit=null,this.enumPlayer=null,this.t=0,this.L=(0,$b.Zf)(),TH(this),(0,jb.lua_atnativeerror)(this.L,e=>{const t=(0,jb.lua_touserdata)(e,-1);return(0,jb.lua_pushstring)(e,t.stack||"An unknown error occured"),1});for(let e=0;e<28;e++)this.players[e]=this.addHandle(new Zb(e,28))}start(){this.t=performance.now()}step(){const e=performance.now(),t=.001*(e-this.t),n=this.timers,a=this.threads;for(const e of n)if(e.elapsed+=t,e.elapsed>=e.timeout){const t=new UH(this.L,{expiredTimer:e}),a=t.L;(0,jb.lua_rawgeti)(a,Xb.LUA_REGISTRYINDEX,e.handlerFunc),this.threads.add(t),e.periodic?e.elapsed=0:n.delete(e)}for(const e of a)if(e.sleep-=t,e.sleep<=0){this.currentThread=e;const t=e.L,n=(0,Jb.lua_resume)(t,this.L,0);n===Xb.thread_status.LUA_OK?a.delete(e):n===Xb.thread_status.LUA_YIELD?e.sleep=(0,$b.hs)(t,1):(console.log("[JS] Something went wrong during execution"),console.log((0,Xb.to_jsstring)((0,$b.On)(t,-1))),(0,jb.lua_pop)(t,2))}this.t=e}addHandle(e){if(-1===e.handleId){let t;t=this.freeHandles.length?this.freeHandles.pop():this.handle++,this.handles[t]=e,e.handleId=t}return e}freeHandle(e){-1!==e.handleId&&(this.freeHandles.push(e.handleId),this.handles[e.handleId]=null,e.handleId=-1)}call(e){const t=this.L;"string"==typeof e?(0,jb.lua_getglobal)(t,e):"number"==typeof e&&(0,jb.lua_rawgeti)(t,Xb.LUA_REGISTRYINDEX,e),(0,jb.lua_pcall)(t,0,0,0)&&(console.log("Something went wrong during execution"),console.log((0,Xb.to_jsstring)((0,$b.On)(t,-1))),(0,jb.lua_pop)(t,2))}run(e,t){const n=this.L;t&&(e=Wb(e)),(0,$b.rf)(n,(0,Xb.to_luastring)(e))&&(console.log("Something went wrong during execution"),console.log((0,Xb.to_jsstring)((0,$b.On)(n,-1))),(0,jb.lua_pop)(n,2)),(0,jb.lua_pcall)(n,0,0,0)&&(console.log("Something went wrong during execution"),console.log((0,Xb.to_jsstring)((0,$b.On)(n,-1))),(0,jb.lua_pop)(n,2))}open(e){this.map=e;const t=e.getScriptFile();if(t){const e=t.text();if(e){const n=t.name.endsWith(".j");this.run(e,n)}}}}function CH(e,t){const n=e.readSafe(),a=[];e.read();const r=e.readSafe();if("nothing"!==r)for(a.push({type:r,name:e.readSafe()});","===e.read();)a.push({type:e.readSafe(),name:e.readSafe()});else e.read();const i=e.readSafe();let s;s=a.length?"C: Context, L: lua_State":"_C: Context, _L: lua_State";const l=`\n/**\n * ${t?"constant ":""}native ${n} takes ${a.length?a.map(e=>`${e.type} ${e.name}`).join(", "):"nothing"} returns ${i}\n */\nfunction ${n}(${s}): number {\n ${function(e){return e.map((e,t)=>{const n=e.type;if("code"===n)return`let _${e.name} = luaL_ref(L, LUA_REGISTRYINDEX);`;{let a;return a="integer"===n?"luaL_checkinteger":"real"===n?"luaL_checknumber":"boolean"===n?"lua_toboolean":"string"===n?"luaL_checkstring":"lua_touserdata",`let _${e.name} = ${a}(L, ${t+1});`}}).join("\n")}(a)}\n console.warn('${n} was called but is not implemented :(');\n ${function(e){if("nothing"===e)return"return 0";{let t,n;if("integer"===e)t="lua_pushinteger",n="0";else if("real"===e)t="lua_pushnumber",n="0";else if("boolean"===e)t="lua_pushboolean",n="false";else if("string"===e)t="lua_pushstring",n="''";else{if("code"===e)throw"CODE??";t="lua_pushlightuserdata",n="{name: 'FAKE'}"}return`${t}(L, ${n});\nreturn 1;`}}(i)}\n}`;return{name:n,decl:l}}const MH={Context:RH,jass2lua:Wb,types:g,compileNatives:function(e){const t=new qf(e),n=[],a=[];let r;for(;void 0!==(r=t.read());){let e=!1;if("constant"===r&&(e=!0,r=t.read()),"native"===r){const{name:r,decl:i}=CH(t,e);n.push(r),a.push(i)}}return`${a.join("\n")}\n${function(e){return`\n/**\n * Bind natives to the given context.\n */\nexport default function bind(C: Context): void {\nlet L = C.L;\n${e.map(e=>` lua_register(L, '${e}', ${e}.bind(null, C));`).join("\n")}\n}`}(n)}\n`}};function BH(e,t,n){if(-1===n){const n=e.model.sequences;for(let e=0,a=n.length;e<a;e++){const a=n[e].interval;if(t>=a[0]&&t<=a[1])return e}}else{const a=e.model.globalSequences[n];if(t>=0&&t<=a)return n}return-1}function NH(e,t,n){let a=0;for(let r=0,i=e.length;r<i;r++){const i=e[r],s=Math.abs(i-t[r]),l=Math.abs(i-n[r]);s>a&&(a=s),l>a&&(a=l)}return a}function PH(e,t,n,a,r){const{globalSequenceId:i,interpolationType:s,values:l}=a;let o;o=-1===i?e.model.sequences[n].interval[0]:0;const u=t[0],c=t[t.length-1],d=r[u];if(0!==s&&d!==o){(function(e,t){for(let n=0,a=e.length;n<a;n++)if(e[n]!==t[n])return!1;return!0})(l[u],l[c])||e.addSevere(`Missing opening track for ${function(e,t,n){return-1===n?`sequence "${e.model.sequences[t].name}"`:`global sequence ${n}`}(e,n,i)} at frame ${o} where it is needed`)}if(t.length>2){let n=l[t[0]],a=l[t[1]];for(let i=2,s=t.length;i<s;i++){const s=l[t[i]],o=t[i-1],u=NH(n,a,s);0===u?e.addUnused(`Track ${o} at frame ${r[o]} has exactly the same value as tracks ${o-1} and ${o+1}`):u<.001&&e.addUnused(`Track ${o} at frame ${r[o]} has roughly the same value as tracks ${o-1} and ${o+1}`),n=a,a=s}}}function kH(e,t){let n;t instanceof ro?(e.assertWarning(t.frames.length>0,"Zero tracks"),n=t.frames):(e.assertError(t.tracks.length>0,"Zero tracks"),n=t.tracks);const a=t.globalSequenceId,r=[];if(-1===a){e.assertWarning(e.model.sequences.length>0,"This animation exists, but the model has no sequences");for(let t=0,n=e.model.sequences.length;t<n;t++)r.push([])}else{if(!zH(e,e.model.globalSequences,a,"global sequence"))return;r[a]=[]}if(function(e,t,n,a){let r=-1/0;for(let i=0,s=t.length;i<s;i++){const s=t[i];e.assertWarning(s>=0,`Track ${i} has a negative frame ${s}`),s===r?e.addWarning(`Track ${i} has the same frame ${s} as track ${i-1}`):s<r&&e.addSevere(`Track ${i} at frame ${s} is lower than the track before it at ${r}`);const l=BH(e,s,n);-1!==l?a[l].push(i):0!==s&&t.length>1&&(-1===n?e.addUnused(`Track ${i} at frame ${s} is not in any sequence`):e.addUnused(`Track ${i} at frame ${s} is not in global sequence ${n}`)),r=s}}(e,n,a,r),t instanceof ro)for(let a=0,i=r.length;a<i;a++){const i=r[a];i&&i.length>1&&PH(e,i,a,t,n)}}const OH=new Set(["attack","birth","cinematic","death","decay","dissipate","morph","portrait","sleep","spell","stand","walk","ready"]),DH=new Set([1,2,11,21,31,32,33,34,35,36,37]),FH=new Map([["KMTF","Texture ID"],["KMTA","Alpha"],["KMTE","Emissive Gain"],["KFC3","Fresnel Color"],["KFCA","Fresnel Opacity"],["KFTC","Fresnel Team Color"],["KTAT","Translation"],["KTAR","Rotation"],["KTAS","Scaling"],["KGAO","Alpha"],["KGAC","Color"],["KGTR","Translation"],["KGRT","Rotation"],["KGSC","Scaling"],["KLAS","Attenuation Start"],["KLAE","Attenuation End"],["KLAC","Color"],["KLAI","Intensity"],["KLBI","Ambient Intensity"],["KLBC","Ambient Color"],["KLAV","Visibility"],["KATV","Visibility"],["KPEE","Emission Rate"],["KPEG","Gravity"],["KPLN","Longitude"],["KPLT","Latitude"],["KPEL","Lifespan"],["KPES","Speed"],["KPEV","Visibility"],["KP2E","Emission Rate"],["KP2G","Gravity"],["KP2L","Latitude"],["KP2R","Variation"],["KP2N","Length"],["KP2W","Width"],["KP2S","Speed"],["KP2V","Visibility"],["KPPA","Alpha"],["KPPC","Color"],["KPPE","EmissionRate"],["KPPL","LifeSpan"],["KPPS","Speed"],["KPPV","Visibility"],["KRHA","Height Above"],["KRHB","Height Below"],["KRAL","Alpha"],["KRCO","Color"],["KRTX","Texture Slot"],["KRVS","Visibility"],["KCTR","Translation"],["KTTR","Rotation"],["KCRL","Target Translation"]]);function GH(e){return e instanceof no?"Extent":e instanceof ao?"Sequence":"number"==typeof e?"GlobalSequence":e instanceof po?"Texture":e instanceof mo?"Material":e instanceof fo?"Layer":e instanceof _o?"TextureAnimation":e instanceof go?"Geoset":e instanceof bo?"GeosetAnimation":e instanceof vo?"Bone":e instanceof Ao?"Light":e instanceof yo?"Helper":e instanceof So?"Attachment":e instanceof To?"ParticleEmitter":e instanceof xo?"ParticleEmitter2":e instanceof Eo?"ParticleEmitterPopcorn":e instanceof Lo?"RibbonEmitter":e instanceof Uo?"EventObject":e instanceof Io?"Camera":e instanceof Ro?"CollisionShape":e instanceof Co?"FaceEffect":e instanceof ro?FH.get(e.name):(console.warn("Unknown object type",e),"Unknown")}function VH(e,t){let n=GH(e);return e instanceof ro||e instanceof no||(n+=` ${t}`),(e instanceof ao||e instanceof wo||e instanceof Io)&&(n+=` - "${e.name}"`),(e instanceof po||e instanceof Co)&&(e.path.length&&(n+=` - "${Sl(e.path)}"`),e instanceof po&&(1===e.replaceableId?n+=" - Team color":2===e.replaceableId?n+=" - Team glow":e.replaceableId>0&&(n+=` - Replaceable ID ${e.replaceableId}`))),n}function KH(e,t,n){const a=t.length;if(a){const r=t[0]instanceof co,i=t[0]instanceof wo;for(let s=0;s<a;s++){const a=t[s];if(e.push(a,s),n&&n(e,a,s),r){KH(e,a.animations,$H)}if(i){const t=a,n=t.objectId,r=t.parentId;e.assertError(-1===r||XH(e,r),`Invalid parent ${r}`),e.assertError(n!==r,"Same object and parent")}e.pop()}}}function HH(e,t,n,a){return n>=0&&n<t.length?(e.addReference(t[n]),t[n]):void e.addError(`Invalid ${a} ${n}`)}function zH(e,t,n,a){return void 0!==HH(e,t,n,a)}function jH(e,t,n,a){const r=e.objects[n];var i,s;if(a&&e.assertError((s=255,(i=n)>=0&&i<=s),`Vertex ${t}: References bone ${n} but there can only be 256 bones in an HD model`),r)if(r instanceof vo){const t=e.boneUsageMap.get(n)||0;e.boneUsageMap.set(n,t+1)}else e.addSevere(`Vertex ${t}: Attached to "${r.name}" which is not a bone`);else e.addError(`Vertex ${t}: Attached to object ${n} which does not exist`)}function XH(e,t){for(const n of e.objects)if(n.objectId===t)return!0;return!1}function $H(e,t){const n=t.name,a=t.interpolationType;e.assertWarning("KP2R"!==n,"Using a variation animation."),e.assertWarning("KP2G"!==n,"Using a gravity animation."),e.assertWarning("Visibility"!==FH.get(n)||0===a,"Interpolation type not set to None"),kH(e,t)}function JH(e){const t=e.nodes;for(let e=t.length-1;e>=0;e--){const n=t[e];"node"===n.type&&(n.errors||n.severe||n.warnings||n.unused||void 0!==n.uses&&!n.uses?JH(n):t.splice(e,1))}}function WH(e,t){e.push(t,0);const{max:n,min:a}=t;(n[0]-a[0]<0||n[1]-a[1]<0||n[2]-a[2]<0)&&e.addWarning("Negative extents"),e.pop()}class qH{constructor(e){this.objects=[],this.map=new Map,this.foundStand=!1,this.foundDeath=!1,this.boneUsageMap=new Map,this.model=e,this.current={type:"node",name:"",errors:0,severe:0,warnings:0,unused:0,nodes:[]},this.stack=[this.current],this.addObjects(e.sequences),this.addObjects(e.globalSequences),this.addObjects(e.textures),this.addObjects(e.materials),this.addObjects(e.textureAnimations),this.addObjects(e.geosets),this.addObjects(e.geosetAnimations),this.addObjects(e.bones),this.addObjects(e.lights),this.addObjects(e.helpers),this.addObjects(e.attachments),this.addObjects(e.particleEmitters),this.addObjects(e.particleEmitters2),this.addObjects(e.particleEmittersPopcorn),this.addObjects(e.ribbonEmitters),this.addObjects(e.cameras),this.addObjects(e.eventObjects),this.addObjects(e.collisionShapes),this.addObjects(e.faceEffects)}addObjects(e){if(e.length){const t=e[0]instanceof wo;for(let n=0,a=e.length;n<a;n++){const a=e[n],r={type:"node",name:VH(a,n),errors:0,severe:0,warnings:0,unused:0,nodes:[]};t||(r.uses=0),this.map.set(a,r)}t&&this.objects.push(...e)}}push(e,t){let n=this.map.get(e);if(!n){n={type:"node",name:VH(e,t),errors:0,severe:0,warnings:0,unused:0,nodes:[]}}this.current.nodes.push(n),this.current=n,this.stack.unshift(n)}pop(){this.stack.shift(),this.current=this.stack[0]}addReference(e){const t=this.map.get(e);void 0!==t.uses&&(t.uses+=1)}addImplicitReference(){const e=this.current;void 0!==e.uses&&(e.uses+=1)}addError(e){this.current.nodes.push({type:"error",message:e});for(const e of this.stack)e.errors+=1}addSevere(e){this.current.nodes.push({type:"severe",message:e});for(const e of this.stack)e.severe+=1}addWarning(e){this.current.nodes.push({type:"warning",message:e});for(const e of this.stack)e.warnings+=1}addUnused(e){this.current.nodes.push({type:"unused",message:e});for(const e of this.stack)e.unused+=1}assertError(e,t){e||this.addError(t)}assertSevere(e,t){e||this.addSevere(t)}assertWarning(e,t){e||this.addWarning(t)}assertUnused(e,t){e||this.addUnused(t)}}function YH(e,t,n){const a=t.name.toLowerCase().trim().split("-")[0].split(/\s+/);let r=a[0];const i=t.interval,s=i[1]-i[0],l=e.model.sequences;for(let t=0;t<n;t++){const n=l[t],a=n.interval;800===e.model.version&&(i[0]===a[0]?e.addSevere(`This sequence starts at the same frame as sequence ${t} "${n.name}"`):i[0]<a[1]&&e.addSevere(`This sequence starts before sequence ${t} "${n.name}" ends`))}"alternate"===r&&(r=a[1]),"stand"===r&&(e.foundStand=!0),"death"===r&&(e.foundDeath=!0),e.addImplicitReference(),e.assertWarning(OH.has(r),`"${r}" is not a standard name`),e.assertWarning(0!==s,"Zero length"),e.assertWarning(s>-1,`Negative length: ${s}`),WH(e,t.extent)}function ZH(e,t){e.assertWarning(0!==t,"Zero length"),e.assertWarning(t>=0,`Negative length: ${t}`)}function QH(e,t){const n=t.replaceableId,a=t.path.toLowerCase(),r=Tl(a);e.assertError(""===a||".blp"===r||".tga"===r||".tif"===r||".dds"===r,`Corrupted path: "${a}"`),e.assertError(0===n||DH.has(n),`Unknown replaceable ID: ${n}`),e.assertWarning(""===a||0===n,`Path "${a}" and replaceable ID ${n} used together`)}function ez(e,t){const n=t.layers,a=t.shader;e.model.version>800&&e.assertWarning(""===a||"Shader_SD_FixedFunction"===a||"Shader_HD_DefaultUnit"===a,`Unknown shader: "${a}"`),n.length?KH(e,n,tz):e.addWarning("No layers")}function tz(e,t){const n=e.model.textures,a=e.model.textureAnimations;for(const a of function(e){for(const t of e.animations)if("KMTF"===t.name)return Sb(t.values.map(e=>e[0]));return[e.textureId]}(t))zH(e,n,a,"texture");const r=t.textureAnimationId;-1!==r&&zH(e,a,r,"texture animation");const i=t.filterMode;e.assertWarning(i>=0&&i<=6,`Invalid filter mode: ${t.filterMode}`)}function nz(e,t,n){const a=e.model.geosetAnimations,r=HH(e,e.model.materials,t.materialId,"material");let i=!1;if(r&&"Shader_HD_DefaultUnit"===r.shader&&(i=!0),!i){const n=22299;e.assertSevere(t.vertices.length<n,"Too many vertices in one geoset: "+t.vertices.length/3)}if(function(e,t){if(e.model.version>800&&t.skin.length){e.assertWarning(0===t.vertexGroups.length,"This geoset has both skin/weights and vertex groups");const n=t.skin;for(let t=0,a=n.length/8;t<a;t++){const a=8*t,r=n[a],i=n[a+1],s=n[a+2],l=n[a+3],o=n[a+4],u=n[a+5],c=n[a+6],d=n[a+7];o>0&&jH(e,t,r,!0),u>0&&jH(e,t,i,!0),c>0&&jH(e,t,s,!0),d>0&&jH(e,t,l,!0);const h=o+u+c+d;0===h?e.addSevere(`Vertex ${t}: Not attached to anything`):255!==h&&e.addSevere(`Vertex ${t}: The weights are not normalized to 1`)}}else if(e.model.bones.length){const n=t.vertexGroups,a=t.matrixGroups,r=t.matrixIndices,i=[];for(let e=0,t=a.length,n=0;e<t;e++)i.push(r.subarray(n,n+a[e])),n+=a[e];for(let t=0,a=n.length;t<a;t++){const a=i[n[t]];if(a)for(const n of a)jH(e,t,n,!1);else{const a=n[t];255===a?e.addSevere(`Vertex ${t}: Not attached to anything`):e.addSevere(`Vertex ${t}: Attached to vertex group ${a} which does not exist`)}}}}(e,t),a.length){const t=[];for(let e=0,r=a.length;e<r;e++)a[e].geosetId===n&&t.push(e);e.assertWarning(t.length<=1,`Referenced by ${t.length} geoset animations: ${t.join(", ")}`)}t.faces.length?e.addImplicitReference():e.addWarning("Zero faces"),t.sequenceExtents.length!==e.model.sequences.length&&800===e.model.version&&e.addWarning(`Number of sequence extents (${t.sequenceExtents.length}) does not match the number of sequences (${e.model.sequences.length})`),WH(e,t.extent);for(const n of t.sequenceExtents)WH(e,n)}function az(e,t){const n=e.model.geosets,a=t.geosetId;e.addImplicitReference(),zH(e,n,a,"geoset")}function rz(e,t,n){const a=e.model.geosets,r=e.model.geosetAnimations,i=t.geosetId,s=t.geosetAnimationId;if(-1!==i&&zH(e,a,i,"geoset"),-1!==s&&zH(e,r,s,"geoset animation")){const t=r[s];-1!==i&&t.alpha<.1&&!function(e,t){for(const n of e.animations)if(n.name===t)return!0;return!1}(t,"KGAO")&&e.addSevere(`Referencing geoset ${i} and geoset animation ${s} with a 0 alpha, the geoset may be invisible`)}e.assertWarning(e.boneUsageMap.get(n)>0,"There are no vertices attached to this bone")}function iz(e,t){const n=t.attenuation;e.assertWarning(n[0]>=80,`Minimum attenuation should probably be bigger than or equal to 80, but is ${n[0]}`),e.assertWarning(n[1]<=200,`Maximum attenuation should probably be smaller than or equal to 200, but is ${n[1]}`),e.assertWarning(n[1]-n[0]>0,"The maximum attenuation should be bigger than the minimum, but isn't")}function sz(e,t){const n=t.path.toLowerCase();e.assertError(n.endsWith(".mdl")||n.endsWith(".mdx"),"Invalid path")}function lz(e,t){const n=t.replaceableId;zH(e,e.model.textures,t.textureId,"texture");const a=t.filterMode;e.assertWarning(a>=0&&a<=4,`Invalid filter mode: ${t.filterMode}`),e.assertError(0===n||DH.has(n),`Invalid replaceable ID: ${n}`),1048576&t.flags&&e.assertSevere(0!==t.speed&&0!==t.latitude,"XY Quad emitters must have a non-zero speed and latitude"),e.assertSevere(t.timeMiddle>=0&&t.timeMiddle<=1,`Expected time middle to be between 0 and 1, got ${t.timeMiddle}`),t.squirt&&!function(e,t){for(const n of e.animations)if(n.name===t)return n}(t,"KP2E")&&e.addSevere("Using squirt without animating the emission rate")}function oz(e,t){e.assertSevere(t.animationVisiblityGuide.length>0,"No animation visibility guide")}function uz(e,t){zH(e,e.model.materials,t.materialId,"material")}function cz(e,t){kH(e,t)}function dz(e,t){e.addImplicitReference()}function hz(e,t){const n=t.path;n.length&&e.assertError(n.endsWith(".facefx")||n.endsWith(".facefx_ingame"),`Corrupted face effect path: "${n}"`),e.addImplicitReference()}function fz(e,t){return{vertices:new Float32Array([-e,t,0,-e,-t,0,e,-t,0,e,t,0]),uvs:new Float32Array([0,0,0,1,1,1,1,0]),faces:new Uint16Array([0,1,2,0,2,3]),edges:new Uint16Array([0,1,1,2,2,3,3,0]),boundingRadius:Math.hypot(e,t)}}function mz(){return fz(1,1)}function pz(e,t,n){return{vertices:new Float32Array([-e,-t,-n,-e,-t,n,-e,t,-n,-e,t,n,e,t,-n,e,t,n,e,-t,-n,e,-t,n]),uvs:new Float32Array([0,0,0,1,.25,0,.25,1,.5,0,.5,1,.75,0,.75,1]),faces:new Uint16Array([0,1,2,1,3,2,2,3,4,3,5,4,4,5,6,5,7,6,6,7,0,7,1,0,0,2,4,0,4,6,1,5,3,1,7,5]),edges:new Uint16Array([0,1,2,3,4,5,6,7,0,2,2,4,4,6,6,0,1,3,3,5,5,7,7,1]),boundingRadius:Math.hypot(e,t,n)}}function _z(){return pz(1,1,1)}function gz(e,t,n){const a=(t+1)*(n+1),r=new Float32Array(3*a),i=new Float32Array(2*a),s=new Uint16Array(t*n*6),l=new Uint16Array(t*n*6);for(let a=0,s=0,l=0;a<=t;a++){const o=a*Math.PI/t,u=Math.sin(o),c=Math.cos(o);for(let o=0;o<=n;o+=1,s+=3,l+=2){const d=2*o*Math.PI/n,h=Math.sin(d),f=Math.cos(d);r[s+0]=f*u*e,r[s+1]=h*u*e,r[s+2]=c*e,i[l+0]=o/n,i[l+1]=1-a/t}}for(let e=0,a=0;e<t;e++)for(let t=0;t<n;t+=1,a+=6){const r=e*(n+1)+t,i=r+n+1;s[a+0]=r,s[a+1]=i,s[a+2]=r+1,s[a+3]=i,s[a+4]=i+1,s[a+5]=r+1,l[a+0]=r,l[a+1]=i,l[a+2]=r,l[a+3]=r+1,l[a+4]=i,l[a+5]=i+1}return{vertices:r,uvs:i,faces:s,edges:l,boundingRadius:e}}function bz(e,t){return gz(1,e,t)}function wz(e,t,n){const a=2*((n=Math.max(n,3))+1)+2,r=new Float32Array(3*a),i=new Float32Array(2*a),s=new Uint16Array(12*n),l=new Uint16Array(10*n),o=2*Math.PI/n;let u=0,c=0;for(let a=0;a<n+1;a+=1,u+=6,c+=4){const s=Math.cos(o*a)*e,l=Math.sin(o*a)*e,d=a/n;r[u+0]=s,r[u+1]=l,r[u+2]=t,r[u+3]=s,r[u+4]=l,r[u+5]=-t,i[c+0]=d,i[c+1]=1,i[c+2]=d,i[c+3]=0}r[u+0]=0,r[u+1]=0,r[u+2]=t,r[u+3]=0,r[u+4]=0,r[u+5]=-t,i[c+0]=0,i[c+1]=1,i[c+2]=0,i[c+3]=0;for(let e=0,t=0,r=0;e<n;e+=1,t+=12,r+=10){const n=2*e;s[t+0]=n+0,s[t+1]=n+1,s[t+2]=(n+3)%(a-2),s[t+3]=n+0,s[t+4]=(n+3)%(a-2),s[t+5]=(n+2)%(a-2),s[t+6]=n+0,s[t+7]=(n+2)%(a-2),s[t+8]=a-2,s[t+9]=n+1,s[t+10]=(n+3)%(a-2),s[t+11]=a-1,l[r+0]=n+0,l[r+1]=n+1,l[r+2]=n+0,l[r+3]=(n+2)%(a-2),l[r+4]=n+1,l[r+5]=(n+3)%(a-2),l[r+6]=n+0,l[r+7]=a-2,l[r+8]=n+1,l[r+9]=a-1}return{vertices:r,uvs:i,faces:s,edges:l,boundingRadius:Math.hypot(e,t)}}function vz(e){return wz(1,1,e)}function Az(e,t,n,a){const r=2*Math.tan(e/2),i=r*n/2,s=n*t/2,l=r*a/2,o=a*t/2;return{vertices:new Float32Array([-s,-i,n,-s,i,n,-o,-l,a,-o,l,a,o,-l,a,o,l,a,s,-i,n,s,i,n]),uvs:new Float32Array([0,0,0,1,.25,0,.25,1,.5,0,.5,1,.75,0,.75,1]),faces:new Uint16Array([0,1,2,1,3,2,2,3,4,3,5,4,4,5,6,5,7,6,6,7,0,7,1,0,0,2,4,0,4,6,1,5,3,1,7,5]),edges:new Uint16Array([0,1,2,3,4,5,6,7,0,2,2,4,4,6,6,0,1,3,3,5,5,7,7,1]),boundingRadius:Math.hypot(o,l)}}function yz(e,t,n,a){if(n.length)for(const[r,i]of n.entries())i.writeMdl(e,t.version),a.push({name:VH(i,r),source:e.buffer}),e.clear()}function Sz(e,t,n,a){if(n.length){const r=GH(n[0])+"s",i=[];yz(e,t,n,i),t.saveStaticObjectsBlock(e,r,n),a.push({name:r,source:e.buffer,nodes:i}),e.clear()}}const Tz={sanityTest:function(e){const t=new qH(e);!function(e){const t=e.model.version;800!==t&&900!==t&&1e3!==t&&e.addWarning(`Unknown version: ${t}`),900===t&&e.addError("Version 900 is not supported by Warcrft 3"),""!==e.model.animationFile&&e.addWarning(`The animation file should probably be empty, currently set to: "${e.model.animationFile}"`),WH(e,e.model.extent)}(t),function(e){const t=e.model.sequences;t.length?(KH(e,t,YH),e.assertSevere(e.foundStand,'Missing "Stand" sequence'),e.assertSevere(e.foundDeath,'Missing "Death" sequence')):e.addWarning("No sequences")}(t),KH(t,e.globalSequences,ZH),function(e){const t=e.model.textures;t.length?KH(e,t,QH):e.addWarning("No textures")}(t),KH(t,e.materials,ez),KH(t,e.textureAnimations),KH(t,e.geosets,nz),KH(t,e.geosetAnimations,az),KH(t,e.bones,rz),KH(t,e.lights,iz),KH(t,e.helpers),function(e){const t=e.model.attachments;let n=!1;for(const a of t){const t=a.path;if(t.length){const n=t.toLowerCase();e.assertError(n.endsWith(".mdl")||n.endsWith(".mdx"),`Invalid path "${t}"`)}a.name.startsWith("Origin Ref")&&(n=!0)}n||e.addWarning("Missing the Origin attachment point")}(t),function(e){const t=e.model.pivotPoints,n=e.objects;e.assertWarning(t.length===n.length,`Expected ${n.length} pivot points, got ${t.length}`)}(t),KH(t,e.particleEmitters,sz),KH(t,e.particleEmitters2,lz),e.version>800&&KH(t,e.particleEmittersPopcorn,oz),KH(t,e.ribbonEmitters,uz),KH(t,e.eventObjects,cz),KH(t,e.cameras,dz),KH(t,e.collisionShapes),e.version>800&&(KH(t,e.faceEffects,hz),function(e){const t=e.model.bindPose,n=e.objects;t.length&&n.length&&e.assertWarning(t.length===n.length+1,`Expected ${n.length+1} matrices, got ${t.length}`)}(t));const n=t.stack[0];JH(n);const{nodes:a,errors:r,severe:i,warnings:s}=n;let{unused:l}=n;for(const e of a)"node"===e.type&&0===e.uses&&(l+=1);return{type:"node",nodes:a,errors:r,severe:i,warnings:s,unused:l}},createPrimitive:function(e,t,n){let a,r,i,s=1;n&&(a=n.lines,r=n.color,i=n.texture,n.twoSided&&(s|=16));const l=new Po,o=l.extent,u=t.boundingRadius;o.min.fill(-u),o.max.fill(u),o.boundsRadius=u;const c=new po;c.path="PLACEHOLDER",l.textures[0]=c;const d=new mo,h=new fo;h.textureId=0,h.flags=s,d.layers[0]=h,l.materials[0]=d;const f=new go;f.vertices=t.vertices,f.uvSets[0]=t.uvs,f.matrixGroups=new Uint32Array([1]),f.matrixIndices=new Uint32Array([0]),f.vertexGroups=new Uint8Array(t.vertices.length/3);let m=4,p=t.faces;if(a&&(m=1,p=t.edges),f.faceTypeGroups=new Uint32Array([m]),f.faceGroups=new Uint32Array([p.length]),f.faces=p,l.geosets[0]=f,r){const e=new bo;e.geosetId=0,e.color=r,l.geosetAnimations[0]=e}const _=new vo;return _.objectId=0,l.bones[0]=_,e.load(l,e=>e===l?l:i)},primitives:b,mdlStructure:function(e){const t=new to,n=[];if(e.saveVersionBlock(t),n.push({name:"Version",source:t.buffer}),t.clear(),e.saveModelBlock(t),n.push({name:"Model",source:t.buffer}),t.clear(),Sz(t,e,e.sequences,n),e.globalSequences.length&&(e.saveGlobalSequenceBlock(t),n.push({name:"GlobalSequences",source:t.buffer}),t.clear()),Sz(t,e,e.textures,n),e.materials.length){const a=[];for(const[n,r]of e.materials.entries()){const i=[];yz(t,e,r.layers,i),r.writeMdl(t,e.version),a.push({name:`Material ${n}`,source:t.buffer,nodes:i}),t.clear()}e.saveStaticObjectsBlock(t,"Materials",e.materials),n.push({name:"Materials",source:t.buffer,nodes:a}),t.clear()}return Sz(t,e,e.textureAnimations,n),yz(t,e,e.geosets,n),yz(t,e,e.geosetAnimations,n),yz(t,e,e.bones,n),yz(t,e,e.lights,n),yz(t,e,e.helpers,n),yz(t,e,e.attachments,n),e.pivotPoints.length&&(e.savePivotPointBlock(t),n.push({name:"PivotPoints",source:t.buffer}),t.clear()),yz(t,e,e.particleEmitters,n),yz(t,e,e.particleEmitters2,n),yz(t,e,e.particleEmittersPopcorn,n),yz(t,e,e.ribbonEmitters,n),yz(t,e,e.cameras,n),yz(t,e,e.eventObjects,n),yz(t,e,e.collisionShapes,n),yz(t,e,e.faceEffects,n),e.bindPose.length&&(e.saveBindPoseBlock(t),n.push({name:"BindPose",source:t.buffer}),t.clear()),n}};function xz(e,t,n,a){if(n.has(t.name)){const r=n.get(t.name).args;for(const[n,i]of t.parameters.entries()){const{type:t,value:s}=i;if(1===t){for(const t of e.variables)if(t.name===s){r[n]=t.type;break}}else if(2===t){if(i.subParameters){const e=i.subParameters,t=a.getFunction(e.type,e.name);if(t){const e=t.returnType;e&&"AnyType"!==e&&(r[n]=e)}}}else if(3===t)if(s.startsWith("TRIGSTER_")||s.includes("\\"))r[n]="string";else if("true"===s||"false"===s)r[n]="boolean";else if(!isNaN(parseFloat(s))){const e=parseFloat(s);isNaN(e)||(Number.isInteger(e)&&!s.includes(".")?r[n]="integer":r[n]="real")}}}for(const r of t.parameters)2===r.type&&r.subParameters&&xz(e,r.subParameters,n,a);if(t instanceof uf)for(const r of t.ecas)xz(e,r,n,a)}class Ez{constructor(e,t){this.preplacedObjects=new Map,this.changes=[],this.stack=[],this.triggerData=e,this.stringTable=t}push(e){this.stack.unshift(e)}pop(){this.stack.shift()}change(e,t,n){this.changes.push({type:e,reason:t,data:n,stack:this.stackToString()})}stackToString(){return this.stack.map(e=>e instanceof of?e.value:e.name).reverse().join(" > ")}getTriggerName(){for(const e of this.stack)if(e instanceof cf)return e.name;return""}updateGUIReference(e,t){if(e.startsWith("gg_unit")||e.startsWith("gg_dest")){const n=this.preplacedObjects;n.get(e)||n.set(e,t)}}saveGUIReferences(e,t){const n=[];for(const[e,t]of this.preplacedObjects)t||n.push(e);if(n.length){const a=new cf;a.name="PreplacedObjectReferences",a.isEnabled=1,a.isInitiallyOff=1;for(const e of n){const t=new uf;t.type=2,t.isEnabled=1,e.startsWith("gg_unit")?t.name="RemoveUnit":e.startsWith("gg_dest")&&(t.name="RemoveDestructable");const n=new of;n.type=1,n.value=e,t.parameters[0]=n,a.ecas.push(t)}e.push(a),t.push(new nf),this.change("references","Saved references to preplaced objects lost due to conversions",n.join("\n"))}}}function Lz(e){return function(e,t){const n=new uf;n.type=2,n.name=t?"CommentString":"CustomScriptCode",n.isEnabled=1;const a=new of;return a.type=3,a.value=e,n.parameters[0]=a,n}(e,!1)}function Iz(e,t){const n=new uf;return n.name=e.name,n.type=e.type,n.group=t,n.isEnabled=1,n.parameters.push(...e.parameters),n}function Uz(e,t){return 0===t&&("AndMultiple"===e||"OrMultiple"===e||"IfThenElseMultiple"===e)}function Rz(e){const t=[];for(const n of e)if("CustomScriptCode"===n.name){const e=n.parameters[0].value;if(js(e)>239){const a=Xs(e,239),r=a.length,i=r-1;for(let e=0;e<r;e++){let r="";e>0&&(r+="*/"),r+=a[e],e<i&&(r+="/*");const s=Lz(r);s.group=n.group,t.push(s)}}else t.push(n)}else t.push(n);return t}function Cz(e){return e.split("").map(e=>e.charCodeAt(0)>127?"_":e).join("").replace(/\s/g,"_")}const Mz=new Set(["OperatorCompareBoolean","OperatorCompareAbilityId","OperatorCompareBuffId","OperatorCompareDestructible","OperatorCompareDestructableCode","OperatorCompareButton","OperatorCompareGameDifficulty","OperatorCompareGameSpeed","OperatorCompareHeroSkill","OperatorCompareInteger","OperatorCompareItem","OperatorCompareItemType","OperatorCompareItemCode","OperatorCompareMouseButton","OperatorCompareMeleeDifficulty","OperatorCompareOrderCode","OperatorComparePlayer","OperatorComparePlayerColor","OperatorComparePlayerControl","OperatorComparePlayerSlotStatus","OperatorCompareRace","OperatorCompareReal","OperatorCompareString","OperatorCompareTechCode","OperatorCompareTerrainType","OperatorCompareTrigger","OperatorCompareUnit","OperatorCompareUnitCode","OperatorInt","OperatorReal"]),Bz=new Set(["EnumDestructablesInRectAllMultiple","EnumDestructablesInCircleBJMultiple","EnumItemsInRectBJMultiple","ForForceMultiple","ForGroupMultiple"]);function Nz(e,t,n){const a=Cz(t.name),r=[],i=[],s=[];for(const e of t.ecas)0===e.type?r.push(e):1===e.type?i.push(e):s.push(e);const l=[];if(r.length||i.length||s.length){const t=[],o=[],u=[],c=`gg_trg_${a}`,d=new of;d.type=3,d.value=c,t.push(`set ${c} = CreateTrigger()`);for(const a of r){a.parameters.unshift(d);for(const r of Pz(e,a,n))t.push(r.parameters[0].value)}if(i.length){t.push(`call TriggerAddCondition(${c}, Condition(function Trig_${a}_Conditions)`);for(const t of i)for(const a of Pz(e,t,n))o.push(`if ${a.parameters[0].value} then\r\n return true\r\nendif`)}if(s.length){t.push(`call TriggerAddAction(${c}, function Trig_${a}_Actions)`);for(const t of s)for(const a of Pz(e,t,n))u.push(a.parameters[0].value)}u.length&&l.push(`function Trig_${a}_Actions takes nothing returns nothing\r\n${u.join("\r\n")}\r\nendfunction`),o.length&&l.push(`function Trig_${a}_Conditions takes nothing returns boolean\r\n${o.join("\r\n")}\r\nreturn false\r\nendfunction`),l.push(`function InitTrig_${a} takes nothing returns nothing\r\n${t.join("\r\n")}\r\nendfunction`)}return l.join("\r\n")}function Pz(e,t,n){const a=t.name,r=[],i=t.parameters,s=e.triggerData.getFunction(t.type,t.name);if(!s)throw new Error(`Could not find a function signature: ${a}. Stack: ${e.stackToString()}`);let{args:l,scriptName:o}=s;const u=l.length;let c=!1,d=!1,h=!1;const f=t;if(o=o||t.name,u){const e=l[u-1];"code"===e||Bz.has(a)?c=!0:"boolexpr"===e?d=!0:"scriptcode"===e&&(h=!0)}if("IfThenElse"===a)r.push(`if ${kz(e,i[0],l[0],n)} then`),r.push(`call ${kz(e,i[1],l[1],n)}`),r.push("else"),r.push(`call ${kz(e,i[2],l[2],n)}`),r.push("endif");else if("OrMultiple"===a)r.push(f.ecas.slice().map(t=>Pz(e,t,n).map(e=>e.parameters[0].value)).join(" or "));else if("AndMultiple"===a)r.push(f.ecas.slice().map(t=>Pz(e,t,n).map(e=>e.parameters[0].value)).join(" and "));else if("ForLoopAMultiple"===a||"ForLoopBMultiple"===a||"ForLoopVarMultiple"===a){let t,s="A";if("ForLoopBMultiple"===a?s="B":"ForLoopVarMultiple"===a&&(s="Var"),"A"===s||"B"===s){t=`bj_forLoop${s}Index`;const a=`${t}End`;r.push(`set ${t} = ${kz(e,i[0],l[0],n)}`),r.push(`set ${a} = ${kz(e,i[1],l[1],n)}`),r.push("loop"),r.push(`exitwhen ${t} > ${a}`)}else t=kz(e,i[0],l[0],n),r.push(`set ${t} = ${kz(e,i[1],l[1],n)}`),r.push("loop"),r.push(`exitwhen ${t} > ${kz(e,i[2],l[2],n)}`);for(const t of f.ecas){const a=Pz(e,t,n);for(const e of a)r.push(`${e.parameters[0].value}`)}r.push(`set ${t} = ${t} + 1`),r.push("endloop")}else if("IfThenElseMultiple"===a){let t;const a=[],i=[];for(const e of f.ecas)0===e.group?t=e:1===e.group?a.push(e):2===e.group&&i.push(e);t&&r.push(`if ${Pz(e,t,n)[0].parameters[0].value} then`);for(const t of a){const a=Pz(e,t,n);for(const e of a)r.push(`${e.parameters[0].value}`)}if(i.length){r.push("else");for(const t of i){const a=Pz(e,t,n);for(const e of a)r.push(`${e.parameters[0].value}`)}}r.push("endif")}else if(c||d){const a=`Trig_${Cz(e.getTriggerName())}_Func${n.length}`;let s=`function ${a}`,u="nothing",c="call",h=i.length-1;const m=t.name.endsWith("Multiple");d&&(s=`Filter(${s})`,u="boolean",c="return"),m&&(h=i.length);const p=n.length;n[p]="NOTHING";const _=[...i.slice(0,h).map((t,a)=>kz(e,t,l[a],n)),s];let g;t instanceof uf?r.push(`call ${o}(${_.join(", ")})`):r.push(`${o}(${_.join(", ")})`),g=m?f.ecas.map(t=>Pz(e,t,n).map(e=>e.parameters[0].value).join("\r\n")).join("\r\n"):`${c} ${kz(e,i[h],l[h],n)}`,n[p]=`function ${a} takes nothing returns ${u}\r\n${g}\r\nendfunction`}else h?r.push(kz(e,f.parameters[0],"scriptcode",n)):"SetVariable"===a?r.push(`set ${kz(e,i[0],l[0],n)} = ${kz(e,i[1],l[1],n)}`):"OperatorString"===a?r.push(`${kz(e,i[0],l[0],n)} + ${kz(e,i[1],l[1],n)}`):Mz.has(a)?r.push(`${kz(e,i[0],l[0],n)} ${kz(e,i[1],l[1],n)} ${kz(e,i[2],l[2],n)}`):"CommentString"===a?r.push(`// ${i[0].value}`):"GetBooleanAnd"===a?r.push(`(${kz(e,i[0],l[0],n)} and ${kz(e,i[1],l[1],n)})`):"GetBooleanOr"===a?r.push(`(${kz(e,i[0],l[0],n)} or ${kz(e,i[1],l[1],n)})`):t instanceof uf?(0===t.type&&(l=["trigger",...l]),r.push(`call ${o}(${i.map((t,a)=>kz(e,t,l[a],n)).join(", ")})`)):t instanceof lf&&r.push(`${o}(${i.map((t,a)=>kz(e,t,l[a],n)).join(", ")})`);return r.map(e=>Lz(e))}function kz(e,t,n,a){const{type:r,value:i}=t;if(0===r){const t=e.triggerData.getPreset(i);if(void 0===t)throw new Error(`Failed to find a preset: "${i}"`);return t}if(1===r){if(i.startsWith("gg_"))return e.updateGUIReference(i,!1),i;{let n=`udg_${i}`;return t.isArray&&t.arrayIndex&&(n+=`[${kz(e,t.arrayIndex,"integer",a)}]`),n}}if(2===t.type)return Pz(e,t.subParameters,a)[0].parameters[0].value;if(3===t.type){const t=e.triggerData.getBaseType(n);if("string"===t&&"scriptcode"!==n){if(i.startsWith("TRIGSTR")&&e.stringTable){const t=e.stringTable.getString(i);if(void 0!==t)return`"${t.replace(/\r\n/g,"\\r\n")}"`;e.change("missingstring","Entry not found in the string table",i)}return`"${i.replace(/\\/g,"\\\\")}"`}return"integer"===t&&isNaN(parseInt(i))?`'${i}'`:i}return""}function Oz(e,t,n){return kz(e,t,n,[])}function Dz(e,t,n,a,r){const i=t.parameters,s=[];a.test&&s.push(a.test),a.tests&&s.push(...a.tests);for(const[t,a]of s)if(void 0===r[t]&&(r[t]=Oz(e,i[t],n[t])),a!==r[t])return!1;return!0}function Fz(e,t,n){if(t.name=n,t.type=e.triggerData.getFunctionType(n),t instanceof lf){e.stack[1].value=n}}function Gz(e,t,n,a){if(a.parameters){const r=t.parameters;t.parameters=a.parameters.map(t=>{if("number"==typeof t)return r[t];if("string"==typeof t){const n=new of;return e.triggerData.getPreset(t)?n.type=0:n.type=3,n.value=t,n}{const e=t[0],a=t[1],i=t[2],s=n[e];let l,o;if("integer"===s)l="OperatorInt";else{if("real"!==s)throw new Error(`Attempted to use an operator on a non-number parameter of type "${s}`);l="OperatorReal"}o="+"===a?"OperatorAdd":"-"===a?"OperatorSubtract":"*"===a?"OperatorMultiply":"OperatorDivide";const u=new of;u.value=l,u.type=2;const c=new lf;c.name=l,c.type=3;const d=r[e],h=new of;h.type=0,h.value=o;const f=new of;return f.type=3,f.value=`${i}`,c.beginParameters=1,c.parameters=[d,h,f],u.subParameters=c,u}})}}function Vz(e){return function(t,n){const a=t.triggerData.getFunction(n.type,n.name);if(!a)return console.warn(`transformer failed to get the signature for the input function: ${n.name}`),!1;const r=a.args,i=[];for(const[a,s]of Object.entries(e)){let e;e=Array.isArray(s)?s:[s];for(const s of e)if(Dz(t,n,r,s,i))return Fz(t,n,a),Gz(t,n,r,s),!0}return!1}}function Kz(e,t){const n=e.stack[1],a=e.stack[2],r=a.parameters;if("OperatorCompareBoolean"!==a.name)return!1;let i;i=a.parameters[0]===n?r[2]:r[0];const s=Oz(e,i,"boolean");if("true"!==s&&"false"!==s)return!1;a.name="OperatorComparePlayer";const l=t.parameters[1];return n.value="GetOwningPlayer",t.name="GetOwningPlayer",t.parameters.length=1,r[0]=n,r[1].value="true"===s?"OperatorEqualENE":"OperatorNotEqualENE",r[2]=l,!0}function Hz(e,t){const n=e.stack[1],a=e.stack[2],r=a.parameters;if("OperatorCompareBoolean"!==a.name)return!1;let i;i=a.parameters[0]===n?r[2]:r[0];const s=Oz(e,i,"boolean");if("true"!==s&&"false"!==s)return!1;a.name="OperatorCompareRace";const l=t.parameters[1];n.value="GetUnitRace",t.name="GetUnitRace",t.parameters.length=1,r[0]=n;const o="OperatorEqualENE"===r[1].value,u="true"===s;return r[1].value=o===u?"OperatorEqualENE":"OperatorNotEqualENE",r[1]=l,!0}function zz(e,t){if("OperatorCompareBoolean"!==e.stack[2].name)return!1;if("UNIT_TYPE_DEAD"!==Oz(e,t.parameters[1],"unittype"))return!1;return e.stack[1].value="IsUnitDeadBJ",t.name="IsUnitDeadBJ",t.parameters.length=1,!0}let jz,Xz=!1;function $z(e){return Vz({[e]:{}})}function Jz(e){return function(t){return Vz({[t]:{parameters:e}})}}function Wz(e,t){Xz||function(){if(!Xz){Xz=!0;const e=Jz([1,0]),t=Jz([1,0,2]),n=Jz([1,2,0]),a=Jz([2,0,1]),r=Jz([2,1,0]),i=Jz([0,2,3,1]),s=Jz([1,0,2,3]),l=Jz([3,0,1,2]),o=Jz([3,2,0,1]),u=Jz([3,2,1,0]);jz={UnitId:$z("String2UnitIdBJ"),UnitId2String:$z("UnitId2StringBJ"),GetObjectName:$z("GetAbilityName"),Sin:Vz({SinBJ:{parameters:[[0,"/",Math.PI/180]]}}),Cos:Vz({CosBJ:{parameters:[[0,"/",Math.PI/180]]}}),Tan:Vz({TanBJ:{parameters:[[0,"/",Math.PI/180]]}}),GetHandleId:$z("GetHandleIdBJ"),SubString:Vz({SubStringBJ:{parameters:[0,[1,"+",1],2]}}),StringHash:$z("StringHashBJ"),GetLocalizedString:$z("StringIdentity"),SetMapFlag:Vz({LockGameSpeedBJ:{tests:[[0,"MAP_LOCK_SPEED"],[1,"true"]],parameters:[]},UnlockGameSpeedBJ:{tests:[[0,"MAP_LOCK_SPEED"],[1,"false"]],parameters:[]}}),SetPlayerColor:Vz({SetPlayerColorBJ:{parameters:[0,1,"PlayerChangeColorRetain"]}}),SetPlayerAlliance:i("SetPlayerAllianceBJ"),SetPlayerTaxRate:o("SetPlayerTaxRateBJ"),SetPlayerOnScoreScreen:e("SetPlayerOnScoreScreenBJ"),GetPlayerTaxRate:a("GetPlayerTaxRateBJ"),TimerStart:Vz({StartTimerBJ:{test:[3,"null"],parameters:[0,2,1]}}),PauseTimer:Vz({PauseTimerBJ:{parameters:["PauseResumePause",0]}}),ResumeTimer:Vz({PauseTimerBJ:{parameters:["PauseResumeResume",0]}}),GroupAddUnit:e("GroupAddUnitSimple"),GroupRemoveUnit:e("GroupRemoveUnitSimple"),GroupImmediateOrderById:$z("GroupTrainOrderByIdBJ"),ForceAddPlayer:e("ForceAddPlayerSimple"),ForceRemovePlayer:e("ForceRemovePlayerSimple"),GetWorldBounds:$z("GetEntireMapRect"),TriggerRegisterTimerEvent:Vz({TriggerRegisterTimerEventPeriodic:{test:[2,"true"],parameters:[0,1]},TriggerRegisterTimerEventSingle:{test:[2,"false"],parameters:[0,1]}}),TriggerRegisterTimerExpireEvent:$z("TriggerRegisterTimerExpireEventBJ"),TriggerRegisterGameStateEvent:Vz({TriggerRegisterGameStateEventTimeOfDay:{test:[1,"GAME_STATE_TIME_OF_DAY"],parameters:[0,2,3]}}),TriggerRegisterDialogEvent:$z("TriggerRegisterDialogEventBJ"),TriggerRegisterGameEvent:Vz({TriggerRegisterShowSkillEventBJ:{test:[1,"EVENT_GAME_SHOW_SKILL"],parameters:[0]},TriggerRegisterBuildSubmenuEventBJ:{test:[1,"EVENT_GAME_BUILD_SUBMENU"],parameters:[0]},TriggerRegisterGameLoadedEventBJ:{test:[1,"EVENT_GAME_LOADED"],parameters:[0]},TriggerRegisterGameSavedEventBJ:{test:[1,"EVENT_GAME_SAVE"],parameters:[0]}}),GetClickedButton:$z("GetClickedButtonBJ"),GetClickedDialog:$z("GetClickedDialogBJ"),TriggerRegisterPlayerEvent:Vz({TriggerRegisterPlayerKeyEventBJ:[{test:[2,"EVENT_PLAYER_ARROW_LEFT_DOWN"],parameters:[0,1,"KeyEventTypeDepress","KeyEventKeyLeft"]},{test:[2,"EVENT_PLAYER_ARROW_RIGHT_DOWN"],parameters:[0,1,"KeyEventTypeDepress","KeyEventKeyRight"]},{test:[2,"EVENT_PLAYER_ARROW_DOWN_DOWN"],parameters:[0,1,"KeyEventTypeDepress","KeyEventKeyDown"]},{test:[2,"EVENT_PLAYER_ARROW_UP_DOWN"],parameters:[0,1,"KeyEventTypeDepress","KeyEventKeyUp"]},{test:[2,"EVENT_PLAYER_ARROW_LEFT_UP"],parameters:[0,1,"KeyEventTypeRelease","KeyEventKeyLeft"]},{test:[2,"EVENT_PLAYER_ARROW_RIGHT_UP"],parameters:[0,1,"KeyEventTypeRelease","KeyEventKeyRight"]},{test:[2,"EVENT_PLAYER_ARROW_DOWN_UP"],parameters:[0,1,"KeyEventTypeRelease","KeyEventKeyDown"]},{test:[2,"EVENT_PLAYER_ARROW_UP_UP"],parameters:[0,1,"KeyEventTypeRelease","KeyEventKeyUp"]}],TriggerRegisterPlayerMouseEventBJ:[{test:[2,"EVENT_PLAYER_MOUSE_DOWN"],parameters:[0,1,"MouseEventTypeDown"]},{test:[2,"EVENT_PLAYER_MOUSE_UP"],parameters:[0,1,"MouseEventTypeUp"]},{test:[2,"EVENT_PLAYER_MOUSE_MOVE"],parameters:[0,1,"MouseEventTypeMove"]}],TriggerRegisterPlayerEventVictory:{test:[2,"EVENT_PLAYER_VICTORY"],parameters:[0,1]},TriggerRegisterPlayerEventDefeat:{test:[2,"EVENT_PLAYER_DEFEAT"],parameters:[0,1]},TriggerRegisterPlayerEventLeave:{test:[2,"EVENT_PLAYER_LEAVE"],parameters:[0,1]},TriggerRegisterPlayerEventAllianceChanged:{test:[2,"EVENT_PLAYER_ALLIANCE_CHANGED"],parameters:[0,1]},TriggerRegisterPlayerEventEndCinematic:{test:[2,"EVENT_PLAYER_END_CINEMATIC"],parameters:[0,1]}}),TriggerRegisterPlayerUnitEvent:Vz({TriggerRegisterPlayerUnitEventSimple:{test:[3,"null"],parameters:[0,1,2]}}),GetLearnedSkill:$z("GetLearnedSkillBJ"),GetKillingUnit:$z("GetKillingUnitBJ"),GetTransportUnit:$z("GetTransportUnitBJ"),GetLoadedUnit:$z("GetLoadedUnitBJ"),GetIssuedOrderId:$z("GetIssuedOrderIdBJ"),TriggerRegisterUnitStateEvent:Vz({TriggerRegisterUnitLifeEvent:{test:[1,"UNIT_STATE_LIFE"],parameters:[0,2,3]},TriggerRegisterUnitManaEvent:{test:[1,"UNIT_STATE_MANA"],parameters:[0,2,3]}}),TriggerWaitForSound:$z("WaitForSoundBJ"),GetWidgetLife:$z("GetItemLifeBJ"),SetWidgetLife:$z("SetItemLifeBJ"),SetDestructableInvulnerable:$z("SetDestructableInvulnerableBJ"),IsDestructableInvulnerable:$z("IsDestructableInvulnerableBJ"),EnumDestructablesInRect:Vz({EnumDestructablesInRectAll:{test:[1,"null"],parameters:[0,2]}}),SetDestructableMaxLife:$z("SetDestructableMaxLifeBJ"),QueueDestructableAnimation:$z("QueueDestructableAnimationBJ"),SetDestructableAnimation:$z("SetDestructableAnimationBJ"),SetDestructableAnimationSpeed:Vz({SetDestAnimationSpeedPercent:{parameters:[0,[1,"*",100]]}}),ShowDestructable:e("ShowDestructableBJ"),GetTriggerDestructable:$z("GetDyingDestructable"),SetItemDropOnDeath:$z("SetItemDropOnDeathBJ"),SetItemDroppable:$z("SetItemDroppableBJ"),SetItemPlayer:$z("SetItemPlayerBJ"),SetItemInvulnerable:$z("SetItemInvulnerableBJ"),SetItemVisible:e("SetItemVisibleBJ"),IsItemOwned:Vz({CheckItemStatus:{parameters:[0,"ItemStatusOwned"]}}),IsItemPowerup:Vz({CheckItemStatus:{parameters:[0,"ItemStatusPowerup"]}}),IsItemSellable:Vz({CheckItemStatus:{parameters:[0,"ItemStatusSellable"]}}),IsItemPawnable:Vz({CheckItemStatus:{parameters:[0,"ItemStatusPawnable"]}}),IsItemIdPowerup:Vz({CheckItemcodeStatus:{parameters:[0,"ItemcodeStatusPowerup"]}}),IsItemIdSellable:Vz({CheckItemcodeStatus:{parameters:[0,"ItemcodeStatusSellable"]}}),IsItemIdPawnable:Vz({CheckItemcodeStatus:{parameters:[0,"ItemcodeStatusPawnable"]}}),EnumItemsInRect:Vz({EnumItemsInRectBJ:{test:[1,"null"],parameters:[0,2]}}),ShowUnit:Vz({ShowUnitShow:{test:[1,"true"],parameters:[0]},ShowUnitHide:{test:[1,"false"],parameters:[0]}}),SetUnitState:Vz({SetUnitLifeBJ:{test:[1,"UNIT_STATE_LIFE"],parameters:[0,2]},SetUnitManaBJ:{test:[1,"UNIT_STATE_MANA"],parameters:[0,2]}}),SetUnitFlyHeight:$z("SetUnitFlyHeightBJ"),SetUnitTurnSpeed:$z("SetUnitTurnSpeedBJ"),SetUnitAcquireRange:$z("SetUnitAcquireRangeBJ"),SetUnitCreepGuard:Vz({LockGuardPosition:{test:[1,"true"],parameters:[0]}}),GetUnitDefaultPropWindow:$z("GetUnitDefaultPropWindowBJ"),SetUnitScale:Vz({SetUnitScalePercent:{parameters:[0,[1,"*",100],[2,"*",100],[3,"*",100]]}}),SetUnitTimeScale:Vz({SetUnitTimeScalePercent:{parameters:[0,[1,"*",100]]}}),SetUnitBlendTime:$z("SetUnitBlendTimeBJ"),QueueUnitAnimation:$z("QueueUnitAnimationBJ"),SetUnitAnimation:Vz({ResetUnitAnimation:{test:[1,'"stand"'],parameters:[0]}}),AddUnitAnimationProperties:r("AddUnitAnimationPropertiesBJ"),SetHeroStr:Vz({ModifyHeroStat:{test:[2,"true"],parameters:["HeroStatStr",0,"ModifyMethodSet",1]}}),SetHeroAgi:Vz({ModifyHeroStat:{test:[2,"true"],parameters:["HeroStatAgi",0,"ModifyMethodSet",1]}}),SetHeroInt:Vz({ModifyHeroStat:{test:[2,"true"],parameters:["HeroStatInt",0,"ModifyMethodSet",1]}}),GetHeroStr:Vz({GetHeroStatBJ:{parameters:["HeroStatStr",0,1]}}),GetHeroAgi:Vz({GetHeroStatBJ:{parameters:["HeroStatAgi",0,1]}}),GetHeroInt:Vz({GetHeroStatBJ:{parameters:["HeroStatInt",0,1]}}),UnitModifySkillPoints:Vz({ModifyHeroSkillPoints:{parameters:[0,"0",1]}}),AddHeroXP:t("AddHeroXPSwapped"),GetUnitAbilityLevel:e("GetUnitAbilityLevelSwapped"),DecUnitAbilityLevel:e("DecUnitAbilityLevelSwapped"),IncUnitAbilityLevel:e("IncUnitAbilityLevelSwapped"),SetUnitAbilityLevel:t("SetUnitAbilityLevelSwapped"),SetUnitExploded:$z("SetUnitExplodedBJ"),PauseUnit:e("PauseUnitBJ"),IsUnitPaused:$z("IsUnitPausedBJ"),SelectUnit:Vz({SelectUnitAdd:{test:[1,"true"],parameters:[0]},SelectUnitRemove:{test:[1,"false"],parameters:[0]}}),UnitAddItem:e("UnitAddItemSwapped"),UnitRemoveItem:e("UnitRemoveItemSwapped"),UnitRemoveItemFromSlot:Vz({UnitRemoveItemFromSlotSwapped:{parameters:[0,[1,"+",1]]}}),UnitItemInSlot:Vz({UnitItemInSlotBJ:{parameters:[0,[1,"+",1]]}}),UnitInventorySize:$z("UnitInventorySizeBJ"),UnitDropItemSlot:Vz({UnitDropItemSlotBJ:{parameters:[0,1,[2,"+",1]]}}),UnitDropItemTarget:$z("UnitDropItemTargetBJ"),GetUnitState:e("GetUnitStateSwap"),SetUnitUseFood:e("SetUnitUseFoodBJ"),IsUnitOwnedByPlayer:Kz,IsUnitRace:Hz,IsUnitType:zz,IsUnitHidden:$z("IsUnitHiddenBJ"),IsUnitIllusion:$z("IsUnitIllusionBJ"),IsUnitInTransport:$z("IsUnitInTransportBJ"),IsUnitLoaded:$z("IsUnitLoadedBJ"),UnitShareVision:a("UnitShareVisionBJ"),UnitSuspendDecay:e("UnitSuspendDecayBJ"),UnitAddType:e("UnitAddTypeBJ"),UnitRemoveType:e("UnitRemoveTypeBJ"),UnitAddAbility:e("UnitAddAbilityBJ"),UnitRemoveAbility:e("UnitRemoveAbilityBJ"),UnitRemoveBuffs:Vz({UnitRemoveBuffsBJ:[{tests:[[1,"true"],[2,"false"]],parameters:["BuffTypePositive",0]},{tests:[[1,"false"],[2,"true"]],parameters:["BuffTypeNegative",0]},{tests:[[1,"true"],[2,"true"]],parameters:["BuffTypeAll",0]}]}),UnitRemoveBuffsEx:Vz({UnitRemoveBuffsBJ:{tests:[[1,"true"],[2,"true"],[3,"false"],[4,"false"],[5,"false"],[6,"true"],[7,"false"]],parameters:["BuffTypeNonTLife",0]}}),UnitAddSleep:$z("UnitSetCanSleepBJ"),UnitCanSleep:$z("UnitCanSleepBJ"),UnitIsSleeping:$z("UnitIsSleepingBJ"),UnitWakeUp:$z("UnitWakeUpBJ"),UnitApplyTimedLife:r("UnitApplyTimedLifeBJ"),UnitPauseTimedLife:e("UnitPauseTimedLifeBJ"),UnitSetUsesAltIcon:e("UnitSetUsesAltIconBJ"),UnitDamageTarget:Vz({UnitDamageTargetBJ:{tests:[[3,"true"],[4,"false"],[7,"WEAPON_TYPE_WHOKNOWS"]],parameters:[0,1,2,5,6]}}),IssueImmediateOrderById:$z("IssueTrainOrderByIdBJ"),AddResourceAmount:e("AddResourceAmountBJ"),WaygateActivate:e("WaygateActivateBJ"),WaygateIsActive:$z("WaygateIsActiveBJ"),AddItemToStock:s("AddItemToStockBJ"),AddUnitToStock:s("AddUnitToStockBJ"),RemoveItemFromStock:e("RemoveItemFromStockBJ"),RemoveUnitFromStock:e("RemoveUnitFromStockBJ"),Player:Vz({ConvertedPlayer:{parameters:[[0,"+",1]]}}),SetPlayerHandicap:Vz({SetPlayerHandicapBJ:{parameters:[0,[1,"*",100]]}}),SetPlayerHandicapXP:Vz({SetPlayerHandicapXPBJ:{parameters:[0,[1,"*",100]]}}),SetPlayerTechMaxAllowed:n("SetPlayerTechMaxAllowedSwap"),GetPlayerTechMaxAllowed:e("GetPlayerTechMaxAllowedSwap"),SetPlayerTechResearched:n("SetPlayerTechResearchedSwap"),GetPlayerTechCount:Vz({GetPlayerTechCountSimple:{test:[2,"true"],parameters:[1,0]}}),SetPlayerAbilityAvailable:r("SetPlayerAbilityAvailableBJ"),FogMaskEnable:Vz({FogMaskEnableOn:{test:[0,"true"],parameters:[]},FogMaskEnableOff:{test:[0,"false"],parameters:[]}}),FogEnable:Vz({FogEnableOn:{test:[0,"true"],parameters:[]},FogEnableOff:{test:[0,"false"],parameters:[]}}),SetCampaignMenuRace:Vz({SetCampaignMenuRaceBJ:[{test:[0,"RACE_OTHER"],parameters:["CampaignIndexT"]},{test:[0,"RACE_HUMAN"],parameters:["CampaignIndexH"]},{test:[0,"RACE_UNDEAD"],parameters:["CampaignIndexU"]},{test:[0,"RACE_ORC"],parameters:["CampaignIndexO"]},{test:[0,"RACE_NIGHTELF"],parameters:["CampaignIndexN"]}]}),SetCampaignMenuRaceEx:Vz({SetCampaignMenuRaceBJ:[{test:[0,"bj_CAMPAIGN_OFFSET_XN"],parameters:["CampaignIndexXN"]},{test:[0,"bj_CAMPAIGN_OFFSET_XH"],parameters:["CampaignIndexXH"]},{test:[0,"bj_CAMPAIGN_OFFSET_XU"],parameters:["CampaignIndexXU"]},{test:[0,"bj_CAMPAIGN_OFFSET_XO"],parameters:["CampaignIndexXO"]}]}),LoadGame:$z("LoadGameBJ"),RenameSaveDirectory:$z("RenameSaveDirectoryBJ"),RemoveSaveDirectory:$z("RemoveSaveDirectoryBJ"),CopySaveGame:$z("CopySaveGameBJ"),GetFloatGameState:Vz({GetTimeOfDay:{test:[0,"GAME_STATE_TIME_OF_DAY"],parameters:[]}}),SetFloatGameState:Vz({SetTimeOfDay:{test:[0,"GAME_STATE_TIME_OF_DAY"],parameters:[1]}}),SetCustomCampaignButtonVisible:Vz({ShowCustomCampaignButton:{parameters:[[0,"+",1],1]}}),GetCustomCampaignButtonVisible:Vz({IsCustomCampaignButtonVisibile:{parameters:[[0,"+",1]]}}),DialogClear:$z("DialogClearBJ"),DialogSetMessage:$z("DialogSetMessageBJ"),DialogDisplay:r("DialogDisplayBJ"),InitGameCache:$z("InitGameCacheBJ"),SaveGameCache:$z("SaveGameCacheBJ"),StoreInteger:u("StoreIntegerBJ"),StoreReal:u("StoreRealBJ"),StoreBoolean:u("StoreBooleanBJ"),StoreUnit:u("StoreUnitBJ"),StoreString:u("StoreStringBJ"),HaveStoredBoolean:Vz({HaveStoredValue:{parameters:[2,"CacheValueTypeBoolean",1,0]}}),HaveStoredInteger:Vz({HaveStoredValue:{parameters:[2,"CacheValueTypeInteger",1,0]}}),HaveStoredReal:Vz({HaveStoredValue:{parameters:[2,"CacheValueTypeReal",1,0]}}),HaveStoredUnit:Vz({HaveStoredValue:{parameters:[2,"CacheValueTypeUnit",1,0]}}),HaveStoredString:Vz({HaveStoredValue:{parameters:[2,"CacheValueTypeString",1,0]}}),FlushGameCache:$z("FlushGameCacheBJ"),FlushStoredMission:e("FlushStoredMissionBJ"),GetStoredInteger:r("GetStoredIntegerBJ"),GetStoredReal:r("GetStoredRealBJ"),GetStoredBoolean:r("GetStoredBooleanBJ"),GetStoredString:r("GetStoredStringBJ"),InitHashtable:$z("InitHashtableBJ"),SaveInteger:u("SaveIntegerBJ"),SaveReal:u("SaveRealBJ"),SaveBoolean:u("SaveBooleanBJ"),SaveStr:u("SaveStringBJ"),SavePlayerHandle:u("SavePlayerHandleBJ"),SaveWidgetHandle:u("SaveWidgetHandleBJ"),SaveDestructableHandle:u("SaveDestructableHandleBJ"),SaveItemHandle:u("SaveItemHandleBJ"),SaveUnitHandle:u("SaveUnitHandleBJ"),SaveAbilityHandle:u("SaveAbilityHandleBJ"),SaveTimerHandle:u("SaveTimerHandleBJ"),SaveTriggerHandle:u("SaveTriggerHandleBJ"),SaveTriggerConditionHandle:u("SaveTriggerConditionHandleBJ"),SaveTriggerActionHandle:u("SaveTriggerActionHandleBJ"),SaveTriggerEventHandle:u("SaveTriggerEventHandleBJ"),SaveForceHandle:u("SaveForceHandleBJ"),SaveGroupHandle:u("SaveGroupHandleBJ"),SaveLocationHandle:u("SaveLocationHandleBJ"),SaveRectHandle:u("SaveRectHandleBJ"),SaveBooleanExprHandle:u("SaveBooleanExprHandleBJ"),SaveSoundHandle:u("SaveSoundHandleBJ"),SaveEffectHandle:u("SaveEffectHandleBJ"),SaveUnitPoolHandle:u("SaveUnitPoolHandleBJ"),SaveItemPoolHandle:u("SaveItemPoolHandleBJ"),SaveQuestHandle:u("SaveQuestHandleBJ"),SaveQuestItemHandle:u("SaveQuestItemHandleBJ"),SaveDefeatConditionHandle:u("SaveDefeatConditionHandleBJ"),SaveTimerDialogHandle:u("SaveTimerDialogHandleBJ"),SaveLeaderboardHandle:u("SaveLeaderboardHandleBJ"),SaveMultiboardHandle:u("SaveMultiboardHandleBJ"),SaveMultiboardItemHandle:u("SaveMultiboardItemHandleBJ"),SaveTrackableHandle:u("SaveTrackableHandleBJ"),SaveDialogHandle:u("SaveDialogHandleBJ"),SaveButtonHandle:u("SaveButtonHandleBJ"),SaveTextTagHandle:u("SaveTextTagHandleBJ"),SaveLightningHandle:u("SaveLightningHandleBJ"),SaveImageHandle:u("SaveImageHandleBJ"),SaveUbersplatHandle:u("SaveUbersplatHandleBJ"),SaveRegionHandle:u("SaveRegionHandleBJ"),SaveFogStateHandle:u("SaveFogStateHandleBJ"),SaveFogModifierHandle:u("SaveFogModifierHandleBJ"),LoadInteger:r("LoadIntegerBJ"),LoadReal:r("LoadRealBJ"),LoadBoolean:r("LoadBooleanBJ"),LoadStr:r("LoadStringBJ"),LoadPlayerHandle:r("LoadPlayerHandleBJ"),LoadWidgetHandle:r("LoadWidgetHandleBJ"),LoadDestructableHandle:r("LoadDestructableHandleBJ"),LoadItemHandle:r("LoadItemHandleBJ"),LoadUnitHandle:r("LoadUnitHandleBJ"),LoadAbilityHandle:r("LoadAbilityHandleBJ"),LoadTimerHandle:r("LoadTimerHandleBJ"),LoadTriggerHandle:r("LoadTriggerHandleBJ"),LoadTriggerConditionHandle:r("LoadTriggerConditionHandleBJ"),LoadTriggerActionHandle:r("LoadTriggerActionHandleBJ"),LoadTriggerEventHandle:r("LoadTriggerEventHandleBJ"),LoadForceHandle:r("LoadForceHandleBJ"),LoadGroupHandle:r("LoadGroupHandleBJ"),LoadLocationHandle:r("LoadLocationHandleBJ"),LoadRectHandle:r("LoadRectHandleBJ"),LoadBooleanExprHandle:r("LoadBooleanExprHandleBJ"),LoadSoundHandle:r("LoadSoundHandleBJ"),LoadEffectHandle:r("LoadEffectHandleBJ"),LoadUnitPoolHandle:r("LoadUnitPoolHandleBJ"),LoadItemPoolHandle:r("LoadItemPoolHandleBJ"),LoadQuestHandle:r("LoadQuestHandleBJ"),LoadQuestItemHandle:r("LoadQuestItemHandleBJ"),LoadDefeatConditionHandle:r("LoadDefeatConditionHandleBJ"),LoadTimerDialogHandle:r("LoadTimerDialogHandleBJ"),LoadLeaderboardHandle:r("LoadLeaderboardHandleBJ"),LoadMultiboardHandle:r("LoadMultiboardHandleBJ"),LoadMultiboardItemHandle:r("LoadMultiboardItemHandleBJ"),LoadTrackableHandle:r("LoadTrackableHandleBJ"),LoadDialogHandle:r("LoadDialogHandleBJ"),LoadButtonHandle:r("LoadButtonHandleBJ"),LoadTextTagHandle:r("LoadTextTagHandleBJ"),LoadLightningHandle:r("LoadLightningHandleBJ"),LoadImageHandle:r("LoadImageHandleBJ"),LoadUbersplatHandle:r("LoadUbersplatHandleBJ"),LoadRegionHandle:r("LoadRegionHandleBJ"),LoadFogStateHandle:r("LoadFogStateHandleBJ"),LoadFogModifierHandle:r("LoadFogModifierHandleBJ"),HaveSavedBoolean:Vz({HaveSavedValue:{parameters:[2,"HashtableValueTypeBoolean",1,0]}}),HaveSavedInteger:Vz({HaveSavedValue:{parameters:[2,"HashtableValueTypeInteger",1,0]}}),HaveSavedReal:Vz({HaveSavedValue:{parameters:[2,"HashtableValueTypeReal",1,0]}}),HaveSavedString:Vz({HaveSavedValue:{parameters:[2,"HashtableValueTypeString",1,0]}}),HaveSavedHandle:Vz({HaveSavedValue:{parameters:[2,"HashtableValueTypeHandle",1,0]}}),FlushParentHashtable:$z("FlushParentHashtableBJ"),FlushChildHashtable:e("FlushChildHashtableBJ"),ChooseRandomCreep:$z("ChooseRandomCreepBJ"),ChooseRandomNPBuilding:$z("ChooseRandomNPBuildingBJ"),ChooseRandomItem:$z("ChooseRandomItemBJ"),ChooseRandomItemEx:e("ChooseRandomItemExBJ"),ResetTerrainFog:$z("ResetTerrainFogBJ"),SetTerrainFogEx:Vz({SetTerrainFogExBJ:{parameters:[0,1,2,3,[4,"*",100],[5,"*",100],[6,"*",100]]}}),SetTimeOfDayScale:Vz({SetTimeOfDayScalePercentBJ:{parameters:[[0,"*",100]]}}),PauseGame:Vz({PauseGameOn:{test:[0,"true"],parameters:[]},PauseGameOff:{test:[0,"false"],parameters:[]}}),DestroyTextTag:$z("DestroyTextTagBJ"),SetTextTagPosUnit:$z("SetTextTagPosUnitBJ"),SetTextTagSuspended:$z("SetTextTagSuspendedBJ"),SetTextTagPermanent:$z("SetTextTagPermanentBJ"),SetTextTagAge:$z("SetTextTagAgeBJ"),SetTextTagLifespan:$z("SetTextTagLifespanBJ"),SetTextTagFadepoint:$z("SetTextTagFadepointBJ"),DestroyQuest:$z("DestroyQuestBJ"),QuestSetTitle:$z("QuestSetTitleBJ"),QuestSetDescription:$z("QuestSetDescriptionBJ"),QuestSetCompleted:$z("QuestSetCompletedBJ"),QuestSetDiscovered:$z("QuestSetDiscoveredBJ"),QuestSetFailed:$z("QuestSetFailedBJ"),QuestSetEnabled:e("QuestSetEnabledBJ"),QuestItemSetDescription:$z("QuestItemSetDescriptionBJ"),QuestItemSetCompleted:$z("QuestItemSetCompletedBJ"),DestroyDefeatCondition:$z("DestroyDefeatConditionBJ"),DefeatConditionSetDescription:$z("DefeatConditionSetDescriptionBJ"),FlashQuestDialogButton:$z("FlashQuestDialogButtonBJ"),DestroyTimerDialog:$z("DestroyTimerDialogBJ"),TimerDialogSetTitle:$z("TimerDialogSetTitleBJ"),TimerDialogDisplay:e("TimerDialogDisplayBJ"),DestroyLeaderboard:$z("DestroyLeaderboardBJ"),LeaderboardDisplay:e("LeaderboardDisplayBJ"),LeaderboardRemovePlayerItem:e("LeaderboardRemovePlayerItemBJ"),LeaderboardSortItemsByValue:Vz({LeaderboardSortItemsBJ:{parameters:[0,"LeaderboardSortByValue",1]}}),LeaderboardSortItemsByPlayer:Vz({LeaderboardSortItemsBJ:{parameters:[0,"LeaderboardSortByPlayer",1]}}),LeaderboardSortItemsByLabel:Vz({LeaderboardSortItemsBJ:{parameters:[0,"LeaderboardSortByLabel",1]}}),LeaderboardHasPlayerItem:$z("LeaderboardHasPlayerItemBJ"),LeaderboardSetLabel:$z("LeaderboardSetLabelBJ"),PlayerGetLeaderboard:$z("PlayerGetLeaderboardBJ"),LeaderboardSetStyle:$z("LeaderboardSetStyleBJ"),DestroyMultiboard:$z("DestroyMultiboardBJ"),MultiboardDisplay:e("MultiboardDisplayBJ"),MultiboardMinimize:e("MultiboardMinimizeBJ"),CameraSetupGetField:e("CameraSetupGetFieldSwap"),CameraSetSmoothingFactor:$z("CameraSetSmoothingFactorBJ"),DisplayCineFilter:$z("DisplayCineFilterBJ"),ForceCinematicSubtitles:$z("ForceCinematicSubtitlesBJ"),SetSoundDistanceCutoff:$z("SetSoundDistanceCutoffBJ"),SetSoundPitch:$z("SetSoundPitchBJ"),AttachSoundToUnit:$z("AttachSoundToUnitBJ"),StopSound:Vz({StopSoundBJ:{test:[1,"false"],parameters:[0,2]}}),KillSoundWhenDone:$z("KillSoundWhenDoneBJ"),SetMapMusic:Vz({SetMapMusicIndexedBJ:{test:[1,"false"],parameters:[0,2]},SetMapMusicRandomBJ:{tests:[[1,"true"],[2,"0"]],parameters:[0]}}),ClearMapMusic:$z("ClearMapMusicBJ"),PlayMusic:$z("PlayMusicBJ"),StopMusic:$z("StopMusicBJ"),ResumeMusic:$z("ResumeMusicBJ"),PlayThematicMusic:$z("PlayThematicMusicBJ"),EndThematicMusic:$z("EndThematicMusicBJ"),VolumeGroupSetVolume:Vz({VolumeGroupSetVolumeBJ:{parameters:[0,[1,"*",100]]}}),AddWeatherEffect:$z("AddWeatherEffectSaveLast"),RemoveWeatherEffect:$z("RemoveWeatherEffectBJ"),AddSpecialEffectLoc:e("AddSpecialEffectLocBJ"),AddSpecialEffectTarget:r("AddSpecialEffectTargetUnitBJ"),DestroyEffect:$z("DestroyEffectBJ"),DestroyLightning:$z("DestroyLightningBJ"),GetLightningColorA:$z("GetLightningColorABJ"),GetLightningColorR:$z("GetLightningColorRBJ"),GetLightningColorG:$z("GetLightningColorGBJ"),GetLightningColorB:$z("GetLightningColorBBJ"),SetLightningColor:$z("SetLightningColorBJ"),GetAbilityEffectById:$z("GetAbilityEffectBJ"),GetAbilitySoundById:$z("GetAbilitySoundBJ"),ShowImage:e("ShowImageBJ"),ShowUbersplat:e("ShowUbersplatBJ"),SetBlightRect:a("SetBlightRectBJ"),SetBlightLoc:l("SetBlightRadiusLocBJ"),SetDoodadAnimationRect:Vz({SetDoodadAnimationRectBJ:{test:[3,"false"],parameters:[2,1,0]}})}}}();const n=jz[t.name];return n?n(e,t):function(e,t){const n=t.name;if(!function(e){return"GetTriggerPlayerMouseX"===e||"GetTriggerPlayerMouseY"===e||"GetTriggerPlayerMousePosition"===e||"GetTriggerPlayerMouseButton"===e||"SetAbilityTooltip"===e||"SetAbilityExtendedTooltip"===e||"SetAbilityResearchTooltip"===e||"SetAbilityResearchExtendedTooltip"===e||"GetAbilityTooltip"===e||"GetAbilityExtendedTooltip"===e||"GetAbilityResearchTooltip"===e||"GetAbilityResearchExtendedTooltip"===e||"SetAbilityIcon"===e||"GetAbilityIcon"===e||"GetAbilityPosX"===e||"GetAbilityPosY"===e||"SetAbilityPosX"===e||"SetAbilityPosY"===e||"GetUnitMaxHP"===e||"SetUnitMaxHP"===e||"GetUnitMaxMana"===e||"SetUnitMaxMana"===e||"SetItemName"===e||"SetItemDescription"===e||"GetItemDescription"===e||"SetItemTooltip"===e||"GetItemTooltip"===e||"SetItemExtendedTooltip"===e||"GetItemExtendedTooltip"===e||"SetItemIconPath"===e||"GetItemIconPath"===e||"SetUnitName"===e||"SetHeroProperName"===e||"GetUnitBaseDamage"===e||"SetUnitBaseDamage"===e||"GetUnitDiceNumber"===e||"SetUnitDiceNumber"===e||"GetUnitDiceSides"===e||"SetUnitDiceSides"===e||"GetUnitAttackCooldown"===e||"SetUnitAttackCooldown"===e||"SetSpcialEffectColorByPlayer"===e||"SetSpecialEffectColor"===e||"SetSpecialEffectAlpha"===e||"SetSpecialEffectScale"===e||"SetSpecialEffectPosition"===e||"SetSpecialEffectHeight"===e||"SetSpecialEffectTimeScale"===e||"SetSpecialEffectTime"===e||"SetSpecialEffectOrientation"===e||"SetSpecialEffectYaw"===e||"SetSpecialEffectPitch"===e||"SetSpecialEffectRoll"===e||"SetSpecialEffectX"===e||"SetSpecialEffectY"===e||"SetSpecialEffectZ"===e||"SetSpecialEffectPositionLoc"===e||"GetLocalSpecialEffectX"===e||"GetLocalSpecialEffectY"===e||"GetLocalSpecialEffectZ"===e||"GetUnitArmor"===e||"SetUnitArmor"===e||"UnitHideAbility"===e||"UnitDisableAbility"===e||"UnitCancelTimedLife"===e||"IsUnitSelectable"===e||"IsUnitInvulnerable"===e||"UnitInterruptAttack"===e||"GetUnitCollisionSize"===e||"GetAbilityManaCost"===e||"GetAbilityCooldown"===e||"SetUnitAbilityCooldown"===e||"GetUnitAbilityCooldown"===e||"GetUnitAbilityCooldownRemaining"===e||"EndUnitAbilityCooldown"===e||"GetUnitAbilityManaCost"===e||"SetEventDamage"===e||"PlaySpecialEffect"===e||"PlaySpecialEffectWithTimeScale"===e}(n))return!1;t.name=`Blz${n}`,t instanceof lf&&(e.stack[1].value=`Blz${n}`);const a=t.parameters;return"GetAbilityIcon"!==n&&"SetAbilityIcon"!==n||3!==a.length||a.pop(),!0}(e,t)}let qz,Yz=!1;function Zz(e){return function(t,n){const a=new lf;return a.name=e,a.type=t.triggerData.getFunctionType(e),n.value=e,n.type=2,n.subParameters=a,!0}}function Qz(e,t){Yz||Yz||(Yz=!0,qz={bj_forLoopAIndex:Zz("GetForLoopIndexA"),bj_forLoopBIndex:Zz("GetForLoopIndexB"),bj_queuedExecTotal:Zz("QueuedTriggerCountBJ"),bj_mapInitialCameraBounds:Zz("GetCameraBoundsMapRect"),bj_mapInitialPlayableArea:Zz("GetPlayableMapRect"),bj_lastCreatedWeatherEffect:Zz("GetLastCreatedWeatherEffect"),bj_lastCreatedTerrainDeformation:Zz("GetLastCreatedTerrainDeformation"),bj_lastCreatedLightning:Zz("GetLastCreatedLightningBJ"),bj_lastCreatedFogModifier:Zz("GetLastCreatedFogModifier"),bj_lastCreatedImage:Zz("GetLastCreatedImage"),bj_lastCreatedUbersplat:Zz("GetLastCreatedUbersplat"),bj_lastPlayedSound:Zz("GetLastPlayedSound"),bj_lastPlayedMusic:Zz("GetLastPlayedMusic"),bj_useDawnDuskSounds:Zz("IsDawnDuskEnabled"),bj_lastCreatedEffect:Zz("GetLastCreatedEffectBJ"),bj_lastCreatedItem:Zz("GetLastCreatedItem"),bj_lastRemovedItem:Zz("GetLastRemovedItem"),bj_lastCreatedUnit:Zz("GetLastCreatedUnit"),bj_lastReplacedUnit:Zz("GetLastReplacedUnitBJ"),bj_lastCreatedDestructable:Zz("GetLastCreatedDestructable"),bj_FORCE_ALL_PLAYERS:Zz("GetPlayersAll"),bj_lastCreatedButton:Zz("GetLastCreatedButtonBJ"),bj_lastCreatedQuest:Zz("GetLastCreatedQuestBJ"),bj_lastCreatedQuestItem:Zz("GetLastCreatedQuestItemBJ"),bj_lastCreatedDefeatCondition:Zz("GetLastCreatedDefeatConditionBJ"),bj_lastStartedTimer:Zz("GetLastCreatedTimerBJ"),bj_lastCreatedTimerDialog:Zz("GetLastCreatedTimerDialogBJ"),bj_lastCreatedLeaderboard:Zz("GetLastCreatedLeaderboard"),bj_lastCreatedMultiboard:Zz("GetLastCreatedMultiboard"),bj_lastCreatedTextTag:Zz("GetLastCreatedTextTag"),bj_lastTransmissionDuration:Zz("GetLastTransmissionDurationBJ"),bj_lastCreatedGameCache:Zz("GetLastCreatedGameCacheBJ"),bj_lastCreatedHashtable:Zz("GetLastCreatedHashtableBJ"),bj_lastLoadedUnit:Zz("GetLastRestoredUnitBJ"),bj_lastHauntedGoldMine:Zz("GetLastHauntedGoldMine")});const n=qz[t.value];return!!n&&n(e,t)}function ej(e,t,n){e.push(t);const a=[],r=[];for(const e of t.ecas){const t=e.type;0===t||1===t?a.push(e):2===t&&r.push(e)}const i=[];for(const t of a){const a=tj(e,t,n);if(a.convert)return e.pop(),a;i.push(t)}for(const t of r){const a=tj(e,t,n);if(a.convert){const r=Pz(e,t,n);e.change("inlinecustomscript",a.reason,r.map(e=>e.parameters[0].value).join("\n")),i.push(...r)}else i.push(t)}return t.ecas=Rz(i),e.pop(),{convert:!1,reason:""}}function tj(e,t,n){e.push(t);const a=nj(e,t,n);if(a.convert){const r=a.reason;if(!function(e){if("IfThenElse"===e.name){const t=e.parameters,n=Iz(t[0].subParameters,0),a=Iz(t[1].subParameters,1),r=Iz(t[2].subParameters,2);return e.name="IfThenElseMultiple",e.parameters.length=0,e.ecas.push(n,a,r),!0}if("ForGroup"===e.name||"ForForce"===e.name){const t=Iz(e.parameters[1].subParameters,0);return e.name=`${e.name}Multiple`,e.parameters.length=1,e.ecas.push(t),!0}return!1}(t))return e.pop(),a;{const a=nj(e,t,n);if(a.convert)return e.pop(),a;e.change("singletomultiple",r,t.name)}}const r=[];for(const a of t.ecas){const i=tj(e,a,n);if(i.convert){let s;if(Uz(t.name,a.group)){let r,i,l=Pz(e,a,n)[0].parameters[0].value;l.startsWith("call ")&&(l=l.slice(5)),"OrMultiple"===t.name?(r=l,i="true"):(r=`not (${l})`,i="false"),s=[Lz(`if ${r} then`),Lz(`return ${i}`),Lz("endif")]}else s=Pz(e,a,n);for(const e of s)e.group=a.group;e.change("inlinecustomscript",i.reason,s.map(e=>e.parameters[0].value).join("\n")),r.push(...s)}else r.push(a)}return t.ecas=Rz(r),e.pop(),{convert:!1,reason:""}}function nj(e,t,n){const a=t.name;if(Wz(e,t)&&e.change("inlinegui",a,t.name),!e.triggerData.isBaseFunction(t.type,t.name))return{convert:!0,reason:t.name};for(const a of t.parameters){if(0===a.type&&e.triggerData.isCustomPreset(a.value)){const t=a.value;if(!Qz(e,a))return{convert:!0,reason:t};e.change("inlinepreset",t,a.value)}const t=aj(e,a,n);if(t.convert)return t}return{convert:!1,reason:""}}function aj(e,t,n){e.push(t);const a=t.type,r=t.value;if(1===a)r.startsWith("gg_")&&e.updateGUIReference(r,!0);else if(2===a){const a=function(e,t,n){e.push(t);const a=nj(e,t,n);if(a.convert)return e.pop(),a;return e.pop(),{convert:!1,reason:""}}(e,t.subParameters,n);if(a.convert)return e.pop(),a}const i=t.arrayIndex;if(i){const t=aj(e,i,n);if(t.convert)return e.pop(),t}return e.pop(),{convert:!1,reason:""}}function rj(e){return e.endsWith(".mdx")||e.endsWith(".mdl")}function ij(e){return e.endsWith(".blp")||e.endsWith(".dds")||e.endsWith(".tga")}function sj(e,t){t.length>6&&(rj(t)||ij(t)||function(e){return e.endsWith(".wav")||e.endsWith(".mp3")||e.endsWith(".slk")||e.endsWith(".txt")}(t))&&(t.endsWith(".mdl")&&(t=`${t.slice(0,-4)}.mdx`),e.push(t.replace(/\\\\/g,"\\")))}const lj={convertWeu:function(e,t,n){let a,r,i;try{a=e.readStringTable()}catch(e){return{ok:!1,error:`Failed to read the string table file: ${e}`}}if(!a)return{ok:!1,error:"The string table file doesn't exist"};const s=e.getScriptFile();if(s&&s.name.endsWith(".j"))try{t.addJassFunctions(s.text())}catch(e){}const l=new Ez(t,a);try{r=function(e,t,n){let a;const r=new Map;let i,s,l=!0;for(;l;)try{a=e.readTriggers(t),l=!1}catch(e){if(e instanceof Error){const n=e.message;if(n.endsWith("Unknown signature")){const e=n.lastIndexOf('"'),a=n.lastIndexOf('"',e-1)+1,l=n.slice(a,e),[o,u]=l.split(":"),c=parseInt(u),d={args:[],scriptName:null,returnType:3===c?"AnyType":null};i=o.toLowerCase(),s=d,r.set(o,d),t.externalFunctions[c][i]=s}else i&&s&&(s.args.push("AnyType"),s.args.length>20&&(l=!1))}}if(r.size){if(a)for(const e of a.triggers)for(const n of e.ecas)xz(a,n,r,t);for(const[e,t]of r)n.change("unknownsignature","Unknown signature",`${e}(${t.args.join(", ")}) => ${t.returnType?t.returnType:"void"}`)}return a}(e,t,l)}catch(e){return{ok:!1,error:`Failed to read the triggers file: ${e}`}}if(!r)return{ok:!1,error:"The triggers file doesn't exist"};try{i=e.readCustomTextTriggers()}catch(e){return{ok:!1,error:`Failed to read the custom text triggers file: ${e}`}}if(!i)return{ok:!1,error:"The custom text triggers file doesn't exist"};const o=r.triggers,u=i.triggers,c=i.trigger;if(u.length<o.length)for(let e=0,t=o.length-u.length;e<t;e++)u.push(new nf);for(let e=0,t=o.length;e<t;e++){const t=o[e],n=[];try{const a=ej(l,t,n);if(a.convert){l.push(t);let r=Nz(l,t,n);n.length&&(r=`${n.join("\r\n")}\r\n${r}`),u[e].text=r,t.ecas.length=0,t.isCustom=1,l.change("convertedtrigger",a.reason,u[e].text),l.pop()}else if(n.length){const e=n.join("\r\n");c.text+=`// Callbacks generated for trigger "${t.name}" due to conversions\r\n${e}\r\n`,l.change("generatedcallbacks",t.name,e)}}catch(e){return{ok:!1,error:`Error at ${l.stackToString()}: ${e}`}}}l.saveGUIReferences(o,u),e.set("war3map.wtg",r.save()),e.set("war3map.wct",i.save());try{r=e.readTriggers(n)}catch(e){return{ok:!1,error:`Failed to validate the triggers file: ${e}`}}return r?{ok:!0,changes:l.changes}:{ok:!1,error:"Failed to re-read the triggers file"}},generateListfile:function(e){const t=["(listfile)","(signature)","(attributes)","war3map.w3e","war3map.w3i","war3map.wtg","war3map.wct","war3map.wts","war3map.j","scripts\\war3map.j","war3map.lua","scripts\\war3map.lua","war3map.shd","war3mapMap.blp","war3mapMap.b00","war3mapMap.tga","war3mapPreview.tga","war3map.mmp","war3mapPath.tga","war3map.wpm","war3map.doo","war3mapUnits.doo","war3map.w3r","war3map.w3c","war3map.w3s","war3map.w3u","war3map.w3t","war3map.w3a","war3map.w3b","war3map.w3d","war3map.w3q","war3mapMisc.txt","war3mapSkin.txt","war3mapExtra.txt","war3map.imp"];let n=e.get("(listfile)");if(n)try{const e=n.text().split(/\r\n/g);for(const n of e)t.push(n.trim())}catch(e){console.warn("(listfile)",e)}for(const a of[".w3u",".w3t",".w3b",".w3d",".w3a",".w3h",".w3q"])if(n=e.get("war3map"+a),n)try{const e=n.bytes();let r;r=".w3d"===a||".w3q"===a||".w3a"===a?new ef:new tf,r.load(e);const i=[r.originalTable,r.customTable];for(const e of i)for(const n of e.objects)for(const e of n.modifications)3===e.variableType&&sj(t,e.value)}catch(e){console.warn(n.name,e)}if(n=e.get("war3map.w3s"),n)try{const e=n.bytes(),a=new jf;a.load(e);for(const e of a.sounds)t.push(e.file)}catch(e){console.warn("war3map.w3s",e)}if(n=e.get("war3map.j")||e.get("Scripts\\war3map.j")||e.get("war3map.lua")||e.get("Scripts\\war3map.lua"),n)try{const e=n.text(),a=new qf(e);let r;for(;void 0!==(r=a.read());)'"'===r[0]&&sj(t,r.slice(1,-1))}catch(e){console.warn(n.name,e)}if(n=e.get("war3mapSkin.txt"),n)try{const e=n.text(),a=new Cl;a.load(e);for(const e of a.sections.values())for(const n of e.values())for(const e of n.split(","))sj(t,e)}catch(e){console.warn("war3mapSkin.txt",e)}if(n=e.get("war3map.imp"),n)try{const e=n.bytes(),a=new qh;a.load(e);for(const e of a.entries.keys())t.push(e)}catch(e){console.warn("war3map.imp",e)}if(n=e.get("war3map.w3i"),n)try{const e=n.bytes(),a=new yf;a.load(e),sj(t,a.loadingScreenModel),sj(t,a.prologueScreenModel)}catch(e){console.warn("war3map.w3i",e)}for(let e=0,n=t.length;e<n;e++){const n=t[e];rj(n)&&t.push(`${n.slice(0,-4)}_portrait.mdx`)}for(let n=0,a=t.length;n<a;n++){const a=t[n];if(rj(a)){const n=e.get(a);if(n)try{const e=n.bytes(),a=new Po;a.load(e);for(const e of a.textures)e.path.length&&t.push(e.path);for(const e of a.attachments)sj(t,e.path);for(const e of a.particleEmitters)sj(t,e.path)}catch(e){console.warn(a,e)}}}for(let e=0,n=t.length;e<n;e++){const n=t[e];ij(n)&&t.push(`ReplaceableTextures\\CommandButtonsDisabled\\DIS${Sl(n)}`)}return new Set(t)}},oj={blp:Hb,dds:zb,MappedData:g_,jass2:MH,mdlx:Tz,w3x:lj}})(),ModelViewer=a})();
25
25
  //# sourceMappingURL=viewer.min.js.map