(()=>{var rl=Object.defineProperty;var ol=(t,e,o)=>e in t?rl(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o;var ae=(t,e,o)=>ol(t,typeof e!="symbol"?e+"":e,o);function Zn(t){let e=1779033703,o=3144134277,i=1013904242,u=2773480762;for(let l=0;l<t.length;l+=1){let m=t.charCodeAt(l);e=o^Math.imul(e^m,597399067),o=i^Math.imul(o^m,2869860233),i=u^Math.imul(i^m,951274213),u=e^Math.imul(u^m,2716044179)}return e=Math.imul(i^e>>>18,597399067),o=Math.imul(u^o>>>22,2869860233),i=Math.imul(e^i>>>17,951274213),u=Math.imul(o^u>>>19,2716044179),[(e^o^i^u)>>>0,(o^e)>>>0,(i^e)>>>0,(u^e)>>>0]}function zt(t){let[e,o,i,u]=Zn(t);return()=>{let l=e+o+u>>>0;return u=u+1>>>0,e=o^o>>>9,o=i+(i<<3)>>>0,i=(i<<21|i>>>11)+l>>>0,l/4294967296}}var ti=421614,Po=Object.freeze(["Common","Uncommon","Rare","Relic","Mythic","Apotheosis"]);function Nr(t){return t<.0025?5:t<.015?4:t<.05?3:t<.15?2:t<.35?1:0}function To(t,e){return Nr(zt(`${String(t).slice(34)}:${String(e)}`)())}function Qn(t,e,o=!1){let i=String(t).replace(/^0x/,"").toLowerCase().padStart(64,"0").slice(-64),u=23e6+Number(BigInt(`0x${i.slice(0,12)}`)%10000000n),l=new URLSearchParams({token:String(Math.max(1,Math.min(1e4,Math.trunc(e)))),chain:String(ti),block:String(u),minter:`0x${i.slice(0,40)}`,hash:`0x${i}`});return o&&l.set("analysis","1"),`?${l}`}var Fr="phenotype-v18-holometa",se=31,Do=Object.freeze([31,31,31,31,31,31]),ln=0,En=1e4,Ir=Object.freeze(["caterpillar","pupa","butterfly"]),Jn=Object.freeze(["Resonance","Whisper","Halo"]),ri=Object.freeze(["Quiescent","Deliberate","Vital","Restless","Nervous"]),ni=Object.freeze([{timeScale:.48,lifeRate:.22,lifeDepth:.28},{timeScale:.82,lifeRate:.68,lifeDepth:.72},{timeScale:.94,lifeRate:.86,lifeDepth:1.02},{timeScale:1.12,lifeRate:1.26,lifeDepth:1.12},{timeScale:1.2,lifeRate:1.52,lifeDepth:1.28}]),al=Object.freeze([[0,1,3,6,2,1,0],[0,1,1,2,2,1,0],[0,1,3,7,7,3,0]]),il=Object.freeze([[1,1,1],[.58,.5,.42],[1.38,1.32,1.24]]);function oi(t){return Do[Math.max(0,Math.min(Do.length-1,t|0))]}function sl(t,e){let o=new URLSearchParams(t.search===void 0?e.location.search:t.search),i=Number.parseInt(o.get("token")||"1",10),u=Math.max(ln,Math.min(En,Number.isFinite(i)?i:1)),l=Number.parseInt(o.get("chain")||"1",10),m=o.get("seed")||"",w=m?`${l}:${m}:${u}`:`${l}:${u}`,a=(h,C)=>{let b=zt(`ethereum:${w}:${h}`),H="";for(;H.length<C*2;)H+=Math.floor(b()*4294967296).toString(16).padStart(8,"0");return H.slice(0,C*2)},s=o.get("minter")||`0x${a("minter",20)}`,c=o.get("hash")||`0x${a("block",32)}`;return u===ln&&o.get("audit")!=="1"?0:To(c,s)}function er(t={}){let e=t.canvas;if(!e)throw new TypeError("mountArtEngine requires a canvas");let o=e.ownerDocument,i=o.defaultView,u=e.getContext("2d");if(!u)throw new Error("The art engine requires a 2D canvas context");let l=o.createElement("canvas"),m=l.getContext("2d"),w=t.rootElement||o.documentElement,a=t.surfaceElement||o.body,s=t.navigate||(n=>{i.location.search=n.toString()}),c=sl(t,i),d=oi(c),h=(d-1)/(se-1),C=(se-1)/2,{abs:b,ceil:H,cos:x,exp:Z,floor:T,hypot:K,max:M,min:z,pow:ee,round:k,sin:ne,PI:Q}=Math,g=T(d/2),q=d*d,ye=n=>Array(q).fill(n),Ae=n=>n.slice(),Te=Array.from,B=Te({length:q},(n,r)=>r%d),Y=Te({length:q},(n,r)=>T(r/d)),Ve=Te({length:q},(n,r)=>M(b(B[r]-g),b(Y[r]-g))),Me=Te({length:q},(n,r)=>K(B[r]-g,Y[r]-g)),De=K(g,g),we=M(1,k(h)),Fe=4,be=0,Pe=1;function Se(){let n=e.getBoundingClientRect(),r=Number.isFinite(t.maxPixelRatio)?M(.5,t.maxPixelRatio):2;Pe=z(i.devicePixelRatio||1,r),be=n.width,e.width=k(be*Pe),e.height=k(be*Pe),u.setTransform(Pe,0,0,Pe,0,0),l.width=e.width,l.height=e.height,m.setTransform(Pe,0,0,Pe,0,0),_s()}let $=(n,r=0,p=1)=>z(p,M(r,n)),We=n=>n*n*(3-2*n),Je=n=>n*n*n*(n*(n*6-15)+10),le=(n,r)=>r*d+n,ce=new URLSearchParams(t.search===void 0?i.location.search:t.search),_e=ce.get("embed")==="1",bt=ce.get("audit")==="1",Dt=ce.get("analysis")==="1",st=!0,Ze=ce.get("transition")==="validated"?"validated":"morphogenesis";w.classList.toggle("embed",_e);let Nt=parseInt(ce.get("token")||"1",10),nt=$(Number.isFinite(Nt)?Nt:1,ln,En),Bn=Ir,ea=(ce.get("stage")||"").toLowerCase(),Ge=Bn.indexOf(Bn[parseInt(ea,10)-1]||ea),ta=parseFloat(ce.get("progress")||""),Ut=Number.isFinite(ta)?$(ta):-1,eo=parseInt(ce.get("chain")||"1",10),to=ce.get("seed")||"",Hi=to?`${eo}:${to}:${nt}`:`${eo}:${nt}`,na=(n,r)=>{let p=zt(`ethereum:${Hi}:${n}`),y="";for(;y.length<r*2;)y+=T(p()*4294967296).toString(16).padStart(8,"0");return y.slice(0,r*2)},mt={chainId:eo,tokenId:nt,blockNumber:parseInt(ce.get("block")||`${23e6+nt*17}`,10),minter:ce.get("minter")||`0x${na("minter",20)}`,blockHash:ce.get("hash")||`0x${na("block",32)}`},ra=[mt.chainId,mt.tokenId,mt.blockNumber,mt.minter,mt.blockHash].join(":"),gt=nt===ln&&!bt,Ht=n=>zt(`${ra}|${n}`),Wt=Ht("experimental-temperament")()<.012?0:1+T(Ht("experimental-temperament-family")()*(ni.length-1)),Wi=ri[Wt],mn=ni[Wt],_i=Ht("color"),yt=Ht("caterpillar"),rt=Ht("pupa"),$e=Ht("butterfly"),Mt=Ht("motion"),Gi=Ht("rarity"),xt=Zn(`${ra}|texture`),_t=zt(`${mt.blockHash.slice(0,34)}:${mt.blockNumber}`),Et=zt(`${mt.blockHash.slice(34)}:${mt.minter}`),$i=["Segmented","Crowned","Ribbed","Orbital","Veined","Hollow"],xc=["Axial","Lantern","Hourglass","Braided","Spindle","Mantled","Orbital","Totemic"],zi=["Dead edge","Toroidal","Reflective"],Yi=["Radial","Diamond","Elliptic","Cross","Spiral","Bilateral","Axial","Cellular"],Xi=["Gentle","Branching","Elastic","Lockstep","Tendril","Cascade","Orbit","Flicker"],Vi=["Bloom","Tidal","Spiral","Burst","Pinwheel","Shear","Orbit","Scatter"],qi=["Breath","Ripple","Alternating","Quiet","Heartbeat","Shimmer","Traveling","Flicker"],ji=["Flow","Viscous","Accelerando","Decelerando","Tidal","Heartbeat","Suspended","Turbulent"],dr=[[[0,0,0,0],[2,0,0,1],[0,1,1,0],[1,0,0,5]],[[2,2,1,1],[0,2,0,0],[5,5,1,6],[1,2,5,1]],[[0,1,3,4],[1,4,0,4],[6,5,5,6],[2,1,3,0]],[[2,0,0,0],[5,4,5,5],[0,2,1,1],[1,0,6,0]],[[2,5,1,1],[5,5,1,6],[0,2,5,1],[1,5,0,0]],[[1,3,0,4],[0,1,3,4],[3,3,4,2],[2,2,0,4]],[[5,4,5,5],[6,5,6,6],[2,0,1,3],[0,4,2,5]],[[4,6,4,6],[7,4,7,5],[3,3,4,2],[4,7,2,7]]],Ki=["Electric","Carbon","Cerise","Aegean","Ultraviolet","Viridian","Ember","Graphite"],Zi=["Beaded","Sawtooth","Fusiform","Undulant","Alternating","Crowned","Tapered","Armored","Diamond","Ribbed"],Qi=["Solid","Hollow core","Shell","Checkered","Segmented","Notched","Mottled","Striated"],Ji=["None","Spines","Articulated legs","Cilia","Crest"],es=["Oval","Diamond","Shouldered","Waisted","Ribbed","Mantled","Winged","Bilobed","Slender","Pendant"],ts=["Mottled","Ribbed","Banded","Checkered","Windowed","Lattice","Slitted","Sparse"],ns=["Belts","Full belts","Alternating belts","Crest belt","Crest","Forked tail","Side nodes","Diadem"],rs=["Classic","Swallowtail","Highwing","Longtail","Crescent","Ringed","Scalloped","Splitwing","Compact","Imperial"],os=["Mottled","Orbital","Double ring","Banded","Checkered","Lattice","Eyespot","Upper field","Lower field","Sparse"],as=Po,gn=["Crowned","Armored","Expanded","Tailed"],oa=["Dragonfly","Imperial","Split-wing","Totem"],aa=["Seraph","Atlas","Wraith","Needlewing"],ia=Et(),Ye=gt?6:Nr(ia);if(!gt&&Ye!==c)throw new Error("Rarity preview diverged from the generation stream");let Un=T(Gi()*gn.length),Hn=xt[1]%oa.length,fr=(xt[2]+nt*2)%aa.length,re={lineage:T(_t()*$i.length),crown:T(_t()*4),architecture:T(_t()*8),rhythm:T(_t()*6),openness:_t(),elongation:_t(),lateral:_t(),branching:_t(),ornament:_t()},no=T(Et()*dr.length),sa=T(Et()*dr[no].length),hr=dr[no][sa],la=[["#0021e8",[255,255,255],[255,244,222],[211,229,255]],["#111318",[242,244,248],[255,170,145],[128,220,255]],["#9d174d",[255,247,237],[253,224,71],[165,205,255]],["#075985",[240,253,250],[251,191,36],[216,180,254]],["#43146f",[250,250,255],[255,155,118],[114,226,255]],["#07513f",[239,255,246],[255,205,112],[148,220,255]],["#c2410c",[255,247,237],[254,240,138],[186,220,255]],["#18181b",[244,244,245],[244,114,182],[103,232,249]]],f={family:T(_i()*la.length),rarityTier:Ye,lineage:re.lineage,caterpillarStyle:(T(yt()*10)+re.architecture)%10,caterpillarPattern:(T(yt()*8)+re.rhythm)%8,appendageStyle:T(yt()*5),caterpillarLength:10+T((yt()*.58+re.elongation*.42)*17),caterpillarRadius:1+T((yt()*.68+re.lateral*.32)*5),segmentCount:2+z(7,re.rhythm+T(yt()*4)),segmentDepth:.45+yt()*1.75,bodyPhase:yt()*Q*2,taperPower:.8+yt()*3.8,hollowSegments:yt()*.55+re.openness*.45>.42,legReach:1,headSize:1+T(yt()*2),spineLength:T(yt()*2)+(Ye>=3?1:0),segmentGap:.12+yt()*.3,pupaStyle:(T(rt()*10)+re.architecture+re.crown)%10,pupaPattern:(T(rt()*8)+re.rhythm)%8,pupaAccent:T(rt()*8),pupaBelts:1+T(rt()*5),pupaHeight:10+T((rt()*.58+re.elongation*.42)*17),pupaWidth:2+T((rt()*.62+re.lateral*.38)*7),pupaPower:.8+rt()*3.8,pupaRoundness:.45+rt()*2.25,shoulderSpan:2+T((rt()*.58+re.branching*.42)*10),shoulderStrength:.25+rt()*1.75,shoulderY:-.72+rt()*.52,shoulderSpread:.08+rt()*.3,shoulderSlope:-.15+rt()*1.15,pupaHoles:.06+(rt()*.52+re.openness*.48)*.38,pupaRibs:2+z(6,re.rhythm+T(rt()*3)),pupaWaist:rt()*1.35,hornLength:T(rt()*4)+(re.crown>2?1:0),wingStyle:(T($e()*10)+re.architecture)%10,wingPattern:(T($e()*10)+re.rhythm)%10,wingSpan:7+T(($e()*.58+re.lateral*.42)*8),upperWingX:.38+$e()*.2,upperWingWidth:.44+$e()*.2,upperWingY:C-7+$e()*2.5,upperWingHeight:3.5+$e()*3,upperExponent:1.4+$e()*3.4,lowerWingX:.32+$e()*.23,lowerWingWidth:.4+$e()*.22,lowerWingY:C+2+$e()*3,lowerWingHeight:3+$e()*2.8,lowerExponent:1.35+$e()*3.35,wingHoles:.16+($e()*.54+re.openness*.46)*.42,wingNotch:$e()*.58,veinSlope:-.42+$e()*.84,wingLobes:1+z(5,T($e()*3+re.branching*3)),lobeDepth:$e()*.25,wingBands:1+z(4,T($e()*2+re.rhythm*.62)),bodyLength:12+T(($e()*.58+re.elongation*.42)*13),bodyWidth:$e()<.18?1:0,tailLength:1+T(($e()*.6+re.ornament*.4)*6)+(Ye>=3?1:0),antennaLength:1+T(($e()*.58+re.branching*.42)*8)+(re.crown>2?1:0),mutation:$e()<.18?1+T($e()*4):0,lifeA:8+T(Mt()*10),lifeB:8+T(Mt()*10),exitGenerations:23+T(Mt()*10),pulseRate:1.45+Mt()*2.25,stagger:.06+Mt()*.16,trail:.08+Mt()*.15,outgoingWidth:.62+Mt()*.62,incomingWidth:.72+Mt()*.62,cornerSize:1.5+Mt()*2.5,hold:1e3+T(Mt()*700),transition:3500+T(Mt()*1250),generationCount:40+T(Et()*7),pulseDepth:.025+Et()*.025,kineticFamily:no,kineticVariant:sa,kineticDirection:Et()<.5?-1:1,kineticPhase:Et()*Q*2,flutter:.025+Et()*.045,boundaryMode:T(Et()*zi.length),waveMode:hr[0],captureMode:hr[1],departureMode:hr[2],pulseMode:hr[3],cellPhase:Et()*Q*2,cellVariance:.35+Et()*.65,noise:xt[0]^xt[1]},pr=n=>{f.appendageStyle=[4,1,f.appendageStyle,2][n],f.pupaAccent=[4,6,f.pupaAccent,5][n],f.spineLength+=n===1,f.hornLength+=n===0,f.antennaLength+=n===0||n===3,f.wingLobes+=n===1,f.caterpillarRadius=z(5,f.caterpillarRadius+(n===2)),f.pupaWidth=z(8,f.pupaWidth+(n===2)),f.wingSpan=z(C-1,f.wingSpan+(n===2)),f.tailLength+=n===3},yn="Canonical";if(!gt&&Ye){if(pr(Un),yn=gn[Un],Ye>=2){let n=(Un+1)%gn.length;pr(n),f.mutation=M(1,f.mutation),yn+=` + ${gn[n]}`}Ye>=4&&pr((Un+2)%gn.length),Ye>=5&&pr((Un+3)%gn.length),Ye===3?(yn=oa[Hn],Hn===1?(f.wingStyle=9,f.wingPattern=6,f.wingSpan=C-1,f.upperWingHeight*=1.22,f.lowerWingHeight*=1.2):Hn===2?(f.wingStyle=7,f.wingPattern=5,f.wingSpan=12,f.pupaStyle=6,f.appendageStyle=4,f.antennaLength+=2):Hn===3&&(f.wingStyle=8,f.wingSpan=8,f.bodyLength=26,f.tailLength+=5,f.pupaStyle=9,f.caterpillarStyle=5)):Ye===4?(yn=aa[fr],fr===0?(f.wingStyle=7,f.wingPattern=2,f.wingSpan=C-1,f.wingLobes=6,f.pupaStyle=6,f.appendageStyle=4,f.antennaLength+=4):fr===1?(f.wingStyle=9,f.wingSpan=C-1,f.upperWingHeight*=1.55,f.lowerWingHeight*=1.5,f.bodyWidth=1,f.pupaStyle=5,f.caterpillarStyle=7):fr===2?(f.wingStyle=5,f.wingPattern=9,f.wingHoles=.72,f.pupaPattern=4,f.caterpillarPattern=1):(f.wingStyle=8,f.wingSpan=10,f.bodyLength=26,f.tailLength+=8,f.pupaStyle=9,f.caterpillarStyle=2)):Ye===5&&(yn="Prime Metamorph",Object.assign(f,{caterpillarLength:M(22,f.caterpillarLength),pupaHeight:M(22,f.pupaHeight),pupaWidth:M(6,f.pupaWidth),wingSpan:M(12,f.wingSpan),wingLobes:M(5,f.wingLobes),bodyLength:M(20,f.bodyLength),generationCount:46,flutter:M(.07,f.flutter)}),f.upperWingHeight*=1.18+xt[0]%4*.08,f.lowerWingHeight*=1.18+xt[1]%4*.08,f.antennaLength+=3+xt[2]%6,f.tailLength+=3+xt[3]%6)}if(!gt&&h>1){let n=r=>M(1,k(r*h));f.caterpillarLength=n(f.caterpillarLength),f.pupaHeight=n(f.pupaHeight),f.shoulderSpan=n(f.shoulderSpan),f.wingSpan=z(g-we,n(f.wingSpan)),f.upperWingY=g+(f.upperWingY-C)*h,f.upperWingHeight*=h,f.lowerWingY=g+(f.lowerWingY-C)*h,f.lowerWingHeight*=h,f.bodyLength=n(f.bodyLength),f.tailLength=n(f.tailLength),f.antennaLength=n(f.antennaLength),f.cornerSize*=h,f.segmentCount+=Ye*2,f.pupaRibs+=Ye*2,f.pupaBelts+=T(Ye/2),f.wingLobes+=Ye,f.wingBands+=T((Ye+1)/2),f.lifeA+=Ye*4,f.lifeB+=Ye*4,f.exitGenerations+=Ye*7,f.generationCount+=Ye*8}gt&&Object.assign(f,{family:0,lifeA:12,lifeB:12,exitGenerations:32,generationCount:42,pulseRate:2.4,pulseDepth:.035,stagger:.14,trail:.15,outgoingWidth:.95,incomingWidth:1.08,cornerSize:3,hold:1600,transition:4200,kineticFamily:0,kineticVariant:0,kineticDirection:1,kineticPhase:0,flutter:.08,boundaryMode:0,waveMode:0,captureMode:0,departureMode:0,pulseMode:0,cellPhase:0,cellVariance:0,noise:0});let lt=[f.kineticVariant,(f.kineticVariant+1+xt[0]%3)%4,(f.kineticVariant+2+xt[1]%3)%4].map((n,r)=>{let p=r?dr[f.kineticFamily][n]:[f.waveMode,f.captureMode,f.departureMode,f.pulseMode];return{variant:n,waveMode:p[0],captureMode:p[1],departureMode:p[2],pulseMode:p[3]}}),is=!gt&&Ye===3&&Hn===0,Gt=la[f.family];a.style.background=Gt[0],t.updateTitle!==!1&&(o.title=`Metamorphosis #${nt}`),e.setAttribute("aria-label",`Generative metamorphosis token ${nt}`);let ke=(n,r,p)=>{let y=ne((n+17.31)*127.1+r*311.7+p*91.9+f.noise*.731)*43758.5453;return y-T(y)},mr=parseInt(ce.get("echo")||"",10),ro=Ht("completion-pulse")(),ss=ro<.012?0:ro<.02?1:ro<.024?2:-1,Rt=Number.isFinite(mr)&&mr>=0&&mr<Jn.length?mr:ss,oo=Rt<0?"None":Jn[Rt],ca=(n,r)=>Te({length:q},(p,y)=>{if(gt)return y*.11;let A=B[y]-g,R=Y[y]-g,S=0;return n===1?S=Me[y]*.58:n===2?S=(B[y]+Y[y])%2*Q:n===4?S=Me[y]*.12:n===5?S=ke(y,239+r,107)*Q*2:n===6?S=(A*.48+R*.22)*f.kineticDirection:n===7&&(S=ke(y,241+r,109)*Q*2+Me[y]*.32),f.cellPhase+ke(y,211+r,71)*Q*2*f.cellVariance+S}),ua=lt.map((n,r)=>ca(n.pulseMode,r).map(ne)),da=lt.map((n,r)=>ca(n.pulseMode,r).map(x)),fa=Te({length:q},(n,r)=>gt?1:.93+ke(r,223,73)*.14),ha=Te({length:q},(n,r)=>{let p=le(d-1-B[r],Y[r]),y=z(r,p),A=ke(y,251,83)*Q*2;return st?Wt===0?A*.24:Wt===1?A*.58:Wt===2?f.kineticPhase+Me[r]*.46:Wt===4?A+(B[r]+Y[r])%2*Q*.62:A+Me[r]*.16:A}),ls=Te({length:q},(n,r)=>{let p=le(d-1-B[r],Y[r]),y=.65+ke(z(r,p),257,89)*.9;return st?y*mn.lifeRate:y}),cs=Te({length:q},(n,r)=>{let p=le(d-1-B[r],Y[r]),y=.035+ke(z(r,p),263,97)*.045;return st?z(.12,y*mn.lifeDepth):y}),gr=ls.map(n=>st&&Wt!==0?n*2.4:n),ao=cs.map(n=>st?Wt===0?z(.08,n*2.2+.025):z(.46,n*3.8+.085):n),us=Object.freeze({phase:ha,rate:gr,depth:ao,gain:fa,timeScale:st?mn.timeScale:1}),ds=Te({length:q},(n,r)=>gt?0:(ke(r,227,79)-.5)*.06),fs=(n,r,p)=>{let y=B[n]-g,A=Y[n]-g,R=b(y),S=b(A),D=K(R,S);if(r===1)return R+S;if(r===2)return K(R*.72,S*1.28);if(r===3)return M(R,S)+z(R,S)*.28;if(r===4){let E=Math.atan2(A,y);return M(0,D+ne(E*3*f.kineticDirection+D*.78+f.kineticPhase)*.9)}return r===5?R*.34+S*1.16:r===6?S*.28+R*1.22:r===7?M(0,D+(ke(n,251+p,83)-.5)*2.4):D},io=lt.map((n,r)=>{let p=Te({length:q},(A,R)=>fs(R,n.waveMode,r)),y=M(...p);return p.map(A=>A/M(1,y)*De)}),hs=io.map(n=>n.map(r=>k(r*Fe))),pa=Te({length:q},(n,r)=>K((B[r]-g)*1.52,(Y[r]-g)*.58)),ps=M(...pa),ma=pa.map(n=>n/M(1,ps)*De),ms=ma.map(n=>k(n*Fe)),Rc=Me;function ue(n,r,p){r>=we&&r<d-we&&p>=we&&p<d-we&&(n[le(r,p)]=!0)}function ga(n){let r=ye(!1),p=[le(g,g)];for(r[p[0]]=!0;p.length;){let y=p.pop(),A=B[y],R=Y[y];for(let S=-1;S<=1;S+=1)for(let D=-1;D<=1;D+=1){let E=A+D,N=R+S;if((D||S)&&E>=0&&E<d&&N>=0&&N<d){let F=le(E,N);n[F]&&!r[F]&&(r[F]=!0,p.push(F))}}}return n.map((y,A)=>y&&r[A])}function gs(n){let r=d,p=d,y=-1,A=-1;if(n.forEach((E,N)=>{E&&(r=z(r,B[N]),p=z(p,Y[N]),y=M(y,B[N]),A=M(A,Y[N]))}),y<0)return n;let R=k(g-(r+y)/2),S=k(g-(p+A)/2),D=ye(!1);return n.forEach((E,N)=>{E&&ue(D,B[N]+R,Y[N]+S)}),D}let so=n=>{let r=gs(ga(n));return r[le(g,g)]=!0,ga(r)};function ys(){let n=ye(!1),r=f.caterpillarStyle,p=f.caterpillarPattern,y=f.caterpillarLength,A=f.segmentCount,R=f.bodyPhase,S=f.segmentDepth,D=f.taperPower,E=k(g-(y-1)/2),N=M(2,y/A);for(let F=0;F<y;F+=1){let I=E+F,U=F/M(1,y-1),O=U*2-1,W=.5+.5*x(U*A*Q*2+R),_=ee(b(O),D),xe=Z(-ee((O+.82)/.22,2)),v=Z(-ee((O-.84)/.24,2)),L=U*A%1,P=1-b(L*2-1),V;r===0?V=f.caterpillarRadius+S*(W-.5)-_*.75:r===1?V=.7+f.caterpillarRadius*.35+P*(1.2+S):r===2?V=1+(f.caterpillarRadius+.8)*ee(M(0,1-b(O)),.45):r===3?V=1.25+f.caterpillarRadius*.45+x(U*Q*4+R)*.85:r===4?V=1.2+f.caterpillarRadius*.45+((F+T(R))%2?-.45:1):r===5?V=1+xe*(f.headSize+1.2)+(1-U)*f.caterpillarRadius*.55-v*.4:r===6?V=1+(1-U)*(f.caterpillarRadius+.8)+W*.55:r===7?V=2.2+W*S*.55-_*.45:r===8?V=.8+P*(f.caterpillarRadius+1.15):V=f.caterpillarRadius+.8-_*.25+(W>.62?.55:-.35),re.architecture===1?V+=Z(-ee(O/.34,2))*1.15:re.architecture===2?V+=(xe+v)*1.05-Z(-ee(O/.3,2))*.55:re.architecture===3?V+=x(U*Q*(4+re.rhythm)+R)*.58:re.architecture===4?V+=ee(M(0,1-b(O)),.38)*.82:re.architecture===5?V+=P*.72-.18:re.architecture===6?V+=ne(U*Q*2+R)*.48:re.architecture===7&&(V+=(F+re.rhythm)%3===0?.75:-.12);let de=$(k(V*h),1,k(5*h));for(let ie=0;ie<=de;ie+=1){let Ce=ie===0,J=ie<=1,oe=ie===de,Be=P>.72||F===0||F===y-1,Re=!0;p===1?Re=!(Ce&&I!==g&&F>1&&F<y-2&&W<.5):p===2?Re=J||oe||Be:p===3?Re=J||oe||(F+ie+r)%2===0:p===4?Re=J||oe||P>.82:p===5?Re=!(ie===1&&de>1&&F%3===1):p===6?Re=J||oe||ke(le(g-ie,I),131+F,41+r)>.48:p===7&&(Re=J||oe||(F+ie*2+r)%4<2),(Re||Ce&&(I===g||F===0||F===y-1))&&(ue(n,g-ie,I),ue(n,g+ie,I))}let Ee=P>.78&&b(O)<.8,at=F%M(2,k(N))===0;if(f.appendageStyle===1&&Ee)ue(n,g-de-1,I),ue(n,g+de+1,I);else if(f.appendageStyle===2&&at&&b(O)<.72){let ie=O<0?1:-1;ue(n,g-de-1,I),ue(n,g+de+1,I),ue(n,g-de-2,I+ie),ue(n,g+de+2,I+ie)}else f.appendageStyle===3&&Ee&&F%2===0&&(ue(n,g-de-1,I-1),ue(n,g+de+1,I-1))}if(!gt){let F=xt[3],I=1+F%3+T(Ye/2);for(let U=0;U<I;U+=1){let O=1+(F>>>U*7+2)%M(1,y-2),W=E+O,_=0;for(;_<g-2&&(n[le(g-_-1,W)]||n[le(g+_+1,W)]);)_+=1;ue(n,g-_-1,W),ue(n,g+_+1,W),F>>>U*5+1&1&&O<y-2&&(ue(n,g-_-1,W+1),ue(n,g+_+1,W+1))}}if(f.appendageStyle===4||r===5){let F=k((1+f.spineLength)*h);for(let I=1;I<=F;I+=1)ue(n,g-I,E-I),ue(n,g+I,E-I)}return so(n)}function bs(n){let r=ye(!1),p=f.pupaStyle,y=f.pupaPattern,A=n&&lo(n),R=A&&A.aspect<.65,S=$(k(f.pupaHeight*.82+(A?A.height*.18:f.pupaHeight*.18))-(R?1:0),k(9*h),k(26*h)),D=$(f.pupaWidth+(R?1:0),3,8),E=f.pupaPower,N=f.pupaRoundness,F=f.shoulderStrength,I=f.shoulderY,U=f.pupaRibs,O=k(g-(S-1)/2),W=O+(S-1)/2,_=S/2;for(let v=0;v<S;v+=1){let L=O+v,P=(L-W)/_,V=ee(M(0,1-ee(b(P),E)),N),de=F*Z(-ee((P-I)/f.shoulderSpread,2)),Ee=f.pupaWaist*Z(-ee(P/.24,2)),at=ee(M(0,1-b(P)),N),ie=ee(M(0,1-ee(b(P+.18),E)),N),Ce=V,J=de*.35;p===1?(Ce=at,J=de*.2):p===2?(Ce=ie,J=de):p===3?Ce=M(.18,V-Ee*.28):p===4?(Ce=ee(M(0,V),.65),J=0):p===5?(Ce=M(0,ie-M(0,P)*.25),J=de*1.18):p===6?(Ce=ee(M(0,1-b(P)),.34),J=de*.82):p===7?(Ce=M(Z(-ee((P+.34)/.42,2)),Z(-ee((P-.42)/.32,2))*.82),J=de*.18):p===8?(Ce=V*.58,J=de*.72):p===9&&(Ce=ee(M(0,1-ee(b(P-.16),1.45)),.62),J=de*.12),re.architecture===1?Ce+=Z(-ee(P/.34,2))*.22:re.architecture===2?Ce=M(.16,Ce-Z(-ee(P/.28,2))*.24):re.architecture===3?Ce+=x(P*Q*(3+re.rhythm))*.09:re.architecture===4?Ce=ee(M(0,Ce),.72):re.architecture===5?J*=1.28:re.architecture===6?Ce+=Z(-ee((b(P)-.48)/.2,2))*.16:re.architecture===7&&(Ce+=(v+re.rhythm)%3===0?.12:-.025);let oe=.5+.5*x(v/M(1,S-1)*U*Q*2),Be=$(k((.75+D*Ce+J+(p===4?(oe-.5)*.7:0))*h),1,k(10*h));for(let Re=0;Re<=Be;Re+=1){let Ne=Re>=Be-1,Xe=ke(le(g-Re,L),97,23)>f.pupaHoles,ct=oe>(p===4?.46:.78),St=p===1&&(Re+v)%3===0,jt=p===3&&b(P)<.24&&Re>1&&!Ne,ut=Re<=1,je=ut||Ne||!jt&&(ct||St||Xe);if(y===1)je=ut||Ne||oe>.62;else if(y===2)je=ut||Ne||v%M(2,k(S/U))===0;else if(y===3)je=ut||Ne||(v+Re+p)%2===0;else if(y===4){let kt=b(P)<.48&&Re>1&&Re<Be;je=ut||Ne||!kt}else if(y===5)je=ut||Ne||(b(P)*S+Re)%4<1.7;else if(y===6){let kt=v%3===1&&Re>1&&!Ne;je=ut||Ne||!kt}else y===7&&(je=ut||Ne||ke(le(g-Re,L),173+v,61+p)>.62);je&&(ue(r,g-Re,L),ue(r,g+Re,L))}}if(p===2||p===5||p===6){let v=W+I*_;for(let L=2;L<=f.shoulderSpan;L+=1){let P=k(v+f.shoulderSlope*(L-2));ue(r,g-L,P),ue(r,g+L,P),(p===5||p===6||F>1.45)&&(ue(r,g-L,P+1),ue(r,g+L,P+1))}}if(p===1||p===5||p===8){let v=k(f.hornLength*h);for(let L=1;L<=v;L+=1){let P=1+T(L/2),V=O-L;ue(r,g-P,V),ue(r,g+P,V)}}if(p===9){let v=k((1+T(f.hornLength/2))*h);for(let L=1;L<=v;L+=1)ue(r,g,O-L)}let xe=v=>{let L=0;for(let P=1;P<g;P+=1)r[le(g+P,v)]&&(L=P);return L};if(f.pupaAccent<=3)for(let v=1;v<=f.pupaBelts;v+=1){let L=k(O+v*(S-1)/(f.pupaBelts+1)),P=xe(L),V=f.pupaAccent!==2||v%2;if(P&&V){let de=f.pupaAccent===1||f.pupaAccent===3&&v===1?2:1;for(let Ee=1;Ee<=de;Ee+=1)ue(r,g-P-Ee,L),ue(r,g+P+Ee,L)}}else if(f.pupaAccent===4)ue(r,g-2,O-1),ue(r,g+2,O-1),ue(r,g-1,O),ue(r,g+1,O);else if(f.pupaAccent===5){let v=O+S;ue(r,g-1,v),ue(r,g+1,v),ue(r,g-2,v+1),ue(r,g+2,v+1)}else if(f.pupaAccent===6){let v=k(W-_*.34),L=k(W+_*.34);for(let P of[v,L]){let V=xe(P);ue(r,g-V-1,P),ue(r,g+V+1,P)}}else{let v=xe(k(W));for(let L=1;L<=2;L+=1)ue(r,g-v-L,k(W)-L),ue(r,g+v+L,k(W)-L)}return so(r)}function ws(n){let r=ye(!1),p=f.wingStyle,y=f.wingPattern,A=n&&lo(n),R=is,S=R?$(f.bodyLength+k(5*h),k(20*h),k(26*h)):$(k(f.bodyLength*.8+(A?A.height*.2:f.bodyLength*.2)),k(8*h),k(26*h)),D=R?$(f.wingSpan+k(h),k(10*h),g-we):f.wingSpan,E=R?g-7*h+(f.upperWingY-g+7*h)*.5:f.upperWingY,N=R?.58+f.upperWingX*.16:f.upperWingWidth,F=R?(.8+f.upperWingWidth*.65)*h:f.upperWingHeight,I=R?g+2*h+(f.lowerWingY-g-2*h)*.5:f.lowerWingY,U=R?.55+f.lowerWingX*.18:f.lowerWingWidth,O=R?(.75+f.lowerWingWidth*.55)*h:f.lowerWingHeight,W=R?1+f.wingLobes%2:f.wingLobes,_=R?.52:f.upperWingX,xe=R?.5:f.lowerWingX,v=[[1,1,1,1],[1,.95,.76,1.16],[1.16,.86,.76,.82],[.88,1.06,1.16,1.16],[1.16,1.12,.7,.82],[1,1,1,1],[.84,1.18,.82,1.12],[1.18,.72,1.15,.72],[.88,.9,.95,.9],[1.04,1,1,1]],[L,P,V,de]=v[p];re.architecture===1?(L*=1.12,V*=.86):re.architecture===2?(L*=.86,V*=1.16):re.architecture===3?(L*=.82,V*=.78,P*=1.22,de*=1.18):re.architecture===4?(L*=1.16,V*=1.12,P*=.86,de*=.9):re.architecture===5?(P*=1.18,de*=.82):re.architecture===6?(L*=1.08,de*=1.15):re.architecture===7&&(P*=1.12,de*=1.12);for(let J=1;J<d-1;J+=1)for(let oe=1;oe<=D;oe+=1){let Be=1+f.lobeDepth*x((J-E)/F*W*Q+p),Re=1+f.lobeDepth*ne((J-I)/O*W*Q+p*.7),Ne=ee(b((oe-D*_)/(D*N*L*Be)),f.upperExponent)+ee(b((J-E)/(F*P)),f.upperExponent),Xe=ee(b((oe-D*xe)/(D*U*V*Re)),f.lowerExponent)+ee(b((J-I)/(O*de)),f.lowerExponent),ct=Ne<=1,St=Xe<=1,jt=(E+I)/2,ut=oe>D*(.74-f.wingNotch*.3)&&b(J-jt)<f.wingNotch*(p===6?3.2:2.5)*h,je=b(J-(E+.7+f.veinSlope*(oe-1)))<.58*h,kt=b(J-(I-.7-f.veinSlope*(oe-1)))<.58*h,dt=ct&&Ne>.76||St&&Xe>.76,Sn=M(k(2*h),k(7*h/f.wingBands)),X=(J+k(oe*(f.veinSlope+1.25))+p)%Sn===0,te=ke(le(g-oe,J),79,17),me=(J+oe+p)%2===0,Ie=ct&&Ne>.22&&Ne<.52||St&&Xe>.2&&Xe<.5,ft=ct&&Ne>.06&&Ne<.18||St&&Xe>.05&&Xe<.16,Qe=D*(.46+p%3*.08),ve=E+(p%2?.7:-.35),fe=K((oe-Qe)/(1.7*h),(J-ve)/(1.4*h))<1,Oe=oe===1||je||kt,Ke=Oe||dt||te>f.wingHoles;y===1||p===5?Ke=Oe||dt||Ie:y===2?Ke=Oe|