0x20ec68ba…9635sent to0xbd11994a…7699·#20,716,206·view on Etherscan
jb_mass_main2te(c,3));i.deleteAttribute('normal');i.deleteAttribute('uv');i.setIndex(n);i.computeVertexNormals();return i}function makeCone(e,t,a,i,n,r,o,s,l,c){const d=createConeGeometry(t,a,i,n,c,r);const u=new THREE.ConeGeometry(t,a,i,n);d.setAttribute('uv',u.getAttribute('uv'));d.uvsNeedUpdate=true;d.normalsNeedUpdate=true;const p=new THREE.Mesh(d,e);if(s){p.position.set(s[0],s[1],s[2])}if(o){p.scale.set(o[0],o[1],o[2])}if(l){p.rotation.set(THREE.MathUtils.degToRad(l[0]*2),THREE.MathUtils.degToRad(l[1]),THREE.MathUtils.degToRad(l[2]))}if(enableShadows){p.castShadow=true;p.receiveShadow=true}p.userData.material=e;return p}function meanPositionOfPivots(e){let t=e.map(e=>e.position.x);t=t.reduce((e,t)=>e+t,0)/t.length;let a=e.map(e=>e.position.y);a=a.reduce((e,t)=>e+t,0)/a.length;let i=e.map(e=>e.position.z);i=i.reduce((e,t)=>e+t,0)/i.length;return[t,a,i]}function meanRotationOfPivots(e){let t=e.map(e=>e.rotation.x);t=t.reduce((e,t)=>e+t,0)/t.length;let a=e.map(e=>e.rotation.y);a=a.reduce((e,t)=>e+t,0)/a.length;let i=e.map(e=>e.rotation.z);i=i.reduce((e,t)=>e+t,0)/i.length;return[t,a,i]}function createNegativeSpace(a,e=undefined,t=true,i=0,n=0){a.creatingNegativeSpace=true;setTimeout(()=>{a.creatingNegativeSpace=false},3e4);let r=randFromRange(a.negativeSpaceX);let o=randFromRange(a.negativeSpaceY);let s=randFromRange(a.negativeSpaceZ);let l=randFromRange(a.negativeSpaceSizeX);let c=randFromRange(a.negativeSpaceSizeY);let d=randFromRange(a.negativeSpaceSizeZ);if(e==undefined){e=pick(a.negativeSpaceType)}let u=undefined;if(e=="triangle"){u=[new THREE.Plane(new THREE.Vector3(1,.5,0),0),new THREE.Plane(new THREE.Vector3(-1,.5,0),0),new THREE.Plane(new THREE.Vector3(0,-1,0),0),new THREE.Plane(new THREE.Vector3(0,0,-1),0),new THREE.Plane(new THREE.Vector3(0,0,1),0)];u[0].translate(new THREE.Vector3(l+r,0,0));u[1].translate(new THREE.Vector3(-l+r,0,0));u[2].translate(new THREE.Vector3(0,-c+o,0));u[3].translate(new THREE.Vector3(0,0,-d+s));u[4].translate(new THREE.Vector3(0,0,d+s))}else if(e=="triangle_flip"){u=[new THREE.Plane(new THREE.Vector3(1,-.5,0),0),new THREE.Plane(new THREE.Vector3(-1,-.5,0),0),new THREE.Plane(new THREE.Vector3(0,1,0),0),new THREE.Plane(new THREE.Vector3(0,0,-1),0),new THREE.Plane(new THREE.Vector3(0,0,1),0)];u[0].translate(new THREE.Vector3(l+r,0,0));u[1].translate(new THREE.Vector3(-l+r,0,0));u[2].translate(new THREE.Vector3(0,c+o,0));u[3].translate(new THREE.Vector3(0,0,-d+s));u[4].translate(new THREE.Vector3(0,0,d+s))}else if(e=="diamond"){u=[new THREE.Plane(new THREE.Vector3(1,-.5,0),0),new THREE.Plane(new THREE.Vector3(-1,.5,0),0),new THREE.Plane(new THREE.Vector3(.5,-1,0),0),new THREE.Plane(new THREE.Vector3(-.5,1,0),0),new THREE.Plane(new THREE.Vector3(0,0,-1),0),new THREE.Plane(new THREE.Vector3(0,0,1),0)];u[0].translate(new THREE.Vector3(l+r,0,0));u[1].translate(new THREE.Vector3(-l+r,0,0));u[2].translate(new THREE.Vector3(0,-c+o,0));u[3].translate(new THREE.Vector3(0,c+o,0));u[4].translate(new THREE.Vector3(0,0,-d+s));u[5].translate(new THREE.Vector3(0,0,d+s));var p=new THREE.Quaternion;p.setFromAxisAngle(new THREE.Vector3(0,0,1),THREE.MathUtils.degToRad(n));u[0].normal.applyQuaternion(p);u[1].normal.applyQuaternion(p);u[2].normal.applyQuaternion(p);u[3].normal.applyQuaternion(p)}let f=e=="triangle"?3:4;for(let e=0;e<f;e++){u[e].userData={originalConstant:u[e].constant,currentConstrain:t?5:u[e].constant,desiredConstant:u[e].constant};if(t){u[e].constant=5}}a.clipPlanes=u;nShapesLeftOutside=0;if(a.pivots){for(let e of a.pivots){if(nShapesLeftOutside<i&&rand(0,1,.01)>.5){nShapesLeftOutside++;continue}for(let t of e.children){if(t.material){t.material.clippingPlanes=a.clipPlanes;t.material.clipIntersection=true}for(let e of t.children){if(e.material){e.material.clippingPlanes=a.clipPlanes;e.material.clipIntersection=true}}}}}}function removeNegativeSpace(t){t.removingNegativeSpace=true;for(let e=0;e<t.clipPlanes.length;e++){if(t.clipPlanes[e].userData){t.clipPlanes[e].userData.desiredConstant=5}}setTimeout(()=>{if(t.pivots){for(let e of t.pivots){for(let t of e.children){if(t.material){t.material.clippingPlanes=[];t.material.needsUpdate=true}for(let e of t.children){if(e.material){e.material.clippingPlanes=[];e.material.needsUpdate=true}}}}}for(let e=0;e<t.clipPlanes.length;e++){SCENE.scene.remove(t.clipPlanes[e])}t.clipPlanes=undefined;delete t.clipPlanes;t.removingNegativeSpace=false},2e4)}function initOBJLoader(){const F=/^[og]\s*(.+)?/;const _=/^mtllib /;const j=/^usemtl /;const B=/^usemap /;const I=/\s+/;const r=new THREE.Vector3;const o=new THREE.Vector3;const s=new THREE.Vector3;const l=new THREE.Vector3;const c=new THREE.Vector3;const L=new THREE.Color;function Q(){const e={objects:[],object:{},vertices:[],normals:[],colors:[],uvs:[],materials:{},materialLibraries:[],startObject:function(e,t){if(this.object&&this.object.fromDeclaration===false){this.object.name=e;this.object.fromDeclaration=t!==false;return}const a=this.object&&typeof this.object.currentMaterial==='function'?this.object.currentMaterial():undefined;if(this.object&&typeof this.object._finalize==='function'){this.object._finalize(true)}this.object={name:e||'',fromDeclaration:t!==false,geometry:{vertices:[],normals:[],colors:[],uvs:[],hasUVIndices:false},materials:[],smooth:true,startMaterial:function(e,t){const a=this._finalize(false);if(a&&(a.inherited||a.groupCount<=0)){this.materials.splice(a.index,1)}const i={index:this.materials.length,name:e||'',mtllib:Array.isArray(t)&&t.length>0?t[t.length-1]:'',smooth:a!==undefined?a.smooth:this.smooth,groupStart:a!==undefined?a.groupEnd:0,groupEnd:-1,groupCount:-1,inherited:false,clone:function(e){const t={index:typeof e==='number'?e:this.index,name:this.name,mtllib:this.mtllib,smooth:this.smooth,groupStart:0,groupEnd:-1,groupCount:-1,inherited:false};t.clone=this.clone.bind(t);return t}};this.materials.push(i);return i},currentMaterial:function(){if(this.materials.length>0){return this.materials[this.materials.length-1]}return undefined},_finalize:function(e){const t=this.currentMaterial();if(t&&t.groupEnd===-1){t.groupEnd=this.geometry.vertices.length/3;t.groupCount=t.groupEnd-t.groupStart;t.inherited=false}if(e&&this.materials.length>1){for(let e=this.materials.length-1;e>=0;e--){if(this.materials[e].groupCount<=0){this.materials.splice(e,1)}}}if(e&&this.materials.length===0){this.materials.push({name:'',smooth:this.smooth})}return t}};if(a&&a.name&&typeof a.clone==='function'){const i=a.clone(0);i.inherited=true;this.object.materials.push(i)}this.objects.push(this.object)},finalize:function(){if(this.object&&typeof this.object._finalize==='function'){this.object._finalize(true)}},parseVertexIndex:function(e,t){const a=parseInt(e,10);return(a>=0?a-1:a+t/3)*3},parseNormalIndex:function(e,t){const a=parseInt(e,10);return(a>=0?a-1:a+t/3)*3},parseUVIndex:function(e,t){const a=parseInt(e,10);return(a>=0?a-1:a+t/2)*2},addVertex:function(e,t,a){const i=this.vertices;const n=this.object.geometry.vertices;n.push(i[e+0],i[e+1],i[e+2]);n.push(i[t+0],i[t+1],i[t+2]);n.push(i[a+0],i[a+1],i[a+2])},addVertexPoint:function(e){const t=this.vertices;const a=this.object.geometry.vertices;a.push(t[e+0],t[e+1],t[e+2])},addVertexLine:function(e){const t=this.vertices;const a=this.object.geometry.vertices;a.push(t[e+0],t[e+1],t[e+2])},addNormal:function(e,t,a){const i=this.normals;const n=this.object.geometry.normals;n.push(i[e+0],i[e+1],i[e+2]);n.push(i[t+0],i[t+1],i[t+2]);n.push(i[a+0],i[a+1],i[a+2])},addFaceNormal:function(e,t,a){const i=this.vertices;const n=this.object.geometry.normals;r.fromArray(i,e);o.fromArray(i,t);s.fromArray(i,a);c.subVectors(s,o);l.subVectors(r,o);c.cross(l);c.normalize();n.push(c.x,c.y,c.z);n.push(c.x,c.y,c.z);n.push(c.x,c.y,c.z)},addColor:function(e,t,a){const i=this.colors;const n=this.object.geometry.colors;if(i[e]!==undefined)n.push(i[e+0],i[e+1],i[e+2]);if(i[t]!==undefined)n.push(i[t+0],i[t+1],i[t+2]);if(i[a]!==undefined)n.push(i[a+0],i[a+1],i[a+2])},addUV:function(e,t,a){const i=this.uvs;const n=this.object.geometry.uvs;n.push(i[e+0],i[e+1]);n.push(i[t+0],i[t+1]);n.push(i[a+0],i[a+1])},addDefaultUV:function(){const e=this.object.geometry.uvs;e.push(0,0);e.push(0,0);e.push(0,0)},addUVLine:function(e){const t=this.uvs;const a=this.object.geometry.uvs;a.push(t[e+0],t[e+1])},addFace:function(e,t,a,i,n,r,o,s,l){const c=this.vertices.length;let d=this.parseVertexIndex(e,c);let u=this.parseVertexIndex(t,c);let p=this.parseVertexIndex(a,c);this.addVertex(d,u,p);this.addColor(d,u,p);if(o!==undefined&&o!==''){const f=this.normals.length;d=this.parseNormalIndex(o,f);u=this.parseNormalIndex(s,f);p=this.parseNormalIndex(l,f);this.addNormal(d,u,p)}else{this.addFaceNormal(d,u,p)}if(i!==undefined&&i!==''){const m=this.uvs.length;d=this.parseUVIndex(i,m);u=this.parseUVIndex(n,m);p=this.parseUVIndex(r,m);this.addUV(d,u,p);this.object.geometry.hasUVIndices=true}else{this.addDefaultUV()}},addPointGeometry:function(a){this.object.geometry.type='Points';const i=this.vertices.length;for(let e=0,t=a.length;e<t;e++){const n=this.parseVertexIndex(a[e],i);this.addVertexPoint(n);this.addColor(n)}},addLineGeometry:function(a,i){this.object.geometry.type='Line';const n=this.vertices.length;const r=this.uvs.length;for(let e=0,t=a.length;e<t;e++){this.addVertexLine(this.parseVertexIndex(a[e],n))}for(let e=0,t=i.length;e<t;e++){this.addUVLine(this.parseUVIndex(i[e],r))}}};e.startObject('',false);return e}class e extends THREE.Loader{constructor(e){super(e);this.materials=null}load(a,i,e,n){const r=this;const t=new THREE.FileLoader(this.manager);t.setPath(this.path);t.setRequestHeader(this.requestHeader);t.setWithCredentials(this.withCredentials);t.load(a,function(e){try{i(r.parse(e))}catch(t){if(n){n(t)}else{}r.manager.itemError(a)}},e,n)}setMaterials(e){this.materials=e;return this}parse(e){const i=new Q;if(e.indexOf('\r\n')!==-1){e=e.replace(/\r\n/g,'\n')}if(e.indexOf('\\\n')!==-1){e=e.replace(/\\\n/g,'')}const a=e.split('\n');let n=[];for(let e=0,t=a.length;e<t;e++){const o=a[e].trimStart();if(o.length===0)continue;const s=o.charAt(0);if(s==='#')continue;if(s==='v'){const l=o.split(I);switch(l[0]){case'v':i.vertices.push(parseFloat(l[1]),parseFloat(l[2]),parseFloat(l[3]));if(l.length>=7){L.setRGB(parseFloat(l[4]),parseFloat(l[5]),parseFloat(l[6])).convertSRGBToLinear();i.colors.push(L.r,L.g,L.b)}else{i.colors.push(undefined,undefined,undefined)}break;case'vn':i.normals.push(parseFloat(l[1]),parseFloat(l[2]),parseFloat(l[3]));break;case'vt':i.uvs.push(parseFloat(l[1]),parseFloat(l[2]));break}}else if(s==='f'){const c=o.slice(1).trim();const d=c.split(I);const u=[];for(let e=0,t=d.length;e<t;e++){const f=d[e];if(f.length>0){const m=f.split('/');u.push(m)}}const p=u[0];for(let e=1,t=u.length-1;e<t;e++){const h=u[e];const E=u[e+1];i.addFace(p[0],h[0],E[0],p[1],h[1],E[1],p[2],h[2],E[2])}}else if(s==='l'){const g=o.substring(1).trim().split(' ');let a=[];const S=[];if(o.indexOf('/')===-1){a=g}else{for(let e=0,t=g.length;e<t;e++){const T=g[e].split('/');if(T[0]!=='')a.push(T[0]);if(T[1]!=='')S.push(T[1])}}i.addLineGeometry(a,S)}else if(s==='p'){const c=o.slice(1).trim();const x=c.split(' ');i.addPointGeometry(x)}else if((n=F.exec(o))!==null){const v=(' '+n[0].slice(1).trim()).slice(1);i.startObject(v)}else if(j.test(o)){i.object.startMaterial(o.substring(7).trim(),i.materialLibraries)}else if(_.test(o)){i.materialLibraries.push(o.substring(7).trim())}else if(B.test(o)){}else if(s==='s'){n=o.split(' ');if(n.length>1){const R=n[1].trim().toLowerCase();i.object.smooth=R!=='0'&&R!=='off'}else{i.object.smooth=true}const A=i.object.currentMaterial();if(A)A.smooth=i.object.smooth}else{if(o==='\0')continue}}i.finalize();const r=new THREE.Group;r.materialLibraries=[].concat(i.materialLibraries);const t=!(i.objects.length===1&&i.objects[0].geometry.vertices.length===0);if(t===true){for(let t=0,e=i.objects.length;t<e;t++){const D=i.objects[t];const N=D.geometry;const b=D.materials;const C=N.type==='Line';const y=N.type==='Points';let a=false;if(N.vertices.length===0)continue;const w=new THREE.BufferGeometry;w.setAttribute('position',new THREE.Float32BufferAttribute(N.vertices,3));if(N.normals.length>0){w.setAttribute('normal',new THREE.Float32BufferAttribute(N.normals,3))}if(N.colors.length>0){a=true;w.setAttribute('color',new THREE.Float32BufferAttribute(N.colors,3))}if(N.hasUVIndices===true){w.setAttribute('uv',new THREE.Float32BufferAttribute(N.uvs,2))}const P=[];for(let t=0,e=b.length;t<e;t++){const M=b[t];const O=M.name+'_'+M.smooth+'_'+a;let e=i.materials[O];if(this.materials!==null){e=this.materials.create(M.name);if(C&&e&&!(e instanceof THREE.LineBasicMaterial)){const U=new THREE.LineBasicMaterial;THREE.Material.prototype.copy.call(U,e);U.color.copy(e.color);e=U}else if(y&&e&&!(e instanceof THREE.PointsMaterial)){const k=new THREE.PointsMaterial({size:10,sizeAttenuation:false});THREE.Material.prototype.copy.call(k,e);k.color.copy(e.color);k.map=e.map;e=k}}if(e===undefined){if(C){e=new THREE.LineBasicMaterial}else if(y){e=new THREE.PointsMaterial({size:1,sizeAttenuation:false})}else{e=new THREE.MeshPhongMaterial({color:"#000000"})}e.name=M.name;e.flatShading=M.smooth?false:true;e.vertexColors=a;i.materials[O]=e}P.push(e)}let e;if(P.length>1){for(let e=0,t=b.length;e<t;e++){const M=b[e];w.addGroup(M.groupStart,M.groupCount,e)}if(C){e=new THREE.LineSegments(w,P)}else if(y){e=new THREE.Points(w,P)}else{e=new THREE.Mesh(w,P)}}else{if(C){e=new THREE.LineSegments(w,P[0])}else if(y){e=new THREE.Points(w,P[0])}else{e=new THREE.Mesh(w,P[0])}}e.name=D.name;r.add(e)}}else{if(i.vertices.length>0){const A=new THREE.PointsMaterial({size:1,sizeAttenuation:false});const w=new THREE.BufferGeometry;w.setAttribute('position',new THREE.Float32BufferAttribute(i.vertices,3));if(i.colors.length>0&&i.colors[0]!==undefined){w.setAttribute('color',new THREE.Float32BufferAttribute(i.colors,3));A.vertexColors=true}const H=new THREE.Points(w,A);r.add(H)}}return r}}THREE.OBJLoader=e}function initImprovedNoise(){const v=[151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23,190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,88,237,149,56,87,174,20,125,136,171,168,68,175,74,165,71,134,139,48,27,166,77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,89,18,169,200,196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,250,124,123,5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42,223,183,170,213,119,248,152,2,44,154,163,70,221,153,101,155,167,43,172,9,129,22,39,253,19,98,108,110,79,113,224,232,178,185,112,104,218,246,97,228,251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,14,239,107,49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180];for(let e=0;e<256;e++){v[256+e]=v[e]}function A(e){return e*e*e*(e*(e*6-15)+10)}function R(e,t,a){return t+e*(a-t)}function D(e,t,a,i){const n=e&15;const r=n<8?t:a,o=n<4?a:n==12||n==14?t:i;return((n&1)==0?r:-r)+((n&2)==0?o:-o)}class e{noise(e,t,a){const i=Math.floor(e),n=Math.floor(t),r=Math.floor(a);const o=i&255,s=n&255,l=r&255;e-=i;t-=n;a-=r;const c=e-1,d=t-1,u=a-1;const p=A(e),f=A(t),m=A(a);const h=v[o]+s,E=v[h]+l,g=v[h+1]+l,S=v[o+1]+s,T=v[S]+l,x=v[S+1]+l;return R(m,R(f,R(p,D(v[E],e,t,a),D(v[T],c,t,a)),R(p,D(v[g],e,d,a),D(v[x],c,d,a))),R(f,R(p,D(v[E+1],e,t,u),D(v[T+1],c,t,u)),R(p,D(v[g+1],e,d,u),D(v[x+1],c,d,u))))}}THREE.ImprovedNoise=e}function stringToHexadecimal(t){let a='';for(let e=0;e<t.length;e++){const i=t.charCodeAt(e).toString(16);a+=('00'+i).slice(-2)}return a}async function callProvider(e){callPayload={method:"POST",body:JSON.stringify(e)};let a;for(let t=0;t<NODE_URLS.length;t++){for(let e=0;e<2;e++){try{a=await fetch(NODE_URLS[t],callPayload);if(a.ok){let e=await a.json();return e}else{}}catch(i){await new Promise(e=>setTimeout(e,2e3))}}}}function getValueByBlockNumber(t,a){if(a==undefined){return t[0][2]}let i=t[0][2];try{for(let e=0;e<t.length;e++){if(t[e][0]<a&&t[e][1]>=a){i=t[e][2];return i}}return i}catch(e){console.error("Error in getValueByBlockNumber:",e);return i}}async function getLastBlockReceipts(t){let e=await callProvider({method:"eth_blockNumber",params:[],id:2,jsonrpc:"2.0"});let a=await callProvider({method:"eth_getBlockReceipts",params:[e.result],id:2,jsonrpc:"2.0"});SCENE.nBlocks=SCENE.nBlocks==undefined?1:SCENE.nBlocks+1;let i=getValueByBlockNumber(inverseRandomUpdateProbabilities,SCENE.nBlocks);SCENE.invertedRandomUpdate=rand(0,1,.001)>1-i;for(let e of a.result){if(t=="ANYWALLET"){const n=JSON.stringify(e,null,2);return n}if(t.indexOf(e.from)>-1||t.indexOf(e.to)>-1){const n=JSON.stringify(e,null,2);SCENE.invertedRandomUpdate=false;return n}}}async function receiptsWrapper(){try{await getLastBlockReceipts()}catch(e){}}async function getContractData(){for(let t=0;t<NODE_URLS.length;t++){for(let e=0;e<2;e++){try{var a=await fetch(NODE_URLS[t],{method:"POST",body:JSON.stringify({method:"eth_call",params:[{to:contractAddress,data:jsonRpcCallDataContract},"latest"],id:2,jsonrpc:"2.0"})});if(a.ok){let e=await a.json();let t=hexToArray(e.result);try{t=splitArray(t,[1,200,1,200,1,400,400,1,300])}catch(i){t=splitArray(t,[1,200,1,200,1,400,400,1])}return t}else{}}catch(i){await new Promise(e=>setTimeout(e,2e3))}}}}function hexToUnicode(e){let t=e.match(/.{1,2}/g)||[];let a=t.map(e=>String.fromCharCode(parseInt(e,16)));let i=a.join('');return i.replace(/\u0000/g,'')}function hexToArray(e){const t=e.slice(2);const a=[];for(let e=0;e<t.length;e+=64){if(e>=77200){const i=hexToUnicode(t.slice(e,e+128),16);if(i.length>=37&&i[0]==0){a.push(i)}}else{const n=parseInt(t.slice(e,e+64),16);a.push(n)}}return a}function splitArray(t,a){const i=[];let n=0;for(let e=0;e<a.length;e++){const r=a[e];const o=t.slice(n,n+r);i.push(o);n+=r}if(n<t.length){const e=t.slice(n);i.push(e)}return i}function getCurrentTs(){return(new Date).getTime()/1e3}function generateUUID(){return'xyxxyxxxyxxyxx'.replace(/[xy]/g,function(e){var t=Math.random()*16|0,a=e=='x'?t:t&3|8;return a.toString(16)})}