for(_=']*1)+F[cos(F[20,C={}f,g++10ins(F[]=[0c.fill1ema,Rect(varabs200	=0),Style=||)/,0.01&&((),!(M%0)yield B+=)){random:r,,m,x,s,cos}=Math,{width:k,height:e}=a;a.addEventListener("mousedown",=>i=S);function*S{ b,d,,h,j,l,m,o,p,q,s,t,u,w,C,B,E,F,n,v,L,M;for(M=w=o=p;;){if(w||(F=[r,r,r,r].p(x=>6*x-3B=	*r,E=g=b=d=u=t,j=m=-(h=l=6f=-w&	>w((x,y)=>[yxx3y)])(h=m(h,bj=x(j,bl=m(l,dm=x(m,dt=t||>(f-b)&&>(g-d)	==w&&!t){w;contue}201==w?(q=(j-hs=(m-lj+=q,h-=q,m+=s,l-=s,o=k/(j-hp=e/(m-l"#222"0,0,k,eE=u:(v=o*(b-hL=p*(d-ln=`${0|v},${0|L}`,3>EC[n]?u:C[n]=(E,1)`hsla(${B%360},0%,65%,)`v,L,1,1),[b,ddbb3d)],3<w20>E||	<u)w4<(b)w)}}i=S; R=requestAnitionFrame;R(go=b=>{R(go);for( d;3>d&&30>perfornce.now-b;d)i.next});';G=/[-]/.exec(_);)with(_.split(G))_=join(shift());eval(_)
          // this has gotten some compression, sorry, but is what i was editing
var{random:r,abs,min,max,sin,cos}=Math,{width:W,height:H}=a;
a.addEventListener("mousedown",e=>I=S());
function*S(){
    var x,y,S,T,X,U,Y,V,dw,dh,dx,dy,F,D,n,N,C,P,A,k,xp,yp,ii;
    for(ii=n=dw=dh=0;;){
        if(!n){
            A=[r(),r(),r(),r()].map(v=>v*6-3)
            C=r()*200;
            P=T=x=y=D=F=0;
            U=V=-(X=Y=1e6);
            S=1e-10;
            N={};
        }
        if(n&(n<200)){
            ((x,y)=>[S,T]=[sin(A[0]*y)+A[2]*cos(A[0]*x),sin(A[1]*x)+A[3]*cos(A[1]*y)])(S,T)
            //[S,T]=[sin(A[0]*T)+A[2]*cos(A[0]*S), sin(A[1]*S)+A[3]*cos(A[1]*T)]
            X=min(X,x);
            U=max(U,x);
            Y=min(Y,y);
            V=max(V,y);
            F=F||(abs(S-x)<0.01&&abs(T-y)<0.01);
        }
        if(n==200&&!F){n=0;continue}
        if(n==201){
            dx=((U-X)||10)/10;
            dy=((V-Y)||10)/10;
            U+=dx;X-=dx;
            V+=dy;Y-=dy;
            dw = W/(U-X);
            dh = H/(V-Y);
            c.fillStyle='#222';
            c.fillRect(0,0,W,H);
            P=D=0;N={};
            if(!(++ii%100))yield C+=0.01;
        } else {
            xp=(dw*(x-X));
            yp=(dh*(y-Y));
            k=`${xp|0},${yp|0}`;
            if(P<1000){
                if(!N[k])N[k]=(++P,1);
                else++D;
            }
            c.fillStyle=`hsla(${C%360},100%,65%,0.01)`;
            c.fillRect(xp,yp,1,1);
            if(!(++ii%100))yield C+=0.01;
        }
        [x,y]=[sin(A[0]*y)+A[2]*cos(A[0]*x),sin(A[1]*x)+A[3]*cos(A[1]*y)];
        if(++n>1000&&(P<20||D>200))n=0;
        if(abs(x)>1e4)n=0;
    }
}
I=S();
var R=requestAnimationFrame;
R(go=T=>{
    R(go);
    for(var i=0;i<1000&&(performance.now()-T)<30;++i){
        I.next();
    }
});