 
          
        
        for(_='eight~/2@*i?a.h~O,O@0?NinV=VnerUStyleL="K]K#Jth`id`_{p:^=0;fillRect(strokeE3=e.page40BF,a:.),c[](C,b:a.w_eTo"@99,());SJ+m.00	04},^-;i--;)";0,O-,,LKlVeW_=9BT0N;for(i=m.a*tp)%(+8	Owi`(c)wi`(Ma`){UW_;OUH~;b.bgColorK#222";tP=[]P.push({x:1?%,y:random()*O});M=[^101},^34	4}];Y=Xonmousemove=e=>{XX;YY};setInterval(e=>{+t++;SKL"Jf0f";;A=t/3%660A+=.1,BKbegVPa`"TKmov,-3CKlV+2*cos(A2*sV(A)BF"20@8?-(@8@+tO4095BF"*.3?N*.3?)4m=M[i],Bm.pa*t<+8	&&(C(-8	+b(-4	+-5	b(b(SJAA",)0;>i;i++)p=P[i],d=hypot(p.x-X,p.y-Y)/10,hsl("+t+" ,50%,"+d+"%)",p.x+1	*sV((t+?)/(p.y+t)%O-20,9,9);#	0);#AA10)},16)}';G=/[-^-`J-LUVNO?@~]/.exec(_);)with(_.split(G))_=join(shift());eval(_)Zm9yKF89J2VpZ2h0fi8yQCppP2EuaH5PLE9AMD9OaW5WPVZuZXJVU3R5bGVMPSJLXUsjSnRoYGlkYF97cDpePTA7H2ZpbGweHlJlY3QoHXN0cm9rZRxFMxs9ZS5wYWdlGjQwQkYZLGE6LhgpLBdjWxZdKBUXFhQUQxUTLGI6EmEud18RZVRvIhURQBA5OQ8sHCgpDikOOxZTSgwrbS4LMDAJMBg0fSxeLQg7aS0tOykHIjsdMCxPLQ8sESwGHkxLBWxWZVdfPTkEBxZCFRRUFTBOAztmb3IoaT0CbS5hKnQLcCklKBErOAkXTwF3aWAoYyl3aWAoTWFgKXsRVVdfO09VSH47Yi5iZ0NvbG9ySyMyMjIiO3QfUD1bXQIPB1AucHVzaCh7eDoxGz8lESx5OnJhbmRvbSgpKk99KTtNPVteMRsSMBgxfSxeERIIDxIzCDQJEg8YNH1dO1k9WB9vbm1vdXNlbW92ZT1lPT57WBpYO1kaWX07c2V0SW50ZXJ2YWwoZT0+exErH3QrKzsWU0scTCJKZjBmIjsEO0E9dC8zGyU2AjYwB0ErPS4xLBZCS2JlZ1ZQYWAiFRRUS21vdhAsLTMbFENLbFYQKzIbKmNvcyhBFzIbKnNWKEEpDEJGGSICMjADExFAOD8tKBFAOEArdBdPDDQwOTVCRiICBAMqLjM/ExFOKi4zPykOAjQHbT1NW2ldLBZCFRdtLnALYSp0PBErOAkmJigWQxUoLTgJKwELYhMoLTQJKwEtNQkLYhMoAQtiFx4oFFNKGUFBIiwEDikCMDsPPmk7aSsrKXA9UFtpXSxkPWh5cG90KHAueC1YLHAueS1ZKS8xMCwFaHNsKCIrdCsiICw1MCUsIitkKyIlKSIsHXAueCsxCSpzVigodCsPPykvDxcocC55K3QpJU8tMjAsOSw5KTsFIwkwBg8pOwUjGUFBBjEwKX0sMTYpfSc7Rz0vWwEtH14tYEotTFVWTk8/QH5dLy5leGVjKF8pOyl3aXRoKF8uc3BsaXQoRykpXz1qb2luKHNoaWZ0KCkpO2V2YWwoXyk=with(c) {
        with(Math){
            
            a.width = innerWidth
            a.height = innerHeight
            
            b.bgColor="#222"
            t = 0
            P = []
            for(i = 99;i--;) {
                P.push({x : i*1e3 % a.width, y : i*2e3% a.height})
            }
            M = [{p : 1e3,s : 0, P : .1}, {p : a.width,s : 0, P : .4}, {p : -99,s : 30, P : .4}, {p : -400,s : 99, P : .4}] 
            X=0
            Y=0
            onmousemove = function(e) {
                X = e.pageX
                Y = e.pageY
            }
            
            setInterval(function(){
                a.width +=0;t++
                /* grid */
                c[S="strokeStyle"] = '#f0f'
                lineWidth = 9
                A = t / 3e3 % 6
                for(i = 60; i--;) {
                    A += .1
                    c[B="beginPath"]()
                    c[T="moveTo"](a.width/2,-3e3)
                    c[L="lineTo"](a.width/2 + cos(A) * 2e3, sin(A) * 2e3)
                    stroke()
                }
                c[S] = '#BF40BF'
                for(i = 20; i--;) {
                    c[B]()
                    c[T](0,a.height / 20 * i)
                    c[L](a.width/28 * i- (a.width / 28 / 2 + t), a.height)
                    stroke()
                }
                c[S] = '#4095BF'
                lineWidth = 9
                 for(i = 9; i--;) {
                    c[B]()
                    c[T](0,a.height / 20 * i * (i * .3))
                    c[L](a.width, a.height / 20 * i* (i * .3))
                    stroke()
                }
                for(i = 4; i--;) {
                    m = M[i]
                    c[B]()
                    if(m.p + m.P * t < a.width + 800) {
                        c[L]((-800 + m.P * t + m.p) % (a.width+800),a.height+m.s)
                        c[L]((-400 + m.P * t + m.p) % (a.width+800),a.height - 500 +m.s)
                        c[L]((m.P * t + m.p) % (a.width+800),a.height+m.s)
                        fill()
                        c[S] = '#40BFAA'
                        lineWidth = 9
                        stroke()
                    }
                }
                
                for(i = 0; i < 99; i ++ ) {
                    p = P[i]
                    d = hypot(p.x - X, p.y - Y) / 10 
                    fillStyle = 'hsl(' + t + ' ,50%,' + d + '%)'
                    fillRect(p.x + sin((t + i * 99 )/ 99 ) * 100,(p.y + t)%a.height - 20,9,9)
                }
                fillStyle = '#000'
                fillRect(0,a.height-99,a.width,99)
                fillStyle = '#40BFAA'
                fillRect(0,a.height-99,a.width,10)
            }, 16)
        }
            
    }