[preset00]
fRating=5.000000
fGammaAdj=1.700001
fDecay=0.995000
fVideoEchoZoom=1.001825
fVideoEchoAlpha=0.000000
nVideoEchoOrientation=0
nWaveMode=0
bAdditiveWaves=1
bWaveDots=0
bWaveThick=1
bModWaveAlphaByVolume=0
bMaximizeWaveColor=0
bTexWrap=0
bDarkenCenter=0
bRedBlueStereo=0
bBrighten=0
bDarken=1
bSolarize=0
bInvert=0
fWaveAlpha=1.007944
fWaveScale=0.010000
fWaveSmoothing=0.900000
fWaveParam=-0.540000
fModWaveAlphaStart=0.710000
fModWaveAlphaEnd=1.300000
fWarpAnimSpeed=1.000000
fWarpScale=1.331000
fZoomExponent=0.620260
fShader=1.000000
zoom=1.001839
rot=0.000000
cx=0.500000
cy=0.500000
dx=0.000000
dy=0.000000
warp=0.010000
sx=1.000000
sy=1.000000
wave_r=1.000000
wave_g=1.000000
wave_b=1.000000
wave_x=0.500000
wave_y=0.500000
ob_size=0.000000
ob_r=0.000000
ob_g=0.000000
ob_b=0.000000
ob_a=1.000000
ib_size=0.000000
ib_r=0.250000
ib_g=0.250000
ib_b=0.250000
ib_a=0.000000
nMotionVectorsX=0.566041
nMotionVectorsY=0.000000
mv_dx=0.000000
mv_dy=0.000000
mv_l=0.943396
mv_r=1.000000
mv_g=1.000000
mv_b=1.000000
mv_a=0.000000
per_frame_1=zoom = 1.003;  warp =0.075; decay = 0.993; vol = 0.3*(bass+mid+treb);
per_frame_2=b1x = if( equal( b1x, 0 ), .05, b1x );
per_frame_3=b1y = if( equal( b1y, 0 ), .5, b1y );
per_frame_4=b1vx = if( equal( b1vx, 0 ), 0.008*(rand(50)/100), b1vx );
per_frame_5=b1vy = if( equal( b1vy, 0 ), 0.008*(-.3+rand(60)/100), b1vy );
per_frame_6=b2x = if( equal( b2x, 0 ), .95, b2x );
per_frame_7=b2y = if( equal( b2y, 0 ), .5, b2y );
per_frame_8=b2vx = if( equal( b2vx, 0 ), 0.008*(-rand(50)/100), b2vx );
per_frame_9=b2vy = if( equal( b2vy, 0 ), 0.008*(-.3+rand(60)/100), b2vy );
per_frame_10=
per_frame_11=// o Resolve forces
per_frame_12=distX = ( b1x -b2x ); distY = ( b1y - b2y ); fAngle = atan2( distY, distX );
per_frame_13=dist = sqrt(sqr(distX)+sqr(distY));
per_frame_14=k = 1/sqr(dist);k=min(.007,k);
per_frame_15=k = if(above(fCrashPhase,0),0,k);
per_frame_16=b1vx=b1vx+k*cos(fAngle-3.14)/FPS;
per_frame_17=b1vy=b1vy+k*sin(fAngle-3.14)/FPS;
per_frame_18=b2vx=b2vx+k*cos(fAngle)/FPS;
per_frame_19=b2vy=b2vy+k*sin(fAngle)/FPS;
per_frame_20=Blue=if( above(sqrt(sqr(b2vx)+sqr(b2vy) ) , sqrt( sqr(b1vx)+sqr(b1vy) )), 1, 0);
per_frame_21=
per_frame_22=// o Apply motion
per_frame_23=iIndex = (frame%4);
per_frame_24=fScale = if( above(iIndex,1), (1+.5*mid)*30/FPS, (1+.5*bass)*30/FPS);
per_frame_25=b1x = b1x + b1vx*fScale;      b1y = b1y + b1vy*fScale;
per_frame_26=b2x = b2x + b2vx*fScale;      b2y = b2y + b2vy*fScale;
per_frame_27=
per_frame_28=// o Collision and "keep-in-screen" check
per_frame_29=q1 = if( above(sqr(b1x-.5) +sqr(b1y-.5), .22), 1, 0);
per_frame_30=q1 = if( above( frame, q7) ,q1, 0 );
per_frame_31=q2 = if( above(sqr(b2x-.5) +sqr(b2y-.5), .22), 1, 0);
per_frame_32=q2 = if( above( frame, q6) ,q2, 0 );
per_frame_33=q3 = 2*(-atan2( b1y-.5,b1x-.5 ) + atan2(b1vy,b1vx)); // gonia anaklasis me efaptomeni
per_frame_34=q4 = 2*(-atan2( b2y-.5,b2x-.5 ) + atan2(b2vy,b2vx)); // gonia anaklasis me efaptomeni
per_frame_35=kavb1vx = b1vx;     kavb1vy = b1vy;
per_frame_36=kavb2vx = b2vx;     kavb2vy = b2vy;
per_frame_37=b1vx = if( equal(q1,1),(cos(q3)*kavb1vx - sin(q3)*kavb1vy),b1vx);
per_frame_38=b1vy = if( equal(q1,1),(sin(q3)*kavb1vx + cos(q3)*kavb1vy),b1vy);
per_frame_39=b2vx = if( equal(q2,1),(cos(q4)*kavb2vx - sin(q4)*kavb2vy),b2vx);
per_frame_40=b2vy = if( equal(q2,1),(sin(q4)*kavb2vx + cos(q4)*kavb2vy),b2vy);
per_frame_41=q7 = if(equal(q1,1),frame + 5,q7 );
per_frame_42=q7 = if( equal( frame,q7 ), 0, q7 );
per_frame_43=q6 = if(equal(q2,1),frame + 5,q6 );
per_frame_44=q6 = if( equal( frame,q6 ), 0, q6 );
per_frame_45=kavb1vy=b1y; kavb1vx=b1x;
per_frame_46=b1x = if( equal( q1,1), .5+.45*cos(atan2( kavb1vy-.5,kavb1vx-.5 )), kavb1vx );
per_frame_47=b1y = if( equal( q1,1), .5+.45*sin(atan2( kavb1vy-.5,kavb1vx-.5 )), kavb1vy );
per_frame_48=kavb2vy=b2y; kavb2vx=b2x;
per_frame_49=b2x = if( equal( q2,1), .5+.45*cos(atan2( kavb2vy-.5,kavb2vx-.5 )), kavb2vx );
per_frame_50=b2y = if( equal( q2,1), .5+.45*sin(atan2( kavb2vy-.5,kavb2vx-.5 )), kavb2vy );
per_frame_51=b1vx = if( above( b1x, 1 ), -b1vx, b1vx );
per_frame_52=b1vx = if( below( b1x, 0 ), -b1vx, b1vx );
per_frame_53=b1vy = if( above( b1y, 1 ), -b1vy, b1vy );
per_frame_54=b1vy = if( below( b1y, 0 ), -b1vy, b1vy );
per_frame_55=b2vx = if( above( b2x, 1 ), -b2vx, b2vx );
per_frame_56=b2vx = if( below( b2x, 0 ), -b2vx, b2vx );
per_frame_57=b2vy = if( above( b2y, 1 ), -b2vy, b2vy );
per_frame_58=b2vy = if( below( b2y, 0 ), -b2vy, b2vy );
per_frame_59=bCrash = if( below(dist, 0.075), 1, 0);bCrash = if( above( frame, NoCheckUntil) ,bCrash, 0 );
per_frame_60=ob_size = bCrash;ob_a=bCrash*.4;
per_frame_61=kavb1vx = b1vx;     kavb1vy = b1vy;
per_frame_62=kavb2vx = b2vx;     kavb2vy = b2vy;
per_frame_63=DotProd1 = cos(fAngle-3.14)*kavb2vx + sin(fAngle-3.14)*kavb2vy;
per_frame_64=DotProd2 = cos(fAngle)*kavb1vx + sin(fAngle)*kavb1vy;
per_frame_65=b1vx=if( equal( bCrash,1), -cos(fAngle-3.14)*DotProd1 + kavb2vx, b1vx );
per_frame_66=b1vy=if( equal( bCrash,1), -cos(fAngle-3.14)*DotProd1 + kavb2vy, b1vy );
per_frame_67=b2vx=if( equal( bCrash,1), -cos(fAngle)*DotProd2 + kavb1vx, b2vx );
per_frame_68=b2vy=if( equal( bCrash,1), -sin(fAngle)*DotProd2 + kavb1vy, b2vy );
per_frame_69=NoCheckUntil = if(equal(bCrash,1),frame + 30,NoCheckUntil );
per_frame_70=NoCheckUntil = if( equal( frame-2,NoCheckUntil+60 ), 0, NoCheckUntil );
per_frame_71=
per_frame_72=// o Determine what to draw
per_frame_73=fCrashPhase = if( above(NoCheckUntil,0),(60 + NoCheckUntil - frame)/90, 0);
per_frame_74=decay = if( above( fCrashPhase,0), .993 + fCrashPhase*0.006,decay);
per_frame_75=wave_x = if( below( iIndex,2), b1x, wave_x);
per_frame_76=wave_y = if( below( iIndex,2), b1y, wave_y);
per_frame_77=wave_x = if( above( iIndex,1), b2x, wave_x);
per_frame_78=wave_y = if( above( iIndex,1), b2y, wave_y);
per_frame_79=wave_r = 1.0; wave_g = 1.0; wave_b = 1.0;
per_frame_80=wave_r = if( equal( iIndex,1 ), 1.0, wave_r );
per_frame_81=wave_g = if( equal( iIndex,1 ), 0.1, wave_g );
per_frame_82=wave_b = if( equal( iIndex,1 ), 0.1, wave_b );
per_frame_83=wave_r = if( equal( iIndex,3 ), 0.1, wave_r );
per_frame_84=wave_g = if( equal( iIndex,3 ), 0.1, wave_g );
per_frame_85=wave_b = if( equal( iIndex,3 ), 1.0, wave_b );
per_frame_86=wave_mystery = if( equal( iIndex%2,1) , -.55-(bass+prevBass)/60 , -.55 );
per_frame_87=warp = if( above(fCrashPhase,.96),warp+5*(totalv/0.03)*(1 - 4*(fCrashPhase-.96)),warp);
per_frame_88=wave_size = if( equal( iIndex%2, 0) ,  1, 0 );
per_frame_89=wave_a = if( equal( iIndex%2, 0 ), .75, 1.0 );
per_frame_90=totalv = if( equal(fCrashPhase,0),sqrt(sqr(b1vx)+sqr(b1vy))+sqrt(sqr(b2vx)+sqr(b2vy)),totalv);
per_frame_91=totalv= if(above(totalv,0.04),0.04,totalv);
per_frame_92=wave_mystery = if( above(fCrashPhase,.93), -7*(fCrashPhase-.93)*.45, wave_mystery);
per_frame_93=wave_r=if( above( fCrashPhase, .9 ), 1, wave_r );
per_frame_94=wave_g=if( above( fCrashPhase, .9 ), 1, wave_g );
per_frame_95=wave_b=if( above( fCrashPhase, .9 ), 1, wave_b );
per_frame_96=ob_r=0;ob_b=0;
per_frame_97=ob_r=if(above(Blue,0),0,1);
per_frame_98=ob_b=if(above(Blue,0),1,0);
per_frame_99=prevBass = if(equal( iIndex%2, 0 ), bass, 0 );
per_pixel_1=q8 = if( above( (sqr(x-.5)+sqr(y-.5)), .25 ),1, 0);
per_pixel_2=dx = dx + q8*.3* (x-.5);
per_pixel_3=dy = dy + q8*.3* (y-.5);
per_pixel_4=zoom = zoom + (.5+abs(.75*cos(time/10)))*q8*exp(rad);
per_pixel_5=warp=warp+q8*4;
