for(_='c.q&&(pi%`qfillStyle=_p_`2?^00Z2ZY/AXX,WYWV60UV2UW1T30RR0QQX+yXP"#OOFFNM%5LE[mKU0JJ,H>`G1GE3/9[i),X+CWPRq);_OZ0";0WUWRX)qshadowMath.cos(i40050l(",_NAfor(Blur= qrotate(-qfc(-9ZW1W9ZX280999i in c)c[0]+[6]]]=c];E=[B=F=I=A=i=0];J>i;i++)Rpm=A,A=10-J*(`4-2)E]=m+(A-m)*(0.5-%R)/2 setIntervafunction(){m=I/5|0;0,0,a.width=a.height=HJqta(Q,Q+*I/)5<i?I/%6:)_"hs"+m%+%,9%)";H-H1Y,J_Color=NF";i=J;i--;)-i*`0,-`H1,I*`0.9qfx("(,-i=+m;i>m;i--){A=i-I/5;y=Q*+i/)+8C=K]+I%5*(K+1]-K])/5-E];3p)HP+9,1Y,) )/-9 9>A?R:0,`2pqba(qm(-R)2pq-fil) 0J,1VUX8p00WRW0XG?1ZJWVX):J0WW20X)G^0:O222 J9ZW4WQX)0==(i+~~B)%Rp1TUX_"red1,3,GQ&&5G9?1:01>(i+F)%p_OZ0 TX*1U2,,<`Y^"red":OZF`3-(`2*+2U)22)if(0<i&&4)M=`9*8;M--;)_L?NA":O9(`12?-2:2)X-L*YU*(M-L)WVYX_O9"}B-=0.3;F+=0.5;I++;I%=3},20)';g=/[^ -FIMS[\]a-or-~]/.exec(_);)with(_.split(g))_=join(shift());eval(_)
// Create track
for(T=[B=F=Z=D=i=0];i<600;i++){
if(i%30<1)m=D,D=1800-(i%4-2)*600;
T[i]=m+(D-m)*(.5-Math.cos(i%30/9)/2)
}
// Timer loop
setInterval(function(){
m=Z/5|0;
// Reset canvas and fill with black
c.fillRect(0,0,a.width=a.height=600,600);
// Dragon flight waving and tilting
c.translate(300,300+Math.cos(Z/99)*99);
c.rotate(i>540?Z/50%6:Math.cos(i/9)/9);
// Sky with some polar light effects
c.fillStyle="hsl("+99+m%99+",50%,9%)";
c.fillRect(-600,-600,1200,600);
// Flickering stars
for(c.fillStyle=c.shadowColor="#FFF",i=600;i--;)c.fillRect(400-i*i%800,-i%600,1,Z*i%.9);
// Moon
c.fillText("(",99,-99);
// Loop through visible distance of the track
for (i=99+m;i>m;i--){
D=i-Z/5;
// Hills
y=Math.cos(Math.cos(i/9+i/50)+8)*300;
// Calculate road and camera direction from track data
O=T[m]+(T[m+1]-T[m])*(Z%5)/5-T[i];
if(i%3<1){
// Draw ground and hills
c.rotate(Math.cos(i)/9); // Do we need to rotate at all?
c.fillRect(-600,300/D+y/D+9,1200,Math.cos(i));
c.rotate(Math.cos(i)/-9);
// Draw white lines
c.shadowBlur=D<9?30:0;
if(i%2){
c.beginPath();
c.moveTo(-30/D+O/D,300/D+y/D);
c.lineTo(30/D+O/D,300/D+y/D)
}
if(i%2<1){
c.lineTo(30/D+O/D,300/D+y/D);
c.lineTo(-30/D+O/D,300/D+y/D);
c.fill()
}
c.shadowBlur=0
}
// Road
c.fillStyle="#000";
c.fillRect(-600/D+O/D,300/D+y/D,1200/D,60/D);
if(i%8<1){ // Draw street or tunnel lights
c.fillRect(-800/D+O/D,300/D+y/D-800/D,30/D,800/D);
c.fillStyle="#FFA";
i%400<80?c.fillRect(-100/D+O/D,300/D+y/D-600/D,200/D,50/D):c.fillRect(-600/D+O/D,300/D+y/D-800/D,80/D,20/D)
}
if(i%400<80){ // Tunnel walls
c.fillStyle=i%2?0:"#222";
c.fillRect(600/D+O/D,300/D+y/D-900/D,1400/D,900/D);
c.fillRect(-2e3/D+O/D,300/D+y/D-900/D,1400/D,900/D);
c.fillRect(-2e3/D+O/D,300/D+y/D-900/D,4e3/D,300/D)
}
// Draw cars
c.fillStyle="#000";
if((i+~~B)%30==0){
c.fillRect(150/D+O/D,300/D+y/D-200/D,260/D,160/D);
c.fillStyle="red";
c.fillRect(180/D+O/D,300/D+y/D-90/D,60/D,30/D);
c.fillRect(340/D+O/D,300/D+y/D-90/D,60/D,30/D);
// Turn signal
c.fillStyle="#FFA";
i%300<99&&i%9<5?c.fillRect(140/D+O/D,300/D+y/D-90/D,60/D,30/D):0
}
if((i+F)%40<1){
c.fillStyle="#000";
c.fillRect(-400/D+O/D,300/D+y/D-200/D,260/D,1/D*160);
c.fillStyle="#FFA";
c.fillRect(-240/D+O/D,300/D+y/D-90/D,60/D,30/D);
c.fillRect(-400/D+O/D,300/D+y/D-90/D,60/D,30/D);
// Police car
if(i%200>99)
c.fillStyle=i%2?"red":"#00F",
c.fillRect(i%3-(i%2*80+260)/D+O/D,300/D+y/D-220/D,60/D,30/D)
}
// City
if(i>500&&i%4<1)for(j=i%9*8;j--;)
c.fillStyle=j%5?"#FFA":"#999",
c.fillRect((i%12?-2e3:2e3)/D-j%5*200/D+O/D,300/D+y/D-(j-j%5)*60/D,200/D,200/D);
c.fillStyle="#999"
}
// Integrate car movement
B-=.3;F+=.5;
// Move forward and loop back to start if track ends
Z++;Z%=3e3
},20)