memoscan
← all memos

Memo 0xe7ca2605…da09b5 on Ethereum

class e{constructor(){this.useA=!1;let e=function(e){let t=parseInt(e.substr(0,8),16),n=parseInt(e.substr(8,8),16),r=parseInt(e.substr(16,8),16),o=parseInt(e.substr(24,8),16);return function(){t|=0,n|=0,r|=0,o|=0;let e=(t+n|0)+o|0;return o=o+1|0,t=n^n>>>9,n=r+(r<<3)|0,r=r<<21|r>>>11,r=r+e|0,(e>>>0)/4294967296}};this.prngA=new e(tokenData.hash.substr(2,32)),this.prngB=new e(tokenData.hash.substr(34,32));for(let e=0;e<1e6;e+=2)this.prngA(),this.prngB()}random_dec(){return this.useA=!this.useA,this.useA?this.prngA():this.prngB()}}function t(e){return l(i()*e)}function n(e,t){return l(i()*(t-e))+e}function r(e,t){return i()*(t-e)+e}function o(e){return e[t(e.length)]}function a(e){return Math.abs(e)}function l(e){return Math.floor(e)}let c=new e,i=function(){return c.random_dec()};var f=1e3;let u=document.createElement("div");u.style.width=window.innerWidth+"px",u.style.height=window.innerHeight+"px";var s=window.devicePixelRatio||1,g=Math.max(window.innerWidth,window.innerHeight);document.body.style.backgroundColor="#000000";var d=g/f;const v=document.createElement("canvas");document.body.appendChild(v),v.width=g,v.height=g,u.style.position="absolute",u.style.overflow="hidden",v.parentElement.appendChild(u),v.style.left="50%",v.style.top="50%",v.style.position="relative",v.style.transform="translate(-50%,-50%)",u.appendChild(v);const x=v.getContext("webgl");x.viewport(0,0,x.drawingBufferWidth,x.drawingBufferHeight);let m,h,b,_,p=!0,E=/\bHeadlessChrome/.test(navigator.userAgent),T=0;var C=0;function R(e){let t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return[parseInt(t[1],16)/255,parseInt(t[2],16)/255,parseInt(t[3],16)/255]}function y(e){return e.map(R)}let A=[];function F(e,t){e.includes(t)||e.push(t)}function D(e,n){for(;e.length>n;){let n=t(e.length);e.splice(n,1)}return e}function M(e){return A.length<100&&F(A,e),e}function U(e){let t=Array.from({length:e-1},(()=>i())),n=t.reduce(((e,t)=>e+t),0),r=t.map((e=>e/n*.99));r.push(1-r.reduce(((e,t)=>e+t),0));let o=0,a=[];for(let t=0;t<e;t++)o+=r[t],o=Number(o.toFixed(3)),a.push(o);return a}const I=["#ffadad","#ffd6a5","#fdffb6","#caffbf","#9bf6ff","#a0c4ff","#bdb2ff","#ffc6ff"],P=["#ade8f4","#90e0ef","#caf0f8","#d8f3dc","#d9ed92","#e9c46a","#f5cb5c","#ffcb91"],B=["#f08080","#cd5c5c","#dc143c","#b22222","#ff1493","#ff4500","#ff7f50","#ff8c00"],w=["#191970","#000080","#00008b","#483d8b","#4b0082","#6a0dad","#7b68ee","#8b008b"];let L=[[["#bf4040","#d55757","#e67272","#f39292","#fbb6b6"],["#260d0d","#471212","#6c1313","#951111","#c20a0a"]],[["#e052a5","#ec6cb7","#f589c8","#fca9d9","#ffccea"],["#570f39","#710e48","#8e0b57","#ac0767","#cc0077"]],[["#bf8a40","#d5a057","#e6b672","#f3cb92","#fbdeb6"],["#261c0d","#473112","#6c4713","#955e11","#c2750a"]],[["#f7b36e","#fac28a","#fdd2a8","#fee2c6","#fff2e6"],["#c2660a","#d77008","#ec7906","#fc8309","#ff8c1a"]],[["#8040bf","#9657d5","#ac72e6","#c292f3","#d9b6fb"],["#1a0d26","#2d1247","#40136c","#531195","#660ac2"]],[["#e0d452","#eae06e","#f2ea8c","#f8f2ac","#fcf9cf"],["#6c6513","#8b8114","#ac9f13","#cebf11","#f2df0d"]],[["#40bf40","#57d557","#72e672","#92f392","#b6fbb6"],["#0d260d","#124712","#136c13","#119511","#0ac20a"]],[["#4095bf","#57abd5","#72bfe6","#92d3f3","#b6e4fb"],["#0d1e26","#123647","#134f6c","#116995","#0a85c2"]],[["#4040bf","#5757d5","#7272e6","#9292f3","#b6b6fb"],["#0d0d26","#121247","#13136c","#111195","#0a0ac2"]]],S=[],V=[],X=6,q=$e(X),N=0;const G=6,O=10,W=2,H=4,Y=-10,$=10;Ye(),A=y(A);let z=i()>.5,k=i()>.5,K=i()>.5,j=i()>.5,J=100,Q=i()*J+J,Z=["c0","c1","c2","c3","c4"],ee=["c0","c1","c2","c3","c4"],te=[],ne=["2","4","6","8","10","12","16"],re="",oe=[];for(let e=0;e<10;e++)oe.push(o(A));A=dt(A);var ae=.01;te=U(A.length);let le,ce=ee.length;for(let e=0;e<A.length;e++)le=te[e],re+=(e>0?"else if ":"if ")+"(idx < loopPoint * float("+le+")) {\n",re+=" gloss = "+o(ne)+".;\n",re+=" cIn = "+e+".;\n",re+=" c = c"+e+";\n",re+="}\n";let ie="";for(let e=0;e<A.length;e++)ie+="vec3 c"+e+" = vec3("+A[e][0]+","+A[e][1]+","+A[e][2]+");\n";var fe=x.createFramebuffer();x.bindFramebuffer(x.FRAMEBUFFER,fe);var ue=x.createBuffer();x.bindBuffer(x.ARRAY_BUFFER,ue);var se=[-1,-1,1,-1,-1,1,-1,1,1,-1,1,1];x.bufferData(x.ARRAY_BUFFER,new Float32Array(se),x.STATIC_DRAW);var ge=x.createBuffer();x.bindBuffer(x.ARRAY_BUFFER,ge);var de=[0,0,1,0,0,1,0,1,1,0,1,1];function ve(e,t,n,r,o){var a=e.createTexture();return e.bindTexture(e.TEXTURE_2D,a),n?e.texImage2D(e.TEXTURE_2D,0,e.RGBA,r,o,0,e.RGBA,e.UNSIGNED_BYTE,null):e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),a}function xe(e,t,n,r,o){e.useProgram(t);var a=e.getAttribLocation(t,"a_position");e.enableVertexAttribArray(a),e.bindBuffer(e.ARRAY_BUFFER,ue),e.vertexAttribPointer(a,2,e.FLOAT,!1,0,0);var l=e.getAttribLocation(t,"a_texCoord");e.enableVertexAttribArray(l),e.bindBuffer(e.ARRAY_BUFFER,ge),e.vertexAttribPointer(l,2,e.FLOAT,!1,0,0);for(let r=0;r<n.length;++r){e.activeTexture(e.TEXTURE0+r),e.bindTexture(e.TEXTURE_2D,n[r]);var c=e.getUniformLocation(t,"u_image"+(r+1));e.uniform1i(c,r)}for(let t=0;t<r.length;++t){let n=r[t],a=o[t];Array.isArray(a)?1===a.length?e.uniform1fv(n,a):2===a.length?e.uniform2fv(n,a):3===a.length?e.uniform3fv(n,a):4===a.length&&e.uniform4fv(n,a):e.uniform1f(n,a)}e.drawArrays(e.TRIANGLES,0,6)}function me(e,t,n){var r=e.createShader(t);if(e.shaderSource(r,n),e.compileShader(r),e.getShaderParameter(r,e.COMPILE_STATUS))return r;e.deleteShader(r)}function he(e,t,n){var r=me(e,e.VERTEX_SHADER,t),o=me(e,e.FRAGMENT_SHADER,n),a=e.createProgram();if(e.attachShader(a,r),e.attachShader(a,o),e.linkProgram(a),e.getProgramParameter(a,e.LINK_STATUS))return a;e.deleteProgram(a)}x.bufferData(x.ARRAY_BUFFER,new Float32Array(de),x.STATIC_DRAW);var be="\n attribute vec2 a_position;\n attribute vec2 a_texCoord;\n varying vec2 v_texCoord;\n\n void main() {\n gl_Position = vec4(a_position, 0.0, 1.0);\n v_texCoord = a_texCoord;\n }\n ",_e=ve(x,S[0].canvas,!1),pe=ve(x,S[1].canvas,!1),Ee=ve(x,S[2].canvas,!1),Te=ve(x,S[3].canvas,!1),Ce=ve(x,S[4].canvas,!1),Re=ve(x,S[5].canvas,!1),ye=ve(x,null,!0,g,g),Ae=ve(x,null,!0,g,g),Fe=ve(x,null,!0,g,g),De=ve(x,null,!0,g,g),Me=`\nprecision highp float;\nuniform float tick;\n\nvoid main()\n{\n ${ie}\n\n float w = float(${g});\n float M = float(${d});\n vec2 st = floor(gl_FragCoord.xy / M);\n st.x += 1000.;\n st.y += 1000.;\n \n float idx = sqrt(st.y * st.x)/(250. * mod(st.x,6. + float(${s}))) + 1.;\n idx += abs(st.y - 500.)/1000.;\n idx *= st.y/10.;\n idx *= mod(st.y,.1) + .1;\n idx /= mod((mod(st.x,1200.) + 1.) * 10000.,10.1) * st.x/100. + 0.0001;\n idx *= (mod(st.x,.1) + .1) * 500.;\n //idx /= 10.5;\n idx += (tick * .04);\n //idx /= .5;\n\n vec3 c;\n float cIn;\n float idxO = 200.;\n\n float loopCap = float(${ce}); // max value before color values cycle back\n float loopPoint = loopCap * 100.;\n idx = mod(abs(idx),loopPoint);\n\n float gloss = 0.;\n ${re}\n gl_FragColor = vec4(c,1.);\n}\n`,Ue=he(x,be,Me);let Ie=x.createTexture();x.bindTexture(x.TEXTURE_2D,Ie),x.texParameteri(x.TEXTURE_2D,x.TEXTURE_MIN_FILTER,x.LINEAR),x.texParameteri(x.TEXTURE_2D,x.TEXTURE_WRAP_S,x.CLAMP_TO_EDGE),x.texParameteri(x.TEXTURE_2D,x.TEXTURE_WRAP_T,x.CLAMP_TO_EDGE);let Pe=new Uint8Array(3*A.length);for(let e=0;e<A.length;e++)Pe[3*e]=255*A[e][0],Pe[3*e+1]=255*A[e][1],Pe[3*e+2]=255*A[e][2];x.texImage2D(x.TEXTURE_2D,0,x.RGB,A.length,1,0,x.RGB,x.UNSIGNED_BYTE,Pe),x.activeTexture(x.TEXTURE0),x.bindTexture(x.TEXTURE_2D,Ie);var Be=x.createFramebuffer();x.bindFramebuffer(x.FRAMEBUFFER,Be),x.framebufferTexture2D(x.FRAMEBUFFER,x.COLOR_ATTACHMENT0,x.TEXTURE_2D,ye,0);var we="\nprecision highp float;\nuniform sampler2D u_image1;\nuniform sampler2D u_image2;\nuniform sampler2D u_image3;\nuniform sampler2D u_image4;\nuniform sampler2D u_image5;\nuniform sampler2D u_image6;\nuniform sampler2D u_image7;\nuniform vec3 t0;\nuniform vec3 t1;\nuniform vec3 t2;\nuniform vec3 t3;\nuniform vec3 t4;\nuniform vec3 t5;\nvarying highp vec2 v_texCoord;\n\nvec3 rgb2hsv(vec3 c)\n{\n vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);\n vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));\n vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));\n\n float d = q.x - min(q.w, q.y);\n float e = 1.0e-10;\n return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);\n}\n\nfloat comp(vec3 c0, vec3 c1) {\n float tr = .075;\n //return all(lessThan(abs(rgb2hsv(c0.rgb) - rgb2hsv(c1)), vec3(tr)));\n float v = abs(rgb2hsv(c0.rgb).x - rgb2hsv(c1.rgb).x);\n if (v < tr) {\n return v;\n }\n return 1000.;\n}\n\nvoid main() {\n \n\n vec3 l0 = texture2D(u_image1, v_texCoord).rgb;\n vec3 l1 = texture2D(u_image2, vec2(v_texCoord.x,1. - v_texCoord.y)).rgb;\n vec3 l2 = texture2D(u_image3, vec2(v_texCoord.x,1. - v_texCoord.y)).rgb;\n vec3 l3 = texture2D(u_image4, vec2(v_texCoord.x,1. - v_texCoord.y)).rgb;\n vec3 l4 = texture2D(u_image5, vec2(v_texCoord.x,1. - v_texCoord.y)).rgb;\n vec3 l5 = texture2D(u_image6, vec2(v_texCoord.x,1. - v_texCoord.y)).rgb;\n\n vec3 art = texture2D(u_image7, vec2(abs(v_texCoord.x),v_texCoord.y)).rgb;\n float cV1 = comp(art,l1);\n float cV2 = comp(art,l2);\n float cV3 = comp(art,l3);\n float cV4 = comp(art,l4);\n float cV5 = comp(art,l5);\n\n float minVal = 1000.;\n vec3 minLn = art;\n float t = .25;\n l0 = mix(l0,t0,t);\n l1 = mix(l1,t1,t);\n l2 = mix(l2,t2,t);\n l3 = mix(l3,t3,t);\n l4 = mix(l4,t4,t);\n l5 = mix(l5,t5,t);\n\n if (cV1 < minVal) { minVal = cV1; minLn = l1; }\n if (cV2 < minVal) { minVal = cV2; minLn = l2; }\n if (cV3 < minVal) { minVal = cV3; minLn = l3; }\n if (cV4 < minVal) { minVal = cV4; minLn = l4; }\n if (cV5 < minVal) { minVal = cV5; minLn = l5; }\n\n gl_FragColor = vec4(minLn,1.);\n //gl_FragColor = vec4(art,1.);\n\n\n}\n",Le=he(x,be,we),Se=x.createFramebuffer();x.bindFramebuffer(x.FRAMEBUFFER,Se),x.framebufferTexture2D(x.FRAMEBUFFER,x.COLOR_ATTACHMENT0,x.TEXTURE_2D,De,0);var Ve=`\nprecision highp float;\nvarying highp vec2 v_texCoord;\nuniform sampler2D u_image1;\n\nvec3 rgb2hsv(vec3 c)\n{\n vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);\n vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));\n vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));\n\n float d = q.x - min(q.w, q.y);\n float e = 1.0e-10;\n return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);\n}\n\nbool comp(vec3 c0, vec3 c1) {\n float tr = .05;\n return abs(rgb2hsv(c0.rgb).x - rgb2hsv(c1).x) < tr;\n}\n\nvec4 getAverageSurrounding(sampler2D u_sampler, vec2 texCoord) {\n // Calculate the size of a single texel\n vec2 oneTexel = vec2(1.0) / vec2(float(${g}),float(${g}));\n vec4 averageColor = vec4(0.0);\n averageColor += texture2D(u_sampler, texCoord + oneTexel * vec2(-1, 1)); // NW\n averageColor += texture2D(u_sampler, texCoord + oneTexel * vec2(0, 1)); // N\n averageColor += texture2D(u_sampler, texCoord + oneTexel * vec2(1, 1)); // NE\n averageColor += texture2D(u_sampler, texCoord + oneTexel * vec2(1, 0)); // E\n averageColor += texture2D(u_sampler, texCoord + oneTexel * vec2(1, -1)); // SE\n averageColor += texture2D(u_sampler, texCoord + oneTexel * vec2(0, -1)); // S\n averageColor += texture2D(u_sampler, texCoord + oneTexel * vec2(-1, -1)); // SW\n averageColor += texture2D(u_sampler, texCoord + oneTexel * vec2(-1, 0)); // W\n\n\n // Divide by the total number of texels to get the average\n averageColor /= 8.0;\n return averageColor;\n}\n\nvoid main() {\n${ie} \n vec2 resultCoords = vec2(v_texCoord.x, v_texCoord.y);\n vec2 resultCoords0 = vec2(v_texCoord.x, v_texCoord.y);\n\n float tp;\n\n float rsx = resultCoords.x;\n\n gl_FragColor = texture2D(u_image1, resultCoords);\n \n float a = abs(.5 - resultCoords.y);\n float b = abs(.5 - resultCoords.x);\n \n vec4 color2 = texture2D(u_image1, vec2(resultCoords.x,resultCoords.y));\n color2 += texture2D(u_image1, vec2(abs(gl_FragColor.r - resultCoords0.x),abs(gl_FragColor.g - resultCoords0.y)));\n gl_FragColor = mix(gl_FragColor,color2,abs(gl_FragColor.r - color2.b));\n gl_FragColor = texture2D(u_image1, resultCoords);\n //gl_FragColor.xyz *= 6.2;\n //gl_FragColor.xyz *= .1;\n if (comp(gl_FragColor.rgb,c3)) {\n vec4 avg = getAverageSurrounding(u_image1, v_texCoord);\n //gl_FragColor += avg/2.;\n}\n gl_FragColor.w = 1.;\n}`,Xe=he(x,be,Ve);let qe="precision highp float;\nvarying highp vec2 v_texCoord;\n\nuniform sampler2D u_image1;\n\n\nvoid main() {\n gl_FragColor = texture2D(u_image1, v_texCoord);\n}";var Ne=he(x,be,qe),Ge=x.createFramebuffer();x.bindFramebuffer(x.FRAMEBUFFER,Ge),x.framebufferTexture2D(x.FRAMEBUFFER,x.COLOR_ATTACHMENT0,x.TEXTURE_2D,Fe,0);let Oe=[x.getUniformLocation(Le,"t0"),x.getUniformLocation(Le,"t1"),x.getUniformLocation(Le,"t2"),x.getUniformLocation(Le,"t3"),x.getUniformLocation(Le,"t4"),x.getUniformLocation(Le,"t5")],We=Array(6).fill([]);function He(){x.clear(x.COLOR_BUFFER_BIT|x.DEPTH_BUFFER_BIT),x.bindFramebuffer(x.FRAMEBUFFER,Be),xe(x,Ue,[Ie],[x.getUniformLocation(Ue,"tick")],[C]);for(let e=0;e<V.length;e++)We[e]=xt(V[e]);x.bindFramebuffer(x.FRAMEBUFFER,Se),xe(x,Le,[_e,pe,Ee,Te,Ce,Re,ye],Oe,We),x.bindFramebuffer(x.FRAMEBUFFER,null),xe(x,Xe,[De],[],[])}function Ye(){for(N=0;N<X;N++){if(_=S[N],0==N){_.fillStyle=L[nt()][tt()][t(5)],_.fillRect(0,0,v.width,v.height);continue}let e=Math.floor(r(4,10));e=Math.floor(r(4,10));for(let t=0;t<e;t++){h=ft(r(100,400),r(100,400),r(100,900),r(100,900),0,r(60,120));let e=st(h,.6,[20,60],[0,359],[60,100]);h=ut(h,e),b=[h],rt(b)}let n=Math.floor(r(8,30));for(let e=0;e<n;e++){let e=ct({x:r(50,950),y:r(1100,1300)},r(-105,-75),r(1,3),20);je(M(L[nt()][tt()][t(5)]),e)}e=Math.floor(r(4,10));for(let t=0;t<e;t++)h=it(r(8,60),r(-4,-2)-5),b=[h],rt(b);if(i()>.8){e=Math.floor(r(8,30));let n=M(L[nt()][0][t(5)]),o={x:r(300,700),y:r(300,700)},a=r(0,359);for(let t=0;t<e;t++){h=it(Math.floor(r(4,9)),r(.1,.7),[10,30],o.x,o.y);let e=st(h,.8,[8,20],[0,359],[5,20]);h=ut(h,e),b=[h],rt(b,n,0),o=lt(o,a,50),a+=r(-45,45)}}}}function $e(e){const n=Array.from({length:9},((e,t)=>t));let r=[];for(let a=0;a<e;a++){let e=[];const l=t(2)+1;if(0!==a&&l>1){const t=r[a-1];e.push(t[t.length-1])}for(;e.length<l;){const t=o(n);e.includes(t)||e.push(t)}r.push(e);let c=document.createElement("canvas");c.style.display="none",document.body.appendChild(c);let i=c.getContext("2d");if(c.width=g,c.height=g,V.push([o(w),o(I),o(P),o(B)]),a>0){let e=Math.pow(2,a-1),t=(g-g*e)/4;i.translate(t,g*(1-e)),i.scale(e,e)}S.push(i)}return r}const ze=(e,t)=>({x:e.x+t.x,y:e.y+t.y}),ke=(e,t)=>({x:e.x*t,y:e.y*t});function Ke(e){return e.right.reverse(),[...e.left,...e.right]}function je(e,t){et(Ke(t))}function Je(e,t,n,r,o,a){_.save(),_.translate(e*d,t*d),_.rotate(o),_.fillStyle=a,Qe(_,-n/2,-r/2,n,r,r/2),_.restore()}function Qe(e,t,n,r,o,a){e.beginPath(),e.moveTo((t+a)*d,n*d),e.arcTo((t+r)*d,n*d,(t+r)*d,(n+o)*d,a*d),e.arcTo((t+r)*d,(n+o)*d,t*d,(n+o)*d,a*d),e.arcTo(t*d,(n+o)*d,t*d,n*d,a*d),e.arcTo(t*d,n*d,(t+r)*d,n*d,a*d),e.closePath(),e.fill()}function Ze(e,t,n,o,a){const l=n-e,c=o-t,f=Math.atan2(c,l)*(180/Math.PI);for(let n=0;n<=1;n+=.05*i())if(i()<.6){const o=e+l*n,i=t+c*n;let u=f+r(Y,$);u*=Math.PI/180,Je(o,i,r(G,O),r(W,H),u,a)}}function et(e){let n=tt();_.fillStyle=M(L[nt()][n][t(5)]),_.beginPath(),_.moveTo(e[0].x*d,e[0].y*d);for(let t=1;t<e.length;t++)_.lineTo(e[t].x*d,e[t].y*d);_.closePath(),_.fill();for(let r=0;r<e.length;r++)if(r+1!=e.length/2&&r+1!=e.length){const o=e[r],a=e[(r+1)%e.length];Ze(o.x,o.y,a.x,a.y,M(L[nt()][1-n][t(5)]))}}function tt(){return i()>.5?0:1}function nt(){if(N<0||N>=q.length)return null;const e=q[N];return e[t(e.length)]}function rt(e,n=null,r=null){e.forEach((e=>{let o=null==r?tt():r,a=null==n?M(L[nt()][o][t(5)]):n;_.fillStyle=a,_.beginPath(),_.moveTo(e[0].x*d,e[0].y*d);for(let t=1;t<e.length;t++)_.lineTo(e[t].x*d,e[t].y*d);_.closePath(),_.fill();for(let t=0;t<e.length;t++){const n=e[t],r=e[(t+1)%e.length];a=M(L[nt()][1-o][Math.floor(2*i())]),Ze(n.x,n.y,r.x,r.y,a)}}))}function ot(e,t,n,r){let o=n*Math.PI/180;return{x:e+r*Math.cos(o),y:t+r*Math.sin(o)}}function at(e,t,n,r){return{left:ot(e,t,n-90,r),right:ot(e,t,n+90,r)}}function lt(e,t,n){let r=ot(0,0,t,n);return{x:e.x+r.x,y:e.y+r.y}}function ct(e,t,n,o){let a,l=e,c=[],f=[],u=t,s=n;for(let e=0;e<o;e++){let e=at(l.x,l.y,u,s);c.push(e.left),f.push(e.right),u+=30*i()-15,s+=r(-1,1),s<2&&(s=2),a=lt(l,u,50*i()+50),l.x=a.x,l.y=a.y}return{left:c,right:f}}function it(e,t=.2,n=[10,30],o=null,a=null){const l=[],c=r(n[0],n[1]),f=null==o?r(100,900):o,u=null==a?r(100,900):a;for(let n=0;n<e;n++){const r=2*Math.PI*n/e;let o=c*(1+i()*t);const a={x:f+Math.cos(r)*o,y:u+Math.sin(r)*o};l.push(a)}return l.sort(((e,t)=>Math.atan2(e.y-u,e.x-f)-Math.atan2(t.y-u,t.x-f))),l}function ft(e,t,n,r,o,a){let l=[],c=0,i=2*Math.PI/a;for(let f=0;f<a;f++){let a=n+e*Math.cos(c)*Math.cos(o)-t*Math.sin(c)*Math.sin(o),f=r+e*Math.cos(c)*Math.sin(o)+t*Math.sin(c)*Math.cos(o);l.push({x:a,y:f}),c+=i}return l}function ut(e,t){return e.map((e=>{let{x:n,y:r}=e;return t.forEach((e=>{let{posX:t,posY:o,direction:a,length:l,radius:c}=e,i=n-t,f=r-o;if(Math.sqrt(i*i+f*f)<=c){let e=a*Math.PI/180,t=l*Math.cos(e),o=l*Math.sin(e);n+=t,r+=o}})),{x:n,y:r}}))}function st(e,n,o,a,l){let c=Math.floor(e.length*n),i=[];for(let n=0;n<c;n++){let n=t(e.length),{x:c,y:f}=e[n],u=r(o[0],o[1]),s=r(a[0],a[1]),g=r(l[0],l[1]);i.push({posX:c,posY:f,direction:s,length:u,radius:g})}return i}function gt(){m=Date.now(),p&&(E?(He(),C++):m-T<100&&(p&&(tCa=(m-T)/16,He()),C+=tCa)),T=m,requestAnimationFrame(gt)}function dt(e){let t,n=e.length;for(;0!=n;)t=l(i()*n),n--,[e[n],e[t]]=[e[t],e[n]];return e}function vt(e,t,n){return"#"+((1<<24)+(Math.round((1-n)*parseInt(e.slice(1,3),16)+n*parseInt(t.slice(1,3),16))<<16)+(Math.round((1-n)*parseInt(e.slice(3,5),16)+n*parseInt(t.slice(3,5),16))<<8)+Math.round((1-n)*parseInt(e.slice(5,7),16)+n*parseInt(t.slice(5,7),16))).toString(16).slice(1)}function xt(e){let t,n=new Date,r=n.getHours(),o=n.getMinutes(),[a,l,c,i]=e;return t=r>=6&&r<7?o<30?vt(a,l,o/30):vt(l,c,(o-30)/30):r>=7&&r<19?c:r>=19&&r<20?o<30?vt(c,i,o/30):vt(i,a,(o-30)/30):a,mt(t)}function mt(e){return[parseInt(e.slice(1,3),16)/255,parseInt(e.slice(3,5),16)/255,parseInt(e.slice(5,7),16)/255]}requestAnimationFrame(gt);