Added support for a new "flicker" PCx86 Video property that simulates good old-fashioned CGA flicker -- don't leave home without it!

This commit is contained in:
Jeff Parsons 2017-07-12 16:22:26 -07:00 • committed by Jeff Parsons
commit 9e149dda6a
330 changed files with 193547 additions and 1501 deletions

View file

@ -0,0 +1,304 @@
(function(){/*
http://pcjs.org/modules/shared/lib/dumpapi.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/lib/reportapi.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/lib/userapi.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/lib/keys.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/lib/strlib.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/lib/weblib.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/messages.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/device.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/rom.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/ram.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/computer.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/lib/state.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/lib/embed.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/lib/defines.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/lib/usrlib.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/lib/component.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/defines.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/panel.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/bus.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/memory.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/cpu.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/cpustate.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/cpuops.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/serial.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/lib/debugger.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/debugger.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/macro10.js (C) Jeff Parsons 2012-2017
*/
var m,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this;function ca(){ca=function(){};ba.Symbol||(ba.Symbol=da)}var ea=0;function da(a){return"jscomp_symbol_"+(a||"")+ea++}
function fa(){ca();var a=ba.Symbol.iterator;a||(a=ba.Symbol.iterator=ba.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ha(this)}});fa=function(){}}function ha(a){var b=0;return ia(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function ia(a){fa();a={next:a};a[ba.Symbol.iterator]=function(){return this};return a}
function la(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}function ma(a,b){if(b){var c=ba;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&aa(c,a,{configurable:!0,writable:!0,value:b})}}
ma("Math.trunc",function(a){return a?a:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b}});ma("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
var na={vc:0,Nb:1,xc:2,yc:3,zc:4,Ac:5,Bc:6,Cc:7,xb:8,Dc:9,Ob:10,Ec:11,Fc:12,Pb:13,Gc:14,Hc:15,Ic:16,Jc:17,Kc:18,Lc:19,Mc:20,Nc:21,Oc:22,Pc:23,Qc:24,Rc:25,Sc:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,wb:65,uc:66,wc:67,Tc:68,E:69,Uc:70,Vc:71,Wc:72,Xc:73,Yc:74,Zc:75,$c:76,ad:77,bd:78,dd:79,ed:80,Q:81,fd:82,gd:83,hd:84,jd:85,kd:86,ld:87,
nd:88,od:89,Sb:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,pd:97,qd:98,rd:99,d:100,e:101,sd:102,td:103,ud:104,vd:105,xd:106,k:107,yd:108,zd:109,n:110,Ad:111,p:112,q:113,r:114,Bd:115,t:116,Dd:117,Ed:118,Fd:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Qb:127};
function oa(a,b){var c;if(a){b||(b=10);var d,e,f=0<a.indexOf(",");f&&(a=a.replace(/,/g,""));d=e=a.charAt(0);"#"==e?(b=8,e=""):"$"==e&&(b=16,e="");d!=e?a=a.substr(1):(d=e=a.substr(0,2),"0b"==e&&f||"^B"==e?(b=2,e=""):"0o"==e||"^O"==e?(b=8,e=""):"^D"==e?(b=10,e=""):"0x"==e&&(b=16,e=""),d!=e&&(a=a.substr(2)));d=e=a.slice(-1);"Y"==e||"y"==e?(b=2,e=""):"."==e?(b=10,e=""):"H"==e||"h"==e?(b=16,e=""):"K"==e?e="000":"M"==e?e="000000":"G"==e&&(e="000000000");d!=e&&(a=a.slice(0,-1)+e);var g;d=0;10>=b&&(e=a.match(/(-?[0-9]+)B([0-9]*)/))&&
(a=e[1],d=35-((e[2]||35)&255));e=a;((f=b)&&10!=f?16==f?e.match(/^-?[0-9a-f]+$/i):8==f?e.match(/^-?[0-7]+$/):2==f&&e.match(/^-?[01]+$/):e.match(/^-?[0-9]+$/))&&!isNaN(g=parseInt(a,b))&&(d&&(0>g&&(g+=Math.pow(2,36)),g=0<d?g*Math.pow(2,d):Math.trunc(g/Math.pow(2,-d))),c=g)}return c}
function pa(a,b,c,d,e){e=void 0===e?0:e;var f="";isNaN(a)?a=null:null!=a&&(0>a&&-1<a&&(a=-1),0>a&&(a+=Math.pow(b,c)),a>=Math.pow(b,c)&&(c=Math.ceil(Math.log(a)/Math.log(b))));for(var g=e||-1;0<c--;){g||(f=","+f,g=e);if(null==a)f="?"+f;else{var h=a%b,h=h+(0<=h&&9>=h?48:55),f=String.fromCharCode(h)+f;a=Math.trunc(a/b)}g--}return(void 0===d?"":d)+f}function qa(a,b,c){b?12<b&&(b=12):(b=Math.abs(a),b=262143>=b?6:16777215>=b?8:12);return pa(a,8,b,c?"0o":"")}
function xa(a,b){b?11<b&&(b=11):b=99999>=Math.abs(a)?5:11;return pa(a,10,b)}function n(a,b,c){b?9<b&&(b=9):(b=Math.abs(a),b=65535>=b?4:4294967295>=b?8:9);return pa(a,16,b,c?"0x":"")}function ya(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function za(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function Aa(a,b){return-1!==a.indexOf(b,a.length-b.length)}
function Ba(a){return a.replace(/[&<>"']/g,function(a){return Ca[a]})}function Da(a,b){return(a+" ").slice(0,b)}function Ea(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var Ca={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function Fa(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var g=d+e>>1,h;h=c(b,a[g]);0<h?d=g+1:(e=g,f=!h)}return f?d:~d}
function Ia(){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())}
function Ja(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,
f,e))});if(b&&"object"==typeof b){var k="",l;for(l in b)b.hasOwnProperty(l)&&(k&&(k+="&"),k+=l+"="+encodeURIComponent(b[l]));k=k.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}
function Ka(a,b){var c,d={ea:null,aa:null,la:null,ya:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.la=g.load;d.ya=g.exec;if(e=g.bytes)d.ea=e;else if(e=g.words)for(d.ea=Array(2*e.length),f=c=0;c<e.length;c++)d.ea[f++]=e[c]&255,d.ea[f++]=e[c]>>8&255;else if(e=g.longs)for(d.ea=Array(4*e.length),f=c=0;c<e.length;c++)d.ea[f++]=
e[c]&255,d.ea[f++]=e[c]>>8&255,d.ea[f++]=e[c]>>16&255,d.ea[f++]=e[c]>>24&255;else(e=g.data)?d.Oa=e:d.ea=g;d.ea&&(d.ea.length?1==d.ea.length&&(r(d.ea[0]),d=null):(r("Empty resource: "+a),d=null));d.aa=g.symbols}catch(h){r("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){r("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.ea=e)}return d}
function La(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Ma(){if(null==Na){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}Na=a}return Na}function Oa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function Ta(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Ua(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)}return!1}
function Va(a){if(!Wa){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}Wa=c}return Wa[a]||Wa[a.toLowerCase()]}function Xa(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function Ya(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}}function Za(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function $a(a){ab.init.push(a)}
function bb(a){if(cb)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){r(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function db(a){!cb&&a?(cb=!0,eb&&fb("init"),gb&&fb("show")):cb=a}function fb(a){ab[a]&&bb(ab[a])}var Wa=null,ab={init:[],show:[],exit:[]},eb=!1,gb=!1,cb=!0,Na=null;Za("onload",function(){eb=!0;bb(ab.init)});Za("onpageshow",function(){gb=!0;bb(ab.show)});
Za(Ua("iOS")?"onpagehide":Ua("Opera")?"onunload":"onbeforeunload",function(){bb(ab.exit)});function t(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Cb=b.comment;this.Vb=b;this.exports={};this.J=this.bindings={};a=this.id.indexOf(".");0>a?this.Db=this.id:(this.$a=this.id.substr(0,a),this.Db=this.id.substr(a+1));this.A={ready:!1,Ua:!1,ob:!1,wd:!1,ba:!1,ub:!1,error:!1};this.cb=null;this.A.error=!1;this.da=c||0;this.D=this.v=this.H=this.G=null;hb.push(this)}
function ib(a,b,c){jb[a]&&b&&(jb[a][b]=c)}function pb(){return Date.now()||+new Date}function r(a){window&&window.alert(a)}function qb(a){var b=!1;window&&(b=window.confirm(a));return b}function rb(a,b){a.value+=b;b=a.value;8192<b.length&&(a.value=b.substr(b.length-4096));a.scrollTop=a.scrollHeight}
function sb(a,b){var c=u;b=v(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var h=g.getAttribute("class");if(h)for(var k=h.split(" "),l=0;l<k.length;l++)switch(h=k[l],h){case c+"-binding":(h=w(g))&&h.binding&&a.sa(h.type,h.binding,g,h.value),l=k.length}}}}function tb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<hb.length;b++){var d=hb[b];a&&d.id.indexOf(a)||c.push(d)}return c}
function ub(a){if(void 0!==a){var b;for(b=0;b<hb.length;b++)if(hb[b].id===a)return hb[b]}return null}function vb(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<hb.length;d++)if(c)c==hb[d]&&(c=null);else if(!(a!=hb[d].type||b&&hb[d].id.indexOf(b)))return hb[d]}return null}function w(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){r(c.message+" ("+a+")")}return b}
function v(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
function wb(a){for(var b=!0,c=xb[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=yb.indexOf(e)&&(f=function(){return function(){wb(a)}}());var g=zb[e];if(g)if(!f)b=g(d[1],d[2],d[3]);else{if(!g(f,d[1],d[2],d[3]))break}else{var b=!1,h=vb(d[1],a);if(h)if(g=Ab[e])b=g(h,d[2],d[3]);else{var k=h.exports;if(k&&(g=k[e]))if(b=!0,!f)b=g.call(h,d[2],d[3]);else if(!g.call(h,f,d[2],d[3]))break}}if(!b){r("Script error: "+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete xb[a];return b}m=t.prototype;
m.toString=function(){return this.name?this.name:this.id||this.type};
m.sa=function(a,b,c){switch(b){case "clear":return this.J[b]||(this.J[b]=c,c.onclick=function(a){return function(){a.J.print&&(a.J.print.value="")}}(this)),!0;case "print":return this.J[b]||(this.J[b]=c,this.ja=function(a){this.u(a,this.type);return!0},c.value="",this.print=function(a){return function(b){rb(a,b)}}(c),this.u=function(a,b){return function(a,c){a||(a="");if(c!=Bb.Rb||"..."!=a.slice(-3))c&&(a=c+": "+a),rb(b,a+"\n");else{c=b.value;var d=c.lastIndexOf(a);0>d?c+=a+"\n":c=c.substr(0,d)+(a+
".")+c.substr(d+a.length);8192<c.length&&(c=c.substr(c.length-4096));b.value=c;b.scrollTop=b.scrollHeight}}}(this,c)),!0;default:return!1}};m.log=function(){};m.print=function(){};m.u=function(){};m.status=function(a){this.u(this.type+": "+a)};m.ja=function(a,b,c){if(!b){var d=vb("Computer",this.id);if(d&&d.A.ub)return console.log("ignoring notice during unload: "+a),!1}c=c||this.type;b||r((c?c+": ":"")+a);return!0};function Cb(a,b){a.A.error=!0;a.ja(b)}
function Db(a){return a.A.error?(a.u(a.toString()+" error"),!0):!1}function Eb(a,b){b&&(a.A.ready?b():a.cb=b);return a.A.ready}function Pb(a){if(!a.A.error&&(a.A.ready=!0,a.A.ready)){var b=a.cb;a.cb=null;b&&b()}}function Qb(a,b){a.A.Ua&&(b?a.A.ob=!0:void 0===b&&a.u(a.toString()+" busy"));return a.A.Ua}function Rb(a,b){if(a.A.ob)return a.A.Ua=!1,a.A.ob=!1;if(a.A.error)return a.u(a.toString()+" error"),!1;a.A.Ua=b;return a.A.Ua}m.Aa=function(){return this.A.ba=!0};
m.ra=function(a,b){b&&(this.A.ba=!1);return!0};function Sb(a,b){if(a.D){a===a.D?b|=0:b=b||a.da;var c=a.D.da&b;return!!b&&c===b||!!(c&a.D.Eb)}return!1}function Tb(a,b,c,d){a.D&&(!0===c||Sb(a,c|0))&&a.D.message(b,d)}var Bb={ERROR:"error",cd:"notice",Rb:"progress",SCRIPT:"script",md:"warning"};window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
var jb=window?window.PCjs.Machines:{},hb=window?window.PCjs.Components:[],xb=window?window.PCjs.Commands:{},yb=["hold","sleep","wait"],zb={alert:function(a){r(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},Ab={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
var u="pdp10",Ub="PDPjs",Vb=Math.pow(2,18)-1,Wb=Math.pow(2,18),Xb=Math.pow(2,17)-1,Yb=Math.pow(2,17),x=Math.pow(2,18)-1,y=Math.pow(2,18),z=Math.pow(2,35)-1,A=Math.pow(2,35),B=Math.pow(2,36)-1,C=Math.pow(2,36),E=Math.pow(2,32),Zb=Math.pow(2,34),$b=Math.pow(2,36),ac=Math.pow(2,21),bc=Math.pow(2,26),cc=Math.pow(2,23),dc=Math.pow(2,30),u="pdp10",Ub="PDPjs",ec={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,paper:4096,read:16384,write:32768,serial:1048576,
timer:2097152,speaker:16777216,computer:33554432,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};
function fc(a,b){t.call(this,"Panel",a,512);this.K=this.L=0;this.V=b;this.i=this.I=this.j=this.w=0;this.M=this.N=-1;this.O=this.R=this.F=!1;this.S=gc;this.C={};this.b={START:[1,1,!0,!1,this.fc],STEP:[1,1,!1,!1,this.gc],ENABLE:[1,1,!1,!1,this.ac],CONT:[1,1,!0,!1,this.Zb],DEP:[0,0,!0,!1,this.$b],EXAM:[1,1,!0,!1,this.bc],LOAD:[1,1,!0,!1,this.dc],TEST:[0,0,!0,!1,this.cc]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.ec,a];this.D=this.v=this.H=this.G=null;this.exports={hold:this.Wb,toggle:this.pc,reset:this.lc,
set:this.oc};Pb(this)}la(fc,t);m=fc.prototype;m.reset=function(a){this.stop();a&&hc(this,this.w=0)};
m.sa=function(a,b,c,d){if(this.G&&this.G.sa(a,b,c,d)||this.v&&this.v.sa(a,b,c,d)||this.D&&this.D.sa(a,b,c,d))return!0;switch(b){case "PC":return this.J[b]=c,this.L++,!0;default:return"led"==a||"rled"==a?(this.J[b]=c,this.C[b]=d?1:0,this.L++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.J[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){ic(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){jc(a,b)}}(this,b),a.ontouchstart=
function(a,b){return function(c){ic(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){jc(a,b)}}(this,b),!0):t.prototype.sa.call(this,a,b,c,d)}};m.La=function(a,b,c,d){this.G=a;this.H=b;this.v=c;this.D=d;kc(this);lc(this)};m.Aa=function(a,b){if(!b)if(this.V&&mc(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};m.ra=function(a){return a?this.save():!0};m.save=function(){var a=new G(this);a.set(0,[this.i,this.w,this.j]);return a.data()};
m.restore=function(a){if(a=a[0])nc(this,this.i=a[0]),hc(this,this.w=a[1]),oc(this,a[2]);return!0};m.lc=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}lc(this);return!0};function pc(a,b,c){if(a=a.J[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function kc(a,b){for(var c in a.C)pc(a,c,null!=b?b:a.C[c])}function qc(a,b,c){if(a=a.J[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function lc(a){for(var b in a.b)qc(a,b,a.b[b][1])}
m.Wb=function(a,b,c){if(ic(this,b)){if(c){var d=this;setTimeout(function(){jc(d,b);a&&a()},+c);return!1}jc(this,b)}return!0};m.oc=function(a,b){if("SR"==a)return oc(this,oa(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,qc(this,a,c[1]),!0):!1};m.pc=function(a){return ic(this,a)?(jc(this,a),!0):!1};function ic(a,b){var c=a.b[b];return c?(qc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=rc&&(a.O=b==sc,a.R=b==tc),!0):!1}
function jc(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(qc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}m.fc=function(a){a||this.v.A.P||(H(this.v,this.i),this.b[uc]&&this.b[uc][1]&&vc(this.v))};m.gc=function(){};m.ac=function(a){a||this.v.Y()};
m.Zb=function(a){if(!a&&!this.v.A.P)if(this.b[uc]&&this.b[uc][1])vc(this.v);else{if((a=this.D)&&!Qb(a,!0))Rb(a,!0),wc(a,0,null),Rb(a,!1);else try{var b=this.v.Ya(1);0<b&&(xc(this.v,b),yc(this.v,b,!0),zc(this.v,b))}catch(c){"number"!=typeof c&&Cb(this.v,c.stack||c.message)}this.stop();this.G&&K(this.G)}};m.$b=function(a){a&&!this.v.A.P&&(this.O&&Ac(this),a=hc(this,this.w=this.j),this.S==gc?Bc(this.H,this.i,a):this.v.g(this.i,a))};
m.bc=function(a){if(!a&&!this.v.A.P){var b;this.R&&Ac(this);this.S==gc?b=Cc(this.H,this.i):b=this.v.f(this.i);hc(this,this.w=b)}};m.dc=function(a){a||this.v.A.P||nc(this,this.j)};m.cc=function(a){a?(this.F=!0,kc(this,!0)):(this.F=!1,kc(this),oc(this,0))};m.ec=function(a,b){this.j=a?this.j|1<<b:this.j&~(1<<b)};function Ac(a){var b=1,c=a.H.j;a.b[rc]&&a.b[rc][1]||(b=-b);nc(a,a.i&~c|a.i+b&c)}
function nc(a,b){a.i=b&a.H.j;if(a.M!==a.i){a.M=a.i;b=a.M;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.C[e]=f;d.F||pc(d,e,f)}}}function hc(a,b){a.I=b%C;if(a.N!==a.I){a.N=a.I;b=a.N;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.C[e]=f;d.F||pc(d,e,f)}}return a.I}function oc(a,b){a.j=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.j&1<<b?1:0;lc(a);return!0}m.stop=function(){nc(this,this.v.i)};
function mc(){for(var a=v(document,u,"panel"),b=0;b<a.length;b++){var c=a[b],d=w(c),e=ub(d.id);e||(e=new fc(d,!0));sb(e,c)}}var gc=7,sc="DEP",uc="ENABLE",tc="EXAM",rc="STEP";$a(mc);function Dc(a,b,c){t.call(this,"Bus",a,16);this.v=b;this.D=c;this.F=+a.busWidth||18;this.I=1<<this.F;this.j=this.I-1;this.i=Math.log2(16384);this.C=this.I/16384|0;this.w=0;this.b=[];a=new Ec(this);Fc(a,this.D);this.b=Array(this.C);for(b=0;b<this.C;b++)this.b[b]=a;Pb(this)}la(Dc,t);m=Dc.prototype;m.reset=function(){};
m.Aa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.ra=function(a){return a?this.save():!0};m.save=function(){var a=new G(this);a.set(0,Gc(this));return a.data()};m.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,f=Array(4096),g=0;g<d.length-1;)for(var h=d[g++],k=d[g++];h--;)f[e++]=k;d=f}e=this.b[c];if(!e||!e.restore(d)){r("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function Hc(a,b,c,d){for(var e=b,f=c,g=e>>>a.i;0<f&&g<a.b.length;){var h=a.b[g],k=16384*g,l=16384-(e-k);l>f&&(l=f);if(h&&h.size){if(h.type==d){if(e+f<=h.B)return h.Wa+=h.B-e,h.B=e,!0;if(e>=h.B+h.Wa){l=h.size-(e-k);l>f&&(l=f);h.Wa=e-h.B+l;e=k+16384;f-=l;g++;continue}}return Ic(Jc,e,f)}e=new Ec(a,e,l,16384,d);Fc(e,a.D,h);a.b[g++]=e;e=k+16384;f-=l}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Kc[d]+" at "+qa(b)),!0):Ic(Lc,b,c)}
function Cc(a,b){var c=a.b[(b&a.j)>>>a.i];a.w++;b=c.w(b&16383,b);a.w--;return b}function Bc(a,b,c){var d=a.b[(b&a.j)>>>a.i];a.w++;d.D(c,b&16383,b);a.w--}function Gc(a){for(var b=0,c=[],d=0;d<a.C;d++){var e=a.b[d];if(e.qb||e.Ub){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,k=[];g<e.length;){for(var l=e[g],p=g+1;p<e.length&&e[p]===l;)p++;k[h++]=p-g;k[h++]=l;g=p}k.length<e.length&&(e=k)}c[f]=e}}return c}
m.Jb=function(a){if(!this.w)throw this.D&&Sb(this.D,4)&&Tb(this.D,"memory fault on "+L(this.D,a),!0,!0),this.v.Y(),-1;};function Ic(a,b,c){r("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var Jc=1,Lc=2;function Qc(a){t.call(this,"Device",a,256)}la(Qc,t);m=Qc.prototype;m.La=function(a,b,c,d){this.H=b;this.G=a;this.v=c;this.D=d;Pb(this)};m.Aa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.ra=function(a){return a?this.save():!0};m.reset=function(){};
m.save=function(){return(new G(this)).data()};m.restore=function(){return!0};$a(function(){for(var a=v(document,u,"device"),b=0;b<a.length;b++){var c,d=a[b];c=w(d);switch(c.type){case "default":c=new Qc(c),sb(c,d)}}});
function Ec(a,b,c,d,e){this.H=a;this.id=Rc+=2;this.B=b;this.Wa=c;this.size=d||0;this.type=e||Sc;this.G=e==Tc;this.b=null;this.f=this.w=this.tb;this.g=this.D=this.Xa;this.i=this.v=0;Fc(this);this.qb=this.Ub=!1;if(this.size){a=this.j=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Uc(this,Vc)}else Uc(this)}m=Ec.prototype;m.save=function(){return this.j};m.restore=function(a){return a&&this.size==a.length?(this.j=a,this.qb=!0):!1};function Uc(a,b){b||(b=Wc);Xc(a,b,void 0);Yc(a,b,void 0)}
function Xc(a,b,c){c&&a.i||(a.f=b[0]||a.tb);if(c||void 0===c)a.w=b[0]||a.tb}function Yc(a,b,c){c&&a.v||(a.g=!a.G&&b[1]||a.Xa);if(c||void 0===c)a.D=b[1]||a.Xa}m.Ra=function(a,b){b?this.v++||Yc(this,Zc,!1):this.i++||Xc(this,Zc,!1)};function $c(a,b){b?--a.v||(a.g=a.G?a.Xa:a.D):--a.i||(a.f=a.w)}function Fc(a,b,c){a.b=b;a.i=a.v=0;c&&((a.i=c.i)&&Xc(a,Zc,!1),(a.v=c.v)&&Yc(a,Zc,!1))}m.tb=function(a,b){this.b&&Sb(this.b,32)&&Tb(this.b,"attempt to read invalid address "+L(this.b,b),!0);this.H.Jb(b);return-1};
m.Xa=function(a,b,c){this.b&&Sb(this.b,32)&&Tb(this.b,"attempt to write "+L(this.b,a)+" to invalid addresses "+L(this.b,c),!0);this.H.Jb(c)};m.jc=function(a){return this.j[a]};m.sc=function(a,b){this.j[b]!=a&&(this.j[b]=a,this.qb=!0)};m.hc=function(a,b){if(this.b&&null!=this.B){var c=this.b;ad(c,this.B+a,2,c.N)&&c.Y(!1)}return this.w(a,b)};m.rc=function(a,b,c){if(this.b&&null!=this.B){var d=this.b;ad(d,this.B+b,2,d.K)&&d.Y(!1)}this.G?this.Xa(a,0,c):this.D(a,b,c)};
var Sc=0,Tc=2,Kc=["NONE","RAM","ROM"],Rc=0,Wc=[],Vc=[Ec.prototype.jc,Ec.prototype.sc],Zc=[Ec.prototype.hc,Ec.prototype.rc];
function bd(a,b){t.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.hb=0;this.lb=b;this.ha=c;this.ib=Math.round(this.lb/1E4)/100;this.ca=this.ib*this.ha;this.kb=this.Ia=this.ma=this.ab=0;this.A.P=this.A.gb=!1;this.A.ga=a.autoStart;"string"==typeof this.A.ga&&(this.A.ga="true"==this.A.ga);this.A.Ta=!1;this.Ga=this.ta=0;this.Ha=+a.csStart;this.pa=+a.csInterval;this.ua=+a.csStop;this.R=[];this.Fb=this.mc.bind(this);this.W=this.M=this.V=this.N=this.L=this.Fa=this.S=this.va=this.mb=this.Z=
0;this.Na=null;Pb(this)}la(bd,t);m=bd.prototype;m.La=function(a,b,c,d){this.G=a;this.H=b;this.D=d;this.Na=a.j;for(a=0;a<cd.length;a++)(b=this.J[cd[a]])&&this.G.sa(null,cd[a],b);Pb(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};
m.Aa=function(a,b){var c=dd(this.G,"autoStart");null!=c?this.A.ga="true"==c?!0:"false"==c?!1:!!c:null==this.A.ga&&(this.A.ga=!this.D&&void 0===this.J.run);if(!b){if(a){ed(this);if(!this.restore(a))return!1;fd(this)}else this.reset();this.D?(a=this.D,b=this.A.ga,a.Ia=!0,a.u("Type ? for help with PDPjs Debugger commands"),gd(a),b||hd(a),a.ua&&(b=a.ua,a.ua=null,id(a,b,!0))):this.status("No debugger detected");this.A.ga||this.u("CPU will not be auto-started "+(this.Na?"(click Run to start)":"(type 'go' to start)"))}return!0};
m.ra=function(a){return a?this.save():!0};m.ga=function(){return this.A.P?!0:this.A.ga?(vc(this),!0):!1};m.Kb=function(){return 0};function fd(a){void 0===a.Ha&&(a.Ha=0);void 0===a.pa&&(a.pa=-1);void 0===a.ua&&(a.ua=-1);a.A.Ta=0<=a.Ha&&0<a.pa;a.A.Ta&&(a.Ga=0,a.ta=a.Ha-a.W)}function zc(a,b){if(a.A.Ta){var c=!1;a.Ga=a.Ga+a.Kb()|0;a.ta-=b;0>=a.ta&&(a.ta+=a.pa,c=!0);0<=a.ua&&a.ua<=jd(a)&&(a.pa=a.ua=-1,fd(a),a.Y(),c=!0);c&&a.u(jd(a)+" cycles: checksum="+n(a.Ga))}}
m.sa=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.J[b]=c,!0;case "run":return this.J[b]=c,c.onclick=function(){var a;if(a=d.G)if(a=d.G,a.A.ba)a=!0;else{var b=null,c,h=tb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.A.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.A.ba);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.cb?" (waiting for notification)":""))+".");a=!1}a&&(d.A.P?d.Y():vc(d))},!0;
case "speed":return this.J[b]=c,!0;case "setSpeed":return this.J[b]=c,c.onclick=function(){kd(d,d.ha<<1,!0)},c.textContent=this.ca.toFixed(2)+"Mhz",!0}return!1};function yc(a,b,c){a.W+=b;c&&(a.V=a.N=0)}function ld(a,b){var c=1;b&&1<a.ha&&a.Z&&(c=a.Z/a.ib);a.kb=Math.round(1E3/md);a.Ia=Math.floor(a.lb/md*c);b||(a.ma=a.Ia);a.ab=0}function jd(a){return a.W+a.M+a.V-a.N}function ed(a){a.Z=0;a.mb=0;a.W=a.M=a.V=a.N=0;fd(a);kd(a,1)}
function kd(a,b,c){var d=!1;if(void 0!==b){.8>a.Z/a.ca?b=1:d=!0;a.ha=b;b=a.ib*a.ha;if(a.ca!=b){a.ca=b;b=a.ca.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.u("target speed: "+b)}c&&a.G&&nd(a.G)}yc(a,a.M);a.M=0;a.L=pb();a.S=0;ld(a);return d}function od(a,b){for(var c=a.R.length-1;0<=c;c--){var d=a.R[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function pd(a){for(var b=[],c=0;c<a.R.length;c++)b.push(a.R[c][0]);return b}
function xc(a,b){for(var c=a.R.length-1;0<=c;c--){var d=a.R[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function qd(a,b){var c=a.V-=a.N;a.N=0;b&&(a.V=0);return c}
m.mc=function(){if(this.A.P){this.ab>=this.lb&&ld(this,!0);this.va=0;this.Fa=pb();if(this.S){var a=this.Fa-this.S;a>this.kb&&(this.L+=a,this.L>this.Fa&&(this.L=this.Fa))}try{do{var b=od(this,this.A.Ta?1:this.Ia);try{this.Ya(b)}catch(e){if("number"!=typeof e)throw e;}b=qd(this,!0);this.va+=b;this.M+=b;zc(this,b);xc(this,b);this.ma-=b;if(0>=this.ma){this.ma+=this.Ia;++this.mb>=rd&&(this.G&&K(this.G,void 0),this.mb=0);break}}while(this.A.P)}catch(e){this.Y();this.G&&this.G.stop(pb(),jd(this));Cb(this,
e.stack||e.message);return}if(this.A.P){a=setTimeout;b=this.Fb;this.S=pb();var c=this.kb;this.va&&(c=Math.round(c*this.va/this.Ia));var c=c-(this.S-this.Fa),d=this.S-this.L;d&&(this.Z=Math.round(this.M/(10*d))/100,864E5<=d&&(this.W=0,kd(this)));if(0>c||this.Z<this.ca)-1E3>c&&(this.L-=c),c=0;this.ab+=this.va;this.S+=c;a(b,c)}}};
function vc(a,b){if(!Db(a))if(a.A.P)a.u(a.toString()+" busy");else{kd(a);a.A.P=!0;a.A.gb=!0;var c=a.J.run;c&&(c.textContent="Halt");a.G&&(b&&nd(a.G,!0),a.G.start(a.L,jd(a)));a.D||a.status("Started");setTimeout(a.Fb,0)}}m.Ya=function(){return 0};m.Y=function(a){var b=!1;if(this.A.P){qd(this);yc(this,this.M);this.M=0;this.A.P=!1;if(b=this.J.run)b.textContent="Run";this.G&&this.G.stop(pb(),jd(this));b=!0;this.D||this.status("Stopped")}this.A.complete=a;return b};var md=30,rd=15,cd=["power","reset"];
function sd(a){var b=+a.model||1001;bd.call(this,a,1E6);this.jb=b;this.Za=+a.addrReset||0;this.Tb=td.bind(this);this.w=M.bind(this);this.Ca=null;this.vb=[];this.A.complete=!1}la(sd,bd);m=sd.prototype;
m.reset=function(){this.status("Model "+this.jb);this.A.P&&this.Y();this.Ja=this.Ka=this.b=this.I=0;this.i=this.oa=this.Za;this.K=this.O=-1;this.F=this.j=0;this.nb=[0,0];this.wa=[0,0];this.na=[0,0];this.xa=[0,0];this.Ba=this.i;this.C=0;this.f=this.ic;this.g=this.tc;this.Ca=null;ed(this);this.A.error=!1;bd.prototype.reset.call(this)};m.Kb=function(){return 0};
m.save=function(){var a=new G(this);a.set(0,[this.b,this.I,this.Ja,this.Ka,this.i,this.O,this.K,this.j,this.C,this.oa,this.Ba,this.Za]);a.set(1,[]);a.set(2,[this.W,this.ha,this.A.ga]);a.set(3,ud(this));a.set(4,pd(this));return a.data()};
m.restore=function(a){var b;b=a[0];fa();ca();fa();var c=b[Symbol.iterator];b=c?c.call(b):ha(b);this.b=b.next().value;this.I=b.next().value;this.Ja=b.next().value;this.Ka=b.next().value;this.i=b.next().value;this.O=b.next().value;this.K=b.next().value;this.j=b.next().value;this.C=b.next().value;this.oa=b.next().value;this.Ba=b.next().value;this.Za=b.next().value;b=a[2];this.W=b[0];kd(this,b[1]);this.A.ga=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.vb.length;d++){var e=this.vb[d];
if(e.qc===b[c]){d=e;break a}}d=null}d&&(d.next=this.Ca,this.Ca=d)}a=a[4];for(b=0;b<this.R.length&&b<a.length;b++)this.R[b][0]=a[b];return!0};function vd(a,b){a.j=a.j&-254049|b&254048;a.j|=b&4096;b&2048?a.j&4096||(a.j|=2048):a.j&=-2049}function wd(a,b){var c=a.i;a.i=(c+b)%Wb;return c}function xd(a){return 0<=a.O?a.O:a.I&4194304?a.oa:a.i}function H(a,b){a.I=0;a.O=-1;a.i=b%Wb}function ud(a){var b=[];for(a=a.Ca;a;)b.push(a.qc),a=a.next;return b}
m.ic=function(a){var b=this.H;a=this.Ba=a;return b.b[(a&b.j)>>>b.i].f(a&16383,a)};m.tc=function(a,b){var c=this.H;a=this.Ba=a;c.b[(a&c.j)>>>c.i].g(b,a&16383,a);return b};
m.Ya=function(a){this.A.complete=!0;var b=this.D?yd(this.D)?1:this.A.gb?-1:0:0,c=a?this.A.gb?0:1:-1;this.A.gb=!1;this.V=this.N=a;this.C=this.C&-5|(b?4:0);do{if(this.C){if(this.C&4){if(zd(this.D,xd(this),c)){this.Y();break}++b||(this.C&=-5);c||c++}if(a=this.C&11)this.C&2?this.Ca||(this.C&=-3):this.C&1&&this.C++,a=!1;if(a){if(this.C&4&&zd(this.D,xd(this),c)){this.Y();break}if(0>c)break}}this.C&=15;this.I&4194304?this.I=this.Ja=this.f(this.b):0<=this.O?(this.I=this.Ka=this.f(this.O),this.O=-1):(this.I=
this.Ka=this.f(this.oa=this.i),this.i=(this.i+1)%Wb);this.I&=8388607;this.b=this.I&262143;if(a=this.I>>18&15)this.b=this.b+(this.Ja=this.f(a))&Vb;a=this.I&4194304?-1:this.Ka/cc|0;0<=a&&this.Tb(a);this.N--}while(0<this.N);return this.A.complete?this.V-this.N:!1===this.A.complete?-1:0};$a(function(){for(var a=v(document,u,"cpu"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new sd(d);sb(d,c)}});function td(a){Ad[a>>4].call(this,a,a&15)}function O(a){this.w(a)}
function Bd(){var a=0,b=this.f(this.b),c=b/dc&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=100-d));b=c*dc+(d<<24)+(b&16777215);a&&(b=(b+a)%C);this.g(this.b,b)}function Cd(a,b){a=this.f(this.b);if(0>this.K)this.K=a,this.I=this.b|4194304;else{var c=this.K/dc&63,d=this.K>>24&63;a=32>c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.g(b,a);this.j&=-8193;this.K=-1}}
function Dd(a,b){a=this.f(this.b);if(0>this.K)this.K=a,this.I=this.b|4194304;else{var c=this.K/dc&63,d=this.K>>24&63;b=this.f(b)%Math.pow(2,d)*Math.pow(2,c)%C;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.g(this.b,a);this.j&=-8193;this.K=-1}}function Ed(a,b){this.g(b,this.f(this.b))}function Fd(a,b){this.g(b,this.b)}function Gd(a,b){this.g(this.b,this.f(b))}function Hd(a,b){this.g(b,0)}function Id(a,b){this.g(b,B-this.f(b))}function Jd(a,b){this.g(b,B)}
function Kd(a,b){var c=this.f(this.b),d=this.f(b);this.g(b,Ld(a,d,c)+(c-(c&x)))}function Md(a,b){var c=this.f(b);this.g(b,Ld(a,c,0))}function Nd(a,b){b=this.f(b);var c=this.f(this.b);this.g(this.b,Ld(a,c,b)+(b-(b&x)))}function Od(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d-=d&x,a){case 256:d+=x;break;case 384:d+=c>z?x:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function Pd(a,b){var c=(this.f(this.b)&x)*y,d=this.f(b);this.g(b,Ld(a,d,c)+c)}
function Qd(a,b){var c=this.b*y,d=this.f(b);this.g(b,Ld(a,d,c)+c)}function ie(a,b){b=(this.f(b)&x)*y;var c=this.f(this.b);this.g(this.b,Ld(a,c,b)+b)}function je(a,b){var c=this.f(this.b),d=(c&x)*y,c=Ld(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function ke(a,b){var c=this.f(this.b)&x,d=this.f(b);this.g(b,le(a,d,c)+c)}function me(a,b){var c=this.f(b);this.g(b,le(a,c,this.b)+this.b)}function ne(a,b){b=this.f(b)&x;var c=this.f(this.b);this.g(this.b,le(a,c,b)+b)}
function oe(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d&=x,a){case 256:d+=x*y;break;case 384:d+=c>Xb?x*y:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function pe(a,b){var c=this.f(this.b)/y|0,d=this.f(b);this.g(b,le(a,d,c)+c)}function qe(a,b){var c=this.f(b);this.g(b,le(a,c,0))}function re(a,b){b=this.f(b)/y|0;var c=this.f(this.b);this.g(this.b,le(a,c,b)+b)}function se(a,b){var c=this.f(this.b),d=c/y|0,c=le(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function P(a){te[a&7].call(this,a,a>>3&127)}
function ue(){}function ve(){}function M(a){this.u("undefined opcode: "+qa(a));wd(this,-1);this.Y()}function we(a){a>z&&(a!=A?a=$b-a:this.j|=163840);return a}function Q(a,b){var c=(a+b)%C;xe.call(this,a,b,c);return c}
function ye(a,b,c){var d=!1,e=!1;if(void 0===c){if(!a)return this.j|=131104,-1;c=b>z?B:0}else if((c<A?c:$b-c-(b?1:0))>=(a<A?a:$b-a))return this.j|=131104,-1;var f=c-c%A;b=b%A+(c&1)*A;c=this.F=f+Math.trunc(c/2);a>z&&(a=C-a,d=!d);c>z&&(b?(c=B-c,b=C-b):c&&(c=C-c),e=!0,d=!d);f=this.nb;f[0]=0;f[1]=0;f=this.wa;f[0]=1;f[1]=0;f=this.na;f[0]=a;f[1]=0;a=this.xa;a[0]=b;for(a[1]=c;0<ze(this.xa,this.na);)Ae(this.na,this.na),Ae(this.wa,this.wa);do{if(0<=ze(this.xa,this.na)&&(c=this.xa,a=this.na,c[0]-=a[0],c[1]-=
a[1],0>c[0]&&(c[0]+=C,c[1]--),Ae(this.nb,this.wa),Be(this.xa)))break;Ce(this.na);Ce(this.wa)}while(!Be(this.wa));b=this.nb[0];this.F=this.xa[0];d&&b&&(b=C-b);e&&this.F&&(this.F=C-this.F);return b}
function De(a,b,c,d){var e=a,f=b;b=!1;var g;e>z&&(d||1001!=this.jb||e!=A)&&(e=C-e,b=!b);f>z&&(f=C-f,b=!b);if(e<y&&f<y)a=e*f,g=0;else{a=e&x;e=Math.trunc(e/y);g=f&x;var f=Math.trunc(f/y),h=a*g,k=e*g+Math.trunc(h/y);g=Math.trunc(k/y);k=(k&x)+a*f;a=(k*y+(h&x))%C;g+=Math.trunc(k/y)+e*f}b&&(a?(g=B-g,a=C-a):g&&(g=C-g));b=a;a=g;e=a-a%A;a=2*a%C+Math.trunc(b/A);b=e+b%A;a-a%A!=e&&(b=a);d?g=b:(b==A&&a==A&&(this.j|=131072),this.F=b,g=a);c&&(a=this.F,!d&&(g||a>z)&&(g!=B||a<=z)&&(this.j|=131072),g=a);return g}
function Ee(a){a?a==A?this.j|=163840:a=$b-a:this.j|=98304;return a}function Fe(a,b){var c=a-b;0>c&&(c+=C);xe.call(this,c,b,a);return c}function xe(a,b,c){a=Math.trunc(a/Zb);b=Math.trunc(b/Zb);c=Math.trunc(c/Zb);var d=a^(a^b)&(b^c);this.j=this.j|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function R(a,b){return((a/E|0)&(b/E|0))*E+((a&b)>>>0)}function S(a,b){return R(a,(~(b/E|0)&15)*E+(~b>>>0))}function Ge(a,b){return(a<A?a:a-C)-(b<A?b:b-C)}
function He(a,b){return(~((a/E|0)^(b/E|0))&15)*E+(~(a^b)>>>0)}function T(a,b){return(a/E|0|b/E|0)*E+((a|b)>>>0)}function U(a){return a<A?a:a-C}function V(a,b){return((a/E|0)^(b/E|0))*E+((a^b)>>>0)}function W(a){return(a/y|0)+(a&x)*y}function le(a,b,c){switch(a&384){case 0:b-=b&x;break;case 128:b=0;break;case 256:b=x*y;break;case 384:b=c>Xb?x*y:0}return b}function Ld(a,b,c){switch(a&384){case 0:b&=x;break;case 128:b=0;break;case 256:b=x;break;case 384:b=c>z?x:0}return b}
function Ae(a,b){a[0]+=b[0];a[1]+=b[1];a[0]>=C&&(a[0]%=C,a[1]++)}function ze(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function Ce(a){a[1]%2&&(a[0]+=C);a[0]=Math.trunc(a[0]/2);a[1]=Math.trunc(a[1]/2)}function Be(a){return!a[0]&&!a[1]}
var Ad=[O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},Bd,function(a,b){this.j&8192||(Bd.call(this),this.j|=8192);Cd.call(this,0,b)},Cd,function(a,b){this.j&8192||(Bd.call(this),this.j|=8192);Dd.call(this,0,b)},Dd,function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},
function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},
function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},Ed,Fd,Gd,function(a,b){b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);a=(a/y|0)+(a&x)*y;this.g(b,a)},function(a,b){this.g(b,this.b*y)},function(a,b){a=this.f(b);a=(a/y|0)+(a&x)*y;this.g(this.b,a)},function(a,b){a=this.f(this.b);a=(a/y|0)+(a&x)*y;this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,Ee.call(this,this.f(this.b)))},function(a,b){this.g(b,
Ee.call(this,this.b))},function(a,b){this.g(this.b,Ee.call(this,this.f(b)))},function(a,b){a=Ee.call(this,this.f(this.b));this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,we.call(this,this.f(this.b)))},function(a,b){this.g(b,this.b)},function(a,b){this.g(this.b,we.call(this,this.f(b)))},function(a,b){a=we.call(this,this.f(this.b));this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,De.call(this,this.f(b),this.f(this.b),!0))},function(a,b){this.g(b,De.call(this,this.f(b),this.b,!0))},function(a,
b){this.g(this.b,De.call(this,this.f(b),this.f(this.b),!0))},function(a,b){this.g(this.b,this.g(b,De.call(this,this.f(b),this.f(this.b),!0)))},function(a,b){this.g(b,De.call(this,this.f(b),this.f(this.b)));this.g(b+1&15,this.F)},function(a,b){this.g(b,De.call(this,this.f(b),this.b));this.g(b+1&15,this.F)},function(a,b){this.g(this.b,De.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,De.call(this,this.f(b),this.f(this.b))));this.g(b+1&15,this.F)},function(a,b){a=ye.call(this,
this.f(this.b),this.f(b));0>a||(this.g(b,a),this.g(b+1&15,this.F))},function(a,b){a=ye.call(this,this.b,this.f(b));0>a||(this.g(b,a),this.g(b+1&15,this.F))},function(a,b){a=ye.call(this,this.f(this.b),this.f(b));0>a||this.g(this.b,a)},function(a,b){a=ye.call(this,this.f(this.b),this.f(b));0>a||(this.g(this.b,this.g(b,a)),this.g(b+1&15,this.F))},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=ye.call(this,this.f(this.b),c,a);0>c||(this.g(b,c),this.g(b+1&15,this.F))},function(a,b){a=this.f(b);var c=
this.f(b+1&15),c=ye.call(this,this.b,c,a);0>c||(this.g(b,c),this.g(b+1&15,this.F))},function(a,b){a=this.f(b);b=this.f(b+1&15);b=ye.call(this,this.f(this.b),b,a);0>b||this.g(this.b,b)},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=ye.call(this,this.f(this.b),c,a);0>c||(this.g(b,this.g(this.b,c)),this.g(b+1&15,this.F))},function(a,b){if(a=(this.b&Yb)<<14>>23|this.b&255){var c,d,e=this.f(b);0<a?(d=z,c=e<A?0:A,35>a&&(c+=e*Math.pow(2,a)%A,d=A-Math.pow(2,35-a)),e<A?e+d>z&&(this.j|=131072):e-d<A&&(this.j|=
131072)):-35>=a?c=e<A?0:z:(c=Math.trunc(e/Math.pow(2,-a)),e>z&&(d=C-Math.pow(2,36+a),c+=d));this.g(b,c)}},function(a,b){if(a=((this.b&Yb)<<14>>23|this.b&255)%36){var c=this.f(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%C+Math.trunc(c/Math.pow(2,36-a));this.g(b,c)}},function(a,b){if(a=(this.b&Yb)<<14>>23|this.b&255){var c=this.f(b),c=0<a?36<=a?0:c*Math.pow(2,a)%C:-36>=a?0:Math.trunc(c/Math.pow(2,-a));this.g(b,c)}},function(a,b){a=0;var c=this.f(b);if(c){for(;c<A;)a++,c*=2;H(this,this.b)}this.g(b+1&15,a)},function(a,
b){if(a=(this.b&Yb)<<14>>23|this.b&255){var c,d=this.f(b),e=this.f(b+1&15);if(0<a){var f=d;if(36<=a){if(0<d&&d<A||d>z&&d<B)this.j|=131072;if(71<=a){if(0<e&&e<A||e>z&&e<B)this.j|=131072;d=0}else d=e*Math.pow(2,a-35)%A,c=A-Math.pow(2,70-a),f<=z?e+c>z&&(this.j|=131072):e-c<=z&&(this.j|=131072);e=0;f>z&&(d+=A,e+=A)}else d=d*Math.pow(2,a)%A+Math.trunc(e%A/Math.pow(2,35-a)),e=e*Math.pow(2,a)%A,c=A-Math.pow(2,35-a),f<=z?f+c>z&&(this.j|=131072):(f-c<=z&&(this.j|=131072),d+=A,e+=A)}else-36>=a?(e=-72>=a?d>
z?B:0:Math.trunc(d%A/Math.pow(2,-a-35)),d<=z?d=0:(d=B,e+=A)):(c=d>z?C-Math.pow(2,36+a):0,e=Math.trunc(e%A/Math.pow(2,-a))+d%A*Math.pow(2,35+a)%A,d=Math.trunc(d/Math.pow(2,-a))+c,d>z&&(e+=A));this.g(b,d);this.g(b+1&15,e)}},function(a,b){if(a=((this.b&Yb)<<14>>23|this.b&255)%72){var c=this.f(b),d=this.f(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%C+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%C+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%C+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,
a-36)%C+Math.trunc(d/Math.pow(2,72-a)));this.g(b,c);this.g(b+1&15,d)}},function(a,b){if(a=(this.b&Yb)<<14>>23|this.b&255){var c=this.f(b),d=this.f(b+1&15);0<a?36<=a?(c=72<=a?0:d*Math.pow(2,a-36)%C,d=0):(c=c*Math.pow(2,a)%C+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%C):-36>=a?(d=-72>=a?0:Math.trunc(c/Math.pow(2,-a-36)),c=0):(d=Math.trunc(d/Math.pow(2,-a))+c*Math.pow(2,36+a)%C,c=Math.trunc(c/Math.pow(2,-a)));this.g(b,c);this.g(b+1&15,d)}},M,function(a,b){a=this.f(b);this.g(b,this.f(this.b));this.g(this.b,
a)},function(a,b){for(var c=a=!1,d=this.f(b),e=d/y|0,d=d&x;!a;)if(this.g(d,this.f(e)),(a=d>=this.b)||(e=e+1&x,d=d+1&x,c=!0),a||!this.A.P){c&&this.g(b,e*y+d);a||wd(this,-1);break}},function(a,b){a=(this.f(b)+262145)%C;this.g(b,a);a<A&&H(this,this.b)},function(a,b){a=(this.f(b)+262145)%C;this.g(b,a);a>=A&&H(this,this.b)},function(a,b){b&1&&(this.j|=4096);b&2&&vd(this,this.Ja/y|0);b&4&&this.Y();b&8&&this.w(a);H(this,this.b)},function(a,b){a=b<<14;this.j&a&&(this.j&=~a,H(this,this.b))},function(){this.O=
this.b},M,function(a,b){a=(this.f(b)+262145)%C;this.g(b,a);a/y|0||(this.j|=262144);this.g(a&Vb,(this.j&x)*y+this.i);this.j&=-8193;H(this,this.b)},function(a,b){a=this.f(b);a+=262145;this.g(a&Vb,this.f(this.b));a>=C&&(a-=C);a/y|0||(this.j|=262144);this.g(b,a)},function(a,b){a=this.f(b);var c=this.f(a&Vb);this.g(this.b,c);this.b==b&&(a=c);a-=262145;0>a&&(a+=C);(a/y|0)==x&&(this.j|=262144);this.g(b,a)},function(a,b){a=this.f(b);var c=this.f(a&Vb);a-=262145;0>a&&(a+=C);(a/y|0)==x&&(this.j|=262144);this.g(b,
a);H(this,c&Vb)},function(){this.g(this.b,(this.j&x)*y+this.i);this.j&=-8193;H(this,this.b+1)},function(a,b){this.g(b,(this.j&x)*y+this.i);this.j&=-8193;H(this,this.b)},function(a,b){this.g(this.b,this.f(b));this.g(b,this.b*y+this.i);H(this,this.b+1)},function(a,b){a=this.f(b);this.g(b,this.f(a/y|0));H(this,this.b)},function(a,b){this.g(b,Q.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(b,Q.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,Q.call(this,this.f(b),this.f(this.b)))},
function(a,b){this.g(this.b,this.g(b,Q.call(this,this.f(b),this.f(this.b))))},function(a,b){this.g(b,Fe.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(b,Fe.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,Fe.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,Fe.call(this,this.f(b),this.f(this.b))))},ue,function(a,b){0>Ge(this.f(b),this.b)&&H(this,this.i+1)},function(a,b){Ge(this.f(b),this.b)||H(this,this.i+1)},function(a,b){0>=Ge(this.f(b),this.b)&&H(this,
this.i+1)},function(){H(this,this.i+1)},function(a,b){0<=Ge(this.f(b),this.b)&&H(this,this.i+1)},function(a,b){Ge(this.f(b),this.b)&&H(this,this.i+1)},function(a,b){0<Ge(this.f(b),this.b)&&H(this,this.i+1)},ve,function(a,b){0>Ge(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,b){Ge(this.f(b),this.f(this.b))||H(this,this.i+1)},function(a,b){0>=Ge(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(){H(this,this.i+1)},function(a,b){0<=Ge(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,
b){Ge(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,b){0<Ge(this.f(b),this.f(this.b))&&H(this,this.i+1)},ue,function(a,b){0>U(this.f(b))&&H(this,this.b)},function(a,b){U(this.f(b))||H(this,this.b)},function(a,b){0>=U(this.f(b))&&H(this,this.b)},function(){H(this,this.b)},function(a,b){0<=U(this.f(b))&&H(this,this.b)},function(a,b){U(this.f(b))&&H(this,this.b)},function(a,b){0<U(this.f(b))&&H(this,this.b)},function(a,b){b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);0>U(a)&&
H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);U(a)||H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);0>=U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){H(this,this.i+1);b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);0<=U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);0<U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){this.g(b,Q.call(this,this.f(b),1))},
function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0>U(a)&&H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));U(a)||H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0>=U(a)&&H(this,this.b)},function(a,b){this.g(b,Q.call(this,this.f(b),1));H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0<=U(a)&&H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));U(a)&&H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0<U(a)&&H(this,
this.b)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0>U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));U(a)||H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0>=U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=
this.g(this.b,Q.call(this,this.f(this.b),1));0<=U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0<U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){this.g(b,Q.call(this,this.f(b),B))},function(a,b){a=this.g(b,Q.call(this,this.f(b),B));0>U(a)&&H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),B));U(a)||H(this,this.b)},function(a,b){a=
this.g(b,Q.call(this,this.f(b),B));0>=U(a)&&H(this,this.b)},function(a,b){this.g(b,Q.call(this,this.f(b),B));H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),B));0<=U(a)&&H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),B));U(a)&&H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),B));0<U(a)&&H(this,this.b)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),B));b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),B));0>U(a)&&H(this,
this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),B));U(a)||H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),B));0>=U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),B));H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),B));0<=U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),B));U(a)&&H(this,this.i+
1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),B));0<U(a)&&H(this,this.i+1);b&&this.g(b,a)},Hd,Hd,function(){this.g(this.b,0)},function(a,b){this.g(this.b,this.g(b,0))},function(a,b){this.g(b,R(this.f(b),this.f(this.b)))},function(a,b){this.g(b,R(this.f(b),this.b))},function(a,b){this.g(this.b,R(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,R(this.f(b),this.f(this.b))))},function(a,b){this.g(b,R(B-this.f(b),this.f(this.b)))},function(a,b){this.g(b,R(B-
this.f(b),this.b))},function(a,b){this.g(this.b,R(B-this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,R(B-this.f(b),this.f(this.b))))},Ed,Fd,ve,Ed,function(a,b){this.g(b,R(this.f(b),B-this.f(this.b)))},function(a,b){this.g(b,R(this.f(b),B-this.b))},function(a,b){this.g(this.b,R(this.f(b),B-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,R(this.f(b),B-this.f(this.b))))},ue,ue,Gd,Gd,function(a,b){this.g(b,V(this.f(b),this.f(this.b)))},function(a,b){this.g(b,V(this.f(b),this.b))},
function(a,b){this.g(this.b,V(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,V(this.f(b),this.f(this.b))))},function(a,b){this.g(b,T(this.f(b),this.f(this.b)))},function(a,b){this.g(b,T(this.f(b),this.b))},function(a,b){this.g(this.b,T(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,T(this.f(b),this.f(this.b))))},function(a,b){this.g(b,R(B-this.f(b),B-this.f(this.b)))},function(a,b){this.g(b,R(B-this.f(b),B-this.b))},function(a,b){this.g(this.b,R(B-this.f(b),B-this.f(this.b)))},
function(a,b){this.g(this.b,this.g(b,R(B-this.f(b),B-this.f(this.b))))},function(a,b){this.g(b,He(this.f(b),this.f(this.b)))},function(a,b){this.g(b,He(this.f(b),this.b))},function(a,b){this.g(this.b,He(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,He(this.f(b),this.f(this.b))))},Id,Id,function(a,b){this.g(this.b,B-this.f(b))},function(a,b){this.g(this.b,this.g(b,B-this.f(b)))},function(a,b){this.g(b,T(B-this.f(b),this.f(this.b)))},function(a,b){this.g(b,T(B-this.f(b),this.b))},
function(a,b){this.g(this.b,T(B-this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,T(B-this.f(b),this.f(this.b))))},function(a,b){this.g(b,B-this.f(this.b))},function(a,b){this.g(b,B-this.b)},function(){this.g(this.b,B-this.f(this.b))},function(a,b){this.g(this.b,this.g(b,B-this.f(this.b)))},function(a,b){this.g(b,T(this.f(b),B-this.f(this.b)))},function(a,b){this.g(b,T(this.f(b),B-this.b))},function(a,b){this.g(this.b,T(this.f(b),B-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,
T(this.f(b),B-this.f(this.b))))},function(a,b){this.g(b,T(B-this.f(b),B-this.f(this.b)))},function(a,b){this.g(b,T(B-this.f(b),B-this.b))},function(a,b){this.g(this.b,T(B-this.f(b),B-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,T(B-this.f(b),B-this.f(this.b))))},Jd,Jd,function(){this.g(this.b,B)},function(a,b){this.g(this.b,this.g(b,B))},Kd,Md,Nd,Od,Pd,Qd,ie,je,Kd,Md,Nd,Od,Pd,Qd,ie,je,Kd,Md,Nd,Od,Pd,Qd,ie,je,Kd,Md,Nd,Od,Pd,Qd,ie,je,ke,me,ne,oe,pe,qe,re,se,ke,me,ne,oe,pe,qe,re,se,ke,me,ne,
oe,pe,qe,re,se,ke,me,ne,oe,pe,qe,re,se,ue,ue,function(a,b){R(this.f(b),this.b)||H(this,this.i+1)},function(a,b){R(this.f(b),this.b*y)||H(this,this.i+1)},function(){H(this,this.i+1)},function(){H(this,this.i+1)},function(a,b){R(this.f(b),this.b)&&H(this,this.i+1)},function(a,b){R(this.f(b),this.b*y)&&H(this,this.i+1)},ve,ve,function(a,b){R(this.f(b),this.f(this.b))||H(this,this.i+1)},function(a,b){R(this.f(b),W(this.f(this.b)))||H(this,this.i+1)},function(){H(this,this.i+1)},function(){H(this,this.i+
1)},function(a,b){R(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,b){R(this.f(b),W(this.f(this.b)))&&H(this,this.i+1)},function(a,b){this.g(b,S(this.f(b),this.b))},function(a,b){this.g(b,S(this.f(b),this.b*y))},function(a,b){a=this.f(b);R(a,this.b)||H(this,this.i+1);this.g(b,S(a,this.b))},function(a,b){a=this.f(b);var c=this.b*y;R(a,c)||H(this,this.i+1);this.g(b,S(a,c))},function(a,b){H(this,this.i+1);this.g(b,S(this.f(b),this.b))},function(a,b){H(this,this.i+1);this.g(b,S(this.f(b),this.b*
y))},function(a,b){a=this.f(b);R(a,this.b)&&H(this,this.i+1);this.g(b,S(a,this.b))},function(a,b){a=this.f(b);var c=this.b*y;R(a,c)&&H(this,this.i+1);this.g(b,S(a,c))},function(a,b){this.g(b,S(this.f(b),this.f(this.b)))},function(a,b){this.g(b,S(this.f(b),W(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)||H(this,this.i+1);this.g(b,S(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));R(a,c)||H(this,this.i+1);this.g(b,S(a,c))},function(a,b){H(this,this.i+1);this.g(b,S(this.f(b),
this.f(this.b)))},function(a,b){H(this,this.i+1);this.g(b,S(this.f(b),W(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)&&H(this,this.i+1);this.g(b,S(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));R(a,c)&&H(this,this.i+1);this.g(b,S(a,c))},function(a,b){this.g(b,V(this.f(b),this.b))},function(a,b){this.g(b,V(this.f(b),this.b*y))},function(a,b){a=this.f(b);R(a,this.b)||H(this,this.i+1);this.g(b,V(a,this.b))},function(a,b){a=this.f(b);var c=this.b*y;R(a,c)||H(this,
this.i+1);this.g(b,V(a,c))},function(a,b){H(this,this.i+1);this.g(b,V(this.f(b),this.b))},function(a,b){H(this,this.i+1);this.g(b,V(this.f(b),this.b*y))},function(a,b){a=this.f(b);R(a,this.b)&&H(this,this.i+1);this.g(b,V(a,this.b))},function(a,b){a=this.f(b);var c=this.b*y;R(a,c)&&H(this,this.i+1);this.g(b,V(a,c))},function(a,b){this.g(b,V(this.f(b),this.f(this.b)))},function(a,b){this.g(b,V(this.f(b),W(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)||H(this,this.i+1);this.g(b,
V(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));R(a,c)||H(this,this.i+1);this.g(b,V(a,c))},function(a,b){H(this,this.i+1);this.g(b,V(this.f(b),this.f(this.b)))},function(a,b){H(this,this.i+1);this.g(b,V(this.f(b),W(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)&&H(this,this.i+1);this.g(b,V(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));R(a,c)&&H(this,this.i+1);this.g(b,V(a,c))},function(a,b){this.g(b,T(this.f(b),this.b))},function(a,b){this.g(b,T(this.f(b),
this.b*y))},function(a,b){a=this.f(b);R(a,this.b)||H(this,this.i+1);this.g(b,T(a,this.b))},function(a,b){a=this.f(b);R(a,this.b*y)||H(this,this.i+1);this.g(b,T(a,this.b*y))},function(a,b){H(this,this.i+1);this.g(b,T(this.f(b),this.b))},function(a,b){H(this,this.i+1);this.g(b,T(this.f(b),this.b*y))},function(a,b){a=this.f(b);R(a,this.b)&&H(this,this.i+1);this.g(b,T(a,this.b))},function(a,b){a=this.f(b);var c=this.b*y;R(a,c)&&H(this,this.i+1);this.g(b,T(a,c))},function(a,b){this.g(b,T(this.f(b),this.f(this.b)))},
function(a,b){this.g(b,T(this.f(b),W(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)||H(this,this.i+1);this.g(b,T(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));R(a,c)||H(this,this.i+1);this.g(b,T(a,c))},function(a,b){H(this,this.i+1);this.g(b,T(this.f(b),this.f(this.b)))},function(a,b){H(this,this.i+1);this.g(b,T(this.f(b),W(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)&&H(this,this.i+1);this.g(b,T(a,c))},function(a,b){a=this.f(b);var c=
W(this.f(this.b));R(a,c)&&H(this,this.i+1);this.g(b,T(a,c))},P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P],te=[function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a,b){switch(b){case 0:a=this.f(this.b);a&8&&(this.j&=-131073);a&131072&&(this.j&=-262145);break;default:this.w(a)}},function(a,b){switch(b){case 0:a=0;this.j&131072&&(a|=8);this.j&262144&&(a|=65536);this.g(this.b,
a);break;default:this.w(a)}},function(a){this.w(a)},function(a){this.w(a)}];
function Ie(a){t.call(this,"ROM",a,128);this.aa=this.b=null;this.C=+a.addr;this.j=+a.size;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.w=a.file;this.F=ya(this.w);if(this.w){a=this.w;var b=za(this.F);"json"!=b&&"hex"!=b&&(a=La()+"/api/v1/dump?file="+this.w+"&format=bytes&decimal=true");var c=this;Ja(a,null,!0,function(a,b,f){f?(c.ja("Unable to load ROM resource (error "+f+": "+a+")"),c.w=null):(ib(c.$a,a,b),(a=Ka(a,b))?(c.b=a.ea,c.aa=a.aa):c.w=null);Je(c)})}}la(Ie,t);
Ie.prototype.La=function(a,b,c,d){this.H=b;this.v=c;this.D=d;Je(this)};Ie.prototype.Aa=function(){this.aa&&(this.D&&Ke(this.D,this.id,this.C,this.j,this.aa),delete this.aa);return!0};Ie.prototype.ra=function(){return!0};
function Je(a){if(!Eb(a)){if(a.w){if(!a.b||!a.H)return;a.j||(a.j=a.b.length);if(a.b.length!=a.j)Cb(a,"ROM size ("+n(a.b.length,8,!0)+") does not match specified size ("+n(a.j,8,!0)+")");else{var b;b=a.C;if(Hc(a.H,b,a.j,Tc)){var c;for(c=0;c<a.b.length;c++)Bc(a.H,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.i?b.push(a.i):null!=a.i&&a.i.length&&(b=a.i);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.H,g=d.j,h=[],k=d.C>>>f.i;0<g&&k<f.b.length;)h.push(f.b[k++]),g-=16384;f=d.H;d=d.j;g=0;for(e>>>=
f.i;0<d&&e<f.b.length;){k=h[g++];if(!k)break;f.b[e++]=k;d-=16384}}delete a.b}}}Pb(a)}}$a(function(){for(var a=v(document,u,"rom"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Ie(d);sb(d,c)}});
function Le(a){t.call(this,"RAM",a);this.aa=this.Oa=null;this.i=+a.addr;this.j=+a.size;this.la=a.load;this.ya=a.exec;null!=this.la&&(this.la=+this.la);null!=this.ya&&(this.ya=+this.ya);this.w=this.F=!1;this.b=a.file;this.C=ya(this.b);if(this.b){a=this.b;var b=za(this.C);"json"!=b&&"hex"!=b&&(a=La()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ja(a,null,!0,function(a,b,f){f?(c.ja("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(ib(c.$a,a,b),(a=Ka(a,b))?(c.Oa=a.Oa,
c.aa=a.aa,null==c.la&&(c.la=a.la),null==c.ya&&(c.ya=a.ya)):c.b=null);Me(c)})}}la(Le,t);Le.prototype.La=function(a,b,c,d){this.H=b;this.v=c;this.D=d;Me(this)};Le.prototype.Aa=function(a,b){this.aa&&(this.D&&Ke(this.D,this.id,this.i,this.j,this.aa),delete this.aa);b||this.reset();return!0};Le.prototype.ra=function(){return!0};
function Me(a){if(a.H&&(!a.w&&a.j&&(Hc(a.H,a.i,a.j,1)?a.w=!0:a.j=0),!Eb(a))){if(!a.w)r("No RAM allocated");else if(a.b){if(!a.Oa)return;Ne(a,a.Oa,a.la,a.ya,a.i)?a.status('Loaded image "'+a.C+'"'):a.ja('Error loading image "'+a.C+'"')}a.F=!0;Pb(a)}}
Le.prototype.reset=function(){if(this.w&&!this.F){for(var a=this.H,b=this.i,c=this.j,d=b&16383,b=b>>>a.i;0<c&&b<a.b.length;){var e=a.b[b],f=c,g=0,g=void 0===g?0:g,d=d||0;void 0===f&&(f=e.size);0>g&&g>=-A&&(g+=C);for(var g=Math.trunc(Math.abs(g))%C,h=d;f--&&h<e.size;h++)e.D(g,d,e.B+d);c-=16384;b++;d=0}this.Oa&&Ne(this,this.Oa,this.la,this.ya,this.i,!this.D)}this.F=!1};
function Ne(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)Bc(a.H,c+g,b[g]);g=!0}g&&(null==d&&(a.v.Y(),f=!1),null!=d&&(a=a.v,a.Za=d,H(a,d),f?a.A.ba?a.A.P||vc(a):a.A.ga=!0:a.D&&a.A.ba?a.Y()||a.G.A.reset||(gd(a.D),K(a.G,-1)):!1===f&&a.Y(),!a.A.P&&a.Na&&a.Na.stop()));return g}$a(function(){for(var a=v(document,u,"ram"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Le(d);sb(d,c)}});
function Oe(a){t.call(this,"SerialPort",a,1048576);this.w=a.upperCase;"string"==typeof this.w&&(this.w="true"==this.w);this.j=!0;this.i=[];var b=a.binding;if("console"!=b){var c;a=Pe;b&&(void 0===c&&(c="Panel"),(c=vb(c,this.id))&&(b=c.J[b])&&this.sa(null,a,b))}this.b=this.C=null;this.exports={connect:this.Lb,receiveData:this.eb,receiveStatus:this.kc,setConnection:this.nc}}la(Oe,t);m=Oe.prototype;
m.sa=function(a,b,c){var d=this;switch(b){case Pe:return this.J[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?na.xb:na.Qb:46==c?b=na.xb:a.ctrlKey&&c>=na.wb&&c<=na.Sb&&(b=c-(na.wb-na.Nb));b&&(a.preventDefault&&a.preventDefault(),d.eb(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==na.Pb&&(b=na.Ob);d.eb(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.eb(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};m.La=function(a,b,c,d){this.G=a;this.H=b;this.v=c;this.D=d;Pb(this)};
m.Lb=function(a){if(!this.b){var b=dd(this.G,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ea(c[0]);if(d!=this.Db)return;c=Ea(c[1]);if(this.b=ub(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.j);if(this.C=e.receiveData){this.j=a;this.status("Connected "+this.$a+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};m.Aa=function(a,b){if(!b)if(this.Lb(this.j),!a)this.reset();else if(!this.restore(a))return!1;return!0};
m.ra=function(a){return a?this.save():!0};m.reset=function(){};m.save=function(){var a=new G(this);a.set(0,[]);return a.data()};m.restore=function(){return!0};m.eb=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.i.push(b)}else this.i=this.i.concat(a);return!0};m.kc=function(){};m.nc=function(a,b){return this.b?!1:(this.b=a,this.C=b,!0)};var Pe="buffer";
$a(function(){for(var a=v(document,u,"serial"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Oe(d);sb(d,c)}});function Qe(a){t.call(this,"Debugger",a);this.T=+a.base||16;this.L=32;this.S=["{","}"];this.ta=["[","]"];this.F=0;this.V=!1;this.C=-1;this.w=[];this.b={}}la(Qe,t);Qe.prototype.rb=function(){return-1};Qe.prototype.sb=function(){};
function Re(a,b,c,d){if(c)if(b){0>a.C&&a.w.length&&(a.C=0);if(0>a.C||b!=a.w[a.C])a.w.splice(0,0,b),a.C=0;a.C--}else a.V?b="end":b=a.w[a.C+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(Ea(b.substring(c,f))),c=f+1}}return a}function Se(a,b,c){if(32>=a.L)return b&c;b=X(a,b,0,!0);c=X(a,c,0,!0);return((b/Te|0)&(c/Te|0))*Te+((b&c)>>>0)}
function Ue(a,b,c){if(32>=a.L)return b|c;b=X(a,b,0,!0);c=X(a,c,0,!0);return((b/Te|0)^(c/Te|0))*Te+((b^c)>>>0)}Qe.prototype.Ib=function(a,b){return a*b};function X(a,b,c,d){var e=b;c=c||a.L;if(d)if(32==c)e=b>>>0;else if(32>c)e=b&(1<<c)-1;else{if(a=Math.pow(2,c),0>b||b>=a)e=b%a,0>e&&(e+=a)}else 32>=c?e=b<<32-c>>32-c:(a=Math.pow(2,c-1),b>=a?(e=b%a,(b/a|0)&1&&(e-=a)):b<-a&&(e=b%a,((-b-1)/a|0)&1?e&&(e+=a):e||(e-=a)));b!=e&&(b=e);return b}
function Ve(a,b,c,d){for(d=void 0===d?-1:d;d--&&c.length;){var e=c.pop();if(2>b.length)return!1;var f,g=b.pop();f=b.pop();switch(e){case "*":f=a.Ib(f,g);break;case "/":if(!g)return!1;f=Math.trunc(f/g);break;case "^/":if(!g)return!1;f%=g;break;case "+":f+=g;break;case "-":f-=g;break;case "<<":f<<=g;break;case ">>":f>>=g;break;case ">>>":f>>>=g;break;case "<":f=f<g?1:0;break;case "<=":f=f<=g?1:0;break;case ">":f=f>g?1:0;break;case ">=":f=f>=g?1:0;break;case "==":f=f==g?1:0;break;case "!=":f=f!=g?1:
0;break;case "&":f=Se(a,f,g);break;case "!":case "|":e=a;32>=e.L?f|=g:(f=X(e,f,0,!0),g=X(e,g,0,!0),f=(f/Te|0|g/Te|0)*Te+((f|g)>>>0));break;case "^!":f=Ue(a,f,g);break;case "&&":f=f&&g?1:0;break;case "||":f=f||g?1:0;break;case ",,":f=X(a,f,18,!0)*Math.pow(2,18)+X(a,g,18,!0);break;case "_":case "^_":"^_"==e&&(g=35-(g&255));g&&(f=X(a,f,0,!0),f=0<g?f*Math.pow(2,g):Math.trunc(f/Math.pow(2,-g)));break;default:return!1}b.push(X(a,f))}return!0}
function We(a,b,c,d,e,f){var g,h,k,l=!1,p=0,q=[],D=[],F=a.T;for(a.T=e;c<d;){var J;h=b[c++].trim();k=c<d?b[c++]:"";if(h)J=Xe(a,h,null,f,p);else if("{"==k){h=1;for(J=c;c<d;)if(c++,k=c<b.length?b[c++]:"","{"==k)h++;else if("}"==k&&!--h)break;J=We(a,b,J,c-1,a.T,f);null!=J&&p&&(J=Ye(a,J,p));h=c<d?b[c++].trim():"";k=c<d?b[c++]:""}else{if(" "==k)continue;if("^B"==k){a.T=2;continue}if("^O"==k){a.T=8;continue}if("^D"==k){a.T=10;continue}if(!(p&-1073741824)){if("+"==k)continue;if("-"==k){p=p<<2|1;continue}if("~"==
k||"^-"==k){p=p<<2|2;continue}if("^L"==k){p=p<<2|3;continue}}l=!0;break}if(void 0===J)if(f)f.push(h),J=0;else{l=!0;f=[];break}q.push(X(a,J));if(" "==k)if(c<b.length-1&&!b[c])c++,k=b[c++];else{l=!0;break}if(!k)break;p="<"==a.S[0]?Ze:$e;if(!p[k]){l=!0;break}D.length&&p[k]<=p[D[D.length-1]]&&Ve(a,q,D,1);D.push(k);a.T="^_"==k?10:e;p=0}if(l||!Ve(a,q,D)||1!=q.length)l=!0;l?f||a.u("parse error ("+(h||k)+")"):g=q.pop();a.T=F;return g}
function af(a,b,c,d,e){for(var f;0<=(f=b.indexOf(c));){for(var g=0,h=f+1,k=e;h<b.length;){var l=b[h++];if(l==c){k=-1;break}if(!k)break;k--;l=l.charCodeAt(0);7==d?l&=127:l=l-32&63;g=X(a,g*Math.pow(2,d)+l,d*e,!0)}if(0<=k){a.u("parse error ("+c+b+c+")");return}b=b.substr(0,f)+L(a,g,-1)+b.substr(h)}return b}
function bf(a,b,c){var d=void 0,e=!1===c;c=Array.isArray(c)?c:void 0;if(b){"{"!=a.S[0]&&(b=b.split(a.S[0]).join("{").split(a.S[1]).join("}"));b=af(a,b,'"',7,5);if(!b)return d;b=af(a,b,"'",6,6);if(!b)return d;16!=a.T&&(b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_").replace(/\s+/g," "));b=b.split(/({|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|\^\/|\/|\*|,,| )/);d=We(a,b,0,b.length,a.T,c);void 0!==d&&e&&cf(a,null,d)}return d}
function Ye(a,b,c){for(;c;){switch(c&3){case 1:b=-X(a,b);break;case 2:b=Ue(a,b,-1);break;case 3:for(var d=35;0<=d&&!Se(a,b,Math.pow(2,d));)d--;b=35-d}c>>>=2}return b}
function Xe(a,b,c,d,e){e=void 0===e?0:e;var f,g=Array.isArray(d)?d:void 0;if(null!=b){f=a.rb(b);if(0<=f)f=a.sb(f);else if(f=b,a.b[f]?f=a.b[f].value:(f=f.substr(0,6),f=a.b[f]&&a.b[f].value),null!=f){var h=a.b[b]&&a.b[b].Mb;h&&(g?g.push(h):(g=bf(a,h,d),void 0!==g?f+=g:(d||a.u("undefined "+(c||"value")+": "+b+" ("+h+")"),f=void 0)))}else f=oa(b,1<b.length||10<a.T?a.T:10);null!=f?f=X(a,Ye(a,f,e)):d||a.u("invalid "+(c||"value")+": "+b)}else d||a.u("missing "+(c||"value"));return f}
function cf(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.T?L(a,c,a.L,8,1)+" "+c+".":L(a,c,a.L,16,1)+" "+L(a,c,a.L,8,1)+" "+L(a,c,a.L,2,32>=a.L?8:6)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.u((null!=b?b+": ":"")+d);return e}function df(a){var b=a.b;a.b={};return b}function ef(a,b){var c=0;if(a.b){if(b)return cf(a,b,a.b[b]&&a.b[b].value);b=Object.keys(a.b);b.sort();for(var d=0;d<b.length;d++)cf(a,b[d],a.b[b[d]].value),c++}return 0<c}
function L(a,b,c,d,e){c=void 0===c?0:c;e=void 0===e?0:e;switch((void 0===d?0:d)||a.T){case 2:(a=0<c?c:0)?36<a&&(a=36):(a=Math.abs(b),a=255>=a?8:262143>=a?18:36);b=pa(b,2,a,"",e);break;case 8:b=qa(b,0<c?(c+2)/3|0:0,!!e);break;case 10:b=xa(b,0<c?Math.ceil(.3*c):0);break;default:b=n(b,0<c?c+3>>2:0,!!e)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}
var $e={"||":5,"&&":6,"!":7,"|":7,"^!":8,"&":9,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,_:19,"^_":19,"{":20,"}":20},Ze={",,":1,"||":5,"&&":6,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,"!":15,"|":15,"^!":15,"&":15,_:19,"^_":19,"{":20,"}":20},Te=Math.pow(2,32);
function ff(a){Qe.call(this,a);this.Ia=!1;this.Fa=18;this.L=36;this.S=["<",">"];this.ta=[];this.Ha=Y();this.M=Y(0);this.oa=Y(0);this.ha=Y(0);this.I=[];this.i=this.N=this.K=[];gf(this);this.W=this.pa=0;this.j=[];this.Ba=void 0;hf(this);this.D=this;this.va={};this.da=this.Eb=0;this.Z=null;this.R=[];jf(this,a.messages);this.ua=a.commands;this.Ga=[];this.O=0;this.Na=this.Ca=null;this.F=this.Ka=this.Ja=this.na=this.xa=0;this.wa=this.ma=this.ca=null;var b=this;window?void 0===window[u]&&(window[u]=function(a){return id(b,
a)}):void 0===global[u]&&(global[u]=function(a){return id(b,a)})}la(ff,Qe);function kf(a){a=a&&a.B;null==a&&(a=-1);return a}function Y(a,b,c){return{B:void 0===a?null:a,bb:void 0===b?!1:b,qa:!1,T:c}}function lf(a,b,c,d){a.B=b;a.bb=c||!1;a.qa=!1;a.T=d}function mf(a){return[a.B,a.bb,a.qa,a.T,a.fb]}function nf(a,b){var c=Y(b[0],b[1],b[2]);c.qa=b[3];b[4]&&(c.zb=Re(a,c.fb=b[4]));return c}m=ff.prototype;
m.La=function(a,b,c,d){this.H=b;this.G=a;this.v=c;this.ma=a.j;this.Fa=b.F;(b=dd(a,"messages"))&&jf(this,b);if(a=dd(a,"commands"))this.ua=a;of(this,function(a){a:{var b=d.H.b,c=a[0],e=a=0,k=b.length;if(c){a=kf(pf(d,c,d.oa));if(-1===a){d.u("invalid address: "+c);break a}e=a>>>d.H.i;k=1}d.u("blockid physical blockaddr used size type");d.u("-------- --------- --------- ------ ------ ----");for(var c=-1,l=0;k--;){var p=b[e];p.type==c?l++||d.u("..."):(c=p.type,l=Kc[c],p&&d.u(n(p.id,8)+" %"+
n(e<<d.H.i,8)+" %"+n(p.B,8)+" "+n(p.Wa,4,!0)+" "+n(p.size,4,!0)+" "+l),c!=Sc&&(c=-1),l=0);a+=16384;e++}}});Pb(this)};
m.sa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ca=this.J[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",id(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.C<d.w.length-1&&(b=d.w[++d.C])):40==a.keyCode&&(0<d.C?b=d.w[--d.C]:(b="",d.C=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.J[b]=c,Ya(c,function(){if(d.ca){var a=d.ca.value;
d.ca.value="";id(d,a,!0);return!0}return!1}),!0;case "step":return this.J[b]=c,Ya(c,function(a){var b=!1;Qb(d,!0)||(Rb(d,!0),b=wc(d,a?1:0,null),Rb(d,!1));return b}),!0}return!1};function hd(a){if(a.ca){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.ca.focus();window&&window.scrollTo(b,c)}}m.Ma=function(a,b){var c=-1,d=kf(a);-1!==d&&(c=Cc(this.H,d),b&&null!=a.B&&(a.B+=b||1));return c};m.yb=function(a,b,c){var d=kf(a);-1!==d&&(Bc(this.H,d,b),c&&null!=a.B&&(a.B+=c||1),K(this.G,-1))};
m.Ib=function(a,b){0>a&&(a+=C);0>b&&(b+=C);a=De.call(this.v,a,b,!1,!0);a>=A&&(a-=C);return a};
function pf(a,b,c){var d,e;c||(c=Y());var f=c.B;if(void 0!==b){a:{var g,f=a.S[0],h=a.S[1];g="("==f||"{"==f||"["==f?"\\":"";for(var k="["==f?"\\":"",k=new RegExp(g+f+"([^"+k+f+k+h+"]+)"+g+h);g=b.match(k);){var l=bf(a,g[1]);if(void 0===l){b=void 0;break a}b=b.replace(f+g[1]+h,null!=l?L(a,l):"undefined")}if(a.ta.length)for(f=a.ta[0],h=a.ta[1],g="("==f||"{"==f||"["==f?"\\":"",k="["==f?"\\":"",k=new RegExp(g+f+"([^"+k+f+k+h+"]+)"+g+h);g=b.match(k);)b=b.replace("["+g[1]+"]","unimplemented");for(;f=b.match(/\$([a-z]+)/i);){h=
null;switch(f[1].toLowerCase()){case "ops":h=0}if(null==h)break;b=b.replace(f[0],h.toString())}}"%"==b.charAt(0)&&(d=!0,b=b.substr(1));var p,f=b,q;if(f.match(/^[a-z_][a-z0-9_]*$/i))for(f=f.toUpperCase(),h=0;h<a.I.length;h++)if(g=a.I[h].aa[f],null!=g){q=g.o;break}null!=q&&(p=Y(q));if(p)return p;0<=b.indexOf("0x")?e=16:0<=b.indexOf("0o")?e=8:0<=b.indexOf(".")&&(e=10);f=bf(a,b)}null!=f&&(f=qf(f,a.Fa),lf(c,f,d,e));return c}function rf(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.zb=Re(a,b.fb=c[2]))}
function qf(a,b){0>a&&a>=-A&&(a+=C);return Math.trunc(Math.abs(a))%Math.pow(2,void 0===b?36:b)}function sf(a,b){return L(a,b/Wb,18)+" "+L(a,b%Wb,18)}
function jf(a,b){a.D=a;a.da=a.Eb=536870916;a.Z=null;a.R=[];b=Re(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in ec){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.da|=ec[c],a.u(c+" messages enabled"))}}function of(a,b){for(var c in ec)if(16==ec[c]){a.va[c]=b;break}}m.rb=function(a){return tf.indexOf(a.toUpperCase())};
m.sb=function(a){var b,c=this.v;switch(a){case uf:b=c.i;break;case vf:b=c.I;break;case wf:b=c.b;break;case xf:b=c.j&x;break;case yf:b=c.j&131072?1:0;break;case zf:b=c.j&65536?1:0;break;case Af:b=c.j&32768?1:0;break;case Bf:b=c.j&8192?1:0;break;case Cf:b=c.j&32?1:0;break;case Df:b=c.j&262144?1:0}return b};
m.message=function(a,b){b&&(a+=" @"+L(this,Y(this.v.oa).B,18));if(!this.Z||a!=this.Z)if(this.Z=a,this.da&1073741824)this.R.push(a);else{var c;if(this.da&-2147483648&&this.v&&(c=this.v.A.P)||Qb(this,!0))this.Y(),c&&(a+=" (cpu halted)");this.u(a);this.v&&(a=this.v,qd(a),a.ma=0,a.G&&K(a.G,void 0))}};
function hf(a){var b;if(!yd(a))a.j&&a.j.length&&a.u("instruction history buffer freed"),a.W=0,a.j=[];else if(!a.j||!a.j.length){a.j=Array(Ef);for(b=0;b<a.j.length;b++)a.j[b]=Y();a.W=0;a.u("instruction history buffer allocated")}}function Ff(a,b,c){if(!Gf(a,c))return!1;vc(a.v,b);return!0}
function wc(a,b,c,d){if(!Gf(a))return!1;var e="";null===c&&(e=(c=!a.Ca||"tr"==a.Ca)?"tr":"t");a.F=0;b||yd(a)&&zd(a,a.v.i,0);try{b=od(a.v,b);var f=a.v.Ya(b);0<f&&(xc(a.v,f),a.F+=f,yc(a.v,f,!0),zc(a.v,f),a.na++)}catch(g){"number"!=typeof g&&(a.F=0,Cb(a.v,g.stack||g.message))}!1!==d&&(a.ma&&a.ma.stop(),K(a.G,-1));gd(a,c||!1,e);return 0<a.F}m.Y=function(a){this.v&&this.v.Y(a)};function gd(a,b,c){b=void 0===b?!0:b;a.Ia&&(c&&a.u(Hf+c),lf(a.M,a.v.i),b&&1!=a.O?If(a):Jf(a))}
function Gf(a,b){var c;(c=!a.v||!Eb(a.v))||(c=a.v,c.A.ba?c=!0:(c.u(c.toString()+" not powered"),c=!1),c=!c);return c||a.v.A.P?(b||a.u("cpu busy or unavailable, command ignored"),!1):!Db(a.v)}m.Aa=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};m.ra=function(a,b){b&&this.u(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){hf(this);this.na=0;this.Z=null;this.F=0;lf(this.M,this.v.i);this.A.P=!1;Kf(this);a||gd(this)};
m.save=function(){var a=new G(this);a.set(0,mf(this.M));a.set(1,mf(this.oa));a.set(2,mf(this.ha));a.set(3,[this.w,this.V,this.da]);a.set(4,this.I);return a.data()};m.restore=function(a){var b=0;void 0!==a[3]&&(this.M=nf(this,a[b++]),this.oa=nf(this,a[b++]),this.ha=nf(this,a[b++]),this.w=a[b][0],"string"==typeof this.w&&(this.w=[this.w]),this.V=a[b][1],this.da|=a[b][2]);a[4]&&(this.I=a[4]);return!0};m.start=function(a,b){this.O||this.u("running");this.A.P=!0;this.Ja=a;this.Ka=b};
m.stop=function(a,b){if(this.A.P){this.A.P=!1;this.F=b-this.Ka;if(!this.O){b="stopped";if(this.F){a-=this.Ja;var c=0<a?Math.round(1E3*this.F/a):0;b+=" (";yd(this)&&(b+=this.na+" instructions, ",this.na=0);b+=this.F+" cycles, "+a+" ms, "+c+" hz)"}else Sb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.u(b)}gd(this,!0);hd(this);Kf(this,this.v.i);this.Z=null}};function yd(a){return 1<a.i.length||!!a.pa}
function zd(a,b,c){var d=-1;c||(d=a.v.f(b),2756==d>>23&&a.v.oa==b&&(b=wd(a.v,1)));if(0<c&&(a.pa&&!--a.pa||ad(a,b,1,a.i)))return!0;0<=c&&a.j.length&&(a.na++,0>d&&(d=a.v.f(b)),0<=d&&(lf(a.j[a.W],b),++a.W==a.j.length&&(a.W=0)));return!1}
function Lf(a,b,c,d){var e=Y(b.B),f=a.Ma(b,1),g,h,k,l=0,p=f/ac|0,q;for(q in Mf)if(g=Mf[q][p&q]){h=+q;p>>=6;switch(h){case 32512:k=Nf;l=p&3;break;case 32256:k=Of;l=p&7;break;case 29248:k=Pf,l=(p&48)>>2|(p&6)>>1}break}k=k&&k[l]||"";"S"==k&&g>Qf&&(k="B");k=Rf[g||0]+k;if(g){if(28700==h)h=f/bc&127,l=L(a,h,-1);else for(h=f>>23&15,l=L(a,h,-1),p=0;l&&p<Sf.length;p++)if(g==Sf[p][0]&&(q=Sf[p][h])){k=Rf[q];l="";break}k=Da(k,8)+(l?l+",":"");f&4194304&&(k+="@");k+=L(a,f&262143,-1);(f=f>>18&15)&&(k+="("+L(a,f,
-1)+")")}else k=Da(k,8)+sf(a,f);f=k;g="";h=L(a,e.B,18)+":";if(-1!==e.B&&-1!==b.B){do if(k=a.Ma(e,1),g+=" "+sf(a,k),null==e.B)break;while(e.B!=b.B)}h+=Da(g,16)+f;c&&(h=Da(h,48)+";"+(c||""),h=a.v.A.Ta?h+("cycles="+jd(a.v).toString()+" cs="+n(a.v.Ga)):h+(null!=d?"="+d.toString():""));return h}
function Tf(a,b,c,d,e){var f=-1,g,h;if(b){for(var k=b.toUpperCase(),l=0;l<Sf.length;l++)for(var p in Sf[l])if(+p&&(h=Sf[l][p],k==Rf[h])){k=Rf[Sf[l][0]];c&&(c=L(a,+p)+","+c);break}for(var q in Mf){g=+q;p=Mf[q];switch(g){case 32512:l=Nf;break;case 32256:l=Of;break;case 29248:l=Pf;break;default:l=[""]}for(var D in p){h=p[D];for(var F=0;F<l.length;F++){var J=l[F];"S"==J&&h>Qf&&(J="B");if(k==Rf[h]+J){f=29248!=g?F:(F&3)<<1|(F&12)<<2;f=(D|f<<6)*ac;break}}if(0<=f)break}if(0<=f)break}!(0>f)||c&&c.match(/^[0-9A-Z$%.?]/i)||
(c=b+c,b="",f=0)}else c&&(f=g=0);if(0<=f&&c)for(k=c.split(","),2<k.length&&(e||a.u("too many operands: "+c),k.length=0,f=-1),q=0;q<k.length;q++)if(h=k[q].trim()){D=h.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!D){e||a.u("unknown operand: "+h);f=-1;break}D[1]&&(f+=4194304);if(h=D[3]){h=bf(a,h,e);if(void 0==h){f=-1;break}h=W(X(a,h,36,!0));f+=h}h=D[2];if(q||1==k.length)h=h?h.replace(/(^|[^0-9])\./g,"$1"+L(a,d,18)):"0";h=bf(a,h,e);if(void 0==h){f=-1;break}if(!q&&1<k.length)if(28700==g){if(0>h||127<h)h&=127;
f+=h*bc}else{if(0>h||15<h)h&=15;f+=h<<23}else{if(b||q)if(0>h||262143<h)h&=Vb;f+=h}}0>f&&!e&&a.u("unknown instruction: "+b+" "+c);return f}function gf(a){var b,c;a.i=["bp"];if(a.N)for(b=1;b<a.N.length;b++){c=a.N[b];c=kf(c);var d=a.H;$c(d.b[c>>>d.i],!1)}a.N=["br"];if(a.K)for(b=1;b<a.K.length;b++)c=a.K[b],c=kf(c),d=a.H,$c(d.b[c>>>d.i],!0);a.K=["bw"];a.xa=0;a.pa=0}
m.Ra=function(a,b,c){var d=!0;c||Uf(this,a,b,!1,!0);if(a!=this.i){var e=kf(b);if(-1===e)this.u("invalid address: "+L(this,b.B,18)),d=!1;else{var f=this.H;f.b[e>>>f.i].Ra(e&16383,a==this.K)}}d&&(a.push(b),c?b.qa=!0:(Vf(this,a,a.length-1,"set"),hf(this)));return d};function Uf(a,b,c,d,e){var f=!1;c=kf(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==kf(h)&&(!d||h.qa)){f=!0;h.qa||e||Vf(a,b,g,"cleared");b.splice(g,1);b!=a.i&&(d=a.H,$c(d.b[c>>>d.i],b==a.K));h.qa||hf(a);break}}return f}
function Wf(a,b){for(var c=1;c<b.length;c++)Vf(a,b,c);return b.length-1}function Vf(a,b,c,d){c=b[c];a.u(b[0]+" "+L(a,c.B,18)+(d?" "+d:c.fb?' "'+c.fb+'"':""))}function Kf(a,b){if(void 0!==b)ad(a,b,1,a.i,!0),a.O=0;else for(b=1;b<a.i.length;b++){var c=a.i[b];if(c.qa){if(!Uf(a,a.i,c,!0))break;b=0}}}
function ad(a,b,c,d,e){var f=!1;if(!a.xa++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.qa)for(var k=kf(h)&(d==a.i?65535:-1),l=0;l<c;l++)if(b+l==k){var p,f=!0;h.qa&&(Uf(a,d,h,!0),e=!0);if(p=h.zb){for(var f=!1,q=0;q<p.length;q++)if(!Xf(a,p[q],!0)){if(p[q].indexOf("if")){f=!0;break}for(var D=q+1;D<p.length&&p[D].indexOf("else");D++)q++;if(D==p.length){f=!0;break}}a.v.A.P||(f=!0)}if(f){e||Vf(a,d,g,"hit");break}}}a.xa--;return f}
function Yf(a,b){b=void 0===b?!0:b;for(var c="",d=0;16>d;d++){!d||d&3||(c+="\n");var e=a,f=qa(d,2);lf(e.Ha,d);f+="="+L(e,e.Ma(e.Ha),36)+" ";c+=f}if(b){b="";for(d=0;d<tf.length;d++)(e=tf[d]||"")&&(e+="="+L(a,a.sb(d),d>=yf?1:d==vf?23:18)+" "),b+=e;c+="\n"+b}return c}m.Gb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Ke(a,b,c,d,e){var f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var k=h.o,l=h.a;if(void 0!==k){var p=f,k=[k>>>0,g],q=Fa(p,k,a.Gb);0>q&&p.splice(-(q+1),0,k)}l&&(h.a=l.replace(/''/g,'"'))}a.I.push({Cd:b,B:c,Xb:d,aa:e,Bb:f})}function Zf(a,b,c){var d=[],e=kf(b)>>>0;for(b=0;b<a.I.length;b++){var f=a.I[b],g=f.B>>>0,h=f.Xb;if(e>=g&&e<g+h){e=Fa(f.Bb,[e-g],a.Gb);0<=e?$f(a,b,e,d):c&&(e=~e,$f(a,b,e-1,d),$f(a,b,e,d));break}}return d}
function ag(a,b,c){var d=a.H,e=0,f=null,g=0;b.forEach(function(a,b){d.b[(b&d.j)>>>d.i].g(a,b&16383,b);null==f&&(f=b);b>g&&(g=b);e++});e?(b="start address ",null!=c?(H(a.v,c),b+=L(a,c)):b+="unspecified",a.u(e+" words loaded at "+L(a,f)+"-"+L(a,g)+", "+b),gd(a)):a.u("no data")}function $f(a,b,c,d){var e={},f=a.I[b].Bb,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.I[b].aa[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
function bg(a,b){var c=b[0].substr(1),d=b[1]&&"0"<=b[1][0]&&"9">=b[1][0]?b[1]:void 0,e=d?b[2]:b[1],f=pf(a,d,a.ha);if(!e)return a.u("begin assemble at "+L(a,f.B,18)),a.V=!0,K(a.G),!0;var g=e.match(/^(['"]?)(.*?)(\.klm|\.mac|\.html|\.txt|)\1$/i);if(g&&(g[1]||g[3])){f=pf(a,d);if(a.wa)a.u("assembly already in progress");else{var h=g[2]+g[3];g[3]||(c+="s");var k=f.B,l=a.wa=new Fg(a);Hg(l,h,k,c,function(b,c){if(!b)try{var d=l.J;null==d&&(d=k);ag(a,l.U,d)}catch(F){"number"==typeof F?b=F||-1:(a.u(F.message),
b=-1)}b&&a.u("error ("+b+") processing "+(c||h));a.wa=null;b||id(a)})}return!1}b.shift();b.shift();b.shift();b=Tf(a,e,b.join(""),f.B||0);0<=b&&(a.yb(f,b),a.u(Lf(a,f)));return!0}function Ig(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return ef(a)||a.u("no variables"),!0;if(!c[2])return ef(a,c[1]);if(!c[3])return delete a.b[c[1]],!0;b=bf(a,c[3]);return void 0!==b?(a.b[c[1]]={value:b,Mb:void 0},!0):!1}a.u("invalid assignment:"+b);return!1}
function Jg(a,b,c){var d=null;b=pf(a,b);var e=Zf(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.B-e[1])&&(g=" + "+n(f,4,!0)),f=e[0]+" ("+L(a,e[1],18)+")"+g,c&&a.u(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.B)&&(g=" - "+n(f,4,!0)),f=e[4]+" ("+L(a,e[5],18)+")"+g,c&&a.u(f),d||(d=f))}else c&&a.u("no symbols");return d}
function If(a,b){var c;if(b&&"?"==b[1])a.u("register commands:"),a.u("\tr\tdump registers"),a.u("\trm\tdump misc registers"),a.u("\trx [#]\tset flag or register x to [#]");else{var d=a.v,e=void 0;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)e=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.u("missing value for "+b[1]);return}g=bf(a,b);if(void 0===g)return;b=a.rb(f);if(0>b){a.u("unknown register: "+f);return}var f=0,h=a.v;switch(b){case uf:H(h,
g);lf(a.M,h.i);break;case xf:vd(h,g);break;case yf:f=131072;break;case zf:f=65536;break;case Af:f=32768;break;case Bf:f=8192;break;case Cf:f=32;break;case Df:f=262144}f&&(h.j=g?h.j|f:h.j&~f);K(a.G);a.u("updated registers:")}}a.u(Yf(a,e));c&&(lf(a.M,xd(d)),Jf(a,L(a,a.M.B,18)))}}function Kg(a,b){b=Ea(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.u(c[2]):cf(a,null,c[2].charCodeAt(0)):bf(a,b,!1)}
function Lg(a,b,c){if("?"==c)a.u("trace commands:"),a.u("\tt [#]\ttrace # instructions"),a.u("\ttr [#]\ttrace # instructions with register updates"),a.u("\ttc [#]\ttrace # cycles"),a.u("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Xe(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.Ca=b;Xa(c,function(){return Rb(a,!0)&&wc(a,e,d,!1)},function(){a.ma&&a.ma.stop();K(a.G,-1);Rb(a,!1)})}}
function Jf(a,b,c,d){b=pf(a,b,a.M);void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Xe(a,c.substr(1)),null!=c&&(d=c);else{d=pf(a,c);if(d.B<b.B)return;e=d.B-b.B;if(256<e){a.u("range too large");return}d=-1}for(c=0;0<e&&d--;){var f=Qb(a,!1)||a.O?a.F:null,g=null!=f?"cycles":null,h=Zf(a,b),k=b.B;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var l=h[0]+":";h[2]&&(l+=" "+h[2]);a.u(l)}h[3]&&(g=h[3],f=null);h=a.ha;l=b;h.B=l.B;h.bb=l.bb;h.qa=l.qa;h.T=l.T;a.u(Lf(a,b,g,f));e-=b.B-k;c++}}
function Xf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.u(Hf+b):(a.V&&(a.u("ended assemble at "+L(a,a.ha.B,18)),a.V=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.Z=null;if(Eb(a)&&0<b.length){a.V&&(b="a "+L(a,a.ha.B,18)+" "+b);var f=!1,g=b,h;h=void 0===h?" ":h;for(var k=[],l="",p=0,q=0;p<g.length;){var D=g[p++];l?D==l&&(l="",k.push(g.substr(q,p-q)),q=p):'"'==D||"'"==D?l=D:0<=h.indexOf(D)&&(k.push(g.substr(q,p-q-1)),q=p)}q<p&&k.push(g.substr(q,p-q));k[0]=k[0].toLowerCase();if(k&&k.length)for(var F=
k[0],J=F.charAt(0),p=1;p<F.length;p++)if(D=F.charAt(p),"?"==J||"r"==J||"a">D||"z"<D){k[0]=F.substr(p);k.unshift(F.substr(0,p));break}switch(k[0].charAt(0)){case "a":d=bg(a,k);break;case "b":var Mc=k[0],ra=k[1],I=b;if("?"==ra)a.u("breakpoint commands:"),a.u("\tbp #\tset exec breakpoint"),a.u("\tbr #\tset read breakpoint"),a.u("\tbw #\tset write breakpoint"),a.u("\tbc #\tclear breakpoint (* to clear all)"),a.u("\tbl\tlist all breakpoints"),a.u("\tbn [#]\tbreak after # instruction(s)");else{var Pa=Mc.charAt(1);
if("l"==Pa){var Rd;Rd=0+Wf(a,a.i);Rd+=Wf(a,a.N);(Rd+=Wf(a,a.K))||a.u("no breakpoints")}else if("n"==Pa){var cg=+ra||0;ra&&(a.pa=cg);a.u("break after "+cg+" instruction(s)")}else if(void 0===ra)a.u("missing breakpoint address");else{var ja="*"==ra?Y():pf(a,ra,a.M);"c"==Pa?null==ja.B?(gf(a),a.u("all breakpoints cleared")):Uf(a,a.i,ja)||Uf(a,a.N,ja)||Uf(a,a.K,ja)||a.u("breakpoint missing: "+L(a,ja.B,18)):null!=ja.B&&(rf(a,ja,I),"p"==Pa?a.Ra(a.i,ja):"r"==Pa?a.Ra(a.N,ja):"w"==Pa?a.Ra(a.K,ja):a.u("unknown breakpoint command: "+
Pa))}}break;case "c":var dg=a.G;dg.F&&(dg.F.value="");break;case "d":a:{var kb,lb=k[0],sa=k[1],Ga=k[2],ci=k[3];if("?"==sa){var mb="";for(kb in ec)a.va[kb]&&(mb&&(mb+=","),mb+=kb);mb+=",state,symbols";a.u("dump memory commands:");a.u("\tdw [a] [n] dump n words at address a");a.u("\tds [a] [n] dump n words at address a as JSON");a.u("\tdh [p] [n] dump n instructions from history position p");mb.length&&a.u("dump extension commands:\n\t"+mb)}else if("state"==sa){var Sd=Mg(a.G,!0);if("console"==
Ga)console.log(Sd);else{var eg=a.G;eg.F&&(eg.F.value="");Sd&&a.u(Sd)}}else if("symbols"==sa)for(var Td=0;Td<a.I.length;Td++){var Ud=a.I[Td],nb;for(nb in Ud.aa)if("."!=nb.charAt(0)){var fg=Ud.aa[nb].o;if(void 0!==fg){var gg=Ud.aa[nb].l;gg&&(nb=gg);a.u(L(a,fg,18)+" "+nb)}}}else{if("d"==lb){for(kb in ec)if(k[1]==kb){var hg=a.va[kb];hg?(k.shift(),k.shift(),hg(k)):a.u("no dump registered for "+sa);break a}sa||(lb=a.Na||"dw")}else a.Na=lb;if("dh"==lb){var ig=sa,jg=Ga,kg="",lg=0,ka=a.W,ta=a.j;if(ta.length){var ga=
+ig||a.Ba,Fb=+jg||10;isNaN(ga)?ga=Fb:kg="more ";ga>ta.length&&(a.u("note: only "+ta.length+" available"),ga=ta.length);ka-=ga;0>ka&&(null==ta[ta.length-1].B?(ga=ka+ga,ka=0):ka+=ta.length);var Vd=[];"call"==jg&&(Fb=1E5,Vd=["CALL"]);for(void 0!==ig&&a.u(ga+" instructions earlier:");0<Fb&&ka!=a.W;){var mg=ta[ka++];if(null==mg.B)break;var Gb=Y(mg.B),di=ga--,ng=Lf(a,Gb,"history",di);(!Vd.length||0<=ng.indexOf(Vd[0]))&&a.u(ng);Gb.pb&&(ka+=Gb.pb,Fb-=Gb.pb,ga-=Gb.pb);ka>=ta.length&&(ka=0);a.Ba=ga;lg++;Fb--}}lg||
(a.u("no "+kg+"history available"),a.Ba=void 0)}else{var Qa=0,og="ds"==lb,Hb=pf(a,sa,a.oa);Ga&&("l"==Ga.charAt(0)?(Ga=Ga.substr(1)||ci,Qa=Xe(a,Ga)):Qa=pf(a,Ga).B-Hb.B,0>Qa&&(Qa=0),65536<Qa&&(Qa=65536));var ei=a.T;Hb.T&&(a.T=Hb.T);for(var pg="db"==lb?1:2,Wd=Qa||32,Xd=1==pg?1:4,fi=(Wd+Xd-1)/Xd|0||1,Ra="";fi--&&0<Wd;){for(var ua="",Yd="",sa=L(a,Hb.B,18),qg=Xd;0<qg--&&0<Wd--;){var Zd=a.Ma(Hb,1);og?(ua&&(ua+=","),ua+=Zd):(ua+=sf(a,Zd),ua+=" ");for(var Nc=29,gi=0;1==pg&&0<=Nc;gi++)var Ib=Zd/Math.pow(2,
Nc)%Math.pow(2,7),ua=ua+(L(a,Ib,7)+" "),Ib=Ib+0,Yd=Yd+(32>Ib?".":String.fromCharCode(Ib)),Nc=Nc-7}Ra&&(Ra+="\n");Ra=og?Ra+(ua+","):Ra+(sa+": "+ua+(0>qg?" "+Yd:""))}Ra&&a.u(Ra);a.T=ei}}}break;case "e":if("else"==k[0])break;var rg,sg,tg=k[0],$d=k[1];"e"==tg||"ew"==tg?(rg=a.Ma,sg=a.yb):$d=null;if(null==$d)a.u("edit memory commands:"),a.u("\tew [a] [...] edit words at address a");else for(var ae=pf(a,$d,a.oa),be=2;be<k.length;be++){var Jb=bf(a,k[be]);if(void 0===Jb)break;Jb=qf(Jb);a.u("changing "+L(a,
ae.B,18)+" from "+sf(a,rg.call(a,ae))+" to "+sf(a,Jb));sg.call(a,ae,Jb,1)}break;case "g":var ug=k[1],hi=b;if(void 0!==ug){var vg=pf(a,ug);rf(a,vg,hi);a.Ra(a.i,vg,!0)}Ff(a,!0,c);break;case "h":a.A.P?(c||a.u("halting"),a.Y()):Qb(a,!0)||c||a.u("already halted");break;case "i":if("if"==k[0]){var ce;var Kb=b.substr(2),Kb=Ea(Kb);bf(a,Kb)?(c||a.u("true: "+Kb),ce=!0):(c||a.u("false: "+Kb),ce=!1);ce||(d=!1);break}f=!0;break;case "k":var ii=k[0];if("?"==k[1])a.u("stack trace commands:"),a.u("\tk\tshow frame addresses"),
a.u("\tks\tshow symbol information");else{var de=0,ee=Y(),Lb=Y();for(a.u("stack trace for "+L(a,Lb.B,18));10>de;){for(var Sa=null,ji=256;65536>Lb.B>>>0;){ee.B=a.Ma(Lb,2);if(null==Lb.B||!ji--)break;if(!(ee.B&1)){for(var ki=a,Oc=ee,wg=null,Mb=Oc.B,xg=Mb,fe=1;6>=fe&&Mb;fe++){if(2<fe){Oc.B=Mb;var Pc=Lf(ki,Oc);if(0<=Pc.indexOf("JSR")){var yg=Pc.indexOf(" ");if(Mb+(Pc.indexOf(" ",yg+1)-yg-1)/2==xg){wg=Pc;break}}}Mb-=2}Oc.B=xg;if(Sa=wg)break}}if(!Sa||null==Sa)break;var zg=null;if("ks"==ii){var Ag=Sa.match(/[0-9A-F]+$/);
Ag&&(zg=Jg(a,Ag[0]))}Sa=Da(Sa,50)+" ;"+(zg||"stack="+L(a,Lb.B,18));a.u(Sa);de++}de||a.u("no return addresses found")}break;case "l":if("ln"==k[0]){Jg(a,k[1],!0);break}f=!0;break;case "m":a:{var va,wa=null,N=k[1];"?"==N&&(N=void 0);if(void 0!==N){var Ha=0;if("all"==N)Ha=1879046143,N=null;else if("on"==N)wa=!0,N=null;else if("off"==N)wa=!1,N=null;else{"keys"==N&&(N="key");"kbd"==N&&(N="keyboard");for(va in ec)if(N==va){Ha=ec[va];wa=!!(a.da&Ha);break}if(!Ha){a.u("unknown message category: "+N);break a}}if(Ha)if("on"==
k[2])a.da|=Ha,wa=!0;else if("off"==k[2]&&(a.da&=~Ha,wa=!1,1073741824==Ha)){for(var Bg=1E3<=a.R.length?a.R.length-1E3:0;Bg<a.R.length;)a.u(a.R[Bg++]);a.R=[]}}var li=0,Nb="";for(va in ec)if(!N||N==va){var mi=!!(a.da&ec[va]);if(null===wa||wa==mi)Nb&&(Nb+=","),++li%10||(Nb+="\n\t"),"key"==va&&(va="keys"),Nb+=va}void 0===N&&a.u("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.u((null!==wa?wa?"messages on: ":"messages off: ":"message categories:\n\t")+(Nb||"none"));hf(a)}break;case "p":if("print"==
k[0]){Kg(a,b.substr(5));break}var Cg=k[0],Dg="p"==Cg?0:"pr"==Cg?1:-1;if("?"==k[1]||0>Dg)a.u("step commands:"),a.u("\tp\tstep over instruction"),a.u("\tpr\tstep over instruction with register update");else if(a.O)a.u("step in progress");else{var Eg=Y(a.v.i);a.Ma(Eg);a.O?(a.Ra(a.i,Eg,!0),Ff(a)||(a.G&&nd(a.G),a.O=0)):Lg(a,Dg?"tr":"t")}break;case "r":if("reset"==b){a.G&&a.G.reset();break}If(a,k);break;case "s":a:switch(k[1]){case "base":if(k[2]){var ob=+k[2];if(2==ob||8==ob||10==ob||16==ob)a.T=ob;else{a.u("invalid base: "+
ob);break}}a.u("default base: "+a.T);break;case "cs":var Ob;void 0!==k[3]&&(Ob=+k[3]);switch(k[2]){case "int":a.v.pa=Ob;break;case "start":a.v.Ha=Ob;break;case "stop":a.v.ua=Ob;break;default:a.u("unknown cs option");break a}void 0!==Ob&&fd(a.v);a.u("checksums "+(a.v.A.Ta?"enabled":"disabled"));break;case "sp":void 0!==k[2]&&(kd(a.v,+k[2])||a.u("warning: using 1x multiplier, previous target not reached"));a.u("target speed: "+(a.v.ca.toFixed(2)+"Mhz")+" ("+a.v.ha+"x)");break;default:if(k[1]){a.u("unknown option: "+
k[1]);break}case "?":a.u("debugger options:"),a.u("\tbase #\t\tset default base to #"),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 "t":Lg(a,k[0],k[1]);break;case "u":Jf(a,k[1],k[2],8);break;case "v":if("var"==k[0]){Ig(a,b.substr(3))||(d=!1);break}if("ver"==k[0]){a.u((Ub||"PDP10")+" version 1.36.0 ("+a.v.jb+",RELEASE)");a.u(window?
window.navigator.userAgent:"");break}f=!0;break;case "?":if(k[1]){Kg(a,b.substr(1));break}var ge="commands:",he;for(he in Ng)ge+="\n"+Da(he,9)+Ng[he];yd(a)||(ge+="\nnote: history disabled if no exec breakpoints");a.u(ge);break;default:f=!0}f&&(a.u("unknown command: "+b),d=!1)}}catch(Gg){a.u("Debugger "+(Gg.stack||Gg.message)),d=!1}return d}function id(a,b,c){null!=b&&(a.Ga=Re(a,b,c));for(;b=a.Ga.shift();)if(!Xf(a,b))return!1;return!0}
var Ng={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},Qf=20,Rf=".WORD HLL HLLZ HLLO HLLE HRL HRLZ HRLO HRLE HRR HRRZ HRRO HRRE HLR HLRZ HLRO HLRE MOVE MOVS MOVN MOVM EXCH BLT PUSH POP LDB DPB IBP ILDB IDPB SETZ SETO SETA SETCA SETM SETCM AND ANDCA ANDCM ANDCB IOR ORCA ORCM ORCB XOR EQV LSH LSHC ROT ROTC ADD SUB MUL IMUL DIV IDIV ASH ASHC FSC FADR FSBR FMPR FDVR DFN UFA FAD FSB FMP FDV AOBJP AOBJN CAI CAM JUMP SKIP AOJ AOS SOJ SOS TR TL TD TS XCT JFFO JFCL JSR JSP JRST JSA JRA PUSHJ POPJ BLKI DATAI BLKO DATAO CONO CONI CONSZ CONSO UUO JOV JCRY0 JCRY1 JCRY JFOV HALT JRSTF JEN".split(" "),
uf=0,vf=1,wf=2,xf=3,yf=4,zf=5,Af=6,Bf=7,Cf=8,Df=9,tf="PC RA EA PS OV C0 C1 BI ND PD".split(" "),Og={},Mf=(Og[28672]={0:101},Og[32704]={5632:64,5696:63,5760:58,5824:27,5888:28,5952:25,6016:29,6080:26,10240:56,10304:48,10368:46,10432:84,10496:57,10560:49,10624:47,10752:21,10816:22,10880:69,10944:70,11008:88,11072:85,11136:83,11264:91,11328:23,11392:24,11456:92,11520:86,11584:87,11648:89,11712:90},Og[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:Qf,
9216:53,9472:52,9728:55,9984:54,11776:50,12032:51,16384:30,16640:36,16896:37,17152:34,17408:38,17664:32,17920:44,18176:40,18432:39,18688:45,18944:33,19200:41,19456:35,19712:42,19968:43,20224:31,20480:1,20736:5,20992:2,21248:6,21504:3,21760:7,22016:4,22272:8,22528:9,22784:13,23040:10,23296:14,23552:11,23808:15,24064:12,24320:16},Og[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},Og[29248]={24576:79,24640:80,25088:81,25152:82},Og[28700]={28672:93,28676:94,28680:95,28684:96,
28688:97,28692:98,28696:99,28700:100},Og),Nf=["","I","M","S"],Of=" L E LE A GE N G".split(" "),Pf="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),Sf=[{0:85,8:102,4:103,2:104,6:105,1:106},{0:88,4:107,2:108,10:109}],Ef=1E3,Hf=">> ";$a(function(){for(var a=v(document,u,"debugger"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new ff(d);sb(d,c)}});function Fg(a){this.b=a}
function Pg(a,b,c,d){a.la=b;a.W=(c||"").toLowerCase();a.done=d;a.R=0;a.H=[];a.N=[];a.D=[];a.v={};a.K={};a.M=[];a.L=[];a.U=[];a.fa=[];a.Z=[];a.ia=0;a.V=0;a.ca=0;a.X=a.la||0;a.Da=-1;a.G=[];a.S=null;a.i=0;a.I=null;a.C=a.O="";a.ha=/^[ \t]*([A-Z$%.?][0-9A-Z$%.]*:|)[ \t]*([A-Z$%.][0-9A-Z$%.]*|)([ \t]*)([^;]+|)(;?[\s\S]*)/i;a.j=null;a.w=null;a.F="";a.J=null}
function Hg(a,b,c,d,e){d&&0<=d.indexOf("s")?(Pg(a,c,d,e),a.D=b.split(/(\r?\n)/),a.N.push(a.D.length),Qg(a),a.done&&a.done(a.V)):(Pg(a,c,d,e),a.H=b.split(";"),Rg(a))}
function Rg(a){if(a.R==a.H.length)Qg(a),a.done&&a.done(a.V);else{var b=a.H[a.R];a.u("loading "+ya(b));0>b.indexOf(":")&&0<=".MAC.KLM".indexOf(b.slice(-4).toUpperCase())&&(b+=".txt");Ja(b,null,!0,function(b,d,e){if(e)a.done&&a.done(e,b);else{e=d;if(Aa(b,".html")){e="";var c;for(b=/<pre>([\s\S]*?)<\/pre>/gi;c=b.exec(d);)c=c[1],0<=c.indexOf("&")&&(c=c.replace(/&lt;/gi,"<").replace(/&gt;/gi,">").replace(/&amp;/gi,"&")),e+=c;(c=e.match(/&[a-z]+;/i))&&Sg(a,"unrecognized HTML entity '"+c[0]+"'")}d=e.split(/(\r?\n)/);
if(d.length&1){if(c=d.pop())Sg(a,"unexpected line '"+c+"'"),d.push(c),d.push("")}else Sg(a,"unexpected number of lines ("+d.length+")");a.D=a.D.concat(d);a.N[a.R]=d.length>>1;a.R++;setTimeout(function(){Rg(a)},0)}})}}
function Qg(a){if(0<=a.W.indexOf("p"))a.u(a.D.join(""));else{var b=df(a.b);Tg(a,"APR",0);Tg(a,"PI",4);try{for(var c=0;c<a.D.length;c+=2){a.ia++;0<=a.W.indexOf("l")&&a.u(Ug(a)+": "+a.D[c]);if(!Vg(a,a.D[c]+"\r\n"))break;if(null!==a.J)break}a.i&&a.error("open block",a.v[a.I].ia);a.G.length&&a.error("open scope",a.G[0].ia);Wg(a);Xg(a);a.fa.forEach(function(b,c){b=Yg(a,b,void 0,c,a.Z[c]);void 0!==b&&(b+=a.U[c],a.U[c]=Zg(a,b,c))})}catch(d){a.u(d.message),a.V=-1}0>a.W.indexOf("d")&&(a.b.b=b)}}
function Vg(a,b,c,d,e){var f,g;null!=a.w&&(b=$g(a,b));for(var h=!0,k="";h;){g=b.match(a.ha);if(!g||g[5]&&";"!=g[5].slice(0,1))return a.error("failed to parse line '"+b+"'"),!1;h=!1;k=g[2].toUpperCase();if(k==ah||k==bh)c=null;if(c){for(f=0;f<c.length;f++){var l=c[f],p=a.v[a.I];if(!(p&&0<=p.Pa.indexOf(l)))for(var p=d[f]||e[f]||"",q=0,D=b.length-g[5].length;q<D;){var F=b.indexOf(l,q);if(0>F)break;var q=F+1,J=F+l.length,Mc="",ra="";F&&(Mc=b[F-1]).match(/[0-9A-Z$%.]/i)||!(J>=b.length)&&(ra=b[J]).match(/[0-9A-Z$%.]/i)||
("'"==Mc&&F--,"'"==ra&&J++,b=b.substr(0,F)+p+b.substr(J),q=F+p.length,h=!0)}}c=null}if(a.i&&(1==a.i&&(f=b.indexOf(a.C),0<=f?(a.i++,b=b.substr(f+1)):a.error("expected "+a.S+" definition in '"+b+"'")),1<a.i&&(b=ch(a,b),h=!0),a.i))return!0}d=g[1];b=g[3];c=g[4].trim();g=g[4]+g[5];d&&(d=d.slice(0,-1),Tg(a,d,a.X,dh));var I;k&&(I=c.match(/^([=:]+)(.*)/))&&(e=0,d=k,k=I[1],c=I[2],"=="==k?e|=eh:"=:"==k&&(e|=fh),Tg(a,d,c,e),k=c="");if(!k&&!c)return!0;a.S=k;if(I=gh(a,c))c=c.replace(I,hh(a,ih,gh(a,g))),b||(b=
"\t");for(;I=jh(a,c);)c=c.replace(I,I.slice(0,-1));if(!kh(a,k,c))switch(k){case lh:case mh:case nh:$g(a,g);break;case oh:k=c;I=Yg(a,k);void 0!==I&&0<=I&&262143>=I?a.X+=I:a.error("unrecognized BLOCK expression '"+k+"'");break;case ph:k=c;b=g=0;for(c=36;I=qh(a,k);){k=k.substr(I.length).trim();d=I;if(e=I.match(/^\((.*)\)\s*(.*)$/))e[1]&&(g=Yg(a,"^D"+e[1])),d=e[2];if(g){d=d?Yg(a,d):0;if(void 0===d||0>g||36<g){a.error("unexpected BYTE operand: "+I);break}d=X(a.b,d,g,!0);c<g&&(rh(a,b),b=0,c=36);b+=d*Math.pow(2,
c-g);c-=g}else rh(a,0)}36>c&&rh(a,b);break;case sh:(k=c)?(a.J=Yg(a,k),void 0===a.J&&a.error("unrecognized END expression '"+k+"'")):a.J=a.la;break;case th:uh(a,c);break;case vh:Wg(a);break;case wh:a.X=Yg(a,c)||0;break;case xh:Xg(a);break;case yh:uh(a,c.replace(",",",,"));break;case zh:case Ah:case Bh:case Ch:case Dh:case Eh:case Fh:case Gh:case Hh:case Ih:case Jh:case Kh:case ah:case bh:case Lh:case Mh:hh(a,k,g);break;case Nh:k=Oh(a,c);for(I=0;I<k.length;I++)delete a.b.b[k[I]],delete a.K[k[I]];break;
case Ph:case Qh:case Rh:case Sh:case Th:case Uh:case Vh:case Wh:break;default:uh(a,k,b,c)}return!0}
function kh(a,b,c){var d=a.v[b];if(!d)return!1;if(null!=c){if(d.Ea==Xh){var e=a.X;Z(a,d.ka);if(e<a.X){if(!c)return!0;Yh(a);Z(a,c);var d=a.U[0],f=a.fa[0];Zh(a);if(void 0!==d)return a.U[e]+=d&130023423,a.U[e]+=d&4194304,f&&(a.fa[e]=a.fa[e]?a.fa[e]+("+"+f):f),!0}a.error("OPDEF '"+b+"' ("+c+") failed");return!1}b=a.j;a.j=d;d.Qa=Oh(a,c,!0);Z(a,d.ka,d.Pa,d.Qa,d.Ab);a.j=b;return!0}if("?"!=b[0])return!1;switch(b.substr(1)){case Dh:case Ch:case Kh:d.Ea||Z(a,d.ka);break;case Eh:0<d.Ea&&Z(a,d.ka);break;case Fh:0<=
d.Ea&&Z(a,d.ka);break;case Hh:0>d.Ea&&Z(a,d.ka);break;case Ih:0>=d.Ea&&Z(a,d.ka);break;case Ah:case Jh:case Bh:case Gh:d.Ea&&Z(a,d.ka);break;case ah:case bh:for(b=0;b<d.Qa.length;b++)Z(a,d.ka,d.Pa,[d.Qa[b]],[]);break;case Mh:for(;0<d.Ea--;)Z(a,d.ka);break;default:c=d.ka,Yh(a,b),Z(a,c),Zh(a)}return!0}function Z(a,b,c,d,e){b=b.split(/\r?\n/);for(var f=0;f<b.length&&Vg(a,b[f]+"\r\n",c,d,e);f++);}
function Yh(a,b){a.G.push({name:b,U:a.U,fa:a.fa,X:a.X,Da:a.Da,ia:a.ia});a.U=[];a.fa=[];0>a.Da&&(a.Da=a.X);a.X=0}function Zh(a){if(a.G.length){var b=a.G[a.G.length-1].name;b&&a.M.push({name:b,U:a.U,fa:a.fa});b=a.G.pop();a.U=b.U;a.fa=b.fa;a.X=b.X;a.Da=b.Da;a.G.length||-1==a.Da||a.error("scope restore error")}else a.error("scope nesting error")}
function qh(a,b){var c;c=void 0===c?",":c;for(var d=0,e=!1,f=null,g=0;d<b.length;){var h=b[d++];if('"'==h)e=!e;else if(!e){if(!g&&0<=c.indexOf(h)){d--;break}if("<"==h)g++;else if(">"==h&&0>--g){a.error("missing bracket(s) in '"+b+"'");break}}}g?0<g&&a.error("extra bracket(s) in '"+b+"'"):f=b.substr(0,d);return f}
function Yg(a,b,c,d,e){var f=-1;void 0===d&&(d=0<=a.Da?a.Da:a.X);var g=b.replace(/SIXBIT\s*(\S)(.*?)\1/g,"'$2'").replace(/ASCII\s*(\S)(.*?)\1/g,'"$2"');if(c){var h="",k=g;if(f=g.match(/^([^\s]+)\s*(.*?)\s*$/))h=f[1],k=f[2];f=Tf(a.b,h,k,d,c)}0>f&&(g=g.replace(/\.([^0-9]|$)/g,L(a.b,d,-1)+"$1"),f=bf(a.b,g,c),void 0===f&&a.error("unable to parse expression '"+b+"'",e));return f}
function gh(a,b){for(var c=0,d="",e=0,f=-1,g=b.length;e<b.length;){var h=b[e];if(";"==h)break;"["==h&&(c++||(f=e));e++;if("]"==h&&0>=--c){g=e;break}}0>c&&a.error("missing bracket(s) in '"+b+"'");0<=f&&(d=b.substr(f,g-f));return d}function Ug(a,b){b=void 0===b?a.ia:b;for(var c=0;b>a.N[c];)if(b-=a.N[c],c<a.H.length-1)c++;else break;return ya(a.H[c]+" line "+b)}
function jh(a,b){var c=null;if(b=b.match(/([A-Z$%.][0-9A-Z$%.]*)#/i)){c=b[0];b=b[1];var d="?"+b;if(!a.v[d]){var e,f,g;e=f=g=[];a.v[d]={name:d,Ea:$h,Pa:e,Ab:f,Qa:g,ka:b+": 0",ia:a.ia};a.L.push(d)}}return c}
function Oh(a,b,c){var d=[];for(c&&(b=b.replace(/^\(?(.*?)\)?$/,"$1"));b;){b=b.trim();c=qh(a,b);if(!c)break;var e=c;if("\\"==c[0]){var f=1,g=0;"'"==c[1]?(f++,g=6):'"'==c[1]&&(f++,g=7);var e=a,f=c.substr(f),g=void 0===g?0:g,h=Yg(e,f);if(void 0!==h){var k=5;switch(g){case 0:f=L(e.b,h,-1);break;case 6:k++;case 7:for(;h&&k--;)h=Math.trunc(h/Math.pow(2,g))}}e=f}d.push(e);b=b.substr(c.length+1)}return d}
function $g(a,b){var c=b;null==a.w&&(a.w=a.F="",b&&(a.w=b[0],c=b=b.substr(1)));if(a.w){var d=b.indexOf(a.w);0>d?c="":(c=b.substr(d+1),b=b.substr(0,d),a.w=null);a.F+=b}if(null==a.w){var d=b=0,e,f,g=a.F.length;a.S==mh&&g++;for(var h=0;h<g;h++){b||(d=0,f=29,e=7,a.S==nh&&(e--,f++));var k=a.F.charCodeAt(h)&127;6==e&&(97<=k&&122>=k&&(k-=32),k=k+32&63);d+=k*Math.pow(2,f);f-=e;b++;0>f&&(rh(a,d),b=0)}b&&rh(a,d)}return c}
function hh(a,b,c){var d,e,f,g,h,k;a.C="<";a.O=">";g=h=k=[];if(b==zh){e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\([^)]*\)|)\s*,?\s*(<|)([\s\S]*)/i);if(!e)return a.error("unrecognized "+b+" in '"+c+"'"),c;f=e[1];if(e[2]&&","!=e[2]){h=g=Oh(a,e[2],!0);b=[];for(c=0;c<h.length;c++)if(d=h[c].indexOf("<"),0<=d){var l=h[c].lastIndexOf(">");0>l&&(l=h[c].length);b[c]=h[c].substr(d,l-d);h[c]=h[c].substr(0,d)}h=b}d=ai;b=3}else if(b==Lh){a.C="[";a.O="]";e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\[)([\s\S]*)/i);if(!e)return a.error("unrecognized "+
b+" in '"+c+"'"),c;f=e[1];d=Xh;b=2}else if(b==ih)a.C="[",a.O="]",f="?"+xa(++a.ca,5),a.v[f]&&a.error("literal symbol '"+f+"' redefined"),e=[c[0],c.substr(1)],d=bi,b=0;else if(b==ah||b==bh){a.j||a.error(b+" outside of macro");e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*,\s*(<|)([\s\S]*)/i);if(!e)return a.error("unrecognized "+b+" operands '"+c+"'"),c;for(d=0;d<a.j.Pa.length&&e[1]!=a.j.Pa[d];d++);if(d==a.j.Pa.length)return a.error("invalid "+b+" parameter '"+e[1]+"'"),c;f="?"+b;g=[e[1]];b==bh?k=a.j.Qa[d].split(""):
k=Oh(a,a.j.Qa[d]);d=k.length;b=2}else{if(b==Ah)d=1,","==c[0]&&(c=c.substr(1).trim());else{e=qh(a,c);if(!e)return a.error("missing "+b+" expression '"+c+"'"),c;c=c.substr(e.length+1);e=e.trim();if(b==Ch||b==Gh){f=qh(a,c);if(!f)return a.error("missing second "+b+" expression '"+c+"'"),c;c=c.substr(f.length+1)}d=b==Bh||b==Kh?a.v[e]||a.K[e]||void 0!==a.b.b[e]?1:0:Yg(a,e)||0}e=c.match(/\s*(<|)([\s\S]*)/i);f="?"+b;b=1}f=f.toUpperCase();a.i=1;a.I=f;a.v[f]={name:f,Ea:d,Pa:g,Ab:h,Qa:k,ka:"",ia:a.ia};e[b]&&
(a.i=2,ch(a,e[b+1]));return f}function ch(a,b){for(var c="",d=0;d<b.length;d++)if(b[d]==a.C)a.i++;else if(b[d]==a.O&&(a.i--,1==a.i)){a.i=0;c=b.substr(d+1);b=b.substr(0,d);break}d=a.I||"";a.v[d].ka+=b;a.i||(a.I=null,kh(a,d));return c}
function Tg(a,b,c,d){d=void 0===d?0:d;b=b.toUpperCase().substr(0,6);if(d&dh&&a.K[b])a.error("redefined label '"+b+"'");else{var e=void 0;if("string"==typeof c){var e=[],f=Yg(a,c,e);if(void 0===f){a.error("invalid symbol '"+b+"': "+c);return}1<e.length&&a.error("too many undefined symbols in '"+b+"': "+e.join());c=f;e=e[0]}(f=a.K[b])?(f.value=c,f.Yb=d,f.ia=a.ia):a.K[b]={name:b,value:c,Yb:d,ia:a.ia};a.b.b[b]={value:c,Mb:e}}}
function uh(a,b,c,d){var e=[];b=(b+(void 0===c?"":c)+(void 0===d?"":d)).trim();c=Yg(a,b,e);void 0!==c?e.length?1==e.length?rh(a,c,e[0]):rh(a,0,b):rh(a,c):a.error("unrecognized word expression '"+b+"'")}
function Wg(a){for(var b=a.X,c={},d=0;d<a.M.length;c={U:c.U,Sa:c.Sa,za:c.za},d++){c.za=a.M[d];c.U=[];c.Sa=0;c.za.U.forEach(function(a){return function(b,c){c===a.U.length&&a.U.push(b);a.Sa++}}(c));if(c.Sa==c.U.length)for(var e=b;e+c.Sa<=a.X;e++){for(var f=void 0,f=0;f<c.Sa&&c.U[f]===a.U[e+f]&&c.za.fa[f]==a.fa[e];f++);if(f==c.Sa){Tg(a,c.za.name,e,dh);c.za=null;break}}if(c.za){var g=a;Tg(a,c.za.name,a.X,dh);c.za.U.forEach(function(a){return function(b,c){rh(g,b,a.za.fa[c])}}(c))}}a.M=[]}
function Xg(a){for(var b=0;b<a.L.length;b++){var c=a.L[b],d=a.v[c];d?Z(a,d.ka):a.error("missing definition for variable '"+c+"'")}a.L=[]}function rh(a,b,c){a.U[a.X]=Zg(a,b);void 0!==c&&(a.fa[a.X]=c);a.Z[a.X]=a.ia;a.X++}function Zg(a,b,c){c=void 0===c?a.X:c;var d=X(a.b,b||0,36,!0);(b<-A||b>=C)&&Sg(a,"truncated value "+qa(b)+" at location "+qa(c)+" to "+qa(d));return d}Fg.prototype.error=function(a,b){throw Error("error in "+Ug(this,b)+": "+a);};
function Sg(a,b){a.u("warning in "+Ug(a,void 0)+": "+b)}Fg.prototype.u=function(a){this.b?this.b.u(a):console.log(a)};
var dh=1,eh=2,fh=4,lh="ASCII",mh="ASCIZ",oh="BLOCK",ph="BYTE",zh="DEFINE",sh="END",th="EXP",Ah="IF1",Bh="IFDEF",Ch="IFDIF",Dh="IFE",Eh="IFG",Fh="IFGE",Gh="IFIDN",Hh="IFL",Ih="IFLE",Jh="IFN",Kh="IFNDEF",ah="IRP",bh="IRPC",Ph="LALL",vh="LIT",ih="LITERAL",Qh="LIST",wh="LOC",Rh="NOSYM",Lh="OPDEF",Sh="PAGE",Nh="PURGE",Mh="REPEAT",nh="SIXBIT",Th="SUBTTL",Uh="TITLE",xh="VAR",Vh="XALL",yh="XWD",Wh="XLIST",ai=-1,Xh=-2,bi=-3,$h=-4;
function ni(a,b,c){t.call(this,"Computer",a,33554432);this.A.ba=!1;this.S=null;oi(this,b);this.O=dd(this,"autoPower",a,6);this.w=0;this.Z=+a.busWidth||+a.buswidth;this.M=this.I=this.N=null;this.L=this.W=!1;this.K=this.C=null;this.V=this.R=!1;this.ca=dd(this,"url")||"";(Math.random()+.1).toString(36);this.i=pi(this);if(this.v=vb("CPU",this.id)){this.D=vb("Debugger",this.id);this.H=new Dc({id:this.$a+".bus",busWidth:this.Z},this.v,this.D);var d,e=tb(this.id);if(this.F=(this.j=vb("Panel",this.id))&&
this.j.J.print)for(b=0;b<e.length;b++)d=e[b],d.ja=this.j.ja,d.print=this.j.print,d.u=this.j.u;this.u(Ub+" v1.36.0\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.La&&d.La(this,this.H,this.v,this.D);b=null;d=dd(this,"resume",a);void 0!==d&&(1<d.length?b=this.I=d:this.b=parseInt(d,10));var f;if(a=dd(this,"state")||(f=!0,a.state))this.N=b=a,f||(this.L=!0,this.b=qi),this.b&&(this.K=new G(this,
"1.36.0"),ri(this.K)?b=null:delete this.K);!b&&this.b&&(b=si(this))&&(this.L=!0);if(b){var g=this;Ja(b,null,!0,function(a,b,c){c?(g.I=null,g.L=!1,g.ja("Unable to load machine state from server (error "+c+(b?": "+Ea(b):"")+")")):(g.M=b,g.W=!0);Pb(g)})}else Pb(this);this.J.power||(this.O=!0);!c&&this.O&&ti(this,this.Va)}else r("Unable to find CPU component")}la(ni,t);
function oi(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.S=b}function dd(a,b,c,d){var e=b.toLowerCase(),e=Va(b)||Va(e);void 0===e&&a.S&&(e=a.S[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}
function ti(a,b,c){for(var d=tb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Eb(f)){Eb(f,function(){ti(a,b,c)});return}}b.call(a,c)}function ui(a,b){var c=new G(a,"1.36.0",vi);if(ri(c)&&wi(c)){var d=c.get(xi),e=b?b.get(xi):"unknown";d!=e&&(a.ja("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}m=ni.prototype;
m.Va=function(a){void 0===a&&(a=this.b||(this.M?yi:qi));if(!this.w){this.w++;var b=!1,c=!1;this.R=!1;var d=this.K||new G(this,"1.36.0");if(a==zi)b=!0;else if(a>qi){if(ri(d,this.M)){this.C=new G(this,"1.36.0",Ai);ri(this.C)&&(Bi(this,d),a=Ci,Di(this.C));this.C.set(xi,Ia());Ei(this.C);var e=this.b&&!this.L;if(a==yi||qb("Click OK to restore the previous "+Ub+" machine state, or CANCEL to reset the machine.")){if(c=wi(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?ri(d,g):("error"==f&&"no machine state"!=
g?(this.ja("Error: "+g),"unable to verify user"==g&&(Ta(Fi,""),this.i=null)):this.u(f+": "+g),Di(d),ri(d)?(c=wi(d),e=!0):c=!1))}e&&ui(this,c?d:null)}else a==Ci&&d.clear()}else ui(this);delete this.M;delete this.K}e=tb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.v&&(c=Gi(this,g,d,b,c));b=[d,a,c];a!=zi?ti(this,this.Hb,b):this.Hb(b)}};
function Gi(a,b,c,d,e){if(!b.A.ba){b.A.ba=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.Aa(f,d)&&f&&(r("Unable to restore state for "+b.type),a.N&&!a.W?(c.clear(),a.b=qi,window&&window.location.reload()):a.R=!0,b.Aa(null),e=!1),!d&&b.Cb){var g=b.Cb.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){r("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
m.Hb=function(a){var b=a[0],c=0>a[1];a=a[2];this.V=!0;this.A.ba=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&(Gi(this,this.v,b,c,a),K(this,-2),this.v.ga());this.R&&(Bi(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.w=0};
function Bi(a,b){if(qb("There may be a problem with your "+Ub+" machine.\n\nTo help us diagnose it, click OK to send this "+Ub+" machine state to http://www.pcjs.org.")){var c=a.ca;a=a.i||"";b=b.toString();var d={};d.app=Ub;d.ver="1.36.0";d.url=c;d.user=a;d.type="bug";d.data=b;Ja("http://www.pcjs.org/api/v1/report",d,!0)}}
function Mg(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new G(a,"1.36.0"),g=new G(a,"1.36.0",vi),h=Ia();g.set(xi,h);f.set(xi,h);f.set(Hi,"1.36.0");f.set(Ii,window?window.location.href:null);f.set(Ji,window?window.navigator.userAgent:"");a.v&&a.v.ra&&(c&&(b&&(a.v.A.ga=a.v.A.P),a.v.Y()),d=a.v.ra(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.A.ba=!1,!1===d&&(e=null)));for(var h=tb(a.id),k=0;k<h.length;k++){var l=h[k];l.A.ba&&(l.ra&&(d=l.ra(b,c),"object"===typeof d&&f.set(l.id,d)),c&&(l.A.ba=
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.i&&Ki(a,a.i,f.toString()),Ei(g)&&Ei(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==Li),d&&f.clear(h)):e=f.toString());c&&(a.A.ba=!1,b=a.J.power)&&(b.textContent="Power");a.w=0;return e}
m.reset=function(){this.A.reset=!0;this.H&&this.H.reset&&(Tb(this,"Resetting "+this.H.type),this.H.reset());this.v&&this.v.reset&&(Tb(this,"Resetting "+this.v.type),this.v.reset());for(var a=tb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.H&&c!==this.v&&c.reset&&(Tb(this,"Resetting "+c.type),c.reset())}this.A.reset=!1;K(this,-1)};m.start=function(a,b){for(var c=tb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}K(this,-1)};
m.stop=function(a,b){for(var c=tb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}K(this,-1)};
function K(a,b){if(a.v){var c=a.v,d=b||0,e=c.J.speed;e&&(0>=d||30<=(c.hb+=d))&&(e.textContent=c.A.P?c.Z.toFixed(2)+"Mhz":"Stopped",c.hb=0)}if(a.j&&(a=a.j,b=b||0,a.L)){c=a.v.A.P;d=!!(a.v.C&8);if(0>=b||60<=(a.K+=b)){e=a.v.i;if(a.J.PC){var f=a.D&&a.D.T||8,e=e||0,e=8==f?qa(e,void 0):n(e,void 0);a.J.PC.textContent!=e&&(a.J.PC.textContent=e)}a.K=0}-1>b?a.i=a.v.i:0<b&&c&&!d&&(a.i=a.v.Ba);nc(a,a.i);hc(a,a.w)}}
m.sa=function(a,b,c){var d=this;switch(b){case "power":return this.J[b]=c,c.onclick=function(){d.w||(d.A.ba?Mg(d,!1,!0):ti(d,d.Va))},!0;case "reset":return this.J[b]=c,c.onclick=function(){if(d.A.ba&&!d.w)if(d.b&&!d.I){var a=qb("Click OK to save changes to this "+Ub+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Mg(d,a,!0);!a&&d.N?window&&window.location.reload():d.Va(qi)}else d.reset(),d.v&&!d.D&&d.v.ga()},!0;case "save":if(Aa(La(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.J[b]=c,c.onclick=function(){var a=pi(d,!0);if(a){var b=!!(d.b&&!d.I||d.N),c=Mg(d,b);b?Ki(d,a,c):d.ja("Resume disabled, machine state not saved")}},!0}return!1};
function pi(a,b){var c=a.i;c||((c=Oa(Fi),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Mi(a,c))||a.ja("The user ID is invalid.")):b&&a.ja("Browser local storage is not available"));return c}
function Mi(a,b){a.i=null;b=Ja(La()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ta(Fi,b.data),a.i=b.data)}catch(d){r(d.message+" ("+c+")")}return a.i}function si(a){var b=null;a.i&&(b=La()+"/api/v1/user?req=load&user="+a.i+"&state="+Ni(a,"1.36.0"));return b}
function Ki(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Ni(a,"1.36.0");d.data=c;b=Ja(La()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.ja("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.ja(c),Ta(Fi,""),a.i=null)}}
function nd(a,b){if(a.F){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.F.focus();!b&&window&&window.scrollTo(c,d)}}var Ai="failsafe",vi="validate",xi="timestamp",Hi="version",Ii="url",Ji="browser",Fi="user",zi=-1,qi=0,yi=1,Ci=2,Li=3;$a(function(){for(var a=v(document,u+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=w(c),c=v(c,u,"computer"),e=0;e<c.length;e++){var f=c[e],g=w(f),g=new ni(g,d,!0);sb(g,f);g.O&&ti(g,g.Va)}});
ab.show.push(function(){for(var a=v(document,u,"computer"),b=0;b<a.length;b++){var c=w(a[b]);if(c=vb("Computer",c.id))c.A.ub=!1,c.V&&!c.A.ba&&c.Va(zi)}});ab.exit.push(function(){for(var a=v(document,u,"computer"),b=0;b<a.length;b++){var c=w(a[b]);if(c=vb("Computer",c.id))c.A.ub=!0,c.A.ba&&Mg(c,!(!c.b||c.I),!0)}});function G(a,b,c){this.id=a.id;this.i="";this.b={};this.v=this.j=!1;this.key=Ni(a,b,c);Di(this,a.Vb)}m=G.prototype;m.set=function(a,b){try{this.b[a]=b}catch(c){}};
m.get=function(a){return this.b[a]||null};m.data=function(){return this.b};function ri(a,b){return b?(a.i=b,a.v=!0,a.j=!1,!0):a.v?!0:Ma()&&(b=Oa(a.key))?(a.i=b,a.v=!0):!1}function wi(a){var b=!0;if(!a.j)try{a.b=JSON.parse(a.i),a.j=!0}catch(c){r(c.message||c),b=!1}return b}function Ei(a){var b=!0;if(Ma()){var c=JSON.stringify(a.b);Ta(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}m.toString=function(){return this.b?JSON.stringify(this.b):this.i};
function Di(a,b){a.i="";a.b={};a.v=a.j=!1;b&&a.set("parms",b)}m.clear=function(a){Di(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 Ni(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var Oi=0;
function Pi(a,b,c,d,e,f,g){f("Loading "+a+"...");Ja(a,null,!0,function(h,k,l){l?(k||(k="unable to load "+a+" ("+l+")"),g(k,null)):Qi(k,a,b,c,d,e,f,g)})}
function Qi(a,b,c,d,e,f,g,h){function k(a,g){if(g)h(g,null);else{c&&(ib(c,b,a),(g=b)&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+g+'"}',"object"==typeof resources&&(g=null),e=e.replace(/\$/g,"$$$$"),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,
"$1PDPjs$2"),a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){g=null,a=q.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?Ri(a,g,k):k(a,null):h("no data"+(b?" for file: "+
b:""),null)}
function Ri(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ja(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],l,p=/( [a-z]+=)(['"])(.*?)\2/gi;l=p.exec(f);)k=0>k.toLowerCase().indexOf(l[1].toLowerCase())?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+
"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,"");a=a.replace(d[0],g);Ri(a,b,c)}})}else c(a,null)}
function Si(a,b,c,d,e){function f(a){if(void 0===k){var b=h&&v(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=Ba(a))}function g(a){f("Error: "+a);l&&(--Oi||db(!0));l=!1}var h,k,l=!0;Oi++;jb[b]={};try{if(h=document.getElementById(b)){var p;if("object"==typeof resources&&(p=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],D=document.createElement("style");D.type="text/css";D.styleSheet?D.styleSheet.cssText=p:D.appendChild(document.createTextNode(p));q.appendChild(D)}d||
(p=a,"pdp"==a.substr(0,3)&&(p="pdpjs"),d="/versions/"+p+"/1.36.0/components.xsl");p=function(e,k){k?Pi(d,null,a,null,!1,f,function(a,e){e?(ib(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--Oi||db(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(k,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--Oi||
db(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?Pi(c,b,a,e,!0,f,p):Qi(c,null,b,a,e,!1,f,p)}else g("missing machine element: "+b)}catch(F){g(F.message)}return l}window.embedPDP10=function(a,b,c,d){db(!1);return Si("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){db(!1);return Si("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return vb(b,a+".machine")};
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!xb[a]){for(var c=!0,d=xb,e=a,f=b.length,g=[],h=[],k="",l=null,p=0;p<f;p++){var q=b[p];if('"'==q||"'"==q)l&&q!=l?k+=q:(l?l=null:l=q,k&&(h.push(k),k=""));else{if(!l){if("\r"==q||"\n"==q)q=";";if(" "==q||"\t"==q||";"==q){k&&(h.push(k),k="");";"==q&&h.length&&(g.push(h),h=[]);continue}}k+=q}}k&&h.push(k);h.length&&g.push(h);d[e]=g;wb(a)||(c=!1)}return c};window.enableEvents=db;window.sendEvent=fb;})();//# sourceMappingURL=/versions/pdpjs/1.36.0/pdp10-dbg.map