More support for saving entire machines

This commit is contained in:
Jeff Parsons 2016-02-16 18:11:15 -08:00
commit 6bffc69b25
8 changed files with 348 additions and 255 deletions

View file

@ -5,15 +5,15 @@ function ia(a){return"0x"+l(a,4)}function ja(a,b){var c=a,d=a.lastIndexOf("/");0
function pa(a,b,c){return c?(" "+a).slice(-b):(a+" ").slice(0,b)}function qa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}function ra(a,b,c){var d=0,e=a.length,f=0;for(void 0===c&&(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var g=d+e>>1,k;k=c(b,a[g]);0<k?d=g+1:(e=g,f=!k)}return f?d:~d}var sa=Date.now||function(){return+new Date};
function ta(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}var ua=[31,28,31,30,31,30,31,31,30,31,30,31];function wa(a,b){var c=0,d=1,e;for(e in a){if(d>=arguments.length)break;var f=a[e],g=arguments[d++],c=c&~f.qh|g<<f.shift&f.qh}return c}function xa(a,b){return(b&a.qh)>>a.shift}
function ya(a,b){var c;if(Array.prototype.indexOf)return a.indexOf(b,c);c=c||0;0>c&&(c+=a.length);0>c&&(c=0);for(var d=a.length;c<d;c++)if(c in a&&a[c]===b)return c;return-1}
function za(a,b,c,d,e,f){b=!!b;var g=0,k=null,q=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");b&&(q.onreadystatechange=function(){4===q.readyState&&(k=q.responseText,200==q.status||!q.status&&k.length&&"file:"==(window?window.location.protocol:"file:")||(g=q.status||-1),e&&(d?e.call(d,a,k,g,f):e(a,k,g,f)))});if(c){var r="",x;for(x in c)c.hasOwnProperty(x)&&(r&&(r+="&"),r+=x+"="+encodeURIComponent(c[x]));r=r.replace(/%20/g,"+");q.open("POST",a,b);q.setRequestHeader("Content-type",
"application/x-www-form-urlencoded");q.send(r)}else q.open("GET",a,b),q.send();c=[];b||(k=q.responseText,200!=q.status&&(g=q.status||-1),e&&(d?e.call(d,a,k,g,f):e(a,k,g,f)),c=[g,k]);return c}function Aa(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Ba(a){window&&window.alert(a)}function Ca(a){var b=!1;window&&(b=window.confirm(a));return b}var Ea=null;
function za(a,b,c,d,e,f){var g=0,k=null;if(resources&&(k=resources[a]))return e&&(d?e.call(d,a,k,g,f):e(a,k,g,f)),[g,k];var q=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");b&&(q.onreadystatechange=function(){4===q.readyState&&(k=q.responseText,200==q.status||!q.status&&k.length&&"file:"==(window?window.location.protocol:"file:")||(g=q.status||-1),e&&(d?e.call(d,a,k,g,f):e(a,k,g,f)))});if(c){var r="",x;for(x in c)c.hasOwnProperty(x)&&(r&&(r+="&"),r+=
x+"="+encodeURIComponent(c[x]));r=r.replace(/%20/g,"+");q.open("POST",a,!!b);q.setRequestHeader("Content-type","application/x-www-form-urlencoded");q.send(r)}else q.open("GET",a,!!b),q.send();c=[];b||(k=q.responseText,200!=q.status&&(g=q.status||-1),e&&(d?e.call(d,a,k,g,f):e(a,k,g,f)),c=[g,k]);return c}function Aa(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Ba(a){window&&window.alert(a)}function Ca(a){var b=!1;window&&(b=window.confirm(a));return b}var Ea=null;
function Fa(){if(null==Ea){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}Ea=a}return Ea}function Ga(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}function Ha(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}
function Ia(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}function Ka(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function Ma(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}var Na={init:[],show:[],exit:[]},Pa=!1,Qa=!0;function Ra(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Sa(a){Na.init.push(a)}
function Ta(a){if(Qa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){Ba("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.")}}function Ua(a){!Qa&&a?(Qa=!0,Pa&&Wa("init")):Qa=a}function Wa(a){Na[a]&&Ta(Na[a])}Ra("onload",function(){Pa=!0;Ta(Na.init)});Ra("onpageshow",function(){Ta(Na.show)});Ra(Ia("Opera")||Ia("iOS")?"onunload":"onbeforeunload",function(){Ta(Na.exit)});
function Xa(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.uk=b.comment;this.xk=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.se=this.id.substr(0,b),this.be=this.id.substr(b+1)):this.be=this.id;this[a]=c;this.ra={$e:!1,cd:!1,fh:!1,hc:!1,wd:!1};this.sg=null;this.ra.wd=!1;this.xa={};this.ma=null;this.wc=d||0;Ya.push(this)}var Za=void 0,$a={};
if(window){Za||(Za=window.location.search.substr(1));for(var bb,cb=/\+/g,db=/([^&=]+)=?([^&]*)/g;bb=db.exec(Za);)$a[decodeURIComponent(bb[1].replace(cb," "))]=decodeURIComponent(bb[2].replace(cb," "))}function fb(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
function gb(a,b){b||(b=Xa);a.prototype=fb(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var Ya=[],hb={};function ib(a,b,c){hb[a]&&(hb[a][b]||(hb[a][b]=[]),hb[a][b].push(c))}function jb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<Ya.length;b++){var d=Ya[b];a&&d.id.indexOf(a)||c.push(d)}return c}function kb(a,b){if(void 0!==a){var c;b&&0<(c=b.indexOf("."))&&(a=b.substr(0,c+1)+a);for(c=0;c<Ya.length;c++)if(Ya[c].id===a)return Ya[c]}return null}
function gb(a,b){b||(b=Xa);a.prototype=fb(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var Ya=[],hb={};function ib(a,b,c){hb[a]&&(hb[a][b]=c)}function jb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<Ya.length;b++){var d=Ya[b];a&&d.id.indexOf(a)||c.push(d)}return c}function kb(a,b){if(void 0!==a){var c;b&&0<(c=b.indexOf("."))&&(a=b.substr(0,c+1)+a);for(c=0;c<Ya.length;c++)if(Ya[c].id===a)return Ya[c]}return null}
function lb(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<Ya.length;d++)if(c)c==Ya[d]&&(c=null);else if(!(a!=Ya[d].type||b&&Ya[d].id.indexOf(b)))return Ya[d]}return null}function mb(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){Ba(c.message+" ("+a+")")}return b}function ob(a,b,c){var d;b&&(void 0===d&&(d="Panel"),(d=lb(d,a.id))&&(b=d.xa[b])&&a.Ub(null,c,b))}document&&!document.ELEMENT_NODE&&(document.ELEMENT_NODE=1);
function pb(a,b){for(var c=qb(b.parentNode,"pcjs-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(g.nodeType===document.ELEMENT_NODE){var k=g.getAttribute("class");if(k)for(var q=k.split(" "),r=0;r<q.length;r++)switch(k=q[r],k){case "pcjs-binding":(k=mb(g))&&k.binding&&a.Ub(k.type,k.binding,g,k.value),r=q.length}}}}
function qb(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}
@ -87,7 +87,7 @@ h.km=function(a){var b=this.M;a<<=3;var c=b.Pc+a|0;if(7<=(b.Od-c|0))return this.
h.Pk=function(a,b){return(a>>>0)+b>this.fc?this.Fa+a|0:this.pg()};h.pg=function(){p.call(this.M,13,0);return-1};function od(a,b,c,d,e){a.ga=b;a.Fa=d;a.Za=e;a.fc=(e>>>0)+1;a.Bb=c;a.type=c&7936;a.ext=c>>16&192;a.dc=(b&4?a.M.Bc.Fa:a.M.Ec)+(b&65528)|0;4>a.id&&ld(a,!0)}function pd(a,b,c){var d=a.M,e=d.va(b+2),f=d.va(b)|(e&255)<<16,d=d.va(b+4);a.ga=c;a.Fa=f;a.Za=d;a.fc=(d>>>0)+1;a.Bb=e;a.type=e&7936;a.ext=0;a.dc=b;4>a.id&&ld(a,!0)}
function nd(a,b,c,d){var e=a.M;if(!d&&c===a.A.ga)return a.ga=c,a.Fa=a.A.Fa,a.Za=a.A.Za,a.fc=(a.A.Za>>>0)+1,a.Bb=a.A.Bb,a.type=a.A.type,a.ext=a.A.ext,a.dc=a.A.dc,a.A.ga=-1,ld(a,!0,!0,!1),a.Fa;a.A.ga=-1;var f=e.va(b+0),g=e.va(b+4),k=g&7936,q=e.va(b+2)|(g&255)<<16,r=e.va(b+6),x=c&65528;if(80386<=e.na){var B=f,q=q|(r&65280)<<16,f=f|(r&15)<<16;r&128&&(f=f<<12|4095)}switch(a.id){case 1:var y=a.R;a.bf=!1;if(y&&1==c&&a.C.length){var J=a.C[a.Uf-1];if(J&&!J())return-1}var U=c&3,F=(g&24576)>>13,J=-1,O,V;x||
b>=e.Ec&&b<e.Bd&&(k=0);if(6144<=k){if(J=0,U>a.$b&&(J=-1,!1===y||F==a.$b||k&1024&&F<=a.$b))J=qd(e),rd(e,qd(e),!0),t(e,J),a.bf=!0,J=0}else{if(256==k||2304==k)return sd(a,c,y)?a.Fa:-1;if(1024==k)J=2,V=0,U<a.$b&&(U=a.$b);else if(3072==k)J=4,V=0,U<a.$b&&(U=a.$b);else if(1536==k)J=2,V=148224;else if(3584==k)J=4,V=148224;else if(1792==k)J=2,V=147712;else if(3840==k)J=4,V=147712;else if(1280==k)return sd(a,q&65535,y)?a.Fa:-1}0<J&&!(g&32768)&&(J=0);if(0<J&&(x=a.$b,O=b==e.Pc+c,U<=F&&(!O||0<=e.lb||x<=F))){b=
q&65535;k&2048&&(f=B|r<<16);r=k=0;c=b&3;if(c<x){if(-1===a.tg(b,!0))return-1;r=e.Ya.Fa;e.Ya.type&2048?(c=(c<<3)+4,d=4):(c=(c<<2)+2,d=2);k=e.va(r+c+d);if(!k)return p.call(e,10,k),-1;if(-1===e.Aa.tg(k,!0))return-1;r=2==d?e.va(r+c):e.ta(r+c)}c=e.ea;e.ea&=~V;c&131072&&xd(e,!0,!1);if(-1===a.tg(b))return-1;yd(e,J);a.Uf=f;if(a.$b<x){if(!0!==y)return-1;J=u(e);f=0;for(g&=31;g--;)a.P[f++]=zd(e,e.Aa,J),J+=2;y=e.Aa.ga;g=u(e);rd(e,k,!0);t(e,r);c&131072&&(yd(e,4),Ad(e,e.Tb.ga,4,2),e.Tb.load(0),Ad(e,e.Sb.ga,4,2),
q&65535;k&2048&&(f=B|r<<16);r=k=0;c=b&3;if(c<x){if(-1===a.tg(b,!0))return-1;r=e.Ya.Fa;e.Ya.type&2048?(c=(c<<3)+4,d=4):(c=(c<<2)+2,d=2);k=e.va(r+c+d);if(!k)return p.call(e,10,k),-1;if(-1===e.Aa.tg(k,!0))return-1;r=2==d?e.va(r+c):e.ta(r+c)}c=e.ea;e.ea&=~V;c&131072&&td(e,!0,!1);if(-1===a.tg(b))return-1;yd(e,J);a.Uf=f;if(a.$b<x){if(!0!==y)return-1;J=u(e);f=0;for(g&=31;g--;)a.P[f++]=zd(e,e.Aa,J),J+=2;y=e.Aa.ga;g=u(e);rd(e,k,!0);t(e,r);c&131072&&(yd(e,4),Ad(e,e.Tb.ga,4,2),e.Tb.load(0),Ad(e,e.Sb.ga,4,2),
e.Sb.load(0),Ad(e,e.Ab.ga,4,2),Bd(e,0),Ad(e,e.bb.ga,4,2),Cd(e,0));Ad(e,y,e.fa,2);for(Dd(e,g);f;)Dd(e,a.P[--f]);a.bf=!0}return a.Fa}if(0!=J)return p.call(e,13,c&65532|(O?2:0)),-1;if(!(g&32768))return p.call(e,11,c&65532|(O?2:0)),-1;break;case 2:if(x){if(4096>k||2048==(k&2560))return p.call(e,13,c&65532),-1;if(!(g&32768))return p.call(e,11,c&65532),-1}break;case 3:if(!x||4096>k||512!=(k&2560))return p.call(e,13,c&65532),-1;if(!(g&32768))return p.call(e,12,c&65532),-1;break;case 4:y=k&-513;if(!x||256!=
y&&2304!=y)return p.call(e,13,c&65532),-1;2304==y&&(a.yi=q+e.va(q+100+2)|0,a.Kk=q+a.Za|0);break;case 6:if(!(k&4096)&&768<k&&2304!=k&&2816!=k)return-1}d?(a.A.ga=c,a.A.Fa=q,a.A.Za=f,a.A.Bb=g,a.A.type=k,a.A.ext=r,a.A.dc=b):(a.ga=c,a.Fa=q,a.Za=f,a.fc=(f>>>0)+1,a.Bb=g,a.type=k,a.ext=r,a.dc=b,ld(a,!0,!0,!1));return q}
function sd(a,b,c){var d=a.M,e=a.$b,f=d.Ya.ga,g=d.Ya.Fa;if(!c){if(!(d.Ya.type&512))return p.call(d,13,b&65532),!1;d.pb(d.Ya.dc+4,d.Ya.Bb&=-513)}if(-1===d.Ya.load(b))return!1;var k=d.Ya.Fa;if(!1!==c){if(d.Ya.type&512)return p.call(d,13,b&65532),!1;d.pb(d.Ya.dc+4,d.Ya.Bb|=512)}d.Ya.type=d.Ya.type&-513|d.Ya.Bb&512;256==d.Ya.type||768==d.Ya.type?(d.pb(g+14,v(d)),d.pb(g+16,Ed(d)),d.pb(g+18,d.F),d.pb(g+20,d.G),d.pb(g+22,d.H),d.pb(g+24,d.D),d.pb(g+26,u(d)),d.pb(g+28,d.K),d.pb(g+30,d.J),d.pb(g+32,d.I),d.pb(g+
@ -105,14 +105,14 @@ function Lc(a,b,c,d){var e=(b&-4194304)>>>20,f=a.kd[(a.Ld+e&a.Mb)>>>a.Pa],g=f.Xd
b.A=e>>2;b.Eb=g;b.C=k>>2;Ab&&gc&&c.ha&&!c.controller&&!c.Se&&!c.Te?(b.eb=c.eb,b.ce=c.ce,b.ha=c.ha,dc(b,Qc)):(b.O=c?Ec(32):0,b.Y=c?Ec(96):0,dc(b,Oc));Sb(b,a.ma,q);a.ya[d]=b;a.ie.push(d);return b}function Be(a){a.ya!==a.kd&&(a.ya=a.kd,a.le=null,a.ie=null,a.rd=null)}h=Id.prototype;h.reset=function(){this.ra.Ob&&this.bc();xe(this);Tc(this);this.ra.wd=!1};
function Ce(a,b){var c;switch(b){case 0:c=a.F;break;case 1:c=a.G;break;case 2:c=a.H;break;case 3:c=a.D;break;case 4:c=u(a);break;case 5:c=a.K;break;case 6:c=a.J;break;case 7:c=a.I}return c}function De(a,b,c){switch(b){case 0:a.F=c;break;case 1:a.G=c;break;case 2:a.H=c;break;case 3:a.D=c;break;case 4:t(a,c);break;case 5:a.K=c;break;case 6:a.J=c;break;case 7:a.I=c}}
function xe(a){a.F=0;a.D=0;a.G=0;a.H=0;a.ib=0;a.K=0;a.J=0;a.I=0;a.Va=!1;a.la=a.Ba=0;a.xb=0;a.Qg=0;a.pc=0;a.hb=65520;a.Pc=0;a.Od=1023;a.ea=a.Ra=0;a.Xc=a.vd=a.Wc=a.Yc=0;a.lb=-1;a.Lc=a.td=-1;a.He=a.X=-1;a.Ca=new kd(a,1,"CS");a.Ab=new kd(a,2,"DS");a.bb=new kd(a,2,"ES");a.Aa=new kd(a,3,"SS");t(a,0);rd(a,0);if(80386<=a.na){switch(a.oc){case 80562:case 80563:a.H=771;break;case 80578:a.H=772;break;case 80594:a.H=773;break;case 80595:case 80596:a.H=776}a.hb=16;a.ni=0;a.qe=0;a.Ld=0;a.Ma=[0,0,0,0,null,null,
0,0];a.Ge=[null,null,null,null,null,null,0,0];a.Sb=new kd(a,2,"FS");a.Tb=new kd(a,2,"GS");Be(a)}a.pf=new kd(a,0,"NULL");a.P=a.Ab;a.O=a.Aa;a.V=a.La=0;a.Z=a.Y=-1;a.pd=a.pf;a.za=0;if(80286>a.na)Gd(a,0,65535);else{a.Ec=0;a.Bd=65535;a.Bc=new kd(a,5,"LDT",!0);a.Ya=new kd(a,4,"TSS",!0);a.Ea=new kd(a,6,"VER",!0);Gd(a,65520,61440);var b,c=v(a);b=a.Ca;var d=-65536;80386>b.M.na&&(d&=16777215);b=b.Fa=d;a.Na=b+c|0;a.of=b+a.Ca.Za|0}Fd(a,0);xd(a)}
function Ee(a,b){b.ga&65528&&b.Mc<a.ua&&7168!=(b.Bb&7168)&&b.load(0)}function Fe(a){2==a.gd?(a.ic=a.va,a.Qa=z,a.Ta=Ge,a.Ib=He,a.da=A,a.qa=Ke,a.Oa=Le):(a.ic=a.ta,a.Qa=C,a.Ta=Me,a.Ib=Ne,a.da=D,a.qa=Oe,a.Oa=Pe)}function yd(a,b){a.fa!=b&&(a.La|=1024,a.fa=b,a.B=2==b?65535:-1,Qe(a))}function Qe(a){2==a.fa?(a.Ja=32768,a.vb=a.va,a.uc=a.pb):(a.Ja=-2147483648,a.vb=a.ta,a.uc=a.ub)}function Re(a){a.gd=a.Ca.gd;a.Ga=a.Ca.Ga;Fe(a);a.fa=a.Ca.fa;a.B=a.Ca.B;Qe(a);a.La&=-3073}
h.Ti=function(){var a=this.F+this.D+this.G+this.H+u(this)+this.K+this.J+this.I|0;return a=a+v(this)+this.Ca.ga+this.Ab.ga+this.Aa.ga+this.bb.ga+Ed(this)|0};function Se(a,b,c){void 0===a.je[b]&&(a.je[b]=[]);a.je[b].push(c)}function Te(a,b,c){void 0!==c&&(null==a.ke[b]&&a.me++,a.ke[b]=c)}function Ue(a,b){var c=a.ke[b];null!=c&&(c(--a.me),delete a.ke[b])}
0,0];a.Ge=[null,null,null,null,null,null,0,0];a.Sb=new kd(a,2,"FS");a.Tb=new kd(a,2,"GS");Be(a)}a.pf=new kd(a,0,"NULL");a.P=a.Ab;a.O=a.Aa;a.V=a.La=0;a.Z=a.Y=-1;a.pd=a.pf;a.za=0;if(80286>a.na)Gd(a,0,65535);else{a.Ec=0;a.Bd=65535;a.Bc=new kd(a,5,"LDT",!0);a.Ya=new kd(a,4,"TSS",!0);a.Ea=new kd(a,6,"VER",!0);Gd(a,65520,61440);var b,c=v(a);b=a.Ca;var d=-65536;80386>b.M.na&&(d&=16777215);b=b.Fa=d;a.Na=b+c|0;a.of=b+a.Ca.Za|0}Fd(a,0);td(a)}
function Ee(a,b){b.ga&65528&&b.Mc<a.ua&&7168!=(b.Bb&7168)&&b.load(0)}function Fe(a){2==a.gd?(a.ic=a.va,a.Qa=z,a.Ta=Ge,a.Ib=Je,a.da=A,a.qa=Ke,a.Oa=Le):(a.ic=a.ta,a.Qa=C,a.Ta=Me,a.Ib=Ne,a.da=D,a.qa=Oe,a.Oa=Pe)}function yd(a,b){a.fa!=b&&(a.La|=1024,a.fa=b,a.B=2==b?65535:-1,Qe(a))}function Qe(a){2==a.fa?(a.Ja=32768,a.vb=a.va,a.uc=a.pb):(a.Ja=-2147483648,a.vb=a.ta,a.uc=a.ub)}function Re(a){a.gd=a.Ca.gd;a.Ga=a.Ca.Ga;Fe(a);a.fa=a.Ca.fa;a.B=a.Ca.B;Qe(a);a.La&=-3073}
h.Ti=function(){var a=this.F+this.D+this.G+this.H+u(this)+this.K+this.J+this.I|0;return a=a+v(this)+this.Ca.ga+this.Ab.ga+this.Aa.ga+this.bb.ga+Ed(this)|0};function Se(a,b,c){void 0===a.je[b]&&(a.je[b]=[]);a.je[b].push(c)}function Te(a,b,c){void 0!==c&&(null==a.ke[b]&&a.me++,a.ke[b]=c)}function af(a,b){var c=a.ke[b];null!=c&&(c(--a.me),delete a.ke[b])}
function bf(a,b){for(var c=a.Ma[7],d=c>>16,e=0;4>e;e++){if(c&3){var f=!!(d&1),g=a.Ma[e],g=g&~(d>>2&3);b?a.ya[g>>>a.Pa].Nd(g&a.Ha,f,a):Mc(a.ya[g>>>a.Pa],f)}c>>=2;d>>=4}}function Jc(a,b,c,d){if(!(a.V&8192)&&a.Ma[7]&255){c--;var e=a.Ma[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 k=f>>2;if(b+c>=a.Ma[g]&&b<=a.Ma[g]+k){a.Ma[6]|=1<<g;a.za|=2;break}}e>>=2;f>>=4}}}
function xd(a,b,c){void 0===b&&(b=!!(a.hb&1));void 0===c&&(c=!!(a.ea&131072));a.Pg=b&&!c?cf:Md;ld(a.Ca,!1,b,c);ld(a.Ab,!1,b,c);ld(a.Aa,!1,b,c);ld(a.bb,!1,b,c);80386<=a.na&&(ld(a.Sb,!1,b,c),ld(a.Tb,!1,b,c));Re(a)}
function td(a,b,c){void 0===b&&(b=!!(a.hb&1));void 0===c&&(c=!!(a.ea&131072));a.Pg=b&&!c?cf:Md;ld(a.Ca,!1,b,c);ld(a.Ab,!1,b,c);ld(a.Aa,!1,b,c);ld(a.bb,!1,b,c);80386<=a.na&&(ld(a.Sb,!1,b,c),ld(a.Tb,!1,b,c));Re(a)}
h.save=function(){var a=new df(this);ef(a,0,[this.F,this.D,this.G,this.H,u(this),this.K,this.J,this.I]);var b=v(this),c=this.Ca.save(),d=this.Ab.save(),e=this.Aa.save(),f=this.bb.save(),g;null!=this.Ec?(g=[this.hb,this.Ec,this.Bd,this.Pc,this.Od,this.Bc.save(),this.Ya.save(),this.Ra],80386<=this.na&&(g.push(this.ni),g.push(this.qe),g.push(this.Ld),g.push(this.Ma),g.push(this.Ge))):g=null;b=[b,c,d,e,f,g,Ed(this)];80386<=this.na&&(b.push(this.Sb.save()),b.push(this.Tb.save()));ef(a,1,b);ef(a,2,[this.P.nc,
this.O.nc,this.V,this.La,this.za,this.Z,this.Y]);ef(a,3,[0,this.Zb,this.ba.Td]);b=this.ja;c=!!(this.hb&-2147483648);d=0;e=[];(f=!b.ja&&b.xg==b.Mb)||Yb(b,!0);for(g=0;g<b.W;g++){var k=b.ya[g];if(c&&k.type!=fc||k.ab||k.Qi){e[d++]=g;var q=d++;a:if(k=k.save()){for(var r=0,x=0,B=[];r<k.length;){for(var y=k[r],J=r+1;J<k.length&&k[J]===y;)J++;B[x++]=J-r;B[x++]=y;r=J}if(B.length<k.length){k=B;break a}}e[q]=k}}f||Yb(b,!1);e[d]=f;ef(a,4,e);return a.data()};
h.restore=function(a){var b=a[0];this.F=b[0];this.D=b[1];this.G=b[2];this.H=b[3];var c=b[4];this.K=b[5];this.J=b[6];this.I=b[7];b=a[1];this.Ca.restore(b[1]);this.Ab.restore(b[2]);this.Aa.restore(b[3]);this.bb.restore(b[4]);var d=b[5];d&&d.length&&(this.hb=d[0],this.Ec=d[1],this.Bd=d[2],this.Pc=d[3],this.Od=d[4],this.Bc.restore(d[5]),this.Ya.restore(d[6]),this.Ra=d[7],80386<=this.na&&(this.ni=d[8],this.qe=d[9],this.Ld=d[10],this.Ma=d[11],this.Ge=d[12]),xd(this));Fd(this,b[6]);var d=!1,e;a:{e=this.ja;
h.restore=function(a){var b=a[0];this.F=b[0];this.D=b[1];this.G=b[2];this.H=b[3];var c=b[4];this.K=b[5];this.J=b[6];this.I=b[7];b=a[1];this.Ca.restore(b[1]);this.Ab.restore(b[2]);this.Aa.restore(b[3]);this.bb.restore(b[4]);var d=b[5];d&&d.length&&(this.hb=d[0],this.Ec=d[1],this.Bd=d[2],this.Pc=d[3],this.Od=d[4],this.Bc.restore(d[5]),this.Ya.restore(d[6]),this.Ra=d[7],80386<=this.na&&(this.ni=d[8],this.qe=d[9],this.Ld=d[10],this.Ma=d[11],this.Ge=d[12]),td(this));Fd(this,b[6]);var d=!1,e;a:{e=this.ja;
var f=a[4],g;for(g=0;g<f.length-1;g+=2){var k=f[g],q=f[g+1];if(q&&q.length<e.la){for(var r=0,x=Array(e.la),B=0;B<q.length-1;)for(var y=q[B++],J=q[B++];y--;)x[r++]=J;q=x}r=e.ya[k];if(!r||!r.restore(q)){Ba("Unable to restore memory block "+k);e=!1;break a}}void 0!==f[g]&&Yb(e,f[g]);e=!0}e&&(Gd(this,b[0],this.Ca.ga),t(this,c),rd(this,this.Aa.ga),80386<=this.na&&(this.Sb.restore(b[7]),this.Tb.restore(b[8])),d=!0);b=a[2];this.P=null!=b[0]&&ff(this,b[0])||this.Ab;this.O=null!=b[1]&&ff(this,b[1])||this.Aa;
this.V=b[2];this.La=b[3];this.za=b[4];this.Z=b[5];this.Y=b[6];b=a[3];this.Zb=b[1];dd(this,b[2]);return d};function ff(a,b){switch(b){case "CS":return a.Ca;case "DS":return a.Ab;case "SS":return a.Aa;case "ES":return a.bb;case "NULL":return a.pf;default:return[0,b,0,0,""]}}function gf(a,b){null!=Gd(a,v(a),b)&&(a.V|=a.Gd)}function Bd(a,b){-1!==a.Ab.load(b)&&(a.V|=a.Gd)}
function rd(a,b,c){var d=u(a);-1!==a.Aa.load(b)&&(t(a,d),a.Aa.dd?(a.Mg=a.Aa.Fa+a.Aa.Ga|0,a.ud=a.Aa.Fa+a.Aa.Za|0):(a.Mg=a.Aa.Fa+a.Aa.Za|0,a.ud=a.Aa.Fa),c||(a.V|=4))}function Cd(a,b){-1!==a.bb.load(b)&&(a.V|=a.Gd)}function v(a){return a.Na-a.Ca.Fa|0}function hf(a,b){a.Na=a.Ca.Fa+(b&a.B)|0}function jf(a,b){a.Na=b|0;a.of=a.Ca.Fa+a.Ca.Za|0;a.ua=a.Ca.$b;Re(a)}function Gd(a,b,c,d){var e=a.Ca;e.Uf=b;e.R=d;b=e.load(c);return-1!==b?(jf(a,b+(a.Ca.Uf&a.Ca.B)),a.Ca.bf):null}
@ -120,7 +120,7 @@ function kf(a,b){a.Na=a.Na+b|0;var c=a.of-a.Na|0;0>c&&0<=(a.of^a.Na)&&(8088>=a.n
function tf(a,b,c,d,e){a.resultType=c|26;a.Yc=b;d?uf(a):vf(a);e?wf(a):xf(a);return b}function yf(a,b,c,d){c&d?uf(a):vf(a);(b^c)&d?wf(a):xf(a)}function zf(a){return nf(a)?1:0}function nf(a){a.resultType&1&&(a.ea&=-2,(a.Xc^(a.Xc^a.vd)&(a.vd^a.Wc))&a.resultType&-2147450752&&(a.ea|=1),a.resultType&=-2);return a.ea&1}function of(a){a.resultType&2&&(a.ea&=-5,38505>>((a.Yc^a.Yc>>4)&15)&1&&(a.ea|=4),a.resultType&=-3);return a.ea&4}
function pf(a){a.resultType&4&&(a.ea&=-17,(a.Wc^a.Xc^a.vd)&16&&(a.ea|=16),a.resultType&=-5);return a.ea&16}function qf(a){a.resultType&8&&(a.ea&=-65,a.Yc&((a.resultType&-2147450752)-1|a.resultType&-2147450752)||(a.ea|=64),a.resultType&=-9);return a.ea&64}function rf(a){a.resultType&16&&(a.ea&=-129,a.Yc&a.resultType&-2147450752&&(a.ea|=128),a.resultType&=-17);return a.ea&128}
function sf(a){a.resultType&32&&(a.ea&=-2049,(a.Xc^a.Wc)&(a.vd^a.Wc)&a.resultType&-2147450752&&(a.ea|=2048),a.resultType&=-33);return a.ea&2048}function vf(a){a.resultType&=-2;a.ea&=-2}function Af(a){a.resultType&=-5;a.ea&=-17}function Bf(a){a.resultType&=-9;a.ea&=-65}function xf(a){a.resultType&=-33;a.ea&=-2049}function uf(a){a.resultType&=-2;a.ea|=1}function Cf(a){a.resultType&=-5;a.ea|=16}function Df(a){a.resultType&=-9;a.ea|=64}function wf(a){a.resultType&=-33;a.ea|=2048}
function Ed(a){return a.ea&-2262|nf(a)|of(a)|pf(a)|qf(a)|rf(a)|sf(a)}function Ef(a,b){b=b|a.hb&1|65520;a.hb=a.hb&-65536|b&65535;a.hb&1&&xd(a,!0)}function Fd(a,b,c){a.hb&1||(b&=~a.Yf);void 0===c&&(c=a.ua);c?b=b&-12289|a.ea&12288:a.Ra=(b&12288)>>12;c>a.Ra&&(b=b&-513|a.ea&512);a.resultType=128;a.ea=a.ea&~(a.cc|2261)|b&(a.cc|2261)|a.dg;a.ea&256&&(a.za|=2,a.V|=4)}
function Ed(a){return a.ea&-2262|nf(a)|of(a)|pf(a)|qf(a)|rf(a)|sf(a)}function Ef(a,b){b=b|a.hb&1|65520;a.hb=a.hb&-65536|b&65535;a.hb&1&&td(a,!0)}function Fd(a,b,c){a.hb&1||(b&=~a.Yf);void 0===c&&(c=a.ua);c?b=b&-12289|a.ea&12288:a.Ra=(b&12288)>>12;c>a.Ra&&(b=b&-513|a.ea&512);a.resultType=128;a.ea=a.ea&~(a.cc|2261)|b&(a.cc|2261)|a.dg;a.ea&256&&(a.za|=2,a.V|=4)}
function Ff(a,b,c,d){var e=0;if(a.hb&1&&(a.ua>a.Ra||a.ea&131072)&&a.Ya.yi)for(var f=a.Ya.yi+(b>>>3),e=(1<<c)-1<<(b&7);e&&f<=a.Ya.Kk&&!(a.Wa(f)&e);)e>>>=8,f++;return e?(n(a,256)&&sb(a,"checkIOPM("+ia(b)+","+c+","+(d?"input":"output")+"): trapped",!0,!0),p.call(a,13,0),!1):!0}
h.Ub=function(a,b,c){var d=!1;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.xa[b]=c;this.Rg++;d=!0;break;default:d=this.parent.Ub.call(this,a,b,c)}return d};
function Gf(a,b,c,d){var e=(d?a.kd:a.ya)[(b&a.qb)>>>a.Pa];e&&5==e.type&&(e=Lc(a,b,!1,!0));if(e){var f=b&a.Ha;if(!c||1==c)return e.pe(f,b);if(2==c)return f<a.Ha?e.$f(f,b):e.pe(f,b)|Gf(a,b+1,1,d)<<8;if(4==c)return f<a.Ha-2?e.mi(f,b):f==a.Ha-1?e.$f(f,b)|Gf(a,b+2,2,d)<<16:e.pe(f,b)|Gf(a,b+1,1,d)<<8|Gf(a,b+2,1,d)<<16|Gf(a,b+3,1,d)<<24}return null}h.Wa=function(a){return this.ya[(a&this.qb)>>>this.Pa].sc(a&this.Ha,a)};
@ -174,11 +174,11 @@ function Gh(a,b,c){c>>>=0;if(!c||c<=b>>>0)return!1;var d=0,e=1;c=[c>>>0,0];for(a
function Hh(a){if(this.Yb){var b=this.Yb,c=this.Qg,d=this.pc,e=d>>3&7;b.A=d&7;var f=(3>(d>>6&3)?0:48)+e;(217==c||219==c)&&52<=f&&(f=e<<4|b.A);if(e=hh[c][f]){if(0>ih.indexOf(e)){var f=b.M,g=f.He;8087==b.na&&(f.La&16&&g++,f.La&32&&g++);b.ka=f.Ca.ga;b.Y=g-f.Ca.Fa;-1!==f.Z&&(b.la=f.pd.ga,b.W=f.Z-f.pd.Fa);b.qa=(c&7)<<8|d}e.call(b)}}this.A-=-1===this.Z?2:8;return a}function Ih(a,b){var c=Jh.call(this,this.L(),b);80386>this.na&&(this.A-=12);return c}
function Kh(a,b){var c;a=this.Sa();c=2==this.fa?Jh.call(this,a,b):Lh.call(this,a,b);80386>this.na&&(this.A-=12);return c}function Mh(a,b){var c=!1;0>b&&(b=-b|0,c=!c);0>a&&(a=-a|0,c=!c);Nh.call(this,a,b);c&&(this.la=~this.la+1|0,this.Ba=~this.Ba+(this.la?0:1)|0)}function Jh(a,b){var c=(a<<16>>16)*(b<<16>>16)|0;32767<c||-32768>c?(uf(this),wf(this)):(vf(this),xf(this));this.A-=-1===this.Z?9:12;return c&65535}
function Lh(a,b){Mh.call(this,a,b);this.Ba!=this.la>>31?(uf(this),wf(this)):(vf(this),xf(this));this.A-=-1===this.Z?9:12;return this.la}function Oh(a){var b=a+1|0;mf(this,a,1,b,this.Ja|62);this.A-=2;return a&~this.B|b&this.B}function Ph(a,b,c){this.A-=this.C.zj+(c||0);c=Ed(this);var d=this.Ca.ga,e=v(this);a=this.Ca.Zi(a);-1!==a&&(Dd(this,c),Dd(this,d),Dd(this,e),null!=b&&Dd(this,b),this.lb=-1,jf(this,a))}
function Qh(a,b){this.A-=14+(-1===this.Z?0:2);Bf(this);-1!==this.Ea.load(b)&&this.Ea.Mc>=this.ua&&this.Ea.Mc>=(b&3)&&(Df(this),a=this.Ea.Bb&-256,2<this.fa&&(a|=(this.Ea.ext&-65281)<<16));return a}function Rh(a){this.hb=a;xd(this);this.hb&-2147483648?ze(this):Be(this)}function Hd(a){this.Ld=a;ac(this)}function Sh(a,b){if(-1===this.Z)return oe.call(this),a;Bd(this,this.va(this.Z+this.fa));this.A-=this.C.mf;return b}function Th(){this.A-=this.C.Hj;return this.Z}
function Qh(a,b){this.A-=14+(-1===this.Z?0:2);Bf(this);-1!==this.Ea.load(b)&&this.Ea.Mc>=this.ua&&this.Ea.Mc>=(b&3)&&(Df(this),a=this.Ea.Bb&-256,2<this.fa&&(a|=(this.Ea.ext&-65281)<<16));return a}function Rh(a){this.hb=a;td(this);this.hb&-2147483648?ze(this):Be(this)}function Hd(a){this.Ld=a;ac(this)}function Sh(a,b){if(-1===this.Z)return oe.call(this),a;Bd(this,this.va(this.Z+this.fa));this.A-=this.C.mf;return b}function Th(){this.A-=this.C.Hj;return this.Z}
function Uh(a,b){if(-1===this.Z)return oe.call(this),a;Cd(this,this.va(this.Z+this.fa));this.A-=this.C.mf;return b}function Vh(a,b){if(-1===this.Z)return oe.call(this),a;var c=this.va(this.Z+this.fa);this.Sb.load(c);this.A-=this.C.mf;return b}function Wh(a,b){if(-1===this.Z)return oe.call(this),a;var c=this.va(this.Z+this.fa);this.Tb.load(c);this.A-=this.C.mf;return b}
function Xh(a,b){this.A-=14+(-1===this.Z?0:2);if(b&65528&&-1!==this.Ea.load(b)&&(7168==(this.Ea.Bb&7168)||this.Ea.Mc>=this.ua)&&this.Ea.Mc>=(b&3))return Df(this),this.Ea.Za;Bf(this);return a}function Yh(a,b){if(-1===this.Z)return oe.call(this),a;rd(this,this.va(this.Z+this.fa));this.A-=this.C.mf;return b}function Zh(a,b){this.A-=-1===this.Y?-1===this.Z?this.C.Oj:this.C.Nj:this.C.Lj;return b}function $h(a,b){return b}function ai(){-1!==this.Y&&yd(this,2);return Zh.call(this,0,this.xb)}
function Nh(a,b){if(a&-65536||b&-65536){var c=b&65535,d=b>>>16,e=a&65535,f=a>>>16,g=c*e,e=(g>>>16)+d*e,k=e>>>16,e=(e&65535)+c*f;this.la=e<<16|g&65535;this.Ba=k+((e>>>16)+d*f)|0}else this.la=a*b|0,this.Ba=0}function bi(a,b){this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return tf(this,a|b,128)}function ci(a,b){this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return tf(this,a|b,this.Ja)&this.B}
function di(a){this.X=this.ka;var b=qd(this),c=qd(this);a&&t(this,u(this)+a);Gd(this,b,c,!1)&&(a&&t(this,u(this)+a),Ee(this,this.Ab),Ee(this,this.bb),80386<=this.na&&(Ee(this,this.Sb),Ee(this,this.Tb)));2==a&&this.me&&Ue(this,this.Na);this.X=-1}function ei(a,b){var c=a-b-zf(this)|0;mf(this,a,b,c,191,!0);this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return c&255}
function di(a){this.X=this.ka;var b=qd(this),c=qd(this);a&&t(this,u(this)+a);Gd(this,b,c,!1)&&(a&&t(this,u(this)+a),Ee(this,this.Ab),Ee(this,this.bb),80386<=this.na&&(Ee(this,this.Sb),Ee(this,this.Tb)));2==a&&this.me&&af(this,this.Na);this.X=-1}function ei(a,b){var c=a-b-zf(this)|0;mf(this,a,b,c,191,!0);this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return c&255}
function fi(a,b){var c=a-b-zf(this)|0;mf(this,a,b,c,this.Ja|63,!0);this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return c&this.B}function gi(a){this.V|=1;this.Ta[this.ca()].call(this,a);this.A-=-1===this.Z?4:5}function hi(){return sf(this)?1:0}function ii(){return nf(this)?1:0}function ji(){return nf(this)?0:1}function Bi(){return qf(this)?1:0}function Ci(){return qf(this)?0:1}function Di(){return nf(this)||qf(this)?1:0}function Ei(){return nf(this)||qf(this)?0:1}
function Fi(){return rf(this)?1:0}function Gi(){return rf(this)?0:1}function Hi(){return of(this)?1:0}function Ii(){return of(this)?0:1}function Ji(){return!rf(this)!=!sf(this)?1:0}function Ki(){return!rf(this)!=!sf(this)?0:1}function Li(){return qf(this)||!rf(this)!=!sf(this)?1:0}function Mi(){return qf(this)||!rf(this)!=!sf(this)?0:1}function Ni(a,b,c){if(c){16<c&&(a=b,c-=16);var d=a<<c-1;a=(d<<1|b>>>16-c)&65535;tf(this,a,32768,d&32768)}return a}
function Oi(a,b,c){if(c){var d=a<<c-1;a=d<<1|b>>>32-c;tf(this,a,-2147483648,d&-2147483648)}return a}function Pi(a,b){return Ni.call(this,a,b,this.ca())}function Qi(a,b){return Oi.call(this,a,b,this.ca())}function Ri(a,b){return Ni.call(this,a,b,this.G&31)}function Si(a,b){return Oi.call(this,a,b,this.G&31)}function Ti(a,b,c){if(c){16<c&&(a=b,c-=16);var d=a>>>c-1;a=(d>>>1|b<<16-c)&65535;tf(this,a,32768,d&1)}return a}
@ -233,8 +233,8 @@ this.P,this.J&c);this.F=this.F&~this.B|e;this.J=this.J&~c|this.J+(this.ea&1024?-
this.D&-256|this.ca();this.A-=this.C.jc},function(){this.F=this.F&-65281|this.ca()<<8;this.A-=this.C.jc},function(){this.G=this.G&-65281|this.ca()<<8;this.A-=this.C.jc},function(){this.H=this.H&-65281|this.ca()<<8;this.A-=this.C.jc},function(){this.D=this.D&-65281|this.ca()<<8;this.A-=this.C.jc},function(){this.F=this.F&~this.B|this.Sa();this.A-=this.C.jc},function(){this.G=this.G&~this.B|this.Sa();this.A-=this.C.jc},function(){this.H=this.H&~this.B|this.Sa();this.A-=this.C.jc},function(){this.D=
this.D&~this.B|this.Sa();this.A-=this.C.jc},function(){t(this,u(this)&~this.B|this.Sa());this.A-=this.C.jc},function(){this.K=this.K&~this.B|this.Sa();this.A-=this.C.jc},function(){this.J=this.J&~this.B|this.Sa();this.A-=this.C.jc},function(){this.I=this.I&~this.B|this.Sa();this.A-=this.C.jc},Pj,Qj,Pj,Qj,function(){this.da[this.ca()].call(this,Uh)},function(){this.da[this.ca()].call(this,Sh)},function(){this.V|=1;this.Ib[this.ca()].call(this,Xj,this.ca)},function(){this.V|=1;this.Oa[this.ca()].call(this,
Xj,this.Sa)},Rj,Sj,Rj,Sj,function(){if(this.ea&131072&&3>this.Ra)p.call(this,13,0);else{var a=this.C.Aj;this.lb=-1;Ph.call(this,3,null,a)}},function(){var a=this.ca();if(this.ea&131072&&3>this.Ra)p.call(this,13,0);else{var b;a:{b=this.je[a];if(void 0!==b)for(var c=0;c<b.length;c++)if(!b[c](this.Na)){b=!1;break a}this.ra.Pi&&n(this,16)&&Yj(this.ma,a,this.Na);b=!0}b?(this.lb=-1,Ph.call(this,a,null,0)):this.A--}},function(){if(sf(this))if(this.ea&131072&&3>this.Ra)p.call(this,13,0);else{var a=this.C.Bj;
this.lb=-1;Ph.call(this,4,null,a)}else this.A-=this.C.Cj},function(){if(this.ea&131072&&3>this.Ra)p.call(this,13,0);else{this.X=this.ka;this.A-=this.C.yj;if(this.hb&1&&this.ea&16384){var a=this.va(this.Ya.Fa+0);sd(this.Ca,a,!1)}else{var a=this.ua,b=qd(this),c=qd(this),d=qd(this);if(this.ea&131072)d=d&131071|this.ea&-131072;else if(d&131072){var e=qd(this),f=qd(this),g=qd(this),k=qd(this),q=qd(this),r=qd(this);xd(this,!0,!0);rd(this,f);t(this,e);Cd(this,g);Bd(this,k);this.Sb.load(q);this.Tb.load(r)}null!=
Gd(this,b,c,!1)&&(Fd(this,d,a),this.me&&Ue(this,this.Na))}this.X=-1}},function(){this.Ib[this.ca()].call(this,Mj,lj)},function(){this.Oa[this.ca()].call(this,2==this.fa?Nj:Oj,lj)},function(){this.Ib[this.ca()].call(this,Mj,mj)},function(){this.Oa[this.ca()].call(this,2==this.fa?Nj:Oj,mj)},function(){var a=this.ca();if(a){var b=this.F&255;this.F=this.F&-65536|b/a<<8|b%a;tf(this,this.F,128);this.A-=this.C.dj}else kj.call(this)},function(){var a=this.F&255,b=(this.F>>8&255)*this.ca()|0,c=a+b|0;this.F=
this.lb=-1;Ph.call(this,4,null,a)}else this.A-=this.C.Cj},function(){if(this.ea&131072&&3>this.Ra)p.call(this,13,0);else{this.X=this.ka;this.A-=this.C.yj;if(this.hb&1&&this.ea&16384){var a=this.va(this.Ya.Fa+0);sd(this.Ca,a,!1)}else{var a=this.ua,b=qd(this),c=qd(this),d=qd(this);if(this.ea&131072)d=d&131071|this.ea&-131072;else if(d&131072){var e=qd(this),f=qd(this),g=qd(this),k=qd(this),q=qd(this),r=qd(this);td(this,!0,!0);rd(this,f);t(this,e);Cd(this,g);Bd(this,k);this.Sb.load(q);this.Tb.load(r)}null!=
Gd(this,b,c,!1)&&(Fd(this,d,a),this.me&&af(this,this.Na))}this.X=-1}},function(){this.Ib[this.ca()].call(this,Mj,lj)},function(){this.Oa[this.ca()].call(this,2==this.fa?Nj:Oj,lj)},function(){this.Ib[this.ca()].call(this,Mj,mj)},function(){this.Oa[this.ca()].call(this,2==this.fa?Nj:Oj,mj)},function(){var a=this.ca();if(a){var b=this.F&255;this.F=this.F&-65536|b/a<<8|b%a;tf(this,this.F,128);this.A-=this.C.dj}else kj.call(this)},function(){var a=this.F&255,b=(this.F>>8&255)*this.ca()|0,c=a+b|0;this.F=
this.F&-65536|c&255;mf(this,a,b,c,191);this.A-=this.C.cj},function(){this.F=this.F&-256|(nf(this)?255:0);this.A-=2},function(){this.F=this.F&-256|Hf(this,this.P,this.D+(this.F&255)&65535);this.A-=this.C.bk},function(){Tj.call(this,216)},function(){Tj.call(this,217)},function(){Tj.call(this,218)},function(){Tj.call(this,219)},function(){Tj.call(this,220)},function(){Tj.call(this,221)},function(){Tj.call(this,222)},function(){Tj.call(this,223)},function(){var a=this.L(),b=this.G-1&this.Ga;this.G=this.G&
~this.Ga|b;b&&!qf(this)?(hf(this,v(this)+a),this.A-=this.C.Jj):this.A-=this.C.Kh},function(){var a=this.L(),b=this.G-1&this.Ga;this.G=this.G&~this.Ga|b;b&&qf(this)?(hf(this,v(this)+a),this.A-=this.C.Lh):this.A-=this.C.Mh},function(){var a=this.L(),b=this.G-1&this.Ga;this.G=this.G&~this.Ga|b;b?(hf(this,v(this)+a),this.A-=this.C.Ij):this.A-=this.C.Kh},function(){var a=this.L();this.G&this.Ga?this.A-=this.C.Mh:(hf(this,v(this)+a),this.A-=this.C.Lh)},function(){var a=this.ca();Ff(this,a,1,!0)&&(this.F=
this.F&-256|oc(this.ja,a,1,this.Na-2)&255,this.A-=this.C.Fh)},function(){var a=this.ca();Ff(this,a,this.fa,!0)&&(this.F=this.F&~this.B|oc(this.ja,a,this.fa,this.Na-2)&this.B,this.A-=this.C.Fh)},function(){var a=this.ca();Ff(this,a,1,!1)&&(sc(this.ja,a,1,this.F&255,this.Na-2),this.A-=this.C.Th)},function(){var a=this.ca();Ff(this,a,this.fa,!1)&&(sc(this.ja,a,this.fa,this.F&this.B,this.Na-2),this.A-=this.C.Th)},function(){var a=this.Sa(),b=v(this),a=b+a;Dd(this,b);hf(this,a);this.A-=this.C.hj},function(){var a=
@ -364,7 +364,7 @@ R(this)),this.G>>8&255);P(this,a);this.A-=this.C.T},function(a){a=a.call(this,L(
this.A-=this.C.N},function(a){a=a.call(this,K(this,this.D+this.J+R(this)),this.H>>8&255);P(this,a);this.A-=this.C.S},function(a){a=a.call(this,K(this,this.D+this.I+R(this)),this.H>>8&255);P(this,a);this.A-=this.C.T},function(a){a=a.call(this,L(this,this.K+this.J+R(this)),this.H>>8&255);P(this,a);this.A-=this.C.T},function(a){a=a.call(this,L(this,this.K+this.I+R(this)),this.H>>8&255);P(this,a);this.A-=this.C.S},function(a){a=a.call(this,K(this,this.J+R(this)),this.H>>8&255);P(this,a);this.A-=this.C.N},
function(a){a=a.call(this,K(this,this.I+R(this)),this.H>>8&255);P(this,a);this.A-=this.C.N},function(a){a=a.call(this,L(this,this.K+R(this)),this.H>>8&255);P(this,a);this.A-=this.C.N},function(a){a=a.call(this,K(this,this.D+R(this)),this.H>>8&255);P(this,a);this.A-=this.C.N},function(a){a=a.call(this,K(this,this.D+this.J+R(this)),this.D>>8&255);P(this,a);this.A-=this.C.S},function(a){a=a.call(this,K(this,this.D+this.I+R(this)),this.D>>8&255);P(this,a);this.A-=this.C.T},function(a){a=a.call(this,L(this,
this.K+this.J+R(this)),this.D>>8&255);P(this,a);this.A-=this.C.T},function(a){a=a.call(this,L(this,this.K+this.I+R(this)),this.D>>8&255);P(this,a);this.A-=this.C.S},function(a){a=a.call(this,K(this,this.J+R(this)),this.D>>8&255);P(this,a);this.A-=this.C.N},function(a){a=a.call(this,K(this,this.I+R(this)),this.D>>8&255);P(this,a);this.A-=this.C.N},function(a){a=a.call(this,L(this,this.K+R(this)),this.D>>8&255);P(this,a);this.A-=this.C.N},function(a){a=a.call(this,K(this,this.D+R(this)),this.D>>8&255);
P(this,a);this.A-=this.C.N},z[192],z[200],z[208],z[216],z[224],z[232],z[240],z[248],z[193],z[201],z[209],z[217],z[225],z[233],z[241],z[249],z[194],z[202],z[210],z[218],z[226],z[234],z[242],z[250],z[195],z[203],z[211],z[219],z[227],z[235],z[243],z[251],z[196],z[204],z[212],z[220],z[228],z[236],z[244],z[252],z[197],z[205],z[213],z[221],z[229],z[237],z[245],z[253],z[198],z[206],z[214],z[222],z[230],z[238],z[246],z[254],z[199],z[207],z[215],z[223],z[231],z[239],z[247],z[255]],He=[function(a,b){var c=
P(this,a);this.A-=this.C.N},z[192],z[200],z[208],z[216],z[224],z[232],z[240],z[248],z[193],z[201],z[209],z[217],z[225],z[233],z[241],z[249],z[194],z[202],z[210],z[218],z[226],z[234],z[242],z[250],z[195],z[203],z[211],z[219],z[227],z[235],z[243],z[251],z[196],z[204],z[212],z[220],z[228],z[236],z[244],z[252],z[197],z[205],z[213],z[221],z[229],z[237],z[245],z[253],z[198],z[206],z[214],z[222],z[230],z[238],z[246],z[254],z[199],z[207],z[215],z[223],z[231],z[239],z[247],z[255]],Je=[function(a,b){var c=
a[0].call(this,K(this,this.D+this.J),b.call(this));P(this,c);this.A-=this.C.oa},function(a,b){var c=a[0].call(this,K(this,this.D+this.I),b.call(this));P(this,c);this.A-=this.C.pa},function(a,b){var c=a[0].call(this,L(this,this.K+this.J),b.call(this));P(this,c);this.A-=this.C.pa},function(a,b){var c=a[0].call(this,L(this,this.K+this.I),b.call(this));P(this,c);this.A-=this.C.oa},function(a,b){var c=a[0].call(this,K(this,this.J),b.call(this));P(this,c);this.A-=this.C.aa},function(a,b){var c=a[0].call(this,
K(this,this.I),b.call(this));P(this,c);this.A-=this.C.aa},function(a,b){var c=a[0].call(this,K(this,R(this)),b.call(this));P(this,c);this.A-=this.C.Ka},function(a,b){var c=a[0].call(this,K(this,this.D),b.call(this));P(this,c);this.A-=this.C.aa},function(a,b){var c=a[1].call(this,K(this,this.D+this.J),b.call(this));P(this,c);this.A-=this.C.oa},function(a,b){var c=a[1].call(this,K(this,this.D+this.I),b.call(this));P(this,c);this.A-=this.C.pa},function(a,b){var c=a[1].call(this,L(this,this.K+this.J),
b.call(this));P(this,c);this.A-=this.C.pa},function(a,b){var c=a[1].call(this,L(this,this.K+this.I),b.call(this));P(this,c);this.A-=this.C.oa},function(a,b){var c=a[1].call(this,K(this,this.J),b.call(this));P(this,c);this.A-=this.C.aa},function(a,b){var c=a[1].call(this,K(this,this.I),b.call(this));P(this,c);this.A-=this.C.aa},function(a,b){var c=a[1].call(this,K(this,R(this)),b.call(this));P(this,c);this.A-=this.C.Ka},function(a,b){var c=a[1].call(this,K(this,this.D),b.call(this));P(this,c);this.A-=
@ -934,7 +934,7 @@ function Ym(a,b){if(1==b)return a.Ja[0]=pm[0],a.Ja[1]=pm[7],a.Ja;if(2==b){var c=
(c.Uc[20]&12)<<4,c.Uc[16]&128&&(g&=-49,g|=(c.Uc[20]&3)<<4),g=d[g],k=g<<2&252,q=g>>4&252,g=g>>10&252):(k=(g&4?170:0)|(g&32?85:0),q=(g&2?170:0)|(g&16?85:0),g=(g&1?170:0)|(g&8?85:0)),a.Ja[f]=[k,q,g,255]}a.xb=!0}return a.Ja}function Cl(a,b,c,d){a.Lc=b;a.rd=c;a.rb=d}
function Um(a,b){var c=!1;if(window&&a.Lc&&(!b||a.W)){var d=0,e=a.rb?a.rb:8,f=Ym(a);Zm(a,3,a.rd[0],d,e,8,a.Lc,f)&&(c=!0);d=a.rb?0:2048;e=a.rb?a.rb:9;Zm(a,1,a.rd[1],d,e,14,a.Lc,nm,om)&&(c=!0);a.rb&&Zm(a,a.nb,a.rd[1],0,a.rb,14,a.Lc,f)&&(c=!0)}return c}function Zm(a,b,c,d,e,f,g,k,q){var r=!1;null!=c&&($m(a,b,c,d,e,f,g,k,q)&&(r=!0),a.Rg&&$m(a,b<<1,c,d,e,f,g,k,q)&&(r=!0));return r}
function $m(a,b,c,d,e,f,g,k,q){var r=!1,x=b&1?0:1,B=a.Va[b],y=16>k.length?k.length:16;B||(B={Rc:e<<x,Sc:f<<x,Ne:Array(y),xi:k.slice(0,y),xf:q,Vg:Array(y)});for(q=0;q<y;q++){var J=k[q],U=B.Ne[q]?B.xi[q]:[];if(J[0]!==U[0]||J[1]!==U[1]||J[2]!==U[2]){var r=B,U=q,F=x,O=c,V=d,Y=e,ha=f,da=g,eb=[0,0,0,0],va=document.createElement("canvas");va.width=r.Rc<<4;va.height=r.Sc<<4;for(var oa=va.getContext("2d"),Oa=void 0,ab=void 0,Ja=void 0,Vb=8>ha||!V?ha:8,Da=oa.createImageData(r.Rc,r.Sc),Oa=0;256>Oa;Oa++){for(Ja=
0;Ja<ha;Ja++)for(var Ud=r.xf&&U&1&&Ja>=ha-2,Uc=da[Ja<Vb?O+Oa*Vb+Ja:V+Oa*Vb+Ja-Vb],Vd=0;Vd<=F;Vd++)for(ab=0;ab<Y;ab++){var Ie=ab<<F,Wd=(Ja<<F)+Vd,Je=Ud||Uc&128>>(8<=ab&&192<=Oa&&223>=Oa?7:ab)?J:eb;an(Da,Ie,Wd,Je);F&&an(Da,Ie+1,Wd,Je)}oa.putImageData(Da,(Oa&15)*r.Rc,(Oa>>4)*r.Sc)}r.Ne[U]="#"+l(J[0],2)+l(J[1],2)+l(J[2],2);r.xi[U]=J;r.Vg[U]=va;r=!0}}a.Va[b]=B;return r}function bn(a){0<a.cb||0<=a.ua?0>a.Yb&&(a.Yb=0):a.Yb=-1}
0;Ja<ha;Ja++)for(var Ud=r.xf&&U&1&&Ja>=ha-2,Uc=da[Ja<Vb?O+Oa*Vb+Ja:V+Oa*Vb+Ja-Vb],Vd=0;Vd<=F;Vd++)for(ab=0;ab<Y;ab++){var He=ab<<F,Wd=(Ja<<F)+Vd,Ie=Ud||Uc&128>>(8<=ab&&192<=Oa&&223>=Oa?7:ab)?J:eb;an(Da,He,Wd,Ie);F&&an(Da,He+1,Wd,Ie)}oa.putImageData(Da,(Oa&15)*r.Rc,(Oa>>4)*r.Sc)}r.Ne[U]="#"+l(J[0],2)+l(J[1],2)+l(J[2],2);r.xi[U]=J;r.Vg[U]=va;r=!0}}a.Va[b]=B;return r}function bn(a){0<a.cb||0<=a.ua?0>a.Yb&&(a.Yb=0):a.Yb=-1}
function Xm(a){if(a.W){for(var b=10;15>=b;b++)if(null==a.C.zb[b])return;var c=a.C.zb[10],b=c&31,d=a.C.zb[11]&31,e=a.C.zb[9]&31,f=!1;a.C===a.A&&(f=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!f||b>e)cn(a);else{c=a.C.zb[15]+((a.C.zb[14]&63)<<8);a.ua!=c&&(cn(a),a.ua=c);d=d-b+1;if(a.gg!=b||a.Be!=d)a.gg=b,a.Be=d;a.ib=e+1;bn(a)}}}
function cn(a){if(0<=a.ua){if(void 0!==a.ka){var b=a.ka[a.ua];if(b&131072){var b=b&-131073,c=a.ua%a.O,d=a.ua/a.O|0;a.W&&a.Va[a.W]&&(a.qb&&dn(a,c,d,b,a.qb),dn(a,c,d,b));a.ka[a.ua]=b}}a.ua=-1}}
function en(a){var b,c=a.C;a.Ge=!1;var d=c.Yd[5];if(null!=d){b=1024;var e=0,f=c.Yd[3]&31;switch(d&3){case 0:if(f){e=32;switch(f&24){case 8:e=96;break;case 16:e=160;break;case 24:e=224}c.ed=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.nb==Dl&&(e=3,c.ed=f&7)}d&8&&(b=1280);c=c.Ie[4];null!=c&&(c&4||(b|=4096,e|=16),d&64&&(c&8&&(b|=16384,e|=4),a.Ge=!0));b|=e}return b}
@ -1185,22 +1185,22 @@ tq(a,g[1],!0);if(B)if(a.Ba=B,void 0===g[2])a.U("begin assemble at "+mq(B)),a.Ma=
a.U("\tbc [a]\tclear breakpoint at addr [a]"),a.U("\tbl\tlist all breakpoints"),a.U("\tbn [n]\tbreak after [n] instruction(s)");else{var V=U.charAt(1);if("l"==V){var Y=0,Y=Y+Kq(a,a.A),Y=Y+Kq(a,a.za);(Y+=Kq(a,a.la))||a.U("no breakpoints")}else if("n"==V)a.Va=Zp(a,F),a.U("break after "+a.Va+" instruction(s)");else if(void 0===F)a.U("missing breakpoint address");else{var ha={};if("*"!=F&&(ha=tq(a,F,!0,!0),!ha))break a;F=null==ha.Xa?F:ia(ha.Xa);"c"==V?null==ha.Xa?(Ep(a),a.U("all breakpoints cleared")):
lq(a,a.A,ha)||lq(a,a.za,ha)||lq(a,a.la,ha)||a.U("breakpoint missing: "+mq(ha)):"i"==V?a.U("breakpoint "+(mc(a.ja,ha.Xa)?"enabled":"cleared")+": port "+F+" (input)"):"o"==V?a.U("breakpoint "+(qc(a.ja,ha.Xa)?"enabled":"cleared")+": port "+F+" (output)"):null!=ha.Xa&&(wq(a,ha,O),"p"==V?a.Nd(a.A,ha):"r"==V?a.Nd(a.za,ha):"w"==V?a.Nd(a.la,ha):a.U("unknown breakpoint command: "+V))}}}break;case "c":$q(a);break;case "d":a:{var da=g,eb,va=da[0],oa=da[1],Oa=da[2],ab=da[3];if("?"==oa){var Ja="";for(eb in Rp)a.ib[eb]&&
(Ja&&(Ja+=","),Ja+=eb);Ja+=",state,symbols";a.U("dump memory commands:");a.U("\tdb [a] [#] dump # bytes at address a");a.U("\tdw [a] [#] dump # words at address a");a.U("\tdd [a] [#] dump # dwords at address a");a.U("\tdh [#] [#] dump # instructions from history");a.U("\tds [#] dump descriptor info for selector #");Ja.length&&a.U("dump extension commands:\n\t"+Ja)}else if("state"==oa){var Vb=hr(a.ia,!0);"console"==Oa?console.log(Vb):($q(a),a.U(Vb))}else if("symbols"==oa)for(var Da=
0;Da<a.C.length;Da++){var Ud=a.C[Da],Uc;for(Uc in Ud.Md)if("."!=Uc.charAt(0)){var Vd=Ud.Md[Uc],Ie=Vd.o;if(void 0!==Ie){var Wd=Vd.s;void 0===Wd&&(Wd=Ud.ga);var Je=Ud.Md[Uc].l;Je&&(Uc=Je);a.U(eq(Ie,Wd)+" "+Uc)}}}else{if("ds"==va||"dg"==va||"dl"==va)va="d",da=[va,"desc",oa];"d"==va&&"page"==oa&&(va="dp",da.shift());if("dp"==va){da.shift();var ki=da[0];if(ki){var Ve=a.ic(tq(a,ki));if(-1===Ve)a.U("invalid address: "+ki);else{var ae,La=null;if(80386<=a.M.na){var be=a.ja,La={};La.ek=(Ve&-4194304)>>>20;La.zi=
a.M.Ld+La.ek;La.Db=be.ya[(La.zi&be.Mb)>>>be.Pa];La.Xi=La.Db.Xd(La.ek);La.fk=(Ve&4190208)>>>10;La.Ai=(La.Xi&-4096)+La.fk;La.Eb=be.ya[(La.Ai&be.Mb)>>>be.Pa];La.Yi=La.Eb.Xd(La.fk);La.Lk=(La.Yi&-4096)+(Ve&4095)}if(ae=La){a.U("linear PDE addr PDE PTE addr PTE physical");a.U("--------- ---------- -------- ---------- -------- ----------");var td="%"+l(Ve),td=td+(" %%"+yq(ae.zi,ae.Xi)),td=td+(" %%"+yq(ae.Ai,ae.Yi,!0)),td=td+(" %%"+l(ae.Lk));a.U(td)}else a.U("unsupported operation")}}else a.U("missing address")}else{if("d"==
0;Da<a.C.length;Da++){var Ud=a.C[Da],Uc;for(Uc in Ud.Md)if("."!=Uc.charAt(0)){var Vd=Ud.Md[Uc],He=Vd.o;if(void 0!==He){var Wd=Vd.s;void 0===Wd&&(Wd=Ud.ga);var Ie=Ud.Md[Uc].l;Ie&&(Uc=Ie);a.U(eq(He,Wd)+" "+Uc)}}}else{if("ds"==va||"dg"==va||"dl"==va)va="d",da=[va,"desc",oa];"d"==va&&"page"==oa&&(va="dp",da.shift());if("dp"==va){da.shift();var ki=da[0];if(ki){var Ue=a.ic(tq(a,ki));if(-1===Ue)a.U("invalid address: "+ki);else{var ae,La=null;if(80386<=a.M.na){var be=a.ja,La={};La.ek=(Ue&-4194304)>>>20;La.zi=
a.M.Ld+La.ek;La.Db=be.ya[(La.zi&be.Mb)>>>be.Pa];La.Xi=La.Db.Xd(La.ek);La.fk=(Ue&4190208)>>>10;La.Ai=(La.Xi&-4096)+La.fk;La.Eb=be.ya[(La.Ai&be.Mb)>>>be.Pa];La.Yi=La.Eb.Xd(La.fk);La.Lk=(La.Yi&-4096)+(Ue&4095)}if(ae=La){a.U("linear PDE addr PDE PTE addr PTE physical");a.U("--------- ---------- -------- ---------- -------- ----------");var ud="%"+l(Ue),ud=ud+(" %%"+yq(ae.zi,ae.Xi)),ud=ud+(" %%"+yq(ae.Ai,ae.Yi,!0)),ud=ud+(" %%"+l(ae.Lk));a.U(ud)}else a.U("unsupported operation")}}else a.U("missing address")}else{if("d"==
va){if("disk"==oa){da[0]="l";da[1]="json";dr(a,da);break a}for(eb in Rp)if(da[1]==eb){var gn=a.ib[eb];gn?(da.shift(),da.shift(),gn(da)):a.U("no dump registered for "+oa);break a}oa||(va=a.Lc||"db")}else a.Lc=va;if("dh"==va){var hn=oa,jn=Oa,kn="",ln=0,tb=a.Oa,wc=a.qa;if(wc.length){var Eb=+hn||a.Zb,ce=+jn||10;isNaN(Eb)?Eb=ce:kn="more ";Eb>wc.length&&(a.U("note: only "+wc.length+" available"),Eb=wc.length);tb-=Eb;0>tb&&(null==wc[wc.length-1].ga?(Eb=tb+Eb,tb=0):tb+=wc.length);var li=[];"call"==jn&&(ce=
1E5,li=["CALL"]);for(void 0!==hn&&a.U(Eb+" instructions earlier:");0<ce&&tb!=a.Oa;){var ub=wc[tb++];if(null==ub.ga)break;var ub=Dp(a,ub.Xa,ub.ga,ub.Ia,ub.type,ub.Xb,ub.rc),mn=Mq(a,ub,"history",Eb--);(!li.length||0<=mn.indexOf(li[0]))&&a.U(mn);ub.Re&&(tb+=ub.Re,ce-=ub.Re,Eb-=ub.Re);tb>=wc.length&&(tb=0);a.Zb=Eb;ln++;ce--}}ln||(a.U("no "+kn+"history available"),a.Zb=void 0)}else if("di"==va)da.shift(),a.U("no information");else{var de=tq(a,oa);if(de&&(null!=de.ga||null!=de.Ia)){var sg=0;Oa&&("l"==Oa.charAt(0)&&
(Oa=Oa.substr(1)||ab),sg=Zp(a,Oa)>>>0,65536<sg&&(sg=65536));for(var ud="",Ar=(sg||128)+15>>4||1,mi="dd"==va?4:"dw"==va?2:1,nn=0;nn<Ar;nn++){for(var tg=0,ni=0,We="",oi="",oa=mq(de),pi=0;16>pi;pi++){var ug=a.Wa(de,1),tg=tg|ug<<(ni++<<3);ni==mi&&(We+=l(tg,2*mi),We+=1==mi?7==pi?"-":" ":" ",tg=ni=0);oi+=32<=ug&&128>ug?String.fromCharCode(ug):"."}ud&&(ud+="\n");ud+=oa+" "+We+" "+oi}ud&&a.U(ud);a.Jb=de}}}}}break;case "e":if("else"==g[0])break;var vg=1,on=255,pn=a.Wa,qn=a.tc;"ew"==g[0]&&(vg=2,on=65535,
pn=a.va,qn=a.pb);var rn=vg<<1,sn=g[1];if(null==sn)a.U("edit memory commands:"),a.U("\teb [a] [...] edit bytes at address a"),a.U("\tew [a] [...] edit words at address a");else{var wg=tq(a,sn);if(wg)for(var xg=2;xg<g.length;xg++){var Xe=vq(a,g[xg]);if(void 0===Xe){a.U("unrecognized value: "+g[xg]);break}Xe&~on&&a.U("warning: "+l(Xe)+" exceeds "+vg+"-byte value");var Br=pn.call(a,wg);a.U("changing "+mq(wg)+" from 0x"+l(Br,rn)+" to 0x"+l(Xe,rn));qn.call(a,wg,Xe,vg)}}break;case "f":ar(a,g[1]);break;
case "g":a:{var tn=g[1],Cr=b;"gt"==g[0]&&(a.lb=!0);if(void 0!==tn){var qi=tq(a,tn,!0);if(!qi)break a;wq(a,qi,Cr);a.Nd(a.A,qi,!0)}a.Je(!0)||c||a.U("cpu busy or unavailable, run command ignored")}break;case "h":var ri;a.ra.Ob?(ri="halting",a.bc()):ri="already halted";c||a.U(ri);break;case "i":if("if"==g[0]){var si;var Ye=b.substr(2),Ye=qa(Ye);vq(a,Ye)?(c||a.U("true: "+Ye),si=!0):(c||a.U("false: "+Ye),si=!1);si||(d=!1);break}if("int"==g[0]){var yg;a:switch(Zp(a,g[1])){case 19:Yj(a,19,a.M.Na,!0);a.Ha=
a.wa;yg=!0;break a;case 33:Yj(a,33,a.M.Na,!0);a.Ha=a.wa;yg=!0;break a;default:yg=!1}yg||(d=!1);break}var ti=g[1];if(ti&&"?"!=ti){var ui=Zp(a,ti);if(void 0!==ui){var Dr=oc(a.ja,ui,1);a.U(ia(ui)+": "+ga(Dr))}}else a.U("input commands:"),a.U("\ti [p]\tread port [p]"),a.U("warning: port accesses can affect hardware state");break;case "k":var Er=g[0];if("?"==g[1])a.U("stack trace commands:"),a.U("\tk\tshow frame addresses"),a.U("\tks\tshow symbol information");else{var vi=0,un=a.M.Ca.ga,Ze=Dp(a),Wc=Dp(a,
u(a.M),a.M.Aa.ga);for(a.U("stack trace for "+mq(Wc));10>vi;){for(var xc=null,Fr=256;Wc.Xa>>>0<a.M.Mg>>>0;){Ze.Xa=a.vb(Wc,!0);if(null==Wc.Ia||!Fr--)break;Ze.ga=un;if(xc=fr(a,Ze))break;Ze.ga=a.vb(Wc);if(xc=fr(a,Ze,!0)){un=a.vb(Wc,!0);0<xc.indexOf("INT")&&a.vb(Wc,!0);break}}if(!xc||null==xc)break;var vn=null;if("ks"==Er){var wn=xc.match(/[0-9A-F]+$/);wn&&(vn=cr(a,wn[0]))}xc=pa(xc,50)+" ;"+(vn||"stack="+mq(Wc));a.U(xc);vi++}vi||a.U("no return addresses found")}break;case "l":if("ln"==g[0]){cr(a,g[1],
!0);break}dr(a,g);break;case "m":if("mouse"==g[0]){var wi=g[1],zg=g[2];if(a.Y){var xn=1;"-"==zg.charAt(0)&&(xn=-1,zg=zg.substr(1));var vd=Zp(a,zg,wi);if(void 0!==vd)switch(vd=vd*xn|0,wi){case "x":a.Y.Ff(vd,0);break;case "y":a.Y.Ff(0,vd);break;case "click":a.Y.ge(vd,!0);a.Y.ge(vd,!1);break;default:a.U("unknown action: "+wi)}}else a.U("no mouse");break}a:{var yc,zc=null,Va=g[1];"?"==Va&&(Va=void 0);if(void 0!==Va){var wd=0;if("all"==Va)wd=1610481663,Va=null;else if("on"==Va)zc=!0,Va=null;else if("off"==
Va)zc=!1,Va=null;else{"keys"==Va&&(Va="key");"kbd"==Va&&(Va="keyboard");for(yc in Rp)if(Va==yc){wd=Rp[yc];zc=!!(a.wc&wd);break}if(!wd){a.U("unknown message category: "+Va);break a}}wd&&("on"==g[2]?(a.wc|=wd,zc=!0):"off"==g[2]&&(a.wc&=~wd,zc=!1))}var Gr=0,Xc="";for(yc in Rp)if(!Va||Va==yc){var Hr=!!(a.wc&Rp[yc]);if(null===zc||zc==Hr)Xc&&(Xc+=","),++Gr%10||(Xc+="\n\t"),"key"==yc&&(yc="keys"),Xc+=yc}void 0===Va&&a.U("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.U((null!==zc?
(Oa=Oa.substr(1)||ab),sg=Zp(a,Oa)>>>0,65536<sg&&(sg=65536));for(var vd="",Ar=(sg||128)+15>>4||1,mi="dd"==va?4:"dw"==va?2:1,nn=0;nn<Ar;nn++){for(var tg=0,ni=0,Ve="",oi="",oa=mq(de),pi=0;16>pi;pi++){var ug=a.Wa(de,1),tg=tg|ug<<(ni++<<3);ni==mi&&(Ve+=l(tg,2*mi),Ve+=1==mi?7==pi?"-":" ":" ",tg=ni=0);oi+=32<=ug&&128>ug?String.fromCharCode(ug):"."}vd&&(vd+="\n");vd+=oa+" "+Ve+" "+oi}vd&&a.U(vd);a.Jb=de}}}}}break;case "e":if("else"==g[0])break;var vg=1,on=255,pn=a.Wa,qn=a.tc;"ew"==g[0]&&(vg=2,on=65535,
pn=a.va,qn=a.pb);var rn=vg<<1,sn=g[1];if(null==sn)a.U("edit memory commands:"),a.U("\teb [a] [...] edit bytes at address a"),a.U("\tew [a] [...] edit words at address a");else{var wg=tq(a,sn);if(wg)for(var xg=2;xg<g.length;xg++){var We=vq(a,g[xg]);if(void 0===We){a.U("unrecognized value: "+g[xg]);break}We&~on&&a.U("warning: "+l(We)+" exceeds "+vg+"-byte value");var Br=pn.call(a,wg);a.U("changing "+mq(wg)+" from 0x"+l(Br,rn)+" to 0x"+l(We,rn));qn.call(a,wg,We,vg)}}break;case "f":ar(a,g[1]);break;
case "g":a:{var tn=g[1],Cr=b;"gt"==g[0]&&(a.lb=!0);if(void 0!==tn){var qi=tq(a,tn,!0);if(!qi)break a;wq(a,qi,Cr);a.Nd(a.A,qi,!0)}a.Je(!0)||c||a.U("cpu busy or unavailable, run command ignored")}break;case "h":var ri;a.ra.Ob?(ri="halting",a.bc()):ri="already halted";c||a.U(ri);break;case "i":if("if"==g[0]){var si;var Xe=b.substr(2),Xe=qa(Xe);vq(a,Xe)?(c||a.U("true: "+Xe),si=!0):(c||a.U("false: "+Xe),si=!1);si||(d=!1);break}if("int"==g[0]){var yg;a:switch(Zp(a,g[1])){case 19:Yj(a,19,a.M.Na,!0);a.Ha=
a.wa;yg=!0;break a;case 33:Yj(a,33,a.M.Na,!0);a.Ha=a.wa;yg=!0;break a;default:yg=!1}yg||(d=!1);break}var ti=g[1];if(ti&&"?"!=ti){var ui=Zp(a,ti);if(void 0!==ui){var Dr=oc(a.ja,ui,1);a.U(ia(ui)+": "+ga(Dr))}}else a.U("input commands:"),a.U("\ti [p]\tread port [p]"),a.U("warning: port accesses can affect hardware state");break;case "k":var Er=g[0];if("?"==g[1])a.U("stack trace commands:"),a.U("\tk\tshow frame addresses"),a.U("\tks\tshow symbol information");else{var vi=0,un=a.M.Ca.ga,Ye=Dp(a),Wc=Dp(a,
u(a.M),a.M.Aa.ga);for(a.U("stack trace for "+mq(Wc));10>vi;){for(var xc=null,Fr=256;Wc.Xa>>>0<a.M.Mg>>>0;){Ye.Xa=a.vb(Wc,!0);if(null==Wc.Ia||!Fr--)break;Ye.ga=un;if(xc=fr(a,Ye))break;Ye.ga=a.vb(Wc);if(xc=fr(a,Ye,!0)){un=a.vb(Wc,!0);0<xc.indexOf("INT")&&a.vb(Wc,!0);break}}if(!xc||null==xc)break;var vn=null;if("ks"==Er){var wn=xc.match(/[0-9A-F]+$/);wn&&(vn=cr(a,wn[0]))}xc=pa(xc,50)+" ;"+(vn||"stack="+mq(Wc));a.U(xc);vi++}vi||a.U("no return addresses found")}break;case "l":if("ln"==g[0]){cr(a,g[1],
!0);break}dr(a,g);break;case "m":if("mouse"==g[0]){var wi=g[1],zg=g[2];if(a.Y){var xn=1;"-"==zg.charAt(0)&&(xn=-1,zg=zg.substr(1));var wd=Zp(a,zg,wi);if(void 0!==wd)switch(wd=wd*xn|0,wi){case "x":a.Y.Ff(wd,0);break;case "y":a.Y.Ff(0,wd);break;case "click":a.Y.ge(wd,!0);a.Y.ge(wd,!1);break;default:a.U("unknown action: "+wi)}}else a.U("no mouse");break}a:{var yc,zc=null,Va=g[1];"?"==Va&&(Va=void 0);if(void 0!==Va){var xd=0;if("all"==Va)xd=1610481663,Va=null;else if("on"==Va)zc=!0,Va=null;else if("off"==
Va)zc=!1,Va=null;else{"keys"==Va&&(Va="key");"kbd"==Va&&(Va="keyboard");for(yc in Rp)if(Va==yc){xd=Rp[yc];zc=!!(a.wc&xd);break}if(!xd){a.U("unknown message category: "+Va);break a}}xd&&("on"==g[2]?(a.wc|=xd,zc=!0):"off"==g[2]&&(a.wc&=~xd,zc=!1))}var Gr=0,Xc="";for(yc in Rp)if(!Va||Va==yc){var Hr=!!(a.wc&Rp[yc]);if(null===zc||zc==Hr)Xc&&(Xc+=","),++Gr%10||(Xc+="\n\t"),"key"==yc&&(yc="keys"),Xc+=yc}void 0===Va&&a.U("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.U((null!==zc?
zc?"messages on: ":"messages off: ":"message categories:\n\t")+(Xc||"none"));Fp(a)}break;case "o":var xi=g[1],Ir=g[2];if(xi&&"?"!=xi){var yi=Zp(a,xi,"port #"),zi=Zp(a,Ir);void 0!==yi&&void 0!==zi&&(sc(a.ja,yi,1,zi),a.U(ia(yi)+": "+ga(zi)))}else a.U("output commands:"),a.U("\to [p] [b]\twrite byte [b] to port [p]"),a.U("warning: port accesses can affect hardware state");break;case "p":if("print"==g[0]){er(a,b.substr(5));break}var yn="pr"==g[0]?1:0,ee=1+yn;if(a.P)a.U("step in progress");else{var Ag,
zn=!1,nb=Dp(a,v(a.M),a.M.Ca.ga);do switch(Ag=!1,a.Wa(nb)){case 38:case 46:case 54:case 62:case 100:case 101:case 102:case 103:case 240:oq(a,nb,1);Ag=!0;break;case 204:case 206:a.P=ee;oq(a,nb,1);break;case 205:case 224:case 225:case 226:a.P=ee;oq(a,nb,nb.Xb?4:2);break;case 232:a.P=ee;oq(a,nb,nb.Xb?5:3);break;case 154:a.P=ee;oq(a,nb,nb.Xb?7:5);break;case 255:var An=a.vb(nb)&14591;if(4351==An||6399==An)a.P=ee,Mq(a,nb);break;case 243:case 242:oq(a,nb,1);zn=Ag=!0;break;case 108:case 109:case 110:case 111:case 164:case 165:case 166:case 167:case 170:case 171:case 172:case 173:case 174:case 175:zn&&
(a.P=ee,oq(a,nb,1))}while(Ag);a.P?(a.Nd(a.A,nb,!0),a.Je()||(a.M.Vc(),a.P=0)):gr(a,yn?"tr":"t")}break;case "r":if("reset"==b){a.ia&&a.ia.reset();break}Eq(a,g);break;case "t":gr(a,g[0],g[1]);break;case "u":Fq(a,g[1],g[2],8);break;case "v":if("var"==g[0]){br(a,b.substr(3))||(d=!1);break}a.U("PCjs version 1.20.9 ("+a.M.na+",RELEASE,NOPREFETCH"+(Ab?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)");break;case "x":a:if(g[1]&&"?"!=g[1])switch(g[1]){case "cs":var $e;void 0!==g[3]&&($e=+g[3]);switch(g[2]){case "int":a.M.ba.gf=
$e;break;case "start":a.M.ba.Hf=$e;break;case "stop":a.M.ba.jf=$e;break;default:a.U("unknown cs option");break a}void 0!==$e&&Vc(a.M);a.U("checksums "+(a.M.ra.Xe?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(dd(a.M,+g[2])||a.U("warning: using 1x multiplier, previous target not reached"));a.U("target speed: "+(a.M.ba.Ce.toFixed(2)+"Mhz")+" ("+a.M.ba.Td+"x)");break;default:a.U("unknown option: "+g[1])}else a.U("execution options:"),a.U("\tcs int #\tset checksum cycle interval to #"),a.U("\tcs start #\tset checksum cycle start count to #"),
a.U("\tcs stop #\tset checksum cycle stop count to #"),a.U("\tsp #\t\tset speed multiplier to #");break;case "?":if(g[1]){er(a,b.substr(1));break}var af="commands:",Ai;for(Ai in Kp)af+="\n"+pa(Ai,7)+Kp[Ai];Of(a)||(af+="\nnote: frequency/history disabled if no exec breakpoints");a.U(af);break;default:a.U("unknown command: "+b),d=!1}}}catch(Bn){a.U("debugger error: "+(Bn.stack||Bn.message)),d=!1}return d}function Hp(a,b,c){b=xq(a,b,c);for(var d in b)if(!Lq(a,b[d]))return!1;return!0}
(a.P=ee,oq(a,nb,1))}while(Ag);a.P?(a.Nd(a.A,nb,!0),a.Je()||(a.M.Vc(),a.P=0)):gr(a,yn?"tr":"t")}break;case "r":if("reset"==b){a.ia&&a.ia.reset();break}Eq(a,g);break;case "t":gr(a,g[0],g[1]);break;case "u":Fq(a,g[1],g[2],8);break;case "v":if("var"==g[0]){br(a,b.substr(3))||(d=!1);break}a.U("PCjs version 1.20.9 ("+a.M.na+",RELEASE,NOPREFETCH"+(Ab?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)");break;case "x":a:if(g[1]&&"?"!=g[1])switch(g[1]){case "cs":var Ze;void 0!==g[3]&&(Ze=+g[3]);switch(g[2]){case "int":a.M.ba.gf=
Ze;break;case "start":a.M.ba.Hf=Ze;break;case "stop":a.M.ba.jf=Ze;break;default:a.U("unknown cs option");break a}void 0!==Ze&&Vc(a.M);a.U("checksums "+(a.M.ra.Xe?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(dd(a.M,+g[2])||a.U("warning: using 1x multiplier, previous target not reached"));a.U("target speed: "+(a.M.ba.Ce.toFixed(2)+"Mhz")+" ("+a.M.ba.Td+"x)");break;default:a.U("unknown option: "+g[1])}else a.U("execution options:"),a.U("\tcs int #\tset checksum cycle interval to #"),a.U("\tcs start #\tset checksum cycle start count to #"),
a.U("\tcs stop #\tset checksum cycle stop count to #"),a.U("\tsp #\t\tset speed multiplier to #");break;case "?":if(g[1]){er(a,b.substr(1));break}var $e="commands:",Ai;for(Ai in Kp)$e+="\n"+pa(Ai,7)+Kp[Ai];Of(a)||($e+="\nnote: frequency/history disabled if no exec breakpoints");a.U($e);break;default:a.U("unknown command: "+b),d=!1}}}catch(Bn){a.U("debugger error: "+(Bn.stack||Bn.message)),d=!1}return d}function Hp(a,b,c){b=xq(a,b,c);for(var d in b)if(!Lq(a,b[d]))return!1;return!0}
Sa(function(){for(var a=qb(document,"pcjs","debugger"),b=0;b<a.length;b++){var c=a[b],d=mb(c),d=new Cp(d);pb(d,c)}});function df(a,b,c){this.id=a.id;this.key=ir(a,b,c);this.ma=a.ma;jr(this,a.xk)}function ir(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}
df.prototype={constructor:df,value:function(){return this[this.id]},data:function(){return this[this.id]},load:function(a){return a?(this[this.id]=a,this.A=!0):this.A?!0:Fa()&&(a=Ga(this.key))?(this[this.id]=a,this.A=!0):!1},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){jr(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 jr(a,b){a[a.id]={};b&&ef(a,"parms",b);a.A=!1}function kr(a){var b=!0;if(Fa()){var c=JSON.stringify(a[a.id]);Ha(a.key,c)||(Ba("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function lr(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){Ba(c.message||c),b=!1}return b}function mr(a,b){return a[a.id][b]||null}function ef(a,b,c){try{a[a.id][b]=c}catch(d){}}
@ -1226,6 +1226,8 @@ function zr(a,b,c,d,e,f,g){function k(a,f){if(f)g(f,null);else{if(c){var k=b;k&&
k.async=!1,k.loadXML(a)):k=(new window.DOMParser).parseFromString(a,"text/xml")}catch(B){k=null,a=B.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,k)}}a?e?Jr(a,f,k):k(a,null):g("no data"+(b?" for file: "+b:""),null)}
function Jr(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");za(e,!0,null,null,function(f,g,k){if(k||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(f=d[3])if(k=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var q=k[0],r,x=/( [a-z]+=)(['"])(.*?)\2/g;r=x.exec(f);)q=0>q.indexOf(r[1])?q.replace(">",r[0]+">"):q.replace(new RegExp(r[1]+"(['\"])(.*?)\\1"),r[0]);k[0]!=q&&(g=g.replace(k[0],q))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);Jr(a,b,c)}})}else c(a,null)}
function Kr(a,b,c,d){function e(a){if(void 0===k){var b=g&&qb(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=na(a))}function f(a){e("Error: "+a);q&&(--xr||Ua(!0));q=!1}var g,k,q=!0;xr++;hb[a]={};try{if(g=document.getElementById(a)){c||(c="/versions/pcjs/1.20.9/components.xsl");var r=function(d,k){k?(ib(a,"xml",d),yr(c,null,null,!1,e,function(c,d){if(d)if(ib(a,"xsl",c),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var q=k.transformNode(d);q?(g.outerHTML=q,--xr||Ua(!0)):
f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(q=new XSLTProcessor,q.importStylesheet(d),(q=q.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(q,g),--xr||Ua(!0)):f("invalid machine element: "+a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(c)})):f(d)};"<"!=b.charAt(0)?yr(b,a,d,!0,e,r):zr(b,null,a,d,!1,e,r)}else f("missing machine element: "+a)}catch(x){f(x.message)}return q}
window.embedPC=function(a,b,c,d){Ua(!1);return Kr(a,b,c,d)};window.savePC=function(a){var b=lb("Computer",a),c=lb("Debugger",a);if(b)return za("/versions/pcjs/null/pc"+(c?"-dbg":"")+".js"),!0;Ba("Unable to identify machine '"+a+"'");return!1};window.enableEvents=Ua;window.sendEvent=Wa;})();
function Kr(a,b,c,d){function e(a){if(void 0===k){var b=g&&qb(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=na(a))}function f(a){e("Error: "+a);q&&(--xr||Ua(!0));q=!1}var g,k,q=!0;xr++;hb[a]={};try{if(g=document.getElementById(a)){c||(c="/versions/pcjs/1.20.9/components.xsl");var r=function(d,k){k?(ib(a,b,d),yr(c,null,null,!1,e,function(d,q){if(q)if(ib(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var r=k.transformNode(q);r?(g.outerHTML=r,--xr||Ua(!0)):f("transformNodeToObject failed")}else document.implementation&&
document.implementation.createDocument?(r=new XSLTProcessor,r.importStylesheet(q),(r=r.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(r,g),--xr||Ua(!0)):f("invalid machine element: "+a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)})):f(d)};"<"!=b.charAt(0)?yr(b,a,d,!0,e,r):zr(b,null,a,d,!1,e,r)}else f("missing machine element: "+a)}catch(x){f(x.message)}return q}
function Lr(a,b,c,d){if(b&&(c=d[0],b=b.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/))){d=hb[c];var e={},f;for(f in d){var g=d[f];if("xml"==f)for(var k,q=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;k=q.exec(d[f]);){var r=k[2];r&&(d[r]?console.log("saving disk: '"+r):g=g.replace(k[0],""))}console.log("saving resource: '"+f+"' ("+g.length+" bytes)");e[f]=g}f=JSON.stringify(e);b=b[1]+"var resources="+f+";"+b[2]+b[3];console.log("saving machine: '"+c+"' ("+b.length+" bytes)");f="data:application/octet-stream;base64,"+
btoa(b);c=document.createElement("a");"string"==typeof c.download?(c.href=f,c.download=ja(a,!0)+".json",document.body.appendChild(c),c.click(),document.body.removeChild(c)):window.open(f)}}window.embedPC=function(a,b,c,d){Ua(!1);return Kr(a,b,c,d)};window.savePC=function(a,b){var c=lb("Computer",a),d=lb("Debugger",a);if(c)return b||(b="/versions/pcjs/1.20.9/pc"+(d?"-dbg":"")+".js"),za(b,!0,null,null,Lr,[a,c,d]),!0;Ba("Unable to identify machine '"+a+"'");return!1};window.enableEvents=Ua;
window.sendEvent=Wa;})();

View file

@ -3,16 +3,16 @@ function ca(a,b){var c;if(a){b||(b=16);if("$"==a.charAt(0))b=16,a=a.substr(1);el
function da(a,b){var c="";void 0===b?b=8:8<b&&(b=8);if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;){var d=a&15,d=d+(0<=d&&9>=d?48:55),c=String.fromCharCode(d)+c;a>>=4}return c}function ea(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0<d&&(c=c.substr(0,d));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c}function fa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}
var ga={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function ha(a){return a.replace(/[&<>"']/g,function(a){return ga[a]})}var ia=Date.now||function(){return+new Date};function la(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}var ma=[31,28,31,30,31,30,31,31,30,31,30,31];
function na(a,b){var c=0,d=1,e;for(e in a){if(d>=arguments.length)break;var k=a[e],l=arguments[d++],c=c&~k.qg|l<<k.shift&k.qg}return c}function oa(a,b){return(b&a.qg)>>a.shift}
function pa(a,b,c,d,e,k){b=!!b;var l=0,p=null,q=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");b&&(q.onreadystatechange=function(){4===q.readyState&&(p=q.responseText,200==q.status||!q.status&&p.length&&"file:"==(window?window.location.protocol:"file:")||(l=q.status||-1),e&&(d?e.call(d,a,p,l,k):e(a,p,l,k)))});if(c){var w="",B;for(B in c)c.hasOwnProperty(B)&&(w&&(w+="&"),w+=B+"="+encodeURIComponent(c[B]));w=w.replace(/%20/g,"+");q.open("POST",a,b);q.setRequestHeader("Content-type",
"application/x-www-form-urlencoded");q.send(w)}else q.open("GET",a,b),q.send();c=[];b||(p=q.responseText,200!=q.status&&(l=q.status||-1),e&&(d?e.call(d,a,p,l,k):e(a,p,l,k)),c=[l,p]);return c}function qa(){return"http://"+(window?window.location.host:"www.pcjs.org")}function ra(a){window&&window.alert(a)}function sa(a){var b=!1;window&&(b=window.confirm(a));return b}var ta=null;
function pa(a,b,c,d,e,k){var l=0,p=null;if(resources&&(p=resources[a]))return e&&(d?e.call(d,a,p,l,k):e(a,p,l,k)),[l,p];var q=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");b&&(q.onreadystatechange=function(){4===q.readyState&&(p=q.responseText,200==q.status||!q.status&&p.length&&"file:"==(window?window.location.protocol:"file:")||(l=q.status||-1),e&&(d?e.call(d,a,p,l,k):e(a,p,l,k)))});if(c){var v="",B;for(B in c)c.hasOwnProperty(B)&&(v&&(v+="&"),v+=
B+"="+encodeURIComponent(c[B]));v=v.replace(/%20/g,"+");q.open("POST",a,!!b);q.setRequestHeader("Content-type","application/x-www-form-urlencoded");q.send(v)}else q.open("GET",a,!!b),q.send();c=[];b||(p=q.responseText,200!=q.status&&(l=q.status||-1),e&&(d?e.call(d,a,p,l,k):e(a,p,l,k)),c=[l,p]);return c}function qa(){return"http://"+(window?window.location.host:"www.pcjs.org")}function ra(a){window&&window.alert(a)}function sa(a){var b=!1;window&&(b=window.confirm(a));return b}var ta=null;
function ua(){if(null==ta){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}ta=a}return ta}function va(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}function wa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}
function xa(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}var ya={init:[],show:[],exit:[]},za=!1,Aa=!0;function Da(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ea(a){ya.init.push(a)}
function Fa(a){if(Aa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){ra("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.")}}function Ga(a){!Aa&&a?(Aa=!0,za&&Ha("init")):Aa=a}function Ha(a){ya[a]&&Fa(ya[a])}Da("onload",function(){za=!0;Fa(ya.init)});Da("onpageshow",function(){Fa(ya.show)});Da(xa("Opera")||xa("iOS")?"onunload":"onbeforeunload",function(){Fa(ya.exit)});
function Ia(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.Dh=b.comment;this.Ej=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.nf=this.id.substr(0,b),this.mf=this.id.substr(b+1)):this.mf=this.id;this[a]=c;this.ja={me:!1,Nc:!1,lg:!1,Qb:!1,Yc:!1};this.Ff=null;this.ja.Yc=!1;this.pa={};this.Ta=null;Ja.push(this)}var Ka=void 0,La={};
if(window){Ka||(Ka=window.location.search.substr(1));for(var Ma,Na=/\+/g,Oa=/([^&=]+)=?([^&]*)/g;Ma=Oa.exec(Ka);)La[decodeURIComponent(Ma[1].replace(Na," "))]=decodeURIComponent(Ma[2].replace(Na," "))}function Pa(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
function Qa(a,b){b||(b=Ia);a.prototype=Pa(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var Ja=[],Ra={};function Sa(a,b,c){Ra[a]&&(Ra[a][b]||(Ra[a][b]=[]),Ra[a][b].push(c))}function Ta(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<Ja.length;b++){var d=Ja[b];a&&d.id.indexOf(a)||c.push(d)}return c}function Ua(a,b){if(void 0!==a){var c;b&&0<(c=b.indexOf("."))&&(a=b.substr(0,c+1)+a);for(c=0;c<Ja.length;c++)if(Ja[c].id===a)return Ja[c]}return null}
function Qa(a,b){b||(b=Ia);a.prototype=Pa(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var Ja=[],Ra={};function Sa(a,b,c){Ra[a]&&(Ra[a][b]=c)}function Ta(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<Ja.length;b++){var d=Ja[b];a&&d.id.indexOf(a)||c.push(d)}return c}function Ua(a,b){if(void 0!==a){var c;b&&0<(c=b.indexOf("."))&&(a=b.substr(0,c+1)+a);for(c=0;c<Ja.length;c++)if(Ja[c].id===a)return Ja[c]}return null}
function Va(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<Ja.length;d++)if(c)c==Ja[d]&&(c=null);else if(!(a!=Ja[d].type||b&&Ja[d].id.indexOf(b)))return Ja[d]}return null}function Wa(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){ra(c.message+" ("+a+")")}return b}function Xa(a,b,c){var d;b&&(void 0===d&&(d="Panel"),(d=Va(d,a.id))&&(b=d.pa[b])&&a.Eb(null,c,b))}document&&!document.ELEMENT_NODE&&(document.ELEMENT_NODE=1);
function Ya(a,b){for(var c=Za(b.parentNode,"pcjs-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,k=0;k<e.length;k++){var l=e[k];if(l.nodeType===document.ELEMENT_NODE){var p=l.getAttribute("class");if(p)for(var q=p.split(" "),w=0;w<q.length;w++)switch(p=q[w],p){case "pcjs-binding":(p=Wa(l))&&p.binding&&a.Eb(p.type,p.binding,l,p.value),w=q.length}}}}
function Ya(a,b){for(var c=Za(b.parentNode,"pcjs-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,k=0;k<e.length;k++){var l=e[k];if(l.nodeType===document.ELEMENT_NODE){var p=l.getAttribute("class");if(p)for(var q=p.split(" "),v=0;v<q.length;v++)switch(p=q[v],p){case "pcjs-binding":(p=Wa(l))&&p.binding&&a.Eb(p.type,p.binding,l,p.value),v=q.length}}}}
function Za(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}
Ia.prototype={constructor:Ia,parent:null,toString:function(){return this.name?this.name:this.id||this.type},Eb:function(a,b,c){switch(b){case "clear":return this.pa[b]||(this.pa[b]=c,c.onclick=function(a){return function(){a.pa.print&&(a.pa.print.value="")}}(this)),!0;case "print":return this.pa[b]||(this.jg=this.pa[b]=c,c.value="",this.pc=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),
this.Ha=function(a,b,c){this.pc(a,"notice",c)}),!0;default:return!1}},log:function(){},pc:function(){},status:function(a){this.pc(this.mf+": "+a)},Ha:function(a,b){b||ra(a)},Tb:function(){return this.ja.Qb=!0},Sb:function(a,b){b&&(this.ja.Qb=!1);return!0}};function $a(a,b){if(a.ja.lg)return a.ja.Nc&&(a.ja.Nc=!1),a.ja.lg=!1;if(a.ja.Yc)return a.pc(a.toString()+" error"),!1;a.ja.Nc=b;return a.ja.Nc}function ab(a,b){if(!a.ja.Yc&&(a.ja.me=!1!==b,a.ja.me)){var c=a.Ff;a.Ff=null;c&&c()}}
@ -32,11 +32,11 @@ a.La=a.jc=this.La;ab(this)}Qa(rb);var nb,tb={ej:20,count:8,Xm:1,type:3},ub=0,vb;
function yb(a,b,c,d,e){for(var k=b>>>a.ha;0<c&&k<a.W.length;){var l=a.W[k],p=k*a.yb,q=c>a.yb?a.yb:c;if(l&&l.size){if(l.type==d&&l.controller==e){if(b+c<=l.ee)return l.Be+=l.ee-b,l.ee=b,!0;if(b>=l.ee+l.Be){q=l.size-(b-p);q>c&&(q=c);l.Be=b-l.ee+q;c-=q;b=p+a.yb;continue}}return zb(a,1,b,c)}l=a.W[k];b=new g(b,q,a.yb,d,e);sb(b,a.Ta,l);a.W[k++]=b;b=p+a.yb;c-=q}return 0>=c?(a=a.A,a.Ua&-2147483648&&Ab(a),!0):zb(a,2,b,c)}
function xb(a,b){if(32==a.F)b?a.H&&(Cb(a,1048576,1048576,a.H),a.H=null):a.H||(a.H=Db(a,1048576,1048576),Cb(a,1048576,1048576,Db(a,0,1048576)));else if(20<a.F){var c=a.La&-1048577|(b?1048576:0);if(c!=a.La&&(a.La=c,a.A)){var d=a.A;d.La=d.jc=c}}}f.Yf=function(a,b,c,d){if(!(a&this.B||!b||b&this.B)){for(var e=a>>>this.ha;0<b;){var k=this.W[e];if(!k.controller)return zb(this,3,a,b,d);Eb(k,c,!0);b-=this.yb;e++}return!0}return zb(this,4,a,b)};
function Fb(a,b,c){if(!(b&a.B||!c||c&a.B)){for(var d=b>>>a.ha;0<c;){var e=a.W[d];b=new g(b);sb(b,a.Ta,e);a.W[d++]=b;b=d*a.yb;c-=a.yb}a=a.A;a.Ua&-2147483648&&Ab(a);return!0}return zb(a,5,b,c)}function Db(a,b,c){var d=[];for(b>>>=a.ha;0<c&&b<a.W.length;)d.push(a.W[b++]),c-=a.yb;return d}
function Cb(a,b,c,d,e){for(var k=0,l=b>>>a.ha;0<c&&l<a.W.length;){var p=d[k++];if(!p)break;if(void 0!==e){var q=new g(b),w=q,B=e,G=a.Ta;w.id=p.id|1;w.Be=p.Be;w.size=p.size;B&&(w.type=B,w.K=B==Gb);db?(w.S=p.S,w.O=p.O,w.Pa=p.Pa,w.td=p.td,w.aa=p.aa,Eb(w,Hb?Ib:Jb)):(w.aa=p.aa,Eb(w,Kb));sb(w,G,p);p=q}a.W[l++]=p;c-=a.yb}}f.Lb=function(a){return this.W[(a&this.La)>>>this.ha].cc(a&this.B,a)};
function Cb(a,b,c,d,e){for(var k=0,l=b>>>a.ha;0<c&&l<a.W.length;){var p=d[k++];if(!p)break;if(void 0!==e){var q=new g(b),v=q,B=e,G=a.Ta;v.id=p.id|1;v.Be=p.Be;v.size=p.size;B&&(v.type=B,v.K=B==Gb);db?(v.S=p.S,v.O=p.O,v.Pa=p.Pa,v.td=p.td,v.aa=p.aa,Eb(v,Hb?Ib:Jb)):(v.aa=p.aa,Eb(v,Kb));sb(v,G,p);p=q}a.W[l++]=p;c-=a.yb}}f.Lb=function(a){return this.W[(a&this.La)>>>this.ha].cc(a&this.B,a)};
f.ma=function(a){var b=a&this.B,c=(a&this.La)>>>this.ha;return b!=this.B?this.W[c].df(b,a):this.W[c++].cc(b,a)|this.W[c&this.D].cc(0,a+1)<<8};function Lb(a,b){var c=b&a.B,d=(b&a.La)>>>a.ha;return c!=a.B?a.W[d].ef(c,b):a.W[d++].Cd(c,b)|a.W[d&a.D].Cd(0,b+1)<<8}f.ka=function(a){var b=a&this.B,c=(a&this.La)>>>this.ha;if(b<this.B-2)return this.W[c].Td(b,a);for(var d=0,e=4,k=0,l=4-(b&3);e--;)d|=this.W[c].cc(b++,a++)<<k,--l||(c=c+1&this.D,b=0),k+=8;return d};
f.Lc=function(a,b){this.W[(a&this.La)>>>this.ha].dc(a&this.B,b&255,a)};f.gb=function(a,b){var c=a&this.B,d=(a&this.La)>>>this.ha;c!=this.B?this.W[d].lf(c,b&65535,a):(this.W[d++].dc(c,b&255,a),this.W[d&this.D].dc(0,b>>8&255,a+1))};function Mb(a,b,c){var d=b&a.B,e=(b&a.La)>>>a.ha;d!=a.B?a.W[e].sh(d,c&65535,b):(a.W[e++].jf(d,c&255,b),a.W[e&a.D].jf(0,c>>8&255,b+1))}
f.$a=function(a,b){var c=a&this.B,d=(a&this.La)>>>this.ha;if(c<this.B-2)this.W[d].kf(c,b);else for(var e=4,k=4-(c&3);e--;)this.W[d].dc(c++,b&255,a++),--k||(d=d+1&this.D,c=0),b>>>=8};function Nb(a,b,c,d){void 0===d&&(d=0);for(var e in c){var k=a,l=+e+d,p=c[e].bind(b);if(void 0!==p)for(var q=+e+d;q<=l;q++)void 0!==k.K[q]?ra("Input port 0x"+da(q,4)+" already registered"):k.K[q]=[p,!1]}}
function Ob(a,b,c,d){for(var e=0,k=0;0<c;){var l=a.K[b],p=a.O[b]||1,q=1==p?255:2==p?65535:-1,w=q;void 0!==l&&l[0]&&(w=l[0](b,d),void 0===w?w=q:w&=q);e|=w<<k;k+=p<<3;b+=p;c-=p}return e}function Pb(a,b,c,d){void 0===d&&(d=0);for(var e in c){var k=a,l=+e+d,p=c[e].bind(b);if(void 0!==p)for(var q=+e+d;q<=l;q++)void 0!==k.N[q]?ra("Output port 0x"+da(q,4)+" already registered"):k.N[q]=[p,!1]}}
function Ob(a,b,c,d){for(var e=0,k=0;0<c;){var l=a.K[b],p=a.O[b]||1,q=1==p?255:2==p?65535:-1,v=q;void 0!==l&&l[0]&&(v=l[0](b,d),void 0===v?v=q:v&=q);e|=v<<k;k+=p<<3;b+=p;c-=p}return e}function Pb(a,b,c,d){void 0===d&&(d=0);for(var e in c){var k=a,l=+e+d,p=c[e].bind(b);if(void 0!==p)for(var q=+e+d;q<=l;q++)void 0!==k.N[q]?ra("Output port 0x"+da(q,4)+" already registered"):k.N[q]=[p,!1]}}
function Qb(a,b,c,d,e){for(var k=0;0<c;){var l=a.N[b],p=a.S[b]||1,q=1==p?255:2==p?65535:-1,q=(d>>>=k)&q;if(void 0!==l&&l[0])l[0](b,q,e);k+=p<<3;b+=p;c-=p}}function zb(a,b,c,d,e){b="Memory block error ("+b+": "+da(c)+","+da(d)+")";e?a.log(b):ra(b);return!1}var Rb;if(db){var Sb=new ArrayBuffer(2);(new DataView(Sb)).setUint16(0,256,!0);Rb=256===(new Uint16Array(Sb))[0]}else Rb=!1;var Hb=Rb;
function g(a,b,c,d,e,k){this.id=Tb+=2;this.aa=null;this.J=0;this.ee=a;this.Be=b;this.size=c||0;this.type=d||Ub;this.K=d==Gb;this.controller=null;this.A=k;sb(this);this.Oa=this.Sh=!1;if(c)if(e)this.controller=e,a=e.Xh(a),this.aa=a[0],this.J=a[1],Eb(this,e.pg());else if(db)this.S=new ArrayBuffer(c),this.O=new DataView(this.S,0,c),this.Pa=new Uint8Array(this.S,0,c),this.td=new Uint16Array(this.S,0,c>>1),this.aa=new Int32Array(this.S,0,c>>2),Eb(this,Hb?Ib:Jb);else{this.aa=Array(c>>2);for(e=0;e<this.aa.length;e++)this.aa[e]=
0;Eb(this,Kb)}else Eb(this)}var Ub=0,Gb=2,Vb="NONE RAM ROM VIDEO H/W UNPAGED PAGED".split(" "),Wb=["black","blue","green","cyan"],Tb=0;function Xb(a){db&&!Hb&&(a=a<<24|a<<8&16711680|a>>8&65280|a>>>24);return a}
@ -54,26 +54,26 @@ if(db)var Jb=[g.prototype.oa,g.prototype.Na,g.prototype.Ca,g.prototype.vb,g.prot
function hc(a,b){Ia.call(this,"CPU",a,hc);var c=a.cycles||b,d=a.multiplier||1;this.Y={};this.Y.$c=c;this.Y.Ad=d;this.Y.Hf=Math.round(this.Y.$c/1E4)/100;this.Y.se=this.Y.Hf*this.Y.Ad;this.ja.Rb=!1;this.ja.Uh=!1;this.ja.kg=a.autoStart;this.ja.Th=!1;c=La.autostart;void 0!==c&&(this.ja.kg="true"==c?!0:"false"==c?!1:null);this.ja.Df=!1;this.Y.Jf=this.Y.ue=0;this.Y.Kf=a.csStart;this.Y.Le=a.csInterval;this.Y.Me=a.csStop;this.Yd=[];this.Dj=this.qh.bind(this);ab(this)}Qa(hc);var ic=["power","reset"];f=hc.prototype;
f.nc=function(a,b,c,d){this.ua=a;this.na=b;this.Ta=d;for(b=0;b<ic.length;b++)(c=this.pa[ic[b]])&&this.ua.Eb(null,ic[b],c);this.nd=kb(a,"FPU");for(b=null;b=kb(a,"Video",b);)this.Yd.push(b);this.T=kb(a,"ChipSet");ab(this)};f.reset=function(){};f.save=function(){return null};f.restore=function(){return!1};f.Tb=function(a,b){if(!b){if(a&&this.restore){jc(this);if(!this.restore(a))return!1;kc(this)}else this.reset();this.pc("No debugger detected")}lc(this);return!0};
f.Sb=function(a){return a?this.save():!0};function mc(a){(!0===a.ja.kg||null===a.ja.kg&&void 0===a.pa.run)&&a.qh()}f.Wh=function(){return 0};function kc(a){void 0===a.Y.Kf&&(a.Y.Kf=0);void 0===a.Y.Le&&(a.Y.Le=-1);void 0===a.Y.Me&&(a.Y.Me=-1);a.ja.Df=0<=a.Y.Kf&&0<a.Y.Le;a.ja.Df&&(a.Y.Jf=0,a.Y.ue=a.Y.Kf-a.Hc)}f.Xd=function(){this.ua&&this.ua.md&&this.ua.md.Xd()};
function nc(a,b){for(var c=0;c<a.Yd.length;c++)oc(a.Yd[c],b);if(a.ua&&a.ua.md&&(c=a.ua.md,c.Ca)){ob(c,18,c.O,c.ya);if(c.Na){var d=c.na,e=c.B,k,l;null==k&&(k=0);null==l&&(l=d.T-k|0);null==e&&(e={ig:0,cd:0,dg:[]});var p=k>>>d.ha;k=k+l-1>>>d.ha;e.ig=0;for(e.cd=0;p<=k;)l=d.W[p],e.ig+=l.size,l.size&&(e.dg.push(na(nb,p,0,0,l.type)),e.cd++),p++;c.B=e;c.sa=c.B.cd*c.na.yb/691200;d=0;c.B.Lh=0;c.B.Fe||(c.B.Fe=[]);var e=-1,p=0,q=-1;for(k=0;k<c.B.cd;k++){var w=c.B.dg[k];l=oa(nb.type,w);w=oa(nb.ej,w);if(l!=e||
w!=q+1)(q=k-p)&&(d+=qb(c,p,q,e)),e=l,p=k;q=w}d+=qb(c,p,k-p,e);e=c.B.Hj!=d;c.B.Hj=d;if(e){e=new ib(0,0,c.O.width,c.O.height);c.B.be=[];p=c.B.cd;for(d=0;d<c.B.Lh;d++)k=c.B.Fe[d].cd,c.B.be.push(jb(e,k,p,!d)),p-=k;for(d=0;d<c.B.be.length;d++)e=c.B.Fe[d],p=k=c.B.be[d],l=c.ya,(q=Wb[e.type])||(q=new hb),l.strokeStyle="black",l.strokeRect(p.x,p.y,p.Fc,p.A),l.fillStyle="string"==typeof q?q:q.toString(),l.fillRect(p.x,p.y,p.Fc,p.A),p=c,l=k,p.W=p.oa,p.T=p.qa,k=l.x+(l.Fc>>1),q=l.y+(l.A>>1),w=l.A,l.Fc<l.A&&(w=
l.Fc,p.la=!0,p.H.save(),p.H.translate(k,q),p.H.rotate(-Math.PI/2),k=q=0),w<p.T&&(p.T=w,p.W=p.T+"px Monaco, Lucida Console, Courier New"),l=q,p.F=k,p.N=l,p=c,e=Vb[e.type]+" ("+(e.cd*c.na.yb/1024|0)+"Kb)",p.H.font=p.W,p.F-=p.H.measureText(e).width>>1,p.N+=(p.T>>1)-2,pb(p,e),p.la&&(p.H.restore(),p.la=!1)}}else pb(c,"This space intentionally left blank");c.context.drawImage(c.O,0,0,c.O.width,c.O.height,c.Wa,c.fb,c.Ka,c.Ma);c.Ca=!1}}f.Tc=function(){this.Yd.length&&this.Yd[0].Tc()};
function nc(a,b){for(var c=0;c<a.Yd.length;c++)oc(a.Yd[c],b);if(a.ua&&a.ua.md&&(c=a.ua.md,c.Ca)){ob(c,18,c.O,c.ya);if(c.Na){var d=c.na,e=c.B,k,l;null==k&&(k=0);null==l&&(l=d.T-k|0);null==e&&(e={ig:0,cd:0,dg:[]});var p=k>>>d.ha;k=k+l-1>>>d.ha;e.ig=0;for(e.cd=0;p<=k;)l=d.W[p],e.ig+=l.size,l.size&&(e.dg.push(na(nb,p,0,0,l.type)),e.cd++),p++;c.B=e;c.sa=c.B.cd*c.na.yb/691200;d=0;c.B.Lh=0;c.B.Fe||(c.B.Fe=[]);var e=-1,p=0,q=-1;for(k=0;k<c.B.cd;k++){var v=c.B.dg[k];l=oa(nb.type,v);v=oa(nb.ej,v);if(l!=e||
v!=q+1)(q=k-p)&&(d+=qb(c,p,q,e)),e=l,p=k;q=v}d+=qb(c,p,k-p,e);e=c.B.Hj!=d;c.B.Hj=d;if(e){e=new ib(0,0,c.O.width,c.O.height);c.B.be=[];p=c.B.cd;for(d=0;d<c.B.Lh;d++)k=c.B.Fe[d].cd,c.B.be.push(jb(e,k,p,!d)),p-=k;for(d=0;d<c.B.be.length;d++)e=c.B.Fe[d],p=k=c.B.be[d],l=c.ya,(q=Wb[e.type])||(q=new hb),l.strokeStyle="black",l.strokeRect(p.x,p.y,p.Fc,p.A),l.fillStyle="string"==typeof q?q:q.toString(),l.fillRect(p.x,p.y,p.Fc,p.A),p=c,l=k,p.W=p.oa,p.T=p.qa,k=l.x+(l.Fc>>1),q=l.y+(l.A>>1),v=l.A,l.Fc<l.A&&(v=
l.Fc,p.la=!0,p.H.save(),p.H.translate(k,q),p.H.rotate(-Math.PI/2),k=q=0),v<p.T&&(p.T=v,p.W=p.T+"px Monaco, Lucida Console, Courier New"),l=q,p.F=k,p.N=l,p=c,e=Vb[e.type]+" ("+(e.cd*c.na.yb/1024|0)+"Kb)",p.H.font=p.W,p.F-=p.H.measureText(e).width>>1,p.N+=(p.T>>1)-2,pb(p,e),p.la&&(p.H.restore(),p.la=!1)}}else pb(c,"This space intentionally left blank");c.context.drawImage(c.O,0,0,c.O.width,c.O.height,c.Wa,c.fb,c.Ka,c.Ma);c.Ca=!1}}f.Tc=function(){this.Yd.length&&this.Yd[0].Tc()};
f.Eb=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.pa[b]=c;a=!0;break;case "run":this.pa[b]=c;c.onclick=function(){var a;if(a=d.ua)if(a=d.ua,a.ja.Qb)a=!0;else{var b=null,c,p=Ta(a.id);for(c=0;c<p.length&&(b=p[c],b===a||b.ja.me);c++);if(c==p.length)for(c=0;c<p.length&&(b=p[c],b===a||b.ja.Qb);c++);c==p.length&&(b=a);ra("The "+b.type+" component ("+b.id+") is not "+(b.ja.me?"powered yet":"ready yet"+(b.Ff?" (waiting for notification)":""))+".");a=!1}a&&(d.ja.Rb?pc(d,!0):d.qh(!0))};
a=!0;break;case "speed":this.pa[b]=c;a=!0;break;case "setSpeed":this.pa[b]=c,c.onclick=function(){qc(d,d.Y.Ad<<1,!0)},c.textContent=this.Y.se.toFixed(2)+"Mhz",a=!0}return a};function rc(a,b){if(a.ja.Rb){var c=a.A-b;a.A-=c;a.kc-=c}}function sc(a,b,c){a.Hc+=b;c&&(a.kc=a.A=0)}
function tc(a,b){var c=30;60>c&&(c=60);2>c&&(c=2);var d=1;b&&1<a.Y.Ad&&a.Y.zd&&(d=a.Y.zd/a.Y.Hf);a.Y.ai=Math.round(1E3/30);a.Y.bl=Math.floor(a.Y.$c/c*d);a.Y.xg=Math.floor(a.Y.$c/30*d);a.Y.ci=Math.floor(a.Y.$c/60*d);a.Y.bi=Math.floor(a.Y.$c/2*d);b||(a.Y.Pe=a.Y.xg,a.Y.Oe=a.Y.ci,a.Y.Ne=a.Y.bi);a.Y.yg=0}function uc(a,b){var c=a.Hc+a.zc+a.kc-a.A;b&&1<a.Y.Ad&&a.Y.zd>a.Y.Hf&&(c=Math.round(c/a.Y.Ad));return c}function jc(a){a.Y.zd=0;a.Hc=a.zc=a.kc=a.A=0;kc(a);qc(a,1)}
function qc(a,b,c){if(void 0!==b){.8>a.Y.zd/a.Y.se&&(b=1);a.Y.Ad=b;b=a.Y.Hf*a.Y.Ad;if(a.Y.se!=b){a.Y.se=b;b=a.Y.se.toFixed(2)+"Mhz";var d=a.pa.setSpeed;d&&(d.textContent=b);a.pc("target speed: "+b)}c&&a.Tc()}sc(a,a.zc);a.zc=0;a.Y.te=ia();a.Y.Pd=0;tc(a)}
f.qh=function(a){if($a(this,!0)){if(!this.ja.Rb){qc(this);this.ua&&this.ua.start(this.Y.te,uc(this));this.ja.Rb=!0;this.ja.Uh=!0;this.T&&vc(this.T);var b=this.pa.run;b&&(b.textContent="Halt");this.Xd(!0);a&&this.Tc()}this.Y.yg>=this.Y.$c&&tc(this,!0);this.Y.Qe=0;this.Y.If=ia();this.Y.Pd&&(a=this.Y.If-this.Y.Pd,a>this.Y.ai&&(this.Y.te+=a,this.Y.te>this.Y.If&&(this.Y.te=this.Y.If)));try{do{var c=this.ja.Df?1:this.Y.bl;if(this.T){wc(this.T);var d=this.T;a=c;var e=d.N[0];if(e.Md){var k=(uc(d.A,d.la)-
e.gd)/d.Qa|0,l=xc(d,0)-k;6==e.mode&&(l-=k);var p=l*d.Qa|0;6==e.mode&&(p>>=1);a>p&&(a=p)}var c=a,q=this.T;a=c;if(q.B&&q.B[11]&64){var w=q.ta-uc(q.A,q.la);0<w&&a>w&&(a=w)}c=a}try{this.pj(c)}catch(G){if("number"!=typeof G)throw G;}var B=this.kc-this.A;this.zc+=B;this.Y.Qe+=B;sc(this,0,!0);a=B;this.ja.Df&&(b=!1,this.Y.Jf=this.Y.Jf+this.Wh()|0,this.Y.ue-=a,0>=this.Y.ue&&(this.Y.ue+=this.Y.Le,b=!0),0<=this.Y.Me&&this.Y.Me<=uc(this)&&(this.Y.Le=this.Y.Me=-1,kc(this),pc(this),b=!0),b&&this.pc(uc(this)+" cycles: checksum="+
e.gd)/d.Qa|0,l=xc(d,0)-k;6==e.mode&&(l-=k);var p=l*d.Qa|0;6==e.mode&&(p>>=1);a>p&&(a=p)}var c=a,q=this.T;a=c;if(q.B&&q.B[11]&64){var v=q.ta-uc(q.A,q.la);0<v&&a>v&&(a=v)}c=a}try{this.pj(c)}catch(G){if("number"!=typeof G)throw G;}var B=this.kc-this.A;this.zc+=B;this.Y.Qe+=B;sc(this,0,!0);a=B;this.ja.Df&&(b=!1,this.Y.Jf=this.Y.Jf+this.Wh()|0,this.Y.ue-=a,0>=this.Y.ue&&(this.Y.ue+=this.Y.Le,b=!0),0<=this.Y.Me&&this.Y.Me<=uc(this)&&(this.Y.Le=this.Y.Me=-1,kc(this),pc(this),b=!0),b&&this.pc(uc(this)+" cycles: checksum="+
da(this.Y.Jf)));this.Y.Oe-=B;0>=this.Y.Oe&&(this.Y.Oe+=this.Y.ci,nc(this));this.Y.Ne-=B;0>=this.Y.Ne&&(this.Y.Ne+=this.Y.bi,this.Xd());this.Y.Pe-=B;if(0>=this.Y.Pe){this.Y.Pe+=this.Y.xg;break}}while(this.ja.Rb)}catch(G){pc(this);lc(this);this.ua&&this.ua.stop(ia(),uc(this));$a(this,!1);cb(this,G.stack||G.message);return}c=setTimeout;d=this.Dj;this.Y.Pd=ia();e=this.Y.ai;this.Y.Qe&&(e=Math.round(e*this.Y.Qe/this.Y.xg));e-=this.Y.Pd-this.Y.If;if(k=this.Y.Pd-this.Y.te)this.Y.zd=Math.round(this.zc/(10*
k))/100,864E5<=k&&(this.Hc=0,this.T&&wc(this.T,!0),qc(this));if(0>e||this.Y.zd<this.Y.se)e=0;this.Y.yg+=this.Y.Qe;this.Y.Pd+=e;c(d,e)}else lc(this),this.ua&&this.ua.stop(ia(),uc(this))};f.pj=function(){return 0};function pc(a,b){a.ja.Nc&&(a.ja.lg=!0);a.kc-=a.A;a.A=0;sc(a,a.zc);a.zc=0;if(a.ja.Rb){a.ja.Rb=!1;a.T&&vc(a.T);var c=a.pa.run;c&&(c.textContent="Run")}a.ja.Je=b}function lc(a){nc(a,void 0);a.Xd()}
function yc(a,b,c,d){this.A=a;this.Ta=a.Ta;this.id=b;this.Xf=c||"";this.ra=0;this.cb=65535;this.D=this.cb+1;this.Cb=this.uc=this.ext=this.rb=this.type=this.Ea=0;this.fc=-1;this.ba=this.Uc=2;this.C=this.wa=65535;this.T=this.$h;this.K=this.Nh;this.N=this.Ph;this.B={ra:-1,Ea:0,cb:0,rb:0,type:0,ext:0,fc:-1};1==this.id&&(this.af=0,this.F=null,this.oe=!1,this.J=Array(32),this.H=[]);zc(this,!0,d)}f=yc.prototype;f.$h=function(a){this.ra=a&65535;return this.Ea=this.ra<<4};
f.Gf=function(a,b){var c,d,e=this.A;a&=65535;a&4?(c=e.Pb.Ea,d=c+e.Pb.cb|0):(c=e.kb,d=e.xc);if(c){c=c+(a&65528)|0;if(d-c|0)return e.A-=15,Ac(this,c,a,b);6>this.id&&h.call(e,b&&3==this.id?10:13,a&65532)}return-1};f.Zk=function(a){var b=this.A;a=b.Ab+(a<<2);var c=b.ma(a);b.ca&=-769;return this.load(b.ma(a+2))+c|0};f.Yk=function(a){var b=this.A;a<<=3;var c=b.Ab+a|0;if(7<=(b.yc-c|0))return this.F=!0,a=Ac(this,c,a),-1!==a&&(a+=this.af),a;h.call(b,13,a|2);return-1};f.Nh=function(a){return this.Ea+a|0};
f.Ph=function(a){return this.Ea+a|0};f.Mh=function(a,b){return(a>>>0)+b<=this.D?this.Ea+a|0:this.Af()};f.Fj=function(a,b){return(a>>>0)+b>this.D?this.Ea+a|0:this.Af()};f.Af=function(){h.call(this.A,13,0);return-1};f.Oh=function(a,b){return(a>>>0)+b<=this.D?this.Ea+a|0:this.Bf()};f.Gj=function(a,b){return(a>>>0)+b>this.D?this.Ea+a|0:this.Bf()};f.Bf=function(){h.call(this.A,13,0);return-1};
function Bc(a,b,c,d,e){a.ra=b;a.Ea=d;a.cb=e;a.D=(e>>>0)+1;a.rb=c;a.type=c&7936;a.ext=c>>16&192;a.fc=(b&4?a.A.Pb.Ea:a.A.kb)+(b&65528)|0;4>a.id&&zc(a,!0)}function Cc(a,b,c){var d=a.A,e=d.ma(b+2),k=d.ma(b)|(e&255)<<16,d=d.ma(b+4);a.ra=c;a.Ea=k;a.cb=d;a.D=(d>>>0)+1;a.rb=e;a.type=e&7936;a.ext=0;a.fc=b;4>a.id&&zc(a,!0)}
function Ac(a,b,c,d){var e=a.A;if(!d&&c===a.B.ra)return a.ra=c,a.Ea=a.B.Ea,a.cb=a.B.cb,a.D=(a.B.cb>>>0)+1,a.rb=a.B.rb,a.type=a.B.type,a.ext=a.B.ext,a.fc=a.B.fc,a.B.ra=-1,zc(a,!0,!0,!1),a.Ea;a.B.ra=-1;var k=e.ma(b+0),l=e.ma(b+4),p=l&7936,q=e.ma(b+2)|(l&255)<<16,w=e.ma(b+6),B=c&65528;if(80386<=e.ia){var G=k,q=q|(w&65280)<<16,k=k|(w&15)<<16;w&128&&(k=k<<12|4095)}switch(a.id){case 1:var C=a.F;a.oe=!1;if(C&&1==c&&a.H.length){var K=a.H[a.af-1];if(K&&!K())return-1}var V=c&3,X=(l&24576)>>13,K=-1,ja,ka;B||
function Ac(a,b,c,d){var e=a.A;if(!d&&c===a.B.ra)return a.ra=c,a.Ea=a.B.Ea,a.cb=a.B.cb,a.D=(a.B.cb>>>0)+1,a.rb=a.B.rb,a.type=a.B.type,a.ext=a.B.ext,a.fc=a.B.fc,a.B.ra=-1,zc(a,!0,!0,!1),a.Ea;a.B.ra=-1;var k=e.ma(b+0),l=e.ma(b+4),p=l&7936,q=e.ma(b+2)|(l&255)<<16,v=e.ma(b+6),B=c&65528;if(80386<=e.ia){var G=k,q=q|(v&65280)<<16,k=k|(v&15)<<16;v&128&&(k=k<<12|4095)}switch(a.id){case 1:var C=a.F;a.oe=!1;if(C&&1==c&&a.H.length){var K=a.H[a.af-1];if(K&&!K())return-1}var V=c&3,X=(l&24576)>>13,K=-1,ja,ka;B||
b>=e.kb&&b<e.xc&&(p=0);if(6144<=p){if(K=0,V>a.Cb&&(K=-1,!1===C||X==a.Cb||p&1024&&X<=a.Cb))K=m(e),Dc(e,m(e),!0),n(e,K),a.oe=!0,K=0}else{if(256==p||2304==p)return Ec(a,c,C)?a.Ea:-1;if(1024==p)K=2,ka=0,V<a.Cb&&(V=a.Cb);else if(3072==p)K=4,ka=0,V<a.Cb&&(V=a.Cb);else if(1536==p)K=2,ka=148224;else if(3584==p)K=4,ka=148224;else if(1792==p)K=2,ka=147712;else if(3840==p)K=4,ka=147712;else if(1280==p)return Ec(a,q&65535,C)?a.Ea:-1}0<K&&!(l&32768)&&(K=0);if(0<K&&(B=a.Cb,ja=b==e.Ab+c,V<=X&&(!ja||0<=e.Vb||B<=
X))){b=q&65535;p&2048&&(k=G|w<<16);w=p=0;c=b&3;if(c<B){if(-1===a.Gf(b,!0))return-1;w=e.la.Ea;e.la.type&2048?(c=(c<<3)+4,d=4):(c=(c<<2)+2,d=2);p=e.ma(w+c+d);if(!p)return h.call(e,10,p),-1;if(-1===e.Z.Gf(p,!0))return-1;w=2==d?e.ma(w+c):e.ka(w+c)}c=e.ca;e.ca&=~ka;c&131072&&Fc(e,!0,!1);if(-1===a.Gf(b))return-1;Gc(e,K);a.af=k;if(a.Cb<B){if(!0!==C)return-1;K=r(e);k=0;for(l&=31;l--;)a.J[k++]=Hc(e,e.Z,K),K+=2;C=e.Z.ra;l=r(e);Dc(e,p,!0);n(e,w);c&131072&&(Gc(e,4),Ic(e,e.Va.ra,4,2),e.Va.load(0),Ic(e,e.Qa.ra,
X))){b=q&65535;p&2048&&(k=G|v<<16);v=p=0;c=b&3;if(c<B){if(-1===a.Gf(b,!0))return-1;v=e.la.Ea;e.la.type&2048?(c=(c<<3)+4,d=4):(c=(c<<2)+2,d=2);p=e.ma(v+c+d);if(!p)return h.call(e,10,p),-1;if(-1===e.Z.Gf(p,!0))return-1;v=2==d?e.ma(v+c):e.ka(v+c)}c=e.ca;e.ca&=~ka;c&131072&&Fc(e,!0,!1);if(-1===a.Gf(b))return-1;Gc(e,K);a.af=k;if(a.Cb<B){if(!0!==C)return-1;K=r(e);k=0;for(l&=31;l--;)a.J[k++]=Hc(e,e.Z,K),K+=2;C=e.Z.ra;l=r(e);Dc(e,p,!0);n(e,v);c&131072&&(Gc(e,4),Ic(e,e.Va.ra,4,2),e.Va.load(0),Ic(e,e.Qa.ra,
4,2),e.Qa.load(0),Ic(e,e.Ca.ra,4,2),Jc(e,0),Ic(e,e.va.ra,4,2),Kc(e,0));Ic(e,C,e.ba,2);for(t(e,l);k;)t(e,a.J[--k]);a.oe=!0}return a.Ea}if(0!=K)return h.call(e,13,c&65532|(ja?2:0)),-1;if(!(l&32768))return h.call(e,11,c&65532|(ja?2:0)),-1;break;case 2:if(B){if(4096>p||2048==(p&2560))return h.call(e,13,c&65532),-1;if(!(l&32768))return h.call(e,11,c&65532),-1}break;case 3:if(!B||4096>p||512!=(p&2560))return h.call(e,13,c&65532),-1;if(!(l&32768))return h.call(e,12,c&65532),-1;break;case 4:C=p&-513;if(!B||
256!=C&&2304!=C)return h.call(e,13,c&65532),-1;2304==C&&(a.Hh=q+e.ma(q+100+2)|0,a.Cj=q+a.cb|0);break;case 6:if(!(p&4096)&&768<p&&2304!=p&&2816!=p)return-1}d?(a.B.ra=c,a.B.Ea=q,a.B.cb=k,a.B.rb=l,a.B.type=p,a.B.ext=w,a.B.fc=b):(a.ra=c,a.Ea=q,a.cb=k,a.D=(k>>>0)+1,a.rb=l,a.type=p,a.ext=w,a.fc=b,zc(a,!0,!0,!1));return q}
256!=C&&2304!=C)return h.call(e,13,c&65532),-1;2304==C&&(a.Hh=q+e.ma(q+100+2)|0,a.Cj=q+a.cb|0);break;case 6:if(!(p&4096)&&768<p&&2304!=p&&2816!=p)return-1}d?(a.B.ra=c,a.B.Ea=q,a.B.cb=k,a.B.rb=l,a.B.type=p,a.B.ext=v,a.B.fc=b):(a.ra=c,a.Ea=q,a.cb=k,a.D=(k>>>0)+1,a.rb=l,a.type=p,a.ext=v,a.fc=b,zc(a,!0,!0,!1));return q}
function Ec(a,b,c){var d=a.A,e=a.Cb,k=d.la.ra,l=d.la.Ea;if(!c){if(!(d.la.type&512))return h.call(d,13,b&65532),!1;d.gb(d.la.fc+4,d.la.rb&=-513)}if(-1===d.la.load(b))return!1;var p=d.la.Ea;if(!1!==c){if(d.la.type&512)return h.call(d,13,b&65532),!1;d.gb(d.la.fc+4,d.la.rb|=512)}d.la.type=d.la.type&-513|d.la.rb&512;256==d.la.type||768==d.la.type?(d.gb(l+14,u(d)),d.gb(l+16,Lc(d)),d.gb(l+18,d.G),d.gb(l+20,d.F),d.gb(l+22,d.I),d.gb(l+24,d.B),d.gb(l+26,r(d)),d.gb(l+28,d.K),d.gb(l+30,d.J),d.gb(l+32,d.H),d.gb(l+
34,d.va.ra),d.gb(l+36,d.Ia.ra),d.gb(l+38,d.Z.ra),d.gb(l+40,d.Ca.ra),d.Pb.load(d.ma(p+42)),Mc(d,d.ma(p+16)|(c?16384:0)),d.G=d.ma(p+18),d.F=d.ma(p+20),d.I=d.ma(p+22),d.B=d.ma(p+24),d.K=d.ma(p+28),d.J=d.ma(p+30),d.H=d.ma(p+32),d.va.load(d.ma(p+34)),d.Ca.load(d.ma(p+40)),Nc(d,d.ma(p+14),d.ma(p+36)),b=38,l=26,a.Cb<e&&(l=(a.Cb<<2)+2,b=l+2),Dc(d,d.ma(p+b),!0),n(d,d.ma(p+l))):(d.$a(l+28,d.Zc),d.$a(l+32,u(d)),d.$a(l+36,Lc(d)),d.$a(l+40,d.G),d.$a(l+44,d.F),d.$a(l+48,d.I),d.$a(l+52,d.B),d.$a(l+56,r(d)),d.$a(l+
60,d.K),d.$a(l+64,d.J),d.$a(l+68,d.H),d.$a(l+72,d.va.ra),d.$a(l+76,d.Ia.ra),d.$a(l+80,d.Z.ra),d.$a(l+84,d.Ca.ra),d.$a(l+88,d.Qa.ra),d.$a(l+92,d.Va.ra),Pc.call(d,d.ka(p+28)),d.Pb.load(d.ma(p+96)),Mc(d,d.ka(p+36)|(c?16384:0)),d.G=d.ka(p+40),d.F=d.ka(p+44),d.I=d.ka(p+48),d.B=d.ka(p+52),d.K=d.ka(p+60),d.J=d.ka(p+64),d.H=d.ka(p+68),d.va.load(d.ma(p+72)),d.Ca.load(d.ma(p+84)),d.Qa.load(d.ma(p+88)),d.Va.load(d.ma(p+92)),Nc(d,d.ka(p+32),d.ma(p+76)),b=80,l=56,a.Cb<e&&(l=(a.Cb<<3)+4,b=l+4),Dc(d,d.ma(p+b),!0),
@ -81,10 +81,10 @@ n(d,d.ka(p+l)));c&&d.gb(p+0,k);d.Ua|=8;return!0}f.save=function(){return[this.ra
function zc(a,b,c,d){void 0===c&&(c=!!(a.A.Ua&1));a.xd=!1;if(c)if(a.load=a.Gf,a.Zh=a.Yk,a.gc=a.Mh,a.hc=a.Oh,void 0===d&&(d=!!(a.A.ca&131072)),d)a.load=a.T,a.gc=a.K,a.hc=a.N,a.Cb=a.uc=3,a.ba=a.Uc=2,a.C=a.wa=65535,a.cb=65535,a.D=a.cb+1,a.Uc=a.ba,a.fc=-1,a.oe=!1;else{if(!(a.ra&-4))a.gc=a.Af,a.hc=a.Bf;else if(a.type&4096){6144==(a.type&6656)&&(a.gc=a.Af);if(a.type&2048||!(a.type&512))a.hc=a.Bf;1024==(a.type&3072)&&(a.gc==a.Mh&&(a.gc=a.Fj),a.hc==a.Oh&&(a.hc=a.Gj),a.xd=!0);b&&6>a.id&&a.ra&-4&&-1!==a.fc&&
(c=a.fc+5,d=a.A.Lb(c),d&1||a.A.Lc(c,d|1))}b&&(a.Cb=a.ra&3,a.uc=(a.rb&24576)>>13,80386>a.A.ia||!(a.ext&64)?(a.ba=2,a.C=65535):(a.ba=4,a.C=-1),a.Uc=a.ba,a.wa=a.C)}else a.load=a.$h,a.Zh=a.Zk,a.gc=a.Nh,a.hc=a.Ph,a.Cb=a.uc=0,a.fc=-1,a.oe=!1}
function Qc(a){this.ia=a.model||8088;var b=a.stepping;this.kd=this.ia+(b?ca(b,16):0);b=0;switch(this.ia){default:b=4772727;break;case 80286:b=6E6;break;case 80386:b=16E6}hc.call(this,a,b);this.vh=61442;this.fd=1792;this.uh=28672;this.of=4;this.Ja=255;this.D=80286<=this.ia?fb:eb;this.qa=Rc;this.yh=Sc;this.zh=Tc;this.Ah=Uc;if(80186<=this.ia&&(this.qa=Rc.slice(),this.yh=Sc.slice(),this.zh=Tc.slice(),this.Ja=31,this.qa[15]=Vc,this.qa[96]=Wc,this.qa[97]=Xc,this.qa[98]=Yc,this.qa[99]=Vc,this.qa[100]=Vc,
this.qa[101]=Vc,this.qa[102]=Vc,this.qa[103]=Vc,this.qa[104]=Zc,this.qa[105]=$c,this.qa[106]=ad,this.qa[107]=bd,this.qa[108]=cd,this.qa[109]=dd,this.qa[110]=ed,this.qa[111]=fd,this.qa[192]=gd,this.qa[193]=hd,this.qa[200]=id,this.qa[201]=jd,this.qa[241]=kd,this.yh[7]=ld,this.zh[7]=ld,80286<=this.ia)){this.vh=2;this.fd|=28672;this.of=0;this.qa[15]=md;this.Gc=nd.slice();for(a=0;a<this.Gc.length;a++)this.Gc[a]||(this.Gc[a]=od);this.qa[84]=pd;this.qa[99]=qd;if(80386<=this.ia){var c;this.uh=0;this.fd|=
196608;this.qa[100]=sd;this.qa[101]=td;this.qa[102]=ud;this.qa[103]=vd;for(c in v)this.Gc[+c]=v[c];80546<=this.kd&&80562>=this.kd&&(this.Gc[166]=wd,this.Gc[167]=xd)}}this.rf=[];this.xh=[];this.$f=0;jc(this);this.ja.Je=this.ja.Pj=!1;this.Ch=0;this.vc=this.W=[];this.ha=this.yb=this.ab=this.pf=this.Zd=this.La=this.jc=0;yd(this)}Qa(Qc,hc);
this.qa[101]=Vc,this.qa[102]=Vc,this.qa[103]=Vc,this.qa[104]=Zc,this.qa[105]=$c,this.qa[106]=ad,this.qa[107]=bd,this.qa[108]=cd,this.qa[109]=dd,this.qa[110]=ed,this.qa[111]=fd,this.qa[192]=gd,this.qa[193]=hd,this.qa[200]=id,this.qa[201]=jd,this.qa[241]=kd,this.yh[7]=ld,this.zh[7]=ld,80286<=this.ia)){this.vh=2;this.fd|=28672;this.of=0;this.qa[15]=md;this.Gc=nd.slice();for(a=0;a<this.Gc.length;a++)this.Gc[a]||(this.Gc[a]=od);this.qa[84]=pd;this.qa[99]=rd;if(80386<=this.ia){var c;this.uh=0;this.fd|=
196608;this.qa[100]=sd;this.qa[101]=td;this.qa[102]=ud;this.qa[103]=vd;for(c in w)this.Gc[+c]=w[c];80546<=this.kd&&80562>=this.kd&&(this.Gc[166]=wd,this.Gc[167]=xd)}}this.rf=[];this.xh=[];this.$f=0;jc(this);this.ja.Je=this.ja.Pj=!1;this.Ch=0;this.vc=this.W=[];this.ha=this.yb=this.ab=this.pf=this.Zd=this.La=this.jc=0;yd(this)}Qa(Qc,hc);
function Ab(a){var b;if(a.W===a.vc){a.W=Array(a.pf);a.sf=new g(null,0,0,5,null,a);sb(a.sf,a.Ta);for(b=0;b<a.pf;b++)a.W[b]=a.sf;a.$d=new g;a.wh=Array(512);a.tf=0}else for(var c=0;c<a.qf.length;c++){b=a.qf[c];var d=a.W[b];512>a.tf&&(a.wh[a.tf++]=d);a.W[b]=a.sf}a.qf=[]}
function Zb(a,b,c,d){var e=(b&-4194304)>>>20,k=a.vc[(a.Zc+e&a.La)>>>a.ha],l=k.Td(e);if(!(l&1))return d||zd.call(a,b,!1,c),a.$d;if(!(l&4)&&3==a.Fa)return d||zd.call(a,b,!0,c),a.$d;var p=(b&4190208)>>>10,l=a.vc[((l&-4096)+p&a.La)>>>a.ha],q=l.Td(p);if(!(q&1))return d||zd.call(a,b,!1,c),a.$d;if(!(q&4)&&3==a.Fa)return d||zd.call(a,b,!0,c),a.$d;c=a.vc[((q&-4096)+(b&4095)&a.La)>>>a.ha];if(d)return c;d=b>>>a.ha;q=a.W[d];b=b&-4096;var w;0<a.tf?(w=a.wh[--a.tf],w.Vk(b)):w=new g(b,0,0,6);b=w;b.T=c;b.B=k;b.F=
function Zb(a,b,c,d){var e=(b&-4194304)>>>20,k=a.vc[(a.Zc+e&a.La)>>>a.ha],l=k.Td(e);if(!(l&1))return d||zd.call(a,b,!1,c),a.$d;if(!(l&4)&&3==a.Fa)return d||zd.call(a,b,!0,c),a.$d;var p=(b&4190208)>>>10,l=a.vc[((l&-4096)+p&a.La)>>>a.ha],q=l.Td(p);if(!(q&1))return d||zd.call(a,b,!1,c),a.$d;if(!(q&4)&&3==a.Fa)return d||zd.call(a,b,!0,c),a.$d;c=a.vc[((q&-4096)+(b&4095)&a.La)>>>a.ha];if(d)return c;d=b>>>a.ha;q=a.W[d];b=b&-4096;var v;0<a.tf?(v=a.wh[--a.tf],v.Vk(b)):v=new g(b,0,0,6);b=v;b.T=c;b.B=k;b.F=
e>>2;b.D=l;b.H=p>>2;db&&Hb&&c.aa&&!c.controller&&!c.fe&&!c.ge?(b.Pa=c.Pa,b.td=c.td,b.aa=c.aa,Eb(b,gc)):(b.N=c?Xb(32):0,b.W=c?Xb(96):0,Eb(b,ec));sb(b,a.Ta,q);a.W[d]=b;a.qf.push(d);return b}function Ad(a){a.W!==a.vc&&(a.W=a.vc,a.sf=null,a.qf=null,a.$d=null)}f=Qc.prototype;f.reset=function(){this.ja.Rb&&pc(this);yd(this);jc(this);this.ja.Yc=!1};
function Bd(a,b){var c;switch(b){case 0:c=a.G;break;case 1:c=a.F;break;case 2:c=a.I;break;case 3:c=a.B;break;case 4:c=r(a);break;case 5:c=a.K;break;case 6:c=a.J;break;case 7:c=a.H}return c}function Cd(a,b,c){switch(b){case 0:a.G=c;break;case 1:a.F=c;break;case 2:a.I=c;break;case 3:a.B=c;break;case 4:n(a,c);break;case 5:a.K=c;break;case 6:a.J=c;break;case 7:a.H=c}}
function yd(a){a.G=0;a.B=0;a.F=0;a.I=0;a.Ob=0;a.K=0;a.J=0;a.H=0;a.Jb=!1;a.ya=a.Ma=0;a.mc=0;a.Bh=0;a.ld=0;a.Ua=65520;a.Ab=0;a.yc=1023;a.ca=a.Fb=0;a.rd=a.Id=a.qd=a.Ed=0;a.Vb=-1;a.od=a.Gd=-1;a.Sd=a.sa=-1;a.Ia=new yc(a,1,"CS");a.Ca=new yc(a,2,"DS");a.va=new yc(a,2,"ES");a.Z=new yc(a,3,"SS");n(a,0);Dc(a,0);if(80386<=a.ia){switch(a.kd){case 80562:case 80563:a.I=771;break;case 80578:a.I=772;break;case 80594:a.I=773;break;case 80595:case 80596:a.I=776}a.Ua=16;a.Gh=0;a.pd=0;a.Zc=0;a.fb=[0,0,0,0,null,null,
@ -94,9 +94,9 @@ f.Wh=function(){var a=this.G+this.B+this.F+this.I+r(this)+this.K+this.J+this.H|0
function Rd(a,b){for(var c=a.fb[7],d=c>>16,e=0;4>e;e++){if(c&3){var k=!!(d&1),l=a.fb[e],l=l&~(d>>2&3);if(b){var l=a.W[l>>>a.ha],p=a;k?0===l.ge++&&(p&&(l.A=p),cc(l,ac,!1)):0===l.fe++&&(p&&(l.A=p),$b(l,ac,!1))}else l=a.W[l>>>a.ha],k?0===--l.ge&&(k=l,k.dc=k.K?k.Z:k.jf,k.lf=k.K?k.na:k.sh,k.kf=k.K?k.pa:k.la):0===--l.fe&&(k=l,k.cc=k.Cd,k.df=k.ef,k.Td=k.mh)}c>>=2;d>>=4}}
function Yb(a,b,c,d){if(!(a.N&8192)&&a.fb[7]&255){c--;var e=a.fb[7],k=e>>16;d=d?1:0==d?3:0;for(var l=0;4>l;l++){if(e&3&&(k&3)==d){var p=k>>2;if(b+c>=a.fb[l]&&b<=a.fb[l]+p){a.fb[6]|=1<<l;a.Ka|=2;break}}e>>=2;k>>=4}}}function Fc(a,b,c){void 0===b&&(b=!!(a.Ua&1));void 0===c&&(c=!!(a.ca&131072));a.Ah=b&&!c?Sd:Uc;zc(a.Ia,!1,b,c);zc(a.Ca,!1,b,c);zc(a.Z,!1,b,c);zc(a.va,!1,b,c);80386<=a.ia&&(zc(a.Qa,!1,b,c),zc(a.Va,!1,b,c));Od(a)}
f.save=function(){var a=new Td(this);D(a,0,[this.G,this.B,this.F,this.I,r(this),this.K,this.J,this.H]);var b=u(this),c=this.Ia.save(),d=this.Ca.save(),e=this.Z.save(),k=this.va.save(),l;null!=this.kb?(l=[this.Ua,this.kb,this.xc,this.Ab,this.yc,this.Pb.save(),this.la.save(),this.Fb],80386<=this.ia&&(l.push(this.Gh),l.push(this.pd),l.push(this.Zc),l.push(this.fb),l.push(this.uf))):l=null;b=[b,c,d,e,k,l,Lc(this)];80386<=this.ia&&(b.push(this.Qa.save()),b.push(this.Va.save()));D(a,1,b);D(a,2,[this.O.Xf,
this.S.Xf,this.N,this.Ba,this.Ka,this.U,this.oa]);D(a,3,[0,this.Hc,this.Y.Ad]);b=this.na;c=!!(this.Ua&-2147483648);d=0;e=[];(k=!b.H&&b.na==b.La)||xb(b,!0);for(l=0;l<b.J;l++){var p=b.W[l];if(c&&p.type!=Gb||p.Oa||p.Sh){e[d++]=l;var q=d++;a:if(p=p.save()){for(var w=0,B=0,G=[];w<p.length;){for(var C=p[w],K=w+1;K<p.length&&p[K]===C;)K++;G[B++]=K-w;G[B++]=C;w=K}if(G.length<p.length){p=G;break a}}e[q]=p}}k||xb(b,!1);e[d]=k;D(a,4,e);return a.data()};
this.S.Xf,this.N,this.Ba,this.Ka,this.U,this.oa]);D(a,3,[0,this.Hc,this.Y.Ad]);b=this.na;c=!!(this.Ua&-2147483648);d=0;e=[];(k=!b.H&&b.na==b.La)||xb(b,!0);for(l=0;l<b.J;l++){var p=b.W[l];if(c&&p.type!=Gb||p.Oa||p.Sh){e[d++]=l;var q=d++;a:if(p=p.save()){for(var v=0,B=0,G=[];v<p.length;){for(var C=p[v],K=v+1;K<p.length&&p[K]===C;)K++;G[B++]=K-v;G[B++]=C;v=K}if(G.length<p.length){p=G;break a}}e[q]=p}}k||xb(b,!1);e[d]=k;D(a,4,e);return a.data()};
f.restore=function(a){var b=a[0];this.G=b[0];this.B=b[1];this.F=b[2];this.I=b[3];var c=b[4];this.K=b[5];this.J=b[6];this.H=b[7];b=a[1];this.Ia.restore(b[1]);this.Ca.restore(b[2]);this.Z.restore(b[3]);this.va.restore(b[4]);var d=b[5];d&&d.length&&(this.Ua=d[0],this.kb=d[1],this.xc=d[2],this.Ab=d[3],this.yc=d[4],this.Pb.restore(d[5]),this.la.restore(d[6]),this.Fb=d[7],80386<=this.ia&&(this.Gh=d[8],this.pd=d[9],this.Zc=d[10],this.fb=d[11],this.uf=d[12]),Fc(this));Mc(this,b[6]);var d=!1,e;a:{e=this.na;
var k=a[4],l;for(l=0;l<k.length-1;l+=2){var p=k[l],q=k[l+1];if(q&&q.length<e.Z){for(var w=0,B=Array(e.Z),G=0;G<q.length-1;)for(var C=q[G++],K=q[G++];C--;)B[w++]=K;q=B}w=e.W[p];if(!w||!w.restore(q)){ra("Unable to restore memory block "+p);e=!1;break a}}void 0!==k[l]&&xb(e,k[l]);e=!0}e&&(Nc(this,b[0],this.Ia.ra),n(this,c),Dc(this,this.Z.ra),80386<=this.ia&&(this.Qa.restore(b[7]),this.Va.restore(b[8])),d=!0);b=a[2];this.O=null!=b[0]&&Ud(this,b[0])||this.Ca;this.S=null!=b[1]&&Ud(this,b[1])||this.Z;this.N=
var k=a[4],l;for(l=0;l<k.length-1;l+=2){var p=k[l],q=k[l+1];if(q&&q.length<e.Z){for(var v=0,B=Array(e.Z),G=0;G<q.length-1;)for(var C=q[G++],K=q[G++];C--;)B[v++]=K;q=B}v=e.W[p];if(!v||!v.restore(q)){ra("Unable to restore memory block "+p);e=!1;break a}}void 0!==k[l]&&xb(e,k[l]);e=!0}e&&(Nc(this,b[0],this.Ia.ra),n(this,c),Dc(this,this.Z.ra),80386<=this.ia&&(this.Qa.restore(b[7]),this.Va.restore(b[8])),d=!0);b=a[2];this.O=null!=b[0]&&Ud(this,b[0])||this.Ca;this.S=null!=b[1]&&Ud(this,b[1])||this.Z;this.N=
b[2];this.Ba=b[3];this.Ka=b[4];this.U=b[5];this.oa=b[6];b=a[3];this.Hc=b[1];qc(this,b[2]);return d};function Ud(a,b){switch(b){case "CS":return a.Ia;case "DS":return a.Ca;case "SS":return a.Z;case "ES":return a.va;case "NULL":return a.cg;default:return[0,b,0,0,""]}}function Vd(a,b){null!=Nc(a,u(a),b)&&(a.N|=a.of)}function Jc(a,b){-1!==a.Ca.load(b)&&(a.N|=a.of)}
function Dc(a,b,c){var d=r(a);-1!==a.Z.load(b)&&(n(a,d),a.Z.xd?(a.bg=a.Z.Ea+a.Z.wa|0,a.Hd=a.Z.Ea+a.Z.cb|0):(a.bg=a.Z.Ea+a.Z.cb|0,a.Hd=a.Z.Ea),c||(a.N|=4))}function Kc(a,b){-1!==a.va.load(b)&&(a.N|=a.of)}function u(a){return a.da-a.Ia.Ea|0}function E(a,b){a.da=a.Ia.Ea+(b&a.C)|0}function Wd(a,b){a.da=b|0;a.ag=a.Ia.Ea+a.Ia.cb|0;a.Fa=a.Ia.Cb;Od(a)}function Nc(a,b,c,d){var e=a.Ia;e.af=b;e.F=d;b=e.load(c);return-1!==b?(Wd(a,b+(a.Ia.af&a.Ia.C)),a.Ia.oe):null}
function Xd(a,b){a.da=a.da+b|0;var c=a.ag-a.da|0;0>c&&0<=(a.ag^a.da)&&(8088>=a.ia||a.Ia.cb==a.Ia.wa?E(a,a.da-a.Ia.Ea):-1>c&&h.call(a,13,0))}function Yd(a){a.da=a.Sd}function r(a){return a.Ob&~a.Z.wa|a.xa-a.Z.Ea}function n(a,b){a.Ob=b;a.xa=a.Z.Ea+(b&a.Z.wa)|0}function Zd(a,b,c,d,e,k){if(63!=(e&63)&&e!=a.resultType){var l=(e^a.resultType)&a.resultType;l&&(l&1&&$d(a),l&2&&ae(a),l&4&&be(a),l&8&&ce(a),l&16&&de(a),l&32&&ee(a))}k?(a.rd=d,a.qd=b):(a.rd=b,a.qd=d);a.Id=c;a.Ed=d;a.resultType=e}
@ -174,7 +174,7 @@ function yh(){this.A-=-1===this.U?2:this.D.cj;return 1}function zh(){var a=this.
function h(a,b,c,d){var e=!1;this.ja.Je?80186<=this.ia&&(e=!0,0>this.Vb?(-1!=this.od&&(this.Ia.Cb=3,Vd(this,this.od),this.od=-1),Wd(this,this.Sd),-1!=this.Gd&&(Dc(this,this.Gd),this.Gd=-1),-1!==this.sa&&(n(this,this.Ob&~this.Z.wa|this.sa-this.Z.Ea),this.sa=-1)):8!=this.Vb?(b=0,a=8):(b=0,a=-1,yd(this),e=d=!1)):Wd(this,this.Sd);var k=a,l=b,p=se(this,this.da);204!=p||this.yc||(d=!1);this.ca&131072&&(6==k&&99==p||13==k&&205==p)&&(d=!1);983040<=this.da&&1048575>=this.da&&(d=!1);if(d){var q=this.ja.Rb,
k="Fault 0x"+da(k,2)+(null!=l?" (0x"+da(l,4)+")":"")+" on opcode "+("0x"+da(p,2));d&&q&&(k+=" (blocked by PCjs Debugger)");this.Ha(k);pc(this)}if(d&&e)throw-1;if(e)throw this.Vb=a,tg.call(this,a,b,c),this.Sd=this.da,this.N=1==a?this.N|8192:this.N|4096,a;}function zd(a,b,c){this.pd=a;a=0;b&&(a|=1);c&&(a|=2);3==this.Fa&&(a|=4);h.call(this,14,a)}function md(){this.Gc[this.X()].call(this)}function pd(){t(this,r(this)&this.C);this.A-=this.D.Ac}
function Wc(){this.sa=this.xa;var a=r(this)&this.C;t(this,this.G&this.C);t(this,this.F&this.C);t(this,this.I&this.C);t(this,this.B&this.C);t(this,a);t(this,this.K&this.C);t(this,this.J&this.C);t(this,this.H&this.C);this.A-=this.D.Xi;this.sa=-1}
function Xc(){this.sa=this.xa;this.H=this.H&~this.C|m(this);this.J=this.J&~this.C|m(this);this.K=this.K&~this.C|m(this);n(this,r(this)+this.ba);this.B=this.B&~this.C|m(this);this.I=this.I&~this.C|m(this);this.F=this.F&~this.C|m(this);this.G=this.G&~this.C|m(this);this.A-=this.D.Vi;this.sa=-1}function Yc(){this.ta[this.X()].call(this,Vf)}function qd(){!(this.Ua&1)||this.ca&131072?h.call(this,6):this.Da[this.X()].call(this,Uf)}function sd(){this.N|=20;this.O=this.S=this.Qa;this.A-=this.D.Oc}
function Xc(){this.sa=this.xa;this.H=this.H&~this.C|m(this);this.J=this.J&~this.C|m(this);this.K=this.K&~this.C|m(this);n(this,r(this)+this.ba);this.B=this.B&~this.C|m(this);this.I=this.I&~this.C|m(this);this.F=this.F&~this.C|m(this);this.G=this.G&~this.C|m(this);this.A-=this.D.Vi;this.sa=-1}function Yc(){this.ta[this.X()].call(this,Vf)}function rd(){!(this.Ua&1)||this.ca&131072?h.call(this,6):this.Da[this.X()].call(this,Uf)}function sd(){this.N|=20;this.O=this.S=this.Qa;this.A-=this.D.Oc}
function td(){this.N|=20;this.O=this.S=this.Va;this.A-=this.D.Oc}function ud(){this.N|=1024;this.Ba&1024||(this.ba^=6,this.C^=-65536,Nd(this));this.A-=this.D.Oc}function vd(){this.N|=2048;this.Ba&2048||(this.Uc^=6,this.wa^=-65536,Ed(this));this.A-=this.D.Oc}function Zc(){t(this,this.Ga());this.A-=this.D.Ac}function $c(){this.ta[this.X()].call(this,og)}function ad(){t(this,this.L());this.A-=this.D.Ac}function bd(){this.ta[this.X()].call(this,mg)}
function cd(){var a=1,b=0,c=this.wa,d=5;this.Ba&192&&(a=this.F&c,b=1,this.Ba&256&&(d=4));if(a--){var e=this.I&65535;re(this,e,1)&&(e=Ob(this.na,e,1,this.da-b-1),this.Lc(this.va.hc(this.H&c,1),e),this.H=this.H&~c|this.H+(this.ca&1024?-1:1)&c,this.F=this.F&~c|this.F-b&c,this.A-=d,a&&(Yd(this),this.N|=256))}}
function dd(){var a=1,b=0,c=this.wa,d=5;this.Ba&192&&(a=this.F&c,b=1,this.Ba&256&&(d=4));if(a--){var e=this.I&65535;re(this,e,this.ba)&&(e=Ob(this.na,e,this.ba,this.da-b-1),this.Ub(this.va.hc(this.H&c,this.ba),e),this.H=this.H&~c|this.H+(this.ca&1024?-this.ba:this.ba)&c,this.F=this.F&~c|this.F-b&c,this.A-=d,a&&(Yd(this),this.N|=256))}}
@ -216,7 +216,7 @@ c,b=1,d=this.D.Xg,this.Ba&256||(this.A-=this.D.Wg));a--&&(hg.call(this,this.G&th
function(){this.G=this.G&-65281|this.X()<<8;this.A-=this.D.Nb},function(){this.F=this.F&-65281|this.X()<<8;this.A-=this.D.Nb},function(){this.I=this.I&-65281|this.X()<<8;this.A-=this.D.Nb},function(){this.B=this.B&-65281|this.X()<<8;this.A-=this.D.Nb},function(){this.G=this.G&~this.C|this.Ga();this.A-=this.D.Nb},function(){this.F=this.F&~this.C|this.Ga();this.A-=this.D.Nb},function(){this.I=this.I&~this.C|this.Ga();this.A-=this.D.Nb},function(){this.B=this.B&~this.C|this.Ga();this.A-=this.D.Nb},function(){n(this,
r(this)&~this.C|this.Ga());this.A-=this.D.Nb},function(){this.K=this.K&~this.C|this.Ga();this.A-=this.D.Nb},function(){this.J=this.J&~this.C|this.Ga();this.A-=this.D.Nb},function(){this.H=this.H&~this.C|this.Ga();this.A-=this.D.Nb},bi,ci,bi,ci,function(){this.ta[this.X()].call(this,xg)},function(){this.ta[this.X()].call(this,vg)},function(){this.N|=1;this.wc[this.X()].call(this,ji,this.X)},function(){this.N|=1;this.vb[this.X()].call(this,ji,this.Ga)},di,ei,di,ei,function(){if(this.ca&131072&&3>this.Fb)h.call(this,
13,0);else{var a=this.D.Ci;this.Vb=-1;tg.call(this,3,null,a)}},function(){var a=this.X();if(this.ca&131072&&3>this.Fb)h.call(this,13,0);else{var b;a:{b=this.rf[a];if(void 0!==b)for(var c=0;c<b.length;c++)if(!b[c](this.da)){b=!1;break a}b=!0}b?(this.Vb=-1,tg.call(this,a,null,0)):this.A--}},function(){if(ee(this))if(this.ca&131072&&3>this.Fb)h.call(this,13,0);else{var a=this.D.Di;this.Vb=-1;tg.call(this,4,null,a)}else this.A-=this.D.Ei},function(){if(this.ca&131072&&3>this.Fb)h.call(this,13,0);else{this.sa=
this.xa;this.A-=this.D.Ai;if(this.Ua&1&&this.ca&16384){var a=this.ma(this.la.Ea+0);Ec(this.Ia,a,!1)}else{var a=this.Fa,b=m(this),c=m(this),d=m(this);if(this.ca&131072)d=d&131071|this.ca&-131072;else if(d&131072){var e=m(this),k=m(this),l=m(this),p=m(this),q=m(this),w=m(this);Fc(this,!0,!0);Dc(this,k);n(this,e);Kc(this,l);Jc(this,p);this.Qa.load(q);this.Va.load(w)}null!=Nc(this,b,c,!1)&&(Mc(this,d,a),this.$f&&Qd(this,this.da))}this.sa=-1}},function(){this.wc[this.X()].call(this,Zh,yh)},function(){this.vb[this.X()].call(this,
this.xa;this.A-=this.D.Ai;if(this.Ua&1&&this.ca&16384){var a=this.ma(this.la.Ea+0);Ec(this.Ia,a,!1)}else{var a=this.Fa,b=m(this),c=m(this),d=m(this);if(this.ca&131072)d=d&131071|this.ca&-131072;else if(d&131072){var e=m(this),k=m(this),l=m(this),p=m(this),q=m(this),v=m(this);Fc(this,!0,!0);Dc(this,k);n(this,e);Kc(this,l);Jc(this,p);this.Qa.load(q);this.Va.load(v)}null!=Nc(this,b,c,!1)&&(Mc(this,d,a),this.$f&&Qd(this,this.da))}this.sa=-1}},function(){this.wc[this.X()].call(this,Zh,yh)},function(){this.vb[this.X()].call(this,
2==this.ba?$h:ai,yh)},function(){this.wc[this.X()].call(this,Zh,zh)},function(){this.vb[this.X()].call(this,2==this.ba?$h:ai,zh)},function(){var a=this.X();if(a){var b=this.G&255;this.G=this.G&-65536|b/a<<8|b%a;fe(this,this.G,128);this.A-=this.D.ei}else xh.call(this)},function(){var a=this.G&255,b=(this.G>>8&255)*this.X()|0,c=a+b|0;this.G=this.G&-65536|c&255;Zd(this,a,b,c,191);this.A-=this.D.di},function(){this.G=this.G&-256|($d(this)?255:0);this.A-=2},function(){this.G=this.G&-256|te(this,this.O,
this.B+(this.G&255)&65535);this.A-=this.D.dj},function(){fi.call(this,216)},function(){fi.call(this,217)},function(){fi.call(this,218)},function(){fi.call(this,219)},function(){fi.call(this,220)},function(){fi.call(this,221)},function(){fi.call(this,222)},function(){fi.call(this,223)},function(){var a=this.L(),b=this.F-1&this.wa;this.F=this.F&~this.wa|b;b&&!ce(this)?(E(this,u(this)+a),this.A-=this.D.Li):this.A-=this.D.Lg},function(){var a=this.L(),b=this.F-1&this.wa;this.F=this.F&~this.wa|b;b&&ce(this)?
(E(this,u(this)+a),this.A-=this.D.Mg):this.A-=this.D.Ng},function(){var a=this.L(),b=this.F-1&this.wa;this.F=this.F&~this.wa|b;b?(E(this,u(this)+a),this.A-=this.D.Ki):this.A-=this.D.Lg},function(){var a=this.L();this.F&this.wa?this.A-=this.D.Ng:(E(this,u(this)+a),this.A-=this.D.Mg)},function(){var a=this.X();re(this,a,1)&&(this.G=this.G&-256|Ob(this.na,a,1,this.da-2)&255,this.A-=this.D.Gg)},function(){var a=this.X();re(this,a,this.ba)&&(this.G=this.G&~this.C|Ob(this.na,a,this.ba,this.da-2)&this.C,
@ -239,25 +239,25 @@ this.A-=-1===this.U?this.D.Ve:this.D.Ue;return b&this.C},function(a){var b=a-1|0
function(a){if(-1===this.U)return wh.call(this,a);Nc(this,a,this.ma(this.U+this.ba));this.A-=this.D.Fi;this.N|=2;return a},function(a){var b=a;this.N&512&&(a=a-2&65535,80286>this.ia&&(b=a));t(this,b);this.A-=-1===this.U?this.D.Ac:this.D.Yi;this.N|=2;return a},wh];function wd(){this.ta[this.X()].call(this,qh);this.A-=-1===this.U?6:13}function xd(){this.Da[this.X()].call(this,ph);this.A-=-1===this.U?12:19}var nd=Array(256);
nd[0]=function(){var a=this.X();16>(a&56)&&(this.N|=1);this.vb[a].call(this,this.Ah,Bh)};nd[1]=function(){var a=this.X();a&16||(this.N|=1);this.vb[a].call(this,mi,Bh)};nd[2]=function(){!(this.Ua&1)||this.ca&131072?h.call(this,6):this.ta[this.X()].call(this,ug)};nd[3]=function(){!(this.Ua&1)||this.ca&131072?h.call(this,6):this.ta[this.X()].call(this,Ag)};
nd[5]=function(){this.Fa?h.call(this,13,0,0,!0):(qe(this,this.ma(2054)),this.H=this.ma(2086),this.J=this.ma(2088),this.K=this.ma(2090),this.B=this.ma(2094),this.I=this.ma(2096),this.F=this.ma(2098),this.G=this.ma(2100),Cc(this.va,2102,this.ma(2084)),Cc(this.Ia,2108,this.ma(2082)),Cc(this.Z,2114,this.ma(2080)),Cc(this.Ca,2120,this.ma(2078)),Mc(this,this.ma(2072)),E(this,this.ma(2074)),n(this,this.ma(2092)),this.kb=this.ma(2126)|this.Lb(2128)<<16,this.xc=this.kb+this.ma(2130),this.Ab=this.ma(2138)|
this.Lb(2140)<<16,this.yc=this.Ab+this.ma(2142),Cc(this.Pb,2132,this.ma(2076)),Cc(this.la,2144,this.ma(2070)),this.A-=195)};nd[6]=function(){this.Fa?h.call(this,13,0):(this.Ua&=-9,this.A-=2)};nd[11]=Vc;nd[166]=Vc;nd[255]=Vc;var v=[];v[5]=Vc;
v[7]=function(){if(this.Fa)h.call(this,13,0,0,!0);else{var a=this.va.gc(this.H&this.wa,204);if(-1!==a){this.Ua=this.ka(a);Fc(this);this.Ua&-2147483648?Ab(this):Ad(this);var b=this.ka(a+168),c=(b&24576)>>13;Mc(this,this.ka(a+4),c);this.kb=this.ka(a+112);this.xc=this.kb+this.ka(a+116);this.Ab=this.ka(a+100);this.yc=this.Ab+this.ka(a+104);Bc(this.Pb,this.ka(a+56),this.ka(a+120),this.ka(a+124),this.ka(a+128));Bc(this.la,this.ka(a+52),this.ka(a+84),this.ka(a+88),this.ka(a+92));this.H=this.ka(a+12);this.J=
this.Lb(2140)<<16,this.yc=this.Ab+this.ma(2142),Cc(this.Pb,2132,this.ma(2076)),Cc(this.la,2144,this.ma(2070)),this.A-=195)};nd[6]=function(){this.Fa?h.call(this,13,0):(this.Ua&=-9,this.A-=2)};nd[11]=Vc;nd[166]=Vc;nd[255]=Vc;var w=[];w[5]=Vc;
w[7]=function(){if(this.Fa)h.call(this,13,0,0,!0);else{var a=this.va.gc(this.H&this.wa,204);if(-1!==a){this.Ua=this.ka(a);Fc(this);this.Ua&-2147483648?Ab(this):Ad(this);var b=this.ka(a+168),c=(b&24576)>>13;Mc(this,this.ka(a+4),c);this.kb=this.ka(a+112);this.xc=this.kb+this.ka(a+116);this.Ab=this.ka(a+100);this.yc=this.Ab+this.ka(a+104);Bc(this.Pb,this.ka(a+56),this.ka(a+120),this.ka(a+124),this.ka(a+128));Bc(this.la,this.ka(a+52),this.ka(a+84),this.ka(a+88),this.ka(a+92));this.H=this.ka(a+12);this.J=
this.ka(a+16);this.K=this.ka(a+20);this.B=this.ka(a+28);this.I=this.ka(a+32);this.F=this.ka(a+36);this.G=this.ka(a+40);Bc(this.Va,this.ka(a+60),this.ka(a+132),this.ka(a+136),this.ka(a+140));Bc(this.Qa,this.ka(a+64),this.ka(a+144),this.ka(a+148),this.ka(a+152));Bc(this.Ca,this.ka(a+68),this.ka(a+156),this.ka(a+160),this.ka(a+164));Bc(this.Z,this.ka(a+72),b,this.ka(a+172),this.ka(a+176));Bc(this.Ia,this.ka(a+76),this.ka(a+180),this.ka(a+184),this.ka(a+188));Bc(this.va,this.ka(a+80),this.ka(a+192),this.ka(a+
196),this.ka(a+200));E(this,this.ka(a+8));n(this,this.ka(a+24))}this.A-=122<<(a&3?1:0)}};v[16]=Vh;v[17]=Wh;v[18]=Xh;v[19]=Yh;v[32]=function(){if(this.Fa)h.call(this,13,0);else{var a,b=this.X();switch((b&56)>>3){case 0:a=this.Ua;break;case 2:a=this.pd;break;case 3:a=this.Zc;break;default:od.call(this);return}Cd(this,b&7,a);this.A-=6}};v[33]=function(){if(this.Fa)h.call(this,13,0);else{var a=this.X(),b=(a&56)>>3;4==b||5==b?od.call(this):(Cd(this,a&7,this.fb[b]),this.A-=22)}};
v[34]=function(){if(this.Fa)h.call(this,13,0);else{var a=this.X(),b=Bd(this,a&7);switch((a&56)>>3){case 0:this.Ua=b;Fc(this);this.Ua&-2147483648?Ab(this):Ad(this);this.A-=10;break;case 2:this.pd=b;this.A-=4;break;case 3:Pc.call(this,b);this.A-=5;break;default:od.call(this)}}};v[35]=function(){if(this.Fa)h.call(this,13,0);else{var a=this.X(),b=(a&56)>>3;4==b||5==b?od.call(this):(a=Bd(this,a&7),a!=this.fb[b]&&(Rd(this,!1),this.fb[b]=a,Rd(this,!0)),this.A-=4>b?22:14)}};
v[36]=function(){if(this.Fa)h.call(this,13,0);else{var a=this.X(),b=(a&56)>>3;6>b?od.call(this):(Cd(this,a&7,this.uf[b]),this.A-=12)}};v[38]=function(){if(this.Fa)h.call(this,13,0);else{var a=this.X(),b=(a&56)>>3;6>b?od.call(this):(this.uf[b]=Bd(this,a&7),this.A-=12)}};v[128]=function(){var a=this.Ga();ee(this)?(E(this,u(this)+a),this.A-=this.D.Ra):this.A-=this.D.Sa};v[129]=function(){var a=this.Ga();ee(this)?this.A-=this.D.Sa:(E(this,u(this)+a),this.A-=this.D.Ra)};
v[130]=function(){var a=this.Ga();$d(this)?(E(this,u(this)+a),this.A-=this.D.Ra):this.A-=this.D.Sa};v[131]=function(){var a=this.Ga();$d(this)?this.A-=this.D.Sa:(E(this,u(this)+a),this.A-=this.D.Ra)};v[132]=function(){var a=this.Ga();ce(this)?(E(this,u(this)+a),this.A-=this.D.Ra):this.A-=this.D.Sa};v[133]=function(){var a=this.Ga();ce(this)?this.A-=this.D.Sa:(E(this,u(this)+a),this.A-=this.D.Ra)};v[134]=function(){var a=this.Ga();$d(this)||ce(this)?(E(this,u(this)+a),this.A-=this.D.Ra):this.A-=this.D.Sa};
v[135]=function(){var a=this.Ga();$d(this)||ce(this)?this.A-=this.D.Sa:(E(this,u(this)+a),this.A-=this.D.Ra)};v[136]=function(){var a=this.Ga();de(this)?(E(this,u(this)+a),this.A-=this.D.Ra):this.A-=this.D.Sa};v[137]=function(){var a=this.Ga();de(this)?this.A-=this.D.Sa:(E(this,u(this)+a),this.A-=this.D.Ra)};v[138]=function(){var a=this.Ga();ae(this)?(E(this,u(this)+a),this.A-=this.D.Ra):this.A-=this.D.Sa};v[139]=function(){var a=this.Ga();ae(this)?this.A-=this.D.Sa:(E(this,u(this)+a),this.A-=this.D.Ra)};
v[140]=function(){var a=this.Ga();!de(this)!=!ee(this)?(E(this,u(this)+a),this.A-=this.D.Ra):this.A-=this.D.Sa};v[141]=function(){var a=this.Ga();!de(this)==!ee(this)?(E(this,u(this)+a),this.A-=this.D.Ra):this.A-=this.D.Sa};v[142]=function(){var a=this.Ga();ce(this)||!de(this)!=!ee(this)?(E(this,u(this)+a),this.A-=this.D.Ra):this.A-=this.D.Sa};v[143]=function(){var a=this.Ga();ce(this)||!de(this)!=!ee(this)?this.A-=this.D.Sa:(E(this,u(this)+a),this.A-=this.D.Ra)};v[144]=function(){Kg.call(this,Lg)};
v[145]=function(){Kg.call(this,Lg)};v[146]=function(){Kg.call(this,Mg)};v[147]=function(){Kg.call(this,Ng)};v[148]=function(){Kg.call(this,Og)};v[149]=function(){Kg.call(this,Pg)};v[150]=function(){Kg.call(this,Qg)};v[151]=function(){Kg.call(this,Rg)};v[152]=function(){Kg.call(this,Sg)};v[153]=function(){Kg.call(this,Tg)};v[154]=function(){Kg.call(this,Ug)};v[155]=function(){Kg.call(this,Vg)};v[156]=function(){Kg.call(this,Wg)};v[157]=function(){Kg.call(this,Xg)};v[158]=function(){Kg.call(this,Yg)};
v[159]=function(){Kg.call(this,Zg)};v[160]=function(){Ic(this,this.Qa.ra,this.ba,2);this.A-=this.D.Rd};v[161]=function(){this.sa=this.xa;var a=m(this);this.Qa.load(a);this.A-=this.D.bc;this.sa=-1};v[163]=function(){this.Da[this.X()].call(this,bg);-1!==this.U&&(this.A-=6)};v[164]=function(){this.Da[this.X()].call(this,2==this.ba?bh:ch);this.A-=-1===this.U?3:7};v[165]=function(){this.Da[this.X()].call(this,2==this.ba?dh:eh);this.A-=-1===this.U?3:7};
v[168]=function(){Ic(this,this.Va.ra,this.ba,2);this.A-=this.D.Rd};v[169]=function(){this.sa=this.xa;var a=m(this);this.Va.load(a);this.A-=this.D.bc;this.sa=-1};v[171]=function(){this.Da[this.X()].call(this,eg);-1!==this.U&&(this.A-=5)};v[172]=function(){this.Da[this.X()].call(this,2==this.ba?hh:ih);this.A-=-1===this.U?3:7};v[173]=function(){this.Da[this.X()].call(this,2==this.ba?jh:kh);this.A-=-1===this.U?3:7};v[175]=function(){this.ta[this.X()].call(this,2==this.ba?ng:pg)};
v[178]=function(){this.ta[this.X()].call(this,Bg)};v[179]=function(){this.Da[this.X()].call(this,dg);-1!==this.U&&(this.A-=5)};v[180]=function(){this.ta[this.X()].call(this,yg)};v[181]=function(){this.ta[this.X()].call(this,zg)};
v[182]=function(){var a,b=this.X(),c=(b&56)>>3;switch(c){case 4:a=this.G;break;case 5:a=this.F;break;case 6:a=this.I;break;case 7:a=this.B}this.wb[b].call(this,Dg);switch(c){case 0:this.G=this.G&~this.C|this.G&255;break;case 1:this.F=this.F&~this.C|this.F&255;break;case 2:this.I=this.I&~this.C|this.I&255;break;case 3:this.B=this.B&~this.C|this.B&255;break;case 4:this.Ob=this.Ob&~this.C|this.G>>8&255;this.G=a;break;case 5:this.K=this.K&~this.C|this.F>>8&255;this.F=a;break;case 6:this.J=this.J&~this.C|
this.I>>8&255;this.I=a;break;case 7:this.H=this.H&~this.C|this.B>>8&255,this.B=a}this.A-=-1===this.U?3:6};v[183]=function(){var a=this.X();Gc(this,2);this.ta[a].call(this,Dg);switch((a&56)>>3){case 0:this.G=this.G&65535;break;case 1:this.F=this.F&65535;break;case 2:this.I=this.I&65535;break;case 3:this.B=this.B&65535;break;case 4:this.Ob=this.Ob&65535;break;case 5:this.K=this.K&65535;break;case 6:this.J=this.J&65535;break;case 7:this.H=this.H&65535}this.A-=-1===this.U?3:6};
v[186]=function(){this.vb[this.X()].call(this,ni,this.X)};v[187]=function(){this.Da[this.X()].call(this,cg);-1!==this.U&&(this.A-=5)};v[188]=function(){this.ta[this.X()].call(this,Wf)};v[189]=function(){this.ta[this.X()].call(this,Xf)};
v[190]=function(){var a,b=this.X(),c=(b&56)>>3;switch(c){case 4:a=this.G;break;case 5:a=this.F;break;case 6:a=this.I;break;case 7:a=this.B}this.wb[b].call(this,Dg);switch(c){case 0:this.G=this.G&~this.C|(this.G&255)<<24>>24&this.C;break;case 1:this.F=this.F&~this.C|(this.F&255)<<24>>24&this.C;break;case 2:this.I=this.I&~this.C|(this.I&255)<<24>>24&this.C;break;case 3:this.B=this.B&~this.C|(this.B&255)<<24>>24&this.C;break;case 4:this.Ob=this.Ob&~this.C|this.G<<16>>24&this.C;this.G=a;break;case 5:this.K=
196),this.ka(a+200));E(this,this.ka(a+8));n(this,this.ka(a+24))}this.A-=122<<(a&3?1:0)}};w[16]=Vh;w[17]=Wh;w[18]=Xh;w[19]=Yh;w[32]=function(){if(this.Fa)h.call(this,13,0);else{var a,b=this.X();switch((b&56)>>3){case 0:a=this.Ua;break;case 2:a=this.pd;break;case 3:a=this.Zc;break;default:od.call(this);return}Cd(this,b&7,a);this.A-=6}};w[33]=function(){if(this.Fa)h.call(this,13,0);else{var a=this.X(),b=(a&56)>>3;4==b||5==b?od.call(this):(Cd(this,a&7,this.fb[b]),this.A-=22)}};
w[34]=function(){if(this.Fa)h.call(this,13,0);else{var a=this.X(),b=Bd(this,a&7);switch((a&56)>>3){case 0:this.Ua=b;Fc(this);this.Ua&-2147483648?Ab(this):Ad(this);this.A-=10;break;case 2:this.pd=b;this.A-=4;break;case 3:Pc.call(this,b);this.A-=5;break;default:od.call(this)}}};w[35]=function(){if(this.Fa)h.call(this,13,0);else{var a=this.X(),b=(a&56)>>3;4==b||5==b?od.call(this):(a=Bd(this,a&7),a!=this.fb[b]&&(Rd(this,!1),this.fb[b]=a,Rd(this,!0)),this.A-=4>b?22:14)}};
w[36]=function(){if(this.Fa)h.call(this,13,0);else{var a=this.X(),b=(a&56)>>3;6>b?od.call(this):(Cd(this,a&7,this.uf[b]),this.A-=12)}};w[38]=function(){if(this.Fa)h.call(this,13,0);else{var a=this.X(),b=(a&56)>>3;6>b?od.call(this):(this.uf[b]=Bd(this,a&7),this.A-=12)}};w[128]=function(){var a=this.Ga();ee(this)?(E(this,u(this)+a),this.A-=this.D.Ra):this.A-=this.D.Sa};w[129]=function(){var a=this.Ga();ee(this)?this.A-=this.D.Sa:(E(this,u(this)+a),this.A-=this.D.Ra)};
w[130]=function(){var a=this.Ga();$d(this)?(E(this,u(this)+a),this.A-=this.D.Ra):this.A-=this.D.Sa};w[131]=function(){var a=this.Ga();$d(this)?this.A-=this.D.Sa:(E(this,u(this)+a),this.A-=this.D.Ra)};w[132]=function(){var a=this.Ga();ce(this)?(E(this,u(this)+a),this.A-=this.D.Ra):this.A-=this.D.Sa};w[133]=function(){var a=this.Ga();ce(this)?this.A-=this.D.Sa:(E(this,u(this)+a),this.A-=this.D.Ra)};w[134]=function(){var a=this.Ga();$d(this)||ce(this)?(E(this,u(this)+a),this.A-=this.D.Ra):this.A-=this.D.Sa};
w[135]=function(){var a=this.Ga();$d(this)||ce(this)?this.A-=this.D.Sa:(E(this,u(this)+a),this.A-=this.D.Ra)};w[136]=function(){var a=this.Ga();de(this)?(E(this,u(this)+a),this.A-=this.D.Ra):this.A-=this.D.Sa};w[137]=function(){var a=this.Ga();de(this)?this.A-=this.D.Sa:(E(this,u(this)+a),this.A-=this.D.Ra)};w[138]=function(){var a=this.Ga();ae(this)?(E(this,u(this)+a),this.A-=this.D.Ra):this.A-=this.D.Sa};w[139]=function(){var a=this.Ga();ae(this)?this.A-=this.D.Sa:(E(this,u(this)+a),this.A-=this.D.Ra)};
w[140]=function(){var a=this.Ga();!de(this)!=!ee(this)?(E(this,u(this)+a),this.A-=this.D.Ra):this.A-=this.D.Sa};w[141]=function(){var a=this.Ga();!de(this)==!ee(this)?(E(this,u(this)+a),this.A-=this.D.Ra):this.A-=this.D.Sa};w[142]=function(){var a=this.Ga();ce(this)||!de(this)!=!ee(this)?(E(this,u(this)+a),this.A-=this.D.Ra):this.A-=this.D.Sa};w[143]=function(){var a=this.Ga();ce(this)||!de(this)!=!ee(this)?this.A-=this.D.Sa:(E(this,u(this)+a),this.A-=this.D.Ra)};w[144]=function(){Kg.call(this,Lg)};
w[145]=function(){Kg.call(this,Lg)};w[146]=function(){Kg.call(this,Mg)};w[147]=function(){Kg.call(this,Ng)};w[148]=function(){Kg.call(this,Og)};w[149]=function(){Kg.call(this,Pg)};w[150]=function(){Kg.call(this,Qg)};w[151]=function(){Kg.call(this,Rg)};w[152]=function(){Kg.call(this,Sg)};w[153]=function(){Kg.call(this,Tg)};w[154]=function(){Kg.call(this,Ug)};w[155]=function(){Kg.call(this,Vg)};w[156]=function(){Kg.call(this,Wg)};w[157]=function(){Kg.call(this,Xg)};w[158]=function(){Kg.call(this,Yg)};
w[159]=function(){Kg.call(this,Zg)};w[160]=function(){Ic(this,this.Qa.ra,this.ba,2);this.A-=this.D.Rd};w[161]=function(){this.sa=this.xa;var a=m(this);this.Qa.load(a);this.A-=this.D.bc;this.sa=-1};w[163]=function(){this.Da[this.X()].call(this,bg);-1!==this.U&&(this.A-=6)};w[164]=function(){this.Da[this.X()].call(this,2==this.ba?bh:ch);this.A-=-1===this.U?3:7};w[165]=function(){this.Da[this.X()].call(this,2==this.ba?dh:eh);this.A-=-1===this.U?3:7};
w[168]=function(){Ic(this,this.Va.ra,this.ba,2);this.A-=this.D.Rd};w[169]=function(){this.sa=this.xa;var a=m(this);this.Va.load(a);this.A-=this.D.bc;this.sa=-1};w[171]=function(){this.Da[this.X()].call(this,eg);-1!==this.U&&(this.A-=5)};w[172]=function(){this.Da[this.X()].call(this,2==this.ba?hh:ih);this.A-=-1===this.U?3:7};w[173]=function(){this.Da[this.X()].call(this,2==this.ba?jh:kh);this.A-=-1===this.U?3:7};w[175]=function(){this.ta[this.X()].call(this,2==this.ba?ng:pg)};
w[178]=function(){this.ta[this.X()].call(this,Bg)};w[179]=function(){this.Da[this.X()].call(this,dg);-1!==this.U&&(this.A-=5)};w[180]=function(){this.ta[this.X()].call(this,yg)};w[181]=function(){this.ta[this.X()].call(this,zg)};
w[182]=function(){var a,b=this.X(),c=(b&56)>>3;switch(c){case 4:a=this.G;break;case 5:a=this.F;break;case 6:a=this.I;break;case 7:a=this.B}this.wb[b].call(this,Dg);switch(c){case 0:this.G=this.G&~this.C|this.G&255;break;case 1:this.F=this.F&~this.C|this.F&255;break;case 2:this.I=this.I&~this.C|this.I&255;break;case 3:this.B=this.B&~this.C|this.B&255;break;case 4:this.Ob=this.Ob&~this.C|this.G>>8&255;this.G=a;break;case 5:this.K=this.K&~this.C|this.F>>8&255;this.F=a;break;case 6:this.J=this.J&~this.C|
this.I>>8&255;this.I=a;break;case 7:this.H=this.H&~this.C|this.B>>8&255,this.B=a}this.A-=-1===this.U?3:6};w[183]=function(){var a=this.X();Gc(this,2);this.ta[a].call(this,Dg);switch((a&56)>>3){case 0:this.G=this.G&65535;break;case 1:this.F=this.F&65535;break;case 2:this.I=this.I&65535;break;case 3:this.B=this.B&65535;break;case 4:this.Ob=this.Ob&65535;break;case 5:this.K=this.K&65535;break;case 6:this.J=this.J&65535;break;case 7:this.H=this.H&65535}this.A-=-1===this.U?3:6};
w[186]=function(){this.vb[this.X()].call(this,ni,this.X)};w[187]=function(){this.Da[this.X()].call(this,cg);-1!==this.U&&(this.A-=5)};w[188]=function(){this.ta[this.X()].call(this,Wf)};w[189]=function(){this.ta[this.X()].call(this,Xf)};
w[190]=function(){var a,b=this.X(),c=(b&56)>>3;switch(c){case 4:a=this.G;break;case 5:a=this.F;break;case 6:a=this.I;break;case 7:a=this.B}this.wb[b].call(this,Dg);switch(c){case 0:this.G=this.G&~this.C|(this.G&255)<<24>>24&this.C;break;case 1:this.F=this.F&~this.C|(this.F&255)<<24>>24&this.C;break;case 2:this.I=this.I&~this.C|(this.I&255)<<24>>24&this.C;break;case 3:this.B=this.B&~this.C|(this.B&255)<<24>>24&this.C;break;case 4:this.Ob=this.Ob&~this.C|this.G<<16>>24&this.C;this.G=a;break;case 5:this.K=
this.K&~this.C|this.F<<16>>24&this.C;this.F=a;break;case 6:this.J=this.J&~this.C|this.I<<16>>24&this.C;this.I=a;break;case 7:this.H=this.H&~this.C|this.B<<16>>24&this.C,this.B=a}this.A-=-1===this.U?3:6};
v[191]=function(){var a=this.X();Gc(this,2);this.ta[a].call(this,Dg);switch((a&56)>>3){case 0:this.G=this.G<<16>>16;break;case 1:this.F=this.F<<16>>16;break;case 2:this.I=this.I<<16>>16;break;case 3:this.B=this.B<<16>>16;break;case 4:this.Ob=this.Ob<<16>>16;break;case 5:this.K=this.K<<16>>16;break;case 6:this.J=this.J<<16>>16;break;case 7:this.H=this.H<<16>>16}this.A-=-1===this.U?3:6};
w[191]=function(){var a=this.X();Gc(this,2);this.ta[a].call(this,Dg);switch((a&56)>>3){case 0:this.G=this.G<<16>>16;break;case 1:this.F=this.F<<16>>16;break;case 2:this.I=this.I<<16>>16;break;case 3:this.B=this.B<<16>>16;break;case 4:this.Ob=this.Ob<<16>>16;break;case 5:this.K=this.K<<16>>16;break;case 6:this.J=this.J<<16>>16;break;case 7:this.H=this.H<<16>>16}this.A-=-1===this.U?3:6};
var Sd=[function(){this.A-=2+(-1===this.U?0:1);return this.Pb.ra},function(){this.A-=2+(-1===this.U?0:1);return this.la.ra},function(a){this.N|=2;this.Pb.load(a);this.A-=17+(-1===this.U?0:2);return a},function(a){this.N|=2;-1!==this.la.load(a)&&(this.gb(this.la.fc+4,this.la.rb|=512),this.la.type|=512);this.A-=17+(-1===this.U?0:2);return a},function(a){this.N|=2;this.A-=14+(-1===this.U?0:2);if(-1!==this.Na.load(a)&&2048!=(this.Na.rb&2560)&&(this.Na.uc>=this.Fa&&this.Na.uc>=(a&3)||7168==(this.Na.rb&
7168)))return pe(this),a;ne(this);return a},function(a){this.N|=2;this.A-=14+(-1===this.U?0:2);if(-1!==this.Na.load(a)&&512==(this.Na.rb&2560)&&this.Na.uc>=this.Fa&&this.Na.uc>=(a&3))return pe(this),a;ne(this);return a},wh,wh],Uc=[ld,ld,ld,ld,ld,ld,wh,wh],mi=[function(a){if(-1===this.U)h.call(this,6);else{a=this.xc-this.kb;var b=this.kb;80286==this.ia?b|=-16777216:80386<=this.ia&&2!=this.ba&&(a|=b<<16);this.$a(this.U+2,b);this.A-=11}return a},function(a){if(-1===this.U)h.call(this,6);else{a=this.yc-
this.Ab;var b=this.Ab;80286==this.ia?b|=-16777216:80386<=this.ia&&2!=this.ba&&(a|=b<<16);this.$a(this.U+2,b);this.A-=12}return a},function(a){-1===this.U||this.ca&131072?h.call(this,6):(this.kb=this.ka(this.U+2)&(this.C|this.C<<8),a&=65535,this.xc=this.kb+a,this.N|=2,this.A-=11);return a},function(a){-1===this.U||this.ca&131072?h.call(this,6):(this.Ab=this.ka(this.U+2)&(this.C|this.C<<8),a&=65535,this.yc=this.Ab+a,this.N|=2,this.A-=12);return a},function(){this.A-=2+(-1===this.U?0:1);return this.Ua},
@ -858,7 +858,7 @@ function fk(a,b,c,d){if(Y[b]){var e=Math.floor(b/1E3)&2;if(b=Zj[b]||0){!e||b&85|
function ek(a,b,c){if(Y[b]&&a.A&&a.A.ja.Rb){Zj[b]&&a.B.length&&0<a.B[0].ad&&(a.B[0].ad=0);for(var d,e=0;e<a.B.length;e++)if(d=a.B[e],d.Wd==b){if(!c||0<=d.ad){e=-1;break}0<e&&(0<a.B[0].ad&&(a.B[0].ad=0),a.B.splice(e,1));break}0>e||(e==a.B.length&&(d={},d.Wd=b,d.Zb=a.Zb,ik(a,b,!0),e++),0<e&&a.B.splice(0,0,d),d.Ke=!0,d.ad=c?-1:Zj[b]?0:1,kk(a,d))}}
function gk(a,b,c){if(!Y[b]||!(c||a.A&&a.A.ja.Rb))return!1;for(var d=!1,e=0;e<a.B.length;e++){var k=a.B[e];if(k.Wd==b||k.Wd==Yj[b]){a.B.splice(e,1);k.qj&&clearTimeout(k.qj);k.Ke&&!c&&lk(a,k.Wd,!1);ik(a,b,!1);d=!0;break}}!a.B.length&&a.S&&(fk(a,1020),a.S=!1);return d}function kk(a,b){if(!a.A||!a.A.ja.Rb)gk(a,b.Wd,!0);else if(lk(a,b.Wd,b.Ke)&&b.ad){var c;if(0>b.ad){if(!b.Ke){gk(a,b.Wd);return}b.Ke=!1;c=a.ha}else c=1==b.ad++?500:100;b.qj=setTimeout(function(a){return function(){kk(a,b)}}(a),c)}}
function mk(a,b,c){var d=b;if(65<=b&&90>=b)!(a.Zb&515)==c&&(d=b+32);else if(97<=b&&122>=b)!!(a.Zb&515)==c&&(d=b-32);else if(!!(a.Zb&3)==c){if(a=Yj[b])d=a}else if(a=Xj[b])d=a;return d}f.Rf=function(a){a||(this.Zb&=-256)};
function dk(a,b,c){var d=!0,e=!1,k=!1,l=b.keyCode,p=mk(a,l,!0);a.mg&&p==W["`"]&&(l=p=27);if(Y[l+1E3])if(p+=1E3,2==b.location&&(p+=2E3),fk(a,p,!1,c)){if(20==l||144==l||145==l)a.W||(c=e=!0);if(!(c||91!=l&&93!=l))for(var q=0;q<a.B.length;q++){var w=a.B[q];w.Ke=!1;0<w.ad&&(w.ad=0)}}else 8==l&&8==(a.Zb&40)&&(p=4008),d=!1;else if(Y[p]&&a.Zb&60&&(d=!1),d&&c||a.Zb&192)k=!0;d||b.preventDefault();k||a.Z&&d||(c?ek(a,p,e):gk(a,p)||(b=mk(a,l,!1),b!=p&&gk(a,b)));return d}
function dk(a,b,c){var d=!0,e=!1,k=!1,l=b.keyCode,p=mk(a,l,!0);a.mg&&p==W["`"]&&(l=p=27);if(Y[l+1E3])if(p+=1E3,2==b.location&&(p+=2E3),fk(a,p,!1,c)){if(20==l||144==l||145==l)a.W||(c=e=!0);if(!(c||91!=l&&93!=l))for(var q=0;q<a.B.length;q++){var v=a.B[q];v.Ke=!1;0<v.ad&&(v.ad=0)}}else 8==l&&8==(a.Zb&40)&&(p=4008),d=!1;else if(Y[p]&&a.Zb&60&&(d=!1),d&&c||a.Zb&192)k=!0;d||b.preventDefault();k||a.Z&&d||(c?ek(a,p,e):gk(a,p)||(b=mk(a,l,!1),b!=p&&gk(a,b)));return d}
function lk(a,b,c){var d=!1;fk(a,b,!0,c);var e=Y[b]||Y[b+1E3];if(void 0!==e){14==e&&40==(a.Zb&40)&&(e=83);var d=[],k=e&255;if(83<k&&83==a.da)return!1;d.push(k|(c?0:128));for(b=65<=b&&90>=b||97<=b&&122>=b;e>>>=8;){var l=0,p=e&255;224==k||225==k?d.push(k|(c?0:128)):(42==p?a.D&3||a.D&512&&b||(l=p):29==p?a.D&12||(l=p):56==p?a.D&48||(l=p):d.push(k|(c?0:128)),l&&(c?d.unshift(l):d.push(l|128)))}for(c=0;c<d.length;c++)e=a,k=d[c],e.Xb&&(20>e.Xb.length?(e.Xb.push(k),1==e.Xb.length&&e.T&&Gj(e.T,k)):20==e.Xb.length&&
e.Xb.push(255));d=!0}return d}Ea(function(){for(var a=Za(document,"pcjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=Wa(c),d=new Uj(d);Ya(d,c)}});
function Z(a,b,c,d,e){Ia.call(this,"Video",a,Z);this.ia=a.model;this.nb=nk[this.ia]||ok;this.Wc=a.memory||0;this.od=a.switches;this.qa=a.mode;if(void 0===this.qa||void 0===pk[this.qa])this.qa=qk;this.Vb=a.charCols;this.yc=a.charRows;if(void 0===this.Vb||void 0===this.yc)this.Vb=pk[this.qa][0],this.yc=pk[this.qa][1];this.oa=a.screenWidth;this.va=a.screenHeight;this.$d=a.scale;this.Zd=12<=Math.round(this.oa/this.Vb);this.ua=b;this.da=c;this.J=(this.Id=d)||b||null;this.pd=a.touchScreen;this.zc=rk;this.N=
@ -870,7 +870,7 @@ pk[17]=[640,480,8];pk[18]=[640,480,8];pk[19]=[320,200,1];pk[20]=[320,240,4];pk[2
var vk=[[0,0,0,255],[127,192,127,255],[127,192,127,255],[127,255,127,255],[127,255,127,255]],wk=[0,1,2,2,2,2,2,2,0,3,4,4,4,4,4,4],xk=[[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]],yk=[2,4,6],zk=[3,5,7],Ak=[0,1,2,3,4,5,20,7,56,57,58,59,60,61,62,63],Bk=[0,255,65280,65535,16711680,16711935,16776960,
16777215,-16777216,-16776961,-16711936,-16711681,-65536,-65281,-256,-1],Ck=[0];Ck[128]=1;Ck[32768]=2;Ck[32896]=3;Ck[8388608]=4;Ck[8388736]=5;Ck[8421376]=6;Ck[8421504]=7;Ck[-2147483648]=8;Ck[-2147483520]=9;Ck[-2147450880]=10;Ck[-2147450752]=11;Ck[-2139095040]=12;Ck[-2139094912]=13;Ck[-2139062272]=14;Ck[-2139062144]=15;
function Dk(a,b,c,d){if(void 0!==b&&(!c||c.length)){this.video=a;var e=Ek[b],k=a.sa||e[5];if(!c||6>c.length)c=[!1,0,null,null,0,Array(5>b?Fk:Gk)];this.nb=b;this.hb=e[2];this.Hb=e[3];this.Wc=d||e[4];65536<=this.Wc&&720896<=this.hb&&(this.Hb=Math.min(this.Wc>>2,32768));this.$b=c[0];this.Kc=c[1];this.ff=c[2];this.ga=c[3];this.qc=c[4]&255;this.Uf=c[4]>>8&255;this.jb=c[5];this.tg=Fk;if(5<=b){this.tg=Gk;b=c[6];void 0===b&&(b=[!1,0,Array(20),0,3==k?0:1,0,0,Array(5),0,0,0,Array(9),0,[this.hb,this.Hb,this.Wc],
Array(this.Wc>>2),-2147478512,0,-1,0,-1,0,-1,0,0,0,0,1,255,0,0,0,Array(256)]);this.Ie=b[0];this.Ud=b[1];this.Jc=b[2];this.oh=b[3];this.gf=b[4];this.Wf=b[5];this.Ae=b[6];this.ze=b[7];this.hj=b[8];this.ij=b[9];this.ye=b[10];this.Dd=b[11];this.ub=b[12];d=b[13];"number"==typeof d&&(d=[this.hb,this.Hb,d]);this.hb=d[0];this.Hb=d[1];d=this.Wc>>2;if((this.sd=b[14])&&this.sd.length<d){for(var e=this.sd,l=0,p=Array(d),q=0;q<e.length-1;){for(var w=e[q++],B=e[q++];w--;)p[l]=B,l+=2;l==d&&(l=1)}this.sd=p}(d=b[15])&&
Array(this.Wc>>2),-2147478512,0,-1,0,-1,0,-1,0,0,0,0,1,255,0,0,0,Array(256)]);this.Ie=b[0];this.Ud=b[1];this.Jc=b[2];this.oh=b[3];this.gf=b[4];this.Wf=b[5];this.Ae=b[6];this.ze=b[7];this.hj=b[8];this.ij=b[9];this.ye=b[10];this.Dd=b[11];this.ub=b[12];d=b[13];"number"==typeof d&&(d=[this.hb,this.Hb,d]);this.hb=d[0];this.Hb=d[1];d=this.Wc>>2;if((this.sd=b[14])&&this.sd.length<d){for(var e=this.sd,l=0,p=Array(d),q=0;q<e.length-1;){for(var v=e[q++],B=e[q++];v--;)p[l]=B,l+=2;l==d&&(l=1)}this.sd=p}(d=b[15])&&
(d&-2147483648?d&=2147483647:d=Hk[d&65280]|Hk[d&255]);this.Yf(d);this.jh=b[16];this.eb=b[17];this.Ic=b[18];this.xb=b[19];this.Ze=b[20];this.jd=b[21];this.Bd=b[22];this.ug=b[23];this.vg=b[24];this.bf=b[25];this.kh=this.we=0;this.nb==Lj&&(this.ph=b[26],this.nh=b[27],this.bd=b[28],this.Bc=b[29],this.Vf=b[30],this.xe=b[31])}k=tk[k]||tk[3];this.wg=a.A.Y.$c/k.Nf|0;this.al=this.wg*k.Sf/100|0;this.zg=this.wg*k.Mf|0;this.cl=this.zg*k.Tf/100|0;this.Ag=c[7]||0}}var Fk=18,Gk=25,Hk=[,,1024,5120];Hk[16]=1280;
Hk[512]=0;Hk[1024]=32;Hk[1536]=96;Hk[2560]=160;Hk[3584]=224;Hk[768]=16;Hk[4096]=1;Hk[8192]=2;Hk[24576]=98;Hk[40960]=162;Hk[57344]=226;var Ik=[];Ik[1024]=function(a){a+=this.J;return(this.controller.ub=this.aa[a])>>this.controller.jh&255};Ik[17408]=function(a){return(this.controller.ub=this.aa[(a&-4)+this.J])>>((a&3)<<3)&255};Ik[5120]=function(a){a+=this.J;var b=this.controller.ub=this.aa[a&-2];return(a&1?b>>8:b)&255};
Ik[1280]=function(a){a+=this.J;a=this.controller.ub=this.aa[a];for(var b=this.controller.vg,c=this.controller.ug&b,d=0,e=128;e;)(a&b)==c&&(d|=e),c>>>=1,b>>>=1,e>>=1;return d};Ik[0]=function(a,b){var c=a+this.J,d;d=(b|b<<8|b<<16|b<<24)&this.controller.jd|this.controller.Bd;d=d&this.controller.xb|this.controller.ub&~this.controller.xb;d=d&this.controller.eb|this.aa[c]&~this.controller.eb;this.aa[c]!=d&&(this.aa[c]=d,this.Oa=!0)};
@ -882,7 +882,7 @@ Ik[16]=function(a,b){a+=this.J;var c,d=a&-2;c=(b|b<<8|b<<16|b<<24)&this.controll
Ik[17]=function(a){a+=this.J;var b=a&-2;a=this.controller.eb&(b==a?16711935:-16711936);a=this.aa[b]&~a|this.controller.ub&a;this.aa[b]!=a&&(this.aa[b]=a,this.Oa=!0)};Ik[2]=function(a,b){var c=a+this.J,d=Bk[b&15],d=d&this.controller.xb|this.controller.ub&~this.controller.xb,d=d&this.controller.eb|this.aa[c]&~this.controller.eb;this.aa[c]!=d&&(this.aa[c]=d,this.Oa=!0)};
Ik[98]=function(a,b){var c=a+this.J,d=Bk[b&15],d=d&this.controller.ub,d=d&this.controller.xb|this.controller.ub&~this.controller.xb,d=d&this.controller.eb|this.aa[c]&~this.controller.eb;this.aa[c]!=d&&(this.aa[c]=d,this.Oa=!0)};Ik[162]=function(a,b){var c=a+this.J,d=Bk[b&15],d=d|this.controller.ub,d=d&this.controller.xb|this.controller.ub&~this.controller.xb,d=d&this.controller.eb|this.aa[c]&~this.controller.eb;this.aa[c]!=d&&(this.aa[c]=d,this.Oa=!0)};
Ik[226]=function(a,b){var c=a+this.J,d=Bk[b&15],d=d^this.controller.ub,d=d&this.controller.xb|this.controller.ub&~this.controller.xb,d=d&this.controller.eb|this.aa[c]&~this.controller.eb;this.aa[c]!=d&&(this.aa[c]=d,this.Oa=!0)};Ik[3]=function(a,b){var c=a+this.J;b=b>>this.controller.Ic|b<<8-this.controller.Ic&255;var d;d=(b|b<<8|b<<16|b<<24)&this.controller.xb;d=this.controller.Ze&d|this.controller.ub&~d;d=d&this.controller.eb|this.aa[c]&~this.controller.eb;this.aa[c]!=d&&(this.aa[c]=d,this.Oa=!0)};
function Jk(a){var b=[];if(void 0!==a.nb){b[0]=a.$b;b[1]=a.Kc;b[2]=a.ff;b[3]=a.ga;b[4]=a.qc|a.Uf<<8;b[5]=a.jb;if(5<=a.nb){var c=[];c[0]=a.Ie;c[1]=a.Ud;c[2]=a.Jc;c[3]=a.oh;c[4]=a.gf;c[5]=a.Wf;c[6]=a.Ae;c[7]=a.ze;c[8]=a.hj;c[9]=a.ij;c[10]=a.ye;c[11]=a.Dd;c[12]=a.ub;c[13]=[a.hb,a.Hb,a.Wc];var d;a:if(d=a.sd){var e=0,k=[];if(void 0!==d[0])for(var l=0;2>l;l++)for(var p=l;p<d.length;){for(var q=d[p],w=p+2;w<d.length&&d[w]===q;)w+=2;k[e++]=w-p>>1;k[e++]=q;p=w}if(k.length<d.length){d=k;break a}}c[14]=d;c[15]=
function Jk(a){var b=[];if(void 0!==a.nb){b[0]=a.$b;b[1]=a.Kc;b[2]=a.ff;b[3]=a.ga;b[4]=a.qc|a.Uf<<8;b[5]=a.jb;if(5<=a.nb){var c=[];c[0]=a.Ie;c[1]=a.Ud;c[2]=a.Jc;c[3]=a.oh;c[4]=a.gf;c[5]=a.Wf;c[6]=a.Ae;c[7]=a.ze;c[8]=a.hj;c[9]=a.ij;c[10]=a.ye;c[11]=a.Dd;c[12]=a.ub;c[13]=[a.hb,a.Hb,a.Wc];var d;a:if(d=a.sd){var e=0,k=[];if(void 0!==d[0])for(var l=0;2>l;l++)for(var p=l;p<d.length;){for(var q=d[p],v=p+2;v<d.length&&d[v]===q;)v+=2;k[e++]=v-p>>1;k[e++]=q;p=v}if(k.length<d.length){d=k;break a}}c[14]=d;c[15]=
a.sg|-2147483648;c[16]=a.jh;c[17]=a.eb;c[18]=a.Ic;c[19]=a.xb;c[20]=a.Ze;c[21]=a.jd;c[22]=a.Bd;c[23]=a.ug;c[24]=a.vg;c[25]=a.bf;a.nb==Lj&&(c[26]=a.ph,c[27]=a.nh,c[28]=a.bd,c[29]=a.Bc,c[30]=a.Vf,c[31]=a.xe);b[6]=c}b[7]=a.Ag}return b}Dk.prototype.Xh=function(a){return[this.sd,a-this.hb]};Dk.prototype.pg=function(){return this.A};
Dk.prototype.Yf=function(a){if(null!=a&&a!=this.sg){var b=a&65280,c=Ik[b];c||b&4096&&(c=Ik[4096]);var b=a&255,d=Ik[b];d||b&16&&(d=Ik[16]);this.A||(this.A=Array(6));this.A[0]=c;this.A[3]=d;this.sg=a}};var Ek=[];Ek[ok]=["MDA",948,720896,4096,0,3];Ek[3]=["CGA",980,753664,16384,0,2];Ek[5]=["EGA",980,753664,16384,65536,4];Ek[Lj]=["VGA",980,753664,16384,262144,7];var rk=0;f=Z.prototype;
f.nc=function(a,b,c,d){this.na=b;this.A=c;this.Ta=d;3!=nk[this.ia]&&(Nb(b,this,Kk),Pb(b,this,Lk));nk[this.ia]!=ok&&(Nb(b,this,Mk),Pb(b,this,Nk));5<=this.nb&&(Nb(b,this,Ok),Pb(b,this,Pk));this.nb==Lj&&(Nb(b,this,Qk),Pb(b,this,Rk));if((this.D=kb(a,"Keyboard"))&&this.ua){for(var e in this.pa)0<e.indexOf("lock")&&this.D.Eb("led",e,this.pa[e]);this.D.Eb(this.Id?"textarea":"canvas","kbd",this.J)}this.Ib=9;(this.T=kb(a,"ChipSet"))&&this.od&&5==this.nb&&(this.Ib=si(this.od,this.Ib));"mouse"==this.pd?(this.N=
@ -896,11 +896,11 @@ f.reset=function(){var a=!0,b=0;this.T&&(b=Li(this.T));this.ia||(this.nb=3==b?ok
for(b=this.F.hb;b<a;b+=2){var d=65536*Math.random()|0;4==this.sa||7==this.sa?(c=b>>1&255,d=d>>8&-129,d>>4==(d&15)&&(d^=15)):(c=d&255,d=(d&256?7:112)|8&d>>8);Mb(this.na,b,c|d<<8)}oc(this,!0)}};function Vk(a){a.B.gf&1?(a.la=a.jc,a.S=a.B):(a.la=a.B,a.S=a.Jb)}f.save=function(){var a=new Td(this);D(a,0,Jk(this.jc));D(a,1,Jk(this.Jb));D(a,2,[this.sa,this.qa,this.Da]);D(a,3,Jk(this.B));return a.data()};
f.restore=function(a){var b=a[2];this.sa=b[0];this.qa=b[1];this.Da=b[2];this.F=null;this.la=this.jc=new Dk(this,ok,a[0]);this.S=this.Jb=new Dk(this,3,a[1]);this.B=new Dk(this,this.nb,a[3],this.Wc);this.B.$b&&Vk(this);Wk(this);if(!Yk(this))return!1;Zk(this);return!0};
f.Aj=function(a,b,c){if(c)this.Ha("Unable to load font ROM (error "+c+": "+a+")");else{Sa(this.nf,a,b);try{var d=eval("("+b+")");if(!d.length){ra("Empty font ROM: "+a);return}if(1==d.length){ra(d[0]);return}if(8192==d.length)Kj(this,d,[6144,0]);else{this.Ha("Unrecognized font data length ("+d.length+")");return}}catch(e){this.Ha("Font ROM data error: "+e.message);return}(this.da||this.Ta)&&ab(this)}};
function $k(a,b){if(1==b)return a.ta[0]=xk[0],a.ta[1]=xk[7],a.ta;if(2==b){var c=a.F.ff;if(a.F===a.B){var d=a.B.Jc[0],c=d&7;d&16&&(c|=8);18!=a.B.Jc[1]&&(c|=32)}a.ta[0]=xk[c&15];c=c&32?zk:yk;for(d=0;d<c.length;d++)a.ta[d+1]=xk[c[d]];return a.ta}if(a.S===a.Jb)return xk;a.Va&&b&&!a.ta[16]&&(a.Va=!1);if(!a.Va){var c=a.B,d=c.xe,e,k,l,p,q;if(8==b)for(k=0;256>k;k++)l=d[k]||0,p=l<<2&252,q=l>>4&252,l=l>>10&252,a.ta[k]=[p,q,l,255];else{var w=d&&d[255];e=null!=c.Jc[15]?c.Jc:Ak;for(k=0;16>k;k++)l=e[k]&63,w?(l|=
function $k(a,b){if(1==b)return a.ta[0]=xk[0],a.ta[1]=xk[7],a.ta;if(2==b){var c=a.F.ff;if(a.F===a.B){var d=a.B.Jc[0],c=d&7;d&16&&(c|=8);18!=a.B.Jc[1]&&(c|=32)}a.ta[0]=xk[c&15];c=c&32?zk:yk;for(d=0;d<c.length;d++)a.ta[d+1]=xk[c[d]];return a.ta}if(a.S===a.Jb)return xk;a.Va&&b&&!a.ta[16]&&(a.Va=!1);if(!a.Va){var c=a.B,d=c.xe,e,k,l,p,q;if(8==b)for(k=0;256>k;k++)l=d[k]||0,p=l<<2&252,q=l>>4&252,l=l>>10&252,a.ta[k]=[p,q,l,255];else{var v=d&&d[255];e=null!=c.Jc[15]?c.Jc:Ak;for(k=0;16>k;k++)l=e[k]&63,v?(l|=
(c.Jc[20]&12)<<4,c.Jc[16]&128&&(l&=-49,l|=(c.Jc[20]&3)<<4),l=d[l],p=l<<2&252,q=l>>4&252,l=l>>10&252):(p=(l&4?170:0)|(l&32?85:0),q=(l&2?170:0)|(l&16?85:0),l=(l&1?170:0)|(l&8?85:0)),a.ta[k]=[p,q,l,255]}a.Va=!0}return a.ta}function Kj(a,b,c,d){a.Fb=b;a.kc=c;a.Qa=d}
function Wk(a,b){var c=!1;if(window&&a.Fb&&(!b||a.K)){var d=0,e=a.Qa?a.Qa:8,k=$k(a);al(a,3,a.kc[0],d,e,8,a.Fb,k)&&(c=!0);d=a.Qa?0:2048;e=a.Qa?a.Qa:9;al(a,1,a.kc[1],d,e,14,a.Fb,vk,wk)&&(c=!0);a.Qa&&al(a,a.nb,a.kc[1],0,a.Qa,14,a.Fb,k)&&(c=!0)}return c}function al(a,b,c,d,e,k,l,p,q){var w=!1;null!=c&&(bl(a,b,c,d,e,k,l,p,q)&&(w=!0),a.Zd&&bl(a,b<<1,c,d,e,k,l,p,q)&&(w=!0));return w}
function bl(a,b,c,d,e,k,l,p,q){var w=!1,B=b&1?0:1,G=a.Fa[b],C=16>p.length?p.length:16;G||(G={sc:e<<B,tc:k<<B,ae:Array(C),Fh:p.slice(0,C),Ee:q,eg:Array(C)});for(q=0;q<C;q++){var K=p[q],V=G.ae[q]?G.Fh[q]:[];if(K[0]!==V[0]||K[1]!==V[1]||K[2]!==V[2]){var w=G,V=q,X=B,ja=c,ka=d,Ba=e,Ca=k,rd=l,Im=[0,0,0,0],ve=document.createElement("canvas");ve.width=w.sc<<4;ve.height=w.tc<<4;for(var ej=ve.getContext("2d"),Bb=void 0,Oc=void 0,bc=void 0,we=8>Ca||!ka?Ca:8,Mf=ej.createImageData(w.sc,w.tc),Bb=0;256>Bb;Bb++){for(bc=
0;bc<Ca;bc++)for(var Jm=w.Ee&&V&1&&bc>=Ca-2,Km=rd[bc<we?ja+Bb*we+bc:ka+Bb*we+bc-we],Nf=0;Nf<=X;Nf++)for(Oc=0;Oc<Ba;Oc++){var fj=Oc<<X,gj=(bc<<X)+Nf,hj=Jm||Km&128>>(8<=Oc&&192<=Bb&&223>=Bb?7:Oc)?K:Im;cl(Mf,fj,gj,hj);X&&cl(Mf,fj+1,gj,hj)}ej.putImageData(Mf,(Bb&15)*w.sc,(Bb>>4)*w.tc)}w.ae[V]="#"+da(K[0],2)+da(K[1],2)+da(K[2],2);w.Fh[V]=K;w.eg[V]=ve;w=!0}}a.Fa[b]=G;return w}function dl(a){0<a.Ja||0<=a.ha?0>a.La&&(a.La=0):a.La=-1}
function Wk(a,b){var c=!1;if(window&&a.Fb&&(!b||a.K)){var d=0,e=a.Qa?a.Qa:8,k=$k(a);al(a,3,a.kc[0],d,e,8,a.Fb,k)&&(c=!0);d=a.Qa?0:2048;e=a.Qa?a.Qa:9;al(a,1,a.kc[1],d,e,14,a.Fb,vk,wk)&&(c=!0);a.Qa&&al(a,a.nb,a.kc[1],0,a.Qa,14,a.Fb,k)&&(c=!0)}return c}function al(a,b,c,d,e,k,l,p,q){var v=!1;null!=c&&(bl(a,b,c,d,e,k,l,p,q)&&(v=!0),a.Zd&&bl(a,b<<1,c,d,e,k,l,p,q)&&(v=!0));return v}
function bl(a,b,c,d,e,k,l,p,q){var v=!1,B=b&1?0:1,G=a.Fa[b],C=16>p.length?p.length:16;G||(G={sc:e<<B,tc:k<<B,ae:Array(C),Fh:p.slice(0,C),Ee:q,eg:Array(C)});for(q=0;q<C;q++){var K=p[q],V=G.ae[q]?G.Fh[q]:[];if(K[0]!==V[0]||K[1]!==V[1]||K[2]!==V[2]){var v=G,V=q,X=B,ja=c,ka=d,Ba=e,Ca=k,qd=l,Im=[0,0,0,0],ve=document.createElement("canvas");ve.width=v.sc<<4;ve.height=v.tc<<4;for(var ej=ve.getContext("2d"),Bb=void 0,Oc=void 0,bc=void 0,we=8>Ca||!ka?Ca:8,Mf=ej.createImageData(v.sc,v.tc),Bb=0;256>Bb;Bb++){for(bc=
0;bc<Ca;bc++)for(var Jm=v.Ee&&V&1&&bc>=Ca-2,Km=qd[bc<we?ja+Bb*we+bc:ka+Bb*we+bc-we],Nf=0;Nf<=X;Nf++)for(Oc=0;Oc<Ba;Oc++){var fj=Oc<<X,gj=(bc<<X)+Nf,hj=Jm||Km&128>>(8<=Oc&&192<=Bb&&223>=Bb?7:Oc)?K:Im;cl(Mf,fj,gj,hj);X&&cl(Mf,fj+1,gj,hj)}ej.putImageData(Mf,(Bb&15)*v.sc,(Bb>>4)*v.tc)}v.ae[V]="#"+da(K[0],2)+da(K[1],2)+da(K[2],2);v.Fh[V]=K;v.eg[V]=ve;v=!0}}a.Fa[b]=G;return v}function dl(a){0<a.Ja||0<=a.ha?0>a.La&&(a.La=0):a.La=-1}
function Zk(a){if(a.K){for(var b=10;15>=b;b++)if(null==a.F.jb[b])return;var c=a.F.jb[10],b=c&31,d=a.F.jb[11]&31,e=a.F.jb[9]&31,k=!1;a.F===a.B&&(k=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!k||b>e)el(a);else{c=a.F.jb[15]+((a.F.jb[14]&63)<<8);a.ha!=c&&(el(a),a.ha=c);d=d-b+1;if(a.rd!=b||a.Zc!=d)a.rd=b,a.Zc=d;a.Ka=e+1;dl(a)}}}
function el(a){if(0<=a.ha){if(void 0!==a.W){var b=a.W[a.ha];if(b&131072){var b=b&-131073,c=a.ha%a.H,d=a.ha/a.H|0;a.K&&a.Fa[a.K]&&(a.Na&&fl(a,c,d,b,a.Na),fl(a,c,d,b));a.W[a.ha]=b}}a.ha=-1}}
function gl(a){var b,c=a.F;a.fd=!1;var d=c.Dd[5];if(null!=d){b=1024;var e=0,k=c.Dd[3]&31;switch(d&3){case 0:if(k){e=32;switch(k&24){case 8:e=96;break;case 16:e=160;break;case 24:e=224}c.Ic=k&7}break;case 1:e=1;break;case 2:switch(k&24){default:e=2;break;case 8:e=98;break;case 16:e=162;break;case 24:e=226}break;case 3:a.nb==Lj&&(e=3,c.Ic=k&7)}d&8&&(b=1280);c=c.ze[4];null!=c&&(c&4||(b|=4096,e|=16),d&64&&(c&8&&(b|=16384,e|=4),a.fd=!0));b|=e}return b}
@ -912,11 +912,11 @@ b&&(a.fb=(a.fb<<1)+b|0,a.lc=a.fb+b>>1);a.Fa.length&&(a.ya=a.oa/a.H|0,a.Ca=a.va/a
(a.Gc=b>>1,a.mc-=b),0<c&&(a.Hc=c>>1,a.vc-=c),b||c)&&(a.da.fillStyle=a.ua.style.backgroundColor,a.da.fillRect(0,0,a.oa,a.va));il(a,!0);oc(a)}return!0}function cl(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 jl(a){a.Ja=-1;a.xa=!1;var b=a.ld;if(void 0===a.W||a.W.length!=b)a.W=Array(b)}function il(a,b){b||(a.Va=!1);jl(a)}
function fl(a,b,c,d,e){var k=d&255,l=d>>8;d=l&15;var p=a.Fa[a.K];p.Ee&&(d=p.Ee[d]);var q=l>>4&15;p.Ee&&(q=p.Ee[q]);e?(b*=p.sc,c*=p.tc,e.fillStyle=p.ae[q],e.fillRect(b,c,p.sc,p.tc)):(b=b*a.ya+a.Gc,c=c*a.Ca+a.Hc,a.da.fillStyle=p.ae[q],a.da.fillRect(b,c,a.ya,a.Ca));l&256&&(q=(k&15)*p.sc,k=(k>>4)*p.tc,e?e.drawImage(p.eg[d],q,k,p.sc,p.tc,b,c,p.sc,p.tc):a.da.drawImage(p.eg[d],q,k,p.sc,p.tc,b,c,a.ya,a.Ca));l&512&&(k=a.rd,l=a.Zc,e?(a.Ka&&a.Ka!==p.tc&&(k=k*p.tc/a.Ka|0,l=l*p.tc/a.Ka|0),e.fillStyle=p.ae[d],
e.fillRect(b,c+k,p.sc,l)):(a.Ka&&a.Ka!==a.Ca&&(k=k*a.Ca/a.Ka|0,l=l*a.Ca/a.Ka|0),a.da.fillStyle=p.ae[d],a.da.fillRect(b,c+k,a.ya,l)))}
function oc(a,b){if(a.ja.Qb){var c=!1,d=a.F;d&&(d!==a.B?d.Kc&8&&(c=!0):d.Ud&32&&(c=!0));if(c||b){if(b)jl(a);else if(void 0===a.W)return;var e=!1;!(b||++a.Ed&15)&&0<=a.La&&(a.La++,e=!0);var k=0,l=a.nd,p=a.hb,c=p,q=c+a.Hb;19<=a.Da&&(p=c=655360,q=c+65536);if(kl(a,d)&8||d.we&&d.we<d.kh)d.bf=(d.jb[12]<<8)+d.jb[13]|0,d.we=0;var w=d.bf;a.K&&(w<<=1);c+=w;w=a.fb;5<=a.nb&&d.jb[19]&&d.jb[19]<<1!=d.jb[1]+1&&(a.ab=d.jb[19]<<(a.K?1:d.jb[20]&64?3:4),w=(a.ab*(a.O-1)+a.H)/a.Pb|0,a.Da<=qk&&(w<<=1));c+w>q&&(w=q-c,0>
w&&(w=0));q=c+w;if(d=!b&&a.xa){for(var d=a.na,B=!0,G=c>>>d.ha;0<w&&G<d.W.length;)d.W[G].Oa&&(d.W[G].Oa=B=!1,d.W[G].Sh=!0),w-=d.yb,G++;d=B}if(d){if(!e)return;if(!a.Ja){if(0>a.ha)return;k=a.ha;l=k+1}}if(a.K){if(a.Fa[a.K]){e=0;p=a.Ja=0;d=1048575;w=a.F.Kc&32;5<=a.nb&&(w=a.F.Jc[16]&8);w&&(p=32768,d&=~p,a.La&2||(d&=-65537));for(c+=k<<1;c<q&&k<l;)w=Lb(a.na,c),w|=65536,w&p&&(a.Ja++,w&=d),k==a.ha&&(w|=a.La&1?131072:0),a.xa&&w===a.W[k]||(fl(a,k%a.H,k/a.H|0,w,a.Na),a.W[k]=w,e++),c+=2,k++;a.xa=!0;e&&a.Na&&a.da.drawImage(a.Ma,
0,0,a.kb,a.vb,a.Gc,a.Hc,a.mc,a.vc);dl(a)}}else if(a.lc){for(var l=q,C,q=c,k=a.Ja=0,e=a.Pb,p=16==e?65536:196608,d=16==e?1:2,w=$k(a,d),G=B=0,K=a.H,V=0,X=a.O,ja=0;q<l;){C=Lb(a.na,q);if(a.xa&&C===a.W[k])B+=e;else{a.W[k]=C;C=C>>8|(C&255)<<8;var ka=p,Ba=16;B<K&&(K=B);for(var Ca=0;Ca<e;Ca++){var rd=(C&(ka>>=d))>>(Ba-=d);cl(a.Wa,B++,G,w[rd])}B>V&&(V=B);G<X&&(X=G);G>=ja&&(ja=G+1)}q+=2;k++;if(B>=a.H){B=0;G+=2;if(G>a.O)break;G==a.O&&(G=1,q=c+a.lc)}}a.xa=!0;K<a.H&&(a.Na.putImageData(a.Wa,0,0,K,X,V-K,ja-X),a.da.drawImage(a.Ma,
0,0,a.H,a.O,0,0,a.oa,a.va))}else if(a.fd){l=p;e=a.Ja=0;p=$k(a,8);d=a.F.sd;B=w=0;G=a.H;K=0;V=a.O;X=0;ja=a.F.ze[4]&8?4:1;C=a.F.Jc[19]&15;for(ka=a.ab>a.H?a.ab-a.H-C>>3:0;c<q;){k=d[c-l];Ca=4;C||(a.xa&&k===a.W[e]?(w+=Ca,Ca=0):a.W[e]=k,e++);if(Ca){w<G&&(G=w);for(Ba=0;Ba<Ca;Ba++)cl(a.Wa,w++,B,p[k&255]),k>>=8;w>K&&(K=w);B<V&&(V=B);B>=X&&(X=B+1)}c+=ja;if(w>=a.H){w=0;if(++B>a.O)break;c+=ka}}C||(a.xa=!0);G<a.H&&(a.Na.putImageData(a.Wa,0,0,G,V,K-G,X-V),a.da.drawImage(a.Ma,0,0,a.H,a.O,0,0,a.oa,a.va))}else{l=p;
k=a.Ja=0;e=$k(a);p=a.F.sd;w=d=0;B=a.H;G=0;K=a.O;V=0;X=a.F.Jc[19]&15;for(ja=a.ab>a.H?a.ab-a.H-X>>3:0;c<q;){C=c++-l;C=p[C];Ba=8;X?d?(ka=a.H-d,Ba>ka&&(Ba=ka)):(C<<=X,Ba-=X,a.xa=!1):(a.xa&&C===a.W[k]?(d+=Ba,Ba=0):a.W[k]=C,k++);if(Ba){d<B&&(B=d);for(ka=0;ka<Ba;ka++)Ca=Ck[C&-2139062144]||0,cl(a.Wa,d++,w,e[Ca]),C<<=1;d>G&&(G=d);w<K&&(K=w);w>=V&&(V=w+1)}if(d>=a.H){d=0;if(++w>a.O)break;c+=ja}}X||(a.xa=!0);B<a.H&&(a.Na.putImageData(a.Wa,0,0,B,K,G-B,V-K),a.da.drawImage(a.Ma,0,0,a.H,a.O,0,0,a.oa,a.va))}}}}
function oc(a,b){if(a.ja.Qb){var c=!1,d=a.F;d&&(d!==a.B?d.Kc&8&&(c=!0):d.Ud&32&&(c=!0));if(c||b){if(b)jl(a);else if(void 0===a.W)return;var e=!1;!(b||++a.Ed&15)&&0<=a.La&&(a.La++,e=!0);var k=0,l=a.nd,p=a.hb,c=p,q=c+a.Hb;19<=a.Da&&(p=c=655360,q=c+65536);if(kl(a,d)&8||d.we&&d.we<d.kh)d.bf=(d.jb[12]<<8)+d.jb[13]|0,d.we=0;var v=d.bf;a.K&&(v<<=1);c+=v;v=a.fb;5<=a.nb&&d.jb[19]&&d.jb[19]<<1!=d.jb[1]+1&&(a.ab=d.jb[19]<<(a.K?1:d.jb[20]&64?3:4),v=(a.ab*(a.O-1)+a.H)/a.Pb|0,a.Da<=qk&&(v<<=1));c+v>q&&(v=q-c,0>
v&&(v=0));q=c+v;if(d=!b&&a.xa){for(var d=a.na,B=!0,G=c>>>d.ha;0<v&&G<d.W.length;)d.W[G].Oa&&(d.W[G].Oa=B=!1,d.W[G].Sh=!0),v-=d.yb,G++;d=B}if(d){if(!e)return;if(!a.Ja){if(0>a.ha)return;k=a.ha;l=k+1}}if(a.K){if(a.Fa[a.K]){e=0;p=a.Ja=0;d=1048575;v=a.F.Kc&32;5<=a.nb&&(v=a.F.Jc[16]&8);v&&(p=32768,d&=~p,a.La&2||(d&=-65537));for(c+=k<<1;c<q&&k<l;)v=Lb(a.na,c),v|=65536,v&p&&(a.Ja++,v&=d),k==a.ha&&(v|=a.La&1?131072:0),a.xa&&v===a.W[k]||(fl(a,k%a.H,k/a.H|0,v,a.Na),a.W[k]=v,e++),c+=2,k++;a.xa=!0;e&&a.Na&&a.da.drawImage(a.Ma,
0,0,a.kb,a.vb,a.Gc,a.Hc,a.mc,a.vc);dl(a)}}else if(a.lc){for(var l=q,C,q=c,k=a.Ja=0,e=a.Pb,p=16==e?65536:196608,d=16==e?1:2,v=$k(a,d),G=B=0,K=a.H,V=0,X=a.O,ja=0;q<l;){C=Lb(a.na,q);if(a.xa&&C===a.W[k])B+=e;else{a.W[k]=C;C=C>>8|(C&255)<<8;var ka=p,Ba=16;B<K&&(K=B);for(var Ca=0;Ca<e;Ca++){var qd=(C&(ka>>=d))>>(Ba-=d);cl(a.Wa,B++,G,v[qd])}B>V&&(V=B);G<X&&(X=G);G>=ja&&(ja=G+1)}q+=2;k++;if(B>=a.H){B=0;G+=2;if(G>a.O)break;G==a.O&&(G=1,q=c+a.lc)}}a.xa=!0;K<a.H&&(a.Na.putImageData(a.Wa,0,0,K,X,V-K,ja-X),a.da.drawImage(a.Ma,
0,0,a.H,a.O,0,0,a.oa,a.va))}else if(a.fd){l=p;e=a.Ja=0;p=$k(a,8);d=a.F.sd;B=v=0;G=a.H;K=0;V=a.O;X=0;ja=a.F.ze[4]&8?4:1;C=a.F.Jc[19]&15;for(ka=a.ab>a.H?a.ab-a.H-C>>3:0;c<q;){k=d[c-l];Ca=4;C||(a.xa&&k===a.W[e]?(v+=Ca,Ca=0):a.W[e]=k,e++);if(Ca){v<G&&(G=v);for(Ba=0;Ba<Ca;Ba++)cl(a.Wa,v++,B,p[k&255]),k>>=8;v>K&&(K=v);B<V&&(V=B);B>=X&&(X=B+1)}c+=ja;if(v>=a.H){v=0;if(++B>a.O)break;c+=ka}}C||(a.xa=!0);G<a.H&&(a.Na.putImageData(a.Wa,0,0,G,V,K-G,X-V),a.da.drawImage(a.Ma,0,0,a.H,a.O,0,0,a.oa,a.va))}else{l=p;
k=a.Ja=0;e=$k(a);p=a.F.sd;v=d=0;B=a.H;G=0;K=a.O;V=0;X=a.F.Jc[19]&15;for(ja=a.ab>a.H?a.ab-a.H-X>>3:0;c<q;){C=c++-l;C=p[C];Ba=8;X?d?(ka=a.H-d,Ba>ka&&(Ba=ka)):(C<<=X,Ba-=X,a.xa=!1):(a.xa&&C===a.W[k]?(d+=Ba,Ba=0):a.W[k]=C,k++);if(Ba){d<B&&(B=d);for(ka=0;ka<Ba;ka++)Ca=Ck[C&-2139062144]||0,cl(a.Wa,d++,v,e[Ca]),C<<=1;d>G&&(G=d);v<K&&(K=v);v>=V&&(V=v+1)}if(d>=a.H){d=0;if(++v>a.O)break;c+=ja}}X||(a.xa=!0);B<a.H&&(a.Na.putImageData(a.Wa,0,0,B,K,G-B,V-K),a.da.drawImage(a.Ma,0,0,a.H,a.O,0,0,a.oa,a.va))}}}}
function kl(a,b){var c=0,d=uc(a.A)-b.Ag;0>d&&(b.Ag=d,d=-d|0);d%b.wg>b.al&&(c|=1);d%b.zg>b.cl&&(c|=9);b.kh=d/b.zg|0;return c}f.Bk=function(){var a=this.la,b;a.$b&&(b=a.qc);return b};f.Ol=function(a,b){var c=this.la;c.Uf=c.qc;c.qc=b&31};f.Ak=function(){return ll(this.la)};f.Nl=function(a,b){ml(this,this.la,b)};f.Ck=function(){return this.la.Kc};f.Pl=function(a,b){this.la.Kc=b;Yk(this,!1)};f.Dk=function(){return nl(this,this.la)};f.gj=function(a,b){this.B.Wf=this.B.Wf&-4|b&3};f.$j=function(){return this.B.Ud};
f.Bj=function(){return this.B.Jc[this.B.Ud&31]};f.fj=function(a,b){var c=this.B,d=c.Ud&32;if(c.Ie){c.Ie=!1;var e=c.Ud&31;if(16<=e||!d)c.Jc[e]=b,il(this,!1)}else c.Ud=b,c.Ie=!0,b&32&&!d&&Wk(this,!0)&&oc(this,!0),c.bf=(c.jb[12]<<8)+c.jb[13]|0,c.we=0};f.Ok=function(){var a=0;if(5==this.nb)a=3-((this.B.gf&12)>>2),a=(this.Ib&1<<a)<<4-a;else{var b=this.B.xe[0];45!=(b&63)&&2880!=(b&4032)&&184320!=(b&258048)&&(a|=16)}a|=this.B.oh&-17;return this.B.oh=a};f.Ql=function(a,b){this.B.gf=b;Vk(this)};f.Pk=function(){return this.B.ph};
f.$l=function(a,b){this.B.ph=b};f.Mk=function(){return this.B.Ae};f.Yl=function(a,b){this.B.Ae=b};f.Lk=function(){return this.B.ze[this.B.Ae]};f.Xl=function(a,b){this.B.ze[this.B.Ae]=b;switch(this.B.Ae){case 2:this.B.eb=Bk[b&15];break;case 4:hl(this,gl(this))&&oc(this,!0)}};f.mk=function(){return this.B.nh};f.xl=function(a,b){this.B.nh=b};f.nk=function(){return this.B.Vf};f.yl=function(a,b){this.B.bd=b;this.B.Vf=3;this.B.Bc=0};f.zl=function(a,b){this.B.bd=b;this.B.Vf=0;this.B.Bc=0};
@ -950,35 +950,35 @@ function Il(a,b,c){Ia.call(this,"Disk",{id:a.nf+".disk"+da(++Jl,4)},Il);this.con
f.Sb=function(a,b){if(this.F){var c,d=0;if(this.S&&!sa("Disk writes are still in progress, shut down anyway?"))return!1;for(;c=Ll(this,!1);)if(d=c[0]){this.controller.Ha('Unable to save "'+this.B+'" (error '+d+")");break}b&&this.F&&(c="action=close&volume="+this.J,c+="&machine="+this.controller.re(),c+="&user="+this.controller.yd(),pa(qa()+"/api/v1/disk?"+c,!0),this.F=!1);!d&&a&&this.controller.Ha(this.B+" saved")}return!0};
function Kl(a,b,c,d,e,k){a.mode=b;a.ob=c;a.pb=d;a.ib=e;a.tb=k;a.A=[];if("preload"!=a.mode){b=Array(a.ob);for(c=0;c<b.length;c++){d=Array(a.pb);for(e=0;e<d.length;e++){k=Array(a.ib);for(var l=1;l<=k.length;l++)k[l-1]=Ml(null,c,e,l,a.tb,"local"==a.mode?0:null);d[e]=k}b[c]=d}a.A=b}a.T=null}
f.load=function(a,b,c,d,e){var k=b;if(!this.N)if(this.B=a,this.J=b,this.jj=ea(b),this.N=d,this.Z=e||this.controller,c){var l=this,p=new FileReader;p.onload=function(){var a=p.result,b,c=a?a.byteLength:0,d=ba[c];if(d){l.ob=d[0];l.pb=d[1];l.ib=d[2];l.tb=512;b=l.tb>>2;var e=d=0,a=new DataView(a,0,c);l.A=Array(l.ob);for(c=0;c<l.A.length;c++)for(var k=l.A[c]=Array(l.pb),V=0;V<k.length;V++)for(var X=k[V]=Array(l.ib),ja=0;ja<X.length;ja++){for(var ka=Ml(null,c,V,ja+1,l.tb,0),Ba=ka.data,Ca=0;Ca<b;Ca++,e+=
4)var rd=Ba[Ca]=a.getInt32(e,!0),d=d+rd&-1;ka.Dc=b;X[ja]=ka}l.T=d;b=l}else l.Ha("Unrecognized diskette format ("+c+" bytes)");l.N&&(l.N.call(l.controller,l.D,b,l.B,l.J),l.N=null)};p.readAsArrayBuffer(c)}else 0>b.indexOf("/api/v1/dump")&&(a=fa(b),"json"==a||"gz"==a?k=encodeURI(b):"demandrw"==this.mode||"demandro"==this.mode?(k=Nl(this,b),this.Ef=!0):(c="path",d="&mbhd=10",!b.indexOf("http:")||!b.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(a)?(c="disk",d="&mbhd=0"):-1!==b.indexOf("/",
4)var qd=Ba[Ca]=a.getInt32(e,!0),d=d+qd&-1;ka.Dc=b;X[ja]=ka}l.T=d;b=l}else l.Ha("Unrecognized diskette format ("+c+" bytes)");l.N&&(l.N.call(l.controller,l.D,b,l.B,l.J),l.N=null)};p.readAsArrayBuffer(c)}else 0>b.indexOf("/api/v1/dump")&&(a=fa(b),"json"==a||"gz"==a?k=encodeURI(b):"demandrw"==this.mode||"demandro"==this.mode?(k=Nl(this,b),this.Ef=!0):(c="path",d="&mbhd=10",!b.indexOf("http:")||!b.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(a)?(c="disk",d="&mbhd=0"):-1!==b.indexOf("/",
b.length-1)&&(c="dir"),k=qa()+"/api/v1/dump?"+c+"="+encodeURIComponent(b)+(this.ne?"":d)+"&format=json")),pa(k,!0,null,this,this.tj)};
f.tj=function(a,b,c){var d=null;this.qe=!1;var e=0>c&&this.ua&&!this.ua.ja.Qb;if(this.Ef)c?this.controller.Ha('Unable to connect to disk "'+this.J+'" (error '+c+": "+b+")",e):(this.F=!0,d=this);else if(c)this.controller.Ha('Unable to load disk "'+this.B+'" (error '+c+": "+a+")",e);else{Sa(this.controller.nf,a,b);try{if(0<ea(this.jj,!0).toLowerCase().indexOf("-readonly"))this.qe=!0;else{var k=b.indexOf("\n");0<k&&1024>k&&0<b.substring(0,k).indexOf("write-protected")&&(this.qe=!0)}var l;"<"==b.substr(0,
1)?l=["Missing disk image: "+this.B]:l=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");if(l.length)if(1==l.length)ra(l[0]);else{this.ob=l.length;this.pb=l[0].length;this.ib=l[0][0].length;var p=l[0][0][0];this.tb=p&&p.length||512;for(c=b=0;c<this.ob;c++)for(e=0;e<this.pb;e++)for(k=0;k<this.ib;k++)if(p=l[c][e][k]){var q=p.length;void 0===q&&(q=p.length=512);var q=q>>2,w=p.pattern;void 0===w&&(w=p.pattern=0);var B=p.data;
if(void 0===B){var G=p.bytes;if(void 0!==G&&G.length){for(var C=q<<2,K=G.length;K<C;K++)G[K]=w;Ol(p,G,0)}else B=[],w=p.pattern=w|w<<8|w<<16|w<<24,p.data=B;delete p.bytes}Ml(p,c,e);for(C=0;C<B.length;C++)b=b+B[C]&-1}this.A=l;this.T=b;d=this}else ra("Empty disk image: "+this.B)}catch(V){ra("Disk image error ("+a+"): "+V.message)}}this.N&&(this.N.call(this.Z,this.D,d,this.B,this.J),this.N=null)};function Pl(a,b){var c=a.pb*a.ib,d=b/c|0;return d<a.ob?(c=b%c,a.seek(d,c/a.ib|0,c%a.ib+1)):null}
1)?l=["Missing disk image: "+this.B]:l=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");if(l.length)if(1==l.length)ra(l[0]);else{this.ob=l.length;this.pb=l[0].length;this.ib=l[0][0].length;var p=l[0][0][0];this.tb=p&&p.length||512;for(c=b=0;c<this.ob;c++)for(e=0;e<this.pb;e++)for(k=0;k<this.ib;k++)if(p=l[c][e][k]){var q=p.length;void 0===q&&(q=p.length=512);var q=q>>2,v=p.pattern;void 0===v&&(v=p.pattern=0);var B=p.data;
if(void 0===B){var G=p.bytes;if(void 0!==G&&G.length){for(var C=q<<2,K=G.length;K<C;K++)G[K]=v;Ol(p,G,0)}else B=[],v=p.pattern=v|v<<8|v<<16|v<<24,p.data=B;delete p.bytes}Ml(p,c,e);for(C=0;C<B.length;C++)b=b+B[C]&-1}this.A=l;this.T=b;d=this}else ra("Empty disk image: "+this.B)}catch(V){ra("Disk image error ("+a+"): "+V.message)}}this.N&&(this.N.call(this.Z,this.D,d,this.B,this.J),this.N=null)};function Pl(a,b){var c=a.pb*a.ib,d=b/c|0;return d<a.ob?(c=b%c,a.seek(d,c/a.ib|0,c%a.ib+1)):null}
function Ql(a,b,c){for(var d=1,e=0,k=0;d--;){var l=a.read(b,c++);if(0>l)break;e|=l<<k;k+=8}return e}function Ml(a,b,c,d,e,k){a||(a={sector:d,length:e,data:[],pattern:k});a.Rj=b;a.Sj=c;a.Sc=a.Dc=0;a.Oa=!1;return a}function Nl(a,b){var c;c="action=open&volume="+b+("&mode="+a.mode);c+="&chs="+a.ob+":"+a.pb+":"+a.ib+":"+a.tb;c+="&machine="+a.controller.re();c+="&user="+a.controller.yd();return qa()+"/api/v1/disk?"+c}
function Rl(a,b,c,d,e,k,l){if(a.F){var p;p="action=read&volume="+a.J;p+="&chs="+a.ob+":"+a.pb+":"+a.ib+":"+a.tb;p=p+("&addr="+b+":"+c+":"+d+":"+e)+("&machine="+a.controller.re());p+="&user="+a.controller.yd();pa(qa()+"/api/v1/disk?"+p,k,null,a,a.Nj,[b,c,d,e,k,l])}else l&&l(-1,!1)}f.Nj=function(a,b,c,d){var e=!1;a=d[0];var k=d[1],l=d[2],p=d[3];if(!c){b=JSON.parse(b);for(e=0;p--;){var q=this.seek(a,k,l,!0);if(!q)break;Ol(q,b,e);e+=q.length;l++}e=d[4]}(d=d[5])&&d(c,e)};
f.Oj=function(a,b,c,d){a=d[0];b=d[1];var e=d[2],k=d[3];d=d[4];this.S=!1;if(0<=a&&a<this.A.length&&0<=b&&b<this.A[a].length)for(e=e-1;0<k--&&0<=e&&e<this.A[a][b].length;e++){var l=this.A[a][b][e];c?Sl(this,l,!1):l.Oa||(l.Sc=l.Dc=0)}d&&Tl(this)};function Sl(a,b,c){b.Oa=!0;var d=a.K.indexOf(b);0<=d&&(a.K.splice(d,1),a.O.splice(d,1));a.K.push(b);a.O.push(ia());c&&Tl(a)}
function Tl(a){if(a.K.length){var b=a.O[0]+2E3;a.H&&a.W<b&&(clearTimeout(a.H),a.H=null);if(!a.H){var c=ia(),b=b-c;0>b&&(b=0);2E3<b&&(b=2E3);a.H=setTimeout(function(){Ll(a,!0)},b);a.W=c+b}}else a.H&&(clearTimeout(a.H),a.H=null)}
function Ll(a,b){b&&(a.H=null);var c=a.K[0];if(c){for(var d=c.Rj,e=c.Sj,c=c.sector,k=0,l=[],p=c-1;p<a.A[d][e].length;p++){var q=a.A[d][e][p];if(!q.Oa)break;var w=a.K.indexOf(q);a.K.splice(w,1);a.O.splice(w,1);l=l.concat(Ul(q));q.Oa=!1;k++}a.F?(p={},a.S=!0,p.action="write",p.volume=a.J,p.chs=a.ob+":"+a.pb+":"+a.ib+":"+a.tb,p.addr=d+":"+e+":"+c+":"+k,p.machine=a.controller.re(),p.user=a.controller.yd(),p.data=JSON.stringify(l),d=pa(qa()+"/api/v1/disk",b,p,a,a.Oj,[d,e,c,k,b])):d=!1;return b||d}return!1}
function Ll(a,b){b&&(a.H=null);var c=a.K[0];if(c){for(var d=c.Rj,e=c.Sj,c=c.sector,k=0,l=[],p=c-1;p<a.A[d][e].length;p++){var q=a.A[d][e][p];if(!q.Oa)break;var v=a.K.indexOf(q);a.K.splice(v,1);a.O.splice(v,1);l=l.concat(Ul(q));q.Oa=!1;k++}a.F?(p={},a.S=!0,p.action="write",p.volume=a.J,p.chs=a.ob+":"+a.pb+":"+a.ib+":"+a.tb,p.addr=d+":"+e+":"+c+":"+k,p.machine=a.controller.re(),p.user=a.controller.yd(),p.data=JSON.stringify(l),d=pa(qa()+"/api/v1/disk",b,p,a,a.Oj,[d,e,c,k,b])):d=!1;return b||d}return!1}
f.info=function(){return this.A.length?[this.A.length,this.A[0].length,this.A[0][0].length,this.A[0][0][0].length]:[0,0,0,0]};
f.seek=function(a,b,c,d,e){var k=null,l=this.D,p=this.A[a];if(p){var q=p[b];if(!q&&l.gg&&b<l.pb)for(q=p[b]=Array(l.vd),p=0;p<q.length;p++)q[p]=Ml(null,a,b,p+1,l.zb,0);if(q){for(p=0;p<q.length;p++)if(q[p]&&q[p].sector==c){k=q[p];if(null===k.pattern)if(d)k.pattern=0;else{for(d=1;++p<q.length;)null===q[p].pattern&&d++;Rl(this,a,b,c,d,null!=e,function(a,b){a&&(k=null);e&&e(k,b)});return e?null:k}break}!k&&l.gg&&9==l.sb&&(k=q[p]=Ml(null,a,b,l.sb,l.zb,0))}}e&&e(k,!1);return k};
function Ol(a,b,c){for(var d=a.length>>2,e=Array(d),k=0;k<d;k++)e[k]=b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24,c+=4;a.data=e}function Ul(a){var b=a.length,c=Array(b),d=0,b=b>>2,e=a.data;a=a.pattern;for(var k=0;k<b;k++){var l=k<e.length?e[k]:a;c[d++]=l&255;c[d++]=l>>8&255;c[d++]=l>>16&255;c[d++]=l>>24&255}return c}f.read=function(a,b){var c=-1;if(a&&b<a.length)var c=a.data,d=b>>2,c=(d<c.length?c[d]:a.pattern)>>((b&3)<<3)&255;return c};
f.write=function(a,b,c){if(this.qe)return!1;if(b<a.length){if(c!=this.read(a,b,!0)){var d=a.data,e=a.pattern,k=b>>2;b=(b&3)<<3;for(var l=d.length;l<=k;l++)d[l]=e;a.Dc?k<a.Sc?(a.Dc+=a.Sc-k,a.Sc=k):k>=a.Sc+a.Dc&&(a.Dc+=k-(a.Sc+a.Dc)+1):(a.Sc=k,a.Dc=1);d[k]=d[k]&~(255<<b)|c<<b;this.F&&Sl(this,a,!0)}return!0}return null};
f.save=function(){var a=0,b=[];b[a++]=[this.J,this.T,this.ob,this.pb,this.ib,this.tb];if(!this.F&&!this.qe)for(var c=this.A,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var k=0;k<c[d][e].length;k++){var l=c[d][e][k];if(l&&l.Dc){for(var p=[],q=0,w=l.Sc,B=l.Sc+l.Dc;w<B;)p[q++]=l.data[w++];b[a++]=[d,e,k,l.Sc,p]}}return b};
f.restore=function(a){var b=0,c="unsupported restore format";if(a&&0<a.length){var d=0,e=a[d++];e&&2<=e.length&&(!this.A.length&&6<=e.length?Kl(this,"local",e[2],e[3],e[4],e[5]):null!=e[1]&&null!=this.T&&e[1]!=this.T&&(c="original checksum ("+e[1]+") differs from current checksum ("+this.T+")",b=-2));for(this.A.length||(b=-1);d<a.length&&0<=b;){var k=0,l=a[d++],p=l[k++],q=l[k++],w=l[k++];if(p>=this.A.length||q>=this.A[p].length||w>=this.A[p][q].length){c="sector (CHS="+p+":"+q+":"+w+") out of range ("+
b+" changes applied)";b=-1;break}if(this.qe){c="unable to modify write-protected disk";b=-1;break}e=l[k++];k=l[k++];l=e+k.length;if(p=this.A[p][q][w]){for(q=p.data.length;q<e;)p.data[q++]=p.pattern;q=0;p.Sc=e;for(p.Dc=k.length;e<l;)p.data[e++]=k[q++];b++}}}0>b&&-2!=b&&this.controller.Ha("Unable to restore disk '"+this.B+": "+c);return b};
f.save=function(){var a=0,b=[];b[a++]=[this.J,this.T,this.ob,this.pb,this.ib,this.tb];if(!this.F&&!this.qe)for(var c=this.A,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var k=0;k<c[d][e].length;k++){var l=c[d][e][k];if(l&&l.Dc){for(var p=[],q=0,v=l.Sc,B=l.Sc+l.Dc;v<B;)p[q++]=l.data[v++];b[a++]=[d,e,k,l.Sc,p]}}return b};
f.restore=function(a){var b=0,c="unsupported restore format";if(a&&0<a.length){var d=0,e=a[d++];e&&2<=e.length&&(!this.A.length&&6<=e.length?Kl(this,"local",e[2],e[3],e[4],e[5]):null!=e[1]&&null!=this.T&&e[1]!=this.T&&(c="original checksum ("+e[1]+") differs from current checksum ("+this.T+")",b=-2));for(this.A.length||(b=-1);d<a.length&&0<=b;){var k=0,l=a[d++],p=l[k++],q=l[k++],v=l[k++];if(p>=this.A.length||q>=this.A[p].length||v>=this.A[p][q].length){c="sector (CHS="+p+":"+q+":"+v+") out of range ("+
b+" changes applied)";b=-1;break}if(this.qe){c="unable to modify write-protected disk";b=-1;break}e=l[k++];k=l[k++];l=e+k.length;if(p=this.A[p][q][v]){for(q=p.data.length;q<e;)p.data[q++]=p.pattern;q=0;p.Sc=e;for(p.Dc=k.length;e<l;)p.data[e++]=k[q++];b++}}}0>b&&-2!=b&&this.controller.Ha("Unable to restore disk '"+this.B+": "+c);return b};
f.toJSON=function(){var a=JSON.stringify(this.A,function(a,c){return"file"==a?void 0:c}),a=a.replace(/,"length":512/gm,"").replace(/,"pattern":0/gm,""),a=a.replace(/"(sector|length|data|pattern)":/gm,"$1:"),a=a.replace(/,"[^"]*":([0-9]+|true|false)/gm,""),a=a.replace(/(sector|length|data|pattern):/gm,'"$1":');return a=a.replace(/([\]}]),/gm,"$1,\n")};
function Vl(a){Ia.call(this,"FDC",a,Vl);this.dmaRead=this.uj;this.dmaWrite=this.vj;this.dmaFormat=this.Ij;this.N=a.autoMount||null;this.D=[];this.da=!xa("Mobi")&&window&&"FileReader"in window}Qa(Vl);aa={};var Wl={3:{dd:3,wd:0,name:aa.Jm},4:{dd:2,wd:1,name:aa.Hm},5:{dd:9,wd:7,name:aa.Rm},6:{dd:9,wd:7,name:aa.Cm},7:{dd:2,wd:0,name:aa.Em},8:{dd:1,wd:2,name:aa.Im},10:{dd:2,wd:7,name:aa.Dm},13:{dd:6,wd:7,name:aa.pm},15:{dd:3,wd:0,name:aa.Gm}};f=Vl.prototype;
f.Eb=function(a,b,c){var d=this;switch(b){case "listDisks":return this.pa[b]=c,c.onchange=function(){var a=d.pa.descDisk,b=c.options[c.selectedIndex];if(a&&b){var l={};if(b=b.getAttribute("data-value"))try{l=eval("("+b+")")}catch(p){ra("FDC option error: "+p.message)}b=l.desc;void 0===b&&(b="");l=l.href;void 0!==l&&(b='<a href="'+l+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.pa[b]=c,c.onchange=function(){var a=ca(c.value,10);null!=a&&Xl(d,a)},!0;
case "loadDrive":return this.pa[b]=c,c.onclick=function(){var a=d.pa.listDisks;a&&Yl(d,a.options[a.selectedIndex].text,a.value)},!0;case "saveDrive":return this.pa[b]=c,c.onclick=function(){var a=d.pa.listDrives;if(a&&a.options&&d.B)if(a=ca(a.value,10),a=d.B[a])if(a.za){for(var b=a.za,c="",p=0,q;q=Pl(b,p++);)for(var w=0,B=q.length;w<B;w++)c+=String.fromCharCode(Ql(b,q,w));b="data:application/octet-stream;base64,"+btoa(c);c=document.createElement("a");"string"==typeof c.download?(c.href=b,c.download=
case "loadDrive":return this.pa[b]=c,c.onclick=function(){var a=d.pa.listDisks;a&&Yl(d,a.options[a.selectedIndex].text,a.value)},!0;case "saveDrive":return this.pa[b]=c,c.onclick=function(){var a=d.pa.listDrives;if(a&&a.options&&d.B)if(a=ca(a.value,10),a=d.B[a])if(a.za){for(var b=a.za,c="",p=0,q;q=Pl(b,p++);)for(var v=0,B=q.length;v<B;v++)c+=String.fromCharCode(Ql(b,q,v));b="data:application/octet-stream;base64,"+btoa(c);c=document.createElement("a");"string"==typeof c.download?(c.href=b,c.download=
a.za.jj.replace(".json",".img"),document.body.appendChild(c),c.click(),document.body.removeChild(c)):window.open(b)}else d.Ha("No disk loaded in drive");else d.Ha("No drive selected")},!0;case "mountDrive":return this.da?(this.pa[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Yl(d,ea(b,!0),b,a)}return!1}):c.parentNode.removeChild(c),!0}return!1};
f.nc=function(a,b,c,d){this.na=b;this.A=c;this.Ta=d;this.ua=a;this.T=kb(a,"ChipSet");if((this.N=Zl(this.ua,"autoMount")||this.N)&&"string"==typeof this.N)try{this.N=eval("("+this.N+")")}catch(e){ra("FDC auto-mount error: "+e.message+" ("+this.N+")"),this.N=null}$l(this);Nb(b,this,am);Pb(b,this,bm);this.da&&cm(this,"Local Disk","?");cm(this,"Remote Disk","??");dm(this)||ab(this)};
f.Tb=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.ua.ng){this.D=[];for(var c=0;c<this.B.length;c++)em(this,c,!0);dm(this,!0)}}else if(!this.restore(a))return!1;if(c=this.pa.listDrives){for(;c.firstChild;)c.removeChild(c.firstChild);c.textContent="";for(var d=0;d<this.Z;d++){var e=document.createElement("option");e.value=d;e.textContent=String.fromCharCode(65+d)+":";c.appendChild(e)}0<this.Z&&(c.value="0",Xl(this,0))}}return!0};f.Sb=function(a){return a?this.save():!0};f.reset=function(){$l(this)};
f.save=function(){var a=new Td(this),b=0,c=[];c[b++]=this.Xa;c[b++]=0;c[b++]=this.ga;c[b++]=this.K;c[b++]=this.H;c[b++]=this.F;c[b++]=this.W;for(var d=b++,e=0,k=[],l=0;l<this.B.length;l++){var p=e++,q=this.B[l],w=0,B=[];B[w++]=q.qb;B[w++]=[q.name,q.ob,q.pb,q.ib,q.tb,q.ne,q.Lf,q.Se,q.Te];B[w++]=q.bb;B[w++]=q.ud+100;B[w++]=q.Bb;B[w++]=q.sb;B[w++]=q.vd;B[w++]=q.zb;B[w++]=q.Ya;B[w++]=q.le;B[w++]=q.kj;B[w]=q.Vd;k[p]=B}c[d]=k;d=b++;for(e=0;e<this.B.length;e++)k=this.B[e],k.za&&fm(this,k.Vd,k.za);c[d]=this.D;
f.save=function(){var a=new Td(this),b=0,c=[];c[b++]=this.Xa;c[b++]=0;c[b++]=this.ga;c[b++]=this.K;c[b++]=this.H;c[b++]=this.F;c[b++]=this.W;for(var d=b++,e=0,k=[],l=0;l<this.B.length;l++){var p=e++,q=this.B[l],v=0,B=[];B[v++]=q.qb;B[v++]=[q.name,q.ob,q.pb,q.ib,q.tb,q.ne,q.Lf,q.Se,q.Te];B[v++]=q.bb;B[v++]=q.ud+100;B[v++]=q.Bb;B[v++]=q.sb;B[v++]=q.vd;B[v++]=q.zb;B[v++]=q.Ya;B[v++]=q.le;B[v++]=q.kj;B[v]=q.Vd;k[p]=B}c[d]=k;d=b++;for(e=0;e<this.B.length;e++)k=this.B[e],k.za&&fm(this,k.Vd,k.za);c[d]=this.D;
c[b++]=this.O;c[b]=this.J;D(a,0,c);return a.data()};f.restore=function(a){return $l(this,a[0])};
function $l(a,b){var c=0,d,e=!0;void 0===b&&(b=[0,0,128,Array(9),0,0,0,[]]);a.Xa=b[c++];c++;a.ga=b[c++];a.K=b[c++];a.H=b[c++];a.F=b[c++];a.W=b[c++];var k=b[c++];d=b[c++];null!=d&&(a.D=d);void 0===a.B&&(a.Z=4,a.T&&(a.Z=Wi(a.T)),a.B=Array(4));for(d=0;d<a.B.length;d++){var l=a.B[d];if(void 0===l){var l=a.B[d]={},p;if(a.T)a:{p=a.T;if(d<Wi(p)){if(!p.ha){p=360;break a}if(d<p.ha.length){p=p.ha[d];break a}}p=0}else p=0;switch(p){case 160:case 180:l.pb=1;default:l.ob=40;l.ib=9;break;case 720:l.ob=80;l.ib=
9;break;case 1200:l.ob=80;l.ib=15;break;case 1440:l.ob=80,l.ib=18}}var q=a,w=d,B=k[d],G=0;p=!0;l.Xa=w;l.Nc=l.le=!1;void 0===B&&(B=[192,!0,0,2,0]);"boolean"==typeof B[1]&&(B[1]=["Floppy Drive",l.ob||40,l.pb||B[3],l.ib||9,l.tb||512,B[1],l.Lf,l.Se,l.Te]);l.qb=B[G++];var C=B[G++];l.name=C[0];l.ob=C[1];l.pb=C[2];l.ib=C[3];l.tb=C[4];l.ne=C[5];(l.Lf=C[6])?(l.Se=C[7],l.Te=C[8]):(l.Lf=l.ob,l.Se=l.pb,l.Te=l.ib);l.bb=B[G++];l.ud=B[G++];l.Bb=B[G++];l.ud=100<=l.ud?l.ud-100:l.ud-l.Bb;l.sb=B[G++];l.vd=B[G++];l.zb=
B[G++];l.Ya=B[G++];l.Za=null;l.za||(l.Vd="");C=B[G++];102==C&&(C=!1);if("boolean"==typeof C){var K=C,C=B[G++],B=B[G];K?(G=C,C=q.B[w],em(q,w,!0,!0),C.le=!0,w=new Il(q,C,"preload"),q.Qh(C,w,G,B,!0)):gm(q,w,C,B,!0)?l.za&&B&&hm(q,C,B,l.za):ab(q,!1)}else void 0!==C&&l.za&&0>l.za.restore(C)&&(p=!1);p&&l.za&&void 0!==l.Ya&&(l.Za=l.za.seek(l.Bb,l.bb,l.sb));p||(e=!1)}a.O=b[c++]||0;a.J=b[c]||0;return e}
9;break;case 1200:l.ob=80;l.ib=15;break;case 1440:l.ob=80,l.ib=18}}var q=a,v=d,B=k[d],G=0;p=!0;l.Xa=v;l.Nc=l.le=!1;void 0===B&&(B=[192,!0,0,2,0]);"boolean"==typeof B[1]&&(B[1]=["Floppy Drive",l.ob||40,l.pb||B[3],l.ib||9,l.tb||512,B[1],l.Lf,l.Se,l.Te]);l.qb=B[G++];var C=B[G++];l.name=C[0];l.ob=C[1];l.pb=C[2];l.ib=C[3];l.tb=C[4];l.ne=C[5];(l.Lf=C[6])?(l.Se=C[7],l.Te=C[8]):(l.Lf=l.ob,l.Se=l.pb,l.Te=l.ib);l.bb=B[G++];l.ud=B[G++];l.Bb=B[G++];l.ud=100<=l.ud?l.ud-100:l.ud-l.Bb;l.sb=B[G++];l.vd=B[G++];l.zb=
B[G++];l.Ya=B[G++];l.Za=null;l.za||(l.Vd="");C=B[G++];102==C&&(C=!1);if("boolean"==typeof C){var K=C,C=B[G++],B=B[G];K?(G=C,C=q.B[v],em(q,v,!0,!0),C.le=!0,v=new Il(q,C,"preload"),q.Qh(C,v,G,B,!0)):gm(q,v,C,B,!0)?l.za&&B&&hm(q,C,B,l.za):ab(q,!1)}else void 0!==C&&l.za&&0>l.za.restore(C)&&(p=!1);p&&l.za&&void 0!==l.Ya&&(l.Za=l.za.seek(l.Bb,l.bb,l.sb));p||(e=!1)}a.O=b[c++]||0;a.J=b[c]||0;return e}
function dm(a,b){b||(a.S=0);if(a.N)for(var c in a.N){var d=a.N[c],e=d.path,k;if(!(k=d.name))a:{if((k=a.pa.listDisks)&&k.options)for(var l=0;l<k.options.length;l++)if(k.options[l].value==e){k=k.options[l].innerText;break a}k=ea(e,!0)}if(e&&k&&(l=c.charCodeAt(0)-65,0<=l&&l<a.B.length)){!gm(a,l,k,e,!0)&&b&&ab(a,!1);continue}a.Ha("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.S}
function Yl(a,b,c,d){var e,k=a.pa.listDrives;if(k&&!isNaN(e=ca(k.value,10))&&0<=e&&e<a.B.length)if(c)if("?"==c)a.Ha('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=ea(c)}for(;gm(a,e,b,c,!1,d)&&window.confirm("Click OK to reload the original disk.\n(WARNING: All disk changes will be discarded)");){for(var k=a,l=c,p=void 0,p=0;p<k.D.length;p++)if(k.D[p][1]==l){k.D.splice(p,1);break}em(a,
e,!1,!0)}}else em(a,e);else a.Ha("Unable to load the selected drive")}function gm(a,b,c,d,e,k){var l=a.B[b];if(d&&l.Vd!=d){em(a,b,e,!0);if(l.Nc)return a.Ha("Drive "+b+" busy"),!0;l.Nc=!0;e&&(l.Ld=!0,a.S++);l.le=!!k;(new Il(a,l,"preload")).load(c,d,k,a.Qh);return!1}return!0}
@ -986,9 +986,9 @@ f.Qh=function(a,b,c,d,e){var k;a.Nc=!1;b&&(k=b.info(),b&&k[0]>a.ob||k[1]>a.pb)&&
function cm(a,b,c){if((a=a.pa.listDisks)&&a.options){for(var d=0;d<a.options.length;d++)if(a.options[d].value==c)return;d=document.createElement("option");d.value=c;d.textContent=b;a.appendChild(d)}}
function Xl(a,b){if(0<=b&&b<a.B.length){var c=a.B[b],d=a.pa.listDisks,e=a.pa.listDrives;if(d&&e&&d.options&&e.options&&(e=ca(e.value,10),c=c.le?"?":c.Vd,!isNaN(e)&&e==b)){for(e=0;e<d.options.length;e++)if(d.options[e].value==c){d.selectedIndex!=e&&(d.selectedIndex=e);break}e==d.options.length&&(d.selectedIndex=0)}}}function em(a,b,c,d){var e=a.B[b];e.za&&(fm(a,e.Vd,e.za),e.kj="",e.Vd="",e.za=null,e.le=!1,a.O|=128,d||a.Ha("Drive "+String.fromCharCode(65+b)+" unloaded",c),c||d||Xl(a,b))}
function hm(a,b,c,d){var e;for(e=0;e<a.D.length;e++)if(a.D[e][1]==c){d.restore(a.D[e][2]);return}a.D[e]=[b,c,[]]}function fm(a,b,c){var d;for(d=0;d<a.D.length;d++)if(a.D[d][1]==b){a.D[d][2]=c.save();break}}f.Dl=function(a,b){b&4?this.W&4||this.W&8&&this.T&&Le(this.T,6):$l(this);this.W=b};f.sk=function(){return this.ga};f.qk=function(){var a=0;this.H<this.F&&(a=this.K[this.H]);this.W&8&&this.T&&Ke(this.T,6);++this.H>=this.F&&(this.ga&=-81,this.H=this.F=0);return a};
f.Cl=function(a,b){this.F<this.K.length&&(this.K[this.F++]=b);var c=this.K[0]&31;if(void 0!==Wl[c]&&this.F>=Wl[c].dd){var d=!1;this.H=0;var c=im(this),e,k,l,p,q,w=c&31;switch(w){case 3:im(this);im(this);jm(this);break;case 4:k=im(this);this.Xa=k&3;e=this.B[this.Xa];jm(this);km(this,(e.qb&-16777216)>>>24);break;case 5:case 6:k=im(this);d=k>>2&1;this.Xa=k&3;e=this.B[this.Xa];e.bb=d;k=e.Bb=im(this);l=im(this);p=e.sb=im(this);q=im(this);e.zb=128<<q;e.vd=im(this);im(this);im(this);6==w?(w=e,w.qb=72,w.za&&
(w.Za=null,w.qb=0,this.T&&(mj(this.T,2,this,"dmaRead",w),ij(this.T,2)))):(w=e,w.qb=72,w.za&&(w.za.qe?w.qb=576:(w.Za=null,w.qb=0,this.T&&(mj(this.T,2,this,"dmaWrite",w),ij(this.T,2)))));lm(this,e,c,d,k,l,p,q);d=!0;break;case 7:k=im(this);this.Xa=k&3;e=this.B[this.Xa];e.Bb=e.ud=0;e.qb=268435488;jm(this);d=!0;break;case 8:e=this.B[this.Xa];e.bb=0;jm(this);km(this,e.Xa|e.bb<<2|e.qb&255);km(this,e.Bb);this.Xa=this.Xa+1&3;break;case 10:k=im(this);d=k>>2&1;this.Xa=k&3;e=this.B[this.Xa];k=e.Bb;l=e.bb=d;p=
e.sb=1;q=0;e.qb=0;e.za&&(e.Za=e.za.seek(e.Bb,e.bb,e.sb))?q=e.Za.length>>8:e.qb=72;lm(this,e,c,d,k,l,p,q);d=!0;break;case 13:k=im(this);d=k>>2&1;this.Xa=k&3;e=this.B[this.Xa];k=e.Bb;l=e.bb=d;p=1;q=im(this);e.zb=128<<q;e.vd=im(this);im(this);e.Jh=im(this);w=e;w.qb=72;w.za&&(w.Za=null,w.qb=0,this.T&&(w.he=0,w.Mc=Array(4),w.gg=!0,w.zf=0,mj(this.T,2,this,"dmaFormat",w),ij(this.T,2),w.gg=!1));lm(this,e,c,d,k,l,p,q);d=!0;break;case 15:k=im(this),this.Xa=k&3,e=this.B[this.Xa],e.bb=k>>2&1,k=im(this),e.Bb+=
f.Cl=function(a,b){this.F<this.K.length&&(this.K[this.F++]=b);var c=this.K[0]&31;if(void 0!==Wl[c]&&this.F>=Wl[c].dd){var d=!1;this.H=0;var c=im(this),e,k,l,p,q,v=c&31;switch(v){case 3:im(this);im(this);jm(this);break;case 4:k=im(this);this.Xa=k&3;e=this.B[this.Xa];jm(this);km(this,(e.qb&-16777216)>>>24);break;case 5:case 6:k=im(this);d=k>>2&1;this.Xa=k&3;e=this.B[this.Xa];e.bb=d;k=e.Bb=im(this);l=im(this);p=e.sb=im(this);q=im(this);e.zb=128<<q;e.vd=im(this);im(this);im(this);6==v?(v=e,v.qb=72,v.za&&
(v.Za=null,v.qb=0,this.T&&(mj(this.T,2,this,"dmaRead",v),ij(this.T,2)))):(v=e,v.qb=72,v.za&&(v.za.qe?v.qb=576:(v.Za=null,v.qb=0,this.T&&(mj(this.T,2,this,"dmaWrite",v),ij(this.T,2)))));lm(this,e,c,d,k,l,p,q);d=!0;break;case 7:k=im(this);this.Xa=k&3;e=this.B[this.Xa];e.Bb=e.ud=0;e.qb=268435488;jm(this);d=!0;break;case 8:e=this.B[this.Xa];e.bb=0;jm(this);km(this,e.Xa|e.bb<<2|e.qb&255);km(this,e.Bb);this.Xa=this.Xa+1&3;break;case 10:k=im(this);d=k>>2&1;this.Xa=k&3;e=this.B[this.Xa];k=e.Bb;l=e.bb=d;p=
e.sb=1;q=0;e.qb=0;e.za&&(e.Za=e.za.seek(e.Bb,e.bb,e.sb))?q=e.Za.length>>8:e.qb=72;lm(this,e,c,d,k,l,p,q);d=!0;break;case 13:k=im(this);d=k>>2&1;this.Xa=k&3;e=this.B[this.Xa];k=e.Bb;l=e.bb=d;p=1;q=im(this);e.zb=128<<q;e.vd=im(this);im(this);e.Jh=im(this);v=e;v.qb=72;v.za&&(v.Za=null,v.qb=0,this.T&&(v.he=0,v.Mc=Array(4),v.gg=!0,v.zf=0,mj(this.T,2,this,"dmaFormat",v),ij(this.T,2),v.gg=!1));lm(this,e,c,d,k,l,p,q);d=!0;break;case 15:k=im(this),this.Xa=k&3,e=this.B[this.Xa],e.bb=k>>2&1,k=im(this),e.Bb+=
k-e.ud,0>e.Bb&&(e.Bb=0),e.Bb>=e.ob&&(e.Bb=e.ob-1),e.ud=k,e.qb=32,e.Bb||(e.qb|=268435456),jm(this),d=!0}0<this.F&&(this.ga|=80);this.W&8&&(!e||e.qb&8||!d||this.T&&Le(this.T,6))}};f.rk=function(){var a=this.O;this.O&=-129;return a};f.Bl=function(a,b){this.J=b};function lm(a,b,c,d,e,k,l,p){jm(a);km(a,b.Xa|b.bb<<2|b.qb&255);km(a,(b.qb&65280)>>>8);km(a,(b.qb&16711680)>>>16);var q=0;if(e!=b.Bb||k!=b.bb)q=l=1;c&128&&(k^=q,d||(q=0));km(a,e+q);km(a,k);km(a,l);km(a,p)}
function im(a){var b=a.K[a.H];a.H++;return b}function jm(a){a.H=a.F=0}function km(a,b){a.K[a.F++]=b}f.uj=function(a,b,c){if(void 0===b||0>b){b=-1;var d=null,e=0;if(!a.qb&&a.za){do{if(a.Za&&(e=a.Ya,0<=(b=a.za.read(a.Za,a.Ya++)))){d=a.Za;break}a.Za=a.za.seek(a.Bb,a.bb,a.sb);if(!a.Za){a.qb=1088;break}a.Ya=0;mm(a)}while(1)}c(b,!1,d,e)}else c(-1,!1)};f.vj=function(a,b){return void 0!==b&&0<=b?nm(a,b):-1};
f.Ij=function(a,b){var c;if(void 0!==b&&0<=b)a:if(c=b,a.qb)c=-1;else{a.Mc[a.he++]=c;if(a.he==a.Mc.length){a.Bb=a.Mc[0];a.bb=a.Mc[1];a.sb=a.Mc[2];a.zb=128<<a.Mc[3];for(var d=a.he=0;d<a.zb;d++)if(0>nm(a,a.Jh)){c=-1;break a}a.zf++}a.zf>=a.vd&&(c=-1)}else c=-1;return c};function nm(a,b){if(a.qb||!a.za)return-1;do{if(a.Za&&a.za.write(a.Za,a.Ya++,b))break;a.Za=a.za.seek(a.Bb,a.bb,a.sb);if(!a.Za){a.qb=8256;b=-1;break}a.Ya=0;mm(a)}while(1);return b}
@ -998,11 +998,11 @@ var pm=["XTC","ATC","COMPAQ"],qm=[{0:[306,2],1:[375,8],2:[306,6],3:[306,4]},{1:[
8],20:[733,5],21:[733,7],22:[524,4,40],23:[924,8],24:[966,14],25:[966,16],26:[1023,14],27:[832,6,33],28:[1222,15,34],29:[1240,7,34],30:[615,4,25],31:[615,8,25],32:[905,9,25],33:[832,8,33],34:[966,7,34],35:[966,8,34],36:[966,9,34],37:[966,5,34],38:[612,16,63],39:[1023,11,33],40:[1023,15,34],41:[1630,15,52],42:[1023,16,63],43:[805,4,26],44:[805,2,26],45:[748,8,33],46:[748,6,33],47:[966,5,25]}];f=om.prototype;f.Eb=function(){return!1};
f.nc=function(a,b,c,d){this.na=b;this.A=c;this.Ta=d;this.ua=a;this.T=kb(a,"ChipSet");this.J=0;this.xa=3;Nb(b,this,this.Z?rm:sm);Pb(b,this,this.Z?tm:um);this.Z&&(this.J++,this.T&&5180==this.T.ia&&this.J++,this.xa=2,b.O[496]=2,b.S[496]=2);Pd(c,19,this.Wk.bind(this));Pd(c,64,this.Xk.bind(this));this.reset();vm(this)||ab(this)};f.Tb=function(a,b){if(!b)if(!a||!this.restore)wm(this),this.ua.ng&&vm(this,!0);else if(!this.restore(a))return!1;return!0};f.Sb=function(a){return a?this.save():!0};
f.re=function(){return this.ua?this.ua.re():""};f.yd=function(){return this.ua?this.ua.yd():""};f.reset=function(){wm(this,null,!0)};
f.save=function(){var a=new Td(this),b=0,c=[];this.Z?(c[b++]=this.N,c[b++]=this.Fa,c[b++]=this.O,c[b++]=this.sa,c[b++]=this.qa,c[b++]=this.oa,c[b++]=this.ha,c[b++]=this.ga,c[b++]=this.va,c[b++]=[this.W,this.Xa]):(c[b++]=this.la,c[b++]=this.ga,c[b++]=this.K,c[b++]=this.H,c[b++]=this.F,c[b++]=this.Da,c[b++]=this.Ca,c[b++]=this.ya,c[b++]=this.da);for(var d=0,e=[],k=0;k<this.B.length;k++){var l=d++,p=this.B[k],q=0,w=[];w[q++]=p.errorCode;w[q++]=p.lj;w[q++]=p.ne;w[q++]=p.ce;w[q++]=p.de;w[q++]=p.bb;w[q++]=
p.pb;w[q++]=p.Fd;w[q++]=p.sb;w[q++]=p.vd;w[q++]=p.zb;w[q++]=p.Ya;w[q]=p.za?p.za.save():null;e[l]=w}c[b]=e;D(a,0,c);return a.data()};f.restore=function(a){return wm(this,a[0])};
f.save=function(){var a=new Td(this),b=0,c=[];this.Z?(c[b++]=this.N,c[b++]=this.Fa,c[b++]=this.O,c[b++]=this.sa,c[b++]=this.qa,c[b++]=this.oa,c[b++]=this.ha,c[b++]=this.ga,c[b++]=this.va,c[b++]=[this.W,this.Xa]):(c[b++]=this.la,c[b++]=this.ga,c[b++]=this.K,c[b++]=this.H,c[b++]=this.F,c[b++]=this.Da,c[b++]=this.Ca,c[b++]=this.ya,c[b++]=this.da);for(var d=0,e=[],k=0;k<this.B.length;k++){var l=d++,p=this.B[k],q=0,v=[];v[q++]=p.errorCode;v[q++]=p.lj;v[q++]=p.ne;v[q++]=p.ce;v[q++]=p.de;v[q++]=p.bb;v[q++]=
p.pb;v[q++]=p.Fd;v[q++]=p.sb;v[q++]=p.vd;v[q++]=p.zb;v[q++]=p.Ya;v[q]=p.za?p.za.save():null;e[l]=v}c[b]=e;D(a,0,c);return a.data()};f.restore=function(a){return wm(this,a[0])};
function wm(a,b,c){var d=0,e=!0;a.Xa=-1;if(a.Z){if(null==b&&(b=[0,0,0,0,0,0,0,64,0,[0,-1]]),a.N=b[d++],a.Fa=b[d++],a.O=b[d++],a.sa=b[d++],a.qa=b[d++],a.oa=b[d++],a.ha=b[d++],a.ga=b[d++],a.va=b[d++],a.W=b[d++],"object"==typeof a.W){var k=a.W;a.W=k[0];a.Xa=k[1]}}else null==b&&(b=[0,0,Array(14),0,0]),a.la=b[d++],a.ga=b[d++],a.K=b[d++],a.H=b[d++],a.F=b[d++],a.Da=b[d++],a.Ca=b[d++],a.ya=b[d++],k=b[d++],void 0!==k?a.da=k:void 0===a.da&&(a.da=-1);void 0===a.B&&(a.B=Array(a.ta.length));b=b[d];void 0===b&&
(b=[]);for(d=0;d<a.B.length;d++){void 0===a.B[d]&&(a.B[d]={});var k=a.B[d],l=a,p=d,q=k,w=a.ta[d],B=b[d],G=c,C=0,K=!0;void 0===B&&(B=[0,0,!1,Array(8)]);q.Xa=p;q.errorCode=B[C++];q.lj=B[C++];q.ne=B[C++];q.ce=B[C++];q.de=B[C++];q.bb=B[C++];q.pb=B[C++];q.Fd=B[C++];q.sb=B[C++];q.vd=B[C++];q.zb=B[C++];q.yf=l.Z?0:1;q.name=w.name;void 0===q.name&&(q.name="Hard Drive");q.path=w.path;q.mode=w.mode||(q.path?"preload":"local");"demandro"!=q.mode&&"demandrw"!=q.mode||l.yd()||(q.mode="local");q.type=w.type;if(void 0===
q.type||void 0===qm[l.J][q.type])q.type=l.xa;w=qm[l.J][q.type];q.ib=w[2]||17;q.tb=w[3]||512;if(G&&l.T){var V=l.T,X=q.type;if(V.B){var G=null,w=void 0,ja=V.B[18];15<X&&(G=X,X=15);p?(ja=ja&240|X,w=26):(ja=ja&15|X<<4,w=25);X=V;X.B&&(X.B[18]=ja,Oi(X));null!=G&&V.B&&(V.B[w]=G,Oi(V))}}void 0===q.za&&(q.za=null,l.Ha("Type "+q.type+' "'+q.name+'" is fixed disk '+p,!0));xm(l,q);q.Ya=B[C++];q.Za=null;q.za&&(l=B[C],void 0!==l&&0>q.za.restore(l)&&(K=!1),K&&void 0!==q.Ya&&(q.Za=q.za.seek(q.Fd,q.bb,q.sb+q.yf)));
(b=[]);for(d=0;d<a.B.length;d++){void 0===a.B[d]&&(a.B[d]={});var k=a.B[d],l=a,p=d,q=k,v=a.ta[d],B=b[d],G=c,C=0,K=!0;void 0===B&&(B=[0,0,!1,Array(8)]);q.Xa=p;q.errorCode=B[C++];q.lj=B[C++];q.ne=B[C++];q.ce=B[C++];q.de=B[C++];q.bb=B[C++];q.pb=B[C++];q.Fd=B[C++];q.sb=B[C++];q.vd=B[C++];q.zb=B[C++];q.yf=l.Z?0:1;q.name=v.name;void 0===q.name&&(q.name="Hard Drive");q.path=v.path;q.mode=v.mode||(q.path?"preload":"local");"demandro"!=q.mode&&"demandrw"!=q.mode||l.yd()||(q.mode="local");q.type=v.type;if(void 0===
q.type||void 0===qm[l.J][q.type])q.type=l.xa;v=qm[l.J][q.type];q.ib=v[2]||17;q.tb=v[3]||512;if(G&&l.T){var V=l.T,X=q.type;if(V.B){var G=null,v=void 0,ja=V.B[18];15<X&&(G=X,X=15);p?(ja=ja&240|X,v=26):(ja=ja&15|X<<4,v=25);X=V;X.B&&(X.B[18]=ja,Oi(X));null!=G&&V.B&&(V.B[v]=G,Oi(V))}}void 0===q.za&&(q.za=null,l.Ha("Type "+q.type+' "'+q.name+'" is fixed disk '+p,!0));xm(l,q);q.Ya=B[C++];q.Za=null;q.za&&(l=B[C],void 0!==l&&0>q.za.restore(l)&&(K=!1),K&&void 0!==q.Ya&&(q.Za=q.za.seek(q.Fd,q.bb,q.sb+q.yf)));
K||(e=!1);null!=a.la&&1>=d&&(a.la|=(k.type&3)<<(1-d<<1))}0<=a.Xa&&(a.D=a.B[a.Xa]);return e}function xm(a,b,c){if(b){var d=0,e=0;null==c&&((d=b.ce[2])?e=b.ce[0]<<8|b.ce[1]:c=b.type);null==c||d||(d=qm[a.J][c][1],e=qm[a.J][c][0]);d&&((c=qm[a.J][b.type])&&e!=c[0]&&d!=c[1]&&a.Ha("Warning: drive parameters ("+e+","+d+") do not match drive type "+b.type+" ("+c[0]+","+c[1]+")"),b.ob=e,b.pb=d,null==b.za&&(b.za=new Il(a,b,b.mode)))}}
function vm(a,b){b||(a.S=0);for(var c=0;c<a.B.length;c++){var d=a.B[c];if(d.name&&d.path){if(!(b&&d.za&&d.za.Ef)){var e;e=a;var k=d.name,d=d.path,l=e.B[c];l.Nc?(e.Ha("Drive "+c+" busy"),e=!0):(l.Nc=!0,l.Ld=!0,e.S++,(l.za||new Il(e,l,l.mode)).load(k,d,null,e.Lj),e=!1);!e&&b&&ab(a,!1)}}else b&&void 0!==d.type&&(d.za=null,xm(a,d,d.type))}return!!a.S}
f.Lj=function(a,b,c){a.Nc=!1;if(a.za=b)this.Ha('Mounted disk "'+c+'" in drive '+String.fromCharCode(67+a.Xa),a.Ld),b=b.info(),b[0]==a.ob&&b[1]==a.pb&&b[2]==a.ib&&b[3]==a.tb||this.Ha("Warning: disk geometry ("+b[0]+":"+b[1]+":"+b[2]+") does not match "+pm[this.J]+" drive type "+a.type+" ("+a.ob+":"+a.pb+":"+a.ib+")");a.Ld&&(a.Ld=!1,--this.S||ab(this))};f.Tk=function(){var a=0;this.H<this.F&&(a=this.K[this.H]);this.T&&Ke(this.T,5);this.ga&=-33;++this.H>=this.F&&(this.H=this.F=0,this.ga&=-15);return a};
@ -1012,7 +1012,7 @@ f.jl=function(a,b){Cm(this,b&255);Cm(this,b>>8&255)};f.Zj=function(){return this
f.ck=function(){var a=this.ga;this.ga&64&&(this.ga&=-129);return a};f.gl=function(a,b){this.va=b;this.T&&Ke(this.T,14);Em(this)};f.ll=function(a,b){this.W&4&&!(b&4)&&(this.N=1);this.W=b};
function Em(a){var b=!1,c=a.va,d=a.ha&16?1:0,e=a.ha&15,k=a.qa|(a.oa&3)<<8,l=a.sa,p=a.O||256;a.Xa=-1;a.D=null;a.N=0;a.ga=80;var q=a.B[d];q?(q.Fd=k,q.bb=e,q.sb=l,q.zb=p*q.tb,c=144<=c?c:c&240,q.Za=null,q.Ya=0,q.errorCode=0,a.Xa=d,a.D=q):c=-1;switch(c&240){case 16:b=!0;break;case 32:a.ga=128;Am(q,function(b){0<=b&&a.T?(Bm(a),a.ga=88):(a.ga=1,a.N=16)},!1);break;case 48:a.ga=8;break;case 64:b=!0;break;case 112:b=!0;break;case 144:a.N=1;b=!0;break;case 145:q.pb=e+1,q.ib=p,b=!0}b&&Bm(a)}
function Bm(a){!a.T||a.W&2||Le(a.T,14,120)}
function ym(a){a.H=0;var b=Fm(a),c=Fm(a),d=c&32,e=d>>5,k=c&31,l=Fm(a),p=Fm(a),q=l<<2&768|p,w=l&63,B=Fm(a),G=Fm(a),C=a.B[e];C&&(C.Fd=q,C.bb=k,C.sb=w,C.zb=B*C.tb);switch(b){case 3:Gm(a,C?C.errorCode:4);Hm(a,c);Hm(a,l);Hm(a,p);Hm(a,0|d);b=-1;break;case 12:for(c=0;0<=(b=Fm(a));)C&&c<C.ce.length&&(C.ce[c++]=b);C&&xm(a,C);b=0;C||a.da!=e||(a.da=-1,b=2);Gm(a,b|d);b=-1;break;case 224:case 228:Gm(a,0|d),b=-1}if(0<=b)switch(void 0===C?b=-1:(C.errorCode=0,C.lj=0),b){case 0:Gm(a,0|d);break;case 1:C.Ge=G;Gm(a,
function ym(a){a.H=0;var b=Fm(a),c=Fm(a),d=c&32,e=d>>5,k=c&31,l=Fm(a),p=Fm(a),q=l<<2&768|p,v=l&63,B=Fm(a),G=Fm(a),C=a.B[e];C&&(C.Fd=q,C.bb=k,C.sb=v,C.zb=B*C.tb);switch(b){case 3:Gm(a,C?C.errorCode:4);Hm(a,c);Hm(a,l);Hm(a,p);Hm(a,0|d);b=-1;break;case 12:for(c=0;0<=(b=Fm(a));)C&&c<C.ce.length&&(C.ce[c++]=b);C&&xm(a,C);b=0;C||a.da!=e||(a.da=-1,b=2);Gm(a,b|d);b=-1;break;case 224:case 228:Gm(a,0|d),b=-1}if(0<=b)switch(void 0===C?b=-1:(C.errorCode=0,C.lj=0),b){case 0:Gm(a,0|d);break;case 1:C.Ge=G;Gm(a,
0|d);break;case 5:Gm(a,0|d);break;case 8:Lm(a,C,function(b){Gm(a,b|d)});break;case 10:Mm(a,C,function(b){Gm(a,b|d)});break;case 15:Nm(a,C,function(b){Gm(a,b|d)});break;default:Gm(a,2|d)}}function Fm(a){var b=-1;a.H<a.F&&(b=a.K[a.H++]);return b}function Gm(a,b){a.H=a.F=0;void 0!==b&&Hm(a,b);a.T&&Le(a.T,5);a.ga|=32}function Hm(a,b){a.K[a.F++]=b}f.wj=function(a,b,c){void 0===b||0>b?Am(a,c):c(-1,!1)};f.xj=function(a,b){return void 0!==b&&0<=b?Dm(a,b):-1};
f.Jj=function(a,b){var c;void 0!==b&&0<=b?(c=b,a.Ya<a.de.length?a.de[a.Ya++]=c:(a.errorCode=20,c=-1)):c=-1;return c};f.Kj=function(a,b){var c;if(void 0!==b&&0<=b)a:if(c=b,a.errorCode)c=-1;else{a.Mc[a.he++]=c;if(a.he==a.Mc.length){a.Fd=a.Mc[0];a.bb=a.Mc[1];a.sb=a.Mc[2];a.zb=128<<a.Mc[3];for(var d=a.he=0;d<a.zb;d++)if(0>Dm(a,a.Jh)){c=-1;break a}a.zf++}a.zf>=a.vd&&(c=-1)}else c=-1;return c};
function Lm(a,b,c){b.errorCode=4;if(b.za&&(b.Za=null,a.T)){b.errorCode=0;mj(a.T,3,a,"dmaRead",b);ij(a.T,3,function(a){a||0!=b.errorCode||(b.errorCode=4);c(b.errorCode?2:0)});return}c(b.errorCode?2:0)}function Mm(a,b,c){b.errorCode=4;if(b.za&&(b.Za=null,a.T)){b.errorCode=0;mj(a.T,3,a,"dmaWrite",b);ij(a.T,3,function(a){a||(0==b.errorCode&&(b.errorCode=4),20==b.errorCode&&(b.errorCode=0));c(b.errorCode?2:0)});return}c(b.errorCode?2:0)}
@ -1032,7 +1032,7 @@ l?(this.Ha("Error: "+l),"unable to verify user"==l&&(wa("user",""),this.B=null))
function an(a,b,c,d,e){if(!b.ja.Qb){b.ja.Qb=!0;if(b.Tb){var k=null;e&&((k=Tm(c,b.id))||(k=Tm(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof k&&(k=null);!b.Tb(k,d)&&k&&(ra("Unable to restore state for "+b.type),a.O&&!a.W?(c.clear(),a.rc=Vm,window&&window.location.reload()):a.S=!0,b.Tb(null),e=!1)}if(!d&&b.Dh)for(a=b.Dh.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
f.Rh=function(a){var b=a[0],c=0>a[1];a=a[2];this.ja.Qb=!0;var d=this.pa.power;d&&(d.textContent="Shutdown");this.Eh||(this.pc("PCjs v"+Xm+"\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>"),this.Eh=!0);this.A&&(an(this,this.A,b,c,a),mc(this.A));this.S&&($m(this,b),b.clear());!c&&this.F&&(this.F.clear(),delete this.F);this.D=0};
function $m(a,b){if(sa("There may be a problem with your PCjs machine.\n\nTo help us diagnose it, click OK to send this PCjs machine state to http://www.pcjs.org.")){var c=a.da,d=a.yd(),e=b.toString(),k={app:"PCjs"};k.ver=Xm;k.url=c;k.user=d;k.type="bug";k.data=e;pa("http://www.pcjs.org/api/v1/report",!0,k)}}
function bn(a,b,c){var d,e="none";if(a.D)return null;a.D--;var k=new Td(a,Xm),l=new Td(a,Xm,"validate"),p=la();D(l,"timestamp",p);D(k,"timestamp",p);D(k,"version","1.20.9");D(k,"url",window?window.location.href:null);D(k,"browser",window?window.navigator.userAgent:"");a.A&&a.A.Sb&&(c&&pc(a.A),d=a.A.Sb(b,c),"object"===typeof d&&D(k,a.A.id,d),c&&(a.A.ja.Qb=!1,!1===d&&(e=null)));for(var p=Ta(a.id),q=0;q<p.length;q++){var w=p[q];w.ja.Qb&&(w.Sb&&(d=w.Sb(b,c),"object"===typeof d&&D(k,w.id,d)),c&&(w.ja.Qb=
function bn(a,b,c){var d,e="none";if(a.D)return null;a.D--;var k=new Td(a,Xm),l=new Td(a,Xm,"validate"),p=la();D(l,"timestamp",p);D(k,"timestamp",p);D(k,"version","1.20.9");D(k,"url",window?window.location.href:null);D(k,"browser",window?window.navigator.userAgent:"");a.A&&a.A.Sb&&(c&&pc(a.A),d=a.A.Sb(b,c),"object"===typeof d&&D(k,a.A.id,d),c&&(a.A.ja.Qb=!1,!1===d&&(e=null)));for(var p=Ta(a.id),q=0;q<p.length;q++){var v=p[q];v.ja.Qb&&(v.Sb&&(d=v.Sb(b,c),"object"===typeof d&&D(k,v.id,d)),c&&(v.ja.Qb=
!1,!1===d&&(e=null)))}e&&(c?(p=d=!1,b?(a.B&&cn(a,a.B,k.toString()),Rm(l)&&Rm(k)||(e=null,d=p=!0)):a.rc&&(d=!0,p=3==a.rc),d&&k.clear(p)):e=k.toString());c&&(a.ja.Qb=!1,b=a.pa.power)&&(b.textContent="Power");a.D=0;return e}f.reset=function(){this.na&&this.na.reset&&this.na.reset();for(var a=Ta(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.na&&c.reset&&c.reset()}};f.start=function(a,b){for(var c=Ta(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};
f.stop=function(a,b){for(var c=Ta(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
f.Eb=function(a,b,c){var d=this;switch(b){case "power":return this.pa[b]=c,c.onclick=function(){d.D||(d.ja.Qb?bn(d,!1,!0):Ym(d,d.cf))},!0;case "reset":return this.pa[b]=c,c.onclick=function(){if(d.ja.Qb&&!d.D)if(d.rc&&!d.vf){var a=sa("Click OK to save changes to this PCjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");bn(d,a,!0);!a&&d.O?window&&window.location.reload():(a||(d.ng=!0),d.cf(Vm),d.ng=!1)}else d.reset(),d.A&&mc(d.A)},!0;case "save":return this.pa[b]=c,c.onclick=
@ -1043,8 +1043,10 @@ function kb(a,b,c){a=Ta(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&
ya.exit.push(function(){for(var a=Za(document,"pcjs","computer"),b=0;b<a.length;b++){var c=Wa(a[b]);(c=Va("Computer",c.id))&&c.ja.Qb&&bn(c,!(!c.rc||c.vf),!0)}});var en=0;function fn(a,b,c,d,e,k){e("Loading "+a+"...");pa(a,!0,null,null,function(l,p,q){q?(p||(p="unable to load "+a+" ("+q+")"),k(p,null)):gn(p,a,b,c,d,e,k)})}
function gn(a,b,c,d,e,k,l){function p(a,k){if(k)l(k,null);else{if(c){var p=b;p&&0>p.indexOf("/")&&(p=window.location.pathname+p);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+p+'"}';a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(p?' url="'+p+'"':""))}p=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(p=new window.ActiveXObject("Microsoft.XMLDOM"),
p.async=!1,p.loadXML(a)):p=(new window.DOMParser).parseFromString(a,"text/xml")}catch(G){p=null,a=G.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);l(a,p)}}a?e?hn(a,k,p):p(a,null):l("no data"+(b?" for file: "+b:""),null)}
function hn(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");pa(e,!0,null,null,function(k,l,p){if(p||!l)c(a,"unable to resolve XML reference: "+d[0]+" ("+p+")");else{if(k=d[3])if(p=l.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var q=p[0],w,B=/( [a-z]+=)(['"])(.*?)\2/g;w=B.exec(k);)q=0>q.indexOf(w[1])?q.replace(">",w[0]+">"):q.replace(new RegExp(w[1]+"(['\"])(.*?)\\1"),w[0]);p[0]!=q&&(l=l.replace(p[0],q))}else{c(a,"missing <"+d[1]+"> in "+e);return}l=l.replace(/<\?xml[^>]*>[\r\n]*/,
function hn(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");pa(e,!0,null,null,function(k,l,p){if(p||!l)c(a,"unable to resolve XML reference: "+d[0]+" ("+p+")");else{if(k=d[3])if(p=l.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var q=p[0],v,B=/( [a-z]+=)(['"])(.*?)\2/g;v=B.exec(k);)q=0>q.indexOf(v[1])?q.replace(">",v[0]+">"):q.replace(new RegExp(v[1]+"(['\"])(.*?)\\1"),v[0]);p[0]!=q&&(l=l.replace(p[0],q))}else{c(a,"missing <"+d[1]+"> in "+e);return}l=l.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],l);hn(a,b,c)}})}else c(a,null)}
function jn(a,b,c,d){function e(a){if(void 0===p){var b=l&&Za(l,"machine-warning");p=b&&b[0]||l}p&&(p.innerHTML=ha(a))}function k(a){e("Error: "+a);q&&(--en||Ga(!0));q=!1}var l,p,q=!0;en++;Ra[a]={};try{if(l=document.getElementById(a)){c||(c="/versions/pcjs/1.20.9/components.xsl");var w=function(d,p){p?(Sa(a,"xml",d),fn(c,null,null,!1,e,function(c,d){if(d)if(Sa(a,"xsl",c),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var q=p.transformNode(d);q?(l.outerHTML=q,--en||Ga(!0)):
k("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(q=new XSLTProcessor,q.importStylesheet(d),(q=q.transformToFragment(p,document))?l.parentNode?(l.parentNode.replaceChild(q,l),--en||Ga(!0)):k("invalid machine element: "+a):k("transformToFragment failed")):k("unable to transform XML: unsupported browser");else k(c)})):k(d)};"<"!=b.charAt(0)?fn(b,a,d,!0,e,w):gn(b,null,a,d,!1,e,w)}else k("missing machine element: "+a)}catch(B){k(B.message)}return q}
window.embedPC=function(a,b,c,d){Ga(!1);return jn(a,b,c,d)};window.savePC=function(a){var b=Va("Computer",a),c=Va("Debugger",a);if(b)return pa("/versions/pcjs/null/pc"+(c?"-dbg":"")+".js"),!0;ra("Unable to identify machine '"+a+"'");return!1};window.enableEvents=Ga;window.sendEvent=Ha;})();
function jn(a,b,c,d){function e(a){if(void 0===p){var b=l&&Za(l,"machine-warning");p=b&&b[0]||l}p&&(p.innerHTML=ha(a))}function k(a){e("Error: "+a);q&&(--en||Ga(!0));q=!1}var l,p,q=!0;en++;Ra[a]={};try{if(l=document.getElementById(a)){c||(c="/versions/pcjs/1.20.9/components.xsl");var v=function(d,p){p?(Sa(a,b,d),fn(c,null,null,!1,e,function(d,q){if(q)if(Sa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var v=p.transformNode(q);v?(l.outerHTML=v,--en||Ga(!0)):k("transformNodeToObject failed")}else document.implementation&&
document.implementation.createDocument?(v=new XSLTProcessor,v.importStylesheet(q),(v=v.transformToFragment(p,document))?l.parentNode?(l.parentNode.replaceChild(v,l),--en||Ga(!0)):k("invalid machine element: "+a):k("transformToFragment failed")):k("unable to transform XML: unsupported browser");else k(d)})):k(d)};"<"!=b.charAt(0)?fn(b,a,d,!0,e,v):gn(b,null,a,d,!1,e,v)}else k("missing machine element: "+a)}catch(B){k(B.message)}return q}
function kn(a,b,c,d){if(b&&(c=d[0],b=b.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/))){d=Ra[c];var e={},k;for(k in d){var l=d[k];if("xml"==k)for(var p,q=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;p=q.exec(d[k]);){var v=p[2];v&&(d[v]?console.log("saving disk: '"+v):l=l.replace(p[0],""))}console.log("saving resource: '"+k+"' ("+l.length+" bytes)");e[k]=l}k=JSON.stringify(e);b=b[1]+"var resources="+k+";"+b[2]+b[3];console.log("saving machine: '"+c+"' ("+b.length+" bytes)");k="data:application/octet-stream;base64,"+
btoa(b);c=document.createElement("a");"string"==typeof c.download?(c.href=k,c.download=ea(a,!0)+".json",document.body.appendChild(c),c.click(),document.body.removeChild(c)):window.open(k)}}window.embedPC=function(a,b,c,d){Ga(!1);return jn(a,b,c,d)};window.savePC=function(a,b){var c=Va("Computer",a),d=Va("Debugger",a);if(c)return b||(b="/versions/pcjs/1.20.9/pc"+(d?"-dbg":"")+".js"),pa(b,!0,null,null,kn,[a,c,d]),!0;ra("Unable to identify machine '"+a+"'");return!1};window.enableEvents=Ga;
window.sendEvent=Ha;})();

View file

@ -259,23 +259,20 @@ Component.addMachineResource = function(idMachine, sName, data)
{
Component.assert(Component.machines[idMachine]);
if (Component.machines[idMachine]) {
if (!Component.machines[idMachine][sName]) {
Component.machines[idMachine][sName] = [];
}
Component.machines[idMachine][sName].push(data);
Component.assert(Component.machines[idMachine][sName] === undefined);
Component.machines[idMachine][sName] = data;
}
};
/**
* Component.getMachineResources(idMachine, sName)
* Component.getMachineResources(idMachine)
*
* @param {string} idMachine
* @param {string} sName (name of the resource)
* @return {Array|undefined}
* @return {Object|undefined}
*/
Component.getMachineResources = function(idMachine, sName)
Component.getMachineResources = function(idMachine)
{
return Component.machines[idMachine] && Component.machines[idMachine][sName];
return Component.machines[idMachine];
};
/**

View file

@ -381,7 +381,7 @@ function embedMachine(sName, sVersion, idMachine, sXMLFile, sXSLFile, sParms)
displayError(sXML);
return;
}
Component.addMachineResource(idMachine, 'xml', sXML);
Component.addMachineResource(idMachine, sXMLFile, sXML);
/*
* Non-COMPILED kludge to extract the version number from the stylesheet path in the machine XML file;
* we don't need this code in COMPILED (non-DEBUG) releases, because APPVERSION is hard-coded into them.
@ -395,7 +395,7 @@ function embedMachine(sName, sVersion, idMachine, sXMLFile, sXSLFile, sParms)
displayError(sXSL);
return;
}
Component.addMachineResource(idMachine, 'xsl', sXSL);
Component.addMachineResource(idMachine, sXSLFile, sXSL);
/*
* The <machine> template in components.xsl now generates a "machine div" that makes
* the div we required the caller of embedMachine() to provide redundant, so instead
@ -501,27 +501,102 @@ function embedPC(idMachine, sXMLFile, sXSLFile, sParms)
}
/**
* savePC(idMachine)
* savePC(idMachine, sPCJSFile)
*
* @param {string} idMachine
* @param {string} [sPCJSFile]
* @return {boolean} true if successful, false if error
*/
function savePC(idMachine)
function savePC(idMachine, sPCJSFile)
{
var cmp = Component.getComponentByType("Computer", idMachine);
var dbg = Component.getComponentByType("Debugger", idMachine);
if (cmp) {
var sPCJSFile = "/versions/pcjs/" + XMLVERSION + "/pc" + (dbg? "-dbg" : "") + ".js";
var sPCJSCode = web.loadResource(sPCJSFile);
/*
* Next, we need to enumerate the FDC drives and "dump" the disks in them....
*/
if (!sPCJSFile) sPCJSFile = "/versions/pcjs/" + (XMLVERSION || APPVERSION) + "/pc" + (dbg? "-dbg" : "") + ".js";
web.loadResource(sPCJSFile, true, null, null, downloadPC, [idMachine, cmp, dbg]);
return true;
}
web.alertUser("Unable to identify machine '" + idMachine + "'");
return false;
}
/**
* downloadPC(sURL, sPCJS, nErrorCode, aMachineInfo)
*
* @param {string} sURL
* @param {string} sPCJS
* @param {number} nErrorCode
* @param {string} aMachineInfo ([0] = idMachine, [1] = Computer component, [2] = Debugger component, if any)
*/
function downloadPC(sURL, sPCJS, nErrorCode, aMachineInfo)
{
/*
* sPCJS is supposed to contain the entire PCjs script, which has been wrapped with:
*
* (function(){...
*
* at the top and:
*
* ...})();
*
* at the bottom, thanks to the following Closure Compiler option:
*
* --output_wrapper "(function(){%output%})();"
*
* Immediately inside that wrapping, we want to embed all the specified machine's resources, using:
*
* var resources = {"xml": "...", "xsl": "...", ...};
*
* Note that the "resources" variable has been added to our externs.js, to prevent it from being renamed
* by the Closure Compiler.
*/
if (sPCJS) {
var idMachine = aMachineInfo[0];
var matchScript = sPCJS.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);
if (matchScript) {
var resources = Component.getMachineResources(idMachine), resourcesNew = {};
for (var name in resources) {
var data = resources[name];
if (name == "xml") {
/*
* Look through this resource for <disk> entries whose paths do not appear as one of the other
* machine resources, and remove those entries.
*/
var matchDisk, reDisk = /[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;
while (matchDisk = reDisk.exec(resources[name])) {
var path = matchDisk[2];
if (path) {
if (resources[path]) {
console.log("saving disk: '" + path);
} else {
data = data.replace(matchDisk[0], "");
}
}
}
}
console.log("saving resource: '" + name + "' (" + data.length + " bytes)");
resourcesNew[name] = data;
}
var sResources = JSON.stringify(resourcesNew);
sPCJS = matchScript[1] + "var resources=" + sResources + ";" + matchScript[2] + matchScript[3];
console.log("saving machine: '" + idMachine + "' (" + sPCJS.length + " bytes)");
var uri = "data:application/octet-stream;base64," + btoa(sPCJS);
var link = document.createElement('a');
if (typeof link.download == 'string') {
link.href = uri;
link.download = str.getBaseName(sURL, true) + ".json";
document.body.appendChild(link); // Firefox requires the link to be in the body (?)
link.click();
document.body.removeChild(link);
} else {
window.open(uri);
}
}
}
}
/**
* Prevent the Closure Compiler from renaming functions we want to export, by adding them
* as (named) properties of a global object.

View file

@ -33,5 +33,6 @@
"use strict";
var global;
var resources;
// var webkitAudioContext;

View file

@ -190,7 +190,20 @@ web.notice = function(s, fPrintOnly, id)
*/
web.loadResource = function(sURL, fAsync, data, componentNotify, fnNotify, pNotify)
{
fAsync = !!fAsync; // ensure that fAsync is a valid boolean (Internet Explorer xmlHTTP functions insist on it)
var nErrorCode = 0;
var sURLData = null;
if (resources && (sURLData = resources[sURL])) {
if (fnNotify) {
if (!componentNotify) {
fnNotify(sURL, sURLData, nErrorCode, pNotify);
} else {
fnNotify.call(componentNotify, sURL, sURLData, nErrorCode, pNotify);
}
}
return [nErrorCode, sURLData];
}
if (NODE) {
/*
* We don't even need to load Component, because we can't use any of the code below
@ -201,8 +214,7 @@ web.loadResource = function(sURL, fAsync, data, componentNotify, fnNotify, pNoti
var net = require("./netlib");
return net.loadResource(sURL, fAsync, data, componentNotify, fnNotify, pNotify);
}
var nErrorCode = 0;
var sURLData = null;
var xmlHTTP = (window.XMLHttpRequest? new window.XMLHttpRequest() : new window.ActiveXObject("Microsoft.XMLHTTP"));
if (fAsync) {
xmlHTTP.onreadystatechange = function() {
@ -238,6 +250,7 @@ web.loadResource = function(sURL, fAsync, data, componentNotify, fnNotify, pNoti
}
};
}
if (data) {
var sData = "";
for (var p in data) {
@ -247,14 +260,15 @@ web.loadResource = function(sURL, fAsync, data, componentNotify, fnNotify, pNoti
}
sData = sData.replace(/%20/g, '+');
if (MAXDEBUG) web.log("web.loadResource(POST " + sURL + "): " + sData.length + " bytes");
xmlHTTP.open("POST", sURL, fAsync);
xmlHTTP.open("POST", sURL, !!fAsync); // ensure that fAsync is a valid boolean (Internet Explorer xmlHTTP functions insist on it)
xmlHTTP.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHTTP.send(sData);
} else {
if (MAXDEBUG) web.log("web.loadResource(GET " + sURL + ")");
xmlHTTP.open("GET", sURL, fAsync);
xmlHTTP.open("GET", sURL, !!fAsync); // ensure that fAsync is a valid boolean (Internet Explorer xmlHTTP functions insist on it)
xmlHTTP.send();
}
var response = [];
if (!fAsync) {
sURLData = xmlHTTP.responseText;

View file

@ -1,40 +1,40 @@
(function(){var f;function n(a,b){var c="";void 0===b?b=8:8<b&&(b=8);if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;){var d=a&15,d=d+(0<=d&&9>=d?48:55),c=String.fromCharCode(d)+c;a>>=4}return c}function p(a){return"0x"+n(a,2)}function q(a){return"0x"+n(a,4)}var aa={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function ba(a){return a.replace(/[&<>"']/g,function(a){return aa[a]})}var ca=Date.now||function(){return+new Date};
function t(a,b,c){var d;d=!0;var e=0,g=null,h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");d&&(h.onreadystatechange=function(){4===h.readyState&&(g=h.responseText,200==h.status||!h.status&&g.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),c&&(b?c.call(b,a,g,e,void 0):c(a,g,e,void 0)))});h.open("GET",a,d);h.send();d||(g=h.responseText,200!=h.status&&(e=h.status||-1),c&&(b?c.call(b,a,g,e,void 0):c(a,g,e,void 0)))}
function t(a,b,c){var d=0,e=null;if(resources&&(e=resources[a]))c&&(b?c.call(b,a,e,d,void 0):c(a,e,d,void 0));else{var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");g.onreadystatechange=function(){4===g.readyState&&(e=g.responseText,200==g.status||!g.status&&e.length&&"file:"==(window?window.location.protocol:"file:")||(d=g.status||-1),c&&(b?c.call(b,a,e,d,void 0):c(a,e,d,void 0)))};g.open("GET",a,!0);g.send()}}
function u(a){window&&window.alert(a)}function v(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}function da(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function ea(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,g=!1;a.onmousedown=function(){g||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);g=!0}}var w={init:[],show:[],exit:[]},fa=!1,ga=!0;function ha(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function x(a){w.init.push(a)}
function ia(a){if(ga)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){u("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.")}}function y(a){!ga&&a?(ga=!0,fa&&ja("init")):ga=a}function ja(a){w[a]&&ia(w[a])}ha("onload",function(){fa=!0;ia(w.init)});ha("onpageshow",function(){ia(w.show)});ha(v("Opera")||v("iOS")?"onunload":"onbeforeunload",function(){ia(w.exit)});
function z(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.rb=this.id.substr(0,b),this.qb=this.id.substr(b+1)):this.qb=this.id;this[a]=c;this.C={Za:!1,Ba:!1,jb:!1,M:!1,Ca:!1};this.cb=null;this.C.Ca=!1;this.H={};this.u=null;this.la=d||0;A.push(this)}var ka=void 0;
if(window){ka||(ka=window.location.search.substr(1));for(var la,ma=/\+/g,na=/([^&=]+)=?([^&]*)/g;la=na.exec(ka);)la[1].replace(ma," "),la[2].replace(ma," ")}function oa(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}function B(a){var b;b||(b=z);a.prototype=oa(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var A=[],C={};
function pa(a,b,c){C[a]&&(C[a][b]||(C[a][b]=[]),C[a][b].push(c))}function qa(a,b){if(void 0!==a){var c;b&&0<(c=b.indexOf("."))&&(a=b.substr(0,c+1)+a);for(c=0;c<A.length;c++)if(A[c].id===a)return A[c]}return null}function D(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){u(c.message+" ("+a+")")}return b}document&&!document.ELEMENT_NODE&&(document.ELEMENT_NODE=1);
function pa(a,b){if(void 0!==a){var c;b&&0<(c=b.indexOf("."))&&(a=b.substr(0,c+1)+a);for(c=0;c<A.length;c++)if(A[c].id===a)return A[c]}return null}function D(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){u(c.message+" ("+a+")")}return b}document&&!document.ELEMENT_NODE&&(document.ELEMENT_NODE=1);
function E(a,b){for(var c=F(b.parentNode,"c1pjs-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,g=0;g<e.length;g++){var h=e[g];if(h.nodeType===document.ELEMENT_NODE){var k=h.getAttribute("class");if(k)for(var l=k.split(" "),m=0;m<l.length;m++)switch(k=l[m],k){case "c1pjs-binding":(k=D(h))&&k.binding&&a.T(k.type,k.binding,h,k.value),m=l.length}}}}
function F(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}
z.prototype={constructor:z,parent:null,toString:function(){return this.name?this.name:this.id||this.type},T:function(a,b,c){switch(b){case "clear":return this.H[b]||(this.H[b]=c,c.onclick=function(a){return function(){a.H.print&&(a.H.print.value="")}}(this)),!0;case "print":return this.H[b]||(this.gb=this.H[b]=c,c.value="",this.l=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),
this.$a=function(a,b,c){this.l(a,"notice",c)}),!0;default:return!1}},log:function(){},l:function(){},status:function(a){this.l(this.qb+": "+a)},$a:function(a,b){b||u(a)},X:function(a){this.C.Ca||(this.C.Za=!1!==a,this.C.Za&&(a=this.cb,this.cb=null,a&&a()))}};function G(a,b){if(a.u){a===a.u?b|=0:b=b||a.la;var c=a.u.la&b;return!!b&&c===b||!!(c&a.u.Re)}return!1}function I(a,b){if(a.C.jb)return a.C.Ba&&(a.C.Ba=!1),a.C.jb=!1;if(a.C.Ca)return a.l(a.toString()+" error"),!1;a.C.Ba=b;return a.C.Ba}
function J(a,b){a.C.Ba&&(b?a.C.jb=!0:void 0===b&&a.l(a.toString()+" busy"));return a.C.Ba}function K(a,b){b&&(a.C.Za?b():a.cb=b);return a.C.Za}function ra(a,b){a.C.Ca=!0;a.$a(b)}function sa(a){z.call(this,"C1PPanel",a);this.C.M=!1}B(sa);sa.prototype.T=function(a,b,c,d){return this.J&&this.J.T(a,b,c,d)||this.s&&this.s.T(a,b,c,d)||this.b&&this.b.T(a,b,c,d)||this.u&&this.u.T(a,b,c,d)?!0:z.prototype.T.call(this,a,b,c,d)};
sa.prototype.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.J=b,this.s=L(b,"cpu"),this.b=L(b,"keyboard"),this.u=L(b,"debugger"),ta())};function ta(){for(var a=!1,b=F(document,"c1pjs","panel"),c=0;c<b.length;c++){var d=b[c],e=D(d),g=qa(e.id);g||(a=!0,g=new sa(e));E(g,d);a&&g.X()}}x(ta);
function ua(a){z.call(this,"C1PCPU",a);va(this);this.C.M=!1;this.C.ma=!1;this.Ta=a.autoStart;this.Ra=0;this.Ob=1;this.eb=2;this.speed=this.Ra;this.Ja=30;this.Ia=5;this.Ma=8;this.Sa=["Slow","Fast","Max"];this.ib=["(1Mhz)","(up to "+this.Ma+"Mhz)","(unlimited)"];this.P=[];this.K=[];this.oa=65536;this.pa=0;this.da=65536;this.ia=0;this.Qa=32;this.bb=2;this.Nb=1;this.o=[this.yc,this.Sd,this.Je,this.m,this.m,this.Ud,this.oc,this.m,this.Xd,this.Rd,this.nc,this.m,this.m,this.Od,this.lc,this.m,this.xc,this.Td,
function J(a,b){a.C.Ba&&(b?a.C.jb=!0:void 0===b&&a.l(a.toString()+" busy"));return a.C.Ba}function K(a,b){b&&(a.C.Za?b():a.cb=b);return a.C.Za}function qa(a,b){a.C.Ca=!0;a.$a(b)}function ra(a){z.call(this,"C1PPanel",a);this.C.M=!1}B(ra);ra.prototype.T=function(a,b,c,d){return this.J&&this.J.T(a,b,c,d)||this.s&&this.s.T(a,b,c,d)||this.b&&this.b.T(a,b,c,d)||this.u&&this.u.T(a,b,c,d)?!0:z.prototype.T.call(this,a,b,c,d)};
ra.prototype.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.J=b,this.s=L(b,"cpu"),this.b=L(b,"keyboard"),this.u=L(b,"debugger"),sa())};function sa(){for(var a=!1,b=F(document,"c1pjs","panel"),c=0;c<b.length;c++){var d=b[c],e=D(d),g=pa(e.id);g||(a=!0,g=new ra(e));E(g,d);a&&g.X()}}x(sa);
function ta(a){z.call(this,"C1PCPU",a);ua(this);this.C.M=!1;this.C.ma=!1;this.Ta=a.autoStart;this.Ra=0;this.Ob=1;this.eb=2;this.speed=this.Ra;this.Ja=30;this.Ia=5;this.Ma=8;this.Sa=["Slow","Fast","Max"];this.ib=["(1Mhz)","(up to "+this.Ma+"Mhz)","(unlimited)"];this.P=[];this.K=[];this.oa=65536;this.pa=0;this.da=65536;this.ia=0;this.Qa=32;this.bb=2;this.Nb=1;this.o=[this.yc,this.Sd,this.Je,this.m,this.m,this.Ud,this.oc,this.m,this.Xd,this.Rd,this.nc,this.m,this.m,this.Od,this.lc,this.m,this.xc,this.Td,
this.m,this.m,this.m,this.Vd,this.pc,this.m,this.Bc,this.Qd,this.m,this.m,this.m,this.Pd,this.mc,this.m,this.pd,this.hc,this.m,this.m,this.uc,this.jc,this.ce,this.m,this.Zd,this.gc,this.be,this.m,this.tc,this.dc,this.$d,this.m,this.vc,this.ic,this.m,this.m,this.m,this.kc,this.de,this.m,this.te,this.fc,this.m,this.m,this.m,this.ec,this.ae,this.m,this.je,this.cd,this.m,this.m,this.m,this.ed,this.Ld,this.m,this.Wd,this.bd,this.Kd,this.m,this.od,this.Zc,this.Id,this.m,this.zc,this.dd,this.m,this.m,this.m,
this.fd,this.Md,this.m,this.Dc,this.ad,this.m,this.m,this.m,this.$c,this.Jd,this.m,this.ke,this.yb,this.m,this.m,this.m,this.Ab,this.he,this.m,this.Yd,this.xb,this.ge,this.m,this.nd,this.ub,this.ee,this.m,this.Ac,this.zb,this.m,this.m,this.m,this.Bb,this.ie,this.m,this.ve,this.wb,this.m,this.m,this.m,this.vb,this.fe,this.m,this.m,this.ze,this.m,this.m,this.He,this.Be,this.Ee,this.m,this.Yc,this.m,this.Ne,this.m,this.Ge,this.we,this.De,this.m,this.qc,this.Ae,this.m,this.m,this.Ie,this.Ce,this.Fe,this.m,
this.Pe,this.ye,this.Oe,this.m,this.m,this.xe,this.m,this.m,this.Fd,this.ud,this.Ad,this.m,this.Gd,this.wd,this.Bd,this.m,this.Le,this.td,this.Ke,this.m,this.Dd,this.qd,this.yd,this.m,this.rc,this.vd,this.m,this.m,this.Hd,this.xd,this.Cd,this.m,this.Ec,this.sd,this.Me,this.m,this.Ed,this.rd,this.zd,this.m,this.Rc,this.Jc,this.m,this.m,this.Sc,this.Lc,this.Vc,this.m,this.md,this.Ic,this.Xc,this.m,this.Qc,this.Fc,this.Tc,this.m,this.wc,this.Kc,this.m,this.m,this.m,this.Mc,this.Wc,this.m,this.Cc,this.Hc,
this.m,this.m,this.m,this.Gc,this.Uc,this.m,this.Oc,this.Gb,this.m,this.m,this.Pc,this.Ib,this.jd,this.m,this.ld,this.Fb,this.Nd,this.m,this.Nc,this.Cb,this.gd,this.m,this.sc,this.Hb,this.m,this.m,this.m,this.Jb,this.kd,this.m,this.ue,this.Eb,this.m,this.m,this.m,this.Db,this.hd,this.m];this.fb=[7,6,0,0,0,3,5,0,3,2,2,0,0,4,6,0,2,5,0,0,0,4,6,0,2,4,0,0,0,4,7,0,3,6,0,0,3,3,5,0,4,2,2,0,4,4,6,0,2,5,0,0,0,4,6,0,2,4,0,0,0,4,7,0,6,6,0,0,0,3,5,0,3,2,2,0,3,4,6,0,2,5,0,0,0,4,6,0,2,4,0,0,0,4,7,0,6,6,0,0,0,3,
5,0,4,2,2,0,5,4,6,0,2,5,0,0,0,4,6,0,2,4,0,0,0,4,7,0,0,6,0,0,3,3,3,0,2,0,2,0,4,4,4,0,2,5,0,0,4,4,4,0,2,4,2,0,0,4,0,0,2,6,2,0,3,3,3,0,2,2,2,0,4,4,4,0,2,5,0,0,4,4,4,0,2,4,2,0,4,4,4,0,2,6,0,0,3,3,5,0,2,2,2,0,4,4,6,0,2,5,0,0,0,4,6,0,2,4,0,0,0,4,7,0,2,6,0,0,3,3,5,0,2,2,2,0,4,4,6,0,2,5,0,0,0,4,6,0,2,4,0,0,0,4,7,0]}B(ua);f=ua.prototype;
f.reset=function(a){this.C.ma&&this.aa();va(this);this.f=this.a[65532]|this.a[65533]<<8;this.C.Ca=!1;this.u?this.u.reset():a&&(!0===this.Ta||null===this.Ta&&!this.u&&void 0===this.H.run)&&this.va()};
5,0,4,2,2,0,5,4,6,0,2,5,0,0,0,4,6,0,2,4,0,0,0,4,7,0,0,6,0,0,3,3,3,0,2,0,2,0,4,4,4,0,2,5,0,0,4,4,4,0,2,4,2,0,0,4,0,0,2,6,2,0,3,3,3,0,2,2,2,0,4,4,4,0,2,5,0,0,4,4,4,0,2,4,2,0,4,4,4,0,2,6,0,0,3,3,5,0,2,2,2,0,4,4,6,0,2,5,0,0,0,4,6,0,2,4,0,0,0,4,7,0,2,6,0,0,3,3,5,0,2,2,2,0,4,4,6,0,2,5,0,0,0,4,6,0,2,4,0,0,0,4,7,0]}B(ta);f=ta.prototype;
f.reset=function(a){this.C.ma&&this.aa();ua(this);this.f=this.a[65532]|this.a[65533]<<8;this.C.Ca=!1;this.u?this.u.reset():a&&(!0===this.Ta||null===this.Ta&&!this.u&&void 0===this.H.run)&&this.va()};
f.T=function(a,b,c){a=!1;switch(b){case "run":this.H[b]=c;c.onclick=function(a){return function(){a.C.ma?a.aa():a.va()}}(this);a=!0;break;case "A":case "X":case "Y":case "S":case "PC":case "C":case "Z":case "I":case "D":case "B":case "V":case "N":case "speed":this.H[b]=c;a=!0;break;case "setSpeed":this.H[b]=c,c.onclick=function(a){return function(){M(a,2<=a.speed?a.Ra:a.speed+1,!0)}}(this),a=!0}return a};
f.ba=function(a,b,c){this.a=a;this.O=b;this.qa=c-b+1;this.Ga=this.O+this.qa;this.O?u("unsupported CPU address buffer offset ("+this.O+")"):this.X()};f.ha=function(a,b){if(a&&!this.C.M){this.J=b;(this.u=L(b,"debugger"))&&this.u.Tb();var c=L(b,"video");c&&(this.hb=function(a){return function(){wa(a)}}(c),this.ca=function(a){return function(){a.ca()}}(c));this.C.M=!0;this.reset(!0);this.update()}};function xa(a,b,c,d,e){0>ya(a.P,b,c,d,e)&&(a.oa>b&&(a.oa=b),a.pa<c&&(a.pa=c),a.P.push([b,c,d,e]))}
function za(a,b,c){for(var d=0;d<a.P.length;d++)b>=a.P[d][0]&&b<=a.P[d][1]&&a.P[d][3].call(a.P[d][2],b,c)}function N(a,b,c,d,e){0>ya(a.K,b,c,d,e)&&(a.da>b&&(a.da=b),a.ia<c&&(a.ia=c),a.K.push([b,c,d,e]))}function Aa(a,b,c){for(var d=0;d<a.K.length;d++)b>=a.K[d][0]&&b<=a.K[d][1]&&a.K[d][3].call(a.K[d][2],b,c)}function ya(a,b,c,d,e){for(var g=0;g<a.length;g++)if(a[g][0]==b&&a[g][1]==c&&a[g][2]==d&&a[g][3]==e)return g;return-1}
function M(a,b,c){void 0!==b&&(a.speed=b,a.H.setSpeed&&(a.H.setSpeed.innerHTML=a.Sa[2<=b?0:b+1]),a.l("running at "+a.Sa[b].toLowerCase()+" speed "+a.ib[b]),c&&a.ca());a.U=0;a.Oa=ca();Ba(a)}f.hb=function(){};f.ca=function(){};function O(a,b,c,d){void 0!==a.H[b]&&(void 0===d&&(d=1),c="0000"+c.toString(16),a.H[b].innerHTML=c.slice(c.length-d).toUpperCase())}
function Ca(a){O(a,"A",a.h,2);O(a,"X",a.w,2);O(a,"Y",a.F,2);var b=Da(a);O(a,"C",b&1?1:0);O(a,"Z",b&2?1:0);O(a,"I",b&4?1:0);O(a,"D",b&8?1:0);O(a,"B",b&16?1:0);O(a,"V",b&64?1:0);O(a,"N",b&128?1:0);O(a,"S",a.G,4);O(a,"PC",a.f,4);a.H.speed&&a.ta&&(a.H.speed.innerHTML=a.ta.toFixed(1)+"Mhz")}
function Ba(a,b){var c=30;c<a.Ja&&(c=a.Ja);c<a.Ia&&(c=a.Ia);var d=1;b&&a.speed>a.Ra&&a.ta&&(d=a.ta);d>a.Ma&&2>a.speed&&(d=a.Ma);a.kb=Math.round(1E3/30);a.ja=Math.floor(1E6/c*d);a.ra=Math.floor(1E6/30*d);a.Xa=Math.floor(1E6/a.Ja*d);a.Wa=Math.floor(1E6/a.Ia*d);b||(a.R=a.ra,a.Z=a.Xa,a.V=a.Wa);a.Aa=0}
function Ea(a){var b=ca(),c=a.kb;a.$&&(c=Math.round(c*a.$/a.ra));c=c-(b-a.lb);if(b=b-a.Oa)a.ta=Math.round(a.U/(100*b))/10,864E5<=b&&M(a);0>c?c=0:1==a.speed?a.ta<=a.Ma&&(c=0):2==a.speed&&(c=0);a.Aa+=a.$;return c}
f.va=function(){if(I(this,!0)){this.C.ma||(M(this),this.J&&this.J.start(),this.C.ma=!0,this.H.run&&(this.H.run.innerHTML="Halt"),this.ca());1E6<=this.Aa&&Ba(this,!0);this.$=0;this.lb=ca();try{do{this.step(this.ja);var a=this.L-this.D;this.U+=a;this.$+=a;this.L=this.D=0;this.Z-=this.ja;0>=this.Z&&(this.Z+=this.Xa,this.hb());this.V-=this.ja;0>=this.V&&(this.V+=this.Wa,Ca(this));this.R-=this.ja;if(0>=this.R){this.R+=this.ra;break}}while(this.C.ma)}catch(b){this.aa();this.update();I(this,!1);ra(this,
b.stack||b.message);return}setTimeout(function(a){return function(){a.va()}}(this),Ea(this))}else this.update(),this.J&&this.J.stop(this.Oa,this.U)};
f.step=function(a){var b=!0;this.b=this.g=-1;var c;if(c=a&&this.u)c=this.u,c=0<c.sa.length||0<c.wa.length||0<c.ya.length;this.L=this.D=a;do{a=this.a[this.f];var d;if(d=c){d=this.u;var e=a,g=!1;Fa(d,this.f,d.sa,"exec")?g=!0:(d.L++,d.B[e][1]++,d.xa[d.La++]=d.s.f,d.La>=d.xa.length&&(d.La=0));d=!!g}if(d){b=void 0;this.aa();break}this.f++;this.o[a].call(this);if(0<=this.b){this.b>=this.oa&&this.b<=this.pa&&za(this,this.b,this.f);if(d=c)d=this.u,e=!1,Fa(d,this.b,d.wa,"read")&&(e=!0),d=!!e;if(d){b=!1;this.aa();
break}this.b=-1}else if(0<=this.g){this.g>=this.da&&this.g<=this.ia&&Aa(this,this.g,this.f);if(d=c){d=this.u;var e=this.g,g=this.a[this.g],h=!1;(g&255)!=g&&(d.l("invalid value at "+q(e)+": "+g),h=!0);Fa(d,e,d.ya,"write")&&(h=!0);d=!!h}if(d){b=!1;this.aa();break}this.g=-1}this.D-=this.fb[a]}while(0<this.D);return b};function Ga(a){a.R=0;a.L-=a.D;a.D=0}f.aa=function(){J(this,!0);this.L-=this.D;this.D=0;this.C.ma&&(this.C.ma=!1,this.H.run&&(this.H.run.innerHTML="Run"))};
f.update=function(){this.hb();Ca(this)};function Ha(a){return a.C.ma?a.U+a.L-a.D:0}f.S=function(a){return this.a[a]};f.W=function(a,b){this.a[a]=b};function Da(a){var b=a.c&256?1:0,b=b|(a.j&255?0:2),b=b|((a.v&255^a.A^a.v>>1)&128?64:0),b=b|(a.i&128?128:0);return a.B&60|b}
function Ia(a){a.B|=8;a.o[97]=a.$b;a.o[101]=a.bc;a.o[105]=a.Zb;a.o[109]=a.Wb;a.o[113]=a.ac;a.o[117]=a.cc;a.o[121]=a.Yb;a.o[125]=a.Xb;a.o[225]=a.pe;a.o[229]=a.re;a.o[233]=a.oe;a.o[237]=a.le;a.o[241]=a.qe;a.o[245]=a.se;a.o[249]=a.ne;a.o[253]=a.me}function Ja(a){a.B&=-9;a.o[97]=a.yb;a.o[101]=a.Ab;a.o[105]=a.xb;a.o[109]=a.ub;a.o[113]=a.zb;a.o[117]=a.Bb;a.o[121]=a.wb;a.o[125]=a.vb;a.o[225]=a.Gb;a.o[229]=a.Ib;a.o[233]=a.Fb;a.o[237]=a.Cb;a.o[241]=a.Hb;a.o[245]=a.Jb;a.o[249]=a.Eb;a.o[253]=a.Db}
function P(a,b,c){var d=a.c&256?1:0,e=(b&15)+(c&15)+d;10<=e&&(e=e+6&15|16);e+=(b&240)+(c&240);a.A=b^c;a.v=e;a.i=e&255;160<=e&&(e+=96);512<=e&&(e-=256);a.c=e;a.j=b+c+d&255;a.D--;return e&255}function Q(a,b,c){var d=a.c&256?0:1,e=(b&15)-(c&15)-d;0>e&&(e=(e-6&15)-16);e+=(b&240)-(c&240);0>e&&(e-=96);a.i=a.j=(a.c=b-c-d)&255;a.A=b^c;a.v=a.c;a.c^=256;a.D--;return e&255}function va(a){a.h=0;a.w=0;a.F=0;a.G=256;a.B=0;a.i=0;a.j=0;a.A=0;a.v=0;a.c=0;a.f=0;a.b=-1;a.g=-1;a.ta=0;a.U=a.L=a.D=0}
f.yc=function(){this.f++;this.a[this.G--]=this.f>>8;this.G|=256;this.a[this.G--]=this.f&255;this.G|=256;this.B|=16;this.B=Da(this);this.a[this.G--]=this.B;this.G|=256;this.B&=239;this.b=65534;this.f=this.a[this.b]|this.a[this.b+1]<<8};f.Sd=function(){this.b=this.a[this.f++]+this.w&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.i=this.j=this.h|=this.a[this.b]};f.Ud=function(){this.b=this.a[this.f++];this.i=this.j=this.h|=this.a[this.b]};
f.oc=function(){this.g=this.a[this.f++];this.c=this.a[this.g]<<1;this.i=this.j=this.a[this.g]=this.c&255};f.Xd=function(){this.B=Da(this);this.a[this.G--]=this.B;this.G|=256};f.Rd=function(){this.b=this.f++;this.i=this.j=this.h|=this.a[this.b]};f.nc=function(){this.c=this.h<<1;this.i=this.j=this.h=this.c&255};f.Od=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.i=this.j=this.h|=this.a[this.b]};
f.ba=function(a,b,c){this.a=a;this.O=b;this.qa=c-b+1;this.Ga=this.O+this.qa;this.O?u("unsupported CPU address buffer offset ("+this.O+")"):this.X()};f.ha=function(a,b){if(a&&!this.C.M){this.J=b;(this.u=L(b,"debugger"))&&this.u.Tb();var c=L(b,"video");c&&(this.hb=function(a){return function(){va(a)}}(c),this.ca=function(a){return function(){a.ca()}}(c));this.C.M=!0;this.reset(!0);this.update()}};function wa(a,b,c,d,e){0>xa(a.P,b,c,d,e)&&(a.oa>b&&(a.oa=b),a.pa<c&&(a.pa=c),a.P.push([b,c,d,e]))}
function ya(a,b,c){for(var d=0;d<a.P.length;d++)b>=a.P[d][0]&&b<=a.P[d][1]&&a.P[d][3].call(a.P[d][2],b,c)}function N(a,b,c,d,e){0>xa(a.K,b,c,d,e)&&(a.da>b&&(a.da=b),a.ia<c&&(a.ia=c),a.K.push([b,c,d,e]))}function za(a,b,c){for(var d=0;d<a.K.length;d++)b>=a.K[d][0]&&b<=a.K[d][1]&&a.K[d][3].call(a.K[d][2],b,c)}function xa(a,b,c,d,e){for(var g=0;g<a.length;g++)if(a[g][0]==b&&a[g][1]==c&&a[g][2]==d&&a[g][3]==e)return g;return-1}
function M(a,b,c){void 0!==b&&(a.speed=b,a.H.setSpeed&&(a.H.setSpeed.innerHTML=a.Sa[2<=b?0:b+1]),a.l("running at "+a.Sa[b].toLowerCase()+" speed "+a.ib[b]),c&&a.ca());a.U=0;a.Oa=ca();Aa(a)}f.hb=function(){};f.ca=function(){};function O(a,b,c,d){void 0!==a.H[b]&&(void 0===d&&(d=1),c="0000"+c.toString(16),a.H[b].innerHTML=c.slice(c.length-d).toUpperCase())}
function Ba(a){O(a,"A",a.h,2);O(a,"X",a.w,2);O(a,"Y",a.F,2);var b=Ca(a);O(a,"C",b&1?1:0);O(a,"Z",b&2?1:0);O(a,"I",b&4?1:0);O(a,"D",b&8?1:0);O(a,"B",b&16?1:0);O(a,"V",b&64?1:0);O(a,"N",b&128?1:0);O(a,"S",a.G,4);O(a,"PC",a.f,4);a.H.speed&&a.ta&&(a.H.speed.innerHTML=a.ta.toFixed(1)+"Mhz")}
function Aa(a,b){var c=30;c<a.Ja&&(c=a.Ja);c<a.Ia&&(c=a.Ia);var d=1;b&&a.speed>a.Ra&&a.ta&&(d=a.ta);d>a.Ma&&2>a.speed&&(d=a.Ma);a.kb=Math.round(1E3/30);a.ja=Math.floor(1E6/c*d);a.ra=Math.floor(1E6/30*d);a.Xa=Math.floor(1E6/a.Ja*d);a.Wa=Math.floor(1E6/a.Ia*d);b||(a.R=a.ra,a.Z=a.Xa,a.V=a.Wa);a.Aa=0}
function Da(a){var b=ca(),c=a.kb;a.$&&(c=Math.round(c*a.$/a.ra));c=c-(b-a.lb);if(b=b-a.Oa)a.ta=Math.round(a.U/(100*b))/10,864E5<=b&&M(a);0>c?c=0:1==a.speed?a.ta<=a.Ma&&(c=0):2==a.speed&&(c=0);a.Aa+=a.$;return c}
f.va=function(){if(I(this,!0)){this.C.ma||(M(this),this.J&&this.J.start(),this.C.ma=!0,this.H.run&&(this.H.run.innerHTML="Halt"),this.ca());1E6<=this.Aa&&Aa(this,!0);this.$=0;this.lb=ca();try{do{this.step(this.ja);var a=this.L-this.D;this.U+=a;this.$+=a;this.L=this.D=0;this.Z-=this.ja;0>=this.Z&&(this.Z+=this.Xa,this.hb());this.V-=this.ja;0>=this.V&&(this.V+=this.Wa,Ba(this));this.R-=this.ja;if(0>=this.R){this.R+=this.ra;break}}while(this.C.ma)}catch(b){this.aa();this.update();I(this,!1);qa(this,
b.stack||b.message);return}setTimeout(function(a){return function(){a.va()}}(this),Da(this))}else this.update(),this.J&&this.J.stop(this.Oa,this.U)};
f.step=function(a){var b=!0;this.b=this.g=-1;var c;if(c=a&&this.u)c=this.u,c=0<c.sa.length||0<c.wa.length||0<c.ya.length;this.L=this.D=a;do{a=this.a[this.f];var d;if(d=c){d=this.u;var e=a,g=!1;Ea(d,this.f,d.sa,"exec")?g=!0:(d.L++,d.B[e][1]++,d.xa[d.La++]=d.s.f,d.La>=d.xa.length&&(d.La=0));d=!!g}if(d){b=void 0;this.aa();break}this.f++;this.o[a].call(this);if(0<=this.b){this.b>=this.oa&&this.b<=this.pa&&ya(this,this.b,this.f);if(d=c)d=this.u,e=!1,Ea(d,this.b,d.wa,"read")&&(e=!0),d=!!e;if(d){b=!1;this.aa();
break}this.b=-1}else if(0<=this.g){this.g>=this.da&&this.g<=this.ia&&za(this,this.g,this.f);if(d=c){d=this.u;var e=this.g,g=this.a[this.g],h=!1;(g&255)!=g&&(d.l("invalid value at "+q(e)+": "+g),h=!0);Ea(d,e,d.ya,"write")&&(h=!0);d=!!h}if(d){b=!1;this.aa();break}this.g=-1}this.D-=this.fb[a]}while(0<this.D);return b};function Fa(a){a.R=0;a.L-=a.D;a.D=0}f.aa=function(){J(this,!0);this.L-=this.D;this.D=0;this.C.ma&&(this.C.ma=!1,this.H.run&&(this.H.run.innerHTML="Run"))};
f.update=function(){this.hb();Ba(this)};function Ga(a){return a.C.ma?a.U+a.L-a.D:0}f.S=function(a){return this.a[a]};f.W=function(a,b){this.a[a]=b};function Ca(a){var b=a.c&256?1:0,b=b|(a.j&255?0:2),b=b|((a.v&255^a.A^a.v>>1)&128?64:0),b=b|(a.i&128?128:0);return a.B&60|b}
function Ha(a){a.B|=8;a.o[97]=a.$b;a.o[101]=a.bc;a.o[105]=a.Zb;a.o[109]=a.Wb;a.o[113]=a.ac;a.o[117]=a.cc;a.o[121]=a.Yb;a.o[125]=a.Xb;a.o[225]=a.pe;a.o[229]=a.re;a.o[233]=a.oe;a.o[237]=a.le;a.o[241]=a.qe;a.o[245]=a.se;a.o[249]=a.ne;a.o[253]=a.me}function Ia(a){a.B&=-9;a.o[97]=a.yb;a.o[101]=a.Ab;a.o[105]=a.xb;a.o[109]=a.ub;a.o[113]=a.zb;a.o[117]=a.Bb;a.o[121]=a.wb;a.o[125]=a.vb;a.o[225]=a.Gb;a.o[229]=a.Ib;a.o[233]=a.Fb;a.o[237]=a.Cb;a.o[241]=a.Hb;a.o[245]=a.Jb;a.o[249]=a.Eb;a.o[253]=a.Db}
function P(a,b,c){var d=a.c&256?1:0,e=(b&15)+(c&15)+d;10<=e&&(e=e+6&15|16);e+=(b&240)+(c&240);a.A=b^c;a.v=e;a.i=e&255;160<=e&&(e+=96);512<=e&&(e-=256);a.c=e;a.j=b+c+d&255;a.D--;return e&255}function Q(a,b,c){var d=a.c&256?0:1,e=(b&15)-(c&15)-d;0>e&&(e=(e-6&15)-16);e+=(b&240)-(c&240);0>e&&(e-=96);a.i=a.j=(a.c=b-c-d)&255;a.A=b^c;a.v=a.c;a.c^=256;a.D--;return e&255}function ua(a){a.h=0;a.w=0;a.F=0;a.G=256;a.B=0;a.i=0;a.j=0;a.A=0;a.v=0;a.c=0;a.f=0;a.b=-1;a.g=-1;a.ta=0;a.U=a.L=a.D=0}
f.yc=function(){this.f++;this.a[this.G--]=this.f>>8;this.G|=256;this.a[this.G--]=this.f&255;this.G|=256;this.B|=16;this.B=Ca(this);this.a[this.G--]=this.B;this.G|=256;this.B&=239;this.b=65534;this.f=this.a[this.b]|this.a[this.b+1]<<8};f.Sd=function(){this.b=this.a[this.f++]+this.w&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.i=this.j=this.h|=this.a[this.b]};f.Ud=function(){this.b=this.a[this.f++];this.i=this.j=this.h|=this.a[this.b]};
f.oc=function(){this.g=this.a[this.f++];this.c=this.a[this.g]<<1;this.i=this.j=this.a[this.g]=this.c&255};f.Xd=function(){this.B=Ca(this);this.a[this.G--]=this.B;this.G|=256};f.Rd=function(){this.b=this.f++;this.i=this.j=this.h|=this.a[this.b]};f.nc=function(){this.c=this.h<<1;this.i=this.j=this.h=this.c&255};f.Od=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.i=this.j=this.h|=this.a[this.b]};
f.lc=function(){this.g=this.a[this.f++]|this.a[this.f++]<<8;this.c=this.a[this.g]<<1;this.i=this.j=this.a[this.g]=this.c&255};f.xc=function(){this.f+=(this.i&128?0:(this.D--,this.a[this.f]<<24>>24))+1};f.Td=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.F;this.i=this.j=this.h|=this.a[this.b]};f.Vd=function(){this.b=this.a[this.f++]+this.w&255;this.i=this.j=this.h|=this.a[this.b]};
f.pc=function(){this.g=this.a[this.f++]+this.w&255;this.c=this.a[this.g]<<1;this.i=this.j=this.a[this.g]=this.c&255};f.Bc=function(){this.c=0};f.Qd=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.F;this.i=this.j=this.h|=this.a[this.b]};f.Pd=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.i=this.j=this.h|=this.a[this.b]};f.mc=function(){this.g=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.c=this.a[this.g]<<1;this.i=this.j=this.a[this.g]=this.c&255};
f.pd=function(){this.b=this.f++;this.a[this.G--]=this.f>>8;this.G|=256;this.a[this.G--]=this.f&255;this.G|=256;this.f=this.a[this.b]|this.a[this.b+1]<<8};f.hc=function(){this.b=this.a[this.f++]+this.w&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.i=this.j=this.h&=this.a[this.b]};f.uc=function(){this.b=this.a[this.f++];this.j=this.h&this.a[this.b];this.i=this.i&127|this.a[this.b]&128;this.v=0;this.A=this.a[this.b]&64?128:0};f.jc=function(){this.b=this.a[this.f++];this.i=this.j=this.h&=this.a[this.b]};
@ -64,102 +64,102 @@ f.xd=function(){this.b=this.a[this.f++]+this.w&255;this.i=this.j=this.h=this.a[t
f.rd=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.i=this.j=this.h=this.a[this.b]};f.zd=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.F;this.i=this.j=this.w=this.a[this.b]};f.Rc=function(){this.b=this.f++;this.i=this.j=this.c=this.F-this.a[this.b];this.c^=256};f.Jc=function(){this.b=this.a[this.f++]+this.w&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};
f.Sc=function(){this.b=this.a[this.f++];this.i=this.j=this.c=this.F-this.a[this.b];this.c^=256};f.Lc=function(){this.b=this.a[this.f++];this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};f.Vc=function(){this.g=this.a[this.f++];this.i=this.j=this.a[this.g]=this.a[this.g]-1&255};f.md=function(){this.i=this.j=this.F=this.F+1&255};f.Ic=function(){this.b=this.f++;this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};f.Xc=function(){this.i=this.j=this.w=this.w-1&255};
f.Qc=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.i=this.j=this.c=this.F-this.a[this.b];this.c^=256};f.Fc=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};f.Tc=function(){this.g=this.a[this.f++]|this.a[this.f++]<<8;this.i=this.j=this.a[this.g]=this.a[this.g]-1&255};f.wc=function(){this.f+=(this.j&255?(this.D--,this.a[this.f]<<24>>24):0)+1};
f.Kc=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.F;this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};f.Mc=function(){this.b=this.a[this.f++]+this.w&255;this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};f.Wc=function(){this.g=this.a[this.f++]+this.w&255;this.i=this.j=this.a[this.g]=this.a[this.g]-1&255};f.Cc=function(){Ja(this)};
f.Kc=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.F;this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};f.Mc=function(){this.b=this.a[this.f++]+this.w&255;this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};f.Wc=function(){this.g=this.a[this.f++]+this.w&255;this.i=this.j=this.a[this.g]=this.a[this.g]-1&255};f.Cc=function(){Ia(this)};
f.Hc=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.F;this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};f.Gc=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};f.Uc=function(){this.g=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.i=this.j=this.a[this.g]=this.a[this.g]-1&255};f.Oc=function(){this.b=this.f++;this.i=this.j=this.c=this.w-this.a[this.b];this.c^=256};
f.Gb=function(){this.b=this.a[this.f++]+this.w&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.pe=function(){this.b=this.a[this.f++]+this.w&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.h=Q(this,this.h,this.a[this.b])};f.Pc=function(){this.b=this.a[this.f++];this.i=this.j=this.c=this.w-this.a[this.b];this.c^=256};
f.Ib=function(){this.b=this.a[this.f++];this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.re=function(){this.b=this.a[this.f++];this.h=Q(this,this.h,this.a[this.b])};f.jd=function(){this.g=this.a[this.f++];this.i=this.j=this.a[this.g]=this.a[this.g]+1&255};f.ld=function(){this.i=this.j=this.w=this.w+1&255};
f.Fb=function(){this.b=this.f++;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.oe=function(){this.b=this.f++;this.h=Q(this,this.h,this.a[this.b])};f.Nd=function(){};f.Nc=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.i=this.j=this.c=this.w-this.a[this.b];this.c^=256};
f.Cb=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.le=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.h=Q(this,this.h,this.a[this.b])};f.gd=function(){this.g=this.a[this.f++]|this.a[this.f++]<<8;this.i=this.j=this.a[this.g]=this.a[this.g]+1&255};f.sc=function(){this.f+=(this.j&255?0:(this.D--,this.a[this.f]<<24>>24))+1};
f.Hb=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.F;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.qe=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.F;this.h=Q(this,this.h,this.a[this.b])};
f.Jb=function(){this.b=this.a[this.f++]+this.w&255;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.se=function(){this.b=this.a[this.f++]+this.w&255;this.h=Q(this,this.h,this.a[this.b])};f.kd=function(){this.g=this.a[this.f++]+this.w&255;this.i=this.j=this.a[this.g]=this.a[this.g]+1&255};f.ue=function(){Ia(this)};
f.Jb=function(){this.b=this.a[this.f++]+this.w&255;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.se=function(){this.b=this.a[this.f++]+this.w&255;this.h=Q(this,this.h,this.a[this.b])};f.kd=function(){this.g=this.a[this.f++]+this.w&255;this.i=this.j=this.a[this.g]=this.a[this.g]+1&255};f.ue=function(){Ha(this)};
f.Eb=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.F;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.ne=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.F;this.h=Q(this,this.h,this.a[this.b])};
f.Db=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.me=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.h=Q(this,this.h,this.a[this.b])};f.hd=function(){this.g=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.i=this.j=this.a[this.g]=this.a[this.g]+1&255};
f.Je=function(){var a;a=this.a[this.f++];switch(a){case 0:this.l("HALT");this.aa();break;case 1:a=this.f;for(var b="";a<this.a.length;){var c=this.a[a++];if(!c)break;b+=String.fromCharCode(c)}this.f=a;b=b.replace(/%A/g,n(this.h,2)).replace(/%X/g,n(this.w,2)).replace(/%Y/g,n(this.F,2));this.l(b);Ga(this);break;default:this.f-=2,this.l("undefined opSim: "+p(a)+" at "+q(this.f)),this.aa()}};f.m=function(){var a=this.a[--this.f];this.l("undefined opcode: "+p(a)+" at "+q(this.f));this.aa()};
x(function(){for(var a=F(document,"c1pjs","cpu"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new ua(d);E(d,c)}});function R(a){z.call(this,"C1PROM",a);this.b=this.a=null;this.g=a.size;if(this.o=a.image){a=this.o;var b;b=this.o;var c="",d=b.lastIndexOf(".");0<=d&&(c=b.substr(d+1).toLowerCase());b=c;"json"!=b&&"hex"!=b&&(a="http://"+(window?window.location.host:"www.pcjs.org")+"/api/v1/dump?file="+this.o+"&format=bytes");t(a,this,this.A)}}B(R);
R.prototype.ba=function(a,b,c,d){this.a=a;this.v=b;a=c-b+1;this.g||(this.g=a);a!=this.g?ra(this,"computer-specified ROM size ("+q(a)+") does not match component-specified size ("+q(this.g)+")"):(d&&(this.s=d,N(d,b,c,this,this.W)),Ka(this))};R.prototype.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.u=L(b,"debugger"))};R.prototype.W=function(a,b){if(void 0!==b){this.u&&S(this.u,this,a,b,this.u.pb,!0);var c=a-this.v;this.a[this.v+c]=this.b?this.b[c]:0}};
R.prototype.A=function(a,b,c){if(c)this.l('Error loading ROM "'+a+'" ('+c+")");else{if("["==b.charAt(0)||"{"==b.charAt(0))try{var d=eval("("+b+")"),e=d.bytes;e?this.b=e:this.b=d}catch(g){this.l('Error processing ROM "'+a+'": '+g.message);return}else for(a=b.replace(/\n/gm," ").replace(/ +$/,"").split(" "),this.b=Array(a.length),b=0;b<a.length;b++)this.b[b]=parseInt(a[b],16);Ka(this)}};
function Ka(a){if(!K(a))if(!a.o)a.X();else if(a.b&&a.a){var b=a.b.length;if(b!=a.g)ra(a,"ROM image size ("+q(b)+") does not match component-specified size ("+q(a.g)+")");else{for(var c=0;c<b;c++)a.a[a.v+c]=a.b[c];a.X()}}}x(function(){for(var a=F(document,"c1pjs","rom"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new R(d);E(d,c)}});function La(a){z.call(this,"C1PRAM",a)}B(La);La.prototype.ba=function(a){this.a=a;this.X()};
x(function(){for(var a=F(document,"c1pjs","ram"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new La(d);E(d,c)}});
function Ma(a){z.call(this,"C1PKeyboard",a);this.C.M=!1;this.Ia=a.model;this.da=8;this.fb=10;this.Xa=13;this.ia=27;this.Oa=this.da;this.Wa=this.fb;this.Ja=this.Xa;this.$=this.ia;this.L=241;this.Z=224;this.Sa=3;this.Ta=15;this.K=1;this.D=[];this.D["break"]=this.Z;this.D.esc=this.$;this.D["ctrl-c"]=this.Sa;this.D["ctrl-o"]=this.Ta;this.b=[];this.b[49]=30464;this.b[33]=30704;this.b[50]=30208;this.b[34]=30448;this.b[51]=29952;this.b[35]=30192;this.b[52]=29696;this.b[36]=29936;this.b[53]=29440;this.b[37]=
f.Je=function(){var a;a=this.a[this.f++];switch(a){case 0:this.l("HALT");this.aa();break;case 1:a=this.f;for(var b="";a<this.a.length;){var c=this.a[a++];if(!c)break;b+=String.fromCharCode(c)}this.f=a;b=b.replace(/%A/g,n(this.h,2)).replace(/%X/g,n(this.w,2)).replace(/%Y/g,n(this.F,2));this.l(b);Fa(this);break;default:this.f-=2,this.l("undefined opSim: "+p(a)+" at "+q(this.f)),this.aa()}};f.m=function(){var a=this.a[--this.f];this.l("undefined opcode: "+p(a)+" at "+q(this.f));this.aa()};
x(function(){for(var a=F(document,"c1pjs","cpu"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new ta(d);E(d,c)}});function R(a){z.call(this,"C1PROM",a);this.b=this.a=null;this.g=a.size;if(this.o=a.image){a=this.o;var b;b=this.o;var c="",d=b.lastIndexOf(".");0<=d&&(c=b.substr(d+1).toLowerCase());b=c;"json"!=b&&"hex"!=b&&(a="http://"+(window?window.location.host:"www.pcjs.org")+"/api/v1/dump?file="+this.o+"&format=bytes");t(a,this,this.A)}}B(R);
R.prototype.ba=function(a,b,c,d){this.a=a;this.v=b;a=c-b+1;this.g||(this.g=a);a!=this.g?qa(this,"computer-specified ROM size ("+q(a)+") does not match component-specified size ("+q(this.g)+")"):(d&&(this.s=d,N(d,b,c,this,this.W)),Ja(this))};R.prototype.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.u=L(b,"debugger"))};R.prototype.W=function(a,b){if(void 0!==b){this.u&&S(this.u,this,a,b,this.u.pb,!0);var c=a-this.v;this.a[this.v+c]=this.b?this.b[c]:0}};
R.prototype.A=function(a,b,c){if(c)this.l('Error loading ROM "'+a+'" ('+c+")");else{if("["==b.charAt(0)||"{"==b.charAt(0))try{var d=eval("("+b+")"),e=d.bytes;e?this.b=e:this.b=d}catch(g){this.l('Error processing ROM "'+a+'": '+g.message);return}else for(a=b.replace(/\n/gm," ").replace(/ +$/,"").split(" "),this.b=Array(a.length),b=0;b<a.length;b++)this.b[b]=parseInt(a[b],16);Ja(this)}};
function Ja(a){if(!K(a))if(!a.o)a.X();else if(a.b&&a.a){var b=a.b.length;if(b!=a.g)qa(a,"ROM image size ("+q(b)+") does not match component-specified size ("+q(a.g)+")");else{for(var c=0;c<b;c++)a.a[a.v+c]=a.b[c];a.X()}}}x(function(){for(var a=F(document,"c1pjs","rom"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new R(d);E(d,c)}});function Ka(a){z.call(this,"C1PRAM",a)}B(Ka);Ka.prototype.ba=function(a){this.a=a;this.X()};
x(function(){for(var a=F(document,"c1pjs","ram"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Ka(d);E(d,c)}});
function La(a){z.call(this,"C1PKeyboard",a);this.C.M=!1;this.Ia=a.model;this.da=8;this.fb=10;this.Xa=13;this.ia=27;this.Oa=this.da;this.Wa=this.fb;this.Ja=this.Xa;this.$=this.ia;this.L=241;this.Z=224;this.Sa=3;this.Ta=15;this.K=1;this.D=[];this.D["break"]=this.Z;this.D.esc=this.$;this.D["ctrl-c"]=this.Sa;this.D["ctrl-o"]=this.Ta;this.b=[];this.b[49]=30464;this.b[33]=30704;this.b[50]=30208;this.b[34]=30448;this.b[51]=29952;this.b[35]=30192;this.b[52]=29696;this.b[36]=29936;this.b[53]=29440;this.b[37]=
29680;this.b[54]=29184;this.b[38]=29424;this.b[55]=28928;this.b[39]=29168;this.b[56]=26368;this.b[40]=26608;this.b[57]=26112;this.b[41]=26352;this.b[48]=25856;this.b[58]=25600;this.b[42]=25840;this.b[45]=25344;this.b[61]=25584;this.b[46]=22272;this.b[62]=22512;this.b[108]=22016;this.b[76]=22256;this.b[92]=22256;this.b[111]=21760;this.b[79]=22E3;this.b[this.Oa]=22E3;this.b[this.Wa]=21504;this.b[this.Ja]=21248;this.b[119]=18176;this.b[87]=18416;this.b[101]=17920;this.b[69]=18160;this.b[114]=17664;this.b[82]=
17904;this.b[116]=17408;this.b[84]=17648;this.b[121]=17152;this.b[89]=17392;this.b[117]=16896;this.b[85]=17136;this.b[105]=16640;this.b[73]=16880;this.b[115]=14080;this.b[83]=14320;this.b[100]=13824;this.b[68]=14064;this.b[102]=13568;this.b[70]=13808;this.b[103]=13312;this.b[71]=13552;this.b[104]=13056;this.b[72]=13296;this.b[106]=12800;this.b[74]=13040;this.b[107]=12544;this.b[75]=12784;this.b[91]=12784;this.b[120]=9984;this.b[88]=10224;this.b[99]=9728;this.b[67]=9968;this.b[118]=9472;this.b[86]=
9712;this.b[98]=9216;this.b[66]=9456;this.b[110]=8960;this.b[78]=9200;this.b[94]=9200;this.b[109]=8704;this.b[77]=8944;this.b[93]=8944;this.b[44]=8448;this.b[60]=8688;this.b[113]=5888;this.b[81]=6128;this.b[97]=5632;this.b[65]=5872;this.b[122]=5376;this.b[90]=5616;this.b[32]=5120;this.b[47]=4864;this.b[63]=5104;this.b[59]=4608;this.b[43]=4848;this.b[112]=4352;this.b[80]=4592;this.b[64]=4592;this.b[this.L]=1536;this.b[this.$]=1280;this.b[240]=512;this.b[242]=256;this.b[244]=0;this.reset()}B(Ma);
f=Ma.prototype;f.reset=function(){this.Na(this.Ia);this.g=this.K;this.oa=0;this.o=[this.K,0,0,0,0,0,0,0];this.P=[];if(this.v)for(var a in this.v)isNaN(+a)||this.v[a]&&clearTimeout(this.v[a]);this.v=[];this.Aa=this.A=0;this.pa=-1;this.ja=this.o;this.qa=this.V=0;this.B=""};
f.T=function(a,b,c){if(void 0===this.H[b])switch(b){case "keyDown":return this.H[b]=c,c.onkeydown=function(a){return function(b){return Na(a,b,!0)}}(this),!0;case "keyPress":return this.H[b]=c,c.onkeypress=function(a){return function(b){var c=!0;b=b||window.event;b=b.which||b.keyCode;a.B="";a.g&8?a.g&=-9:c=!Oa(a,b);a.u&&G(a.u,a.u.za)&&a.u.message("keyPress("+p(b)+"): "+(c?"pass":"consume"));return c}}(this),!0;case "keyUp":return this.H[b]=c,c.onkeyup=function(a){return function(b){return Na(a,b,
!1)}}(this),!0;case "break":return this.H[b]=c,c.onclick=function(a){return function(){a.J&&a.J.reset(!0)}}(this),!0;default:if(void 0!==this.D[b])return this.H[b]=c,c.onclick=function(a,b,c){return function(){a.s&&a.s.ca();return!Oa(a,c)}}(this,b,this.D[b]),!0}return!1};f.ba=function(a,b,c,d){this.a=a;this.ra=b;this.ib=c-b+1;this.lb=this.ra+this.ib;d&&(this.s=d,N(d,b,c,this,this.W));this.X()};f.Na=function(a){this.O=a;this.R=255;600!=this.O&&(this.R=0,this.l("updated keyboard model: "+this.O))};
f.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.J=b,this.u=L(b,"debugger"))};f.X=function(){this.U=(this.kb=v("iOS"))||v("Android");this.u&&G(this.u,this.u.za)&&this.u.message("mobile keyboard support: "+(this.U?"true":"false")+" ("+window.navigator.userAgent+")");z.prototype.X.call(this)};function Pa(a,b){var c=b?100:250;a.s&&a.s.ta&&(c/=a.s.ta);return c}function Qa(a,b){!a.A||void 0!==b&&b==a.A||(a.u&&G(a.u,a.u.za)&&a.u.message("autoClear("+p(a.A)+")"),clearTimeout(a.v[a.A]),T(a,a.A,!1,4))}
function U(a,b,c){a.B=b;Ra(a,c||300)}function Ra(a,b){if(0<a.B.length){var c=a.B.charCodeAt(0);10==c&&(c=13);65<=c&&90>=c&&(c+=32);a.B=a.B.substr(1);Oa(a,c)}0<a.B.length&&setTimeout(function(a){return function(){Ra(a,b)}}(a),b)}
function Na(a,b,c){var d,e=!c;b=b.keyCode;c&&(a.Aa=b);16==b?(a.g&=-5,c&&(a.g|=4),b+=224,e=!1):18==b?(a.g&=-3,c&&(a.g|=2),b+=224,e=!1):b==a.L-224?(a.g&=-65,c&&(a.g|=64),b+=224,e=!1):20==b?(c=!c,a.g&=~a.K,c&&(a.g|=a.K),b+=224,e=!1):91==b?(a.g&=-9,c&&(a.g|=8),e=!1,d=!0):d=9==b?e=!1:b==a.ia||b==a.da?c?!Oa(a,b):!1:!0;e&&(a.g&=-9,a.U||b!=a.Aa||Qa(a));void 0===d&&(d=!T(a,b,c,2));a.u&&G(a.u,a.u.za)&&a.u.message("key"+(c?"Down":"Up")+"("+p(b)+"): "+(d?"pass":"consume"));return d}
function Oa(a,b){var c=!1;b==a.Z?a.J&&(a.J.reset(!0),c=!0):(a.U&&65<=b&&90>=b&&(b+=32),Qa(a,b),T(a,b,!0,0)&&(a.s.speed==a.s.eb?T(a,b,!1,1):(c=!1,a.v[b]&&(clearTimeout(a.v[b]),c=!0),c=Pa(a,c),a.v[a.A=b]=setTimeout(function(a){return function(){T(a,b,!1,3)}}(a),c),a.u&&G(a.u,a.u.za)&&a.u.message("keyPressSimulate("+p(b)+"): setTimeout()")),c=!0));a.u&&G(a.u,a.u.za)&&a.u.message("keyPressSimulate("+p(b)+"): "+(c?"true":"false"));return c}
function T(a,b,c,d){var e=!1;c||(a.v[b]=null,a.A==b&&(a.A=0));var g=0,h=a.b[b];void 0===h&&(1<=b&&26>=b&&(b+=64,g=a.L),h=a.b[b]);void 0!==h&&(b=h>>12,e=h>>8&15,g||(g=h&255),c?(a.o[b]|=1<<e,a.o[0]=g==a.L?a.o[0]|64:240==g?a.o[0]|4:242==g?a.o[0]|2:a.o[0]&-71):(a.o[b]&=~(1<<e),a.o[0]&=-71,a.o[0]|=a.g&70),c=0==d&&!a.P.length,a.P.push(a.o.slice()),Sa(a,c),e=!0);return e}f.S=function(){};f.W=function(a){this.oa=this.s.S(a)^this.R;this.V++;Sa(this,!1,a)};
function Sa(a,b,c){var d=Ha(a.s);b||(a.s.speed==a.s.eb?b=void 0!==c&&32<=a.V:(b=d-a.qa,b=0>b||8192<=b));b&&(b=a.P.shift(),void 0!==b&&(a.ja=b),a.V=0,a.qa=d);for(b=d=0;8>b;b++)a.oa&1<<b&&(d|=a.ja[b]);d^=a.R;if(void 0!==c)a.a[c]=d;else if(c=a.ra,d!=a.pa)for(;c<a.lb;c++)a.a[c]=d;a.pa=d}x(function(){for(var a=F(document,"c1pjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Ma(d);E(d,c)}});
function Ta(a,b,c,d){z.call(this,"C1PVideo",a);this.ja=a.model;this.Z=a.charCols;this.$=a.charRows;this.pa=a.screenWidth;this.qa=a.screenHeight;this.A=a.charWidth;this.B=a.charHeight;Ua(this);this.D=b;this.ia=c;this.o=d}B(Ta);f=Ta.prototype;f.reset=function(a){this.Na(this.ja);if(this.a)for(var b=this.K;b<this.P;b++)this.a[b]=a?Math.floor(256*Math.random()):32};f.T=function(a,b,c){switch(b){case "refresh":return this.H[b]=c,c.onclick=function(a){return function(){Va(a);wa(a)}}(this),!0}return!1};
f.ba=function(a,b,c,d){this.a=a;this.K=b;this.oa=c-b+1;this.P=this.K+this.oa;d&&(this.s=d,xa(d,56832,56832,this,this.S),N(d,56832,56832,this,this.W));this.reset(!0)};function Ua(a,b,c,d,e){a.J=void 0!==b?b:a.Z;a.ra=void 0!==c?c:a.$;a.g=a.J*a.ra;a.P=a.K+a.g;a.V=void 0!==d?d:0;a.da=void 0!==e?e:c;a.R=Math.floor(a.pa/a.J);a.U=Math.floor(a.qa/a.da)}f.ca=function(){this.D.focus()};
f.Na=function(a){this.O=a;600==this.O?(Ua(this,this.Z,this.$,3,25),1024==this.g&&this.s&&(this.v=this.P+this.g-1,N(this.s,this.v,this.v,this,this.Mb))):(this.l("updated video model: "+this.O),Ua(this,64,32));Va(this);wa(this)};f.ha=function(a,b){if(a&&!this.C.M&&K(this)){if(this.C.M=!0,this.u=L(b,"debugger"),this.b=L(b,"keyboard"))this.b.T("canvas","keyDown",this.D),this.b.T("canvas","keyPress",this.D),this.b.T("canvas","keyUp",this.D)}else!a&&this.C.M&&(this.C.M=!1)};
f.X=function(){this.A||(this.A=Math.floor(this.o.width/16));this.B||(this.B=Math.floor(this.o.height/16));z.prototype.X.call(this)};f.S=function(a,b){var c=this.s.S(a);void 0!==b&&this.u&&S(this.u,this,a,b,this.u.ab);this.s.W(a,c&127|(Math.floor(Ha(this.s)/8333)&1?128:0))};f.W=function(a,b){void 0!==b&&this.u&&S(this.u,this,a,b,this.u.ab)};
f.Mb=function(a,b){if(void 0!==b){this.u&&S(this.u,this,a,b,this.u.ab,!0);this.Na(540);this.b&&this.b.Na(542);var c=this.s,d=c.K,e=[],g=ya(d,this.v,this.v,this,this.Mb);if(0<=g){e.push(d[g][0]);e.push(d[g][1]);d.splice(g,1);for(var h=65536,k=0,g=0;g<d.length;g++)h>d[g][0]&&(h=d[g][0]),k<d[g][1]&&(k=d[g][1]);e.push(h);e.push(k)}4==e.length&&(c.da=e[2],c.ia=e[3])}};function Va(a){a.L=Array(a.g);for(var b=0;b<=a.g;b++)a.L[b]=-1}
function wa(a){var b=0;if(a.C.M)for(;b<a.g;){var c=a.a[a.K+b];if(a.L[b]!=c){var d=Math.floor(b/a.J);if(d>=a.V&&(d-=a.V,d<a.da)){var e=c*a.A;a.ia.drawImage(a.o,e%a.o.width,Math.floor(e/a.o.width)*a.B,a.A,a.B,b%a.J*a.R,d*a.U,a.R,a.U)}a.L[b]=c}b++}}
9712;this.b[98]=9216;this.b[66]=9456;this.b[110]=8960;this.b[78]=9200;this.b[94]=9200;this.b[109]=8704;this.b[77]=8944;this.b[93]=8944;this.b[44]=8448;this.b[60]=8688;this.b[113]=5888;this.b[81]=6128;this.b[97]=5632;this.b[65]=5872;this.b[122]=5376;this.b[90]=5616;this.b[32]=5120;this.b[47]=4864;this.b[63]=5104;this.b[59]=4608;this.b[43]=4848;this.b[112]=4352;this.b[80]=4592;this.b[64]=4592;this.b[this.L]=1536;this.b[this.$]=1280;this.b[240]=512;this.b[242]=256;this.b[244]=0;this.reset()}B(La);
f=La.prototype;f.reset=function(){this.Na(this.Ia);this.g=this.K;this.oa=0;this.o=[this.K,0,0,0,0,0,0,0];this.P=[];if(this.v)for(var a in this.v)isNaN(+a)||this.v[a]&&clearTimeout(this.v[a]);this.v=[];this.Aa=this.A=0;this.pa=-1;this.ja=this.o;this.qa=this.V=0;this.B=""};
f.T=function(a,b,c){if(void 0===this.H[b])switch(b){case "keyDown":return this.H[b]=c,c.onkeydown=function(a){return function(b){return Ma(a,b,!0)}}(this),!0;case "keyPress":return this.H[b]=c,c.onkeypress=function(a){return function(b){var c=!0;b=b||window.event;b=b.which||b.keyCode;a.B="";a.g&8?a.g&=-9:c=!Na(a,b);a.u&&G(a.u,a.u.za)&&a.u.message("keyPress("+p(b)+"): "+(c?"pass":"consume"));return c}}(this),!0;case "keyUp":return this.H[b]=c,c.onkeyup=function(a){return function(b){return Ma(a,b,
!1)}}(this),!0;case "break":return this.H[b]=c,c.onclick=function(a){return function(){a.J&&a.J.reset(!0)}}(this),!0;default:if(void 0!==this.D[b])return this.H[b]=c,c.onclick=function(a,b,c){return function(){a.s&&a.s.ca();return!Na(a,c)}}(this,b,this.D[b]),!0}return!1};f.ba=function(a,b,c,d){this.a=a;this.ra=b;this.ib=c-b+1;this.lb=this.ra+this.ib;d&&(this.s=d,N(d,b,c,this,this.W));this.X()};f.Na=function(a){this.O=a;this.R=255;600!=this.O&&(this.R=0,this.l("updated keyboard model: "+this.O))};
f.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.J=b,this.u=L(b,"debugger"))};f.X=function(){this.U=(this.kb=v("iOS"))||v("Android");this.u&&G(this.u,this.u.za)&&this.u.message("mobile keyboard support: "+(this.U?"true":"false")+" ("+window.navigator.userAgent+")");z.prototype.X.call(this)};function Oa(a,b){var c=b?100:250;a.s&&a.s.ta&&(c/=a.s.ta);return c}function Pa(a,b){!a.A||void 0!==b&&b==a.A||(a.u&&G(a.u,a.u.za)&&a.u.message("autoClear("+p(a.A)+")"),clearTimeout(a.v[a.A]),T(a,a.A,!1,4))}
function U(a,b,c){a.B=b;Qa(a,c||300)}function Qa(a,b){if(0<a.B.length){var c=a.B.charCodeAt(0);10==c&&(c=13);65<=c&&90>=c&&(c+=32);a.B=a.B.substr(1);Na(a,c)}0<a.B.length&&setTimeout(function(a){return function(){Qa(a,b)}}(a),b)}
function Ma(a,b,c){var d,e=!c;b=b.keyCode;c&&(a.Aa=b);16==b?(a.g&=-5,c&&(a.g|=4),b+=224,e=!1):18==b?(a.g&=-3,c&&(a.g|=2),b+=224,e=!1):b==a.L-224?(a.g&=-65,c&&(a.g|=64),b+=224,e=!1):20==b?(c=!c,a.g&=~a.K,c&&(a.g|=a.K),b+=224,e=!1):91==b?(a.g&=-9,c&&(a.g|=8),e=!1,d=!0):d=9==b?e=!1:b==a.ia||b==a.da?c?!Na(a,b):!1:!0;e&&(a.g&=-9,a.U||b!=a.Aa||Pa(a));void 0===d&&(d=!T(a,b,c,2));a.u&&G(a.u,a.u.za)&&a.u.message("key"+(c?"Down":"Up")+"("+p(b)+"): "+(d?"pass":"consume"));return d}
function Na(a,b){var c=!1;b==a.Z?a.J&&(a.J.reset(!0),c=!0):(a.U&&65<=b&&90>=b&&(b+=32),Pa(a,b),T(a,b,!0,0)&&(a.s.speed==a.s.eb?T(a,b,!1,1):(c=!1,a.v[b]&&(clearTimeout(a.v[b]),c=!0),c=Oa(a,c),a.v[a.A=b]=setTimeout(function(a){return function(){T(a,b,!1,3)}}(a),c),a.u&&G(a.u,a.u.za)&&a.u.message("keyPressSimulate("+p(b)+"): setTimeout()")),c=!0));a.u&&G(a.u,a.u.za)&&a.u.message("keyPressSimulate("+p(b)+"): "+(c?"true":"false"));return c}
function T(a,b,c,d){var e=!1;c||(a.v[b]=null,a.A==b&&(a.A=0));var g=0,h=a.b[b];void 0===h&&(1<=b&&26>=b&&(b+=64,g=a.L),h=a.b[b]);void 0!==h&&(b=h>>12,e=h>>8&15,g||(g=h&255),c?(a.o[b]|=1<<e,a.o[0]=g==a.L?a.o[0]|64:240==g?a.o[0]|4:242==g?a.o[0]|2:a.o[0]&-71):(a.o[b]&=~(1<<e),a.o[0]&=-71,a.o[0]|=a.g&70),c=0==d&&!a.P.length,a.P.push(a.o.slice()),Ra(a,c),e=!0);return e}f.S=function(){};f.W=function(a){this.oa=this.s.S(a)^this.R;this.V++;Ra(this,!1,a)};
function Ra(a,b,c){var d=Ga(a.s);b||(a.s.speed==a.s.eb?b=void 0!==c&&32<=a.V:(b=d-a.qa,b=0>b||8192<=b));b&&(b=a.P.shift(),void 0!==b&&(a.ja=b),a.V=0,a.qa=d);for(b=d=0;8>b;b++)a.oa&1<<b&&(d|=a.ja[b]);d^=a.R;if(void 0!==c)a.a[c]=d;else if(c=a.ra,d!=a.pa)for(;c<a.lb;c++)a.a[c]=d;a.pa=d}x(function(){for(var a=F(document,"c1pjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new La(d);E(d,c)}});
function Sa(a,b,c,d){z.call(this,"C1PVideo",a);this.ja=a.model;this.Z=a.charCols;this.$=a.charRows;this.pa=a.screenWidth;this.qa=a.screenHeight;this.A=a.charWidth;this.B=a.charHeight;Ta(this);this.D=b;this.ia=c;this.o=d}B(Sa);f=Sa.prototype;f.reset=function(a){this.Na(this.ja);if(this.a)for(var b=this.K;b<this.P;b++)this.a[b]=a?Math.floor(256*Math.random()):32};f.T=function(a,b,c){switch(b){case "refresh":return this.H[b]=c,c.onclick=function(a){return function(){Ua(a);va(a)}}(this),!0}return!1};
f.ba=function(a,b,c,d){this.a=a;this.K=b;this.oa=c-b+1;this.P=this.K+this.oa;d&&(this.s=d,wa(d,56832,56832,this,this.S),N(d,56832,56832,this,this.W));this.reset(!0)};function Ta(a,b,c,d,e){a.J=void 0!==b?b:a.Z;a.ra=void 0!==c?c:a.$;a.g=a.J*a.ra;a.P=a.K+a.g;a.V=void 0!==d?d:0;a.da=void 0!==e?e:c;a.R=Math.floor(a.pa/a.J);a.U=Math.floor(a.qa/a.da)}f.ca=function(){this.D.focus()};
f.Na=function(a){this.O=a;600==this.O?(Ta(this,this.Z,this.$,3,25),1024==this.g&&this.s&&(this.v=this.P+this.g-1,N(this.s,this.v,this.v,this,this.Mb))):(this.l("updated video model: "+this.O),Ta(this,64,32));Ua(this);va(this)};f.ha=function(a,b){if(a&&!this.C.M&&K(this)){if(this.C.M=!0,this.u=L(b,"debugger"),this.b=L(b,"keyboard"))this.b.T("canvas","keyDown",this.D),this.b.T("canvas","keyPress",this.D),this.b.T("canvas","keyUp",this.D)}else!a&&this.C.M&&(this.C.M=!1)};
f.X=function(){this.A||(this.A=Math.floor(this.o.width/16));this.B||(this.B=Math.floor(this.o.height/16));z.prototype.X.call(this)};f.S=function(a,b){var c=this.s.S(a);void 0!==b&&this.u&&S(this.u,this,a,b,this.u.ab);this.s.W(a,c&127|(Math.floor(Ga(this.s)/8333)&1?128:0))};f.W=function(a,b){void 0!==b&&this.u&&S(this.u,this,a,b,this.u.ab)};
f.Mb=function(a,b){if(void 0!==b){this.u&&S(this.u,this,a,b,this.u.ab,!0);this.Na(540);this.b&&this.b.Na(542);var c=this.s,d=c.K,e=[],g=xa(d,this.v,this.v,this,this.Mb);if(0<=g){e.push(d[g][0]);e.push(d[g][1]);d.splice(g,1);for(var h=65536,k=0,g=0;g<d.length;g++)h>d[g][0]&&(h=d[g][0]),k<d[g][1]&&(k=d[g][1]);e.push(h);e.push(k)}4==e.length&&(c.da=e[2],c.ia=e[3])}};function Ua(a){a.L=Array(a.g);for(var b=0;b<=a.g;b++)a.L[b]=-1}
function va(a){var b=0;if(a.C.M)for(;b<a.g;){var c=a.a[a.K+b];if(a.L[b]!=c){var d=Math.floor(b/a.J);if(d>=a.V&&(d-=a.V,d<a.da)){var e=c*a.A;a.ia.drawImage(a.o,e%a.o.width,Math.floor(e/a.o.width)*a.B,a.A,a.B,b%a.J*a.R,d*a.U,a.R,a.U)}a.L[b]=c}b++}}
x(function(){for(var a=F(document,"c1pjs","video"),b=0;b<a.length;b++){var c=a[b],d=D(c),e=document.createElement("canvas");if(void 0===e||!e.getContext){c.innerHTML="<br/>Missing &lt;canvas&gt; support. Please try a newer web browser.";break}e.setAttribute("class","c1pjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.setAttribute("contenteditable","true");e.setAttribute("autocapitalize","off");e.setAttribute("autocorrect","off");e.style.backgroundColor=d.screenColor;
e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(e.style.height=(c.clientWidth*d.screenHeight/d.screenWidth|0)+"px",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.appendChild(e);var g=new Image,h=e.getContext("2d"),e=new Ta(d,e,h,g);g.onload=function(a){return function(){a.X()}}(e,d.charSet);g.src=d.charSet;E(e,c)}});
function Wa(a){z.call(this,"C1PSerialPort",a);this.C.M=!1;this.O=a.demo;this.reset()}B(Wa);f=Wa.prototype;f.reset=function(){if(2!=this.g){this.v=this.B=0;var a=1;if(this.rb){var b=this.rb.match(/\d+/);null!==b&&(a=parseInt(b[0],10))}this.o='10 PRINT "HELLO OSI #'+a+'"\n';this.g=this.A=0}};f.start=function(){this.b&&this.O&&(U(this.b," C\n\n",3E3),setTimeout(function(a){return function(){a.g=1;U(a.b,"LOAD\n")}}(this),12E3));this.O=!1};
e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(e.style.height=(c.clientWidth*d.screenHeight/d.screenWidth|0)+"px",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.appendChild(e);var g=new Image,h=e.getContext("2d"),e=new Sa(d,e,h,g);g.onload=function(a){return function(){a.X()}}(e,d.charSet);g.src=d.charSet;E(e,c)}});
function Va(a){z.call(this,"C1PSerialPort",a);this.C.M=!1;this.O=a.demo;this.reset()}B(Va);f=Va.prototype;f.reset=function(){if(2!=this.g){this.v=this.B=0;var a=1;if(this.rb){var b=this.rb.match(/\d+/);null!==b&&(a=parseInt(b[0],10))}this.o='10 PRINT "HELLO OSI #'+a+'"\n';this.g=this.A=0}};f.start=function(){this.b&&this.O&&(U(this.b," C\n\n",3E3),setTimeout(function(a){return function(){a.g=1;U(a.b,"LOAD\n")}}(this),12E3));this.O=!1};
f.T=function(a,b,c){var d=this;switch(b){case "listSerial":return this.H[b]=c,!0;case "loadSerial":return this.H[b]=c,c.onclick=function(){d.H.listSerial&&t(d.H.listSerial.value,d,d.sb)},!0;case "mountSerial":return!v("Mobi")&&window&&"FileReader"in window?(this.H[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){var b=a.currentTarget[1].files[0],c=new FileReader;c.onload=function(){d.sb(b.name,c.result.toString(),
0)};c.readAsText(b);return!1}):c.parentNode.removeChild(c),!0}return!1};f.ba=function(a,b,c,d){this.a=a;this.D=b;this.L=c-b+1;this.K=this.D+this.L;if(this.s=d)xa(d,b,c,this,this.S),N(d,b,c,this,this.W);this.X()};f.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.J=b,this.b=L(b,"keyboard"),this.u=L(b,"debugger"))};
f.sb=function(a,b,c){b?(this.o=b,this.g=this.A=0,this.J&&this.b&&this.s.C.ma?(this.l("auto-loading "+a),this.s.ca(),"."!=this.o.charAt(0)?(this.g=1,U(this.b,"NEW\nLOAD\n")):(this.g=2,this.J.reset(!0),U(this.b,"ML"))):this.l(a+" ready to load")):this.l(a+" load error ("+c+")")};f.S=function(a,b){void 0!==b&&(a&1?Xa(this):this.o&&!this.A&&Xa(this))};f.W=function(a,b){void 0!==b&&this.u&&S(this.u,this,a,b,this.u.Rb,!0)};
function Xa(a){if(void 0!==a.o){a.B=0;a.v=0;if(a.A<a.o.length){var b=a.o.charCodeAt(a.A++);10==b&&(b=13);a.B=b;a.v=1}else 1==a.g&&a.b&&U(a.b," \nRUN\n"),a.g=0;for(b=a.D+0;b<a.K;b+=2)a.a[b]=a.v?1:0;for(b=a.D+1;b<a.K;b+=2)a.a[b]=a.v?a.B:0}}x(function(){for(var a=F(document,"c1pjs","serial"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Wa(d);E(d,c)}});function Ya(a){z.call(this,"C1PDiskController",a);this.C.M=!1;this.reset(!0)}B(Ya);f=Ya.prototype;
f.reset=function(a){Za(this);this.b=-1;a&&(this.g=[],this.g[0]={Se:0,tb:40,Sb:!0,Fa:20,na:0,Ea:-1,Va:[]})};
function Za(a){a.K={I:64,read:function(){},update:function(a){return function(c){void 0!==c&&(this.I=c);a.B.I&4||V(a,0,this)}}(a)};a.o={I:255,read:function(){this.update()},update:function(a){return function(c){void 0===c?c=a.o.I:$a(a,c,a.A.I);c=(c|190)&-2;if(0<=a.b&&a.g[a.b].Va.length){var d=a.g[a.b];d.Sb&&(c&=-33);d.na||(c&=-3);10>=--d.Fa&&(0<d.Fa?(c&=-129,ab(a)):(d.Fa=100,0<=a.b&&(a.g[a.b].Ea=0,bb(a))))}this.I=c;a.B.I&4&&V(a,0,this)}}(a)};a.B={I:0,read:function(){},update:function(a){return function(c){void 0!==
c&&(this.I=c&-193);V(a,1,this);a.o.update();a.K.update()}}(a)};a.L={I:255,read:function(){},update:function(a){return function(c){void 0!==c&&(this.I=c);a.D.I&4||V(a,2,this)}}(a)};a.A={I:255,read:function(){},update:function(a){return function(c){void 0===c?c=a.A.I:$a(a,a.o.I,c);if(0<=a.b&&a.b<a.g.length){var d=a.g[a.b];d.Va.length&&a.A.I&8&&!(c&8)&&(c&4?d.na--:d.na++,a.u&&G(a.u,a.u.Ha)&&a.u.message("stepping "+(c&4?"down":"up")+" to track "+d.na),d.na>=d.tb&&(d.na=d.tb),0>d.na&&(d.na=0),d.Fa=20,
a.o.update(a.o.I|128),ab(a))}this.I=c;a.D.I&4&&V(a,2,this)}}(a)};a.D={I:0,read:function(){},update:function(a){return function(c){void 0!==c&&(this.I=c&-193);V(a,3,this);a.A.update();a.L.update()}}(a)};a.P={I:0,read:function(){},update:function(a){return function(c){void 0!==c&&(3==(c&3)&&(a.v.I=14),this.I=c);a.v.update()}}(a)};a.v={I:14,read:function(){},update:function(a){return function(c){void 0===c&&(c=a.v.I);c&=-2;0<=a.b&&0<=a.g[a.b].Ea&&(c|=1);this.I=c;V(a,16,this)}}(a)};a.O={I:0,read:function(a){return function(){bb(a)}}(a),
0)};c.readAsText(b);return!1}):c.parentNode.removeChild(c),!0}return!1};f.ba=function(a,b,c,d){this.a=a;this.D=b;this.L=c-b+1;this.K=this.D+this.L;if(this.s=d)wa(d,b,c,this,this.S),N(d,b,c,this,this.W);this.X()};f.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.J=b,this.b=L(b,"keyboard"),this.u=L(b,"debugger"))};
f.sb=function(a,b,c){b?(this.o=b,this.g=this.A=0,this.J&&this.b&&this.s.C.ma?(this.l("auto-loading "+a),this.s.ca(),"."!=this.o.charAt(0)?(this.g=1,U(this.b,"NEW\nLOAD\n")):(this.g=2,this.J.reset(!0),U(this.b,"ML"))):this.l(a+" ready to load")):this.l(a+" load error ("+c+")")};f.S=function(a,b){void 0!==b&&(a&1?Wa(this):this.o&&!this.A&&Wa(this))};f.W=function(a,b){void 0!==b&&this.u&&S(this.u,this,a,b,this.u.Rb,!0)};
function Wa(a){if(void 0!==a.o){a.B=0;a.v=0;if(a.A<a.o.length){var b=a.o.charCodeAt(a.A++);10==b&&(b=13);a.B=b;a.v=1}else 1==a.g&&a.b&&U(a.b," \nRUN\n"),a.g=0;for(b=a.D+0;b<a.K;b+=2)a.a[b]=a.v?1:0;for(b=a.D+1;b<a.K;b+=2)a.a[b]=a.v?a.B:0}}x(function(){for(var a=F(document,"c1pjs","serial"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Va(d);E(d,c)}});function Xa(a){z.call(this,"C1PDiskController",a);this.C.M=!1;this.reset(!0)}B(Xa);f=Xa.prototype;
f.reset=function(a){Ya(this);this.b=-1;a&&(this.g=[],this.g[0]={Se:0,tb:40,Sb:!0,Fa:20,na:0,Ea:-1,Va:[]})};
function Ya(a){a.K={I:64,read:function(){},update:function(a){return function(c){void 0!==c&&(this.I=c);a.B.I&4||V(a,0,this)}}(a)};a.o={I:255,read:function(){this.update()},update:function(a){return function(c){void 0===c?c=a.o.I:Za(a,c,a.A.I);c=(c|190)&-2;if(0<=a.b&&a.g[a.b].Va.length){var d=a.g[a.b];d.Sb&&(c&=-33);d.na||(c&=-3);10>=--d.Fa&&(0<d.Fa?(c&=-129,$a(a)):(d.Fa=100,0<=a.b&&(a.g[a.b].Ea=0,ab(a))))}this.I=c;a.B.I&4&&V(a,0,this)}}(a)};a.B={I:0,read:function(){},update:function(a){return function(c){void 0!==
c&&(this.I=c&-193);V(a,1,this);a.o.update();a.K.update()}}(a)};a.L={I:255,read:function(){},update:function(a){return function(c){void 0!==c&&(this.I=c);a.D.I&4||V(a,2,this)}}(a)};a.A={I:255,read:function(){},update:function(a){return function(c){void 0===c?c=a.A.I:Za(a,a.o.I,c);if(0<=a.b&&a.b<a.g.length){var d=a.g[a.b];d.Va.length&&a.A.I&8&&!(c&8)&&(c&4?d.na--:d.na++,a.u&&G(a.u,a.u.Ha)&&a.u.message("stepping "+(c&4?"down":"up")+" to track "+d.na),d.na>=d.tb&&(d.na=d.tb),0>d.na&&(d.na=0),d.Fa=20,
a.o.update(a.o.I|128),$a(a))}this.I=c;a.D.I&4&&V(a,2,this)}}(a)};a.D={I:0,read:function(){},update:function(a){return function(c){void 0!==c&&(this.I=c&-193);V(a,3,this);a.A.update();a.L.update()}}(a)};a.P={I:0,read:function(){},update:function(a){return function(c){void 0!==c&&(3==(c&3)&&(a.v.I=14),this.I=c);a.v.update()}}(a)};a.v={I:14,read:function(){},update:function(a){return function(c){void 0===c&&(c=a.v.I);c&=-2;0<=a.b&&0<=a.g[a.b].Ea&&(c|=1);this.I=c;V(a,16,this)}}(a)};a.O={I:0,read:function(a){return function(){ab(a)}}(a),
update:function(a){return function(c){void 0!==c&&(this.I=c);V(a,17,this)}}(a)};a.R={I:0,read:function(){},update:function(){return function(){}}(a)}}
f.T=function(a,b,c){switch(b){case "listDisk":return this.H[b]=c,!0;case "loadDisk":return this.H[b]=c,c.onclick=function(a){return function(){if(a.H.listDisk){var b=a.H.listDisk.value,c=b;".json"!=b.substr(b.length-5)&&(c="http://"+window.location.host+"/api/v1/dump?disk="+b);var h=b,k=b.lastIndexOf("/");0<=k&&(h=b.substr(k+1));k=h.indexOf("&");0<k&&(h=h.substr(0,k));a.l("loading "+h+"...");t(c,a,a.Ub)}}}(this),!0}return!1};
f.ba=function(a,b,c,d){this.a=a;this.J=b;if(this.s=d)xa(d,b,c,this,this.S),N(d,b,c,this,this.W);this.X()};f.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.u=L(b,"debugger"))};
f.Ub=function(a,b,c){if(c)this.l("disk load error ("+c+")");else{c=[];this.l("mounting "+a+"...");try{if(c=eval("("+b+")"),c.length)if(c[0].length){var d=c[0];if(void 0===d[0].trackNum)this.l("data error: "+d[0]);else if(this.g[0]){for(b=0;b<d.length;b++){var e,g=d[b],h=g.sectors;if(void 0===(e=g.trackNum)||void 0===h)throw Error("track "+b+" missing data");e!=b&&u("track "+e+" out of order (expected "+b+")");c=[];var k,l,m;if(e){cb(c,g,"trackSig");db(c,g);W(c,g,"trackType");for(var r=0;r<h.length;r++){k=
h[r];l=k.sectorData;W(c,k,"sectorSig");W(c,k,"sectorNum");W(c,k,"sectorPages");for(m=0;m<l.length;m++)c.push(l[m]);cb(c,k,"sectorEndSig")}}else for(k=h[0],l=k.sectorData,W(c,g,"trackLoad",2),W(c,k,"sectorPages"),m=0;m<l.length;m++)c.push(l[m]);d[e].Lb=c;this.u&&G(this.u,this.u.Ha)&&this.u.message("track "+e+": "+c.length+" bytes")}this.g[0].Va=d;this.l("mount of "+a+" complete")}else this.l("no available drives")}else this.l("no tracks: "+a);else this.l("no data: "+a)}catch(H){this.l("disk data error: "+
H.message)}}};function db(a,b){var c=b.trackNum;if(void 0===c)throw Error("missing bcd value: trackNum");a.push(Math.floor(c/10)<<4|c%10)}function W(a,b,c,d){b=b[c];if(void 0===b)throw Error("missing binary value: "+c);2==d&&a.push(b>>8&255);a.push(b&255)}function cb(a,b,c){b=b[c];if(void 0===b)throw Error("missing signature: "+c);for(c=0;c<b.length;c++)a.push(b.charCodeAt(c))}
function eb(a,b,c){b&=63;16>b?b&=3:32>b&&(b&=17);switch(b){case 0:a=a.B.I&4?a.o:a.K;break;case 1:a=a.B;break;case 2:a=a.D.I&4?a.A:a.L;break;case 3:a=a.D;break;case 16:a=c?a.P:a.v;break;case 17:a=a.O;break;default:a=a.R}return a}f.S=function(a,b){if(void 0!==b){var c=eb(this,a-this.J,!1);this.u&&S(this.u,this,a,b,this.u.Ha,!1,c.Kb);c.read()}};
f.W=function(a,b){if(void 0!==b){var c=this.s.S(a),d=eb(this,a-this.J,!0);if(this.u&&G(this.u,this.u.Ha|this.u.pb)&&(S(this.u,this,a,b,this.u.Ha,!0,d.Kb),d.Pb))for(var e=128,g=d.I^c;g&&e;)g&e&&this.u.message(" changed "+d.Kb+"."+d.Pb[e]+" to "+(c&e?"1":"0")),e>>=1;d.update(c)}};function $a(a,b,c){var d=-1;void 0!==b&&void 0!==c&&(d=0,c&32||(d|=2),a.o.I&64||(d|=1));a.b!=d&&(a.b=d,a.v.update())}function ab(a){0<=a.b&&(a.g[a.b].Ea=-1,a.O.update(255),a.v.update())}
function bb(a){var b=null;if(0<=a.b){var b=a.g[a.b],c=b.Va[b.na];void 0!==c&&(0<=b.Ea&&b.Ea<c.Lb.length?(b.Fa=100,b=c.Lb[b.Ea++],a.O.update(b),a.v.update()):(b.Fa=10,ab(a)))}}function V(a,b,c){a.s.W(b+a.J,c.I)}x(function(){for(var a=F(document,"c1pjs","disk"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Ya(d);E(d,c)}});
function fb(a){z.call(this,"C1PDebugger",a);this.u=this;this.L=-1;this.ua=0;this.nb=null;this.Ya=!1;this.ga=0;this.sa=[];this.wa=[];this.ya=[];this.La=0;this.xa=[];this.B=[];this.pb=1;this.za=16;this.ab=32;this.Ha=64;this.Rb=128;this.la=this.Z=0;this.Ua={port:1,kbd:16,video:32,disk:64,serial:128};this.Qa=28;this.bb=56;this.Ka="ADC AND ASL BCC BCS BEQ BIT BMI BNE BPL BRK BVC BVS CLC CLD CLI CLV CMP CPX CPY DEC DEX DEY EOR INC INX INY JMP JSR LDA LDX LDY LSR NOP ORA PHA PHP PLA PLP ROL ROR RTI RTS SBC SEC SED SEI STA STX STY TAX TAY TSX TXA TXS TYA SIM .DB".split(" ");
this.V=["HLT","MSG"];gb(this,!0);this.fa=[[10],[34,1,this.D],[this.bb,1],[],[],[34,1,this.b],[2,1,this.b],[],[36],[34,1,this.v],[2,0,this.P],[],[],[34,2,this.N],[2,2,this.N],[],[9,1,this.ea],[34,1,this.J],[],[],[],[34,1,this.g],[2,1,this.g],[],[13],[34,2,this.A],[],[],[],[34,2,this.o],[2,2,this.o],[],[this.Qa,2,this.Pa],[1,1,this.D],[],[],[6,1,this.b],[1,1,this.b],[39,1,this.b],[],[38],[1,1,this.v],[39,0,this.P],[],[6,2,this.N],[1,2,this.N],[39,2,this.N],[],[7,1,this.ea],[1,1,this.J],[],[],[],[1,
f.ba=function(a,b,c,d){this.a=a;this.J=b;if(this.s=d)wa(d,b,c,this,this.S),N(d,b,c,this,this.W);this.X()};f.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.u=L(b,"debugger"))};
f.Ub=function(a,b,c){if(c)this.l("disk load error ("+c+")");else{c=[];this.l("mounting "+a+"...");try{if(c=eval("("+b+")"),c.length)if(c[0].length){var d=c[0];if(void 0===d[0].trackNum)this.l("data error: "+d[0]);else if(this.g[0]){for(b=0;b<d.length;b++){var e,g=d[b],h=g.sectors;if(void 0===(e=g.trackNum)||void 0===h)throw Error("track "+b+" missing data");e!=b&&u("track "+e+" out of order (expected "+b+")");c=[];var k,l,m;if(e){bb(c,g,"trackSig");cb(c,g);W(c,g,"trackType");for(var r=0;r<h.length;r++){k=
h[r];l=k.sectorData;W(c,k,"sectorSig");W(c,k,"sectorNum");W(c,k,"sectorPages");for(m=0;m<l.length;m++)c.push(l[m]);bb(c,k,"sectorEndSig")}}else for(k=h[0],l=k.sectorData,W(c,g,"trackLoad",2),W(c,k,"sectorPages"),m=0;m<l.length;m++)c.push(l[m]);d[e].Lb=c;this.u&&G(this.u,this.u.Ha)&&this.u.message("track "+e+": "+c.length+" bytes")}this.g[0].Va=d;this.l("mount of "+a+" complete")}else this.l("no available drives")}else this.l("no tracks: "+a);else this.l("no data: "+a)}catch(H){this.l("disk data error: "+
H.message)}}};function cb(a,b){var c=b.trackNum;if(void 0===c)throw Error("missing bcd value: trackNum");a.push(Math.floor(c/10)<<4|c%10)}function W(a,b,c,d){b=b[c];if(void 0===b)throw Error("missing binary value: "+c);2==d&&a.push(b>>8&255);a.push(b&255)}function bb(a,b,c){b=b[c];if(void 0===b)throw Error("missing signature: "+c);for(c=0;c<b.length;c++)a.push(b.charCodeAt(c))}
function db(a,b,c){b&=63;16>b?b&=3:32>b&&(b&=17);switch(b){case 0:a=a.B.I&4?a.o:a.K;break;case 1:a=a.B;break;case 2:a=a.D.I&4?a.A:a.L;break;case 3:a=a.D;break;case 16:a=c?a.P:a.v;break;case 17:a=a.O;break;default:a=a.R}return a}f.S=function(a,b){if(void 0!==b){var c=db(this,a-this.J,!1);this.u&&S(this.u,this,a,b,this.u.Ha,!1,c.Kb);c.read()}};
f.W=function(a,b){if(void 0!==b){var c=this.s.S(a),d=db(this,a-this.J,!0);if(this.u&&G(this.u,this.u.Ha|this.u.pb)&&(S(this.u,this,a,b,this.u.Ha,!0,d.Kb),d.Pb))for(var e=128,g=d.I^c;g&&e;)g&e&&this.u.message(" changed "+d.Kb+"."+d.Pb[e]+" to "+(c&e?"1":"0")),e>>=1;d.update(c)}};function Za(a,b,c){var d=-1;void 0!==b&&void 0!==c&&(d=0,c&32||(d|=2),a.o.I&64||(d|=1));a.b!=d&&(a.b=d,a.v.update())}function $a(a){0<=a.b&&(a.g[a.b].Ea=-1,a.O.update(255),a.v.update())}
function ab(a){var b=null;if(0<=a.b){var b=a.g[a.b],c=b.Va[b.na];void 0!==c&&(0<=b.Ea&&b.Ea<c.Lb.length?(b.Fa=100,b=c.Lb[b.Ea++],a.O.update(b),a.v.update()):(b.Fa=10,$a(a)))}}function V(a,b,c){a.s.W(b+a.J,c.I)}x(function(){for(var a=F(document,"c1pjs","disk"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Xa(d);E(d,c)}});
function eb(a){z.call(this,"C1PDebugger",a);this.u=this;this.L=-1;this.ua=0;this.nb=null;this.Ya=!1;this.ga=0;this.sa=[];this.wa=[];this.ya=[];this.La=0;this.xa=[];this.B=[];this.pb=1;this.za=16;this.ab=32;this.Ha=64;this.Rb=128;this.la=this.Z=0;this.Ua={port:1,kbd:16,video:32,disk:64,serial:128};this.Qa=28;this.bb=56;this.Ka="ADC AND ASL BCC BCS BEQ BIT BMI BNE BPL BRK BVC BVS CLC CLD CLI CLV CMP CPX CPY DEC DEX DEY EOR INC INX INY JMP JSR LDA LDX LDY LSR NOP ORA PHA PHP PLA PLP ROL ROR RTI RTS SBC SEC SED SEI STA STX STY TAX TAY TSX TXA TXS TYA SIM .DB".split(" ");
this.V=["HLT","MSG"];fb(this,!0);this.fa=[[10],[34,1,this.D],[this.bb,1],[],[],[34,1,this.b],[2,1,this.b],[],[36],[34,1,this.v],[2,0,this.P],[],[],[34,2,this.N],[2,2,this.N],[],[9,1,this.ea],[34,1,this.J],[],[],[],[34,1,this.g],[2,1,this.g],[],[13],[34,2,this.A],[],[],[],[34,2,this.o],[2,2,this.o],[],[this.Qa,2,this.Pa],[1,1,this.D],[],[],[6,1,this.b],[1,1,this.b],[39,1,this.b],[],[38],[1,1,this.v],[39,0,this.P],[],[6,2,this.N],[1,2,this.N],[39,2,this.N],[],[7,1,this.ea],[1,1,this.J],[],[],[],[1,
1,this.g],[39,1,this.g],[],[44],[1,2,this.A],[],[],[],[1,2,this.o],[39,2,this.o],[],[41],[23,1,this.D],[],[],[],[23,1,this.b],[32,1,this.b],[],[35],[23,1,this.v],[32,0,this.P],[],[27,2,this.Pa],[23,2,this.N],[32,2,this.N],[],[11,1,this.ea],[23,1,this.J],[],[],[],[23,1,this.g],[32,1,this.g],[],[15],[23,2,this.A],[],[],[],[23,2,this.o],[32,2,this.o],[],[42],[0,1,this.D],[],[],[],[0,1,this.b],[40,1,this.b],[],[37],[0,1,this.v],[40,0,this.P],[],[27,2,this.ob],[0,2,this.N],[40,2,this.N],[],[12,1,this.ea],
[0,1,this.J],[],[],[],[0,1,this.g],[40,1,this.g],[],[46],[0,2,this.A],[],[],[],[0,2,this.o],[40,2,this.o],[],[],[47,1,this.D],[],[],[49,1,this.b],[47,1,this.b],[48,1,this.b],[],[22],[],[53],[],[49,2,this.N],[47,2,this.N],[48,2,this.N],[],[3,1,this.ea],[47,1,this.J],[],[],[49,1,this.g],[47,1,this.g],[48,1,this.U],[],[55],[47,2,this.A],[54],[],[],[47,2,this.o],[],[],[31,1,this.v],[29,1,this.D],[30,1,this.v],[],[31,1,this.b],[29,1,this.b],[30,1,this.b],[],[51],[29,1,this.v],[50],[],[31,2,this.N],[29,
2,this.N],[30,2,this.N],[],[4,1,this.ea],[29,1,this.J],[],[],[31,1,this.g],[29,1,this.g],[30,1,this.U],[],[16],[29,2,this.A],[52],[],[31,2,this.o],[29,2,this.o],[30,2,this.A],[],[19,1,this.v],[17,1,this.D],[],[],[19,1,this.b],[17,1,this.b],[20,1,this.b],[],[26],[17,1,this.v],[21],[],[19,2,this.N],[17,2,this.N],[20,2,this.N],[],[8,1,this.ea],[17,1,this.J],[],[],[],[17,1,this.g],[20,1,this.g],[],[14],[17,2,this.A],[],[],[],[17,2,this.o],[20,2,this.o],[],[18,1,this.v],[43,1,this.D],[],[],[18,1,this.b],
[43,1,this.b],[24,1,this.b],[],[25],[43,1,this.v],[33],[],[18,2,this.N],[43,2,this.N],[24,2,this.N],[],[5,1,this.ea],[43,1,this.J],[],[],[],[43,1,this.g],[24,1,this.g],[],[45],[43,2,this.A],[],[],[],[43,2,this.o],[24,2,this.o],[]]}B(fb);f=fb.prototype;
f.T=function(a,b,c){var d=this;switch(b){case "debugInput":return this.R=this.H[b]=c,this.R.focus(),c.onkeypress=function(a,c){return function(d){13==d.keyCode&&(b=c.value,c.value="",hb(a,b))}}(this,c),!0;case "debugEnter":return this.H[b]=c,ea(c,function(){return d.R?(b=d.R.value,hb(d,b),!0):!1}),!0;case "step":return this.H[b]=c,ea(c,function(a){var b=!1;J(d,!0)||(I(d,!0),b=d.step(a?1:0),I(d,!1));return b}),!0}return!1};
[43,1,this.b],[24,1,this.b],[],[25],[43,1,this.v],[33],[],[18,2,this.N],[43,2,this.N],[24,2,this.N],[],[5,1,this.ea],[43,1,this.J],[],[],[],[43,1,this.g],[24,1,this.g],[],[45],[43,2,this.A],[],[],[],[43,2,this.o],[24,2,this.o],[]]}B(eb);f=eb.prototype;
f.T=function(a,b,c){var d=this;switch(b){case "debugInput":return this.R=this.H[b]=c,this.R.focus(),c.onkeypress=function(a,c){return function(d){13==d.keyCode&&(b=c.value,c.value="",gb(a,b))}}(this,c),!0;case "debugEnter":return this.H[b]=c,ea(c,function(){return d.R?(b=d.R.value,gb(d,b),!0):!1}),!0;case "step":return this.H[b]=c,ea(c,function(a){var b=!1;J(d,!0)||(I(d,!0),b=d.step(a?1:0),I(d,!1));return b}),!0}return!1};
f.ba=function(a,b,c){this.a=a;this.O=b;this.qa=c-b+1;this.Ga=this.O+this.qa;this.X()};f.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.s=L(b,"cpu"))};f.ca=function(){this.R.focus()};
function gb(a,b){a.P=0;a.v=1;a.o=2;a.A=3;a.Pa=4;a.ob=5;a.g=6;a.U=7;a.D=8;a.J=9;a.N=10;a.b=11;a.ea=a.Pa;var c="",d,e;if(b)for(a.ka="A #$nn $nnnn,X $nnnn,Y $nnnn ($nnnn) $nn,X $nn,Y ($nn,X) ($nn),Y $nnnn $nn".split(" "),d=0;d<a.ka.length;d++)e=a.ka[d],c+="("+e.replace(/\(/g,"\\(").replace(/\)/g,"\\)").replace(/nnnn/g,"[0-9A-F][0-9A-F][0-9A-F][0-9A-F]?").replace(/nn/g,"[0-9A-F][0-9A-F]?").replace(/\$/g,"\\$")+"|)";else for(a.ka="A nn [nnnn+X] [nnnn+Y] nnnn [nnnn] [nn+X] [nn+Y] [[nn+X]] [[nn]+Y] [nnnn] [nn]".split(" "),
d=0;d<a.ka.length;d++)e=a.ka[d],c+="("+e.replace(/\[/g,"\\[").replace(/]/g,"\\]").replace(/nnnn/g,"[0-9A-F][0-9A-F][0-9A-F][0-9A-F]?").replace(/nn/g,"[0-9A-F][0-9A-F]?").replace(/\+/g,"\\+")+"|)";a.Qe=new RegExp(c);a.Qb=[27,a.Qa,9,7,11,12,3,4,8,5]}f.aa=function(){this.s.aa()};function S(a,b,c,d,e,g,h){(a.la&e)==e&&(e=a.s.S(c),a.message(b.id+"."+(g?"setByte":"getByte")+"("+q(c)+")"+(void 0!==d?" @"+q(d):"")+": "+(h?h+"=":"")+p(e)))}f.message=function(a){this.l(a);Ga(this.s)};f.Tb=function(){this.l("Type ? for list of debugger commands\n")};
f.va=function(){if(!ib(this))return!1;this.s.va();return!0};f.step=function(a){if(!ib(this))return!1;var b;try{b=this.s.step(a)}catch(c){b=void 0,ra(this.s,c.stack||c.message)}void 0!==b&&this.L++;this.s.update(!0);this.update(!0);return b};f.update=function(a){this.ua=this.s.f;a||this.Da?jb(this):kb(this)};function ib(a){a.s&&K(a.s)&&!J(a.s)?(a=a.s,a.C.Ca?(a.l(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}
f.reset=function(){var a;this.xa.length||(this.xa=Array(1E3));for(a=0;a<this.xa.length;a++)this.xa[a]=-1;this.B.length||(this.B=Array(256));for(a=0;a<this.B.length;a++)this.B[a]=[a,0];this.L&&this.update();this.L=0};f.start=function(){this.Da||this.l("running")};f.stop=function(a,b){if(!this.Da&&(this.l("stopped"),b)){var c=ca();this.l(c-a+"ms ("+b+" cycles)")}this.update();this.ca();this.Da||(this.L=0);lb(this,this.s.f)};function mb(a,b){return a+(b<<24>>24)}
f.S=function(a){var b;a>=this.O&&a<this.Ga&&(za(this.s,a),b=this.a[this.O+a],b&=255);return b};f.W=function(a,b){a<this.O||a>=this.Ga?this.l("invalid address: "+q(a)):(this.a[this.O+a]=b&255,Aa(this.s,a),this.s.update())};function nb(a,b){X(a.sa,b,void 0)||a.sa.push(b);return!0}function X(a,b,c){for(var d=!1,e=0;e<a.length;e++)if(a[e]==b){c&&a.splice(e,1);d=!0;break}return d}function ob(a,b){void 0!==b&&(lb(a,a.K),nb(a,b)&&(a.K=b))}
function lb(a,b){void 0!==a.K&&b==a.K&&X(a.sa,a.K,!0)&&(a.K=void 0);a.Da=!1}function Fa(a,b,c,d){for(var e=!1,g=0;g<c.length;g++)if(c[g]==b){b!=a.K&&a.l("breakpoint hit: "+q(b)+" ("+d+")");e=!0;break}return e}
function pb(a,b,c){var d=n(b,4),e=a.S(b++),g=a.fa[e],h=void 0===e?0:e,k=[],l=void 0===g[1]?0:g[1];do{d+=" "+n(h,2);if(!l--)break;h=a.S(b++);if(void 0===h)break;k.push(h)}while(1);void 0===g[0]&&(g=[57,1,a.v],k.push(e));var d=(d+" ").substr(0,15),d=d+a.Ka[g[0]],m=null;if(void 0!==g[2]){l=g[2];m=a.ka[l];if(1==g[1]&&l==a.ea)m=m.replace(/nnnn/,n(mb(b,h=k.pop()),4));else for(;k.length;)m=m.replace(/nn/,n(h=k.pop(),2));l==a.v&&1==g[1]&&32<=h&&128>h&&(m+=" ;'"+String.fromCharCode(h)+"'")}if(e==a.s.bb&&
function fb(a,b){a.P=0;a.v=1;a.o=2;a.A=3;a.Pa=4;a.ob=5;a.g=6;a.U=7;a.D=8;a.J=9;a.N=10;a.b=11;a.ea=a.Pa;var c="",d,e;if(b)for(a.ka="A #$nn $nnnn,X $nnnn,Y $nnnn ($nnnn) $nn,X $nn,Y ($nn,X) ($nn),Y $nnnn $nn".split(" "),d=0;d<a.ka.length;d++)e=a.ka[d],c+="("+e.replace(/\(/g,"\\(").replace(/\)/g,"\\)").replace(/nnnn/g,"[0-9A-F][0-9A-F][0-9A-F][0-9A-F]?").replace(/nn/g,"[0-9A-F][0-9A-F]?").replace(/\$/g,"\\$")+"|)";else for(a.ka="A nn [nnnn+X] [nnnn+Y] nnnn [nnnn] [nn+X] [nn+Y] [[nn+X]] [[nn]+Y] [nnnn] [nn]".split(" "),
d=0;d<a.ka.length;d++)e=a.ka[d],c+="("+e.replace(/\[/g,"\\[").replace(/]/g,"\\]").replace(/nnnn/g,"[0-9A-F][0-9A-F][0-9A-F][0-9A-F]?").replace(/nn/g,"[0-9A-F][0-9A-F]?").replace(/\+/g,"\\+")+"|)";a.Qe=new RegExp(c);a.Qb=[27,a.Qa,9,7,11,12,3,4,8,5]}f.aa=function(){this.s.aa()};function S(a,b,c,d,e,g,h){(a.la&e)==e&&(e=a.s.S(c),a.message(b.id+"."+(g?"setByte":"getByte")+"("+q(c)+")"+(void 0!==d?" @"+q(d):"")+": "+(h?h+"=":"")+p(e)))}f.message=function(a){this.l(a);Fa(this.s)};f.Tb=function(){this.l("Type ? for list of debugger commands\n")};
f.va=function(){if(!hb(this))return!1;this.s.va();return!0};f.step=function(a){if(!hb(this))return!1;var b;try{b=this.s.step(a)}catch(c){b=void 0,qa(this.s,c.stack||c.message)}void 0!==b&&this.L++;this.s.update(!0);this.update(!0);return b};f.update=function(a){this.ua=this.s.f;a||this.Da?ib(this):jb(this)};function hb(a){a.s&&K(a.s)&&!J(a.s)?(a=a.s,a.C.Ca?(a.l(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}
f.reset=function(){var a;this.xa.length||(this.xa=Array(1E3));for(a=0;a<this.xa.length;a++)this.xa[a]=-1;this.B.length||(this.B=Array(256));for(a=0;a<this.B.length;a++)this.B[a]=[a,0];this.L&&this.update();this.L=0};f.start=function(){this.Da||this.l("running")};f.stop=function(a,b){if(!this.Da&&(this.l("stopped"),b)){var c=ca();this.l(c-a+"ms ("+b+" cycles)")}this.update();this.ca();this.Da||(this.L=0);kb(this,this.s.f)};function lb(a,b){return a+(b<<24>>24)}
f.S=function(a){var b;a>=this.O&&a<this.Ga&&(ya(this.s,a),b=this.a[this.O+a],b&=255);return b};f.W=function(a,b){a<this.O||a>=this.Ga?this.l("invalid address: "+q(a)):(this.a[this.O+a]=b&255,za(this.s,a),this.s.update())};function mb(a,b){X(a.sa,b,void 0)||a.sa.push(b);return!0}function X(a,b,c){for(var d=!1,e=0;e<a.length;e++)if(a[e]==b){c&&a.splice(e,1);d=!0;break}return d}function nb(a,b){void 0!==b&&(kb(a,a.K),mb(a,b)&&(a.K=b))}
function kb(a,b){void 0!==a.K&&b==a.K&&X(a.sa,a.K,!0)&&(a.K=void 0);a.Da=!1}function Ea(a,b,c,d){for(var e=!1,g=0;g<c.length;g++)if(c[g]==b){b!=a.K&&a.l("breakpoint hit: "+q(b)+" ("+d+")");e=!0;break}return e}
function ob(a,b,c){var d=n(b,4),e=a.S(b++),g=a.fa[e],h=void 0===e?0:e,k=[],l=void 0===g[1]?0:g[1];do{d+=" "+n(h,2);if(!l--)break;h=a.S(b++);if(void 0===h)break;k.push(h)}while(1);void 0===g[0]&&(g=[57,1,a.v],k.push(e));var d=(d+" ").substr(0,15),d=d+a.Ka[g[0]],m=null;if(void 0!==g[2]){l=g[2];m=a.ka[l];if(1==g[1]&&l==a.ea)m=m.replace(/nnnn/,n(lb(b,h=k.pop()),4));else for(;k.length;)m=m.replace(/nn/,n(h=k.pop(),2));l==a.v&&1==g[1]&&32<=h&&128>h&&(m+=" ;'"+String.fromCharCode(h)+"'")}if(e==a.s.bb&&
(h<a.V.length&&(m=a.V[h]),h==a.s.Nb)){l=0;for(m='"';h=a.S(b++);)16>l?m+=String.fromCharCode(h):16==l&&(m+="\u2026"),l++;m+='"'}m&&(d+=" "+m);c&&(d=(d+" ").substr(0,30),d+=";"+c.toString());a.$=b;return d}
function Y(a,b){var c=a.ua;if(void 0!==b){var d=16;"$"==b.charAt(0)?b=b.substr(1):"0x"==b.substr(0,2)?b=b.substr(2):"."==b.charAt(b.length-1)&&(d=10,b=b.substr(0,b.length-1));c=parseInt(b,d);isNaN(c)&&(a.l("invalid base-"+d+" address: "+b),c=void 0)}void 0!==c&&(c<a.O||c>=a.Ga)&&(a.l("address out of range: "+n(c)),c=void 0);return c}
function qb(a,b){if("?"==b)a.l("\nfrequency commands:"),a.l("clear\tclear all frequency counts");else{var c=0,d;if(a.B)if("clear"==b){for(d=0;d<a.B.length;d++)a.B[d]=[d,0];a.l("frequency data cleared");c++}else if(void 0!==b)a.l("unknown frequency command: "+b),c++;else{var e=a.B.slice();e.sort(function(a,b){return b[1]-a[1]});for(d=0;d<e.length;d++){var g=e[d][0],h=e[d][1];h&&(a.l(a.Ka[a.fa[g][0]]+" ("+p(g)+"): "+h+" times"),c++)}}c||a.l("no frequency data available")}}
function jb(a,b,c,d){var e=Y(a,b);if(void 0!==e){void 0===d&&(d=1);b=a.Ga;if(void 0!==c){b=Y(a,c);if(void 0===b||b<e)return;if(256<b-e){a.l("range too large");return}b++;d=-1}for(e!=a.ua&&a.l();d--&&e<b;)c=pb(a,e,J(a,!1)||a.Da?a.L:0),a.l(c),a.ua=e=a.$}}
function kb(a,b){if(b&&"?"==b[1])a.l("\nregister commands:"),a.l("r to display all"),a.l("r [target=value] to modify"),a.l("supported targets:"),a.l("A,X,Y,S,PC and flags C,Z,D,V,N");else{var c=!0;if(void 0!==b&&1<b.length){var c=!1,d=b[1],e=null,g=d.indexOf("=");if(0<g)e=d.substr(g+1),d=d.substr(0,g);else if(2<b.length)e=b[2];else{a.l("missing value for "+b[1]);return}g=parseInt(e,16);if(isNaN(g)){a.l("invalid value: "+e);return}switch(d.toUpperCase()){case "A":a.s.h=g&255;break;case "X":a.s.w=g&
255;break;case "Y":a.s.F=g&255;break;case "C":a.s.c=g?256:0;break;case "Z":a.s.j=g?0:1;break;case "D":g?Ia(a.s):Ja(a.s);break;case "V":g?(d=a.s,d.v=0,d.A=128):(d=a.s,d.v=0,d.A=0);break;case "N":a.s.i=g?128:0;break;case "S":if(256!=(g&-256)){a.l("invalid stack pointer: "+e);return}a.s.G=g;break;case "PC":c=!0;a.s.f=g&65535;a.ua=a.s.f;break;default:a.l("unknown register: "+d);return}a.s.update()}a.l("A="+n(a.s.h,2)+" X="+n(a.s.w,2)+" Y="+n(a.s.F,2)+" P="+n(Da(a.s),2)+" S="+n(a.s.G,4)+" PC="+n(a.s.f,
4));c&&jb(a,n(a.ua=a.s.f,4))}}function rb(a,b){var c=void 0===b?1:parseInt(b,10),d=1==c?0:1;da(c,function(a){return function(){return I(a,!0)&&a.step(d)}}(a),function(a){return function(){I(a,!1)}}(a))}
function hb(a,b){b.length||(a.Ya?(a.l("ended assemble @"+n(a.ga,4)),a.ua=a.ga,a.Ya=!1):a.nb&&(b=a.nb));if(K(a)&&!J(a,!0)&&0<b.length){a.Ya?b="a "+n(a.ga,4)+" "+b:1<b.length&&1!=b.indexOf(" ")&&(b=b.charAt(0).toLowerCase()+" "+b.substr(1));var c=b.split(" ");a.nb=c[0];switch(c[0].toLowerCase()){case "a":var d=Y(a,c[1]);if(void 0!==d)if(a.ga=d,void 0===c[2])a.l("begin assemble @"+q(a.ga)),a.Ya=!0,a.s.update();else{var e,g=c[2],h=c[3],c=a.ga,d=[];if(void 0!==g){var k,g=g.toUpperCase();"?"==g.charAt(g.length-
function pb(a,b){if("?"==b)a.l("\nfrequency commands:"),a.l("clear\tclear all frequency counts");else{var c=0,d;if(a.B)if("clear"==b){for(d=0;d<a.B.length;d++)a.B[d]=[d,0];a.l("frequency data cleared");c++}else if(void 0!==b)a.l("unknown frequency command: "+b),c++;else{var e=a.B.slice();e.sort(function(a,b){return b[1]-a[1]});for(d=0;d<e.length;d++){var g=e[d][0],h=e[d][1];h&&(a.l(a.Ka[a.fa[g][0]]+" ("+p(g)+"): "+h+" times"),c++)}}c||a.l("no frequency data available")}}
function ib(a,b,c,d){var e=Y(a,b);if(void 0!==e){void 0===d&&(d=1);b=a.Ga;if(void 0!==c){b=Y(a,c);if(void 0===b||b<e)return;if(256<b-e){a.l("range too large");return}b++;d=-1}for(e!=a.ua&&a.l();d--&&e<b;)c=ob(a,e,J(a,!1)||a.Da?a.L:0),a.l(c),a.ua=e=a.$}}
function jb(a,b){if(b&&"?"==b[1])a.l("\nregister commands:"),a.l("r to display all"),a.l("r [target=value] to modify"),a.l("supported targets:"),a.l("A,X,Y,S,PC and flags C,Z,D,V,N");else{var c=!0;if(void 0!==b&&1<b.length){var c=!1,d=b[1],e=null,g=d.indexOf("=");if(0<g)e=d.substr(g+1),d=d.substr(0,g);else if(2<b.length)e=b[2];else{a.l("missing value for "+b[1]);return}g=parseInt(e,16);if(isNaN(g)){a.l("invalid value: "+e);return}switch(d.toUpperCase()){case "A":a.s.h=g&255;break;case "X":a.s.w=g&
255;break;case "Y":a.s.F=g&255;break;case "C":a.s.c=g?256:0;break;case "Z":a.s.j=g?0:1;break;case "D":g?Ha(a.s):Ia(a.s);break;case "V":g?(d=a.s,d.v=0,d.A=128):(d=a.s,d.v=0,d.A=0);break;case "N":a.s.i=g?128:0;break;case "S":if(256!=(g&-256)){a.l("invalid stack pointer: "+e);return}a.s.G=g;break;case "PC":c=!0;a.s.f=g&65535;a.ua=a.s.f;break;default:a.l("unknown register: "+d);return}a.s.update()}a.l("A="+n(a.s.h,2)+" X="+n(a.s.w,2)+" Y="+n(a.s.F,2)+" P="+n(Ca(a.s),2)+" S="+n(a.s.G,4)+" PC="+n(a.s.f,
4));c&&ib(a,n(a.ua=a.s.f,4))}}function qb(a,b){var c=void 0===b?1:parseInt(b,10),d=1==c?0:1;da(c,function(a){return function(){return I(a,!0)&&a.step(d)}}(a),function(a){return function(){I(a,!1)}}(a))}
function gb(a,b){b.length||(a.Ya?(a.l("ended assemble @"+n(a.ga,4)),a.ua=a.ga,a.Ya=!1):a.nb&&(b=a.nb));if(K(a)&&!J(a,!0)&&0<b.length){a.Ya?b="a "+n(a.ga,4)+" "+b:1<b.length&&1!=b.indexOf(" ")&&(b=b.charAt(0).toLowerCase()+" "+b.substr(1));var c=b.split(" ");a.nb=c[0];switch(c[0].toLowerCase()){case "a":var d=Y(a,c[1]);if(void 0!==d)if(a.ga=d,void 0===c[2])a.l("begin assemble @"+q(a.ga)),a.Ya=!0,a.s.update();else{var e,g=c[2],h=c[3],c=a.ga,d=[];if(void 0!==g){var k,g=g.toUpperCase();"?"==g.charAt(g.length-
1)&&(h="?",g=g.substr(0,g.length-1));for(k=0;k<a.Ka.length&&g!=a.Ka[k];k++);k==a.Ka.length&&(a.l("unknown operation: "+g),k=-1);var l="",m;if(0<=k&&void 0!==h)if(l=h.toUpperCase(),"?"==l){for(h=m=0;h<a.fa.length;h++)a.fa[h][0]===k&&(m||a.l("supported opcodes:"),a.l(" "+n(h,2)+": "+g+(void 0!==a.fa[h][2]?" "+a.ka[a.fa[h][2]]:"")),m++);k=-1}else if(m=l.match(a.Qe),null!==m&&m[0]==l){for(h=1;h<m.length;h++)if(m[h]==l)if(void 0===e)e=h-1;else{a.l("too many operand matches (both "+a.ka[e]+" and "+
a.ka[h-1]+")");k=-1;break}e==a.Pa&&0>a.Qb.indexOf(k)&&(e=a.N);e==a.ob&&27!=k&&(e=a.N)}else a.l("unknown operand: "+l),k=-1;if(0<=k){m=-1;for(h=0;h<a.fa.length;h++)if(a.fa[h][0]===k&&a.fa[h][2]===e)if(0>m)m=h;else{a.l("too many instruction matches (both "+p(m)+" and "+p(h)+")");m=-2;break}if(0<=m){if(d.push(m),void 0!==e)if(g=a.fa[m][1],l=l.match(/[0-9A-F]+/),null!==l)for(l=parseInt(l[0],16),1==g&&e==a.ea&&(l-=c+2,-128>l||127<l)&&(a.l("branch out of range ("+l+")"),d=[],g=0),h=0;h<g;h++)d.push(l&255),
l>>>=8;else g&&a.l("instruction missing "+g+" bytes")}else a.l("unknown instruction: "+g+" "+l+"")}}e=d;if(e.length){for(c=0;c<e.length;c++)a.W(a.ga+c,e[c]);a.l(pb(a,a.ga));a.ga+=e.length}}break;case "b":e=c[1];c=c[2];if(void 0===e||"?"==e)a.l("\nbreakpoint commands:"),a.l("bp [a]\tset exec breakpoint at [a]"),a.l("br [a]\tset read breakpoint at [a]"),a.l("bw [a]\tset write breakpoint at [a]"),a.l("bc [a]\tclear breakpoint at [a]"),a.l("bl\tlist all breakpoints");else if(void 0===c&&1<e.length&&(c=
e.substr(1),e=e.substr(0,1)),"l"==e){e=0;d=a.sa;for(c=0;c<d.length;c++)a.l("breakpoint enabled: "+q(d[c])+" (exec)"),e++;d=a.wa;for(c=0;c<d.length;c++)a.l("breakpoint enabled: "+q(d[c])+" (read)"),e++;d=a.ya;for(c=0;c<d.length;c++)a.l("breakpoint enabled: "+q(d[c])+" (write)"),e++;e||a.l("no breakpoints")}else void 0===c?a.l("missing breakpoint address"):"c"==e&&"*"==c?(a.sa=[],a.wa=[],a.ya=[],a.l("all breakpoints cleared")):(c=Y(a,c),void 0!==c&&("p"==e?nb(a,c)?a.l("breakpoint enabled: "+q(c)+" (exec)"):
l>>>=8;else g&&a.l("instruction missing "+g+" bytes")}else a.l("unknown instruction: "+g+" "+l+"")}}e=d;if(e.length){for(c=0;c<e.length;c++)a.W(a.ga+c,e[c]);a.l(ob(a,a.ga));a.ga+=e.length}}break;case "b":e=c[1];c=c[2];if(void 0===e||"?"==e)a.l("\nbreakpoint commands:"),a.l("bp [a]\tset exec breakpoint at [a]"),a.l("br [a]\tset read breakpoint at [a]"),a.l("bw [a]\tset write breakpoint at [a]"),a.l("bc [a]\tclear breakpoint at [a]"),a.l("bl\tlist all breakpoints");else if(void 0===c&&1<e.length&&(c=
e.substr(1),e=e.substr(0,1)),"l"==e){e=0;d=a.sa;for(c=0;c<d.length;c++)a.l("breakpoint enabled: "+q(d[c])+" (exec)"),e++;d=a.wa;for(c=0;c<d.length;c++)a.l("breakpoint enabled: "+q(d[c])+" (read)"),e++;d=a.ya;for(c=0;c<d.length;c++)a.l("breakpoint enabled: "+q(d[c])+" (write)"),e++;e||a.l("no breakpoints")}else void 0===c?a.l("missing breakpoint address"):"c"==e&&"*"==c?(a.sa=[],a.wa=[],a.ya=[],a.l("all breakpoints cleared")):(c=Y(a,c),void 0!==c&&("p"==e?mb(a,c)?a.l("breakpoint enabled: "+q(c)+" (exec)"):
a.l("breakpoint not set: "+q(c)):"c"==e?X(a.sa,c,!0)?a.l("breakpoint cleared: "+q(c)+" (exec)"):X(a.wa,c,!0)?a.l("breakpoint cleared: "+q(c)+" (read)"):X(a.ya,c,!0)?a.l("breakpoint cleared: "+q(c)+" (write)"):a.l("breakpoint missing: "+q(c)):"r"==e?(X(a.wa,c,void 0)||a.wa.push(c),a.l("breakpoint enabled: "+q(c)+" (read)")):"w"==e?(X(a.ya,c,void 0)||a.ya.push(c),a.l("breakpoint enabled: "+q(c)+" (write)")):a.l("unknown breakpoint command: "+e)));break;case "d":e=c[1];d=c[2];if("?"==e)a.l("\ndump commands:"),
a.l("d [a] [#] dump # lines of memory");else if(e=Y(a,e),void 0!==e){c=0;void 0!==d&&("l"==d.charAt(0)&&(d=d.substr(1)),c=parseInt(d,10));c||(c=1);for(d=0;d<c;d++){l=g="";h=e;for(k=0;8>k&&e<a.Ga;k++)m=a.S(e),void 0===m&&(m=0),g+=n(m,2)+" ",l+=32<=m&&128>m?String.fromCharCode(m):".",e++;a.l(n(h,4)+" "+g+l)}a.ua=e}break;case "e":e=c[1];if(void 0===e)a.l("missing address");else if(e=Y(a,e),void 0!==e)for(d=2;d<c.length;d++)g=parseInt(c[d],16),a.W(e++,g);break;case "f":qb(a,c[1]);break;case "g":e=
c[1];void 0!==e&&ob(a,Y(a,e));a.va()||a.s.ca();break;case "h":a.aa();break;case "o":if(void 0===c[1]||"?"==c[1])a.l("\noption commands:"),a.l("max\trun at maximum speed"),a.l("fast\trun faster (up to "+a.s.Ma+"Mhz)"),a.l("slow\trun at normal speed (1Mhz)"),a.l("classic\tuse classic operand syntax"),a.l("modern\tuse modern operand syntax"),a.l("msg\tenable message categories");else switch(e=c[1],e){case "slow":M(a.s,a.s.Ra);break;case "fast":M(a.s,a.s.Ob);break;case "max":M(a.s,a.s.eb);break;case "classic":gb(a,
!0);a.l("classic syntax enabled");break;case "modern":gb(a,!1);a.l("modern syntax enabled");break;case "msg":e=0;void 0!==c[2]&&("all"==c[2]?e=255:void 0!==a.Ua[c[2]]&&(e=a.Ua[c[2]]),e&&("on"==c[3]?a.la|=e:"off"==c[3]&&(a.la&=~e)));for(d in a.Ua)if(void 0===c[2]||"all"==c[2]||c[2]==d)e=a.Ua[d],a.l(d+" messages: "+(a.la&e?"on":"off"));break;default:a.l("unknown option: "+e)}break;case "p":l=c[1];e=10;c=a.La;d=a.xa;if(void 0!==d){g=void 0===l?a.Vb:parseInt(l,10);void 0===g&&(g=10);g>d.length&&(a.l("note: only "+
d.length+" available"),g=d.length);void 0!==l&&(a.mb=0,a.l(g+" instructions earlier:"));l=a.mb?a.mb:1;c-=g;for(0>c&&(c=d.length-1);e&&c!=a.La;){h=d[c];if(0>h)break;a.l(pb(a,h,l++));++c==d.length&&(c=0);e--;g--}a.Vb=g;a.mb=l}10==e&&a.l("no history available");break;case "r":kb(a,c);break;case "s":a.S(a.s.f)==a.s.Qa?(ob(a,a.s.f+3),a.Da=!0,a.va()||a.s.ca()):rb(a);break;case "t":rb(a,c[1]);break;case "u":jb(a,c[1],c[2],8);break;case "?":case "help":a.l("\ncommands:\n?\thelp\na [#]\tassemble\nb [#]\tbreakpoint\nd [#]\tdump memory\ne [#]\tedit memory\nf\tdump frequencies\ng [#]\trun to [#]\nh\thalt\no\toptions\np [#]\tdump history\nr\tdump/edit registers\ns\tstep over instruction\nt [#]\tstep instruction(s)\nu [#]\tunassemble");
a.l("note: frequency and history commands operate only when breakpoints are set");break;default:a.l("unknown command: "+b)}}}x(function(){for(var a=F(document,"c1pjs","debugger"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new fb(d);E(d,c)}});function Z(a,b){z.call(this,"C1PComputer",a);this.Y=b}B(Z);Z.prototype.reset=function(a){var b=null,c;for(c in this.Y)for(var d=0;d<this.Y[c].length;d++){var e=this.Y[c][d];e&&e.reset&&(e.reset(),"cpu"==c&&(b=e))}b&&(b.update(),a&&b.va())};
a.l("d [a] [#] dump # lines of memory");else if(e=Y(a,e),void 0!==e){c=0;void 0!==d&&("l"==d.charAt(0)&&(d=d.substr(1)),c=parseInt(d,10));c||(c=1);for(d=0;d<c;d++){l=g="";h=e;for(k=0;8>k&&e<a.Ga;k++)m=a.S(e),void 0===m&&(m=0),g+=n(m,2)+" ",l+=32<=m&&128>m?String.fromCharCode(m):".",e++;a.l(n(h,4)+" "+g+l)}a.ua=e}break;case "e":e=c[1];if(void 0===e)a.l("missing address");else if(e=Y(a,e),void 0!==e)for(d=2;d<c.length;d++)g=parseInt(c[d],16),a.W(e++,g);break;case "f":pb(a,c[1]);break;case "g":e=
c[1];void 0!==e&&nb(a,Y(a,e));a.va()||a.s.ca();break;case "h":a.aa();break;case "o":if(void 0===c[1]||"?"==c[1])a.l("\noption commands:"),a.l("max\trun at maximum speed"),a.l("fast\trun faster (up to "+a.s.Ma+"Mhz)"),a.l("slow\trun at normal speed (1Mhz)"),a.l("classic\tuse classic operand syntax"),a.l("modern\tuse modern operand syntax"),a.l("msg\tenable message categories");else switch(e=c[1],e){case "slow":M(a.s,a.s.Ra);break;case "fast":M(a.s,a.s.Ob);break;case "max":M(a.s,a.s.eb);break;case "classic":fb(a,
!0);a.l("classic syntax enabled");break;case "modern":fb(a,!1);a.l("modern syntax enabled");break;case "msg":e=0;void 0!==c[2]&&("all"==c[2]?e=255:void 0!==a.Ua[c[2]]&&(e=a.Ua[c[2]]),e&&("on"==c[3]?a.la|=e:"off"==c[3]&&(a.la&=~e)));for(d in a.Ua)if(void 0===c[2]||"all"==c[2]||c[2]==d)e=a.Ua[d],a.l(d+" messages: "+(a.la&e?"on":"off"));break;default:a.l("unknown option: "+e)}break;case "p":l=c[1];e=10;c=a.La;d=a.xa;if(void 0!==d){g=void 0===l?a.Vb:parseInt(l,10);void 0===g&&(g=10);g>d.length&&(a.l("note: only "+
d.length+" available"),g=d.length);void 0!==l&&(a.mb=0,a.l(g+" instructions earlier:"));l=a.mb?a.mb:1;c-=g;for(0>c&&(c=d.length-1);e&&c!=a.La;){h=d[c];if(0>h)break;a.l(ob(a,h,l++));++c==d.length&&(c=0);e--;g--}a.Vb=g;a.mb=l}10==e&&a.l("no history available");break;case "r":jb(a,c);break;case "s":a.S(a.s.f)==a.s.Qa?(nb(a,a.s.f+3),a.Da=!0,a.va()||a.s.ca()):qb(a);break;case "t":qb(a,c[1]);break;case "u":ib(a,c[1],c[2],8);break;case "?":case "help":a.l("\ncommands:\n?\thelp\na [#]\tassemble\nb [#]\tbreakpoint\nd [#]\tdump memory\ne [#]\tedit memory\nf\tdump frequencies\ng [#]\trun to [#]\nh\thalt\no\toptions\np [#]\tdump history\nr\tdump/edit registers\ns\tstep over instruction\nt [#]\tstep instruction(s)\nu [#]\tunassemble");
a.l("note: frequency and history commands operate only when breakpoints are set");break;default:a.l("unknown command: "+b)}}}x(function(){for(var a=F(document,"c1pjs","debugger"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new eb(d);E(d,c)}});function Z(a,b){z.call(this,"C1PComputer",a);this.Y=b}B(Z);Z.prototype.reset=function(a){var b=null,c;for(c in this.Y)for(var d=0;d<this.Y[c].length;d++){var e=this.Y[c][d];e&&e.reset&&(e.reset(),"cpu"==c&&(b=e))}b&&(b.update(),a&&b.va())};
Z.prototype.start=function(){for(var a in this.Y)if("cpu"!=a)for(var b=0;b<this.Y[a].length;b++){var c=this.Y[a][b];c&&c.start&&c.start()}};Z.prototype.stop=function(a,b){for(var c in this.Y)if("cpu"!=c)for(var d=0;d<this.Y[c].length;d++){var e=this.Y[c][d];e&&e.stop&&e.stop(a,b)}};Z.prototype.T=function(a,b,c){switch(b){case "reset":return this.H[b]=c,c.onclick=function(a){return function(){a.reset()}}(this),!0}return!1};function L(a,b){return a.Y[b]?a.Y[b][0]:null}
function sb(a){var b=null,c;for(c in a.Y)for(var d=0;d<a.Y[c].length;d++){var e=a.Y[c][d];if(e){if(!K(e)){K(e,function(a){return function(){sb(a)}}(a));return}"cpu"==c?b=e:e.ha&&e.ha(!0,a)}}a.X();a.l("C1Pjs v1.20.9\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>");b&&b.ha(!0,a)}
x(function(){for(var a=F(document,"c1pjs","computer"),b=0;b<a.length;b++){for(var c=a[b],d=D(c),e,g={},h,k=0,l=0,m=0;m<d.modules.length;m++){var r=d.modules[m];if(!m){if("cpu"!=r.type)break;k=r.start;l=r.end;h=Array(l+1-k);for(e=k;e<h.length;e++)h[e]=0}if(e=qa(r.refID,d.id)){var H=r.type;void 0===g[H]&&(g[H]=[]);g[H].push(e);e.ba&&void 0!==r.start&&e.ba(h,r.start,r.end,g.cpu[0])}else{u('no component for <module refid="'+r.refID+'">');return}}if(void 0===h){u('<module type="cpu"> definition must appear first in the <computer> specification');
break}if(e=qa("debugger",d.id))g["debugger"]=[e],e.ba&&e.ba(h,k,l,g.cpu[0]);k=new Z(d,g);if(l=qa("panel",d.id))if(g.panel=[l],l.gb){e=d.id;d=void 0;g=[];e&&(e=0<(d=e.indexOf("."))?e.substr(0,d+1):"");for(d=0;d<A.length;d++)m=A[d],e&&m.id.indexOf(e)||g.push(m);d=g;for(g=0;g<d.length;g++)e=d[g],e!=l&&(e.$a=l.$a,e.l=l.l,e.gb=l.gb)}E(k,c);sb(k)}});var tb=0;function ub(a,b,c,d,e,g){e("Loading "+a+"...");t(a,null,function(h,k,l){l?(k||(k="unable to load "+a+" ("+l+")"),g(k,null)):vb(k,a,b,c,d,e,g)})}
function vb(a,b,c,d,e,g,h){function k(a,g){if(g)h(g,null);else{if(c){var k=b;k&&0>k.indexOf("/")&&(k=window.location.pathname+k);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+k+'"}';a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(k?' url="'+k+'"':""))}k=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(k=new window.ActiveXObject("Microsoft.XMLDOM"),
k.async=!1,k.loadXML(a)):k=(new window.DOMParser).parseFromString(a,"text/xml")}catch(H){k=null,a=H.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,k)}}a?e?wb(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
function wb(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");t(e,null,function(g,h,k){if(k||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(g=d[3])if(k=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=k[0],m,r=/( [a-z]+=)(['"])(.*?)\2/g;m=r.exec(g);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);k[0]!=l&&(h=h.replace(k[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],h);wb(a,b,c)}})}else c(a,null)}
function xb(a,b,c){function d(a){if(void 0===h){var b=g&&F(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ba(a))}function e(a){d("Error: "+a);k&&(--tb||y(!0));k=!1}var g,h,k=!0;tb++;C[a]={};try{if(g=document.getElementById(a)){c||(c="/versions/c1pjs/1.20.9/components.xsl");var l=function(h,k){k?(pa(a,"xml",h),ub(c,null,null,!1,d,function(c,h){if(h)if(pa(a,"xsl",c),d("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=k.transformNode(h);l?(g.outerHTML=l,--tb||y(!0)):e("transformNodeToObject failed")}else document.implementation&&
document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(h),(l=l.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--tb||y(!0)):e("invalid machine element: "+a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser");else e(c)})):e(h)};"<"!=b.charAt(0)?ub(b,a,void 0,!0,d,l):vb(b,null,a,void 0,!1,d,l)}else e("missing machine element: "+a)}catch(m){e(m.message)}return k}window.embedC1P=function(a,b,c){y(!1);return xb(a,b,c)};
window.enableEvents=y;window.sendEvent=ja;})();
function rb(a){var b=null,c;for(c in a.Y)for(var d=0;d<a.Y[c].length;d++){var e=a.Y[c][d];if(e){if(!K(e)){K(e,function(a){return function(){rb(a)}}(a));return}"cpu"==c?b=e:e.ha&&e.ha(!0,a)}}a.X();a.l("C1Pjs v1.20.9\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>");b&&b.ha(!0,a)}
x(function(){for(var a=F(document,"c1pjs","computer"),b=0;b<a.length;b++){for(var c=a[b],d=D(c),e,g={},h,k=0,l=0,m=0;m<d.modules.length;m++){var r=d.modules[m];if(!m){if("cpu"!=r.type)break;k=r.start;l=r.end;h=Array(l+1-k);for(e=k;e<h.length;e++)h[e]=0}if(e=pa(r.refID,d.id)){var H=r.type;void 0===g[H]&&(g[H]=[]);g[H].push(e);e.ba&&void 0!==r.start&&e.ba(h,r.start,r.end,g.cpu[0])}else{u('no component for <module refid="'+r.refID+'">');return}}if(void 0===h){u('<module type="cpu"> definition must appear first in the <computer> specification');
break}if(e=pa("debugger",d.id))g["debugger"]=[e],e.ba&&e.ba(h,k,l,g.cpu[0]);k=new Z(d,g);if(l=pa("panel",d.id))if(g.panel=[l],l.gb){e=d.id;d=void 0;g=[];e&&(e=0<(d=e.indexOf("."))?e.substr(0,d+1):"");for(d=0;d<A.length;d++)m=A[d],e&&m.id.indexOf(e)||g.push(m);d=g;for(g=0;g<d.length;g++)e=d[g],e!=l&&(e.$a=l.$a,e.l=l.l,e.gb=l.gb)}E(k,c);rb(k)}});var sb=0;function tb(a,b,c,d,e,g){e("Loading "+a+"...");t(a,null,function(h,k,l){l?(k||(k="unable to load "+a+" ("+l+")"),g(k,null)):ub(k,a,b,c,d,e,g)})}
function ub(a,b,c,d,e,g,h){function k(a,g){if(g)h(g,null);else{if(c){var k=b;k&&0>k.indexOf("/")&&(k=window.location.pathname+k);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+k+'"}';a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(k?' url="'+k+'"':""))}k=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(k=new window.ActiveXObject("Microsoft.XMLDOM"),
k.async=!1,k.loadXML(a)):k=(new window.DOMParser).parseFromString(a,"text/xml")}catch(H){k=null,a=H.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,k)}}a?e?vb(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
function vb(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");t(e,null,function(g,h,k){if(k||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(g=d[3])if(k=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=k[0],m,r=/( [a-z]+=)(['"])(.*?)\2/g;m=r.exec(g);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);k[0]!=l&&(h=h.replace(k[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],h);vb(a,b,c)}})}else c(a,null)}
function wb(a,b,c){function d(a){if(void 0===h){var b=g&&F(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ba(a))}function e(a){d("Error: "+a);k&&(--sb||y(!0));k=!1}var g,h,k=!0;sb++;C[a]={};try{if(g=document.getElementById(a)){c||(c="/versions/c1pjs/1.20.9/components.xsl");var l=function(h,k){k?(C[a]&&(C[a][b]=h),tb(c,null,null,!1,d,function(h,l){if(l)if(C[a]&&(C[a][c]=h),d("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var m=k.transformNode(l);m?(g.outerHTML=m,--sb||y(!0)):
e("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(m=new XSLTProcessor,m.importStylesheet(l),(m=m.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--sb||y(!0)):e("invalid machine element: "+a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser");else e(h)})):e(h)};"<"!=b.charAt(0)?tb(b,a,void 0,!0,d,l):ub(b,null,a,void 0,!1,d,l)}else e("missing machine element: "+a)}catch(m){e(m.message)}return k}
window.embedC1P=function(a,b,c){y(!1);return wb(a,b,c)};window.enableEvents=y;window.sendEvent=ja;})();

View file

@ -5,15 +5,15 @@ function ia(a){return"0x"+l(a,4)}function ja(a,b){var c=a,d=a.lastIndexOf("/");0
function pa(a,b,c){return c?(" "+a).slice(-b):(a+" ").slice(0,b)}function qa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}function ra(a,b,c){var d=0,e=a.length,f=0;for(void 0===c&&(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var g=d+e>>1,k;k=c(b,a[g]);0<k?d=g+1:(e=g,f=!k)}return f?d:~d}var sa=Date.now||function(){return+new Date};
function ta(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}var ua=[31,28,31,30,31,30,31,31,30,31,30,31];function wa(a,b){var c=0,d=1,e;for(e in a){if(d>=arguments.length)break;var f=a[e],g=arguments[d++],c=c&~f.qh|g<<f.shift&f.qh}return c}function xa(a,b){return(b&a.qh)>>a.shift}
function ya(a,b){var c;if(Array.prototype.indexOf)return a.indexOf(b,c);c=c||0;0>c&&(c+=a.length);0>c&&(c=0);for(var d=a.length;c<d;c++)if(c in a&&a[c]===b)return c;return-1}
function za(a,b,c,d,e,f){b=!!b;var g=0,k=null,q=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");b&&(q.onreadystatechange=function(){4===q.readyState&&(k=q.responseText,200==q.status||!q.status&&k.length&&"file:"==(window?window.location.protocol:"file:")||(g=q.status||-1),e&&(d?e.call(d,a,k,g,f):e(a,k,g,f)))});if(c){var r="",x;for(x in c)c.hasOwnProperty(x)&&(r&&(r+="&"),r+=x+"="+encodeURIComponent(c[x]));r=r.replace(/%20/g,"+");q.open("POST",a,b);q.setRequestHeader("Content-type",
"application/x-www-form-urlencoded");q.send(r)}else q.open("GET",a,b),q.send();c=[];b||(k=q.responseText,200!=q.status&&(g=q.status||-1),e&&(d?e.call(d,a,k,g,f):e(a,k,g,f)),c=[g,k]);return c}function Aa(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Ba(a){window&&window.alert(a)}function Ca(a){var b=!1;window&&(b=window.confirm(a));return b}var Ea=null;
function za(a,b,c,d,e,f){var g=0,k=null;if(resources&&(k=resources[a]))return e&&(d?e.call(d,a,k,g,f):e(a,k,g,f)),[g,k];var q=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");b&&(q.onreadystatechange=function(){4===q.readyState&&(k=q.responseText,200==q.status||!q.status&&k.length&&"file:"==(window?window.location.protocol:"file:")||(g=q.status||-1),e&&(d?e.call(d,a,k,g,f):e(a,k,g,f)))});if(c){var r="",x;for(x in c)c.hasOwnProperty(x)&&(r&&(r+="&"),r+=
x+"="+encodeURIComponent(c[x]));r=r.replace(/%20/g,"+");q.open("POST",a,!!b);q.setRequestHeader("Content-type","application/x-www-form-urlencoded");q.send(r)}else q.open("GET",a,!!b),q.send();c=[];b||(k=q.responseText,200!=q.status&&(g=q.status||-1),e&&(d?e.call(d,a,k,g,f):e(a,k,g,f)),c=[g,k]);return c}function Aa(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Ba(a){window&&window.alert(a)}function Ca(a){var b=!1;window&&(b=window.confirm(a));return b}var Ea=null;
function Fa(){if(null==Ea){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}Ea=a}return Ea}function Ga(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}function Ha(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}
function Ia(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}function Ka(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function Ma(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}var Na={init:[],show:[],exit:[]},Pa=!1,Qa=!0;function Ra(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Sa(a){Na.init.push(a)}
function Ta(a){if(Qa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){Ba("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.")}}function Ua(a){!Qa&&a?(Qa=!0,Pa&&Wa("init")):Qa=a}function Wa(a){Na[a]&&Ta(Na[a])}Ra("onload",function(){Pa=!0;Ta(Na.init)});Ra("onpageshow",function(){Ta(Na.show)});Ra(Ia("Opera")||Ia("iOS")?"onunload":"onbeforeunload",function(){Ta(Na.exit)});
function Xa(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.uk=b.comment;this.xk=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.se=this.id.substr(0,b),this.be=this.id.substr(b+1)):this.be=this.id;this[a]=c;this.ra={$e:!1,cd:!1,fh:!1,hc:!1,wd:!1};this.sg=null;this.ra.wd=!1;this.xa={};this.ma=null;this.wc=d||0;Ya.push(this)}var Za=void 0,$a={};
if(window){Za||(Za=window.location.search.substr(1));for(var bb,cb=/\+/g,db=/([^&=]+)=?([^&]*)/g;bb=db.exec(Za);)$a[decodeURIComponent(bb[1].replace(cb," "))]=decodeURIComponent(bb[2].replace(cb," "))}function fb(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
function gb(a,b){b||(b=Xa);a.prototype=fb(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var Ya=[],hb={};function ib(a,b,c){hb[a]&&(hb[a][b]||(hb[a][b]=[]),hb[a][b].push(c))}function jb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<Ya.length;b++){var d=Ya[b];a&&d.id.indexOf(a)||c.push(d)}return c}function kb(a,b){if(void 0!==a){var c;b&&0<(c=b.indexOf("."))&&(a=b.substr(0,c+1)+a);for(c=0;c<Ya.length;c++)if(Ya[c].id===a)return Ya[c]}return null}
function gb(a,b){b||(b=Xa);a.prototype=fb(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var Ya=[],hb={};function ib(a,b,c){hb[a]&&(hb[a][b]=c)}function jb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<Ya.length;b++){var d=Ya[b];a&&d.id.indexOf(a)||c.push(d)}return c}function kb(a,b){if(void 0!==a){var c;b&&0<(c=b.indexOf("."))&&(a=b.substr(0,c+1)+a);for(c=0;c<Ya.length;c++)if(Ya[c].id===a)return Ya[c]}return null}
function lb(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<Ya.length;d++)if(c)c==Ya[d]&&(c=null);else if(!(a!=Ya[d].type||b&&Ya[d].id.indexOf(b)))return Ya[d]}return null}function mb(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){Ba(c.message+" ("+a+")")}return b}function ob(a,b,c){var d;b&&(void 0===d&&(d="Panel"),(d=lb(d,a.id))&&(b=d.xa[b])&&a.Ub(null,c,b))}document&&!document.ELEMENT_NODE&&(document.ELEMENT_NODE=1);
function pb(a,b){for(var c=qb(b.parentNode,"pcjs-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(g.nodeType===document.ELEMENT_NODE){var k=g.getAttribute("class");if(k)for(var q=k.split(" "),r=0;r<q.length;r++)switch(k=q[r],k){case "pcjs-binding":(k=mb(g))&&k.binding&&a.Ub(k.type,k.binding,g,k.value),r=q.length}}}}
function qb(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}
@ -87,7 +87,7 @@ h.km=function(a){var b=this.M;a<<=3;var c=b.Pc+a|0;if(7<=(b.Od-c|0))return this.
h.Pk=function(a,b){return(a>>>0)+b>this.fc?this.Fa+a|0:this.pg()};h.pg=function(){p.call(this.M,13,0);return-1};function od(a,b,c,d,e){a.ga=b;a.Fa=d;a.Za=e;a.fc=(e>>>0)+1;a.Bb=c;a.type=c&7936;a.ext=c>>16&192;a.dc=(b&4?a.M.Bc.Fa:a.M.Ec)+(b&65528)|0;4>a.id&&ld(a,!0)}function pd(a,b,c){var d=a.M,e=d.va(b+2),f=d.va(b)|(e&255)<<16,d=d.va(b+4);a.ga=c;a.Fa=f;a.Za=d;a.fc=(d>>>0)+1;a.Bb=e;a.type=e&7936;a.ext=0;a.dc=b;4>a.id&&ld(a,!0)}
function nd(a,b,c,d){var e=a.M;if(!d&&c===a.A.ga)return a.ga=c,a.Fa=a.A.Fa,a.Za=a.A.Za,a.fc=(a.A.Za>>>0)+1,a.Bb=a.A.Bb,a.type=a.A.type,a.ext=a.A.ext,a.dc=a.A.dc,a.A.ga=-1,ld(a,!0,!0,!1),a.Fa;a.A.ga=-1;var f=e.va(b+0),g=e.va(b+4),k=g&7936,q=e.va(b+2)|(g&255)<<16,r=e.va(b+6),x=c&65528;if(80386<=e.na){var B=f,q=q|(r&65280)<<16,f=f|(r&15)<<16;r&128&&(f=f<<12|4095)}switch(a.id){case 1:var y=a.R;a.bf=!1;if(y&&1==c&&a.C.length){var J=a.C[a.Uf-1];if(J&&!J())return-1}var U=c&3,F=(g&24576)>>13,J=-1,O,V;x||
b>=e.Ec&&b<e.Bd&&(k=0);if(6144<=k){if(J=0,U>a.$b&&(J=-1,!1===y||F==a.$b||k&1024&&F<=a.$b))J=qd(e),rd(e,qd(e),!0),t(e,J),a.bf=!0,J=0}else{if(256==k||2304==k)return sd(a,c,y)?a.Fa:-1;if(1024==k)J=2,V=0,U<a.$b&&(U=a.$b);else if(3072==k)J=4,V=0,U<a.$b&&(U=a.$b);else if(1536==k)J=2,V=148224;else if(3584==k)J=4,V=148224;else if(1792==k)J=2,V=147712;else if(3840==k)J=4,V=147712;else if(1280==k)return sd(a,q&65535,y)?a.Fa:-1}0<J&&!(g&32768)&&(J=0);if(0<J&&(x=a.$b,O=b==e.Pc+c,U<=F&&(!O||0<=e.lb||x<=F))){b=
q&65535;k&2048&&(f=B|r<<16);r=k=0;c=b&3;if(c<x){if(-1===a.tg(b,!0))return-1;r=e.Ya.Fa;e.Ya.type&2048?(c=(c<<3)+4,d=4):(c=(c<<2)+2,d=2);k=e.va(r+c+d);if(!k)return p.call(e,10,k),-1;if(-1===e.Aa.tg(k,!0))return-1;r=2==d?e.va(r+c):e.ta(r+c)}c=e.ea;e.ea&=~V;c&131072&&xd(e,!0,!1);if(-1===a.tg(b))return-1;yd(e,J);a.Uf=f;if(a.$b<x){if(!0!==y)return-1;J=u(e);f=0;for(g&=31;g--;)a.P[f++]=zd(e,e.Aa,J),J+=2;y=e.Aa.ga;g=u(e);rd(e,k,!0);t(e,r);c&131072&&(yd(e,4),Ad(e,e.Tb.ga,4,2),e.Tb.load(0),Ad(e,e.Sb.ga,4,2),
q&65535;k&2048&&(f=B|r<<16);r=k=0;c=b&3;if(c<x){if(-1===a.tg(b,!0))return-1;r=e.Ya.Fa;e.Ya.type&2048?(c=(c<<3)+4,d=4):(c=(c<<2)+2,d=2);k=e.va(r+c+d);if(!k)return p.call(e,10,k),-1;if(-1===e.Aa.tg(k,!0))return-1;r=2==d?e.va(r+c):e.ta(r+c)}c=e.ea;e.ea&=~V;c&131072&&td(e,!0,!1);if(-1===a.tg(b))return-1;yd(e,J);a.Uf=f;if(a.$b<x){if(!0!==y)return-1;J=u(e);f=0;for(g&=31;g--;)a.P[f++]=zd(e,e.Aa,J),J+=2;y=e.Aa.ga;g=u(e);rd(e,k,!0);t(e,r);c&131072&&(yd(e,4),Ad(e,e.Tb.ga,4,2),e.Tb.load(0),Ad(e,e.Sb.ga,4,2),
e.Sb.load(0),Ad(e,e.Ab.ga,4,2),Bd(e,0),Ad(e,e.bb.ga,4,2),Cd(e,0));Ad(e,y,e.fa,2);for(Dd(e,g);f;)Dd(e,a.P[--f]);a.bf=!0}return a.Fa}if(0!=J)return p.call(e,13,c&65532|(O?2:0)),-1;if(!(g&32768))return p.call(e,11,c&65532|(O?2:0)),-1;break;case 2:if(x){if(4096>k||2048==(k&2560))return p.call(e,13,c&65532),-1;if(!(g&32768))return p.call(e,11,c&65532),-1}break;case 3:if(!x||4096>k||512!=(k&2560))return p.call(e,13,c&65532),-1;if(!(g&32768))return p.call(e,12,c&65532),-1;break;case 4:y=k&-513;if(!x||256!=
y&&2304!=y)return p.call(e,13,c&65532),-1;2304==y&&(a.yi=q+e.va(q+100+2)|0,a.Kk=q+a.Za|0);break;case 6:if(!(k&4096)&&768<k&&2304!=k&&2816!=k)return-1}d?(a.A.ga=c,a.A.Fa=q,a.A.Za=f,a.A.Bb=g,a.A.type=k,a.A.ext=r,a.A.dc=b):(a.ga=c,a.Fa=q,a.Za=f,a.fc=(f>>>0)+1,a.Bb=g,a.type=k,a.ext=r,a.dc=b,ld(a,!0,!0,!1));return q}
function sd(a,b,c){var d=a.M,e=a.$b,f=d.Ya.ga,g=d.Ya.Fa;if(!c){if(!(d.Ya.type&512))return p.call(d,13,b&65532),!1;d.pb(d.Ya.dc+4,d.Ya.Bb&=-513)}if(-1===d.Ya.load(b))return!1;var k=d.Ya.Fa;if(!1!==c){if(d.Ya.type&512)return p.call(d,13,b&65532),!1;d.pb(d.Ya.dc+4,d.Ya.Bb|=512)}d.Ya.type=d.Ya.type&-513|d.Ya.Bb&512;256==d.Ya.type||768==d.Ya.type?(d.pb(g+14,v(d)),d.pb(g+16,Ed(d)),d.pb(g+18,d.F),d.pb(g+20,d.G),d.pb(g+22,d.H),d.pb(g+24,d.D),d.pb(g+26,u(d)),d.pb(g+28,d.K),d.pb(g+30,d.J),d.pb(g+32,d.I),d.pb(g+
@ -105,14 +105,14 @@ function Lc(a,b,c,d){var e=(b&-4194304)>>>20,f=a.kd[(a.Ld+e&a.Mb)>>>a.Pa],g=f.Xd
b.A=e>>2;b.Eb=g;b.C=k>>2;Ab&&gc&&c.ha&&!c.controller&&!c.Se&&!c.Te?(b.eb=c.eb,b.ce=c.ce,b.ha=c.ha,dc(b,Qc)):(b.O=c?Ec(32):0,b.Y=c?Ec(96):0,dc(b,Oc));Sb(b,a.ma,q);a.ya[d]=b;a.ie.push(d);return b}function Be(a){a.ya!==a.kd&&(a.ya=a.kd,a.le=null,a.ie=null,a.rd=null)}h=Id.prototype;h.reset=function(){this.ra.Ob&&this.bc();xe(this);Tc(this);this.ra.wd=!1};
function Ce(a,b){var c;switch(b){case 0:c=a.F;break;case 1:c=a.G;break;case 2:c=a.H;break;case 3:c=a.D;break;case 4:c=u(a);break;case 5:c=a.K;break;case 6:c=a.J;break;case 7:c=a.I}return c}function De(a,b,c){switch(b){case 0:a.F=c;break;case 1:a.G=c;break;case 2:a.H=c;break;case 3:a.D=c;break;case 4:t(a,c);break;case 5:a.K=c;break;case 6:a.J=c;break;case 7:a.I=c}}
function xe(a){a.F=0;a.D=0;a.G=0;a.H=0;a.ib=0;a.K=0;a.J=0;a.I=0;a.Va=!1;a.la=a.Ba=0;a.xb=0;a.Qg=0;a.pc=0;a.hb=65520;a.Pc=0;a.Od=1023;a.ea=a.Ra=0;a.Xc=a.vd=a.Wc=a.Yc=0;a.lb=-1;a.Lc=a.td=-1;a.He=a.X=-1;a.Ca=new kd(a,1,"CS");a.Ab=new kd(a,2,"DS");a.bb=new kd(a,2,"ES");a.Aa=new kd(a,3,"SS");t(a,0);rd(a,0);if(80386<=a.na){switch(a.oc){case 80562:case 80563:a.H=771;break;case 80578:a.H=772;break;case 80594:a.H=773;break;case 80595:case 80596:a.H=776}a.hb=16;a.ni=0;a.qe=0;a.Ld=0;a.Ma=[0,0,0,0,null,null,
0,0];a.Ge=[null,null,null,null,null,null,0,0];a.Sb=new kd(a,2,"FS");a.Tb=new kd(a,2,"GS");Be(a)}a.pf=new kd(a,0,"NULL");a.P=a.Ab;a.O=a.Aa;a.V=a.La=0;a.Z=a.Y=-1;a.pd=a.pf;a.za=0;if(80286>a.na)Gd(a,0,65535);else{a.Ec=0;a.Bd=65535;a.Bc=new kd(a,5,"LDT",!0);a.Ya=new kd(a,4,"TSS",!0);a.Ea=new kd(a,6,"VER",!0);Gd(a,65520,61440);var b,c=v(a);b=a.Ca;var d=-65536;80386>b.M.na&&(d&=16777215);b=b.Fa=d;a.Na=b+c|0;a.of=b+a.Ca.Za|0}Fd(a,0);xd(a)}
function Ee(a,b){b.ga&65528&&b.Mc<a.ua&&7168!=(b.Bb&7168)&&b.load(0)}function Fe(a){2==a.gd?(a.ic=a.va,a.Qa=z,a.Ta=Ge,a.Ib=He,a.da=A,a.qa=Ke,a.Oa=Le):(a.ic=a.ta,a.Qa=C,a.Ta=Me,a.Ib=Ne,a.da=D,a.qa=Oe,a.Oa=Pe)}function yd(a,b){a.fa!=b&&(a.La|=1024,a.fa=b,a.B=2==b?65535:-1,Qe(a))}function Qe(a){2==a.fa?(a.Ja=32768,a.vb=a.va,a.uc=a.pb):(a.Ja=-2147483648,a.vb=a.ta,a.uc=a.ub)}function Re(a){a.gd=a.Ca.gd;a.Ga=a.Ca.Ga;Fe(a);a.fa=a.Ca.fa;a.B=a.Ca.B;Qe(a);a.La&=-3073}
h.Ti=function(){var a=this.F+this.D+this.G+this.H+u(this)+this.K+this.J+this.I|0;return a=a+v(this)+this.Ca.ga+this.Ab.ga+this.Aa.ga+this.bb.ga+Ed(this)|0};function Se(a,b,c){void 0===a.je[b]&&(a.je[b]=[]);a.je[b].push(c)}function Te(a,b,c){void 0!==c&&(null==a.ke[b]&&a.me++,a.ke[b]=c)}function Ue(a,b){var c=a.ke[b];null!=c&&(c(--a.me),delete a.ke[b])}
0,0];a.Ge=[null,null,null,null,null,null,0,0];a.Sb=new kd(a,2,"FS");a.Tb=new kd(a,2,"GS");Be(a)}a.pf=new kd(a,0,"NULL");a.P=a.Ab;a.O=a.Aa;a.V=a.La=0;a.Z=a.Y=-1;a.pd=a.pf;a.za=0;if(80286>a.na)Gd(a,0,65535);else{a.Ec=0;a.Bd=65535;a.Bc=new kd(a,5,"LDT",!0);a.Ya=new kd(a,4,"TSS",!0);a.Ea=new kd(a,6,"VER",!0);Gd(a,65520,61440);var b,c=v(a);b=a.Ca;var d=-65536;80386>b.M.na&&(d&=16777215);b=b.Fa=d;a.Na=b+c|0;a.of=b+a.Ca.Za|0}Fd(a,0);td(a)}
function Ee(a,b){b.ga&65528&&b.Mc<a.ua&&7168!=(b.Bb&7168)&&b.load(0)}function Fe(a){2==a.gd?(a.ic=a.va,a.Qa=z,a.Ta=Ge,a.Ib=Je,a.da=A,a.qa=Ke,a.Oa=Le):(a.ic=a.ta,a.Qa=C,a.Ta=Me,a.Ib=Ne,a.da=D,a.qa=Oe,a.Oa=Pe)}function yd(a,b){a.fa!=b&&(a.La|=1024,a.fa=b,a.B=2==b?65535:-1,Qe(a))}function Qe(a){2==a.fa?(a.Ja=32768,a.vb=a.va,a.uc=a.pb):(a.Ja=-2147483648,a.vb=a.ta,a.uc=a.ub)}function Re(a){a.gd=a.Ca.gd;a.Ga=a.Ca.Ga;Fe(a);a.fa=a.Ca.fa;a.B=a.Ca.B;Qe(a);a.La&=-3073}
h.Ti=function(){var a=this.F+this.D+this.G+this.H+u(this)+this.K+this.J+this.I|0;return a=a+v(this)+this.Ca.ga+this.Ab.ga+this.Aa.ga+this.bb.ga+Ed(this)|0};function Se(a,b,c){void 0===a.je[b]&&(a.je[b]=[]);a.je[b].push(c)}function Te(a,b,c){void 0!==c&&(null==a.ke[b]&&a.me++,a.ke[b]=c)}function af(a,b){var c=a.ke[b];null!=c&&(c(--a.me),delete a.ke[b])}
function bf(a,b){for(var c=a.Ma[7],d=c>>16,e=0;4>e;e++){if(c&3){var f=!!(d&1),g=a.Ma[e],g=g&~(d>>2&3);b?a.ya[g>>>a.Pa].Nd(g&a.Ha,f,a):Mc(a.ya[g>>>a.Pa],f)}c>>=2;d>>=4}}function Jc(a,b,c,d){if(!(a.V&8192)&&a.Ma[7]&255){c--;var e=a.Ma[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 k=f>>2;if(b+c>=a.Ma[g]&&b<=a.Ma[g]+k){a.Ma[6]|=1<<g;a.za|=2;break}}e>>=2;f>>=4}}}
function xd(a,b,c){void 0===b&&(b=!!(a.hb&1));void 0===c&&(c=!!(a.ea&131072));a.Pg=b&&!c?cf:Md;ld(a.Ca,!1,b,c);ld(a.Ab,!1,b,c);ld(a.Aa,!1,b,c);ld(a.bb,!1,b,c);80386<=a.na&&(ld(a.Sb,!1,b,c),ld(a.Tb,!1,b,c));Re(a)}
function td(a,b,c){void 0===b&&(b=!!(a.hb&1));void 0===c&&(c=!!(a.ea&131072));a.Pg=b&&!c?cf:Md;ld(a.Ca,!1,b,c);ld(a.Ab,!1,b,c);ld(a.Aa,!1,b,c);ld(a.bb,!1,b,c);80386<=a.na&&(ld(a.Sb,!1,b,c),ld(a.Tb,!1,b,c));Re(a)}
h.save=function(){var a=new df(this);ef(a,0,[this.F,this.D,this.G,this.H,u(this),this.K,this.J,this.I]);var b=v(this),c=this.Ca.save(),d=this.Ab.save(),e=this.Aa.save(),f=this.bb.save(),g;null!=this.Ec?(g=[this.hb,this.Ec,this.Bd,this.Pc,this.Od,this.Bc.save(),this.Ya.save(),this.Ra],80386<=this.na&&(g.push(this.ni),g.push(this.qe),g.push(this.Ld),g.push(this.Ma),g.push(this.Ge))):g=null;b=[b,c,d,e,f,g,Ed(this)];80386<=this.na&&(b.push(this.Sb.save()),b.push(this.Tb.save()));ef(a,1,b);ef(a,2,[this.P.nc,
this.O.nc,this.V,this.La,this.za,this.Z,this.Y]);ef(a,3,[0,this.Zb,this.ba.Td]);b=this.ja;c=!!(this.hb&-2147483648);d=0;e=[];(f=!b.ja&&b.xg==b.Mb)||Yb(b,!0);for(g=0;g<b.W;g++){var k=b.ya[g];if(c&&k.type!=fc||k.ab||k.Qi){e[d++]=g;var q=d++;a:if(k=k.save()){for(var r=0,x=0,B=[];r<k.length;){for(var y=k[r],J=r+1;J<k.length&&k[J]===y;)J++;B[x++]=J-r;B[x++]=y;r=J}if(B.length<k.length){k=B;break a}}e[q]=k}}f||Yb(b,!1);e[d]=f;ef(a,4,e);return a.data()};
h.restore=function(a){var b=a[0];this.F=b[0];this.D=b[1];this.G=b[2];this.H=b[3];var c=b[4];this.K=b[5];this.J=b[6];this.I=b[7];b=a[1];this.Ca.restore(b[1]);this.Ab.restore(b[2]);this.Aa.restore(b[3]);this.bb.restore(b[4]);var d=b[5];d&&d.length&&(this.hb=d[0],this.Ec=d[1],this.Bd=d[2],this.Pc=d[3],this.Od=d[4],this.Bc.restore(d[5]),this.Ya.restore(d[6]),this.Ra=d[7],80386<=this.na&&(this.ni=d[8],this.qe=d[9],this.Ld=d[10],this.Ma=d[11],this.Ge=d[12]),xd(this));Fd(this,b[6]);var d=!1,e;a:{e=this.ja;
h.restore=function(a){var b=a[0];this.F=b[0];this.D=b[1];this.G=b[2];this.H=b[3];var c=b[4];this.K=b[5];this.J=b[6];this.I=b[7];b=a[1];this.Ca.restore(b[1]);this.Ab.restore(b[2]);this.Aa.restore(b[3]);this.bb.restore(b[4]);var d=b[5];d&&d.length&&(this.hb=d[0],this.Ec=d[1],this.Bd=d[2],this.Pc=d[3],this.Od=d[4],this.Bc.restore(d[5]),this.Ya.restore(d[6]),this.Ra=d[7],80386<=this.na&&(this.ni=d[8],this.qe=d[9],this.Ld=d[10],this.Ma=d[11],this.Ge=d[12]),td(this));Fd(this,b[6]);var d=!1,e;a:{e=this.ja;
var f=a[4],g;for(g=0;g<f.length-1;g+=2){var k=f[g],q=f[g+1];if(q&&q.length<e.la){for(var r=0,x=Array(e.la),B=0;B<q.length-1;)for(var y=q[B++],J=q[B++];y--;)x[r++]=J;q=x}r=e.ya[k];if(!r||!r.restore(q)){Ba("Unable to restore memory block "+k);e=!1;break a}}void 0!==f[g]&&Yb(e,f[g]);e=!0}e&&(Gd(this,b[0],this.Ca.ga),t(this,c),rd(this,this.Aa.ga),80386<=this.na&&(this.Sb.restore(b[7]),this.Tb.restore(b[8])),d=!0);b=a[2];this.P=null!=b[0]&&ff(this,b[0])||this.Ab;this.O=null!=b[1]&&ff(this,b[1])||this.Aa;
this.V=b[2];this.La=b[3];this.za=b[4];this.Z=b[5];this.Y=b[6];b=a[3];this.Zb=b[1];dd(this,b[2]);return d};function ff(a,b){switch(b){case "CS":return a.Ca;case "DS":return a.Ab;case "SS":return a.Aa;case "ES":return a.bb;case "NULL":return a.pf;default:return[0,b,0,0,""]}}function gf(a,b){null!=Gd(a,v(a),b)&&(a.V|=a.Gd)}function Bd(a,b){-1!==a.Ab.load(b)&&(a.V|=a.Gd)}
function rd(a,b,c){var d=u(a);-1!==a.Aa.load(b)&&(t(a,d),a.Aa.dd?(a.Mg=a.Aa.Fa+a.Aa.Ga|0,a.ud=a.Aa.Fa+a.Aa.Za|0):(a.Mg=a.Aa.Fa+a.Aa.Za|0,a.ud=a.Aa.Fa),c||(a.V|=4))}function Cd(a,b){-1!==a.bb.load(b)&&(a.V|=a.Gd)}function v(a){return a.Na-a.Ca.Fa|0}function hf(a,b){a.Na=a.Ca.Fa+(b&a.B)|0}function jf(a,b){a.Na=b|0;a.of=a.Ca.Fa+a.Ca.Za|0;a.ua=a.Ca.$b;Re(a)}function Gd(a,b,c,d){var e=a.Ca;e.Uf=b;e.R=d;b=e.load(c);return-1!==b?(jf(a,b+(a.Ca.Uf&a.Ca.B)),a.Ca.bf):null}
@ -120,7 +120,7 @@ function kf(a,b){a.Na=a.Na+b|0;var c=a.of-a.Na|0;0>c&&0<=(a.of^a.Na)&&(8088>=a.n
function tf(a,b,c,d,e){a.resultType=c|26;a.Yc=b;d?uf(a):vf(a);e?wf(a):xf(a);return b}function yf(a,b,c,d){c&d?uf(a):vf(a);(b^c)&d?wf(a):xf(a)}function zf(a){return nf(a)?1:0}function nf(a){a.resultType&1&&(a.ea&=-2,(a.Xc^(a.Xc^a.vd)&(a.vd^a.Wc))&a.resultType&-2147450752&&(a.ea|=1),a.resultType&=-2);return a.ea&1}function of(a){a.resultType&2&&(a.ea&=-5,38505>>((a.Yc^a.Yc>>4)&15)&1&&(a.ea|=4),a.resultType&=-3);return a.ea&4}
function pf(a){a.resultType&4&&(a.ea&=-17,(a.Wc^a.Xc^a.vd)&16&&(a.ea|=16),a.resultType&=-5);return a.ea&16}function qf(a){a.resultType&8&&(a.ea&=-65,a.Yc&((a.resultType&-2147450752)-1|a.resultType&-2147450752)||(a.ea|=64),a.resultType&=-9);return a.ea&64}function rf(a){a.resultType&16&&(a.ea&=-129,a.Yc&a.resultType&-2147450752&&(a.ea|=128),a.resultType&=-17);return a.ea&128}
function sf(a){a.resultType&32&&(a.ea&=-2049,(a.Xc^a.Wc)&(a.vd^a.Wc)&a.resultType&-2147450752&&(a.ea|=2048),a.resultType&=-33);return a.ea&2048}function vf(a){a.resultType&=-2;a.ea&=-2}function Af(a){a.resultType&=-5;a.ea&=-17}function Bf(a){a.resultType&=-9;a.ea&=-65}function xf(a){a.resultType&=-33;a.ea&=-2049}function uf(a){a.resultType&=-2;a.ea|=1}function Cf(a){a.resultType&=-5;a.ea|=16}function Df(a){a.resultType&=-9;a.ea|=64}function wf(a){a.resultType&=-33;a.ea|=2048}
function Ed(a){return a.ea&-2262|nf(a)|of(a)|pf(a)|qf(a)|rf(a)|sf(a)}function Ef(a,b){b=b|a.hb&1|65520;a.hb=a.hb&-65536|b&65535;a.hb&1&&xd(a,!0)}function Fd(a,b,c){a.hb&1||(b&=~a.Yf);void 0===c&&(c=a.ua);c?b=b&-12289|a.ea&12288:a.Ra=(b&12288)>>12;c>a.Ra&&(b=b&-513|a.ea&512);a.resultType=128;a.ea=a.ea&~(a.cc|2261)|b&(a.cc|2261)|a.dg;a.ea&256&&(a.za|=2,a.V|=4)}
function Ed(a){return a.ea&-2262|nf(a)|of(a)|pf(a)|qf(a)|rf(a)|sf(a)}function Ef(a,b){b=b|a.hb&1|65520;a.hb=a.hb&-65536|b&65535;a.hb&1&&td(a,!0)}function Fd(a,b,c){a.hb&1||(b&=~a.Yf);void 0===c&&(c=a.ua);c?b=b&-12289|a.ea&12288:a.Ra=(b&12288)>>12;c>a.Ra&&(b=b&-513|a.ea&512);a.resultType=128;a.ea=a.ea&~(a.cc|2261)|b&(a.cc|2261)|a.dg;a.ea&256&&(a.za|=2,a.V|=4)}
function Ff(a,b,c,d){var e=0;if(a.hb&1&&(a.ua>a.Ra||a.ea&131072)&&a.Ya.yi)for(var f=a.Ya.yi+(b>>>3),e=(1<<c)-1<<(b&7);e&&f<=a.Ya.Kk&&!(a.Wa(f)&e);)e>>>=8,f++;return e?(n(a,256)&&sb(a,"checkIOPM("+ia(b)+","+c+","+(d?"input":"output")+"): trapped",!0,!0),p.call(a,13,0),!1):!0}
h.Ub=function(a,b,c){var d=!1;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.xa[b]=c;this.Rg++;d=!0;break;default:d=this.parent.Ub.call(this,a,b,c)}return d};
function Gf(a,b,c,d){var e=(d?a.kd:a.ya)[(b&a.qb)>>>a.Pa];e&&5==e.type&&(e=Lc(a,b,!1,!0));if(e){var f=b&a.Ha;if(!c||1==c)return e.pe(f,b);if(2==c)return f<a.Ha?e.$f(f,b):e.pe(f,b)|Gf(a,b+1,1,d)<<8;if(4==c)return f<a.Ha-2?e.mi(f,b):f==a.Ha-1?e.$f(f,b)|Gf(a,b+2,2,d)<<16:e.pe(f,b)|Gf(a,b+1,1,d)<<8|Gf(a,b+2,1,d)<<16|Gf(a,b+3,1,d)<<24}return null}h.Wa=function(a){return this.ya[(a&this.qb)>>>this.Pa].sc(a&this.Ha,a)};
@ -174,11 +174,11 @@ function Gh(a,b,c){c>>>=0;if(!c||c<=b>>>0)return!1;var d=0,e=1;c=[c>>>0,0];for(a
function Hh(a){if(this.Yb){var b=this.Yb,c=this.Qg,d=this.pc,e=d>>3&7;b.A=d&7;var f=(3>(d>>6&3)?0:48)+e;(217==c||219==c)&&52<=f&&(f=e<<4|b.A);if(e=hh[c][f]){if(0>ih.indexOf(e)){var f=b.M,g=f.He;8087==b.na&&(f.La&16&&g++,f.La&32&&g++);b.ka=f.Ca.ga;b.Y=g-f.Ca.Fa;-1!==f.Z&&(b.la=f.pd.ga,b.W=f.Z-f.pd.Fa);b.qa=(c&7)<<8|d}e.call(b)}}this.A-=-1===this.Z?2:8;return a}function Ih(a,b){var c=Jh.call(this,this.L(),b);80386>this.na&&(this.A-=12);return c}
function Kh(a,b){var c;a=this.Sa();c=2==this.fa?Jh.call(this,a,b):Lh.call(this,a,b);80386>this.na&&(this.A-=12);return c}function Mh(a,b){var c=!1;0>b&&(b=-b|0,c=!c);0>a&&(a=-a|0,c=!c);Nh.call(this,a,b);c&&(this.la=~this.la+1|0,this.Ba=~this.Ba+(this.la?0:1)|0)}function Jh(a,b){var c=(a<<16>>16)*(b<<16>>16)|0;32767<c||-32768>c?(uf(this),wf(this)):(vf(this),xf(this));this.A-=-1===this.Z?9:12;return c&65535}
function Lh(a,b){Mh.call(this,a,b);this.Ba!=this.la>>31?(uf(this),wf(this)):(vf(this),xf(this));this.A-=-1===this.Z?9:12;return this.la}function Oh(a){var b=a+1|0;mf(this,a,1,b,this.Ja|62);this.A-=2;return a&~this.B|b&this.B}function Ph(a,b,c){this.A-=this.C.zj+(c||0);c=Ed(this);var d=this.Ca.ga,e=v(this);a=this.Ca.Zi(a);-1!==a&&(Dd(this,c),Dd(this,d),Dd(this,e),null!=b&&Dd(this,b),this.lb=-1,jf(this,a))}
function Qh(a,b){this.A-=14+(-1===this.Z?0:2);Bf(this);-1!==this.Ea.load(b)&&this.Ea.Mc>=this.ua&&this.Ea.Mc>=(b&3)&&(Df(this),a=this.Ea.Bb&-256,2<this.fa&&(a|=(this.Ea.ext&-65281)<<16));return a}function Rh(a){this.hb=a;xd(this);this.hb&-2147483648?ze(this):Be(this)}function Hd(a){this.Ld=a;ac(this)}function Sh(a,b){if(-1===this.Z)return oe.call(this),a;Bd(this,this.va(this.Z+this.fa));this.A-=this.C.mf;return b}function Th(){this.A-=this.C.Hj;return this.Z}
function Qh(a,b){this.A-=14+(-1===this.Z?0:2);Bf(this);-1!==this.Ea.load(b)&&this.Ea.Mc>=this.ua&&this.Ea.Mc>=(b&3)&&(Df(this),a=this.Ea.Bb&-256,2<this.fa&&(a|=(this.Ea.ext&-65281)<<16));return a}function Rh(a){this.hb=a;td(this);this.hb&-2147483648?ze(this):Be(this)}function Hd(a){this.Ld=a;ac(this)}function Sh(a,b){if(-1===this.Z)return oe.call(this),a;Bd(this,this.va(this.Z+this.fa));this.A-=this.C.mf;return b}function Th(){this.A-=this.C.Hj;return this.Z}
function Uh(a,b){if(-1===this.Z)return oe.call(this),a;Cd(this,this.va(this.Z+this.fa));this.A-=this.C.mf;return b}function Vh(a,b){if(-1===this.Z)return oe.call(this),a;var c=this.va(this.Z+this.fa);this.Sb.load(c);this.A-=this.C.mf;return b}function Wh(a,b){if(-1===this.Z)return oe.call(this),a;var c=this.va(this.Z+this.fa);this.Tb.load(c);this.A-=this.C.mf;return b}
function Xh(a,b){this.A-=14+(-1===this.Z?0:2);if(b&65528&&-1!==this.Ea.load(b)&&(7168==(this.Ea.Bb&7168)||this.Ea.Mc>=this.ua)&&this.Ea.Mc>=(b&3))return Df(this),this.Ea.Za;Bf(this);return a}function Yh(a,b){if(-1===this.Z)return oe.call(this),a;rd(this,this.va(this.Z+this.fa));this.A-=this.C.mf;return b}function Zh(a,b){this.A-=-1===this.Y?-1===this.Z?this.C.Oj:this.C.Nj:this.C.Lj;return b}function $h(a,b){return b}function ai(){-1!==this.Y&&yd(this,2);return Zh.call(this,0,this.xb)}
function Nh(a,b){if(a&-65536||b&-65536){var c=b&65535,d=b>>>16,e=a&65535,f=a>>>16,g=c*e,e=(g>>>16)+d*e,k=e>>>16,e=(e&65535)+c*f;this.la=e<<16|g&65535;this.Ba=k+((e>>>16)+d*f)|0}else this.la=a*b|0,this.Ba=0}function bi(a,b){this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return tf(this,a|b,128)}function ci(a,b){this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return tf(this,a|b,this.Ja)&this.B}
function di(a){this.X=this.ka;var b=qd(this),c=qd(this);a&&t(this,u(this)+a);Gd(this,b,c,!1)&&(a&&t(this,u(this)+a),Ee(this,this.Ab),Ee(this,this.bb),80386<=this.na&&(Ee(this,this.Sb),Ee(this,this.Tb)));2==a&&this.me&&Ue(this,this.Na);this.X=-1}function ei(a,b){var c=a-b-zf(this)|0;mf(this,a,b,c,191,!0);this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return c&255}
function di(a){this.X=this.ka;var b=qd(this),c=qd(this);a&&t(this,u(this)+a);Gd(this,b,c,!1)&&(a&&t(this,u(this)+a),Ee(this,this.Ab),Ee(this,this.bb),80386<=this.na&&(Ee(this,this.Sb),Ee(this,this.Tb)));2==a&&this.me&&af(this,this.Na);this.X=-1}function ei(a,b){var c=a-b-zf(this)|0;mf(this,a,b,c,191,!0);this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return c&255}
function fi(a,b){var c=a-b-zf(this)|0;mf(this,a,b,c,this.Ja|63,!0);this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return c&this.B}function gi(a){this.V|=1;this.Ta[this.ca()].call(this,a);this.A-=-1===this.Z?4:5}function hi(){return sf(this)?1:0}function ii(){return nf(this)?1:0}function ji(){return nf(this)?0:1}function Bi(){return qf(this)?1:0}function Ci(){return qf(this)?0:1}function Di(){return nf(this)||qf(this)?1:0}function Ei(){return nf(this)||qf(this)?0:1}
function Fi(){return rf(this)?1:0}function Gi(){return rf(this)?0:1}function Hi(){return of(this)?1:0}function Ii(){return of(this)?0:1}function Ji(){return!rf(this)!=!sf(this)?1:0}function Ki(){return!rf(this)!=!sf(this)?0:1}function Li(){return qf(this)||!rf(this)!=!sf(this)?1:0}function Mi(){return qf(this)||!rf(this)!=!sf(this)?0:1}function Ni(a,b,c){if(c){16<c&&(a=b,c-=16);var d=a<<c-1;a=(d<<1|b>>>16-c)&65535;tf(this,a,32768,d&32768)}return a}
function Oi(a,b,c){if(c){var d=a<<c-1;a=d<<1|b>>>32-c;tf(this,a,-2147483648,d&-2147483648)}return a}function Pi(a,b){return Ni.call(this,a,b,this.ca())}function Qi(a,b){return Oi.call(this,a,b,this.ca())}function Ri(a,b){return Ni.call(this,a,b,this.G&31)}function Si(a,b){return Oi.call(this,a,b,this.G&31)}function Ti(a,b,c){if(c){16<c&&(a=b,c-=16);var d=a>>>c-1;a=(d>>>1|b<<16-c)&65535;tf(this,a,32768,d&1)}return a}
@ -233,8 +233,8 @@ this.P,this.J&c);this.F=this.F&~this.B|e;this.J=this.J&~c|this.J+(this.ea&1024?-
this.D&-256|this.ca();this.A-=this.C.jc},function(){this.F=this.F&-65281|this.ca()<<8;this.A-=this.C.jc},function(){this.G=this.G&-65281|this.ca()<<8;this.A-=this.C.jc},function(){this.H=this.H&-65281|this.ca()<<8;this.A-=this.C.jc},function(){this.D=this.D&-65281|this.ca()<<8;this.A-=this.C.jc},function(){this.F=this.F&~this.B|this.Sa();this.A-=this.C.jc},function(){this.G=this.G&~this.B|this.Sa();this.A-=this.C.jc},function(){this.H=this.H&~this.B|this.Sa();this.A-=this.C.jc},function(){this.D=
this.D&~this.B|this.Sa();this.A-=this.C.jc},function(){t(this,u(this)&~this.B|this.Sa());this.A-=this.C.jc},function(){this.K=this.K&~this.B|this.Sa();this.A-=this.C.jc},function(){this.J=this.J&~this.B|this.Sa();this.A-=this.C.jc},function(){this.I=this.I&~this.B|this.Sa();this.A-=this.C.jc},Pj,Qj,Pj,Qj,function(){this.da[this.ca()].call(this,Uh)},function(){this.da[this.ca()].call(this,Sh)},function(){this.V|=1;this.Ib[this.ca()].call(this,Xj,this.ca)},function(){this.V|=1;this.Oa[this.ca()].call(this,
Xj,this.Sa)},Rj,Sj,Rj,Sj,function(){if(this.ea&131072&&3>this.Ra)p.call(this,13,0);else{var a=this.C.Aj;this.lb=-1;Ph.call(this,3,null,a)}},function(){var a=this.ca();if(this.ea&131072&&3>this.Ra)p.call(this,13,0);else{var b;a:{b=this.je[a];if(void 0!==b)for(var c=0;c<b.length;c++)if(!b[c](this.Na)){b=!1;break a}this.ra.Pi&&n(this,16)&&Yj(this.ma,a,this.Na);b=!0}b?(this.lb=-1,Ph.call(this,a,null,0)):this.A--}},function(){if(sf(this))if(this.ea&131072&&3>this.Ra)p.call(this,13,0);else{var a=this.C.Bj;
this.lb=-1;Ph.call(this,4,null,a)}else this.A-=this.C.Cj},function(){if(this.ea&131072&&3>this.Ra)p.call(this,13,0);else{this.X=this.ka;this.A-=this.C.yj;if(this.hb&1&&this.ea&16384){var a=this.va(this.Ya.Fa+0);sd(this.Ca,a,!1)}else{var a=this.ua,b=qd(this),c=qd(this),d=qd(this);if(this.ea&131072)d=d&131071|this.ea&-131072;else if(d&131072){var e=qd(this),f=qd(this),g=qd(this),k=qd(this),q=qd(this),r=qd(this);xd(this,!0,!0);rd(this,f);t(this,e);Cd(this,g);Bd(this,k);this.Sb.load(q);this.Tb.load(r)}null!=
Gd(this,b,c,!1)&&(Fd(this,d,a),this.me&&Ue(this,this.Na))}this.X=-1}},function(){this.Ib[this.ca()].call(this,Mj,lj)},function(){this.Oa[this.ca()].call(this,2==this.fa?Nj:Oj,lj)},function(){this.Ib[this.ca()].call(this,Mj,mj)},function(){this.Oa[this.ca()].call(this,2==this.fa?Nj:Oj,mj)},function(){var a=this.ca();if(a){var b=this.F&255;this.F=this.F&-65536|b/a<<8|b%a;tf(this,this.F,128);this.A-=this.C.dj}else kj.call(this)},function(){var a=this.F&255,b=(this.F>>8&255)*this.ca()|0,c=a+b|0;this.F=
this.lb=-1;Ph.call(this,4,null,a)}else this.A-=this.C.Cj},function(){if(this.ea&131072&&3>this.Ra)p.call(this,13,0);else{this.X=this.ka;this.A-=this.C.yj;if(this.hb&1&&this.ea&16384){var a=this.va(this.Ya.Fa+0);sd(this.Ca,a,!1)}else{var a=this.ua,b=qd(this),c=qd(this),d=qd(this);if(this.ea&131072)d=d&131071|this.ea&-131072;else if(d&131072){var e=qd(this),f=qd(this),g=qd(this),k=qd(this),q=qd(this),r=qd(this);td(this,!0,!0);rd(this,f);t(this,e);Cd(this,g);Bd(this,k);this.Sb.load(q);this.Tb.load(r)}null!=
Gd(this,b,c,!1)&&(Fd(this,d,a),this.me&&af(this,this.Na))}this.X=-1}},function(){this.Ib[this.ca()].call(this,Mj,lj)},function(){this.Oa[this.ca()].call(this,2==this.fa?Nj:Oj,lj)},function(){this.Ib[this.ca()].call(this,Mj,mj)},function(){this.Oa[this.ca()].call(this,2==this.fa?Nj:Oj,mj)},function(){var a=this.ca();if(a){var b=this.F&255;this.F=this.F&-65536|b/a<<8|b%a;tf(this,this.F,128);this.A-=this.C.dj}else kj.call(this)},function(){var a=this.F&255,b=(this.F>>8&255)*this.ca()|0,c=a+b|0;this.F=
this.F&-65536|c&255;mf(this,a,b,c,191);this.A-=this.C.cj},function(){this.F=this.F&-256|(nf(this)?255:0);this.A-=2},function(){this.F=this.F&-256|Hf(this,this.P,this.D+(this.F&255)&65535);this.A-=this.C.bk},function(){Tj.call(this,216)},function(){Tj.call(this,217)},function(){Tj.call(this,218)},function(){Tj.call(this,219)},function(){Tj.call(this,220)},function(){Tj.call(this,221)},function(){Tj.call(this,222)},function(){Tj.call(this,223)},function(){var a=this.L(),b=this.G-1&this.Ga;this.G=this.G&
~this.Ga|b;b&&!qf(this)?(hf(this,v(this)+a),this.A-=this.C.Jj):this.A-=this.C.Kh},function(){var a=this.L(),b=this.G-1&this.Ga;this.G=this.G&~this.Ga|b;b&&qf(this)?(hf(this,v(this)+a),this.A-=this.C.Lh):this.A-=this.C.Mh},function(){var a=this.L(),b=this.G-1&this.Ga;this.G=this.G&~this.Ga|b;b?(hf(this,v(this)+a),this.A-=this.C.Ij):this.A-=this.C.Kh},function(){var a=this.L();this.G&this.Ga?this.A-=this.C.Mh:(hf(this,v(this)+a),this.A-=this.C.Lh)},function(){var a=this.ca();Ff(this,a,1,!0)&&(this.F=
this.F&-256|oc(this.ja,a,1,this.Na-2)&255,this.A-=this.C.Fh)},function(){var a=this.ca();Ff(this,a,this.fa,!0)&&(this.F=this.F&~this.B|oc(this.ja,a,this.fa,this.Na-2)&this.B,this.A-=this.C.Fh)},function(){var a=this.ca();Ff(this,a,1,!1)&&(sc(this.ja,a,1,this.F&255,this.Na-2),this.A-=this.C.Th)},function(){var a=this.ca();Ff(this,a,this.fa,!1)&&(sc(this.ja,a,this.fa,this.F&this.B,this.Na-2),this.A-=this.C.Th)},function(){var a=this.Sa(),b=v(this),a=b+a;Dd(this,b);hf(this,a);this.A-=this.C.hj},function(){var a=
@ -364,7 +364,7 @@ R(this)),this.G>>8&255);P(this,a);this.A-=this.C.T},function(a){a=a.call(this,L(
this.A-=this.C.N},function(a){a=a.call(this,K(this,this.D+this.J+R(this)),this.H>>8&255);P(this,a);this.A-=this.C.S},function(a){a=a.call(this,K(this,this.D+this.I+R(this)),this.H>>8&255);P(this,a);this.A-=this.C.T},function(a){a=a.call(this,L(this,this.K+this.J+R(this)),this.H>>8&255);P(this,a);this.A-=this.C.T},function(a){a=a.call(this,L(this,this.K+this.I+R(this)),this.H>>8&255);P(this,a);this.A-=this.C.S},function(a){a=a.call(this,K(this,this.J+R(this)),this.H>>8&255);P(this,a);this.A-=this.C.N},
function(a){a=a.call(this,K(this,this.I+R(this)),this.H>>8&255);P(this,a);this.A-=this.C.N},function(a){a=a.call(this,L(this,this.K+R(this)),this.H>>8&255);P(this,a);this.A-=this.C.N},function(a){a=a.call(this,K(this,this.D+R(this)),this.H>>8&255);P(this,a);this.A-=this.C.N},function(a){a=a.call(this,K(this,this.D+this.J+R(this)),this.D>>8&255);P(this,a);this.A-=this.C.S},function(a){a=a.call(this,K(this,this.D+this.I+R(this)),this.D>>8&255);P(this,a);this.A-=this.C.T},function(a){a=a.call(this,L(this,
this.K+this.J+R(this)),this.D>>8&255);P(this,a);this.A-=this.C.T},function(a){a=a.call(this,L(this,this.K+this.I+R(this)),this.D>>8&255);P(this,a);this.A-=this.C.S},function(a){a=a.call(this,K(this,this.J+R(this)),this.D>>8&255);P(this,a);this.A-=this.C.N},function(a){a=a.call(this,K(this,this.I+R(this)),this.D>>8&255);P(this,a);this.A-=this.C.N},function(a){a=a.call(this,L(this,this.K+R(this)),this.D>>8&255);P(this,a);this.A-=this.C.N},function(a){a=a.call(this,K(this,this.D+R(this)),this.D>>8&255);
P(this,a);this.A-=this.C.N},z[192],z[200],z[208],z[216],z[224],z[232],z[240],z[248],z[193],z[201],z[209],z[217],z[225],z[233],z[241],z[249],z[194],z[202],z[210],z[218],z[226],z[234],z[242],z[250],z[195],z[203],z[211],z[219],z[227],z[235],z[243],z[251],z[196],z[204],z[212],z[220],z[228],z[236],z[244],z[252],z[197],z[205],z[213],z[221],z[229],z[237],z[245],z[253],z[198],z[206],z[214],z[222],z[230],z[238],z[246],z[254],z[199],z[207],z[215],z[223],z[231],z[239],z[247],z[255]],He=[function(a,b){var c=
P(this,a);this.A-=this.C.N},z[192],z[200],z[208],z[216],z[224],z[232],z[240],z[248],z[193],z[201],z[209],z[217],z[225],z[233],z[241],z[249],z[194],z[202],z[210],z[218],z[226],z[234],z[242],z[250],z[195],z[203],z[211],z[219],z[227],z[235],z[243],z[251],z[196],z[204],z[212],z[220],z[228],z[236],z[244],z[252],z[197],z[205],z[213],z[221],z[229],z[237],z[245],z[253],z[198],z[206],z[214],z[222],z[230],z[238],z[246],z[254],z[199],z[207],z[215],z[223],z[231],z[239],z[247],z[255]],Je=[function(a,b){var c=
a[0].call(this,K(this,this.D+this.J),b.call(this));P(this,c);this.A-=this.C.oa},function(a,b){var c=a[0].call(this,K(this,this.D+this.I),b.call(this));P(this,c);this.A-=this.C.pa},function(a,b){var c=a[0].call(this,L(this,this.K+this.J),b.call(this));P(this,c);this.A-=this.C.pa},function(a,b){var c=a[0].call(this,L(this,this.K+this.I),b.call(this));P(this,c);this.A-=this.C.oa},function(a,b){var c=a[0].call(this,K(this,this.J),b.call(this));P(this,c);this.A-=this.C.aa},function(a,b){var c=a[0].call(this,
K(this,this.I),b.call(this));P(this,c);this.A-=this.C.aa},function(a,b){var c=a[0].call(this,K(this,R(this)),b.call(this));P(this,c);this.A-=this.C.Ka},function(a,b){var c=a[0].call(this,K(this,this.D),b.call(this));P(this,c);this.A-=this.C.aa},function(a,b){var c=a[1].call(this,K(this,this.D+this.J),b.call(this));P(this,c);this.A-=this.C.oa},function(a,b){var c=a[1].call(this,K(this,this.D+this.I),b.call(this));P(this,c);this.A-=this.C.pa},function(a,b){var c=a[1].call(this,L(this,this.K+this.J),
b.call(this));P(this,c);this.A-=this.C.pa},function(a,b){var c=a[1].call(this,L(this,this.K+this.I),b.call(this));P(this,c);this.A-=this.C.oa},function(a,b){var c=a[1].call(this,K(this,this.J),b.call(this));P(this,c);this.A-=this.C.aa},function(a,b){var c=a[1].call(this,K(this,this.I),b.call(this));P(this,c);this.A-=this.C.aa},function(a,b){var c=a[1].call(this,K(this,R(this)),b.call(this));P(this,c);this.A-=this.C.Ka},function(a,b){var c=a[1].call(this,K(this,this.D),b.call(this));P(this,c);this.A-=
@ -934,7 +934,7 @@ function Ym(a,b){if(1==b)return a.Ja[0]=pm[0],a.Ja[1]=pm[7],a.Ja;if(2==b){var c=
(c.Uc[20]&12)<<4,c.Uc[16]&128&&(g&=-49,g|=(c.Uc[20]&3)<<4),g=d[g],k=g<<2&252,q=g>>4&252,g=g>>10&252):(k=(g&4?170:0)|(g&32?85:0),q=(g&2?170:0)|(g&16?85:0),g=(g&1?170:0)|(g&8?85:0)),a.Ja[f]=[k,q,g,255]}a.xb=!0}return a.Ja}function Cl(a,b,c,d){a.Lc=b;a.rd=c;a.rb=d}
function Um(a,b){var c=!1;if(window&&a.Lc&&(!b||a.W)){var d=0,e=a.rb?a.rb:8,f=Ym(a);Zm(a,3,a.rd[0],d,e,8,a.Lc,f)&&(c=!0);d=a.rb?0:2048;e=a.rb?a.rb:9;Zm(a,1,a.rd[1],d,e,14,a.Lc,nm,om)&&(c=!0);a.rb&&Zm(a,a.nb,a.rd[1],0,a.rb,14,a.Lc,f)&&(c=!0)}return c}function Zm(a,b,c,d,e,f,g,k,q){var r=!1;null!=c&&($m(a,b,c,d,e,f,g,k,q)&&(r=!0),a.Rg&&$m(a,b<<1,c,d,e,f,g,k,q)&&(r=!0));return r}
function $m(a,b,c,d,e,f,g,k,q){var r=!1,x=b&1?0:1,B=a.Va[b],y=16>k.length?k.length:16;B||(B={Rc:e<<x,Sc:f<<x,Ne:Array(y),xi:k.slice(0,y),xf:q,Vg:Array(y)});for(q=0;q<y;q++){var J=k[q],U=B.Ne[q]?B.xi[q]:[];if(J[0]!==U[0]||J[1]!==U[1]||J[2]!==U[2]){var r=B,U=q,F=x,O=c,V=d,Y=e,ha=f,da=g,eb=[0,0,0,0],va=document.createElement("canvas");va.width=r.Rc<<4;va.height=r.Sc<<4;for(var oa=va.getContext("2d"),Oa=void 0,ab=void 0,Ja=void 0,Vb=8>ha||!V?ha:8,Da=oa.createImageData(r.Rc,r.Sc),Oa=0;256>Oa;Oa++){for(Ja=
0;Ja<ha;Ja++)for(var Ud=r.xf&&U&1&&Ja>=ha-2,Uc=da[Ja<Vb?O+Oa*Vb+Ja:V+Oa*Vb+Ja-Vb],Vd=0;Vd<=F;Vd++)for(ab=0;ab<Y;ab++){var Ie=ab<<F,Wd=(Ja<<F)+Vd,Je=Ud||Uc&128>>(8<=ab&&192<=Oa&&223>=Oa?7:ab)?J:eb;an(Da,Ie,Wd,Je);F&&an(Da,Ie+1,Wd,Je)}oa.putImageData(Da,(Oa&15)*r.Rc,(Oa>>4)*r.Sc)}r.Ne[U]="#"+l(J[0],2)+l(J[1],2)+l(J[2],2);r.xi[U]=J;r.Vg[U]=va;r=!0}}a.Va[b]=B;return r}function bn(a){0<a.cb||0<=a.ua?0>a.Yb&&(a.Yb=0):a.Yb=-1}
0;Ja<ha;Ja++)for(var Ud=r.xf&&U&1&&Ja>=ha-2,Uc=da[Ja<Vb?O+Oa*Vb+Ja:V+Oa*Vb+Ja-Vb],Vd=0;Vd<=F;Vd++)for(ab=0;ab<Y;ab++){var He=ab<<F,Wd=(Ja<<F)+Vd,Ie=Ud||Uc&128>>(8<=ab&&192<=Oa&&223>=Oa?7:ab)?J:eb;an(Da,He,Wd,Ie);F&&an(Da,He+1,Wd,Ie)}oa.putImageData(Da,(Oa&15)*r.Rc,(Oa>>4)*r.Sc)}r.Ne[U]="#"+l(J[0],2)+l(J[1],2)+l(J[2],2);r.xi[U]=J;r.Vg[U]=va;r=!0}}a.Va[b]=B;return r}function bn(a){0<a.cb||0<=a.ua?0>a.Yb&&(a.Yb=0):a.Yb=-1}
function Xm(a){if(a.W){for(var b=10;15>=b;b++)if(null==a.C.zb[b])return;var c=a.C.zb[10],b=c&31,d=a.C.zb[11]&31,e=a.C.zb[9]&31,f=!1;a.C===a.A&&(f=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!f||b>e)cn(a);else{c=a.C.zb[15]+((a.C.zb[14]&63)<<8);a.ua!=c&&(cn(a),a.ua=c);d=d-b+1;if(a.gg!=b||a.Be!=d)a.gg=b,a.Be=d;a.ib=e+1;bn(a)}}}
function cn(a){if(0<=a.ua){if(void 0!==a.ka){var b=a.ka[a.ua];if(b&131072){var b=b&-131073,c=a.ua%a.O,d=a.ua/a.O|0;a.W&&a.Va[a.W]&&(a.qb&&dn(a,c,d,b,a.qb),dn(a,c,d,b));a.ka[a.ua]=b}}a.ua=-1}}
function en(a){var b,c=a.C;a.Ge=!1;var d=c.Yd[5];if(null!=d){b=1024;var e=0,f=c.Yd[3]&31;switch(d&3){case 0:if(f){e=32;switch(f&24){case 8:e=96;break;case 16:e=160;break;case 24:e=224}c.ed=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.nb==Dl&&(e=3,c.ed=f&7)}d&8&&(b=1280);c=c.Ie[4];null!=c&&(c&4||(b|=4096,e|=16),d&64&&(c&8&&(b|=16384,e|=4),a.Ge=!0));b|=e}return b}
@ -1185,22 +1185,22 @@ tq(a,g[1],!0);if(B)if(a.Ba=B,void 0===g[2])a.U("begin assemble at "+mq(B)),a.Ma=
a.U("\tbc [a]\tclear breakpoint at addr [a]"),a.U("\tbl\tlist all breakpoints"),a.U("\tbn [n]\tbreak after [n] instruction(s)");else{var V=U.charAt(1);if("l"==V){var Y=0,Y=Y+Kq(a,a.A),Y=Y+Kq(a,a.za);(Y+=Kq(a,a.la))||a.U("no breakpoints")}else if("n"==V)a.Va=Zp(a,F),a.U("break after "+a.Va+" instruction(s)");else if(void 0===F)a.U("missing breakpoint address");else{var ha={};if("*"!=F&&(ha=tq(a,F,!0,!0),!ha))break a;F=null==ha.Xa?F:ia(ha.Xa);"c"==V?null==ha.Xa?(Ep(a),a.U("all breakpoints cleared")):
lq(a,a.A,ha)||lq(a,a.za,ha)||lq(a,a.la,ha)||a.U("breakpoint missing: "+mq(ha)):"i"==V?a.U("breakpoint "+(mc(a.ja,ha.Xa)?"enabled":"cleared")+": port "+F+" (input)"):"o"==V?a.U("breakpoint "+(qc(a.ja,ha.Xa)?"enabled":"cleared")+": port "+F+" (output)"):null!=ha.Xa&&(wq(a,ha,O),"p"==V?a.Nd(a.A,ha):"r"==V?a.Nd(a.za,ha):"w"==V?a.Nd(a.la,ha):a.U("unknown breakpoint command: "+V))}}}break;case "c":$q(a);break;case "d":a:{var da=g,eb,va=da[0],oa=da[1],Oa=da[2],ab=da[3];if("?"==oa){var Ja="";for(eb in Rp)a.ib[eb]&&
(Ja&&(Ja+=","),Ja+=eb);Ja+=",state,symbols";a.U("dump memory commands:");a.U("\tdb [a] [#] dump # bytes at address a");a.U("\tdw [a] [#] dump # words at address a");a.U("\tdd [a] [#] dump # dwords at address a");a.U("\tdh [#] [#] dump # instructions from history");a.U("\tds [#] dump descriptor info for selector #");Ja.length&&a.U("dump extension commands:\n\t"+Ja)}else if("state"==oa){var Vb=hr(a.ia,!0);"console"==Oa?console.log(Vb):($q(a),a.U(Vb))}else if("symbols"==oa)for(var Da=
0;Da<a.C.length;Da++){var Ud=a.C[Da],Uc;for(Uc in Ud.Md)if("."!=Uc.charAt(0)){var Vd=Ud.Md[Uc],Ie=Vd.o;if(void 0!==Ie){var Wd=Vd.s;void 0===Wd&&(Wd=Ud.ga);var Je=Ud.Md[Uc].l;Je&&(Uc=Je);a.U(eq(Ie,Wd)+" "+Uc)}}}else{if("ds"==va||"dg"==va||"dl"==va)va="d",da=[va,"desc",oa];"d"==va&&"page"==oa&&(va="dp",da.shift());if("dp"==va){da.shift();var ki=da[0];if(ki){var Ve=a.ic(tq(a,ki));if(-1===Ve)a.U("invalid address: "+ki);else{var ae,La=null;if(80386<=a.M.na){var be=a.ja,La={};La.ek=(Ve&-4194304)>>>20;La.zi=
a.M.Ld+La.ek;La.Db=be.ya[(La.zi&be.Mb)>>>be.Pa];La.Xi=La.Db.Xd(La.ek);La.fk=(Ve&4190208)>>>10;La.Ai=(La.Xi&-4096)+La.fk;La.Eb=be.ya[(La.Ai&be.Mb)>>>be.Pa];La.Yi=La.Eb.Xd(La.fk);La.Lk=(La.Yi&-4096)+(Ve&4095)}if(ae=La){a.U("linear PDE addr PDE PTE addr PTE physical");a.U("--------- ---------- -------- ---------- -------- ----------");var td="%"+l(Ve),td=td+(" %%"+yq(ae.zi,ae.Xi)),td=td+(" %%"+yq(ae.Ai,ae.Yi,!0)),td=td+(" %%"+l(ae.Lk));a.U(td)}else a.U("unsupported operation")}}else a.U("missing address")}else{if("d"==
0;Da<a.C.length;Da++){var Ud=a.C[Da],Uc;for(Uc in Ud.Md)if("."!=Uc.charAt(0)){var Vd=Ud.Md[Uc],He=Vd.o;if(void 0!==He){var Wd=Vd.s;void 0===Wd&&(Wd=Ud.ga);var Ie=Ud.Md[Uc].l;Ie&&(Uc=Ie);a.U(eq(He,Wd)+" "+Uc)}}}else{if("ds"==va||"dg"==va||"dl"==va)va="d",da=[va,"desc",oa];"d"==va&&"page"==oa&&(va="dp",da.shift());if("dp"==va){da.shift();var ki=da[0];if(ki){var Ue=a.ic(tq(a,ki));if(-1===Ue)a.U("invalid address: "+ki);else{var ae,La=null;if(80386<=a.M.na){var be=a.ja,La={};La.ek=(Ue&-4194304)>>>20;La.zi=
a.M.Ld+La.ek;La.Db=be.ya[(La.zi&be.Mb)>>>be.Pa];La.Xi=La.Db.Xd(La.ek);La.fk=(Ue&4190208)>>>10;La.Ai=(La.Xi&-4096)+La.fk;La.Eb=be.ya[(La.Ai&be.Mb)>>>be.Pa];La.Yi=La.Eb.Xd(La.fk);La.Lk=(La.Yi&-4096)+(Ue&4095)}if(ae=La){a.U("linear PDE addr PDE PTE addr PTE physical");a.U("--------- ---------- -------- ---------- -------- ----------");var ud="%"+l(Ue),ud=ud+(" %%"+yq(ae.zi,ae.Xi)),ud=ud+(" %%"+yq(ae.Ai,ae.Yi,!0)),ud=ud+(" %%"+l(ae.Lk));a.U(ud)}else a.U("unsupported operation")}}else a.U("missing address")}else{if("d"==
va){if("disk"==oa){da[0]="l";da[1]="json";dr(a,da);break a}for(eb in Rp)if(da[1]==eb){var gn=a.ib[eb];gn?(da.shift(),da.shift(),gn(da)):a.U("no dump registered for "+oa);break a}oa||(va=a.Lc||"db")}else a.Lc=va;if("dh"==va){var hn=oa,jn=Oa,kn="",ln=0,tb=a.Oa,wc=a.qa;if(wc.length){var Eb=+hn||a.Zb,ce=+jn||10;isNaN(Eb)?Eb=ce:kn="more ";Eb>wc.length&&(a.U("note: only "+wc.length+" available"),Eb=wc.length);tb-=Eb;0>tb&&(null==wc[wc.length-1].ga?(Eb=tb+Eb,tb=0):tb+=wc.length);var li=[];"call"==jn&&(ce=
1E5,li=["CALL"]);for(void 0!==hn&&a.U(Eb+" instructions earlier:");0<ce&&tb!=a.Oa;){var ub=wc[tb++];if(null==ub.ga)break;var ub=Dp(a,ub.Xa,ub.ga,ub.Ia,ub.type,ub.Xb,ub.rc),mn=Mq(a,ub,"history",Eb--);(!li.length||0<=mn.indexOf(li[0]))&&a.U(mn);ub.Re&&(tb+=ub.Re,ce-=ub.Re,Eb-=ub.Re);tb>=wc.length&&(tb=0);a.Zb=Eb;ln++;ce--}}ln||(a.U("no "+kn+"history available"),a.Zb=void 0)}else if("di"==va)da.shift(),a.U("no information");else{var de=tq(a,oa);if(de&&(null!=de.ga||null!=de.Ia)){var sg=0;Oa&&("l"==Oa.charAt(0)&&
(Oa=Oa.substr(1)||ab),sg=Zp(a,Oa)>>>0,65536<sg&&(sg=65536));for(var ud="",Ar=(sg||128)+15>>4||1,mi="dd"==va?4:"dw"==va?2:1,nn=0;nn<Ar;nn++){for(var tg=0,ni=0,We="",oi="",oa=mq(de),pi=0;16>pi;pi++){var ug=a.Wa(de,1),tg=tg|ug<<(ni++<<3);ni==mi&&(We+=l(tg,2*mi),We+=1==mi?7==pi?"-":" ":" ",tg=ni=0);oi+=32<=ug&&128>ug?String.fromCharCode(ug):"."}ud&&(ud+="\n");ud+=oa+" "+We+" "+oi}ud&&a.U(ud);a.Jb=de}}}}}break;case "e":if("else"==g[0])break;var vg=1,on=255,pn=a.Wa,qn=a.tc;"ew"==g[0]&&(vg=2,on=65535,
pn=a.va,qn=a.pb);var rn=vg<<1,sn=g[1];if(null==sn)a.U("edit memory commands:"),a.U("\teb [a] [...] edit bytes at address a"),a.U("\tew [a] [...] edit words at address a");else{var wg=tq(a,sn);if(wg)for(var xg=2;xg<g.length;xg++){var Xe=vq(a,g[xg]);if(void 0===Xe){a.U("unrecognized value: "+g[xg]);break}Xe&~on&&a.U("warning: "+l(Xe)+" exceeds "+vg+"-byte value");var Br=pn.call(a,wg);a.U("changing "+mq(wg)+" from 0x"+l(Br,rn)+" to 0x"+l(Xe,rn));qn.call(a,wg,Xe,vg)}}break;case "f":ar(a,g[1]);break;
case "g":a:{var tn=g[1],Cr=b;"gt"==g[0]&&(a.lb=!0);if(void 0!==tn){var qi=tq(a,tn,!0);if(!qi)break a;wq(a,qi,Cr);a.Nd(a.A,qi,!0)}a.Je(!0)||c||a.U("cpu busy or unavailable, run command ignored")}break;case "h":var ri;a.ra.Ob?(ri="halting",a.bc()):ri="already halted";c||a.U(ri);break;case "i":if("if"==g[0]){var si;var Ye=b.substr(2),Ye=qa(Ye);vq(a,Ye)?(c||a.U("true: "+Ye),si=!0):(c||a.U("false: "+Ye),si=!1);si||(d=!1);break}if("int"==g[0]){var yg;a:switch(Zp(a,g[1])){case 19:Yj(a,19,a.M.Na,!0);a.Ha=
a.wa;yg=!0;break a;case 33:Yj(a,33,a.M.Na,!0);a.Ha=a.wa;yg=!0;break a;default:yg=!1}yg||(d=!1);break}var ti=g[1];if(ti&&"?"!=ti){var ui=Zp(a,ti);if(void 0!==ui){var Dr=oc(a.ja,ui,1);a.U(ia(ui)+": "+ga(Dr))}}else a.U("input commands:"),a.U("\ti [p]\tread port [p]"),a.U("warning: port accesses can affect hardware state");break;case "k":var Er=g[0];if("?"==g[1])a.U("stack trace commands:"),a.U("\tk\tshow frame addresses"),a.U("\tks\tshow symbol information");else{var vi=0,un=a.M.Ca.ga,Ze=Dp(a),Wc=Dp(a,
u(a.M),a.M.Aa.ga);for(a.U("stack trace for "+mq(Wc));10>vi;){for(var xc=null,Fr=256;Wc.Xa>>>0<a.M.Mg>>>0;){Ze.Xa=a.vb(Wc,!0);if(null==Wc.Ia||!Fr--)break;Ze.ga=un;if(xc=fr(a,Ze))break;Ze.ga=a.vb(Wc);if(xc=fr(a,Ze,!0)){un=a.vb(Wc,!0);0<xc.indexOf("INT")&&a.vb(Wc,!0);break}}if(!xc||null==xc)break;var vn=null;if("ks"==Er){var wn=xc.match(/[0-9A-F]+$/);wn&&(vn=cr(a,wn[0]))}xc=pa(xc,50)+" ;"+(vn||"stack="+mq(Wc));a.U(xc);vi++}vi||a.U("no return addresses found")}break;case "l":if("ln"==g[0]){cr(a,g[1],
!0);break}dr(a,g);break;case "m":if("mouse"==g[0]){var wi=g[1],zg=g[2];if(a.Y){var xn=1;"-"==zg.charAt(0)&&(xn=-1,zg=zg.substr(1));var vd=Zp(a,zg,wi);if(void 0!==vd)switch(vd=vd*xn|0,wi){case "x":a.Y.Ff(vd,0);break;case "y":a.Y.Ff(0,vd);break;case "click":a.Y.ge(vd,!0);a.Y.ge(vd,!1);break;default:a.U("unknown action: "+wi)}}else a.U("no mouse");break}a:{var yc,zc=null,Va=g[1];"?"==Va&&(Va=void 0);if(void 0!==Va){var wd=0;if("all"==Va)wd=1610481663,Va=null;else if("on"==Va)zc=!0,Va=null;else if("off"==
Va)zc=!1,Va=null;else{"keys"==Va&&(Va="key");"kbd"==Va&&(Va="keyboard");for(yc in Rp)if(Va==yc){wd=Rp[yc];zc=!!(a.wc&wd);break}if(!wd){a.U("unknown message category: "+Va);break a}}wd&&("on"==g[2]?(a.wc|=wd,zc=!0):"off"==g[2]&&(a.wc&=~wd,zc=!1))}var Gr=0,Xc="";for(yc in Rp)if(!Va||Va==yc){var Hr=!!(a.wc&Rp[yc]);if(null===zc||zc==Hr)Xc&&(Xc+=","),++Gr%10||(Xc+="\n\t"),"key"==yc&&(yc="keys"),Xc+=yc}void 0===Va&&a.U("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.U((null!==zc?
(Oa=Oa.substr(1)||ab),sg=Zp(a,Oa)>>>0,65536<sg&&(sg=65536));for(var vd="",Ar=(sg||128)+15>>4||1,mi="dd"==va?4:"dw"==va?2:1,nn=0;nn<Ar;nn++){for(var tg=0,ni=0,Ve="",oi="",oa=mq(de),pi=0;16>pi;pi++){var ug=a.Wa(de,1),tg=tg|ug<<(ni++<<3);ni==mi&&(Ve+=l(tg,2*mi),Ve+=1==mi?7==pi?"-":" ":" ",tg=ni=0);oi+=32<=ug&&128>ug?String.fromCharCode(ug):"."}vd&&(vd+="\n");vd+=oa+" "+Ve+" "+oi}vd&&a.U(vd);a.Jb=de}}}}}break;case "e":if("else"==g[0])break;var vg=1,on=255,pn=a.Wa,qn=a.tc;"ew"==g[0]&&(vg=2,on=65535,
pn=a.va,qn=a.pb);var rn=vg<<1,sn=g[1];if(null==sn)a.U("edit memory commands:"),a.U("\teb [a] [...] edit bytes at address a"),a.U("\tew [a] [...] edit words at address a");else{var wg=tq(a,sn);if(wg)for(var xg=2;xg<g.length;xg++){var We=vq(a,g[xg]);if(void 0===We){a.U("unrecognized value: "+g[xg]);break}We&~on&&a.U("warning: "+l(We)+" exceeds "+vg+"-byte value");var Br=pn.call(a,wg);a.U("changing "+mq(wg)+" from 0x"+l(Br,rn)+" to 0x"+l(We,rn));qn.call(a,wg,We,vg)}}break;case "f":ar(a,g[1]);break;
case "g":a:{var tn=g[1],Cr=b;"gt"==g[0]&&(a.lb=!0);if(void 0!==tn){var qi=tq(a,tn,!0);if(!qi)break a;wq(a,qi,Cr);a.Nd(a.A,qi,!0)}a.Je(!0)||c||a.U("cpu busy or unavailable, run command ignored")}break;case "h":var ri;a.ra.Ob?(ri="halting",a.bc()):ri="already halted";c||a.U(ri);break;case "i":if("if"==g[0]){var si;var Xe=b.substr(2),Xe=qa(Xe);vq(a,Xe)?(c||a.U("true: "+Xe),si=!0):(c||a.U("false: "+Xe),si=!1);si||(d=!1);break}if("int"==g[0]){var yg;a:switch(Zp(a,g[1])){case 19:Yj(a,19,a.M.Na,!0);a.Ha=
a.wa;yg=!0;break a;case 33:Yj(a,33,a.M.Na,!0);a.Ha=a.wa;yg=!0;break a;default:yg=!1}yg||(d=!1);break}var ti=g[1];if(ti&&"?"!=ti){var ui=Zp(a,ti);if(void 0!==ui){var Dr=oc(a.ja,ui,1);a.U(ia(ui)+": "+ga(Dr))}}else a.U("input commands:"),a.U("\ti [p]\tread port [p]"),a.U("warning: port accesses can affect hardware state");break;case "k":var Er=g[0];if("?"==g[1])a.U("stack trace commands:"),a.U("\tk\tshow frame addresses"),a.U("\tks\tshow symbol information");else{var vi=0,un=a.M.Ca.ga,Ye=Dp(a),Wc=Dp(a,
u(a.M),a.M.Aa.ga);for(a.U("stack trace for "+mq(Wc));10>vi;){for(var xc=null,Fr=256;Wc.Xa>>>0<a.M.Mg>>>0;){Ye.Xa=a.vb(Wc,!0);if(null==Wc.Ia||!Fr--)break;Ye.ga=un;if(xc=fr(a,Ye))break;Ye.ga=a.vb(Wc);if(xc=fr(a,Ye,!0)){un=a.vb(Wc,!0);0<xc.indexOf("INT")&&a.vb(Wc,!0);break}}if(!xc||null==xc)break;var vn=null;if("ks"==Er){var wn=xc.match(/[0-9A-F]+$/);wn&&(vn=cr(a,wn[0]))}xc=pa(xc,50)+" ;"+(vn||"stack="+mq(Wc));a.U(xc);vi++}vi||a.U("no return addresses found")}break;case "l":if("ln"==g[0]){cr(a,g[1],
!0);break}dr(a,g);break;case "m":if("mouse"==g[0]){var wi=g[1],zg=g[2];if(a.Y){var xn=1;"-"==zg.charAt(0)&&(xn=-1,zg=zg.substr(1));var wd=Zp(a,zg,wi);if(void 0!==wd)switch(wd=wd*xn|0,wi){case "x":a.Y.Ff(wd,0);break;case "y":a.Y.Ff(0,wd);break;case "click":a.Y.ge(wd,!0);a.Y.ge(wd,!1);break;default:a.U("unknown action: "+wi)}}else a.U("no mouse");break}a:{var yc,zc=null,Va=g[1];"?"==Va&&(Va=void 0);if(void 0!==Va){var xd=0;if("all"==Va)xd=1610481663,Va=null;else if("on"==Va)zc=!0,Va=null;else if("off"==
Va)zc=!1,Va=null;else{"keys"==Va&&(Va="key");"kbd"==Va&&(Va="keyboard");for(yc in Rp)if(Va==yc){xd=Rp[yc];zc=!!(a.wc&xd);break}if(!xd){a.U("unknown message category: "+Va);break a}}xd&&("on"==g[2]?(a.wc|=xd,zc=!0):"off"==g[2]&&(a.wc&=~xd,zc=!1))}var Gr=0,Xc="";for(yc in Rp)if(!Va||Va==yc){var Hr=!!(a.wc&Rp[yc]);if(null===zc||zc==Hr)Xc&&(Xc+=","),++Gr%10||(Xc+="\n\t"),"key"==yc&&(yc="keys"),Xc+=yc}void 0===Va&&a.U("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.U((null!==zc?
zc?"messages on: ":"messages off: ":"message categories:\n\t")+(Xc||"none"));Fp(a)}break;case "o":var xi=g[1],Ir=g[2];if(xi&&"?"!=xi){var yi=Zp(a,xi,"port #"),zi=Zp(a,Ir);void 0!==yi&&void 0!==zi&&(sc(a.ja,yi,1,zi),a.U(ia(yi)+": "+ga(zi)))}else a.U("output commands:"),a.U("\to [p] [b]\twrite byte [b] to port [p]"),a.U("warning: port accesses can affect hardware state");break;case "p":if("print"==g[0]){er(a,b.substr(5));break}var yn="pr"==g[0]?1:0,ee=1+yn;if(a.P)a.U("step in progress");else{var Ag,
zn=!1,nb=Dp(a,v(a.M),a.M.Ca.ga);do switch(Ag=!1,a.Wa(nb)){case 38:case 46:case 54:case 62:case 100:case 101:case 102:case 103:case 240:oq(a,nb,1);Ag=!0;break;case 204:case 206:a.P=ee;oq(a,nb,1);break;case 205:case 224:case 225:case 226:a.P=ee;oq(a,nb,nb.Xb?4:2);break;case 232:a.P=ee;oq(a,nb,nb.Xb?5:3);break;case 154:a.P=ee;oq(a,nb,nb.Xb?7:5);break;case 255:var An=a.vb(nb)&14591;if(4351==An||6399==An)a.P=ee,Mq(a,nb);break;case 243:case 242:oq(a,nb,1);zn=Ag=!0;break;case 108:case 109:case 110:case 111:case 164:case 165:case 166:case 167:case 170:case 171:case 172:case 173:case 174:case 175:zn&&
(a.P=ee,oq(a,nb,1))}while(Ag);a.P?(a.Nd(a.A,nb,!0),a.Je()||(a.M.Vc(),a.P=0)):gr(a,yn?"tr":"t")}break;case "r":if("reset"==b){a.ia&&a.ia.reset();break}Eq(a,g);break;case "t":gr(a,g[0],g[1]);break;case "u":Fq(a,g[1],g[2],8);break;case "v":if("var"==g[0]){br(a,b.substr(3))||(d=!1);break}a.U("PCjs version 1.20.9 ("+a.M.na+",RELEASE,NOPREFETCH"+(Ab?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)");break;case "x":a:if(g[1]&&"?"!=g[1])switch(g[1]){case "cs":var $e;void 0!==g[3]&&($e=+g[3]);switch(g[2]){case "int":a.M.ba.gf=
$e;break;case "start":a.M.ba.Hf=$e;break;case "stop":a.M.ba.jf=$e;break;default:a.U("unknown cs option");break a}void 0!==$e&&Vc(a.M);a.U("checksums "+(a.M.ra.Xe?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(dd(a.M,+g[2])||a.U("warning: using 1x multiplier, previous target not reached"));a.U("target speed: "+(a.M.ba.Ce.toFixed(2)+"Mhz")+" ("+a.M.ba.Td+"x)");break;default:a.U("unknown option: "+g[1])}else a.U("execution options:"),a.U("\tcs int #\tset checksum cycle interval to #"),a.U("\tcs start #\tset checksum cycle start count to #"),
a.U("\tcs stop #\tset checksum cycle stop count to #"),a.U("\tsp #\t\tset speed multiplier to #");break;case "?":if(g[1]){er(a,b.substr(1));break}var af="commands:",Ai;for(Ai in Kp)af+="\n"+pa(Ai,7)+Kp[Ai];Of(a)||(af+="\nnote: frequency/history disabled if no exec breakpoints");a.U(af);break;default:a.U("unknown command: "+b),d=!1}}}catch(Bn){a.U("debugger error: "+(Bn.stack||Bn.message)),d=!1}return d}function Hp(a,b,c){b=xq(a,b,c);for(var d in b)if(!Lq(a,b[d]))return!1;return!0}
(a.P=ee,oq(a,nb,1))}while(Ag);a.P?(a.Nd(a.A,nb,!0),a.Je()||(a.M.Vc(),a.P=0)):gr(a,yn?"tr":"t")}break;case "r":if("reset"==b){a.ia&&a.ia.reset();break}Eq(a,g);break;case "t":gr(a,g[0],g[1]);break;case "u":Fq(a,g[1],g[2],8);break;case "v":if("var"==g[0]){br(a,b.substr(3))||(d=!1);break}a.U("PCjs version 1.20.9 ("+a.M.na+",RELEASE,NOPREFETCH"+(Ab?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)");break;case "x":a:if(g[1]&&"?"!=g[1])switch(g[1]){case "cs":var Ze;void 0!==g[3]&&(Ze=+g[3]);switch(g[2]){case "int":a.M.ba.gf=
Ze;break;case "start":a.M.ba.Hf=Ze;break;case "stop":a.M.ba.jf=Ze;break;default:a.U("unknown cs option");break a}void 0!==Ze&&Vc(a.M);a.U("checksums "+(a.M.ra.Xe?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(dd(a.M,+g[2])||a.U("warning: using 1x multiplier, previous target not reached"));a.U("target speed: "+(a.M.ba.Ce.toFixed(2)+"Mhz")+" ("+a.M.ba.Td+"x)");break;default:a.U("unknown option: "+g[1])}else a.U("execution options:"),a.U("\tcs int #\tset checksum cycle interval to #"),a.U("\tcs start #\tset checksum cycle start count to #"),
a.U("\tcs stop #\tset checksum cycle stop count to #"),a.U("\tsp #\t\tset speed multiplier to #");break;case "?":if(g[1]){er(a,b.substr(1));break}var $e="commands:",Ai;for(Ai in Kp)$e+="\n"+pa(Ai,7)+Kp[Ai];Of(a)||($e+="\nnote: frequency/history disabled if no exec breakpoints");a.U($e);break;default:a.U("unknown command: "+b),d=!1}}}catch(Bn){a.U("debugger error: "+(Bn.stack||Bn.message)),d=!1}return d}function Hp(a,b,c){b=xq(a,b,c);for(var d in b)if(!Lq(a,b[d]))return!1;return!0}
Sa(function(){for(var a=qb(document,"pcjs","debugger"),b=0;b<a.length;b++){var c=a[b],d=mb(c),d=new Cp(d);pb(d,c)}});function df(a,b,c){this.id=a.id;this.key=ir(a,b,c);this.ma=a.ma;jr(this,a.xk)}function ir(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}
df.prototype={constructor:df,value:function(){return this[this.id]},data:function(){return this[this.id]},load:function(a){return a?(this[this.id]=a,this.A=!0):this.A?!0:Fa()&&(a=Ga(this.key))?(this[this.id]=a,this.A=!0):!1},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){jr(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 jr(a,b){a[a.id]={};b&&ef(a,"parms",b);a.A=!1}function kr(a){var b=!0;if(Fa()){var c=JSON.stringify(a[a.id]);Ha(a.key,c)||(Ba("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function lr(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){Ba(c.message||c),b=!1}return b}function mr(a,b){return a[a.id][b]||null}function ef(a,b,c){try{a[a.id][b]=c}catch(d){}}
@ -1226,6 +1226,8 @@ function zr(a,b,c,d,e,f,g){function k(a,f){if(f)g(f,null);else{if(c){var k=b;k&&
k.async=!1,k.loadXML(a)):k=(new window.DOMParser).parseFromString(a,"text/xml")}catch(B){k=null,a=B.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,k)}}a?e?Jr(a,f,k):k(a,null):g("no data"+(b?" for file: "+b:""),null)}
function Jr(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");za(e,!0,null,null,function(f,g,k){if(k||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(f=d[3])if(k=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var q=k[0],r,x=/( [a-z]+=)(['"])(.*?)\2/g;r=x.exec(f);)q=0>q.indexOf(r[1])?q.replace(">",r[0]+">"):q.replace(new RegExp(r[1]+"(['\"])(.*?)\\1"),r[0]);k[0]!=q&&(g=g.replace(k[0],q))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);Jr(a,b,c)}})}else c(a,null)}
function Kr(a,b,c,d){function e(a){if(void 0===k){var b=g&&qb(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=na(a))}function f(a){e("Error: "+a);q&&(--xr||Ua(!0));q=!1}var g,k,q=!0;xr++;hb[a]={};try{if(g=document.getElementById(a)){c||(c="/versions/pcjs/1.20.9/components.xsl");var r=function(d,k){k?(ib(a,"xml",d),yr(c,null,null,!1,e,function(c,d){if(d)if(ib(a,"xsl",c),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var q=k.transformNode(d);q?(g.outerHTML=q,--xr||Ua(!0)):
f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(q=new XSLTProcessor,q.importStylesheet(d),(q=q.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(q,g),--xr||Ua(!0)):f("invalid machine element: "+a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(c)})):f(d)};"<"!=b.charAt(0)?yr(b,a,d,!0,e,r):zr(b,null,a,d,!1,e,r)}else f("missing machine element: "+a)}catch(x){f(x.message)}return q}
window.embedPC=function(a,b,c,d){Ua(!1);return Kr(a,b,c,d)};window.savePC=function(a){var b=lb("Computer",a),c=lb("Debugger",a);if(b)return za("/versions/pcjs/null/pc"+(c?"-dbg":"")+".js"),!0;Ba("Unable to identify machine '"+a+"'");return!1};window.enableEvents=Ua;window.sendEvent=Wa;})();
function Kr(a,b,c,d){function e(a){if(void 0===k){var b=g&&qb(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=na(a))}function f(a){e("Error: "+a);q&&(--xr||Ua(!0));q=!1}var g,k,q=!0;xr++;hb[a]={};try{if(g=document.getElementById(a)){c||(c="/versions/pcjs/1.20.9/components.xsl");var r=function(d,k){k?(ib(a,b,d),yr(c,null,null,!1,e,function(d,q){if(q)if(ib(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var r=k.transformNode(q);r?(g.outerHTML=r,--xr||Ua(!0)):f("transformNodeToObject failed")}else document.implementation&&
document.implementation.createDocument?(r=new XSLTProcessor,r.importStylesheet(q),(r=r.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(r,g),--xr||Ua(!0)):f("invalid machine element: "+a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)})):f(d)};"<"!=b.charAt(0)?yr(b,a,d,!0,e,r):zr(b,null,a,d,!1,e,r)}else f("missing machine element: "+a)}catch(x){f(x.message)}return q}
function Lr(a,b,c,d){if(b&&(c=d[0],b=b.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/))){d=hb[c];var e={},f;for(f in d){var g=d[f];if("xml"==f)for(var k,q=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;k=q.exec(d[f]);){var r=k[2];r&&(d[r]?console.log("saving disk: '"+r):g=g.replace(k[0],""))}console.log("saving resource: '"+f+"' ("+g.length+" bytes)");e[f]=g}f=JSON.stringify(e);b=b[1]+"var resources="+f+";"+b[2]+b[3];console.log("saving machine: '"+c+"' ("+b.length+" bytes)");f="data:application/octet-stream;base64,"+
btoa(b);c=document.createElement("a");"string"==typeof c.download?(c.href=f,c.download=ja(a,!0)+".json",document.body.appendChild(c),c.click(),document.body.removeChild(c)):window.open(f)}}window.embedPC=function(a,b,c,d){Ua(!1);return Kr(a,b,c,d)};window.savePC=function(a,b){var c=lb("Computer",a),d=lb("Debugger",a);if(c)return b||(b="/versions/pcjs/1.20.9/pc"+(d?"-dbg":"")+".js"),za(b,!0,null,null,Lr,[a,c,d]),!0;Ba("Unable to identify machine '"+a+"'");return!1};window.enableEvents=Ua;
window.sendEvent=Wa;})();