-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathc64-ui.js
More file actions
78 lines (78 loc) · 37.7 KB
/
c64-ui.js
File metadata and controls
78 lines (78 loc) · 37.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
var f;f||=typeof Module != 'undefined' ? Module : {};var aa=!!globalThis.window,ba=!!globalThis.WorkerGlobalScope,ca=globalThis.process?.versions?.node&&"renderer"!=globalThis.process?.type,da=[],ea="./this.program",fa=(a,b)=>{throw b;},ha=globalThis.document?.currentScript?.src;"undefined"!=typeof __filename?ha=__filename:ba&&(ha=self.location.href);var ia="",ja,ka;
if(ca){var fs=require("node:fs");ia=__dirname+"/";ka=a=>{a=la(a)?new URL(a):a;return fs.readFileSync(a)};ja=async a=>{a=la(a)?new URL(a):a;return fs.readFileSync(a,void 0)};1<process.argv.length&&(ea=process.argv[1].replace(/\\/g,"/"));da=process.argv.slice(2);"undefined"!=typeof module&&(module.exports=f);fa=(a,b)=>{process.exitCode=a;throw b;}}else if(aa||ba){try{ia=(new URL(".",ha)).href}catch{}ba&&(ka=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)});
ja=async a=>{if(la(a))return new Promise((c,d)=>{var e=new XMLHttpRequest;e.open("GET",a,!0);e.responseType="arraybuffer";e.onload=()=>{200==e.status||0==e.status&&e.response?c(e.response):d(e.status)};e.onerror=d;e.send(null)});var b=await fetch(a,{credentials:"same-origin"});if(b.ok)return b.arrayBuffer();throw Error(b.status+" : "+b.url);}}var ma=console.log.bind(console),k=console.error.bind(console),n,q=!1,na,la=a=>a.startsWith("file://");
function oa(){var a=pa.buffer;r=new Int8Array(a);qa=new Int16Array(a);u=new Uint8Array(a);ra=new Uint16Array(a);v=new Int32Array(a);w=new Uint32Array(a);x=new Float32Array(a);y=new Float64Array(a);sa=new BigInt64Array(a);new BigUint64Array(a)}function ta(a){f.onAbort?.(a);a=`Aborted(${a})`;k(a);q=!0;throw new WebAssembly.RuntimeError(a+". Build with -sASSERTIONS for more info.");}var ua;
async function va(a){if(!n)try{var b=await ja(a);return new Uint8Array(b)}catch{}if(a==ua&&n)a=new Uint8Array(n);else if(ka)a=ka(a);else throw"both async and sync fetching of the wasm failed";return a}async function wa(a,b){try{var c=await va(a);return await WebAssembly.instantiate(c,b)}catch(d){k(`failed to asynchronously prepare wasm: ${d}`),ta(d)}}
async function xa(a){var b=ua;if(!n&&!la(b)&&!ca)try{var c=fetch(b,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(c,a)}catch(d){k(`wasm streaming compile failed: ${d}`),k("falling back to ArrayBuffer instantiation")}return wa(b,a)}class ya{name="ExitStatus";constructor(a){this.message=`Program terminated with exit(${a})`;this.status=a}}
var qa,v,sa,r,x,y,ra,w,u,za=a=>{for(;0<a.length;)a.shift()(f)},Aa=[],Ba=[],Ca=()=>{var a=f.preRun.shift();Ba.push(a)},z=0,A=null,Da=!0,Ea=globalThis.TextDecoder&&new TextDecoder,B=(a,b=0,c)=>{var d=b;for(c=d+c;a[d]&&!(d>=c);)++d;if(16<d-b&&a.buffer&&Ea)return Ea.decode(a.subarray(b,d));for(c="";b<d;){var e=a[b++];if(e&128){var h=a[b++]&63;if(192==(e&224))c+=String.fromCharCode((e&31)<<6|h);else{var g=a[b++]&63;e=224==(e&240)?(e&15)<<12|h<<6|g:(e&7)<<18|h<<12|g<<6|a[b++]&63;65536>e?c+=String.fromCharCode(e):
(e-=65536,c+=String.fromCharCode(55296|e>>10,56320|e&1023))}}else c+=String.fromCharCode(e)}return c},Fa=0,C={},Ga=a=>{a instanceof ya||"unwind"==a||fa(1,a)},Ha=a=>{na=a;Da||0<Fa||(f.onExit?.(a),q=!0);fa(a,new ya(a))},Ia=()=>{if(!(Da||0<Fa))try{var a=na;na=a;Ha(a)}catch(b){Ga(b)}},Ja=a=>{if(!q)try{a()}catch(b){Ga(b)}finally{Ia()}},Ka=[],Sa=(a,b)=>{La=a;Ma=b;if(D)if(Na||=!0,0==a)G=function(){setTimeout(Oa,Math.max(0,Pa+b-performance.now())|0)};else if(1==a)G=function(){Qa(Oa)};else{if(!Ra)if(globalThis.setImmediate)Ra=
setImmediate;else{var c=[];addEventListener("message",d=>{if("setimmediate"===d.data||"setimmediate"===d.data.target)d.stopPropagation(),c.shift()()},!0);Ra=d=>{c.push(d);if(ba){let e;(e=f).setImmediates??(e.setImmediates=[]);f.setImmediates.push(d);postMessage({target:"setimmediate"})}else postMessage("setimmediate","*")}}G=function(){Ra(Oa)}}},ab=(a,b,c,d,e)=>{function h(){return g<Ta?(Ia(),!1):!0}D=a;Ua=d;var g=Ta;Na=!1;Oa=function(){if(!q)if(0<Va.length){var l=Va.shift();l.xe(l.le);if(Wa){var m=
Wa,p=0==m%1?m-1:Math.floor(m);Wa=l.oe?p:(8*m+(p+.5))/9}f.setStatus&&(l=f.statusMessage||"Please wait...",m=Wa??0,p=Xa.ue??0,m?m<p?f.setStatus("{message} ({expected - remaining}/{expected})"):f.setStatus(l):f.setStatus(""));h()&&setTimeout(Oa,0)}else if(h())if(Ya=Ya+1|0,1==La&&1<Ma&&0!=Ya%Ma)G();else{0==La&&(Pa=performance.now());a:if(!q){for(l of Za)if(!1===l())break a;Ja(a);for(m of $a)m()}h()&&G()}};e||(0<b?Sa(0,1E3/b):Sa(1,1),G());if(c)throw"unwind";},Na=!1,G=null,Ta=0,D=null,Ua=0,La=0,Ma=0,Ya=
0,Va=[],Za=[],$a=[];function bb(){G=null;Ta++}var cb=0;function Qa(a){if(globalThis.requestAnimationFrame)requestAnimationFrame(a);else{var b=Date.now();if(0===cb)cb=b+1E3/60;else for(;b+2>=cb;)cb+=1E3/60;setTimeout(a,Math.max(cb-b,0))}}var Xa={},Pa,Oa,Ra,Wa,db=[0,globalThis.document??0,globalThis.window??0],H=a=>{a=2<a?a?B(u,a):"":a;return db[a]||globalThis.document?.querySelector(a)},eb=a=>0>db.indexOf(a)?a.getBoundingClientRect():{left:0,top:0},fb=[],I=a=>{var b=fb[a];b||(fb[a]=b=gb.get(a));return b};
function hb(a){var b=J.ld[a];b.target.removeEventListener(b.kd,b.Rd,b.od);J.ld.splice(a,1)}function ib(){if(navigator.userActivation?navigator.userActivation.isActive:J.Ed&&J.fe.Bd){var a=J.td;J.td=[];for(var b of a)b.Hd(...b.Nd)}}function K(a){if(!a.target)return-4;if(a.md)a.Rd=function(c){++J.Ed;J.fe=a;ib();a.qd(c);ib();--J.Ed},a.target.addEventListener(a.kd,a.Rd,a.od),J.ld.push(a);else for(var b=0;b<J.ld.length;++b)J.ld[b].target==a.target&&J.ld[b].kd==a.kd&&hb(b--);return 0}
function jb(a){return a?a==window?"#window":a==screen?"#screen":a?.nodeName||"":""}
var J={me:0,ye:0,Fd:0,zd:0,Ld:0,Jd:0,Cd:0,se:0,Ce:0,re:0,Dd:0,Gd:0,Le:0,Id:0,Ee(){for(;J.ld.length;)hb(J.ld.length-1);J.td=[]},Ed:0,td:[],qe(a,b,c){function d(h,g){if(h.length!=g.length)return!1;for(var l in h)if(h[l]!=g[l])return!1;return!0}for(var e of J.td)if(e.Hd==a&&d(e.Nd,c))return;J.td.push({Hd:a,Wd:b,Nd:c});J.td.sort((h,g)=>h.Wd-g.Wd)},Ge(a){J.td=J.td.filter(b=>b.Hd!=a)},ld:[],Fe:(a,b)=>{for(var c=0;c<J.ld.length;++c)J.ld[c].target!=a||b&&b!=J.ld[c].kd||hb(c--)},He(a){let b=!1;for(let c=0;c<
J.ld.length;++c){const d=J.ld[c];d.target===a.target&&d.nd===a.nd&&d.md===a.md&&d.pd===a.pd&&(hb(c--),b=!0)}return b?0:-5},fullscreenEnabled(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}},L=(a,b,c)=>{var d=u;if(!(0<c))return 0;var e=b;c=b+c-1;for(var h=0;h<a.length;++h){var g=a.codePointAt(h);if(127>=g){if(b>=c)break;d[b++]=g}else if(2047>=g){if(b+1>=c)break;d[b++]=192|g>>6;d[b++]=128|g&63}else if(65535>=g){if(b+2>=c)break;d[b++]=224|g>>12;d[b++]=128|g>>6&63;d[b++]=128|g&
63}else{if(b+3>=c)break;d[b++]=240|g>>18;d[b++]=128|g>>12&63;d[b++]=128|g>>6&63;d[b++]=128|g&63;h++}}d[b]=0;return b-e},kb=(a,b,c,d,e,h)=>{J.Cd||(J.Cd=M(256));a={target:H(a),kd:h,nd:e,pd:b,md:d,qd:g=>{var l=g.target.id?g.target.id:"",m=J.Cd;L(jb(g.target),m+0,128);L(l,m+128,128);I(d)(e,m,b)&&g.preventDefault()},od:c};return K(a)},lb=(a,b,c,d,e)=>{J.Dd||(J.Dd=M(276));return K({target:a,kd:e,nd:19,pd:b,md:d,qd:h=>{var g=J.Dd,l=document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||
document.webkitCurrentFullScreenElement||document.msFullscreenElement,m=!!l;r[g]=m;r[g+1]=J.fullscreenEnabled();var p=m?l:J.je,t=p?.id||"";L(jb(p),g+2,128);L(t,g+130,128);v[g+260>>2]=p?p.clientWidth:0;v[g+264>>2]=p?p.clientHeight:0;v[g+268>>2]=screen.width;v[g+272>>2]=screen.height;m&&(J.je=l);I(d)(19,g,b)&&h.preventDefault()},od:c})},mb=(a,b,c,d,e,h)=>{J.Fd||(J.Fd=M(160));a={target:H(a),kd:h,nd:e,pd:b,md:d,qd:g=>{var l=J.Fd;y[l>>3]=g.timeStamp;var m=l>>2;v[m+2]=g.location;r[l+12]=g.ctrlKey;r[l+13]=
g.shiftKey;r[l+14]=g.altKey;r[l+15]=g.metaKey;r[l+16]=g.repeat;v[m+5]=g.charCode;v[m+6]=g.keyCode;v[m+7]=g.which;L(g.key||"",l+32,32);L(g.code||"",l+64,32);L(g.char||"",l+96,32);L(g.locale||"",l+128,32);I(d)(e,l,b)&&g.preventDefault()},od:c};return K(a)},nb=(a,b,c)=>{y[a>>3]=b.timeStamp;var d=a>>2;v[d+2]=b.screenX;v[d+3]=b.screenY;v[d+4]=b.clientX;v[d+5]=b.clientY;r[a+24]=b.ctrlKey;r[a+25]=b.shiftKey;r[a+26]=b.altKey;r[a+27]=b.metaKey;qa[2*d+14]=b.button;qa[2*d+15]=b.buttons;v[d+8]=b.movementX;v[d+
9]=b.movementY;a=eb(c);v[d+10]=b.clientX-(a.left|0);v[d+11]=b.clientY-(a.top|0)},ob=(a,b,c,d,e,h)=>{J.zd||(J.zd=M(64));a=H(a);return K({target:a,Bd:"mousemove"!=h&&"mouseenter"!=h&&"mouseleave"!=h,kd:h,nd:e,pd:b,md:d,qd:g=>{nb(J.zd,g,a);I(d)(e,J.zd,b)&&g.preventDefault()},od:c})},pb=(a,b,c,d)=>{J.Gd||(J.Gd=M(257));return K({target:a,kd:"pointerlockchange",nd:20,pd:b,md:d,qd:e=>{var h=J.Gd,g=document.pointerLockElement;r[h]=!!g;var l=g?.id||"";L(jb(g),h+1,128);L(l,h+129,128);I(d)(20,h,b)&&e.preventDefault()},
od:c})},qb=(a,b,c,d)=>K({target:a,kd:"pointerlockerror",nd:38,pd:b,md:d,qd:e=>{I(d)(38,0,b)&&e.preventDefault()},od:c}),rb=(a,b,c,d)=>{J.Jd||(J.Jd=M(36));a=H(a);return K({target:a,kd:"resize",nd:10,pd:b,md:d,qd:e=>{if(e.target==a){var h=document.body;if(h){var g=J.Jd;v[g>>2]=0;v[g+4>>2]=h.clientWidth;v[g+8>>2]=h.clientHeight;v[g+12>>2]=innerWidth;v[g+16>>2]=innerHeight;v[g+20>>2]=outerWidth;v[g+24>>2]=outerHeight;v[g+28>>2]=pageXOffset|0;v[g+32>>2]=pageYOffset|0;I(d)(10,g,b)&&e.preventDefault()}}},
od:c})},sb=(a,b,c,d,e,h)=>{J.Id||(J.Id=M(1552));a=H(a);return K({target:a,Bd:"touchstart"==h||"touchend"==h,kd:h,nd:e,pd:b,md:d,qd:g=>{var l={},m=g.touches;for(var p of m)p.Sd=p.Vd=0,l[p.identifier]=p;for(var t of g.changedTouches)t.Sd=1,l[t.identifier]=t;for(var E of g.targetTouches)l[E.identifier].Vd=1;m=J.Id;y[m>>3]=g.timeStamp;r[m+12]=g.ctrlKey;r[m+13]=g.shiftKey;r[m+14]=g.altKey;r[m+15]=g.metaKey;p=m+16;t=eb(a);E=0;for(let F of Object.values(l))if(l=p>>2,v[l]=F.identifier,v[l+1]=F.screenX,v[l+
2]=F.screenY,v[l+3]=F.clientX,v[l+4]=F.clientY,v[l+5]=F.pageX,v[l+6]=F.pageY,r[p+28]=F.Sd,r[p+29]=F.Vd,v[l+8]=F.clientX-(t.left|0),v[l+9]=F.clientY-(t.top|0),p+=48,31<++E)break;v[m+8>>2]=E;I(d)(e,m,b)&&g.preventDefault()},od:c})},N,tb=a=>{var b=a.getExtension("ANGLE_instanced_arrays");b&&(a.vertexAttribDivisor=(c,d)=>b.vertexAttribDivisorANGLE(c,d),a.drawArraysInstanced=(c,d,e,h)=>b.drawArraysInstancedANGLE(c,d,e,h),a.drawElementsInstanced=(c,d,e,h,g)=>b.drawElementsInstancedANGLE(c,d,e,h,g))},ub=
a=>{var b=a.getExtension("OES_vertex_array_object");b&&(a.createVertexArray=()=>b.createVertexArrayOES(),a.deleteVertexArray=c=>b.deleteVertexArrayOES(c),a.bindVertexArray=c=>b.bindVertexArrayOES(c),a.isVertexArray=c=>b.isVertexArrayOES(c))},vb=a=>{var b=a.getExtension("WEBGL_draw_buffers");b&&(a.drawBuffers=(c,d)=>b.drawBuffersWEBGL(c,d))},wb=a=>{var b="ANGLE_instanced_arrays EXT_blend_minmax EXT_disjoint_timer_query EXT_frag_depth EXT_shader_texture_lod EXT_sRGB OES_element_index_uint OES_fbo_render_mipmap OES_standard_derivatives OES_texture_float OES_texture_half_float OES_texture_half_float_linear OES_vertex_array_object WEBGL_color_buffer_float WEBGL_depth_texture WEBGL_draw_buffers EXT_color_buffer_float EXT_conservative_depth EXT_disjoint_timer_query_webgl2 EXT_texture_norm16 NV_shader_noperspective_interpolation WEBGL_clip_cull_distance EXT_clip_control EXT_color_buffer_half_float EXT_depth_clamp EXT_float_blend EXT_polygon_offset_clamp EXT_texture_compression_bptc EXT_texture_compression_rgtc EXT_texture_filter_anisotropic KHR_parallel_shader_compile OES_texture_float_linear WEBGL_blend_func_extended WEBGL_compressed_texture_astc WEBGL_compressed_texture_etc WEBGL_compressed_texture_etc1 WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_lose_context WEBGL_multi_draw WEBGL_polygon_mode".split(" ");
return(a.getSupportedExtensions()||[]).filter(c=>b.includes(c))},xb=1,O=[],P=[],yb=[],zb=[],Q=[],R=[],Ab=[],Bb=[],S=[],Cb={},Db=4,Eb=0,Fb=a=>{for(var b=xb++,c=a.length;c<b;c++)a[c]=null;return b},U=(a,b,c,d)=>{for(var e=0;e<a;e++){var h=N[c](),g=h&&Fb(d);h?(h.name=g,d[g]=h):T||=1282;v[b+4*e>>2]=g}},Hb=(a,b)=>{a.Td||(a.Td=a.getContext,a.getContext=function(d,e){e=a.Td(d,e);return"webgl"==d==e instanceof WebGLRenderingContext?e:null});var c=1<b.Ud?a.getContext("webgl2",b):a.getContext("webgl",b);return c?
Gb(c,b):0},Gb=(a,b)=>{var c=Fb(Bb),d={handle:c,attributes:b,version:b.Ud,Md:a};a.canvas&&(a.canvas.ke=d);Bb[c]=d;if("undefined"==typeof b.Qd||b.Qd)if((a=d)||(a=V),!a.ie){a.ie=!0;b=a.Md;b.Be=b.getExtension("WEBGL_multi_draw");b.we=b.getExtension("EXT_polygon_offset_clamp");b.ve=b.getExtension("EXT_clip_control");b.Me=b.getExtension("WEBGL_polygon_mode");tb(b);ub(b);vb(b);b.te=b.getExtension("WEBGL_draw_instanced_base_vertex_base_instance");b.ze=b.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance");
2<=a.version&&(b.Pd=b.getExtension("EXT_disjoint_timer_query_webgl2"));if(2>a.version||!b.Pd)b.Pd=b.getExtension("EXT_disjoint_timer_query");for(var e of wb(b))e.includes("lose_context")||e.includes("debug")||b.getExtension(e)}return c},T,V,Ib=(a,b,c,d,e,h)=>{a={target:H(a),kd:h,nd:e,pd:b,md:d,qd:g=>{I(d)(e,0,b)&&g.preventDefault()},od:c};K(a)},Jb=(a,b,c,d)=>{J.Ld||(J.Ld=M(96));return K({target:a,Bd:!0,kd:"wheel",nd:9,pd:b,md:d,qd:e=>{var h=J.Ld;nb(h,e,a);y[h+64>>3]=e.deltaX;y[h+72>>3]=e.deltaY;y[h+
80>>3]=e.deltaZ;v[h+88>>2]=e.deltaMode;I(d)(9,h,b)&&e.preventDefault()},od:c})},Kb=["default","low-power","high-performance"],Lb={},Nb=()=>{if(!Mb){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(globalThis.navigator?.language??"C").replace("-","_")+".UTF-8",_:ea||"./this.program"},b;for(b in Lb)void 0===Lb[b]?delete a[b]:a[b]=Lb[b];var c=[];for(b in a)c.push(`${b}=${a[b]}`);Mb=c}return Mb},Mb,Ob=a=>{for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);127>=
d?b++:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,++c):b+=3}return b},Pb=[null,[],[]],Qb=[],Rb=()=>{var a=wb(N);return a=a.concat(a.map(b=>"GL_"+b))},Sb=(a,b)=>{if(b){var c=void 0;switch(a){case 36346:c=1;break;case 36344:return;case 34814:case 36345:c=0;break;case 34466:var d=N.getParameter(34467);c=d?d.length:0;break;case 33309:if(2>V.version){T||=1282;return}c=Rb().length;break;case 33307:case 33308:if(2>V.version){T||=1280;return}c=33307==a?3:0}if(void 0===c)switch(d=N.getParameter(a),typeof d){case "number":c=
d;break;case "boolean":c=d?1:0;break;case "string":T||=1280;return;case "object":if(null===d)switch(a){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368:case 34068:c=0;break;default:T||=1280;return}else{if(d instanceof Float32Array||d instanceof Uint32Array||d instanceof Int32Array||d instanceof Array){for(a=0;a<d.length;++a)v[b+4*a>>2]=d[a];return}try{c=
d.name|0}catch(e){T||=1280;k(`GL_INVALID_ENUM in glGet${0}v: Unknown object returned from WebGL getParameter(${a})! (error: ${e})`);return}}break;default:T||=1280;k(`GL_INVALID_ENUM in glGet${0}v: Native code calling glGet${0}v(${a}) and it returns ${d} of type ${typeof d}!`);return}v[b>>2]=c}else T||=1281},Tb=a=>{var b=Ob(a)+1,c=M(b);c&&L(a,c,b);return c},Ub=a=>"]"==a.slice(-1)&&a.lastIndexOf("["),Vb=a=>{a-=5120;return 0==a?r:1==a?u:2==a?qa:4==a?v:6==a?x:5==a||28922==a||28520==a||30779==a||30782==
a?w:ra},W=a=>{var b=N.ge;if(b){var c=b.vd[a];"number"==typeof c&&(b.vd[a]=c=N.getUniformLocation(b,b.de[a]+(0<c?`[${c}]`:"")));return c}T||=1282},X=[],Wb=[],Y=a=>{var b=Ob(a)+1,c=Xb(b);L(a,c,b);return c},$b=a=>{var b=Yb();a();Zb(b)};f.requestAnimationFrame=Qa;f.pauseMainLoop=bb;f.resumeMainLoop=function(){Ta++;var a=La,b=Ma,c=D;D=null;ab(c,0,!1,Ua,!0);Sa(a,b);G()};f.preMainLoop&&Za.push(f.preMainLoop);f.postMainLoop&&$a.push(f.postMainLoop);for(let a=0;32>a;++a)Qb.push(Array(a));
for(var ac=new Float32Array(288),Z=0;288>=Z;++Z)X[Z]=ac.subarray(0,Z);var bc=new Int32Array(288);for(Z=0;288>=Z;++Z)Wb[Z]=bc.subarray(0,Z);f.noExitRuntime&&(Da=f.noExitRuntime);f.print&&(ma=f.print);f.printErr&&(k=f.printErr);f.wasmBinary&&(n=f.wasmBinary);f.arguments&&(da=f.arguments);f.thisProgram&&(ea=f.thisProgram);if(f.preInit)for("function"==typeof f.preInit&&(f.preInit=[f.preInit]);0<f.preInit.length;)f.preInit.shift()();
var cc={151495:()=>{f._webapi_input=a=>{$b(()=>f._webapi_input_internal(Y(a)))};f._webapi_load_file=a=>{$b(()=>f._webapi_load_file_internal(Y(a)))}}},M,dc,ec,fc,gc,hc,ic,jc,kc,lc,mc,nc,oc,pc,qc,rc,sc,tc,Zb,Xb,Yb,pa,gb,uc={sa:function(){return 0},qb:function(){return 0},rb:function(){},ub:()=>ta(""),jb:()=>{Da=!1;Fa=0},kb:(a,b)=>{C[a]&&(clearTimeout(C[a].id),delete C[a]);if(!b)return 0;var c=setTimeout(()=>{delete C[a];Ja(()=>tc(a,performance.now()))},b);C[a]={id:c,Ke:b};return 0},Ab:function(a){if(void 0===
window.localStorage)return 0;a=a?B(u,a):"";return(a=window.localStorage.getItem(a))?Tb(a):0},Bb:function(a,b){void 0!==window.localStorage&&(a=a?B(u,a):"",b=b?B(u,b):"",window.localStorage.setItem(a,b))},yb:(a,b,c)=>{Ka.length=0;for(var d;d=u[b++];){var e=105!=d;e&=112!=d;c+=e&&c%8?4:0;Ka.push(112==d?w[c>>2]:106==d?sa[c>>3]:105==d?v[c>>2]:y[c>>3]);c+=e?8:4}return cc[a](...Ka)},Wa:()=>{bb();D=null},la:()=>globalThis.devicePixelRatio??1,na:(a,b,c)=>{a=H(a);if(!a)return-4;a=eb(a);y[b>>3]=a.width;y[c>>
3]=a.height;return 0},B:()=>performance.now(),Xa:()=>performance.now(),ab:(a,b)=>{function c(d){I(a)(d,b)&&requestAnimationFrame(c)}return requestAnimationFrame(c)},lb:a=>{var b=u.length;a>>>=0;if(2147483648<a)return!1;for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);a:{d=(Math.min(2147483648,65536*Math.ceil(Math.max(a,d)/65536))-pa.buffer.byteLength+65535)/65536|0;try{pa.grow(d);oa();var e=1;break a}catch(h){}e=void 0}if(e)return!0}return!1},V:(a,b,c,d)=>kb(a,b,c,d,12,"blur"),ka:(a,
b,c)=>{a=H(a);if(!a)return-4;a.width=b;a.height=c;return 0},W:(a,b,c,d)=>kb(a,b,c,d,13,"focus"),U:(a,b,c,d)=>{if(!J.fullscreenEnabled())return-1;a=H(a);if(!a)return-4;lb(a,b,c,d,"webkitfullscreenchange");return lb(a,b,c,d,"fullscreenchange")},da:(a,b,c,d)=>mb(a,b,c,d,2,"keydown"),ba:(a,b,c,d)=>mb(a,b,c,d,1,"keypress"),ca:(a,b,c,d)=>mb(a,b,c,d,3,"keyup"),bb:(a,b,c)=>{a=I(a);ab(a,b,c)},ja:(a,b,c,d)=>ob(a,b,c,d,5,"mousedown"),ga:(a,b,c,d)=>ob(a,b,c,d,33,"mouseenter"),fa:(a,b,c,d)=>ob(a,b,c,d,34,"mouseleave"),
ha:(a,b,c,d)=>ob(a,b,c,d,8,"mousemove"),ia:(a,b,c,d)=>ob(a,b,c,d,6,"mouseup"),Y:(a,b,c,d)=>document.body?.requestPointerLock?(a=H(a))?pb(a,b,c,d):-4:-1,X:(a,b,c,d)=>document.body?.requestPointerLock?(a=H(a))?qb(a,b,c,d):-4:-1,ma:(a,b,c,d)=>rb(a,b,c,d),Z:(a,b,c,d)=>sb(a,b,c,d,25,"touchcancel"),_:(a,b,c,d)=>sb(a,b,c,d,23,"touchend"),$:(a,b,c,d)=>sb(a,b,c,d,24,"touchmove"),aa:(a,b,c,d)=>sb(a,b,c,d,22,"touchstart"),T:(a,b,c,d)=>{Ib(a,b,c,d,31,"webglcontextlost");return 0},S:(a,b,c,d)=>{Ib(a,b,c,d,32,
"webglcontextrestored");return 0},ea:(a,b,c,d)=>(a=H(a))?"undefined"!=typeof a.onwheel?Jb(a,b,c,d):-1:-4,$a:(a,b)=>{var c=b>>2;b={alpha:!!r[b+0],depth:!!r[b+1],stencil:!!r[b+2],antialias:!!r[b+3],premultipliedAlpha:!!r[b+4],preserveDrawingBuffer:!!r[b+5],powerPreference:Kb[v[c+2]],failIfMajorPerformanceCaveat:!!r[b+12],Ud:v[c+4],Ae:v[c+5],Qd:r[b+24],he:r[b+25],De:v[c+7],Ie:r[b+32]};a=H(a);return!a||b.he?0:Hb(a,b)},_a:a=>{V=Bb[a];f.ctx=N=V?.Md;return!a||N?0:-5},sb:(a,b)=>{var c=0,d=0,e;for(e of Nb()){var h=
b+c;w[a+d>>2]=h;c+=L(e,h,Infinity)+1;d+=4}return 0},tb:(a,b)=>{var c=Nb();w[a>>2]=c.length;a=0;for(var d of c)a+=Ob(d)+1;w[b>>2]=a;return 0},ra:()=>52,pb:()=>52,mb:function(){return 70},nb:(a,b,c,d)=>{for(var e=0,h=0;h<c;h++){var g=w[b>>2],l=w[b+4>>2];b+=8;for(var m=0;m<l;m++){var p=a,t=u[g+m],E=Pb[p];0===t||10===t?((1===p?ma:k)(B(E)),E.length=0):E.push(t)}e+=l}w[d>>2]=e;return 0},h:function(a,b,c){const d=a?B(u,a):"";let e;try{e=window.indexedDB.open("chips",1)}catch(h){console.log("fs_js_load_snapshot: failed to open IndexedDB with "+
h)}e.onupgradeneeded=()=>{console.log("fs_js_load_snapshot: creating db");e.result.createObjectStore("store")};e.onsuccess=()=>{var h=e.result;let g;try{g=h.transaction(["store"],"readwrite")}catch(p){console.log("fs_js_load_snapshot: db.transaction failed with",p);return}h=g.objectStore("store");const l=d+"_"+b,m=h.get(l);m.onsuccess=()=>{if(void 0!==m.result){const p=m.result.length;console.log("fs_js_load_snapshot:",l,"successfully loaded",p,"bytes");const t=rc(p);u.set(m.result,t);sc(c,t,p)}else sc(c,
0,0)};m.onerror=()=>{console.log("fs_js_load_snapshot: FAILED loading",l)};g.onerror=()=>{console.log("fs_js_load_snapshot: transaction onerror")}};e.onerror=()=>{console.log("fs_js_load_snapshot: open_request onerror")}},zb:function(a,b,c,d){const e=a?B(u,a):"";console.log("fs_js_save_snapshot: called with",e,b);let h;try{h=window.indexedDB.open("chips",1)}catch(g){console.log("fs_js_save_snapshot: failed to open IndexedDB with "+g);return}h.onupgradeneeded=()=>{console.log("fs_js_save_snapshot: creating db");
h.result.createObjectStore("store")};h.onsuccess=()=>{console.log("fs_js_save_snapshot: onsuccess");const g=h.result.transaction(["store"],"readwrite");var l=g.objectStore("store");const m=e+"_"+b;l=l.put(u.subarray(c,c+d),m);l.onsuccess=()=>{console.log("fs_js_save_snapshot:",m,"successfully stored")};l.onerror=()=>{console.log("fs_js_save_snapshot: FAILED to store",m)};g.onerror=()=>{console.log("fs_js_save_snapshot: transaction onerror")}};h.onerror=()=>{console.log("fs_js_save_snapshot: open_request onerror")}},
p:a=>N.activeTexture(a),F:(a,b)=>{N.attachShader(P[a],R[b])},a:(a,b)=>{35051==a?N.Od=b:35052==a&&(N.ud=b);N.bindBuffer(a,O[b])},x:(a,b,c)=>{N.bindBufferBase(a,b,O[c])},Ub:(a,b,c,d,e)=>{N.bindBufferRange(a,b,O[c],d,e)},j:(a,b)=>{N.bindFramebuffer(a,yb[b])},cc:(a,b)=>{N.bindRenderbuffer(a,zb[b])},o:(a,b)=>{N.bindSampler(a,S[b])},c:(a,b)=>{N.bindTexture(a,Q[b])},R:a=>{N.bindVertexArray(Ab[a])},M:(a,b,c,d)=>N.blendColor(a,b,c,d),N:(a,b)=>N.blendEquationSeparate(a,b),O:(a,b,c,d)=>N.blendFuncSeparate(a,
b,c,d),Db:(a,b,c,d,e,h,g,l,m,p)=>N.blitFramebuffer(a,b,c,d,e,h,g,l,m,p),Ja:(a,b,c,d)=>{2<=V.version?c&&b?N.bufferData(a,u,d,c,b):N.bufferData(a,b,d):N.bufferData(a,c?u.subarray(c,c+b):b,d)},G:(a,b,c,d)=>{2<=V.version?c&&N.bufferSubData(a,b,u,d,c):N.bufferSubData(a,b,u.subarray(d,d+c))},ac:a=>N.checkFramebufferStatus(a),$b:(a,b,c,d)=>N.clearBufferfi(a,b,c,d),va:(a,b,c)=>{N.clearBufferfv(a,b,x,c>>2)},Zb:(a,b,c)=>{N.clearBufferiv(a,b,v,c>>2)},q:(a,b,c,d)=>{N.colorMask(!!a,!!b,!!c,!!d)},gc:a=>{N.compileShader(R[a])},
v:(a,b,c,d,e,h,g,l,m)=>{2<=V.version?N.ud||!l?N.compressedTexSubImage2D(a,b,c,d,e,h,g,l,m):N.compressedTexSubImage2D(a,b,c,d,e,h,g,u,m,l):N.compressedTexSubImage2D(a,b,c,d,e,h,g,u.subarray(m,m+l))},Fa:(a,b,c,d,e,h,g,l,m,p,t)=>{N.ud?N.compressedTexSubImage3D(a,b,c,d,e,h,g,l,m,p,t):N.compressedTexSubImage3D(a,b,c,d,e,h,g,l,m,u,t,p)},lc:()=>{var a=Fb(P),b=N.createProgram();b.name=a;b.yd=b.wd=b.xd=0;b.Kd=1;P[a]=b;return a},ic:a=>{var b=Fb(R);R[b]=N.createShader(a);return b},J:a=>N.cullFace(a),Na:(a,b)=>
{for(var c=0;c<a;c++){var d=v[b+4*c>>2],e=O[d];e&&(N.deleteBuffer(e),e.name=0,O[d]=null,d==N.Od&&(N.Od=0),d==N.ud&&(N.ud=0))}},w:(a,b)=>{for(var c=0;c<a;++c){var d=v[b+4*c>>2],e=yb[d];e&&(N.deleteFramebuffer(e),e.name=0,yb[d]=null)}},n:a=>{if(a){var b=P[a];b?(N.deleteProgram(b),b.name=0,P[a]=null):T||=1281}},H:(a,b)=>{for(var c=0;c<a;c++){var d=v[b+4*c>>2],e=zb[d];e&&(N.deleteRenderbuffer(e),e.name=0,zb[d]=null)}},I:(a,b)=>{for(var c=0;c<a;c++){var d=v[b+4*c>>2],e=S[d];e&&(N.deleteSampler(e),e.name=
0,S[d]=null)}},s:a=>{if(a){var b=R[a];b?(N.deleteShader(b),R[a]=null):T||=1281}},k:(a,b)=>{for(var c=0;c<a;c++){var d=v[b+4*c>>2],e=Q[d];e&&(N.deleteTexture(e),e.name=0,Q[d]=null)}},Ma:(a,b)=>{for(var c=0;c<a;c++){var d=v[b+4*c>>2];N.deleteVertexArray(Ab[d]);Ab[d]=null}},z:a=>N.depthFunc(a),y:a=>{N.depthMask(!!a)},d:a=>N.disable(a),P:a=>{N.disableVertexAttribArray(a)},Fb:(a,b,c)=>{N.drawArrays(a,b,c)},Hb:(a,b,c,d)=>{N.drawArraysInstanced(a,b,c,d)},wa:(a,b)=>{for(var c=Qb[a],d=0;d<a;d++)c[d]=v[b+4*
d>>2];N.drawBuffers(c)},Ib:(a,b,c,d)=>{N.drawElements(a,b,c,d)},Jb:(a,b,c,d,e)=>{N.drawElementsInstanced(a,b,c,d,e)},g:a=>N.enable(a),Vb:a=>{N.enableVertexAttribArray(a)},l:(a,b,c,d)=>{N.framebufferRenderbuffer(a,b,c,zb[d])},e:(a,b,c,d,e)=>{N.framebufferTexture2D(a,b,c,Q[d],e)},D:(a,b,c,d,e)=>{N.framebufferTextureLayer(a,b,Q[c],d,e)},K:a=>N.frontFace(a),Ka:(a,b)=>{U(a,b,"createBuffer",O)},Q:(a,b)=>{U(a,b,"createFramebuffer",yb)},dc:(a,b)=>{U(a,b,"createRenderbuffer",zb)},mc:(a,b)=>{U(a,b,"createSampler",
S)},Ia:(a,b)=>{U(a,b,"createTexture",Q)},Va:(a,b)=>{U(a,b,"createVertexArray",Ab)},ec:(a,b)=>N.getAttribLocation(P[a],b?B(u,b):""),b:(a,b)=>Sb(a,b),kc:(a,b,c,d)=>{a=N.getProgramInfoLog(P[a]);null===a&&(a="(unknown error)");b=0<b&&d?L(a,d,b):0;c&&(v[c>>2]=b)},Aa:(a,b,c)=>{if(c)if(a>=xb)T||=1281;else if(a=P[a],35716==b)a=N.getProgramInfoLog(a),null===a&&(a="(unknown error)"),v[c>>2]=a.length+1;else if(35719==b){if(!a.yd){var d=N.getProgramParameter(a,35718);for(b=0;b<d;++b)a.yd=Math.max(a.yd,N.getActiveUniform(a,
b).name.length+1)}v[c>>2]=a.yd}else if(35722==b){if(!a.wd)for(d=N.getProgramParameter(a,35721),b=0;b<d;++b)a.wd=Math.max(a.wd,N.getActiveAttrib(a,b).name.length+1);v[c>>2]=a.wd}else if(35381==b){if(!a.xd)for(d=N.getProgramParameter(a,35382),b=0;b<d;++b)a.xd=Math.max(a.xd,N.getActiveUniformBlockName(a,b).length+1);v[c>>2]=a.xd}else v[c>>2]=N.getProgramParameter(a,b);else T||=1281},fc:(a,b,c,d)=>{a=N.getShaderInfoLog(R[a]);null===a&&(a="(unknown error)");b=0<b&&d?L(a,d,b):0;c&&(v[c>>2]=b)},ya:(a,b,
c)=>{c?35716==b?(a=N.getShaderInfoLog(R[a]),null===a&&(a="(unknown error)"),v[c>>2]=a?a.length+1:0):35720==b?(a=N.getShaderSource(R[a]),v[c>>2]=a?a.length+1:0):v[c>>2]=N.getShaderParameter(R[a],b):T||=1281},Sa:(a,b)=>{if(2>V.version)return T||=1282,0;var c=Cb[a];if(c)return 0>b||b>=c.length?(T||=1281,0):c[b];switch(a){case 7939:return c=Rb().map(Tb),c=Cb[a]=c,0>b||b>=c.length?(T||=1281,0):c[b];default:return T||=1280,0}},za:(a,b)=>{b=b?B(u,b):"";if(a=P[a]){var c=a,d=c.vd,e=c.ee,h;if(!d){c.vd=d={};
c.de={};var g=N.getProgramParameter(c,35718);for(h=0;h<g;++h){var l=N.getActiveUniform(c,h);var m=l.name;l=l.size;var p=Ub(m);p=0<p?m.slice(0,p):m;var t=c.Kd;c.Kd+=l;e[p]=[l,t];for(m=0;m<l;++m)d[t]=m,c.de[t++]=p}}c=a.vd;d=0;e=b;h=Ub(b);0<h&&(d=parseInt(b.slice(h+1))>>>0,e=b.slice(0,h));if((e=a.ee[e])&&d<e[0]&&(d+=e[1],c[d]=c[d]||N.getUniformLocation(a,b)))return d}else T||=1281;return-1},Cb:(a,b,c)=>{for(var d=Qb[b],e=0;e<b;e++)d[e]=v[c+4*e>>2];N.invalidateFramebuffer(a,d)},Ba:a=>{a=P[a];N.linkProgram(a);
a.vd=0;a.ee={}},Ta:(a,b)=>{3317==a?Db=b:3314==a&&(Eb=b);N.pixelStorei(a,b)},L:(a,b)=>N.polygonOffset(a,b),Eb:a=>N.readBuffer(a),bc:(a,b,c,d,e)=>N.renderbufferStorageMultisample(a,b,c,d,e),Ca:(a,b,c)=>{N.samplerParameterf(S[a],b,c)},f:(a,b,c)=>{N.samplerParameteri(S[a],b,c)},r:(a,b,c,d)=>N.scissor(a,b,c,d),hc:(a,b,c,d)=>{for(var e="",h=0;h<b;++h){var g=(g=w[c+4*h>>2])?B(u,g,d?w[d+4*h>>2]:void 0):"";e+=g}N.shaderSource(R[a],e)},Ra:(a,b,c)=>N.stencilFunc(a,b,c),ua:(a,b,c,d)=>N.stencilFuncSeparate(a,
b,c,d),t:a=>N.stencilMask(a),Qa:(a,b,c)=>N.stencilOp(a,b,c),ta:(a,b,c,d)=>N.stencilOpSeparate(a,b,c,d),Ha:(a,b,c,d,e)=>N.texStorage2D(a,b,c,d,e),Ga:(a,b,c,d,e,h)=>N.texStorage3D(a,b,c,d,e,h),u:(a,b,c,d,e,h,g,l,m)=>{if(2<=V.version){if(N.ud){N.texSubImage2D(a,b,c,d,e,h,g,l,m);return}if(m){var p=Vb(l);N.texSubImage2D(a,b,c,d,e,h,g,l,p,m>>>31-Math.clz32(p.BYTES_PER_ELEMENT));return}}if(m){p=Vb(l);var t=h*((Eb||e)*({5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4}[g-6402]||1)*p.BYTES_PER_ELEMENT+
Db-1&-Db);m=p.subarray(m>>>31-Math.clz32(p.BYTES_PER_ELEMENT),m+t>>>31-Math.clz32(p.BYTES_PER_ELEMENT))}else m=null;N.texSubImage2D(a,b,c,d,e,h,g,l,m)},Ea:(a,b,c,d,e,h,g,l,m,p,t)=>{if(N.ud)N.texSubImage3D(a,b,c,d,e,h,g,l,m,p,t);else if(t){var E=Vb(p);N.texSubImage3D(a,b,c,d,e,h,g,l,m,p,E,t>>>31-Math.clz32(E.BYTES_PER_ELEMENT))}else N.texSubImage3D(a,b,c,d,e,h,g,l,m,p,null)},Tb:(a,b,c)=>{if(2<=V.version)b&&N.uniform1fv(W(a),x,c>>2,b);else{if(288>=b)for(var d=X[b],e=0;e<b;++e)d[e]=x[c+4*e>>2];else d=
x.subarray(c>>2,c+4*b>>2);N.uniform1fv(W(a),d)}},jc:(a,b)=>{N.uniform1i(W(a),b)},Ob:(a,b,c)=>{if(2<=V.version)b&&N.uniform1iv(W(a),v,c>>2,b);else{if(288>=b)for(var d=Wb[b],e=0;e<b;++e)d[e]=v[c+4*e>>2];else d=v.subarray(c>>2,c+4*b>>2);N.uniform1iv(W(a),d)}},Sb:(a,b,c)=>{if(2<=V.version)b&&N.uniform2fv(W(a),x,c>>2,2*b);else{if(144>=b){b*=2;for(var d=X[b],e=0;e<b;e+=2)d[e]=x[c+4*e>>2],d[e+1]=x[c+(4*e+4)>>2]}else d=x.subarray(c>>2,c+8*b>>2);N.uniform2fv(W(a),d)}},Nb:(a,b,c)=>{if(2<=V.version)b&&N.uniform2iv(W(a),
v,c>>2,2*b);else{if(144>=b){b*=2;for(var d=Wb[b],e=0;e<b;e+=2)d[e]=v[c+4*e>>2],d[e+1]=v[c+(4*e+4)>>2]}else d=v.subarray(c>>2,c+8*b>>2);N.uniform2iv(W(a),d)}},Qb:(a,b,c)=>{if(2<=V.version)b&&N.uniform3fv(W(a),x,c>>2,3*b);else{if(96>=b){b*=3;for(var d=X[b],e=0;e<b;e+=3)d[e]=x[c+4*e>>2],d[e+1]=x[c+(4*e+4)>>2],d[e+2]=x[c+(4*e+8)>>2]}else d=x.subarray(c>>2,c+12*b>>2);N.uniform3fv(W(a),d)}},Mb:(a,b,c)=>{if(2<=V.version)b&&N.uniform3iv(W(a),v,c>>2,3*b);else{if(96>=b){b*=3;for(var d=Wb[b],e=0;e<b;e+=3)d[e]=
v[c+4*e>>2],d[e+1]=v[c+(4*e+4)>>2],d[e+2]=v[c+(4*e+8)>>2]}else d=v.subarray(c>>2,c+12*b>>2);N.uniform3iv(W(a),d)}},Pb:(a,b,c)=>{if(2<=V.version)b&&N.uniform4fv(W(a),x,c>>2,4*b);else{if(72>=b){var d=X[4*b],e=x;c>>=2;b*=4;for(var h=0;h<b;h+=4){var g=c+h;d[h]=e[g];d[h+1]=e[g+1];d[h+2]=e[g+2];d[h+3]=e[g+3]}}else d=x.subarray(c>>2,c+16*b>>2);N.uniform4fv(W(a),d)}},Lb:(a,b,c)=>{if(2<=V.version)b&&N.uniform4iv(W(a),v,c>>2,4*b);else{if(72>=b){b*=4;for(var d=Wb[b],e=0;e<b;e+=4)d[e]=v[c+4*e>>2],d[e+1]=v[c+
(4*e+4)>>2],d[e+2]=v[c+(4*e+8)>>2],d[e+3]=v[c+(4*e+12)>>2]}else d=v.subarray(c>>2,c+16*b>>2);N.uniform4iv(W(a),d)}},Kb:(a,b,c,d)=>{if(2<=V.version)b&&N.uniformMatrix4fv(W(a),!!c,x,d>>2,16*b);else{if(18>=b){var e=X[16*b],h=x;d>>=2;b*=16;for(var g=0;g<b;g+=16){var l=d+g;e[g]=h[l];e[g+1]=h[l+1];e[g+2]=h[l+2];e[g+3]=h[l+3];e[g+4]=h[l+4];e[g+5]=h[l+5];e[g+6]=h[l+6];e[g+7]=h[l+7];e[g+8]=h[l+8];e[g+9]=h[l+9];e[g+10]=h[l+10];e[g+11]=h[l+11];e[g+12]=h[l+12];e[g+13]=h[l+13];e[g+14]=h[l+14];e[g+15]=h[l+15]}}else e=
x.subarray(d>>2,d+64*b>>2);N.uniformMatrix4fv(W(a),!!c,e)}},m:a=>{a=P[a];N.useProgram(a);N.ge=a},Wb:(a,b)=>{N.vertexAttribDivisor(a,b)},Xb:(a,b,c,d,e)=>{N.vertexAttribIPointer(a,b,c,d,e)},Yb:(a,b,c,d,e,h)=>{N.vertexAttribPointer(a,b,c,!!d,e,h)},i:(a,b,c,d)=>N.viewport(a,b,c,d),ib:Ha,oc:function(){f.Xd=a=>{0!=ec()&&(a.preventDefault(),a.returnValue=" ")};window.addEventListener("beforeunload",f.Xd)},cb:function(){f.ce=a=>{const b=a.clipboardData.getData("text");$b(()=>{const c=Y(b);dc(c)})};window.addEventListener("paste",
f.ce)},Ua:function(){f.Je=[];f.Yd=b=>{b.stopPropagation();b.preventDefault()};f.Zd=b=>{b.stopPropagation();b.preventDefault()};f.$d=b=>{b.stopPropagation();b.preventDefault()};f.ae=b=>{b.stopPropagation();b.preventDefault();const c=b.dataTransfer.files;f.be=c;fc(c.length);for(let e=0;e<c.length;e++)$b(()=>{const h=Y(c[e].name);gc(e,h)});let d=0;b.shiftKey&&(d|=1);b.ctrlKey&&(d|=2);b.altKey&&(d|=4);b.metaKey&&(d|=8);hc(b.clientX,b.clientY,d)};const a=f.rd;a.addEventListener("dragenter",f.Yd,!1);a.addEventListener("dragleave",
f.Zd,!1);a.addEventListener("dragover",f.$d,!1);a.addEventListener("drop",f.ae,!1)},Rb:function(){const a=document.getElementById("sokol-app-favicon");a&&document.head.removeChild(a)},_b:function(a){f.Ad&&(URL.revokeObjectURL(f.Ad[a].ne),f.Ad[a]=null)},Pa:function(a){const b=f.be;return 0>a||a>=b.length?0:b[a].size},Oa:function(a,b,c,d,e){const h=new FileReader;h.onload=g=>{g=g.target.result;g.byteLength>d?ic(a,0,1,b,0,c,d,e):(u.set(new Uint8Array(g),c),ic(a,1,0,b,g.byteLength,c,d,e))};h.onerror=
()=>{ic(a,0,2,b,0,c,d,e)};h.readAsArrayBuffer(f.be[a])},nc:function(a,b){0!==b&&(document.title=b?B(u,b):"");a=a?B(u,a):"";void 0!==f.canvas&&("object"===typeof f.canvas?db[a]=f.canvas:console.warn("sokol_app.h: Module['canvas'] is set but is not an object"));f.rd=H(a);f.rd||console.warn("sokol_app.h: can't find html5_canvas_selector ",a);f.rd.requestPointerLock||console.warn("sokol_app.h: target doesn't support requestPointerLock: ",a)},gb:function(){window.removeEventListener("beforeunload",f.Xd)},
Za:function(){window.removeEventListener("paste",f.ce)},La:function(){const a=f.rd;a.removeEventListener("dragenter",f.Yd);a.removeEventListener("dragleave",f.Zd);a.removeEventListener("dragover",f.$d);a.removeEventListener("drop",f.ae)},E:function(){f.rd&&f.rd.requestPointerLock&&f.rd.requestPointerLock()},xa:function(a,b,c){if(f.rd){if(0===b)a="none";else if(0!=c)a=f.Ad[a].pe;else switch(a){case 0:a="auto";break;case 1:a="default";break;case 2:a="text";break;case 3:a="crosshair";break;case 4:a=
"pointer";break;case 5:a="ew-resize";break;case 6:a="ns-resize";break;case 7:a="nwse-resize";break;case 8:a="nesw-resize";break;case 9:a="all-scroll";break;case 10:a="not-allowed";break;default:a="auto"}f.rd.style.cursor=a}},Gb:function(a,b,c){const d=document.createElement("canvas");d.width=a;d.height=b;const e=d.getContext("2d"),h=e.createImageData(a,b);h.data.set(u.subarray(c,c+a*b*4));e.putImageData(h,0,0);a=document.createElement("link");a.id="sokol-app-favicon";a.rel="shortcut icon";a.href=
d.toDataURL();document.head.appendChild(a)},Ya:function(a){a=a?B(u,a):"";const b=document.createElement("textarea");b.setAttribute("autocomplete","off");b.setAttribute("autocorrect","off");b.setAttribute("autocapitalize","off");b.setAttribute("spellcheck","false");b.style.left="-100px";b.style.top="-100px";b.style.height=1;b.style.width=1;b.value=a;document.body.appendChild(b);b.select();document.execCommand("copy");document.body.removeChild(b)},db:function(){const a=(new URLSearchParams(window.location.search)).entries();
for(let b=a.next();!b.done;b=a.next()){const c=b.value[0],d=b.value[1];$b(()=>{const e=Y(c),h=Y(d);lc(e,h)})}},fb:function(){return f.sd?f.sd.bufferSize:0},ob:function(a,b,c){f.jd=null;f.sd=null;"undefined"!==typeof AudioContext?f.jd=new AudioContext({sampleRate:a,latencyHint:"interactive"}):(f.jd=null,console.log("sokol_audio.h: no WebAudio support"));if(f.jd){console.log("sokol_audio.h: sample rate ",f.jd.sampleRate);f.sd=f.jd.createScriptProcessor(c,0,b);f.sd.onaudioprocess=e=>{const h=e.outputBuffer.length,
g=kc(h);if(g){const l=e.outputBuffer.numberOfChannels;for(let m=0;m<l;m++){const p=e.outputBuffer.getChannelData(m);for(let t=0;t<h;t++)p[t]=x[(g>>2)+(l*t+m)]}}};f.sd.connect(f.jd.destination);const d=()=>{if(f.jd){const e=f.jd.state;"suspended"!==e&&"interrupted"!==e||f.jd.resume().catch(()=>{console.warn("sokol_audio.h: webaudio resume failed")})}};f.jd.onstatechange=d;document.addEventListener("visibilitychange",()=>{"visible"===document.visibilityState&&d()});document.addEventListener("click",
d,{once:!0});document.addEventListener("touchend",d,{once:!0});document.addEventListener("keydown",d,{once:!0});return 1}return 0},hb:function(){return f.jd?f.jd.sampleRate:0},qa:function(){const a=f.jd;null!==a&&(f.sd&&f.sd.disconnect(),a.close(),f.jd=null,f.sd=null)},eb:function(){if(f.jd){const a=f.jd.state;return"suspended"===a||"interrupted"===a?1:0}return 0},A:function(a,b,c,d,e,h){const g=b?B(u,b):"";b=new Headers;0<d&&b.append("Range",`bytes=${c}-${c+d-1}`);fetch(g,{method:"GET",headers:b}).then(l=>
{l.ok?l.arrayBuffer().then(m=>{m=new Uint8Array(m);m.length<=h?(u.set(m,e),nc(a,d,m.length)):pc(a)}).catch(m=>{console.error(`sokol_fetch.h: GET ${g} failed with: `,m);qc(a)}):oc(a,l.status)}).catch(l=>{console.error(`sokol_fetch.h: GET ${g} failed with: `,l);qc(a)})},pa:function(a,b){const c=b?B(u,b):"";fetch(c,{method:"HEAD"}).then(d=>{d.ok?(d=d.headers.get("Content-Length"),null===d?(console.warn(`sokol_fetch.h: HEAD ${c} response has no Content-Length`),qc(a)):mc(a,Number(d))):oc(a,d.status)}).catch(d=>
{console.error(`sokol_fetch.h: HEAD ${c} failed with: `,d);qc(a)})},Da:function(){return navigator.userAgent.includes("Macintosh")?1:0},oa:function(a,b){b=b?B(u,b):"";switch(a){case 0:console.error(b);break;case 1:console.error(b);break;case 2:console.warn(b);break;default:console.info(b)}},xb:function(){console.log("webapi_js_event_continued()");f.webapi_onContinued?f.webapi_onContinued():console.log("no Module.webapi_onContinued function")},wb:function(){console.log("webapi_js_event_reboot()");
f.webapi_onReboot?f.webapi_onReboot():console.log("no Module.webapi_onReboot function")},vb:function(){console.log("webapi_js_event_reset()");f.webapi_onReset?f.webapi_onReset():console.log("no Module.webapi_onReset function")},C:function(a,b){console.log("webapi_js_event_stopped()");f.webapi_onStopped?f.webapi_onStopped(a,b):console.log("no Module.webapi_onStopped function")}};
function vc(a=[]){var b=jc;a.unshift(ea);var c=a.length,d=Xb(4*(c+1)),e=d,h;for(h of a)w[e>>2]=Y(h),e+=4;w[e>>2]=0;try{var g=b(c,d);na=g;Ha(g)}catch(l){Ga(l)}}
function wc(a=da){function b(){f.calledRun=!0;if(!q){xc.qc();f.onRuntimeInitialized?.();f.noInitialRun||vc(a);if(f.postRun)for("function"==typeof f.postRun&&(f.postRun=[f.postRun]);f.postRun.length;){var c=f.postRun.shift();Aa.push(c)}za(Aa)}}if(0<z)A=wc;else{if(f.preRun)for("function"==typeof f.preRun&&(f.preRun=[f.preRun]);f.preRun.length;)Ca();za(Ba);0<z?A=wc:f.setStatus?(f.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>f.setStatus(""),1);b()},1)):b()}}var xc;
(async function(){function a(c){c=xc=c.exports;M=c.rc;dc=f.__sapp_emsc_onpaste=c.sc;ec=f.__sapp_html5_get_ask_leave_site=c.tc;fc=f.__sapp_emsc_begin_drop=c.uc;gc=f.__sapp_emsc_drop=c.vc;hc=f.__sapp_emsc_end_drop=c.wc;ic=f.__sapp_emsc_invoke_fetch_cb=c.xc;f.__sapp_emsc_set_fullscreen_flag=c.yc;jc=f._main=c.zc;kc=f.__saudio_emsc_pull=c.Ac;lc=f.__sargs_add_kvp=c.Bc;mc=f.__sfetch_emsc_head_response=c.Cc;nc=f.__sfetch_emsc_get_response=c.Dc;oc=f.__sfetch_emsc_failed_http_status=c.Ec;pc=f.__sfetch_emsc_failed_buffer_too_small=
c.Fc;qc=f.__sfetch_emsc_failed_other=c.Gc;rc=f._fs_emsc_alloc=c.Hc;sc=f._fs_emsc_load_snapshot_callback=c.Ic;f._webapi_dbg_connect=c.Jc;f._webapi_dbg_disconnect=c.Kc;f._webapi_alloc=c.Lc;f._webapi_free=c.Mc;f._webapi_boot=c.Nc;f._webapi_reset=c.Oc;f._webapi_ready=c.Pc;f._webapi_load=c.Qc;f._webapi_load_file_internal=c.Rc;f._webapi_unload_file=c.Sc;f._webapi_load_snapshot=c.Tc;f._webapi_save_snapshot=c.Uc;f._webapi_dbg_add_breakpoint=c.Vc;f._webapi_dbg_remove_breakpoint=c.Wc;f._webapi_dbg_break=c.Xc;
f._webapi_dbg_continue=c.Yc;f._webapi_dbg_step_next=c.Zc;f._webapi_dbg_step_into=c._c;f._webapi_dbg_cpu_state=c.$c;f._webapi_dbg_request_disassembly=c.ad;f._webapi_dbg_read_memory=c.bd;f._webapi_input_internal=c.cd;tc=c.ed;Zb=c.fd;Xb=c.gd;Yb=c.hd;pa=c.pc;gb=c.dd;oa();z--;f.monitorRunDependencies?.(z);0==z&&A&&(c=A,A=null,c());return xc}z++;f.monitorRunDependencies?.(z);var b={a:uc};if(f.instantiateWasm)return new Promise(c=>{f.instantiateWasm(b,(d,e)=>{c(a(d,e))})});ua??=f.locateFile?f.locateFile("c64-ui.wasm",
ia):ia+"c64-ui.wasm";return a((await xa(b)).instance)})();wc();