function l(){this.B=function(l){for(var t=0;t<24;t++)this[String.fromCharCode(97+t)]=l[t]||0;this.c<.01&&(this.c=.01);var e=this.b+this.c+this.e;if(e<.18){var n=.18/e;this.b*=n,this.c*=n,this.e*=n}}}function t(){var t,e,n,o,i,r,u,a,s,h,c,f;this.A=new l,this.reset=function(){var l=this.A;o=100/(l.f*l.f+.001),i=100/(l.g*l.g+.001),r=1-l.h*l.h*l.h*.01,u=-l.i*l.i*l.i*1e-6,l.a||(c=.5-l.n/2,f=5e-5*-l.o),a=1+l.l*l.l*(l.l>0?-.9:10),s=0,h=1==l.m?0:(1-l.m)*(1-l.m)*2e4+32},this.D=function(){this.reset();var l=this.A;return t=l.b*l.b*1e5,e=l.c*l.c*1e5,n=l.e*l.e*1e5+12,3*((t+e+n)/3|0)},this.M=function(l,B){var p=this.A,k=1!=p.s||p.v,d=p.v*p.v*.1,E=1+3e-4*p.w,A=p.s*p.s*p.s*.1,w=1+1e-4*p.t,b=1!=p.s,D=p.x*p.x,m=p.g,M=p.q||p.r,y=p.r*p.r*p.r*.2,I=p.q*p.q*(p.q<0?-1020:1020),v=p.p?32+((1-p.p)*(1-p.p)*2e4|0):0,C=p.d,J=p.j/2,O=p.k*p.k*.01,T=p.a,g=t,F=1/t,G=1/e,S=1/n,x=5/(1+p.u*p.u*20)*(.01+A);x>.8&&(x=.8),x=1-x;for(var R=!1,N=0,H=0,U=0,$=0,j=0,P,Y=0,W,K=0,L,Z=0,V,z=0,Q,X,q=0,_=new Array(1024),ll=new Array(32),tl=_.length;tl--;)_[tl]=0;for(var tl=ll.length;tl--;)ll[tl]=2*Math.random()-1;for(var tl=0;tl=v&&(z=0,this.reset()),h&&++s>=h&&(h=0,o*=a),(o*=r+=u)>i&&(o=i,m>0&&(R=!0)),W=o,J>0&&(q+=O,W*=1+Math.sin(q)*J),(W|=0)<8&&(W=8),T||((c+=f)<0?c=0:c>.5&&(c=.5)),++H>g)switch(H=0,++N){case 1:g=e;break;case 2:g=n}switch(N){case 0:U=H*F;break;case 1:U=1+2*(1-H*G)*C;break;case 2:U=1-H*S;break;case 3:U=0,R=!0}M&&((L=0|(I+=y))<0?L=-L:L>1023&&(L=1023)),k&&E&&((d*=E)<1e-5?d=1e-5:d>.1&&(d=.1)),X=0;for(var el=8;el--;){if(++K>=W&&(K%=W,3==T))for(var nl=ll.length;nl--;)ll[nl]=2*Math.random()-1;switch(T){case 0:Q=K/W.5?V-1:V))+.405284735*V*V*(V<0?1:-1))<0?-1:1)*Q*Q-Q)+Q;break;case 3:Q=ll[Math.abs(32*K/W|0)]}k&&(P=Y,(A*=w)<0?A=0:A>.1&&(A=.1),b?(j+=(Q-Y)*A,j*=x):(Y=Q,j=0),$+=(Y+=j)-P,Q=$*=1-d),M&&(_[Z%1024]=Q,Q+=_[(Z-L+1024)%1024],Z++),X+=Q}X*=.125*U*D,l[tl]=X>=1?32767:X<=-1?-32768:32767*X|0}return B}}var e=new t;const n=function(l){e.A.B(l);var t=e.D(),n=new Uint8Array(4*((t+1)/2|0)+44),o=2*e.M(new Uint16Array(n.buffer,44),t),i=new Uint32Array(n.buffer,0,44);i[0]=1179011410,i[1]=o+36,i[2]=1163280727,i[3]=544501094,i[4]=16,i[5]=65537,i[6]=44100,i[7]=88200,i[8]=1048578,i[9]=1635017060,i[10]=o,o+=44;for(var r=0,u="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a="data:audio/wav;base64,";r>18]+u[s>>12&63]+u[s>>6&63]+u[63&s]}return a},o=(l,t=.1)=>{const e=new Map,o=[];let i=0;l.tracks.forEach((t,r)=>{const u=l.instruments[r];let a=0;for(let s=0;s{const l=new Audio;i++;let t=!1;return l.addEventListener("canplaythrough",()=>{t||(t=!0,i--)}),l.src=a,l})},e.set(h,c)}o.push({time:a,C:c,volume:t[s+3]/255})}}),o.sort((l,t)=>l.time-t.time);let r,u,a,s,h=!0,c,f=1;const B=()=>{r=0,u=0,a=new Date,s=!1,h&&(h=!1,p())},p=()=>{const e=0===i;if(s)return void(h=!0);const n=new Date,k=Math.min((n-a)/1e3,t);if(a=n,e)for(r+=k;r>=o[u].time;){const t=o[u++],e=t.C.I[t.C.next];if(t.C.next=(t.C.next+1)%l.channelsPerNote,f>0&&(void 0===document.hidden||!document.hidden)&&(e.volume=t.volume*f,e.play()),u===o.length){if(!c)return void(h=!0);B()}}setTimeout(p,1)};return{play:(l=!1)=>{c=l,B()},stop:()=>{s=!0},J:l=>{f=l}}};let i=!1;const r=(l,t,e=1,o=1)=>{const r=n(l),u=new Array(t).fill(null).map(()=>{const l=new Audio;return l.src=r,l});let a=0;return()=>{if(i)return;const l=u[a];a=(a+1)%t,l.volume=e+Math.random()*(o-e),l.paused?l.play():l.currentTime=0}},u=.75,a={O:[r([0,,.0857,.451,.1379,.28,,,,,,,,,,,,,1,,,,,.5],3,.5625,.5625),r([0,,.0857,.451,.1379,.35,,,,,,,,,,,,,1,,,,,.5],3,.5625,.5625),r([0,,.0857,.451,.1379,.42,,,,,,,,,,,,,1,,,,,.5],3,.5625,.5625),r([0,,.0857,.451,.1379,.49,,,,,,,,,,,,,1,,,,,.5],3,.5625,.5625)],T:r([0,,.0857,.451,.1379,.15,,,,,,,,,,,,,1,,,,,.5],3,.5625,.5625),F:r([0,,.2605,,.23,.2225,,.227,,.23,.6365,,,,,,,,1,,,,,.5],1,.5625,.5625),G:r([0,,.2605,,.23,.345,,-.2179,,.23,.6365,,,,,,,,1,,,,,.5],1,.5625,.5625),S:r([1,,.3172,,.2736,.2288,,.0734,,.4237,.2363,,,,,,,,1,,,,,.5],4,.2*.75,.2*.75),R:r([3,,.2192,.4762,.3306,.3345,,-.2955,,,,-.6227,.7424,,,.5294,-.2207,-.1787,1,,,,,.5],1,.4*.75,.4*.75),N:r([0,,.0825,,.0974,.223,,,,,,,,.4959,,,,,1,,,.1,,.5],2,.375,.5625),H:r([0,,.27,,.251,.451,,.3133,,,,,,.0211,,.5839,,,1,,,,,.5],2,.3*.75,.3*.75),U:r([0,,.1613,,.2094,.2289,,.2338,,,,,,.349,,.6415,,,1,,,,,.5],2,.5625,.5625),$:r([3,,.2942,,.2239,.368,,-.249,,,,,,.0483,,,,,1,,,.2108,,.5],1,.375,.375),P:r([3,,.2942,,.2239,.3011,,.2288,,,,,,.0483,,,,,1,,,.2108,,.5],1,.375,.375),Y:r([0,,.0595,,.3271,.2945,,.2968,,,,,,.5668,,.457,,,1,,,,,.5],1,.75,.75),W:r([0,,.1297,,.1137,.379,,.2551,,,,,,.3982,,,,,1,,,,,.5],2,.5625,.5625),K:r([0,,.15,,.0299,.2299,,,,,,,,.5036,,,,,1,,,.1,,.5],6,.375,.5625),L:r([3,,.1818,,.67,.0952,,.1283,,,,,,,,,.2695,-.1691,1,,,,,.5],1,.75,.75),Z:r([3,,.42,,,.629,,,,,,,,,,,,,1,,,,,.5],1,.45,.45),V:r([0,,.1984,,.4481,.3487,,.2839,,,,,,.5726,,.4374,,,1,,,,,.5],1,.75,.75),X:o({rate:160,fs:44100,channelsPerNote:5,adjustSustainDuration:!1,instruments:[null,[0,null,null,.5,.4,.25,null,null,null,null,null,null,null,null,null,null,null,null,1,null,null,null,null,.5],[2,null,.18,.05,.3,.34,null,null,null,null,null,null,null,null,null,null,null,null,1,null,null,null,null,.5],[3,null,.09,.35,.12,.43,null,null,null,null,null,null,null,null,null,null,null,null,1,null,null,null,null,.35],null,null,null,null,null,null,null,null,null,null,null,null,null],tracks:[[],[1150,96,71,81,120,24,71,81,24,48,69,81,48,24,67,81,24,24,64,81,48,24,70,81,48,24,69,81,48,24,67,81,24,24,64,81,24,24,67,81,24,24,64,81,24,24,62,81,24,24,59,81,24,24,57,81,24,24,55,81,24,24,64,81,24,24,76,81,48,24,76,81,24,24,76,81,0,24,74,81,48,24,76,81,0,24,74,81,24,24,76,81,0,24,73,81,48,24,76,81,0,24,73,81,24,24,76,81,0,24,72,81,48,24,76,81,0,24,72,81,24,24,76,81,0,24,70,81,24,24,71,81,24,24,76,81,0,24,74,81,24,24,76,81,0,24,71,81,24,24,70,81,24,24,76,81,0,24,69,81,24,24,76,81,0,24,67,81,24,24,64,81,24,24,76,81,0,24,67,81,24,24,76,81,0,24,69,81,24,24,76,81,0,24,67,81,24,24,76,81,0,24,69,81,24,24,71,81,0,24,76,81,24,24,79,81,24,24,70,81,24,24,78,81,24,24,69,81,24,24,77,81,24,24,67,81,24,24,76,81,24,24,74,81,24,24,65,81,24,24,72,81,24,24,70,81,24,48,71,81,48,24,67,81,24,24,66,81,48,48,65,81,48,24,62,81,24,24,59,81,24,24,63,81,24,24,58,81,24,24,67,81,24,24,64,81,24,24,67,81,24,24,71,81,24,96,76,81,144,72,47,81,0,72,53,81,0,72,62,81,0,72,70,81,72,24,75,81,24,24,70,81,24,24,66,81,24,96,61,81,144,72,47,81,0,72,53,81,0,72,62,81,0,72,70,81,72,24,64,81,24,24,67,81,24,24,71,81,24,96,79,81,144,72,47,81,0,72,53,81,0,72,62,81,0,72,70,81,72,24,75,81,24,24,70,81,24,24,66,81,24,96,61,81,144,72,47,81,0,72,53,81,0,72,62,81,0,72,70,81,1224,24,71,81,24,24,59,81,24,24,83,81,24,24,95,81,24,24,71,81,24,24,59,81,24,24,72,81,24,24,60,81,24,24,84,81,24,24,96,81,24,24,72,81,24,24,60,81,24,24,73,81,24,24,61,81,24,24,85,81,24,24,97,81,24,24,73,81,24,24,61,81,24,24,72,81,24,24,60,81,24,24,84,81,24,24,96,81,24,24,72,81,24,24,60,81,24,24,71,81,24,24,59,81,24,24,83,81,24,24,95,81,24,24,71,81,24,24,59,81,24,24,72,81,24,24,60,81,24,24,84,81,24,24,96,81,24,24,72,81,24,24,60,81,24,24,74,81,24,24,62,81,24,24,86,81,24,24,98,81,24,24,74,81,24,24,62,81,24,24,83,81,24,24,71,81,24,24,95,81,24,24,107,81,24,24,83,81,24,24,71,81,24,256,76,81,0,256,88,81,0,256,64,81,1296,32,52,51,48,32,55,51,24,16,47,51,48,88,53,51,168,48,47,51,48,24,53,51,24,48,51,51,48,24,52,51,96,24,62,51,48,24,62,51,24,32,52,51,0,24,61,51,48,32,55,51,0,24,61,51,24,16,47,51,0,24,60,51,48,88,53,51,0,24,60,51,96,24,62,51,48,24,62,51,24,48,47,51,0,24,59,51,48,24,53,51,0,24,59,51,24,48,51,51,0,24,59,51,48,24,52,51,0,24,59,51,24,24,64,61,0,16,60,38,48,24,64,61,48,24,64,61,48,24,64,61,48,24,64,61,48,24,64,61,48,24,64,61,48,24,64,61,48,24,64,61,48,24,64,61,48,24,64,61,48,24,64,61,48,24,64,61,48,24,64,61,48,24,64,61,48,24,64,61,48,24,64,61,48,24,64,61,48,24,64,61,48,24,64,61,48,24,64,61,48,24,64,61,48,24,64,61,48,24,64,61,48,24,76,61,0,256,36,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,0,256,38,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,0,256,36,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,0,256,38,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61,24,24,76,61,24,24,64,61],[118,24,40,101,24,96,43,101,120,24,43,101,24,96,42,101,120,24,42,101,24,48,35,101,48,24,41,101,24,48,39,101,48,120,40,101,144,24,40,101,24,96,43,101,120,24,43,101,24,96,42,101,120,24,42,101,24,48,35,101,48,24,41,101,24,48,39,101,48,120,40,101,144,24,40,101,24,96,43,101,120,24,43,101,24,96,42,101,120,24,42,101,24,48,35,101,48,24,41,101,24,48,39,101,48,24,40,101,24,96,40,101,120,24,40,101,24,96,43,101,120,24,43,101,24,96,42,101,120,24,42,101,24,48,35,101,48,24,41,101,24,48,39,101,48,24,40,101,24,96,40,101,120,24,40,101,24,96,43,101,120,24,43,101,24,96,42,101,120,24,42,101,24,48,35,101,48,24,41,101,24,48,39,101,48,24,40,101,24,48,40,101,48,24,43,101,24,24,45,101,48,100,46,101,120,48,47,101,48,48,40,101,48,24,43,101,24,24,45,101,48,100,46,101,120,32,50,101,48,48,40,101,48,24,43,101,24,24,45,101,48,100,46,101,120,48,55,101,48,48,40,101,48,24,43,101,24,24,45,101,48,100,46,101,96,24,59,101,24,24,62,101,24,24,63,101,24,96,64,101,120,24,64,101,24,96,67,101,120,24,67,101,24,96,66,101,120,24,66,101,24,48,59,101,48,24,65,101,24,48,63,101,48,24,64,101,24,96,64,101,120,24,64,101,24,96,67,101,120,24,67,101,24,96,66,101,120,24,66,101,24,48,59,101,48,24,65,101,24,48,63,101,48,24,64,101,24,96,64,101,120,24,64,101,24,96,67,101,120,24,67,101,24,96,66,101,120,24,66,101,24,48,59,101,48,24,65,101,24,48,63,101,48,24,64,101,24,96,64,101,120,24,64,101,24,96,67,101,120,24,67,101,24,96,66,101,120,24,66,101,24,48,59,101,24,16,58,101,24,16,57,101,24,16,55,101,24,16,52,101,24,16,50,101,24,96,40,101,0,16,52,101,120,24,40,101,24,96,43,101,120,24,43,101,24,96,42,101,120,24,42,101,24,48,35,101,48,24,41,101,24,48,39,101,48,120,40,101,144,24,40,101,24,96,43,101,120,24,43,101,24,96,42,101,120,24,42,101,24,48,35,101,48,24,41,101,24,48,39,101,48,24,40,101,24,96,40,101,120,24,40,101,24,96,43,101,120,24,43,101,24,96,42,101,120,24,42,101,24,48,35,101,48,24,41,101,24,48,39,101,48,24,40,101,24,96,40,101,120,24,40,101,24,96,43,101,120,24,43,101,24,96,42,101,120,24,42,101,24,48,35,101,48,24,41,101,24,48,39,101,48,24,40,101,24,48,36,101,48,48,52,101,48,48,54,101,48,48,55,101,48,48,57,101,48,48,59,101,48,48,62,101,0,48,38,101,48,48,57,101,48,48,59,101,48,48,62,101,48,48,66,101,48,48,67,101,48,48,36,101,48,48,52,101,0,48,55,101,48,48,54,101,0,48,57,101,48,48,55,101,0,48,59,101,48,48,57,101,0,48,62,101,48,48,59,101,0,48,64,101,48,48,62,101,0,48,38,101,48,48,57,101,0,48,62,101,48,48,59,101,0,48,64,101,48,48,62,101,0,48,66,101,48,48,66,101,0,48,69,101,48,48,67,101,0,48,74,101,48,48,36,101,0,256,24,101,48,48,52,101,0,48,55,101,48,48,54,101,0,48,57,101,48,48,55,101,0,48,59,101,48,48,57,101,0,48,62,101,48,48,59,101,0,48,64,101,48,48,62,101,0,48,38,101,0,256,26,101,48,48,57,101,0,48,62,101,48,48,59,101,0,48,64,101,48,48,62,101,0,48,66,101,48,48,66,101,0,48,69,101,48,48,67,101,0,48,74,101,48,48,36,101,0,256,24,101,0,48,52,101,48,48,52,101,0,48,55,101,0,48,59,101,48,48,54,101,0,48,57,101,0,48,62,101,48,48,55,101,0,48,59,101,0,48,64,101,48,48,57,101,0,48,62,101,0,48,67,101,48,48,59,101,0,48,64,101,0,48,71,101,48,48,62,101,0,48,38,101,0,256,26,101,0,48,74,101,48,48,57,101,0,48,62,101,0,48,69,101,48,48,59,101,0,48,64,101,0,48,71,101,48,48,62,101,0,48,66,101,0,48,74,101,48,48,66,101,0,48,69,101,0,48,81,101,48,48,67,101,0,48,74,101,0,48,83,101,48,256,88,101,0,96,52,101,0,96,76,16,0,96,40,103,120,24,52,101,0,24,76,16,24,96,50,101,0,96,74,16,0,96,40,103,120,24,50,101,0,24,74,16,24,96,49,101,0,96,73,16,0,96,40,103,0,256,57,79,120,24,49,101,0,24,73,16,24,96,48,101,0,96,72,16,0,96,40,103,0,144,64,71,120,24,48,101,0,24,72,16,24,96,52,101,0,96,76,16,0,96,40,103,0,256,71,95,120,24,52,101,0,24,76,16,24,96,50,101,0,96,74,16,0,96,40,103,120,24,50,101,0,24,74,16,0,280,69,95,24,96,49,101,0,96,73,16,0,96,40,103,0,256,57,79,120,24,49,101,0,24,73,16,24,96,48,101,0,96,72,16,0,96,40,103,0,144,64,71,120,24,48,101,0,24,72,16,0,24,67,95,24,96,52,101,0,96,40,103,0,256,64,101,120,24,52,101,24,96,50,101,0,96,40,103,96,24,62,101,24,24,50,101,0,24,64,101,24,96,49,101,0,96,40,103,0,48,67,101,48,48,64,101,48,48,62,101,24,24,49,101,24,96,48,101,0,96,40,103,0,48,64,101,48,48,62,101,48,24,57,101,24,24,48,101,0,24,55,101,24,96,52,101,0,96,40,103,0,256,59,101,120,24,52,101,24,96,50,101,0,96,40,103,72,32,62,101,48,24,50,101,0,280,64,101,24,96,49,101,0,96,40,103,48,24,62,101,48,24,59,101,24,24,49,101,24,24,45,101,0,24,58,101,24,24,47,101,24,24,45,101,0,24,57,101,24,24,43,101,24,24,40,101,0,24,55,101,24,24,38,101,24,96,40,101,0,256,52,101,120,24,40,101,24,96,43,101,120,24,43,101,24,96,42,101,120,24,42,101,24,48,35,101,48,24,41,101,24,48,39,101,48,120,40,101,144,24,40,101,24,96,43,101,120,24,43,101,24,96,42,101,120,24,42,101,24,48,35,101,48,24,41,101,24,48,39,101,48,120,40,101],[574,24,59,71,72,48,59,71,48,48,62,71,72,48,62,71,72,48,61,71,72,48,61,71,72,24,61,71,24,24,60,71,24,24,62,71,24,24,60,71,24,24,59,71,24,24,54,71,24,24,53,71,24,48,52,71,72,48,59,71,48,48,62,71,72,48,62,71,72,48,61,71,72,48,61,71,72,24,61,71,24,24,60,71,24,24,62,71,24,24,60,71,24,24,59,71,24,24,54,71,24,24,53,71,24,48,52,71,72,48,59,71,48,48,62,71,72,48,62,71,72,48,61,71,72,48,61,71,72,24,61,71,24,24,60,71,24,24,62,71,24,24,60,71,24,24,59,71,24,24,54,71,24,24,53,71,24,48,52,71,72,48,59,71,48,48,62,71,72,48,62,71,72,48,61,71,72,48,61,71,72,24,61,71,24,24,60,71,24,24,62,71,24,24,60,71,24,24,59,71,24,24,54,71,24,24,53,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,24,16,64,71,48,16,64,71,1176,32,52,91,48,16,59,91,24,32,52,91,48,168,58,91,168,48,49,91,48,24,57,91,24,48,47,91,48,96,55,91,168,32,52,91,48,16,59,91,24,32,52,91,48,168,58,91,168,48,49,91,48,24,57,91,24,48,47,91,48,96,55,91,168,24,48,91,0,256,36,91,24,24,55,91,24,24,64,91,24,24,76,91,24,24,67,91,24,24,64,91,24,24,48,91,24,24,55,91,24,24,64,91,24,24,76,91,24,24,67,91,24,24,48,91,24,24,50,91,0,256,38,91,24,24,57,91,24,24,66,91,24,24,76,91,24,24,69,91,24,24,62,91,24,24,50,91,24,24,57,91,24,24,66,91,24,24,76,91,24,24,69,91,24,24,62,91,24,24,48,91,0,256,36,91,24,24,55,91,24,24,64,91,24,24,76,91,24,24,67,91,24,24,64,91,24,24,48,91,24,24,55,91,24,24,64,91,24,24,76,91,24,24,67,91,24,24,48,91,24,24,50,91,0,256,38,91,24,24,57,91,24,24,66,91,24,24,76,91,24,24,69,91,24,24,62,91,24,24,50,91,24,24,57,91,24,24,66,91,24,24,76,91,24,24,69,91,24,24,62,91,24,24,48,91,0,256,36,91,24,24,55,91,24,24,64,91,24,24,76,91,24,24,67,91,24,24,64,91,24,24,48,91,24,24,55,91,24,24,64,91,24,24,76,91,24,24,67,91,24,24,48,91,24,24,50,91,0,256,38,91,24,24,57,91,24,24,66,91,24,24,76,91,24,24,69,91,24,24,62,91,24,24,50,91,24,24,57,91,24,24,66,91,24,24,76,91,24,24,69,91,24,24,62,91,24,24,48,91,0,256,36,91,24,24,55,91,24,24,64,91,24,24,76,91,24,24,67,91,24,24,64,91,24,24,48,91,24,24,55,91,24,24,64,91,24,24,76,91,24,24,67,91,24,24,48,91,24,24,50,91,0,256,38,91,24,24,57,91,24,24,66,91,24,24,76,91,24,24,69,91,24,24,62,91,24,24,50,91,24,24,57,91,24,24,66,91,24,24,76,91,24,24,69,91,24,24,62,91,24,256,40,91,0,48,64,91,48,24,64,91,24,48,64,91,48,24,64,91,24,48,64,91,48,24,64,91,24,48,64,91,48,24,64,91,24,48,64,91,48,24,64,91,24,48,64,91,48,24,64,91,24,48,64,91,48,24,64,91,24,48,64,91,48,24,64,91,24,48,64,91,48,24,64,91,24,48,64,91,48,24,64,91,24,48,64,91,48,24,64,91,24,48,64,91,48,24,64,91,24,48,64,91,48,24,64,91,24,48,64,91,48,24,64,91,24,48,64,91,48,24,64,91,24,48,64,91,48,24,64,91,1176,16,52,91,48,16,52,91,48,16,52,91,48,16,52,91,48,16,52,91,48,16,52,91,48,16,52,91,48,16,52,91,48,16,52,91,48,16,52,91,48,16,52,91,48,16,52,91,48,16,52,91,48,16,52,91,48,16,52,91,48,16,52,91,48,16,52,91,48,16,52,91,48,16,52,91,48,16,52,91,48,16,52,91,48,16,52,91,48,16,52,91,48,16,52,91],[],[],[],[],[],[],[],[],[],[],[],[],[]]})};a.X.J(.5625);const s=["abbbbbbbbbbbbcgiiiiiiiiiiiihgiiiiiiiiiiiihabbbbbbbbbbbbcg hg hg hg hg hg hg hg hdeeeeeeeeeeeef"," ** deeeeeeeeeeeef %"," ??????????????? ?? ?? ?? ?? ?? ?? ?? ???????????????"],h=[['; P P DDDDDDDDDDDD mn " CCCCCCCCCCCC '].concat(s),[": ***** ABBBBBBBBA B B B >^ < B ABBBBBBBBA "," llllllll llllllll "].concat(s),[": ******** ABBBBBBBBBBA B B B ABA B B >^ < B ABBBA ABBA B B B B "," j llllllllll llll lll llllllllll lll "].concat(s),[": ************ BBB ABBBBA ABBBA B< B ABB =BB B B B B >^ B B B B BBB=BA B B B B "," j llllllllll jjjj jl lllllllljl lllllllljl j "," ! . +. + . . + "].concat(s),[": ************ ~~~~ ? .... ? ?FEE EEF? ?E +.+ E? ?E = . E? ?E E? ?E>^ ^# .!E FEEEEEEEF "," ll ll l l llllll lllllll "].concat(s),[": ************ ** GGGGGG GG G G ## G G ## G G>^#^ .^ < I DCCK**LCCD H I I "," ii ~. "," oooooooo oooooooo oooooooo ii ii "].concat(s),[": ************ ********** JJJJJJJJJ J ~ J J J!. . J JJJ J# = #>^ =< JJJJJJJJJJJ "," . ++ . "," . ++ . "," lllll l lllll l llllllllll llllllllll "].concat(s),[": ** DDDDDDDDD -. ? CCCCCCCCC DDDDDDDDD >^ $ "," ooooooooo oomnooooo ooooooooo ! . "," pppppppppppp pppppp pppppp pppppp pppppp pppppp pppppppppppp ppppppppppp "].concat(s)],c=["","A NEW HOPE","PITFALL","UP AND AWAY","SHADOW","TRIGGER","CLAUSTROPHOBIA","PATIENCE","META","EXAM","DO IT"],f=["ENVISIONATOR\n\n\nMADE BY DONITZ FOR JS13KGAMES\nMUSIC:\nNURYKABE MIDI 01 - CONTRE01 BY MORUSQUE\n(CC BY 3.0, HIGHLY EDITED)\nCONTROLS:\nā†ā†’ā†‘ā†“ - MOVE Z - ACTION\nX - ERASE M - MUTE\nPRESS Z TO START","~~~Hey!~~ You there!~~\nYes you!~~ Come over here!|Do you see the little robot,~~\nthe one on the monitor?|That's a Fixed Input Field Operator.~~\nYou need to get it through the door.|Use the arrow keys to define moves,~~\nthen press Z to activate the FIFO.|","~~~The building is under lockdown and\nall outside communications are down.|I was working late in my lab when the\ndoors locked,~~ and now I'm locked in.|Fortunately the FIFO control network\nwas isolated and is still active.|","~~~As you may have noticed,~\nthe room layout is ridiculous.|Some speculate the architect was mad.~~\nOthers say they were built by weasels.|","~~~I told them a plasma beam security\nsystem was overkill.|They said,~ \"that's the point\"~~~\nWhat's next?~ A self-destruct button?|","~~~Please hurry.~~~ It smells in here~~.~~.~~.~~\nSmells like,~~~~~ p~a~p~e~r~s~?~&Okay fine!~~ I'm stuck in the toilet.~~\nAll the more reason for you to hurry!|","~~~You know,~~ I don't even know what\nthe FIFO is used for.|Is it like a vacuum cleaner,~~\nor a mobile bar?|I want one!|","~~~What are you doing?~~ Don't touch the%&H~e~e~e~e~y.~~~ This is the room with\nthe thing!~~~~ Wow,~~ just look at that!|Marvelous.|","~~~WHO~~~~ %*BANG*~~~ REINFORCES~~ %*CRASH*~~~~\nA~~~~ %*KADONK*~~~~ TOILET DOOR!?|*huff*~~.~~.~~.~~~~\nOkay,~~ back to unrolling toilet paper.|","~~~Just one more level to go!~~ I can already\nfeel the fresh air in my hair.|Yes~~","~~~There it is!~~~ The door to our freedom!~~~\nQuick!~ Use the beam to blast it open!|",">~~~~~~~~~~~~~~~~~~~~~~~~Since this is the last time we~~ speak~~~~~~%>~~~\nI have something to admit.~~~~~~~~~~~~~~\n\n There was no toilet.~~~~%>~~~~~~~~~~~~~~~~\n I caused the lockdown.~~~~%>~~~~~~~~~~~~~~~~\n I~~ ~~a~~m>~>~>~>~>~>~>~>~~~>^"];window.addEventListener("load",()=>{const l=38,t=39,e=40,n=37,o=90,r=88,u=77,s=0,B=1,p=2,k=3,d=[l,t,e,n],E=[0,1,0,-1],A=[-1,0,1,0],w=.3,b=12,D=14,m=13,M={x:12*D,y:12*m},y=new Set,I=l=>!!y.has(l)&&(y.clear(),!0);window.addEventListener("keydown",l=>!l.repeat&&y.add(l.keyCode));const v=(l,t,e)=>l*(1-e)+t*e,C=document.body.children[0],J=document.body.children[1],O=J.children[0],T=J.children[3],g=J.children[1],F=J.children[2],G=O.getContext("2d"),S=T.getContext("2d");T.width=O.width=M.x,T.height=O.height=M.y;const x=(l,t,e,n,o=0,i=!1)=>{const r=i?G:S;r.translate(Math.round(12*(e+.5)),Math.round(12*(n+.5))),0!==o&&r.rotate(o*Math.PI*.5),r.drawImage(C,12*l,12*t,12,12,-6,-6,12,12),r.setTransform(1,0,0,1,0,0)},R=l=>(l?G:S).clearRect(0,0,O.width,O.height),N=()=>{const l=window.innerWidth,t=window.innerHeight,e=M.x/M.y;let n,o,i;l/t>e?(n=(l-t*e)/2,o=0,i=t/M.y):(n=0,o=(t-l/e)/2,i=l/M.x);const r=J.style,u=g.style,a=F.style;r.width=`${M.x*i}px`,r.height=`${M.y*i}px`,r.left=`${n}px`,r.top=`${o}px`,u.fontSize=a.fontSize=`${5.5*i}px`,u.lineHeight=a.lineHeight=`${12*i}px`,u.left=a.left=`${15*i}px`,u.width=a.width=`${(T.width-30)*i}px`,u.top=`${12*i}px`,a.top=`${48*i}px`};window.addEventListener("resize",N),N();const H=[],U=[];let $=-1,j=0,P=!0,Y=!1,W=null,K=null,L,Z,V,z,Q,X;const q=(l,t,e)=>l+Math.floor(z*t)%e,_=l=>H.filter(t=>t.c===l),ll=(l,t,e,n,i)=>{const u=n.charCodeAt();if(/[ .]/.test(n))return;const h={x:l,y:t,z:0,l:e,p:0,c:n,_:l,ll:t,tl:!1,fixed:!0,el:!1,visible:!0};if(H.push(h),h.start=(()=>{}),h.nl=(()=>{h._=h.x,h.ll=h.y}),h.ol=(()=>!1),h.il=(()=>{}),h.move=((l,t=!1)=>{const e=E[l],n=A[l],o=[h],i=new Set;let r=h.x,u=h.y,a=!0;for(;a;){a=!1,r+=e,u+=n;for(const l of H)if(l.tl){if(l._===r&&l.ll===u&&(l.x!==r&&0!==n||l.y!==u&&0!==e)||l.x===r&&l.y===u&&(l._!==r&&0!==n||l.ll!==u&&0!==e))return!1;if(l.x===r&&l.y===u){if(l.fixed||!t)return!1;o.unshift(l),a=!0}}}return o.forEach(t=>{H.forEach(e=>{e.x===t.x&&e.y===t.y-1&&e.tl&&!e.fixed&&e.el&&!i.has(e)&&(e.move(l),i.add(e))}),t.x+=e,t.y+=n}),!0}),h.rl=(()=>{for(let l=0;l<4;l++)H.some(t=>t.x===h.x+E[l]&&t.y===h.y+A[l]&&/[i-oA-P]/.test(t.c))||x(3+l,3,h.x,h.y,0,!0)}),"?"===n&&(h.tl=!0,h.visible=!1),/[a-p]/i.test(n)){const l=/[a-p]/.test(n);h.z=l?-1:0,h.tl=!l,h.il=(()=>{x(u-(l?97:65),l?0:1,h.x,h.y,0,!0),!l&&$>0&&h.rl(),h.visible=!1})}if("#"===n&&(h.z=5,h.p=5,h.tl=!0,h.fixed=!1,h.el=!0,h.nl=(()=>{h._=h.x,h.ll=h.y}),h.ol=(()=>h.x===h._&&h.y===h.ll&&h.move(p)),h.il=(()=>x(1,7,v(h._,h.x,Q),v(h.ll,h.y,Q)))),"*"===n&&(h.visible=!1,h.key=null,h.color=null,h.start=(()=>{const l=_("*"),t=l.indexOf(h),e=l.length;h.key=t===e-2?4:t===e-1?5:null,h.color=t===e-2?1:2}),h.nl=(()=>{h.tl=null!==h.key}),h.il=(()=>{null!==h.color&&x(h.color,3,h.x,h.y),null!==h.key&&x(h.key+(1===h.color?6:0),2,h.x,h.y)})),"@"===n){let l=null,t=!1,e=!1,n=0,i=0,u,c,f=0,B=-1,k,E=null,A=0;h.z=6,h.p=4,h.tl=!0,h.fixed=!1,h.ul=(l=>{t||e&&l||(l?a.G():a.R(),h.x=h._,h.y=h.ll,Y=!0,t=!l,e=l,_("%")[0].al(.75))}),h.start=(()=>{k=_("*")}),h.nl=(()=>{h._=h.x,h.ll=h.y,h.el=!0,0===n&&h.move(p)&&(h.el=!1),u=!1,c=!1}),h.ol=(()=>{h.x!==h._&&(i=n=0);const t=H.some(l=>l.x===h.x&&l.y===h.y&&"<"===l.c);if(t)return Y=!0,j++,_("%")[0].al(.4),!1;if(h.x!==h._||h.y!==h.ll||Y)return!1;const e=H.some(l=>l!==this&&l.tl&&(l.x===h.x&&l.y===h.y+1||l._===h.x&&l.ll===h.y+1&&l._!==l.x));if(n>0)for(let l=1;l<=n+1;l++){const t=H.some(t=>t.x===h.x&&t.y===h.y+l&&t.tl);(t&&l0)&&B>-1){if(B===f)return h.ul(!0),!1;const l=k[B++];E=l.key,l.color=1}i=n;let o=!1;return e||n>0?null!==E&&(h.move(E,!0)?(o=!0,E===s?(n++,a.H()):E===p?(n--,a.H()):(u=0===n,i=n=0),E=null,u&&a.N()):(c=!0,a.S())):0===n&&h.x===h._&&h.y===h.ll&&(o=h.move(p)),o&&(h.el=!1),null!==(l=H.find(l=>l.x===h.x&&l.y===h.y&&"^"===l.c&&l.sl)||null)&&(Y=!0,y.clear(),k.forEach((l,t)=>{l.visible=!0,t{if(null!==l){if(f>0){if(I(r)){f{if(I(l)){const l=k[f++];l.key=t,l.color=2,f.95?q(4,2,2):c?14:u?Math.floor(4*Q)%4:0,x(B,8,v(h._,h.x,Q),v(h.ll,h.y,Q))})}if("="===n){let l=null,t=!0,e=!0;h.z=7,h.p=3,h.tl=!0,h.ol=(()=>{if(t||h.x!==h._||h.y!==h.ll)return t=!1,!1;const n=H.find(l=>l.x===h.x&&l.y===h.y&&"+"===l.c);return void 0!==n&&l!==n.dir&&(l=n.dir,e||a.W()),e=!1,null!==l&&h.move(l,!0)}),h.il=(()=>{const t=v(h._,h.x,Q),e=v(h.ll,h.y,Q);x(0,7,t,e),x(6+l,2,t,e)})}if(/[><]/.test(n)){const e="<"===n;h.z=1,e||ll(l+1,t,0,"@",0),(e||$>1)&&(h.il=(()=>x(q(e?2:0,2,2),4,h.x,h.y)))}if(/[\^"]/.test(n)){const l='"'===n;let t;h.z=2,h.sl=!l,h.start=(()=>{for(t=0;tl.x===h.x&&l.y===h.y-t-1&&/[A-P?]/.test(l.c));t++);}),h.il=(()=>{for(let e=h.y-t;e0&&x(1,5,h.x,h.y-1,0,l),h.sl&&x(2,5,h.x,h.y)})}if(/[!|~-]/.test(n)){const l=E[i],t=A[i],e=/[!|]/.test(n);let o=0,r=0,u=null,s=/[!~]/.test(n);h.z=e?3:4,h.p=e?2:1,h.extend=(l=>{o+=l,r+=l}),h.hl=(()=>{s=!s,u=null}),h.start=h.ol=(()=>{const n=18;o=r=18;for(let n=1;n<18;n++){const i=h.x+l*n,u=h.y+t*n;for(const l of H)l.tl&&(l.x===i&&l.y===u&&18===o&&(o=n),l._===i&&l.ll===u&&18===r&&(s&&!e&&"@"===l.c&&l.ul(!1),r=n));if(18!==o&&18!==r)break}return null===u&&(u=r),s&&e&&u!==r&&(H.filter(l=>/[+!|~-]/.test(l.c)).forEach(l=>l.hl()),a.U()),!1}),h.il=(()=>{if(s){const n=v(r,o,Q),u=e?r!==o?9:q(6,8,2):q(0,8,4);for(let e=1;e1.25&&x(u,6,h.x+l*(n-1),h.y+t*(n-1),i),x(e?r!==o?10:8:q(4,4,2),6,h.x+l*(n-.5),h.y+t*(n-.5),i)}x(e?s?8:9:s?7:6,5,h.x,h.y,i)})}if("+"===n&&(h.z=8,h.dir=i,h.hl=(()=>{h.dir=(h.dir+2)%4}),h.il=(()=>x(12+h.dir,2,h.x,h.y))),"$"===n){let l,t=-1,e=0;h.z=10,h.cl=(()=>{a.X.J(0),a.X.stop(),3===++t&&l.forEach(l=>{l.visible=!0}),6===t&&_("-")[0].extend(7),7===t&&(g.textContent=""),8===t&&a.L()}),h.start=(()=>{(l=H.filter(l=>l.x>6&&l.x<13&&l.y>3&&l.y<12&&"p"!==l.c)).forEach(l=>{l.visible=!1})}),h.nl=(()=>{const l=_("@")[0];l.x===h.x&&l.y===h.y&&(F.textContent="",Y=!0,_(":")[0].visible=!0,W=f[$+1].split(""))}),h.il=(()=>{if(t<2?(x(14,7,6,7),x(15,7,6,8)):(x(2+Math.min(t-2,4),7,6,7),x(12,7,6,8)),t>2&&(x(7+Math.max(0,Math.min(t-5,4)),7,7,7),x(13,7,7,8)),t>-1){const l=Math.min(Math.max(0,40+20*t+20*Math.sin(3*z)));document.body.style.background=12===t?"#000000":t>7?"#ffffff":`rgb(${l}, 0, 0)`,t>7&&t<12&&(e=Math.min(2*T.width,e+V*T.width),S.fillStyle="#ffffff",S.beginPath(),S.arc(T.width/2,T.height/2,e,0,2*Math.PI),S.fill())}12===t&&(R(!1),R(!0))})}if(";"===n&&(g.textContent=f[0],g.style.textAlign="center",h.nl=(()=>{I(o)&&(j++,Y=!0,_("%")[0].al(0),a.V())})),":"===n){let l=null,t=null,e=0,n=0;g.textContent="",g.style.textAlign="left",F.textContent="",Y=!0,h.z=11,h.start=(()=>{l=_("*"),t=_("$")[0]}),h.il=(()=>{if(W.length>0){const i=W[0];l.forEach((t,e)=>{t.visible=e===l.length-1&&"|"===i}),"&"===i?(g.textContent="",W.shift()):"|"===i?I(o)&&(g.textContent="",W.shift()):"~"===i?(e+=V)>.25&&(e-=.25,W.shift()):"%"===i?(n=.3,W.shift(),a.Z()):">"===i?(t.cl(),W.shift()):"^"!==i&&(g.textContent+=W.shift(),y.clear(),/[aeiouy]/i.test(i)&&a.K())}if(0===W.length&&(g.textContent="",Y=!1,h.visible=!1,F.textContent=c[$]),n>0){n-=V;for(let l=1;l{t=-n,l=!1,e=!1}),h.il=(()=>{t+=V;const n=Math.max(0,Math.floor(15*t));if(t>0&&!e&&(e=!0,l?a.P():a.$()),n>6&&!l&&(P=!0),n<8)for(let t=1;t{I(u)&&((i=!i)?a.X.stop():a.X.play(!0)),P&&(P=!1,el());const l=new Date;if(V=Math.min((l-(L||l))/1e3,2),z+=V,L=l,Z-=V,Y)Z=Math.max(Z,0);else for(;Z<=0;){Z+=.3,H.forEach(l=>l.nl());let l=!1;for(X=0;!l;)l=!0,H.forEach(t=>{t.ol()&&(l=!1)}),X++}Q=1-Z/.3,R(!1),K.forEach(l=>l.visible&&l.il()),requestAnimationFrame(tl)},el=()=>{$!==j&&(W=f[$=j].split(""),U.length=0),H.length=0,Z=0,z=0,Y=!1,R(!0),h[$].forEach((l,t)=>{const e=(t,e)=>t<0||e<0||t>=D||e>=m?" ":l[t+e*D];for(let l=0;lt.p-1e-5*t.x-.001*t.y-.1*t.l-(l.p-1e-5*l.x-.001*l.y-.1*l.l)),K=H.slice(0).sort((l,t)=>l.z-1e-5*l.x-.001*l.y-.1*l.l-(t.z-1e-5*t.x-.001*t.y-.1*t.l)),H.forEach(l=>l.start())};tl(),a.X.play(!0)});