C64 music nostalgia

Size
47,200 Kb
Views
12,144

How do I make an c64 music nostalgia?

This Pen uses my JavaScript/WebAudio based C64 emulator to play an original 4kb sized C64 music program. Some minimalistic controls allow to start/stop, and change the playback volume and speed. . What is a c64 music nostalgia? How do you make a c64 music nostalgia? This script and codes were developed by Juergen Wothke on 24 November 2022, Thursday.

C64 music nostalgia Previews

C64 music nostalgia - Script Codes HTML Codes

<!DOCTYPE html>
<html >
<head> <meta charset="UTF-8"> <title>C64 music nostalgia</title> <link rel="stylesheet" href="css/style.css">
</head>
<body> <div id="staticScreen"></div>
<aside> <div id="controls">
<button id="play"> &gt;</button>
<button id="pause"> ||</button>
<input type="range" id="gain" name="gain" min="1" max="255" value="100">
<input type="range" id="speed" name="speed" min="0" max="100" value="50"> <p>The file you are listening to is a 4kb C64 program. Your browser is currenly emulating the respective home computer using JavaScript and WebAudio. <p>for more visit <a href="http://www.wothke.ch/tinyrsid/index.php/webaudio-players" target="_blank">Chiptunes forever</a> </div>
</aside>
<section> <div id="logo" class="logo">	<div id="moz-reflect-logo"><canvas id="logoCanvas" width="800" height="290"></canvas></div> </div> <div id="spectrum" class="spectrum"> <div id="moz-reflect-spectrum"><canvas id="spectrumCanvas" width="512" height="200"></canvas></div> </div>
</section> <script src="js/index.js"></script>
</body>
</html>

C64 music nostalgia - Script Codes CSS Codes

::selection { color: #eee; background: darkred;
}
body ::-webkit-scrollbar { height: 16px; overflow: visible; width: 16px;
}
body ::-webkit-scrollbar-thumb { background-color: rgba(0, 0, 0, .1); background-clip: padding-box; border: solid transparent; min-height: 28px; padding: 100px 0 0; box-shadow: inset 1px 1px 0 rgba(0,0,0,.1),inset 0 -1px 0 rgba(0,0,0,.07); border-width: 1px 1px 1px 6px;
}
body ::-webkit-scrollbar-thumb:hover { background-color: rgba(0, 0, 0, 0.5);
}
body ::-webkit-scrollbar-button { height: 0; width: 0;
}
::-webkit-scrollbar-track { background-clip: padding-box; border: solid transparent; border-width: 0 0 0 4px;
}
body ::-webkit-scrollbar-corner { background: transparent;
}
html, body { height: 100%; overflow: hidden; margin: 0; padding: 0;
}
body { color: #222; font-family: 'Open Sans', arial, sans-serif; font-weight: 300; -webkit-font-smoothing: antialiased; padding: 2em; background: -webkit-gradient(radial, center center, 500, center center, 1400, from(rgba(0,0,0,0)), to(rgba(0,0,0,0.6))) #fff; background: -moz-radial-gradient(farthest-side, rgba(0,0,0,0) 90%, rgba(0,0,0,0.2) 150%) #fff; background: -webkit-radial-gradient(farthest-side, rgba(0,0,0,0) 90%, rgba(0,0,0,0.2) 150%) #fff; background: -ms-radial-gradient(farthest-side, rgba(0,0,0,0) 90%, rgba(0,0,0,0.2) 150%) #fff; background: -o-radial-gradient(farthest-side, rgba(0,0,0,0) 90%, rgba(0,0,0,0.2) 150%) #fff; background: radial-gradient(farthest-side, rgba(0,0,0,0) 90%, rgba(0,0,0,0.2) 150%) #fff; box-sizing: border-box;
}
a { color: navy;
}
details { position: absolute; top: 0; left: 1em; margin: 1em 0; padding: 10px; background: #fff; background: rgba(155,155,155,0.1); border: 1px solid rgba(0,0,0,0.3); border-radius: 5px; max-width: 600px; font-size: 10pt; z-index: 100; background-color:rgba(247,247,247,0.8);
}
details > div { margin: 10px 0;
}
details > summary { cursor: pointer; white-space: nowrap;
}
button { display: inline-block; background: -webkit-gradient(linear, 0% 40%, 0% 70%, from(#F9F9F9), to(#E3E3E3)); background: -webkit-linear-gradient(#F9F9F9 40%, #E3E3E3 70%); background: -moz-linear-gradient(#F9F9F9 40%, #E3E3E3 70%); background: -ms-linear-gradient(#F9F9F9 40%, #E3E3E3 70%); background: -o-linear-gradient(#F9F9F9 40%, #E3E3E3 70%); background: linear-gradient(#F9F9F9 40%, #E3E3E3 70%); border: 1px solid #999; -webkit-border-radius: 3px; border-radius: 3px; padding: 5px 8px; outline: none; white-space: nowrap; -webkit-user-select: none; -moz-user-select: none; user-select: none; cursor: pointer; text-shadow: 1px 1px #fff; font-weight: 700; font-size: 10pt;
}
button:not(:disabled):hover,
button:not(:disabled).active { border-color: black;
}
button:not(:disabled):active,
button:not(:disabled).active { background: -webkit-gradient(linear, 0% 40%, 0% 70%, from(#E3E3E3), to(#F9F9F9)); background: -webkit-linear-gradient(#E3E3E3 40%, #F9F9F9 70%); background: -moz-linear-gradient(#E3E3E3 40%, #F9F9F9 70%); background: -ms-linear-gradient(#E3E3E3 40%, #F9F9F9 70%); background: -o-linear-gradient(#E3E3E3 40%, #F9F9F9 70%); background: linear-gradient(#E3E3E3 40%, #F9F9F9 70%);
}
input[type="range"]{ -webkit-appearance: none !important; background-color: #555; box-shadow: 0 -1px 1px rgba(255,255,255,0.5) inset; border-radius: 10px;
}
input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none !important; width: 20px; height: 8px; box-shadow: 1px 1px 5px rgba(0,0,0,1); cursor: pointer; border-top: 1px solid #fff; background: #ccc -webkit-linear-gradient(top, rgb(240, 240, 240), rgb(210, 210, 210));
}
input[type=range]{ /* fix for FF unable to apply focus style bug */ border: 1px solid white; /*required for proper track sizing in FF*/ width: 120px;
}
h2 { margin: 0; font-weight: 300;
}
html, body { overflow: hidden; margin: 0; padding: 0;
}
body > section { display: -webkit-flex; display: flex; -webkit-flex-direction: column; flex-direction: column; -webkit-justify-content: center; justify-content: center; -webkit-align-content: center; align-content: center; -webkit-align-items: center; align-items: center; box-sizing: border-box; height: 100%; -webkit-perspective: 900px; -moz-perspective: 900px; -perspective: 900px; -webkit-transform-style: preserve-3d; -moz-transform-style: preserve-3d;
}
section > * { display: -webkit-flex; -webkit-align-items: center; -moz-align-items: center;
}
.logo { position: relative; top: 40px; left: 800px; z-index:2; margin: 0px; -webkit-box-reflect: below 35px -webkit-linear-gradient(top, transparent 10%, transparent 40%, rgba(255,255,255,0.9));
}
#logo { -webkit-transform: translateX(-400px) translateY(50px) translateZ(-290px) rotateX(-12deg) rotateY(-45deg) rotateZ(0deg); -moz-transform: translateX(-400px) translateY(300px) translateZ(-290px) rotateX(-12deg) rotateY(-45deg) rotateZ(-2deg);
}
#moz-reflect-logo:after { content: ""; display: none;
}
#moz-reflect-logo.enableMozReflection:after { display: block; background: -moz-linear-gradient(top, white, white 30%, rgba(255,255,255,0.6) 65%, rgba(255,255,255,0.3)) -60px, -moz-element(#moz-reflect-logo) 0px -97px no-repeat; position:relative; width: auto; height: 175px; margin-bottom: 0px; -moz-transform: scaleY(-1);
}
.spectrum {	position: relative;	top: -20px;	left: 265px;	z-index:1; margin: 0px;	-webkit-box-reflect: below 45px -webkit-linear-gradient(top, transparent, transparent 50%, rgba(255,255,255,0.4));
}
#spectrum { -webkit-transform: translateX(-300px) translateY(-170px) translateZ(-560px) rotateX(-40deg) rotateY(40deg); -moz-transform: translateX(-200px) translateY(-170px) translateZ(-560px) rotateX(-40deg) rotateY(40deg);
}
#moz-reflect-spectrum:after { content: ""; display: none;
}
#moz-reflect-spectrum.enableMozReflection:after { display: block;	background: -moz-linear-gradient(top, white, white 30%, rgba(255,255,255,0.6) 65%, rgba(255,255,255,0.3)) -60px, -moz-element(#moz-reflect-spectrum) 0px +57px no-repeat;	position:relative;	top: 0px; width: auto;	height: 275px;	margin-bottom: 0px;	-moz-transform: scaleY(-1);
}
aside { position: absolute; left: 1em; top: 3em; z-index: 10; max-width: 400px;
}
label { cursor: pointer;
}
#controls { display: none;
}
#controls.ready { display: block;
}
#staticScreen { content: ""; width: 100%; height: 100%; background-image:url("http://www.wothke.ch/fbScreenshots/codepen_sid.jpg"); background-repeat: no-repeat;
}
#staticScreen.ready { content: ""; display: none;
}

C64 music nostalgia - Script Codes JS Codes

/**
* Tiny'R'Sid
*
*	Copyright (C) 2014 Juergen Wothke
*
* Terms of Use: This software is licensed under a CC BY-NC-SA
* (http://creativecommons.org/licenses/by-nc-sa/4.0/).
*/
var data = {
zoolook: "UFNJRAACAHwAAEANQBMAAQABAAAAAFpvb2xvb2sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUm9iIEh1YmJhcmQAAAAAAAAAAAAAAAAAAAAAAAAAAAAxOTg2IFJvYiBIdWJiYXJkAAAAAAAAAAAAAAAAAAAAAAAUAAAAAABAAFlODAEAAAIAAP8AAEzpQ0z0QyzqRDAqUECu6ESpALy6RJkE1J2+RJ3BRJ3ERJ3KRJkG1KkbndBEyhDhjepETN5DUBOpAK7oRLy6RJkE1MoQ96mAjepETN5DruhEzudEEAipA43nREx1QM7iRBAGreZEjeJEvbpEjb1EqK3nRPAareJEzeZE0BK97UaFsL3wRoWx3sREMAZMqUFMvUG8vkSxsMn/8ArJ/tAUIBBATN5DqQCdxESdvkSdwURMnkCoufNGhbK5DUeFs6kAnfREnQRFvMFEqf+d00Sxsp3HRI3WRCkfncREqU847cBEyQ+QAqkPjRjULNZEcD7+wUSt1kQQGsixshAPnfREyLGynfFE/sFETBpBndBE/sFEyLGyjflEKX+dzUQKqLn6Q53uRLn7Q53rREw8Qd7TRKy9RL3QRI7YRAoKCqq9H0WN2USt+UQwNb0dRZkC1Ei9HkWZA9RIvQhGSL0gRZkF1L0hRZkG1K7YRKkAnd9EndxEaJ0BRWid/kRonftErdlErthEncpE/sFEvMFEsbLJ/9AIqQCdwUT+vkRMvUOsvUS9x0QpINAKvcRE0AWp/p3TRL3QRAoKCqiM6US5JEWN90S5I0WN20S5IkXQA0yUQkgpeEpKSp0HQGgpB43aRL0KQBAK3gRA0Bn+CkAQFP4EQL0HQN0EQLAJnQRA3gpA3gRAvfRE8ANMlEK9zUQKqDi5+kP5+EONAUC5+0P5+UPO2kQwB0puAUBMKkKNAEC5+kONAkC5+0ONA0C9B0BKqIgwFjitAkDtAUCNAkCtA0DtAECNA0BMSkK9x0QpH8kDkCi8BECIMBYYrQJAbQFAjQJArQNAbQBAjQNATG9CrQJAne5ErQNAnetErdtE8Fys6US5CkYpD43eQrkKRkpKSkqNxEK930TQGq3bRBh9+0RIvf5EaQApD0jJDtAd/t9ETORCOL37RO3bREi9/kTpACkPSMkI0APe30SsvURonf5EmQPUaJ37RJkC1Oqs6USt90QpAfApvetE8CS9xETwH73HRCkfOOkB3cREkA3+60T+60Sp/p3TRNAFqYCdykSt90QpAvAWrOlEvQRFKQHwBrkfRUxDQ7kHRp3KRK33RCkE8BS9AUXwCd4BRbkGRkxeQ7kfRZ3KRK33RCkI8CG9BEUpAfAGvc1ETHhDuQlGCqi5+kOd7kS5+0Od60Ss6USt90QpEPAsuQVGCqi5C0WNCUW5DEWNCkWsB0UYvc1EeQhFCqi5+kOd7kS5+0Od60Ss6UTqrL1EvcpEPdNEmQTUvetEmQHUve5EmQDU/gRFyjADTHVAzgdFEAWpAo0HRWCpAI0X1KlAjepEYKnAjepEYBYBJwE4AUsBXwFzAYoBoQG6AdQB8AEOAi0CTgJxApYCvQLnAhMDQgN0A6kD4AMbBFoEmwTiBCwFewXOBScGhQboBlEHwQc3CLQINwnECVcK9QqcC04MCQ3QDaMOgg9uEGgRbhKIE68U6xU5F5wYExqhG0YdBB/cINAi3CQQJ14p1ityLjgxJjRCN4w6CD64QaBFuEkgTrxSrFfkXHBiTGiEbhh1EHxwg0CLcJNAnHilWK/IueDEmNAI3TDqIPgu/QAHDgACBQITAAECAgIDg19BgQAqLAAJABv//v4DAABB/wAAAAAAAAAAAQMCAQMCSBsMGwBOoQAAAAAAAAAAACoAAAAADQgABAEABQVQAgAAAPz5/fn9+Pv5/vj69/z3+/j9+gAIEQ9nAAALAAwRDwkAAAugAUEPCQAQEKABQQ8JABAQoAFBDwkAEBAgAEEL8AAQBKABQQ8JABAQAAhBeQAAGAoAARdmAAAACgANQZkAEQAAoAFBDwkAEBCgAUEPCQAQEKABQQ8JABAQoAFBDwkAEBCABxEJABoABKABQQ8JABAQgAFBAF8AEBCAAUEAXwAQEIABQQBfABAQgAgRKKgiAACACBVjAAAACgAIQboAGjAAoAFRuP8AMASgAEHM2jMMAIABFQkIAAAKgAhBDwoAAAOACEF+CAAwCgAAAAAAAAAAgAgRSGsTAAAAgYEBOP0AAACBgQFA/QAAABEAAQAQAAABEQABABAAAAIRAAEAEAAAAFEAAQAxAAADEQABABAAAAAhgQNJ/AAAAyERA1z8AAAAIQAEAP0AAAQRAAEAEAAABREAAQAQAAAGEQABABAAAAcRAAEAEAAAAEAABAD8AAAIEQABABAAAABDAAgAIAAAAUMACAAgAAACQwAIACAAAACBgQFAAAAAAIGBATgAAAAAQwADAPgAAABBgQU++gAAAEGBBT7+AAAAgYEFQpcAAACBgQVClwAAAIGBBWP9AAAAAAAAAAAAAACBgQE4AAAAJ1eaR0dH6+6Bsu7wYh9QMlEDNCqVa/uqt8HyHyPiGwlHR0lJSElKSUlKSktIS0hLSUtLS0tITEtKSgsLCwsLCwsLBgsLBgsLCwYLCw0NDwsLCwsGCwsGCwsLEhISDQ0NDQ0NDQ0NDQAA/hUVFRUVFRUVAQIBAgECAQIEBAECAQIHCAgBAgECBAQMDA4BAgECAQIBAgQEAQIBAgcICBEREQwMDAwMDAwMDAwAAP4AAAAAAwMDAwUFBQUDAwkKCgoKAwMFBQUFAAAAAAAAAwMDAwUFBQUDAwkKCgoKFBMTExMWFxcQEBAQEBAQEBgZGBkYGRgZGBkYGRgZGBkAAP5fX/+DACyDAj+DATCDACyDAj+DACyDATCDAj+DACyDAz2DATCDACyDAz2DACyDATCDACz/gwAsQ4MBMIMALEODACyDATCDACz/gwAsgwQ7gwEwgwAsgwQ7gwAsgwEwgwQ7gwAsgww6gwEwgwAsgww6gwAsgwEwgwAsgwAsgw1AgwEwgwAsgww/gwAsgwM9gww/gwAsgww4gwEwgwAsgww6gwAsgwEwgwAs/4MALIMDO4MBMIMALIMDO4MALIMBMIMDO4MALIMPO4MBMIMALIMPO4MALIMBMIMALIMALIMPO4MBMIMALIMPO4MALIMBMIMPO4cALIMMOgM4BzqDATCDACz/gwAsgwZCgwEwgwAsgwZCgwAsgwEwgwZCgwAsgw1CgwEwgwAsgw1CgwAsgwEwgwAs/4MALIMDO4MBMIMALIMDO4MALIMBMIMDO4MALIMKPYMBMIMALIMKPYMALIMBMIMALP+DACyDCz6DATCDACyDCz6DACyDATCDCz6DACyDCz6DATCDACyDCz6DACyDATCDACz/gwAsgwI6gwEwgwAsgwI6gwAsgwEwgwI6gwAsgwQ7gwEwgwAsgwQ7gwAsgwEwgwQ7/4UFFAEUAyADFEsDEoUFFAEUAxQDFEMDEgMUAxKFBRsBGwMnAxtDAxtDAxuFBRQBFAMgAxRDARQBFAMSAxL/hQUSARIDEgMST/+FBRQBIAMUAxRDAxIHFIUFFAEgAxQDFAMQAxwDEgMe/4UFFAEgAxQDFEMBHgEeASABIAESAR7/hQUcARwDHAMcQwMcBxyFBR0BHQMdAx1DAx0DHQMd/4UFFgEWAyIDFkMDFgMiAxb/gwdCA0KDCEuHB0SDCSwDKgMsgwdCA0KDCEuHB0SDCSoDKgMsgwdCA0KDCSyDB0SDCEuDB0eDCEuDB0aDCEuDB0KDCSqHBz+DCSwDKgMsgwdCgwhLgwdCgwksgwdEgwkqAyoDLIMIS4MHQgNCB0SDCEuDCSoDLIMHQoMJLAMqgwdCA0QDR4MIS4MHRoMJLIMHQoMIS4cHRIMJKoMIS4MJLP+DCSyDCEtDgwksgwhLgwkqQwMqgwksgwhLQ4MJKoMIS4MJLEMDKv+DCSyHDkeDCSyHDkeDCSyDDkeDCSyHDkaDCSyHDkZHgwkshw5Mgwkqgw5Lgwkqgw5JA0uDCSiHDkSDCSqHDkZH/4MJKIcOR4MJKIcOR4MJKIMOR4MJKYcOR4MJKYcOR0eDCSaHDkeDCSaHDkeDCSaDDkeDCSoDKoMORgNEB0ZH/78QP78Rvb8Qup8Su/+/Ez8/vT+6H7v/gwUUAxSBCEsFP0cBSwU/RwFLBT9DgQUeAR4DIAESAR7/hwUUV1MBHgEeAyABEgEe/0eBCEsFP0cBSwU/RwFLBT9HAUsFP0cBSwU/RwFLBT9HAUsFP0OBBR4BHgMgARIBHv+HBRRXX19TAR4BHgMgARIBHv8=",
colors: "iVBORw0KGgoAAAANSUhEUgAAAAMAAAAgCAIAAABYclVwAAAAcklEQVR42mPcbKzPAAYscp+/QVhMDDDAwm1hAWEx/v//H10WwWLckRkI1aH08wOGKW//QTmMj25dx20ey8mNAVCWpvQtDNlPX5mheu/ePInHlJ2PdkJlvTd5Ysgy/IG5+ci5A3hMWfvgM1SWYR6GWxAsAKCdKgM83QEYAAAAAElFTkSuQmCC"
};
var colorImg = document.createElement( 'img' );colorImg.src = 'data:image/png;base64,'+ data.colors;
function toArrayBuffer(base64) {var binary_string = window.atob(base64);var len = binary_string.length;var bytes = new Uint8Array( len );var ascii;for (var i = 0; i < len; i++){ascii = binary_string.charCodeAt(i);bytes[i] = ascii;} return bytes.buffer;}
var musicFile = toArrayBuffer(data.zoolook);
function e(a){throw a;}var i=void 0,j=!0,k=null,l=!1;function m(){return function(){}}var n;n||(n=eval("(function() { try { return Module || {} } catch(e) { return {} } })()"));var aa={},p;for(p in n)n.hasOwnProperty(p)&&(aa[p]=n[p]);var ba="object"===typeof process&&"function"===typeof require,ca="object"===typeof window,da="function"===typeof importScripts,fa=!ca&&!ba&&!da;
if(ba){n.print||(n.print=function(a){process.stdout.write(a+"\n")});n.printErr||(n.printErr=function(a){process.stderr.write(a+"\n")});var ga=require("fs"),ha=require("path");n.read=function(a,b){var a=ha.normalize(a),c=ga.readFileSync(a);!c&&a!=ha.resolve(a)&&(a=path.join(__dirname,"..","src",a),c=ga.readFileSync(a));c&&!b&&(c=c.toString());return c};n.readBinary=function(a){return n.read(a,j)};n.load=function(a){ia(read(a))};n.arguments=process.argv.slice(2);module.exports=n}else fa?(n.print||(n.print=
print),"undefined"!=typeof printErr&&(n.printErr=printErr),n.read="undefined"!=typeof read?read:function(){e("no read() available (jsc?)")},n.readBinary=function(a){return read(a,"binary")},"undefined"!=typeof scriptArgs?n.arguments=scriptArgs:"undefined"!=typeof arguments&&(n.arguments=arguments),this.Module=n,eval("if (typeof gc === 'function' && gc.toString().indexOf('[native code]') > 0) var gc = undefined")):ca||da?(n.read=function(a){var b=new XMLHttpRequest;b.open("GET",a,l);b.send(k);return b.responseText},
"undefined"!=typeof arguments&&(n.arguments=arguments),"undefined"!==typeof console?(n.print||(n.print=function(a){console.log(a)}),n.printErr||(n.printErr=function(a){console.log(a)})):n.print||(n.print=m()),ca?this.Module=n:n.load=importScripts):e("Unknown runtime environment. Where are we?");function ia(a){eval.call(k,a)}"undefined"==!n.load&&n.read&&(n.load=function(a){ia(n.read(a))});n.print||(n.print=m());n.printErr||(n.printErr=n.print);n.arguments||(n.arguments=[]);n.print=n.print;n.N=n.printErr;
n.preRun=[];n.postRun=[];for(p in aa)aa.hasOwnProperty(p)&&(n[p]=aa[p]);
var w={Xa:function(){return r},Wa:function(a){r=a},Yd:function(a,b){b=b||4;return 1==b?a:isNumber(a)&&isNumber(b)?Math.ceil(a/b)*b:isNumber(b)&&isPowerOfTwo(b)?"((("+a+")+"+(b-1)+")&"+-b+")":"Math.ceil(("+a+")/"+b+")*"+b},wb:function(a){return a in w.ib||a in w.gb},xb:function(a){return"*"==a[a.length-1]},yb:function(a){return isPointerType(a)?l:isArrayType(a)||/<?\{ ?[^}]* ?\}>?/.test(a)?j:"%"==a[0]},ib:{i1:0,i8:0,i16:0,i32:0,i64:0},gb:{"float":0,"double":0},oe:function(a,b){return(a|0|b|0)+4294967296*
(Math.round(a/4294967296)|Math.round(b/4294967296))},Qd:function(a,b){return((a|0)&(b|0))+4294967296*(Math.round(a/4294967296)&Math.round(b/4294967296))},ue:function(a,b){return((a|0)^(b|0))+4294967296*(Math.round(a/4294967296)^Math.round(b/4294967296))},qa:function(a){switch(a){case "i1":case "i8":return 1;case "i16":return 2;case "i32":return 4;case "i64":return 8;case "float":return 4;case "double":return 8;default:return"*"===a[a.length-1]?w.F:"i"===a[0]?(a=parseInt(a.substr(1)),x(0===a%8),a/
8):0}},sb:function(a){return Math.max(w.qa(a),w.F)},qb:function(a,b){var c={};return b?a.filter(function(a){return c[a[b]]?l:c[a[b]]=j}):a.filter(function(a){return c[a]?l:c[a]=j})},set:function(){for(var a="object"===typeof arguments[0]?arguments[0]:arguments,b={},c=0;c<a.length;c++)b[a[c]]=0;return b},Gd:8,pa:function(a,b,c){return c||!c&&("i64"==a||"double"==a)?8:!a?Math.min(b,8):Math.min(b||(a?w.sb(a):0),w.F)},nb:function(a){a.u=0;a.L=0;var b=[],c=-1,d=0;a.Ma=a.ma.map(function(f){d++;var g,h;
w.wb(f)||w.xb(f)?(g=w.qa(f),h=w.pa(f,g)):w.yb(f)?"0"===f[1]?(g=0,h=Types.types[f]?w.pa(k,Types.types[f].L):a.L||QUANTUM_SIZE):(g=Types.types[f].u,h=w.pa(k,Types.types[f].L)):"b"==f[0]?(g=f.substr(1)|0,h=1):"<"===f[0]?g=h=Types.types[f].u:"i"===f[0]?(g=h=parseInt(f.substr(1))/8,x(0===g%1,"cannot handle non-byte-size field "+f)):x(l,"invalid type for calculateStructAlignment");a.pe&&(h=1);a.L=Math.max(a.L,h);f=w.P(a.u,h);a.u=f+g;0<=c&&b.push(f-c);return c=f});a.Sa&&"["===a.Sa[0]&&(a.u=parseInt(a.Sa.substr(1))*
a.u/2);a.u=w.P(a.u,a.L);0==b.length?a.La=a.u:1==w.qb(b).length&&(a.La=b[0]);a.ke=1!=a.La;return a.Ma},rb:function(a,b,c){var d,f;if(b){c=c||0;d=("undefined"===typeof Types?w.te:Types.types)[b];if(!d)return k;if(d.ma.length!=a.length)return printErr("Number of named fields must match the type for "+b+": possibly duplicate struct names. Cannot return structInfo"),k;f=d.Ma}else d={ma:a.map(function(a){return a[0]})},f=w.nb(d);var g={Id:d.u};b?a.forEach(function(a,b){if("string"===typeof a)g[a]=f[b]+
c;else{var v,q;for(q in a)v=q;g[v]=w.rb(a[v],d.ma[b],f[b])}}):a.forEach(function(a,b){g[a[1]]=f[b]});return g},ka:function(a,b,c){return c&&c.length?(c.splice||(c=Array.prototype.slice.call(c)),c.splice(0,0,b),n["dynCall_"+a].apply(k,c)):n["dynCall_"+a].call(k,b)},X:[],Jd:function(a){for(var b=0;b<w.X.length;b++)if(!w.X[b])return w.X[b]=a,2*(1+b);e("Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.")},re:function(a){w.X[(a-2)/2]=k},Zd:function(a,b){w.ja||
(w.ja={});var c=w.ja[a];if(c)return c;for(var c=[],d=0;d<b;d++)c.push(String.fromCharCode(36)+d);a=ja(a);'"'===a[0]&&(a.indexOf('"',1)===a.length-1?a=a.substr(1,a.length-2):y("invalid EM_ASM input |"+a+"|. Please use EM_ASM(..code..) (no quotes) or EM_ASM({ ..code($0).. }, input) (to input values)"));return w.ja[a]=eval("(function("+c.join(",")+"){ "+a+" })")},S:function(a){w.S.wa||(w.S.wa={});w.S.wa[a]||(w.S.wa[a]=1,n.N(a))},oa:{},ae:function(a,b){x(b);w.oa[a]||(w.oa[a]=function(){return w.ka(b,
a,arguments)});return w.oa[a]},ha:function(){var a=[],b=0;this.ta=function(c){c&=255;if(0==a.length){if(0==(c&128))return String.fromCharCode(c);a.push(c);b=192==(c&224)?1:224==(c&240)?2:3;return""}if(b&&(a.push(c),b--,0<b))return"";var c=a[0],d=a[1],f=a[2],g=a[3];2==a.length?c=String.fromCharCode((c&31)<<6|d&63):3==a.length?c=String.fromCharCode((c&15)<<12|(d&63)<<6|f&63):(c=(c&7)<<18|(d&63)<<12|(f&63)<<6|g&63,c=String.fromCharCode(Math.floor((c-65536)/1024)+55296,(c-65536)%1024+56320));a.length=
0;return c};this.Cb=function(a){for(var a=unescape(encodeURIComponent(a)),b=[],f=0;f<a.length;f++)b.push(a.charCodeAt(f));return b}},$d:function(){e("You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work")},ya:function(a){var b=r;r=r+a|0;r=r+7&-8;return b},Ya:function(a){var b=z;z=z+a|0;z=z+7&-8;return b},W:function(a){var b=C;C=C+a|0;C=C+7&-8;C>=D&&y("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+
D+", (2) compile with ALLOW_MEMORY_GROWTH which adjusts the size at runtime but prevents some optimizations, or (3) set Module.TOTAL_MEMORY before the program runs.");return b},P:function(a,b){return Math.ceil(a/(b?b:8))*(b?b:8)},ie:function(a,b,c){return c?+(a>>>0)+4294967296*+(b>>>0):+(a>>>0)+4294967296*+(b|0)},hb:8,F:4,Hd:0};n.Runtime=w;var ka=l,E,la;function x(a,b){a||y("Assertion failed: "+b)}n.ccall=function(a,b,c,d){return ma(na(a),b,c,d)};
function na(a){try{var b=n["_"+a];b||(b=eval("_"+a))}catch(c){}x(b,"Cannot call unknown function "+a+" (perhaps LLVM optimizations or closure removed it?)");return b}function ma(a,b,c,d){function f(a,b){if("string"==b){if(a===k||a===i||0===a)return 0;a=G(a);b="array"}if("array"==b){g||(g=w.Xa());var c=w.ya(a.length);oa(a,c);return c}return a}var g=0,h=0,d=d?d.map(function(a){return f(a,c[h++])}):[];a=a.apply(k,d);"string"==b?b=ja(a):(x("array"!=b),b=a);g&&w.Wa(g);return b}
n.cwrap=function(a,b,c){var d=na(a);return function(){return ma(d,b,c,Array.prototype.slice.call(arguments))}};
function pa(a,b,c){c=c||"i8";"*"===c.charAt(c.length-1)&&(c="i32");switch(c){case "i1":H[a]=b;break;case "i8":H[a]=b;break;case "i16":I[a>>1]=b;break;case "i32":J[a>>2]=b;break;case "i64":la=[b>>>0,(E=b,1<=+qa(E)?0<E?(ra(+sa(E/4294967296),4294967295)|0)>>>0:~~+ta((E-+(~~E>>>0))/4294967296)>>>0:0)];J[a>>2]=la[0];J[a+4>>2]=la[1];break;case "float":ua[a>>2]=b;break;case "double":va[a>>3]=b;break;default:y("invalid type for setValue: "+c)}}n.setValue=pa;
n.getValue=function(a,b){b=b||"i8";"*"===b.charAt(b.length-1)&&(b="i32");switch(b){case "i1":return H[a];case "i8":return H[a];case "i16":return I[a>>1];case "i32":return J[a>>2];case "i64":return J[a>>2];case "float":return ua[a>>2];case "double":return va[a>>3];default:y("invalid type for setValue: "+b)}return k};var K=2,wa=4;n.ALLOC_NORMAL=0;n.ALLOC_STACK=1;n.ALLOC_STATIC=K;n.ALLOC_DYNAMIC=3;n.ALLOC_NONE=wa;
function M(a,b,c,d){var f,g;"number"===typeof a?(f=j,g=a):(f=l,g=a.length);var h="string"===typeof b?b:k,c=c==wa?d:[xa,w.ya,w.Ya,w.W][c===i?K:c](Math.max(g,h?1:b.length));if(f){d=c;x(0==(c&3));for(a=c+(g&-4);d<a;d+=4)J[d>>2]=0;for(a=c+g;d<a;)H[d++|0]=0;return c}if("i8"===h)return a.subarray||a.slice?N.set(a,c):N.set(new Uint8Array(a),c),c;for(var d=0,s,v;d<g;){var q=a[d];"function"===typeof q&&(q=w.be(q));f=h||b[d];0===f?d++:("i64"==f&&(f="i32"),pa(c+d,q,f),v!==f&&(s=w.qa(f),v=f),d+=s)}return c}
n.allocate=M;function ja(a,b){for(var c=l,d,f=0;;){d=N[a+f|0];if(128<=d)c=j;else if(0==d&&!b)break;f++;if(b&&f==b)break}b||(b=f);var g="";if(!c){for(;0<b;)d=String.fromCharCode.apply(String,N.subarray(a,a+Math.min(b,1024))),g=g?g+d:d,a+=1024,b-=1024;return g}c=new w.ha;for(f=0;f<b;f++)d=N[a+f|0],g+=c.ta(d);return g}n.Pointer_stringify=ja;n.UTF16ToString=function(a){for(var b=0,c="";;){var d=I[a+2*b>>1];if(0==d)return c;++b;c+=String.fromCharCode(d)}};
n.stringToUTF16=function(a,b){for(var c=0;c<a.length;++c)I[b+2*c>>1]=a.charCodeAt(c);I[b+2*a.length>>1]=0};n.UTF32ToString=function(a){for(var b=0,c="";;){var d=J[a+4*b>>2];if(0==d)return c;++b;65536<=d?(d-=65536,c+=String.fromCharCode(55296|d>>10,56320|d&1023)):c+=String.fromCharCode(d)}};n.stringToUTF32=function(a,b){for(var c=0,d=0;d<a.length;++d){var f=a.charCodeAt(d);if(55296<=f&&57343>=f)var g=a.charCodeAt(++d),f=65536+((f&1023)<<10)|g&1023;J[b+4*c>>2]=f;++c}J[b+4*c>>2]=0};
function ya(a){function b(h,v,q){var v=v||Infinity,B="",A=[],t;if("N"===a[c]){c++;"K"===a[c]&&c++;for(t=[];"E"!==a[c];)if("S"===a[c]){c++;var u=a.indexOf("_",c);t.push(f[a.substring(c,u)||0]||"?");c=u+1}else if("C"===a[c])t.push(t[t.length-1]),c+=2;else{var u=parseInt(a.substr(c)),F=u.toString().length;if(!u||!F){c--;break}var ea=a.substr(c+F,u);t.push(ea);f.push(ea);c+=F+u}c++;t=t.join("::");v--;if(0===v)return h?[t]:t}else if(("K"===a[c]||g&&"L"===a[c])&&c++,u=parseInt(a.substr(c)))F=u.toString().length,
t=a.substr(c+F,u),c+=F+u;g=l;"I"===a[c]?(c++,u=b(j),F=b(j,1,j),B+=F[0]+" "+t+"<"+u.join(", ")+">"):B=t;a:for(;c<a.length&&0<v--;)if(t=a[c++],t in d)A.push(d[t]);else switch(t){case "P":A.push(b(j,1,j)[0]+"*");break;case "R":A.push(b(j,1,j)[0]+"&");break;case "L":c++;u=a.indexOf("E",c)-c;A.push(a.substr(c,u));c+=u+2;break;case "A":u=parseInt(a.substr(c));c+=u.toString().length;"_"!==a[c]&&e("?");c++;A.push(b(j,1,j)[0]+" ["+u+"]");break;case "E":break a;default:B+="?"+t;break a}!q&&(1===A.length&&"void"===
A[0])&&(A=[]);return h?A:B+("("+A.join(", ")+")")}var c=3,d={v:"void",b:"bool",c:"char",s:"short",i:"int",l:"long",f:"float",d:"double",w:"wchar_t",a:"signed char",h:"unsigned char",t:"unsigned short",j:"unsigned int",m:"unsigned long",x:"long long",y:"unsigned long long",z:"..."},f=[],g=j;try{if("Object._main"==a||"_main"==a)return"main()";"number"===typeof a&&(a=ja(a));if("_"!==a[0]||"_"!==a[1]||"Z"!==a[2])return a;switch(a[3]){case "n":return"operator new()";case "d":return"operator delete()"}return b()}catch(h){return a}}
function za(){var a=Error().stack;return a?a.replace(/__Z[\w\d_]+/g,function(a){var c=ya(a);return a===c?a:a+" ["+c+"]"}):"(no stack trace available)"}for(var H,N,I,Aa,J,Ba,ua,va,Ca=0,z=0,Da=0,r=0,Ea=0,Fa=0,C=0,Ga=n.TOTAL_STACK||5242880,D=n.TOTAL_MEMORY||16777216,O=4096;O<D||O<2*Ga;)O=16777216>O?2*O:O+16777216;O!==D&&(n.N("increasing TOTAL_MEMORY to "+O+" to be more reasonable"),D=O);
x("undefined"!==typeof Int32Array&&"undefined"!==typeof Float64Array&&!!(new Int32Array(1)).subarray&&!!(new Int32Array(1)).set,"JS engine does not provide full typed array support");var P=new ArrayBuffer(D);H=new Int8Array(P);I=new Int16Array(P);J=new Int32Array(P);N=new Uint8Array(P);Aa=new Uint16Array(P);Ba=new Uint32Array(P);ua=new Float32Array(P);va=new Float64Array(P);J[0]=255;x(255===N[0]&&0===N[3],"Typed arrays 2 must be run on a little-endian system");n.HEAP=i;n.HEAP8=H;n.HEAP16=I;
n.HEAP32=J;n.HEAPU8=N;n.HEAPU16=Aa;n.HEAPU32=Ba;n.HEAPF32=ua;n.HEAPF64=va;function Q(a){for(;0<a.length;){var b=a.shift();if("function"==typeof b)b();else{var c=b.M;"number"===typeof c?b.ia===i?w.ka("v",c):w.ka("vi",c,[b.ia]):c(b.ia===i?k:b.ia)}}}var Ha=[],Ia=[],Ja=[],Ka=[],La=[],Ma=l;function Na(a){Ha.unshift(a)}n.addOnPreRun=n.Od=Na;n.addOnInit=n.Ld=function(a){Ia.unshift(a)};n.addOnPreMain=n.Nd=function(a){Ja.unshift(a)};n.addOnExit=n.Kd=function(a){Ka.unshift(a)};
function Pa(a){La.unshift(a)}n.addOnPostRun=n.Md=Pa;function G(a,b,c){a=(new w.ha).Cb(a);c&&(a.length=c);b||a.push(0);return a}n.intArrayFromString=G;n.intArrayToString=function(a){for(var b=[],c=0;c<a.length;c++){var d=a[c];255<d&&(d&=255);b.push(String.fromCharCode(d))}return b.join("")};n.writeStringToMemory=function(a,b,c){a=G(a,c);for(c=0;c<a.length;)H[b+c|0]=a[c],c+=1};function oa(a,b){for(var c=0;c<a.length;c++)H[b+c|0]=a[c]}n.writeArrayToMemory=oa;
n.writeAsciiToMemory=function(a,b,c){for(var d=0;d<a.length;d++)H[b+d|0]=a.charCodeAt(d);c||(H[b+a.length|0]=0)};if(!Math.imul||-5!==Math.imul(4294967295,5))Math.imul=function(a,b){var c=a&65535,d=b&65535;return c*d+((a>>>16)*d+c*(b>>>16)<<16)|0};Math.de=Math.imul;var qa=Math.abs,ta=Math.ceil,sa=Math.floor,ra=Math.min,R=0,Qa=k,Ra=k;function Sa(){R++;n.monitorRunDependencies&&n.monitorRunDependencies(R)}n.addRunDependency=Sa;
function Ta(){R--;n.monitorRunDependencies&&n.monitorRunDependencies(R);if(0==R&&(Qa!==k&&(clearInterval(Qa),Qa=k),Ra)){var a=Ra;Ra=k;a()}}n.removeRunDependency=Ta;n.preloadedImages={};n.preloadedAudios={};Ca=8;z=Ca+191800;Ia.push({M:function(){Ua()}});
M([0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,72,138,72,152,72,186,189,4,1,41,16,234,234,234,234,234,108,20,3,0,0,0,0,0,173,13,220,104,168,104,170,104,64,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,0,0,6,6,6,0,0,0,6,6,6,6,0,6,6,0,16,16,0,0,6,6,6,0,6,6,6,6,0,6,6,0,32,16,0,6,6,6,6,11,21,11,11,11,21,37,47,47,105,32,6,6,6,6,6,6,6,6,6,6,6,6,11,21,21,27,6,11,16,11,11,21,
37,21,11,11,99,73,105,136,58,58,6,11,6,16,16,21,63,16,37,89,89,63,157,167,89,0,0,94,89,136,183,183,172,131,172,209,198,193,219,219,235,162,0,189,0,12,0,0,0,164,46,76,12,220,0,0,0,14,0,0,0,44,0,0,0,33,0,0,0,65,0,0,0,43,0,0,0,44,0,0,0,6,0,0,0,65,0,0,0,46,0,0,0,44,0,0,0,6,0,0,0,2,0,0,0,43,0,0,0,44,0,0,0,6,0,0,0,65,0,0,0,13,0,0,0,44,0,0,0,33,0,0,0,65,0,0,0,43,0,0,0,44,0,0,0,6,0,0,0,65,0,0,0,17,0,0,0,44,0,0,0,43,0,0,0,65,0,0,0,43,0,0,0,44,0,0,0,6,0,0,0,65,0,0,0,35,0,0,0,3,0,0,0,33,0,0,0,49,0,0,0,10,0,
0,0,3,0,0,0,50,0,0,0,49,0,0,0,48,0,0,0,3,0,0,0,50,0,0,0,2,0,0,0,10,0,0,0,3,0,0,0,50,0,0,0,49,0,0,0,11,0,0,0,3,0,0,0,33,0,0,0,49,0,0,0,43,0,0,0,3,0,0,0,50,0,0,0,49,0,0,0,58,0,0,0,3,0,0,0,43,0,0,0,49,0,0,0,43,0,0,0,3,0,0,0,50,0,0,0,49,0,0,0,53,0,0,0,28,0,0,0,33,0,0,0,66,0,0,0,43,0,0,0,28,0,0,0,41,0,0,0,66,0,0,0,45,0,0,0,28,0,0,0,41,0,0,0,1,0,0,0,34,0,0,0,28,0,0,0,41,0,0,0,66,0,0,0,15,0,0,0,28,0,0,0,33,0,0,0,66,0,0,0,43,0,0,0,28,0,0,0,41,0,0,0,66,0,0,0,19,0,0,0,28,0,0,0,43,0,0,0,66,0,0,0,43,0,0,0,28,
0,0,0,41,0,0,0,66,0,0,0,54,0,0,0,0,0,0,0,33,0,0,0,52,0,0,0,43,0,0,0,0,0,0,0,51,0,0,0,52,0,0,0,47,0,0,0,0,0,0,0,51,0,0,0,5,0,0,0,34,0,0,0,0,0,0,0,51,0,0,0,52,0,0,0,16,0,0,0,0,0,0,0,33,0,0,0,52,0,0,0,43,0,0,0,0,0,0,0,51,0,0,0,52,0,0,0,60,0,0,0,0,0,0,0,43,0,0,0,52,0,0,0,43,0,0,0,0,0,0,0,51,0,0,0,52,0,0,0,43,0,0,0,67,0,0,0,43,0,0,0,55,0,0,0,69,0,0,0,67,0,0,0,68,0,0,0,55,0,0,0,27,0,0,0,43,0,0,0,73,0,0,0,4,0,0,0,69,0,0,0,67,0,0,0,68,0,0,0,55,0,0,0,7,0,0,0,67,0,0,0,33,0,0,0,61,0,0,0,69,0,0,0,67,0,0,0,68,
0,0,0,55,0,0,0,75,0,0,0,67,0,0,0,74,0,0,0,62,0,0,0,64,0,0,0,67,0,0,0,63,0,0,0,61,0,0,0,40,0,0,0,38,0,0,0,39,0,0,0,37,0,0,0,40,0,0,0,38,0,0,0,39,0,0,0,37,0,0,0,71,0,0,0,38,0,0,0,70,0,0,0,42,0,0,0,40,0,0,0,38,0,0,0,39,0,0,0,37,0,0,0,8,0,0,0,38,0,0,0,33,0,0,0,37,0,0,0,40,0,0,0,38,0,0,0,39,0,0,0,37,0,0,0,20,0,0,0,38,0,0,0,72,0,0,0,36,0,0,0,40,0,0,0,38,0,0,0,39,0,0,0,37,0,0,0,23,0,0,0,21,0,0,0,43,0,0,0,24,0,0,0,23,0,0,0,21,0,0,0,25,0,0,0,24,0,0,0,31,0,0,0,21,0,0,0,26,0,0,0,57,0,0,0,23,0,0,0,21,0,0,0,25,
0,0,0,24,0,0,0,12,0,0,0,21,0,0,0,33,0,0,0,24,0,0,0,43,0,0,0,21,0,0,0,25,0,0,0,24,0,0,0,18,0,0,0,21,0,0,0,43,0,0,0,24,0,0,0,43,0,0,0,21,0,0,0,25,0,0,0,24,0,0,0,22,0,0,0,56,0,0,0,43,0,0,0,32,0,0,0,22,0,0,0,56,0,0,0,29,0,0,0,32,0,0,0,30,0,0,0,56,0,0,0,43,0,0,0,56,0,0,0,22,0,0,0,56,0,0,0,29,0,0,0,32,0,0,0,9,0,0,0,56,0,0,0,33,0,0,0,32,0,0,0,43,0,0,0,56,0,0,0,29,0,0,0,32,0,0,0,59,0,0,0,56,0,0,0,43,0,0,0,32,0,0,0,43,0,0,0,56,0,0,0,29,0,0,0,32,0,0,0,7,0,0,0,6,0,0,0,0,0,0,0,8,0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,
5,0,0,0,3,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,6,0,0,0,6,0,0,0,2,0,0,0,5,0,0,0,0,0,0,0,8,0,0,0,4,0,0,0,4,0,0,0,6,0,0,0,6,0,0,0,2,0,0,0,4,0,0,0,2,0,0,0,7,0,0,0,4,0,0,0,4,0,0,0,7,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,0,0,0,0,8,0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,6,0,0,0,6,0,0,0,2,0,0,0,5,0,0,0,0,0,0,0,8,0,0,0,4,0,0,0,4,0,0,0,6,0,0,0,6,0,0,0,2,0,0,0,4,0,0,0,2,0,0,0,7,0,0,0,4,0,0,0,4,0,0,0,7,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,0,0,0,0,8,0,0,0,3,0,0,0,3,0,0,
0,5,0,0,0,5,0,0,0,3,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,6,0,0,0,6,0,0,0,2,0,0,0,5,0,0,0,0,0,0,0,8,0,0,0,4,0,0,0,4,0,0,0,6,0,0,0,6,0,0,0,2,0,0,0,4,0,0,0,2,0,0,0,7,0,0,0,4,0,0,0,4,0,0,0,7,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,0,0,0,0,8,0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,6,0,0,0,2,0,0,0,5,0,0,0,0,0,0,0,8,0,0,0,4,0,0,0,4,0,0,0,6,0,0,0,6,0,0,0,2,0,0,0,4,0,0,0,2,0,0,0,7,0,0,0,4,0,0,0,4,0,0,0,7,0,0,0,7,0,0,0,2,0,0,0,6,0,0,0,2,0,0,0,6,0,0,0,3,0,
0,0,3,0,0,0,3,0,0,0,3,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,2,0,0,0,6,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,2,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,2,0,0,0,6,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,2,0,0,0,5,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,2,0,0,0,4,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,2,0,0,0,6,0,0,0,2,0,0,0,8,
0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,5,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,6,0,0,0,6,0,0,0,2,0,0,0,5,0,0,0,0,0,0,0,8,0,0,0,4,0,0,0,4,0,0,0,6,0,0,0,6,0,0,0,2,0,0,0,4,0,0,0,2,0,0,0,7,0,0,0,4,0,0,0,4,0,0,0,7,0,0,0,7,0,0,0,2,0,0,0,6,0,0,0,2,0,0,0,8,0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,5,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,6,0,0,0,6,0,0,0,2,0,0,0,5,0,0,0,0,0,0,0,8,0,0,0,4,0,0,0,4,0,0,0,6,0,0,0,6,0,0,0,2,0,0,0,4,0,0,0,2,0,0,0,7,0,0,0,4,0,0,0,4,0,0,0,7,0,0,0,7,0,0,0,0,0,0,0,10,0,0,
0,0,0,0,0,10,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,0,0,0,0,1,0,0,0,12,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,13,0,0,0,11,0,0,0,0,0,0,0,11,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,2,0,0,0,10,0,0,0,0,0,0,0,10,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,0,0,0,0,1,0,0,0,12,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,13,0,0,0,11,0,0,0,0,0,0,0,11,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,
3,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,10,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,0,0,0,0,1,0,0,0,12,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,13,0,0,0,11,0,0,0,0,0,0,0,11,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,10,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,0,0,0,0,1,0,0,0,12,0,0,0,1,0,0,0,9,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,13,0,0,0,11,0,0,0,0,0,0,0,11,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,4,0,0,0,3,
0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,1,0,0,0,10,0,0,0,1,0,0,0,10,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,13,0,0,0,11,0,0,0,0,0,0,0,3,0,0,0,7,0,0,0,7,0,0,0,8,0,0,0,8,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,1,0,0,0,10,0,0,0,1,0,0,0,10,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,13,0,0,0,11,0,0,0,0,0,0,0,11,0,0,0,7,0,0,0,7,0,0,0,8,0,0,0,8,0,0,0,0,0,0,0,4,0,0,
0,0,0,0,0,4,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,1,0,0,0,10,0,0,0,1,0,0,0,10,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,13,0,0,0,11,0,0,0,0,0,0,0,11,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,1,0,0,0,10,0,0,0,1,0,0,0,10,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,13,0,0,0,11,0,0,0,0,0,0,0,11,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,
0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,187,164,19,59,51,60,3,60,66,47,129,60,91,205,194,60,19,196,24,61,119,143,97,61,201,223,136,61,154,116,160,61,45,244,200,61,95,108,122,62,95,108,250,62,34,80,72,63,143,75,122,63,223,192,59,64,84,115,156,64,195,83,250,64],"i8",wa,w.hb);var Va=w.P(M(12,"i8",K),8);x(0==Va%8);n._memcpy=Wa;n._memset=Xa;var Ya=0;function Za(a){return J[Ya>>2]=a}
function $a(a){$a.ob||(C=C+4095&-4096,$a.ob=j,x(w.W),$a.lb=w.W,w.W=function(){y("cannot dynamically allocate, sbrk now has control")});var b=C;0!=a&&$a.lb(a);return b}
var S={O:1,T:2,td:3,oc:4,D:5,Fa:6,Ib:7,Mc:8,bb:9,Wb:10,Aa:11,Dd:11,eb:12,ab:13,hc:14,Yc:15,Ba:16,Ca:17,Ed:18,Da:19,fb:20,ea:21,C:22,Hc:23,cb:24,cd:25,Ad:26,ic:27,Uc:28,ga:29,qd:30,Ac:31,jd:32,ec:33,nd:34,Qc:42,lc:43,Xb:44,rc:45,sc:46,tc:47,zc:48,Bd:49,Kc:50,qc:51,bc:35,Nc:37,Ob:52,Rb:53,Fd:54,Ic:55,Sb:56,Tb:57,cc:35,Ub:59,Wc:60,Lc:61,xd:62,Vc:63,Rc:64,Sc:65,pd:66,Oc:67,Lb:68,ud:69,Yb:70,kd:71,Cc:72,fc:73,Qb:74,dd:76,Pb:77,od:78,uc:79,vc:80,yc:81,xc:82,wc:83,Xc:38,Ea:39,Dc:36,fa:40,ed:95,hd:96,ac:104,
Jc:105,Mb:97,md:91,ad:88,Tc:92,rd:108,$b:111,Jb:98,Zb:103,Gc:101,Ec:100,yd:110,jc:112,kc:113,nc:115,Nb:114,dc:89,Bc:90,ld:93,sd:94,Kb:99,Fc:102,pc:106,Zc:107,zd:109,Cd:87,gc:122,vd:116,bd:95,Pc:123,mc:84,fd:75,Vb:125,$c:131,gd:130,wd:86};n._strlen=ab;
var bb={"0":"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",
23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",
43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",
64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",
81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",
98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",
115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"},cb=[];function db(a,b){cb[a]={input:[],I:[],R:b};eb[a]={k:fb}}
var fb={open:function(a){var b=cb[a.e.aa];b||e(new T(S.Da));a.p=b;a.seekable=l},close:function(a){a.p.I.length&&a.p.R.$(a.p,10)},J:function(a,b,c,d){(!a.p||!a.p.R.Pa)&&e(new T(S.Fa));for(var f=0,g=0;g<d;g++){var h;try{h=a.p.R.Pa(a.p)}catch(s){e(new T(S.D))}h===i&&0===f&&e(new T(S.Aa));if(h===k||h===i)break;f++;b[c+g]=h}f&&(a.e.timestamp=Date.now());return f},write:function(a,b,c,d){(!a.p||!a.p.R.$)&&e(new T(S.Fa));for(var f=0;f<d;f++)try{a.p.R.$(a.p,b[c+f])}catch(g){e(new T(S.D))}d&&(a.e.timestamp=
Date.now());return f}},U={A:k,$a:1,da:2,za:3,H:function(){return U.createNode(k,"/",16895,0)},createNode:function(a,b,c,d){(24576===(c&61440)||4096===(c&61440))&&e(new T(S.O));U.A||(U.A={dir:{e:{B:U.g.B,o:U.g.o,sa:U.g.sa,Y:U.g.Y,rename:U.g.rename,Za:U.g.Za,Va:U.g.Va,Ua:U.g.Ua,ca:U.g.ca},K:{G:U.k.G}},file:{e:{B:U.g.B,o:U.g.o},K:{G:U.k.G,J:U.k.J,write:U.k.write,Ga:U.k.Ga,Ra:U.k.Ra}},link:{e:{B:U.g.B,o:U.g.o,ba:U.g.ba},K:{}},Ja:{e:{B:U.g.B,o:U.g.o},K:gb}});hb||(hb=function(a,b,c,d){a||(a=this);this.parent=
a;this.H=a.H;this.Z=k;this.id=ib++;this.name=b;this.mode=c;this.g={};this.k={};this.aa=d},hb.prototype={},Object.defineProperties(hb.prototype,{J:{get:function(){return 365===(this.mode&365)},set:function(a){a?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146===(this.mode&146)},set:function(a){a?this.mode|=146:this.mode&=-147}},vb:{get:function(){return 16384===(this.mode&61440)}},ub:{get:function(){return 8192===(this.mode&61440)}}}));c=new hb(a,b,c,d);d=jb(c.parent.id,c.name);c.Bb=
kb[d];kb[d]=c;16384===(c.mode&61440)?(c.g=U.A.dir.e,c.k=U.A.dir.K,c.n={}):32768===(c.mode&61440)?(c.g=U.A.file.e,c.k=U.A.file.K,c.n=[],c.V=U.da):40960===(c.mode&61440)?(c.g=U.A.link.e,c.k=U.A.link.K):8192===(c.mode&61440)&&(c.g=U.A.Ja.e,c.k=U.A.Ja.K);c.timestamp=Date.now();a&&(a.n[b]=c);return c},la:function(a){a.V!==U.da&&(a.n=Array.prototype.slice.call(a.n),a.V=U.da)},g:{B:function(a){var b={};b.Vd=8192===(a.mode&61440)?a.id:1;b.ee=a.id;b.mode=a.mode;b.le=1;b.uid=0;b.ce=0;b.aa=a.aa;b.size=16384===
(a.mode&61440)?4096:32768===(a.mode&61440)?a.n.length:40960===(a.mode&61440)?a.link.length:0;b.Rd=new Date(a.timestamp);b.je=new Date(a.timestamp);b.Ud=new Date(a.timestamp);b.mb=4096;b.Sd=Math.ceil(b.size/b.mb);return b},o:function(a,b){b.mode!==i&&(a.mode=b.mode);b.timestamp!==i&&(a.timestamp=b.timestamp);if(b.size!==i){U.la(a);var c=a.n;if(b.size<c.length)c.length=b.size;else for(;b.size>c.length;)c.push(0)}},sa:function(){e(lb[S.T])},Y:function(a,b,c,d){return U.createNode(a,b,c,d)},rename:function(a,
b,c){if(16384===(a.mode&61440)){var d;try{d=mb(b,c)}catch(f){}if(d)for(var g in d.n)e(new T(S.Ea))}delete a.parent.n[a.name];a.name=c;b.n[c]=a;a.parent=b},Za:function(a,b){delete a.n[b]},Va:function(a,b){var c=mb(a,b),d;for(d in c.n)e(new T(S.Ea));delete a.n[b]},Ua:function(a){var b=[".",".."],c;for(c in a.n)a.n.hasOwnProperty(c)&&b.push(c);return b},ca:function(a,b,c){a=U.createNode(a,b,41471,0);a.link=c;return a},ba:function(a){40960!==(a.mode&61440)&&e(new T(S.C));return a.link}},k:{J:function(a,
b,c,d,f){a=a.e.n;if(f>=a.length)return 0;d=Math.min(a.length-f,d);x(0<=d);if(8<d&&a.subarray)b.set(a.subarray(f,f+d),c);else for(var g=0;g<d;g++)b[c+g]=a[f+g];return d},write:function(a,b,c,d,f,g){var h=a.e;h.timestamp=Date.now();a=h.n;if(d&&0===a.length&&0===f&&b.subarray)return g&&0===c?(h.n=b,h.V=b.buffer===H.buffer?U.$a:U.za):(h.n=new Uint8Array(b.subarray(c,c+d)),h.V=U.za),d;U.la(h);for(a=h.n;a.length<f;)a.push(0);for(g=0;g<d;g++)a[f+g]=b[c+g];return d},G:function(a,b,c){1===c?b+=a.position:
2===c&&32768===(a.e.mode&61440)&&(b+=a.e.n.length);0>b&&e(new T(S.C));a.Fb=[];return a.position=b},Ga:function(a,b,c){U.la(a.e);a=a.e.n;for(b+=c;b>a.length;)a.push(0)},Ra:function(a,b,c,d,f,g,h){32768!==(a.e.mode&61440)&&e(new T(S.Da));a=a.e.n;if(!(h&2)&&(a.buffer===b||a.buffer===b.buffer))f=l,d=a.byteOffset;else{if(0<f||f+d<a.length)a=a.subarray?a.subarray(f,f+d):Array.prototype.slice.call(a,f,f+d);f=j;(d=xa(d))||e(new T(S.eb));b.set(a,d)}return{qe:d,Pd:f}}}},nb=M(1,"i32*",K),ob=M(1,"i32*",K),pb=
M(1,"i32*",K),qb=k,eb=[k],rb=[],ib=1,kb=k,sb=j,T=k,lb={};
function V(a,b){var a=tb("/",a),b=b||{},c={Na:j,ua:0},d;for(d in c)b[d]===i&&(b[d]=c[d]);8<b.ua&&e(new T(S.fa));var c=ub(a.split("/").filter(function(a){return!!a}),l),f=qb,g="/";for(d=0;d<c.length;d++){var h=d===c.length-1;if(h&&b.parent)break;f=mb(f,c[d]);g=W(g+"/"+c[d]);if(f.Z&&(!h||h&&b.Na))f=f.Z.root;if(!h||b.na)for(h=0;40960===(f.mode&61440);){f=V(g).e;f.g.ba||e(new T(S.C));var f=f.g.ba(f),s=tb;var v=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(g).slice(1),g=v[0],v=v[1];
!g&&!v?g=".":(v&&(v=v.substr(0,v.length-1)),g+=v);g=s(g,f);f=V(g,{ua:b.ua}).e;40<h++&&e(new T(S.fa))}}return{path:g,e:f}}function X(a){for(var b;;){if(a===a.parent)return a=a.H.zb,!b?a:"/"!==a[a.length-1]?a+"/"+b:a+b;b=b?a.name+"/"+b:a.name;a=a.parent}}function jb(a,b){for(var c=0,d=0;d<b.length;d++)c=(c<<5)-c+b.charCodeAt(d)|0;return(a+c>>>0)%kb.length}
function mb(a,b){var c=vb(a,"x");c&&e(new T(c));for(c=kb[jb(a.id,b)];c;c=c.Bb){var d=c.name;if(c.parent.id===a.id&&d===b)return c}return a.g.sa(a,b)}var wb={r:0,rs:1052672,"r+":2,w:577,wx:705,xw:705,"w+":578,"wx+":706,"xw+":706,a:1089,ax:1217,xa:1217,"a+":1090,"ax+":1218,"xa+":1218};function vb(a,b){return sb?0:-1!==b.indexOf("r")&&!(a.mode&292)||-1!==b.indexOf("w")&&!(a.mode&146)||-1!==b.indexOf("x")&&!(a.mode&73)?S.ab:0}function xb(a,b){try{return mb(a,b),S.Ca}catch(c){}return vb(a,"wx")}
var gb={open:function(a){a.k=eb[a.e.aa].k;a.k.open&&a.k.open(a)},G:function(){e(new T(S.ga))}};function yb(a,b,c){var d=V(a,{parent:j}).e,a=zb(a),f=xb(d,a);f&&e(new T(f));d.g.Y||e(new T(S.O));return d.g.Y(d,a,b,c)}function Ab(a,b){b=(b!==i?b:438)&4095;b|=32768;return yb(a,b,0)}function Bb(a,b){b=(b!==i?b:511)&1023;b|=16384;return yb(a,b,0)}function Cb(a,b,c){"undefined"===typeof c&&(c=b,b=438);return yb(a,b|8192,c)}
function Db(a,b){var c=V(b,{parent:j}).e,d=zb(b),f=xb(c,d);f&&e(new T(f));c.g.ca||e(new T(S.O));return c.g.ca(c,d,a)}function Eb(a,b){var c;c="string"===typeof a?V(a,{na:j}).e:a;c.g.o||e(new T(S.O));c.g.o(c,{mode:b&4095|c.mode&-4096,timestamp:Date.now()})}
function Fb(a,b){var c,d;"string"===typeof b?(d=wb[b],"undefined"===typeof d&&e(Error("Unknown file open mode: "+b))):d=b;b=d;c=b&64?("undefined"===typeof c?438:c)&4095|32768:0;var f;if("object"===typeof a)f=a;else{a=W(a);try{f=V(a,{na:!(b&131072)}).e}catch(g){}}b&64&&(f?b&128&&e(new T(S.Ca)):f=yb(a,c,0));f||e(new T(S.T));8192===(f.mode&61440)&&(b&=-513);f?40960===(f.mode&61440)?c=S.fa:16384===(f.mode&61440)&&(0!==(b&2097155)||b&512)?c=S.ea:(c=["r","w","rw"][b&2097155],b&512&&(c+="w"),c=vb(f,c)):
c=S.T;c&&e(new T(c));b&512&&(c=f,c="string"===typeof c?V(c,{na:j}).e:c,c.g.o||e(new T(S.O)),16384===(c.mode&61440)&&e(new T(S.ea)),32768!==(c.mode&61440)&&e(new T(S.C)),(d=vb(c,"w"))&&e(new T(d)),c.g.o(c,{size:0,timestamp:Date.now()}));var b=b&-641,h;f={e:f,path:X(f),Q:b,seekable:j,position:0,k:f.k,Fb:[],error:l};Gb||(Gb=m(),Gb.prototype={},Object.defineProperties(Gb.prototype,{object:{get:function(){return this.e},set:function(a){this.e=a}},ge:{get:function(){return 1!==(this.Q&2097155)}},he:{get:function(){return 0!==
(this.Q&2097155)}},fe:{get:function(){return this.Q&1024}}}));if(f.__proto__)f.__proto__=Gb.prototype;else{c=new Gb;for(var s in f)c[s]=f[s];f=c}a:{s=i||4096;for(c=i||0;c<=s;c++)if(!rb[c]){h=c;break a}e(new T(S.cb))}f.q=h;h=rb[h]=f;h.k.open&&h.k.open(h);n.logReadFiles&&!(b&1)&&(Hb||(Hb={}),a in Hb||(Hb[a]=1,n.printErr("read file: "+a)));return h}function Ib(a){try{a.k.close&&a.k.close(a)}catch(b){e(b)}finally{rb[a.q]=k}}
function Jb(){T||(T=function(a){this.Wd=a;for(var b in S)if(S[b]===a){this.code=b;break}this.message=bb[a]},T.prototype=Error(),[S.T].forEach(function(a){lb[a]=new T(a);lb[a].stack="<generic error, no stack>"}))}var Kb;function Lb(a,b){var c=0;a&&(c|=365);b&&(c|=146);return c}
function Mb(a,b,c,d,f,g){a=b?W(("string"===typeof a?a:X(a))+"/"+b):a;d=Lb(d,f);f=Ab(a,d);if(c){if("string"===typeof c){for(var a=Array(c.length),b=0,h=c.length;b<h;++b)a[b]=c.charCodeAt(b);c=a}Eb(f,d|146);var a=Fb(f,"w"),b=c,h=c.length,s=0;(0>h||0>s)&&e(new T(S.C));0===(a.Q&2097155)&&e(new T(S.bb));16384===(a.e.mode&61440)&&e(new T(S.ea));a.k.write||e(new T(S.C));c=j;"undefined"===typeof s?(s=a.position,c=l):a.seekable||e(new T(S.ga));a.Q&1024&&((!a.seekable||!a.k.G)&&e(new T(S.ga)),a.k.G(a,0,2));
g=a.k.write(a,b,0,h,s,g);c||(a.position+=g);Ib(a);Eb(f,d)}return f}
function Y(a,b,c,d){a=W(("string"===typeof a?a:X(a))+"/"+b);b=Lb(!!c,!!d);Y.Qa||(Y.Qa=64);var f;f=Y.Qa++<<8|0;eb[f]={k:{open:function(a){a.seekable=l},close:function(){d&&(d.buffer&&d.buffer.length)&&d(10)},J:function(a,b,d,f){for(var q=0,B=0;B<f;B++){var A;try{A=c()}catch(t){e(new T(S.D))}A===i&&0===q&&e(new T(S.Aa));if(A===k||A===i)break;q++;b[d+B]=A}q&&(a.e.timestamp=Date.now());return q},write:function(a,b,c,f){for(var q=0;q<f;q++)try{d(b[c+q])}catch(B){e(new T(S.D))}f&&(a.e.timestamp=Date.now());
return q}}};return Cb(a,b,f)}function Nb(a){if(a.ub||a.vb||a.link||a.n)return j;var b=j;"undefined"!==typeof XMLHttpRequest&&e(Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."));if(n.read)try{a.n=G(n.read(a.url),j)}catch(c){b=l}else e(Error("Cannot load without read() or XMLHttpRequest."));b||Za(S.D);return b}var hb,Gb,Hb;
function ub(a,b){for(var c=0,d=a.length-1;0<=d;d--){var f=a[d];"."===f?a.splice(d,1):".."===f?(a.splice(d,1),c++):c&&(a.splice(d,1),c--)}if(b)for(;c--;c)a.unshift("..");return a}function W(a){var b="/"===a.charAt(0),c="/"===a.substr(-1),a=ub(a.split("/").filter(function(a){return!!a}),!b).join("/");!a&&!b&&(a=".");a&&c&&(a+="/");return(b?"/":"")+a}function zb(a){if("/"===a)return"/";var b=a.lastIndexOf("/");return-1===b?a:a.substr(b+1)}
function tb(){for(var a="",b=l,c=arguments.length-1;-1<=c&&!b;c--){var d=0<=c?arguments[c]:"/";"string"!==typeof d&&e(new TypeError("Arguments to path.resolve must be strings"));d&&(a=d+"/"+a,b="/"===d.charAt(0))}a=ub(a.split("/").filter(function(a){return!!a}),!b).join("/");return(b?"/":"")+a||"."}var Ob=l,Pb=l,Qb=l,Rb=l,Sb=i,Tb=i;
function Ub(a){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[a.substr(a.lastIndexOf(".")+1)]}var Vb=[];function Wb(){var a=n.canvas;Vb.forEach(function(b){b(a.width,a.height)})}function Xb(){var a=n.canvas;this.Hb=a.width;this.Gb=a.height;a.width=screen.width;a.height=screen.height;"undefined"!=typeof SDL&&(a=Ba[SDL.screen+0*w.F>>2],J[SDL.screen+0*w.F>>2]=a|8388608);Wb()}
function Yb(){var a=n.canvas;a.width=this.Hb;a.height=this.Gb;"undefined"!=typeof SDL&&(a=Ba[SDL.screen+0*w.F>>2],J[SDL.screen+0*w.F>>2]=a&-8388609);Wb()}var Zb,$b,ac,bc,Ya=w.Ya(4);J[Ya>>2]=0;
n.requestFullScreen=function(a,b){function c(){Pb=l;(document.webkitFullScreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.mozFullscreenElement||document.fullScreenElement||document.fullscreenElement)===d?(d.Ia=document.cancelFullScreen||document.mozCancelFullScreen||document.webkitCancelFullScreen,d.Ia=d.Ia.bind(document),Sb&&d.va(),Pb=j,Tb&&Xb()):Tb&&Yb();if(n.onFullScreen)n.onFullScreen(Pb)}Sb=a;Tb=b;"undefined"===typeof Sb&&(Sb=j);"undefined"===typeof Tb&&
(Tb=l);var d=n.canvas;Rb||(Rb=j,document.addEventListener("fullscreenchange",c,l),document.addEventListener("mozfullscreenchange",c,l),document.addEventListener("webkitfullscreenchange",c,l));d.Db=d.requestFullScreen||d.mozRequestFullScreen||(d.webkitRequestFullScreen?function(){d.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:k);d.Db()};
n.requestAnimationFrame=function(a){"undefined"===typeof window?setTimeout(a,1E3/60):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||window.setTimeout),window.requestAnimationFrame(a))};n.setCanvasSize=function(a,b,c){var d=n.canvas;d.width=a;d.height=b;c||Wb()};n.pauseMainLoop=m();n.resumeMainLoop=function(){Ob&&(Ob=l,k())};
n.getUserMedia=function(){window.Oa||(window.Oa=navigator.getUserMedia||navigator.mozGetUserMedia);window.Oa(i)};Jb();var kb=Array(4096),cc=U,dc="/",ec="/"===dc,fc=!dc,Z;ec&&qb&&e(new T(S.Ba));if(!ec&&!fc){var gc=V(dc,{Na:l}),dc=gc.path;Z=gc.e;Z.Z&&e(new T(S.Ba));16384!==(Z.mode&61440)&&e(new T(S.fb))}var hc={type:cc,ne:{},zb:dc,Ab:[]},ic=cc.H(hc);ic.H=hc;hc.root=ic;ec?qb=ic:Z&&(Z.Z=hc,Z.H&&Z.H.Ab.push(hc));Bb("/tmp");Bb("/dev");eb[259]={k:{J:function(){return 0},write:function(){return 0}}};
Cb("/dev/null",259);db(1280,{Pa:function(a){if(!a.input.length){var b=k;if(ba){if(b=process.stdin.read(),!b){if(process.stdin._readableState&&process.stdin._readableState.ended)return k;return}}else"undefined"!=typeof window&&"function"==typeof window.prompt?(b=window.prompt("Input: "),b!==k&&(b+="\n")):"function"==typeof readline&&(b=readline(),b!==k&&(b+="\n"));if(!b)return k;a.input=G(b,j)}return a.input.shift()},$:function(a,b){b===k||10===b?(n.print(a.I.join("")),a.I=[]):a.I.push(jc.ta(b))}});
db(1536,{$:function(a,b){b===k||10===b?(n.printErr(a.I.join("")),a.I=[]):a.I.push(jc.ta(b))}});Cb("/dev/tty",1280);Cb("/dev/tty1",1536);Bb("/dev/shm");Bb("/dev/shm/tmp");
Ia.unshift({M:function(){if(!n.noFSInit&&!Kb){x(!Kb,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");Kb=j;Jb();n.stdin=n.stdin;n.stdout=n.stdout;n.stderr=n.stderr;n.stdin?Y("/dev","stdin",n.stdin):Db("/dev/tty","/dev/stdin");n.stdout?Y("/dev","stdout",k,n.stdout):Db("/dev/tty","/dev/stdout");n.stderr?Y("/dev","stderr",k,n.stderr):Db("/dev/tty1","/dev/stderr");var a=Fb("/dev/stdin",
"r");J[nb>>2]=a?a.q+1:0;x(0===a.q,"invalid handle for stdin ("+a.q+")");a=Fb("/dev/stdout","w");J[ob>>2]=a?a.q+1:0;x(1===a.q,"invalid handle for stdout ("+a.q+")");a=Fb("/dev/stderr","w");J[pb>>2]=a?a.q+1:0;x(2===a.q,"invalid handle for stderr ("+a.q+")")}}});Ja.push({M:function(){sb=l}});Ka.push({M:function(){Kb=l;for(var a=0;a<rb.length;a++){var b=rb[a];b&&Ib(b)}}});n.FS_createFolder=function(a,b,c,d){a=W(("string"===typeof a?a:X(a))+"/"+b);return Bb(a,Lb(c,d))};
n.FS_createPath=function(a,b){for(var a="string"===typeof a?a:X(a),c=b.split("/").reverse();c.length;){var d=c.pop();if(d){var f=W(a+"/"+d);try{Bb(f)}catch(g){}a=f}}return f};n.FS_createDataFile=Mb;
n.FS_createPreloadedFile=function(a,b,c,d,f,g,h,s,v){function q(){Qb=document.pointerLockElement===t||document.mozPointerLockElement===t||document.webkitPointerLockElement===t}function B(c){function q(c){s||Mb(a,b,c,d,f,v);g&&g();Ta()}var t=l;n.preloadPlugins.forEach(function(a){!t&&a.canHandle(u)&&(a.handle(c,u,q,function(){h&&h();Ta()}),t=j)});t||q(c)}n.preloadPlugins||(n.preloadPlugins=[]);if(!Zb&&!da){Zb=j;try{new Blob,$b=j}catch(A){$b=l,console.log("warning: no blob constructor, cannot create blobs with mimetypes")}ac=
"undefined"!=typeof MozBlobBuilder?MozBlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:!$b?console.log("warning: no BlobBuilder"):k;bc="undefined"!=typeof window?window.URL?window.URL:window.webkitURL:i;!n.Ta&&"undefined"===typeof bc&&(console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),n.Ta=j);n.preloadPlugins.push({canHandle:function(a){return!n.Ta&&/\.(jpg|jpeg|png|bmp)$/i.test(a)},handle:function(a,b,
c,d){var f=k;if($b)try{f=new Blob([a],{type:Ub(b)}),f.size!==a.length&&(f=new Blob([(new Uint8Array(a)).buffer],{type:Ub(b)}))}catch(g){w.S("Blob constructor present but fails: "+g+"; falling back to blob builder")}f||(f=new ac,f.append((new Uint8Array(a)).buffer),f=f.getBlob());var h=bc.createObjectURL(f),q=new Image;q.onload=function(){x(q.complete,"Image "+b+" could not be decoded");var d=document.createElement("canvas");d.width=q.width;d.height=q.height;d.getContext("2d").drawImage(q,0,0);n.preloadedImages[b]=
d;bc.revokeObjectURL(h);c&&c(a)};q.onerror=function(){console.log("Image "+h+" could not be decoded");d&&d()};q.src=h}});n.preloadPlugins.push({canHandle:function(a){return!n.me&&a.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},handle:function(a,b,c,d){function f(d){h||(h=j,n.preloadedAudios[b]=d,c&&c(a))}function g(){h||(h=j,n.preloadedAudios[b]=new Audio,d&&d())}var h=l;if($b){try{var q=new Blob([a],{type:Ub(b)})}catch(t){return g()}var q=bc.createObjectURL(q),u=new Audio;u.addEventListener("canplaythrough",
function(){f(u)},l);u.onerror=function(){if(!h){console.log("warning: browser could not fully decode audio "+b+", trying slower base64 approach");for(var c="",d=0,g=0,q=0;q<a.length;q++){d=d<<8|a[q];for(g+=8;6<=g;)var t=d>>g-6&63,g=g-6,c=c+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[t]}2==g?(c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(d&3)<<4],c+="=="):4==g&&(c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(d&15)<<2],c+="=");
u.src="data:audio/x-"+b.substr(-3)+";base64,"+c;f(u)}};u.src=q;setTimeout(function(){ka||f(u)},1E4)}else return g()}});var t=n.canvas;t.va=t.requestPointerLock||t.mozRequestPointerLock||t.webkitRequestPointerLock;t.Ka=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||m();t.Ka=t.Ka.bind(document);document.addEventListener("pointerlockchange",q,l);document.addEventListener("mozpointerlockchange",q,l);document.addEventListener("webkitpointerlockchange",q,l);n.elementPointerLock&&
t.addEventListener("click",function(a){!Qb&&t.va&&(t.va(),a.preventDefault())},l)}var u=b?tb(W(a+"/"+b)):a;Sa();if("string"==typeof c){var F=h,ea=function(){F?F():e('Loading data file "'+c+'" failed.')},L=new XMLHttpRequest;L.open("GET",c,j);L.responseType="arraybuffer";L.onload=function(){if(200==L.status||0==L.status&&L.response){var a=L.response;x(a,'Loading data file "'+c+'" failed (no arrayBuffer).');a=new Uint8Array(a);B(a);Ta()}else ea()};L.onerror=ea;L.send(k);Sa()}else B(c)};
n.FS_createLazyFile=function(a,b,c,d,f){var g,h;"undefined"!==typeof XMLHttpRequest?(da||e("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc"),g=function(){this.ra=l;this.U=[]},g.prototype.get=function(a){if(!(a>this.length-1||0>a)){var b=a%this.pb;return this.tb(Math.floor(a/this.pb))[b]}},g.prototype.Eb=function(a){this.tb=a},g.prototype.Ha=function(){var a=new XMLHttpRequest;a.open("HEAD",c,l);a.send(k);200<=a.status&&300>a.status||
304===a.status||e(Error("Couldn't load "+c+". Status: "+a.status));var b=Number(a.getResponseHeader("Content-length")),d,f=1048576;if(!((d=a.getResponseHeader("Accept-Ranges"))&&"bytes"===d))f=b;var g=this;g.Eb(function(a){var d=a*f,h=(a+1)*f-1,h=Math.min(h,b-1);if("undefined"===typeof g.U[a]){var q=g.U;d>h&&e(Error("invalid range ("+d+", "+h+") or no bytes requested!"));h>b-1&&e(Error("only "+b+" bytes available! programmer error!"));var s=new XMLHttpRequest;s.open("GET",c,l);b!==f&&s.setRequestHeader("Range",
"bytes="+d+"-"+h);"undefined"!=typeof Uint8Array&&(s.responseType="arraybuffer");s.overrideMimeType&&s.overrideMimeType("text/plain; charset=x-user-defined");s.send(k);200<=s.status&&300>s.status||304===s.status||e(Error("Couldn't load "+c+". Status: "+s.status));d=s.response!==i?new Uint8Array(s.response||[]):G(s.responseText||"",j);q[a]=d}"undefined"===typeof g.U[a]&&e(Error("doXHR failed!"));return g.U[a]});this.kb=b;this.jb=f;this.ra=j},g=new g,Object.defineProperty(g,"length",{get:function(){this.ra||
this.Ha();return this.kb}}),Object.defineProperty(g,"chunkSize",{get:function(){this.ra||this.Ha();return this.jb}}),h=i):(h=c,g=i);var s,a=W(("string"===typeof a?a:X(a))+"/"+b);s=Ab(a,Lb(d,f));g?s.n=g:h&&(s.n=k,s.url=h);var v={};Object.keys(s.k).forEach(function(a){var b=s.k[a];v[a]=function(){Nb(s)||e(new T(S.D));return b.apply(k,arguments)}});v.J=function(a,b,c,d,f){Nb(s)||e(new T(S.D));a=a.e.n;if(f>=a.length)return 0;d=Math.min(a.length-f,d);x(0<=d);if(a.slice)for(var g=0;g<d;g++)b[c+g]=a[f+g];
else for(g=0;g<d;g++)b[c+g]=a.get(f+g);return d};s.k=v;return s};n.FS_createLink=function(a,b,c){a=W(("string"===typeof a?a:X(a))+"/"+b);return Db(c,a)};n.FS_createDevice=Y;Ia.unshift({M:m()});Ka.push({M:m()});var jc=new w.ha;ba&&(require("fs"),process.platform.match(/^win/));Da=r=w.P(z);Ea=Da+5242880;Fa=C=w.P(Ea);x(Fa<D,"TOTAL_MEMORY not big enough for stack");ra=Math.min;
var $=(function(global,env,buffer) {
// EMSCRIPTEN_START_ASM
"use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.STACKTOP|0;var j=env.STACK_MAX|0;var k=env.tempDoublePtr|0;var l=env.ABORT|0;var m=+env.NaN;var n=+env.Infinity;var o=0;var p=0;var q=0;var r=0;var s=0,t=0,u=0,v=0,w=0.0,x=0,y=0,z=0,A=0.0;var B=0;var C=0;var D=0;var E=0;var F=0;var G=0;var H=0;var I=0;var J=0;var K=0;var L=global.Math.floor;var M=global.Math.abs;var N=global.Math.sqrt;var O=global.Math.pow;var P=global.Math.cos;var Q=global.Math.sin;var R=global.Math.tan;var S=global.Math.acos;var T=global.Math.asin;var U=global.Math.atan;var V=global.Math.atan2;var W=global.Math.exp;var X=global.Math.log;var Y=global.Math.ceil;var Z=global.Math.imul;var _=env.abort;var $=env.assert;var aa=env.asmPrintInt;var ba=env.asmPrintFloat;var ca=env.min;var da=env.invoke_ii;var ea=env.invoke_v;var fa=env.invoke_iii;var ga=env.invoke_vi;var ha=env._sysconf;var ia=env._sbrk;var ja=env.___setErrNo;var ka=env.___errno_location;var la=env._abort;var ma=env._time;var na=env._emscripten_memcpy_big;var oa=env._fflush;var pa=0.0;
// EMSCRIPTEN_START_FUNCS
function ua(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+7&-8;return b|0}function va(){return i|0}function wa(a){a=a|0;i=a}function xa(a,b){a=a|0;b=b|0;if((o|0)==0){o=a;p=b}}function ya(b){b=b|0;a[k]=a[b];a[k+1|0]=a[b+1|0];a[k+2|0]=a[b+2|0];a[k+3|0]=a[b+3|0]}function za(b){b=b|0;a[k]=a[b];a[k+1|0]=a[b+1|0];a[k+2|0]=a[b+2|0];a[k+3|0]=a[b+3|0];a[k+4|0]=a[b+4|0];a[k+5|0]=a[b+5|0];a[k+6|0]=a[b+6|0];a[k+7|0]=a[b+7|0]}function Aa(a){a=a|0;B=a}function Ba(a){a=a|0;C=a}function Ca(a){a=a|0;D=a}function Da(a){a=a|0;E=a}function Ea(a){a=a|0;F=a}function Fa(a){a=a|0;G=a}function Ga(a){a=a|0;H=a}function Ha(a){a=a|0;I=a}function Ia(a){a=a|0;J=a}function Ja(a){a=a|0;K=a}function Ka(){}function La(){if((b[53936]|0)!=4096){return}if((_c(117312,256)|0)!=0){return}b[53936]=4394;return}function Ma(){if(!((b[53936]|0)==-14336&(a[164458]|0)==88)){return}a[116948]=0;a[116949]=32;a[116950]=0;a[116951]=-57;a[164160]=-115;a[164161]=5;a[164162]=-36;a[164163]=-26;a[164164]=9;a[164165]=96;return}function Na(){if(!((b[53936]|0)==-16384&(a[162454]|0)==113)){return}a[156164]=96;a[156174]=96;a[156182]=96;a[155527]=32;a[155528]=-119;a[155529]=-31;return}function Oa(){if(!((b[53936]|0)==18432&(a[131654]|0)==72)){return}a[131164]=76;a[131165]=-123;a[131166]=70;return}function Pa(){if((b[53936]|0)!=2061){return}if((_c(115595,264)|0)!=0){return}a[115585]=-83;a[115575]=-83;a[115580]=-83;return}function Qa(){Pa();La();Ma();Na();Oa();return}function Ra(b){b=b|0;return(a[b+187007|0]&96)==64|0}function Sa(a,b){a=a|0;b=b|0;b=(b<<24>>24==0?4:6)+a|0;return(d[b+186993|0]|0)<<8|(d[186992+b|0]|0)|0}function Ta(a,b){a=a|0;b=b|0;return a+4+((b&255)<<3)+4|0}function Ua(b,d){b=b|0;d=d|0;var e=0;e=Sa(c[b>>2]|0,d)|0;if((e|0)!=0){d=e;return d|0}b=Ta(b,d)|0;if((a[b]|0)!=0){d=33554431;return d|0}a[b]=1;d=0;return d|0}function Va(a,b){a=a|0;b=b|0;return c[a+4+((b&255)<<3)>>2]|0}function Wa(b,d){b=b|0;d=d|0;b=b-53248|0;c[d>>2]=b;c[d+4>>2]=Sa(b,0)|0;a[d+8|0]=0;c[d+12>>2]=Sa(b,1)|0;a[d+16|0]=0;a[d+20|0]=0;return}function Xa(){Wa(56320,191200);Wa(56576,191224);return}function Ya(b,c){b=b|0;c=c|0;if(c<<24>>24>-1){b=b+187005|0;a[b]=a[b]&((c|-32)^31);return}else{b=b+187005|0;a[b]=a[b]|c&31;return}}function Za(b){b=b|0;var c=0;c=b+20|0;b=a[c]|0;a[c]=0;return b|0}function _a(b,d){b=b|0;d=d|0;var e=0,f=0;e=c[b>>2]|0;f=d&255;if((a[186992+(f+14+e)|0]&1)==0){b=0;return b|0}if((a[b+4+(f<<3)+4|0]|0)==0){b=1;return b|0}if(!(d<<24>>24==1)){b=0;return b|0}if((Ra(e)|0)==0){b=0;return b|0}else{return(_a(b,0)|0)!=0|0}return 0}function $a(b,c){b=b|0;c=c|0;if((a[b+4+((c&255)<<3)+4|0]|0)!=0){c=33554431;return c|0}if((_a(b,c)|0)==0){c=33554431;return c|0}c=Ua(b,c)|0;return c|0}function ab(b,c){b=b|0;c=c|0;c=186992+((c&255)+14+b)|0;a[c]=a[c]&-2;return}function bb(a,b){a=a|0;b=b|0;return((b<<24>>24==0?1:2)&(d[a+187005|0]|0)|0)!=0|0}function cb(b){b=b|0;b=b+20|0;a[b]=a[b]|-128;return}function db(a,b){a=a|0;b=b|0;return((d[186992+((b&255)+14+a)|0]|0)>>>3&1^1)&255|0}function eb(b,c){b=b|0;c=c|0;b=b+20|0;a[b]=(c<<24>>24==0?1:2)|a[b];return}function fb(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=d&255;g=(d<<24>>24==0?4:6)+(c[b>>2]|0)|0;f=b+4+(e<<3)|0;a[186992+g|0]=c[f>>2];a[g+186993|0]=(c[f>>2]|0)>>>8;if((c[f>>2]|0)==0){eb(b,d);return}a[b+4+(e<<3)+4|0]=0;eb(b,d);return}function gb(b,c,d){b=b|0;c=c|0;d=d|0;d=(Sa(b,c)|0)-d|0;c=(c<<24>>24==0?4:6)+b|0;a[186992+c|0]=d;a[c+186993|0]=d>>>8;return}function hb(b,d,e){b=b|0;d=d|0;e=e|0;d=d&255;c[b+4+(d<<3)>>2]=e;if((e|0)==0){return}a[b+4+(d<<3)+4|0]=0;return}function ib(b,d,e){b=b|0;d=d|0;e=e|0;if((d|0)==6){hb(b,1,c[b+12>>2]&65280|e&255)}else if((d|0)==7){hb(b,1,c[b+12>>2]&255|(e&255)<<8)}else if((d|0)==4){hb(b,0,c[b+4>>2]&65280|e&255)}else if((d|0)==5){hb(b,0,c[b+4>>2]&255|(e&255)<<8)}a[186992+((c[b>>2]|0)+d)|0]=e;return}function jb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=a|0;e=0;a:while(1){if((_a(a,0)|0)==0){if((_a(a,1)|0)==0){d=33554431;h=38;break}}f=c[d>>2]|0;if((bb(f,0)|0)==0){if((bb(f,1)|0)==0){d=33554431;h=38;break}}do{if((Ra(f)|0)!=0){if((_a(a,1)|0)==0){break}if((_a(a,0)|0)==0){d=33554431;h=38;break a}f=($a(a,0)|0)+e|0;if(!(f>>>0<b>>>0)){h=10;break a}fb(a,0);e=c[d>>2]|0;if((db(e,0)|0)==0){ab(e,0);e=c[d>>2]|0}if((Sa(e,1)|0)!=0){gb(e,1,1);e=f;continue a}fb(a,1);e=c[d>>2]|0;if((db(e,1)|0)==0){ab(e,1);e=c[d>>2]|0}if((bb(e,1)|0)==0){e=f;continue a}else{h=17;break a}}}while(0);g=$a(a,0)|0;i=$a(a,1)|0;if((g|0)!=(i|0)){f=g>>>0<i>>>0;h=f?g:i;i=f?i:g;j=f&1;f=j^1;g=h+e|0;if(!(g>>>0<b>>>0)){h=30;break}fb(a,f);if((i|0)!=33554431){gb(c[d>>2]|0,j,h)}e=c[d>>2]|0;if((db(e,f)|0)==0){ab(e,f);e=c[d>>2]|0}if((bb(e,f)|0)==0){e=g;continue}else{h=37;break}}f=g+e|0;if(!(f>>>0<b>>>0)){h=21;break}fb(a,1);fb(a,0);e=c[d>>2]|0;if((db(e,1)|0)==0){ab(e,1);e=c[d>>2]|0}if((db(e,0)|0)==0){ab(e,0);e=c[d>>2]|0}if((bb(e,1)|0)!=0){h=28;break}if((bb(e,0)|0)==0){e=f}else{h=28;break}}if((h|0)==10){gb(c[d>>2]|0,0,b-e|0);j=33554431;return j|0}else if((h|0)==17){cb(a);j=f;return j|0}else if((h|0)==21){j=b-e|0;gb(c[d>>2]|0,1,j);gb(c[d>>2]|0,0,j);j=33554431;return j|0}else if((h|0)==28){cb(a);j=f;return j|0}else if((h|0)==30){a=b-e|0;gb(c[d>>2]|0,f,a);if((i|0)==33554431){j=33554431;return j|0}gb(c[d>>2]|0,j,a);j=33554431;return j|0}else if((h|0)==37){cb(a);j=g;return j|0}else if((h|0)==38){return d|0}return 0}function kb(){c[14]=-1;c[4]=-1;c[28228]=0;c[26956]=0;c[9298]=0;return}function lb(a){a=a|0;c[28228]=(~~(+(a>>>0>>>0)/+(d[112896]|0|0))>>>0)%((c[26954]|0)>>>0)|0;return}function mb(){var a=0;a=(c[28228]|0)+1|0;c[28228]=a;if((a|0)!=(c[26954]|0)){return}c[28228]=0;return}function nb(a){a=a|0;lb(a);c[9298]=a-(Z(d[112896]|0,c[28228]|0)|0);c[26956]=c[28226];return}function ob(){var a=0,b=0,e=0;a=c[28226]|0;b=a-(c[26956]|0)|0;e=c[9298]|0;if(b>>>0>e>>>0){mb();e=e+(d[112896]|0)|0;c[9298]=e}c[9298]=e-b;c[26956]=a;return}function pb(b){b=b|0;a[187017]=a[187017]&~b;return}function qb(){return a[187017]|0}function rb(){a[187017]=a[187017]|-127;return}function sb(){return c[28228]&255|0}function tb(){return(c[28228]|0)>>>1&255&-128|0}function ub(){return(d[187009]|0)<<1&256|(d[187010]|0)|0}function vb(){return a[187018]&1|0}function wb(){var a=0,b=0;if((vb()|0)==0){b=33554431;return b|0}b=c[4]|0;if((b|0)>-1){c[4]=-1}else{a=ub()|0;b=c[14]|0;do{if((b|0)<0){b=xb(a)|0}else{b=a-b|0;if((b|0)>0){b=xb(b)|0;break}else{c[4]=xb(a)|0;b=33554431;break}}}while(0);c[14]=a}if((b|0)==33554431){b=33554431;return b|0}rb();return b|0}function xb(a){a=a|0;return Z(d[112896]|0,a)|0}function yb(){return(a[107856]|0)==0|0}function zb(){var a=0;a=(hc(-6)|0)&255;return((hc(-5)|0)&255)<<8|a|0}function Ab(){var c=0;if((b[18604]|0)!=0){c=1;return c|0}c=(hc(-2)|0)&255;c=(((hc(-1)|0)&255)<<8|c|0)!=0;do{if(!(c|(a[107856]|0)==0)){c=(hc(788)|0)&255;if((((hc(789)|0)&255)<<8|c|0)==0){break}else{c=1}return c|0}}while(0);c=0;return c|0}function Bb(){var c=0;c=b[18604]|0;if(!(c<<16>>16==0)){c=c&65535;return c|0}c=(hc(-2)|0)&255;c=((hc(-1)|0)&255)<<8|c;if((c|0)!=0|(a[107856]|0)==0){return c|0}c=(hc(788)|0)&255;c=((hc(789)|0)&255)<<8|c;return c|0}function Cb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=c[28220]|0;e=f-d|0;if((f|0)==(d|0)){return}else{f=0}do{g=108880+(f+d<<2)|0;c[g>>2]=(c[g>>2]|0)+b|a;f=f+1|0;}while(f>>>0<e>>>0);return}function Db(a,b){a=a|0;b=b|0;c[28226]=a;nb(b+a|0);return}function Eb(d,f,g,h){d=d|0;f=f|0;g=g|0;h=h|0;var i=0;i=c[28220]|0;if(!((Ab()|0)<<24>>24==0)){mc()}kc(0);kc(0);kc(a[113016]|0);b[56504]=f;c[10]=d;Db((d|0)==16777216?7:0,g);a:do{if((f&65535)>>>0>1>>>0){if((h|0)<0){while(1){nc();if(!((e[56504]|0)>>>0>1>>>0)){break a}}}if(!((c[28226]|0)>>>0<h>>>0)){break}do{nc();}while((e[56504]|0)>>>0>1>>>0&(c[28226]|0)>>>0<h>>>0)}}while(0);c[10]=67108864;if((d|0)!=33554432){Cb(d,g,i);f=c[28226]|0;return f|0}a[112]=hc(-11240)|0;Cb(d,g,i);f=c[28226]|0;return f|0}function Fb(){var a=0;do{if((jc()|0)<<24>>24==0){do{if((_a(191200,0)|0)!=0){if((bb(c[47800]|0,0)|0)==0){break}else{a=1}return a|0}}while(0);if((_a(191200,1)|0)==0){break}if((bb(c[47800]|0,1)|0)==0){break}else{a=1}return a|0}}while(0);a=(Kc()|0)!=0|0;return a|0}function Gb(){var b=0,c=0;c=(a[107856]|0)==1;b=(vb()|0)!=0;do{if(c){b=b&1^1}else{if(b){b=0;break}c=(Fb()|0)==0;b=c?2:1}}while(0);return b|0}function Hb(a,b){a=a|0;b=b|0;return b&a|0}function Ib(a,b){a=a|0;b=b|0;if((b|0)==8191){a=134217728;return a|0}a=c[108880+(b<<2)>>2]&~a;return a|0}function Jb(b,d,e){b=b|0;d=d|0;e=e|0;c[32888+(d<<2)>>2]=Ib(b,e)|0;a[31888+d|0]=a[107880+e|0]|0;return}function Kb(a,b,d){a=a|0;b=b|0;d=d|0;Jb(a,b,d);b=c[28220]|0;while(1){d=d+1|0;if(!(d>>>0<b>>>0)){d=8191;a=4;break}if((Hb(a,c[108880+(d<<2)>>2]|0)|0)!=0){a=4;break}}if((a|0)==4){return d|0}return 0}function Lb(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a=c[28220]|0;if((a|0)==0){return}else{e=8191;b=0;d=0;g=0;h=8191;f=8191}do{i=c[108880+(b<<2)>>2]|0;do{if((i&67108864|0)==0){if((i&33554432|0)==0){h=(i&16777216|0)!=0&(h|0)==8191?b:h;break}else{f=(f|0)==8191?b:f;d=d+1|0;break}}else{g=g+1|0;e=(e|0)==8191?b:e}}while(0);b=b+1|0;}while(b>>>0<a>>>0);b=(g>>>0<10>>>0)<<31>>31;d=((d|0)==1|(h|0)!=8191)<<31>>31;g=0;j=0;while(1){i=Ib(67108864,e)|0;l=Ib(33554432,f)|0;do{if(i>>>0<l>>>0){k=(j<<24>>24)+g|0;if(i>>>0<(Ib(16777216,h)|0)>>>0){i=j+b&255;e=Kb(67108864,k,e)|0;break}else{i=j;h=Kb(16777216,k,h)|0;break}}else{if(!(l>>>0<i>>>0)){i=j;h=Kb(16777216,(j<<24>>24)+g|0,h)|0;break}k=(j<<24>>24)+g|0;if(l>>>0<(Ib(16777216,h)|0)>>>0){i=j+d&255;f=Kb(33554432,k,f)|0;break}else{i=j;h=Kb(16777216,k,h)|0;break}}}while(0);g=g+1|0;if(g>>>0<a>>>0){j=i}else{break}}c[28220]=a+(i<<24>>24);return}function Mb(a,b,d){a=a|0;b=b|0;d=d|0;if((b|0)<(a|0)){return}Zb((c[28222]|0)+a|0,d,1-a+b|0);return}function Nb(b,d){b=b|0;d=d|0;var e=0,f=0.0,g=0,h=0,i=0,j=0;if(!((c[28220]|0)>>>0>5>>>0)){j=0;return j|0}Lb();e=c[28220]|0;d=d-1|0;if((e|0)==0){g=0;h=a[120]|0}else{f=+(d>>>0>>>0)/+(b>>>0>>>0);j=0;i=0;h=a[120]|0;while(1){g=c[32888+(j<<2)>>2]|0;g=~~(f*+((g>>>0>b>>>0?b:g)>>>0>>>0));Mb(i,g,h);h=a[31888+j|0]|0;a[120]=h;j=j+1|0;if(j>>>0<e>>>0){i=g}else{break}}}Mb(g,d,h);if((ub()|0)!=248){j=1;return j|0}gc(24,a[112]|0);j=1;return j|0}function Ob(a,b){a=a|0;b=b|0;if((a|0)==2){b=33554431}else if((a|0)==0){b=wb()|0}else{b=jb(191200,b)|0}return b|0}function Pb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0;if(!(d>>>0<a>>>0)){return}f=+(b>>>0>>>0)/+(a>>>0>>>0);ac((c[910]|0)+(~~(+(d>>>0>>>0)*f)<<2)|0,~~(+(((e>>>0>a>>>0?a:e)-d|0)>>>0>>>0)*f)+1|0);return}function Qb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;do{if((b|0)==33554431){d=1}else{if((a|0)==33554431){d=0;break}d=d>>>0>=c>>>0|0}}while(0);return d|0}function Rb(){a[37184]=a[191320]|0;a[36896]=a[3416]|0;a[36888]=a[3408]|0;a[37168]=a[113016]|0;b[18588]=b[56504]|0;a[36904]=a[112936]|0;$c(36912,113472,255)|0;return}function Sb(){a[191320]=a[37184]|0;a[3416]=a[36896]|0;a[3408]=a[36888]|0;a[113016]=a[37168]|0;b[56504]=b[18588]|0;a[112936]=a[36904]|0;$c(113472,36912,255)|0;return}function Tb(d,f,g,h){d=d|0;f=f|0;g=g|0;h=h|0;Db(0,g);if(d<<16>>16==0){Sb();d=b[56504]|0}else{mc();a[191320]=f;b[56504]=d;kc(0);kc(0)}if(!((d&65535)>>>0>1>>>0)){g=0;return g|0}a:do{if((h|0)>0){while(1){if((c[28226]|0)>>>0>=h>>>0|(c[10554]|0)!=0){break a}nc();if(!((e[56504]|0)>>>0>1>>>0)){h=0;break}}return h|0}else{while(1){if((c[10554]|0)!=0){break a}nc();if(!((e[56504]|0)>>>0>1>>>0)){h=0;break}}return h|0}}while(0);Rb();g=1;return g|0}function Ub(b,d){b=b|0;d=d|0;var e=0;if(!((a[107800]|0)!=0&(d|0)>0)){return}e=c[28220]|0;a[107800]=Tb(0,0,b,d)|0;Cb(67108864,b,e);return}function Vb(){var a=0,b=0;a=c[10554]|0;if((a|0)==0){a=0}else{b=a<<2;$c(108880,38216,b)|0;$c(107880,37216,b)|0}c[28220]=a;c[10554]=0;return}function Wb(d,e){d=d|0;e=e|0;Vb();Db(0,0);Yb();if((b[18604]|0)==0){a[107856]=0}do{if((Kc()|0)==0){if((vb()|0)!=0){break}if((yb()|0)!=0){break}Eb(33554432,(Bb()|0)&65535,0,-1)|0;ac(c[910]|0,e);c[28220]=0;e=0;return e|0}}while(0);Xb(d,e);e=Nb(d,e)|0;return e|0}function Xb(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;e=Ob(Gb()|0,b)|0;if((yb()|0)==0){f=33554431}else{f=jb(191224,b)|0}if((vb()|0)==0){h=0}else{h=(Fb()|0)!=0|0}do{if((yb()|0)==0){g=8}else{if(!((e|0)==33554431&(f|0)==33554431)){g=8;break}a[48]=1;f=0;j=0;n=0;p=0;e=0;h=1}}while(0);if((g|0)==8){a[48]=0;a:do{if((e|0)==33554431&(f|0)==33554431){p=0;n=0;j=100;e=0;f=0}else{if(h<<24>>24==0){i=b;l=b;h=e;m=f;p=0;j=f;f=e;e=0;n=0;k=100;g=0;while(1){o=(h|0)==33554431;q=e;while(1){if(q>>>0>k>>>0){r=q-p-n-g|0;if((r|0)>0){Ub(k,r);p=r+p|0}k=q+100|0}if((Qb(h,m,f,j)|0)!=0){break}n=(Eb(16777216,(zb()|0)&65535,j,b)|0)+n|0;l=l-m|0;r=jb(191224,l)|0;if(o&(r|0)==33554431){j=k;f=g;break a}else{m=r;q=j;j=r+j|0}}Pb(b,d,e,f);e=(Bb()|0)&65535;r=c[26966]|0;e=Eb(33554432,e,f,r)|0;if(!(e>>>0<r>>>0)){e=(a[113016]&4)==0?1:e}g=e+g|0;i=i-h|0;o=Ob(Gb()|0,i)|0;if((o|0)==33554431&(m|0)==33554431){j=k;e=f;f=g;break}else{h=o;e=f;f=o+f|0}}}else{g=b;m=b;h=e;l=f;p=0;k=f;i=0;n=0;j=100;f=0;while(1){o=(h|0)==33554431;q=i;while(1){if(q>>>0>j>>>0){r=q-p-n-f|0;if((r|0)>0){Ub(j,r);p=r+p|0}j=q+100|0}if((Qb(h,l,e,k)|0)!=0){break}n=(Eb(16777216,(zb()|0)&65535,k,b)|0)+n|0;m=m-l|0;r=jb(191224,m)|0;if(o&(r|0)==33554431){e=i;break a}else{l=r;q=k;k=r+k|0}}Pb(b,d,i,e);eb(191200,0);i=(Bb()|0)&65535;r=c[26966]|0;i=Eb(33554432,i,e,r)|0;if(!(i>>>0<r>>>0)){i=(a[113016]&4)==0?1:i}f=i+f|0;g=g-h|0;o=Ob(Gb()|0,g)|0;if((o|0)==33554431&(l|0)==33554431){break}else{h=o;i=e;e=o+e|0}}}}}while(0);Pb(b,d,e,b);h=0}f=b-p-n-f|0;if((f|0)<=0){return}Ub(j,f);if(!h){return}r=(yb()|0)==0;if(r|a[24]){return}Pb(b,d,e,b);return}function Yb(){var a=0;a=(Ic()|0)<<24>>24!=0;c[908]=(a?17:20)+(c[908]|0);return}function Zb(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<=0){return}ad(a|0,b|0,c|0)|0;return}function _b(a){a=a|0;var b=0.0,d=0;c[28302]=a;c[47786]=0;c[47784]=15872e3/(a>>>0)|0;c[47788]=(($b(21.533203125)|0)>>>0)/(a>>>0)|0;b=+(a>>>0>>>0);a=0;do{d=~~(16777216.0/(b*+g[3344+(a<<2)>>2]));c[191256+(a<<2)>>2]=d;c[112944+(a<<2)>>2]=d;a=a+1|0;}while((a|0)<16);Zb(3528,0,28);Zb(113024,0,156);Zb(191160,0,28);c[28267]=16777215;c[28280]=16777215;c[28293]=16777215;return}function $b(a){a=+a;return~~(a*65536.0)|0}function ac(b,f){b=b|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;g=d[3554]|0;h=c[47784]|0;i=0;j=0;while(1){c[113028+(j*52|0)>>2]=e[3530+(j<<3)>>1]<<16&268369920;a[113033+(j*52|0)|0]=bc(g,i)|0;t=d[3533+(j<<3)|0]|0;c[113036+(j*52|0)>>2]=c[191256+(t>>>4<<2)>>2];c[113040+(j*52|0)>>2]=c[112944+((t&15)<<2)>>2];t=d[3534+(j<<3)|0]|0;c[113044+(j*52|0)>>2]=t&240;c[113048+(j*52|0)>>2]=c[112944+((t&15)<<2)>>2];a[113032+(j*52|0)|0]=a[3532+(j<<3)|0]|0;c[113024+(j*52|0)>>2]=Z(e[3528+(j<<3)>>1]|0,h)|0;j=i+1&255;if((j&255)>>>0<3>>>0){i=j;j=j&255}else{break}}h=Z(c[47788]<<1,a[3552]&7|d[3553]<<3)|0;i=cc(1)|0;c[47790]=(h|0)>(i|0)?i:h;t=d[3555]|0;a[191164]=bc(t,4)|0;a[191165]=bc(t,5)|0;a[191166]=bc(t,6)|0;h=(bc(t,7)|0)<<24>>24==0|0;a[191167]=h;c[47792]=t&15;t=$b(1.2000000476837158)|0;c[47793]=t-(Z(g>>>4,$b(.03999999910593033)|0)|0)>>8;if((f|0)==0){return}else{g=0}while(1){h=h<<24>>24==0;j=0;k=0;i=0;l=0;while(1){o=113052+(l*52|0)|0;p=c[113024+(l*52|0)>>2]|0;s=p+(c[o>>2]|0)&268435455;c[o>>2]=s;m=a[113032+(l*52|0)|0]|0;if(!((m&8)==0)){c[o>>2]=0;c[113064+(l*52|0)>>2]=0;c[113068+(l*52|0)>>2]=16777215;s=0}if(i<<24>>24==0){n=2}else{n=i-1&255}do{if(!((m&2)==0)){q=c[113052+(n*52|0)>>2]|0;r=c[113024+(n*52|0)>>2]|0;if(!(q>>>0<r>>>0)){break}s=((Z(p,q)|0)>>>0)/(r>>>0)|0;c[o>>2]=s}}while(0);o=s>>>19;r=(s>>>0>134217727>>>0?o^255:o)&255;p=s>>>20;o=c[113028+(l*52|0)>>2]|0;q=(m&80)==80;o=(q?s>>>0>=o>>>0:s>>>0<=o>>>0)<<31>>31;t=113064+(l*52|0)|0;s=s>>>23;if((c[t>>2]|0)==(s|0)){s=a[113072+(l*52|0)|0]|0}else{c[t>>2]=s;t=113068+(l*52|0)|0;s=c[t>>2]|0;u=bc(s,22)|0;s=((bc(s,17)|0)^u)&255|s<<1;c[t>>2]=s;t=(bc(s,22)|0)<<7;t=(bc(s,20)|0)<<6|t;t=t|(bc(s,16)|0)<<5;t=t|(bc(s,13)|0)<<4;t=t|(bc(s,11)|0)<<3;t=t|(bc(s,7)|0)<<2;t=t|(bc(s,4)|0)<<1;s=t|(bc(s,2)|0);a[113072+(l*52|0)|0]=s}if(!((m&4)==0)){r=((c[113052+(n*52|0)>>2]|0)>>>0<134217728>>>0)<<31>>31^r}if(q){n=a[128+((r&255)>>>1)|0]&o}else{n=(m&16)==0?-1:r;if(!((m&32)==0)){n=n&255&p&255}n=(m<<24>>24<0?s:-1)&n&((m&64)==0?-1:o)}o=113060+(l*52|0)|0;do{if((m&1)==0){a[o]=3;m=3}else{m=a[o]|0;if(!(m<<24>>24==3)){break}a[o]=0;m=0}}while(0);m=m&255;do{if((m|0)==0){m=113056+(l*52|0)|0;u=(c[m>>2]|0)+(c[113036+(l*52|0)>>2]|0)|0;c[m>>2]=u;if((u|0)<=16777214){break}c[m>>2]=16777215;a[o]=1}else if((m|0)==1){m=113056+(l*52|0)|0;q=c[m>>2]|0;do{if((q|0)>8947848){p=q-(c[113040+(l*52|0)>>2]|0)|0;c[m>>2]=p}else{if((q|0)>4473924){p=q-((c[113040+(l*52|0)>>2]|0)>>>1)|0;c[m>>2]=p;break}if((q|0)>2236962){p=q-((c[113040+(l*52|0)>>2]|0)>>>2)|0;c[m>>2]=p;break}p=c[113040+(l*52|0)>>2]|0;if((q|0)>1118481){p=q-(p>>>3)|0;c[m>>2]=p;break}else{p=q-(p>>>4)|0;c[m>>2]=p;break}}}while(0);q=c[113044+(l*52|0)>>2]<<16;if((p|0)>(q|0)){break}c[m>>2]=q;a[o]=2}else if((m|0)==2){if((c[113056+(l*52|0)>>2]|0)==(c[113044+(l*52|0)>>2]<<16|0)){break}a[o]=1}else if((m|0)==3){m=113056+(l*52|0)|0;p=c[m>>2]|0;do{if((p|0)>8947848){o=p-(c[113048+(l*52|0)>>2]|0)|0;c[m>>2]=o}else{if((p|0)>4473924){o=p-((c[113048+(l*52|0)>>2]|0)>>>1)|0;c[m>>2]=o;break}if((p|0)>2236962){o=p-((c[113048+(l*52|0)>>2]|0)>>>2)|0;c[m>>2]=o;break}o=c[113048+(l*52|0)>>2]|0;if((p|0)>1118481){o=p-(o>>>3)|0;c[m>>2]=o;break}else{o=p-(o>>>4)|0;c[m>>2]=o;break}}}while(0);if((o|0)>=1){break}c[m>>2]=1}}while(0);do{if(!((i&255)>>>0>1>>>0&h)){m=(Z(c[113056+(l*52|0)>>2]|0,(n&255)-128|0)|0)>>22;if((a[113033+(l*52|0)|0]|0)==0){k=m+k|0;break}else{j=m+j|0;break}}}while(0);l=i+1&255;if((l&255)>>>0<3>>>0){i=l;l=l&255}else{break}}i=cc(j)|0;m=c[47795]|0;i=i-(Z(m>>8,c[47793]|0)|0)|0;o=c[47796]|0;i=i-o|0;c[47794]=i;n=c[47790]|0;m=m+(dc(n,i)|0)|0;c[47795]=m;n=o+(dc(n,m)|0)|0;c[47796]=n;o=a[191164]|0;l=a[191165]|0;h=a[191166]|0;do{if(!((l|o|h)<<24>>24==0)){if(o<<24>>24==0){j=0}else{j=ec(n)|0}if(!(l<<24>>24==0)){j=(ec(m)|0)+j|0}if(h<<24>>24==0){break}j=(ec(i)|0)+j|0}}while(0);h=fc(Z(c[47792]|0,j+k|0)|0)|0;if((h|0)<-32700){h=-32700}else{h=(h|0)>32700?32700:h<<16>>16}c[b+(g<<2)>>2]=h;g=g+1|0;if(!(g>>>0<f>>>0)){break}h=a[191167]|0}return}function bc(a,b){a=a|0;b=b|0;return a>>>((b&255)>>>0)&1|0}function cc(a){a=a|0;return a<<16|0}function dc(a,b){a=a|0;b=b|0;return Z(b>>8,a>>8)|0}function ec(a){a=a|0;return a>>16|0}function fc(b){b=b|0;var e=0,f=0,g=0,h=0;if(!(a[8]|0)){h=b;return h|0}f=c[896]|0;e=c[904]|0;if((f|0)>=(e|0)|(f|0)<(c[890]|0)){h=b;return h|0}b=(c[47950]|0)+b|0;g=(c[47786]|0)+(985248/(c[898]|0)|0)|0;c[47786]=g;h=c[28302]|0;if((g|0)<=(h|0)){h=b;return h|0}c[47786]=(g|0)%(h|0)|0;g=c[902]|0;do{if((c[900]|0)==0){g=g+1|0;c[902]=g;if((g|0)!=2){break}c[902]=0;f=f+1|0;c[896]=f;g=0}else{g=g-1|0;c[902]=g;if((g|0)>=0){break}c[902]=1;f=f+1|0;c[896]=f;g=1}}while(0);h=c[892]|0;do{if((h|0)!=0){if((f|0)>(e|0)){c[892]=h-1;f=c[894]|0;c[896]=f;break}else{a[8]=0;break}}}while(0);e=d[113216+(f&65535)|0]|0;c[47950]=(((g|0)==1?e>>>4:e&15)<<11)-16384;h=b;return h|0}function gc(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=d-7|0;g=h>>>0<7>>>0;h=g?h:d;d=h-14|0;i=d>>>0<7>>>0;g=i?2:g&1;switch((i?d:h)|0){case 3:{i=3530+(g<<3)|0;b[i>>1]=b[i>>1]&255|(e&255)<<8&3840;return};case 5:{a[3533+(g<<3)|0]=e;return};case 6:{f=3534+(g<<3)|0;if((c[3648+(g<<2)>>2]|0)==0){a[f]=e;return}else{a[f]=0;return}};case 4:{h=3528+(g<<3)|0;d=3532+(g<<3)|0;a:do{if((a[d]&8)==0){f=16}else{if(!((e&72)==64)){f=16;break}if((a[3533+(g<<3)|0]|0)!=0){f=16;break}if(!((a[3534+(g<<3)|0]|0)==-16)){f=16;break}i=b[3530+(g<<3)>>1]|0;do{if((i&-256)<<16>>16==2048){h=h|0}else{if((i<<16>>16|0)==2302){h=h|0;if((b[h>>1]|0)==-1){break}else{f=16;break a}}else if((i<<16>>16|0)==1365){h=h|0;if((b[h>>1]|0)==-508){break}else{f=16;break a}}else{f=16;break a}}}while(0);c[3648+(g<<2)>>2]=1;a[d]=0;b[h>>1]=0}}while(0);if((f|0)==16){a[d]=e}f=113060+(g*52|0)|0;if((e&1)==0){a[f]=3;return}if((a[f]|0)!=3){return}a[f]=0;return};case 2:{i=3530+(g<<3)|0;b[i>>1]=b[i>>1]&3840|e&255;return};case 21:{a[3552]=e;return};case 22:{a[3553]=e;return};case 1:{i=3528+(g<<3)|0;b[i>>1]=b[i>>1]&255|(e&255)<<8;return};case 0:{i=3528+(g<<3)|0;b[i>>1]=b[i>>1]&-256|e&255;return};case 23:{a[3554]=e;return};case 24:{a[3555]=e;return};default:{return}}}function hc(b){b=b|0;var d=0;d=b&65535;a:do{if((b&65535)>>>0<53248>>>0){b=a[113216+d|0]|0}else{if(!((b&65535)>>>0<57344>>>0)){if((Fc()|0)<<24>>24==0){b=a[113216+d|0]|0;break}else{b=a[178800+(d-57344)|0]|0;break}}if((Gc()|0)<<24>>24==0){b=a[113216+d|0]|0;break}b=((b+9216&65535)>>>0<512>>>0?b&-241:b)&65535;switch(b|0){case 54300:{b=((c[28290]|0)>>>16)+128&255;break a};case 56324:{if((a[107856]|0)==0){b=a[190068]|0;break a}else{b=(a[191192]|0)+3&255;a[191192]=b;break a}};case 56326:{b=8;break a};case 56333:{b=Za(191200)|0;break a};case 56589:{b=Za(191224)|0;break a};case 56328:{b=(((((c[908]|0)>>>0)%1e3|0)>>>0)/100|0)&255;break a};case 56329:{b=(((((c[908]|0)>>>0)/1e3|0)>>>0)%60|0)&255;break a};case 53265:{b=tb()|0;break a};case 53266:{b=sb()|0;break a};case 53273:{b=qb()|0;break a};case 56321:{b=-1;break a};default:{if((b&64512|0)==54272){b=a[186992+((b&64543)-53248)|0]|0;break a}else{b=a[186992+(b-53248)|0]|0;break a}}}}}while(0);return b|0}function ic(b,d){b=b|0;d=d|0;if(!((b+11239&65535)>>>0<231>>>0)){return}switch(b<<16>>16){case-11137:{c[47776]=c[47776]&255|(d&255)<<8;return};case-11138:{c[47776]=c[47776]&65280|d&255;return};case-11234:{c[47772]=c[47772]&65280|d&255;return};case-11233:{c[47772]=c[47772]&255|(d&255)<<8;return};case-11202:{c[47782]=c[47782]&255|(d&255)<<8;return};case-11203:{c[47782]=c[47782]&65280|d&255;return};case-11201:{c[47774]=d&255;return};case-11170:{c[47778]=c[47778]&255|(d&255)<<8;return};case-11171:{c[47778]=c[47778]&65280|d&255;return};case-11139:{c[47780]=d&255;return};case-11235:{c[892]=c[47774];b=c[47772]|0;c[896]=b;c[890]=b;c[904]=c[47782];c[894]=c[47776];c[898]=c[47778];c[900]=c[47780];d=d&255;if((d|0)==253){a[8]=0;return}else if((d|0)==254|(d|0)==255){a[8]=1;return}else{return}};default:{return}}}function jc(){return(d[113016]|0)>>>2&1|0}function kc(b){b=b|0;var c=0;c=a[112936]|0;lc(c&255|256,b);a[112936]=c-1;return}function lc(b,d){b=b|0;d=d|0;var e=0,f=0;e=b&65535;if(!((b+12288&65535)>>>0<4096>>>0)){a[113216+e|0]=d;return}if((Gc()|0)<<24>>24==0){a[113216+e|0]=d;return}if((b+9216&65535)>>>0<512>>>0){e=b&-241&65535;switch(e|0){case 56328:{f=c[908]|0;c[908]=f+((d&255)*100|0)-((f>>>0)%1e3|0);return};case 56329:{c[908]=(((c[908]|0)>>>0)%1e3|0)+((d&255)*1e3|0);return};case 56580:case 56581:case 56582:case 56583:{ib(191224,e-56576|0,d);return};case 56333:{Ya(c[47800]|0,d);return};case 56589:{Ya(c[47806]|0,d);return};case 56324:case 56325:case 56326:case 56327:{ib(191200,e-56320|0,d);return};default:{a[186992+(e-53248)|0]=d;return}}}if((e&64512|0)!=54272){if(b<<16>>16==-12263){pb(d)}a[186992+(e-53248)|0]=d;return}f=c[10]|0;if((f|0)==16777216){if(b<<16>>16==-11240){Bc(d<<4);gc(e&31,d)}Cc(b,d);return}if((a[107856]|0)==0&b<<16>>16==-11240){Bc(d<<4)}gc(e&31,d);if(!((f|0)!=67108864|a[48]^1)){Cc(b,d)}a[186992+((e&64543)-53248)|0]=d;if((Hc()|0)!=0){return}ic(b,d);return}function mc(){a[3408]=0;a[3416]=0;a[191320]=0;a[113016]=0;a[112936]=-1;b[56504]=0;return}function nc(){var e=0,f=0,g=0,h=0,i=0,j=0;ob();f=b[56504]|0;h=f+1&65535;b[56504]=h;g=hc(f)|0;j=g&255;i=c[272+(j<<2)>>2]|0;e=c[2320+(j<<2)>>2]|0;c[28226]=(c[28226]|0)+(c[1296+(j<<2)>>2]|0);switch(i|0){case 6:{i=oc(g,e)|0;j=(i&255)<<1;b[1712]=j;qc(e,j&255);pc(2,i<<24>>24==0|0);j=j&65535;pc(128,j&128);pc(1,j&256);return};case 39:{j=oc(g,e)|0;a[3416]=j;pc(2,j<<24>>24==0|0);pc(128,j&128);return};case 40:{j=oc(g,e)|0;a[3408]=j;pc(2,j<<24>>24==0|0);pc(128,j&128);return};case 7:{rc(g,(a[113016]&1^1)&255);return};case 3:{j=oc(g,e)|0;a[191248]=j;j=a[191320]&j;a[191320]=j;pc(2,j<<24>>24==0|0);pc(128,j&128);return};case 44:{j=oc(g,e)|0;a[191248]=j;j=a[191320]|j;a[191320]=j;pc(2,j<<24>>24==0|0);pc(128,j&128);return};case 41:{j=oc(g,e)|0;a[191248]=j;i=(j&255)>>>1;b[1712]=i;qc(e,i&255);pc(2,i<<16>>16==0|0);pc(128,0);pc(1,j&1);return};case 0:{j=((d[191320]|0)+((oc(g,e)|0)&255)&65535)+(a[113016]&1)&65535;b[1712]=j;pc(1,j&256);i=j&255;a[191320]=i;pc(2,i<<24>>24==0|0);pc(128,j&128);j=d[113016]|0;pc(64,j&1^j>>>7);return};case 43:{oc(g,e)|0;return};case 58:{pc(1,1);return};case 59:{pc(8,1);return};case 60:{pc(4,1);return};case 67:{tc(g,e,a[191320]|0);return};case 68:{tc(g,e,a[3416]|0);return};case 69:{tc(g,e,a[3408]|0);return};case 70:{j=a[191320]|0;a[3416]=j;pc(2,j<<24>>24==0|0);pc(128,j&128);return};case 71:{j=a[191320]|0;a[3408]=j;pc(2,j<<24>>24==0|0);pc(128,j&128);return};case 72:{j=a[112936]|0;a[3416]=j;pc(2,j<<24>>24==0|0);pc(128,j&128);return};case 73:{j=a[3416]|0;a[191320]=j;pc(2,j<<24>>24==0|0);pc(128,j&128);return};case 74:{a[112936]=a[3416]|0;return};case 75:{j=a[3408]|0;a[191320]=j;pc(2,j<<24>>24==0|0);pc(128,j&128);return};case 2:{j=oc(g,e)|0;a[191248]=j;j=a[191320]&j;a[191320]=j;pc(1,j&128);return};case 8:{rc(g,a[113016]&1);return};case 45:{kc(a[191320]|0);return};case 46:{kc(a[113016]|0);return};case 47:{j=sc()|0;a[191320]=j;pc(2,j<<24>>24==0|0);pc(128,j&128);return};case 48:{a[113016]=sc()|0;return};case 50:{i=oc(g,e)|0;j=a[113016]&1;pc(1,i&128);i=i<<1;j=i|j;a[191248]=j;qc(e,j);pc(128,i&128);pc(2,j<<24>>24==0|0);return};case 51:{j=oc(g,e)|0;i=a[113016]|0;pc(1,j&1);i=i<<7;j=(j&255)>>>1|i;a[191248]=j;qc(e,j);pc(128,i&255);pc(2,j<<24>>24==0|0);return};case 53:{a[113016]=sc()|0;j=(sc()|0)&255|((sc()|0)&255)<<8;b[1712]=j;b[56504]=j;return};case 54:{j=(sc()|0)&255|((sc()|0)&255)<<8;b[1712]=j;b[56504]=j+1;return};case 56:{j=~(oc(g,e)|0);a[191248]=j;j=((d[191320]|0)+(j&255)&65535)+(a[113016]&1)&65535;b[1712]=j;pc(1,j&256);j=j&255;a[191320]=j;pc(2,j<<24>>24==0|0);pc(128,(j&255)>>>7&255);j=d[113016]|0;pc(64,j&1^j>>>7);return};case 57:{j=oc(g,e)|0;a[191248]=j;a[3416]=(a[191320]&a[3416])-j;return};case 12:{rc(g,((d[113016]|0)>>>1&1^1)&255);return};case 9:{rc(g,a[113016]&2);return};case 13:{rc(g,(d[113016]|0)>>>7&255^1);return};case 11:{rc(g,a[113016]&128);return};case 15:{rc(g,((d[113016]|0)>>>6&1^1)&255);return};case 16:{rc(g,a[113016]&64);return};case 10:{j=oc(g,e)|0;a[191248]=j;pc(2,(a[191320]&j)<<24>>24==0|0);j=j&255;pc(128,j&128);pc(64,j&64);return};case 14:{b[56504]=0;return};case 17:{pc(1,0);return};case 18:{pc(8,0);return};case 19:{pc(4,0);return};case 20:{pc(64,0);return};case 21:{j=oc(g,e)|0;a[191248]=j;i=a[191320]|0;h=(i&255)-(j&255)&65535;b[1712]=h;pc(2,i<<24>>24==j<<24>>24|0);pc(128,h&128);pc(1,(i&255)>>>0>=(j&255)>>>0|0);return};case 22:{j=oc(g,e)|0;a[191248]=j;i=a[3416]|0;h=(i&255)-(j&255)&65535;b[1712]=h;pc(2,i<<24>>24==j<<24>>24|0);pc(128,h&128);pc(1,(i&255)>>>0>=(j&255)>>>0|0);return};case 23:{j=oc(g,e)|0;a[191248]=j;i=a[3408]|0;h=(i&255)-(j&255)&65535;b[1712]=h;pc(2,i<<24>>24==j<<24>>24|0);pc(128,h&128);pc(1,(i&255)>>>0>=(j&255)>>>0|0);return};case 25:{j=(oc(g,e)|0)-1&255;a[191248]=j;qc(e,j);pc(2,j<<24>>24==0|0);pc(128,j&128);return};case 26:{j=(a[3416]|0)-1&255;a[3416]=j;pc(2,j<<24>>24==0|0);pc(128,j&128);return};case 27:{j=(a[3408]|0)-1&255;a[3408]=j;pc(2,j<<24>>24==0|0);pc(128,j&128);return};case 28:{i=oc(g,e)|0;a[191248]=i;h=a[191320]|0;j=h^i;a[191320]=j;pc(2,h<<24>>24==i<<24>>24|0);pc(128,j&128);return};case 29:{j=(oc(g,e)|0)+1&255;a[191248]=j;qc(e,j);pc(2,j<<24>>24==0|0);pc(128,j&128);return};case 30:{j=(a[3416]|0)+1&255;a[3416]=j;pc(2,j<<24>>24==0|0);pc(128,j&128);return};case 31:{j=(a[3408]|0)+1&255;a[3408]=j;pc(2,j<<24>>24==0|0);pc(128,j&128);return};case 33:{b[56504]=0;return};case 34:{j=(hc(h)|0)&255;g=f+3&65535;b[56504]=g;f=((hc(f+2&65535)|0)&255)<<8|j;b[1712]=f;if((e|0)==2){if((f&65535|0)==((g&65535)-3|0)&(c[10]|0)==67108864){b[56504]=0;return}else{b[56504]=f;return}}else if((e|0)==9){j=(hc(f)|0)&255;b[56504]=((hc(f+1&65535)|0)&255)<<8|j;return}else{return}};case 35:{kc(((h&65535)+1|0)>>>8&255);kc((h&255)+1&255);j=(hc(h)|0)&255|((hc(f+2&65535)|0)&255)<<8;b[1712]=j;b[56504]=j;return};case 37:{a[24]=1;j=oc(g,e)|0;a[191320]=j;a[3416]=j;pc(2,j<<24>>24==0|0);pc(128,j&128);return};case 38:{j=oc(g,e)|0;a[191320]=j;pc(2,j<<24>>24==0|0);pc(128,j&128);return};default:{oc(g,e)|0;return}}}function oc(e,f){e=e|0;f=f|0;var g=0,h=0;switch(f|0){case 1:{h=b[56504]|0;b[56504]=h+1;h=hc(h)|0;return h|0};case 10:{f=b[56504]|0;b[56504]=f+1;f=hc(f)|0;f=(d[3416]|0)+(f&255)&65535;h=hc(f&255)|0;h=hc(((hc(f+1&255)|0)&255)<<8|h&255)|0;return h|0};case 2:{f=b[56504]|0;h=hc(f)|0;b[56504]=f+2;h=((hc(f+1&65535)|0)&255)<<8|h&255;zc(h);Ac(h);h=hc(h)|0;return h|0};case 6:{h=b[56504]|0;b[56504]=h+1;h=hc((hc(h)|0)&255)|0;return h|0};case 8:{h=b[56504]|0;b[56504]=h+1;h=hc(h)|0;h=hc((d[3408]|0)+(h&255)&255)|0;return h|0};case 7:{h=b[56504]|0;b[56504]=h+1;h=hc(h)|0;h=hc((d[3416]|0)+(h&255)&255)|0;return h|0};case 3:case 4:{g=b[56504]|0;h=hc(g)|0;b[56504]=g+2;g=((hc(g+1&65535)|0)&255)<<8;f=(((f|0)==3?a[3416]|0:a[3408]|0)&255)+(g|h&255)&65535;do{if((yc(c[272+((e&255)<<2)>>2]|0)|0)!=0){if((f&65280|0)==(g&65535|0)){break}c[28226]=(c[28226]|0)+1}}while(0);h=hc(f)|0;return h|0};case 12:{h=a[191320]|0;return h|0};case 11:{f=b[56504]|0;b[56504]=f+1;f=(hc(f)|0)&255;g=hc(f)|0;f=((hc(f+1&255)|0)&255)<<8;g=(f|g&255)+(d[3408]|0)&65535;do{if((yc(c[272+((e&255)<<2)>>2]|0)|0)!=0){if((f&65535|0)==(g&65280|0)){break}c[28226]=(c[28226]|0)+1}}while(0);h=hc(g)|0;return h|0};default:{h=0;return h|0}}return 0}function pc(b,c){b=b|0;c=c|0;if((c|0)==0){b=(d[113016]|0)&(b^255)}else{b=d[113016]|0|b}a[113016]=b;return}function qc(c,e){c=c|0;e=e|0;var f=0;switch(c|0){case 2:{f=b[56504]|0;c=hc(f-2&65535)|0;lc(((hc(f-1&65535)|0)&255)<<8|c&255,e);return};case 6:{lc((hc((b[56504]|0)-1&65535)|0)&255,e);return};case 7:{f=hc((b[56504]|0)-1&65535)|0;lc((d[3416]|0)+(f&255)&255,e);return};case 12:{a[191320]=e;return};case 3:{c=b[56504]|0;f=hc(c-2&65535)|0;lc((((hc(c-1&65535)|0)&255)<<8|f&255)+(d[3416]|0)&65535,e);return};default:{return}}}function rc(a,d){a=a|0;d=d|0;var e=0;e=oc(a,1)|0;a=b[56504]|0;e=a+(e<<24>>24)&65535;b[1712]=e;if((d|0)==0){return}c[28226]=(c[28226]|0)+1+(((a^e)&65535)>>>8&1);b[56504]=e;return}function sc(){var b=0;b=(d[112936]|0)+1|0;a[112936]=b;return hc((b&255|256)&65535)|0}function tc(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,i=0;switch(f|0){case 3:case 4:{h=b[56504]|0;i=hc(h)|0;b[56504]=h+2;h=((hc(h+1&65535)|0)&255)<<8;f=(((f|0)==3?a[3416]|0:a[3408]|0)&255)+(h|i&255)&65535;do{if((yc(c[272+((e&255)<<2)>>2]|0)|0)!=0){if((f&65280|0)==(h&65535|0)){break}c[28226]=(c[28226]|0)+1}}while(0);lc(f,g);return};case 2:{f=b[56504]|0;i=hc(f)|0;b[56504]=f+2;lc(((hc(f+1&65535)|0)&255)<<8|i&255,g);return};case 6:{i=b[56504]|0;b[56504]=i+1;lc((hc(i)|0)&255,g);return};case 7:{i=b[56504]|0;b[56504]=i+1;i=hc(i)|0;lc((d[3416]|0)+(i&255)&255,g);return};case 8:{i=b[56504]|0;b[56504]=i+1;i=hc(i)|0;lc((d[3408]|0)+(i&255)&255,g);return};case 10:{f=b[56504]|0;b[56504]=f+1;f=hc(f)|0;f=(d[3416]|0)+(f&255)&65535;i=hc(f&255)|0;lc(((hc(f+1&255)|0)&255)<<8|i&255,g);return};case 11:{f=b[56504]|0;b[56504]=f+1;f=(hc(f)|0)&255;i=hc(f)|0;lc((((hc(f+1&255)|0)&255)<<8|i&255)+(d[3408]|0)&65535,g);return};case 12:{a[191320]=g;return};default:{return}}}function uc(){Zb(178800,0,8192);$c(186808,72,19)|0;Zb(181409,-22,77);$c(181486,96,9)|0;t=51932280;a[186547]=t;t=t>>8;a[186548]=t;t=t>>8;a[186549]=t;t=t>>8;a[186550]=t;a[186990]=72;a[186991]=-1;a[186986]=67;a[186987]=-2;a[186304]=96;a[186245]=96;a[186830]=96;a[186865]=96;Zb(186992,0,4096);a[188040]=15;gc(24,15);return}function vc(){uc();Zb(113216,0,65536);a[114004]=49;a[114005]=-22;a[113419]=64;a[190065]=-1;if((a[107856]|0)==0){return}$c(170560,178800,8192)|0;return}function wc(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;vc();j=a[e+7|0]|0;i=(d[e+8|0]|0)<<8;b[f>>1]=i;i=i|(d[e+9|0]|0);b[f>>1]=i;h=(d[e+10|0]|0)<<8|(d[e+11|0]|0);b[53936]=h;b[18604]=(d[e+12|0]|0)<<8|(d[e+13|0]|0);a[107792]=(a[e+15|0]|0)-1;a[112928]=(a[e+17|0]|0)-1;if(i<<16>>16==0){k=j&255;i=d[e+k|0]|0;b[f>>1]=i;i=(d[e+(k+1)|0]|0)<<8|i;b[f>>1]=i;j=j+2&255}if(h<<16>>16==0){b[53936]=i}f=(d[e+18|0]|0)<<24;c[9300]=f;f=(d[e+19|0]|0)<<16|f;c[9300]=f;f=f|(d[e+20|0]|0)<<8;c[9300]=f;c[9300]=f|(d[e+21|0]|0);i=i&65535;f=j&255;k=(g&65535)-f|0;b[53904]=k+i;$c(113216+i|0,e+f|0,k)|0;return}function xc(){c[47788]=0;c[28302]=0;c[47784]=0;Zb(191256,0,64);Zb(112944,0,64);Zb(3528,0,28);Zb(113024,0,156);Zb(191160,0,28);b[56504]=0;a[113016]=0;a[112936]=0;a[3408]=0;a[3416]=0;a[191320]=0;c[902]=0;c[900]=0;c[892]=0;c[898]=0;c[47786]=0;c[894]=0;c[904]=0;c[890]=0;c[896]=0;a[8]=0;c[47776]=0;c[47774]=0;c[47782]=0;c[47772]=0;c[47780]=0;c[47778]=0;c[10]=67108864;Zb(3648,0,12);a[191192]=0;c[908]=0;c[28220]=0;Zb(108880,0,4e3);Zb(107880,0,1e3);c[10554]=0;Zb(38216,0,4e3);Zb(37216,0,1e3);a[48]=0;a[24]=0;a[191248]=0;b[1712]=0;Zb(107840,0,16);c[26958]=0;return}function yc(a){a=a|0;switch(a|0){case 0:case 3:case 21:case 28:case 36:case 37:case 38:case 39:case 40:case 43:case 44:case 56:{a=1;break};default:{a=0}}return a|0}function zc(b){b=b|0;var d=0,f=0,g=0,h=0;if(!((b<<16>>16|0)==(-8947|0)|(b<<16>>16|0)==(-9203|0))){return}d=e[56504]|0;if(!((a[113216+d|0]|0)==-16)){return}if(!((a[d+113217|0]|0)==-5)){return}g=b<<16>>16!=-9203|0;d=191200+(g*24|0)|0;do{if((_a(d,0)|0)==0){b=(_a(d,1)|0)==0;if(!b){h=b?-1:1;break}return}else{h=0}}while(0);f=Va(d,h)|0;b=c[28226]|0;g=107840+((h<<24>>24)+(g<<1)<<2)|0;h=c[g>>2]|0;h=b-(h>>>0<b>>>0?h:0)|0;if(h>>>0<f>>>0){b=b+f-h|0;c[28226]=b}c[g>>2]=b;cb(d);return}function Ac(b){b=b|0;var d=0,f=0;if(!(b<<16>>16==-11237)){return}b=e[56504]|0;if(!((a[113216+b|0]|0)==-48)){return}if(!((a[b+113217|0]|0)==-5)){return}d=(16777216/((e[1772]|0)>>>0)|0)>>>8;b=c[28226]|0;f=c[26958]|0;f=b-(f>>>0<b>>>0?f:0)|0;if(f>>>0<d>>>0){b=b+d-f|0;c[28226]=b}c[26958]=b;a[188043]=(a[188043]|0)+1;return}function Bc(b){b=b|0;var d=0,e=0,f=0;e=c[28226]|0;d=c[906]|0;if(e>>>0>d>>>0){f=((c[28220]|0)>>>0)%999|0;c[38216+(f<<2)>>2]=e-d;a[37216+f|0]=b;c[10554]=(c[10554]|0)+1;return}else{f=c[28220]|0;d=(f>>>0)%999|0;c[108880+(d<<2)>>2]=e;a[107880+d|0]=b;c[28220]=f+1;return}}function Cc(a,b){a=a|0;b=b|0;var c=0;c=Dc(a,-11246,-11249,b)|0;c=Dc(a,-11253,-11256,b)|0|c;if(!((c|(Dc(a,-11260,-11263,b)|0))<<24>>24==0)){return}Ec(a,b);return}function Dc(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;h=b&65535;g=d&65535;d=b<<16>>16==d<<16>>16;do{if(d){if((f&8)==0){break}a[186992+(g-53248)|0]=f;i=0;return i|0}}while(0);i=e&65535;do{if(b<<16>>16==e<<16>>16){if((a[186992+(g-53248)|0]&8)==0){break}Bc(f);i=1;return i|0}}while(0);do{if((h|0)==(i+1|0)){if((a[186992+(g-53248)|0]&8)==0){break}Bc(f);i=1;return i|0}}while(0);if(!(d&(c[10]|0)==16777216)){i=0;return i|0}if(!((a[186992+(g-53248)|0]&8)==0)){i=0;return i|0}Bc(f&-16^-128);i=1;return i|0}function Ec(a,b){a=a|0;b=b|0;if(!((c[912]|0)!=0&a<<16>>16==-11261)){return}Bc(b<<4);return}function Fc(){return a[113217]&2|0}function Gc(){var b=0;b=a[113217]|0;if((b&4)==0){b=0;return b|0}b=(b&7)!=4|0;return b|0}function Hc(){return d[64]|0|0}function Ic(){var b=0;b=a[112928]|0;return Jc(c[9300]|0,(b&255)>>>0>31>>>0?31:b)|0}function Jc(a,b){a=a|0;b=b|0;return a>>>((b&255)>>>0)&1|0}function Kc(){var b=0;if((a[107856]|0)!=1){b=0;return b|0}b=(Ic()|0)<<24>>24==1|0;return b|0}function Lc(){var b=0;if((a[107856]|0)!=1){b=0;return b|0}b=(Ic()|0)<<24>>24==0|0;return b|0}function Mc(){var b=0,d=0;if((a[42248]|0)==0){b=3}else{if((Lc()|0)==0){b=3}else{d=735}}if((b|0)==3){d=882}c[10560]=d;c[28230]=d<<3;b=c[910]|0;if((b|0)!=0){Zc(b)}b=c[28222]|0;if((b|0)!=0){Zc(b)}d=c[10560]<<2|1;c[910]=Yc(d)|0;c[28222]=Yc(d)|0;return}function Nc(){var b=0;a[112896]=63;c[26954]=312;c[906]=19467;if((a[42248]|0)==0){b=77868;c[26966]=b;return}a[112896]=65;c[26954]=263;c[906]=16906;b=67624;c[26966]=b;return}function Oc(){var a=0,b=0,d=0,e=0,f=0,g=0;c[10558]=0;b=c[28230]|0;if((b|0)==0){g=0;return g|0}g=0;f=c[10556]|0;d=0;while(1){if((f|0)==0){f=c[10560]|0;c[10556]=f;g=Wb(c[906]|0,f)|0}e=f+d|0;if(e>>>0>b>>>0){break}d=3664+(d<<2)|0;$c(d|0,c[910]|0,f<<2)|0;Pc(g,d,c[28222]|0,f);c[10558]=e;c[10556]=0;if(e>>>0<b>>>0){f=0;d=e}else{a=8;break}}if((a|0)==8){return e|0}e=b-d|0;d=3664+(d<<2)|0;$c(d|0,c[910]|0,e<<2)|0;Pc(g,d,c[28222]|0,e);c[10556]=f-e;c[10558]=b;g=b;return g|0}function Pc(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;if((b|0)==0|(f|0)==0){return}else{b=0}do{g=d+(b<<2)|0;c[g>>2]=Xc(c[g>>2]|0,a[e+b|0]|0)|0;b=b+1|0;}while(b>>>0<f>>>0);return}function Qc(b,c){b=b|0;c=c|0;a[186992+(b-53248)|0]=c;return}function Rc(d){d=d|0;a[112928]=d;xc();_b(a[32]|0?44100:0);Nc();Wc();uc();$c(113216,42256,65536)|0;Qc(56333,-127);Qc(56334,1);Qc(56335,8);d=c[906]|0;Qc(56324,d&255);Qc(56325,d>>>8&255);if((yb()|0)!=0){Qc(53274,0);Qc(53265,27);Qc(53266,0);Qc(56590,8);Qc(56591,8)}Vc();Xa();kb();c[10554]=0;c[28220]=0;Qa();a[107800]=Tb(b[53936]|0,a[112928]|0,0,2e6)|0;Mc();Uc();return}function Sc(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;k=i;i=i+65544|0;g=k|0;j=k+65536|0;a[32]=1;b[53936]=0;b[18604]=0;b[53904]=0;a[112928]=0;a[107792]=0;c[9300]=0;a[42248]=0;h=g|0;$c(h|0,e|0,f)|0;a[107856]=(a[h]|0)==80|0;e=a[g+5|0]|0;if((e&2)==0){l=0}else{l=(d[g+119|0]|0)>>>1&1^1}a[64]=l;do{if(e<<24>>24==2){if((yb()|0)!=0){e=0;break}e=(d[g+119|0]|0)>>>3&1}else{e=0}}while(0);a[42248]=e;$c(3432,g+22|0,32)|0;$c(3496,g+54|0,32)|0;$c(3464,g+86|0,32)|0;wc(h,j,f&65535);$c(42256,113216,65536)|0;c[44688]=j;c[44689]=37200;c[44690]=107792;c[44691]=112928;c[44692]=3432;c[44693]=3496;c[44694]=3464;i=k;return 178752}function Tc(){return 3664}function Uc(){var c=0;if((a[107856]|0)==0){return}c=b[18604]|0;if((c+12288&65535)>>>0<4096>>>0){a[113217]=52;return}if((c&65535)>>>0>57343>>>0){a[113217]=53;return}if((c&65535)>>>0>40959>>>0){a[113217]=54;return}if(c<<16>>16==0){return}a[113217]=55;return}function Vc(){var c=0;do{if((yb()|0)==0){c=b[53936]|0;if((c+12288&65535)>>>0<4096>>>0){c=52;break}if((c&65535)>>>0>57343>>>0){c=53;break}c=(e[53904]|0)>>>0>40959>>>0?54:55}else{c=55}}while(0);a[113217]=c;return}function Wc(){c[10558]=0;c[10556]=0;return}function Xc(a,b){a=a|0;b=b|0;b=a-16384+((b&255)<<7)|0;if((b|0)<-32767){return-32767|0}else{return((b|0)>32767?32767:b)|0}return 0}function Yc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;do{if(a>>>0<245>>>0){if(a>>>0<11>>>0){a=16}else{a=a+11&-8}f=a>>>3;d=c[47832]|0;e=d>>>(f>>>0);if((e&3|0)!=0){h=(e&1^1)+f|0;b=h<<1;e=191368+(b<<2)|0;b=191368+(b+2<<2)|0;g=c[b>>2]|0;f=g+8|0;a=c[f>>2]|0;do{if((e|0)==(a|0)){c[47832]=d&~(1<<h)}else{if(a>>>0<(c[47836]|0)>>>0){la();return 0}d=a+12|0;if((c[d>>2]|0)==(g|0)){c[d>>2]=e;c[b>>2]=a;break}else{la();return 0}}}while(0);r=h<<3;c[g+4>>2]=r|3;r=g+(r|4)|0;c[r>>2]=c[r>>2]|1;r=f;return r|0}if(!(a>>>0>(c[47834]|0)>>>0)){break}if((e|0)!=0){i=2<<f;i=e<<f&(i|-i);i=(i&-i)-1|0;b=i>>>12&16;i=i>>>(b>>>0);h=i>>>5&8;i=i>>>(h>>>0);e=i>>>2&4;i=i>>>(e>>>0);g=i>>>1&2;i=i>>>(g>>>0);f=i>>>1&1;f=(h|b|e|g|f)+(i>>>(f>>>0))|0;i=f<<1;g=191368+(i<<2)|0;i=191368+(i+2<<2)|0;e=c[i>>2]|0;b=e+8|0;h=c[b>>2]|0;do{if((g|0)==(h|0)){c[47832]=d&~(1<<f)}else{if(h>>>0<(c[47836]|0)>>>0){la();return 0}d=h+12|0;if((c[d>>2]|0)==(e|0)){c[d>>2]=g;c[i>>2]=h;break}else{la();return 0}}}while(0);f=f<<3;d=f-a|0;c[e+4>>2]=a|3;r=e;e=r+a|0;c[r+(a|4)>>2]=d|1;c[r+f>>2]=d;f=c[47834]|0;if((f|0)!=0){a=c[47837]|0;g=f>>>3;h=g<<1;f=191368+(h<<2)|0;i=c[47832]|0;g=1<<g;do{if((i&g|0)==0){c[47832]=i|g;g=f;h=191368+(h+2<<2)|0}else{h=191368+(h+2<<2)|0;g=c[h>>2]|0;if(!(g>>>0<(c[47836]|0)>>>0)){break}la();return 0}}while(0);c[h>>2]=a;c[g+12>>2]=a;c[a+8>>2]=g;c[a+12>>2]=f}c[47834]=d;c[47837]=e;r=b;return r|0}d=c[47833]|0;if((d|0)==0){break}f=(d&-d)-1|0;q=f>>>12&16;f=f>>>(q>>>0);p=f>>>5&8;f=f>>>(p>>>0);r=f>>>2&4;f=f>>>(r>>>0);d=f>>>1&2;f=f>>>(d>>>0);e=f>>>1&1;e=c[191632+((p|q|r|d|e)+(f>>>(e>>>0))<<2)>>2]|0;f=e;d=e;e=(c[e+4>>2]&-8)-a|0;while(1){h=c[f+16>>2]|0;if((h|0)==0){h=c[f+20>>2]|0;if((h|0)==0){break}}i=(c[h+4>>2]&-8)-a|0;g=i>>>0<e>>>0;f=h;d=g?h:d;e=g?i:e}g=d;i=c[47836]|0;if(g>>>0<i>>>0){la();return 0}r=g+a|0;f=r;if(!(g>>>0<r>>>0)){la();return 0}h=c[d+24>>2]|0;j=c[d+12>>2]|0;do{if((j|0)==(d|0)){k=d+20|0;j=c[k>>2]|0;if((j|0)==0){k=d+16|0;j=c[k>>2]|0;if((j|0)==0){j=0;break}}while(1){l=j+20|0;m=c[l>>2]|0;if((m|0)!=0){j=m;k=l;continue}m=j+16|0;l=c[m>>2]|0;if((l|0)==0){break}else{j=l;k=m}}if(k>>>0<i>>>0){la();return 0}else{c[k>>2]=0;break}}else{k=c[d+8>>2]|0;if(k>>>0<i>>>0){la();return 0}l=k+12|0;if((c[l>>2]|0)!=(d|0)){la();return 0}i=j+8|0;if((c[i>>2]|0)==(d|0)){c[l>>2]=j;c[i>>2]=k;break}else{la();return 0}}}while(0);a:do{if((h|0)!=0){k=c[d+28>>2]|0;i=191632+(k<<2)|0;do{if((d|0)==(c[i>>2]|0)){c[i>>2]=j;if((j|0)!=0){break}c[47833]=c[47833]&~(1<<k);break a}else{if(h>>>0<(c[47836]|0)>>>0){la();return 0}i=h+16|0;if((c[i>>2]|0)==(d|0)){c[i>>2]=j}else{c[h+20>>2]=j}if((j|0)==0){break a}}}while(0);if(j>>>0<(c[47836]|0)>>>0){la();return 0}c[j+24>>2]=h;h=c[d+16>>2]|0;do{if((h|0)!=0){if(h>>>0<(c[47836]|0)>>>0){la();return 0}else{c[j+16>>2]=h;c[h+24>>2]=j;break}}}while(0);h=c[d+20>>2]|0;if((h|0)==0){break}if(h>>>0<(c[47836]|0)>>>0){la();return 0}else{c[j+20>>2]=h;c[h+24>>2]=j;break}}}while(0);if(e>>>0<16>>>0){r=e+a|0;c[d+4>>2]=r|3;r=g+(r+4)|0;c[r>>2]=c[r>>2]|1}else{c[d+4>>2]=a|3;c[g+(a|4)>>2]=e|1;c[g+(e+a)>>2]=e;h=c[47834]|0;if((h|0)!=0){g=c[47837]|0;k=h>>>3;i=k<<1;h=191368+(i<<2)|0;j=c[47832]|0;k=1<<k;do{if((j&k|0)==0){c[47832]=j|k;j=h;i=191368+(i+2<<2)|0}else{i=191368+(i+2<<2)|0;j=c[i>>2]|0;if(!(j>>>0<(c[47836]|0)>>>0)){break}la();return 0}}while(0);c[i>>2]=g;c[j+12>>2]=g;c[g+8>>2]=j;c[g+12>>2]=h}c[47834]=e;c[47837]=f}d=d+8|0;if((d|0)==0){break}return d|0}else{if(a>>>0>4294967231>>>0){a=-1;break}d=a+11|0;a=d&-8;e=c[47833]|0;if((e|0)==0){break}f=-a|0;d=d>>>8;do{if((d|0)==0){g=0}else{if(a>>>0>16777215>>>0){g=31;break}q=(d+1048320|0)>>>16&8;r=d<<q;p=(r+520192|0)>>>16&4;r=r<<p;g=(r+245760|0)>>>16&2;g=14-(p|q|g)+(r<<g>>>15)|0;g=a>>>((g+7|0)>>>0)&1|g<<1}}while(0);h=c[191632+(g<<2)>>2]|0;b:do{if((h|0)==0){d=0;j=0}else{if((g|0)==31){i=0}else{i=25-(g>>>1)|0}d=0;i=a<<i;j=0;while(1){l=c[h+4>>2]&-8;k=l-a|0;if(k>>>0<f>>>0){if((l|0)==(a|0)){d=h;f=k;j=h;break b}else{d=h;f=k}}k=c[h+20>>2]|0;h=c[h+16+(i>>>31<<2)>>2]|0;j=(k|0)==0|(k|0)==(h|0)?j:k;if((h|0)==0){break}else{i=i<<1}}}}while(0);if((j|0)==0&(d|0)==0){r=2<<g;e=e&(r|-r);if((e|0)==0){break}r=(e&-e)-1|0;o=r>>>12&16;r=r>>>(o>>>0);n=r>>>5&8;r=r>>>(n>>>0);p=r>>>2&4;r=r>>>(p>>>0);q=r>>>1&2;r=r>>>(q>>>0);j=r>>>1&1;j=c[191632+((n|o|p|q|j)+(r>>>(j>>>0))<<2)>>2]|0}if((j|0)!=0){while(1){g=(c[j+4>>2]&-8)-a|0;e=g>>>0<f>>>0;f=e?g:f;d=e?j:d;e=c[j+16>>2]|0;if((e|0)!=0){j=e;continue}j=c[j+20>>2]|0;if((j|0)==0){break}}}if((d|0)==0){break}if(!(f>>>0<((c[47834]|0)-a|0)>>>0)){break}e=d;j=c[47836]|0;if(e>>>0<j>>>0){la();return 0}h=e+a|0;g=h;if(!(e>>>0<h>>>0)){la();return 0}i=c[d+24>>2]|0;k=c[d+12>>2]|0;do{if((k|0)==(d|0)){l=d+20|0;k=c[l>>2]|0;if((k|0)==0){l=d+16|0;k=c[l>>2]|0;if((k|0)==0){k=0;break}}while(1){m=k+20|0;n=c[m>>2]|0;if((n|0)!=0){k=n;l=m;continue}m=k+16|0;n=c[m>>2]|0;if((n|0)==0){break}else{k=n;l=m}}if(l>>>0<j>>>0){la();return 0}else{c[l>>2]=0;break}}else{l=c[d+8>>2]|0;if(l>>>0<j>>>0){la();return 0}j=l+12|0;if((c[j>>2]|0)!=(d|0)){la();return 0}m=k+8|0;if((c[m>>2]|0)==(d|0)){c[j>>2]=k;c[m>>2]=l;break}else{la();return 0}}}while(0);c:do{if((i|0)!=0){l=c[d+28>>2]|0;j=191632+(l<<2)|0;do{if((d|0)==(c[j>>2]|0)){c[j>>2]=k;if((k|0)!=0){break}c[47833]=c[47833]&~(1<<l);break c}else{if(i>>>0<(c[47836]|0)>>>0){la();return 0}j=i+16|0;if((c[j>>2]|0)==(d|0)){c[j>>2]=k}else{c[i+20>>2]=k}if((k|0)==0){break c}}}while(0);if(k>>>0<(c[47836]|0)>>>0){la();return 0}c[k+24>>2]=i;i=c[d+16>>2]|0;do{if((i|0)!=0){if(i>>>0<(c[47836]|0)>>>0){la();return 0}else{c[k+16>>2]=i;c[i+24>>2]=k;break}}}while(0);i=c[d+20>>2]|0;if((i|0)==0){break}if(i>>>0<(c[47836]|0)>>>0){la();return 0}else{c[k+20>>2]=i;c[i+24>>2]=k;break}}}while(0);do{if(f>>>0<16>>>0){r=f+a|0;c[d+4>>2]=r|3;r=e+(r+4)|0;c[r>>2]=c[r>>2]|1}else{c[d+4>>2]=a|3;c[e+(a|4)>>2]=f|1;c[e+(f+a)>>2]=f;i=f>>>3;if(f>>>0<256>>>0){h=i<<1;f=191368+(h<<2)|0;j=c[47832]|0;i=1<<i;do{if((j&i|0)==0){c[47832]=j|i;i=f;h=191368+(h+2<<2)|0}else{h=191368+(h+2<<2)|0;i=c[h>>2]|0;if(!(i>>>0<(c[47836]|0)>>>0)){break}la();return 0}}while(0);c[h>>2]=g;c[i+12>>2]=g;c[e+(a+8)>>2]=i;c[e+(a+12)>>2]=f;break}g=f>>>8;do{if((g|0)==0){k=0}else{if(f>>>0>16777215>>>0){k=31;break}q=(g+1048320|0)>>>16&8;r=g<<q;p=(r+520192|0)>>>16&4;r=r<<p;k=(r+245760|0)>>>16&2;k=14-(p|q|k)+(r<<k>>>15)|0;k=f>>>((k+7|0)>>>0)&1|k<<1}}while(0);g=191632+(k<<2)|0;c[e+(a+28)>>2]=k;c[e+(a+20)>>2]=0;c[e+(a+16)>>2]=0;j=c[47833]|0;i=1<<k;if((j&i|0)==0){c[47833]=j|i;c[g>>2]=h;c[e+(a+24)>>2]=g;c[e+(a+12)>>2]=h;c[e+(a+8)>>2]=h;break}if((k|0)==31){i=0}else{i=25-(k>>>1)|0}i=f<<i;g=c[g>>2]|0;while(1){if((c[g+4>>2]&-8|0)==(f|0)){break}j=g+16+(i>>>31<<2)|0;k=c[j>>2]|0;if((k|0)==0){b=151;break}else{i=i<<1;g=k}}if((b|0)==151){if(j>>>0<(c[47836]|0)>>>0){la();return 0}else{c[j>>2]=h;c[e+(a+24)>>2]=g;c[e+(a+12)>>2]=h;c[e+(a+8)>>2]=h;break}}i=g+8|0;j=c[i>>2]|0;f=c[47836]|0;if(g>>>0<f>>>0){la();return 0}if(j>>>0<f>>>0){la();return 0}else{c[j+12>>2]=h;c[i>>2]=h;c[e+(a+8)>>2]=j;c[e+(a+12)>>2]=g;c[e+(a+24)>>2]=0;break}}}while(0);d=d+8|0;if((d|0)==0){break}return d|0}}while(0);d=c[47834]|0;if(!(a>>>0>d>>>0)){b=d-a|0;e=c[47837]|0;if(b>>>0>15>>>0){r=e;c[47837]=r+a;c[47834]=b;c[r+(a+4)>>2]=b|1;c[r+d>>2]=b;c[e+4>>2]=a|3}else{c[47834]=0;c[47837]=0;c[e+4>>2]=d|3;r=e+(d+4)|0;c[r>>2]=c[r>>2]|1}r=e+8|0;return r|0}d=c[47835]|0;if(a>>>0<d>>>0){p=d-a|0;c[47835]=p;r=c[47838]|0;q=r;c[47838]=q+a;c[q+(a+4)>>2]=p|1;c[r+4>>2]=a|3;r=r+8|0;return r|0}do{if((c[28296]|0)==0){d=ha(30)|0;if((d-1&d|0)==0){c[28298]=d;c[28297]=d;c[28299]=-1;c[28300]=-1;c[28301]=0;c[47943]=0;c[28296]=(ma(0)|0)&-16^1431655768;break}else{la();return 0}}}while(0);h=a+48|0;e=c[28298]|0;g=a+47|0;d=e+g|0;e=-e|0;f=d&e;if(!(f>>>0>a>>>0)){r=0;return r|0}i=c[47942]|0;do{if((i|0)!=0){q=c[47940]|0;r=q+f|0;if(r>>>0<=q>>>0|r>>>0>i>>>0){d=0}else{break}return d|0}}while(0);d:do{if((c[47943]&4|0)==0){i=c[47838]|0;e:do{if((i|0)==0){b=181}else{m=191776;while(1){l=m|0;j=c[l>>2]|0;if(!(j>>>0>i>>>0)){k=m+4|0;if((j+(c[k>>2]|0)|0)>>>0>i>>>0){break}}m=c[m+8>>2]|0;if((m|0)==0){b=181;break e}}if((m|0)==0){b=181;break}i=d-(c[47835]|0)&e;if(!(i>>>0<2147483647>>>0)){e=0;break}j=ia(i|0)|0;b=(j|0)==((c[l>>2]|0)+(c[k>>2]|0)|0);d=b?j:-1;e=b?i:0;b=190}}while(0);do{if((b|0)==181){d=ia(0)|0;if((d|0)==-1){e=0;break}i=d;j=c[28297]|0;e=j-1|0;if((e&i|0)==0){i=f}else{i=f-i+(e+i&-j)|0}j=c[47940]|0;e=j+i|0;if(!(i>>>0>a>>>0&i>>>0<2147483647>>>0)){e=0;break}k=c[47942]|0;if((k|0)!=0){if(e>>>0<=j>>>0|e>>>0>k>>>0){e=0;break}}j=ia(i|0)|0;b=(j|0)==(d|0);d=b?d:-1;e=b?i:0;b=190}}while(0);f:do{if((b|0)==190){b=-i|0;if(!((d|0)==-1)){b=201;break d}do{if((j|0)!=-1&i>>>0<2147483647>>>0&i>>>0<h>>>0){d=c[28298]|0;d=g-i+d&-d;if(!(d>>>0<2147483647>>>0)){break}if((ia(d|0)|0)==-1){ia(b|0)|0;break f}else{i=d+i|0;break}}}while(0);if(!((j|0)==-1)){e=i;d=j;b=201;break d}}}while(0);c[47943]=c[47943]|4;b=198}else{e=0;b=198}}while(0);do{if((b|0)==198){if(!(f>>>0<2147483647>>>0)){break}d=ia(f|0)|0;f=ia(0)|0;if(!((f|0)!=-1&(d|0)!=-1&d>>>0<f>>>0)){break}f=f-d|0;g=f>>>0>(a+40|0)>>>0;d=g?d:-1;if(!((d|0)==-1)){e=g?f:e;b=201}}}while(0);do{if((b|0)==201){f=(c[47940]|0)+e|0;c[47940]=f;if(f>>>0>(c[47941]|0)>>>0){c[47941]=f}f=c[47838]|0;g:do{if((f|0)==0){r=c[47836]|0;if((r|0)==0|d>>>0<r>>>0){c[47836]=d}c[47944]=d;c[47945]=e;c[47947]=0;c[47841]=c[28296];c[47840]=-1;b=0;do{r=b<<1;q=191368+(r<<2)|0;c[191368+(r+3<<2)>>2]=q;c[191368+(r+2<<2)>>2]=q;b=b+1|0;}while(b>>>0<32>>>0);b=d+8|0;if((b&7|0)==0){b=0}else{b=-b&7}r=e-40-b|0;c[47838]=d+b;c[47835]=r;c[d+(b+4)>>2]=r|1;c[d+(e-36)>>2]=40;c[47839]=c[28300]}else{g=191776;do{h=c[g>>2]|0;i=g+4|0;j=c[i>>2]|0;if((d|0)==(h+j|0)){b=213;break}g=c[g+8>>2]|0;}while((g|0)!=0);do{if((b|0)==213){if((c[g+12>>2]&8|0)!=0){break}g=f;if(!(g>>>0>=h>>>0&g>>>0<d>>>0)){break}c[i>>2]=j+e;b=(c[47835]|0)+e|0;d=f+8|0;if((d&7|0)==0){d=0}else{d=-d&7}r=b-d|0;c[47838]=g+d;c[47835]=r;c[g+(d+4)>>2]=r|1;c[g+(b+4)>>2]=40;c[47839]=c[28300];break g}}while(0);if(d>>>0<(c[47836]|0)>>>0){c[47836]=d}g=d+e|0;i=191776;do{h=i|0;if((c[h>>2]|0)==(g|0)){b=223;break}i=c[i+8>>2]|0;}while((i|0)!=0);do{if((b|0)==223){if((c[i+12>>2]&8|0)!=0){break}c[h>>2]=d;f=i+4|0;c[f>>2]=(c[f>>2]|0)+e;f=d+8|0;if((f&7|0)==0){f=0}else{f=-f&7}g=d+(e+8)|0;if((g&7|0)==0){k=0}else{k=-g&7}n=d+(k+e)|0;m=n;g=f+a|0;i=d+g|0;h=i;j=n-(d+f)-a|0;c[d+(f+4)>>2]=a|3;do{if((m|0)==(c[47838]|0)){r=(c[47835]|0)+j|0;c[47835]=r;c[47838]=h;c[d+(g+4)>>2]=r|1}else{if((m|0)==(c[47837]|0)){r=(c[47834]|0)+j|0;c[47834]=r;c[47837]=h;c[d+(g+4)>>2]=r|1;c[d+(r+g)>>2]=r;break}l=e+4|0;p=c[d+(l+k)>>2]|0;if((p&3|0)==1){a=p&-8;o=p>>>3;h:do{if(p>>>0<256>>>0){l=c[d+((k|8)+e)>>2]|0;n=c[d+(e+12+k)>>2]|0;p=191368+(o<<1<<2)|0;do{if((l|0)!=(p|0)){if(l>>>0<(c[47836]|0)>>>0){la();return 0}if((c[l+12>>2]|0)==(m|0)){break}la();return 0}}while(0);if((n|0)==(l|0)){c[47832]=c[47832]&~(1<<o);break}do{if((n|0)==(p|0)){o=n+8|0}else{if(n>>>0<(c[47836]|0)>>>0){la();return 0}o=n+8|0;if((c[o>>2]|0)==(m|0)){break}la();return 0}}while(0);c[l+12>>2]=n;c[o>>2]=l}else{m=c[d+((k|24)+e)>>2]|0;o=c[d+(e+12+k)>>2]|0;do{if((o|0)==(n|0)){q=k|16;p=d+(l+q)|0;o=c[p>>2]|0;if((o|0)==0){p=d+(q+e)|0;o=c[p>>2]|0;if((o|0)==0){o=0;break}}while(1){q=o+20|0;r=c[q>>2]|0;if((r|0)!=0){o=r;p=q;continue}q=o+16|0;r=c[q>>2]|0;if((r|0)==0){break}else{o=r;p=q}}if(p>>>0<(c[47836]|0)>>>0){la();return 0}else{c[p>>2]=0;break}}else{q=c[d+((k|8)+e)>>2]|0;if(q>>>0<(c[47836]|0)>>>0){la();return 0}r=q+12|0;if((c[r>>2]|0)!=(n|0)){la();return 0}p=o+8|0;if((c[p>>2]|0)==(n|0)){c[r>>2]=o;c[p>>2]=q;break}else{la();return 0}}}while(0);if((m|0)==0){break}p=c[d+(e+28+k)>>2]|0;q=191632+(p<<2)|0;do{if((n|0)==(c[q>>2]|0)){c[q>>2]=o;if((o|0)!=0){break}c[47833]=c[47833]&~(1<<p);break h}else{if(m>>>0<(c[47836]|0)>>>0){la();return 0}p=m+16|0;if((c[p>>2]|0)==(n|0)){c[p>>2]=o}else{c[m+20>>2]=o}if((o|0)==0){break h}}}while(0);if(o>>>0<(c[47836]|0)>>>0){la();return 0}c[o+24>>2]=m;n=k|16;m=c[d+(n+e)>>2]|0;do{if((m|0)!=0){if(m>>>0<(c[47836]|0)>>>0){la();return 0}else{c[o+16>>2]=m;c[m+24>>2]=o;break}}}while(0);l=c[d+(l+n)>>2]|0;if((l|0)==0){break}if(l>>>0<(c[47836]|0)>>>0){la();return 0}else{c[o+20>>2]=l;c[l+24>>2]=o;break}}}while(0);m=d+((a|k)+e)|0;j=a+j|0}a=m+4|0;c[a>>2]=c[a>>2]&-2;c[d+(g+4)>>2]=j|1;c[d+(j+g)>>2]=j;a=j>>>3;if(j>>>0<256>>>0){e=a<<1;b=191368+(e<<2)|0;i=c[47832]|0;a=1<<a;do{if((i&a|0)==0){c[47832]=i|a;a=b;e=191368+(e+2<<2)|0}else{e=191368+(e+2<<2)|0;a=c[e>>2]|0;if(!(a>>>0<(c[47836]|0)>>>0)){break}la();return 0}}while(0);c[e>>2]=h;c[a+12>>2]=h;c[d+(g+8)>>2]=a;c[d+(g+12)>>2]=b;break}a=j>>>8;do{if((a|0)==0){e=0}else{if(j>>>0>16777215>>>0){e=31;break}q=(a+1048320|0)>>>16&8;r=a<<q;p=(r+520192|0)>>>16&4;r=r<<p;e=(r+245760|0)>>>16&2;e=14-(p|q|e)+(r<<e>>>15)|0;e=j>>>((e+7|0)>>>0)&1|e<<1}}while(0);a=191632+(e<<2)|0;c[d+(g+28)>>2]=e;c[d+(g+20)>>2]=0;c[d+(g+16)>>2]=0;h=c[47833]|0;k=1<<e;if((h&k|0)==0){c[47833]=h|k;c[a>>2]=i;c[d+(g+24)>>2]=a;c[d+(g+12)>>2]=i;c[d+(g+8)>>2]=i;break}if((e|0)==31){e=0}else{e=25-(e>>>1)|0}e=j<<e;a=c[a>>2]|0;while(1){if((c[a+4>>2]&-8|0)==(j|0)){break}k=a+16+(e>>>31<<2)|0;h=c[k>>2]|0;if((h|0)==0){b=296;break}else{e=e<<1;a=h}}if((b|0)==296){if(k>>>0<(c[47836]|0)>>>0){la();return 0}else{c[k>>2]=i;c[d+(g+24)>>2]=a;c[d+(g+12)>>2]=i;c[d+(g+8)>>2]=i;break}}b=a+8|0;e=c[b>>2]|0;h=c[47836]|0;if(a>>>0<h>>>0){la();return 0}if(e>>>0<h>>>0){la();return 0}else{c[e+12>>2]=i;c[b>>2]=i;c[d+(g+8)>>2]=e;c[d+(g+12)>>2]=a;c[d+(g+24)>>2]=0;break}}}while(0);r=d+(f|8)|0;return r|0}}while(0);g=f;k=191776;while(1){j=c[k>>2]|0;if(!(j>>>0>g>>>0)){i=c[k+4>>2]|0;h=j+i|0;if(h>>>0>g>>>0){break}}k=c[k+8>>2]|0}k=j+(i-39)|0;if((k&7|0)==0){k=0}else{k=-k&7}i=j+(i-47+k)|0;i=i>>>0<(f+16|0)>>>0?g:i;j=i+8|0;k=d+8|0;if((k&7|0)==0){k=0}else{k=-k&7}r=e-40-k|0;c[47838]=d+k;c[47835]=r;c[d+(k+4)>>2]=r|1;c[d+(e-36)>>2]=40;c[47839]=c[28300];c[i+4>>2]=27;c[j>>2]=c[47944];c[j+4>>2]=c[47945];c[j+8>>2]=c[47946];c[j+12>>2]=c[47947];c[47944]=d;c[47945]=e;c[47947]=0;c[47946]=j;d=i+28|0;c[d>>2]=7;if((i+32|0)>>>0<h>>>0){while(1){e=d+4|0;c[e>>2]=7;if((d+8|0)>>>0<h>>>0){d=e}else{break}}}if((i|0)==(g|0)){break}e=i-f|0;r=g+(e+4)|0;c[r>>2]=c[r>>2]&-2;c[f+4>>2]=e|1;c[g+e>>2]=e;g=e>>>3;if(e>>>0<256>>>0){d=g<<1;b=191368+(d<<2)|0;e=c[47832]|0;g=1<<g;do{if((e&g|0)==0){c[47832]=e|g;e=b;d=191368+(d+2<<2)|0}else{d=191368+(d+2<<2)|0;e=c[d>>2]|0;if(!(e>>>0<(c[47836]|0)>>>0)){break}la();return 0}}while(0);c[d>>2]=f;c[e+12>>2]=f;c[f+8>>2]=e;c[f+12>>2]=b;break}d=f;g=e>>>8;do{if((g|0)==0){i=0}else{if(e>>>0>16777215>>>0){i=31;break}q=(g+1048320|0)>>>16&8;r=g<<q;p=(r+520192|0)>>>16&4;r=r<<p;i=(r+245760|0)>>>16&2;i=14-(p|q|i)+(r<<i>>>15)|0;i=e>>>((i+7|0)>>>0)&1|i<<1}}while(0);g=191632+(i<<2)|0;c[f+28>>2]=i;c[f+20>>2]=0;c[f+16>>2]=0;j=c[47833]|0;h=1<<i;if((j&h|0)==0){c[47833]=j|h;c[g>>2]=d;c[f+24>>2]=g;c[f+12>>2]=f;c[f+8>>2]=f;break}if((i|0)==31){h=0}else{h=25-(i>>>1)|0}h=e<<h;g=c[g>>2]|0;while(1){if((c[g+4>>2]&-8|0)==(e|0)){break}j=g+16+(h>>>31<<2)|0;i=c[j>>2]|0;if((i|0)==0){b=331;break}else{h=h<<1;g=i}}if((b|0)==331){if(j>>>0<(c[47836]|0)>>>0){la();return 0}else{c[j>>2]=d;c[f+24>>2]=g;c[f+12>>2]=f;c[f+8>>2]=f;break}}h=g+8|0;e=c[h>>2]|0;b=c[47836]|0;if(g>>>0<b>>>0){la();return 0}if(e>>>0<b>>>0){la();return 0}else{c[e+12>>2]=d;c[h>>2]=d;c[f+8>>2]=e;c[f+12>>2]=g;c[f+24>>2]=0;break}}}while(0);b=c[47835]|0;if(!(b>>>0>a>>>0)){break}p=b-a|0;c[47835]=p;r=c[47838]|0;q=r;c[47838]=q+a;c[q+(a+4)>>2]=p|1;c[r+4>>2]=a|3;r=r+8|0;return r|0}}while(0);c[(ka()|0)>>2]=12;r=0;return r|0}function Zc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;if((a|0)==0){return}p=a-8|0;s=p;q=c[47836]|0;if(p>>>0<q>>>0){la()}n=c[a-4>>2]|0;m=n&3;if((m|0)==1){la()}h=n&-8;k=a+(h-8)|0;j=k;a:do{if((n&1|0)==0){u=c[p>>2]|0;if((m|0)==0){return}p=-8-u|0;s=a+p|0;m=s;n=u+h|0;if(s>>>0<q>>>0){la()}if((m|0)==(c[47837]|0)){b=a+(h-4)|0;if((c[b>>2]&3|0)!=3){b=m;l=n;break}c[47834]=n;c[b>>2]=c[b>>2]&-2;c[a+(p+4)>>2]=n|1;c[k>>2]=n;return}t=u>>>3;if(u>>>0<256>>>0){b=c[a+(p+8)>>2]|0;l=c[a+(p+12)>>2]|0;o=191368+(t<<1<<2)|0;do{if((b|0)!=(o|0)){if(b>>>0<q>>>0){la()}if((c[b+12>>2]|0)==(m|0)){break}la()}}while(0);if((l|0)==(b|0)){c[47832]=c[47832]&~(1<<t);b=m;l=n;break}do{if((l|0)==(o|0)){r=l+8|0}else{if(l>>>0<q>>>0){la()}o=l+8|0;if((c[o>>2]|0)==(m|0)){r=o;break}la()}}while(0);c[b+12>>2]=l;c[r>>2]=b;b=m;l=n;break}r=c[a+(p+24)>>2]|0;u=c[a+(p+12)>>2]|0;do{if((u|0)==(s|0)){u=a+(p+20)|0;t=c[u>>2]|0;if((t|0)==0){u=a+(p+16)|0;t=c[u>>2]|0;if((t|0)==0){o=0;break}}while(1){w=t+20|0;v=c[w>>2]|0;if((v|0)!=0){t=v;u=w;continue}v=t+16|0;w=c[v>>2]|0;if((w|0)==0){break}else{t=w;u=v}}if(u>>>0<q>>>0){la()}else{c[u>>2]=0;o=t;break}}else{t=c[a+(p+8)>>2]|0;if(t>>>0<q>>>0){la()}q=t+12|0;if((c[q>>2]|0)!=(s|0)){la()}v=u+8|0;if((c[v>>2]|0)==(s|0)){c[q>>2]=u;c[v>>2]=t;o=u;break}else{la()}}}while(0);if((r|0)==0){b=m;l=n;break}q=c[a+(p+28)>>2]|0;t=191632+(q<<2)|0;do{if((s|0)==(c[t>>2]|0)){c[t>>2]=o;if((o|0)!=0){break}c[47833]=c[47833]&~(1<<q);b=m;l=n;break a}else{if(r>>>0<(c[47836]|0)>>>0){la()}q=r+16|0;if((c[q>>2]|0)==(s|0)){c[q>>2]=o}else{c[r+20>>2]=o}if((o|0)==0){b=m;l=n;break a}}}while(0);if(o>>>0<(c[47836]|0)>>>0){la()}c[o+24>>2]=r;q=c[a+(p+16)>>2]|0;do{if((q|0)!=0){if(q>>>0<(c[47836]|0)>>>0){la()}else{c[o+16>>2]=q;c[q+24>>2]=o;break}}}while(0);p=c[a+(p+20)>>2]|0;if((p|0)==0){b=m;l=n;break}if(p>>>0<(c[47836]|0)>>>0){la()}else{c[o+20>>2]=p;c[p+24>>2]=o;b=m;l=n;break}}else{b=s;l=h}}while(0);m=b;if(!(m>>>0<k>>>0)){la()}n=a+(h-4)|0;o=c[n>>2]|0;if((o&1|0)==0){la()}do{if((o&2|0)==0){if((j|0)==(c[47838]|0)){w=(c[47835]|0)+l|0;c[47835]=w;c[47838]=b;c[b+4>>2]=w|1;if((b|0)!=(c[47837]|0)){return}c[47837]=0;c[47834]=0;return}if((j|0)==(c[47837]|0)){w=(c[47834]|0)+l|0;c[47834]=w;c[47837]=b;c[b+4>>2]=w|1;c[m+w>>2]=w;return}l=(o&-8)+l|0;n=o>>>3;b:do{if(o>>>0<256>>>0){g=c[a+h>>2]|0;h=c[a+(h|4)>>2]|0;a=191368+(n<<1<<2)|0;do{if((g|0)!=(a|0)){if(g>>>0<(c[47836]|0)>>>0){la()}if((c[g+12>>2]|0)==(j|0)){break}la()}}while(0);if((h|0)==(g|0)){c[47832]=c[47832]&~(1<<n);break}do{if((h|0)==(a|0)){i=h+8|0}else{if(h>>>0<(c[47836]|0)>>>0){la()}a=h+8|0;if((c[a>>2]|0)==(j|0)){i=a;break}la()}}while(0);c[g+12>>2]=h;c[i>>2]=g}else{i=c[a+(h+16)>>2]|0;n=c[a+(h|4)>>2]|0;do{if((n|0)==(k|0)){n=a+(h+12)|0;j=c[n>>2]|0;if((j|0)==0){n=a+(h+8)|0;j=c[n>>2]|0;if((j|0)==0){g=0;break}}while(1){p=j+20|0;o=c[p>>2]|0;if((o|0)!=0){j=o;n=p;continue}o=j+16|0;p=c[o>>2]|0;if((p|0)==0){break}else{j=p;n=o}}if(n>>>0<(c[47836]|0)>>>0){la()}else{c[n>>2]=0;g=j;break}}else{o=c[a+h>>2]|0;if(o>>>0<(c[47836]|0)>>>0){la()}p=o+12|0;if((c[p>>2]|0)!=(k|0)){la()}j=n+8|0;if((c[j>>2]|0)==(k|0)){c[p>>2]=n;c[j>>2]=o;g=n;break}else{la()}}}while(0);if((i|0)==0){break}n=c[a+(h+20)>>2]|0;j=191632+(n<<2)|0;do{if((k|0)==(c[j>>2]|0)){c[j>>2]=g;if((g|0)!=0){break}c[47833]=c[47833]&~(1<<n);break b}else{if(i>>>0<(c[47836]|0)>>>0){la()}j=i+16|0;if((c[j>>2]|0)==(k|0)){c[j>>2]=g}else{c[i+20>>2]=g}if((g|0)==0){break b}}}while(0);if(g>>>0<(c[47836]|0)>>>0){la()}c[g+24>>2]=i;i=c[a+(h+8)>>2]|0;do{if((i|0)!=0){if(i>>>0<(c[47836]|0)>>>0){la()}else{c[g+16>>2]=i;c[i+24>>2]=g;break}}}while(0);h=c[a+(h+12)>>2]|0;if((h|0)==0){break}if(h>>>0<(c[47836]|0)>>>0){la()}else{c[g+20>>2]=h;c[h+24>>2]=g;break}}}while(0);c[b+4>>2]=l|1;c[m+l>>2]=l;if((b|0)!=(c[47837]|0)){break}c[47834]=l;return}else{c[n>>2]=o&-2;c[b+4>>2]=l|1;c[m+l>>2]=l}}while(0);g=l>>>3;if(l>>>0<256>>>0){a=g<<1;d=191368+(a<<2)|0;h=c[47832]|0;g=1<<g;do{if((h&g|0)==0){c[47832]=h|g;f=d;e=191368+(a+2<<2)|0}else{h=191368+(a+2<<2)|0;g=c[h>>2]|0;if(!(g>>>0<(c[47836]|0)>>>0)){f=g;e=h;break}la()}}while(0);c[e>>2]=b;c[f+12>>2]=b;c[b+8>>2]=f;c[b+12>>2]=d;return}e=b;f=l>>>8;do{if((f|0)==0){a=0}else{if(l>>>0>16777215>>>0){a=31;break}v=(f+1048320|0)>>>16&8;w=f<<v;u=(w+520192|0)>>>16&4;w=w<<u;a=(w+245760|0)>>>16&2;a=14-(u|v|a)+(w<<a>>>15)|0;a=l>>>((a+7|0)>>>0)&1|a<<1}}while(0);f=191632+(a<<2)|0;c[b+28>>2]=a;c[b+20>>2]=0;c[b+16>>2]=0;h=c[47833]|0;g=1<<a;do{if((h&g|0)==0){c[47833]=h|g;c[f>>2]=e;c[b+24>>2]=f;c[b+12>>2]=b;c[b+8>>2]=b}else{if((a|0)==31){g=0}else{g=25-(a>>>1)|0}g=l<<g;f=c[f>>2]|0;while(1){if((c[f+4>>2]&-8|0)==(l|0)){break}h=f+16+(g>>>31<<2)|0;a=c[h>>2]|0;if((a|0)==0){d=129;break}else{g=g<<1;f=a}}if((d|0)==129){if(h>>>0<(c[47836]|0)>>>0){la()}else{c[h>>2]=e;c[b+24>>2]=f;c[b+12>>2]=b;c[b+8>>2]=b;break}}h=f+8|0;g=c[h>>2]|0;d=c[47836]|0;if(f>>>0<d>>>0){la()}if(g>>>0<d>>>0){la()}else{c[g+12>>2]=e;c[h>>2]=e;c[b+8>>2]=g;c[b+12>>2]=f;c[b+24>>2]=0;break}}}while(0);w=(c[47840]|0)-1|0;c[47840]=w;if((w|0)==0){b=191784}else{return}while(1){b=c[b>>2]|0;if((b|0)==0){break}else{b=b+8|0}}c[47840]=-1;return}function _c(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0;e=5;while(1){f=a[b]|0;g=a[c]|0;if(!(f<<24>>24==g<<24>>24)){break}e=e-1|0;if((e|0)==0){b=0;d=5;break}else{b=b+1|0;c=c+1|0}}if((d|0)==5){return b|0}g=(f&255)-(g&255)|0;return g|0}function $c(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return na(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if((e|0)==0)return f|0;a[b]=a[d]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b]=a[d]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function ad(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;if((e|0)>=20){d=d&255;i=b&3;h=d|d<<8|d<<16|d<<24;g=f&~3;if(i){i=b+4-i|0;while((b|0)<(i|0)){a[b]=d;b=b+1|0}}while((b|0)<(g|0)){c[b>>2]=h;b=b+4|0}}while((b|0)<(f|0)){a[b]=d;b=b+1|0}return b-e|0}function bd(b){b=b|0;var c=0;c=b;while(a[c]|0){c=c+1|0}return c-b|0}function cd(a,b){a=a|0;b=b|0;return qa[a&1](b|0)|0}function dd(a){a=a|0;ra[a&1]()}function ed(a,b,c){a=a|0;b=b|0;c=c|0;return sa[a&1](b|0,c|0)|0}function fd(a,b){a=a|0;b=b|0;ta[a&1](b|0)}function gd(a){a=a|0;_(0);return 0}function hd(){_(1)}function id(a,b){a=a|0;b=b|0;_(2);return 0}function jd(a){a=a|0;_(3)}
// EMSCRIPTEN_END_FUNCS
var qa=[gd,gd];var ra=[hd,hd];var sa=[id,id];var ta=[jd,jd];return{_computeAudioSamples:Oc,_strlen:bd,_free:Zc,_loadSidFile:Sc,_memset:ad,_playTune:Rc,_malloc:Yc,_memcpy:$c,_getSoundBuffer:Tc,runPostSets:Ka,stackAlloc:ua,stackSave:va,stackRestore:wa,setThrew:xa,setTempRet0:Aa,setTempRet1:Ba,setTempRet2:Ca,setTempRet3:Da,setTempRet4:Ea,setTempRet5:Fa,setTempRet6:Ga,setTempRet7:Ha,setTempRet8:Ia,setTempRet9:Ja,dynCall_ii:cd,dynCall_v:dd,dynCall_iii:ed,dynCall_vi:fd}
// EMSCRIPTEN_END_ASM
})({Math:Math,Int8Array:Int8Array,Int16Array:Int16Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Uint16Array:Uint16Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array},{abort:y,assert:x,asmPrintInt:function(a,b){n.print("int "+a+","+b)},asmPrintFloat:function(a,b){n.print("float "+a+","+b)},min:ra,invoke_ii:function(a,b){try{return n.dynCall_ii(a,b)}catch(c){"number"!==typeof c&&"longjmp"!==c&&e(c),$.setThrew(1,0)}},invoke_v:function(a){try{n.dynCall_v(a)}catch(b){"number"!==
typeof b&&"longjmp"!==b&&e(b),$.setThrew(1,0)}},invoke_iii:function(a,b,c){try{return n.dynCall_iii(a,b,c)}catch(d){"number"!==typeof d&&"longjmp"!==d&&e(d),$.setThrew(1,0)}},invoke_vi:function(a,b){try{n.dynCall_vi(a,b)}catch(c){"number"!==typeof c&&"longjmp"!==c&&e(c),$.setThrew(1,0)}},_sysconf:function(a){switch(a){case 30:return 4096;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 79:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;
case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;
case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1E3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return 1}Za(S.C);return-1},_sbrk:$a,___setErrNo:Za,___errno_location:function(){return Ya},
_abort:function(){n.abort()},_time:function(a){var b=Math.floor(Date.now()/1E3);a&&(J[a>>2]=b);return b},_emscripten_memcpy_big:function(a,b,c){N.set(N.subarray(b,b+c),a);return a},_fflush:m(),STACKTOP:r,STACK_MAX:Ea,tempDoublePtr:Va,ABORT:ka,NaN:NaN,Infinity:Infinity},P);n._computeAudioSamples=$._computeAudioSamples;var ab=n._strlen=$._strlen;n._free=$._free;n._loadSidFile=$._loadSidFile;var Xa=n._memset=$._memset;n._playTune=$._playTune;var xa=n._malloc=$._malloc,Wa=n._memcpy=$._memcpy;
n._getSoundBuffer=$._getSoundBuffer;var Ua=n.runPostSets=$.runPostSets;n.dynCall_ii=$.dynCall_ii;n.dynCall_v=$.dynCall_v;n.dynCall_iii=$.dynCall_iii;n.dynCall_vi=$.dynCall_vi;w.ya=function(a){return $.stackAlloc(a)};w.Xa=function(){return $.stackSave()};w.Wa=function(a){$.stackRestore(a)};function kc(a){this.name="ExitStatus";this.message="Program terminated with exit("+a+")";this.status=a}kc.prototype=Error();var lc,mc=k,Ra=function nc(){!n.calledRun&&oc&&pc();n.calledRun||(Ra=nc)};
n.callMain=n.Td=function(a){function b(){for(var a=0;3>a;a++)d.push(0)}x(0==R,"cannot call main when async dependencies remain! (listen on __ATMAIN__)");x(0==Ha.length,"cannot call main when preRun functions remain to be called");a=a||[];ca&&mc!==k&&n.N("preload time: "+(Date.now()-mc)+" ms");Ma||(Ma=j,Q(Ia));var c=a.length+1,d=[M(G("/bin/this.program"),"i8",0)];b();for(var f=0;f<c-1;f+=1)d.push(M(G(a[f]),"i8",0)),b();d.push(0);d=M(d,"i32",0);lc=r;try{var g=n._main(c,d,0);n.noExitRuntime||qc(g)}catch(h){h instanceof
kc||("SimulateInfiniteLoop"==h?n.noExitRuntime=j:(h&&("object"===typeof h&&h.stack)&&n.N("exception thrown: "+[h,h.stack]),e(h)))}finally{}};
function pc(a){function b(){if(!n.calledRun){n.calledRun=j;Ma||(Ma=j,Q(Ia));Q(Ja);n._main&&oc&&n.callMain(a);if(n.postRun)for("function"==typeof n.postRun&&(n.postRun=[n.postRun]);n.postRun.length;)Pa(n.postRun.shift());Q(La)}}a=a||n.arguments;mc===k&&(mc=Date.now());if(0<R)n.N("run() called, but dependencies remain, so not running");else{if(n.preRun)for("function"==typeof n.preRun&&(n.preRun=[n.preRun]);n.preRun.length;)Na(n.preRun.shift());Q(Ha);!(0<R)&&!n.calledRun&&(n.setStatus?(n.setStatus("Running..."),
setTimeout(function(){setTimeout(function(){n.setStatus("")},1);ka||b()},1)):b())}}n.run=n.se=pc;function qc(a){ka=j;r=lc;Q(Ka);e(new kc(a))}n.exit=n.Xd=qc;function y(a){a&&(n.print(a),n.N(a));ka=j;e("abort() at "+za())}n.abort=n.abort=y;if(n.preInit)for("function"==typeof n.preInit&&(n.preInit=[n.preInit]);0<n.preInit.length;)n.preInit.pop()();var oc=j;n.noInitialRun&&(oc=l);pc();
const SAMPLES_PER_BUFFER = 8192;	// allowed: buffer sizes: 256, 512, 1024, 2048, 4096, 8192, 16384
var fetchSamples= function(e) {	// it seems that it is necessary to keep this explicit reference to the event-handler	// in order to pervent the dumbshit Chrome GC from detroying it eventually	var f= window.player['generateSamples'].bind(window.player); // need to re-bind the instance.. after all this	// joke language has no real concept of OO	f(e);
}
SamplePlayer = function(onEnd) {	this.onEnd= onEnd;	try {	window.AudioContext = window.AudioContext||window.webkitAudioContext;	this.sampleRate = new AudioContext().sampleRate;	} catch(e) {	alert('Web Audio API is not supported in this browser (get Chrome 18 or Firefox 26)');	}	this.playSpeed;	this.maxSubsong;	this.actualSubsong;	this.songName;	this.songAuthor;	this.songReleased;	this.sourceBuffer;	this.sourceBuffer;	// NTSC: 735*8 PAL: 882*8	this.resampleBuffer= new Float32Array(882*8 *this.sampleRate/44100);	this.numberOfSamplesRendered= 0;	this.numberOfSamplesToRender= 0;	this.sourceBufferIdx=0;	this.isPaused= false;	this.currentTimeout= -1;	this.newSampleRate= -1;	window.player= this;
};
SamplePlayer.prototype = {	getDefaultSampleRate: function() {	return new AudioContext().sampleRate;	},	setSampleRate: function(s) {	this.newSampleRate= s;	},	playSong: function(data, track, timeout) {	this.isPaused= true;	this.loadData(data);	this.selectSong(track<0?this.actualSubsong: track);	this.currentTimeout= timeout;	this.currentPlaytime= 0;	this.isPaused= 0;	},	setPauseMode: function (pauseOn) {	this.isPaused= pauseOn;	},	createScriptProcessor: function(audioCtx) {	var scriptNode = audioCtx.createScriptProcessor(SAMPLES_PER_BUFFER, 0, 1);	scriptNode.onaudioprocess = fetchSamples;	return scriptNode;	},	loadData: function(arrayBuffer) { if (arrayBuffer) {	var byteArray = new Uint8Array(arrayBuffer);	var buf = Module._malloc(byteArray.length);	Module.HEAPU8.set(byteArray, buf);	var ret = Module.ccall('loadSidFile', 'number', ['number', 'number'], [buf, byteArray.length]);	Module._free(buf);	var array = Module.HEAP32.subarray(ret>>2, (ret>>2)+7);	var loadAddr= Module.HEAP32[((array[0])>>2)]; // i32	this.playSpeed= Module.HEAP32[((array[1])>>2)]; // i32	this.maxSubsong= Module.HEAP8[(array[2])]; // i8	this.actualSubsong= Module.HEAP8[(array[3])]; // i8	this.songName= Module.Pointer_stringify(array[4]);	this.songAuthor= Module.Pointer_stringify(array[5]);	this.songReleased= Module.Pointer_stringify(array[6]);	this.sourceBuffer= Module.ccall('getSoundBuffer', 'number'); }	},	selectSong: function(id) {	Module.ccall('playTune', 'number', ['number'], [id]);	},	getResampledAudio: function(len) {	var resampleLen= Math.round(len *this.sampleRate/44100);	if (resampleLen > this.resampleBuffer.length) this.resampleBuffer= new Float32Array(resampleLen);	// Bresenham algorithm based resampling	var x0= 0;	var y0= 0;	var x1= resampleLen;	var y1= len;	var dx = Math.abs(x1-x0), sx = x0<x1 ? 1 : -1;	var dy = -Math.abs(y1-y0), sy = y0<y1 ? 1 : -1;	var err = dx+dy, e2;	var srcBufI32= this.sourceBuffer>>2;	for(;;){	this.resampleBuffer[x0]= Module.HEAP32[srcBufI32+y0]/(0x8000);	if (x0>=x1 && y0>=y1) break;	e2 = 2*err;	if (e2 > dy) { err += dy; x0 += sx; }	if (e2 < dx) { err += dx; y0 += sy; }	}	return resampleLen;	},	resetSampleRate: function() {	if (this.newSampleRate > 0) {	this.sampleRate= this.newSampleRate;	var s= 882*8 *this.sampleRate/44100;	if (s > this.resampleBuffer.length)	this.resampleBuffer= new Float32Array(s);	this.numberOfSamplesRendered= 0;	this.numberOfSamplesToRender= 0;	this.sourceBufferIdx=0;	this.newSampleRate= -1;	}	},	generateSamples: function(event) {	this.resetSampleRate();	// perform here to avoid "concurrency" issues	var output = event.outputBuffer.getChannelData(0);	if (this.isPaused) {	var i;	for (i= 0; i<output.length; i++) {	output[i]= 0;	}	} else {	var outSize= output.length;	this.numberOfSamplesRendered = 0;	while (this.numberOfSamplesRendered < outSize)	{	if (this.numberOfSamplesToRender == 0) {	// tinyrid backend is designed for fixed 44100 frequency so we may need to resample..	var len = Module.ccall('computeAudioSamples', 'number');	this.numberOfSamplesToRender = this.getResampledAudio(len);	this.sourceBufferIdx=0;	this.currentPlaytime+= len;	if ((this.currentTimeout>0) && this.currentPlaytime/44100 > this.currentTimeout) {	this.isPaused= true;	if (this.onEnd) this.onEnd();	break;	}	}	if (this.numberOfSamplesRendered + this.numberOfSamplesToRender > outSize) {	var availableSpace = outSize-this.numberOfSamplesRendered;	var i;	for (i= 0; i<availableSpace; i++) {	output[i+this.numberOfSamplesRendered]= this.resampleBuffer[this.sourceBufferIdx++];	}	this.numberOfSamplesToRender -= availableSpace;	this.numberOfSamplesRendered = outSize;	} else {	var i;	for (i= 0; i<this.numberOfSamplesToRender; i++) {	output[i+this.numberOfSamplesRendered]= this.resampleBuffer[this.sourceBufferIdx++];	}	this.numberOfSamplesRendered += this.numberOfSamplesToRender;	this.numberOfSamplesToRender = 0;	}	}	}	}
};
var player= new SamplePlayer(onEnd);
function onEnd() {	audio.playNextSong();
}
// --------------------- WebAudio setup -----------------------------------
Audio = function(onUpdate) {	this.audioCtx;	this.bufferSource;	this.gainNode;	this.analyzerNode;	this.current=-1;	this.onUpdate= onUpdate;
};
Audio.prototype = {	initialAudioSetup: function() {	if (typeof this.bufferSource != 'undefined') {	this.bufferSource.stop(0);	} else {	this.setupAudioNodes();	}	},	setupAudioNodes: function() {	if (typeof this.audioCtx == 'undefined') {	try {	window.AudioContext = window.AudioContext||window.webkitAudioContext;	this.audioCtx = new AudioContext();	} catch(e) {	alert('Web Audio API is not supported in this browser (get Chrome 18 or Firefox 26)');	}	this.analyzerNode = this.audioCtx.createAnalyser();	var scriptNode = player.createScriptProcessor(this.audioCtx);	this.gainNode = this.audioCtx.createGain();	scriptNode.connect(this.gainNode);	this.gainNode.connect(this.analyzerNode);	this.analyzerNode.connect(this.audioCtx.destination);	}	},	playNextSong: function() {	this.playSong();	},	playSongFile: function(file, track, timeout) {	var reader = new FileReader();	reader.onload = function() {	this.playSongBinary(new Uint8Array(reader.result), track, timeout);	}.bind(this);	reader.readAsArrayBuffer(file);	},	playSongBinary: function(data, track, timeout) {	player.playSong(data, track, timeout);	this.initialAudioSetup();	this.onUpdate();	this.startMusicPlayback();	},	playSong: function() {	var track= -1;	var timeout= -1;	this.playSongBinary(musicFile, track, timeout);	},	startMusicPlayback: function() {	player.setPauseMode(false);	if (typeof this.bufferSource === 'undefined') {	this.bufferSource = this.audioCtx.createBufferSource();	if (!this.bufferSource.start) { this.bufferSource.start = this.bufferSource.noteOn; this.bufferSource.stop = this.bufferSource.noteOff;	}	this.bufferSource.start(0);	}	},
};
// ----------------------- setup some visuals ----------------------------
Graphix = function(audio) {	this.audio= audio;	this.WIDTH= 800;	this.HEIGHT= 200;	this.ready= false;	this.canvasSpectrum = document.getElementById('spectrumCanvas');	this.ctxSpectrum = this.canvasSpectrum.getContext('2d');	this.canvasSpectrum.width = this.WIDTH;	var canvas2 = document.getElementById('logoCanvas');	this.ctxLegend = canvas2.getContext('2d');	this.mozReflectSpectrum = document.getElementById('moz-reflect-spectrum');	this.mozReflectLogo = document.getElementById('moz-reflect-logo');	if (!window.webkitAudioContext) {	// hack to get rid of Firefox specific pseudo elements used to sim webkit-box-reflect	var e = document.getElementById("moz-reflect-logo");	e.className += " enableMozReflection";	var e2 = document.getElementById("moz-reflect-spectrum");	e2.className += " enableMozReflection";	}
};
Graphix.prototype = {	reqAnimationFrame: function() {	window.requestAnimationFrame(this.redrawSpectrum.bind(this));	},	redrawSpectrum: function() {	this.reqAnimationFrame();	var freqByteData = new Uint8Array(this.audio.analyzerNode.frequencyBinCount);	this.audio.analyzerNode.getByteFrequencyData(freqByteData);	var SPACER_WIDTH = 10;	var BAR_WIDTH = 5;	var OFFSET = 100;	var patternHeight= 32;	var patternWidth= 3;	var numBars = Math.round(this.WIDTH / SPACER_WIDTH);	this.ctxSpectrum.clearRect(0, 0, this.WIDTH, this.HEIGHT);	this.ctxSpectrum.fillStyle = '#fe5139';	this.ctxSpectrum.lineCap = 'round';	if (colorImg) { if (!this.ready) {	this.ready= true;	var e = document.getElementById("staticScreen");	e.className += " ready";	e = document.getElementById("controls");	e.className += " ready";	}	for (var i = 0; i < numBars; ++i) {	var scale= freqByteData[i + OFFSET]/0xff;	var magnitude = scale*this.HEIGHT;	var x=Math.round(i/numBars*patternWidth);	this.ctxSpectrum.drawImage(colorImg,	0,0,	// sx, sy	patternWidth, patternHeight,	// swidth, sheight	// position clipped image	i * SPACER_WIDTH, this.HEIGHT - magnitude,	// x, y	BAR_WIDTH, magnitude);	// width, height	this.mozReflectSpectrum.style.visibility = "hidden";	this.mozReflectSpectrum.style.visibility = "visible";	}	}	},	text: function(ctx, text, x, y) {	ctx.strokeText(text, x, y);	ctx.fillText(text, x, y);	},	redrawSongInfo: function() {	this.reqAnimationFrame();	this.ctxLegend.clearRect(0, 0, 800, 300);	this.ctxLegend.textBaseline = "middle";	this.ctxLegend.fillStyle = '#000';	this.ctxLegend.strokeStyle = "#FFFFFF";	this.ctxLegend.font = '90px serif bold';	this.text(this.ctxLegend, "Tiny'R'Sid", 20, 70);	this.ctxLegend.font = '25px sans-serif';	this.text(this.ctxLegend, "c64 music nostalgia", 20, 125);	this.ctxLegend.fillStyle = '#888';	this.ctxLegend.font = '25px sans-serif';	this.ctxLegend.textBaseline = 'bottom';	this.text(this.ctxLegend, player.songName, 20, 190);	this.text(this.ctxLegend, player.songAuthor, 20, 230);	this.text(this.ctxLegend, player.songReleased, 20, 270);	},
};
function updateGUI() {	gfx.reqAnimationFrame();	gfx.redrawSongInfo();
}
// ----------------------- get the party going --------------------------
function init() {	audio= new Audio(updateGUI);	gfx= new Graphix(audio);	document.getElementById("play").onclick = function(e){	player.setPauseMode(false);	};	document.getElementById("pause").onclick = function(e){	player.setPauseMode(true);	};	document.getElementById("gain").onchange = function(e){	audio.gainNode.gain.value= this.value/255;	};	document.getElementById("speed").onchange = function(e){	var tweak= 0.2;	// allow 20% speed correction	var f= (this.value/50)-1;	// -1..1	var s= player.getDefaultSampleRate();	s= Math.round(s*(1+(tweak*f)));	player.setSampleRate(s);	};	audio.playNextSong();
}
init();
C64 music nostalgia - Script Codes
C64 music nostalgia - Script Codes
Home Page Home
Developer Juergen Wothke
Username TinyRSid
Uploaded November 24, 2022
Rating 3
Size 47,200 Kb
Views 12,144
Do you need developer help for C64 music nostalgia?

Find the perfect freelance services for your business! Fiverr's mission is to change how the world works together. Fiverr connects businesses with freelancers offering digital services in 500+ categories. Find Developer!

Juergen Wothke (TinyRSid) Script Codes
Name
Create amazing blog posts with AI!

Jasper is the AI Content Generator that helps you and your team break through creative blocks to create amazing, original content 10X faster. Discover all the ways the Jasper AI Content Platform can help streamline your creative workflows. Start For Free!