var d,w,h,points=[[83,23],[39,40],[79,-5],[101,8],[175,40],[177,39],[10,10]],pix=['#','@','!','|','.',' '];function valBetween(v,a,b){return(Math.min(b,Math.max(a,v)))}function update(){setTimeout(function(){window.requestAnimationFrame(update);t=new Uint8Array(w*h);for(i=0;i<7;i++){points[i][1]+=Math.random()*3+1|0;if(points[i][1]>h){points[i][1]=-15}for(u=0;u<450;u++)t[valBetween(points[i][0]+(u%30)+((points[i][1]+(u/30|0))*w),0,w*h)]=255}b=t;l="";p=20;while(p--){for(y=0;y<h;y++){for(x=0;x<w;x++){if(p==1)l+=pix[(6*b[x+(y*w)]/255)|0];q=0;for(i=-1;i<2;i++)for(j=-1;j<2;j++)q+=t[valBetween(x+i,0,w-1)+(valBetween(y+j,0,h-1)*w)];b[x+(y*w)]=~~q/9}if(p==1)l+="\n"}t=b}d.value=l},90)}window.onload=function(){d=document.createElement("textarea");a=d.style;a.width="999px";a.height="627px";document.body.appendChild(d);w=122;h=40;update()}
dmFyIGQsdyxoLHBvaW50cz1bWzgzLDIzXSxbMzksNDBdLFs3OSwtNV0sWzEwMSw4XSxbMTc1LDQwXSxbMTc3LDM5XSxbMTAsMTBdXSxwaXg9WycjJywnQCcsJyEnLCd8JywnLicsJyAnXTtmdW5jdGlvbiB2YWxCZXR3ZWVuKHYsYSxiKXtyZXR1cm4oTWF0aC5taW4oYixNYXRoLm1heChhLHYpKSl9ZnVuY3Rpb24gdXBkYXRlKCl7c2V0VGltZW91dChmdW5jdGlvbigpe3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodXBkYXRlKTt0PW5ldyBVaW50OEFycmF5KHcqaCk7Zm9yKGk9MDtpPDc7aSsrKXtwb2ludHNbaV1bMV0rPU1hdGgucmFuZG9tKCkqMysxfDA7aWYocG9pbnRzW2ldWzFdPmgpe3BvaW50c1tpXVsxXT0tMTV9Zm9yKHU9MDt1PDQ1MDt1KyspdFt2YWxCZXR3ZWVuKHBvaW50c1tpXVswXSsodSUzMCkrKChwb2ludHNbaV1bMV0rKHUvMzB8MCkpKncpLDAsdypoKV09MjU1fWI9dDtsPSIiO3A9MjA7d2hpbGUocC0tKXtmb3IoeT0wO3k8aDt5Kyspe2Zvcih4PTA7eDx3O3grKyl7aWYocD09MSlsKz1waXhbKDYqYlt4Kyh5KncpXS8yNTUpfDBdO3E9MDtmb3IoaT0tMTtpPDI7aSsrKWZvcihqPS0xO2o8MjtqKyspcSs9dFt2YWxCZXR3ZWVuKHgraSwwLHctMSkrKHZhbEJldHdlZW4oeStqLDAsaC0xKSp3KV07Ylt4Kyh5KncpXT1+fnEvOX1pZihwPT0xKWwrPSJcbiJ9dD1ifWQudmFsdWU9bH0sOTApfXdpbmRvdy5vbmxvYWQ9ZnVuY3Rpb24oKXtkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRleHRhcmVhIik7YT1kLnN0eWxlO2Eud2lkdGg9Ijk5OXB4IjthLmhlaWdodD0iNjI3cHgiO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZCk7dz0xMjI7aD00MDt1cGRhdGUoKX0=
var d,w,h,points = [[83,23],[39,40],[79,-5],[101,8],[175,40],[177,39],[10,10]],pix=['#','@','!','|','.',' '];
function valBetween(v, min, max) { return (Math.min(max, Math.max(min, v))); }
function update() {
setTimeout( function() {
window.requestAnimationFrame(update);
t = new Uint8Array(w * h);
for ( i=0; i < 7; i++) {
points[i][1] += Math.random() * 3 +1|0;
if (points[i][1]>h){points[i][1]=-15}
for (u=0; u < 450; u++) t[ valBetween( points[i][0] + (u%30) + ( (points[i][1] + (u/30|0))*w), 0, w*h) ] = 255;
}
b=t;
l="";
p=20;
while( p-- ) {
for ( y=0; y < h; y++) {
for ( x=0; x < w; x++) {
if(p==1) l += pix[(6 * b[x + (y * w)] / 255)|0];
q = 0;
for ( i=-1; i < 2; i++) for ( j=-1; j <2; j++) q += t[ valBetween(x+i, 0, w-1) + (valBetween(y+j, 0, h-1) * w) ];
b[x + (y*w)] = ~~ q/9;
}
if(p==1) l+= "\n";
}
t = b;
}
d.value = l;
}, 90);
}
d = document.createElement("textarea");
a = d.style;
a.width = "999";
a.height = "627";
document.body.appendChild(d);
w = 122;
h = 40;
update();