!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.lua2js=t():e.lua2js=t()}(global,function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:n})},r.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r.w={},r(r.s=18)}([function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.registerLibs=function(e){i=e.string,s=e.getn},t.default=void 0;var n,o=(n=r(1))&&n.__esModule?n:{default:n},a=r(5);let i,s,u=0;class c{constructor(e){if(this.index=++u,this.numValues=[void 0],this.strValues={},this.keys=[],this.values=[],this.metatable=null,e)if("function"==typeof e)e(this);else{let t=e instanceof Array;for(let r in e)if(e.hasOwnProperty(r)){let n=e[r];null===n&&(n=void 0);let o=t?parseInt(r,10)+1:r,a="object"==typeof n&&n.constructor===Object||n instanceof Array;this.set(o,a?new c(n):n)}}else;}get(e){if(!(this instanceof c)){if("string"==(0,a.type)(this))return i.get(e);if(("userdata"===(0,a.type)(this)||"function"===(0,a.type)(this)&&"new"===e)&&e in this)return this[e];throw new o.default(`attempt to index a ${(0,a.type)(this)} value`)}let t=this.rawget(e);if(void 0===t){let r,n;if((r=this.metatable)&&(n=r.get("__index")))switch(n.constructor){case c:return n.get(e);case Function:return(t=n.call(void 0,this,e))instanceof Array?t[0]:t}}return t}rawget(e){switch(typeof e){case"string":return Object.prototype.hasOwnProperty.call(this.strValues,e)?this.strValues[e]:void 0;case"number":if(e>0&&e==e>>0)return this.numValues[e];default:let t=this.keys.indexOf(e);return t>=0?this.values[t]:void 0}}set(e,t){if(!(this instanceof c)){if("userdata"==(0,a.type)(this))return void(this[e]=t);throw new o.default(`attempt to index a ${(0,a.type)(this)} value`)}let r,n;if((r=this.metatable)&&(n=r.get("__newindex"))){let r;switch(typeof e){case"string":r=this.strValues[e];break;case"number":if(e>0&&e==e>>0){r=this.numValues[e];break}default:let t=this.keys.indexOf(e);r=-1==t?void 0:this.values[t]}if(void 0===r)switch(n.constructor){case c:return n.set(e,t);case Function:return n(this,e,t)}}this.rawset(e,t)}rawset(e,t){switch(t instanceof Array&&(t=t[0]),typeof e){case"string":this.strValues[e]=t;break;case"number":if(e>0&&e==e>>0){this.numValues[e]=t;break}default:let r=this.keys,n=r.indexOf(e);n<0&&(r[n=r.length]=e),this.values[n]=t}}insert(...e){this.numValues.push(...e)}toString(){let e,t;return(e=this.metatable)&&(t=e.get("__tostring"))?t(this)[0]:"table: 0x"+this.index.toString(16)}toObject(){const e=s(this)>0?[]:{},t=this.numValues,r=this.strValues;let n;const o=t.length;for(n=1;n{let e,t,r;return(e=global.starlight)&&(t=e.config)&&(r=t.stdout)&&r.writeln||c})()};function f(e,t){if(t)throw t=(""+t).replace(/\%type/gi,(0,n.type)(e)),new o.default(t)}function p(e,t){let r,n,o;switch(!0){case"number"==typeof e:return e;case void 0===e:return;case"inf"===e:return 1/0;case"-inf"===e:return-1/0;case"nan"===e:return NaN;default:return(""+e).match(s)?r=parseFloat(e):(n=(""+e).match(u))&&(o=n[3],((r=n[2])||o)&&(r=parseInt(r,16)||0,o&&(r+=parseInt(o,16)/Math.pow(16,o.length)),n[1]&&(r*=-1))),void 0===r&&f(e,t),r}}function d(e,t){switch(!0){case"string"==typeof e:return e;case void 0===e:case null===e:return"nil";case e===1/0:return"inf";case e===-1/0:return"-inf";case"number"==typeof e:case"boolean"==typeof e:return global.isNaN(e)?"nan":`${e}`;default:return f(e,t)||"userdata"}}function g(e,t,r,n,o){return t(e,`bad argument #${o} to '${n}' (${r} expected, got %type)`)}t.stdout=l},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.concat=i,t.getn=s,t.insert=u,t.maxn=c,t.remove=l,t.sort=f,t.default=void 0;var n=a(r(0)),o=(a(r(1)),r(2));function a(e){return e&&e.__esModule?e:{default:e}}function i(e,t="",r=1,n){return e=(0,o.coerceArgToTable)(e,"concat",1),t=(0,o.coerceArgToString)(t,"concat",2),r=(0,o.coerceArgToNumber)(r,"concat",3),n=void 0===n?c(e):(0,o.coerceArgToNumber)(n,"concat",4),[].concat(e.numValues).splice(r,n-r+1).join(t)}function s(e){let t=(e=(0,o.coerceArgToTable)(e,"getn",1)).numValues,r=[],n=0;for(let e in t)t.hasOwnProperty(e)&&(r[e]=!0);for(;r[n+1];)n++;if(n>0&&void 0===t[n]){let e=0;for(;n-e>1;){let r=Math.floor((e+n)/2);void 0===t[r]?n=r:e=r}return e}return n}function u(e,t,r){e=(0,o.coerceArgToTable)(e,"insert",1),void 0===r?(r=t,t=e.numValues.length):t=(0,o.coerceArgToNumber)(t,"insert",2),e.numValues.splice(t,0,void 0),e.set(t,r)}function c(e){return(e=(0,o.coerceArgToTable)(e,"maxn",1)).numValues.length-1}function l(e,t){e=(0,o.coerceArgToTable)(e,"remove",1),t=(0,o.coerceArgToNumber)(t,"remove",2);let r=s(e),n=e.numValues;if(t>r)return;void 0===t&&(t=r);let a=n.splice(t,1);for(;t(0,o.coerceToBoolean)(t(e,r)[0])?-1:1)):r=((e,t)=>e=@\\[\\]\\\\^_{}|~]","%P":"[^.,\"'?!;:#$%&()*+-/<>=@\\[\\]\\\\^_{}|~]","%s":"[ \\t\\n\\f\\v\\r]","%S":"[^ \t\n\f\v\r]","%u":"[A-Z]","%U":"[^A-Z]","%w":"[a-zA-Z0-9]","%W":"[^a-zA-Z0-9]","%x":"[a-fA-F0-9]","%X":"[^a-fA-F0-9]","%([^a-zA-Z])":"\\$1"};function c(e){e=(e=""+e).replace(new RegExp("\\\\","g"),"\\\\");for(let t in u)u.hasOwnProperty(t)&&(e=e.replace(new RegExp(t,"g"),u[t]));let t=e.length,r=0;for(let n=0;ne.charCodeAt(0))}function f(...e){return e.map((e,t)=>(e=(0,i.coerceArgToNumber)(e,"char",t),String.fromCharCode(e))).join("")}function p(e){throw e=(0,i.coerceArgToFunction)(e,"dump",1),new o.default("string.dump() is not supported")}function d(e,t,r=1,n=!1){if(e=(0,i.coerceArgToString)(e,"find",1),t=(0,i.coerceArgToString)(t,"find",2),r=(0,i.coerceArgToNumber)(r,"find",3),!(n=(0,i.coerceToBoolean)(n))){t=c(t);let n=new RegExp(t),o=e.substr(r-1).search(n);if(o<0)return;let a=e.substr(r-1).match(n),i=[o+r,o+r+a[0].length-1];return a.shift(),i.concat(a)}let o=e.indexOf(t,r-1);return-1===o?void 0:[o+1,o+t.length]}function g(e,...t){return(0,a.default)(e,...t)}function h(e,t){e=(0,i.coerceArgToString)(e,"gmatch",1),t=c(t=(0,i.coerceArgToString)(t,"gmatch",2));let r=new RegExp(t,"g"),n=e.match(r);return()=>{let e=n.shift(),r=new RegExp(t).exec(e);if(void 0!==e)return r.shift(),r.length?r:e}}function m(e,t,r,o=1/0){e=(0,i.coerceArgToString)(e,"gsub",1),t=(0,i.coerceArgToString)(t,"gsub",2),o=(0,i.coerceArgToNumber)(o,"gsub",3),t=c(""+t);let a,s,u,l,f="function"==typeof r,p=0,d="";for(;pu[t]),s=0===u[0].length?void 0===l?"":e.substr(0,1):e.substr(0,u.index),l=u[0],d+=`${s}${a}`,e=e.substr(`${s}${l}`.length),p++;return[`${d}${e}`,p]}function b(e){return(e=(0,i.coerceArgToString)(e,"len",1)).length}function _(e){return(e=(0,i.coerceArgToString)(e,"lower",1)).toLowerCase()}function v(e,t,r=0){e=(0,i.coerceArgToString)(e,"match",1),t=(0,i.coerceArgToString)(t,"match",2),r=(0,i.coerceArgToNumber)(r,"match",3);let n=(e=e.substr(r)).match(new RegExp(c(t)));if(n)return n[1]?(n.shift(),n):n[0]}function y(e,t){return e=(0,i.coerceArgToString)(e,"rep",1),t=(0,i.coerceArgToNumber)(t,"rep",2),Array(t+1).join(e)}function w(e){return e=(0,i.coerceArgToString)(e,"reverse",1),Array.prototype.map.call(e,e=>e).reverse().join("")}function $(e,t=1,r){return e=(0,i.coerceArgToString)(e,"sub",1),t=(0,i.coerceArgToNumber)(t,"sub",2),void 0===r?e.length:r=(0,i.coerceArgToNumber)(r,"sub",3),t>0?t-=1:t<0&&(t=e.length+t),r<0&&(r=e.length+r+1),e.substring(t,r)}function x(e){return(e=(0,i.coerceArgToString)(e,"upper",1)).toUpperCase()}const T=new n.default({byte:l,char:f,dump:p,find:d,format:g,gmatch:h,gsub:m,len:b,lower:_,match:v,rep:y,reverse:w,sub:$,upper:x});var A=T;t.default=A;const S=new n.default({__index:T});t.metatable=S},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.assert=p,t.error=d,t.getmetatable=g,t.ipairs=h,t.loadstring=m,t.next=b,t.pairs=_,t.pcall=v,t.print=y,t.rawequal=w,t.rawget=$,t.rawset=x,t._require=T,t.select=A,t.setmetatable=S,t.tonumber=C,t.tostring=N,t.type=O,t.unpack=E,t.xpcall=M,t.default=t._G=t._VERSION=void 0;var n=u(r(0)),o=u(r(1)),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){var n=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,r):{};n.get||n.set?Object.defineProperty(t,r,n):t[r]=e[r]}return t.default=e,t}(r(4)),i=r(3),s=r(2);function u(e){return e&&e.__esModule?e:{default:e}}const c="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";function l(){let e=global.starlight.runtime._G.rawget("package");if(void 0===e)throw new o.default("error during require(), package lib not found.");let t=[e.rawget("preload"),e.rawget("loaded")];return l=(()=>t),t}function f(e,t){if(void 0===t)throw new o.default("Bad argument #2 to ipairs() iterator");var r=t+1,n=e.numValues;if(n.hasOwnProperty(r)&&void 0!==n[r])return[r,n[r]]}function p(e,t){if(!(0,s.coerceToBoolean)(e))throw t=(0,s.coerceArgToString)(t,"assert",2),new o.default(t||"Assertion failed!");return[e,t]}function d(e){throw"string"!=typeof e&&"number"!=typeof e&&(e="(error object is not a string)"),new o.default(e)}function g(e){if(e&&e instanceof n.default){let t=e.metatable;if(t){let e;return(e=t.rawget("__metatable"))?e:t}}else if("string"==typeof e)return a.metatable}function h(e){const t=g(e=(0,s.coerceArgToTable)(e,"ipairs",1)),r=t&&t.get("__ipairs");return r?r(e).slice(0,3):[f,e,0]}function m(e,t){e=(0,s.coerceArgToString)(e,"loadstring",1);let r=global.starlight.parser;if(!r)throw new Error("Starlight parser not found in call to loadstring(). The parser is required to execute Lua strings at runtime.");try{return r.parse(e)}catch(e){return[void 0,e.message]}}function b(e,t){e=(0,s.coerceArgToTable)(e,"next",1);let r,n,o,a,i=void 0===t;if(i||"number"==typeof t&&t>0&&t==t>>0){let s=e.numValues;if("keys"in Object){let e=Object.keys(s);if(i?o=1:(o=e.indexOf(""+t)+1)&&(i=!0),i){for(;void 0!==(r=e[o])&&void 0===(n=s[r]);)o++;if(void 0!==n)return[r>>=0,n]}}else for(a in s)if(o=a>>0,i){if(void 0!==s[o])return[o,s[o]]}else o===t&&(i=!0)}for(o in e.strValues)if(e.strValues.hasOwnProperty(o))if(i){if(void 0!==e.strValues[o])return[o,e.strValues[o]]}else o==t&&(i=!0);for(o in e.keys)if(e.keys.hasOwnProperty(o)){let r=e.keys[o];if(i){if(void 0!==e.values[o])return[r,e.values[o]]}else r===t&&(i=!0)}return[]}function _(e){const t=g(e=(0,s.coerceArgToTable)(e,"pairs",1)),r=t&&t.get("__pairs");return r?r(e).slice(0,3):[b,e]}function v(e,...t){let r;try{if("function"!=typeof e)throw new o.default("Attempt to call non-function");r=e(...t)}catch(e){return[!1,e&&e.toString()]}return[!0,...r=[].concat(r)]}function y(...e){let t=e.map(e=>N(e)).join("\t");s.stdout.writeln(t)}function w(e,t){return e===t}function $(e,t){return(e=(0,s.coerceArgToTable)(e,"rawget",1)).rawget(t)}function x(e,t,r){if(e=(0,s.coerceArgToTable)(e,"rawset",1),void 0===t)throw new o.default("table index is nil");return e.rawset(t,r),e}function T(e){e=(e=(0,s.coerceArgToString)(e,"require",1)).replace(/\//g,".");let[t,r]=l(),n=r.rawget(e);if(n)return n;let a=t.rawget(e);if(void 0===a)throw new o.default(`module '${e}' not found:\n\tno field package.preload['${e}']`);let i=a(e);return n=i instanceof Array?i[0]:i,r.rawset(e,void 0===n||n),n}function A(e,...t){if("#"===e)return t.length;if(e=parseInt(e,10))return t.slice(e-1);{let t=O(e);throw new o.default(`bad argument #1 to 'select' (number expected, got ${t})`)}}function S(e,t){let r;if(e=(0,s.coerceArgToTable)(e,"setmetatable",1),void 0!==t&&(t=(0,s.coerceArgToTable)(t,"setmetatable",2)),(r=e.metatable)&&r.rawget("__metatable"))throw new o.default("cannot change a protected metatable");return e.metatable=t,e}function C(e,t=10){if(t=(0,s.coerceArgToNumber)(t,"tonumber",2),""===e)return;if(t<2||t>36)throw new o.default("bad argument #2 to 'tonumber' (base out of range)");if(10==t&&(e===1/0||e===-1/0||"number"==typeof e&&global.isNaN(e)))return e;if(10!=t&&void 0===e)throw new o.default("bad argument #1 to 'tonumber' (string expected, got nil)");if(e=`${e}`.trim(),10===t)return(0,s.coerceToNumber)(e);let r;return e=(0,s.coerceToString)(e),16===t&&(r=e.match(/^(\-)?0[xX](.+)$/))&&(e=`${r[1]||""}${r[2]}`),new RegExp("^["+c.substr(0,t)+"]*$","gi").test(e)?parseInt(e,t):void 0}function N(e){let t,r;return void 0!==e&&e instanceof n.default&&(t=e.metatable)&&(r=t.rawget("__tostring"))?r.call(r,e):e instanceof n.default?e.toString():e instanceof Function?e.hasOwnProperty("toString")?`${e}`:"function: [host code]":(0,s.coerceToString)(e)}function O(e){let t=typeof e;switch(t){case"undefined":return"nil";case"number":case"string":case"boolean":case"function":return t;case"object":return e.constructor===n.default?"table":e&&e instanceof Function?"function":"userdata"}}function E(e,t=1,r){return e=(0,s.coerceArgToTable)(e,"unpack",1),t=(0,s.coerceArgToNumber)(t,"unpack",2),r=void 0===r?(0,i.getn)(e):(0,s.coerceArgToNumber)(r,"unpack",3),e.numValues.slice(t,r+1)}function M(e,t){let r,n,a;try{"function"==typeof e?r=e():a=!0,n=!0}catch(e){r=t(void 0,!0)[0],n=!1}if(a)throw new o.default("Attempt to call non-function");return r&&r instanceof Array||(r=[r]),r.unshift(n),r}t._VERSION="Lua 5.1";const k=new n.default({_VERSION:"Lua 5.1",assert:p,error:d,getmetatable:g,ipairs:h,loadstring:m,next:b,pairs:_,pcall:v,print:y,rawequal:w,rawget:$,rawset:x,require:T,select:A,setmetatable:S,tonumber:C,tostring:N,type:O,unpack:E,xpcall:M});t._G=k,k.rawset("_G",k);var j=k;t.default=j},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n,o=(n=r(0))&&n.__esModule?n:{default:n};var a=new o.default({preload:new o.default,loaded:new o.default});t.default=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.date=l,t.exit=f,t.default=void 0;var n,o=(n=r(0))&&n.__esModule?n:{default:n};const a=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],i=["January","February","March","April","May","June","July","August","September","October","November","December"],s=[31,28,31,30,31,30,31,31,30,31,30,31],u={"%a":(e,t)=>a[e["get"+(t?"UTC":"")+"Day"]()].substr(0,3),"%A":(e,t)=>a[e["get"+(t?"UTC":"")+"Day"]()],"%b":(e,t)=>i[e["get"+(t?"UTC":"")+"Month"]()].substr(0,3),"%B":(e,t)=>i[e["get"+(t?"UTC":"")+"Month"]()],"%c":(e,t)=>e["to"+(t?"UTC":"")+"LocaleString"](),"%d":(e,t)=>("0"+e["get"+(t?"UTC":"")+"Date"]()).substr(-2),"%H":(e,t)=>("0"+e["get"+(t?"UTC":"")+"Hours"]()).substr(-2),"%I":(e,t)=>("0"+((e["get"+(t?"UTC":"")+"Hours"]()+11)%12+1)).substr(-2),"%j":(e,t)=>{let r=e["get"+(t?"UTC":"")+"Date"](),n=e["get"+(t?"UTC":"")+"Month"]();for(let e=0;e1&&e["get"+(t?"UTC":"")+"FullYear"]()%4==0&&(r+=1),("00"+r).substr(-3)},"%m":(e,t)=>("0"+(e["get"+(t?"UTC":"")+"Month"]()+1)).substr(-2),"%M":(e,t)=>("0"+e["get"+(t?"UTC":"")+"Minutes"]()).substr(-2),"%p":(e,t)=>e["get"+(t?"UTC":"")+"Hours"]()<12?"AM":"PM","%S":(e,t)=>("0"+e["get"+(t?"UTC":"")+"Seconds"]()).substr(-2),"%U":(e,t)=>c(e,0,t),"%w":(e,t)=>""+e["get"+(t?"UTC":"")+"Day"](),"%W":(e,t)=>c(e,1,t),"%x":(e,t)=>u["%m"](e,t)+"/"+u["%d"](e,t)+"/"+u["%y"](e,t),"%X":(e,t)=>u["%H"](e,t)+":"+u["%M"](e,t)+":"+u["%S"](e,t),"%y":(e,t)=>u["%Y"](e,t).substr(-2),"%Y":(e,t)=>""+e["get"+(t?"UTC":"")+"FullYear"](),"%Z":(e,t)=>{let r;return t?"UTC":(r=e.toString().match(/[A-Z][A-Z][A-Z]/))&&r[0]},"%%":()=>"%"};function c(e,t,r){let n=parseInt(u["%j"](e),10),o=(8-new Date(e.getFullYear(),0,1,12)["get"+(r?"UTC":"")+"Day"]()+t)%7;return("0"+(Math.floor((n-o)/7)+1)).substr(-2)}function l(e="%c",t){let r,n=new Date;if(t&&n.setTime(1e3*t),"!"===e.substr(0,1)&&(e=e.substr(1),r=!0),"*t"===e)return new o.default({year:parseInt(u["%Y"](n,r),10),month:parseInt(u["%m"](n,r),10),day:parseInt(u["%d"](n,r),10),hour:parseInt(u["%H"](n,r),10),min:parseInt(u["%M"](n,r),10),sec:parseInt(u["%S"](n,r),10),wday:parseInt(u["%w"](n,r),10)+1,yday:parseInt(u["%j"](n,r),10),isdst:function(e){let t=e.getFullYear(),r=new Date(t,0);return e.getTimezoneOffset()!==r.getTimezoneOffset()}(n)});for(let t in u)u.hasOwnProperty(t)&&e.indexOf(t)>=0&&(e=e.replace(t,u[t](n,r)));return e}function f(e=0){var t=global.process;if(!t||!t.exit)throw new Error(`Exit with code: ${e}`);t.exit(e)}var p=new o.default({date:l,exit:f});t.default=p},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.abs=l,t.acos=f,t.asin=p,t.atan=d,t.atan2=g,t.ceil=h,t.cos=m,t.cosh=b,t.deg=_,t.exp=v,t.floor=w,t.fmod=$,t.frexp=x,t.ldexp=T,t.log=A,t.log10=S,t.max=C,t.min=N,t.modf=O,t.pow=M,t.rad=k,t.random=j,t.randomseed=P,t.sin=I,t.sinh=L,t.sqrt=V,t.tan=D,t.tanh=F,t.default=t.pi=t.huge=void 0;var n,o=(n=r(0))&&n.__esModule?n:{default:n},a=r(2);const i=16807,s=2147483647;let u=1;function c(){return(u=i*u%s)/s}function l(e){return e=(0,a.coerceArgToNumber)(e,"abs",1),Math.abs(e)}function f(e){return e=(0,a.coerceArgToNumber)(e,"acos",1),Math.acos(e)}function p(e){return e=(0,a.coerceArgToNumber)(e,"asin",1),Math.asin(e)}function d(e){return e=(0,a.coerceArgToNumber)(e,"atan",1),Math.atan(e)}function g(e,t){return e=(0,a.coerceArgToNumber)(e,"atan2",1),t=(0,a.coerceArgToNumber)(t,"atan2",2),Math.atan2(e,t)}function h(e){return e=(0,a.coerceArgToNumber)(e,"ceil",1),Math.ceil(e)}function m(e){return e=(0,a.coerceArgToNumber)(e,"cos",1),Math.cos(e)}function b(e){return(v(e=(0,a.coerceArgToNumber)(e,"cosh",1))+v(-e))/2}function _(e){return 180*(e=(0,a.coerceArgToNumber)(e,"deg",1))/Math.PI}function v(e){return e=(0,a.coerceArgToNumber)(e,"exp",1),Math.exp(e)}function w(e){return e=(0,a.coerceArgToNumber)(e,"floor",1),Math.floor(e)}function $(e,t){return(e=(0,a.coerceArgToNumber)(e,"fmod",1))%(t=(0,a.coerceArgToNumber)(t,"fmod",2))}function x(e){if(0===(e=(0,a.coerceArgToNumber)(e,"frexp",1)))return[0,0];let t=e>0?1:-1;e*=t;let r=Math.floor(Math.log(e)/Math.log(2))+1;return[e/Math.pow(2,r)*t,r]}function T(e,t){return e=(0,a.coerceArgToNumber)(e,"ldexp",1),t=(0,a.coerceArgToNumber)(t,"ldexp",2),e*Math.pow(2,t)}function A(e,t){return e=(0,a.coerceArgToNumber)(e,"log",1),void 0===t?Math.log(e):(y=(0,a.coerceArgToNumber)(y,"log",2),Math.log(e)/Math.log(t))}function S(e){return e=(0,a.coerceArgToNumber)(e,"log10",1),Math.log(e)/Math.log(10)}function C(...e){return Math.max(...e)}function N(...e){return Math.min(...e)}function O(e){e=(0,a.coerceArgToNumber)(e,"modf",1);let t=Math.floor(e);return[t,e-t]}t.huge=1/0;const E=Math.PI;function M(e,t){return e=(0,a.coerceArgToNumber)(e,"pow",1),t=coercArgToNumber(t,"pow",2),Math.pow(e,t)}function k(e){return e=(0,a.coerceArgToNumber)(e,"rad",1),Math.PI/180*e}function j(e,t){if(void 0===e&&void 0===t)return c();if(e=(0,a.coerceArgToNumber)(e,"random",1),void 0===t?(t=e,e=1):t=(0,a.coerceArgToNumber)(t,"random",2),e>t)throw new shine.Error("bad argument #2 to 'random' (interval is empty)");return Math.floor(c()*(t-e+1)+e)}function P(e){e=(0,a.coerceArgToNumber)(e,"randomseed",1),u=e}function I(e){return e=(0,a.coerceArgToNumber)(e,"sin",1),Math.sin(e)}function L(e){return(v(e=(0,a.coerceArgToNumber)(e,"sinh",1))-v(-e))/2}function V(e){return e=(0,a.coerceArgToNumber)(e,"sqrt",1),Math.sqrt(e)}function D(e){return e=(0,a.coerceArgToNumber)(e,"tan",1),Math.tan(e)}function F(e){return(v(e=(0,a.coerceArgToNumber)(e,"tanh",1))-v(-e))/(v(e)+v(-e))}t.pi=E;var U=new o.default({abs:l,acos:f,asin:p,atan:d,atan2:g,ceil:h,cos:m,cosh:b,deg:_,exp:v,floor:w,fmod:$,frexp:x,huge:1/0,ldexp:T,log:A,log10:S,max:C,min:N,modf:O,pi:E,pow:M,rad:k,random:j,randomseed:P,sin:I,sinh:L,sqrt:V,tan:D,tanh:F});t.default=U},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=s(r(0)),o=r(2),a=r(3),i=s(r(1));function s(e){return e&&e.__esModule?e:{default:e}}function u(e,t,r,a){let i,s;return e&&e instanceof n.default&&(i=e.metatable)&&(s=i.rawget(r))||t&&t instanceof n.default&&(i=t.metatable)&&(s=i.rawget(r))?s(e,t)[0]:("number"!=typeof e&&(e=(0,o.coerceToNumber)(e,"attempt to perform arithmetic on a %type value")),"number"!=typeof t&&(t=(0,o.coerceToNumber)(t,"attempt to perform arithmetic on a %type value")),a(e,t))}function c(e,t,r,n){return"string"==typeof e&&"string"==typeof t?n(e,t):u(e,t,r,n)}function l(e,t){var r,o,a;return t!==e&&e&&e instanceof n.default&&t&&t instanceof n.default&&(r=e.metatable)&&(o=t.metatable)&&r===o&&(a=r.rawget("__eq"))?!!a(e,t)[0]:e===t}function f(e,t){if(0===t||t===-1/0||t===1/0||global.isNaN(e)||global.isNaN(t))return NaN;let r=Math.abs(t),n=Math.abs(e)%r;return e*t<0&&(n=r-n),t<0&&(n*=-1),n}const p={concat:function(e,t){let r,a;return e&&e instanceof n.default&&(r=e.metatable)&&(a=r.rawget("__concat"))||t&&t instanceof n.default&&(r=t.metatable)&&(a=r.rawget("__concat"))?a(e,t)[0]:(t=(0,o.coerceToString)(t,"attempt to concatenate a %type value"),`${e=(0,o.coerceToString)(e,"attempt to concatenate a %type value")}${t}`)},len:function(e){if(void 0===e)throw new i.default("attempt to get length of a nil value");if(e instanceof n.default)return(0,a.getn)(e);if("object"==typeof e){let t=0;for(let r in e)e.hasOwnProperty(r)&&t++;return t}return e.length},eq:l,unm:function(e){var t,r;return e&&e instanceof n.default&&(t=e.metatable)&&(r=t.rawget("__unm"))?r(e)[0]:("number"!=typeof e&&(e=(0,o.coerceToNumber)(e,"attempt to perform arithmetic on a %type value")),-e)},bool:o.coerceToBoolean,neq:(...e)=>!l(...e),not:(...e)=>!(0,o.coerceToBoolean)(...e),add:(e,t)=>u(e,t,"__add",(e,t)=>e+t),sub:(e,t)=>u(e,t,"__sub",(e,t)=>e-t),mul:(e,t)=>u(e,t,"__mul",(e,t)=>e*t),div:(e,t)=>{if(void 0===t)throw new i.default("attempt to perform arithmetic on a nil value");return u(e,t,"__div",(e,t)=>e/t)},mod:(e,t)=>u(e,t,"__mod",f),pow:(e,t)=>u(e,t,"__pow",Math.pow),lt:(e,t)=>c(e,t,"__lt",(e,t)=>ec(e,t,"__le",(e,t)=>e<=t),gt:(e,t)=>!p.lte(e,t),gte:(e,t)=>!p.lt(e,t)};var d=p;t.default=d},function(e,t){e.exports=require("stream")},function(e,t){e.exports=require("util")},function(e,t,r){var n=r(11),o=function(e){this._mapped=!1,this._format=e,this._tokens=function(e,t,r,n){for(var o,a,i=[],s=0;o=t.exec(e);){if((a=e.slice(s,t.lastIndex-o[0].length)).length&&i.push(a),r){var u=r.apply(n,o.slice(1).concat(i.length));void 0!==u&&("%"===u.specifier?i.push("%"):i.push(u))}s=t.lastIndex}return(a=e.slice(s)).length&&i.push(a),i}(e,this._re,this._parseDelim,this)};o.prototype._re=/\%(?:\(([\w_.]+)\)|([1-9]\d*)\$)?([0 +\-\#]*)(\*|\d+)?(\.)?(\*|\d+)?[hlL]?([\%bscdeEfFgGioOuxX])/g,o.prototype._parseDelim=function(e,t,r,n,o,a,i){return e&&(this._mapped=!0),{mapping:e,intmapping:t,flags:r,_minWidth:n,period:o,_precision:a,specifier:i}},o.prototype._specifiers={b:{base:2,isInt:!0},o:{base:8,isInt:!0},x:{base:16,isInt:!0},X:{extend:["x"],toUpper:!0},d:{base:10,isInt:!0},i:{extend:["d"]},u:{extend:["d"],isUnsigned:!0},c:{setArg:function(e){if(!isNaN(e.arg)){var t=parseInt(e.arg);if(t<0||t>127)throw new Error("invalid character code passed to %c in printf");e.arg=isNaN(t)?""+t:String.fromCharCode(t)}}},s:{setMaxWidth:function(e){e.maxWidth="."==e.period?e.precision:-1}},e:{isDouble:!0,doubleNotation:"e"},E:{extend:["e"],toUpper:!0},f:{isDouble:!0,doubleNotation:"f"},F:{extend:["f"]},g:{isDouble:!0,doubleNotation:"g"},G:{extend:["g"],toUpper:!0},O:{isObject:!0}},o.prototype.format=function(e){if(this._mapped&&"object"!=typeof e)throw new Error("format requires a mapping");for(var t,r="",n=0,o=0;o=arguments.length)throw new Error("got "+arguments.length+" printf arguments, insufficient for '"+this._format+"'");t.arg=arguments[n++]}if(!t.compiled){t.compiled=!0,t.sign="",t.zeroPad=!1,t.rightJustify=!1,t.alternative=!1;for(var c={},l=t.flags.length;l--;){var f=t.flags.charAt(l);switch(c[f]=!0,f){case" ":t.sign=" ";break;case"+":t.sign="+";break;case"0":t.zeroPad=!c["-"];break;case"-":t.rightJustify=!0,t.zeroPad=!1;break;case"#":t.alternative=!0;break;default:throw Error("bad formatting flag '"+t.flags.charAt(l)+"'")}}t.minWidth=t._minWidth?parseInt(t._minWidth):0,t.maxWidth=-1,t.toUpper=!1,t.isUnsigned=!1,t.isInt=!1,t.isDouble=!1,t.isObject=!1,t.precision=1,"."==t.period&&(t._precision?t.precision=parseInt(t._precision):t.precision=0);var p=this._specifiers[t.specifier];if(void 0===p)throw new Error("unexpected specifier '"+t.specifier+"'");if(p.extend){var d=this._specifiers[p.extend];for(var g in d)p[g]=d[g];delete p.extend}for(var h in p)t[h]=p[h]}if("function"==typeof t.setArg&&t.setArg(t),"function"==typeof t.setMaxWidth&&t.setMaxWidth(t),"*"==t._minWidth){if(this._mapped)throw new Error("* width not supported in mapped formats");if(t.minWidth=parseInt(arguments[n++]),isNaN(t.minWidth))throw new Error("the argument for * width at position "+n+" is not a number in "+this._format);t.minWidth<0&&(t.rightJustify=!0,t.minWidth=-t.minWidth)}if("*"==t._precision&&"."==t.period){if(this._mapped)throw new Error("* precision not supported in mapped formats");if(t.precision=parseInt(arguments[n++]),isNaN(t.precision))throw Error("the argument for * precision at position "+n+" is not a number in "+this._format);t.precision<0&&(t.precision=1,t.period="")}t.isInt?("."==t.period&&(t.zeroPad=!1),this.formatInt(t)):t.isDouble?("."!=t.period&&(t.precision=6),this.formatDouble(t)):t.isObject&&this.formatObject(t),this.fitField(t),r+=""+t.arg}return r},o.prototype._zeros10="0000000000",o.prototype._spaces10=" ",o.prototype.formatInt=function(e){var t=parseInt(e.arg);if(!isFinite(t)){if("number"!=typeof e.arg)throw new Error("format argument '"+e.arg+"' not an integer; parseInt returned "+t);t=0}t<0&&(e.isUnsigned||10!=e.base)&&(t=4294967295+t+1),t<0?(e.arg=(-t).toString(e.base),this.zeroPad(e),e.arg="-"+e.arg):(e.arg=t.toString(e.base),t||e.precision?this.zeroPad(e):e.arg="",e.sign&&(e.arg=e.sign+e.arg)),16==e.base&&(e.alternative&&(e.arg="0x"+e.arg),e.arg=e.toUpper?e.arg.toUpperCase():e.arg.toLowerCase()),8==e.base&&e.alternative&&"0"!=e.arg.charAt(0)&&(e.arg="0"+e.arg)},o.prototype.formatDouble=function(e){var t=parseFloat(e.arg);if(!isFinite(t)){if("number"!=typeof e.arg)throw new Error("format argument '"+e.arg+"' not a float; parseFloat returned "+t);t=0}switch(e.doubleNotation){case"e":e.arg=t.toExponential(e.precision);break;case"f":e.arg=t.toFixed(e.precision);break;case"g":Math.abs(t)<1e-4?e.arg=t.toExponential(e.precision>0?e.precision-1:e.precision):e.arg=t.toPrecision(e.precision),e.alternative||(e.arg=e.arg.replace(/(\..*[^0])0*e/,"$1e"),e.arg=e.arg.replace(/\.0*e/,"e").replace(/\.0$/,""));break;default:throw new Error("unexpected double notation '"+e.doubleNotation+"'")}e.arg=e.arg.replace(/e\+(\d)$/,"e+0$1").replace(/e\-(\d)$/,"e-0$1"),e.alternative&&(e.arg=e.arg.replace(/^(\d+)$/,"$1."),e.arg=e.arg.replace(/^(\d+)e/,"$1.e")),t>=0&&e.sign&&(e.arg=e.sign+e.arg),e.arg=e.toUpper?e.arg.toUpperCase():e.arg.toLowerCase()},o.prototype.formatObject=function(e){var t="."===e.period?e.precision:null;e.arg=n.inspect(e.arg,!e.alternative,t)},o.prototype.zeroPad=function(e,t){t=2==arguments.length?t:e.precision;var r=!1;"string"!=typeof e.arg&&(e.arg=""+e.arg),"-"===e.arg.substr(0,1)&&(r=!0,e.arg=e.arg.substr(1));for(var n=t-10;e.arg.length=0&&e.arg.length>e.maxWidth)return e.arg.substring(0,e.maxWidth);e.zeroPad?this.zeroPad(e,e.minWidth):this.spacePad(e)},o.prototype.spacePad=function(e,t){t=2==arguments.length?t:e.minWidth,"string"!=typeof e.arg&&(e.arg=""+e.arg);for(var r=t-10;e.arg.length=n)return{type:a,value:"",line:x,lineStart:T,range:[b,b]};var e=t.charCodeAt(b),r=t.charCodeAt(b+1);if($=b,function(e){return e>=65&&e<=90||e>=97&&e<=122||95===e}(e))return function(){var e,r;for(;n=t.charCodeAt(++b),n>=65&&n<=90||n>=97&&n<=122||95===n||n>=48&&n<=57;);var n;!function(e){switch(e.length){case 2:return"do"===e||"if"===e||"in"===e||"or"===e;case 3:return"and"===e||"end"===e||"for"===e||"not"===e;case 4:return"else"===e||"goto"===e||"then"===e;case 5:return"break"===e||"local"===e||"until"===e||"while"===e;case 6:return"elseif"===e||"repeat"===e||"return"===e;case 8:return"function"===e}return!1}(e=t.slice($,b))?"true"===e||"false"===e?(r=f,e="true"===e):"nil"===e?(r=p,e=null):r=u:r=s;return{type:r,value:e,line:x,lineStart:T,range:[$,b]}}();switch(e){case 39:case 34:return function(){var e,r=t.charCodeAt(b++),o=b,a="";for(;b=n||Z(e))&&(a+=t.slice(o,b-1),M({},g.unfinishedString,a+String.fromCharCode(e)));return a+=t.slice(o,b-1),{type:i,value:a,line:x,lineStart:T,range:[$,b]}}();case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return D();case 46:return G(r)?D():46===r?46===t.charCodeAt(b+2)?{type:d,value:"...",line:x,lineStart:T,range:[$,b+=3]}:V(".."):V(".");case 61:return V(61===r?"==":"=");case 62:return V(61===r?">=":62===r?">>":">");case 60:return V(60===r?"<<":61===r?"<=":"<");case 126:return V(61===r?"~=":"~");case 58:return V(58===r?"::":":");case 91:return 91===r||61===r?function(){var e=z();!1===e&&M(_,g.expected,"[",_.value);return{type:i,value:e,line:x,lineStart:T,range:[$,b]}}():V("[");case 47:return V(47===r?"//":"/");case 42:case 94:case 37:case 44:case 123:case 124:case 125:case 93:case 40:case 41:case 59:case 38:case 35:case 45:case 43:return V(t.charAt(b))}return j(t.charAt(b))}function I(){var e=t.charCodeAt(b),r=t.charCodeAt(b+1);return!!Z(e)&&(10===e&&13===r&&b++,13===e&&10===r&&b++,x++,T=++b,!0)}function L(){for(;b=0?function(){var e,r,n,o,a=0,i=1,s=1;o=b+=2,J(t.charCodeAt(b))||M({},g.malformedNumber,t.slice($,b));for(;J(t.charCodeAt(b));)b++;if(e=parseInt(t.slice(o,b),16),"."===t.charAt(b)){for(r=++b;J(t.charCodeAt(b));)b++;a=t.slice(r,b),a=r===b?0:parseInt(a,16)/Math.pow(16,b-r)}if("pP".indexOf(t.charAt(b)||null)>=0){for(b++,"+-".indexOf(t.charAt(b)||null)>=0&&(s="+"===t.charAt(b++)?1:-1),n=b,G(t.charCodeAt(b))||M({},g.malformedNumber,t.slice($,b));G(t.charCodeAt(b));)b++;i=t.slice(n,b),i=Math.pow(2,i*s)}return(e+a)*i}():function(){for(;G(t.charCodeAt(b));)b++;if("."===t.charAt(b))for(b++;G(t.charCodeAt(b));)b++;if("eE".indexOf(t.charAt(b)||null)>=0)for(b++,"+-".indexOf(t.charAt(b)||null)>=0&&b++,G(t.charCodeAt(b))||M({},g.malformedNumber,t.slice($,b));G(t.charCodeAt(b));)b++;return parseFloat(t.slice($,b))}();return{type:c,value:n,line:x,lineStart:T,range:[$,b]}}function F(){var e=b;switch(t.charAt(b)){case"n":return b++,"\n";case"r":return b++,"\r";case"t":return b++,"\t";case"v":return b++,"\v";case"b":return b++,"\b";case"f":return b++,"\f";case"z":return b++,L(),"";case"x":return J(t.charCodeAt(b+1))&&J(t.charCodeAt(b+2))?(b+=3,"\\"+t.slice(e,b)):"\\"+t.charAt(b++);default:if(G(t.charCodeAt(b))){for(;G(t.charCodeAt(++b)););return"\\"+t.slice(e,b)}return t.charAt(b++)}}function U(){$=b,b+=2;var e=t.charAt(b),o="",a=!1,i=b,s=T,u=x;if("["===e&&(!1===(o=z())?o=e:a=!0),!a){for(;b=48&&e<=57}function J(e){return e>=48&&e<=57||e>=97&&e<=102||e>=65&&e<=70}function K(e){if(a===e.type)return!0;if(s!==e.type)return!1;switch(e.value){case"else":case"elseif":case"end":case"until":return!0;default:return!1}}function Y(){var e=Array.apply(null,A[S++]);A.push(e),r.onCreateScope&&r.onCreateScope()}function H(){A.pop();S--,r.onDestroyScope&&r.onDestroyScope()}function X(e){-1===O(A[S],e)&&A[S].push(e)}function Q(e){X(e.name),ee(e,!0)}function ee(e,t){t||-1!==function(e,t,r){for(var n=0,o=e.length;n",_)}();case"if":return W(),function(){var e,t,n,o=[];re&&(n=ne[ne.length-1],ne.push(n));e=he(),B("then"),r.scope&&Y();t=ue(),r.scope&&H();o.push(m(h.ifClause(e,t))),re&&(n=oe());for(;q("elseif");)se(n),e=he(),B("then"),r.scope&&Y(),t=ue(),r.scope&&H(),o.push(m(h.elseifClause(e,t))),re&&(n=oe());q("else")&&(re&&(n=new ae(v),ne.push(n)),r.scope&&Y(),t=ue(),r.scope&&H(),o.push(m(h.elseClause(t))));return B("end"),m(h.ifStatement(o))}();case"return":return W(),function(){var e=[];if("end"!==_.value){var t=ge();for(null!=t&&e.push(t);q(",");)t=he(),e.push(t);q(";")}return m(h.returnStatement(e))}();case"function":return W(),pe(function(){var e,t,n;re&&(n=oe());e=fe(),r.scope&&(ee(e,te(e.name)),Y());for(;q(".");)se(n),t=fe(),e=m(h.memberExpression(e,".",t));q(":")&&(se(n),t=fe(),e=m(h.memberExpression(e,":",t)),r.scope&&X("self"));return e}());case"while":return W(),function(){var e=he();B("do"),r.scope&&Y();var t=ue();r.scope&&H();return B("end"),m(h.whileStatement(e,t))}();case"for":return W(),function(){var e,t=fe();r.scope&&(Y(),Q(t));if(q("=")){var n=he();B(",");var o=he(),a=q(",")?he():null;return B("do"),e=ue(),B("end"),r.scope&&H(),m(h.forNumericStatement(t,n,o,a,e))}for(var i=[t];q(",");)t=fe(),r.scope&&Q(t),i.push(t);B("in");var s=[];do{var u=he();s.push(u)}while(q(","));return B("do"),e=ue(),B("end"),r.scope&&H(),m(h.forGenericStatement(i,s,e))}();case"repeat":return W(),function(){r.scope&&Y();var e=ue();B("until");var t=he();r.scope&&H();return m(h.repeatStatement(t,e))}();case"break":return W(),m(h.breakStatement());case"do":return W(),function(){r.scope&&Y();var e=ue();r.scope&&H();return B("end"),m(h.doStatement(e))}();case"goto":return W(),function(){_.value;var e=fe();return m(h.gotoStatement(e))}()}return l===_.type&&q("::")?function(){var e=_.value,t=fe();r.scope&&(X("::"+e+"::"),ee(t,!0));return B("::"),m(h.labelStatement(t))}():(re&&ne.pop(),q(";")?void 0:function(){var e,t,r=_;re&&(t=oe());if(null==(e=be()))return j(_);if(",=".indexOf(_.value)>=0){var n,o=[e],a=[];for(le(e);q(",");)null==(n=be())&&k("",_),le(n),o.push(n);B("=");do{n=he(),a.push(n)}while(q(","));return se(t),m(h.assignmentStatement(o,a))}if(function(e){switch(e.type){case"CallExpression":case"TableCallExpression":case"StringCallExpression":return!0}return!1}(e))return se(t),m(h.callStatement(e));return j(r)}())}function le(e){(e.inParens||-1===["Identifier","MemberExpression","IndexExpression"].indexOf(e.type))&&M(_,g.invalidVar,_.value)}function fe(){ie();var e=_.value;return u!==_.type&&k("",_),W(),m(h.identifier(e))}function pe(e,t){var n=[];if(B("("),!q(")"))for(;;)if(u===_.type){var o=fe();if(r.scope&&Q(o),n.push(o),q(","))continue;if(q(")"))break}else{if(d===_.type){n.push(ve()),B(")");break}k(" or '...'",_)}var a=ue();return B("end"),r.scope&&H(),t=t||!1,m(h.functionStatement(e,n,t,a))}function de(){for(var e,t,r=[];;){if(ie(),l===_.type&&q("["))e=he(),B("]"),B("="),t=he(),r.push(m(h.tableKey(e,t)));else if(u===_.type)"="===y.value?(e=fe(),W(),t=he(),r.push(m(h.tableKeyString(e,t)))):(t=he(),r.push(m(h.tableValue(t))));else{if(null==(t=ge())){ne.pop();break}r.push(m(h.tableValue(t)))}if(!(",;".indexOf(_.value)>=0))break;W()}return B("}"),m(h.tableConstructorExpression(r))}function ge(){return function e(t){var r,n,o=_.value;re&&(n=oe());if(function(e){return l===e.type?"#-~".indexOf(e.value)>=0:s===e.type&&"not"===e.value}(_)){ie(),W();var a=e(10);null==a&&k("",_),r=m(h.unaryExpression(o,a))}null==r&&null==(r=ve())&&(r=be());if(null==r)return null;var i;for(;o=_.value,!(0===(i=l===_.type||s===_.type?me(o):0)||i<=t);){"^"!==o&&".."!==o||i--,W();var u=e(i);null==u&&k("",_),re&&ne.push(n),r=m(h.binaryExpression(o,r,u))}return r}(0)}function he(){var e=ge();if(null!=e)return e;k("",_)}function me(e){var t=e.charCodeAt(0),r=e.length;if(1===r)switch(t){case 94:return 12;case 42:case 47:case 37:return 10;case 43:case 45:return 9;case 38:return 6;case 126:return 5;case 124:return 4;case 60:case 62:return 3}else if(2===r)switch(t){case 47:return 10;case 46:return 8;case 60:case 62:return"<<"===e||">>"===e?7:3;case 61:case 126:return 3;case 111:return 1}else if(97===t&&"and"===e)return 2;return 0}function be(){var e,t,n,o,a;if(re&&(n=oe()),u===_.type)t=_.value,e=fe(),r.scope&&ee(e,te(t));else{if(!q("("))return null;e=he(),B(")"),e.inParens=!0}for(;;)if(l===_.type)switch(_.value){case"[":se(n),W(),o=he(),e=m(h.indexExpression(e,o)),B("]");break;case".":se(n),W(),a=fe(),e=m(h.memberExpression(e,".",a));break;case":":se(n),W(),a=fe(),e=m(h.memberExpression(e,":",a)),se(n),e=_e(e);break;case"(":case"{":se(n),e=_e(e);break;default:return e}else{if(i!==_.type)break;se(n),e=_e(e)}return e}function _e(e){if(l===_.type)switch(_.value){case"(":W();var t=[],r=ge();for(null!=r&&t.push(r);q(",");)r=he(),t.push(r);return B(")"),m(h.callExpression(e,t));case"{":ie(),W();var n=de();return m(h.tableCallExpression(e,n))}else if(i===_.type)return m(h.stringCallExpression(e,ve()));k("function arguments",_)}function ve(){var e,n=i|c|f|p|d,o=_.value,a=_.type;if(re&&(e=oe()),a&n){se(e);var u=t.slice(_.range[0],_.range[1]);return W(),m(h.literal(a,o,u))}return s===a&&"function"===o?(se(e),W(),r.scope&&Y(),pe(null)):q("{")?(se(e),de()):void 0}function ye(r){return t+=String(r),n=t.length,e}function we(e){void 0!==e&&ye(e),t&&"#!"===t.substr(0,2)&&(t=t.replace(/^.*/,function(e){return e.replace(/./g," ")})),n=t.length,re=r.locations||r.ranges,y=P();var o=function(){W(),ie(),r.scope&&Y();var e=ue();return r.scope&&H(),a!==_.type&&j(_),re&&!e.length&&(v=_),m(h.chunk(e))}();if(r.comments&&(o.comments=w),r.scope&&(o.globals=C),ne.length>0)throw new Error("Location tracking failed. This is most likely a bug in luaparse");return o}ae.prototype.complete=function(){r.locations&&(this.loc.end.line=v.line,this.loc.end.column=v.range[1]-v.lineStart),r.ranges&&(this.range[1]=v.range[1])},e.parse=function(a,i){void 0===i&&"object"==typeof a&&(i=a,a=void 0);i||(i={});t=a||"",r=function(){for(var e,t,r=N.call(arguments),n={},o=0,a=r.length;o{\n\t\tlet call = Function.prototype.call, bind = call.bind.bind(call), Tproto = __star_T.prototype, $proto = __star.globalScope.constructor.prototype;\n\t\tTget = bind(Tproto.get), Tset = bind(Tproto.set), Tins = bind(Tproto.insert);\n\t\t$get = bind($proto.get), $set = bind($proto.set), $setLocal = bind($proto.setLocal);\n\t\t__star_shift = bind(Array.prototype.shift);\n\t})();\n\t${m(o.default.parse(e),0)}\n\t`};var n,o=(n=r(16))&&n.__esModule?n:{default:n};class a extends String{constructor(e,t){super(),this.base=e,this.property=t}get(){return`Tget(${this.base}, ${this.property})`}set(e){return`Tset(${this.base}, ${this.property}, ${e})`}toString(){return this.get()}valueOf(){return this.get()}}let i=1,s=0,u=0;const c={"-":"unm",not:"not","#":"len"},l={"..":"concat","+":"add","-":"sub","*":"mul","/":"div","%":"mod","==":"eq","~=":"neq","<":"lt",">":"gt","<=":"lte",">=":"gte","^":"pow"},f={AssignmentStatement(e,t){let r=e.variables.map((e,r)=>{const n=g(e,t);if(n instanceof a)return n.set(`__star_tmp[${r}]`);{const[e,t]=[].concat(n.match(/^\$get\((.*)\)$/));if(!e)throw new Error("Unhandled");return`$set(${t}, __star_tmp[${r}])`}}).join(";\n");return`__star_tmp = [${p(e.init,t).join(", ")}];${r}`},BinaryExpression(e,t){let r=g(e.left,t),n=g(e.right,t),o=l[e.operator];if(h(e.left)&&(r+="[0]"),h(e.right)&&(n+="[0]"),!o)throw console.info(e),new Error(`Unhandled binary operator: ${e.operator}`);return`__star_op_${o}(${r}, ${n})`},BooleanLiteral:e=>e.value?"true":"false",BreakStatement:e=>"break",CallStatement:(e,t)=>m(e.expression,t),CallExpression(e,t){let r=g(e.base,t);const n=p(e.arguments,t);return h(e.base)?n.unshift(`${r}[0]`):(r instanceof a&&":"===e.base.indexer&&n.unshift(r.base),n.unshift(`${r}`)),`__star_call(${n})`},Chunk:(e,t)=>e.body.map(e=>m(e,t)+";").join("\n"),DoStatement(e,t){let{scope:r,scopeDef:n}=d(t),o=this.Chunk(e,r);return`${n=n.replace(",",";")}\n${o}\n$=$${t};`},ElseClause(e,t){return`{\n${this.Chunk(e,t)}\n}`},ElseifClause(e,t){return this.IfClause(e,t)},ForNumericStatement(e,t){let{scope:r,scopeDef:n}=d(t),o=m(e.variable,t),a=g(e.start,t),i=g(e.end,t),s=null===e.step?1:m(e.step,t),c=s>0?"<=":">=",l=this.Chunk(e,r),f=++u;return`for (${`$${t}._forLoop${f} = ${a}`}; ${`$${t}._forLoop${f} ${c} ${i}`}; ${`$${t}._forLoop${f} += ${s}`}) {\n${n}\n${`$${r}.setLocal('${o}',$${t}._forLoop${f});`}\n${l}\n}`},ForGenericStatement(e,t){const{scope:r,scopeDef:n}=d(t),{scope:o,scopeDef:a}=d(r),i=p(e.iterators,t).join(", "),s=this.Chunk(e,o),u=e.variables.map((e,t)=>{return`$setLocal($, '${m(e,r)}', __star_tmp[${t}])`}).join(";\n");return`${n.split(", ")[0]};\n[$${r}._iterator, $${r}._table, $${r}._next] = [${i}];\nwhile((__star_tmp = __star_call($${r}._iterator, $${r}._table, $${r}._next)),__star_tmp[0] !== undefined) {\n${a}$${r}._next = __star_tmp[0]\n${u}\n${s}\n}`},FunctionDeclaration(e,t){let r,{scope:n,scopeDef:o}=d(t),i=!e.identifier,u=i?"":m(e.identifier,t),c=u instanceof a,l=e.parameters.map((e,t)=>{let r=m(e,n);return"...$.getVarargs()"===r?"$.setVarargs(args)":`$setLocal($, '${r}', __star_shift(args))`});c?(r=u.property.replace(/'/g,""),":"===e.identifier.indexer&&l.unshift("$setLocal($, 'self', __star_shift(args))")):r=u;let f=l.join(";\n"),p=this.Chunk(e,n),g=`(__star_tmp = function ${i?"":"func$"}${r}(...args){${o}\n${f};\n${p} return [];}, __star_tmp.toString=()=>'function: 0x${(++s).toString(16)}', __star_tmp)`;if(i)return g;if(c)return u.set(g);return`$set${e.isLocal?"Local":""}($, '${u}', ${g})`},Identifier:(e,t)=>e.name,IfClause(e,t){let r=g(e.condition,t);return h(e.condition)&&(r+="[0]"),`if (__star_op_bool(${r})) {\n${this.Chunk(e,t)}\n}`},IfStatement:(e,t)=>e.clauses.map(e=>m(e,t)).join(" else "),IndexExpression(e,t){let r=g(e.base,t),n=g(e.index,t);return h(e.base)&&(r+="[0]"),h(e.index)&&(n+="[0]"),new a(r,n)},LocalStatement(e,t){let r=e.variables.map((e,r)=>{return`$setLocal($, '${m(e,t)}', __star_tmp[${r}])`}).join(";\n");return`__star_tmp = [${p(e.init,t).join(", ")}];${r}`},LogicalExpression(e,t){let r=g(e.left,t),n=g(e.right,t),o=e.operator;if(h(e.left)&&(r+="[0]"),h(e.right)&&(n+="[0]"),"and"===o)return`(!__star.op.bool(${r})?${r}:${n})`;if("or"===o)return`(__star.op.bool(${r})?${r}:${n})`;throw console.info(e),new Error(`Unhandled logical operator: ${e.operator}`)},MemberExpression(e,t){let r=g(e.base,t),n=m(e.identifier,t);return h(e.base)&&(r+="[0]"),new a(r,`'${n}'`)},NilLiteral:e=>"undefined",NumericLiteral:e=>e.value.toString(),RepeatStatement(e,t){let{scope:r,scopeDef:n}=d(t),o=g(e.condition,t);return`do{\n${n}\n${this.Chunk(e,r)}\n}while(!(${o}))`},ReturnStatement:(e,t)=>`return [${p(e.arguments,t).join(", ")}];`,StringCallExpression(e,t){return e.arguments=e.argument,this.TableCallExpression(e,t)},StringLiteral(e){let t=e.raw;return/^\[\[[^]*]$/m.test(t)?`\`${t.substr(2,t.length-4).replace(/\\/g,"\\\\")}\``:t=t.replace(/([^\\])\\(\d{1,3})/g,(e,t,r)=>`${t}\\u${("000"+parseInt(r,10).toString(16)).substr(-4)}`)},TableCallExpression(e,t){let r=g(e.base,t),n=[m(e.arguments,t)];return h(e.base)?`__star_call(${r}[0],${n})`:(r instanceof a&&":"===e.base.indexer&&n.unshift(r.base),`__star_call(${r},${n})`)},TableConstructorExpression(e,t){return`new __star_T(t => {${e.fields.map((e,r,n)=>{if("TableValue"==e.type){const o=r===n.length-1;return this.TableValue(e,t,o)}return m(e,t)}).join(";\n")}})`},TableKeyString:(e,t)=>`Tset(t, '${m(e.key,t)}', ${g(e.value,t)})`,TableKey:(e,t)=>`Tset(t, ${g(e.key,t)}, ${g(e.value,t)})`,TableValue(e,t,r){let n=g(e.value,t);return h(e.value)&&(n=r?`...${n}`:`${n}[0]`),`Tins(t, ${n})`},UnaryExpression(e,t){let r=c[e.operator],n=g(e.argument,t);if(h(e.argument)&&(n+="[0]"),!r)throw console.info(e),new Error(`Unhandled unary operator: ${e.operator}`);return`__star_op_${r}(${n})`},VarargLiteral:e=>"...$.getVarargs()",WhileStatement(e,t){let{scope:r,scopeDef:n}=d(t);return`while(${g(e.condition,t)}) {\n${n}\n${this.Chunk(e,r)}\n}`}};function p(e,t){return e.map((e,r,n)=>{let o=g(e,t);return h(e)?r==n.length-1?`...${o}`:`${o}[0]`:o})}function d(e){let t=i++;return{scope:t,scopeDef:`let $${t} = $${e}.extend(), $ = $${t};`}}function g(e,t){let r=m(e,t);return"Identifier"===e.type?`$get($, '${r}')`:r}function h(e){return!!e.type.match(/CallExpression$/)}function m(e,t){let r=f[e.type];if(!r)throw console.info(e),new Error(`No generator found for: ${e.type}`);return r.call(f,e,t)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.runtime=t.parser=void 0;var n=a(r(17));t.parser=n;var o=a(r(14));function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){var n=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,r):{};n.get||n.set?Object.defineProperty(t,r,n):t[r]=e[r]}return t.default=e,t}t.runtime=o}])});