Added timer support to the PCx86 SerialPort component, so that we can honor the programmed baud rate now

This commit is contained in:
Jeff Parsons 2017-08-23 10:50:31 -07:00 committed by Jeff Parsons
commit 6a3498e666
10 changed files with 800 additions and 714 deletions

View file

@ -56,7 +56,7 @@ function lb(a,b,c){mb[a]&&b&&(mb[a][b]=c)}function nb(){return Date.now()||+new
function rb(a,b){b=sb(b.parentNode,"pc8080-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,e=0;e<d.length;e++){var f=d[e];if(1===f.nodeType){var g=f.getAttribute("class");if(g)for(var h=g.split(" "),k=0;k<h.length;k++)switch(g=h[k],g){case "pc8080-binding":(g=tb(f))&&g.binding&&a.da(g.type,g.binding,f,g.value),k=h.length}}}}function ub(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<kb.length;b++){var d=kb[b];a&&d.id.indexOf(a)||c.push(d)}return c}
function vb(a){if(void 0!==a){var b;for(b=0;b<kb.length;b++)if(kb[b].id===a)return kb[b]}return null}function wb(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<kb.length;d++)if(c)c==kb[d]&&(c=null);else if(!(a!=kb[d].type||b&&kb[d].id.indexOf(b)))return kb[d]}return null}function tb(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){r(c.message+" ("+a+")")}return b}
function sb(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
function yb(a){for(var b=!0,c=zb[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=Ab.indexOf(e)&&(f=function(){return function(){yb(a)}}());var g=Bb[e];if(g)if(!f)b=g(d[1],d[2],d[3]);else{if(!g(f,d[1],d[2],d[3]))break}else{var b=!1,h=wb(d[1],a);if(h)if(g=Cb[e])b=g(h,d[2],d[3]);else{var k=h.exports;if(k&&(g=k[e]))if(b=!0,!f)b=g.call(h,d[2],d[3]);else if(!g.call(h,f,d[2],d[3]))break}}if(!b){r("Script error: '"+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete zb[a];return b}l=u.prototype;
function xb(a){for(var b=!0,c=zb[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=Ab.indexOf(e)&&(f=function(){return function(){xb(a)}}());var g=Bb[e];if(g)if(!f)b=g(d[1],d[2],d[3]);else{if(!g(f,d[1],d[2],d[3]))break}else{var b=!1,h=wb(d[1],a);if(h)if(g=Cb[e])b=g(h,d[2],d[3]);else{var k=h.exports;if(k&&(g=k[e]))if(b=!0,!f)b=g.call(h,d[2],d[3]);else if(!g.call(h,f,d[2],d[3]))break}}if(!b){r("Script error: '"+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete zb[a];return b}l=u.prototype;
l.toString=function(){return this.name?this.name:this.id||this.type};
l.da=function(a,b,c){switch(b){case "clear":return this.P[b]||(this.P[b]=c,c.onclick=function(a){return function(){a.P.print&&(a.P.print.value="")}}(this)),!0;case "print":return this.P[b]||(this.P[b]=c,this.aa=function(a){this.i(a,this.type);return!0},c.value="",this.print=function(a){return function(b){qb(a,b)}}(c),this.i=function(a,b){return function(a,c){a||(a="");if(c!=Db.kd||"..."!=a.slice(-3))c&&(a=c+": "+a),qb(b,a+"\n");else{c=b.value;var d=c.lastIndexOf(a);0>d?c+=a+"\n":c=c.substr(0,d)+(a+
".")+c.substr(d+a.length);8192<c.length&&(c=c.substr(c.length-4096));b.value=c;b.scrollTop=b.scrollHeight}}}(this,c)),!0;default:return!1}};l.log=function(){};l.print=function(){};l.i=function(){};l.status=function(a){this.i(this.type+": "+a)};l.aa=function(a,b,c){if(!b){var d=wb("Computer",this.id);if(d&&d.D.Qb)return console.log("ignoring notice during unload: "+a),!1}fb(a,b,c||this.type);return!0};function Eb(a,b){a.D.error=!0;a.aa(b)}
@ -68,8 +68,8 @@ Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
var Mb="undefined"!==typeof ArrayBuffer,Nb=[1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,
0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1],Ob={cpu:1,bus:64,mem:128,port:256,nvr:16384,chipset:32768,keyboard:65536,key:131072,video:262144,fdc:524288,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:536870912,warn:1073741824,halt:-2147483648};function Pb(a){u.call(this,"Panel",a)}aa(Pb,u);
Pb.prototype.da=function(a,b,c,d){return this.R&&this.R.da(a,b,c,d)||this.w&&this.w.da(a,b,c,d)||this.B&&this.B.da(a,b,c,d)||this.K&&this.K.da(a,b,c,d)?!0:u.prototype.da.call(this,a,b,c,d)};Pb.prototype.Fa=function(a,b,c,d){this.R=a;this.I=b;this.w=c;this.K=d;this.B=Qb(a,"Keyboard")};Pb.prototype.va=function(a,b){b||Tb();return!0};Pb.prototype.ua=function(){return!0};
function Tb(){for(var a=!1,b=sb(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=tb(d),f=vb(e.id);f||(a=!0,f=new Pb(e));rb(f,d);a&&Gb(f)}}Za(Tb);
Pb.prototype.da=function(a,b,c,d){return this.R&&this.R.da(a,b,c,d)||this.w&&this.w.da(a,b,c,d)||this.B&&this.B.da(a,b,c,d)||this.K&&this.K.da(a,b,c,d)?!0:u.prototype.da.call(this,a,b,c,d)};Pb.prototype.Fa=function(a,b,c,d){this.R=a;this.I=b;this.w=c;this.K=d;this.B=Qb(a,"Keyboard")};Pb.prototype.va=function(a,b){b||Rb();return!0};Pb.prototype.ua=function(){return!0};
function Rb(){for(var a=!1,b=sb(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=tb(d),f=vb(e.id);f||(a=!0,f=new Pb(e));rb(f,d);a&&Gb(f)}}Za(Rb);
function Ub(a,b,c){u.call(this,"Bus",a);this.w=b;this.K=c;this.M=a.busWidth||16;this.N=Math.pow(2,this.M);this.C=this.N-1|0;this.g=(this.M>>1)+2;10>this.g&&(this.g=10);15<this.g&&(this.g=15);this.u=1<<this.g;this.O=this.u>>2;this.j=this.u-1;this.L=this.N/this.u|0;this.H=this.L-1;this.A=[];this.B=[];this.F=this.G=!1;this.S=[];this.T=[];a=new A;Vb(a,this.K);this.b=Array(this.L);for(b=0;b<this.L;b++)this.b[b]=a;Gb(this)}aa(Ub,u);Ub.prototype.reset=function(){};
Ub.prototype.va=function(a,b){b||this.reset();return!0};function Wb(a,b,c,d){for(var e=b,f=c,g=e>>>a.g;0<f&&g<a.b.length;){var h=a.b[g],k=g*a.u,p=a.u-(e-k);p>f&&(p=f);if(h&&h.size){if(h.type==d){if(e+f<=h.J)return h.nb+=h.J-e,h.J=e,!0;if(e>=h.J+h.nb){p=h.size-(e-k);p>f&&(p=f);h.nb=e-h.J+p;e=k+a.u;f-=p;g++;continue}}return Xb(Yb,e,f)}e=new A(e,p,a.u,d);Vb(e,a.K,h);a.b[g++]=e;e=k+a.u;f-=p}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+Zb[d]+" at "+q(b)),!0):Xb($b,b,c)}
function ac(a,b){return a.b[(b&a.C)>>>a.g].mb(b&a.j,b)}function bc(a,b){var c=b&a.j,d=(b&a.C)>>>a.g;return c!=a.j?a.b[d].Hc(c,b):a.b[d++].Wa(c,b)|a.b[d&a.H].Wa(0,b+1)<<8}function cc(a,b){var c=b&a.j,d=(b&a.C)>>>a.g;return c!=a.j?a.b[d].Mb(c,b):a.b[d++].mb(c,b)|a.b[d&a.H].mb(0,b+1)<<8}function dc(a,b,c){a.b[(b&a.C)>>>a.g].ob(b&a.j,c&255,b)}function ec(a,b,c){var d=b&a.j,e=(b&a.C)>>>a.g;d!=a.j?a.b[e].Kc(d,c&65535,b):(a.b[e++].Ya(d,c&255,b),a.b[e&a.H].Ya(0,c>>8&255,b+1))}
@ -84,18 +84,19 @@ l.pb=function(a,b){this.K&&Jb(this.K,129)&&this.K.message("attempt to write "+q(
l.Be=function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Da=!0};l.he=function(a,b){if(this.K&&null!=this.J){var c=this.K;Mc(c,this.J+a,1,c.M)&&c.ea(!0)}return this.mb(a,b)};l.le=function(a,b){if(this.K&&null!=this.J){var c=this.K;Mc(c,this.J+a,2,c.M)&&c.ea(!0)}return this.Mb(a,b)};
l.ve=function(a,b,c){if(this.K&&null!=this.J){var d=this.K;Mc(d,this.J+a,1,d.B)&&d.ea(!0)}this.w?this.pb(0,b):this.ob(a,b,c)};l.ze=function(a,b,c){if(this.K&&null!=this.J){var d=this.K;Mc(d,this.J+a,2,d.B)&&d.ea(!0)}this.w?this.pb(0,b):this.Sb(a,b,c)};l.ge=function(a){return this.g[a]};l.ie=function(a){return this.g[a]};l.ke=function(a){return this.j.getUint16(a,!0)};l.me=function(a){return a&1?this.g[a]|this.g[a+1]<<8:this.u[a>>1]};l.ue=function(a,b){this.g[a]=b;this.Da=!0};
l.we=function(a,b){this.g[a]=b;this.Da=!0};l.ye=function(a,b){this.j.setUint16(a,b,!0);this.Da=!0};l.Ae=function(a,b){a&1?(this.g[a]=b,this.g[a+1]=b>>8):this.u[a>>1]=b;this.Da=!0};var Bc=0,Cc=2,Zb=["NONE","RAM","ROM","VID","H/W"],Ac=0,Hc=[],Gc=[A.prototype.je,A.prototype.xe,A.prototype.ne,A.prototype.Be],Kc=[A.prototype.he,A.prototype.ve,A.prototype.le,A.prototype.ze];if(Mb)var Fc=[A.prototype.ge,A.prototype.ue,A.prototype.ke,A.prototype.ye],Ec=[A.prototype.ie,A.prototype.we,A.prototype.me,A.prototype.Ae];
function Nc(a,b){u.call(this,"CPU",a,1);var c=a.multiplier||1;this.za=a.cycles||b;this.U=c;this.Sa=Math.round(this.za/1E4)/100;this.Z=this.Sa*this.U;this.D.ka=!1;this.D.Pb=!1;this.D.ib=a.autoStart;this.D.Bc=!1;this.D.Va=!1;this.wa=this.oa=0;this.ya=a.csStart;this.na=a.csInterval;this.sa=a.csStop;this.T=[];this.Bb=this.rb.bind(this);Gb(this)}aa(Nc,u);l=Nc.prototype;
function Nc(a,b){u.call(this,"CPU",a,1);var c=a.multiplier||1;this.za=a.cycles||b;this.T=c;this.Sa=Math.round(this.za/1E4)/100;this.Z=this.Sa*this.T;this.D.ka=!1;this.D.Pb=!1;this.D.ib=a.autoStart;this.D.Bc=!1;this.D.Va=!1;this.wa=this.oa=0;this.ya=a.csStart;this.na=a.csInterval;this.sa=a.csStop;this.U=[];this.Bb=this.rb.bind(this);Gb(this)}aa(Nc,u);l=Nc.prototype;
l.Fa=function(a,b,c,d){this.R=a;this.I=b;this.K=d;for(b=0;b<Oc.length;b++)(c=this.P[Oc[b]])&&this.R.da(null,Oc[b],c);this.W=Qb(a,"ChipSet");a=Pc(a,"autoStart");null!=a&&(this.D.ib="true"==a?!0:"false"==a?!1:!!a);Gb(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.va=function(a,b){if(!b){if(a&&this.restore){Qc(this);if(!this.restore(a))return!1;Rc(this)}else this.reset();this.K?(a=this.K,a.i("Type ? for help with PC8080 Debugger commands"),Sc(a),a.na&&(b=a.na,a.na=null,Tc(a,b))):this.i("No debugger detected")}Uc(this);return!0};l.ua=function(a){return a?this.save():!0};l.ib=function(){return this.D.ib||!this.K&&void 0===this.P.run?(this.rb(),!0):!1};l.Ec=function(){return 0};
function Rc(a){void 0===a.ya&&(a.ya=0);void 0===a.na&&(a.na=-1);void 0===a.sa&&(a.sa=-1);a.D.Va=0<=a.ya&&0<a.na;a.D.Va&&(a.wa=0,a.oa=a.ya-a.la)}function Vc(a,b){if(a.D.Va){var c=!1;a.wa=a.wa+a.Ec()|0;a.oa-=b;0>=a.oa&&(a.oa+=a.na,c=!0);0<=a.sa&&a.sa<=Wc(a)&&(a.na=a.sa=-1,Rc(a),a.ea(),c=!0);c&&a.i(Wc(a)+" cycles: checksum="+n(a.wa))}}
l.da=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.P[b]=c;a=!0;break;case "run":this.P[b]=c;c.onclick=function(){var a;if(a=d.R)if(a=d.R,a.D.ja)a=!0;else{var b=null,c,h=ub(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.D.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.D.ja);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.D.ready?"powered yet":"ready yet"+(b.xb?" (waiting for notification)":""))+".");a=!1}a&&(d.D.ka?d.ea():d.rb())};
a=!0;break;case "speed":this.P[b]=c;a=!0;break;case "setSpeed":this.P[b]=c,c.onclick=function(){Xc(d,d.U<<1,!0)},c.textContent=this.Z.toFixed(2)+"Mhz",a=!0}return a};function Yc(a,b,c){a.la+=b;c&&(a.fa=a.b=0)}function Zc(a,b){var c=1;b&&1<a.U&&a.Y&&(c=a.Y/a.Sa);a.gb=Math.round(1E3/$c);a.Ma=Math.floor(a.za/$c*c);b||(a.ta=a.Ma);a.Ua=0}function Wc(a){return a.la+a.X+a.fa-a.b}function Qc(a){a.Y=0;a.hb=0;a.la=a.X=a.fa=a.b=0;Rc(a);Xc(a,1)}
function Xc(a,b,c){var d=!1;if(void 0!==b){.8>a.Y/a.Z?b=1:d=!0;a.U=b;b=a.Sa*a.U;if(a.Z!=b){a.Z=b;b=a.Z.toFixed(2)+"Mhz";var e=a.P.setSpeed;e&&(e.textContent=b);a.i("target speed: "+b)}c&&a.R&&a.R.Xa()}Yc(a,a.X);a.X=0;a.V=nb();a.ba=0;Zc(a);return d}function ad(a,b){var c=a.T.length;a.T.push([-1,b]);return c}function bd(a,b,c){0<=b&&b<a.T.length&&0>a.T[b][0]&&(c=a.za*a.U/1E3*c|0,a.D.ka&&(c+=cd(a)),a.T[b][0]=c)}function cd(a,b){var c=a.fa-=a.b;a.b=0;b&&(a.fa=0);return c}
l.rb=function(a){if(Ib(this,!0)){if(!this.D.ka){Xc(this);this.R&&this.R.start(this.V,Wc(this));this.D.ka=!0;this.D.Pb=!0;this.W&&this.W.start();var b=this.P.run;b&&(b.textContent="Halt");this.R&&(dd(this.R,!0),a&&this.R.Xa(!0))}this.Ua>=this.za&&Zc(this,!0);this.Ca=0;this.La=nb();this.ba&&(a=this.La-this.ba,a>this.gb&&(this.V+=a,this.V>this.La&&(this.V=this.La)));try{do{for(var c,d=this.D.Va?1:this.Ma,e=this.T.length-1;0<=e;e--){var f=this.T[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.Cb(c);c=cd(this,!0);
this.Ca+=c;this.X+=c;Vc(this,c);a=c;for(var g=this.T.length-1;0<=g;g--){var h=this.T[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.ta-=c;if(0>=this.ta){this.ta+=this.Ma;++this.hb>=qd&&(this.R&&dd(this.R),this.hb=0);break}}while(this.D.ka)}catch(k){this.ea();Uc(this);this.R&&this.R.stop(nb(),Wc(this));Ib(this,!1);Eb(this,k.stack||k.message);return}c=setTimeout;d=this.Bb;this.ba=nb();e=this.gb;this.Ca&&(e=Math.round(e*this.Ca/this.Ma));e-=this.ba-this.La;if(f=this.ba-this.V)this.Y=Math.round(this.X/
(10*f))/100,864E5<=f&&(this.la=0,Xc(this));if(0>e||this.Y<this.Z)-1E3>e&&(this.V-=e),e=0;this.Ua+=this.Ca;this.ba+=e;c(d,e)}else Uc(this),this.R&&this.R.stop(nb(),Wc(this))};l.Cb=function(){return 0};l.ea=function(a){Hb(this,!0);cd(this);Yc(this,this.X);this.X=0;if(this.D.ka){this.D.ka=!1;this.W&&this.W.stop();var b=this.P.run;b&&(b.textContent="Run")}this.D.complete=a};function Uc(a,b){if(a.R){for(var c=a.R,d=0;d<c.A.length;d++)rd(c.A[d],b);dd(a.R,b)}}var $c=30,qd=15,Oc=["power","reset"];
function sd(a){var b=+a.model||8080;Nc.call(this,a,1E6);this.vb=b;this.cb=td;Qc(this);this.D.complete=this.D.Ad=!1;this.fb=0;this.Ka=[];this.eb=0;ud(this)}aa(sd,Nc);function vd(a,b){a.Ka.push(b)}l=sd.prototype;l.reset=function(){this.D.ka&&this.ea();ud(this);Qc(this);this.D.error=!1;Nc.prototype.reset.call(this)};function ud(a){a.g=0;a.u=0;a.A=0;a.B=0;a.C=0;a.F=0;a.G=0;a.M=0;B(a,a.eb);wd(a,0);a.S=0}function xd(a,b){a.eb=b;B(a,b)}
l.Ec=function(){var a=this.g+this.u+this.A+this.B+this.C+this.F+this.G|0;return a=a+this.M+this.j+yd(this)|0};l.save=function(){var a=new zd(this);a.set(0,[this.g,this.u,this.A,this.B,this.C,this.F,this.G,this.M,this.j,yd(this)]);a.set(1,[this.S,this.la,this.U]);a.set(2,fc(this.I));return a.data()};
a=!0;break;case "speed":this.P[b]=c;a=!0;break;case "setSpeed":this.P[b]=c,c.onclick=function(){Xc(d,d.T<<1,!0)},c.textContent=this.Z.toFixed(2)+"Mhz",a=!0}return a};function Yc(a,b,c){a.la+=b;c&&(a.fa=a.b=0)}function Zc(a,b){var c=1;b&&1<a.T&&a.Y&&(c=a.Y/a.Sa);a.gb=Math.round(1E3/$c);a.Ma=Math.floor(a.za/$c*c);b||(a.ta=a.Ma);a.Ua=0}function Wc(a){return a.la+a.X+a.fa-a.b}function Qc(a){a.Y=0;a.hb=0;a.la=a.X=a.fa=a.b=0;Rc(a);Xc(a,1)}
function Xc(a,b,c){var d=!1;if(void 0!==b){.8>a.Y/a.Z?b=1:d=!0;a.T=b;b=a.Sa*a.T;if(a.Z!=b){a.Z=b;b=a.Z.toFixed(2)+"Mhz";var e=a.P.setSpeed;e&&(e.textContent=b);a.i("target speed: "+b)}c&&a.R&&a.R.Xa()}Yc(a,a.X);a.X=0;a.V=nb();a.ba=0;Zc(a);return d}function ad(a,b,c){var d;d=void 0===d?-1:d;var e=a.U.length;a.U.push([b,-1,d,c]);0<=d&&bd(a,e,d);return e}function bd(a,b,c){0<=b&&b<a.U.length&&(b=a.U[b],0>b[1]&&(c=a.za*a.T/1E3*c|0,a.D.ka&&(c+=cd(a)),b[1]=c))}
function cd(a,b){var c=a.fa-=a.b;a.b=0;b&&(a.fa=0);return c}
l.rb=function(a){if(Ib(this,!0)){if(!this.D.ka){Xc(this);this.R&&this.R.start(this.V,Wc(this));this.D.ka=!0;this.D.Pb=!0;this.W&&this.W.start();var b=this.P.run;b&&(b.textContent="Halt");this.R&&(dd(this.R,!0),a&&this.R.Xa(!0))}this.Ua>=this.za&&Zc(this,!0);this.Ca=0;this.La=nb();this.ba&&(a=this.La-this.ba,a>this.gb&&(this.V+=a,this.V>this.La&&(this.V=this.La)));try{do{for(var c,d=this.D.Va?1:this.Ma,e=this.U.length-1;0<=e;e--){var f=this.U[e];0>f[1]||d>f[1]&&(d=f[1])}c=d;this.Cb(c);c=cd(this,!0);
this.Ca+=c;this.X+=c;Vc(this,c);a=c;for(var g=this.U.length-1;0<=g;g--){var h=this.U[g];0>h[1]||(h[1]-=a,0>=h[1]&&(h[1]=-1,h[3](),0<=h[2]&&bd(this,g,h[2])))}this.ta-=c;if(0>=this.ta){this.ta+=this.Ma;++this.hb>=qd&&(this.R&&dd(this.R),this.hb=0);break}}while(this.D.ka)}catch(k){this.ea();Uc(this);this.R&&this.R.stop(nb(),Wc(this));Ib(this,!1);Eb(this,k.stack||k.message);return}c=setTimeout;d=this.Bb;this.ba=nb();e=this.gb;this.Ca&&(e=Math.round(e*this.Ca/this.Ma));e-=this.ba-this.La;if(f=this.ba-
this.V)this.Y=Math.round(this.X/(10*f))/100,864E5<=f&&(this.la=0,Xc(this));if(0>e||this.Y<this.Z)-1E3>e&&(this.V-=e),e=0;this.Ua+=this.Ca;this.ba+=e;c(d,e)}else Uc(this),this.R&&this.R.stop(nb(),Wc(this))};l.Cb=function(){return 0};l.ea=function(a){Hb(this,!0);cd(this);Yc(this,this.X);this.X=0;if(this.D.ka){this.D.ka=!1;this.W&&this.W.stop();var b=this.P.run;b&&(b.textContent="Run")}this.D.complete=a};function Uc(a,b){if(a.R){for(var c=a.R,d=0;d<c.A.length;d++)rd(c.A[d],b);dd(a.R,b)}}
var $c=30,qd=15,Oc=["power","reset"];function sd(a){var b=+a.model||8080;Nc.call(this,a,1E6);this.vb=b;this.cb=td;Qc(this);this.D.complete=this.D.Ad=!1;this.fb=0;this.Ka=[];this.eb=0;ud(this)}aa(sd,Nc);function vd(a,b){a.Ka.push(b)}l=sd.prototype;l.reset=function(){this.D.ka&&this.ea();ud(this);Qc(this);this.D.error=!1;Nc.prototype.reset.call(this)};function ud(a){a.g=0;a.u=0;a.A=0;a.B=0;a.C=0;a.F=0;a.G=0;a.M=0;B(a,a.eb);wd(a,0);a.S=0}function xd(a,b){a.eb=b;B(a,b)}
l.Ec=function(){var a=this.g+this.u+this.A+this.B+this.C+this.F+this.G|0;return a=a+this.M+this.j+yd(this)|0};l.save=function(){var a=new zd(this);a.set(0,[this.g,this.u,this.A,this.B,this.C,this.F,this.G,this.M,this.j,yd(this)]);a.set(1,[this.S,this.la,this.T]);a.set(2,fc(this.I));return a.data()};
l.restore=function(a){var b=a[0];this.g=b[0];this.u=b[1];this.A=b[2];this.B=b[3];this.C=b[4];this.F=b[5];this.G=b[6];this.M=b[7]&65535;B(this,b[8]);wd(this,b[9]);b=a[1];this.S=b[0];this.la=b[1];Xc(this,b[3]);a:{b=this.I;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.O){for(var f=0,g=Array(b.O),h=0;h<e.length-1;)for(var k=e[h++],p=e[h++];k--;)g[f++]=p;e=g}f=b.b[d];if(!f||!f.restore(e)){r("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
l.da=function(a,b,c){switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.P[b]=c;this.fb++;a=!0;break;default:a=Nc.prototype.da.call(this,a,b,c)}return a};function Ad(a){return a.u<<8|a.A}function Bd(a,b){a.u=b>>8&255;a.A=b&255}function Cd(a){return a.B<<8|a.C}function Dd(a,b){a.B=b>>8&255;a.C=b&255}function D(a){return a.F<<8|a.G}
function Ed(a,b){a.F=b>>8&255;a.G=b&255}function B(a,b){a.j=b&65535}function Fd(a){return a.H&256?1:0}function Gd(a,b){a.H=a.H&255|b}function Hd(a){return Nb[a.L&255]?4:0}function Id(a){return(a.L^a.O)&16?16:0}function Jd(a){return a.H&255?0:64}function Kd(a){return a.L&128?128:0}function yd(a){return a.N&-214|Kd(a)|Jd(a)|Id(a)|Hd(a)|Fd(a)}function wd(a,b){a.H=a.L=a.O=0;b&1&&(a.H|=256);b&4||(a.L|=1);b&16&&(a.O|=16);b&64||(a.H|=255);b&128&&(a.L^=192);a.N=a.N&-726|b&512|2}
@ -134,7 +135,7 @@ l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.g.pa){case ge.p
l.Ld=function(a,b){var c=this.A;y(this,a,null,b,"STATUS1",c,!0);return c};l.Md=function(a,b){var c=this.fa;y(this,a,null,b,"STATUS2",c,!0);return c};l.Jd=function(a,b){var c=this.N>>8-this.T&255;y(this,a,null,b,"SHIFT.RESULT",c,!0);return c};l.Xd=function(a,b,c){y(this,a,b,c,"SHIFT.COUNT",null,!0);this.T=b};l.Zd=function(a,b,c){y(this,a,b,c,"SOUND1",null,!0);this.Y=b};l.Yd=function(a,b,c){y(this,a,b,c,"SHIFT.DATA",null,!0);this.N=b<<8|this.N>>8};
l.$d=function(a,b,c){y(this,a,b,c,"SOUND2",null,!0);this.Z=b};l.ae=function(a,b,c){y(this,a,b,c,"WATCHDOG",null,!0)};function he(a){var b=0,c=0,d=~a.M;for(a=0;10>a;a++)d&1&&(b=9-a),d>>=1;for(a=0;10>a;a++)d&1&&(c=9-a),d>>=1;return 10*b+c}
l.Nd=function(a,b){var c=this.F,c=c&~J.xa.jc;if((Wc(this.w)&64)<<1&&(c|=J.xa.jc,c!=this.F)){var d,e;d=this.L&1;e=this.L>>1&7;switch(e){case J.Aa.Ia.od:break;case J.Aa.Ia.Lc:this.M=this.M<<1|d;break;case J.Aa.Ia.Rc:d=he(this);this.j[d]=J.Aa.tb;Kb(this,"doNVRCommand(): erase data at addr "+q(d));break;case J.Aa.Ia.Mc:this.b=this.b<<1|d;break;case J.Aa.Ia.sd:d=he(this);e=this.b&J.Aa.tb;this.j[d]=e;Kb(this,"doNVRCommand(): write data "+q(e)+" to addr "+q(d));break;case J.Aa.Ia.md:d=he(this);e=this.j[d];
null==e&&(e=J.Aa.tb);this.b=e;Kb(this,"doNVRCommand(): read data "+q(e)+" from addr "+q(d));break;case J.Aa.Ia.nd:this.b<<=1;this.S=this.b&J.Aa.tb+1;break;default:Kb(this,"doNVRCommand(): unrecognized command "+na(e))}}c&=~J.xa.kc;this.S&&(c|=J.xa.kc);c&=~J.xa.dc;if(d=this.B){d=this.B;if(e=d.A)e=d.w,e=Wc(d.w)>=d.G+(e.za*e.U/1E3*1.2731488|0);e&&(d.A=!1);d=!d.A}d&&(c|=J.xa.dc);c&=~J.xa.sc;this.C&&this.C.ia&ie&&(c|=J.xa.sc);this.F=c;y(this,a,null,b,"FLAGS",c);return c};
null==e&&(e=J.Aa.tb);this.b=e;Kb(this,"doNVRCommand(): read data "+q(e)+" from addr "+q(d));break;case J.Aa.Ia.nd:this.b<<=1;this.S=this.b&J.Aa.tb+1;break;default:Kb(this,"doNVRCommand(): unrecognized command "+na(e))}}c&=~J.xa.kc;this.S&&(c|=J.xa.kc);c&=~J.xa.dc;if(d=this.B){d=this.B;if(e=d.A)e=d.w,e=Wc(d.w)>=d.G+(e.za*e.T/1E3*1.2731488|0);e&&(d.A=!1);d=!d.A}d&&(c|=J.xa.dc);c&=~J.xa.sc;this.C&&this.C.ia&ie&&(c|=J.xa.sc);this.F=c;y(this,a,null,b,"FLAGS",c);return c};
l.be=function(a,b,c){y(this,a,b,c,"BRIGHTNESS");this.W=b};l.ee=function(a,b,c){y(this,a,b,c,"NVR.LATCH");this.L=b};l.de=function(a,b,c){y(this,a,b,c,"DC012");a=b&3;switch(b>>2&3){case 0:this.u=this.u&-4|a;break;case 1:this.u=this.u&-13|a<<2;this.video&&(b=this.video,a=this.u,Kb(b,"updateScrollOffset("+a+")"),b.sa!==a&&((b.sa=a)?rd(b,!0):b.wa=!0));break;case 2:switch(a){case 0:this.O=~this.O;break;case 2:case 3:this.X=3-a}break;case 3:this.V=a}};
l.ce=function(a,b,c){y(this,a,b,c,"DC011");b&J.Ja.ld?(b&=J.Ja.oc,this.H!=b&&(this.H=b,this.video&&(a=this.video,b=this.H==J.Ja.oc?50:60,Kb(a,"updateRate("+b+")"),a.gb=b))):(b&=J.Ja.Wb,this.G!=b&&(this.G=b,this.video&&(a=this.G==J.Ja.Wb?132:80,b=this.video,Kb(b,"updateDimensions("+a+","+(80<a&&this.F&J.xa.ic?14:24)+")"),b.O=a,b.ga=b.Ca,80<a&&b.ga--,je(b)&&ke(b))))};
var ge={pa:1978.1,qd:{qa:0,hf:1,mf:16,uf:32,Ef:64,Df:128,$a:14},Na:{qa:1,Pc:1,jd:2,ed:4,fd:16,gd:32,hd:64,$a:8},rd:{qa:2,gf:3,Mf:4,jf:8,zf:16,Af:32,Bf:64,kf:128,$a:0},If:{qa:3},Gf:{qa:2,vf:7},Kf:{qa:3,Nf:1,Jf:2,Cf:4,sf:8,lf:16,Ce:32},Hf:{qa:4},Lf:{qa:5,nf:1,pf:2,qf:4,rf:8,Of:16}},J={pa:100,xa:{qa:66,sc:1,ic:2,dd:4,yf:8,xf:16,kc:32,jc:64,dc:128},Oc:{qa:66,INIT:0},Ja:{qa:194,Fe:0,Wb:16,ld:32,oc:48,Uc:0,Vc:32},sb:{qa:162,Ff:0,Xc:0,Tc:0,Wc:0,Sc:0},Aa:{tf:{qa:98},Ia:{Mc:0,Lc:1,nd:2,sd:4,Rc:5,md:6,od:7},
@ -155,7 +156,7 @@ k++);if(36==v)break;p+=String.fromCharCode(v)}a.print(p.replace(/\r/g,""));break
function Qe(a){u.call(this,"Keyboard",a,65536);(a=a.model)&&!Re[a]&&fb("Unrecognized Keyboard8080 model: "+a);this.b=Re[a]||{};this.reset();Gb(this)}aa(Qe,u);l=Qe.prototype;
l.da=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.P[e]){if("led"==a&&this.b.bb[b])return this.P[e]=c,!0;switch(b){case "kbd":case "screen":return Ra("iOS")?(c.onkeypress=function(a){var b=!1;if(a=d.b.qb[a.keyCode||a.charCode]){a&128&&(a&=127,b=!0);var c;a:{for(c in d.b.Ra)if(d.b.Ra[c]==a){c=+c;break a}c=0}c&&(b?Se(d,16,!0,!0):Se(d,16,!1),Se(d,c,!0,!0))}return!0},c.onkeydown=function(a){return Te(d,a,!0)},c.onkeyup=function(a){return Te(d,a,!1)}):(c.onkeydown=function(a){return Ue(d,a,!0)},
c.onkeyup=function(a){return Ue(d,a,!1)},c.onkeypress=function(a){a=a.keyCode||a.charCode;a>=m.Za&&a<=m.ub?d.g&(Ve|We)||(d.g|=We,Se(d,20,!0),Xe(d)):a>=m.yc&&a<=m.z&&d.g&We&&(d.g&=~We,Se(d,20,!1),Xe(d));return!0}),c.onpaste=function(a){a:{if(d.C&&d.C.Qa&&(a.stopPropagation&&a.stopPropagation(),a.preventDefault&&a.preventDefault(),a=a.clipboardData||window.clipboardData)){Ye(d.C,a.getData("Text"));a=!1;break a}a=!0}return a},!0;default:if(this.b.Ta&&void 0!==this.b.Ta[b])return this.P[e]=c,c.onclick=
function(a,b){return function(d){d.preventDefault&&d.preventDefault();d=!0;var e=0;17==b?e=Ze:20==b&&(e=We);if(e){c.style.fontWeight="normal";if(d=!(a.g&e))c.style.fontWeight="bold";$e(a,b,d)}Se(a,b,d,!e);a.R&&a.R.Xa()}}(this,this.b.Ta[b]),!0}}return!1};l.Fa=function(a,b,c,d){this.R=a;this.w=c;this.K=d;var e=this;this.L=ad(this.w,function(){af(e)});this.W=Qb(a,"ChipSet");this.C=Qb(a,"SerialPort");hc(b,this,this.b.zb);lc(b,this,this.b.Ab)};
function(a,b){return function(d){d.preventDefault&&d.preventDefault();d=!0;var e=0;17==b?e=Ze:20==b&&(e=We);if(e){c.style.fontWeight="normal";if(d=!(a.g&e))c.style.fontWeight="bold";$e(a,b,d)}Se(a,b,d,!e);a.R&&a.R.Xa()}}(this,this.b.Ta[b]),!0}}return!1};l.Fa=function(a,b,c,d){this.R=a;this.w=c;this.K=d;var e=this;this.L=ad(this.w,this.id,function(){af(e)});this.W=Qb(a,"ChipSet");this.C=Qb(a,"SerialPort");hc(b,this,this.b.zb);lc(b,this,this.b.Ab)};
l.va=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ua=function(a){return a?this.save():!0};l.reset=function(){this.j=[];this.g=0;this.b.INIT&&!this.restore(this.b.INIT)&&this.aa("reset error")};l.save=function(){var a=new zd(this);switch(this.b.pa){case K.pa:a.set(0,[this.F,this.B,this.A,this.G,-1])}return a.data()};
l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.b.pa){case bf.pa:return!0;case K.pa:return this.F=b[0],Xe(this,this.F&K.Ba.ec),this.B=b[1],this.A=b[2],this.G=b[3],this.u=b[4],!0}return!1};function Xe(a,b){var c;null!=b?a.H=b:b=a.H;for(var d in a.b.bb)if(c="led-"+d,c=a.P[c]){var e=a.b.bb[d],f=!!(b&e);e&e-1&&(f=!(b&~e));c.style.backgroundColor=f?"#"+n(16711680,6):"#000000"}if(c=a.P["led-caps-lock"])c.style.backgroundColor=a.g&We?"#"+n(65280,6):"#000000"}
function $e(a,b,c,d){var e=0;switch(b){case 16:e=d?cf:df;break;case 17:e=d?ef:Ze;break;case 18:e=d?ff:gf;break;case 91:e=d?hf:jf;break;case 20:e=We,c=!(a.g&e)}e&&(a.g=c?a.g|e:a.g&~e);return c}
@ -176,7 +177,7 @@ this.H),this.j.rotate(this.u*Math.PI/180),this.j.scale(this.H/this.M,this.M/this
this.S+"&format=bytes"),Ja(this.S,null,!0,function(a,b,c){tf(f,a,b,c)});this.za={}}aa(pf,u);
function je(a){a.C=a.O*a.ga;a.N=a.Z*a.ca;var b=a.C,c=a.N;a.g&&(b=a.N,c=a.C);a.L=0;if(!a.wd&&(a.L=(a.C*a.na>>3)*a.N,!Wb(a.I,a.la,a.L,3)))return!1;a.L?(a.Ua=a.j.createImageData(b,c),a.eb=16/a.na|0,uf(a,a.L>>1)):uf(a,(a.O+1)*a.Z);a.F=document.createElement("canvas");a.F.width=b;a.F.height=c;a.ta=a.F.getContext("2d");a.T={};a.X=1<<a.na;a.U=Array(a.X+vf);a.U[0]=[0,0,0,255];a.U[1]=[255,255,255,255];a.Y==wf&&(a.U[a.X+xf]=[255,255,0,255],a.U[a.X+yf]=[0,255,0,255]);a.Y==zf&&(a.gb=60,a.ya=!1,a.fa=Array(a.O));
return!0}l=pf.prototype;l.da=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.za[b]=c,!0;switch(b){case "fullScreen":return this.P[b]=c,this.b&&this.b.kb?c.onclick=function(){d.kb()}:c.parentNode.removeChild(c),!0}return!1};
l.Fa=function(a,b,c,d){this.R=a;this.I=b;this.w=c;this.K=d;je(this);if(this.B=Qb(a,"Keyboard")){for(var e in this.za)this.B.da("led",e,this.za[e]);this.G&&this.B.da(this.Dd?"textarea":"canvas","screen",this.V)}var f=this;this.vb=ad(this.w,function(){rd(f)});bd(this.w,this.vb,1E3/Math.max(this.hb,this.oa));this.fb=0;this.S||Gb(this)};
l.Fa=function(a,b,c,d){this.R=a;this.I=b;this.w=c;this.K=d;je(this);if(this.B=Qb(a,"Keyboard")){for(var e in this.za)this.B.da("led",e,this.za[e]);this.G&&this.B.da(this.Dd?"textarea":"canvas","screen",this.V)}var f=this;this.vb=ad(this.w,this.id,function(){rd(f)});bd(this.w,this.vb,1E3/Math.max(this.hb,this.oa));this.fb=0;this.S||Gb(this)};
function tf(a,b,c,d){if(d)a.aa("Unable to load font ROM (error "+d+": "+b+")");else{lb(a.ab,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){r("Empty font ROM: "+b);return}if(1==f.length){r(f[0]);return}if(2048==f.length)a.ba=f,ke(a);else{a.aa("Unrecognized font data length ("+f.length+")");return}}catch(g){a.aa("Font ROM data error: "+g.message);return}(a.j||a.K)&&Gb(a)}}
function ke(a){a.ba&&(a.Ma=a.Y==zf,a.T[Af]=[Bf(a,a.ga,a.ca),Bf(a,a.ga,a.ca,a.ya)],a.T[Cf]=[Bf(a,2*a.ga,a.ca),Bf(a,2*a.ga,a.ca,a.ya)],a.T[Df]=a.T[Ef]=[Bf(a,2*a.ga,2*a.ca),Bf(a,2*a.ga,2*a.ca,a.ya)])}
function Bf(a,b,c,d){var e=8>=a.Ca?8:16,f=8<e?15:0,g=a.ba.length/e,h=!1===d,k={ga:b,ca:c};k.canvas=document.createElement("canvas");k.canvas.width=16*b;k.canvas.height=g/16*c;k.context=k.canvas.getContext("2d");for(var p=k.context.createImageData(b,c),t=0;t<g;t++){for(var v=0,z=v;v<a.ca;v++)for(var x=t*e+(f+v&e-1),x=d&&8==v?255:a.ba[x],w=0;w<c/a.ca;w++){for(var C=0,T=0,ya=T;T<a.ga;T++){for(var L=x&128>>(7<T?7:T),C=a.Ma&&!L&&C?C:L,za=0;za<b/a.ga;za++)h&&(C=!C),Ff(a,p,ya,z,C?1:0),ya++;C=L}z++}k.context.putImageData(p,
@ -191,10 +192,10 @@ Za(function(){for(var a=sb(document,"pc8080","video"),b=0;b<a.length;b++){var c=
(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Ua("aspect"));f&&.3<=f&&3.33>=f&&(Ya("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");Ra("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"),f.style.fontSize="16px");c.appendChild(f);var g=e.getContext("2d"),d=new pf(d,e,g,f,c);rb(d,c)}});
function Mf(a){u.call(this,"SerialPort",a,8388608);this.T=+a.adapter;switch(this.T){case 0:this.U=0;this.X=2;break;default:r("Unrecognized serial adapter #"+this.T);return}this.g=this.j=null;this.V=a.tabSize;this.S=a.charBOL;this.u=0;this.N=!1;this.F=!0;var b=a.binding;if("console"==b)this.j="";else{var c;a=Nf;b&&(void 0===c&&(c="Panel"),(c=wb(c,this.id))&&(b=c.P[b])&&this.da(null,a,b))}this.A="";this.b=this.Qa=this.H=null;this.exports={connect:this.Fc,receiveData:this.Nb,receiveStatus:this.oe}}
aa(Mf,u);l=Mf.prototype;l.da=function(a,b,c,d){var e=this;switch(b){case Nf:return this.P[b]=this.g=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),Of(e,b);return!0},c.onkeypress=function(a){a=a||window.event;Of(e,a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0;default:if(d)return this.P[b]=c,c.onclick=function(){e.Nb(d);return!0},!0}return!1};
l.Fa=function(a,b,c,d){this.R=a;this.I=b;this.w=c;this.K=d;var e=this;this.Y=ad(this.w,function(){e.Nb()});this.Z=ad(this.w,function(){Ye(e)});this.W=Qb(a,"ChipSet");hc(b,this,Pf,this.U);lc(b,this,Qf,this.U);Gb(this)};
l.Fa=function(a,b,c,d){this.R=a;this.I=b;this.w=c;this.K=d;var e=this;this.Y=ad(this.w,this.id+".receive",function(){e.Nb()});this.Z=ad(this.w,this.id+".transmit",function(){Ye(e)});this.W=Qb(a,"ChipSet");hc(b,this,Pf,this.U);lc(b,this,Qf,this.U);Gb(this)};
l.Fc=function(a){if(!this.b){var b=Pc(this.R,"connection");if(b){var c=b.split("->");if(2==c.length){var d=xa(c[0]);if(d!=this.Gb)return;c=xa(c[1]);if(this.b=vb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.F);if(this.Qa=e.receiveData){this.F=a;this.H=e.receiveStatus;this.status("Connected "+this.ab+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
l.va=function(a,b){if(!b)if(this.Fc(this.F),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.ua=function(a){return a?this.save():!0};l.reset=function(){Rf(this)};l.save=function(){var a=new zd(this),b=0,c=[];c[b++]=this.G;c[b++]=this.M;c[b++]=this.O;c[b++]=this.ia;c[b++]=this.B;c[b++]=this.C;c[b]=this.L;a.set(0,c);return a.data()};l.restore=function(a){return Rf(this,a[0])};
function Rf(a,b){var c=0;b||(b=Sf);a.G=b[c++];a.M=b[c++];a.O=b[c++];a.ia=b[c++];a.B=b[c++];a.C=b[c++];a.L=b[c];return!0}function Tf(a,b){var c=a.L&b;b&15||(c>>=4);b=Uf[c];c=((a.B&Vf)>>2)+6;a.B&Wf&&c++;c+=((a.B&Xf)>>6)+1>>1;return 1E3/Math.round(b/c)}function Of(a,b){Kb(a,"receiveByte("+na(b)+"), status="+na(a.ia));return a.N||a.ia&Yf?!1:(a.M=b,a.ia|=Yf,Xd(a.w,a.X),!0)}
function Rf(a,b){var c=0;b||(b=Sf);a.G=b[c++];a.M=b[c++];a.O=b[c++];a.ia=b[c++];a.B=b[c++];a.C=b[c++];a.L=b[c];return!0}function Tf(a,b){var c=a.L&b;b&15||(c>>=4);b=Uf[c];c=((a.B&Vf)>>2)+6;a.B&Wf&&c++;c+=((a.B&Xf)>>6)+1>>1;return 1E3/(b/c)|0}function Of(a,b){Kb(a,"receiveByte("+na(b)+"), status="+na(a.ia));return a.N||a.ia&Yf?!1:(a.M=b,a.ia|=Yf,Xd(a.w,a.X),!0)}
l.Nb=function(a){null!=a&&(this.A="number"!=typeof a?a:this.A+String.fromCharCode(a));this.A&&(Of(this,this.A.charCodeAt(0))&&(this.A=this.A.substr(1)),this.A&&this.w&&bd(this.w,this.Y,Tf(this,Zf)));return!0};l.oe=function(a){this.ia&=~$f;a&64&&(this.ia|=$f)};function Ye(a,b){a.ia=a.ia|ie|ag;b&&a.Qa&&a.Qa.call(a.b,b)}l.Id=function(a,b){var c=this.M;y(this,a,null,b,"DATA",c);this.ia&=~Yf;return c};l.Hd=function(a,b){var c=this.ia;y(this,a,null,b,"STATUS",c);return c};
l.Wd=function(a,b,c){y(this,a,b,c,"DATA");this.O=b;this.ia&=~(ie|ag);Kb(this,"transmitByte("+na(b)+")");if(19==b)this.N=!0;else if(17==b)this.N=!1;else if(this.Qa&&this.Qa.call(this.b,b),this.g)if(8==b)this.g.value=this.g.value.slice(0,-1),0<this.u&&this.u--;else{var d;13!=b&&10!=b&&(d=Ca[b]);a=d=d?"<"+d+">":String.fromCharCode(b);c=a.length;9==b?(b=this.V||8,c=b-this.u%b,this.V&&(a=wa("",c))):13==b&&(this.u=c=0,a="\n");this.S&&!this.u&&c&&(a=String.fromCharCode(this.S)+a);this.g.value+=a;this.g.scrollTop=
this.g.scrollHeight;this.u+=c}else if(null!=this.j){if(10==b||1024<=this.j.length)this.i(this.j),this.j="";10!=b&&(this.j+=String.fromCharCode(b))}this.w&&bd(this.w,this.Z,Tf(this,bg))};l.Vd=function(a,b,c){y(this,a,b,c,"CONTROL");this.G?(this.H&&(b^this.C)&(cg|dg)&&(a=0,this.F?(a|=b&cg?32:0,a|=b&dg?320:0):(a|=b&cg?16:0,a|=b&dg?1048576:0),this.H.call(this.b,a)),this.C=b,this.C&eg&&(this.G=!1)):(this.B=b,this.G=!0)};l.Ud=function(a,b,c){y(this,a,b,c,"BAUDRATES");this.L=b};
@ -244,7 +245,7 @@ function ci(a,b,c){var d=[],e=Ag(b)>>>0;for(b=0;b<a.C.length;b++){var f=a.C[b],g
function ei(a,b){if("?"==b)a.i("frequency commands:"),a.i("\tclear\tclear all frequency counts");else{var c=0;if(a.F)if("clear"==b){for(b=0;b<a.F.length;b++)a.F[b]=[b,0];a.i("frequency data cleared");c++}else if(void 0!==b)a.i("unknown frequency command: "+b),c++;else{var d=a.F.slice();d.sort(function(a,b){return b[1]-a[1]});var e=a.style!=Kh?Lh:Mh;for(b=0;b<d.length;b++){var f=d[b][0],g=d[b][1];g&&(a.i((e[a.oa[f][0]]+" ").substr(0,5)+" ("+na(f)+"): "+g+" times"),c++)}}c||a.i("no frequency data available")}}
function fi(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return sg(a)||a.i("no variables"),!0;if(!c[2])return sg(a,c[1]);if(!c[3])return delete a.A[c[1]],!0;b=pg(a,c[3]);return void 0!==b?(a.A[c[1]]={value:b,qe:void 0},!0):!1}a.i("invalid assignment:"+b);return!1}
function gi(a,b,c){var d=null;if(b=Bg(a,b,!0)){var e=ci(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.J-e[1])&&(g=" + "+q(f)),f=e[0]+" ("+fh(e[1])+")"+g,c&&a.i(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.J)&&(g=" - "+q(f)),f=e[4]+" ("+fh(e[5])+")"+g,c&&a.i(f),d||(d=f))}else c&&a.i("no symbols")}return d}
function hi(a,b){switch(b[1]){case "8080":a.style=ug;break;case "8086":a.style=Kh;break;case "cs":var c;void 0!==b[3]&&(c=+b[3]);switch(b[2]){case "int":a.w.na=c;break;case "start":a.w.ya=c;break;case "stop":a.w.sa=c;break;default:a.i("unknown cs option");return}void 0!==c&&Rc(a.w);a.i("checksums "+(a.w.D.Va?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(Xc(a.w,+b[2])||a.i("warning: using 1x multiplier, previous target not reached"));a.i("target speed: "+(a.w.Z.toFixed(2)+"Mhz")+" ("+a.w.U+
function hi(a,b){switch(b[1]){case "8080":a.style=ug;break;case "8086":a.style=Kh;break;case "cs":var c;void 0!==b[3]&&(c=+b[3]);switch(b[2]){case "int":a.w.na=c;break;case "start":a.w.ya=c;break;case "stop":a.w.sa=c;break;default:a.i("unknown cs option");return}void 0!==c&&Rc(a.w);a.i("checksums "+(a.w.D.Va?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(Xc(a.w,+b[2])||a.i("warning: using 1x multiplier, previous target not reached"));a.i("target speed: "+(a.w.Z.toFixed(2)+"Mhz")+" ("+a.w.T+
"x)");return;case "?":a.i("debugger options:");a.i("\t8080\t\tselect 8080-style mnemonics");a.i("\t8086\t\tselect 8086-style mnemonics");a.i("\tcs int #\tset checksum cycle interval to #");a.i("\tcs start #\tset checksum cycle start count to #");a.i("\tcs stop #\tset checksum cycle stop count to #");a.i("\tsp #\t\tset speed multiplier to #");break;default:if(b[1]){a.i("unknown option: "+b[1]);return}}a.i(a.style+"-style mnemonics enabled")}
function Ch(a,b){var c;if(b&&"?"==b[1])a.i("register commands:"),a.i("\tr\tdump registers"),a.i("\trx [#]\tset flag or register x to [#]");else{var d=a.w;null==c&&(c=!0);if(b&&1<b.length){var e=b[1],f=e.indexOf("=");if(0<f)b=e.substr(f+1),e=e.substr(0,f);else if(2<b.length)b=b[2];else{a.i("missing value for "+b[1]);return}f=pg(a,b);if(void 0===f)return;switch(e.toUpperCase()){case "A":d.g=f&255;break;case "B":d.u=f&255;break;case "BC":d.u=f>>8&255;case "C":d.A=f&255;break;case "D":d.B=f&255;break;
case "DE":d.B=f>>8&255;case "E":d.C=f&255;break;case "H":d.F=f&255;break;case "HL":d.F=f>>8&255;case "L":d.G=f&255;break;case "SP":d.M=f&65535;break;case "PC":B(d,f);a.L=vg(d.j);break;case "PS":wd(d,f);break;case "PSW":wd(d,f&255|d.N&-256);d.g=f>>8;break;case "CF":d.H=f?d.H|256:d.H&255;break;case "PF":f?Hd(d)||(d.L^=1):Hd(d)&&(d.L^=1);break;case "AF":d.O=f?~d.L&16|d.O&-17:d.L&16|d.O&-17;break;case "ZF":d.H=f?d.H&-256:d.H|255;break;case "SF":f?Kd(d)||(d.L^=192):Kd(d)&&(d.L^=192);break;case "IF":d.N=
@ -254,15 +255,15 @@ l.yb=function(a,b,c){if(b)if(a){0>this.b&&this.g.length&&(this.b=0);if(0>this.b|
function Ih(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.i(">> "+b):(a.N&&(a.i("ended assemble at "+fh(a.T.J)),a.L=a.T,a.N=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.Y=null;if(Fb(a)&&0<b.length){a.N&&(b="a "+fh(a.T.J)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var g=f[0],h=g.charAt(0),k=1;k<g.length;k++){var p=g.charAt(k);if("?"==h||"r"==h||"a">p||"z"<p){f[0]=g.substr(k);f.unshift(g.substr(0,k));break}}switch(f[0].charAt(0)){case "a":var t=Bg(a,f[1],!0);if(t)if(a.T=
t,void 0===f[2])a.i("begin assemble at "+fh(t.J)),a.N=!0,Uc(a.w);else{var v;a.i("not supported yet");v=[];if(v.length){for(var z=0;z<v.length;z++)a.Xb(t,v[z],1);a.i(Jh(a,a.T))}}break;case "b":a:{var x=f[0],w=f[1],C=b;if("?"==w)a.i("breakpoint commands:"),a.i("\tbi [p]\ttoggle break on input port [p]"),a.i("\tbo [p]\ttoggle break on output port [p]"),a.i("\tbp [a]\tset exec breakpoint at addr [a]"),a.i("\tbr [a]\tset read breakpoint at addr [a]"),a.i("\tbw [a]\tset write breakpoint at addr [a]"),a.i("\tbc [a]\tclear breakpoint at addr [a]"),
a.i("\tbl\tlist all breakpoints"),a.i("\tbn [n]\tbreak after [n] instruction(s)");else{var T=x.charAt(1);if("l"==T){var ya;ya=0+Hh(a,a.j);ya+=Hh(a,a.M);(ya+=Hh(a,a.B))||a.i("no breakpoints")}else if("n"==T)a.X=jg(a,w),a.i("break after "+a.X+" instruction(s)");else if(void 0===w)a.i("missing breakpoint address");else{var L=vg();if("*"!=w&&(L=Bg(a,w,!0),!L))break a;w=q(L.J);"c"==T?null==L.J?(wg(a),a.i("all breakpoints cleared")):Fh(a,a.j,L)||Fh(a,a.M,L)||Fh(a,a.B,L)||a.i("breakpoint missing: "+fh(L.J)):
"i"==T?a.i("breakpoint "+(gc(a.I,L.J)?"enabled":"cleared")+": port "+w+" (input)"):"o"==T?a.i("breakpoint "+(kc(a.I,L.J)?"enabled":"cleared")+": port "+w+" (output)"):null!=L.J&&(eh(a,L,C),"p"==T?a.Oa(a.j,L):"r"==T?a.Oa(a.M,L):"w"==T?a.Oa(a.B,L):a.i("unknown breakpoint command: "+T))}}}break;case "c":var za=a.R;za.B&&(za.B.value="");break;case "d":a:{var sa,Aa=f[0],ta=f[1],Ba=f[2],Oi=f[3];if("?"==ta){var Rb="";for(sa in Ob)a.la[sa]&&(Rb&&(Rb+=","),Rb+=sa);Rb+=",state,symbols";a.i("dump memory commands:");
a.i("\tdb [a] [#] dump # bytes at address a");a.i("\tdw [a] [#] dump # words at address a");a.i("\tdd [a] [#] dump # dwords at address a");a.i("\tdh [#] [#] dump # instructions from history");Rb.length&&a.i("dump extension commands:\n\t"+Rb)}else if("state"==ta){var se=ki(a.R,!0);if("console"==Ba)console.log(se);else{var Dg=a.R;Dg.B&&(Dg.B.value="");se&&a.i(se)}}else if("symbols"==ta)for(var te=0;te<a.C.length;te++){var ue=a.C[te],Sb;for(Sb in ue.ra)if("."!=Sb.charAt(0)){var Eg=ue.ra[Sb].o;
if(void 0!==Eg){var Fg=ue.ra[Sb].l;Fg&&(Sb=Fg);a.i(fh(Eg)+" "+Sb)}}}else{if("d"==Aa){for(sa in Ob)if(f[1]==sa){var Gg=a.la[sa];Gg?(f.shift(),f.shift(),Gg(f)):a.i("no dump registered for "+ta);break a}ta||(Aa=a.Ca||"db")}else a.Ca=Aa;if("dh"==Aa){var Hg=ta,Ig=Ba,Jg="",Kg=0,Oa=a.W,bb=a.H;if(bb.length){var Da=+Hg||a.wa,oc=+Ig||10;isNaN(Da)?Da=oc:Jg="more ";Da>bb.length&&(a.i("note: only "+bb.length+" available"),Da=bb.length);Oa-=Da;0>Oa&&(null==bb[bb.length-1].J?(Da=Oa+Da,Oa=0):Oa+=bb.length);var ve=
"i"==T?a.i("breakpoint "+(gc(a.I,L.J)?"enabled":"cleared")+": port "+w+" (input)"):"o"==T?a.i("breakpoint "+(kc(a.I,L.J)?"enabled":"cleared")+": port "+w+" (output)"):null!=L.J&&(eh(a,L,C),"p"==T?a.Oa(a.j,L):"r"==T?a.Oa(a.M,L):"w"==T?a.Oa(a.B,L):a.i("unknown breakpoint command: "+T))}}}break;case "c":var za=a.R;za.B&&(za.B.value="");break;case "d":a:{var sa,Aa=f[0],ta=f[1],Ba=f[2],Oi=f[3];if("?"==ta){var Sb="";for(sa in Ob)a.la[sa]&&(Sb&&(Sb+=","),Sb+=sa);Sb+=",state,symbols";a.i("dump memory commands:");
a.i("\tdb [a] [#] dump # bytes at address a");a.i("\tdw [a] [#] dump # words at address a");a.i("\tdd [a] [#] dump # dwords at address a");a.i("\tdh [#] [#] dump # instructions from history");Sb.length&&a.i("dump extension commands:\n\t"+Sb)}else if("state"==ta){var se=ki(a.R,!0);if("console"==Ba)console.log(se);else{var Dg=a.R;Dg.B&&(Dg.B.value="");se&&a.i(se)}}else if("symbols"==ta)for(var te=0;te<a.C.length;te++){var ue=a.C[te],Tb;for(Tb in ue.ra)if("."!=Tb.charAt(0)){var Eg=ue.ra[Tb].o;
if(void 0!==Eg){var Fg=ue.ra[Tb].l;Fg&&(Tb=Fg);a.i(fh(Eg)+" "+Tb)}}}else{if("d"==Aa){for(sa in Ob)if(f[1]==sa){var Gg=a.la[sa];Gg?(f.shift(),f.shift(),Gg(f)):a.i("no dump registered for "+ta);break a}ta||(Aa=a.Ca||"db")}else a.Ca=Aa;if("dh"==Aa){var Hg=ta,Ig=Ba,Jg="",Kg=0,Oa=a.W,bb=a.H;if(bb.length){var Da=+Hg||a.wa,oc=+Ig||10;isNaN(Da)?Da=oc:Jg="more ";Da>bb.length&&(a.i("note: only "+bb.length+" available"),Da=bb.length);Oa-=Da;0>Oa&&(null==bb[bb.length-1].J?(Da=Oa+Da,Oa=0):Oa+=bb.length);var ve=
[];"call"==Ig&&(oc=1E5,ve=["CALL"]);for(void 0!==Hg&&a.i(Da+" instructions earlier:");0<oc&&Oa!=a.W;){var Lg=bb[Oa++];if(null==Lg.J)break;var pc=vg(Lg.J),Pi=Da--,Mg=Jh(a,pc,"history",Pi);(!ve.length||0<=Mg.indexOf(ve[0]))&&a.i(Mg);pc.Ib&&(Oa+=pc.Ib,oc-=pc.Ib,Da-=pc.Ib);Oa>=bb.length&&(Oa=0);a.wa=Da;Kg++;oc--}}Kg||(a.i("no "+Jg+"history available"),a.wa=void 0)}else{var ed=Bg(a,ta);if(ed){var fd=0;Ba&&("l"==Ba.charAt(0)&&(Ba=Ba.substr(1)||Oi),fd=jg(a,Ba)>>>0,65536<fd&&(fd=65536));for(var qc="",gd=
"dd"==Aa?4:"dw"==Aa?2:1,hd=gd*fd||128,Qi=hd+15>>4||1;Qi--&&0<hd;){var id=0,we=0,rc,xe="",Ng="",ta=fh(ed.J);for(rc=16;0<rc&&0<hd;rc--){var jd=a.Ga(ed,1),id=id|jd<<(we++<<3);we==gd&&(xe+=n(id,2*gd),xe+=1==gd?9==rc?"-":" ":" ",id=we=0);Ng+=32<=jd&&128>jd?String.fromCharCode(jd):".";hd--}qc&&(qc+="\n");qc+=ta+" "+xe+(rc?"":" "+Ng)}qc&&a.i(qc);a.sa=ed}}}}break;case "e":if("else"==f[0])break;var kd=1,Og=255,Pg=a.Ga,Qg=a.Xb;"ew"==f[0]&&(kd=2,Og=65535,Pg=a.Eb,Qg=a.Qc);var Rg=kd<<1,Sg=f[1];if(null==Sg)a.i("edit memory commands:"),
a.i("\teb [a] [...] edit bytes at address a"),a.i("\tew [a] [...] edit words at address a");else{var ld=Bg(a,Sg);if(ld)for(var md=2;md<f.length;md++){var sc=pg(a,f[md]);if(void 0===sc){a.i("unrecognized value: "+f[md]);break}sc&~Og&&a.i("warning: "+n(sc)+" exceeds "+kd+"-byte value");var Ri=Pg.call(a,ld);a.i("changing "+fh(ld.J)+" from "+n(Ri,Rg,!0)+" to "+n(sc,Rg,!0));Qg.call(a,ld,sc,kd)}}break;case "f":ei(a,f[1]);break;case "g":a:{var Tg=f[1],Si=b;if(void 0!==Tg){var ye=Bg(a,Tg,!0);if(!ye)break a;
eh(a,ye,Si);a.Oa(a.j,ye,!0)}Ah(a,!0)||c||a.i("cpu busy or unavailable, run command ignored")}break;case "h":a:{var ze;if(a.D.ka)ze="halting",a.ea();else{if(Hb(a,!0))break a;ze="already halted"}c||a.i(ze)}break;case "i":if("if"==f[0]){var Ae;var tc=b.substr(2),tc=xa(tc);pg(a,tc)?(c||a.i("true: "+tc),Ae=!0):(c||a.i("false: "+tc),Ae=!1);Ae||(d=!1);break}if("int"==f[0]){var nd;var Ti=f[1];if(a.w.N&512){var Be=pg(a,Ti);null==Be?nd=!1:(a.i("requesting interrupt level "+Be),Xd(a.w,Be),nd=!0)}else a.i("interrupts disabled (use rif=1 to enable)"),
nd=!1;nd||(d=!1);break}var Ce=f[1];if(Ce&&"?"!=Ce){var De=jg(a,Ce);if(void 0!==De){var Ui=ic(a.I,De);a.i(q(De)+": "+na(Ui))}}else a.i("input commands:"),a.i("\ti [p]\tread port [p]"),a.i("warning: port accesses can affect hardware state");break;case "k":var Vi=f[0];if("?"==f[1])a.i("stack trace commands:"),a.i("\tk\tshow frame addresses"),a.i("\tks\tshow symbol information");else{var Ee=0,Ug=vg(),uc=vg(a.w.M);for(a.i("stack trace for "+fh(uc.J));10>Ee;){for(var xb=null,Wi=256;65536>uc.J>>>0;){Ug.J=
a.Eb(uc,2);if(null==uc.J||!Wi--)break;for(var Xi=a,od=Ug,Vg=null,vc=od.J,Wg=vc,Fe=1;6>=Fe&&vc;Fe++){if(2<Fe){od.J=vc;var pd=Jh(Xi,od);if(0<=pd.indexOf("CALL")){var Xg=pd.indexOf(" ");if(vc+(pd.indexOf(" ",Xg+1)-Xg-1)/2==Wg){Vg=pd;break}}}vc--}od.J=Wg;if(xb=Vg)break}if(!xb||null==xb)break;var Yg=null;if("ks"==Vi){var Zg=xb.match(/[0-9A-F]+$/);Zg&&(Yg=gi(a,Zg[0]))}xb=wa(xb,50)+" ;"+(Yg||"stack="+fh(uc.J));a.i(xb);Ee++}Ee||a.i("no return addresses found")}break;case "l":"ln"==f[0]&&gi(a,f[1],!0);break;
nd=!1;nd||(d=!1);break}var Ce=f[1];if(Ce&&"?"!=Ce){var De=jg(a,Ce);if(void 0!==De){var Ui=ic(a.I,De);a.i(q(De)+": "+na(Ui))}}else a.i("input commands:"),a.i("\ti [p]\tread port [p]"),a.i("warning: port accesses can affect hardware state");break;case "k":var Vi=f[0];if("?"==f[1])a.i("stack trace commands:"),a.i("\tk\tshow frame addresses"),a.i("\tks\tshow symbol information");else{var Ee=0,Ug=vg(),uc=vg(a.w.M);for(a.i("stack trace for "+fh(uc.J));10>Ee;){for(var yb=null,Wi=256;65536>uc.J>>>0;){Ug.J=
a.Eb(uc,2);if(null==uc.J||!Wi--)break;for(var Xi=a,od=Ug,Vg=null,vc=od.J,Wg=vc,Fe=1;6>=Fe&&vc;Fe++){if(2<Fe){od.J=vc;var pd=Jh(Xi,od);if(0<=pd.indexOf("CALL")){var Xg=pd.indexOf(" ");if(vc+(pd.indexOf(" ",Xg+1)-Xg-1)/2==Wg){Vg=pd;break}}}vc--}od.J=Wg;if(yb=Vg)break}if(!yb||null==yb)break;var Yg=null;if("ks"==Vi){var Zg=yb.match(/[0-9A-F]+$/);Zg&&(Yg=gi(a,Zg[0]))}yb=wa(yb,50)+" ;"+(Yg||"stack="+fh(uc.J));a.i(yb);Ee++}Ee||a.i("no return addresses found")}break;case "l":"ln"==f[0]&&gi(a,f[1],!0);break;
case "m":a:{var cb,db=null,ba=f[1];"?"==ba&&(ba=void 0);if(void 0!==ba){var ob=0;if("all"==ba)ob=1610481663,ba=null;else if("on"==ba)db=!0,ba=null;else if("off"==ba)db=!1,ba=null;else{"keys"==ba&&(ba="key");"kbd"==ba&&(ba="keyboard");for(cb in Ob)if(ba==cb){ob=Ob[cb];db=!!(a.ha&ob);break}if(!ob){a.i("unknown message category: "+ba);break a}}if(ob)if("on"==f[2])a.ha|=ob,db=!0;else if("off"==f[2]&&(a.ha&=~ob,db=!1,536870912==ob)){for(var Ge=0;Ge<a.Z.length;Ge++)a.i(a.Z[Ge]);a.Z=[]}}var Yi=0,wc="";for(cb in Ob)if(!ba||
ba==cb){var Zi=!!(a.ha&Ob[cb]);if(null===db||db==Zi)wc&&(wc+=","),++Yi%10||(wc+="\n\t"),"key"==cb&&(cb="keys"),wc+=cb}void 0===ba&&a.i("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.i((null!==db?db?"messages on: ":"messages off: ":"message categories:\n\t")+(wc||"none"));xg(a)}break;case "o":var He=f[1],$i=f[2];if(He&&"?"!=He){var Ie=jg(a,He,"port #"),Je=jg(a,$i);void 0!==Ie&&void 0!==Je&&(mc(a.I,Ie,Je),a.i(q(Ie)+": "+na(Je)))}else a.i("output commands:"),a.i("\to [p] [b]\twrite byte [b] to port [p]"),
a.i("warning: port accesses can affect hardware state");break;case "p":if("print"==f[0]){ii(a,b.substr(5));break}var $g="pr"==f[0]?1:0,aj=1+$g;if(a.O)a.i("step in progress");else{var Ke=vg(a.w.j);switch(a.Ga(Ke)){case 205:a.O=aj,ah(Ke,3)}a.O?(a.Oa(a.j,Ke,!0),Ah(a)||(a.R&&a.R.Xa(),a.O=0)):ji(a,$g?"tr":"t")}break;case "r":if("reset"==b){a.R&&a.R.reset();break}Ch(a,f);break;case "s":hi(a,f);break;case "t":ji(a,f[0],f[1]);break;case "u":Dh(a,f[1],f[2],8);break;case "v":if("var"==f[0]){fi(a,b.substr(3))||
@ -308,5 +309,5 @@ function ij(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=
function jj(a,b,c,d){function e(a){if(void 0===h){var b=g&&sb(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ua(a))}function f(a){e("Error: "+a);k&&(--fj||gb(!0));k=!1}var g,h,k=!0;fj++;mb[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=p:v.appendChild(document.createTextNode(p));t.appendChild(v)}c||
(c="/versions/pc8080/1.36.2/components.xsl");p=function(d,h){h?gj(c,null,null,!1,e,function(d,k){k?(lb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--fj||gb(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(k),(k=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(k,g),--fj||gb(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?gj(b,a,d,!0,e,p):hj(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(z){f(z.message)}return k}window.embedPC8080=function(a,b,c,d){gb(!1);return jj(a,b,c,d)};
window.commandMachine=function(a,b,c,d,e,f){if("script"==e){d=!1;c+=".machine";if(!f)delete zb[c],d=!0;else if("string"==typeof f&&!zb[c]){d=!0;e=zb;for(var g=c,h=f.length,k=[],p=[],t="",v=null,z=0;z<h;z++){var x=f[z];if('"'==x||"'"==x)v&&x!=v?t+=x:(v?v=null:v=x,t&&(p.push(t),t=""));else{if(!v){if("\r"==x||"\n"==x)x=";";if(" "==x||"\t"==x||";"==x){t&&(p.push(t),t="");";"==x&&p.length&&(k.push(p),p=[]);continue}}t+=x}}t&&p.push(t);p.length&&k.push(p);e[g]=k;yb(c)||(d=!1)}return d?(b&&(a.disabled=!0),
window.commandMachine=function(a,b,c,d,e,f){if("script"==e){d=!1;c+=".machine";if(!f)delete zb[c],d=!0;else if("string"==typeof f&&!zb[c]){d=!0;e=zb;for(var g=c,h=f.length,k=[],p=[],t="",v=null,z=0;z<h;z++){var x=f[z];if('"'==x||"'"==x)v&&x!=v?t+=x:(v?v=null:v=x,t&&(p.push(t),t=""));else{if(!v){if("\r"==x||"\n"==x)x=";";if(" "==x||"\t"==x||";"==x){t&&(p.push(t),t="");";"==x&&p.length&&(k.push(p),p=[]);continue}}t+=x}}t&&p.push(t);p.length&&k.push(p);e[g]=k;xb(c)||(d=!1)}return d?(b&&(a.disabled=!0),
!0):!1}if(d&&(g=wb(d,c+".machine"))&&(h=g.exports)&&(h=h[e]))return h.call(g,f)?(b&&(a.disabled=!0),!0):!1;console.log("unimplemented: commandMachine('"+c+"','"+d+"','"+e+"','"+f+"')");return!1};window.enableEvents=gb;window.sendEvent=ib;})();//# sourceMappingURL=/versions/pc8080/1.36.2/pc8080-dbg.map

File diff suppressed because one or more lines are too long

View file

@ -7131,29 +7131,55 @@ class CPU8080 extends Component {
}
/**
* addTimer(callBack)
* addTimer(id, callBack, ms)
*
* Components that want to have timers that periodically fire after some number of milliseconds call
* addTimer() to create the timer, and then setTimer() every time they want to arm it. There is currently
* Components that want to have timers that fire after some number of milliseconds call addTimer() to create
* the timer, and then setTimer() when they want to arm it. Alternatively, they can specify an automatic timeout
* value (in milliseconds) to have the timer fire automatically at regular intervals. There is currently
* no removeTimer() because these are generally used for the entire lifetime of a component.
*
* Internally, each timer entry is a preallocated Array with two entries: a cycle countdown in element [0]
* and a callback function in element [1]. A timer is initially dormant; dormant timers have a countdown
* value of -1 (although any negative number will suffice) and active timers have a non-negative value.
* Internally, each timer entry is a preallocated Array with the following entries:
*
* [0]: timer ID
* [1]: countdown value, in cycles
* [2]: automatic setTimer value, if any, in milliseconds
* [3]: callback function
*
* A timer is initially dormant; dormant timers have a countdown value of -1 (although any negative number
* will suffice) and active timers have a non-negative value.
*
* Why not use JavaScript's setTimeout() instead? Good question. For a good answer, see setTimer() below.
*
* @this {CPU8080}
* @param {string} id
* @param {function()} callBack
* @param {number} [ms] (if set, enables automatic setTimer calls)
* @return {number} timer index
*/
addTimer(callBack)
addTimer(id, callBack, ms = -1)
{
var iTimer = this.aTimers.length;
this.aTimers.push([-1, callBack]);
this.aTimers.push([id, -1, ms, callBack]);
if (ms >= 0) this.setTimer(iTimer, ms);
return iTimer;
}
/**
* findTimer(id)
*
* @this {CPU8080}
* @param {string} id
* @return {Array|null}
*/
findTimer(id)
{
for (var iTimer = 0; iTimer < this.aTimers.length; iTimer++) {
var timer = this.aTimers[iTimer];
if (timer[0] == id) return timer;
}
return null;
}
/**
* setTimer(iTimer, ms, fReset)
*
@ -7179,18 +7205,19 @@ class CPU8080 extends Component {
{
var nCycles = -1;
if (iTimer >= 0 && iTimer < this.aTimers.length) {
if (fReset || this.aTimers[iTimer][0] < 0) {
var timer = this.aTimers[iTimer];
if (fReset || timer[1] < 0) {
nCycles = this.getMSCycles(ms);
/*
* We must now confront the following problem: if the CPU is currently executing a burst of cycles,
* the number of cycles it has executed in that burst so far must NOT be charged against the cycle
* timeout we're about to set. The simplest way to resolve that is to immediately call endBurst()
* and bias the above cycle timeout by the number of cycles that the burst executed.
* If the CPU is currently executing a burst of cycles, the number of cycles it has executed in
* that burst so far must NOT be charged against the cycle timeout we're about to set. The simplest
* way to resolve that is to immediately call endBurst() and bias the cycle timeout by the number
* of cycles that the burst executed.
*/
if (this.flags.running) {
nCycles += this.endBurst();
}
this.aTimers[iTimer][0] = nCycles;
timer[1] = nCycles;
}
}
return nCycles;
@ -7219,12 +7246,12 @@ class CPU8080 extends Component {
*/
getBurstCycles(nCycles)
{
for (var i = this.aTimers.length - 1; i >= 0; i--) {
var timer = this.aTimers[i];
for (var iTimer = this.aTimers.length - 1; iTimer >= 0; iTimer--) {
var timer = this.aTimers[iTimer];
if (timer[0] < 0) continue;
if (nCycles > timer[0]) {
nCycles = timer[0];
if (timer[1] < 0) continue;
if (nCycles > timer[1]) {
nCycles = timer[1];
}
}
return nCycles;
@ -7242,14 +7269,23 @@ class CPU8080 extends Component {
*/
updateTimers(nCycles)
{
for (var i = this.aTimers.length - 1; i >= 0; i--) {
var timer = this.aTimers[i];
for (var iTimer = this.aTimers.length - 1; iTimer >= 0; iTimer--) {
var timer = this.aTimers[iTimer];
if (timer[0] < 0) continue;
timer[0] -= nCycles;
if (timer[0] <= 0) {
timer[0] = -1; // zero is technically an "active" value, so ensure the timer is dormant now
timer[1](); // safe to invoke the callback function now
if (timer[1] < 0) continue;
timer[1] -= nCycles;
if (timer[1] <= 0) {
if (DEBUG && this.messageEnabled(Messages8080.CPU)) {
this.printMessage("updateTimer(" + nCycles + "): firing " + timer[0] + " with only " + (timer[1] + nCycles) + " cycles left");
}
timer[1] = -1; // zero is technically an "active" value, so ensure the timer is dormant now
timer[3](); // safe to invoke the callback function now
if (timer[2] >= 0) {
this.setTimer(iTimer, timer[2]);
if (DEBUG && this.messageEnabled(Messages8080.CPU)) {
this.printMessage("updateTimer(" + nCycles + "): rearming " + timer[0] + " for " + timer[2] + "ms (" + timer[1] + " cycles)");
}
}
}
}
}
@ -13588,7 +13624,7 @@ class Keyboard8080 extends Component {
this.dbg = dbg; // NOTE: The "dbg" property must be set for the message functions to work
var kbd = this;
this.timerReleaseKeys = this.cpu.addTimer(function() {
this.timerReleaseKeys = this.cpu.addTimer(this.id, function() {
kbd.checkSoftKeysToRelease();
});
@ -15167,7 +15203,7 @@ class Video8080 extends Component {
}
var video = this;
this.timerUpdateNext = this.cpu.addTimer(function() {
this.timerUpdateNext = this.cpu.addTimer(this.id, function() {
video.updateScreen();
});
this.cpu.setTimer(this.timerUpdateNext, this.getRefreshTime());
@ -16593,10 +16629,10 @@ class SerialPort8080 extends Component {
this.dbg = dbg;
var serial = this;
this.timerReceiveNext = this.cpu.addTimer(function() {
this.timerReceiveNext = this.cpu.addTimer(this.id + ".receive", function() {
serial.receiveData();
});
this.timerTransmitNext = this.cpu.addTimer(function() {
this.timerTransmitNext = this.cpu.addTimer(this.id + ".transmit", function() {
serial.transmitData();
});
@ -16803,8 +16839,8 @@ class SerialPort8080 extends Component {
var nBits = ((this.bMode & SerialPort8080.UART8251.MODE.DATA_BITS) >> 2) + 6; // includes an extra +1 for start bit
if (this.bMode & SerialPort8080.UART8251.MODE.PARITY_ENABLE) nBits++;
nBits += ((((this.bMode & SerialPort8080.UART8251.MODE.STOP_BITS) >> 6) + 1) >> 1);
var nBytesPerSecond = Math.round(nBaud / nBits);
return 1000 / nBytesPerSecond;
var nBytesPerSecond = nBaud / nBits;
return (1000 / nBytesPerSecond)|0;
}
/**
@ -16900,10 +16936,8 @@ class SerialPort8080 extends Component {
}
}
if (this.sendData) {
if (this.sendData.call(this.connection, b)) {
fTransmitted = true;
}
if (this.sendData && this.sendData.call(this.connection, b)) {
fTransmitted = true;
}
if (this.echoByte(b)) {
@ -16921,6 +16955,10 @@ class SerialPort8080 extends Component {
* When timerTransmitNext fires, we have honored the programmed XMIT_RATE period, so we can
* set XMIT_READY (and XMIT_EMPTY), which signals the firmware that another byte can be transmitted.
*
* The sData parameter is not used when we're called via the timer; it's an optional parameter used by
* the Keyboard component to deliver data pasted via the clipboard, and is currently only useful when
* the SerialPort is connected to another machine. TODO: Define a separate interface for that feature.
*
* @this {SerialPort8080}
* @param {string} [sData]
* @return {boolean} true if successful, false if not

View file

@ -77,19 +77,19 @@ function Pb(a,b,c){c&&a.f||(a.Ua=!a.w&&b[1]||a.hc,a.Td=!a.w&&b[3]||a.ic);if(c||v
k.Jd=function(a){var b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8};k.Sd=function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<<a)|b<<a;this.ka=!0};k.Xd=function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<<a)|b<<a:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|b>>8);this.ka=!0};k.Cd=function(a,b){return this.fb(a,b)};k.Hd=function(a,b){return this.ec(a,b)};k.Qd=function(a,b,c){this.w||this.gc(a,b,c)};
k.Vd=function(a,b,c){this.w||this.i(a,b,c)};k.Bd=function(a){return this.b[a]};k.Dd=function(a){return this.b[a]};k.Gd=function(a){return this.u.getUint16(a,!0)};k.Id=function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.g[a>>1]};k.Pd=function(a,b){this.b[a]=b;this.ka=!0};k.Rd=function(a,b){this.b[a]=b;this.ka=!0};k.Ud=function(a,b){this.u.setUint16(a,b,!0);this.ka=!0};k.Wd=function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.g[a>>1]=b;this.ka=!0};
var Hb=0,Ib=2,ub=["NONE","RAM","ROM","VID","H/W"],Gb=0,Nb=[],Mb=[C.prototype.Ed,C.prototype.Sd,C.prototype.Jd,C.prototype.Xd],Qb=[C.prototype.Cd,C.prototype.Qd,C.prototype.Hd,C.prototype.Vd];if(jb)var Lb=[C.prototype.Bd,C.prototype.Pd,C.prototype.Gd,C.prototype.Ud],Kb=[C.prototype.Dd,C.prototype.Rd,C.prototype.Id,C.prototype.Wd];
function Rb(a,b){v.call(this,"CPU",a);var c=a.multiplier||1;this.na=a.cycles||b;this.O=c;this.Da=Math.round(this.na/1E4)/100;this.X=this.Da*this.O;this.h.ga=!1;this.h.fc=!1;this.h.Qa=a.autoStart;this.h.Xb=!1;this.h.$a=!1;this.va=this.ea=0;this.wa=a.csStart;this.ia=a.csInterval;this.la=a.csStop;this.H=[];this.kb=this.hb.bind(this);B(this)}l(Rb,v);k=Rb.prototype;
function Rb(a,b){v.call(this,"CPU",a);var c=a.multiplier||1;this.na=a.cycles||b;this.O=c;this.Da=Math.round(this.na/1E4)/100;this.X=this.Da*this.O;this.h.ga=!1;this.h.fc=!1;this.h.Qa=a.autoStart;this.h.Xb=!1;this.h.$a=!1;this.va=this.ea=0;this.wa=a.csStart;this.ia=a.csInterval;this.la=a.csStop;this.I=[];this.kb=this.hb.bind(this);B(this)}l(Rb,v);k=Rb.prototype;
k.pa=function(a,b,c,d){this.D=a;this.u=b;this.K=d;for(b=0;b<Sb.length;b++)(c=this.w[Sb[b]])&&this.D.S(null,Sb[b],c);this.N=mb(a,"ChipSet");a=Tb(a,"autoStart");null!=a&&(this.h.Qa="true"==a?!0:"false"==a?!1:!!a);B(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};k.ca=function(a,b){if(!b){if(a&&this.restore){Ub(this);if(!this.restore(a))return!1;Vb(this)}else this.reset();this.aa("No debugger detected")}Wb(this);return!0};
k.ba=function(a){return a?this.save():!0};k.Qa=function(){return this.h.Qa||void 0===this.w.run?(this.hb(),!0):!1};k.$b=function(){return 0};function Vb(a){void 0===a.wa&&(a.wa=0);void 0===a.ia&&(a.ia=-1);void 0===a.la&&(a.la=-1);a.h.$a=0<=a.wa&&0<a.ia;a.h.$a&&(a.va=0,a.ea=a.wa-a.I)}
k.ba=function(a){return a?this.save():!0};k.Qa=function(){return this.h.Qa||void 0===this.w.run?(this.hb(),!0):!1};k.$b=function(){return 0};function Vb(a){void 0===a.wa&&(a.wa=0);void 0===a.ia&&(a.ia=-1);void 0===a.la&&(a.la=-1);a.h.$a=0<=a.wa&&0<a.ia;a.h.$a&&(a.va=0,a.ea=a.wa-a.H)}
k.S=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.w[b]=c;a=!0;break;case "run":this.w[b]=c;c.onclick=function(){var a;if(a=d.D)if(a=d.D,a.h.V)a=!0;else{var b=null,c,h=Za(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.h.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.h.V);c++);c==h.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.h.ready?"powered yet":"ready yet"+(b.bb?" (waiting for notification)":""))+".");a=!1}a&&(d.h.ga?Xb(d):d.hb())};a=!0;
break;case "speed":this.w[b]=c;a=!0;break;case "setSpeed":this.w[b]=c,c.onclick=function(){Yb(d,d.O<<1,!0)},c.textContent=this.X.toFixed(2)+"Mhz",a=!0}return a};function Zb(a,b){var c=1;b&&1<a.O&&a.R&&(c=a.R/a.Da);a.Na=Math.round(1E3/$b);a.xa=Math.floor(a.na/$b*c);b||(a.ma=a.xa);a.Ea=0}function ac(a){return a.I+a.P+a.da-a.a}function Ub(a){a.R=0;a.Oa=0;a.I=a.P=a.da=a.a=0;Vb(a);Yb(a,1)}
function Yb(a,b,c){if(void 0!==b){.8>a.R/a.X&&(b=1);a.O=b;b=a.Da*a.O;if(a.X!=b){a.X=b;b=a.X.toFixed(2)+"Mhz";var d=a.w.setSpeed;d&&(d.textContent=b);a.aa("target speed: "+b)}c&&a.D&&bc(a.D)}a.I+=a.P;a.P=0;a.J=Ua();a.W=0;Zb(a)}function cc(a,b){var c=a.H.length;a.H.push([-1,b]);return c}function dc(a,b,c){0<=b&&b<a.H.length&&0>a.H[b][0]&&(c=a.na*a.O/1E3*c|0,a.h.ga&&(c+=ec(a)),a.H[b][0]=c)}function ec(a,b){var c=a.da-=a.a;a.a=0;b&&(a.da=0);return c}
k.hb=function(a){if(ib(this,!0)){if(!this.h.ga){Yb(this);this.D&&this.D.start(this.J,ac(this));this.h.ga=!0;this.h.fc=!0;this.N&&this.N.start();var b=this.w.run;b&&(b.textContent="Halt");this.D&&(gc(this.D,!0),a&&bc(this.D,!0))}this.Ea>=this.na&&Zb(this,!0);this.oa=0;this.ua=Ua();this.W&&(a=this.ua-this.W,a>this.Na&&(this.J+=a,this.J>this.ua&&(this.J=this.ua)));try{do{for(var c,d=this.h.$a?1:this.xa,e=this.H.length-1;0<=e;e--){var f=this.H[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.ub(c);c=ec(this,!0);
this.oa+=c;this.P+=c;a=c;this.h.$a&&(b=!1,this.va=this.va+this.$b()|0,this.ea-=a,0>=this.ea&&(this.ea+=this.ia,b=!0),0<=this.la&&this.la<=ac(this)&&(this.ia=this.la=-1,Vb(this),Xb(this),b=!0),b&&this.aa(ac(this)+" cycles: checksum="+p(this.va)));a=c;for(var g=this.H.length-1;0<=g;g--){var h=this.H[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.ma-=c;if(0>=this.ma){this.ma+=this.xa;++this.Oa>=hc&&(this.D&&gc(this.D),this.Oa=0);break}}while(this.h.ga)}catch(m){Xb(this);Wb(this);this.D&&this.D.stop(Ua(),
ac(this));ib(this,!1);c=m.stack||m.message;this.h.error=!0;this.G(c);return}c=setTimeout;d=this.kb;this.W=Ua();e=this.Na;this.oa&&(e=Math.round(e*this.oa/this.xa));e-=this.W-this.ua;if(f=this.W-this.J)this.R=Math.round(this.P/(10*f))/100,864E5<=f&&(this.I=0,Yb(this));if(0>e||this.R<this.X)-1E3>e&&(this.J-=e),e=0;this.Ea+=this.oa;this.W+=e;c(d,e)}else Wb(this),this.D&&this.D.stop(Ua(),ac(this))};k.ub=function(){return 0};
function Xb(a){a.h.Za&&(a.h.lb=!0);ec(a);a.I+=a.P;a.P=0;if(a.h.ga){a.h.ga=!1;a.N&&a.N.stop();var b=a.w.run;b&&(b.textContent="Run")}a.h.complete=void 0}function Wb(a){if(a.D){for(var b=a.D,c=0;c<b.g.length;c++)ic(b.g[c],void 0);gc(a.D,void 0)}}var $b=30,hc=15,Sb=["power","reset"];function jc(a){Rb.call(this,a,1E6);this.Ka=kc;Ub(this);this.h.complete=this.h.Wc=!1;this.Ma=0;this.qa=[];this.La=0;lc(this)}l(jc,Rb);function mc(a,b){a.qa.push(b)}k=jc.prototype;
break;case "speed":this.w[b]=c;a=!0;break;case "setSpeed":this.w[b]=c,c.onclick=function(){Yb(d,d.O<<1,!0)},c.textContent=this.X.toFixed(2)+"Mhz",a=!0}return a};function Zb(a,b){var c=1;b&&1<a.O&&a.R&&(c=a.R/a.Da);a.Na=Math.round(1E3/$b);a.xa=Math.floor(a.na/$b*c);b||(a.ma=a.xa);a.Ea=0}function ac(a){return a.H+a.P+a.da-a.a}function Ub(a){a.R=0;a.Oa=0;a.H=a.P=a.da=a.a=0;Vb(a);Yb(a,1)}
function Yb(a,b,c){if(void 0!==b){.8>a.R/a.X&&(b=1);a.O=b;b=a.Da*a.O;if(a.X!=b){a.X=b;b=a.X.toFixed(2)+"Mhz";var d=a.w.setSpeed;d&&(d.textContent=b);a.aa("target speed: "+b)}c&&a.D&&bc(a.D)}a.H+=a.P;a.P=0;a.J=Ua();a.W=0;Zb(a)}function cc(a,b,c){var d;d=void 0===d?-1:d;var e=a.I.length;a.I.push([b,-1,d,c]);0<=d&&dc(a,e,d);return e}function dc(a,b,c){0<=b&&b<a.I.length&&(b=a.I[b],0>b[1]&&(c=a.na*a.O/1E3*c|0,a.h.ga&&(c+=ec(a)),b[1]=c))}function ec(a,b){var c=a.da-=a.a;a.a=0;b&&(a.da=0);return c}
k.hb=function(a){if(ib(this,!0)){if(!this.h.ga){Yb(this);this.D&&this.D.start(this.J,ac(this));this.h.ga=!0;this.h.fc=!0;this.N&&this.N.start();var b=this.w.run;b&&(b.textContent="Halt");this.D&&(gc(this.D,!0),a&&bc(this.D,!0))}this.Ea>=this.na&&Zb(this,!0);this.oa=0;this.ua=Ua();this.W&&(a=this.ua-this.W,a>this.Na&&(this.J+=a,this.J>this.ua&&(this.J=this.ua)));try{do{for(var c,d=this.h.$a?1:this.xa,e=this.I.length-1;0<=e;e--){var f=this.I[e];0>f[1]||d>f[1]&&(d=f[1])}c=d;this.ub(c);c=ec(this,!0);
this.oa+=c;this.P+=c;a=c;this.h.$a&&(b=!1,this.va=this.va+this.$b()|0,this.ea-=a,0>=this.ea&&(this.ea+=this.ia,b=!0),0<=this.la&&this.la<=ac(this)&&(this.ia=this.la=-1,Vb(this),Xb(this),b=!0),b&&this.aa(ac(this)+" cycles: checksum="+p(this.va)));a=c;for(var g=this.I.length-1;0<=g;g--){var h=this.I[g];0>h[1]||(h[1]-=a,0>=h[1]&&(h[1]=-1,h[3](),0<=h[2]&&dc(this,g,h[2])))}this.ma-=c;if(0>=this.ma){this.ma+=this.xa;++this.Oa>=hc&&(this.D&&gc(this.D),this.Oa=0);break}}while(this.h.ga)}catch(m){Xb(this);
Wb(this);this.D&&this.D.stop(Ua(),ac(this));ib(this,!1);c=m.stack||m.message;this.h.error=!0;this.G(c);return}c=setTimeout;d=this.kb;this.W=Ua();e=this.Na;this.oa&&(e=Math.round(e*this.oa/this.xa));e-=this.W-this.ua;if(f=this.W-this.J)this.R=Math.round(this.P/(10*f))/100,864E5<=f&&(this.H=0,Yb(this));if(0>e||this.R<this.X)-1E3>e&&(this.J-=e),e=0;this.Ea+=this.oa;this.W+=e;c(d,e)}else Wb(this),this.D&&this.D.stop(Ua(),ac(this))};k.ub=function(){return 0};
function Xb(a){a.h.Za&&(a.h.lb=!0);ec(a);a.H+=a.P;a.P=0;if(a.h.ga){a.h.ga=!1;a.N&&a.N.stop();var b=a.w.run;b&&(b.textContent="Run")}a.h.complete=void 0}function Wb(a){if(a.D){for(var b=a.D,c=0;c<b.g.length;c++)ic(b.g[c],void 0);gc(a.D,void 0)}}var $b=30,hc=15,Sb=["power","reset"];function jc(a){Rb.call(this,a,1E6);this.Ka=kc;Ub(this);this.h.complete=this.h.Wc=!1;this.Ma=0;this.qa=[];this.La=0;lc(this)}l(jc,Rb);function mc(a,b){a.qa.push(b)}k=jc.prototype;
k.reset=function(){this.h.ga&&Xb(this);lc(this);Ub(this);this.h.error=!1;Rb.prototype.reset.call(this)};function lc(a){a.b=0;a.g=0;a.c=0;a.i=0;a.f=0;a.j=0;a.l=0;a.A=0;D(a,a.La);nc(a,0);a.C=0}function oc(a,b){a.La=b;D(a,b)}k.$b=function(){var a=this.b+this.g+this.c+this.i+this.f+this.j+this.l|0;return a=a+this.A+this.s+pc(this)|0};
k.save=function(){var a=new E(this);a.set(0,[this.b,this.g,this.c,this.i,this.f,this.j,this.l,this.A,this.s,pc(this)]);a.set(1,[this.C,this.I,this.O]);a.set(2,Ab(this.u));return a.data()};
k.restore=function(a){var b=a[0];this.b=b[0];this.g=b[1];this.c=b[2];this.i=b[3];this.f=b[4];this.j=b[5];this.l=b[6];this.A=b[7]&65535;D(this,b[8]);nc(this,b[9]);b=a[1];this.C=b[0];this.I=b[1];Yb(this,b[3]);a:{b=this.u;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.A){for(var f=0,g=Array(b.A),h=0;h<e.length-1;)for(var m=e[h++],q=e[h++];m--;)g[f++]=q;e=g}f=b.a[d];if(!f||!f.restore(e)){t("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
k.save=function(){var a=new E(this);a.set(0,[this.b,this.g,this.c,this.i,this.f,this.j,this.l,this.A,this.s,pc(this)]);a.set(1,[this.C,this.H,this.O]);a.set(2,Ab(this.u));return a.data()};
k.restore=function(a){var b=a[0];this.b=b[0];this.g=b[1];this.c=b[2];this.i=b[3];this.f=b[4];this.j=b[5];this.l=b[6];this.A=b[7]&65535;D(this,b[8]);nc(this,b[9]);b=a[1];this.C=b[0];this.H=b[1];Yb(this,b[3]);a:{b=this.u;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.A){for(var f=0,g=Array(b.A),h=0;h<e.length-1;)for(var m=e[h++],q=e[h++];m--;)g[f++]=q;e=g}f=b.a[d];if(!f||!f.restore(e)){t("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
k.S=function(a,b,c){switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.w[b]=c;this.Ma++;a=!0;break;default:a=Rb.prototype.S.call(this,a,b,c)}return a};function qc(a){return a.g<<8|a.c}function rc(a,b){a.g=b>>8&255;a.c=b&255}function sc(a){return a.i<<8|a.f}function tc(a,b){a.i=b>>8&255;a.f=b&255}function H(a){return a.j<<8|a.l}
function I(a,b){a.j=b>>8&255;a.l=b&255}function D(a,b){a.s=b&65535}function J(a){return a.o&256?1:0}function uc(a,b){a.o=a.o&255|b}function vc(a){return kb[a.v&255]?4:0}function pc(a){return a.F&-214|(a.v&128?128:0)|(a.o&255?0:64)|((a.v^a.B)&16?16:0)|vc(a)|J(a)}function nc(a,b){a.o=a.v=a.B=0;b&1&&(a.o|=256);b&4||(a.v|=1);b&16&&(a.B|=16);b&64||(a.o|=255);b&128&&(a.v^=192);a.F=a.F&-726|b&512|2}function wc(a,b){a.B=a.b^b;return a.v=(a.o=a.b+b)&255}
function xc(a,b){a.B=a.b^b;return a.v=(a.o=a.b+b+(a.o&256?1:0))&255}function yc(a,b){a.o=a.v=a.B=a.b&b;(a.b|b)&8&&(a.B^=16);return a.o}function zc(a,b){a.B=b^255;b=a.v=b+255&255;a.o=a.o&-256|b;return b}function Ac(a,b){a.B=b;b=a.v=b+1&255;a.o=a.o&-256|b;return b}function Bc(a,b){return a.v=a.o=a.B=a.b|b}function K(a,b){b^=255;a.B=a.b^b;return a.v=(a.o=a.b+b+1^256)&255}function Cc(a,b){b^=255;a.B=a.b^b;return a.v=(a.o=a.b+b+(a.o&256?0:1)^256)&255}function Dc(a,b){return a.v=a.o=a.B=a.b^b}
@ -145,7 +145,7 @@ m++);if(36==y)break;q+=String.fromCharCode(y)}a.print(q.replace(/\r/g,""));break
function Zc(a){v.call(this,"Keyboard",a);(a=a.model)&&!$c[a]&&Na("Unrecognized Keyboard8080 model: "+a);this.a=$c[a]||{};this.reset();B(this)}l(Zc,v);k=Zc.prototype;
k.S=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.w[e]){if("led"==a&&this.a.Ja[b])return this.w[e]=c,!0;switch(b){case "kbd":case "screen":return Da("iOS")?(c.onkeypress=function(a){var b=!1;if(a=d.a.Va[a.keyCode||a.charCode]){a&128&&(a&=127,b=!0);var c;a:{for(c in d.a.Ca)if(d.a.Ca[c]==a){c=+c;break a}c=0}c&&(b?ad(d,16,!0,!0):ad(d,16,!1),ad(d,c,!0,!0))}return!0},c.onkeydown=function(a){return bd(d,a,!0)},c.onkeyup=function(a){return bd(d,a,!1)}):(c.onkeydown=function(a){return cd(d,a,!0)},
c.onkeyup=function(a){return cd(d,a,!1)},c.onkeypress=function(a){a=a.keyCode||a.charCode;a>=n.Ga&&a<=n.Ya?d.b&(dd|ed)||(d.b|=ed,ad(d,20,!0),fd(d)):a>=n.Wb&&a<=n.z&&d.b&ed&&(d.b&=~ed,ad(d,20,!1),fd(d));return!0}),c.onpaste=function(a){a:{if(d.g&&d.g.Aa&&(a.stopPropagation&&a.stopPropagation(),a.preventDefault&&a.preventDefault(),a=a.clipboardData||window.clipboardData)){gd(d.g,a.getData("Text"));a=!1;break a}a=!0}return a},!0;default:if(this.a.Fa&&void 0!==this.a.Fa[b])return this.w[e]=c,c.onclick=
function(a,b){return function(d){d.preventDefault&&d.preventDefault();d=!0;var e=0;17==b?e=hd:20==b&&(e=ed);if(e){c.style.fontWeight="normal";if(d=!(a.b&e))c.style.fontWeight="bold";id(a,b,d)}ad(a,b,d,!e);a.D&&bc(a.D)}}(this,this.a.Fa[b]),!0}}return!1};k.pa=function(a,b,c,d){this.D=a;this.m=c;this.K=d;var e=this;this.v=cc(this.m,function(){jd(e)});this.N=mb(a,"ChipSet");this.g=mb(a,"SerialPort");Bb(b,this,this.a.cb);Cb(b,this,this.a.eb)};
function(a,b){return function(d){d.preventDefault&&d.preventDefault();d=!0;var e=0;17==b?e=hd:20==b&&(e=ed);if(e){c.style.fontWeight="normal";if(d=!(a.b&e))c.style.fontWeight="bold";id(a,b,d)}ad(a,b,d,!e);a.D&&bc(a.D)}}(this,this.a.Fa[b]),!0}}return!1};k.pa=function(a,b,c,d){this.D=a;this.m=c;this.K=d;var e=this;this.v=cc(this.m,this.id,function(){jd(e)});this.N=mb(a,"ChipSet");this.g=mb(a,"SerialPort");Bb(b,this,this.a.cb);Cb(b,this,this.a.eb)};
k.ca=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.ba=function(a){return a?this.save():!0};k.reset=function(){this.c=[];this.b=0;this.a.INIT&&!this.restore(this.a.INIT)&&this.G("reset error")};k.save=function(){var a=new E(this);switch(this.a.Y){case W.Y:a.set(0,[this.l,this.j,this.i,this.o,-1])}return a.data()};
k.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.a.Y){case kd.Y:return!0;case W.Y:return this.l=b[0],fd(this,this.l&W.fa.Cb),this.j=b[1],this.i=b[2],this.o=b[3],this.f=b[4],!0}return!1};function fd(a,b){var c;null!=b?a.s=b:b=a.s;for(var d in a.a.Ja)if(c="led-"+d,c=a.w[c]){var e=a.a.Ja[d],f=!!(b&e);e&e-1&&(f=!(b&~e));c.style.backgroundColor=f?"#"+p(16711680,6):"#000000"}if(c=a.w["led-caps-lock"])c.style.backgroundColor=a.b&ed?"#"+p(65280,6):"#000000"}
function id(a,b,c,d){var e=0;switch(b){case 16:e=d?md:nd;break;case 17:e=d?od:hd;break;case 18:e=d?pd:qd;break;case 91:e=d?rd:sd;break;case 20:e=ed,c=!(a.b&e)}e&&(a.b=c?a.b|e:a.b&~e);return c}
@ -166,7 +166,7 @@ this.s),this.c.rotate(this.f*Math.PI/180),this.c.scale(this.s/this.A,this.A/this
this.F+"&format=bytes"),wa(this.F,null,!0,function(a,b,c){Cd(f,a,b,c)});this.qa={}}l(yd,v);
function Nc(a){a.j=a.C*a.M;a.B=a.R*a.L;var b=a.j,c=a.B;a.b&&(b=a.B,c=a.j);a.v=0;if(!a.Rc&&(a.v=(a.j*a.ea>>3)*a.B,!qb(a.u,a.da,a.v,3)))return!1;a.v?(a.Ea=a.c.createImageData(b,c),a.La=16/a.ea|0,Dd(a,a.v>>1)):Dd(a,(a.C+1)*a.R);a.l=document.createElement("canvas");a.l.width=b;a.l.height=c;a.ma=a.l.getContext("2d");a.H={};a.O=1<<a.ea;a.I=Array(a.O+Ed);a.I[0]=[0,0,0,255];a.I[1]=[255,255,255,255];a.P==Fd&&(a.I[a.O+Gd]=[255,255,0,255],a.I[a.O+Hd]=[0,255,0,255]);a.P==Id&&(a.bc=60,a.oa=!1,a.X=Array(a.C));
return!0}k=yd.prototype;k.S=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.qa[b]=c,!0;switch(b){case "fullScreen":return this.w[b]=c,this.a&&this.a.Ra?c.onclick=function(){d.Ra()}:c.parentNode.removeChild(c),!0}return!1};
k.pa=function(a,b,c,d){this.D=a;this.u=b;this.m=c;this.K=d;Nc(this);if(this.i=mb(a,"Keyboard")){for(var e in this.qa)this.i.S("led",e,this.qa[e]);this.o&&this.i.S(this.Xc?"textarea":"canvas","screen",this.J)}var f=this;this.Oa=cc(this.m,function(){ic(f)});dc(this.m,this.Oa,1E3/Math.max(this.Na,this.ia));this.Ma=0;this.F||B(this)};
k.pa=function(a,b,c,d){this.D=a;this.u=b;this.m=c;this.K=d;Nc(this);if(this.i=mb(a,"Keyboard")){for(var e in this.qa)this.i.S("led",e,this.qa[e]);this.o&&this.i.S(this.Xc?"textarea":"canvas","screen",this.J)}var f=this;this.Oa=cc(this.m,this.id,function(){ic(f)});dc(this.m,this.Oa,1E3/Math.max(this.Na,this.ia));this.Ma=0;this.F||B(this)};
function Cd(a,b,c,d){if(d)a.G("Unable to load font ROM (error "+d+": "+b+")");else{Sa(a.Ia,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){t("Empty font ROM: "+b);return}if(1==f.length){t(f[0]);return}if(2048==f.length)a.W=f,Oc(a);else{a.G("Unrecognized font data length ("+f.length+")");return}}catch(g){a.G("Font ROM data error: "+g.message);return}(a.c||a.K)&&B(a)}}
function Oc(a){a.W&&(a.xa=a.P==Id,a.H[Jd]=[Kd(a,a.M,a.L),Kd(a,a.M,a.L,a.oa)],a.H[Ld]=[Kd(a,2*a.M,a.L),Kd(a,2*a.M,a.L,a.oa)],a.H[Md]=a.H[Nd]=[Kd(a,2*a.M,2*a.L),Kd(a,2*a.M,2*a.L,a.oa)])}
function Kd(a,b,c,d){var e=8>=a.ua?8:16,f=8<e?15:0,g=a.W.length/e,h=!1===d,m={M:b,L:c};m.canvas=document.createElement("canvas");m.canvas.width=16*b;m.canvas.height=g/16*c;m.context=m.canvas.getContext("2d");for(var q=m.context.createImageData(b,c),r=0;r<g;r++){for(var y=0,F=y;y<a.L;y++)for(var u=r*e+(f+y&e-1),u=d&&8==y?255:a.W[u],x=0;x<c/a.L;x++){for(var G=0,U=0,Z=U;U<a.M;U++){for(var da=u&128>>(7<U?7:U),G=a.xa&&!da&&G?G:da,xa=0;xa<b/a.M;xa++)h&&(G=!G),Od(a,q,Z,F,G?1:0),Z++;G=da}F++}m.context.putImageData(q,
@ -181,10 +181,10 @@ Ja(function(){for(var a=z(document,"pc8080","video"),b=0;b<a.length;b++){var c=a
(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Ga("aspect"));f&&.3<=f&&3.33>=f&&(Ia("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");Da("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"),f.style.fontSize="16px");c.appendChild(f);var g=e.getContext("2d"),d=new yd(d,e,g,f,c);Xa(d,c)}});
function Vd(a){v.call(this,"SerialPort",a);this.H=+a.adapter;switch(this.H){case 0:this.I=0;this.O=2;break;default:t("Unrecognized serial adapter #"+this.H);return}this.b=this.c=null;this.J=a.tabSize;this.F=a.charBOL;this.f=0;this.B=!1;this.l=!0;var b=a.binding;if("console"==b)this.c="";else{var c;a=Wd;b&&(void 0===c&&(c="Panel"),(c=ab(c,this.id))&&(b=c.w[b])&&this.S(null,a,b))}this.g="";this.a=this.Aa=this.s=null;this.exports={connect:this.ac,receiveData:this.nb,receiveStatus:this.Kd}}l(Vd,v);
k=Vd.prototype;k.S=function(a,b,c,d){var e=this;switch(b){case Wd:return this.w[b]=this.b=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),Xd(e,b);return!0},c.onkeypress=function(a){a=a||window.event;Xd(e,a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0;default:if(d)return this.w[b]=c,c.onclick=function(){e.nb(d);return!0},!0}return!1};
k.pa=function(a,b,c,d){this.D=a;this.u=b;this.m=c;this.K=d;var e=this;this.P=cc(this.m,function(){e.nb()});this.R=cc(this.m,function(){gd(e)});this.N=mb(a,"ChipSet");Bb(b,this,Yd,this.I);Cb(b,this,Zd,this.I);B(this)};
k.pa=function(a,b,c,d){this.D=a;this.u=b;this.m=c;this.K=d;var e=this;this.P=cc(this.m,this.id+".receive",function(){e.nb()});this.R=cc(this.m,this.id+".transmit",function(){gd(e)});this.N=mb(a,"ChipSet");Bb(b,this,Yd,this.I);Cb(b,this,Zd,this.I);B(this)};
k.ac=function(a){if(!this.a){var b=Tb(this.D,"connection");if(b){var c=b.split("->");if(2==c.length){var d=ra(c[0]);if(d!=this.Tb)return;c=ra(c[1]);if(this.a=$a(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.l);if(this.Aa=e.receiveData){this.l=a;this.s=e.receiveStatus;this.status("Connected "+this.Ia+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
k.ca=function(a,b){if(!b)if(this.ac(this.l),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.ba=function(a){return a?this.save():!0};k.reset=function(){$d(this)};k.save=function(){var a=new E(this),b=0,c=[];c[b++]=this.o;c[b++]=this.A;c[b++]=this.C;c[b++]=this.U;c[b++]=this.i;c[b++]=this.j;c[b]=this.v;a.set(0,c);return a.data()};k.restore=function(a){return $d(this,a[0])};
function $d(a,b){var c=0;b||(b=ae);a.o=b[c++];a.A=b[c++];a.C=b[c++];a.U=b[c++];a.i=b[c++];a.j=b[c++];a.v=b[c];return!0}function be(a,b){var c=a.v&b;b&15||(c>>=4);b=ce[c];c=((a.i&de)>>2)+6;a.i&ee&&c++;c+=((a.i&fe)>>6)+1>>1;return 1E3/Math.round(b/c)}function Xd(a,b){return a.B||a.U&ge?!1:(a.A=b,a.U|=ge,Fc(a.m,a.O),!0)}
function $d(a,b){var c=0;b||(b=ae);a.o=b[c++];a.A=b[c++];a.C=b[c++];a.U=b[c++];a.i=b[c++];a.j=b[c++];a.v=b[c];return!0}function be(a,b){var c=a.v&b;b&15||(c>>=4);b=ce[c];c=((a.i&de)>>2)+6;a.i&ee&&c++;c+=((a.i&fe)>>6)+1>>1;return 1E3/(b/c)|0}function Xd(a,b){return a.B||a.U&ge?!1:(a.A=b,a.U|=ge,Fc(a.m,a.O),!0)}
k.nb=function(a){null!=a&&(this.g="number"!=typeof a?a:this.g+String.fromCharCode(a));this.g&&(Xd(this,this.g.charCodeAt(0))&&(this.g=this.g.substr(1)),this.g&&this.m&&dc(this.m,this.P,be(this,he)));return!0};k.Kd=function(a){this.U&=~ie;a&64&&(this.U|=ie)};function gd(a,b){a.U=a.U|Mc|je;b&&a.Aa&&a.Aa.call(a.a,b)}k.cd=function(){var a=this.A;this.U&=~ge;return a};k.bd=function(){return this.U};
k.qd=function(a,b){this.C=b;this.U&=~(Mc|je);if(19==b)this.B=!0;else if(17==b)this.B=!1;else if(this.Aa&&this.Aa.call(this.a,b),this.b)if(8==b)this.b.value=this.b.value.slice(0,-1),0<this.f&&this.f--;else{var c;13!=b&&10!=b&&(c=sa[b]);a=c=c?"<"+c+">":String.fromCharCode(b);c=a.length;9==b?(b=this.J||8,c=b-this.f%b,this.J&&(a=" ".slice(0,c))):13==b&&(this.f=c=0,a="\n");this.F&&!this.f&&c&&(a=String.fromCharCode(this.F)+a);this.b.value+=a;this.b.scrollTop=this.b.scrollHeight;
this.f+=c}else if(null!=this.c){if(10==b||1024<=this.c.length)this.aa(this.c),this.c="";10!=b&&(this.c+=String.fromCharCode(b))}this.m&&dc(this.m,this.R,be(this,ke))};k.pd=function(a,b){this.o?(this.s&&(b^this.j)&(le|me)&&(a=0,this.l?(a|=b&le?32:0,a|=b&me?320:0):(a|=b&le?16:0,a|=b&me?1048576:0),this.s.call(this.a,a)),this.j=b,this.j&ne&&(this.o=!1)):(this.i=b,this.o=!0)};k.od=function(a,b){this.v=b};

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

View file

@ -7668,8 +7668,8 @@ class Panel extends Component {
* startTimer()
*
* This timer replaces the CPU's old dedicated VIDEO_UPDATES_PER_SECOND logic, which periodically called
* the Computer's updateVideo() function, which in turn called us; periodic updateAnimation() calls are now
* our own responsibility.
* the Computer's updateVideo() function, which in turn called our updateAnimation() function; periodic
* animation updates are now our own responsibility.
*
* @this {Panel}
*/
@ -12640,11 +12640,12 @@ class CPU extends Component {
* value (in milliseconds) to have the timer fire automatically at regular intervals. There is currently
* no removeTimer() because these are generally used for the entire lifetime of a component.
*
* Internally, each timer entry is a preallocated Array with three entries:
* Internally, each timer entry is a preallocated Array with the following entries:
*
* [0]: countdown value, in cycles
* [1]: automatic setTimer value, if any, in milliseconds
* [2]: callback function
* [0]: timer ID
* [1]: countdown value, in cycles
* [2]: automatic setTimer value, if any, in milliseconds
* [3]: callback function
*
* A timer is initially dormant; dormant timers have a countdown value of -1 (although any negative number
* will suffice) and active timers have a non-negative value.
@ -55094,8 +55095,11 @@ class SerialPort extends Component {
*
* binding: name of a control (based on its "binding" attribute) to bind to this port's I/O
*
* tabSize: set to a non-zero number to convert tabs to spaces (applies only to output to
* the above binding); default is 0 (no conversion)
* tabSize: a non-zero number specifies the tab-stop multiple to use for automatic tab-to-space
* conversion; it applies only to the above binding, and the default is 0 (no tab conversion)
*
* charBOL: a non-zero number specifies the ASCII code of a character to display at the beginning
* of every line; it applies only to the above binding, and the default is 0 (no BOL character)
*
* In the future, we may support 'port' and 'irq' properties that allow the machine to define a non-standard
* serial port configuration, instead of only our pre-defined 'adapter' configurations.
@ -55158,11 +55162,12 @@ class SerialPort extends Component {
* being echoed via transmitByte(), maintain a logical column position, and convert any tabs into the appropriate
* number of spaces.
*
* charBOL, if nonzero, is a character to automatically output at the beginning of every line. This probably
* isn't generally useful; I use it internally to preformat serial output.
* Another controlIOBuffer feature is charBOL, which, if nonzero, specifies a character to automatically output
* at the beginning of every line. This probably isn't generally useful; I use it internally to preformat serial
* output.
*/
this.tabSize = parmsSerial['tabSize'];
this.charBOL = parmsSerial['charBOL'];
this.tabSize = parmsSerial['tabSize'] || 0;
this.charBOL = parmsSerial['charBOL'] || 0;
this.charPrev = 0;
this.iLogicalCol = 0;
@ -55310,6 +55315,14 @@ class SerialPort extends Component {
this.cpu = cpu;
this.dbg = dbg;
var serial = this;
this.timerReceiveNext = this.cpu.addTimer(this.id + ".receive", function() {
serial.receiveData();
});
this.timerTransmitNext = this.cpu.addTimer(this.id + ".transmit", function() {
serial.transmitData();
});
this.chipset = cmp.getMachineComponent("ChipSet");
bus.addPortInputTable(this, SerialPort.aPortInput, this.portBase);
@ -55331,7 +55344,7 @@ class SerialPort extends Component {
*
* For now, we're not going to worry about communication in the other direction, because when the target component
* performs its own initConnection(), it will find our receiveData() and receiveStatus() functions, at which point
* communication in both directions should be established, and the circle of life complete.
* communication in both directions should be established, and the circle of life is complete.
*
* For added robustness, if the target machine initializes much more slowly than we do, and our connection attempt
* fails, that's OK, because when it finally initializes, its initConnection() will call our initConnection();
@ -55520,29 +55533,49 @@ class SerialPort extends Component {
return data;
}
/**
* getBaudTimeout()
*
* The 16-bit Divisor Latch is stored in wDL. If we take the frequency value 1843200 and divide it by wDL*128,
* we get the maximum number of bytes per second that the SerialPort interface should generate. For example,
* if a baud rate of 1200 is being used, the divisor will be 0x60 (96), so we calculate 1843200/(96*128) = 150,
* which means there should be a 1000ms/150 or 6.667ms delay between bytes delivered.
*
* @this {SerialPort}
* @return {number} (number of milliseconds per byte)
*/
getBaudTimeout()
{
var nBytesPerSecond = 1843200 / ((this.wDL || 1) << 7);
return (1000 / nBytesPerSecond)|0;
}
/**
* receiveData(data)
*
* This replaces the old sendRBR() function, which expected an Array of bytes. We still support that,
* but in order to support connections with other SerialPort components (ie, the PC8080 SerialPort), we
* have added support for numbers and strings as well.
* have added support for numbers and strings as well. If no data is specified at all, then all we do is
* "clock" any remaining data into the receiver.
*
* @this {SerialPort}
* @param {number|string|Array} data
* @param {number|string|Array} [data]
* @return {boolean} true if received, false if not
*/
receiveData(data)
{
if (typeof data == "number") {
this.abReceive.push(data);
}
else if (typeof data == "string") {
for (var i = 0; i < data.length; i++) {
this.abReceive.push(data.charCodeAt(i));
if (data != null) {
if (typeof data == "number") {
this.abReceive.push(data);
}
else if (typeof data == "string") {
for (var i = 0; i < data.length; i++) {
this.abReceive.push(data.charCodeAt(i));
}
}
else {
this.abReceive = this.abReceive.concat(data);
}
}
else {
this.abReceive = this.abReceive.concat(data);
}
this.advanceRBR();
return true; // for now, return true regardless, since we're buffering everything anyway
@ -55551,9 +55584,9 @@ class SerialPort extends Component {
/**
* receiveStatus(pins)
*
* NOTE: Prior to the addition of this interface, the CTS and DSR bits were initialized set and remained set for the life
* of the machine. It is entirely appropriate that this is the only way those bits can be changed, because they represent
* external control signals.
* NOTE: Prior to the addition of this interface, the CTS and DSR bits were initialized set and remained set
* for the life of the machine. It is entirely appropriate that this is the only way those bits can be changed,
* because they represent external control signals.
*
* @this {SerialPort}
* @param {number} pins
@ -55581,6 +55614,9 @@ class SerialPort extends Component {
if (this.abReceive.length > 0 && !(this.bLSR & SerialPort.LSR.DR)) {
this.bRBR = this.abReceive.shift();
this.bLSR |= SerialPort.LSR.DR;
if (this.abReceive.length && this.cpu) {
this.cpu.setTimer(this.timerReceiveNext, this.getBaudTimeout());
}
}
this.updateIRR();
}
@ -55719,7 +55755,16 @@ class SerialPort extends Component {
this.bTHR = bOut;
this.bLSR &= ~(SerialPort.LSR.THRE | SerialPort.LSR.TSRE);
if (this.transmitByte(bOut)) {
this.bLSR |= (SerialPort.LSR.THRE | SerialPort.LSR.TSRE);
/*
* If we're transmitting to a virtual device that has no measurable delay, this code may set the
* transmitter empty bits too quickly:
*
* this.bLSR |= (SerialPort.LSR.THRE | SerialPort.LSR.TSRE);
*
* A better solution is to arm a timer based on the baud rate, and clear the above bits when that
* timer fires.
*/
if (this.cpu) this.cpu.setTimer(this.timerTransmitNext, this.getBaudTimeout());
this.updateIRR();
/*
* QUESTION: Does this mean we should also flush/zero bTHR?
@ -55815,8 +55860,24 @@ class SerialPort extends Component {
this.bIIR &= ~(SerialPort.IIR.NO_INT | SerialPort.IIR.INT_BITS);
this.bIIR |= bIIR;
/*
* TODO: Remove this arbitrary 100-instruction delay once we've added support for baud rate throttling
* (see notes above regarding baud rate).
* I still throttle SerialPort interrupts by passing a hard-coded delay of 100 instructions to setIRR(),
* even though we are now (theoretically) honoring the programmed baud rate. The setIRR() delay does not
* ensure any particular baud rate, it simply gives the underlying Interrupt Service Routine (ISR) some
* breathing room.
*
* The Microsoft Windows 1.01 serial mouse driver ISR issues an EOI before it has safely exited, presumably
* relying on the fact that a 1200 baud serial device would not normally interrupt frequently enough to
* blow the stack. However, in PCx86, all you have to do is remove the delay below and enable Debugger
* messages on every serial interrupt and mouse event, eg:
*
* m serial on;m pic on;m mouse on
*
* to slow the machine down to the point where serial mouse interrupts overwhelm the ISR. The Debugger
* messages display the current stack pointer, which you can watch drop to zero and then wrap around, no
* doubt trampling lots of code and data along the way.
*
* This problem could also occur without being forced by the Debugger; eg, if your physical machine's mouse
* was configured for a high interrupt rate, and your browser generated mouse events at a comparable rate.
*/
if (this.chipset && this.nIRQ) this.chipset.setIRR(this.nIRQ, 100);
} else {
@ -55893,6 +55954,18 @@ class SerialPort extends Component {
return fTransmitted;
}
/**
* transmitData()
*
* Helper for clocking transmitted data at the expected baud rate.
*
* @this {SerialPort}
*/
transmitData()
{
this.bLSR |= (SerialPort.LSR.THRE | SerialPort.LSR.TSRE);
}
/**
* SerialPort.init()
*
@ -55958,34 +56031,6 @@ SerialPort.DLL = {REG: 0}; // Divisor Latch LSB (only when SerialPo
SerialPort.THR = {REG: 0}; // Transmitter Holding Register (write)
SerialPort.DL_DEFAULT = 0x180; // we select an arbitrary default Divisor Latch equivalent to 300 baud
/*
* The divisor is stored in wDL. If we take the frequency value 1843200 and divide it by wDL*128, we get the
* maximum number of bytes per second that the SerialPort interface should generate. For example, if a baud
* rate of 1200 is being used, the divisor will be 0x60 (96), so we calculate 1843200/(96*128) = 150, which means
* there should be a 1000ms/150 or 6.667ms delay between bytes delivered.
*
* TODO: Enforce that delay. However, the delay should be converted from real-world milliseconds to the
* appropriate number of CPU cycles we can pass to setBurstCycles(). This will also require the CPU to call
* us at the start of each burst, to see if advanceRBR() has more data to deliver. For now, I'm throttling
* SerialPort interrupts by passing a hard-coded delay to setIRR(). The setIRR() delay does not ensure any
* particular baud rate, it simply gives the underlying Interrupt Service Routine (ISR) some breathing room.
*
* The Microsoft Windows 1.01 serial mouse driver ISR issues an EOI before it has safely exited, presumably
* relying on the fact that a 1200 baud serial device would not normally interrupt frequently enough to blow
* the stack. However, in PCx86, all you have to do is enable Debugger messages on every serial interrupt
* and mouse event, eg:
*
* m serial on;m pic on;m mouse on
*
* to slow the machine down to the point where serial mouse interrupts overwhelm the ISR. The Debugger messages
* display the current stack pointer, which you can watch drop to zero and then wrap around, no doubt trampling
* lots of code and data along the way.
*
* This problem could also occur without being forced by the Debugger; eg, if your physical machine's mouse was
* configured for a high interrupt rate, and your browser generated mouse events at a comparable rate, then you
* could blow the simulation's stack.
*/
/*
* Receiver Buffer Register (RBR.REG, offset 0; eg, 0x3F8 or 0x2F8) on read, Transmitter Holding Register on write
*/
@ -56050,8 +56095,9 @@ SerialPort.MCR.UNUSED = 0xE0; // always zero
/*
* Line Status Register (LSR.REG, offset 5; eg, 0x3FD or 0x2FD)
*
* NOTE: I've seen different specs for the LSR_TSRE. I'm following the IBM Tech Ref's lead here, but the data sheet I have calls it TEMT
* instead of TSRE, and claims that it is set whenever BOTH the THR and TSR are empty, and clear whenever EITHER the THR or TSR contain data.
* NOTE: I've seen different specs for the LSR_TSRE. I'm following the IBM Tech Ref's lead here, but the data sheet
* I have calls it TEMT instead of TSRE, and claims that it is set whenever BOTH the THR and TSR are empty, and clear
* whenever EITHER the THR or TSR contain data.
*/
SerialPort.LSR = {};
SerialPort.LSR.REG = 5; // Line Status Register

View file

@ -65,7 +65,7 @@ function Ia(a){if(!Ja){var b,c={};if(window){b||(b=window.location.search.substr
function Ka(a,b,c,d){var e=null;b="data:application/"+b+(c?";base64":"")+",";b=Ea("Firefox")?b+(c?a:encodeURIComponent(a)):b+(c?a:encodeURI(a));d&&(e=document.createElement("a"),"string"!=typeof e.download&&(e=null));e?(e.href=b,e.download=d,document.body.appendChild(e),e.click(),document.body.removeChild(e),a="Check your Downloads folder for "+d+"."):(window.open(b),a="Check your browser for a new window/tab containing the requested data"+(d?" ("+d+")":"")+".");return a}
function La(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ma(a){Na.init.push(a)}function Oa(a){if(Pa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){q(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Qa(a){!Pa&&a?(Pa=!0,Ra&&Sa("init"),Ta&&Sa("show")):Pa=a}function Sa(a){Na[a]&&Oa(Na[a])}
var Ja=null,Na={init:[],show:[],exit:[]},Ga=["","moz","ms","webkit"],Ra=!1,Ta=!1,Pa=!0,Ba=null;La("onload",function(){Ra=!0;Oa(Na.init)});La("onpageshow",function(){Ta=!0;Oa(Na.show)});La(Ea("iOS")?"onpagehide":Ea("Opera")?"onunload":"onbeforeunload",function(){Oa(Na.exit)});
function u(a,b){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.ki=b.comment;this.Dj=b;this.exports={};this.ia=this.bindings={};a=this.id.indexOf(".");0>a?this.Be=this.id:(this.Cd=this.id.substr(0,a),this.Be=this.id.substr(a+1));this.X={ready:!1,Ho:!1,Io:!1,Je:!1,Sb:!1,Yd:!1,error:!1};this.Df=null;this.X.error=!1;this.Ea=this.R=this.oa=this.na=null;Ua.push(this)}function Va(a,b,c){Wa[a]&&b&&(Wa[a][b]=c)}function q(a){window&&window.alert(a)}
function u(a,b){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.ki=b.comment;this.Dj=b;this.exports={};this.ia=this.bindings={};a=this.id.indexOf(".");0>a?this.Ce=this.id:(this.Cd=this.id.substr(0,a),this.Ce=this.id.substr(a+1));this.X={ready:!1,Ho:!1,Io:!1,Ke:!1,Sb:!1,Yd:!1,error:!1};this.Df=null;this.X.error=!1;this.Ea=this.R=this.oa=this.na=null;Ua.push(this)}function Va(a,b,c){Wa[a]&&b&&(Wa[a][b]=c)}function q(a){window&&window.alert(a)}
function Xa(a){var b=!1;window&&(b=window.confirm(a));return b}function Ya(a,b){a.value+=b;b=a.value;8192<b.length&&(a.value=b.substr(b.length-4096));a.scrollTop=a.scrollHeight}function Za(a,b,c){var d=a.value,e=d.lastIndexOf(b);0>e?d+=b+"\n":d=d.substr(0,e)+c+d.substr(e+b.length);8192<d.length&&(d=d.substr(d.length-4096));a.value=d;a.scrollTop=a.scrollHeight}function $a(a,b,c){var d;b&&(void 0===d&&(d="Panel"),(d=ab(d,a.id))&&(b=d.ia[b])&&a.Ab(null,c,b))}
function bb(a,b){b=cb(b.parentNode,"pcx86-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,e=0;e<d.length;e++){var f=d[e];if(1===f.nodeType){var g=f.getAttribute("class");if(g)for(var h=g.split(" "),k=0;k<h.length;k++)switch(g=h[k],g){case "pcx86-binding":(g=db(f))&&g.binding&&a.Ab(g.type,g.binding,f,g.value),k=h.length}}}}function eb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<Ua.length;b++){var d=Ua[b];a&&d.id.indexOf(a)||c.push(d)}return c}
function fb(a,b){if(void 0!==a){var c;b&&0<(c=b.indexOf("."))&&(a=b.substr(0,c+1)+a);for(c=0;c<Ua.length;c++)if(Ua[c].id===a)return Ua[c]}return null}function ab(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<Ua.length;d++)if(c)c==Ua[d]&&(c=null);else if(!(a!=Ua[d].type||b&&Ua[d].id.indexOf(b)))return Ua[d]}return null}function db(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){q(c.message+" ("+a+")")}return b}
@ -79,60 +79,60 @@ l.Qb=function(a,b){b&&(this.X.Sb=!1);return!0};var mb={ERROR:"error",ro:"notice"
var Wa=window?window.PCjs.Machines:{},Ua=window?window.PCjs.Components:[],hb=window?window.PCjs.Commands:{},jb=["hold","sleep","wait"],kb={alert:function(a){q(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},lb={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
var pb="undefined"!==typeof ArrayBuffer,qb={Of:4,gc:5,$c:6,Bc:7,Cc:8,Pa:9,Mb:11,Nb:12,Pd:4,Ai:60,Bi:83,$b:3,zb:9,nc:16,Nf:1,Fi:19,Hi:28,Ji:16,Ii:21,Gi:37,Di:2,zg:9,Ei:5,Ci:33,Bg:10,Ag:8,Re:3,Qe:15,Xi:51,Yi:1,Zi:2,$i:4,Wi:32,Cg:15,bj:15,Ja:16,Ka:4,dj:11,cj:18,aj:24,Ob:4,ej:2,te:16,fj:17,Hg:18,gj:19,Gg:5,Ig:6,lj:2,kj:8,ij:9,jj:10,hj:10,Jg:10,Kg:10,Li:80,Ni:144,Ki:86,Mi:154,Pi:101,Ri:165,Oi:107,Qi:171,nj:70,pj:113,mj:76,oj:124,Ti:80,Vi:128,Si:86,Ui:134,Te:3,Se:16,Pg:10,Og:8,qj:51,ac:8,rj:17,sj:36,tc:11,
tj:16,Qd:10,Hc:2,wg:18,xg:7,yg:15,Dg:12,Eg:7,Fg:11,Lg:18,Mg:7,Ng:15,Qg:15,Rg:7,Sg:13,Wg:11,Xg:7,Yg:8,uj:8,xj:12,vj:18,wj:17,yj:15,Ug:8,Tg:20,Vg:2,ah:3,Ue:9,$g:5,Zg:11,dh:4,bh:17,zj:11},rb={Of:0,gc:0,$c:0,Bc:0,Cc:0,Pa:0,Mb:1,Nb:1,Pd:3,Ai:14,Bi:16,$b:2,zb:7,nc:7,Nf:0,Fi:7,Hi:13,Ji:7,Ii:11,Gi:16,Di:3,zg:6,Ei:2,Ci:13,Bg:5,Ag:5,Re:2,Qe:7,Xi:23,Yi:0,Zi:1,$i:3,Wi:17,Cg:7,bj:11,Ja:7,Ka:3,dj:7,cj:11,aj:15,Ob:2,ej:3,te:7,fj:8,Hg:8,gj:8,Gg:4,Ig:4,lj:2,kj:3,ij:5,jj:2,hj:3,Jg:5,Kg:3,Li:14,Ni:22,Ki:17,Mi:25,Pi:17,
Ri:25,Oi:20,Qi:28,nj:13,pj:21,mj:16,oj:24,Ti:13,Vi:21,Si:16,Ui:24,Te:2,Se:7,Pg:5,Og:5,qj:19,ac:5,rj:5,sj:17,tc:3,tj:5,Qd:3,Hc:0,wg:8,xg:5,yg:9,Dg:5,Eg:5,Fg:4,Lg:5,Mg:5,Ng:4,Qg:7,Rg:5,Sg:8,Wg:3,Xg:4,Yg:3,uj:11,xj:11,vj:15,wj:15,yj:7,Ug:5,Tg:8,Vg:0,ah:2,Ue:6,$g:3,Zg:6,dh:3,bh:5,zj:5};function sb(a){u.call(this,"Panel",a);this.mh=this.A=this.B=this.G=-1}ca(sb,u);l=sb.prototype;l.kc=function(a,b,c,d){this.na=a;this.oa=b;this.R=c;this.Ea=d;this.C=tb(a,"Keyboard")};
var pb="undefined"!==typeof ArrayBuffer,qb={Of:4,gc:5,$c:6,Bc:7,Cc:8,Pa:9,Mb:11,Nb:12,Pd:4,Ai:60,Bi:83,$b:3,zb:9,nc:16,Nf:1,Fi:19,Hi:28,Ji:16,Ii:21,Gi:37,Di:2,zg:9,Ei:5,Ci:33,Bg:10,Ag:8,Se:3,Re:15,Xi:51,Yi:1,Zi:2,$i:4,Wi:32,Cg:15,bj:15,Ja:16,Ka:4,dj:11,cj:18,aj:24,Ob:4,ej:2,te:16,fj:17,Hg:18,gj:19,Gg:5,Ig:6,lj:2,kj:8,ij:9,jj:10,hj:10,Jg:10,Kg:10,Li:80,Ni:144,Ki:86,Mi:154,Pi:101,Ri:165,Oi:107,Qi:171,nj:70,pj:113,mj:76,oj:124,Ti:80,Vi:128,Si:86,Ui:134,Ue:3,Te:16,Pg:10,Og:8,qj:51,ac:8,rj:17,sj:36,tc:11,
tj:16,Qd:10,Hc:2,wg:18,xg:7,yg:15,Dg:12,Eg:7,Fg:11,Lg:18,Mg:7,Ng:15,Qg:15,Rg:7,Sg:13,Wg:11,Xg:7,Yg:8,uj:8,xj:12,vj:18,wj:17,yj:15,Ug:8,Tg:20,Vg:2,ah:3,Ve:9,$g:5,Zg:11,dh:4,bh:17,zj:11},rb={Of:0,gc:0,$c:0,Bc:0,Cc:0,Pa:0,Mb:1,Nb:1,Pd:3,Ai:14,Bi:16,$b:2,zb:7,nc:7,Nf:0,Fi:7,Hi:13,Ji:7,Ii:11,Gi:16,Di:3,zg:6,Ei:2,Ci:13,Bg:5,Ag:5,Se:2,Re:7,Xi:23,Yi:0,Zi:1,$i:3,Wi:17,Cg:7,bj:11,Ja:7,Ka:3,dj:7,cj:11,aj:15,Ob:2,ej:3,te:7,fj:8,Hg:8,gj:8,Gg:4,Ig:4,lj:2,kj:3,ij:5,jj:2,hj:3,Jg:5,Kg:3,Li:14,Ni:22,Ki:17,Mi:25,Pi:17,
Ri:25,Oi:20,Qi:28,nj:13,pj:21,mj:16,oj:24,Ti:13,Vi:21,Si:16,Ui:24,Ue:2,Te:7,Pg:5,Og:5,qj:19,ac:5,rj:5,sj:17,tc:3,tj:5,Qd:3,Hc:0,wg:8,xg:5,yg:9,Dg:5,Eg:5,Fg:4,Lg:5,Mg:5,Ng:4,Qg:7,Rg:5,Sg:8,Wg:3,Xg:4,Yg:3,uj:11,xj:11,vj:15,wj:15,yj:7,Ug:5,Tg:8,Vg:0,ah:2,Ve:6,$g:3,Zg:6,dh:3,bh:5,zj:5};function sb(a){u.call(this,"Panel",a);this.mh=this.A=this.B=this.G=-1}ca(sb,u);l=sb.prototype;l.kc=function(a,b,c,d){this.na=a;this.oa=b;this.R=c;this.Ea=d;this.C=tb(a,"Keyboard")};
l.Ab=function(a,b,c,d){return this.na&&this.na.Ab(a,b,c,d)||this.R&&this.R.Ab(a,b,c,d)||this.C&&this.C.Ab(a,b,c,d)?!0:u.prototype.Ab.call(this,a,b,c,d)};l.Rb=function(a,b){b||ub();return!0};l.Qb=function(){return!0};l.ie=function(a,b){a.button||(this.G=b?0:-1,vb(this,a,b))};l.ng=function(a){vb(this,a)};
function vb(a,b,c){var d=wb/null.offsetWidth,e=xb/null.offsetHeight,f=null.getBoundingClientRect(),d=(b.clientX-f.left)*d|0;b=(b.clientY-f.top)*e|0;null==c&&(a.G||(a.G=Math.abs(a.A-d)>Math.abs(a.B-b)?1:2),1==a.G?b=a.B:2==a.G&&(d=a.A));a.A=d;a.B=b;if(0<=d&&d<wb&&0<=b&&b<xb){a:{c=d;if(c<yb&&a.F&&a.F.Th)for(f=0;f<a.F.Th.length;f++)if(e=a.F.Th[f],e.contains(c,b)){c-=e.x;b-=e.y;var f=a.F.Fo[f],g,d=zb.Pl;g=(a.F.Eo[f.Lo]&d.Il)>>d.shift;d=g*a.oa.A;f=(g+f.Jo)*a.oa.A-1;0<b&&(d+=e.Ko*(b-1)*a.fa);d+=c*a.fa;d|=
0;d>f&&(d=f);c=d;break a}c=-1}if(-1!==c&&(c&=-16,c!=a.M)){b=c;if(a.context&&a.J&&a.K){e=Ab-Bb;f=a.J.width;a.K.fillStyle=Cb;a.K.fillRect(0,e,f,Bb);d=e+Db;g=a.J;var h=a.K,k,m=null.style.color,r=a.ja=10;a.D=r;a.I=d;a.ba=a.aa=Db;k||(k=a.W||a.aa+"px "+Eb);a.Y=a.W=k;g&&(a.N=g);h&&(a.H=h,a.U=m||"white");a.L=a.N.width/24|0;if(null==b)Fb(a,"Mouse over memory to dump");else for(Fb(a,ja(b,8,!0),null,0,1),k=1;16>=k;k++){d="";for(g=1;8>=g;g++)h=a.oa,m=b++,h=h.Y[(m&h.D)>>>h.B].Bd(m&h.C,m),Fb(a,ja(h,2),null,1),
d+=32<=h&&128>h?String.fromCharCode(h):".";Fb(a,d,null,0,1)}a.context.drawImage(a.J,0,e,f,Bb,a.pa,a.ra,a.la,a.qa)}a.M=c}}}function Fb(a,b,c,d,e){a.H.font=a.Y;a.H.fillStyle=a.U;a.H.fillText(b,a.D,a.I);a.D+=a.L;null!=c&&(16!=a.ma?b=c.toString():(b=8>a.da?"0x":"",b+=ja(c,a.da)),a.H.fillText(b,a.D,a.I),a.D+=a.L);d&&(a.D+=a.L*d);e&&(a.D=a.ja,a.I+=(a.ba+2)*(e||1))}
function ub(){for(var a=!1,b=cb(document,"pcx86","panel"),c=0;c<b.length;c++){var d=b[c],e=db(d),f=fb(e.id);f||(a=!0,f=new sb(e));bb(f,d);a&&v(f)}}var wb=1280,xb=720,Db=18,Eb="Monaco, Lucida Console, Courier New",yb=3*wb>>2,Ab=xb,Cb="black",Bb=xb>>1;Ma(ub);
function Gb(a,b,c){u.call(this,"Bus",a);this.R=b;this.Ea=c;this.F=a.busWidth||20;this.N=Math.pow(2,this.F);this.W=this.D=this.N-1|0;this.B=32==this.F||20>=this.F?12:24>=this.F?14:15;this.A=1<<this.B;this.U=this.A>>2;this.C=this.A-1;this.H=this.N/this.A|0;this.K=this.H-1;this.I=[];this.J=[];this.L=[];this.M=[];a=new w;Hb(a,this.Ea);this.Y=Array(this.H);for(b=0;b<this.H;b++)this.Y[b]=a;a=this.R;b=this.Y;c=this.B;a.Nc=a.Y=b;a.Eb=c;a.Rh=1<<a.Eb;a.Db=a.Rh-1;a.jf=b.length;a.ze=a.jf-1;a=this.R;a.Ae=a.Dc=
function Gb(a,b,c){u.call(this,"Bus",a);this.R=b;this.Ea=c;this.F=a.busWidth||20;this.N=Math.pow(2,this.F);this.W=this.D=this.N-1|0;this.B=32==this.F||20>=this.F?12:24>=this.F?14:15;this.A=1<<this.B;this.U=this.A>>2;this.C=this.A-1;this.H=this.N/this.A|0;this.K=this.H-1;this.I=[];this.J=[];this.L=[];this.M=[];a=new w;Hb(a,this.Ea);this.Y=Array(this.H);for(b=0;b<this.H;b++)this.Y[b]=a;a=this.R;b=this.Y;c=this.B;a.Nc=a.Y=b;a.Eb=c;a.Rh=1<<a.Eb;a.Db=a.Rh-1;a.jf=b.length;a.Ae=a.jf-1;a=this.R;a.Be=a.Dc=
this.D;v(this)}ca(Gb,u);l=Gb.prototype;l.reset=function(){Ib(this,!0)};l.Rb=function(a,b){b||this.reset();return!0};
function Jb(a,b,c,d,e){for(var f=b,g=c,h=f>>>a.B;0<g&&h<a.Y.length;){var k=a.Y[h],m=h*a.A,r=a.A-(f-m);r>g&&(r=g);if(k&&k.size){if(k.type==d&&k.controller==e){if(f+g<=k.ee)return k.xe+=k.ee-f,k.ee=f,!0;if(f>=k.ee+k.xe){r=k.size-(f-m);r>g&&(r=g);k.xe=f-k.ee+r;f=m+a.A;g-=r;h++;continue}}return Kb(a,Lb,f,g)}f=new w(f,r,a.A,d,e);Hb(f,a.Ea,k);a.Y[h++]=f;f=m+a.A;g-=r}return 0>=g?(e=a.R,e.pa&-2147483648&&Mb(e),a.R.X.cb||(e=c/1024|0,a.status((e?e+"Kb ":c+" bytes ")+Nb[d]+" at "+ja(b))),!0):Kb(a,Pb,b,c)}
function Ib(a,b){32==a.F?b?a.G&&(Qb(a,1048576,1048576,a.G),a.G=null):a.G||(a.G=Rb(a,1048576,1048576),Qb(a,1048576,1048576,Rb(a,0,1048576))):20<a.F&&(b=a.D&-1048577|(b?1048576:0),b!=a.D&&(a.D=b,a.R&&(a=a.R,a.Ae=a.Dc=b)))}l.Yf=function(a,b,c,d){if(!(a&this.C||!b||b&this.C)){for(var e=a>>>this.B;0<b;){var f=this.Y[e];if(!f.controller)return Kb(this,Sb,a,b,d);Tb(f,c,!0);b-=this.A;e++}return!0}return Kb(this,Ub,a,b)};
function Jb(a,b,c,d,e){for(var f=b,g=c,h=f>>>a.B;0<g&&h<a.Y.length;){var k=a.Y[h],m=h*a.A,r=a.A-(f-m);r>g&&(r=g);if(k&&k.size){if(k.type==d&&k.controller==e){if(f+g<=k.ee)return k.ye+=k.ee-f,k.ee=f,!0;if(f>=k.ee+k.ye){r=k.size-(f-m);r>g&&(r=g);k.ye=f-k.ee+r;f=m+a.A;g-=r;h++;continue}}return Kb(a,Lb,f,g)}f=new w(f,r,a.A,d,e);Hb(f,a.Ea,k);a.Y[h++]=f;f=m+a.A;g-=r}return 0>=g?(e=a.R,e.pa&-2147483648&&Mb(e),a.R.X.cb||(e=c/1024|0,a.status((e?e+"Kb ":c+" bytes ")+Nb[d]+" at "+ja(b))),!0):Kb(a,Pb,b,c)}
function Ib(a,b){32==a.F?b?a.G&&(Qb(a,1048576,1048576,a.G),a.G=null):a.G||(a.G=Rb(a,1048576,1048576),Qb(a,1048576,1048576,Rb(a,0,1048576))):20<a.F&&(b=a.D&-1048577|(b?1048576:0),b!=a.D&&(a.D=b,a.R&&(a=a.R,a.Be=a.Dc=b)))}l.Yf=function(a,b,c,d){if(!(a&this.C||!b||b&this.C)){for(var e=a>>>this.B;0<b;){var f=this.Y[e];if(!f.controller)return Kb(this,Sb,a,b,d);Tb(f,c,!0);b-=this.A;e++}return!0}return Kb(this,Ub,a,b)};
function Vb(a,b,c){if(!(b&a.C||!c||c&a.C)){for(var d=b>>>a.B;0<c;){var e=a.Y[d];b=new w(b);Hb(b,a.Ea,e);a.Y[d++]=b;b=d*a.A;c-=a.A}a=a.R;a.pa&-2147483648&&Mb(a);return!0}return Kb(a,Wb,b,c)}function Rb(a,b,c){var d=[];for(b>>>=a.B;0<c&&b<a.Y.length;)d.push(a.Y[b++]),c-=a.A;return d}
function Qb(a,b,c,d,e){for(var f=0,g=b>>>a.B;0<c&&g<a.Y.length;){var h=d[f++];if(!h)break;if(void 0!==e){var k=new w(b),m=k,r=e,y=a.Ea;m.id=h.id|1;m.xe=h.xe;m.size=h.size;r&&(m.type=r,m.H=r==Xb);pb?(m.L=h.L,m.K=h.K,m.Ha=h.Ha,m.ud=h.ud,m.S=h.S,Tb(m,Yb?Zb:$b)):(m.S=h.S,Tb(m,ac));Hb(m,y,h);h=k}a.Y[g++]=h;c-=a.A}}l.Ia=function(a){return this.Y[(a&this.D)>>>this.B].oc(a&this.C,a)};function bc(a,b){var c=b&a.C,d=(b&a.D)>>>a.B;return c!=a.C?a.Y[d].$e(c,b):a.Y[d++].Bd(c,b)|a.Y[d&a.K].Bd(0,b+1)<<8}
function Qb(a,b,c,d,e){for(var f=0,g=b>>>a.B;0<c&&g<a.Y.length;){var h=d[f++];if(!h)break;if(void 0!==e){var k=new w(b),m=k,r=e,y=a.Ea;m.id=h.id|1;m.ye=h.ye;m.size=h.size;r&&(m.type=r,m.H=r==Xb);pb?(m.L=h.L,m.K=h.K,m.Ha=h.Ha,m.ud=h.ud,m.S=h.S,Tb(m,Yb?Zb:$b)):(m.S=h.S,Tb(m,ac));Hb(m,y,h);h=k}a.Y[g++]=h;c-=a.A}}l.Ia=function(a){return this.Y[(a&this.D)>>>this.B].oc(a&this.C,a)};function bc(a,b){var c=b&a.C,d=(b&a.D)>>>a.B;return c!=a.C?a.Y[d].af(c,b):a.Y[d++].Bd(c,b)|a.Y[d&a.K].Bd(0,b+1)<<8}
l.Bb=function(a,b){this.Y[(a&this.D)>>>this.B].pc(a&this.C,b&255,a)};function cc(a,b,c){var d=b&a.C,e=(b&a.D)>>>a.B;d!=a.C?a.Y[e].qh(d,c&65535,b):(a.Y[e++].ef(d,c&255,b),a.Y[e&a.K].ef(0,c>>8&255,b+1))}
function dc(a,b){var c=0,d=[],e=!a.G&&a.W==a.D;e||Ib(a,!0);for(var f=0;f<a.H;f++){var g=a.Y[f];if(b&&g.type!=Xb||g.Fa||g.hi){d[c++]=f;var h=c++;if(g=g.save()){for(var k=0,m=0,r=[];k<g.length;){for(var y=g[k],t=k+1;t<g.length&&g[t]===y;)t++;r[m++]=t-k;r[m++]=y;k=t}r.length<g.length&&(g=r)}d[h]=g}}e||Ib(a,!1);d[c]=e;return d}
function ec(a,b,c,d){void 0===d&&(d=0);for(var e in c){var f=a,g=+e+d,h=c[e].bind(b);if(h)for(var k=+e+d;k<=g;k++)void 0!==f.I[k]?q("Input port "+ja(k,4,!0)+" already registered"):f.I[k]=[h,!1]}}function fc(a,b,c,d){for(var e=0,f=0;0<c;){var g=a.I[b],h=a.L[b]||1,k=1==h?255:2==h?65535:-1,m=k;void 0!==g&&g[0]&&(m=g[0](b,d),null==m?m=k:m&=k);e|=m<<f;f+=h<<3;b+=h;c-=h}return e}
function gc(a,b,c,d){void 0===d&&(d=0);for(var e in c){var f=a,g=+e+d,h=c[e].bind(b);if(h)for(var k=+e+d;k<=g;k++)void 0!==f.J[k]?q("Output port "+ja(k,4,!0)+" already registered"):f.J[k]=[h,!1]}}function hc(a,b,c,d,e){for(var f=0;0<c;){var g=a.J[b],h=a.M[b]||1,k=1==h?255:2==h?65535:-1,k=(d>>>=f)&k;if(void 0!==g&&g[0])g[0](b,k,e);f+=h<<3;b+=h;c-=h}}function Kb(a,b,c,d,e){b="Memory block error ("+b+": "+ja(c)+","+ja(d)+")";e?a.Ea?a.Ea.message(b):a.log(b):q(b);return!1}
var zb,ic={Pl:20,count:8,Go:1,type:3},jc=0,kc;for(kc in ic){var lc=ic[kc];ic[kc]={Il:(1<<lc)-1<<jc,shift:jc};jc+=lc}zb=ic;var Lb=1,Pb=2,Sb=3,Ub=4,Wb=5,mc;if(pb){var nc=new ArrayBuffer(2);(new DataView(nc)).setUint16(0,256,!0);mc=256===(new Uint16Array(nc))[0]}else mc=!1;var Yb=mc;
function w(a,b,c,d,e,f){this.id=oc+=2;this.S=null;this.G=0;this.ee=a;this.xe=b;this.size=c||0;this.type=d||pc;this.H=d==Xb;this.controller=null;this.F=f;Hb(this);this.Fa=this.hi=!1;if(c)if(e)this.controller=e,a=e.mi(a),this.S=a[0],this.G=a[1],Tb(this,e.lg());else if(pb)this.L=new ArrayBuffer(c),this.K=new DataView(this.L,0,c),this.Ha=new Uint8Array(this.L,0,c),this.ud=new Uint16Array(this.L,0,c>>1),this.S=new Int32Array(this.L,0,c>>2),Tb(this,Yb?Zb:$b);else{this.S=Array(c>>2);for(e=0;e<this.S.length;e++)this.S[e]=
function w(a,b,c,d,e,f){this.id=oc+=2;this.S=null;this.G=0;this.ee=a;this.ye=b;this.size=c||0;this.type=d||pc;this.H=d==Xb;this.controller=null;this.F=f;Hb(this);this.Fa=this.hi=!1;if(c)if(e)this.controller=e,a=e.mi(a),this.S=a[0],this.G=a[1],Tb(this,e.lg());else if(pb)this.L=new ArrayBuffer(c),this.K=new DataView(this.L,0,c),this.Ha=new Uint8Array(this.L,0,c),this.ud=new Uint16Array(this.L,0,c>>1),this.S=new Int32Array(this.L,0,c>>2),Tb(this,Yb?Zb:$b);else{this.S=Array(c>>2);for(e=0;e<this.S.length;e++)this.S[e]=
0;Tb(this,ac)}else Tb(this)}l=w.prototype;l.yl=function(a){this.ee=a};l.save=function(){var a,b;if(this.controller)a=null;else if(pb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.K.getInt32(b<<2,!0);else a=this.S;return a};l.restore=function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(pb)for(b=0;b<a.length;b++)this.K.setInt32(b<<2,a[b],!0);else this.S=a;return this.Fa=!0}return!1};function Tb(a,b,c){b||(b=a.type==qc?sc:a.type==tc?uc:vc);wc(a,b,c);xc(a,b,c)}
function wc(a,b,c){c&&a.fe||(a.oc=b[0]||a.Hj,a.Ze=b[2]||a.Ij,a.Rd=b[4]||a.Fj);if(c||void 0===c)a.Bd=b[0]||a.Hj,a.$e=b[2]||a.Ij,a.hh=b[4]||a.Fj}function xc(a,b,c){c&&a.ge||(a.pc=!a.H&&b[1]||a.oh,a.gf=!a.H&&b[3]||a.ph,a.ff=!a.H&&b[5]||a.nh);if(c||void 0===c)a.ef=b[1]||a.oh,a.qh=b[3]||a.ph,a.R=b[5]||a.nh}function Hb(a,b,c){a.Ea=b;a.fe=a.ge=0;c&&(c.F&&(a.F=c.F),(a.fe=c.fe)&&wc(a,yc,!1),(a.ge=c.ge)&&xc(a,yc,!1))}l.Hj=function(){return 255};l.oh=function(){};
function wc(a,b,c){c&&a.fe||(a.oc=b[0]||a.Hj,a.$e=b[2]||a.Ij,a.Rd=b[4]||a.Fj);if(c||void 0===c)a.Bd=b[0]||a.Hj,a.af=b[2]||a.Ij,a.hh=b[4]||a.Fj}function xc(a,b,c){c&&a.ge||(a.pc=!a.H&&b[1]||a.oh,a.gf=!a.H&&b[3]||a.ph,a.ff=!a.H&&b[5]||a.nh);if(c||void 0===c)a.ef=b[1]||a.oh,a.qh=b[3]||a.ph,a.R=b[5]||a.nh}function Hb(a,b,c){a.Ea=b;a.fe=a.ge=0;c&&(c.F&&(a.F=c.F),(a.fe=c.fe)&&wc(a,yc,!1),(a.ge=c.ge)&&xc(a,yc,!1))}l.Hj=function(){return 255};l.oh=function(){};
l.Ij=function(a,b){return this.oc(a++,b++)|this.oc(a,b)<<8};l.Fj=function(a,b){return this.oc(a++,b++)|this.oc(a++,b++)<<8|this.oc(a++,b++)<<16|this.oc(a,b)<<24};l.ph=function(a,b,c){this.pc(a++,b&255,c++);this.pc(a,b>>8,c)};l.nh=function(a,b,c){this.pc(a++,b&255,c++);this.pc(a++,b>>8&255,c++);this.pc(a++,b>>16&255,c++);this.pc(a,b>>>24,c)};l.Um=function(a){return this.S[a>>2]>>>((a&3)<<3)&255};
l.fn=function(a){var b=a>>2;a=(a&3)<<3;var c=this.S[b]>>a;return 24>a?c&65535:c&255|(this.S[b+1]&255)<<8};l.$m=function(a){var b=a>>2;a=(a&3)<<3;var c=this.S[b];a&&(c=c>>>a|this.S[b+1]<<32-a);return c};l.vn=function(a,b){var c=a>>2;a=(a&3)<<3;this.S[c]=this.S[c]&~(255<<a)|b<<a;this.Fa=!0};l.Hn=function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.S[c]=this.S[c]&~(65535<<a)|b<<a:(this.S[c]=this.S[c]&16777215|b<<24,c++,this.S[c]=this.S[c]&-256|b>>8);this.Fa=!0};
l.Bn=function(a,b){var c=a>>2;if(a=(a&3)<<3){var d=-1<<a;this.S[c]=this.S[c]&~d|b<<a;c++;this.S[c]=this.S[c]&d|b>>>32-a}else this.S[c]=b;this.Fa=!0};l.Tm=function(a,b){this.F&&zc(this.F,b,1,!1);return this.Bd(a,b)};l.en=function(a,b){this.F&&zc(this.F,b,2,!1);return this.$e(a,b)};l.Zm=function(a,b){this.F&&zc(this.F,b,4,!1);return this.hh(a,b)};l.un=function(a,b,c){this.F&&zc(this.F,c,1,!0);this.H||this.ef(a,b,c)};l.Gn=function(a,b,c){this.F&&zc(this.F,c,2,!0);this.H||this.qh(a,b,c)};
l.An=function(a,b,c){this.F&&zc(this.F,c,4,!0);this.H||this.R(a,b,c)};l.Wm=function(a,b){this.A.S[this.C]|=this.I;this.B.S[this.D]|=this.I;return this.J.oc(a,b)};l.hn=function(a,b){this.A.S[this.C]|=this.I;this.B.S[this.D]|=this.I;return this.J.Ze(a,b)};l.bn=function(a,b){this.A.S[this.C]|=this.I;this.B.S[this.D]|=this.I;return this.J.Rd(a,b)};l.xn=function(a,b,c){this.A.S[this.C]|=this.I;this.B.S[this.D]|=this.M;this.J.pc(a,b,c)};
l.Jn=function(a,b,c){this.A.S[this.C]|=this.I;this.B.S[this.D]|=this.M;this.J.gf(a,b,c)};l.Dn=function(a,b,c){this.A.S[this.C]|=this.I;this.B.S[this.D]|=this.M;this.J.ff(a,b,c)};l.Xm=function(a,b){return Ac(this.F,b,!1).oc(a,b)};l.jn=function(a,b){return Ac(this.F,b,!1).Ze(a,b)};l.cn=function(a,b){return Ac(this.F,b,!1).Rd(a,b)};l.yn=function(a,b,c){Ac(this.F,c,!0).pc(a,b,c)};l.Kn=function(a,b,c){Ac(this.F,c,!0).gf(a,b,c)};l.En=function(a,b,c){Ac(this.F,c,!0).ff(a,b,c)};l.Sm=function(a){return this.Ha[a]};
l.Ej=function(a){return this.Ha[a]};l.Vm=function(a){this.A.S[this.C]|=32;this.B.S[this.D]|=32;this.oc=this.Ej;return this.Ha[a]};l.dn=function(a){return this.K.getUint16(a,!0)};l.Jj=function(a){return a&1?this.Ha[a]|this.Ha[a+1]<<8:this.ud[a>>1]};l.gn=function(a){this.A.S[this.C]|=32;this.B.S[this.D]|=32;this.Ze=this.Jj;return a&1?this.Ha[a]|this.Ha[a+1]<<8:this.ud[a>>1]};l.Ym=function(a){return this.K.getInt32(a,!0)};
l.Bn=function(a,b){var c=a>>2;if(a=(a&3)<<3){var d=-1<<a;this.S[c]=this.S[c]&~d|b<<a;c++;this.S[c]=this.S[c]&d|b>>>32-a}else this.S[c]=b;this.Fa=!0};l.Tm=function(a,b){this.F&&zc(this.F,b,1,!1);return this.Bd(a,b)};l.en=function(a,b){this.F&&zc(this.F,b,2,!1);return this.af(a,b)};l.Zm=function(a,b){this.F&&zc(this.F,b,4,!1);return this.hh(a,b)};l.un=function(a,b,c){this.F&&zc(this.F,c,1,!0);this.H||this.ef(a,b,c)};l.Gn=function(a,b,c){this.F&&zc(this.F,c,2,!0);this.H||this.qh(a,b,c)};
l.An=function(a,b,c){this.F&&zc(this.F,c,4,!0);this.H||this.R(a,b,c)};l.Wm=function(a,b){this.A.S[this.C]|=this.I;this.B.S[this.D]|=this.I;return this.J.oc(a,b)};l.hn=function(a,b){this.A.S[this.C]|=this.I;this.B.S[this.D]|=this.I;return this.J.$e(a,b)};l.bn=function(a,b){this.A.S[this.C]|=this.I;this.B.S[this.D]|=this.I;return this.J.Rd(a,b)};l.xn=function(a,b,c){this.A.S[this.C]|=this.I;this.B.S[this.D]|=this.M;this.J.pc(a,b,c)};
l.Jn=function(a,b,c){this.A.S[this.C]|=this.I;this.B.S[this.D]|=this.M;this.J.gf(a,b,c)};l.Dn=function(a,b,c){this.A.S[this.C]|=this.I;this.B.S[this.D]|=this.M;this.J.ff(a,b,c)};l.Xm=function(a,b){return Ac(this.F,b,!1).oc(a,b)};l.jn=function(a,b){return Ac(this.F,b,!1).$e(a,b)};l.cn=function(a,b){return Ac(this.F,b,!1).Rd(a,b)};l.yn=function(a,b,c){Ac(this.F,c,!0).pc(a,b,c)};l.Kn=function(a,b,c){Ac(this.F,c,!0).gf(a,b,c)};l.En=function(a,b,c){Ac(this.F,c,!0).ff(a,b,c)};l.Sm=function(a){return this.Ha[a]};
l.Ej=function(a){return this.Ha[a]};l.Vm=function(a){this.A.S[this.C]|=32;this.B.S[this.D]|=32;this.oc=this.Ej;return this.Ha[a]};l.dn=function(a){return this.K.getUint16(a,!0)};l.Jj=function(a){return a&1?this.Ha[a]|this.Ha[a+1]<<8:this.ud[a>>1]};l.gn=function(a){this.A.S[this.C]|=32;this.B.S[this.D]|=32;this.$e=this.Jj;return a&1?this.Ha[a]|this.Ha[a+1]<<8:this.ud[a>>1]};l.Ym=function(a){return this.K.getInt32(a,!0)};
l.Gj=function(a){return a&3?this.Ha[a]|this.Ha[a+1]<<8|this.Ha[a+2]<<16|this.Ha[a+3]<<24:this.S[a>>2]};l.an=function(a){this.A.S[this.C]|=32;this.B.S[this.D]|=32;this.Rd=this.Gj;return a&3?this.Ha[a]|this.Ha[a+1]<<8|this.Ha[a+2]<<16|this.Ha[a+3]<<24:this.S[a>>2]};l.tn=function(a,b){this.Ha[a]=b;this.Fa=!0};l.Qj=function(a,b){this.Ha[a]=b;this.Fa=!0};l.wn=function(a,b){this.Ha[a]=b;this.A.S[this.C]|=32;this.B.S[this.D]|=96;this.pc=this.Qj;this.J.Fa=!0};
l.Fn=function(a,b){this.K.setUint16(a,b,!0);this.Fa=!0};l.Sj=function(a,b){a&1?(this.Ha[a]=b,this.Ha[a+1]=b>>8):this.ud[a>>1]=b;this.Fa=!0};l.In=function(a,b){a&1?(this.Ha[a]=b,this.Ha[a+1]=b>>8):this.ud[a>>1]=b;this.A.S[this.C]|=32;this.B.S[this.D]|=96;this.gf=this.Sj;this.J.Fa=!0};l.zn=function(a,b){this.K.setInt32(a,b,!0);this.Fa=!0};l.Rj=function(a,b){a&3?(this.Ha[a]=b,this.Ha[a+1]=b>>8,this.Ha[a+2]=b>>16,this.Ha[a+3]=b>>24):this.S[a>>2]=b;this.Fa=!0};
l.Cn=function(a,b){a&3?(this.Ha[a]=b,this.Ha[a+1]=b>>8,this.Ha[a+2]=b>>16,this.Ha[a+3]=b>>24):this.S[a>>2]=b;this.A.S[this.C]|=32;this.B.S[this.D]|=96;this.ff=this.Rj;this.J.Fa=!0};function Bc(a){pb&&!Yb&&(a=a<<24|a<<8&16711680|a>>8&65280|a>>>24);return a}
var pc=0,Xb=2,qc=5,tc=6,Nb="NONE RAM ROM VIDEO H/W UNPAGED PAGED".split(" "),oc=0,vc=[],ac=[w.prototype.Um,w.prototype.vn,w.prototype.fn,w.prototype.Hn,w.prototype.$m,w.prototype.Bn],yc=[w.prototype.Tm,w.prototype.un,w.prototype.en,w.prototype.Gn,w.prototype.Zm,w.prototype.An],uc=[w.prototype.Wm,w.prototype.xn,w.prototype.hn,w.prototype.Jn,w.prototype.bn,w.prototype.Dn],sc=[w.prototype.Xm,w.prototype.yn,w.prototype.jn,w.prototype.Kn,w.prototype.cn,w.prototype.En];
if(pb)var $b=[w.prototype.Sm,w.prototype.tn,w.prototype.dn,w.prototype.Fn,w.prototype.Ym,w.prototype.zn],Zb=[w.prototype.Ej,w.prototype.Qj,w.prototype.Jj,w.prototype.Sj,w.prototype.Gj,w.prototype.Rj],Cc=[w.prototype.Vm,w.prototype.wn,w.prototype.gn,w.prototype.In,w.prototype.an,w.prototype.Cn];
function Dc(a,b){u.call(this,"CPU",a);b=a.cycles||b;var c=a.multiplier||1;this.V={};this.V.yd=b;this.V.zi=this.V.sg=this.V.md=c;this.V.Gf=Math.round(this.V.yd/1E4)/100;this.V.hd=this.V.re=this.V.Gf*this.V.md;this.X.Pj=this.X.cb=this.X.Zf=!1;this.X.Gd=a.autoStart;this.X.ei=!1;this.X.zf=!1;this.V.Hf=this.V.se=0;this.V.If=a.csStart;this.V.Le=a.csInterval;this.V.Me=a.csStop;this.qa=[];this.pi=this.kn.bind(this)}ca(Dc,u);l=Dc.prototype;
function Dc(a,b){u.call(this,"CPU",a);b=a.cycles||b;var c=a.multiplier||1;this.V={};this.V.yd=b;this.V.zi=this.V.sg=this.V.md=c;this.V.Gf=Math.round(this.V.yd/1E4)/100;this.V.hd=this.V.re=this.V.Gf*this.V.md;this.X.Pj=this.X.cb=this.X.Zf=!1;this.X.Gd=a.autoStart;this.X.ei=!1;this.X.zf=!1;this.V.Hf=this.V.se=0;this.V.If=a.csStart;this.V.Me=a.csInterval;this.V.Ne=a.csStop;this.qa=[];this.pi=this.kn.bind(this)}ca(Dc,u);l=Dc.prototype;
l.kc=function(a,b,c,d){this.na=a;this.oa=b;this.Ea=d;for(b=0;b<Ec.length;b++)(d=this.ia[Ec[b]])&&this.na.Ab(null,Ec[b],d);this.qd=tb(a,"FPU");this.U=tb(a,"ChipSet");a=Fc(a,"autoStart");null!=a&&(this.X.Gd="true"==a?!0:"false"==a?!1:!!a);Gc(c,this.id,function(){c.X.Zf=!0},1E3/Hc);v(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.Rb=function(a,b){if(!b){if(a&&this.restore){Ic(this);if(!this.restore(a))return!1;Jc(this)}else this.reset();this.qb("No debugger detected")}Lc(this);return!0};l.Qb=function(a,b){var c=this.X.cb;b&&Mc(this);return a?this.save(c):!0};l.Gd=function(){return this.X.cb?!0:this.X.Gd||void 0===this.ia.run?Nc(this):!1};l.li=function(){return 0};
function Jc(a){void 0===a.V.If&&(a.V.If=0);void 0===a.V.Le&&(a.V.Le=-1);void 0===a.V.Me&&(a.V.Me=-1);a.X.zf=0<=a.V.If&&0<a.V.Le;a.X.zf&&(a.V.Hf=0,a.V.se=a.V.If-a.Ic)}
l.Ab=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.ia[b]=c;a=!0;break;case "run":this.ia[b]=c;c.onclick=function(){var a=d.X.cb,b;if(b=d.na)if(b=d.na,b.X.Yd&&(b.X.Yd=!1,b.X.Je&&!b.X.Sb&&b.ue(Oc)),b.X.Sb)b=!0;else{var c=null,h,k=eb(b.id);for(h=0;h<k.length&&(c=k[h],c===b||c.X.ready);h++);if(h==k.length)for(h=0;h<k.length&&(c=k[h],c===b||c.X.Sb);h++);h==k.length&&(c=b);q("The "+c.type+" component ("+c.id+") is not "+(c.X.ready?"powered yet":"ready yet"+(c.Df?" (waiting for notification)":
function Jc(a){void 0===a.V.If&&(a.V.If=0);void 0===a.V.Me&&(a.V.Me=-1);void 0===a.V.Ne&&(a.V.Ne=-1);a.X.zf=0<=a.V.If&&0<a.V.Me;a.X.zf&&(a.V.Hf=0,a.V.se=a.V.If-a.Ic)}
l.Ab=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.ia[b]=c;a=!0;break;case "run":this.ia[b]=c;c.onclick=function(){var a=d.X.cb,b;if(b=d.na)if(b=d.na,b.X.Yd&&(b.X.Yd=!1,b.X.Ke&&!b.X.Sb&&b.ue(Oc)),b.X.Sb)b=!0;else{var c=null,h,k=eb(b.id);for(h=0;h<k.length&&(c=k[h],c===b||c.X.ready);h++);if(h==k.length)for(h=0;h<k.length&&(c=k[h],c===b||c.X.Sb);h++);h==k.length&&(c=b);q("The "+c.type+" component ("+c.id+") is not "+(c.X.ready?"powered yet":"ready yet"+(c.Df?" (waiting for notification)":
""))+".");b=!1}b&&a==d.X.cb&&(d.X.cb?Mc(d,!0):Nc(d,!0))};a=!0;break;case "speed":this.ia[b]=c;a=!0;break;case "setSpeed":this.ia[b]=c,c.onclick=function(){Pc(d,d.V.md<<1,!0)},c.textContent=this.V.re.toFixed(2)+"Mhz",a=!0}return a};function Qc(a,b){a.X.cb&&(b=a.A-b,a.A-=b,a.dd-=b)}function Rc(a){var b=a.V.hd/a.V.Gf;if(!b||b>a.V.md)b=a.V.md;a.V.yi=Math.round(1E3/Hc);a.V.Ml=Math.floor(a.V.yd/Hc*b);a.V.sg=b}
function Sc(a,b){var c=a.Ic+a.Sc+a.dd-a.A;b&&1<a.V.md&&a.V.hd>a.V.Gf&&(c=Math.round(c/a.V.md));return c}function Ic(a){a.Ic=a.Sc=a.dd=a.A=0;Jc(a);Pc(a,a.V.zi)}
function Pc(a,b,c){if(void 0!==b){0<a.V.hd&&a.V.hd<.9*a.V.re&&(b=a.V.zi);a.V.hd=0;a.V.md=b;b=a.V.Gf*a.V.md;if(a.V.re!=b){a.V.re=b;b=a.V.re.toFixed(2)+"Mhz";var d=a.ia.setSpeed;d&&(d.textContent=b);a.qb("target speed: "+b)}c&&a.na&&Tc(a.na)}a.Ic+=a.Sc;a.Sc=0;a.V.Zc=a.V.Od=0;Rc(a);for(c=a.qa.length-1;0<=c;c--)b=a.qa[c],0<=b[2]&&Uc(a,c,b[2],!0)}function Gc(a,b,c,d){d=void 0===d?-1:d;var e=a.qa.length;a.qa.push([b,-1,d,c]);0<=d&&Uc(a,e,d)}
function Pc(a,b,c){if(void 0!==b){0<a.V.hd&&a.V.hd<.9*a.V.re&&(b=a.V.zi);a.V.hd=0;a.V.md=b;b=a.V.Gf*a.V.md;if(a.V.re!=b){a.V.re=b;b=a.V.re.toFixed(2)+"Mhz";var d=a.ia.setSpeed;d&&(d.textContent=b);a.qb("target speed: "+b)}c&&a.na&&Tc(a.na)}a.Ic+=a.Sc;a.Sc=0;a.V.Zc=a.V.Od=0;Rc(a);for(c=a.qa.length-1;0<=c;c--)b=a.qa[c],0<=b[2]&&Uc(a,c,b[2],!0)}function Gc(a,b,c,d){d=void 0===d?-1:d;var e=a.qa.length;a.qa.push([b,-1,d,c]);0<=d&&Uc(a,e,d);return e}
function Uc(a,b,c,d){0<=b&&b<a.qa.length&&(b=a.qa[b],d||0>b[1])&&(c=a.V.yd*a.V.sg/1E3*c|0,a.X.cb&&(c+=Vc(a)),b[1]=c)}function Wc(a){for(var b=[],c=0;c<a.qa.length;c++){var d=a.qa[c];b.push([d[0],d[1],d[2]])}return b}function Vc(a){var b=a.dd-a.A;a.dd=a.A=0;a.V.Jf+=b;a.Sc+=b;return b}
l.kn=function(){if(this.X.cb){Rc(this);this.V.Jf=0;this.V.Ke=va();this.V.Zc||(this.V.Zc=this.V.Ke);if(this.V.Od){var a=this.V.Ke-this.V.Od;a>this.V.yi&&(this.V.Zc+=a,this.V.Zc>this.V.Ke&&(this.V.Zc=this.V.Ke))}try{this.X.Zf=!1;do{for(var b,c=this.X.zf?1:this.V.yd*this.V.sg|0,d=this.qa.length-1;0<=d;d--){var e=this.qa[d];0>e[1]||c>e[1]&&(c=e[1])}b=c;if(this.U){Xc(this.U);var f=this.U,a=b,g=f.qa[0];if(g.Ld){var h=(Sc(f.R,f.M)-g.jd)/f.Ba|0,k=Yc(f,0)-h;g.mode==Zc&&(k-=h);var m=k*f.Ba|0;g.mode==Zc&&(m>>=
1);a>m&&(a=m)}b=a;var r=this.U,a=b;if(r.A&&r.A[$c]&ad){var y=r.Y-Sc(r.R,r.M);0<y&&a>y&&(a=y)}b=a}try{this.uh(b)}catch(N){if("number"!=typeof N)throw N;}for(var a=b=Vc(this),t=this.qa.length-1;0<=t;t--){var z=this.qa[t];0>z[1]||(z[1]-=a,0>=z[1]&&(z[1]=-1,z[3](),0<=z[2]&&Uc(this,t,z[2])))}a=b;if(this.X.zf){var D=!1;this.V.Hf=this.V.Hf+this.li()|0;this.V.se-=a;0>=this.V.se&&(this.V.se+=this.V.Le,D=!0);0<=this.V.Me&&this.V.Me<=Sc(this)&&(this.V.Le=this.V.Me=-1,Jc(this),Mc(this),D=!0);D&&this.qb(Sc(this)+
" cycles: checksum="+ja(this.V.Hf))}}while(this.X.cb&&!this.X.Zf)}catch(N){Mc(this);Lc(this);this.na&&this.na.stop(va(),Sc(this));nb(this,N.stack||N.message);return}if(this.X.cb){b=setTimeout;c=this.pi;this.V.Od=va();d=this.V.yi;this.V.Jf&&(d=Math.round(d*this.V.Jf/this.V.Ml));d-=this.V.Od-this.V.Ke;if(e=this.V.Od-this.V.Zc)this.V.hd=Math.round(this.Sc/(10*e))/100,864E5<=e&&(this.Ic=0,this.U&&Xc(this.U,!0),Pc(this));0>d?(-1E3>d&&(this.V.Zc-=d),d=0):this.V.hd<this.V.re&&(d=0);this.V.Od+=d;b(c,d)}}};
l.kn=function(){if(this.X.cb){Rc(this);this.V.Jf=0;this.V.Le=va();this.V.Zc||(this.V.Zc=this.V.Le);if(this.V.Od){var a=this.V.Le-this.V.Od;a>this.V.yi&&(this.V.Zc+=a,this.V.Zc>this.V.Le&&(this.V.Zc=this.V.Le))}try{this.X.Zf=!1;do{for(var b,c=this.X.zf?1:this.V.yd*this.V.sg|0,d=this.qa.length-1;0<=d;d--){var e=this.qa[d];0>e[1]||c>e[1]&&(c=e[1])}b=c;if(this.U){Xc(this.U);var f=this.U,a=b,g=f.qa[0];if(g.Ld){var h=(Sc(f.R,f.M)-g.jd)/f.Ba|0,k=Yc(f,0)-h;g.mode==Zc&&(k-=h);var m=k*f.Ba|0;g.mode==Zc&&(m>>=
1);a>m&&(a=m)}b=a;var r=this.U,a=b;if(r.A&&r.A[$c]&ad){var y=r.Y-Sc(r.R,r.M);0<y&&a>y&&(a=y)}b=a}try{this.uh(b)}catch(N){if("number"!=typeof N)throw N;}for(var a=b=Vc(this),t=this.qa.length-1;0<=t;t--){var z=this.qa[t];0>z[1]||(z[1]-=a,0>=z[1]&&(z[1]=-1,z[3](),0<=z[2]&&Uc(this,t,z[2])))}a=b;if(this.X.zf){var D=!1;this.V.Hf=this.V.Hf+this.li()|0;this.V.se-=a;0>=this.V.se&&(this.V.se+=this.V.Me,D=!0);0<=this.V.Ne&&this.V.Ne<=Sc(this)&&(this.V.Me=this.V.Ne=-1,Jc(this),Mc(this),D=!0);D&&this.qb(Sc(this)+
" cycles: checksum="+ja(this.V.Hf))}}while(this.X.cb&&!this.X.Zf)}catch(N){Mc(this);Lc(this);this.na&&this.na.stop(va(),Sc(this));nb(this,N.stack||N.message);return}if(this.X.cb){b=setTimeout;c=this.pi;this.V.Od=va();d=this.V.yi;this.V.Jf&&(d=Math.round(d*this.V.Jf/this.V.Ml));d-=this.V.Od-this.V.Le;if(e=this.V.Od-this.V.Zc)this.V.hd=Math.round(this.Sc/(10*e))/100,864E5<=e&&(this.Ic=0,this.U&&Xc(this.U,!0),Pc(this));0>d?(-1E3>d&&(this.V.Zc-=d),d=0):this.V.hd<this.V.re&&(d=0);this.V.Od+=d;b(c,d)}}};
function Nc(a,b){var c;a.X.error?(a.qb(a.toString()+" error"),c=!0):c=!1;if(c)return!1;if(a.X.cb)return a.qb(a.toString()+" busy"),!1;Pc(a);a.X.cb=!0;a.X.Pj=!0;a.U&&a.U.start();if(c=a.ia.run)c.textContent="Halt";a.na&&(bd(a.na,!0),b&&Tc(a.na,!0),a.na.start(a.V.Zc,Sc(a)));setTimeout(a.pi,0);return!0}l.uh=function(){return 0};
function Mc(a,b){if(a.X.cb){Vc(a);a.Ic+=a.Sc;a.Sc=0;a.X.cb=!1;a.U&&a.U.stop();var c=a.ia.run;c&&(c.textContent="Run");a.na&&(a.na.stop(Date.now()||+new Date,Sc(a)),bd(a.na,!0));a.Ea||a.status("Stopped")}a.X.complete=b}function Lc(a){a.na&&bd(a.na,void 0)}var Hc=30,Ec=["power","reset"];
function cd(a,b,c,d){this.A=a;this.Ea=a.Ea;this.id=b;this.Xf=c||"";this.ha=0;this.jb=65535;this.C=this.jb+1;this.tb=this.jc=this.ext=this.nb=this.type=this.va=0;this.cc=-1;this.T=this.Jc=2;this.O=this.ta=65535;this.J=this.wi;this.I=this.H=this.xf;this.B={ha:-1,va:0,jb:0,nb:0,type:0,ext:0,cc:-1};1==this.id&&(this.Ye=0,this.D=null,this.ne=!1,this.G=Array(32),this.F=[]);dd(this,!0,d);this.id||(this.Kb=this.sb=this.bi)}l=cd.prototype;l.wi=function(a){this.ha=a&65535;return this.va=this.ha<<4};
l.Ff=function(a,b){var c,d,e=this.A;a&=65535;a&4?(c=e.mc.va,d=c+e.mc.jb|0):(c=e.Jb,d=e.Oc);if(c){c=c+(a&65528)|0;if(d-c|0)return e.A-=15,ed(this,c,a,b);this.id<fd&&x.call(e,b&&this.id==gd?10:13,a&65532)}return-1};l.Gl=function(a){var b=this.A;a=b.Xb+(a<<2);var c=b.ga(a);b.N&=-769;return this.load(b.ga(a+2))+c|0};l.Fl=function(a){var b=this.A;a<<=3;var c=b.Xb+a|0;if(7<=(b.Qc-c|0))return this.D=!0,a=ed(this,c,a),-1!==a&&(a+=this.Ye),a;x.call(b,13,a|2);return-1};l.bi=function(a){return this.va+a|0};
function cd(a,b,c,d){this.A=a;this.Ea=a.Ea;this.id=b;this.Xf=c||"";this.ha=0;this.jb=65535;this.C=this.jb+1;this.tb=this.jc=this.ext=this.nb=this.type=this.va=0;this.cc=-1;this.T=this.Jc=2;this.O=this.ta=65535;this.J=this.wi;this.I=this.H=this.xf;this.B={ha:-1,va:0,jb:0,nb:0,type:0,ext:0,cc:-1};1==this.id&&(this.Ze=0,this.D=null,this.ne=!1,this.G=Array(32),this.F=[]);dd(this,!0,d);this.id||(this.Kb=this.sb=this.bi)}l=cd.prototype;l.wi=function(a){this.ha=a&65535;return this.va=this.ha<<4};
l.Ff=function(a,b){var c,d,e=this.A;a&=65535;a&4?(c=e.mc.va,d=c+e.mc.jb|0):(c=e.Jb,d=e.Oc);if(c){c=c+(a&65528)|0;if(d-c|0)return e.A-=15,ed(this,c,a,b);this.id<fd&&x.call(e,b&&this.id==gd?10:13,a&65532)}return-1};l.Gl=function(a){var b=this.A;a=b.Xb+(a<<2);var c=b.ga(a);b.N&=-769;return this.load(b.ga(a+2))+c|0};l.Fl=function(a){var b=this.A;a<<=3;var c=b.Xb+a|0;if(7<=(b.Qc-c|0))return this.D=!0,a=ed(this,c,a),-1!==a&&(a+=this.Ze),a;x.call(b,13,a|2);return-1};l.bi=function(a){return this.va+a|0};
l.xf=function(a,b){(a>>>0)+b>this.C&&(8088>=this.A.ca?this.A.K|=8:x.call(this.A,13));return this.va+a|0};l.ai=function(a,b){return(a>>>0)+b<=this.C?this.va+a|0:this.wf()};l.fk=function(a,b){return(a>>>0)+b>this.C?this.va+a|0:this.wf()};l.wf=function(){x.call(this.A,13,0);return-1};l.ci=function(a,b){return(a>>>0)+b<=this.C?this.va+a|0:this.yf()};l.gk=function(a,b){return(a>>>0)+b>this.C?this.va+a|0:this.yf()};l.yf=function(){x.call(this.A,13,0);return-1};
function hd(a,b,c,d,e){a.ha=b;a.va=d;a.jb=e;a.C=(e>>>0)+1;a.nb=c;a.type=c&7936;a.ext=c>>16&192;a.cc=(b&4?a.A.mc.va:a.A.Jb)+(b&65528)|0;a.id<id&&dd(a,!0)}function jd(a,b,c){var d=a.A,e=d.ga(b+2),f=d.ga(b)|(e&255)<<16,d=d.ga(b+4);a.ha=c;a.va=f;a.jb=d;a.C=(d>>>0)+1;a.nb=e;a.type=e&7936;a.ext=0;a.cc=b;a.id<id&&dd(a,!0)}
function ed(a,b,c,d){var e=a.A;if(!d&&c===a.B.ha)return a.ha=c,a.va=a.B.va,a.jb=a.B.jb,a.C=(a.B.jb>>>0)+1,a.nb=a.B.nb,a.type=a.B.type,a.ext=a.B.ext,a.cc=a.B.cc,a.B.ha=-1,dd(a,!0,!0,!1),a.va;a.B.ha=-1;var f=e.ga(b+0),g=e.ga(b+4),h=g&7936,k=e.ga(b+2)|(g&255)<<16,m=e.ga(b+6),r=c&65528;if(80386<=e.ca){var y=f,k=k|(m&65280)<<16,f=f|(m&15)<<16;m&128&&(f=f<<12|4095)}switch(a.id){case kd:var t=a.D;a.ne=!1;if(t&&c==ld&&a.F.length){var z=a.F[a.Ye-1];if(z&&!z())return-1}var D=c&3,N=(g&24576)>>13,z=-1,P,aa;r||
function ed(a,b,c,d){var e=a.A;if(!d&&c===a.B.ha)return a.ha=c,a.va=a.B.va,a.jb=a.B.jb,a.C=(a.B.jb>>>0)+1,a.nb=a.B.nb,a.type=a.B.type,a.ext=a.B.ext,a.cc=a.B.cc,a.B.ha=-1,dd(a,!0,!0,!1),a.va;a.B.ha=-1;var f=e.ga(b+0),g=e.ga(b+4),h=g&7936,k=e.ga(b+2)|(g&255)<<16,m=e.ga(b+6),r=c&65528;if(80386<=e.ca){var y=f,k=k|(m&65280)<<16,f=f|(m&15)<<16;m&128&&(f=f<<12|4095)}switch(a.id){case kd:var t=a.D;a.ne=!1;if(t&&c==ld&&a.F.length){var z=a.F[a.Ze-1];if(z&&!z())return-1}var D=c&3,N=(g&24576)>>13,z=-1,P,aa;r||
b>=e.Jb&&b<e.Oc&&(h=0);if(6144<=h)null!=d?z=0:!1!==t?(h&1024?N<=a.tb&&(z=0):D<=a.tb&&N==a.tb&&(z=0),z||(c=c&-4|a.tb&3)):D>=a.tb&&(D>a.tb&&(z=A(e),md(e,A(e),!0),B(e,z),a.ne=!0),z=0);else{if(256==h||2304==h)return nd(a,c,t)?a.va:-1;if(1024==h)z=2,aa=0,D<a.tb&&(D=a.tb);else if(3072==h)z=4,aa=0,D<a.tb&&(D=a.tb);else if(1536==h)z=2,aa=148224;else if(3584==h)z=4,aa=148224;else if(1792==h)z=2,aa=147712;else if(3840==h)z=4,aa=147712;else if(1280==h)return nd(a,k&65535,t)?a.va:-1}0<z&&!(g&32768)&&(z=0);if(0<
z&&(r=a.tb,P=b==e.Xb+c,D<=N&&(!P||0<=e.sc||r<=N))){b=k&65535;h&2048&&(f=y|m<<16);m=h=0;d=b&3;if(d<r){if(-1===a.Ff(b,!0))return-1;m=e.la.va;e.la.type&2048?(c=(d<<3)+4,k=4):(c=(d<<2)+2,k=2);h=e.ga(m+c+k);if(!h)return x.call(e,10,h),-1;if(-1===e.W.Ff(h,!0))return-1;m=2==k?e.ga(m+c):e.ea(m+c)}c=e.N;e.N&=~aa;c&131072&&pd(e,!0,!1);if(-1===a.Ff(b,!1))return-1;qd(e,z);a.Ye=f;if(d<r){if(!0!==t)return-1;z=C(e);f=0;for(g&=31;g--;)a.G[f++]=rd(e,e.W,z),z+=2;t=e.W.ha;g=C(e);md(e,h,!0);B(e,m);c&131072&&(qd(e,4),
z&&(r=a.tb,P=b==e.Xb+c,D<=N&&(!P||0<=e.sc||r<=N))){b=k&65535;h&2048&&(f=y|m<<16);m=h=0;d=b&3;if(d<r){if(-1===a.Ff(b,!0))return-1;m=e.la.va;e.la.type&2048?(c=(d<<3)+4,k=4):(c=(d<<2)+2,k=2);h=e.ga(m+c+k);if(!h)return x.call(e,10,h),-1;if(-1===e.W.Ff(h,!0))return-1;m=2==k?e.ga(m+c):e.ea(m+c)}c=e.N;e.N&=~aa;c&131072&&pd(e,!0,!1);if(-1===a.Ff(b,!1))return-1;qd(e,z);a.Ze=f;if(d<r){if(!0!==t)return-1;z=C(e);f=0;for(g&=31;g--;)a.G[f++]=rd(e,e.W,z),z+=2;t=e.W.ha;g=C(e);md(e,h,!0);B(e,m);c&131072&&(qd(e,4),
sd(e,e.vb.ha,4,2),e.vb.load(0),sd(e,e.rb.ha,4,2),e.rb.load(0),sd(e,e.Ga.ha,4,2),td(e,0),sd(e,e.xa.ha,4,2),ud(e,0));sd(e,t,e.T,2);for(E(e,g);f;)E(e,a.G[--f]);a.ne=!0}return a.va}if(z)return x.call(e,13,c&65532|(P?2:0)),-1;if(!(g&32768))return x.call(e,11,c&65532|(P?2:0)),-1;break;case vd:if(r){if(4096>h||2048==(h&2560))return x.call(e,13,c&65532),-1;if(!(g&32768))return x.call(e,11,c&65532),-1}break;case gd:if(!r||4096>h||512!=(h&2560))return x.call(e,13,c&65532),-1;if(!(g&32768))return x.call(e,12,
c&65532),-1;break;case id:t=h&-513;if(!r||256!=t&&2304!=t)return x.call(e,13,c&65532),-1;2304==t&&(a.Vh=k+e.ga(k+102)|0,a.ck=k+a.jb|0);break;case fd:if(!(h&4096)&&768<h&&2304!=h&&2816!=h)return-1}d?(a.B.ha=c,a.B.va=k,a.B.jb=f,a.B.nb=g,a.B.type=h,a.B.ext=m,a.B.cc=b):(a.ha=c,a.va=k,a.jb=f,a.C=(f>>>0)+1,a.nb=g,a.type=h,a.ext=m,a.cc=b,dd(a,!0,!0,!1));return k}
function nd(a,b,c){var d=a.A,e=a.tb,f=d.la.ha,g=d.la.va;if(!c){if(!(d.la.type&512))return x.call(d,13,b&65532),!1;d.Za(d.la.cc+4,d.la.nb&=-513)}if(-1===d.la.load(b))return!1;var h=d.la.va;if(!1!==c){if(d.la.type&512)return x.call(d,13,b&65532),!1;d.Za(d.la.cc+4,d.la.nb|=512)}d.la.type=d.la.type&-513|d.la.nb&512;256==d.la.type||768==d.la.type?(d.Za(g+14,F(d)),d.Za(g+16,wd(d)),d.Za(g+18,d.F),d.Za(g+20,d.H),d.Za(g+22,d.L),d.Za(g+24,d.G),d.Za(g+26,C(d)),d.Za(g+28,d.M),d.Za(g+30,d.J),d.Za(g+32,d.I),d.Za(g+
@ -143,16 +143,16 @@ function dd(a,b,c,d){void 0===c&&(c=!!(a.A.pa&1));a.ke=!1;if(c)if(a.load=a.Ff,a.
5,d=a.A.Ia(c),d&1||a.A.Bb(c,d|1))}b&&(a.tb=a.ha&3,a.jc=(a.nb&24576)>>13,80386>a.A.ca||!(a.ext&64)?(a.T=2,a.O=65535):(a.T=4,a.O=-1),a.Jc=a.T,a.ta=a.O)}else a.load=a.wi,a.vi=a.Gl,a.sb=a.xf,a.Kb=a.xf,a.tb=a.jc=0,a.cc=-1,a.ne=!1}var kd=1,vd=2,gd=3,id=4,fd=6,ld=1;
function Ad(a){var b,c=+a.model||8088;switch(c){default:b=4772727;break;case 80286:b=6E6;break;case 80386:b=16E6}Dc.call(this,a,b);this.ca=c;a=a.stepping;this.pd=c+(a?ia(a,16):0);this.Qh=61442;this.od=1792;this.Oh=28672;this.hf=4;this.Ma=255;this.B=80286<=this.ca?rb:qb;this.ra=Bd;this.Zh=Cd;this.$h=Dd;this.di=Ed;if(80186<=this.ca&&(this.ra=Bd.slice(),this.Zh=Cd.slice(),this.$h=Dd.slice(),this.Ma=31,this.ra[15]=Fd,this.ra[96]=Gd,this.ra[97]=Hd,this.ra[98]=Id,this.ra[99]=Fd,this.ra[100]=Fd,this.ra[101]=
Fd,this.ra[102]=Fd,this.ra[103]=Fd,this.ra[104]=Jd,this.ra[105]=Kd,this.ra[106]=Ld,this.ra[107]=Md,this.ra[108]=Nd,this.ra[109]=Od,this.ra[110]=Pd,this.ra[111]=Qd,this.ra[192]=Rd,this.ra[193]=Sd,this.ra[200]=Td,this.ra[201]=Ud,this.ra[241]=Vd,this.Zh[7]=Wd,this.$h[7]=Wd,80286<=this.ca)){this.Qh=2;this.od|=28672;this.hf=0;this.ra[15]=Xd;this.cd=Yd.slice();for(c=0;c<this.cd.length;c++)this.cd[c]||(this.cd[c]=Zd);this.ra[84]=$d;this.ra[99]=ae;if(80386<=this.ca){var d;this.Oh=0;this.od|=196608;this.ra[100]=
be;this.ra[101]=ce;this.ra[102]=de;this.ra[103]=ee;for(d in G)this.cd[+d]=G[+d];80546<=this.pd&&80562>=this.pd&&(this.cd[166]=fe,this.cd[167]=ge)}}this.lf=[];this.Uh=[];this.ag=0;Ic(this);this.X.complete=this.X.hk=!1;this.ji=0;this.Nc=this.Y=[];this.Eb=this.Rh=this.Db=this.jf=this.ze=this.Ae=this.Dc=0;he(this)}ca(Ad,Dc);
function Mb(a){var b;if(a.Y===a.Nc){a.Y=Array(a.jf);a.mf=new w(null,0,0,qc,null,a);Hb(a.mf,a.Ea);for(b=0;b<a.jf;b++)a.Y[b]=a.mf;a.Ce=new w;a.rh=Array(ie);a.nf=0}else for(var c=0;c<a.kf.length;c++){b=a.kf[c];var d=a.Y[b];a.nf<ie&&(a.rh[a.nf++]=d);a.Y[b]=a.mf}a.kf=[]}
function Ac(a,b,c,d){var e=(b&-4194304)>>>20,f=a.Nc[(a.Vc+e&a.Ae)>>>a.Eb],g=f.Rd(e);if(!(g&1))return d||je.call(a,b,!1,c),a.Ce;if(!(g&4)&&3==a.La)return d||je.call(a,b,!0,c),a.Ce;var h=(b&4190208)>>>10,g=a.Nc[((g&-4096)+h&a.Ae)>>>a.Eb],k=g.Rd(h);if(!(k&1))return d||je.call(a,b,!1,c),a.Ce;if(!(k&4)&&3==a.La)return d||je.call(a,b,!0,c),a.Ce;c=a.Nc[((k&-4096)+(b&4095)&a.Ae)>>>a.Eb];if(d)return c;d=b>>>a.Eb;k=a.Y[d];b&=-4096;var m;0<a.nf?(m=a.rh[--a.nf],m.yl(b)):m=new w(b,0,0,tc);b=m;b.J=c;b.A=f;b.C=
e>>2;b.B=g;b.D=h>>2;pb&&Yb&&c.S&&!c.controller&&!c.fe&&!c.ge?(b.Ha=c.Ha,b.ud=c.ud,b.S=c.S,Tb(b,Cc)):(b.I=c?Bc(32):0,b.M=c?Bc(96):0,Tb(b,uc));Hb(b,a.Ea,k);a.Y[d]=b;a.kf.push(d);return b}function ke(a){a.Y!==a.Nc&&(a.Y=a.Nc,a.mf=null,a.kf=null,a.Ce=null)}l=Ad.prototype;l.reset=function(){he(this);Ic(this);this.X.error=!1};
be;this.ra[101]=ce;this.ra[102]=de;this.ra[103]=ee;for(d in G)this.cd[+d]=G[+d];80546<=this.pd&&80562>=this.pd&&(this.cd[166]=fe,this.cd[167]=ge)}}this.lf=[];this.Uh=[];this.ag=0;Ic(this);this.X.complete=this.X.hk=!1;this.ji=0;this.Nc=this.Y=[];this.Eb=this.Rh=this.Db=this.jf=this.Ae=this.Be=this.Dc=0;he(this)}ca(Ad,Dc);
function Mb(a){var b;if(a.Y===a.Nc){a.Y=Array(a.jf);a.mf=new w(null,0,0,qc,null,a);Hb(a.mf,a.Ea);for(b=0;b<a.jf;b++)a.Y[b]=a.mf;a.De=new w;a.rh=Array(ie);a.nf=0}else for(var c=0;c<a.kf.length;c++){b=a.kf[c];var d=a.Y[b];a.nf<ie&&(a.rh[a.nf++]=d);a.Y[b]=a.mf}a.kf=[]}
function Ac(a,b,c,d){var e=(b&-4194304)>>>20,f=a.Nc[(a.Vc+e&a.Be)>>>a.Eb],g=f.Rd(e);if(!(g&1))return d||je.call(a,b,!1,c),a.De;if(!(g&4)&&3==a.La)return d||je.call(a,b,!0,c),a.De;var h=(b&4190208)>>>10,g=a.Nc[((g&-4096)+h&a.Be)>>>a.Eb],k=g.Rd(h);if(!(k&1))return d||je.call(a,b,!1,c),a.De;if(!(k&4)&&3==a.La)return d||je.call(a,b,!0,c),a.De;c=a.Nc[((k&-4096)+(b&4095)&a.Be)>>>a.Eb];if(d)return c;d=b>>>a.Eb;k=a.Y[d];b&=-4096;var m;0<a.nf?(m=a.rh[--a.nf],m.yl(b)):m=new w(b,0,0,tc);b=m;b.J=c;b.A=f;b.C=
e>>2;b.B=g;b.D=h>>2;pb&&Yb&&c.S&&!c.controller&&!c.fe&&!c.ge?(b.Ha=c.Ha,b.ud=c.ud,b.S=c.S,Tb(b,Cc)):(b.I=c?Bc(32):0,b.M=c?Bc(96):0,Tb(b,uc));Hb(b,a.Ea,k);a.Y[d]=b;a.kf.push(d);return b}function ke(a){a.Y!==a.Nc&&(a.Y=a.Nc,a.mf=null,a.kf=null,a.De=null)}l=Ad.prototype;l.reset=function(){he(this);Ic(this);this.X.error=!1};
function le(a,b){var c;switch(b){case 0:c=a.F;break;case 1:c=a.H;break;case 2:c=a.L;break;case 3:c=a.G;break;case 4:c=C(a);break;case 5:c=a.M;break;case 6:c=a.J;break;case 7:c=a.I}return c}function me(a,b,c){switch(b){case 0:a.F=c;break;case 1:a.H=c;break;case 2:a.L=c;break;case 3:a.G=c;break;case 4:B(a,c);break;case 5:a.M=c;break;case 6:a.J=c;break;case 7:a.I=c}}
function he(a){a.F=0;a.G=0;a.H=0;a.L=0;a.lc=0;a.M=0;a.J=0;a.I=0;a.fc=!1;a.Ba=a.Sa=0;a.Jl=[0,0];a.Ol=[0,0];a.ua=0;a.gi=0;a.aa=0;a.pa=65520;a.Xb=0;a.Qc=1023;a.N=a.Zb=0;a.Zd=a.De=a.sd=a.$d=0;a.sc=-1;a.Tc=a.uc=-1;a.Uc=a.ma=-1;a.fa=new cd(a,kd,"CS");a.Ga=new cd(a,vd,"DS");a.xa=new cd(a,vd,"ES");a.W=new cd(a,gd,"SS");B(a,0);md(a,0);if(80386<=a.ca){switch(a.pd){case 80562:case 80563:a.L=771;break;case 80578:a.L=772;break;case 80594:a.L=773;break;case 80595:case 80596:a.L=776}a.pa=16;a.si=0;a.rd=0;a.Vc=0;
function he(a){a.F=0;a.G=0;a.H=0;a.L=0;a.lc=0;a.M=0;a.J=0;a.I=0;a.fc=!1;a.Ba=a.Sa=0;a.Jl=[0,0];a.Ol=[0,0];a.ua=0;a.gi=0;a.aa=0;a.pa=65520;a.Xb=0;a.Qc=1023;a.N=a.Zb=0;a.Zd=a.Ee=a.sd=a.$d=0;a.sc=-1;a.Tc=a.uc=-1;a.Uc=a.ma=-1;a.fa=new cd(a,kd,"CS");a.Ga=new cd(a,vd,"DS");a.xa=new cd(a,vd,"ES");a.W=new cd(a,gd,"SS");B(a,0);md(a,0);if(80386<=a.ca){switch(a.pd){case 80562:case 80563:a.L=771;break;case 80578:a.L=772;break;case 80594:a.L=773;break;case 80595:case 80596:a.L=776}a.pa=16;a.si=0;a.rd=0;a.Vc=0;
a.Cb=[0,0,0,0,null,null,0,0];a.pf=[null,null,null,null,null,null,0,0];a.rb=new cd(a,vd,"FS");a.vb=new cd(a,vd,"GS");ke(a)}a.cg=new cd(a,0,"NULL");a.Ca=a.Ga;a.Gb=a.W;a.K=a.ba=0;a.C=a.D=-1;a.Da=a.cg;a.Qa=0;if(80286>a.ca)yd(a,0,65535);else{a.Jb=0;a.Oc=65535;a.mc=new cd(a,5,"LDT",!0);a.la=new cd(a,id,"TSS",!0);a.gb=new cd(a,fd,"VER",!0);yd(a,65520,61440);var b,c=F(a);b=a.fa;var d=-65536;80386>b.A.ca&&(d&=16777215);b=b.va=d;a.da=b+c|0;a.bg=(b>>>0)+(a.fa.jb>>>0)+1}xd(a,0);pd(a)}
function ne(a){2==a.Jc?(a.ni=a.ga,a.Yb=oe,a.ec=pe,a.Rc=qe,2==a.T?(a.ja=re,a.za=se,a.eb=te):(a.ja=ue,a.za=ve,a.eb=we)):(a.ni=a.ea,a.Yb=xe,a.ec=ye,a.Rc=ze,2==a.T?(a.ja=Ae,a.za=Be,a.eb=Ce):(a.ja=De,a.za=Ee,a.eb=Fe))}function qd(a,b){a.T!=b&&(a.ba|=1024,a.T=b,a.O=2==b?65535:-1,Ge(a))}function Ge(a){2==a.T?(a.wb=32768,a.mb=a.ga,a.Lb=a.Za,2==a.Jc?(a.ja=re,a.za=se,a.eb=te):(a.ja=Ae,a.za=Be,a.eb=Ce)):(a.wb=-2147483648,a.mb=a.ea,a.Lb=a.Ta,2==a.Jc?(a.ja=ue,a.za=ve,a.eb=we):(a.ja=De,a.za=Ee,a.eb=Fe))}
function He(a){a.Jc=a.fa.Jc;a.ta=a.fa.ta;ne(a);a.T=a.fa.T;a.O=a.fa.O;Ge(a);a.ba&=-3073}l.li=function(){var a=this.F+this.G+this.H+this.L+C(this)+this.M+this.J+this.I|0;return a=a+F(this)+this.fa.ha+this.Ga.ha+this.W.ha+this.xa.ha+wd(this)|0};function Ie(a,b,c){void 0===a.lf[b]&&(a.lf[b]=[]);a.lf[b].push(c)}function Je(a,b){var c=a.Uh[b];null!=c&&(c(--a.ag),delete a.Uh[b])}
function Ke(a,b){for(var c=a.Cb[7],d=c>>16,e=0;4>e;e++){if(c&3){var f=!!(d&1),g=a.Cb[e],g=g&~(d>>2&3);if(b){var g=a.Y[g>>>a.Eb],h=a;f?g.ge++||(h&&(g.F=h),xc(g,yc,!1)):g.fe++||(h&&(g.F=h),wc(g,yc,!1))}else g=a.Y[g>>>a.Eb],f?--g.ge||(f=g,f.pc=f.H?f.oh:f.ef,f.gf=f.H?f.ph:f.qh,f.ff=f.H?f.nh:f.R):--g.fe||(f=g,f.oc=f.Bd,f.Ze=f.$e,f.Rd=f.hh)}c>>=2;d>>=4}}
function Ke(a,b){for(var c=a.Cb[7],d=c>>16,e=0;4>e;e++){if(c&3){var f=!!(d&1),g=a.Cb[e],g=g&~(d>>2&3);if(b){var g=a.Y[g>>>a.Eb],h=a;f?g.ge++||(h&&(g.F=h),xc(g,yc,!1)):g.fe++||(h&&(g.F=h),wc(g,yc,!1))}else g=a.Y[g>>>a.Eb],f?--g.ge||(f=g,f.pc=f.H?f.oh:f.ef,f.gf=f.H?f.ph:f.qh,f.ff=f.H?f.nh:f.R):--g.fe||(f=g,f.oc=f.Bd,f.$e=f.af,f.Rd=f.hh)}c>>=2;d>>=4}}
function zc(a,b,c,d){if(!(a.K&8192)&&a.Cb[7]&255){c--;var e=a.Cb[7],f=e>>16;d=d?1:0==d?3:0;for(var g=0;4>g;g++){if(e&3&&(f&3)==d){var h=f>>2;if(b+c>=a.Cb[g]&&b<=a.Cb[g]+h){a.Cb[6]|=1<<g;a.Qa|=2;break}}e>>=2;f>>=4}}}function pd(a,b,c){void 0===b&&(b=!!(a.pa&1));void 0===c&&(c=!!(a.N&131072));a.di=b&&!c?Le:Ed;dd(a.fa,!1,b,c);dd(a.Ga,!1,b,c);dd(a.W,!1,b,c);dd(a.xa,!1,b,c);80386<=a.ca&&(dd(a.rb,!1,b,c),dd(a.vb,!1,b,c));He(a)}
l.save=function(a){var b=new Me(this);b.set(0,[this.F,this.G,this.H,this.L,C(this),this.M,this.J,this.I]);var c=F(this),d=this.fa.save(),e=this.Ga.save(),f=this.W.save(),g=this.xa.save(),h;null!=this.Jb?(h=[this.pa,this.Jb,this.Oc,this.Xb,this.Qc,this.mc.save(),this.la.save(),this.Zb],80386<=this.ca&&(h.push(this.si),h.push(this.rd),h.push(this.Vc),h.push(this.Cb),h.push(this.pf))):h=null;c=[c,d,e,f,g,h,wd(this)];80386<=this.ca&&(c.push(this.rb.save()),c.push(this.vb.save()));b.set(1,c);b.set(2,[this.Ca.Xf,
this.Gb.Xf,this.K,this.ba,this.Qa,this.C,this.D]);b.set(3,[0,this.Ic,this.V.md,a,Wc(this)]);b.set(4,dc(this.oa,!!(this.pa&-2147483648)));return b.data()};
@ -160,16 +160,16 @@ l.restore=function(a){var b=a[0];this.F=b[0];this.G=b[1];this.H=b[2];this.L=b[3]
var f=a[4],g;for(g=0;g<f.length-1;g+=2){var h=f[g],k=f[g+1];if(k&&k.length<e.U){for(var m=0,r=Array(e.U),y=0;y<k.length-1;)for(var t=k[y++],z=k[y++];t--;)r[m++]=z;k=r}m=e.Y[h];if(!m||!m.restore(k)){q("Unable to restore memory block "+h);e=!1;break a}}void 0!==f[g]&&Ib(e,f[g]);e=!0}e&&(yd(this,b[0],this.fa.ha),B(this,c),md(this,this.W.ha),80386<=this.ca&&(this.rb.restore(b[7]),this.vb.restore(b[8])),d=!0);b=a[2];this.Ca=null!=b[0]&&Ne(this,b[0])||this.Ga;this.Gb=null!=b[1]&&Ne(this,b[1])||this.W;this.K=
b[2];this.ba=b[3];this.Qa=b[4];this.C=b[5];this.D=b[6];b=a[3];this.Ic=b[1];Pc(this,b[2]);null!=b[3]&&(this.X.Gd=b[3]);if(null!=b[4])for(a=b[4],b=0;b<a.length;b++){c=a[b];a:{for(e=0;e<this.qa.length;e++)if(f=this.qa[e],f[0]==c[0]){e=f;break a}e=null}e&&(e[1]=c[1],e[2]=c[2])}return d};function Ne(a,b){switch(b){case "CS":return a.fa;case "DS":return a.Ga;case "SS":return a.W;case "ES":return a.xa;case "NULL":return a.cg;default:return[0,b,0,0,""]}}function Oe(a,b){null!=yd(a,F(a),b)&&(a.K|=a.hf)}
function td(a,b){-1!==a.Ga.load(b)&&(a.K|=a.hf)}function md(a,b,c){var d=C(a);-1!==a.W.load(b)&&(B(a,d),a.W.ke?(a.ti=a.W.va+a.W.ta|0,a.ui=a.W.va+a.W.jb|0):(a.ti=a.W.va+a.W.jb|0,a.ui=a.W.va),c||(a.K|=4))}function ud(a,b){-1!==a.xa.load(b)&&(a.K|=a.hf)}function F(a){return a.da-a.fa.va|0}function H(a,b){a.da=a.fa.va+(b&a.O)|0}function Pe(a,b){a.da=b;a.bg=(a.fa.va>>>0)+(a.fa.jb>>>0)+1;a.La=a.fa.tb;He(a)}
function yd(a,b,c,d){var e=a.fa;e.Ye=b;e.D=d;b=e.load(c);return-1!==b?(Pe(a,b+(a.fa.Ye&a.fa.O)),a.fa.ne):null}function Qe(a,b){var c=(a.da>>>0)+b;c>a.bg&&(8088>=a.ca?(c=a.fa.va+(c-a.bg&a.O),2==b&&(a.K|=8)):x.call(a,13,0));return c|0}function Re(a){a.da=a.Uc}function C(a){return a.lc&~a.W.ta|a.Aa-a.W.va}function B(a,b){a.lc=b;a.Aa=a.W.va+(b&a.W.ta)|0}
function Se(a,b,c,d,e,f){if(63!=(e&63)&&e!=a.resultType){var g=(e^a.resultType)&a.resultType;g&&(g&1&&Te(a),g&2&&Ue(a),g&4&&Ve(a),g&8&&We(a),g&16&&Xe(a),g&32&&Ye(a))}f?(a.Zd=d,a.sd=b):(a.Zd=b,a.sd=d);a.De=c;a.$d=d;a.resultType=e}function Ze(a,b,c,d,e){a.resultType=c|26;a.$d=b;d?$e(a):af(a);e?bf(a):cf(a);return b}function df(a,b,c,d){c&d?$e(a):af(a);(b^c)&d?bf(a):cf(a)}function ef(a){return Te(a)?1:0}
function Te(a){a.resultType&1&&(a.N&=-2,(a.Zd^(a.Zd^a.De)&(a.De^a.sd))&a.resultType&-2147450752&&(a.N|=1),a.resultType&=-2);return a.N&1}function Ue(a){a.resultType&2&&(a.N&=-5,38505>>((a.$d^a.$d>>4)&15)&1&&(a.N|=4),a.resultType&=-3);return a.N&4}function Ve(a){a.resultType&4&&(a.N&=-17,(a.sd^a.Zd^a.De)&16&&(a.N|=16),a.resultType&=-5);return a.N&16}function We(a){a.resultType&8&&(a.N&=-65,a.$d&((a.resultType&-2147450752)-1|a.resultType&-2147450752)||(a.N|=64),a.resultType&=-9);return a.N&64}
function Xe(a){a.resultType&16&&(a.N&=-129,a.$d&a.resultType&-2147450752&&(a.N|=128),a.resultType&=-17);return a.N&128}function Ye(a){a.resultType&32&&(a.N&=-2049,(a.Zd^a.sd)&(a.De^a.sd)&a.resultType&-2147450752&&(a.N|=2048),a.resultType&=-33);return a.N&2048}function af(a){a.resultType&=-2;a.N&=-2}function ff(a){a.resultType&=-5;a.N&=-17}function gf(a){a.resultType&=-9;a.N&=-65}function cf(a){a.resultType&=-33;a.N&=-2049}function $e(a){a.resultType&=-2;a.N|=1}
function yd(a,b,c,d){var e=a.fa;e.Ze=b;e.D=d;b=e.load(c);return-1!==b?(Pe(a,b+(a.fa.Ze&a.fa.O)),a.fa.ne):null}function Qe(a,b){var c=(a.da>>>0)+b;c>a.bg&&(8088>=a.ca?(c=a.fa.va+(c-a.bg&a.O),2==b&&(a.K|=8)):x.call(a,13,0));return c|0}function Re(a){a.da=a.Uc}function C(a){return a.lc&~a.W.ta|a.Aa-a.W.va}function B(a,b){a.lc=b;a.Aa=a.W.va+(b&a.W.ta)|0}
function Se(a,b,c,d,e,f){if(63!=(e&63)&&e!=a.resultType){var g=(e^a.resultType)&a.resultType;g&&(g&1&&Te(a),g&2&&Ue(a),g&4&&Ve(a),g&8&&We(a),g&16&&Xe(a),g&32&&Ye(a))}f?(a.Zd=d,a.sd=b):(a.Zd=b,a.sd=d);a.Ee=c;a.$d=d;a.resultType=e}function Ze(a,b,c,d,e){a.resultType=c|26;a.$d=b;d?$e(a):af(a);e?bf(a):cf(a);return b}function df(a,b,c,d){c&d?$e(a):af(a);(b^c)&d?bf(a):cf(a)}function ef(a){return Te(a)?1:0}
function Te(a){a.resultType&1&&(a.N&=-2,(a.Zd^(a.Zd^a.Ee)&(a.Ee^a.sd))&a.resultType&-2147450752&&(a.N|=1),a.resultType&=-2);return a.N&1}function Ue(a){a.resultType&2&&(a.N&=-5,38505>>((a.$d^a.$d>>4)&15)&1&&(a.N|=4),a.resultType&=-3);return a.N&4}function Ve(a){a.resultType&4&&(a.N&=-17,(a.sd^a.Zd^a.Ee)&16&&(a.N|=16),a.resultType&=-5);return a.N&16}function We(a){a.resultType&8&&(a.N&=-65,a.$d&((a.resultType&-2147450752)-1|a.resultType&-2147450752)||(a.N|=64),a.resultType&=-9);return a.N&64}
function Xe(a){a.resultType&16&&(a.N&=-129,a.$d&a.resultType&-2147450752&&(a.N|=128),a.resultType&=-17);return a.N&128}function Ye(a){a.resultType&32&&(a.N&=-2049,(a.Zd^a.sd)&(a.Ee^a.sd)&a.resultType&-2147450752&&(a.N|=2048),a.resultType&=-33);return a.N&2048}function af(a){a.resultType&=-2;a.N&=-2}function ff(a){a.resultType&=-5;a.N&=-17}function gf(a){a.resultType&=-9;a.N&=-65}function cf(a){a.resultType&=-33;a.N&=-2049}function $e(a){a.resultType&=-2;a.N|=1}
function hf(a){a.resultType&=-5;a.N|=16}function jf(a){a.resultType&=-9;a.N|=64}function bf(a){a.resultType&=-33;a.N|=2048}function wd(a){return a.N&-2262|Te(a)|Ue(a)|Ve(a)|We(a)|Xe(a)|Ye(a)}function kf(a,b){b|=a.pa&1|65520;a.pa=a.pa&-65536|b&65535;a.pa&1&&pd(a,!0)}function xd(a,b,c){a.pa&1||(b&=~a.Oh);void 0===c&&(c=a.La);c?b=b&-12289|a.N&12288:a.Zb=(b&12288)>>12;c>a.Zb&&(b=b&-513|a.N&512);a.resultType=128;a.N=a.N&~(a.od|2261)|b&(a.od|2261)|a.Qh;a.N&256&&(a.Qa|=2,a.K|=4)}
function lf(a,b,c){var d=0;if(a.pa&1&&(a.La>a.Zb||a.N&131072)&&a.la.Vh)for(var e=a.la.Vh+(b>>>3),d=(1<<c)-1<<(b&7);d&&e<=a.la.ck&&!(a.Ia(e)&d);)d>>>=8,e++;return d?(x.call(a,13,0),!1):!0}
l.Ab=function(a,b,c){switch(b){case "EAX":case "EBX":case "ECX":case "EDX":case "ESP":case "EBP":case "ESI":case "EDI":case "EIP":case "AX":case "BX":case "CX":case "DX":case "SP":case "BP":case "SI":case "DI":case "IP":case "PC":case "CS":case "DS":case "SS":case "ES":case "FS":case "GS":case "CR0":case "CR2":case "CR3":case "PS":case "C":case "P":case "A":case "Z":case "S":case "T":case "I":case "D":case "V":this.ia[b]=c;this.ji++;a=!0;break;default:a=Dc.prototype.Ab.call(this,a,b,c)}return a};
function mf(a,b,c,d){var e=(d?a.Nc:a.Y)[(b&a.Dc)>>>a.Eb];e&&e.type==qc&&(e=Ac(a,b,!1,!0));if(e){var f=b&a.Db;if(!c||1==c)return e.Bd(f,b);if(2==c)return f<a.Db?e.$e(f,b):e.Bd(f,b)|mf(a,b+1,1,d)<<8;if(4==c)return f<a.Db-2?e.hh(f,b):f==a.Db-1?e.$e(f,b)|mf(a,b+2,2,d)<<16:e.Bd(f,b)|mf(a,b+1,1,d)<<8|mf(a,b+2,1,d)<<16|mf(a,b+3,1,d)<<24}return null}l.Ia=function(a){return this.Y[(a&this.Dc)>>>this.Eb].oc(a&this.Db,a)};
l.ga=function(a){var b=a&this.Db,c=(a&this.Dc)>>>this.Eb;this.A-=this.B.Of;if(b<this.Db)return this.Y[c].Ze(b,a);b=this.Y[c].oc(b,a);this.K&4096||(b|=this.Y[c+1&this.ze].oc(0,a+1)<<8);return b};l.ea=function(a){var b=a&this.Db,c=(a&this.Dc)>>>this.Eb;if(b<this.Db-2)return this.Y[c].Rd(b,a);for(var d=0,e=4,f=0,g=4-(b&3);e--;){d|=this.Y[c].oc(b++,a++)<<f;if(this.K&4096)break;--g||(c=c+1&this.ze,b=0);f+=8}return d};l.Bb=function(a,b){this.Y[(a&this.Dc)>>>this.Eb].pc(a&this.Db,b&255,a)};
l.Za=function(a,b){var c=a&this.Db,d=(a&this.Dc)>>>this.Eb;this.A-=this.B.Of;c<this.Db?this.Y[d].gf(c,b&65535,a):(this.Y[d++].pc(c,b&255,a),this.K&4096||this.Y[d&this.ze].pc(0,b>>8&255,a+1))};l.Ta=function(a,b){var c=a&this.Db,d=(a&this.Dc)>>>this.Eb;this.A-=this.B.Of;if(c<this.Db-2)this.Y[d].ff(c,b,a);else for(var e=4,f=4-(c&3);e--;){this.Y[d].pc(c++,b&255,a++);if(this.K&4096)break;--f||(d=d+1&this.ze,c=0);b>>>=8}};function nf(a,b,c){a.Da=b;a.fb=c&a.ta;a.C=b.sb(a.fb,1);return a.K&1?0:a.Ia(a.C)}
function mf(a,b,c,d){var e=(d?a.Nc:a.Y)[(b&a.Dc)>>>a.Eb];e&&e.type==qc&&(e=Ac(a,b,!1,!0));if(e){var f=b&a.Db;if(!c||1==c)return e.Bd(f,b);if(2==c)return f<a.Db?e.af(f,b):e.Bd(f,b)|mf(a,b+1,1,d)<<8;if(4==c)return f<a.Db-2?e.hh(f,b):f==a.Db-1?e.af(f,b)|mf(a,b+2,2,d)<<16:e.Bd(f,b)|mf(a,b+1,1,d)<<8|mf(a,b+2,1,d)<<16|mf(a,b+3,1,d)<<24}return null}l.Ia=function(a){return this.Y[(a&this.Dc)>>>this.Eb].oc(a&this.Db,a)};
l.ga=function(a){var b=a&this.Db,c=(a&this.Dc)>>>this.Eb;this.A-=this.B.Of;if(b<this.Db)return this.Y[c].$e(b,a);b=this.Y[c].oc(b,a);this.K&4096||(b|=this.Y[c+1&this.Ae].oc(0,a+1)<<8);return b};l.ea=function(a){var b=a&this.Db,c=(a&this.Dc)>>>this.Eb;if(b<this.Db-2)return this.Y[c].Rd(b,a);for(var d=0,e=4,f=0,g=4-(b&3);e--;){d|=this.Y[c].oc(b++,a++)<<f;if(this.K&4096)break;--g||(c=c+1&this.Ae,b=0);f+=8}return d};l.Bb=function(a,b){this.Y[(a&this.Dc)>>>this.Eb].pc(a&this.Db,b&255,a)};
l.Za=function(a,b){var c=a&this.Db,d=(a&this.Dc)>>>this.Eb;this.A-=this.B.Of;c<this.Db?this.Y[d].gf(c,b&65535,a):(this.Y[d++].pc(c,b&255,a),this.K&4096||this.Y[d&this.Ae].pc(0,b>>8&255,a+1))};l.Ta=function(a,b){var c=a&this.Db,d=(a&this.Dc)>>>this.Eb;this.A-=this.B.Of;if(c<this.Db-2)this.Y[d].ff(c,b,a);else for(var e=4,f=4-(c&3);e--;){this.Y[d].pc(c++,b&255,a++);if(this.K&4096)break;--f||(d=d+1&this.Ae,c=0);b>>>=8}};function nf(a,b,c){a.Da=b;a.fb=c&a.ta;a.C=b.sb(a.fb,1);return a.K&1?0:a.Ia(a.C)}
function I(a,b){return nf(a,a.Ca,b)}function J(a,b){return nf(a,a.Gb,b)}function of(a,b,c){a.Da=b;a.fb=c&a.ta;a.C=b.sb(a.fb,a.T);if(a.K&9){if(a.K&1)return 0;a=a.Ia(a.C)|a.Ia(b.sb(0,1))<<8}else a=a.mb(a.C);return a}function K(a,b){a.Da=a.Ca;a.fb=b&a.ta;a.C=a.Da.sb(a.fb,2);if(a.K&9){if(a.K&1)return 0;b=a.Ia(a.C)|a.Ia(a.Da.sb(0,1))<<8;a.K&=-9}else b=a.ga(a.C);return b}
function L(a,b){a.Da=a.Gb;a.fb=b&a.ta;a.C=a.Da.sb(a.fb,2);if(a.K&9){if(a.K&1)return 0;b=a.Ia(a.C)|a.Ia(a.Da.sb(0,1))<<8;a.K&=-9}else b=a.ga(a.C);return b}function M(a,b){a.Da=a.Ca;a.fb=b&a.ta;a.C=a.Da.sb(a.fb,4);return a.K&1?0:a.ea(a.C)}function O(a,b){a.Da=a.Gb;a.fb=b&a.ta;a.C=a.Da.sb(a.fb,4);return a.K&1?0:a.ea(a.C)}function pf(a,b){a.K&2||a.Bb(a.Da.Kb(a.fb,1),b)}function qf(a,b){if(!(a.K&2)){var c=a.Da.Kb(a.fb,2);a.K&8?(a.Bb(c,b),a.Bb(a.Da.Kb(0,1),b>>8),a.K&=-9):a.Za(c,b)}}
function rf(a,b){a.K&2||a.Ta(a.Da.Kb(a.fb,4),b)}function rd(a,b,c){c=b.sb(c,a.T);a.K&8?(b=a.Ia(c)|a.Ia(b.sb(0,1))<<8,a.K&=-9):b=a.mb(c);return b}function sf(a,b,c,d){c=b.Kb(c,a.T);a.K&8?(a.Bb(c,d),a.Bb(b.Kb(0,1),d>>8),a.K&=-9):a.Lb(c,d)}l.ka=function(){var a=Qe(this,1),b=this.Ia(this.da);this.da=a;return b};function tf(a){var b,c=Qe(a,2);a.K&8?(b=a.Ia(a.da)|a.Ia(c-1)<<8,a.K&=-9):b=a.ga(a.da);a.da=c;return b}
@ -185,8 +185,8 @@ l.restore=function(a){a=a[0];var b=0;this.F=a[b++]&-57409;var c=a[b++];this.Z=c&
function If(a,b){return isFinite(b)?!0:!Hf(a,Infinity===b?8:16)}function Jf(a,b,c){var d=null;null!=b&&null!=c&&(d=b+c,If(a,d)||(d=null));return d}function Kf(a,b,c){var d=null;null!=b&&null!=c&&(d=b-c,If(a,d)||(d=null));return d}function Lf(a,b,c){var d=null;null!=b&&null!=c&&(d=b*c,If(a,d)||(d=null));return d}function Mf(a,b,c){var d=null;null==b||null==c||!c&&Hf(a,2)||(d=b/c,If(a,d)||(d=null));return d}
function Nf(a,b,c){if(null!=b&&null!=c){var d=0;isNaN(b)||isNaN(c)?d=17664:(b-=c,0>b?d=256:b||(d=16384));a.Z=a.Z&-18177|d;return!0}return!1}function Of(a,b,c){if(null==b)return null;var d=a.F&3072;d?d=1024==d||3072==d&&0<b?Math.floor(b):Math.ceil(b):(d=Math.round(b),.5===d-b&&d%2&&d--);if(c){if(d>=c){if(Hf(a,1))return null;d=-c}else if(d<-c){if(Hf(a,1))return null;d=-c}a.G[0]=d|0;2147483648<c&&(a.G[1]=d/4294967296|0,!a.G[1]&&0>d&&(a.G[1]=-1))}return d}
function Pf(a,b){var c=3;a.C&1<<b&&(a=a.H[b],c=0,a?isFinite(a)||(c=2):c=1);return c}function zf(a){for(var b=0,c=a.H.length-1;0<=c;c--)b<<=2,b|=Pf(a,c);return b}function Bf(a,b){a.C=0;for(var c=1;128>=c;c<<=1)3!=(b&3)&&(a.C|=c),b>>=2}function Qf(a){var b=a.B+0&7;return a.C&1<<b?(a.Y[0]=a.H[b],!0):Hf(a,1)?!1:(a.Y[0]=a.W[0],!0)}function Rf(a){var b=a.B+0&7;return a.C&1<<b?(a.K[0]=a.H[b],!0):Hf(a,1)?!1:(a.K[0]=a.W[0],!0)}
function R(a,b){var c=null;b=a.B+b&7;a.C&1<<b?c=a.H[b]:Hf(a,1)||(c=a.W[0]);return c}function S(a,b,c){return null!=c&&(isNaN(c)?!Hf(a,1):1)?(b=a.B+b&7,a.H[b]=c,a.C|=1<<b,!0):!1}function Sf(a,b,c){var d=null;b=a.B+b&7;if(c||a.C&1<<b||!Hf(a,1)){d=b<<1;c=a.aa[d];d=a.aa[d+1];b=d>>20&2047;var e=2147483648|(d&1048575)<<11|c>>>21;2047==b?b=32767:b?b+=15360:e&=2147483647;a.D[0]=c<<11;a.D[1]=e;a.D[2]=d>>16&32768|b;d=a.D}return d}function Vf(a){return a.R.ga(a.R.C)<<16>>16}
function Wf(a){return a.R.ea(a.R.C)}function Xf(a){a.ja[0]=a.R.ea(a.R.C);return a.Y[0]}function Yf(a){a.G[0]=a.R.ea(a.R.C);a.G[1]=a.R.ea(a.R.C+4);return a.K[0]}function Zf(a){a.D[0]=a.R.ea(a.R.C);a.D[1]=a.R.ea(a.R.C+4);a.D[2]=a.R.ga(a.R.C+8);return a.D}l.lh=function(){this.R.Ta(this.R.C,this.G[0])};l.Oj=function(){this.R.Ta(this.R.C,this.G[0]);this.R.Ta(this.R.C+4,this.G[1])};function $f(a){a.R.Ta(a.R.C,a.D[0]);a.R.Ta(a.R.C+4,a.D[1]);a.R.Za(a.R.C+8,a.D[2])}
function R(a,b){var c=null;b=a.B+b&7;a.C&1<<b?c=a.H[b]:Hf(a,1)||(c=a.W[0]);return c}function S(a,b,c){return null!=c&&(isNaN(c)?!Hf(a,1):1)?(b=a.B+b&7,a.H[b]=c,a.C|=1<<b,!0):!1}function Sf(a,b,c){var d=null;b=a.B+b&7;if(c||a.C&1<<b||!Hf(a,1)){d=b<<1;c=a.aa[d];d=a.aa[d+1];b=d>>20&2047;var e=2147483648|(d&1048575)<<11|c>>>21;2047==b?b=32767:b?b+=15360:e&=2147483647;a.D[0]=c<<11;a.D[1]=e;a.D[2]=d>>16&32768|b;d=a.D}return d}function Tf(a){return a.R.ga(a.R.C)<<16>>16}
function Uf(a){return a.R.ea(a.R.C)}function Xf(a){a.ja[0]=a.R.ea(a.R.C);return a.Y[0]}function Yf(a){a.G[0]=a.R.ea(a.R.C);a.G[1]=a.R.ea(a.R.C+4);return a.K[0]}function Zf(a){a.D[0]=a.R.ea(a.R.C);a.D[1]=a.R.ea(a.R.C+4);a.D[2]=a.R.ga(a.R.C+8);return a.D}l.lh=function(){this.R.Ta(this.R.C,this.G[0])};l.Oj=function(){this.R.Ta(this.R.C,this.G[0]);this.R.Ta(this.R.C+4,this.G[1])};function $f(a){a.R.Ta(a.R.C,a.D[0]);a.R.Ta(a.R.C+4,a.D[1]);a.R.Za(a.R.C+8,a.D[2])}
function ag(a,b){var c=b[1],d=(b[2]&32768)>>4,e=b[2]&32767;b=b[0]>>>11|c<<21;c=c>>11&1048575;32767==e?e=2047:e&&(e+=-15360,0>=e&&(e=2047,b=c=0));a.G[0]=b;a.G[1]=c|(d|e)<<20;return a.K[0]}function bg(a,b){for(var c=0,d=1;b--;)c+=(a&15)*d,d*=10,a>>=4;return c}function cg(a,b){for(var c=0,d=0;b--;)c|=a%10<<d,a/=10,d+=4;return c}function dg(a){var b=null,c=1<<a.B;if(!(a.C&c)&&(a.Z&=-513,Hf(a,65)))return b;a.C&=~c;b=a.H[a.B];a.B=a.B+1&7;return b}
function eg(a,b){if(null!=b){var c=a.B-1&7,d=1<<c;if(a.C&d&&(a.Z|=512,Hf(a,65)))return;if(isNaN(b)&&Hf(a,1)){if(Hf(a,1))return;b=NaN}a.H[a.B=c]=b;a.C|=d}}
function fg(a,b){var c,d=a.R;c=d.mb(b);a.F=c&-57409;c=d.mb(b+=d.T);a.Z=c&-14337;a.B=(c&14336)>>11;Af(a);Bf(a,d.mb(b+=d.T));!(d.pa&1)||d.N&131072?(a.I=d.mb(b+=d.T),c=d.mb(b+=d.T),a.N=c&2047,a.I|=(c&-4096)<<4,a.L=-1,a.J=d.mb(b+=d.T),a.J|=(d.mb(b+=d.T)&-4096)<<4,a.M=-1):(a.I=d.mb(b+=d.T),c=d.mb(b+=d.T),a.L=c&65535,a.N=c>>16&2047,a.J=d.mb(b+=d.T),a.M=d.mb(b+=d.T)&65535);return b+d.T}
@ -197,13 +197,13 @@ var Ag=Math.log(10)/Math.LN2,Bg=Math.LOG2E,Cg=Math.PI,Dg=Math.log(2)/Math.LN10,E
0,Lf(this,R(this,0),R(this,this.A)))},50:ig,51:jg,52:function(){S(this,0,Kf(this,R(this,0),R(this,this.A)))},53:function(){S(this,0,Kf(this,R(this,this.A),R(this,0)))},54:function(){S(this,0,Mf(this,R(this,0),R(this,this.A)))},55:function(){S(this,0,Mf(this,R(this,this.A),R(this,0)))}},217:{0:function(){eg(this,Xf(this))},2:function(){Qf(this)&&this.fa()},3:function(){Qf(this)&&(this.fa(),dg(this))},4:pg,5:og,6:sg,7:vg,48:function(){eg(this,R(this,this.A))},49:yg,50:function(){},51:ug,64:function(){S(this,
0,-R(this,0))},65:function(){S(this,0,Math.abs(R(this,0)))},68:function(){Nf(this,R(this,0),0)},69:function(){this.Z&=-18177;this.aa[((this.B+0&7)<<1)+1]&-2147483648&&(this.Z|=512);if(3==Pf(this,this.B))this.Z|=16640;else{var a=R(this,0);this.Z=isNaN(a)?this.Z|256:0===a?this.Z|16384:Infinity===a||-Infinity===a?this.Z|1280:this.Z|1024}},80:function(){eg(this,1)},81:function(){eg(this,Ag)},82:function(){eg(this,Bg)},83:function(){eg(this,Cg)},84:function(){eg(this,Dg)},85:function(){eg(this,Eg)},86:function(){eg(this,
0)},96:function(){S(this,0,Math.pow(2,R(this,0))-1)},97:function(){S(this,1,R(this,1)*Math.log(R(this,0))/Math.LN2)&&dg(this)},98:function(){S(this,0,Math.tan(R(this,0)))&&eg(this,1)},99:function(){S(this,1,Math.atan2(R(this,1),R(this,0)))&&dg(this)},100:function(){var a=R(this,0);null!=a&&(this.K[0]=a,S(this,0,(this.G[1]>>20&2047)-1023),this.G[1]=(this.G[1]|1072693248)&-1073741825,eg(this,this.K[0]))},102:function(){this.B=this.B-1&7;this.Z&=-513},103:function(){this.B=this.B+1&7;this.Z&=-513},112:function(){S(this,
0,R(this,0)%R(this,1))},113:function(){S(this,1,R(this,1)*Math.log(R(this,0)+1)/Math.LN2)&&dg(this)},114:function(){var a=R(this,0),b=null;if(0<=a||!Hf(this,1))b=Math.sqrt(a),If(this,b)||(b=null);S(this,0,b)},116:function(){S(this,0,Of(this,R(this,0),Fg))},117:function(){var a=R(this,0),b=R(this,1);null!=a&&null!=b&&S(this,0,a*Math.pow(2,0<b?Math.floor(b):Math.ceil(b)))}},218:{0:function(){S(this,0,Jf(this,R(this,0),Wf(this)))},1:function(){S(this,0,Lf(this,R(this,0),Wf(this)))},2:function(){Nf(this,
R(this,0),Wf(this))},3:function(){Nf(this,R(this,0),Wf(this))&&dg(this)},4:function(){S(this,0,Kf(this,R(this,0),Wf(this)))},5:function(){S(this,0,Kf(this,Wf(this),R(this,0)))},6:function(){S(this,0,Mf(this,R(this,0),Wf(this)))},7:function(){S(this,0,Mf(this,Wf(this),R(this,0)))}},219:{0:function(){eg(this,Wf(this))},2:function(){null!=Of(this,R(this,0),2147483648)&&this.lh()},3:function(){null!=Of(this,R(this,0),2147483648)&&(this.lh(),dg(this))},5:function(){eg(this,ag(this,Zf(this)))},7:function(){Sf(this,
0,R(this,0)%R(this,1))},113:function(){S(this,1,R(this,1)*Math.log(R(this,0)+1)/Math.LN2)&&dg(this)},114:function(){var a=R(this,0),b=null;if(0<=a||!Hf(this,1))b=Math.sqrt(a),If(this,b)||(b=null);S(this,0,b)},116:function(){S(this,0,Of(this,R(this,0),Fg))},117:function(){var a=R(this,0),b=R(this,1);null!=a&&null!=b&&S(this,0,a*Math.pow(2,0<b?Math.floor(b):Math.ceil(b)))}},218:{0:function(){S(this,0,Jf(this,R(this,0),Uf(this)))},1:function(){S(this,0,Lf(this,R(this,0),Uf(this)))},2:function(){Nf(this,
R(this,0),Uf(this))},3:function(){Nf(this,R(this,0),Uf(this))&&dg(this)},4:function(){S(this,0,Kf(this,R(this,0),Uf(this)))},5:function(){S(this,0,Kf(this,Uf(this),R(this,0)))},6:function(){S(this,0,Mf(this,R(this,0),Uf(this)))},7:function(){S(this,0,Mf(this,Uf(this),R(this,0)))}},219:{0:function(){eg(this,Uf(this))},2:function(){null!=Of(this,R(this,0),2147483648)&&this.lh()},3:function(){null!=Of(this,R(this,0),2147483648)&&(this.lh(),dg(this))},5:function(){eg(this,ag(this,Zf(this)))},7:function(){Sf(this,
0)&&($f(this),dg(this))},64:function(){8087==this.ca&&(this.F&=-129)},65:function(){8087==this.ca&&(this.F|=128)},66:hg,67:ng,68:function(){},115:function(){}},220:{0:function(){S(this,0,Jf(this,R(this,0),Yf(this)))},1:function(){S(this,0,Lf(this,R(this,0),Yf(this)))},2:function(){Nf(this,R(this,0),Yf(this))},3:function(){Nf(this,R(this,0),Yf(this))&&dg(this)},4:function(){S(this,0,Kf(this,R(this,0),Yf(this)))},5:function(){S(this,0,Kf(this,Yf(this),R(this,0)))},6:function(){S(this,0,Mf(this,R(this,
0),Yf(this)))},7:function(){S(this,0,Mf(this,Yf(this),R(this,0)))},48:function(){S(this,this.A,Jf(this,R(this,this.A),R(this,0)))},49:function(){S(this,this.A,Lf(this,R(this,this.A),R(this,0)))},50:function(){ig.call(this)},51:kg,52:function(){S(this,this.A,Kf(this,R(this,0),R(this,this.A)))},53:function(){S(this,this.A,Kf(this,R(this,this.A),R(this,0)))},54:function(){S(this,this.A,Mf(this,R(this,0),R(this,this.A)))},55:function(){S(this,this.A,Mf(this,R(this,this.A),R(this,0)))}},221:{0:function(){eg(this,
Yf(this))},2:function(){Rf(this)&&this.da()},3:function(){Rf(this)&&(this.da(),dg(this))},4:qg,6:rg,7:wg,48:mg,49:zg,50:function(){S(this,this.A,R(this,0))},51:tg},222:{0:function(){S(this,0,Jf(this,R(this,0),Vf(this)))},1:function(){S(this,0,Lf(this,R(this,0),Vf(this)))},2:function(){Nf(this,R(this,0),Vf(this))},3:function(){Nf(this,R(this,0),Vf(this))&&dg(this)},4:function(){S(this,0,Kf(this,R(this,0),Vf(this)))},5:function(){S(this,0,Kf(this,Vf(this),R(this,0)))},6:function(){S(this,0,Mf(this,
R(this,0),Vf(this)))},7:function(){S(this,0,Mf(this,Vf(this),R(this,0)))},48:function(){S(this,this.A,Jf(this,R(this,this.A),R(this,0)))&&dg(this)},49:function(){S(this,this.A,Lf(this,R(this,this.A),R(this,0)))&&dg(this)},50:kg,51:function(){Nf(this,R(this,0),R(this,1))&&null!=dg(this)&&dg(this)},52:function(){S(this,this.A,Kf(this,R(this,0),R(this,this.A)))&&dg(this)},53:function(){S(this,this.A,Kf(this,R(this,this.A),R(this,0)))&&dg(this)},54:function(){S(this,this.A,Mf(this,R(this,0),R(this,this.A)))&&
dg(this)},55:function(){S(this,this.A,Mf(this,R(this,this.A),R(this,0)))&&dg(this)}},223:{0:function(){eg(this,Vf(this))},2:function(){null!=Of(this,R(this,0),32768)&&this.R.Za(this.R.C,this.G[0])},3:function(){null!=Of(this,R(this,0),32768)&&(this.R.Za(this.R.C,this.G[0]),dg(this))},4:function(){var a=Zf(this),b=bg(a[0],8)+1E8*bg(a[1],8)+1E16*bg(a[2],2);a[2]&32768&&(b=-b);eg(this,b)},5:function(){var a;a=this.R.ea(this.R.C);a=4294967296*this.R.ea(this.R.C+4)+(a>>>0);eg(this,a)},6:function(){var a=
Yf(this))},2:function(){Rf(this)&&this.da()},3:function(){Rf(this)&&(this.da(),dg(this))},4:qg,6:rg,7:wg,48:mg,49:zg,50:function(){S(this,this.A,R(this,0))},51:tg},222:{0:function(){S(this,0,Jf(this,R(this,0),Tf(this)))},1:function(){S(this,0,Lf(this,R(this,0),Tf(this)))},2:function(){Nf(this,R(this,0),Tf(this))},3:function(){Nf(this,R(this,0),Tf(this))&&dg(this)},4:function(){S(this,0,Kf(this,R(this,0),Tf(this)))},5:function(){S(this,0,Kf(this,Tf(this),R(this,0)))},6:function(){S(this,0,Mf(this,
R(this,0),Tf(this)))},7:function(){S(this,0,Mf(this,Tf(this),R(this,0)))},48:function(){S(this,this.A,Jf(this,R(this,this.A),R(this,0)))&&dg(this)},49:function(){S(this,this.A,Lf(this,R(this,this.A),R(this,0)))&&dg(this)},50:kg,51:function(){Nf(this,R(this,0),R(this,1))&&null!=dg(this)&&dg(this)},52:function(){S(this,this.A,Kf(this,R(this,0),R(this,this.A)))&&dg(this)},53:function(){S(this,this.A,Kf(this,R(this,this.A),R(this,0)))&&dg(this)},54:function(){S(this,this.A,Mf(this,R(this,0),R(this,this.A)))&&
dg(this)},55:function(){S(this,this.A,Mf(this,R(this,this.A),R(this,0)))&&dg(this)}},223:{0:function(){eg(this,Tf(this))},2:function(){null!=Of(this,R(this,0),32768)&&this.R.Za(this.R.C,this.G[0])},3:function(){null!=Of(this,R(this,0),32768)&&(this.R.Za(this.R.C,this.G[0]),dg(this))},4:function(){var a=Zf(this),b=bg(a[0],8)+1E8*bg(a[1],8)+1E16*bg(a[2],2);a[2]&32768&&(b=-b);eg(this,b)},5:function(){var a;a=this.R.ea(this.R.C);a=4294967296*this.R.ea(this.R.C+4)+(a>>>0);eg(this,a)},6:function(){var a=
Of(this,dg(this));null!=a&&(this.D[0]=cg(a,8),this.D[1]=cg(a/1E8,8),this.D[2]=cg(a/1E16,2),0>a&&(this.D[2]|=32768),$f(this))},7:function(){null!=Of(this,R(this,0),Fg)&&(this.Oj(),dg(this))},48:function(){mg.call(this);dg(this)},49:zg,50:ug,51:ug,52:xg}},Hg=[hg,ng,og,pg,qg,rg,vg,sg,wg,xg];Ma(function(){for(var a=cb(document,"pcx86","fpu"),b=0;b<a.length;b++){var c=a[b],d=db(c),d=new xf(d);bb(d,c)}});
function Ig(a,b){var c=a+b+ef(this)|0;Se(this,a,b,c,191);this.A-=-1===this.D?-1===this.C?this.B.$b:this.B.zb:this.B.nc;return c&255}function Jg(a,b){var c=a+b+ef(this)|0;Se(this,a,b,c,this.wb|63);this.A-=-1===this.D?-1===this.C?this.B.$b:this.B.zb:this.B.nc;return c&this.O}function Kg(a,b){var c=a+b|0;Se(this,a,b,c,191);this.A-=-1===this.D?-1===this.C?this.B.$b:this.B.zb:this.B.nc;return c&255}
function Lg(a,b){var c=a+b|0;Se(this,a,b,c,this.wb|63);this.A-=-1===this.D?-1===this.C?this.B.$b:this.B.zb:this.B.nc;return c&this.O}function Mg(a,b){a&=b;Ze(this,a,128);this.A-=-1===this.D?-1===this.C?this.B.$b:this.B.zb:this.B.nc;return a}function Ng(a,b){this.A-=-1===this.D?-1===this.C?this.B.$b:this.B.zb:this.B.nc;return Ze(this,a&b,this.wb)&this.O}function Og(a,b){this.A-=10+(-1===this.C?0:1);if((a&3)<(b&3))return a=a&-4|b&3,jf(this),a;gf(this);return a}
@ -224,7 +224,7 @@ function ih(a,b){if(a&-65536||b&-65536){var c=b&65535;b>>>=16;var d=a&65535;a>>>
function yh(a,b){var c=a-b-ef(this)|0;Se(this,a,b,c,191,!0);this.A-=-1===this.D?-1===this.C?this.B.$b:this.B.zb:this.B.nc;return c&255}function zh(a,b){var c=a-b-ef(this)|0;Se(this,a,b,c,this.wb|63,!0);this.A-=-1===this.D?-1===this.C?this.B.$b:this.B.zb:this.B.nc;return c&this.O}function Ah(){return Ye(this)?1:0}function Bh(){return Te(this)?1:0}function Ch(){return Te(this)?0:1}function Dh(){return We(this)?1:0}function Eh(){return We(this)?0:1}function Fh(){return Te(this)||We(this)?1:0}
function Gh(){return Te(this)||We(this)?0:1}function Hh(){return Xe(this)?1:0}function Ih(){return Xe(this)?0:1}function Jh(){return Ue(this)?1:0}function Kh(){return Ue(this)?0:1}function Lh(){return!Xe(this)!=!Ye(this)?1:0}function Mh(){return!Xe(this)!=!Ye(this)?0:1}function Nh(){return We(this)||!Xe(this)!=!Ye(this)?1:0}function Oh(){return We(this)||!Xe(this)!=!Ye(this)?0:1}function Ph(a,b){return Qh.call(this,a,b,this.ka())}function Rh(a,b){return Sh.call(this,a,b,this.ka())}
function Th(a,b){return Qh.call(this,a,b,this.H&31)}function Uh(a,b){return Sh.call(this,a,b,this.H&31)}function Vh(a,b){return Wh.call(this,a,b,this.ka())}function Xh(a,b){return ai.call(this,a,b,this.ka())}function bi(a,b){return Wh.call(this,a,b,this.H&31)}function ci(a,b){return ai.call(this,a,b,this.H&31)}function di(a,b){var c=a-b|0;Se(this,a,b,c,191,!0);this.A-=-1===this.D?-1===this.C?this.B.$b:this.B.zb:this.B.nc;return c&255}
function ei(a,b){var c=a-b|0;Se(this,a,b,c,this.wb|63,!0);this.A-=-1===this.D?-1===this.C?this.B.$b:this.B.zb:this.B.nc;return c&this.O}function fi(a,b){Ze(this,a&b,128);this.A-=-1===this.D?-1===this.C?this.B.ah:this.B.Ue:this.B.Ue;this.K|=2;return a}function gi(a,b){Ze(this,a&b,this.wb);this.A-=-1===this.D?-1===this.C?this.B.ah:this.B.Ue:this.B.Ue;this.K|=2;return a}function hi(a,b){var c=this.F&this.O,d=(1<<(this.H&31))-1;return a&~(d<<c)|(b&d)<<c}
function ei(a,b){var c=a-b|0;Se(this,a,b,c,this.wb|63,!0);this.A-=-1===this.D?-1===this.C?this.B.$b:this.B.zb:this.B.nc;return c&this.O}function fi(a,b){Ze(this,a&b,128);this.A-=-1===this.D?-1===this.C?this.B.ah:this.B.Ve:this.B.Ve;this.K|=2;return a}function gi(a,b){Ze(this,a&b,this.wb);this.A-=-1===this.D?-1===this.C?this.B.ah:this.B.Ve:this.B.Ve;this.K|=2;return a}function hi(a,b){var c=this.F&this.O,d=(1<<(this.H&31))-1;return a&~(d<<c)|(b&d)<<c}
function ii(a,b){return b>>(this.F&this.O)&(1<<(this.H&31))-1&this.O}function ji(a,b){if(-1===this.C){switch(this.aa&7){case 0:this.F=this.F&-256|a;break;case 1:this.H=this.H&-256|a;break;case 2:this.L=this.L&-256|a;break;case 3:this.G=this.G&-256|a;break;case 4:this.F=this.F&-65281|a<<8;break;case 5:this.H=this.H&-65281|a<<8;break;case 6:this.L=this.L&-65281|a<<8;break;case 7:this.G=this.G&-65281|a<<8}this.A-=this.B.dh}else this.D=this.C,pf(this,a),this.A-=this.B.bh;return b}
function ki(a,b){if(-1===this.C){switch(this.aa&7){case 0:this.F=this.F&~this.O|a;break;case 1:this.H=this.H&~this.O|a;break;case 2:this.L=this.L&~this.O|a;break;case 3:this.G=this.G&~this.O|a;break;case 4:B(this,C(this)&~this.O|a);break;case 5:this.M=this.G&~this.O|a;break;case 6:this.J=this.J&~this.O|a;break;case 7:this.I=this.I&~this.O|a}this.A-=this.B.dh}else{this.D=this.C;if(!(this.K&2)){var c=this.Da.Kb(this.fb,this.T);this.K&8?(this.Bb(c,a),this.Bb(this.Da.Kb(0,1),a>>8),this.K&=-9):this.Lb(c,
a)}this.A-=this.B.bh}return b}function li(a,b){a^=b;Ze(this,a,128);this.A-=-1===this.D?-1===this.C?this.B.$b:this.B.zb:this.B.nc;return a}function mi(a,b){this.A-=-1===this.D?-1===this.C?this.B.$b:this.B.zb:this.B.nc;return Ze(this,a^b,this.wb)&this.O}function ni(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function oi(a){var b=a-1|0;Se(this,a,1,b,this.wb|62,!0);this.A-=2;return a&~this.O|b&this.O}
@ -376,13 +376,13 @@ b){this.A-=-1===this.D?this.B.jj:this.B.hj;return b},T,T,T,T,T,T,T],Zi=[function
a;if(b&=this.Ma){var d;(b&=15)?(d=a<<16-b,c=(a>>>b|d)&65535):d=a;df(this,c,d,32768)}return c},function(a,b){var c=a;if(b&=this.Ma){var d=ef(this);(b%=17)?(c=(a<<b|d<<b-1|a>>17-b)&65535,d=a<<b-1):d<<=15;df(this,c,d,32768)}return c},function(a,b){var c=a;if(b&=this.Ma){var d=ef(this);(b%=17)?(c=(a>>b|d<<16-b|a<<17-b)&65535,d=a<<16-b):d<<=15;df(this,c,d,32768)}return c},function(a,b){var c=a;if(b&=this.Ma){var d=0;16<b?c=0:(d=a<<b-1,c=d<<1&65535);Ze(this,c,32768,d&32768,(c^d)&32768)}return c},function(a,
b){if(b&=this.Ma)b=16<b?0:a>>>b-1,a=b>>>1&65535,Ze(this,a,32768,b&1,a&32768);return a},T,function(a,b){if(b&=this.Ma)17<b&&(b=17),b=a<<16>>16>>b-1,a=b>>1&65535,Ze(this,a,32768,b&1);return a}],aj=[function(a,b){var c=a;if(b&=this.Ma)c=a<<b|a>>>32-b,df(this,c,a<<b-1,-2147483648);return c},function(a,b){var c=a;if(b&=this.Ma){var d=a<<32-b,c=a>>>b|d;df(this,c,d,-2147483648)}return c},function(a,b){var c=a;if(b&=this.Ma)c=ef(this),c=a<<b|c<<b-1|a>>>32-b>>>1,df(this,c,a<<b-1,-2147483648);return c},function(a,
b){var c=a;if(b&=this.Ma)c=ef(this),c=a>>>b|c<<32-b|a<<32-b<<1,df(this,c,a<<32-b,-2147483648);return c},function(a,b){var c=a;if(b&=this.Ma)a<<=b-1,c=a<<1,Ze(this,c,-2147483648,a&-2147483648,(c^a)&-2147483648);return c},function(a,b){if(b&=this.Ma)b=a>>>b-1,a=b>>>1,Ze(this,a,-2147483648,b&1,a&-2147483648);return a},T,function(a,b){if(b&=this.Ma)b=a>>b-1,a=b>>1,Ze(this,a,-2147483648,b&1);return a}],kj=[function(a,b){b=this.ka();Ze(this,a&b,128);this.A-=-1===this.C?this.B.$g:this.B.Zg;this.K|=2;return a},
T,function(a){this.A-=-1===this.C?this.B.Te:this.B.Se;return a^255},function(a){var b=-a|0;Se(this,0,a,b,191,!0);this.A-=-1===this.C?this.B.Te:this.B.Se;return b&255},function(a){this.Ba=(this.F&255)*a&65535;this.Ba&65280?($e(this),bf(this)):(af(this),cf(this));this.fc=!0;this.A-=-1===this.C?this.B.nj:this.B.mj;this.K|=2;return a},function(a){var b=(this.F<<24>>24)*(a<<24>>24)|0;this.Ba=b&65535;127<b||-128>b?($e(this),bf(this)):(af(this),cf(this));this.fc=!0;this.A-=-1===this.C?this.B.Ti:this.B.Si;
T,function(a){this.A-=-1===this.C?this.B.Ue:this.B.Te;return a^255},function(a){var b=-a|0;Se(this,0,a,b,191,!0);this.A-=-1===this.C?this.B.Ue:this.B.Te;return b&255},function(a){this.Ba=(this.F&255)*a&65535;this.Ba&65280?($e(this),bf(this)):(af(this),cf(this));this.fc=!0;this.A-=-1===this.C?this.B.nj:this.B.mj;this.K|=2;return a},function(a){var b=(this.F<<24>>24)*(a<<24>>24)|0;this.Ba=b&65535;127<b||-128>b?($e(this),bf(this)):(af(this),cf(this));this.fc=!0;this.A-=-1===this.C?this.B.Ti:this.B.Si;
this.K|=2;return a},function(a,b){if(!a)return Bi.call(this),a;var c=(b=this.F&65535)/a;if(255<c)return Bi.call(this),a;this.Ba=c&255|(b%a&255)<<8;this.fc=!0;this.A-=-1===this.C?this.B.Li:this.B.Ki;this.K|=2;return a},function(a,b){if(!a)return Bi.call(this),a;var c=a<<24>>24,d=(b=this.F<<16>>16)/c|0;if(d!=d<<24>>24||8086==this.ca&&-128==d)return Bi.call(this),a;this.Ba=d&255|(b%c&255)<<8;this.fc=!0;this.A-=-1===this.C?this.B.Pi:this.B.Oi;this.K|=2;return a}],lj=[function(a,b){b=this.ya();Ze(this,
a&b,this.wb);this.A-=-1===this.C?this.B.$g:this.B.Zg;this.K|=2;return a},T,function(a){this.A-=-1===this.C?this.B.Te:this.B.Se;return a^this.O},function(a){var b=-a|0;Se(this,0,a,b,this.wb|63,!0);this.A-=-1===this.C?this.B.Te:this.B.Se;return b&this.O},function(a,b){2==this.T?(b=this.F&65535,b=b*a|0,this.Ba=b&65535,this.Sa=b>>16&65535):(ih.call(this,a,this.F),80563==this.pd&&68657152==this.F&&129==a&&(this.Sa=0));this.Sa?($e(this),bf(this)):(af(this),cf(this));this.fc=!0;this.A-=-1===this.C?this.B.pj:
a&b,this.wb);this.A-=-1===this.C?this.B.$g:this.B.Zg;this.K|=2;return a},T,function(a){this.A-=-1===this.C?this.B.Ue:this.B.Te;return a^this.O},function(a){var b=-a|0;Se(this,0,a,b,this.wb|63,!0);this.A-=-1===this.C?this.B.Ue:this.B.Te;return b&this.O},function(a,b){2==this.T?(b=this.F&65535,b=b*a|0,this.Ba=b&65535,this.Sa=b>>16&65535):(ih.call(this,a,this.F),80563==this.pd&&68657152==this.F&&129==a&&(this.Sa=0));this.Sa?($e(this),bf(this)):(af(this),cf(this));this.fc=!0;this.A-=-1===this.C?this.B.pj:
this.B.oj;this.K|=2;return a},function(a,b){2==this.T?(b=this.F&65535,b=(b<<16>>16)*(a<<16>>16)|0,this.Ba=b&65535,this.Sa=b>>16&65535,b=32767<b||-32768>b):(hh.call(this,a,this.F),b=this.Sa!=this.Ba>>31);b?($e(this),bf(this)):(af(this),cf(this));this.fc=!0;this.A-=-1===this.C?this.B.Vi:this.B.Ui;this.K|=2;return a},function(a,b){if(2==this.T){if(!a)return Bi.call(this),a;b=65536*(this.L&65535)+(this.F&65535);var c=b/a;if(65536<=c)return Bi.call(this),a;this.Ba=c&65535;this.Sa=b%a&65535}else{if(!pi.call(this,
this.F,this.L,a))return Bi.call(this),a;this.Ba|=0;this.Sa|=0}this.fc=!0;this.A-=-1===this.C?this.B.Ni:this.B.Mi;this.K|=2;return a},function(a,b){if(2==this.T){if(!a)return Bi.call(this),a;var c=a<<16>>16,d=(b=this.L<<16|this.F&65535)/c|0;if(d!=d<<16>>16||8086==this.ca&&-32768==d)return Bi.call(this),a;this.Ba=d&65535;this.Sa=b%c&65535}else{b=this.F;var c=this.L,d=a,e=0,f=0;0>d&&(d=-d|0,e=1-e);0>c&&(b=-b|0,c=~c+(b?0:1)|0,f=1,e=1-e);!pi.call(this,b,c,d)||this.Ba>2147483647+e||this.Sa>2147483647+f?
b=!1:(e&&(this.Ba=-this.Ba),f&&(this.Sa=-this.Sa),b=!0);if(!b)return Bi.call(this),a;this.Ba|=0;this.Sa|=0}this.fc=!0;this.A-=-1===this.C?this.B.Ri:this.B.Qi;this.K|=2;return a}],Cd=[function(a){var b=a+1|0;Se(this,a,1,b,190);this.A-=-1===this.C?this.B.Re:this.B.Qe;return b&255},function(a){var b=a-1|0;Se(this,a,1,b,190,!0);this.A-=-1===this.C?this.B.Re:this.B.Qe;return b&255},T,T,T,T,T,T],Dd=[function(a){var b=a+1|0;Se(this,a,1,b,this.wb|62);this.A-=-1===this.C?this.B.Re:this.B.Qe;return b&this.O},
function(a){var b=a-1|0;Se(this,a,1,b,this.wb|62,!0);this.A-=-1===this.C?this.B.Re:this.B.Qe;return b&this.O},function(a){E(this,F(this));H(this,a);this.A-=-1===this.C?this.B.Ji:this.B.Ii;this.K|=2;return a},function(a){if(-1===this.C)return T.call(this,a);this.ma=this.Aa;xi.call(this,a,this.ga(this.C+this.T));this.A-=this.B.Gi;this.K|=2;this.ma=-1;return a},function(a){H(this,a);this.A-=-1===this.C?this.B.dj:this.B.cj;this.K|=2;return a},function(a){if(-1===this.C)return T.call(this,a);yd(this,a,
b=!1:(e&&(this.Ba=-this.Ba),f&&(this.Sa=-this.Sa),b=!0);if(!b)return Bi.call(this),a;this.Ba|=0;this.Sa|=0}this.fc=!0;this.A-=-1===this.C?this.B.Ri:this.B.Qi;this.K|=2;return a}],Cd=[function(a){var b=a+1|0;Se(this,a,1,b,190);this.A-=-1===this.C?this.B.Se:this.B.Re;return b&255},function(a){var b=a-1|0;Se(this,a,1,b,190,!0);this.A-=-1===this.C?this.B.Se:this.B.Re;return b&255},T,T,T,T,T,T],Dd=[function(a){var b=a+1|0;Se(this,a,1,b,this.wb|62);this.A-=-1===this.C?this.B.Se:this.B.Re;return b&this.O},
function(a){var b=a-1|0;Se(this,a,1,b,this.wb|62,!0);this.A-=-1===this.C?this.B.Se:this.B.Re;return b&this.O},function(a){E(this,F(this));H(this,a);this.A-=-1===this.C?this.B.Ji:this.B.Ii;this.K|=2;return a},function(a){if(-1===this.C)return T.call(this,a);this.ma=this.Aa;xi.call(this,a,this.ga(this.C+this.T));this.A-=this.B.Gi;this.K|=2;this.ma=-1;return a},function(a){H(this,a);this.A-=-1===this.C?this.B.dj:this.B.cj;this.K|=2;return a},function(a){if(-1===this.C)return T.call(this,a);yd(this,a,
this.ga(this.C+this.T));this.A-=this.B.aj;this.K|=2;return a},function(a){var b=a;this.K&512&&(a=a-2&65535,80286>this.ca&&(b=a));E(this,b);this.A-=-1===this.C?this.B.tc:this.B.tj;this.K|=2;return a},T];function fe(){this.ja.call(this,ii);this.A-=-1===this.C?6:13}function ge(){this.za.call(this,hi);this.A-=-1===this.C?12:19}var Yd=Array(256);Yd[0]=function(){16>(this.Ia(this.da)&56)&&(this.K|=1);this.eb.call(this,this.di,vi)};Yd[1]=function(){this.Ia(this.da)&16||(this.K|=1);this.eb.call(this,mj,vi)};
Yd[2]=function(){!(this.pa&1)||this.N&131072?x.call(this,6):this.ja.call(this,jh)};Yd[3]=function(){!(this.pa&1)||this.N&131072?x.call(this,6):this.ja.call(this,ph)};
Yd[5]=function(){this.La?x.call(this,13,0,0,!0):(kf(this,this.ga(2054)),this.I=this.ga(2086),this.J=this.ga(2088),this.M=this.ga(2090),this.G=this.ga(2094),this.L=this.ga(2096),this.H=this.ga(2098),this.F=this.ga(2100),jd(this.xa,2102,this.ga(2084)),jd(this.fa,2108,this.ga(2082)),jd(this.W,2114,this.ga(2080)),jd(this.Ga,2120,this.ga(2078)),xd(this,this.ga(2072)),H(this,this.ga(2074)),B(this,this.ga(2092)),this.Jb=this.ga(2126)|this.Ia(2128)<<16,this.Oc=this.Jb+this.ga(2130),this.Xb=this.ga(2138)|
@ -416,12 +416,12 @@ l.reset=function(a){var b;Nj(this);this.D=Array(this.za);for(b=0;b<this.za;b++)O
gk|hk;this.G=Array(8);this.W=0;a&&(this.A=Array(ik));jk(this,this.Sa);for(a=kk;a<=lk;a++)this.A[a]=0;for(a=mk;a<nk;a++)void 0===this.A[a]&&(this.A[a]=0);a=0|+bk(this,uj,void 0)<<ok.$f&ok.ic;a|=+bk(this,wj,void 0)?pk:0;b=+bk(this,tj,void 0);a|=b?b-1<<qk.$f&qk.ic|qk.Zj:0;this.A[rk]=a;this.A[sk]=tk(this,0)<<4|tk(this,1);uk(this)}};
function jk(a,b){var c=b?new Date(b):new Date;"[object Date]"!==Object.prototype.toString.call(c)||isNaN(c.getTime())?(c=new Date,a.qb("CMOS date invalid ("+b+"), using "+c)):b&&a.qb("CMOS date: "+c);a.A[vk]=c.getSeconds();a.A[wk]=0;a.A[xk]=c.getMinutes();a.A[yk]=0;a.A[zk]=c.getHours();a.A[Ak]=0;a.A[Bk]=c.getDay()+1;a.A[Ck]=c.getDate();a.A[Dk]=c.getMonth()+1;b=c.getFullYear();a.A[Ek]=b%100;b/=100;a.A[Fk]=b%10|b/10<<4;a.A[Gk]=38;a.A[$c]=Hk;a.A[Ik]=0;a.A[Jk]=Kk;a.ma=a.Y=0;a.Qa=a.Aa=null}
function Lk(a){var b=a.Aa;a.Y=Sc(a.R,a.M)+b;a.A[$c]&ad&&Qc(a.R,b)}function uk(a){for(var b=0,c=sk;c<nk;c++)b+=a.A[c];a.A[Mk]=b&255;a.A[nk]=b>>8}
l.save=function(){var a=new Me(this);a.set(0,[this.B]);for(var b=[],c=0;c<this.D;c++){for(var d=this.D[c],e=d,f=[],g=0;g<e.Tb.length;g++){var h=e.Tb[g];f[g]=[h.Nd,h.rf,h.dc,h.hb,h.ib,h.mode,h.tf,h.mn,h.nn]}b[c]=[d.Fb,d.eg,d.Yh,d.Ib,f,d.gg]}a.set(1,[b]);b=[];for(c=0;c<this.bc.length;c++)d=this.bc[c],b[c]=[d.Ne,d.Kc,d.kd,d.Wc,d.Ub,d.xc,d.Hd,d.Ge];a.set(2,[b]);b=[];for(c=0;c<this.qa.length;c++)d=this.qa[c],b[c]=[d.dc,d.zc,d.ib,d.Id,d.hg,d.mode,d.df,d.Yc,d.gd,d.Lc,d.je,d.Ld,d.jd,d.Fb,d.oe];a.set(3,[this.ua,
l.save=function(){var a=new Me(this);a.set(0,[this.B]);for(var b=[],c=0;c<this.D;c++){for(var d=this.D[c],e=d,f=[],g=0;g<e.Tb.length;g++){var h=e.Tb[g];f[g]=[h.Nd,h.rf,h.dc,h.hb,h.ib,h.mode,h.tf,h.mn,h.nn]}b[c]=[d.Fb,d.eg,d.Yh,d.Ib,f,d.gg]}a.set(1,[b]);b=[];for(c=0;c<this.bc.length;c++)d=this.bc[c],b[c]=[d.Oe,d.Kc,d.kd,d.Wc,d.Ub,d.xc,d.Hd,d.He];a.set(2,[b]);b=[];for(c=0;c<this.qa.length;c++)d=this.qa[c],b[c]=[d.dc,d.zc,d.ib,d.Id,d.hg,d.mode,d.df,d.Yc,d.gd,d.Lc,d.je,d.Ld,d.jd,d.Fb,d.oe];a.set(3,[this.ua,
b,this.fa]);a.set(4,[this.xa,this.H,this.Ca,this.ja,this.da]);this.ca>=Cf&&(a.set(5,[this.F,this.J,this.I,this.pa,this.K,this.ra]),a.set(6,[this.G[7],this.G,this.W,this.A,this.ma,this.Y]));return a.data()};
l.restore=function(a){var b,c;b=a[0];Array.isArray(b[0])?this.B=b[0]:(this.B[0][0]=b[0],this.B[1][0]=b[1]&15,this.B[0][1]=b[2],this.B[1][1]=b[3]&15);Nj(this);b=a[1];for(c=0;c<this.za;c++)Oj(this,c,1==b.length?b[0][c]:b);b=a[2];for(c=0;c<this.la;c++)Pj(this,c,c?Tj:Rj,b[0][c]);b=a[3];this.ua=b[0];this.fa=b[2];for(c=0;c<this.qa.length;c++)Uj(this,c,b[1][c]);b=a[4];this.xa=b[0];this.H=b[1];this.Ca=b[2];this.ja=b[3];this.da=b[4];if(b=a[5])this.F=b[0],this.J=b[1],this.I=b[2],this.pa=b[3],this.K=b[4],this.ra=
b[5];if(b=a[6])this.G=b[1],this.G[7]=b[0],this.W=b[2],this.A=b[3],this.ma=b[4],this.Y=b[5],jk(this);return!0};l.start=function(){Nk(this)};l.stop=function(){Nk(this)};function Oj(a,b,c){var d=a.D[b];d||(d={Tb:Array(4)});c=c&&5<=c.length?c:Ok;d.Fb=c[0];d.eg=c[1];d.Yh=c[2];d.Ib=c[3];d.Kl=b<<2;for(var e=0;e<d.Tb.length;e++)Pk(d,e,c[4][e]);d.gg=c[5]||0;a.D[b]=d}
function Pk(a,b,c){var d=a.Tb[b];d||(d={rf:[0,0],dc:[0,0],hb:[0,0],ib:[0,0]});c=c&&8==c.length?c:Qk;d.Nd=c[0];d.rf[0]=c[1][0];d.rf[1]=c[1][1];d.dc[0]=c[2][0];d.dc[1]=c[2][1];d.hb[0]=c[3][0];d.hb[1]=c[3][1];d.ib[0]=c[4][0];d.ib[1]=c[4][1];d.mode=c[5];d.tf=c[6];d.controller=a;d.oi=b;Rk(d,c[8],c[9]);a.Tb[b]=d}function Rk(a,b,c,d){"string"==typeof b&&(b=fb(b));b&&(a.done=null,a.mn=b.id,a.nn=c,a.Af=b,a.kg=b[c],a.Pf=d)}
function Pj(a,b,c,d){var e=a.bc[b];e||(e={Kc:[null,null,null,null]});d=d&&8==d.length?d:Sk;e.port=c;e.Mo=b<<3;e.Ne=d[0];e.Kc[0]=d[1][0];e.Kc[1]=d[1][1];e.Kc[2]=d[1][2];e.Kc[3]=d[1][3];e.kd=d[2];e.Wc=d[3];e.Ub=d[4];e.xc=d[5];e.Hd=d[6];e.Ge=d[7];a.bc[b]=e}
function Pj(a,b,c,d){var e=a.bc[b];e||(e={Kc:[null,null,null,null]});d=d&&8==d.length?d:Sk;e.port=c;e.Mo=b<<3;e.Oe=d[0];e.Kc[0]=d[1][0];e.Kc[1]=d[1][1];e.Kc[2]=d[1][2];e.Kc[3]=d[1][3];e.kd=d[2];e.Wc=d[3];e.Ub=d[4];e.xc=d[5];e.Hd=d[6];e.He=d[7];a.bc[b]=e}
function Uj(a,b,c){var d=a.qa[b];d||(d={dc:[0,0],zc:[0,0],ib:[0,0],Id:[0,0]});c=c&&13<=c.length?c:Tk;d.dc[0]=c[0][0];d.dc[1]=c[0][1];d.zc[0]=c[1][0];d.zc[1]=c[1][1];d.ib[0]=c[2][0];d.ib[1]=c[2][1];d.Id[0]=c[3][0];d.Id[1]=c[3][1];d.hg=c[4];d.mode=c[5];d.df=c[6];d.Yc=c[7];d.gd=c[8];d.Lc=c[9];d.je=c[10];d.Ld=c[11];d.jd=c[12];d.Fb=c[13]||0;d.oe=c[14]||!1;a.qa[b]=d}
function Kj(a,b,c){for(var d="",e=a.ia[c],f=1;8>=f;f++){var g="pcjs-bitCell";f||(g+=" pcjs-bitCellLeft");d+='<div id="'+(c+"-"+f)+'" class="'+g+'" data-value="0">'+f+"</div>\n"}e.innerHTML=d;Uk(a,b,c,!0)}function Vk(a,b,c){if(b=(a=V[a.ca|0])&&a[b])for(var d in b)if(a=b[d],a.ic&1<<c)return a;return null}
function bk(a,b,c){for(var d=null,e=V[a.ca]||V[a.ca|0]||V[Lj],f=0;f<e.length;f++){var g=e[f];if(g&&(g=g[b])){a=a.B[f][c?0:1]&g.ic;for(var h in g.Fc)if(g.Fc[h]==a&&(d=h,"number"==typeof+d))break;break}}return d}function tk(a,b){if(b<+bk(a,tj,void 0)){if(!a.L)return Wk;if(b<a.L.length)switch(a.L[b]){case 160:case 180:case 320:case 360:return Wk;case 720:return Xk;case 1200:return Yk;case 1440:return Zk}}return $k}function Zj(a,b){return+bk(a,al,b)+ +bk(a,bl,b)}
@ -431,10 +431,10 @@ function dl(a){var b=a.ia[Mj];if(null!=b){var c;c=""+(Zj(a,!0)+"Kb");c+=", "+(+
function el(a,b,c){a=a.D[b];var d=a.Tb[c],e=d.hb[a.Ib];a.Ib^=1;b||c!=fl||a.Ib||(d.hb[0]++,255<d.hb[0]&&(d.hb[0]=0,d.hb[1]++,255<d.hb[1]&&(d.hb[1]=0)));return e}function gl(a,b,c,d){a=a.D[b];c=a.Tb[c];c.hb[a.Ib]=c.rf[a.Ib]=d;a.Ib^=1}function hl(a,b,c){a=a.D[b];var d=a.Tb[c],e=d.ib[a.Ib];a.Ib^=1;b||c!=fl||a.Ib||(d.ib[0]--,0>d.ib[0]&&(d.ib[0]=255,d.ib[1]--,0>d.ib[1]&&(d.ib[1]=255)));return e}function il(a,b,c,d){a=a.D[b];c=a.Tb[c];c.ib[a.Ib]=c.dc[a.Ib]=d;a.Ib^=1}
function jl(a,b){a=a.D[b];b=a.Fb|kl;a.Fb&=~ll;return b}function ml(a,b,c){a=a.D[b];b=c&3;a.Fb=a.Fb&~(16<<b)|(c&4)<<b+2;a.Yh=c}function nl(a,b,c){b=a.D[b];var d=c&ol,e=b.Tb[d];e.Nd=!!(c&pl);e.Nd||ql(a,b.Kl+d)}function rl(a,b){a=a.D[b];for(b=0;b<a.Tb.length;b++)Pk(a,b)}function sl(a,b,c){return a.D[b].Tb[c].tf}function tl(a,b,c,d){a.D[b].Tb[c].tf=d}function ul(a,b,c,d,e){Rk(a.D[b>>2].Tb[b&3],c,d,e)}function ql(a,b,c){b=a.D[b>>2].Tb[b&3];b.Af&&b.kg&&b.Pf?(c&&(b.done=c),b.Nd||vl(a,b,!0)):c&&c(!0)}
function vl(a,b,c){c&&(b.count=b.ib[1]<<8|b.ib[0],b.type=b.mode&wl,b.ii=b.Bf=!1);for(var d=!1;0<=b.count&&(c=b.tf<<16|b.hb[1]<<8|b.hb[0],b.type==xl?(d=!0,function(c){b.kg.call(b.Af,b.Pf,-1,function(e,g){0>e&&(b.ii||(b.ii=!0),e=255);b.Nd||a.oa.Bb(c,e);(d=g)&&setTimeout(function(){yl(b)||vl(a,b)},0)})}(c)):b.type==zl?(c=a.oa.Ia(c),0>b.kg.call(b.Af,b.Pf,c)&&(b.Bf=!0)):b.type!=Al&&(b.Bf=!0)),!d&&!yl(b););}
function yl(a){if(!a.Bf&&0<=--a.count&&(a.mode&Bl?(a.hb[0]--,0>a.hb[0]&&(a.hb[0]=255,a.hb[1]--,0>a.hb[1]&&(a.hb[1]=255))):(a.hb[0]++,255<a.hb[0]&&(a.hb[0]=0,a.hb[1]++,255<a.hb[1]&&(a.hb[1]=0))),!a.Nd))return!1;var b=a.controller;b.Fb=b.Fb&~(16<<a.oi)|1<<a.oi;a.mode&Cl||(a.Nd=!0,a.Af=a.Pf=null);a.done&&(a.done(!a.Bf),a.done=null);return!0}function Dl(a,b){var c=0;a=a.bc[b];if(null!=a.Ge)switch(a.Ge&El){case Fl:c=a.Ub;break;case Gl:c=a.xc}return c}
function Hl(a,b,c){b=a.bc[b];if(c&Il)b.kd=0,b.Kc[b.kd++]=c,b.Wc=0,b.Hd=7,b.Ub=b.xc=0,b.Ge=Jl|Fl;else if(c&Jl)b.Ge=c;else{var d=c&Kl;if(d&Ll){var e=0;if((d&Ml)==Ml)c&=Nl,e=1<<c;else for(c=b.Hd+1;;){c&=7;d=1<<c;if(b.xc&d){e=d;break}if(c++==b.Hd)break}b.xc&e&&(b.xc&=~e,Ol(a))}else d==Pl&&(b.Hd=c&Nl)}}function Ql(a,b,c){var d=a.bc[b];d.kd<d.Kc.length?(d.Kc[d.kd++]=c,2==d.kd&&d.Kc[0]&Rl&&d.kd++,3!=d.kd||d.Kc[0]&Sl||d.kd++):(d.Wc=c,d=a.R,d.K|=4,Ol(a,b||253!=c?0:6))}
function Ff(a,b,c){var d=a.bc[b>>3];b=1<<(b&7);d.Ub&b||(d.Ub|=b,d.Ne=c||0,Ol(a))}function Df(a,b){var c=a.bc[b>>3];b=1<<(b&7);c.Ub&b&&(c.Ub&=~b,Ol(a))}function Ol(a,b){var c,d=-1;1<a.la&&(c=a.bc[1],d=~(c.xc|c.Wc)&c.Ub);c=a.bc[0];0<=d&&(c.Ub=d?c.Ub|1<<Tl:c.Ub&~(1<<Tl));d=~(c.xc|c.Wc)&c.Ub;a=a.R;a.U&&(a.Qa=d?a.Qa|1:a.Qa&-2);d&&b&&(c.Ne=b)}
function vf(a,b){void 0===b&&(b=0);var c=-1,d=a.bc[b];if(d.Ne)c=-2,d.Ne--;else for(var e=d.Ub&((d.xc|d.Wc)^255),f=d.Hd+1;;){var f=f&7,g=1<<f;if(d.xc&g)break;if(e&g){b||f!=Tl?c=d.Kc[1]+f:c=vf(a,1);0<=c&&(d.xc|=g,d.Ub&=~g);break}if(f++==d.Hd)break}return c}function Ul(a,b,c){var d=b?3:0;b=a.qa[d+c];b.oe?(a=b.Fb,b.oe=!1):(b.Yc==b.gd&&Vl(a,d+c),b.je?(a=b.Id[b.Yc++],b.Yc==b.gd&&(b.je=!1)):(Wl(a,d+c),a=b.ib[b.Yc++]));return a}
function yl(a){if(!a.Bf&&0<=--a.count&&(a.mode&Bl?(a.hb[0]--,0>a.hb[0]&&(a.hb[0]=255,a.hb[1]--,0>a.hb[1]&&(a.hb[1]=255))):(a.hb[0]++,255<a.hb[0]&&(a.hb[0]=0,a.hb[1]++,255<a.hb[1]&&(a.hb[1]=0))),!a.Nd))return!1;var b=a.controller;b.Fb=b.Fb&~(16<<a.oi)|1<<a.oi;a.mode&Cl||(a.Nd=!0,a.Af=a.Pf=null);a.done&&(a.done(!a.Bf),a.done=null);return!0}function Dl(a,b){var c=0;a=a.bc[b];if(null!=a.He)switch(a.He&El){case Fl:c=a.Ub;break;case Gl:c=a.xc}return c}
function Hl(a,b,c){b=a.bc[b];if(c&Il)b.kd=0,b.Kc[b.kd++]=c,b.Wc=0,b.Hd=7,b.Ub=b.xc=0,b.He=Jl|Fl;else if(c&Jl)b.He=c;else{var d=c&Kl;if(d&Ll){var e=0;if((d&Ml)==Ml)c&=Nl,e=1<<c;else for(c=b.Hd+1;;){c&=7;d=1<<c;if(b.xc&d){e=d;break}if(c++==b.Hd)break}b.xc&e&&(b.xc&=~e,Ol(a))}else d==Pl&&(b.Hd=c&Nl)}}function Ql(a,b,c){var d=a.bc[b];d.kd<d.Kc.length?(d.Kc[d.kd++]=c,2==d.kd&&d.Kc[0]&Rl&&d.kd++,3!=d.kd||d.Kc[0]&Sl||d.kd++):(d.Wc=c,d=a.R,d.K|=4,Ol(a,b||253!=c?0:6))}
function Ff(a,b,c){var d=a.bc[b>>3];b=1<<(b&7);d.Ub&b||(d.Ub|=b,d.Oe=c||0,Ol(a))}function Df(a,b){var c=a.bc[b>>3];b=1<<(b&7);c.Ub&b&&(c.Ub&=~b,Ol(a))}function Ol(a,b){var c,d=-1;1<a.la&&(c=a.bc[1],d=~(c.xc|c.Wc)&c.Ub);c=a.bc[0];0<=d&&(c.Ub=d?c.Ub|1<<Tl:c.Ub&~(1<<Tl));d=~(c.xc|c.Wc)&c.Ub;a=a.R;a.U&&(a.Qa=d?a.Qa|1:a.Qa&-2);d&&b&&(c.Oe=b)}
function vf(a,b){void 0===b&&(b=0);var c=-1,d=a.bc[b];if(d.Oe)c=-2,d.Oe--;else for(var e=d.Ub&((d.xc|d.Wc)^255),f=d.Hd+1;;){var f=f&7,g=1<<f;if(d.xc&g)break;if(e&g){b||f!=Tl?c=d.Kc[1]+f:c=vf(a,1);0<=c&&(d.xc|=g,d.Ub&=~g);break}if(f++==d.Hd)break}return c}function Ul(a,b,c){var d=b?3:0;b=a.qa[d+c];b.oe?(a=b.Fb,b.oe=!1):(b.Yc==b.gd&&Vl(a,d+c),b.je?(a=b.Id[b.Yc++],b.Yc==b.gd&&(b.je=!1)):(Wl(a,d+c),a=b.ib[b.Yc++]));return a}
function Xl(a,b,c,d){var e=b?3:0,f=a.qa[e+c];f.Yc==f.gd&&Vl(a,e+c);f.dc[f.Yc++]=d;f.Yc==f.gd&&(f.Ld&&f.mode!=Yl&&f.mode!=Zl||(f.je=!1,f.ib[0]=f.zc[0]=f.dc[0],f.ib[1]=f.zc[1]=f.dc[1],f.jd=Sc(a.R,a.M),f.Ld=!0,f.Lc=f.mode!=Yl,b==$l&&c==am&&(Df(a,bm),d=cm(a,am)*a.Ba|0,f.mode==Zc&&(d>>=1),Qc(a.R,d))),b==$l&&c==dm&&Nk(a))}
function em(a,b,c){var d=0,e=c&fm;b?(d=3,a.fa=c):a.ua=c;if(e==gm){if(!(c&hm))for(e=0;2>=e;e++)if(c&im<<e){b=d+e;var f=a.qa[b];f.oe||(Wl(a,b),f.Fb=f.hg|f.mode|f.df|(f.Yc<f.gd?jm:0)|(f.Lc?km:0),f.oe=!0)}if(!(c&lm))for(e=0;2>=e;e++)c&im<<e&&mm(a,d+e)}else{var e=e>>nm,f=c&om,g=c&pm;c&=qm;if(c==rm)mm(a,d+e);else{var d=d+e,h=a.qa[d];h.df=c;h.mode=g;h.hg=f;h.dc=[0,0];h.ib=[0,0];h.Id=[0,0];h.Lc=!1;h.je=!1;h.Ld=!1;h.oe=!1;Vl(a,d);b==$l&&e==am&&Df(a,bm);b==$l&&e==dm&&255==a.bc[0].Wc&&a.H==(sm|tm|um|vm)&&(e=
a.qa[0],e.zc[0]=e.dc[0],e.zc[1]=e.dc[1],e.jd=Sc(a.R,a.M))}}}function cm(a,b){a=a.qa[b];(b=a.dc[1]<<8|a.dc[0])||(b=1==a.gd?256:65536);return b}function Yc(a,b){a=a.qa[b];(b=a.zc[1]<<8|a.zc[0])||(b=1==a.gd?256:65536);return b}function mm(a,b){Wl(a,b);var c=a.qa[b];c.Id[0]=c.ib[0];c.Id[1]=c.ib[1];c.je=!0;Vl(a,b)}function Vl(a,b){a=a.qa[b];a.Yc=a.df==wm?1:0;a.gd=a.df==xm?2:1}
@ -470,7 +470,7 @@ c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.A=Array(b.length),e=0;e<b.l
function Nn(a){if(!ob(a))if(!a.J)v(a);else if(a.A&&a.oa){a.C||(a.C=a.A.length);if(a.A.length!=a.C)nb(a,"ROM size ("+ja(a.A.length,8,!0)+") does not match specified size ("+ja(a.C,8,!0)+")");else{var b;b=a.G;if(Jb(a.oa,b,a.C,Xb)){for(var c=0;c<a.A.length;c++){var d=a.oa,e=b+c;d.Y[(e&d.D)>>>d.B].ef(e&d.C,a.A[c]&255,e)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.F?b.push(a.F):null!=a.F&&a.F.length&&(b=a.F);for(c=0;c<b.length;c++){var d=a,e=b[c],f=Rb(d.oa,d.G,d.C);Qb(d.oa,e,d.C,f)}a.B&&((b=fb(a.B,a.id))?
(c=a.A,d=a.I,b.Oa==On?Pn(b,c,d||[12640,8752],8):b.Oa==Qn&&Pn(b,c,d||[14221,16269],8),v(b)):a.wa("Unable to find component: "+a.B));delete a.A}}v(a)}}Ma(function(){for(var a=cb(document,"pcx86","rom"),b=0;b<a.length;b++){var c=a[b],d=db(c),d=new Ln(d);bb(d,c)}});function Rn(a){u.call(this,"RAM",a);this.B=a.addr;this.A=a.size;this.F=a.test;this.D=!!this.A;this.C=!1}ca(Rn,u);l=Rn.prototype;l.kc=function(a,b,c,d){this.oa=b;this.R=c;this.Ea=d;this.U=tb(a,"ChipSet");v(this)};
l.Rb=function(a,b){return!b&&(this.reset(),a&&this.controller&&!this.restore(a))?!1:!0};l.Qb=function(a){return a&&this.controller?this.save():!0};
l.reset=function(){if(!this.B&&!this.D&&this.U){var a=1024*Zj(this.U);this.A&&a!=this.A&&(Vb(this.oa,this.B,this.A),this.C=!1);this.A=a}!this.C&&this.A&&Jb(this.oa,this.B,this.A,1)&&(this.C=!0,"ramCPQ"==this.Be&&(this.controller=new Sn(this),Jb(this.oa,Tn,4,4,this.controller)));if(this.C){if(this.F||cc(this.oa,1138,4660),"ramCPQ"!=this.Be&&this.U&&(a=this.U,a.A)){var b=1048576>this.B?kk:23,c=a.A[b]|a.A[b+1]<<8,c=c+(this.A>>10);a.A[b]=c&255;a.A[b+1]=c>>8;uk(a)}}else q("No RAM allocated")};
l.reset=function(){if(!this.B&&!this.D&&this.U){var a=1024*Zj(this.U);this.A&&a!=this.A&&(Vb(this.oa,this.B,this.A),this.C=!1);this.A=a}!this.C&&this.A&&Jb(this.oa,this.B,this.A,1)&&(this.C=!0,"ramCPQ"==this.Ce&&(this.controller=new Sn(this),Jb(this.oa,Tn,4,4,this.controller)));if(this.C){if(this.F||cc(this.oa,1138,4660),"ramCPQ"!=this.Ce&&this.U&&(a=this.U,a.A)){var b=1048576>this.B?kk:23,c=a.A[b]|a.A[b+1]<<8,c=c+(this.A>>10);a.A[b]=c&255;a.A[b+1]=c>>8;uk(a)}}else q("No RAM allocated")};
l.save=function(){var a=new Me(this);this.controller&&a.set(0,this.controller.save());return a.data()};l.restore=function(a){return this.controller?this.controller.restore(a[0]):!0};function Sn(a){this.F=a;this.C=Un;this.D=Vn;this.B=Wn;this.A=null}l=Sn.prototype;l.save=function(){return[this.C,this.B]};l.restore=function(a){this.Bb(0,a[0]&255);this.Bb(2,a[1]&255);return!0};l.Ia=function(a){var b=255;2>a?b=a&1?this.D>>8:this.D&255:4>a&&(b=a&1?this.B>>8:this.B&255);return b};
l.Bb=function(a,b){if(a)2==a&&(this.B=this.B&-256|b);else if(b!=(this.C&255)){a=this.F.oa;if(b&Xn)this.A&&(Qb(a,Yn,Zn,this.A),this.A=null);else{this.A||(this.A=Rb(a,Yn,Zn));var c=Rb(a,$n,Zn);Qb(a,Yn,Zn,c,b&ao?1:Xb)}this.C=this.C&-256|b}};l.mi=function(){return bo};l.lg=function(){return co};var Tn=-2134900736,$n=16646144,Yn=917504,Zn=131072,Xn=1,ao=2,Un=65535,Vn=2575,Wn=2,bo=[null,0],co=[function(a){return this.controller.Ia(a)},null,null,function(a,b){this.controller.Bb(a,b)},null,null];
Ma(function(){for(var a=cb(document,"pcx86","ram"),b=0;b<a.length;b++){var c=a[b],d=db(c),d=new Rn(d);bb(d,c)}});function eo(a){u.call(this,"Keyboard",a);fo(this,a.model);this.ba=Ea("Mobi");this.aa=Ea("MSIE");this.W=0;this.Y=this.jg=!1;this.A=[];this.fa=50;this.D=null;this.G=a.autoType;this.M=!1;this.J=this.K=null;this.exports={type:this.mg,wait:this.sn};v(this)}ca(eo,u);l=eo.prototype;
@ -484,10 +484,10 @@ l.save=function(){var a=new Me(this),b=[];b[0]=this.L;b[1]=this.I;a.set(0,b);ret
l.mg=function(a,b){if(a&&!this.B){if(a){for(var c,d=/(?:^|[^$])\$([a-z]+)/g;c=d.exec(a);){var e;switch(c[1]){case "date":e=ra("n-j-Y");break;case "time":e=ra("h:i:s");break;default:continue}a=a.replace("$"+c[1],e)}a=a.replace(/\$\$/g,"$$")}this.B=a;uo(this,b||150);return!0}return!1};
function uo(a,b){for(var c=0;0<a.B.length&&!c;)if(c=a.B.charAt(0),a.B=a.B.substr(1),c=c.charCodeAt(0),240<=c){b=100*(c-240)||150;c=0;break}c&&(10==c&&(c=13),jo(a,c,!0));a.B.length?setTimeout(function(a){return function(){uo(a,b)}}(a),b):a.K&&(a.K(),a.K=null)}l.sn=function(a,b){var c=!1;switch(b){case "DOS":this.M?c=!0:this.J=a;break;default:this.B.length?this.K=a:c=!0}return c};
function oo(a,b,c,d){if(W[b]){var e=Math.floor(b/1E3)&2;if(b=vo[b]||0){!e||b&wo||(b>>=1);if(b&xo){if(!1===d)return!0;d=null}null==d?d=!((c?a.C:a.Vb)&b):d||b&yo&&(b=yo);if(c){a.C&=~b;d&&(a.C|=b);c=b;var f,g;for(g in zo)d="led-"+g,e=zo[g],c&&c!=e||!(f=a.ia[d])||(f.style.backgroundColor=a.C&e?"#00ff00":"#000000")}else a.Vb&=~b,d&&(a.Vb|=b);return!0}}return!1}
function jo(a,b,c){if((W[b]||W[b+=1E3])&&a.R&&a.R.X.cb){vo[b]&&a.A.length&&0<a.A[0].ad&&(a.A[0].ad=0);for(var d,e=0;e<a.A.length;e++)if(d=a.A[e],d.Xd==b){if(!c||0<=d.ad){e=-1;break}0<e&&(0<a.A[0].ad&&(a.A[0].ad=0),a.A.splice(e,1));break}0>e||(e==a.A.length&&(d={},d.Xd=b,d.Vb=a.Vb,ro(a,b,!0),e++),0<e&&a.A.splice(0,0,d),d.Ie=!0,d.ad=c?-1:vo[b]?0:1,Ao(a,d))}}
function qo(a,b,c){if(!W[b]||!(c||a.R&&a.R.X.cb))return!1;for(var d=!1,e=0;e<a.A.length;e++){var f=a.A[e];if(f.Xd==b||f.Xd==p[b]){a.A.splice(e,1);f.mh&&clearTimeout(f.mh);f.Ie&&!c&&Bo(a,f.Xd,!1);ro(a,b,!1);d=!0;break}}!a.A.length&&a.Y&&(oo(a,ko),a.Y=!1);return d}function Ao(a,b){if(!a.R||!a.R.X.cb)qo(a,b.Xd,!0);else if(Bo(a,b.Xd,b.Ie)&&b.ad){var c;if(0>b.ad){if(!b.Ie){qo(a,b.Xd);return}b.Ie=!1;c=a.fa}else c=1==b.ad++?500:100;b.mh=setTimeout(function(a){return function(){Ao(a,b)}}(a),c)}}
function jo(a,b,c){if((W[b]||W[b+=1E3])&&a.R&&a.R.X.cb){vo[b]&&a.A.length&&0<a.A[0].ad&&(a.A[0].ad=0);for(var d,e=0;e<a.A.length;e++)if(d=a.A[e],d.Xd==b){if(!c||0<=d.ad){e=-1;break}0<e&&(0<a.A[0].ad&&(a.A[0].ad=0),a.A.splice(e,1));break}0>e||(e==a.A.length&&(d={},d.Xd=b,d.Vb=a.Vb,ro(a,b,!0),e++),0<e&&a.A.splice(0,0,d),d.Je=!0,d.ad=c?-1:vo[b]?0:1,Ao(a,d))}}
function qo(a,b,c){if(!W[b]||!(c||a.R&&a.R.X.cb))return!1;for(var d=!1,e=0;e<a.A.length;e++){var f=a.A[e];if(f.Xd==b||f.Xd==p[b]){a.A.splice(e,1);f.mh&&clearTimeout(f.mh);f.Je&&!c&&Bo(a,f.Xd,!1);ro(a,b,!1);d=!0;break}}!a.A.length&&a.Y&&(oo(a,ko),a.Y=!1);return d}function Ao(a,b){if(!a.R||!a.R.X.cb)qo(a,b.Xd,!0);else if(Bo(a,b.Xd,b.Je)&&b.ad){var c;if(0>b.ad){if(!b.Je){qo(a,b.Xd);return}b.Je=!1;c=a.fa}else c=1==b.ad++?500:100;b.mh=setTimeout(function(a){return function(){Ao(a,b)}}(a),c)}}
function Co(a,b,c){var d=b;if(b>=n.Ed&&b<=n.qf)!(a.Vb&(Do|Eo|Fo))==c&&(d=b+(n.Fd-n.Ed));else if(b>=n.Fd&&b<=n.z)!!(a.Vb&(Do|Eo|Fo))==c&&(d=b-(n.Fd-n.Ed));else if(!!(a.Vb&(Do|Eo))==c){if(a=p[b])d=a}else if(a=ha[b])d=a;return d}l.Qf=function(a){a||(this.Vb&=~yo)};
function go(a,b,c){var d=!0,e=!1,f=!1,g=b.keyCode;if(!ho(a.na))return!1;a.B="";gb(a.Cd);var h=Co(a,g,!0);a.jg&&h==n["`"]&&(g=h=27);if(W[g+1E3])if(h+=1E3,2==b.location&&(h+=2E3),oo(a,h,!1,c)){if(20==g||144==g||145==g)a.aa||(c=e=!0);if(!(c||91!=g&&93!=g))for(var k=0;k<a.A.length;k++){var m=a.A[k];m.Ie=!1;0<m.ad&&(m.ad=0)}}else 8==g&&(a.Vb&(Go|Ho))==Go&&(h=Io),d=!1;else if(W[h]&&a.Vb&(Jo|Ko)&&(d=!1),d&&c||a.Vb&Lo)f=!0;d||b.preventDefault();f||a.ba&&d||(c?jo(a,h,e):qo(a,h)||(b=Co(a,g,!1),b!=h&&qo(a,b)));
function go(a,b,c){var d=!0,e=!1,f=!1,g=b.keyCode;if(!ho(a.na))return!1;a.B="";gb(a.Cd);var h=Co(a,g,!0);a.jg&&h==n["`"]&&(g=h=27);if(W[g+1E3])if(h+=1E3,2==b.location&&(h+=2E3),oo(a,h,!1,c)){if(20==g||144==g||145==g)a.aa||(c=e=!0);if(!(c||91!=g&&93!=g))for(var k=0;k<a.A.length;k++){var m=a.A[k];m.Je=!1;0<m.ad&&(m.ad=0)}}else 8==g&&(a.Vb&(Go|Ho))==Go&&(h=Io),d=!1;else if(W[h]&&a.Vb&(Jo|Ko)&&(d=!1),d&&c||a.Vb&Lo)f=!0;d||b.preventDefault();f||a.ba&&d||(c?jo(a,h,e):qo(a,h)||(b=Co(a,g,!1),b!=h&&qo(a,b)));
return d}
function Bo(a,b,c){var d=!1;oo(a,b,!0,c);var e=W[b]||W[b+1E3];if(void 0!==e){e==Mo&&(a.Vb&(Go|Ho))==(Go|Ho)&&(e=No);var d=[],f=e&255;if(83<f&&83==a.da)return!1;d.push(f|(c?0:Oo));for(b=b>=n.Ed&&b<=n.qf||b>=n.Fd&&b<=n.z;e>>>=8;){var g=0,h=e&255;f==Po||f==Qo?d.push(f|(c?0:Oo)):(h==X?a.C&(Do|Eo)||a.C&Fo&&b||(g=h):h==Ro?a.C&(Go|So)||(g=h):h==To?a.C&(Ho|Uo)||(g=h):d.push(f|(c?0:Oo)),g&&(c?d.unshift(g):d.push(g|Oo)))}for(c=0;c<d.length;c++)e=a,f=d[c],e.Pb&&(e.Pb.length<Vo?(e.Pb.push(f),1==e.Pb.length&&e.U&&
Bn(e.U,f)):e.Pb.length==Vo&&e.Pb.push(Wo));d=!0}return d}var so=["US83","US84","US101"],ko=1020,lo=1144,mo=1145,Xo=n.Tj+4E3,Io=4008,Mo=14,Ro=29,X=42,To=56,No=83,Oo=128,Po=224,Qo=225,Eo=1,Do=2,So=4,Go=8,Jo=12,Uo=16,Ho=32,Ko=48,io=128,Lo=192,wo=85,yo=255,Fo=512,xo=3584,vo={};vo[3016]=Eo;vo[1016]=Do;vo[1017]=Go;vo[1018]=Ho;vo[1091]=io;vo[1093]=64;vo[1224]=io;vo[ko]=Fo;vo[lo]=1024;vo[mo]=2048;
@ -499,11 +499,11 @@ W[n.yh]=35|X<<8;W[n.Cl]=36;W[n.Ah]=36|X<<8;W[n.k]=37;W[n.Bh]=37|X<<8;W[n.Dl]=38;
W[n["?"]]=53|X<<8;W[3016]=54;W[1044]=55;W[1018]=To;W[1032]=57;W[ko]=58;W[1112]=59;W[1113]=60;W[1114]=61;W[1115]=62;W[1116]=63;W[1117]=64;W[1118]=65;W[1119]=66;W[1120]=67;W[1121]=68;W[lo]=69;W[mo]=70;W[1036]=71;W[1038]=72;W[1033]=73;W[1109]=74;W[1037]=75;W[1101]=76;W[1039]=77;W[1107]=78;W[1035]=79;W[1040]=80;W[1034]=81;W[1045]=82;W[1046]=No;W[4027]=84;W[1122]=87;W[1123]=88;W[1091]=91;W[1093]=93;W[1224]=91;W[Xo]=46|Ro<<8;W[Io]=70|Ro<<8;W[4046]=No|Ro<<8|To<<16;W[4045]=82|Ro<<8|To<<16;
W[4013]=28|Ro<<8|To<<16;var cn=255,gn=243,hn=237,fn=170,dn=250,Wo=255,Vo=20;Ma(function(){for(var a=cb(document,"pcx86","keyboard"),b=0;b<a.length;b++){var c=a[b],d=db(c),d=new eo(d);bb(d,c)}});
function Yo(a,b,c,d){if(void 0!==b&&(!c||c.length)){this.video=a;var e=Zo[b],f=a.da||e[5];if(!c||6>c.length)c=[!1,0,null,null,0,Array(b<On?$o:ap)];this.Oa=b;this.ab=e[2];this.Hb=e[3];this.Xc=d||e[4];65536<=this.Xc&&720896<=this.ab&&(this.Hb=Math.min(this.Xc>>2,32768));this.Wb=c[0];this.Ec=c[1];this.bf=c[2];this.Z=c[3];this.hc=c[4]&255;this.Tf=c[4]>>8&255;this.Ua=c[5];this.pg=$o;this.Ad=this.Ua[bp]|this.Ua[cp]<<8;this.sf=63;if(b>=On){this.sf=255;this.pg=ap;(b=c[6])||(b=[!1,0,Array(dp),0,f==ck?0:ep,
0,0,Array(fp),0,0,0,Array(gp),0,[this.ab,this.Hb,this.Xc],Array(this.Xc>>2),hp|ip|jp|kp|lp,0,-1,0,-1,0,-1,0,0,0,0,mp,np,0,0,op,Array(pp)]);this.He=b[0];this.Sd=b[1];this.vc=b[2];this.ih=b[3];this.cf=b[4];this.Wf=b[5];this.Vd=b[6];this.Ud=b[7];this.Kj=b[8];this.Lj=b[9];this.Td=b[10];this.nd=b[11];this.pb=b[12];d=b[13];"number"==typeof d&&(d=[this.ab,this.Hb,d]);this.ab=d[0];this.Hb=d[1];d=this.Xc>>2;if((this.td=b[14])&&this.td.length<d){for(var e=this.td,g=0,h=Array(d),k=0;k<e.length-1;){for(var m=
e[k++],r=e[k++];m--;)h[g]=r,g+=2;g==d&&(g=1)}this.td=h}(d=b[15])&&(d&lp?d&=~lp:d=qp[d&65280]|qp[d&255]);this.Yf(d);this.eh=b[16];this.Ya=b[17];this.Ac=b[18];this.ub=b[19];this.Ve=b[20];this.ld=b[21];this.zd=b[22];this.qg=b[23];this.rg=b[24];this.Ad=b[25];this.fh=this.We=0;this.Oa==Qn&&(this.jh=b[26],this.Uf=b[27],this.bd=b[28],this.wc=b[29],this.Vf=b[30],this.we=b[31])}f=rp[f]||rp[ck];this.tg=a.R.V.yd/f.Mf|0;this.Ll=this.tg*f.Rf/100|0;this.ug=this.tg*f.Lf|0;this.Nl=this.ug*f.Sf/100|0;this.vg=c[7]||
0,0,Array(fp),0,0,0,Array(gp),0,[this.ab,this.Hb,this.Xc],Array(this.Xc>>2),hp|ip|jp|kp|lp,0,-1,0,-1,0,-1,0,0,0,0,mp,np,0,0,op,Array(pp)]);this.Ie=b[0];this.Sd=b[1];this.vc=b[2];this.ih=b[3];this.cf=b[4];this.Wf=b[5];this.Vd=b[6];this.Ud=b[7];this.Kj=b[8];this.Lj=b[9];this.Td=b[10];this.nd=b[11];this.pb=b[12];d=b[13];"number"==typeof d&&(d=[this.ab,this.Hb,d]);this.ab=d[0];this.Hb=d[1];d=this.Xc>>2;if((this.td=b[14])&&this.td.length<d){for(var e=this.td,g=0,h=Array(d),k=0;k<e.length-1;){for(var m=
e[k++],r=e[k++];m--;)h[g]=r,g+=2;g==d&&(g=1)}this.td=h}(d=b[15])&&(d&lp?d&=~lp:d=qp[d&65280]|qp[d&255]);this.Yf(d);this.eh=b[16];this.Ya=b[17];this.Ac=b[18];this.ub=b[19];this.We=b[20];this.ld=b[21];this.zd=b[22];this.qg=b[23];this.rg=b[24];this.Ad=b[25];this.fh=this.Xe=0;this.Oa==Qn&&(this.jh=b[26],this.Uf=b[27],this.bd=b[28],this.wc=b[29],this.Vf=b[30],this.xe=b[31])}f=rp[f]||rp[ck];this.tg=a.R.V.yd/f.Mf|0;this.Ll=this.tg*f.Rf/100|0;this.ug=this.tg*f.Lf|0;this.Nl=this.ug*f.Sf/100|0;this.vg=c[7]||
0}}
function sp(a){var b=[];if(void 0!==a.Oa){b[0]=a.Wb;b[1]=a.Ec;b[2]=a.bf;b[3]=a.Z;b[4]=a.hc|a.Tf<<8;b[5]=a.Ua;if(a.Oa>=On){var c=[];c[0]=a.He;c[1]=a.Sd;c[2]=a.vc;c[3]=a.ih;c[4]=a.cf;c[5]=a.Wf;c[6]=a.Vd;c[7]=a.Ud;c[8]=a.Kj;c[9]=a.Lj;c[10]=a.Td;c[11]=a.nd;c[12]=a.pb;c[13]=[a.ab,a.Hb,a.Xc];var d;if(d=a.td){var e=0,f=[];if(void 0!==d[0])for(var g=0;2>g;g++)for(var h=g;h<d.length;){for(var k=d[h],m=h+2;m<d.length&&d[m]===k;)m+=2;f[e++]=m-h>>1;f[e++]=k;h=m}f.length<d.length&&(d=f)}c[14]=d;c[15]=a.og|lp;
c[16]=a.eh;c[17]=a.Ya;c[18]=a.Ac;c[19]=a.ub;c[20]=a.Ve;c[21]=a.ld;c[22]=a.zd;c[23]=a.qg;c[24]=a.rg;c[25]=a.Ad;a.Oa==Qn&&(c[26]=a.jh,c[27]=a.Uf,c[28]=a.bd,c[29]=a.wc,c[30]=a.Vf,c[31]=a.we);b[6]=c}b[7]=a.vg}return b}Yo.prototype.mi=function(a){return[this.td,a-this.ab]};Yo.prototype.lg=function(){return this.A};Yo.prototype.Yf=function(a){if(null!=a&&a!=this.og){var b=a&tp,c=up[b];c||b&ip&&(c=up[ip]);var b=a&vp,d=up[b];d||b&kp&&(d=up[kp]);this.A||(this.A=Array(6));this.A[0]=c;this.A[1]=d;this.og=a}};
function sp(a){var b=[];if(void 0!==a.Oa){b[0]=a.Wb;b[1]=a.Ec;b[2]=a.bf;b[3]=a.Z;b[4]=a.hc|a.Tf<<8;b[5]=a.Ua;if(a.Oa>=On){var c=[];c[0]=a.Ie;c[1]=a.Sd;c[2]=a.vc;c[3]=a.ih;c[4]=a.cf;c[5]=a.Wf;c[6]=a.Vd;c[7]=a.Ud;c[8]=a.Kj;c[9]=a.Lj;c[10]=a.Td;c[11]=a.nd;c[12]=a.pb;c[13]=[a.ab,a.Hb,a.Xc];var d;if(d=a.td){var e=0,f=[];if(void 0!==d[0])for(var g=0;2>g;g++)for(var h=g;h<d.length;){for(var k=d[h],m=h+2;m<d.length&&d[m]===k;)m+=2;f[e++]=m-h>>1;f[e++]=k;h=m}f.length<d.length&&(d=f)}c[14]=d;c[15]=a.og|lp;
c[16]=a.eh;c[17]=a.Ya;c[18]=a.Ac;c[19]=a.ub;c[20]=a.We;c[21]=a.ld;c[22]=a.zd;c[23]=a.qg;c[24]=a.rg;c[25]=a.Ad;a.Oa==Qn&&(c[26]=a.jh,c[27]=a.Uf,c[28]=a.bd,c[29]=a.wc,c[30]=a.Vf,c[31]=a.xe);b[6]=c}b[7]=a.vg}return b}Yo.prototype.mi=function(a){return[this.td,a-this.ab]};Yo.prototype.lg=function(){return this.A};Yo.prototype.Yf=function(a){if(null!=a&&a!=this.og){var b=a&tp,c=up[b];c||b&ip&&(c=up[ip]);var b=a&vp,d=up[b];d||b&kp&&(d=up[kp]);this.A||(this.A=Array(6));this.A[0]=c;this.A[1]=d;this.og=a}};
function wp(a,b){var c=a.Ua[b];if(null!=c&&a.Oa>=On){var d=0,e=0,f=0;switch(b){case xp:d=yp;a.Oa==Qn&&(e=zp);break;case Ap:a.Oa==On&&(d=Bp);break;case Cp:d=Dp;a.Oa==Qn&&(e=Ep);break;case Fp:d=Gp;a.Oa==Qn&&(e=Hp);break;case Ip:d=Jp;a.Oa==Qn&&(f=Kp);break;case Lp:d=Mp,a.Oa==Qn&&(f=Np)}d&&(c|=a.Ua[Op]&d?256:0,c|=a.Ua[Op]&e?512:0,c|=a.Ua[Pp]&f?512:0)}return c}
var cp=12,bp=13,$o=18,xp=6,Op=7,yp=1,Gp=2,Dp=4,Jp=8,Mp=16,Bp=32,zp=32,Hp=64,Ep=128,Pp=9,Kp=32,Np=64,Ap=10,Cp=16,Fp=18,Ip=21,Lp=24,ap=25,Qp={},Rp=(Qp[0]=255,Qp[1]=255,Qp[2]=255,Qp[3]=15,Qp[4]=127,Qp[5]=31,Qp[6]=127,Qp[7]=127,Qp[8]=3,Qp[9]=31,Qp[10]=127,Qp[11]=31,Qp[cp]=63,Qp[bp]=255,Qp[14]=63,Qp[15]=255,Qp[16]=63,Qp[17]=255,Qp),dp=20,ep=1,mp=1,fp=5,np=255,op=0,pp=256,gp=9,hp=1024,ip=4096,tp=65280,jp=0,kp=16,vp=255,lp=-2147483648,qp=[];qp[2]=hp;qp[3]=hp|ip;qp[16]=1280;qp[512]=jp;qp[1024]=jp|32;
qp[1536]=jp|96;qp[2560]=jp|160;qp[3584]=jp|224;qp[768]=jp|kp;qp[4096]=1;qp[8192]=2;qp[24576]=98;qp[40960]=162;qp[57344]=226;var up=[];up[hp]=function(a){a+=this.G;return(this.controller.pb=this.S[a])>>this.controller.eh&255};up[hp|16384]=function(a){return(this.controller.pb=this.S[(a&-4)+this.G])>>((a&3)<<3)&255};up[hp|ip]=function(a){a+=this.G;var b=this.controller.pb=this.S[a&-2];return(a&1?b>>8:b)&255};
@ -515,16 +515,16 @@ up[jp|224]=function(a,b){a+=this.G;b=b>>this.controller.Ac|b<<8-this.controller.
up[jp|kp]=function(a,b){a+=this.G;var c=a&-2;b=(b|b<<8|b<<16|b<<24)&this.controller.ub|this.controller.pb&~this.controller.ub;a=this.controller.Ya&(c==a?16711935:-16711936);b=b&a|this.S[c]&~a;this.S[c]!=b&&(this.S[c]=b,this.Fa=!0)};up[1]=function(a){a+=this.G;var b=this.S[a]&~this.controller.Ya|this.controller.pb&this.controller.Ya;this.S[a]!=b&&(this.S[a]=b,this.Fa=!0)};
up[1|kp]=function(a){a+=this.G;var b=a&-2;a=this.controller.Ya&(b==a?16711935:-16711936);a=this.S[b]&~a|this.controller.pb&a;this.S[b]!=a&&(this.S[b]=a,this.Fa=!0)};up[2]=function(a,b){a+=this.G;b=Sp[b&15];b=b&this.controller.ub|this.controller.pb&~this.controller.ub;b=b&this.controller.Ya|this.S[a]&~this.controller.Ya;this.S[a]!=b&&(this.S[a]=b,this.Fa=!0)};
up[98]=function(a,b){a+=this.G;b=Sp[b&15];b&=this.controller.pb;b=b&this.controller.ub|this.controller.pb&~this.controller.ub;b=b&this.controller.Ya|this.S[a]&~this.controller.Ya;this.S[a]!=b&&(this.S[a]=b,this.Fa=!0)};up[162]=function(a,b){a+=this.G;b=Sp[b&15];b|=this.controller.pb;b=b&this.controller.ub|this.controller.pb&~this.controller.ub;b=b&this.controller.Ya|this.S[a]&~this.controller.Ya;this.S[a]!=b&&(this.S[a]=b,this.Fa=!0)};
up[226]=function(a,b){a+=this.G;b=Sp[b&15];b^=this.controller.pb;b=b&this.controller.ub|this.controller.pb&~this.controller.ub;b=b&this.controller.Ya|this.S[a]&~this.controller.Ya;this.S[a]!=b&&(this.S[a]=b,this.Fa=!0)};up[3]=function(a,b){a+=this.G;b=b>>this.controller.Ac|b<<8-this.controller.Ac&255;b=(b|b<<8|b<<16|b<<24)&this.controller.ub;b=this.controller.Ve&b|this.controller.pb&~b;b=b&this.controller.Ya|this.S[a]&~this.controller.Ya;this.S[a]!=b&&(this.S[a]=b,this.Fa=!0)};
up[226]=function(a,b){a+=this.G;b=Sp[b&15];b^=this.controller.pb;b=b&this.controller.ub|this.controller.pb&~this.controller.ub;b=b&this.controller.Ya|this.S[a]&~this.controller.Ya;this.S[a]!=b&&(this.S[a]=b,this.Fa=!0)};up[3]=function(a,b){a+=this.G;b=b>>this.controller.Ac|b<<8-this.controller.Ac&255;b=(b|b<<8|b<<16|b<<24)&this.controller.ub;b=this.controller.We&b|this.controller.pb&~b;b=b&this.controller.Ya|this.S[a]&~this.controller.Ya;this.S[a]!=b&&(this.S[a]=b,this.Fa=!0)};
function Y(a,b,c,d,e){u.call(this,"Video",a);var f=this,g;this.Oc=Ea("Gecko/");this.ca=a.model;var h=Tp[this.ca]||Tp.mda;this.Oa=h[0];this.Xc=a.memory||0;this.Uc=a.switches;this.Lb=a.randomize;null==this.Lb&&(this.Lb=1);this.ba=a.mode;if(null==this.ba||null==Up[this.ba])this.ba=h[1];this.Jb=a.charCols;this.sc=a.charRows;if(void 0===this.Jb||void 0===this.sc)this.Jb=Up[this.ba][0],this.sc=Up[this.ba][1];this.Y=a.screenWidth;this.ja=a.screenHeight;this.Qc=a.scale;this.qd=12<=Math.round(this.Y/this.Jb);
this.M=b;this.J=c;this.F=(this.Ef=d)||b||null;this.Zb=a.screenColor||"black";this.Tc=(1-(Ia("flicker")||a.flicker||0)).toString();this.Eb=!1;b&&(b.style.backgroundColor=this.Zb);e&&(e.style.backgroundColor=this.Zb);b=a.smoothing;(c=Ia("smoothing"))&&(b="true"==c);null!=b&&(g=Fa(this.J,"imageSmoothingEnabled"))&&(this.J[g]=b);this.cd=a.touchScreen;this.gb=Vp;this.K=null;this.pd=a.autoLock;this.ab=this.Hb=0;this.pa=[];this.fa=Array(this.Oa==Qn?256:16);this.Ga=!1;if(this.N=e)if(g=Fa(e,"requestFullscreen")||
Fa(e,"requestFullScreen")){this.N.A=e[g];if(e=Fa(document,"on","fullscreenchange")){var k=Fa(document,"fullscreenElement")||Fa(document,"fullScreenElement");document.addEventListener(e,function(){Wp(f,!!k)},!1)}(e=Fa(document,"on","fullscreenerror"))&&document.addEventListener(e,function(){Wp(f,null)},!1)}if(this.F&&(this.F.onfocus=function(){return f.Qf(!0)},this.F.onblur=function(){return f.Qf(!1)},this.F.Md=(g=Fa(this.F,"requestPointerLock"))&&this.F[g],this.F.B=(g=Fa(this.F,"exitPointerLock"))&&
this.F[g],this.F.Md&&(e=Fa(document,"on","pointerlockchange")))){var m=Fa(document,"pointerLockElement");document.addEventListener(e,function(){f.Xe(!(!m||document[m]!==f.F))},!1)}(this.xa=a.fontROM)&&"json"!=la(this.xa)&&(this.xa=xa()+"/api/v1/dump?file="+this.xa+"&format=bytes")}ca(Y,u);l=Y.prototype;
this.F[g],this.F.Md&&(e=Fa(document,"on","pointerlockchange")))){var m=Fa(document,"pointerLockElement");document.addEventListener(e,function(){f.Ye(!(!m||document[m]!==f.F))},!1)}(this.xa=a.fontROM)&&"json"!=la(this.xa)&&(this.xa=xa()+"/api/v1/dump?file="+this.xa+"&format=bytes")}ca(Y,u);l=Y.prototype;
l.kc=function(a,b,c,d){var e=this;this.oa=b;this.R=c;this.Ea=d;c=+Fc(a,"randomize");0<=c&&1>=c&&(this.Lb=c);c=(c=Tp[this.ca])&&c[0];c!==Xp&&(ec(b,this,Yp),gc(b,this,Zp));c!==$p&&(ec(b,this,aq),gc(b,this,bq));this.Oa>=On&&(ec(b,this,cq),gc(b,this,dq));this.Oa==Qn&&(ec(b,this,eq),gc(b,this,fq));if((this.C=tb(a,"Keyboard"))&&this.M){for(var f in this.ia)0<f.indexOf("lock")&&this.C.Ab("led",f,this.ia[f]);this.C.Ab(this.Ef?"textarea":"canvas","screen",this.F)}this.wb=9;(this.U=tb(a,"ChipSet"))&&this.Uc&&
this.Oa==On&&(this.wb=qj(this.Uc,this.wb));"mouse"==this.cd?(this.K=tb(a,"Mouse"))&&gq(this,hq):"keygrid"==this.cd&&this.C&&gq(this,iq);this.gb||gq(this,jq);if(this.xa){var g="Loading "+this.xa+"...";wa(this.xa,null,!0,function(a,b,c){kq(e,a,b,c)},function(){e.qb(g,mb.ae)})}Gc(this.R,this.id,function(){lq(e)},1E3/mq)};
l.Ab=function(a,b,c){var d=this;if(!this.ia[b])switch(this.ia[b]=c,b){case "fullScreen":return this.N&&this.N.A?c.onclick=function(){if(d.N){if(d.N.A){var a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=d.Y/d.ja;b>c&&(a=Math.round(c/b*100)+"%")}d.Oc?(d.M.style.width=a,d.M.style.width=a,d.M.style.display="block",d.M.style.margin="auto"):(d.N.style.width=a,d.N.style.height="auto");d.N.style.backgroundColor=d.Zb;d.N.A()}d.F&&d.F.focus()}}:c.parentNode.removeChild(c),
!0;case "lockPointer":return this.sd=c.textContent,this.F&&this.F.Md?c.onclick=function(){d.Md(!0)}:c.parentNode.removeChild(c),!0;case "refresh":return c.onclick=function(){lq(d,!0)},!0}return!1};function Wp(a,b){!b&&a.N&&(a.Oc?a.M.style.width=a.M.style.height="":a.N.style.width=a.N.style.height="");a.C&&(a.C.jg=b)}l.Md=function(a){var b=!1;this.F&&(a?this.F.Md&&(this.F.Md(),this.K&&this.K.Xe(!0),b=!0):this.F.B&&(this.F.B(),this.K&&this.K.Xe(!1),b=!0),this.F&&this.F.focus());return b};
l.Xe=function(a){this.K&&(this.K.Xe(a),this.C&&(this.C.jg=a));var b=this.ia.lockPointer;b&&(b.textContent=a?"Press Esc to Unlock Pointer":this.sd)};function gq(a,b){var c=a.F;c&&!a.gb&&(a.gb=b,c.addEventListener("touchstart",function(b){Kn(a.U,b);a.gb!=jq&&nq(a,b,!0)},!1),b!=jq&&(c.addEventListener("touchmove",function(b){nq(a,b)},!0),c.addEventListener("touchend",function(b){nq(a,b,!1)},!1),a.mb=a.rb=a.dd=-1,a.mc=!1,a.Cb=null,a.lc=!1,a.rd=function(){a.lc=!0;a.K.ie(oq,!0)}))}
!0;case "lockPointer":return this.sd=c.textContent,this.F&&this.F.Md?c.onclick=function(){d.Md(!0)}:c.parentNode.removeChild(c),!0;case "refresh":return c.onclick=function(){lq(d,!0)},!0}return!1};function Wp(a,b){!b&&a.N&&(a.Oc?a.M.style.width=a.M.style.height="":a.N.style.width=a.N.style.height="");a.C&&(a.C.jg=b)}l.Md=function(a){var b=!1;this.F&&(a?this.F.Md&&(this.F.Md(),this.K&&this.K.Ye(!0),b=!0):this.F.B&&(this.F.B(),this.K&&this.K.Ye(!1),b=!0),this.F&&this.F.focus());return b};
l.Ye=function(a){this.K&&(this.K.Ye(a),this.C&&(this.C.jg=a));var b=this.ia.lockPointer;b&&(b.textContent=a?"Press Esc to Unlock Pointer":this.sd)};function gq(a,b){var c=a.F;c&&!a.gb&&(a.gb=b,c.addEventListener("touchstart",function(b){Kn(a.U,b);a.gb!=jq&&nq(a,b,!0)},!1),b!=jq&&(c.addEventListener("touchmove",function(b){nq(a,b)},!0),c.addEventListener("touchend",function(b){nq(a,b,!1)},!1),a.mb=a.rb=a.dd=-1,a.mc=!1,a.Cb=null,a.lc=!1,a.rd=function(){a.lc=!0;a.K.ie(oq,!0)}))}
l.Qf=function(a){this.C&&this.C.Qf(a)};
function nq(a,b,c){var d,e,f=0,g=0;d=a.M;do isNaN(d.offsetLeft)||(f+=d.offsetLeft,g+=d.offsetTop);while(d=d.offsetParent);var h=a.Y/a.M.offsetWidth,k=a.ja/a.M.offsetHeight;b.targetTouches&&b.targetTouches.length?(d=b.targetTouches[0].pageX,e=b.targetTouches[0].pageY):(d=b.pageX,e=b.pageY);d=(d-f)*h;e=(e-g)*k;if(a.gb==iq)c&&jo(a.C,pq[e/(a.ja/3)|0][d/(a.Y/3)|0],!0);else if(a.K){g=a.mc;f=b.timeStamp-a.dd;!0===c?(a.mc=500<f,a.dd=b.timeStamp,a.Cb=setTimeout(a.rd,500)):null!=a.Cb&&(clearTimeout(a.Cb),a.Cb=
null);void 0===c&&(a.mc=!1);g||b.preventDefault();if(!1===c){a.lc?(a.K.ie(oq,!1),a.lc=!1,b=!0):b=!1;if(b)return;if(200>f){a.K.ie(oq,!0);a.K.ie(oq,!1);return}}if(c||0>a.mb||0>a.rb)a.mb=d,a.rb=e;c=Math.round(d-a.mb);b=Math.round(e-a.rb);a.mb=d;a.rb=e;a.K.ng(c,b,a.mb,a.rb)}}l.Rb=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.Qb=function(a){return a?this.save():!0};
@ -532,11 +532,11 @@ l.reset=function(){var a=0;this.U&&(a=+bk(this.U,uj,void 0));this.ca||(this.Oa=a
a;b+=2){var c=65536*Math.random()|0,d;4==this.da||7==this.da?(d=b>>1&255,c=c>>8&~wq,c>>4==(c&15)&&(c^=15)):(d=c&255,c=(c&256?xq|yq:zq|Aq)|Bq&c>>8);cc(this.oa,b,d|c<<8)}lq(this,!0)}};function tq(a){a.A.cf&ep?(a.W=a.Xb,a.I=a.A):(a.W=a.A,a.I=a.Db)}l.save=function(){var a=new Me(this);a.set(0,sp(this.Xb));a.set(1,sp(this.Db));a.set(2,[this.da,this.ba,this.ma]);a.set(3,sp(this.A));return a.data()};
l.restore=function(a){var b=a[2];this.da=b[0];this.ba=b[1];this.ma=b[2];this.B=null;this.W=this.Xb=new Yo(this,$p,a[0]);this.I=this.Db=new Yo(this,Xp,a[1]);this.A=new Yo(this,this.Oa,a[3],this.Xc);this.A.Wb&&tq(this);uq(this);if(!Cq(this))return!1;Dq(this);return!0};
function kq(a,b,c,d){if(d)a.wa("Unable to load font ROM (error "+d+": "+b+")",0>d);else{Va(a.Cd,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f.length){q("Empty font ROM: "+b);return}if(1==f.length){q(f[0]);return}if(8192==f.length)Pn(a,f,[6144,0]);else if(2048==f.length)Pn(a,f,[0]);else{a.wa("Unrecognized font data length ("+f.length+")");return}}catch(g){a.wa("Font ROM data error: "+g.message);return}(a.J||a.Ea)&&v(a)}}
function Eq(a,b){if(1==b)return a.fa[0]=Fq[zq],a.fa[1]=Fq[xq],a.fa;if(2==b){var c=a.B.bf;if(a.B===a.A){var d=a.A.vc[0],c=d&7;d&16&&(c|=8);18!=a.A.vc[1]&&(c|=32)}a.fa[0]=Fq[c&15];c=c&32?Gq:Hq;for(d=0;d<c.length;d++)a.fa[d+1]=Fq[c[d]];return a.fa}if(a.I===a.Db)return Fq;a.Ga&&b&&!a.fa[16]&&(a.Ga=!1);if(!a.Ga){var c=a.A,d=c.we,e,f,g,h;if(8==b)for(e=0;256>e;e++)f=d[e]||0,g=f<<2&252,h=f>>4&252,f=f>>10&252,a.fa[e]=[g,h,f,255];else{var k=d&&d[255];b=null!=c.vc[15]?c.vc:Iq;for(e=0;16>e;e++)f=b[e]&63,k?(f|=
function Eq(a,b){if(1==b)return a.fa[0]=Fq[zq],a.fa[1]=Fq[xq],a.fa;if(2==b){var c=a.B.bf;if(a.B===a.A){var d=a.A.vc[0],c=d&7;d&16&&(c|=8);18!=a.A.vc[1]&&(c|=32)}a.fa[0]=Fq[c&15];c=c&32?Gq:Hq;for(d=0;d<c.length;d++)a.fa[d+1]=Fq[c[d]];return a.fa}if(a.I===a.Db)return Fq;a.Ga&&b&&!a.fa[16]&&(a.Ga=!1);if(!a.Ga){var c=a.A,d=c.xe,e,f,g,h;if(8==b)for(e=0;256>e;e++)f=d[e]||0,g=f<<2&252,h=f>>4&252,f=f>>10&252,a.fa[e]=[g,h,f,255];else{var k=d&&d[255];b=null!=c.vc[15]?c.vc:Iq;for(e=0;16>e;e++)f=b[e]&63,k?(f|=
(c.vc[20]&12)<<4,c.vc[16]&128&&(f&=-49,f|=(c.vc[20]&3)<<4),f=d[f],g=f<<2&252,h=f>>4&252,f=f>>10&252):(g=(f&4?170:0)|(f&32?85:0),h=(f&2?170:0)|(f&16?85:0),f=(f&1?170:0)|(f&8?85:0)),a.fa[e]=[g,h,f,255]}a.Ga=!0}return a.fa}function Pn(a,b,c,d){a.vb=b;a.Qa=c;a.Ca=d}
function uq(a,b){var c=!1;if(window&&a.vb&&(!b||a.G)){var d=0,e=a.Ca?a.Ca:8,f=Eq(a);null!=a.Qa[0]&&Jq(a,Kq,a.Qa[0],d,e,8,a.vb,f)&&(c=!0);d=a.Ca?0:2048;e=a.Ca?a.Ca:9;null!=a.Qa[1]&&(Jq(a,Lq,a.Qa[1],d,e,14,a.vb,Mq,Nq)&&(c=!0),a.Ca&&Jq(a,a.Oa,a.Qa[1],0,a.Ca,14,a.vb,f)&&(c=!0))}b||(a.aa=-1,a.za=-1,a.ra=0);return c}function Jq(a,b,c,d,e,f,g,h,k){var m=!1;null!=c&&(Oq(a,b,c,d,e,f,g,h,k)&&(m=!0),a.qd&&Oq(a,b<<1,c,d,e,f,g,h,k)&&(m=!0));return m}
function Oq(a,b,c,d,e,f,g,h,k){var m=!1,r=b&1?0:1,y=a.pa[b],t=16>h.length?h.length:16;y||(y={qc:e<<r,rc:f<<r,be:Array(t),Sh:h.slice(0,t),Ee:k,dg:Array(t)});for(k=0;k<t;k++){var z=h[k],D=y.be[k]?y.Sh[k]:[];if(z[0]!==D[0]||z[1]!==D[1]||z[2]!==D[2]){var m=y,D=k,N=r,P=c,aa=d,ya=e,Ha=f,Kc=g,Yh=[0,0,0,0],Tf=document.createElement("canvas");Tf.width=m.qc<<4;Tf.height=m.rc<<4;var Km=Tf.getContext("2d"),Ob,od,rc,Uf=8>Ha||!aa?Ha:8,Zh=Km.createImageData(m.qc,m.rc);for(Ob=0;256>Ob;Ob++){for(rc=0;rc<Ha;rc++)for(var Rt=
m.Ee&&D&1&&rc>=Ha-2,St=Kc[rc<Uf?P+Ob*Uf+rc:aa+Ob*Uf+rc-Uf],$h=0;$h<=N;$h++)for(od=0;od<ya;od++){var Lm=od<<N,Mm=(rc<<N)+$h,Nm=Rt||St&128>>(8<=od&&192<=Ob&&223>=Ob?7:od)?z:Yh;Pq(Zh,Lm,Mm,Nm);N&&Pq(Zh,Lm+1,Mm,Nm)}Km.putImageData(Zh,(Ob&15)*m.qc,(Ob>>4)*m.rc)}m.be[D]="#"+ja(z[0],2)+ja(z[1],2)+ja(z[2],2);m.Sh[D]=z;m.dg[D]=Tf;m=!0}}a.pa[b]=y;return m}function Qq(a){0<a.ra||0<=a.aa?0>a.za&&(a.za=0):a.za=-1}
function Oq(a,b,c,d,e,f,g,h,k){var m=!1,r=b&1?0:1,y=a.pa[b],t=16>h.length?h.length:16;y||(y={qc:e<<r,rc:f<<r,be:Array(t),Sh:h.slice(0,t),Fe:k,dg:Array(t)});for(k=0;k<t;k++){var z=h[k],D=y.be[k]?y.Sh[k]:[];if(z[0]!==D[0]||z[1]!==D[1]||z[2]!==D[2]){var m=y,D=k,N=r,P=c,aa=d,ya=e,Ha=f,Kc=g,Yh=[0,0,0,0],Vf=document.createElement("canvas");Vf.width=m.qc<<4;Vf.height=m.rc<<4;var Km=Vf.getContext("2d"),Ob,od,rc,Wf=8>Ha||!aa?Ha:8,Zh=Km.createImageData(m.qc,m.rc);for(Ob=0;256>Ob;Ob++){for(rc=0;rc<Ha;rc++)for(var Rt=
m.Fe&&D&1&&rc>=Ha-2,St=Kc[rc<Wf?P+Ob*Wf+rc:aa+Ob*Wf+rc-Wf],$h=0;$h<=N;$h++)for(od=0;od<ya;od++){var Lm=od<<N,Mm=(rc<<N)+$h,Nm=Rt||St&128>>(8<=od&&192<=Ob&&223>=Ob?7:od)?z:Yh;Pq(Zh,Lm,Mm,Nm);N&&Pq(Zh,Lm+1,Mm,Nm)}Km.putImageData(Zh,(Ob&15)*m.qc,(Ob>>4)*m.rc)}m.be[D]="#"+ja(z[0],2)+ja(z[1],2)+ja(z[2],2);m.Sh[D]=z;m.dg[D]=Vf;m=!0}}a.pa[b]=y;return m}function Qq(a){0<a.ra||0<=a.aa?0>a.za&&(a.za=0):a.za=-1}
function Dq(a){if(a.G){for(var b=10;15>=b;b++)if(null==a.B.Ua[b])return;var c=a.B.Ua[10],b=c&31,d=a.B.Ua[11]&Rp[11],e=a.B.Ua[9]&Rp[9],f=!1;a.B===a.A&&(f=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!f||b>e)Rq(a);else{c=a.B.Ua[15];c|=(a.B.Ua[14]&a.B.sf)<<8;a.aa!=c&&(Rq(a),a.aa=c);d=d-b+1;if(a.Vc!=b||a.Ic!=d)a.Vc=b,a.Ic=d;a.ua=e+1;Qq(a)}}}
function Rq(a){if(0<=a.aa){if(void 0!==a.L){var b=Sq<<8,c=a.L[a.aa];if(c&b){var c=c&~b,b=a.aa%a.D,d=a.aa/a.D|0;a.G&&a.pa[a.G]&&(a.Ba&&Tq(a,b,d,c,a.Ba),Tq(a,b,d,c));a.L[a.aa]=c}}a.aa=-1}}
function Uq(a){var b,c=a.B;a.Nc=!1;var d=c.nd[5];if(null!=d){b=hp;var e=jp,f=c.nd[3]&31;switch(d&3){case 0:if(f){e=jp|32;switch(f&24){case 8:e=jp|96;break;case 16:e=jp|160;break;case 24:e=jp|224}c.Ac=f&7}break;case 1:e=1;break;case 2:switch(f&24){default:e=2;break;case 8:e=98;break;case 16:e=162;break;case 24:e=226}break;case 3:a.Oa==Qn&&(e=3,c.Ac=f&7)}d&8&&(b=1280);c=c.Ud[4];null!=c&&(c&4||(b|=ip,e|=kp),d&64&&(c&8&&(b|=16384,e|=4),a.Nc=!0));b|=e}return b}
@ -546,22 +546,22 @@ function Cq(a,b){var c,d=a.ma,e=a.B;if(e)if(e.Oa==$p)d=sq;else if(e.Oa>=On){var
function vq(a,b,c){if(null!=b&&(b!=a.ma||c)){a.od=0;a.ma=b;a.Ga=!1;b=a.B||(b==sq?a.W:a.I);if(b!=a.B||b.ab!=a.ab||b.Hb!=a.Hb){Rq(a);if(a.ab){if(!Vb(a.oa,a.ab,a.Hb))return!1;a.B&&(a.B.Wb=!1)}a.B=b;b.Wb=!0;a.ab=b.ab;a.Hb=b.Hb;if(!Jb(a.oa,b.ab,b.Hb,3,b===a.A?b:null))return!1}a:{a.G=0;a.D=a.Jb;a.H=a.sc;a.Ma=a.D;a.Gb=Up[sq][2];b=0;if(c=Up[a.ma])a.D=c[0],a.H=c[1],a.Gb=c[2],b=c[3],a.G=c[4],4!=a.da&&7!=a.da||a.B!==a.A||a.G!=Kq||(7==(a.A.Ua[Pp]&31)?a.H=350>wp(a.A,Fp)?43:50:a.G=a.Oa);a.Sc=a.D*a.H|0;a.Rc=a.Sc/
a.Gb|0;a.Sa=a.Rc;a.Yb=0;void 0!==b&&(a.Sa=(a.Sa<<1)+b|0,a.Yb=a.Sa+b>>1);if(a.pa.length){a.la=a.Y/a.D|0;a.qa=a.ja/a.H|0;if(a.G){b=a.pa[a.G];if(!b)break a;c=a.pa[a.G<<1];a.Qc&&80==a.D?c&&a.la>=3*c.qc>>2&&(a.G<<=1,b=c):(c&&a.la>=c.qc&&(a.G<<=1,b=c),a.Qc||(a.la=b.qc,a.qa=b.rc));a.eb=a.fb=0;b&&(a.eb=a.D*b.qc,a.fb=a.H*b.rc)}else a.la=a.qa=1,a.eb=a.D,a.fb=a.H;a.La=a.J.createImageData(a.eb,a.fb);a.Aa=document.createElement("canvas");a.Aa.width=a.eb;a.Aa.height=a.fb;a.Ba=a.Aa.getContext("2d");a.uc=a.Dc=0;
a.ec=a.Y;a.fc=a.ja;b=a.Y-a.D*a.la;c=a.ja-a.H*a.qa;0<b&&(a.uc=b>>1,a.ec-=b);0<c&&(a.Dc=c>>1,a.fc-=c);if(b||c)a.J.fillStyle=a.M.style.backgroundColor,a.J.fillRect(0,0,a.Y,a.ja)}}jr(a,!0);lq(a)}return!0}function Pq(a,b,c,d){b=(b+c*a.width)*d.length;a.data[b]=d[0];a.data[b+1]=d[1];a.data[b+2]=d[2];a.data[b+3]=d[3]}function kr(a){a.ra=-1;a.Da=!1;var b=a.Rc;if(void 0===a.L||a.L.length!=b)a.L=Array(b)}function jr(a,b){b||(a.Ga=!1);kr(a)}
function Tq(a,b,c,d,e){var f=d&255,g=d>>8;d=g&15;var h=a.pa[a.G];h.Ee&&(d=h.Ee[d]);var k=g>>4&15;h.Ee&&(k=h.Ee[k]);e?(b*=h.qc,c*=h.rc,e.fillStyle=h.be[k],e.fillRect(b,c,h.qc,h.rc)):(b=b*a.la+a.uc,c=c*a.qa+a.Dc,a.J.fillStyle=h.be[k],a.J.fillRect(b,c,a.la,a.qa));g&lr&&(k=(f&15)*h.qc,f=(f>>4)*h.rc,e?e.drawImage(h.dg[d],k,f,h.qc,h.rc,b,c,h.qc,h.rc):a.J.drawImage(h.dg[d],k,f,h.qc,h.rc,b,c,a.la,a.qa));g&Sq&&(f=a.Vc,g=a.Ic,e?(a.ua&&a.ua!==h.rc&&(f=f*h.rc/a.ua|0,g=g*h.rc/a.ua|0),e.fillStyle=h.be[d],e.fillRect(b,
function Tq(a,b,c,d,e){var f=d&255,g=d>>8;d=g&15;var h=a.pa[a.G];h.Fe&&(d=h.Fe[d]);var k=g>>4&15;h.Fe&&(k=h.Fe[k]);e?(b*=h.qc,c*=h.rc,e.fillStyle=h.be[k],e.fillRect(b,c,h.qc,h.rc)):(b=b*a.la+a.uc,c=c*a.qa+a.Dc,a.J.fillStyle=h.be[k],a.J.fillRect(b,c,a.la,a.qa));g&lr&&(k=(f&15)*h.qc,f=(f>>4)*h.rc,e?e.drawImage(h.dg[d],k,f,h.qc,h.rc,b,c,h.qc,h.rc):a.J.drawImage(h.dg[d],k,f,h.qc,h.rc,b,c,a.la,a.qa));g&Sq&&(f=a.Vc,g=a.Ic,e?(a.ua&&a.ua!==h.rc&&(f=f*h.rc/a.ua|0,g=g*h.rc/a.ua|0),e.fillStyle=h.be[d],e.fillRect(b,
c+f,h.qc,g)):(a.ua&&a.ua!==a.qa&&(f=f*a.qa/a.ua|0,g=g*a.qa/a.ua|0),a.J.fillStyle=h.be[d],a.J.fillRect(b,c+f,a.la,g)))}
function lq(a,b){b=void 0===b?!1:b;if(a.X.Sb){var c=!1,d=a.B;d&&(d!==a.A?d.Ec&8&&(c=!0):d.Sd&32&&(c=!0));if(c||b){if(b)kr(a);else if(void 0===a.L)return;c=!1;!(b||++a.od&15)&&0<=a.za&&(a.za++,c=!0);var e=a.Sc,f=a.ab,g=f,h=g+a.Hb;a.ma>=$q&&(f=g=655360,h=g+65536);if(mr(a,d)&8||d.We&&d.We<d.fh){var k=d.Ua[bp],k=k|(d.Ua[cp]&d.sf)<<8;d.Ad!==k&&(d.Ad=k,jr(a));d.We=0}var m=d.Ad<<(a.G?1:0),g=g+m,k=a.Sa;a.Oa>=On&&d.Ua[19]&&d.Ua[19]<<1!=d.Ua[1]+1&&(a.Ma=d.Ua[19]<<(a.G?1:d.Ua[20]&64?3:4),k=(a.Ma*(a.H-1)+a.D)/
function lq(a,b){b=void 0===b?!1:b;if(a.X.Sb){var c=!1,d=a.B;d&&(d!==a.A?d.Ec&8&&(c=!0):d.Sd&32&&(c=!0));if(c||b){if(b)kr(a);else if(void 0===a.L)return;c=!1;!(b||++a.od&15)&&0<=a.za&&(a.za++,c=!0);var e=a.Sc,f=a.ab,g=f,h=g+a.Hb;a.ma>=$q&&(f=g=655360,h=g+65536);if(mr(a,d)&8||d.Xe&&d.Xe<d.fh){var k=d.Ua[bp],k=k|(d.Ua[cp]&d.sf)<<8;d.Ad!==k&&(d.Ad=k,jr(a));d.Xe=0}var m=d.Ad<<(a.G?1:0),g=g+m,k=a.Sa;a.Oa>=On&&d.Ua[19]&&d.Ua[19]<<1!=d.Ua[1]+1&&(a.Ma=d.Ua[19]<<(a.G?1:d.Ua[20]&64?3:4),k=(a.Ma*(a.H-1)+a.D)/
a.Gb|0,a.ma<=sq&&(k<<=1));var r=d=0;g+k>h&&(r=k,g>=h?(d=f+(g-h),k=0):(d=f,k=h-g,r-=k));h=a.aa-(m>>1);g=nr(a,f,g,k,0,h,e,b,c);r&&(g+=nr(a,f,d,r,0+g,h,e,b,c));g&&(a.Da=!0)}}}
function nr(a,b,c,d,e,f,g,h,k){var m=d>>1;m>g&&(m=g);var r=c+d;if(h=!h&&a.Da){h=a.oa;for(var y=!0,t=c>>>h.B,z=h.A-(c&h.C);0<d&&t<h.Y.length;)h.Y[t].Fa&&(h.Y[t].Fa=y=!1,h.Y[t].hi=!0),d-=z,z=h.A,t++;h=y}if(h){if(!k)return m;if(!a.ra){f-=e;if(0>f)return m;c+=f<<1;e+=f;g=e+1}}if(a.G){if(a.pa[a.G]){b=c;c=e;k=f=e=0;h=lr<<8;d=1048575;t=a.B.Ec&32;a.Oa>=On&&(t=a.B.vc[16]&8);y=a.aa-a.B.Ad;t&&(k=wq<<8,d&=~k,a.za&2||(d&=~h));for(a.ra=0;b<r&&c<g;)t=bc(a.oa,b),t|=h,t&k&&(a.ra++,t&=d),c==y&&(t|=a.za&1?Sq<<8:0),
a.Da&&t===a.L[c]||(Tq(a,c%a.D,c/a.D|0,t,a.Ba),a.L[c]=t,f++),b+=2,e++,c++;f&&a.Ba&&a.J.drawImage(a.Aa,0,0,a.eb,a.fb,a.uc,a.Dc,a.ec,a.fc);Qq(a)}}else{if(a.Yb){b=c;m=r-b>>1;g=0;c=a.Gb;e=b;f=16==c?65536:196608;k=16==c?1:2;h=Eq(a,k);var y=d=0,t=a.D,z=0,D=a.H,N=0;for(a.ra=0;e<r;){var P=bc(a.oa,e);if(a.Da&&P===a.L[g])d+=c;else{a.L[g]=P;var P=P>>8|(P&255)<<8,aa=f,ya=16;d<t&&(t=d);for(var Ha=0;Ha<c;Ha++){var Kc=(P&(aa>>=k))>>(ya-=k);Pq(a.La,d++,y,h[Kc])}d>z&&(z=d);y<D&&(D=y);y>=N&&(N=y+1)}e+=2;g++;if(d>=a.D){d=
0;y+=2;if(y>a.H)break;y==a.H&&(y=1,e=b+a.Yb)}}t<a.D&&(a.Ba.putImageData(a.La,0,0,t,D,z-t,N-D),a.J.drawImage(a.Aa,0,0,a.D,a.H,0,0,a.Y,a.ja));a=m}else{if(a.Nc){m=0;g=r-c;e=Eq(a,8);f=a.B.td;h=k=0;d=a.D;y=0;t=a.H;z=0;D=a.B.Ud[4]&8?4:1;N=a.B.vc[19]&15;P=a.Ma>a.D?a.Ma-a.D-N>>3:0;for(a.ra=0;c<r;){aa=f[c-b];Ha=4;N||(a.Da&&aa===a.L[m]?(k+=Ha,Ha=0):a.L[m]=aa,m++);if(Ha){k<d&&(d=k);for(ya=0;ya<Ha;ya++)Pq(a.La,k++,h,e[aa&255]),aa>>=8;k>y&&(y=k);h<t&&(t=h);h>=z&&(z=h+1)}c+=D;if(k>=a.D){k=0;if(++h>a.H)break;c+=
P}}N&&(g=0)}else{m=0;g=r-c;e=Eq(a);f=a.B.td;h=k=0;d=a.D;y=0;t=a.H;z=0;D=a.B.vc[19]&15;N=a.Ma>a.D?a.Ma-a.D-D>>3:0;for(a.ra=0;c<r;){P=c++-b;P=f[P];ya=8;D?k?(aa=a.D-k,ya>aa&&(ya=aa)):(P<<=D,ya-=D,a.Da=!1):(a.Da&&P===a.L[m]?(k+=ya,ya=0):a.L[m]=P,m++);if(ya){k<d&&(d=k);for(aa=0;aa<ya;aa++)Ha=or[P&2155905152]||0,Pq(a.La,k++,h,e[Ha]),P<<=1;k>y&&(y=k);h<t&&(t=h);h>=z&&(z=h+1)}if(k>=a.D){k=0;if(++h>a.H)break;c+=N}}D&&(g=0)}d<a.D&&(a.Ba.putImageData(a.La,0,0,d,t,y-d,z-t),a.J.drawImage(a.Aa,0,0,a.D,a.H,0,0,
a.Y,a.ja));a=g}m=a}return m}function mr(a,b){var c=0;a=Sc(a.R)-b.vg;0>a&&(b.vg=a,a=-a|0);a%b.tg>b.Ll&&(c|=1);a%b.ug>b.Nl&&(c|=9);b.fh=a/b.ug|0;return c}l.fl=function(){var a=this.W,b;a.Wb&&(b=a.hc);return b};l.Dm=function(a,b){a=this.W;a.Tf=a.hc;a.hc=b&31};l.el=function(){return pr(this.W)};l.Cm=function(a,b){qr(this,this.W,b)};l.gl=function(){return this.W.Ec};l.Em=function(a,b){this.W.Ec=b;Cq(this,!1)};l.hl=function(){return rr(this,this.W)};l.Bj=function(a,b){this.A.Wf=this.A.Wf&-4|b&3};l.Ek=function(){return this.A.Sd};
l.bk=function(){return this.A.vc[this.A.Sd&31]};l.Aj=function(a,b){a=this.A;var c=a.Sd&32;if(a.He){a.He=!1;var d=a.Sd&31;if(16<=d||!c)if(sr||a.vc[d]!==b)a.vc[d]=b,jr(this,!1)}else a.Sd=b,a.He=!0,b&32&&!c&&uq(this,!0)&&lq(this,!0),b=a.Ua[bp],b|=(a.Ua[cp]&a.sf)<<8,a.Ad!=b&&(a.Ad=b,jr(this)),a.We=0};l.rl=function(){var a=0;if(this.Oa==On)a=3-((this.A.cf&12)>>2),a=(this.wb&1<<a)<<4-a;else{var b=this.A.we[0];45!=(b&63)&&2880!=(b&4032)&&184320!=(b&258048)&&(a|=16)}a|=this.A.ih&-17;return this.A.ih=a};
l.bk=function(){return this.A.vc[this.A.Sd&31]};l.Aj=function(a,b){a=this.A;var c=a.Sd&32;if(a.Ie){a.Ie=!1;var d=a.Sd&31;if(16<=d||!c)if(sr||a.vc[d]!==b)a.vc[d]=b,jr(this,!1)}else a.Sd=b,a.Ie=!0,b&32&&!c&&uq(this,!0)&&lq(this,!0),b=a.Ua[bp],b|=(a.Ua[cp]&a.sf)<<8,a.Ad!=b&&(a.Ad=b,jr(this)),a.Xe=0};l.rl=function(){var a=0;if(this.Oa==On)a=3-((this.A.cf&12)>>2),a=(this.wb&1<<a)<<4-a;else{var b=this.A.xe[0];45!=(b&63)&&2880!=(b&4032)&&184320!=(b&258048)&&(a|=16)}a|=this.A.ih&-17;return this.A.ih=a};
l.Fm=function(a,b){this.A.cf=b;tq(this)};l.sl=function(){return this.A.jh};l.Nm=function(a,b){this.A.jh=b};l.pl=function(){return this.A.Vd};l.Lm=function(a,b){this.A.Vd=b};l.ol=function(){return this.A.Ud[this.A.Vd]};l.Km=function(a,b){if(sr||this.A.Ud[this.A.Vd]!==b)this.A.Ud[this.A.Vd]=b;switch(this.A.Vd){case 2:this.A.Ya=Sp[b&15];break;case 4:Vq(this,Uq(this))&&lq(this,!0)}};l.Rk=function(){return this.A.Uf};l.mm=function(a,b){if(sr||this.A.Uf!==b)this.A.Uf=b};l.Sk=function(){return this.A.Vf};
l.nm=function(a,b){this.A.bd=b;this.A.Vf=3;this.A.wc=0};l.om=function(a,b){this.A.bd=b;this.A.Vf=op;this.A.wc=0};l.Qk=function(){var a=this.A.we[this.A.bd]>>this.A.wc&63;this.A.wc+=6;12<this.A.wc&&(this.A.wc=0,this.A.bd=this.A.bd+1&pp-1);return a};l.lm=function(a,b){a=this.A.we[this.A.bd];b=a&~(63<<this.A.wc)|(b&63)<<this.A.wc;a!==b&&(this.A.we[this.A.bd]=b,jr(this,!1));this.A.wc+=6;12<this.A.wc&&(this.A.wc=0,this.A.bd=this.A.bd+1&pp-1)};l.tl=function(){return this.A.Wf};
l.nm=function(a,b){this.A.bd=b;this.A.Vf=3;this.A.wc=0};l.om=function(a,b){this.A.bd=b;this.A.Vf=op;this.A.wc=0};l.Qk=function(){var a=this.A.xe[this.A.bd]>>this.A.wc&63;this.A.wc+=6;12<this.A.wc&&(this.A.wc=0,this.A.bd=this.A.bd+1&pp-1);return a};l.lm=function(a,b){a=this.A.xe[this.A.bd];b=a&~(63<<this.A.wc)|(b&63)<<this.A.wc;a!==b&&(this.A.xe[this.A.bd]=b,jr(this,!1));this.A.wc+=6;12<this.A.wc&&(this.A.wc=0,this.A.bd=this.A.bd+1&pp-1)};l.tl=function(){return this.A.Wf};
l.ym=function(a,b){this.A.Lj=b};l.ul=function(){return this.A.cf};l.xm=function(a,b){this.A.Kj=b};l.Zk=function(){return this.A.Td};l.wm=function(a,b){this.A.Td=b};l.Yk=function(){return this.A.nd[this.A.Td]};
l.vm=function(a,b){if(sr||this.A.nd[this.A.Td]!==b)this.A.nd[this.A.Td]=b;switch(this.A.Td){case 0:this.A.Ve=Sp[b&15];this.A.zd=this.A.Ve&~this.A.ld;break;case 1:this.A.ld=~Sp[b&15];this.A.zd=this.A.Ve&~this.A.ld;break;case 2:this.A.qg=Sp[b&15]&-2139062144;break;case 3:case 5:Vq(this,Uq(this));break;case 4:this.A.eh=(b&3)<<3;break;case 6:Cq(this,!1);break;case 7:this.A.rg=Sp[b&15]&-2139062144;break;case 8:this.A.ub=b|b<<8|b<<16|b<<24}};l.Kk=function(){var a=this.I,b;a.Wb&&(b=a.hc);return b};
l.vm=function(a,b){if(sr||this.A.nd[this.A.Td]!==b)this.A.nd[this.A.Td]=b;switch(this.A.Td){case 0:this.A.We=Sp[b&15];this.A.zd=this.A.We&~this.A.ld;break;case 1:this.A.ld=~Sp[b&15];this.A.zd=this.A.We&~this.A.ld;break;case 2:this.A.qg=Sp[b&15]&-2139062144;break;case 3:case 5:Vq(this,Uq(this));break;case 4:this.A.eh=(b&3)<<3;break;case 6:Cq(this,!1);break;case 7:this.A.rg=Sp[b&15]&-2139062144;break;case 8:this.A.ub=b|b<<8|b<<16|b<<24}};l.Kk=function(){var a=this.I,b;a.Wb&&(b=a.hc);return b};
l.gm=function(a,b){a=this.I;a.Tf=a.hc;a.hc=b&31};l.Jk=function(){return pr(this.I)};l.fm=function(a,b){qr(this,this.I,b)};l.Lk=function(){return this.I.Ec};l.hm=function(a,b){this.I.Ec=b;Cq(this,!1)};l.Ik=function(){return this.I.bf};l.em=function(a,b){this.I.bf!==b&&(this.I.bf=b,jr(this,!1))};l.Mk=function(){return rr(this,this.I)};function pr(a){var b;a.Wb&&a.hc<a.pg&&(b=a.Ua[a.hc]);return b}
function qr(a,b,c){if(b.hc<b.pg){if(sr||b.Ua[b.hc]!==c)b.Ua[b.hc]=c;if(b.hc==cp||b.hc==bp)mr(a,b),b.We=b.fh;(9==b.hc&&8!=b.Tf||b.hc==Fp&&223==c)&&Cq(a,!0);Dq(a)}}function rr(a,b){var c=mr(a,b);b===a.A?(c|=b.Z&48^48,b.He=!1):c=(b.Z^=9)|240;return b.Z=c}var sr=!0,ir=1,Zq=2,qq=3,hr=5,gr=6,sq=7,cr=13,dr=14,Xq=15,Yq=16,er=17,fr=18,$q=19,ar=20,br=21,Wq=255,mq=60,Lq=1,Kq=3,$p=Lq,Xp=Kq,On=5,Qn=7,Tp={mda:[$p,sq],cga:[Xp,qq],ega:[On,qq],vga:[Qn,qq]},rp={2:{Mf:15700,Lf:208,Rf:85,Sf:96}};
function qr(a,b,c){if(b.hc<b.pg){if(sr||b.Ua[b.hc]!==c)b.Ua[b.hc]=c;if(b.hc==cp||b.hc==bp)mr(a,b),b.Xe=b.fh;(9==b.hc&&8!=b.Tf||b.hc==Fp&&223==c)&&Cq(a,!0);Dq(a)}}function rr(a,b){var c=mr(a,b);b===a.A?(c|=b.Z&48^48,b.Ie=!1):c=(b.Z^=9)|240;return b.Z=c}var sr=!0,ir=1,Zq=2,qq=3,hr=5,gr=6,sq=7,cr=13,dr=14,Xq=15,Yq=16,er=17,fr=18,$q=19,ar=20,br=21,Wq=255,mq=60,Lq=1,Kq=3,$p=Lq,Xp=Kq,On=5,Qn=7,Tp={mda:[$p,sq],cga:[Xp,qq],ega:[On,qq],vga:[Qn,qq]},rp={2:{Mf:15700,Lf:208,Rf:85,Sf:96}};
rp[ck]={Mf:18432,Lf:364,Rf:85,Sf:96};rp[4]={Mf:21850,Lf:364,Rf:85,Sf:96};rp[7]={Mf:16700,Lf:480,Rf:85,Sf:83};var rq={6:[1,ck,!0],7:[2,ck,!0],8:[6,ck,!0],9:[4,ck,!0],10:[ck,1,!0],11:[ck,2,!0],0:[1,ck,!1],1:[2,ck,!1],2:[6,ck,!1],3:[4,ck,!1],4:[ck,1,!1],5:[ck,2,!1]},Up=[];Up[ir]=[40,25,1,0,Kq];Up[qq]=[80,25,1,0,Kq];Up[4]=[320,200,8,192];Up[gr]=[640,200,16,192];Up[sq]=[80,25,1,0,Lq];Up[cr]=[320,200,8];Up[dr]=[640,200,8];Up[Xq]=[640,350,8];Up[Yq]=[640,350,8];Up[er]=[640,480,8];Up[fr]=[640,480,8];
Up[$q]=[320,200,1];Up[ar]=[320,240,4];Up[br]=[320,400,4];Up[0]=Up[ir];Up[Zq]=Up[qq];Up[hr]=Up[4];
var zq=0,xq=7,Bq=8,yq=0,Aq=112,wq=128,lr=256,Sq=512,Mq=[[0,0,0,255],[127,192,127,255],[127,192,127,255],[127,255,127,255],[127,255,127,255]],Nq=[0,1,2,2,2,2,2,2,0,3,4,4,4,4,4,4],Fq=[[0,0,0,255],[0,0,170,255],[0,170,0,255],[0,170,170,255],[170,0,0,255],[170,0,170,255],[170,85,0,255],[170,170,170,255],[85,85,85,255],[85,85,255,255],[85,255,85,255],[85,255,255,255],[255,85,85,255],[255,85,255,255],[255,255,85,255],[255,255,255,255]],Hq=[2,4,6],Gq=[3,5,xq],Iq=[0,1,2,3,4,5,20,7,56,57,58,59,60,61,62,63],
@ -572,26 +572,27 @@ var Vp=0,jq=1,iq=2,hq=3,pq=[[1036,1038,1033],[1037,1032,1039],[1035,1040,1034]],
Ma(function(){for(var a=cb(document,"pcx86","video"),b=0;b<a.length;b++){var c=a[b],d=db(c),e=document.createElement("canvas");if(!e||!e.getContext){c.innerHTML="<br/>Missing &lt;canvas&gt; support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.height="auto";0<=za().indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height=(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,
d.screenHeight),c.onresize(null));var f=+(Ia("aspect")||d.aspect);f&&.3<=f&&3.33>=f&&(La("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");Ea("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"),f.style.fontSize="16px");c.appendChild(f);var g=e.getContext("2d"),d=new Y(d,e,g,f,c);bb(d,c)}});
function tr(a){u.call(this,"ParallelPort",a);this.G=a.adapter;switch(this.G){case 1:this.D=956;this.C=7;break;case 2:this.D=888;this.C=7;break;case 3:this.D=632;this.C=5;break;default:q("Unrecognized parallel adapter #"+this.G);return}this.A=this.B=null;a=a.binding;"console"==a?this.B="":$a(this,a,ur)}ca(tr,u);l=tr.prototype;l.Ab=function(a,b,c){switch(b){case ur:return this.ia[b]=this.A=c,!0}return!1};
l.kc=function(a,b,c,d){this.oa=b;this.R=c;this.Ea=d;this.U=tb(a,"ChipSet");ec(b,this,vr,this.D);gc(b,this,wr,this.D);v(this)};l.Rb=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.Qb=function(a){return a?this.save():!0};l.reset=function(){xr(this)};l.save=function(){var a=new Me(this),b=0,c=[];c[b++]=this.F;c[b++]=this.Fb;c[b]=this.Fe;a.set(0,c);return a.data()};l.restore=function(a){return xr(this,a[0])};
function xr(a,b){var c=0;b||(b=[0,0,0]);a.F=b[c++];a.Fb=b[c++];a.Fe=b[c];return!0}l.Tk=function(){return this.F};l.ql=function(){return this.Fb};l.Pk=function(){return this.Fe};l.pm=function(a,b){this.F=b;this.Fb|=yr;a=!1;this.A&&(8==b?this.A.value=this.A.value.slice(0,-1):(this.A.value+=String.fromCharCode(b),this.A.scrollTop=this.A.scrollHeight),a=!0);if(null!=this.B){if(10==b||1024<=this.B.length)this.qb(this.B),this.B="";10!=b&&(this.B+=String.fromCharCode(b));a=!0}a&&(this.Fb&=~yr);zr(this)};
l.km=function(a,b){this.Fe=b;zr(this)};function zr(a){a.U&&a.C&&(a.Fe&Ar&&!(a.Fb&yr)?Ff(a.U,a.C):Df(a.U,a.C))}var ur="buffer",yr=64,Ar=16,vr={0:tr.prototype.Tk,1:tr.prototype.ql,2:tr.prototype.Pk},wr={0:tr.prototype.pm,2:tr.prototype.km};Ma(function(){for(var a=cb(document,"pcx86","parallel"),b=0;b<a.length;b++){var c=a[b],d=db(c),d=new tr(d);bb(d,c)}});
function Br(a){u.call(this,"SerialPort",a);this.fa=a.adapter;switch(this.fa){case 1:this.ba=1016;this.M=4;break;case 2:this.ba=760;this.M=3;break;default:q("Unrecognized serial adapter #"+this.fa);return}this.C=this.G=null;this.ma=a.tabSize;this.la=a.charBOL;this.J=this.qa=0;this.pa=Cr|Dr;this.N=!0;a=a.binding;"console"==a?this.G="":$a(this,a,Er);this.F=this.aa=this.W=null;this.exports={connect:this.ri,receiveData:this.af,receiveStatus:this.ak}}ca(Br,u);l=Br.prototype;
l.Wh=function(a,b,c){var d=null;a!=this.Be||this.F||(this.F=b,this.W=c,this.N=!1,d=this);return d};l.Ab=function(a,b,c){var d=this;switch(b){case Er:return this.ia[b]=this.C=c,this.C.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),d.af(b);return!0},this.C.onkeypress=function(a){a=a||window.event;d.af(a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},this.C.removeAttribute("readonly"),!0}return!1};
l.kc=function(a,b,c,d){this.na=a;this.oa=b;this.R=c;this.Ea=d;this.U=tb(a,"ChipSet");ec(b,this,Fr,this.ba);gc(b,this,Gr,this.ba);v(this)};
l.ri=function(a){if(!this.F){var b=Fc(this.na,"connection");if(b){var c=b.split("->");if(2==c.length){var d=pa(c[0]);if(d!=this.Be)return;c=pa(c[1]);if(this.F=fb(c)){var e=this.F.exports;if(e){var f=e.connect;f&&f.call(this.F,this.N);if(this.aa=e.receiveData){this.N=a;this.W=e.receiveStatus;this.status("Connected "+this.Cd+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
l.Rb=function(a,b){if(!b)if(this.ri(this.N),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.Qb=function(a){return a?this.save():!0};l.reset=function(){Hr(this)};l.save=function(){var a=new Me(this),b=0,c=[];c[b++]=this.da;c[b++]=this.ja;c[b++]=this.K;c[b++]=this.L;c[b++]=this.D;c[b++]=this.I;c[b++]=this.Y;c[b++]=this.A;c[b++]=this.B;c[b]=this.H;a.set(0,c);return a.data()};l.restore=function(a){return Hr(this,a[0])};
function Hr(a,b){var c=0;b||(b=[0,0,Ir,0,Jr,0,0,Kr|Lr,a.pa,[]]);a.da=b[c++];a.ja=b[c++];a.K=b[c++];a.L=b[c++];a.D=b[c++];a.I=b[c++];a.Y=b[c++];a.A=b[c++];a.B=b[c++];a.H=b[c];return!0}l.af=function(a){if("number"==typeof a)this.H.push(a);else if("string"==typeof a)for(var b=0;b<a.length;b++)this.H.push(a.charCodeAt(b));else this.H=this.H.concat(a);Mr(this);return!0};l.ak=function(a){var b=this.B;this.B&=~(Cr|Dr);a&32&&(this.B=this.B|Cr|Nr);a&64&&(this.B=this.B|Dr|Or);b!=this.B&&Pr(this)};
function Mr(a){0<a.H.length&&!(a.A&Qr)&&(a.da=a.H.shift(),a.A|=Qr);Pr(a)}l.nl=function(){var a=this.I&Rr?this.K&255:this.da;this.A&=~Qr;Mr(this);return a};l.$k=function(){return this.I&Rr?this.K>>8:this.L};l.al=function(){var a=this.D;this.D|=Jr;return a};l.bl=function(){return this.I};l.dl=function(){return this.Y};l.cl=function(){return this.A};l.il=function(){var a=this.B;this.B&=~(Nr|Or);return a};
l.Mm=function(a,b){if(this.I&Rr)this.K=this.K&-256|b;else{this.ja=b;this.A&=~(Kr|Lr);a=!1;this.aa&&this.aa.call(this.F,b)&&(a=!0);if(this.C){if(13==b)this.J=0;else if(8==b)this.C.value=this.C.value.slice(0,-1),0<this.J&&this.J--;else{var c;13!=b&&10!=b&&(c=qa[b]);c=c?"<"+c+">":String.fromCharCode(b);a=c.length;32>b&&1==a&&(a=0);9==b&&(a=this.ma||8,a-=this.J%a,this.ma&&(c=" ".slice(0,a)));!this.J&&a&&(10!=this.qa&&(c="\n"+c),this.la&&(c=String.fromCharCode(this.la)+
c));this.C.value+=c;this.C.scrollTop=this.C.scrollHeight;this.J+=a}this.qa=b;a=!0}else if(null!=this.G){if(10==b||1024<=this.G.length)this.qb(this.G),this.G="";10!=b&&(this.G+=String.fromCharCode(b));a=!0}a&&(this.A=this.A|Kr|Lr,Pr(this))}};l.zm=function(a,b){this.I&Rr?this.K=this.K&255|b<<8:this.L=b};l.Am=function(a,b){this.I=b};l.Bm=function(a,b){a=b^this.Y;this.Y=b;a&(Sr|Tr)&&this.W&&(a=0,this.N?(a|=b&Tr?32:0,a|=b&Sr?320:0):(a|=b&Tr?16:0,a|=b&Sr?1048576:0),this.W.call(this.F,a))};
function Pr(a){var b=-1;a.A&Qr&&a.L&Ur?b=Vr:a.A&Kr&&a.L&Wr?b=Xr:a.B&(Nr|Or)&&a.L&Yr&&(b=Zr);0<=b?(a.D&=~(Jr|$r),a.D|=b,a.U&&a.M&&Ff(a.U,a.M,100)):(a.D|=Jr,a.U&&a.M&&Df(a.U,a.M))}var Er="buffer",Ir=384,Ur=1,Wr=2,Yr=8,Jr=1,Vr=4,Xr=2,Zr=0,$r=6,Rr=128,Sr=1,Tr=2,Qr=1,Kr=32,Lr=64,Nr=1,Or=2,Cr=16,Dr=32,Fr={0:Br.prototype.nl,1:Br.prototype.$k,2:Br.prototype.al,3:Br.prototype.bl,4:Br.prototype.dl,5:Br.prototype.cl,6:Br.prototype.il},Gr={0:Br.prototype.Mm,1:Br.prototype.zm,3:Br.prototype.Am,4:Br.prototype.Bm};
Ma(function(){for(var a=cb(document,"pcx86","serial"),b=0;b<a.length;b++){var c=a[b],d=db(c),d=new Br(d);bb(d,c)}});function as(a){u.call(this,"Mouse",a);if(this.U=a.serial)this.W="SerialPort";this.J=a.scaleMouse;this.N=this.M=this.Wb=!1;this.F=[];this.D=[];v(this)}ca(as,u);l=as.prototype;l.kc=function(a,b,c,d){this.na=a;this.oa=b;this.R=c;this.Ea=d;this.J=Fc(a,"scaleMouse")||this.J;for(b=null;b=tb(a,"Video",b);)this.F.push(b)};
l.kc=function(a,b,c,d){this.oa=b;this.R=c;this.Ea=d;this.U=tb(a,"ChipSet");ec(b,this,vr,this.D);gc(b,this,wr,this.D);v(this)};l.Rb=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.Qb=function(a){return a?this.save():!0};l.reset=function(){xr(this)};l.save=function(){var a=new Me(this),b=0,c=[];c[b++]=this.F;c[b++]=this.Fb;c[b]=this.Ge;a.set(0,c);return a.data()};l.restore=function(a){return xr(this,a[0])};
function xr(a,b){var c=0;b||(b=[0,0,0]);a.F=b[c++];a.Fb=b[c++];a.Ge=b[c];return!0}l.Tk=function(){return this.F};l.ql=function(){return this.Fb};l.Pk=function(){return this.Ge};l.pm=function(a,b){this.F=b;this.Fb|=yr;a=!1;this.A&&(8==b?this.A.value=this.A.value.slice(0,-1):(this.A.value+=String.fromCharCode(b),this.A.scrollTop=this.A.scrollHeight),a=!0);if(null!=this.B){if(10==b||1024<=this.B.length)this.qb(this.B),this.B="";10!=b&&(this.B+=String.fromCharCode(b));a=!0}a&&(this.Fb&=~yr);zr(this)};
l.km=function(a,b){this.Ge=b;zr(this)};function zr(a){a.U&&a.C&&(a.Ge&Ar&&!(a.Fb&yr)?Ff(a.U,a.C):Df(a.U,a.C))}var ur="buffer",yr=64,Ar=16,vr={0:tr.prototype.Tk,1:tr.prototype.ql,2:tr.prototype.Pk},wr={0:tr.prototype.pm,2:tr.prototype.km};Ma(function(){for(var a=cb(document,"pcx86","parallel"),b=0;b<a.length;b++){var c=a[b],d=db(c),d=new tr(d);bb(d,c)}});
function Br(a){u.call(this,"SerialPort",a);this.fa=a.adapter;switch(this.fa){case 1:this.ba=1016;this.M=4;break;case 2:this.ba=760;this.M=3;break;default:q("Unrecognized serial adapter #"+this.fa);return}this.C=this.I=null;this.ma=a.tabSize||0;this.la=a.charBOL||0;this.K=this.qa=0;this.pa=Cr|Dr;this.N=!0;a=a.binding;"console"==a?this.I="":$a(this,a,Er);this.F=this.aa=this.W=null;this.exports={connect:this.ri,receiveData:this.we,receiveStatus:this.ak}}ca(Br,u);l=Br.prototype;
l.Wh=function(a,b,c){var d=null;a!=this.Ce||this.F||(this.F=b,this.W=c,this.N=!1,d=this);return d};l.Ab=function(a,b,c){var d=this;switch(b){case Er:return this.ia[b]=this.C=c,this.C.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),d.we(b);return!0},this.C.onkeypress=function(a){a=a||window.event;d.we(a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},this.C.removeAttribute("readonly"),!0}return!1};
l.kc=function(a,b,c,d){this.na=a;this.oa=b;this.R=c;this.Ea=d;var e=this;this.ra=Gc(this.R,this.id+".receive",function(){e.we()});this.ua=Gc(this.R,this.id+".transmit",function(){e.A=e.A|Fr|Gr});this.U=tb(a,"ChipSet");ec(b,this,Hr,this.ba);gc(b,this,Ir,this.ba);v(this)};
l.ri=function(a){if(!this.F){var b=Fc(this.na,"connection");if(b){var c=b.split("->");if(2==c.length){var d=pa(c[0]);if(d!=this.Ce)return;c=pa(c[1]);if(this.F=fb(c)){var e=this.F.exports;if(e){var f=e.connect;f&&f.call(this.F,this.N);if(this.aa=e.receiveData){this.N=a;this.W=e.receiveStatus;this.status("Connected "+this.Cd+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
l.Rb=function(a,b){if(!b)if(this.ri(this.N),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.Qb=function(a){return a?this.save():!0};l.reset=function(){Jr(this)};l.save=function(){var a=new Me(this),b=0,c=[];c[b++]=this.da;c[b++]=this.ja;c[b++]=this.G;c[b++]=this.L;c[b++]=this.D;c[b++]=this.J;c[b++]=this.Y;c[b++]=this.A;c[b++]=this.B;c[b]=this.H;a.set(0,c);return a.data()};l.restore=function(a){return Jr(this,a[0])};
function Jr(a,b){var c=0;b||(b=[0,0,Kr,0,Lr,0,0,Fr|Gr,a.pa,[]]);a.da=b[c++];a.ja=b[c++];a.G=b[c++];a.L=b[c++];a.D=b[c++];a.J=b[c++];a.Y=b[c++];a.A=b[c++];a.B=b[c++];a.H=b[c];return!0}l.we=function(a){if(null!=a)if("number"==typeof a)this.H.push(a);else if("string"==typeof a)for(var b=0;b<a.length;b++)this.H.push(a.charCodeAt(b));else this.H=this.H.concat(a);Mr(this);return!0};l.ak=function(a){var b=this.B;this.B&=~(Cr|Dr);a&32&&(this.B=this.B|Cr|Nr);a&64&&(this.B=this.B|Dr|Or);b!=this.B&&Pr(this)};
function Mr(a){0<a.H.length&&!(a.A&Qr)&&(a.da=a.H.shift(),a.A|=Qr,a.H.length&&a.R&&Uc(a.R,a.ra,1E3/(1843200/((a.G||1)<<7))|0));Pr(a)}l.nl=function(){var a=this.J&Rr?this.G&255:this.da;this.A&=~Qr;Mr(this);return a};l.$k=function(){return this.J&Rr?this.G>>8:this.L};l.al=function(){var a=this.D;this.D|=Lr;return a};l.bl=function(){return this.J};l.dl=function(){return this.Y};l.cl=function(){return this.A};l.il=function(){var a=this.B;this.B&=~(Nr|Or);return a};
l.Mm=function(a,b){if(this.J&Rr)this.G=this.G&-256|b;else{this.ja=b;this.A&=~(Fr|Gr);a=!1;this.aa&&this.aa.call(this.F,b)&&(a=!0);if(this.C){if(13==b)this.K=0;else if(8==b)this.C.value=this.C.value.slice(0,-1),0<this.K&&this.K--;else{var c;13!=b&&10!=b&&(c=qa[b]);c=c?"<"+c+">":String.fromCharCode(b);a=c.length;32>b&&1==a&&(a=0);9==b&&(a=this.ma||8,a-=this.K%a,this.ma&&(c=" ".slice(0,a)));!this.K&&a&&(10!=this.qa&&(c="\n"+c),this.la&&(c=String.fromCharCode(this.la)+
c));this.C.value+=c;this.C.scrollTop=this.C.scrollHeight;this.K+=a}this.qa=b;a=!0}else if(null!=this.I){if(10==b||1024<=this.I.length)this.qb(this.I),this.I="";10!=b&&(this.I+=String.fromCharCode(b));a=!0}a&&(this.R&&Uc(this.R,this.ua,1E3/(1843200/((this.G||1)<<7))|0),Pr(this))}};l.zm=function(a,b){this.J&Rr?this.G=this.G&255|b<<8:this.L=b};l.Am=function(a,b){this.J=b};
l.Bm=function(a,b){a=b^this.Y;this.Y=b;a&(Sr|Tr)&&this.W&&(a=0,this.N?(a|=b&Tr?32:0,a|=b&Sr?320:0):(a|=b&Tr?16:0,a|=b&Sr?1048576:0),this.W.call(this.F,a))};function Pr(a){var b=-1;a.A&Qr&&a.L&Ur?b=Vr:a.A&Fr&&a.L&Wr?b=Xr:a.B&(Nr|Or)&&a.L&Yr&&(b=Zr);0<=b?(a.D&=~(Lr|$r),a.D|=b,a.U&&a.M&&Ff(a.U,a.M,100)):(a.D|=Lr,a.U&&a.M&&Df(a.U,a.M))}
var Er="buffer",Kr=384,Ur=1,Wr=2,Yr=8,Lr=1,Vr=4,Xr=2,Zr=0,$r=6,Rr=128,Sr=1,Tr=2,Qr=1,Fr=32,Gr=64,Nr=1,Or=2,Cr=16,Dr=32,Hr={0:Br.prototype.nl,1:Br.prototype.$k,2:Br.prototype.al,3:Br.prototype.bl,4:Br.prototype.dl,5:Br.prototype.cl,6:Br.prototype.il},Ir={0:Br.prototype.Mm,1:Br.prototype.zm,3:Br.prototype.Am,4:Br.prototype.Bm};Ma(function(){for(var a=cb(document,"pcx86","serial"),b=0;b<a.length;b++){var c=a[b],d=db(c),d=new Br(d);bb(d,c)}});
function as(a){u.call(this,"Mouse",a);if(this.U=a.serial)this.W="SerialPort";this.J=a.scaleMouse;this.N=this.M=this.Wb=!1;this.F=[];this.D=[];v(this)}ca(as,u);l=as.prototype;l.kc=function(a,b,c,d){this.na=a;this.oa=b;this.R=c;this.Ea=d;this.J=Fc(a,"scaleMouse")||this.J;for(b=null;b=tb(a,"Video",b);)this.F.push(b)};
l.Rb=function(a,b){if(!b){if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;if(this.W&&!this.G){for(a=null;(a=tb(this.na,this.W,a))&&(!a.Wh||!(this.G=a.Wh(this.U,this,this.$j))););if(this.G)for(this.D=[],a=0;a<this.F.length;a++)b=this.F[a],b.K=this,(b=b.F)&&this.D.push(b);else q(this.id+": "+this.W+" "+this.U+" unavailable")}this.Wb?bs(this):cs(this)}return!0};l.Qb=function(a){return a?this.save():!0};l.reset=function(){ds(this)};
l.save=function(){var a=new Me(this),b=0,c=[];c[b++]=this.Wb;c[b++]=this.A;c[b++]=this.B;c[b++]=this.H;c[b++]=this.I;c[b++]=this.K;c[b++]=this.L;c[b]=this.C;a.set(0,c);return a.data()};l.restore=function(a){return ds(this,a[0])};function ds(a,b){var c=0;b||(b=[!1,-1,-1,0,0,!1,!1,0]);var d=b[c++];a.Wb=d;a.A=b[c++];a.B=b[c++];a.H=b[c++];a.I=b[c++];a.K=b[c++];a.L=b[c++];a.C=b[c];a.C&(Sr|Tr)&&(a.C=(a.C&Sr?1048576:0)|(a.C&Tr?16:0));return!0}l.Xe=function(a){this.M=a};
l.save=function(){var a=new Me(this),b=0,c=[];c[b++]=this.Wb;c[b++]=this.A;c[b++]=this.B;c[b++]=this.H;c[b++]=this.I;c[b++]=this.K;c[b++]=this.L;c[b]=this.C;a.set(0,c);return a.data()};l.restore=function(a){return ds(this,a[0])};function ds(a,b){var c=0;b||(b=[!1,-1,-1,0,0,!1,!1,0]);var d=b[c++];a.Wb=d;a.A=b[c++];a.B=b[c++];a.H=b[c++];a.I=b[c++];a.K=b[c++];a.L=b[c++];a.C=b[c];a.C&(Sr|Tr)&&(a.C=(a.C&Sr?1048576:0)|(a.C&Tr?16:0));return!0}l.Ye=function(a){this.M=a};
function bs(a){if(!a.N)for(var b=0;b<a.D.length;b++)es(a,a.D[b])&&(a.N=!0)}function cs(a){if(a.N)for(var b=0;b<a.D.length;b++){var c=a.D[b];c&&(c.style.cursor="auto")}}function es(a,b){return b?(b.addEventListener("mousemove",function(b){fs(a,b)},!1),b.addEventListener("mousedown",function(b){fs(a,b,!0)},!1),b.addEventListener("mouseup",function(b){fs(a,b,!1)},!1),b.style.cursor="none",!0):!1}
function fs(a,b,c){if(void 0!==c){var d;!(d=!1!==a.M)&&(d=a.F.length)&&(d=a.F[0],d=d.pd?d.Md(!0):!1);d||(a.M=null);a.ie(b.button,c)}else{if(0>a.A||0>a.B)a.A=b.screenX,a.B=b.screenY;a.M?(c=b.movementX||b.mozMovementX||b.webkitMovementX||0,d=b.movementY||b.mozMovementY||b.webkitMovementY||0):(c=b.screenX-a.A,d=b.screenY-a.B);a.A=b.screenX;a.B=b.screenY;a.ng(c,d,a.A,a.B)}}
l.ie=function(a,b){if(this.Wb&&this.R&&this.R.X.cb)switch(a){case oq:this.K!=b&&(this.K=b,gs(this));break;case hs:this.L!=b&&(this.L=b,gs(this))}};l.ng=function(a,b){this.Wb&&this.R&&this.R.X.cb&&(a=Math.round(Math.abs(a)*this.J)*Math.sign(a)||Math.sign(a),b=Math.round(Math.abs(b)*this.J)*Math.sign(b)||Math.sign(b),a||b)&&(this.H=a,this.I=b,gs(this))};function gs(a){a.G.af([64|(a.K?32:0)|(a.L?16:0)|(a.I&192)>>4|(a.H&192)>>6,a.H&63,a.I&63]);a.H=a.I=0}
l.$j=function(a){var b=1048592==(a&1048592);if(b){if(!this.Wb){var c=!1;this.C&16||(this.reset(),c=!0);this.C&1048576||(c=!0);c&&this.G.af([is,is]);bs(this);this.Wb=b}}else this.Wb&&(cs(this),this.Wb=b);this.C=a};var is=77,oq=0,hs=2;Ma(function(){for(var a=cb(document,"pcx86","mouse"),b=0;b<a.length;b++){var c=a[b],d=db(c),d=new as(d);bb(d,c)}});
l.ie=function(a,b){if(this.Wb&&this.R&&this.R.X.cb)switch(a){case oq:this.K!=b&&(this.K=b,gs(this));break;case hs:this.L!=b&&(this.L=b,gs(this))}};l.ng=function(a,b){this.Wb&&this.R&&this.R.X.cb&&(a=Math.round(Math.abs(a)*this.J)*Math.sign(a)||Math.sign(a),b=Math.round(Math.abs(b)*this.J)*Math.sign(b)||Math.sign(b),a||b)&&(this.H=a,this.I=b,gs(this))};function gs(a){a.G.we([64|(a.K?32:0)|(a.L?16:0)|(a.I&192)>>4|(a.H&192)>>6,a.H&63,a.I&63]);a.H=a.I=0}
l.$j=function(a){var b=1048592==(a&1048592);if(b){if(!this.Wb){var c=!1;this.C&16||(this.reset(),c=!0);this.C&1048576||(c=!0);c&&this.G.we([is,is]);bs(this);this.Wb=b}}else this.Wb&&(cs(this),this.Wb=b);this.C=a};var is=77,oq=0,hs=2;Ma(function(){for(var a=cb(document,"pcx86","mouse"),b=0;b<a.length;b++){var c=a[b],d=db(c),d=new as(d);bb(d,c)}});
function js(a,b,c){u.call(this,"Disk",{id:a.Cd+".disk"+ja(++ks,4)});this.controller=a;this.wa=a.wa;this.qb=a.qb;this.na=a.na;this.Ea=a.Ea;this.B=b;this.Pc=b.name;this.me=b.me;this.Cf=this.C=!1;ls(this,c,b.kb,b.$a,b.Xa,b.ob);this.G=[];this.J=[];this.D=null;this.L=0;this.K=!1;v(this)}ca(js,u);l=js.prototype;l.kc=function(a,b,c,d){this.Ea=d};l.Rb=function(a,b){b||!this.Cf||this.C||(v(this,!1),this.load(this.Pc,this.F,null,this.mk,this));return!0};l.mk=function(){v(this,!0)};
l.Qb=function(a,b){if(this.C){var c,d=0;if(this.K&&!Xa("Disk writes are still in progress, shut down anyway?"))return!1;for(;c=ms(this,!1);)if(d=c[0]){this.wa('Unable to save "'+this.Pc+'" (error '+d+")");break}b&&this.C&&(b="action=close&volume="+this.F,b+="&machine="+ns(this.controller),b+="&user="+os(this.controller),wa(xa()+"/api/v1/disk?"+b,null,!0),this.C=!1);!d&&a&&this.wa(this.Pc+" saved")}return!0};
function ls(a,b,c,d,e,f){a.mode=b;a.kb=c;a.$a=d;a.Xa=e;a.ob=f;a.A=[];if("preload"!=a.mode){b=Array(a.kb);for(c=0;c<b.length;c++){d=Array(a.$a);for(e=0;e<d.length;e++){f=Array(a.Xa);for(var g=1;g<=f.length;g++)f[g-1]=ps(null,c,e,g,a.ob,"local"==a.mode?0:null);d[e]=f}b[c]=d}a.A=b}a.I=null}
@ -621,14 +622,14 @@ function Ds(a,b){if(a){if("string"==typeof a)try{a=eval("("+a+")")}catch(d){q("F
l.Rb=function(a,b){if(!b){if(!a){if(this.reset(),this.na.W){this.B=[];for(a=0;a<this.A.length;a++)Ms(this,a,!0);Ls(this,!0)}}else if(!this.restore(a))return!1;if(a=this.ia.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;b<this.N;b++){var c=document.createElement("option");c.value=b;c.text=String.fromCharCode(65+b)+":";a.appendChild(c)}0<this.N&&(a.value="0",Fs(this,0))}}return!0};l.Qb=function(a){return a?this.save():!0};l.reset=function(){Hs(this)};
l.save=function(){var a=new Me(this);a.set(0,Ns(this));return a.data()};l.restore=function(a){return Hs(this,a[0])};
function Hs(a,b){var c=0,d,e=!0;b||(b=[0,0,Os,Array(9),0,0,0,[]]);a.Na=b[c++];c++;a.Z=b[c++];a.G=b[c++];a.D=b[c++];a.C=b[c++];a.I=b[c++];var f=b[c++];d=b[c++];null!=d&&(a.B=d);void 0===a.A&&(a.N=4,a.U&&(a.N=+bk(a.U,tj,void 0)),a.A=Array(4));for(d=0;d<a.A.length;d++){var g=a.A[d];if(void 0===g){var g=a.A[d]={},h;if(a.U)a:{h=a.U;if(d<+bk(h,tj,void 0)){if(!h.L){h=360;break a}if(d<h.L.length){h=h.L[d];break a}}h=0}else h=0;switch(h){case 160:case 180:g.$a=1;default:g.kb=40;g.Xa=9;break;case 720:g.kb=
80;g.Xa=9;break;case 1200:g.kb=80;g.Xa=15;break;case 1440:g.kb=80,g.Xa=18}}var k=a,m=d,r=f[d],y=0;h=!0;g.Na=m;g.Kd=g.le=!1;g.qe=null;r||(r=[Ps,!0,0,2,0]);"boolean"==typeof r[1]&&(r[1]=[Qs,g.kb||40,g.$a||r[3],g.Xa||9,g.ob||512,r[1],g.Kf,g.Oe,g.Pe]);g.lb=r[y++];var t=r[y++];g.name=t[0];g.kb=t[1];g.$a=t[2];g.Xa=t[3];g.ob=t[4];g.me=t[5];(g.Kf=t[6])?(g.Oe=t[7],g.Pe=t[8]):(g.Kf=g.kb,g.Oe=g.$a,g.Pe=g.Xa);g.Wa=r[y++];g.vd=r[y++];g.yb=r[y++];g.vd=100<=g.vd?g.vd-100:g.vd-g.yb;g.bb=r[y++];g.wd=r[y++];g.xb=r[y++];
80;g.Xa=9;break;case 1200:g.kb=80;g.Xa=15;break;case 1440:g.kb=80,g.Xa=18}}var k=a,m=d,r=f[d],y=0;h=!0;g.Na=m;g.Kd=g.le=!1;g.qe=null;r||(r=[Ps,!0,0,2,0]);"boolean"==typeof r[1]&&(r[1]=[Qs,g.kb||40,g.$a||r[3],g.Xa||9,g.ob||512,r[1],g.Kf,g.Pe,g.Qe]);g.lb=r[y++];var t=r[y++];g.name=t[0];g.kb=t[1];g.$a=t[2];g.Xa=t[3];g.ob=t[4];g.me=t[5];(g.Kf=t[6])?(g.Pe=t[7],g.Qe=t[8]):(g.Kf=g.kb,g.Pe=g.$a,g.Qe=g.Xa);g.Wa=r[y++];g.vd=r[y++];g.yb=r[y++];g.vd=100<=g.vd?g.vd-100:g.vd-g.yb;g.bb=r[y++];g.wd=r[y++];g.xb=r[y++];
g.Ra=r[y++];g.Va=null;g.sa||(g.Wd="");var z=r[y++];102==z&&(z=!1);"boolean"==typeof z?(t=r[y++],r=r[y],z?(y=k.A[m],Ms(k,m,!0,!0),y.le=!0,m=new js(k,y,"preload"),k.fi(y,m,t,r,!0)):Rs(k,m,t,r,!0)?g.sa&&r&&Ss(k,t,r,g.sa):v(k,!1)):void 0!==z&&g.sa&&0>g.sa.restore(z)&&(h=!1);h&&g.sa&&void 0!==g.Ra&&(g.Va=g.sa.seek(g.yb,g.Wa,g.bb));h||(e=!1)}a.H=b[c++]||0;a.F=b[c]||Ts;return e}
function Ns(a){var b=0,c=[];c[b++]=a.Na;c[b++]=0;c[b++]=a.Z;c[b++]=a.G;c[b++]=a.D;c[b++]=a.C;c[b++]=a.I;for(var d=b++,e=0,f=[],g=0;g<a.A.length;g++){var h=e++,k=a.A[g],m=0,r=[];r[m++]=k.lb;r[m++]=[k.name,k.kb,k.$a,k.Xa,k.ob,k.me,k.Kf,k.Oe,k.Pe];r[m++]=k.Wa;r[m++]=k.vd+100;r[m++]=k.yb;r[m++]=k.bb;r[m++]=k.wd;r[m++]=k.xb;r[m++]=k.Ra;r[m++]=k.le;r[m++]=k.Mj;r[m]=k.Wd;f[h]=r}c[d]=f;d=b++;for(e=0;e<a.A.length;e++)f=a.A[e],f.sa&&Us(a,f.Wd,f.sa);c[d]=a.B;c[b++]=a.H;c[b]=a.F;return c}
function Ns(a){var b=0,c=[];c[b++]=a.Na;c[b++]=0;c[b++]=a.Z;c[b++]=a.G;c[b++]=a.D;c[b++]=a.C;c[b++]=a.I;for(var d=b++,e=0,f=[],g=0;g<a.A.length;g++){var h=e++,k=a.A[g],m=0,r=[];r[m++]=k.lb;r[m++]=[k.name,k.kb,k.$a,k.Xa,k.ob,k.me,k.Kf,k.Pe,k.Qe];r[m++]=k.Wa;r[m++]=k.vd+100;r[m++]=k.yb;r[m++]=k.bb;r[m++]=k.wd;r[m++]=k.xb;r[m++]=k.Ra;r[m++]=k.le;r[m++]=k.Mj;r[m]=k.Wd;f[h]=r}c[d]=f;d=b++;for(e=0;e<a.A.length;e++)f=a.A[e],f.sa&&Us(a,f.Wd,f.sa);c[d]=a.B;c[b++]=a.H;c[b]=a.F;return c}
function Ls(a,b){b||(a.J=0);for(var c in a.M){var d=a.M[c],e;if(!(e=d.path))a:{if(e=d.name){var f=a.ia.listDisks;if(f&&f.options)for(var g=0;g<f.options.length;g++){var h=f.options[g];if(h.text==e){e=h.value;break a}}}e=""}e&&(f=c.charCodeAt(0)-65,0<=f&&f<a.A.length?!Rs(a,f,d.name||Vs(a,e)||ka(e,!0),e,!0)&&b&&v(a,!1):a.wa("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")"))}return!!a.J}
l.xi=function(){var a=this.ia.listDisks;return a?Gs(this,a.options[a.selectedIndex].text,a.value):!1};
function Gs(a,b,c,d){var e,f=a.ia.listDrives;if(f&&!isNaN(e=ia(f.value,10))&&0<=e&&e<a.A.length){if(!c)return Ms(a,e),!0;if("?"==c)return a.wa('Use "Choose File" and "Mount" to select and load a local disk.'),!1;if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return!1;b=ka(c)}for(;0>Rs(a,e,b,c,!1,d);){if(!window.confirm("Click OK to reload the original disk and discard any changes."))return!1;var f=a,g=c,h;for(h=0;h<f.B.length;h++)if(f.B[h][1]==g){f.B.splice(h,1);
break}Ms(a,e,!1,!0)}return!0}a.wa("Unable to load the selected drive");return!1}function Rs(a,b,c,d,e,f){var g=a.A[b];if(d&&(d=d.replace("/disks/pc/","/disks/pcx86/"),g.Wd.toLowerCase()!=d.toLowerCase())){Ms(a,b,e,!0);if(g.Kd)return a.wa("Drive "+b+" busy"),0;g.Kd=!0;e&&(g.Jd=!0,a.J++);g.le=!!f;return(new js(a,g,"preload")).load(c,d,f,a.fi)?1:0}return-1}
l.fi=function(a,b,c,d,e){var f;a.Kd=!1;b&&(f=b.info(),b&&f[0]>a.kb||f[1]>a.$a)&&(this.wa('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.Na)),b=null);b?(a.sa=b,a.Mj=c,a.Wd=d,Vs(this,d)||Ks(this,c,d),Ss(this,c,d,b),f=b.info(),this.H|=Ws,a.qe||this.wa('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.Na),a.Jd||e),a.Kf=f[0],a.Oe=f[1],a.Pe=f[2],this.na&&Tc(this.na)):a.le=!1;a.Jd&&(a.Jd=!1,--this.J||v(this));Fs(this,a.Na);a.qe&&(a.qe(),a.qe=null)};
l.fi=function(a,b,c,d,e){var f;a.Kd=!1;b&&(f=b.info(),b&&f[0]>a.kb||f[1]>a.$a)&&(this.wa('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.Na)),b=null);b?(a.sa=b,a.Mj=c,a.Wd=d,Vs(this,d)||Ks(this,c,d),Ss(this,c,d,b),f=b.info(),this.H|=Ws,a.qe||this.wa('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.Na),a.Jd||e),a.Kf=f[0],a.Pe=f[1],a.Qe=f[2],this.na&&Tc(this.na)):a.le=!1;a.Jd&&(a.Jd=!1,--this.J||v(this));Fs(this,a.Na);a.qe&&(a.qe(),a.qe=null)};
function Ks(a,b,c,d){if((a=a.ia.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}function Vs(a,b){if((a=a.ia.listDisks)&&a.options)for(var c=0;c<a.options.length;c++){var d=a.options[c];if(d.value==b)return d.text}return null}
function Fs(a,b){if(0<=b&&b<a.A.length){var c=a.A[b],d=a.ia.listDisks;a=a.ia.listDrives;if(d&&a&&d.options&&a.options&&(a=ia(a.value,10),c=c.le?"?":c.Wd,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}
function Es(a){var b=a.ia.listDisks,c=a.ia.descDisk,d=b.options[b.selectedIndex];if(c&&d){b={};if(d=d.getAttribute("data-value"))try{b=eval("("+d+")")}catch(e){q(a.type+" option error: "+e.message)}a=b.desc;void 0===a&&(a="");b=b.href;void 0!==b&&(a='<a href="'+b+'" target="_blank">'+a+"</a>");c.innerHTML=a}}l.rn=function(a){for(var b=0;b<this.A.length;b++){var c=this.A[b];if(c&&c.Kd)return c.qe||(c.qe=a),!1}return!0};
@ -639,7 +640,7 @@ null,h.lb=mt,this.U&&(ul(this.U,2,this,"dmaRead",h),ql(this.U,2)))):(h=c,h.lb=kt
1;g=0;c.lb=mt;c.sa&&(c.Va=c.sa.seek(c.yb,c.Wa,c.bb))?g=c.Va.length>>8:c.lb=kt|lt;ot(this,c,a,b,d,e,f,g);b=!0;break;case vt:d=ct(this);b=d>>2&1;this.Na=d&3;c=this.A[this.Na];d=c.yb;e=c.Wa=b;f=1;g=ct(this);c.xb=128<<g;c.wd=ct(this);ct(this);c.Xh=ct(this);h=c;h.lb=kt|lt;h.sa&&(h.Va=null,h.lb=mt,this.U&&(h.he=0,h.Gc=Array(4),h.fg=!0,h.vf=0,ul(this.U,2,this,"dmaFormat",h),ql(this.U,2),h.fg=!1));ot(this,c,a,b,d,e,f,g);b=!0;break;case wt:d=ct(this),this.Na=d&3,c=this.A[this.Na],c.Wa=d>>2&1,d=ct(this),c.yb+=
d-c.vd,0>c.yb&&(c.yb=0),c.yb>=c.kb&&(c.yb=c.kb-1),c.vd=d,c.lb=qt,c.yb||(c.lb|=rt),et(this),b=!0}0<this.C&&(this.Z=this.Z|Zs|$s);this.I&Ys&&(!c||c.lb&kt||!b||this.U&&Ff(this.U,6))}};l.Wk=function(){var a=this.H;this.H&=~Ws;return a};l.qm=function(a,b){this.F=b};function ot(a,b,c,d,e,f,g,h){et(a);gt(a,b.Na|b.Wa<<2|b.lb&tt);gt(a,(b.lb&xt)>>>8);gt(a,(b.lb&yt)>>>16);var k=0;if(e!=b.yb||f!=b.Wa)k=g=1;c&zt&&(f^=k,d||(k=0));gt(a,e+k);gt(a,f);gt(a,g);gt(a,h)}function ct(a){var b=a.G[a.D];a.D++;return b}
function et(a){a.D=a.C=0}function gt(a,b){a.G[a.C++]=b}l.Uj=function(a,b,c){void 0===b||0>b?this.ve(a,c):c(-1,!1)};l.Vj=function(a,b){return void 0!==b&&0<=b?At(a,b):-1};l.ik=function(a,b){if(void 0!==b&&0<=b)a:if(a.lb)a=-1;else{a.Gc[a.he++]=b;if(a.he==a.Gc.length){a.yb=a.Gc[0];a.Wa=a.Gc[1];a.bb=a.Gc[2];a.xb=128<<a.Gc[3];for(var c=a.he=0;c<a.xb;c++)if(0>At(a,a.Xh)){a=-1;break a}a.vf++}a.vf>=a.wd&&(b=-1);a=b}else a=-1;return a};
l.ve=function(a,b){var c=-1,d=null,e=0;if(!a.lb&&a.sa){do{if(a.Va&&(e=a.Ra,0<=(c=a.sa.read(a.Va,a.Ra++)))){d=a.Va;break}a.Va=a.sa.seek(a.yb,a.Wa,a.bb);if(!a.Va){a.lb=Bt|lt;break}a.Ra=0;Ct(a)}while(1)}b(c,!1,d,e)};function At(a,b){if(a.lb||!a.sa)return-1;do{if(a.Va&&a.sa.write(a.Va,a.Ra++,b))break;a.Va=a.sa.seek(a.yb,a.Wa,a.bb);if(!a.Va){a.lb=Dt|lt;b=-1;break}a.Ra=0;Ct(a)}while(1);return b}function Ct(a){a.bb++;a.bb>=a.Pe+1&&(a.bb=1,a.Wa++,a.Wa>=a.Oe&&(a.Wa=0,a.yb++))}
l.ve=function(a,b){var c=-1,d=null,e=0;if(!a.lb&&a.sa){do{if(a.Va&&(e=a.Ra,0<=(c=a.sa.read(a.Va,a.Ra++)))){d=a.Va;break}a.Va=a.sa.seek(a.yb,a.Wa,a.bb);if(!a.Va){a.lb=Bt|lt;break}a.Ra=0;Ct(a)}while(1)}b(c,!1,d,e)};function At(a,b){if(a.lb||!a.sa)return-1;do{if(a.Va&&a.sa.write(a.Va,a.Ra++,b))break;a.Va=a.sa.seek(a.yb,a.Wa,a.bb);if(!a.Va){a.lb=Dt|lt;b=-1;break}a.Ra=0;Ct(a)}while(1);return b}function Ct(a){a.bb++;a.bb>=a.Qe+1&&(a.bb=1,a.Wa++,a.Wa>=a.Pe&&(a.Wa=0,a.yb++))}
var Qs="Floppy Drive",Xs=4,Ys=8,$s=16,Zs=64,Os=128,dt=3,ft=4,it=5,jt=6,pt=7,st=8,ut=10,vt=13,wt=15,at=31,zt=128,mt=0,kt=8,qt=32,lt=64,Ps=192,tt=255,nt=512,Bt=1024,Dt=8192,xt=65280,yt=16711680,rt=268435456,ht=-16777216,Ws=128,Ts=0;ba={};
var bt={3:{fd:3,xd:0,name:ba.yo},4:{fd:2,xd:1,name:ba.wo},5:{fd:9,xd:7,name:ba.Do},6:{fd:9,xd:7,name:ba.so},7:{fd:2,xd:0,name:ba.uo},8:{fd:1,xd:2,name:ba.xo},10:{fd:2,xd:7,name:ba.to},13:{fd:6,xd:7,name:ba.oo},15:{fd:3,xd:0,name:ba.vo}},Is={1009:Cs.prototype.Vk,1012:Cs.prototype.Xk,1013:Cs.prototype.Uk,1015:Cs.prototype.Wk},Js={1010:Cs.prototype.sm,1013:Cs.prototype.rm,1015:Cs.prototype.qm};
Ma(function(){for(var a=cb(document,"pcx86","fdc"),b=0;b<a.length;b++){var c=a[b],d=db(c),d=new Cs(d);bb(d,c)}});function Z(a){u.call(this,"HDC",a);this.dmaRead=Z.prototype.Wj;this.dmaWrite=Z.prototype.Xj;this.dmaWriteBuffer=Z.prototype.jk;this.dmaWriteFormat=Z.prototype.kk;this.Y=[];this.ja=a.drives;this.L="at"==a.type;this.ua=!Ea("Mobi")&&window&&"FileReader"in window}ca(Z,u);l=Z.prototype;
@ -660,7 +661,7 @@ l.Zl=function(a,b){iu(this,b&255);iu(this,b>>8&255)};l.Dk=function(){return this
l.Hk=function(){var a=this.Z;this.Z&Mt&&(this.Z&=~cu);return a};l.Wl=function(a,b){this.fa=b;this.U&&Df(this.U,14);lu(this)};l.am=function(a,b){this.K&mu&&!(b&mu)&&(this.H=nu);this.K=b};
function lu(a){var b=!1,c=a.fa,d=a.N&ku?1:0,e=a.N&ou,f=a.ba|(a.aa&pu)<<8,g=a.da,h=a.I||256;a.Na=-1;a.B=null;a.H=qu;a.Z=Mt|eu;var k=a.A[d];k?(k.Dd=f,k.Wa=e,k.bb=g,k.xb=h*k.ob,c=c>=ru?c:c&su,k.Va=null,k.Ra=0,k.errorCode=0,a.Na=d,a.B=k):c=-1;switch(c&su){case tu:b=!0;break;case uu:a.Z=cu;a.ve(k,function(b){0<=b&&a.U?(du(a),a.Z=Mt|eu|fu):(a.Z=gu,a.H=hu)},!1);break;case vu:a.Z=fu;break;case wu:b=!0;break;case xu:b=!0;break;case ru:a.H=nu;b=!0;break;case yu:k.$a=e+1,k.Xa=h,b=!0}b&&du(a)}
function du(a){!a.U||a.K&zu||Ff(a.U,14,120)}
function au(a){a.D=0;var b=Au(a),c=Au(a),d=c&32,e=d>>5,f=c&31,g=Au(a),h=Au(a),k=g<<2&768|h,m=g&63,r=Au(a),y=Au(a),t=a.A[e];t&&(t.Dd=k,t.Wa=f,t.bb=m,t.xb=r*t.ob);switch(b){case Bu:Cu(a,t?t.errorCode:Du);Eu(a,c);Eu(a,g);Eu(a,h);Eu(a,Fu|d);b=-1;break;case Zt:for(c=0;0<=(b=Au(a));)t&&c<t.ce.length&&(t.ce[c++]=b);t&&Tt(a,t);b=Fu;t||a.M!=e||(a.M=-1,b=Gu);Cu(a,b|d);b=-1;break;case Hu:case Iu:Cu(a,Fu|d),b=-1}if(0<=b)switch(void 0===t?b=-1:(t.errorCode=Ot,t.Nj=0),b){case Ju:Cu(a,Fu|d);break;case Ku:t.Fe=y;
function au(a){a.D=0;var b=Au(a),c=Au(a),d=c&32,e=d>>5,f=c&31,g=Au(a),h=Au(a),k=g<<2&768|h,m=g&63,r=Au(a),y=Au(a),t=a.A[e];t&&(t.Dd=k,t.Wa=f,t.bb=m,t.xb=r*t.ob);switch(b){case Bu:Cu(a,t?t.errorCode:Du);Eu(a,c);Eu(a,g);Eu(a,h);Eu(a,Fu|d);b=-1;break;case Zt:for(c=0;0<=(b=Au(a));)t&&c<t.ce.length&&(t.ce[c++]=b);t&&Tt(a,t);b=Fu;t||a.M!=e||(a.M=-1,b=Gu);Cu(a,b|d);b=-1;break;case Hu:case Iu:Cu(a,Fu|d),b=-1}if(0<=b)switch(void 0===t?b=-1:(t.errorCode=Ot,t.Nj=0),b){case Ju:Cu(a,Fu|d);break;case Ku:t.Ge=y;
Cu(a,Fu|d);break;case Lu:Cu(a,Fu|d);break;case Mu:Nu(a,t,function(b){Cu(a,b|d)});break;case Ou:Pu(a,t,function(b){Cu(a,b|d)});break;case Qu:Ru(a,t,function(b){Cu(a,b|d)});break;default:Cu(a,Gu|d)}}function Au(a){var b=-1;a.D<a.C&&(b=a.G[a.D++]);return b}function Cu(a,b){a.D=a.C=0;void 0!==b&&Eu(a,b);a.U&&Ff(a.U,5);a.Z|=Vt}function Eu(a,b){a.G[a.C++]=b}l.Wj=function(a,b,c){void 0===b||0>b?this.ve(a,c):c(-1,!1)};l.Xj=function(a,b){return void 0!==b&&0<=b?ju(a,b):-1};
l.jk=function(a,b){void 0!==b&&0<=b?(a.Ra<a.de.length?a.de[a.Ra++]=b:(a.errorCode=Su,b=-1),a=b):a=-1;return a};l.kk=function(a,b){if(void 0!==b&&0<=b)a:if(a.errorCode)a=-1;else{a.Gc[a.he++]=b;if(a.he==a.Gc.length){a.Dd=a.Gc[0];a.Wa=a.Gc[1];a.bb=a.Gc[2];a.xb=128<<a.Gc[3];for(var c=a.he=0;c<a.xb;c++)if(0>ju(a,a.Xh)){a=-1;break a}a.vf++}a.vf>=a.wd&&(b=-1);a=b}else a=-1;return a};
function Nu(a,b,c){b.errorCode=Du;if(b.sa&&(b.Va=null,a.U)){b.errorCode=Ot;ul(a.U,3,a,"dmaRead",b);ql(a.U,3,function(a){a||b.errorCode!=Ot||(b.errorCode=Du);c(b.errorCode?Gu:Fu)});return}c(b.errorCode?Gu:Fu)}function Pu(a,b,c){b.errorCode=Du;if(b.sa&&(b.Va=null,a.U)){b.errorCode=Ot;ul(a.U,3,a,"dmaWrite",b);ql(a.U,3,function(a){a||(b.errorCode==Ot&&(b.errorCode=Du),b.errorCode==Su&&(b.errorCode=Ot));c(b.errorCode?Gu:Fu)});return}c(b.errorCode?Gu:Fu)}
@ -674,26 +675,26 @@ Gt={496:Z.prototype.Zl,497:Z.prototype.dm,498:Z.prototype.bm,499:Z.prototype.cm,
function Uu(a,b,c){u.call(this,"Computer",a);var d=this;Vu(this,b);this.U=Fc(this,"autoPower",a);this.D=+Fc(this,"diagnostics",a);0<=this.D&&2>=this.D||(this.D=1);this.F=0;this.ma=a.busWidth||a.buswidth;this.A=Wu;this.M=null;this.J=this.fa=!1;this.pa=Fc(this,"url")||"";this.ra=(Math.random()+.1).toString(36).substr(2,12);this.B=Xu(this);if(this.R=ab("CPU",this.id)){this.Ea=ab("Debugger",this.id);this.C=[];for(b=null;b=tb(this,"Video",b);)this.C.push(b);this.oa=new Gb({id:this.Cd+".bus",busWidth:this.ma},
this.R,this.Ea);var e,f=eb(this.id);this.ba=(this.I=ab("Panel",this.id))&&this.I.ia.print;this.ja=this.wa;this.la=this.print;this.qa=this.qb;this.ba&&(this.ja=this.I.wa,this.la=this.I.print,this.qa=this.I.qb);for(b=0;b<f.length;b++)e=f[b],e.wa=function(a,b,c){Yu(d,a);return d.ja.call(this,a,b,c)}.bind(e),e.print=function(a){return d.la.call(this,a)}.bind(e),e.qb=function(a,b,c){Yu(d,a,b);return d.qa.call(this,a,b,c)}.bind(e);this.H=0;!this.ba&&this.D&&Zu(this);this.qb("PCx86 v1.36.2\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");
for(b=0;b<f.length;b++)e=f[b],e.kc&&e.kc(this,this.oa,this.R,this.Ea);Gc(this.R,this.id,function(){bd(d)},1E3/$u);b=null;e=Fc(this,"resume");void 0!==e&&(1<e.length?b=this.L=e:this.A=parseInt(e,10));e=!1;f=Ia("state");f||(e=!0,f=Fc(this,"state",a));f&&(b=this.Y=f,e||(this.J=!0,this.A=Wu),this.A&&(this.N=new Me(this,"1.36.2"),this.N.load()?b=null:delete this.N));!b&&this.A&&(b=av(this))&&(this.J=!0);if(this.aa=b){var g="Loading "+this.aa+"...";wa(this.aa,null,!0,function(a,b,c){c?(d.L=null,d.J=!1,
d.wa("Unable to load machine state from server (error "+c+(b?": "+pa(b):"")+")")):(d.M=b,d.fa=!0);v(d)},function(){d.qb(g,mb.ae)})}else v(this);this.ia.power||(this.U=!0);!c&&this.U&&this.ye(this.ue)}else q("Unable to find CPU component")}ca(Uu,u);function Zu(a){if(!a.H)for(var b=0;b<a.C.length;b++){var c=a.C[b];c&&(c=c.Ef)&&(c.style.opacity="1",c.style.lineHeight="1",a.H++)}}
d.wa("Unable to load machine state from server (error "+c+(b?": "+pa(b):"")+")")):(d.M=b,d.fa=!0);v(d)},function(){d.qb(g,mb.ae)})}else v(this);this.ia.power||(this.U=!0);!c&&this.U&&this.ze(this.ue)}else q("Unable to find CPU component")}ca(Uu,u);function Zu(a){if(!a.H)for(var b=0;b<a.C.length;b++){var c=a.C[b];c&&(c=c.Ef)&&(c.style.opacity="1",c.style.lineHeight="1",a.H++)}}
function Yu(a,b,c){if(a.H)for(var d=0;d<a.C.length;d++){var e=a.C[d];e&&(e=e.Ef)&&(c!=mb.ae||"..."!=b.slice(-3)?Ya(e,b+"\n"):Za(e,b,b+"."))}}function ho(a){var b=a.D;3==a.D&&(a.D++,v(a));return!b}function Vu(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.K=b}function Fc(a,b,c){var d=Ia(b);void 0===d&&a.K&&(d=a.K[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}l=Uu.prototype;
l.ye=function(a,b){for(var c=this,d=eb(this.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:this;if(!ob(f)){ob(f,function(){c.ye(a,b)});return}}a.call(this,b)};function bv(a,b){var c=new Me(a,"1.36.2",cv);if(c.load()&&dv(c)){var d=c.get(ev),e=b?b.get(ev):"unknown";d!=e&&(a.wa("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}
l.ze=function(a,b){for(var c=this,d=eb(this.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:this;if(!ob(f)){ob(f,function(){c.ze(a,b)});return}}a.call(this,b)};function bv(a,b){var c=new Me(a,"1.36.2",cv);if(c.load()&&dv(c)){var d=c.get(ev),e=b?b.get(ev):"unknown";d!=e&&(a.wa("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}
l.ue=function(a){void 0===a&&(a=this.A||(this.M?fv:Wu));if(!this.F){this.F++;var b=!1,c=!1;this.da=!1;var d=this.N||new Me(this,"1.36.2");if(a==Oc)b=!0;else if(a>Wu){if(d.load(this.M)){this.G=new Me(this,"1.36.2",gv);this.G.load()&&(a!=fv&&hv(this,d)&&(a=iv),jv(this.G));this.G.set(ev,ra("Y-m-d H:i:s"));kv(this.G);var e=this.A&&!this.J;if(a==fv||Xa("Click OK to restore the previous PCx86 machine state.")){if(c=dv(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?d.load(g):("error"==f&&"no machine state"!=
g?(this.wa("Error: "+g),"unable to verify user"==g&&(Da(lv,""),this.B=null)):this.qb(f+": "+g),jv(d),d.load()?(c=dv(d),e=!0):c=!1))}e&&bv(this,c?d:null)}else a==iv&&d.clear()}else bv(this);delete this.M;delete this.N}e=eb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.R&&(c=mv(this,g,d,b,c));b=[d,a,c];a!=Oc?this.ye(this.ig,b):this.ig(b)}};
function mv(a,b,c,d,e){if(!b.X.Sb){b.X.Sb=!0;if(b.Rb){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/-[0-9]+\./i,"."))));"string"===typeof f&&(f=null);!b.Rb(f,d)&&f&&(b.wa("Unable to restore hardware state")&&(a.Y&&!a.fa?(c.clear(),a.A=Wu,window&&window.location.reload()):a.da=!0),b.Rb(null),e=!1)}b.X.Je=!0;if(!d&&b.ki)for(a=b.ki.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
l.ig=function(a){if(!this.X.Je){var b;a:{if(this.H){if(2==this.D){this.D++;this.qb("Press any key to continue...");b=!1;break a}for(b=0;b<this.C.length;b++){var c=this.C[b];if(c&&(c=c.Ef)){var d=za();c.style.opacity="0";c.style.lineHeight="0";if(0<=d.indexOf("MSIE")||0<=d.indexOf("Trident"))c.style.fontSize="0";c.value=""}}this.H=0}this.D=0;b=!0}if(!b){v(this,!1);this.ye(this.ig,a);return}this.X.Je=!0}b=a[0];c=0>a[1];a=a[2];if(d=this.ia.power)d.textContent="Shutdown";this.X.Sb=!0;this.R&&(mv(this,
g?(this.wa("Error: "+g),"unable to verify user"==g&&(Da(lv,""),this.B=null)):this.qb(f+": "+g),jv(d),d.load()?(c=dv(d),e=!0):c=!1))}e&&bv(this,c?d:null)}else a==iv&&d.clear()}else bv(this);delete this.M;delete this.N}e=eb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.R&&(c=mv(this,g,d,b,c));b=[d,a,c];a!=Oc?this.ze(this.ig,b):this.ig(b)}};
function mv(a,b,c,d,e){if(!b.X.Sb){b.X.Sb=!0;if(b.Rb){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/-[0-9]+\./i,"."))));"string"===typeof f&&(f=null);!b.Rb(f,d)&&f&&(b.wa("Unable to restore hardware state")&&(a.Y&&!a.fa?(c.clear(),a.A=Wu,window&&window.location.reload()):a.da=!0),b.Rb(null),e=!1)}b.X.Ke=!0;if(!d&&b.ki)for(a=b.ki.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
l.ig=function(a){if(!this.X.Ke){var b;a:{if(this.H){if(2==this.D){this.D++;this.qb("Press any key to continue...");b=!1;break a}for(b=0;b<this.C.length;b++){var c=this.C[b];if(c&&(c=c.Ef)){var d=za();c.style.opacity="0";c.style.lineHeight="0";if(0<=d.indexOf("MSIE")||0<=d.indexOf("Trident"))c.style.fontSize="0";c.value=""}}this.H=0}this.D=0;b=!0}if(!b){v(this,!1);this.ze(this.ig,a);return}this.X.Ke=!0}b=a[0];c=0>a[1];a=a[2];if(d=this.ia.power)d.textContent="Shutdown";this.X.Sb=!0;this.R&&(mv(this,
this.R,b,c,a),this.R.Gd());this.da&&(hv(this,b),b.clear());!c&&this.G&&(this.G.clear(),delete this.G);this.F=0;gb(this.Cd,Fc(this,"autoScript"))};function hv(a,b){if(!a.X.Yd){if(Xa("There may be a problem with your PCx86 machine.\n\nTo help us diagnose it, click OK to send this PCx86 machine state to http://www.pcjs.org.")){var c=a.B||"";b=b.toString();var d={app:"PCx86",ver:"1.36.2"};d.url=a.pa;d.user=c;d.type="bug";d.data=b;wa("http://www.pcjs.org/api/v1/report",d,!0)}return!0}return!1}
function nv(a,b,c){var d,e="none";if(a.F)return null;a.F--;var f=new Me(a,"1.36.2"),g=new Me(a,"1.36.2",cv),h=ra("Y-m-d H:i:s");g.set(ev,h);f.set(ev,h);f.set(ov,"1.36.2");f.set(pv,window?window.location.href:null);f.set(qv,za());a.R&&a.R.Qb&&(d=a.R.Qb(b,c),"object"===typeof d&&f.set(a.R.id,d),c&&(a.R.X.Sb=!1,!1===d&&(e=null)));for(var h=eb(a.id),k=0;k<h.length;k++){var m=h[k];m.X.Sb&&(m.Qb&&(d=m.Qb(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.X.Sb=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.B&&rv(a,
a.B,f.toString()),kv(g)&&kv(f)||(e=null,d=h=!0)):a.A&&(d=!0,h=a.A==sv),d&&f.clear(h)):e=f.toString());c&&(a.X.Sb=!1,b=a.ia.power)&&(b.textContent="Power");a.F=0;return e}l.reset=function(){this.oa&&this.oa.reset&&this.oa.reset();for(var a=eb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.oa&&c.reset&&c.reset()}};l.start=function(a,b){for(var c=eb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};
l.stop=function(a,b){for(var c=eb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
l.Ab=function(a,b,c){var d=this;switch(b){case "power":return this.ia[b]=c,c.onclick=function(){d.F||(d.X.Sb?nv(d,!1,!0):d.ye(d.ue))},!0;case "reset":return this.ia[b]=c,c.onclick=function(){if(d.X.Sb&&!d.F)if(d.R&&(d.R.X.Gd=d.R.X.cb),d.A&&!d.L){var a=d.X.Yd||!Xa("Click OK to reset this PCx86 machine and discard all disk modifications.");nv(d,a,!0);!a&&d.Y?window&&window.location.reload():(a||(d.W=!0),d.ue(Wu),d.W=!1)}else d.reset(),d.R&&d.R.Gd()},!0;case "save":if(ma(xa(),"pcjs.org"))c.parentNode.removeChild(c);
l.Ab=function(a,b,c){var d=this;switch(b){case "power":return this.ia[b]=c,c.onclick=function(){d.F||(d.X.Sb?nv(d,!1,!0):d.ze(d.ue))},!0;case "reset":return this.ia[b]=c,c.onclick=function(){if(d.X.Sb&&!d.F)if(d.R&&(d.R.X.Gd=d.R.X.cb),d.A&&!d.L){var a=d.X.Yd||!Xa("Click OK to reset this PCx86 machine and discard all disk modifications.");nv(d,a,!0);!a&&d.Y?window&&window.location.reload():(a||(d.W=!0),d.ue(Wu),d.W=!1)}else d.reset(),d.R&&d.R.Gd()},!0;case "save":if(ma(xa(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.ia[b]=c,c.onclick=function(){var a=Xu(d,!0);if(a){var b=!!(d.A&&!d.L||d.Y),c=nv(d,b);b?rv(d,a,c):d.wa("Resume disabled, machine state not saved")}},!0}return!1};
function Xu(a,b){var c=a.B;c||((c=Ca(lv),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=tv(a,c))||a.wa("The user ID is invalid.")):b&&a.wa("Browser local storage is not available"));return c}
function tv(a,b){a.B=null;b=wa(xa()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Da(lv,b.data),a.B=b.data)}catch(d){q(d.message+" ("+c+")")}return a.B}function av(a){var b=null;a.B&&(b=xa()+"/api/v1/user?req=load&user="+a.B+"&state="+uv(a,"1.36.2"));return b}
function rv(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=uv(a,"1.36.2");d.data=c;b=wa(xa()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.wa("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.wa(c),Da(lv,""),a.B=null)}}
function tb(a,b,c){a=eb(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}function Tc(a,b){if(a.C.length){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a=a.C[0];a.F&&a.F.focus();!b&&window&&window.scrollTo(c,d)}}
function bd(a,b){if(a.R){var c=a.R;if(c.ji&&(b||!c.X.cb||c.X.ei)){uf(c,"EAX",c.F);uf(c,"EBX",c.G);uf(c,"ECX",c.H);uf(c,"EDX",c.L);uf(c,"ESP",C(c));uf(c,"EBP",c.M);uf(c,"ESI",c.J);uf(c,"EDI",c.I);uf(c,"CS",c.fa.ha);uf(c,"DS",c.Ga.ha);uf(c,"SS",c.W.ha);uf(c,"ES",c.xa.ha);uf(c,"EIP",F(c));var d=wd(c);uf(c,"PS",d);uf(c,"V",d&2048);uf(c,"D",d&1024);uf(c,"I",d&512);uf(c,"T",d&256);uf(c,"S",d&128);uf(c,"Z",d&64);uf(c,"A",d&16);uf(c,"P",d&4);uf(c,"C",d&1);80386==c.ca&&(uf(c,"FS",c.rb.ha),uf(c,"GS",c.vb.ha),
uf(c,"CR0",c.pa),uf(c,"CR2",c.rd),uf(c,"CR3",c.Vc))}if(d=c.ia.speed)d.textContent=c.X.cb&&c.V.hd?c.V.hd.toFixed(2)+"Mhz":"Stopped"}for(c=0;c<a.C.length;c++)lq(a.C[c],b)}var gv="failsafe",cv="validate",ev="timestamp",ov="version",pv="url",qv="browser",lv="user",Oc=-1,Wu=0,fv=1,iv=2,sv=3,$u=2;Ma(function(){for(var a=cb(document,"pcx86-machine"),b=0;b<a.length;b++)for(var c=a[b],d=db(c),c=cb(c,"pcx86","computer"),e=0;e<c.length;e++){var f=c[e],g=db(f),g=new Uu(g,d,!0);bb(g,f);g.U&&g.ye(g.ue)}});
Na.show.push(function(){for(var a=cb(document,"pcx86","computer"),b=0;b<a.length;b++){var c=db(a[b]);if(c=ab("Computer",c.id))c.X.Yd=!1,c.X.Je&&!c.X.Sb&&c.ue(Oc)}});Na.exit.push(function(){for(var a=cb(document,"pcx86","computer"),b=0;b<a.length;b++){var c=db(a[b]);if(c=ab("Computer",c.id))c.X.Yd=!0,c.X.Sb&&nv(c,!(!c.A||c.L),!0)}});function Me(a,b,c){this.id=a.id;this.Ea=a.Ea;this.A="";this.state={};this.B=this.C=!1;this.key=uv(a,b,c);jv(this,a.Dj)}l=Me.prototype;
uf(c,"CR0",c.pa),uf(c,"CR2",c.rd),uf(c,"CR3",c.Vc))}if(d=c.ia.speed)d.textContent=c.X.cb&&c.V.hd?c.V.hd.toFixed(2)+"Mhz":"Stopped"}for(c=0;c<a.C.length;c++)lq(a.C[c],b)}var gv="failsafe",cv="validate",ev="timestamp",ov="version",pv="url",qv="browser",lv="user",Oc=-1,Wu=0,fv=1,iv=2,sv=3,$u=2;Ma(function(){for(var a=cb(document,"pcx86-machine"),b=0;b<a.length;b++)for(var c=a[b],d=db(c),c=cb(c,"pcx86","computer"),e=0;e<c.length;e++){var f=c[e],g=db(f),g=new Uu(g,d,!0);bb(g,f);g.U&&g.ze(g.ue)}});
Na.show.push(function(){for(var a=cb(document,"pcx86","computer"),b=0;b<a.length;b++){var c=db(a[b]);if(c=ab("Computer",c.id))c.X.Yd=!1,c.X.Ke&&!c.X.Sb&&c.ue(Oc)}});Na.exit.push(function(){for(var a=cb(document,"pcx86","computer"),b=0;b<a.length;b++){var c=db(a[b]);if(c=ab("Computer",c.id))c.X.Yd=!0,c.X.Sb&&nv(c,!(!c.A||c.L),!0)}});function Me(a,b,c){this.id=a.id;this.Ea=a.Ea;this.A="";this.state={};this.B=this.C=!1;this.key=uv(a,b,c);jv(this,a.Dj)}l=Me.prototype;
l.set=function(a,b){try{this.state[a]=b}catch(c){}};l.get=function(a){return this.state[a]||null};l.data=function(){return this.state};l.load=function(a){return a?(this.A=a,this.B=!0,this.C=!1,!0):this.B?!0:Aa()&&(a=Ca(this.key))?(this.A=a,this.B=!0):!1};function dv(a){var b=!0;if(!a.C)try{a.state=JSON.parse(a.A),a.C=!0}catch(c){q(c.message||c),b=!1}return b}
function kv(a){var b=!0;if(Aa()){var c=JSON.stringify(a.state);Da(a.key,c)||(q("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.state?JSON.stringify(this.state):this.A};function jv(a,b){a.A="";a.state={};a.B=a.C=!1;b&&a.set("parms",b)}
l.clear=function(a){jv(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}};function uv(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var vv=0;

File diff suppressed because one or more lines are too long